/**************************** REXX ************************************/ /* (c) Copyright Roger Lacroix 1996 */ /* */ /* Designed, developed and programmed by Roger Lacroix */ /*--------------------------------------------------------------------*/ /* LC - Full screen ListCat of a dataset. */ /* */ /* Examples: */ /* */ /* tso %lc 'xxxx.yyyy.zzz' */ /* */ /* OR */ /* */ /* at 3.4 DSN list type "LC" beside the dataset. */ /* */ /*--------------------------------------------------------------------*/ trace o PARSE UPPER ARG inputdsn IF SYSVAR(SYSISPF) <> 'ACTIVE' THEN DO SAY "LC ONLY RUNS UNDER ISPF." SAY "SYNTAX IS LC 'datasetname'" EXIT END ELSE NOP ADDRESS TSO /* X=MSG('OFF') */ X=OUTTRAP("OUTLINE.") "LISTCAT ENT("inputdsn") ALL" X=OUTTRAP(OFF) CALL GET_UNIQUE_DD dsn = "BROWSE."LC".R"rn "ALLOC F("dd") DSN("dsn") TRACKS SPACE(100 100) UNIT(SYSDA) ", "NEW DELETE DSORG(PS) LRECL(133) RECFM(V B) BLKSIZE(13300)" IF RC = 0 THEN DO IF outline.0 <> 0 THEN DO "EXECIO * DISKW "dd" (FINIS STEM OUTLINE." ADDRESS ISPEXEC "CONTROL ERRORS RETURN" "LMINIT DATAID(IDVAR) DDNAME("dd")" "LMOPEN DATAID("IDVAR")" "BROWSE DATAID("IDVAR")" "LMCLOSE DATAID("IDVAR")" "LMFREE DATAID("IDVAR")" END ELSE DO SAY 'Nothing returned from TSO!!' END END ELSE DO SAY '*** LC ERROR: Dataset allocation failed.' END ADDRESS TSO "FREE F("dd")" EXIT /* */ GET_UNIQUE_DD: unique = 'N' DO WHILE unique = 'N' rn = RIGHT(RANDOM(0,99999),6,'0') dd = 'LC'rn lc_stat = Listdsi(dd 'FILE') /* get 'LC###### DD' info */ IF lc_stat = 0 then unique = 'N' /* dd has been found */ ELSE unique = 'Y' END RETURN