ISREDIT MACRO /********************************************************************/ /* THIS EDIT MACRO (CATM0008) PUTS THE FINISHING TOUCHES TO THE */ /* WHOHTSOP MEMBER. */ /********************************************************************/ /* *************************************** */ /* VARIABLES ARE PASSED TO THIS MACRO */ /* CONSLIST */ /* SYMLIST */ /* COMLIST */ /* TERMPRO */ /* TERMMSGS */ /* *************************************** */ SET RETURN_CODE = 0 /* SET RETURN CODE TO 0 */ SET SPC = &STR( ) SET SPC = &STR(&SPC&SPC&SPC&SPC&SPC&SPC&SPC&SPC) SET PROF_TEST = OFF ISPEXEC CONTROL NONDISPL ENTER ISPEXEC CONTROL ERRORS RETURN ERROR + DO SET RETURN_CODE = &LASTCC RETURN END ISPEXEC VGET ( - CONSLIST - COMLIST - SYMLIST - TERMPRO - RESOURCE - NOUSR - OUTPUT - ACP - ACPVER - EXAMVER - TERMMSGS - ) ASIS IF &RETURN_CODE NE 0 THEN + SET T3VGERR = &RETURN_CODE CHAPT01_MESSAGE_HOUSEKEEPING: - IF &CONSLIST = ON THEN + CONTROL CONLIST /* TURN ON CONLIST */ IF &COMLIST = ON THEN + CONTROL LIST /* TURN ON LIST */ IF &SYMLIST = ON THEN + CONTROL SYMLIST /* TURN ON SYMLIST */ IF &TERMPRO = ON THEN + CONTROL PROMPT /* TURN PROMPT ON */ IF &TERMMSGS = ON THEN + CONTROL MSG /* TURN ON MESSAGES */ IF &SUBSTR(15:15,&RESOURCE) EQ N THEN - SET NOUSR = ON ISREDIT (MEMBER) = MEMBER ISREDIT STATS = OFF ISREDIT NUMBER OFF ISREDIT AUTOSAVE ON CLEAN_UP: + ISREDIT SORT 46 53 1 45 62 71 54 61 ISREDIT (ROW) = LINENUM .ZL SET LINE = 1 CLEAN_UP_LOOP: + SET RETURN_CODE = 0 /* SET RETURN CODE TO 0 */ IF &LINE GT &ROW THEN GOTO DELETE_EXCLUDE ISREDIT (DATA) = LINE &LINE IF &STR(&DATA) NE &STR(&ODATA) THEN + GOTO CLEAN_UP_BYPASS EXCLUDE_DATA: + ISREDIT CURSOR = &LINE 1 ISREDIT EXCLUDE ' ' CLEAN_UP_BYPASS: + SET LINE = &LINE + 1 SET ODATA = &STR(&DATA) GOTO CLEAN_UP_LOOP DELETE_EXCLUDE: + ISREDIT DELETE ALL X ISREDIT (ROW) = LINENUM .ZL SET ROW = &ROW SET LINE = 00001 SET &SYSOUTTRAP = 999999999 ISPEXEC LMOPEN DATAID(&OUTPUT) OPTION(OUTPUT) LOOP: + SET RETURN_CODE = 0 /* SET RETURN CODE TO 0 */ IF &LINE GT &ROW THEN GOTO END_EDIT ISREDIT (DATA) = LINE &LINE SET L = &LENGTH(&NRSTR(&DATA)) SET RES = &SUBSTR(1:8,&NRSTR(&DATA)) SET ACID = &SUBSTR(46:53,&NRSTR(&DATA)) SET TYPE = &SUBSTR(54:61,&NRSTR(&DATA)) SET ACC8 = &SUBSTR(62:69,&NRSTR(&DATA)) SET AUDIT = &SUBSTR(70:70,&NRSTR(&DATA)) SET DENY = &SUBSTR(71:71,&NRSTR(&DATA)) SET SP1 = IF &STR(&ACID) = THEN + GOTO BYPASS_INFO IF &STR(&ACID) EQ &STR(*ALL*) OR + &STR(&ACID) EQ &STR( ) THEN ELSE + DO IF &STR(&TYPE) EQ THEN + DO TSS LIST(&ACID) IF &SUBSTR(1:8,&NRSTR(&SYSOUTLINE1))=&STR(TSS LIST) THEN + DO SET NAME=&SUBSTR(37:68,&NRSTR(&SYSOUTLINE2&SPC)) SET TYPE=&SUBSTR(14:21,&STR(&SYSOUTLINE3)) END ELSE + DO SET NAME=&SUBSTR(37:68,&NRSTR(&SYSOUTLINE1&SPC)) SET TYPE=&SUBSTR(14:21,&STR(&SYSOUTLINE2)) END ISREDIT CHANGE '&STR(&ACID )' '&STR(&ACID&TYPE)' + ALL 46 61 END END IF &NRSTR(&ACID) GT &NRSTR(&OACID) THEN + DO IF &NRSTR(&OACID) NE THEN + DO SET CMD = &STR( ) ISPEXEC LMPUT DATAID(&OUTPUT) MODE(INVAR) DATALOC(CMD) + DATALEN(&LENGTH(&STR(&CMD))) END SET CMD = &STR( &ACID &TYPE) ISPEXEC LMPUT DATAID(&OUTPUT) MODE(INVAR) DATALOC(CMD) + DATALEN(&LENGTH(&STR(&CMD))) END SET SP1 = IF &NRSTR(&TYPE) EQ PROFILE OR &NRSTR(&TYPE) EQ GROUP THEN + DO SET PROF_TEST = ON IF &SYSINDEX(NONE,&STR(&ACCESS)) GT 0 THEN SET PROF_TEST = OFF IF &DENY EQ &STR(Y) THEN SET PROF_TEST = OFF IF &NOUSR NE OFF THEN SET PROF_TEST = OFF END ELSE + DO GOTO BYPASS_PROFILE END IF &PROF_TEST EQ OFF THEN GOTO BYPASS_PROFILE SET SP1 = &STR( ) IF &NRSTR(&ACID) EQ &NRSTR(&OACID) THEN GOTO BYPASS_PROFILE TSS LIST(&ACID) DATA(ACID) SET ACNT = &SYSOUTLINE IF &SUBSTR(1:8,&NRSTR(&SYSOUTLINE1)) EQ ACCESSOR THEN + SET X = 2 ELSE + SET X = 3 DO WHILE &X NE &ACNT SET A = &&SYSOUTLINE&X SET CMD=&STR( &SUBSTR(14:60,&A&SPC&SPC)) IF &STR(&CMD) NE THEN + DO ISPEXEC LMPUT DATAID(&OUTPUT) MODE(INVAR) DATALOC(CMD) + DATALEN(&LENGTH(&STR(&CMD))) END SET X = &X + 1 SET RETURN_CODE = 0 END SET PROF_TEST = OFF BYPASS_PROFILE: + IF &AUDIT = N THEN + SET AUDIT = &STR(AUDIT = NO ) ELSE + SET AUDIT = &STR(AUDIT = YES) IF &DENY = &STR(Y) THEN + SET ACTION = &STR(ACTION = DENY) ELSE + SET ACTION = SET CMD = &STR( &SP1&NRSTR(&RES) &AUDIT &ACTION) ISPEXEC LMPUT DATAID(&OUTPUT) MODE(INVAR) DATALOC(CMD) + DATALEN(&LENGTH(&STR(&CMD))) SET OACID = &NRSTR(&ACID) BYPASS_INFO: + SET LINE = &LINE + 1 GOTO LOOP END_EDIT: + ISPEXEC LMMREP DATAID(&OUTPUT) MEMBER(&MEMBER) ISPEXEC LMCLOSE DATAID(&OUTPUT) ISREDIT END SET LASTCC = 0 EXIT END