On Sat, 4 Dec 2021 15:22:29 +0000, Colin Paice wrote:
>
>I would be happy with some better doc ( I'll raise another RCF), explaining
>what happens.
>  
No.

>The buglet that needs fixing is
> 
Yes.

>// set A='&USER'
>// EXEC PGM,PARM='Z &A Y'
>the parameter passed to the program is 'Z'  I would expect either 'Z  Y'
>or  'Z &USER Y '
>
According to the doc: 
https://www.ibm.com/docs/en/zos/2.5.0?topic=jcl-coding-symbols-in-apostrophes>
o Symbols are not substituted on the SET statement, so A is set to "&USER", not 
substituted.
o Symbols are substituted on EXEC PARM, so yes, "Z &USER Y".

Is it clear that statements are not rescanned for further substitutions?  I 
know IBM's position is,
"We don't document what we do not do."  But this is such a prevalent 
expectation that it might
deserve an exception.  I believe that ampersands introduced by substitution are 
not treated
as special characters; apostrophes and blanks introduced by substitution are 
treated as
special characters

Do *not* document it and call it a "feature".  When a customer whines, "It no 
longer works the
way it used to!"  IBM's courageous riposte should be, "we fixed a defect: it 
now works as it
has always been documented.  You shouldn't have relied on its working contrary 
to
specification."

Still, I'd prefer the specification and behavior be simplified.
 
>real example
>
>//IHS      EXEC PGM=BPXBATCH,REGION=0M,PARMDD=PARMDD
>//PARMDD DD  *,SYMBOLS=EXECSYS
>SH /u/mqweb3/conf/ccc.sh aa &A2 x  &AV &T1. y &AV.    z
>/*
>//STDOUT   DD  SYSOUT=H
>//STDERR   DD  SYSOUT=H
>
>prints out the parameters
>aa

-- gil

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to