Yes, SET SYSSCAN=0 is the same as SET &SYSSCAN=0.
By default, SYSSCAN=16. If it is overridden as, say, SET SYSSCAN=2 then
SYSSCAN=2 remains in effect until it is overridden again or restored to
its default value SYSSCAN=16 (which always applies, by default, unless
overridden.)
"You can assign &SYSSCAN a value from 0 to +2,147,483,647 (2³¹-1)" - not
quite: SYSSCAN can be set to 1 or 3 etc. if/as required. I have never
used 2³¹-1.E.g. Use of SYSSCAN = 1 & 2:
/* ALLOW FOR & OR ARITHMETIC OPERATION CHARACTERS IN &CO AND &PI */
SET SYSSCAN = 1 /* <-- e.g. HERE */
ERROR DO
SET SYSSCAN = 2 /* <-- e.g. HERE */
SET COMM&T = &STR(&CO)
SET SYSSCAN = 1 /* <-- e.g. HERE */
RETURN
ENDO
SET COMM&T = &CO
SET SYSSCAN = 16
ISPEXEC VPUT (COMM&T) PROFILE
In practice SYSSCAN would be set to whatever is appropriate, as in e.g.
DO I = 1 TO 999 WHILE &MAXCC = 0
ISREDIT (DATALINE) = LINE .ZCSR
SET X = &SYSINDEX(&STR(,),&SUBSTR(1:27,&DATALINE),19)
IF &X = 0 THEN +
DO
SET MODULE = &SUBSTR(19:22,&DATALINE)
SET PREFIX = &SUBSTR(24:27,&DATALINE)
ENDO
ELSE +
DO
SET MODULE = &SUBSTR(19:&X-1,&STR(&DATALINE))
SET PREFIX = &SUBSTR(&X+1:&X+4,&STR(&DATALINE))
ENDO
SELECT (&PREFIX)
WHEN () SET MODULE = WHAT&MODULE
WHEN (WOT1) SET MODULE = WHB1&MODULE
WHEN (WOT2) SET MODULE = WHB2&MODULE
OTHERWISE
ENDO
SET J = &SUBSTR(&LENGTH(&I):&LENGTH(&I)+3,000&I)
ISREDIT LINE_AFTER .ZCSR = +
DATALINE "&STR(.C&J ANOP )"
SET SYSSCAN = 2 /* <-- e.g. HERE */
ISREDIT LINE_BEFORE .ZCSR = +
DATALINE "&STR( AIF (&&&&NOTRACE EQ 0).T&J)"
SET SYSSCAN = 16
ISREDIT LINE_BEFORE .ZCSR = +
DATALINE "&STR( WOTBASR &MODULE)"
ISREDIT LINE_BEFORE .ZCSR = +
DATALINE "&STR( AGO .C&J )"
ISREDIT LINE_BEFORE .ZCSR = +
DATALINE "&STR(.T&J ANOP )"
ISREDIT FIND EXECBASR 10 NEXT
ENDO
On 23/09/2021 18:15, Paul Gilmartin wrote:
> On Thu, 23 Sep 2021 16:33:34 +0100, CM Poncelet wrote:
>
>> To prevent the command processor from substituting whatever looks like a
>> variable, code SYSSCAN={0||1|2|3},
>>
> (I don't know CLIST.) Is that equivalent to what I see in the Ref.:
> SET &SYSSCAN=0
> You can assign &SYSSCAN a value from 0 to +2,147,483,647 (2³¹-1).
>
> Commas? Can this loop to that max value? How long does that take?
>
>> ... then issue the &NRSTR(), then reset to SYSSCAN=16 (default.)
>>
> Would it be better to save and restore the previous value?
>
> Is 16 a particularly useful value? Has anyone ever relied on that exact
> value?
>
>> SYSSCAN=n means substitute up to n &s.
>> SYSSCAN=0 means no & should be substituted.
>>
>> To debug/trace, code CONTROL LIST SYMLIST CONLIST MSG before the 1st
>> SYSSCAN and CONTROL NOLIST NOSYMLIST NOCONLIST NOMSG after the 2nd SYSSCAN.
> -- gil
>
> ----------------------------------------------------------------------
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to [email protected] with the message: INFO IBM-MAIN
> .
>
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN