| 
 | 
Proc1 receives an arg that is *NoPass:
pProc1            b
dProc1            pi
d InArg1          n         options(*NoPass)
 /free
      Proc2( InArg1 ) ;
 /end-free
p                 e
and passes it along to Proc2 which also defines the arg as *NoPass:
pProc2            b
dProc2            pi
d InArg1          n         options(*NoPass)
 /free
      if    %parms >= 1 ;
        dsply   'Arg1 is passed' ;
      endif ;
 /end-free
p                 e
In practice, Proc2 always thinks it was passed an argument.  Even when Proc1
is called without an arg value.
Shouldnt passing a not passed *NoPass argument either signal an exception or
pass along the *NoPass indicator?
I was hoping that options(*NoPass:*Omit) was the answer.  That a missing arg
value would be passed as *Omit and passed downstream as *Omit also.  But it
does not work that way.  Unless Proc1 is called as "Proc1( *Omit ) ;", Proc2
will think it was passed something.
Steve Richter
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.