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 lists...@listserv.ua.edu with the message: INFO IBM-MAIN > . > ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN