DDNAME SYSADATA should be the SYSADATA output of an assembly of the desired
usermod.
DDNAME IGNORMAC is just an input file listing macros you wish to exclude from
the output file.
Like I said, it's still pretty quick and dirty, and does what I wanted.
I still haven't got all this put together, now I'm getting :
GIM43401W ASSEMBLY XJ01USEP IN SYSMOD JES2001 WAS NOT INSTALLED IN ANY TARGET
LIBRARY.
And as far as I can tell (must have my blinders on :), I'm following the
examples in 17.3.6 and 7 from GIMUSR36.boo almost exactly.
-----Original Message-----
From: Krnic, Ivan B. [mailto:[EMAIL PROTECTED]
Sent: Tuesday, September 16, 2008 5:57 AM
To: Gibney, Dave
Subject: FW: SMP/E - rexx to pull macro names from adata
Greetings!
What is the input to this REXX?
Ivan
-----Original Message-----
From: IBM Mainframe Discussion List [mailto:[EMAIL PROTECTED] On Behalf Of
Gibney, Dave
Sent: Monday, September 15, 2008 6:53 PM
To: [email protected]
Subject: Re: SMP/E - rexx to pull macro names from adata
It's not elegant and could still use a bit of polish and comments:
/* rexx */
/* trace i */
/* msg = MSG(ON) */
eof_adata = 'no'
eof_ignore = 'no'
drop dup_check.
drop out_mac_jclin.
out_cnt = 1
DO WHILE(eof_ignore = 'no')
"EXECIO 1 DISKR IGNORMAC"
IF rc ¬= 0 THEN
eof_ignore = 'yes'
ELSE DO
PARSE PULL skip_this_macro
skip_this_macro = STRIP(skip_this_macro)
dup_check.skip_this_macro = skip_this_macro
end
end
DO WHILE(eof_adata = 'no')
"EXECIO 1 DISKR SYSADATA"
IF rc ¬= 0 THEN
eof_adata = 'yes'
ELSE DO
PARSE PULL adatarec
IF (SUBSTR(adatarec,2,2) = '0062'x) THEN DO
macstrt = C2D(SUBSTR(adatarec,31,4)) + 1
maclen = C2D(SUBSTR(adatarec,35,4))
macname = SUBSTR(adatarec,macstrt,maclen)
IF SYMBOL('dup_check.macname') = 'LIT' THEN DO
dup_check.macname = macname
out_cnt = out_cnt + 1
out_mac_jclin.out_cnt = ' ' macname
END
END
IF ((SUBSTR(adatarec,2,2) = '0042'x) ,
& (SUBSTR(adatarec,25,1) = '01'x)) THEN DO
csectstrt = C2D(SUBSTR(adatarec,55,4)) + 1
csectlen = C2D(SUBSTR(adatarec,59,4)) + 1
csectname = SUBSTR(adatarec,csectstrt,csectlen)
out_mac_jclin.1 = csectname ' CSECT'
END
END
END
out_cnt = out_cnt + 1
out_mac_jclin.out_cnt = ' END'
"EXECIO 0 DISKR SYSADATA (FINIS"
"EXECIO" out_cnt "DISKW JCLIN (STEM" out_mac_jclin. "FINIS"
EXIT
Also, will not handle multiple CSECTS.
Still doesn't solve my issue with GIM44402W :(
----------------------------------------------------------------------
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
----------------------------------------------------------------------
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