On Thursday, 12/27/2007 at 05:20 EST, "Wakser, David"
<[EMAIL PROTECTED]> wrote:
> The "submission" EXEC can be invoked from an EXEC, but it can
> also be invoked on its own. In the submission EXEC, I need to know if I
> was invoked natively (either from the CMS command line or from FLIST - I
> don't differentiate), or called from another EXEC. This is necessary in
> order to decide whether or not to display certain messages.
>
> Does that explain my need a little better? For now, I am using
> the following to accomplish this:
>
> PARSE UPPER SOURCE . . . . . RXNAME .
> 'PIPE STORAGE 740 8 | XLATE 1-* UPPER | VAR X1'
> if X1 /= "SEND2VSE" & substr(X1,1,5) /= "FILEL" then exit
DMSCALLR follows the command chain backwards. An exec (SVCLOOK) invoked
from the FLIST (not FILELIST!) command line shows:
CALLEE=RXCSL
CALLEE=EXEC SVCLOOK
CALLEE=FLIST
>From FILELIST (next to the name of a file):
CALLEE=RXCSL
CALLEE=EXEC SVCLOOK
CALLEE=CMS
CALLEE=XEDIT
CALLEE=DMSRTPRC °h °h
CALLEE=EXEC ku ?Þ
CALLEE=XEDIT ALTMARKA
CALLEE=DMSRTPRC
CALLEE=EXEC FILELIST
CALLEE=CMS
CALLEE=EXEC FL <-- I have an FL EXEC
>From FILELIST (on the command line):
CALLEE=RXCSL
CALLEE=EXEC SVCLOOK
CALLEE=CMS
CALLEE=XEDIT ALTMARKA
CALLEE=DMSRTPRC
CALLEE=EXEC FILELIST
CALLEE=CMS
CALLEE=EXEC FL
Looking at CMNDLINE in NUCON (0x740) is no good. It contains the command
line read from the console, prior to any resolution of synonyms or
abbreviations.
> SEND2VSE is the name of the submission EXEC. That is what is returned if
> the EXEC is accessed natively. If issued from FILELIST, then FILEL is
> returned. If neither of those is returned, I assume the submission EXEC
> was called by another EXEC (for example, the compilation exec) and I
> exit at this point.
If I invoked another exec from FILELIST that called your exec, your exec
would (incorrectly) believe that it was called from FILELIST. And as I
illustrate above, when called from FILELIST, it would be misled if
FILELIST wasn't called from the Ready prompt or if it had a synonym that
didn't start with "FILEL".
Alan Altmark
z/VM Development
IBM Endicott
Here is the source to SVCLOOK. In its original form it takes a number as
an argument which says "give me the nth caller". With no argument it
would display the entire call stack. I modified it slightly to provide
some illustrations.
/* SVCLOOK EXEC - Alan Altmark, 01/26/94 */
parse arg parms
say "ARG =" parms
parse source src
say "SRC =" src
"CP D T740.8"
count = ""
if count <> '' then
do
Call doit count
exit cslrc
end
else
do i = 0 by 1 until cslrc <> 0
Call doit i
end
exit 0
Doit:
arg n
Call CSL 'DMSCALLR cslrc callee n'
if cslrc = 0 then
say 'CALLEE='callee
return