Paul Gilmartin wrote:
> //STEP EXEC PGM='FooBar'
> IEFC629I INCORRECT USE OF APOSTROPHE IN THE PGM FIELD
>
> Why?
Because the code does not support, and therefore does not
expect, a quoted string as the value of the PGM= operand
on an EXEC statement. But I suspect you already knew that.
IBM blew the chance to really improve and modernize JCL
with the converter rewrite, which added support for SET,
IF, etc. That would have been the time to do it, to put
in some burnable bridges, position themselves for future
improvements and changes. But the focus was maintenance
expense, incident reduction and a brand new code base for
planned enhancements. We got improved symbolic parameter
support for free, almost as an afterthought. Thus, while
other things could have changed, they didn't, and in all
probability (at this point) never will. We have what we
have. We can gripe and moan, but we will still have to
deal with all of the JCL shortcomings for a long time.
> Why does TSO insist on converting strings _in quotes_
> to upper case[?]
Because the TSO command processor is either doing that
intentionally, or has instructed the parser code being
used to do so for it. I don't know which TSO or product
command you experience this unwanted behavior with. But
if it is an MVS TSO command or some IBM program product
then almost certainly this behavior is due to the fact
that TSO operated this way originally when implemented
in 1970. Essentially every IBM TSO command processor
written since 1971 has followed that lead. Most of the
conventions established by IBM in OS/360 Release 20.1
(the FCS of TSO in Nov. 1971) have simply been copied,
sometimes mindlessly. I suspect you already knew that.
Some things have changed since 1970, especially in JCL.
But TSO has seen so little real improvement since ISPF
arrived on the scene that one could probably list them
on a set of fingers and toes.
> Quotes are supposed to mean as-is.
I understand your modern thinking, but they are really
only supposed to mean what the code that supports them
say they mean. And in 1970, the decision was made that
for the most part "quotes" meant "do not apply the TSO
PROFILE PREFIX() value." Thus, they really have little
or nothing to do with automatic folding to upper case.
The command processors you are dealing with are simply
requesting this conventional behavior by declaring the
parameter's value to be a data set name, most likely.
> Why does TSO insist on converting strings _in quotes_
> to upper case[?]
Does this cause you a problem with (existing) IBM TSO
commands? Or with new command processors of your own?
If your own, I assume you do realize that there is no
requirement for you to use IKJPARS to figure out what
the actual value of an operand is. You could do that
yourself -- sometimes better, in fact -- and cause it
to operate exactly as you wish.
> And why are terminal data sets ("DSN(*)") converted to
> upper case, no matter what I do?
I will need a better explanation for that one. Exactly
which part of what is converted to upper case? An "*"?
--
WB
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html