[Info-vax] /END=label
Marc Van Dyck
marc.gr.vandyck at invalid.skynet.be
Fri Aug 31 17:38:30 EDT 2018
VAXman- @SendSpamHere.ORG formulated the question :
> In article <mn.fc1f7e289c5c90ca.104627 at invalid.skynet.be>, Marc Van Dyck
> <marc.gr.vandyck at invalid.skynet.be> writes:
>> Phillip Helbigundress to reply pretended :
>>> In article <pm1abq$r09$1 at dont-email.me>, Dave Froble
>>> <davef at tsoft-inc.com> writes:
>>>
>>>> What you're doing, as I understand it, is invoking a program from DCL,
>>>> and then exiting the program.
>>>
>>> $ RUN PROGRAM
>>> $ IF $STATUS .EQS. END THEN GOTO END_HANDLING
>>>
>>>> Personally, I find testing the result of
>>>> the program exit, and taking appropriate action, rather elegant.
>>>
>>> My impression is that he is not calling the program from a DCL
>>> procedure, but rather from the DCL command line, as a DCL verb. So
>>> there is no fallback to a DCL GOTO after the program exits.
>>
>> Yes it is implemented as a DCL command. And yes, if embedded in a
>> command procedure, I can test $STATUS and take action from that.
>> I would just be able to do
>>
>> $ <my dcl command with parameters> /END=label
>> ..
>> ..
>> ..
>> $label:
>>
>> Rather than
>>
>> $ <my dcl command with parameters>
>> $ IF $STATUS .EQ. end THEN GOTO label
>> ..
>> ..
>> ..
>> $label:
>>
>> Just like the DCL READ command does.
>>
>> Simple, eh ?
>
> *IF* the label has already been encountered by DCL, then the label symbol
> will maintain the RFA of the record. *IF* not, then DCL must read (scan)
> the procedure to find the label, create a label symbol, associate it with
> the RFA and then, transfer control to that record. I could tell you how
> to find the label symbol and even how to change DCL's stream to effectively
> branch to that record, but if that label symbol does not yet exist, you'd
> have to open and scan the procedure yourself and synthesize a label symbol.
Which is basically what DCL GOTO is doing, right ? Then the suggestion
below to use lib$do_command ("GOTO label") seems just fine to me. No
need to rewrite it. But thanks for the explanation.
--
Marc Van Dyck
More information about the Info-vax
mailing list