PROC 1 MEMBER ALL NEW SUMMARY NB DEBUG EDIT CHKCAT HELP + DS1('&SYSUID..LIBR.EXEC') + DS2('&SYSUID..LIBR.CLIST') + DS3('TECHTSO.COMBINE.ISRCLIB') + DS4('TSOTEST.LIB01.CLIST') + DS5('TSOPROD.LIB01.CLIST') + DS6('HCCG.CLIST') + DS7('TECH.DALLAS.CLIST') + DS8('&SUBSTR(1:4,&SYSUID.MMMM).LIBR.CLIST') + CL1('TECH.ISRCLIB') + CL2('SYS1.ISPFPDFV.ISRCLIB') + CL3('TECH.ISPFV.ISPCLIB') + CL4('SYS1.VB.SAMPJCL1') + CL5('SYS1.TSOCLIST') + CL6('SYS1.DSQCLSTE') + CL7('SYS1.DSNCLIST') + CL8('SYS1.VB.ICEISPC') + CL9('SYS1.VB.ICEDGTC') + CL10('SYS1.VB.VSF2CLIB') + CL11('SYS1.VB.COB2CLIB') + CL12('SYS6.IOFT7B0.VB.CLIST') + CL13('TSOPROD.LIB01.CLIST') /* PERIODICALLY REFRESHED TO MATCH IV2B69, REFRESHED 1992/11/13 D.MCR */ /* THE USE OF IS03.LIBR.CLIST(IV2B69R MAY BE USEFUL */ /********************************************************************** /* FOR USE ON THE TEST SYSTEM THE CLIST CAN HAVE MINOR CHANGES MADE * /* TO IT TO SUPPRESS DSNAMES BY PLACING AN ASTERISK OR * /* ASTERISK-SPACE BEFORE DATASET LIST ITEM BASED ON RESULTS OF * /* ===> TSO CLIST CLIST CHKCAT * /********************************************************************** /* ALTERNATIVE CLIST THAT CAN BE USED ON TEST SYSTEM IS * /* ===> TSO PDSDD SYSPROC CLIST * IF NEW = &NEW THEN DO IF &STR(&SYSPREF.) = &STR() THEN SET U = &SYSUID ELSE SET U = &SYSPREF. $EDIT &U..LIBR.CLIST(&MEMBER.) NEW EXIT CODE(&LASTCC.) END IF SPFTEST = &SYSPROC. THEN DO PDSDD SYSPROC &MEMBER. &ALL. &NB. &EDIT. EXIT CODE(0) END /********************************************************************** /* ***** EXAMPLE OF USAGE: ===> TSO CLIST /* ***** EXAMPLE OF USAGE: ===> TSO CLIST HELP /* ***** ALSO OF INTEREST: ===> TSO PDSDD SYSPROC /* ***** ALSO OF INTEREST: ===> TSO PDSDD CLIST /* ***** ALSO OF INTEREST: ===> TSO DDNAME SYSPROC /* ***** ALSO OF INTEREST: ===> TSO LISTDD SYSPROC /* ***** ALSO OF INTEREST: ===> TSO PROC /* * ALSO OF INTEREST: ===> TSO LISTALC (STATUS) (HISTORY) (SYSNAMES) /**************************************************************** */ /* PURPOSE: BROWSE A CLIST MEMBER /* EDIT A CLIST MEMBER IF EDIT IS SPECIFIED /* ACCORDING TO EXPECTED ORDER /* SUPPLIED BY DAVID MCRITCHIE AHC 1985/07/10 /* TO CHECK THE LIBRARIES CHECKED IN THIS CLIST YOU MAY WISH TO /* COMPARE DSNAMES WITH DSNAME SHOWN /* USING "===> TSO DDNAME SYSPROC". TEST WITH MEMBERNAME "ISRJC03" /* OPTIONS -- */ /* DEBUG -- TRACING FOR PROGRAMMER /* NB -- NO BROWSE. DS LIBRARIES /* ALL -- WILL (ALSO) BROWSE THE COMBINED LIBRARIES /* EDIT -- WILL BE USED INSTEAD OF BROWSE /* SUMMARY -- WILL PRODUCE A SUMMARY LIST AT END /* CONTROL MAIN /*=========== BEGIN SPECIAL CLIST HELP PORTION ================*/ SET L = &LENGTH(&STR(&MEMBER.)) IF &L. > 8 THEN DO SET INVAL = &STR(INVALID MEMBERNAME LENGTH('&MEMBER.') EXCEEDS 8) WRITE &INVAL. SET &ZEDSMSG = &STR(MEMBERNAME) SET &ZEDLMSG = &STR(&INVAL.) ISPEXEC SETMSG MSG(ISRZ000) EXIT CODE(12) END /*SET TYPE = CLIST /* WILL APPEAR ON EXTENDED BROWSE MESSAGE*/ SET MULTIMEM = &SYSINDEX(&STR(*),&STR(&MEMBER.)) IF &MULTIMEM = 0 THEN - SET MULTIMEM = &SYSINDEX(&STR(%),&STR(&MEMBER.)) IF &MULTIMEM = 0 THEN SET PATTERN = &STR() ELSE SET PATTERN = &STR(PATTERN ) SET RP = ) SET LP = &STR(( SET HELP = &SYSUC(&STR(&HELP.)) IF HELP = &STR(&MEMBER.) THEN DO SET HELP = HELP SET MEMBER = $HELP$ END /** CONTROL LIST CONLIST SYMLIST IF HELP = &STR(&HELP.) THEN DO /* CLIST HELP PLACED WITH JOB IS03.SHARE.CNTL(NCPDSHLP) */ SET &VSTSRVTI = IS03.CLISTHLP.HELP(&STR(&MEMBER.)) SET &DSNDESC = &STR(ACTUAL CLIST CAN BE SEEN USING ===> + TSO CLIST &STR(&MEMBER.)) SET &SYSBROX2 = &STR( ACTUAL CLIST CAN BE + SEEN USING ===> TSO CLIST &STR(&MEMBER.)) ISPEXEC VPUT (VSTSRVTI,DSNDESC) SHARED IF CLIST = &STR(&MEMBER.) THEN SET MEMBER = PROC IF LOADMOD = &STR(&MEMBER.) THEN SET MEMBER = PROC IF &MULTIMEM. > 0 THEN SET ST = &SYSDSN('IS03.CLISTHLP.HELP') ELSE SET ST = &SYSDSN('IS03.CLISTHLP.HELP(&STR(&MEMBER.))') IF OK = &STR(&ST.) THEN DO IF EDIT = &EDIT. THEN + ISPEXEC EDIT DATASET('IS03.CLISTHLP.HELP(&STR(&MEMBER.))') + PANEL(SYSEDDE2) ELSE ISPEXEC BROWSE DATASET('IS03.CLISTHLP.HELP+ (&STR(&MEMBER.))') + PANEL(SYSBROX2) SET RC = &LASTCC. IF PANELS = &STR(&MEMBER.) THEN WRITE ALSO SEE THE + -- PROC -- CLIST EXIT CODE(&RC.) END /* CHECK INTO SYS1.HELP, SYS1.TSOHELP,...,SYS1.DSNHELP,... ETC. */ CONTROL FLUSH QHELP &STR(&MEMBER.) SET RC = &LASTCC. CONTROL NOFLUSH IF &RC = 0 THEN EXIT CODE(&RC.) SET &ZEDSMSG = &STR(HELP N/A FOR &STR(&MEMBER.)) SET &ZEDLMSG = &STR(RC=&RC. NOT IN IS03.CLISTHLP.HELP, + REENTER WITHOUT "HELP" TO BROWSE CLIST) ISPEXEC SETMSG MSG(ISRZ000) EXIT CODE(1) END IF &MULTIMEM. > 0 THEN SET ST = &SYSDSN('IS03.CLISTHLP.HELP') ELSE SET ST = &SYSDSN('IS03.CLISTHLP.HELP(&STR(&MEMBER.))') IF OK = &STR(&ST.) THEN DO SET &ZEDSMSG = &STR(CLIST HELP AVAILABLE) SET &ZEDLMSG = &STR(===> TSO CLIST &STR(&MEMBER.) HELP <-- BROWSE + IS03.CLISTHLP.HELP(&STR(&MEMBER.)&RP.) ISPEXEC SETMSG MSG(ISRZ000) END /*============= END SPECIAL CLIST HELP PORTION ================*/ SET BLANKS = &STR( ) SET BLANKS = &STR(&BLANKS.&BLANKS.) IF CHKCAT = &SYSCAPS(&CHKCAT.) | CHKCAT = &SYSCAPS(&STR(&MEMBER.)) + THEN DO SET CHKCAT = CHKCAT SET MEMBER = &STR(........) SET ALL = ALL END IF &STR(&MEMBER) = BROWSE THEN DO WRITE &STR() THE AHC CLIST NAMED BROWSE HAS BEEN CHANGED TO $BROWSE WRITE &STR() TO AVOID FURTHER CONFLICT WITH ISPF IMPLEMENTATIONS WRITE &STR() PLEASE UPDATE YOUR DOCUMENTATION ACCORDINGLY. WRITE &STR() T&SYSLC(HE CLIST )$BROWSE + &SYSLC(WILL BE DISPLAYED INSTEAD.) SET MEMBER = $BROWSE END IF &LENGTH(&STR(&MEMBER.)) > 8 THEN DO WRITE &STR() THE SPECIFIED MEMBERNAME "&MEMBER" EXCEEDS 8 + BYTES LENGTH IS &LENGTH(&MEMBER) EXIT CODE(12) END /*SET MULTIMEM = &SYSINDEX(&STR(*),&STR(&MEMBER.))*/ IF &MULTIMEM NE 0 THEN DO IVL806 &MEMBER IF &LASTCC = 0 THEN WRITE A LOADMOD (ALSO) EXISTS FOR &MEMBER + USE THE LOADMOD CLIST FOR MORE INFORMATION END ISPEXEC CONTROL DISPLAY LINE SET DEBUG = &SYSCAPS(&DEBUG) SET NB = &SYSCAPS(&NB) SET BROWSE = BROWSE IF EDIT = &EDIT THEN SET BROWSE = EDIT IF &NB = NB THEN SET SUMMARY = SUMMARY SET ALL = &SYSCAPS(&ALL) SET SUMMARY = &SYSCAPS(&SUMMARY) SET XCNT = 0 SET RC = 0 SET N = 1 SET TN = 1 SET AVAIL = 0 SET DS = &&DS&N.. DO WHILE &STR(&DS.) ^= SET AVAIL = &AVAIL. + 1 SET RC = &N IF CHKCAT = &SYSCAPS(&CHKCAT.) THEN DO /* CONTROL NOLIST NOCONLIST NOSYMLIST MSG /* SYSOUT TRAPS WILL NOT WORK IF YOU USE LIST SET SYSOUTTRAP = 100 SET SYSOUTLINE7 = &STR(.....................................) LISTCAT ENT('&DS.') VOL SET NS = &SYSOUTLINE SET I = 1 DO WHILE &I <= &NS SET X = &STR(&&SYSOUTLINE&I..) SET X = &STR(&X.) SET I = &I. + 1 END WRITE &SUBSTR(1:4,&TN.. )&STR(DS)&SUBSTR(1:4,&N. ) + &SUBSTR(26:31,&SYSOUTLINE7.&BLANKS.) + &SUBSTR(16:60,&SYSOUTLINE1.&BLANKS.) GOTO AGAIN END /* SET MULTIMEM = &SYSINDEX(&STR(*),&STR(&MEMBER.))*/ IF &MULTIMEM NE 0 THEN DO SET XDSN&RC = &STR(&DS.) SET CHK&RC = &STR(NO MEMBERS FOUND) ISPEXEC CONTROL ERRORS RETURN ISPEXEC &BROWSE DATASET('&DS.(&STR(&MEMBER.))') IF &LASTCC. < 8 THEN DO SET XCNT = &XCNT. + 1 SET MULTI&N. = 1 /* WOULD BE NICE TO HAVE A COUNT*/ SET CHK&RC = &STR(MEMBER&LP.S&RP. FOUND) END GOTO AGAIN END IF &SUBSTR(1:1,&DS. ) ^= &STR(*) THEN DO SET CHKX = &STR(&SYSDSN('&DS.(&STR(&MEMBER.))')) SET XDSN&RC = &STR(&DS.) SET CHK&RC = &STR(&CHKX) IF &STR(&CHKX) = OK THEN DO SET DSNAME = '&DS.(&STR(&MEMBER.))' IF &NB ^= NB THEN DO ISPEXEC VPUT DSNAME SHARED ISPEXEC &BROWSE. DATASET('&DS.(&STR(&MEMBER.))') IF &LASTCC. < 8 THEN SET XCNT = &XCNT. + 1 SET DSNAME = ISPEXEC VPUT DSNAME SHARED END ELSE SET XCNT = &XCNT. + 1 END ELSE IF &DEBUG. = DEBUG THEN DO WRITE &SUBSTR(1:4,&TN. )&STR(CL)&SUBSTR(1:4,&N. ) + '&DS.(&STR(&MEMBER.))' -- &STR(&CHKX). END END ELSE DO SET XDSN&RC = &STR(&DS.) SET CHK&RC = &STR(*SUPPRESSED*) END AGAIN: - SET N = &N. + 1 SET TN = &TN. + 1 SET DS = &&DS&N.. IF &N. > 2 THEN - IF &STR(&DS.) = &STR(&DS2.) THEN GOTO AGAIN END IF &XCNT. ^=0 THEN DO IF &XCNT ^= 1 THEN WRITE &PATTERN.+ MEMBER=&STR(&MEMBER.) WAS FOUND IN &XCNT. + OF &AVAIL. CLIST LIBRARIES IF &ALL ^= ALL AND &SUMMARY ^= SUMMARY THEN EXIT CODE(0) END ELSE WRITE MEMBER=&STR(&MEMBER.) WAS NOT FOUND IN ANY + OF &AVAIL. SELECTED REGULAR CLIST LIBRARIES /* CONTROL LIST CONLIST SYMLIST */ SET DRC = &RC. /************** REDO FOR COMBINED LIBRARIES ********/ /* IF &MULTIMEM. > 0 THEN EXIT CODE(1) SET CCNT = 0 SET N = 1 SET CL = &&CL&N.. DO WHILE &STR(&CL) ^= SET RC = &RC + 1 IF CHKCAT = &SYSCAPS(&CHKCAT.) THEN DO /* CONTROL NOLIST NOCONLIST NOSYMLIST MSG /* SYSOUT TRAPS WILL NOT WORK IF YOU USE LIST SET SYSOUTTRAP = 100 SET SYSOUTLINE7 = &STR(.....................................) LISTCAT ENT('&CL.') VOL SET NS = &SYSOUTLINE SET I = 1 DO WHILE &I <= &NS SET X = &STR(&&SYSOUTLINE&I..) SET X = &STR(&X.) SET I = &I. + 1 END WRITE &SUBSTR(1:4,&TN.. )&STR(DS)&SUBSTR(1:4,&N. ) + &SUBSTR(26:31,&SYSOUTLINE7.&BLANKS.) + &SUBSTR(16:60,&SYSOUTLINE1.&BLANKS.) GOTO AGAIN2 END SET XDSN&RC = &STR(&CL.) IF &MULTIMEM NE 0 THEN DO SET CHK&RC = &STR(NO MEMBERS FOUND) ISPEXEC CONTROL ERRORS RETURN ISPEXEC &BROWSE DATASET('&CL.(&STR(&MEMBER.))') IF &LASTCC. < 8 THEN DO SET CCNT = &CCNT. + 1 SET MULTI&RC. = 1 /* WOULD BE NICE TO HAVE A COUNT*/ SET CHK&RC = &STR(MEMBER&LP.S&RP. FOUND) END GOTO AGAIN2 END SET CHKX = &STR(&SYSDSN('&CL.(&STR(&MEMBER.))')) SET CHK&RC = &STR(&CHKX) IF &STR(&CHKX) = OK THEN DO IF &ALL = ALL THEN DO SET DSNAME = '&CL.(&STR(&MEMBER.))' ISPEXEC VPUT DSNAME SHARED ISPEXEC &BROWSE. DATASET('&CL.(&STR(&MEMBER.))') SET DSNAME = ISPEXEC VPUT DSNAME SHARED END SET CCNT = &CCNT. + 1 END ELSE IF &DEBUG. = DEBUG THEN DO WRITE &SUBSTR(1:4,&TN. )&STR(CL)&SUBSTR(1:4,&N. ) + '&CL.(&STR(&MEMBER.))' -- &STR(&CHKX). END AGAIN2: + SET N = &N. + 1 SET TN = &TN. + 1 SET CL = &&CL&N.. END SET HRC = &RC. /* --------------------------------------------------------------- */ IF &SUMMARY ^= SUMMARY THEN DO SET DSN = SET XDSN = EXIT CODE(0) END WRITE A&SYSLC(S AN ALTERNATIVE TO) SUMMARY + &SYSLC(VERIFICATION YOU COULD ENTER ...) WRITE &STR() ===> TSO PDSDD SYSPROC &MEMBER ALL WRITE /* --------------------------------------------------------------- */ SET I = 1 IF &STR(&DDNAME) ^= &STR(&DDNAMEX) THEN DO WRITE SUMMARY ----------------- CLIST &STR(&DDNAME) &MEMBER + &ALL &SUMMARY &NB &DEBUG DSN1() DSN2() END ELSE WRITE SUMMARY -------- ===> TSO CLIST &DDNAME &MEMBER + &ALL &SUMMARY &NB &DEBUG WRITE AS DETERMINED &SYSDATE. &SYSTIME. FOR &SYSUID. + USING PROC=&SYSPROC. SET STR44 = &STR(............................................) SET SI = 1 DO WHILE &I <= &RC IF &I = &EVAL(&HRC + 1) | &I = &EVAL(&DRC + 1) THEN DO IF &I = &EVAL(&DRC + 1) THEN WRITE &STR(------) $BROWSE. + OF COMBINED LIBRARIES OCCURS ONLY WITH 'ALL' OPTION ELSE WRITE &STR(------) $BROWSE. + OF ADDITIONAL LIBRARIES OCCURS ONLY WITH 'ALL' OPTION END SET DSN = '&STR(&&XDSN&I.(&STR(&MEMBER.)))' /* IF &MULTIMEM. > 0 THEN SET DSN = '&STR(&&XDSN&I.)' SET CHK = &STR(&&CHK&I) IF &I < 10 THEN WRITE + &STR(0)&I.&STR(-)&SUBSTR(1:4,&SI.. ) + &SUBSTR(1:44,&STR(&STR(&DSN) &STR(&STR44))) &CHK. ELSE WRITE + &I.&STR(-)&SUBSTR(1:4,&SI.. ) + &SUBSTR(1:44,&STR(&STR(&DSN) &STR(&STR44))) &CHK. SET I = &I + 1 SET SI = &SI + 1 IF &I > &DRC. THEN SET SI = &I. - &DRC. END IF &DEBUG = DEBUG THEN WRITE DRC=&DRC RC=&RC HRC=&HRC I=&I SET DSN = SET XDSN = /* ----+++ */