/* TITLE: @EDITMSK THE INCLUSIVE LINES BETWEEN TWO LABELS */ /* *GENERALIZED @EDITMSK* */ /* USERS: TSO ISPF EDIT USERS | SCRIPT USERS */ /* CONTRIBUTED: 1989/02/10 DAVID MCRITCHIE */ /* */ /* EXAMPLE: @EDITMSK .ZFIRST .ZLAST NX */ /* */ /* OPTIONS: */ /* NX (OPTIONAL) NON-EXCLUDED, */ /* LPTR-RANGE | ENTIRE (REQUIRED) LINE POINTER RANGE */ /* (CC-CC LINE RANGEALSO AVAILABLE */ /* SHORT SKELETAL FORM WITHOUT SCRIPT TEXT */ /* */ /* REQUIREMENTS: */ /* DEFAULT WILL EDITORIZE ENTIRE DOCUMENT */ /* MUST BE ACCEPTABLE TO SHIFT */ CONTROL ASIS ISREDIT MACRO NOPROCESS (TOK1,TOK2,TOK3,TOK4,TOK5,TOK6,TOK7,TOK8,+ TOK9,TOK10,TOK11,TOK12,TOK13,TOK14,TOK15,+ TOK16,TOK17,TOK18,TOK19) SET BEGIN = 1 SET INCR = 1 SET BLANKS = &STR( ) SET BLANKS = &STR(&BLANKS&BLANKS) SET BLANKS = &STR(&BLANKS&BLANKS) SET BLANKS = &STR(&BLANKS&BLANKS) SET LP = &STR(( SET RP = &STR()) SET N0 = 20 SET N = 0 SET I = 0 SET L = 0 /********* ISREDIT PROCESS RANGE C IF &LASTCC = 0 THEN DO SET LABF = &STR(.ZFRANGE) SET LABL = &STR(.ZLRANGE) END /********* SET I = 1 DO WHILE &I <= 100 SET TOKEN = &&TOK&I SET TOKEN = &STR(&SYSCAPS(&TOKEN)) IF &SUBSTR(1,&STR(&TOKEN.) ) = &STR(') THEN DO /* REMOVE QUOTES WATCH OUT DSNAMES E.G. 'CHARS(GT10 GT12)' IF &SUBSTR(&LENGTH(&STR(&TOKEN.)),&STR(&TOKEN)) = &STR(') + THEN DO SET TOKEN = &SUBSTR(2:&EVAL(&LENGTH(&STR(&TOKEN.))-1),+ &STR(&TOKEN)) /* WRITE &TOKEN. END END IF DEBUG = &DEBUG THEN WRITE &I TOK&&I=&&TOK&I TOKEN=&TOKEN IF &STR(&TOKEN) = &STR() THEN GOTO END_TOK IF ALL = &STR(&TOKEN) | NEXT = &STR(&TOKEN) | FIRST = + &STR(&TOKEN) | LAST = &STR(&TOKEN) | PREV = &STR(&TOKEN) + THEN DO SET &ZEDSMSG = &STR(&TOKEN INVALID) SET &ZEDLMSG = &STR("&TOKEN" NOT PROVIDED FOR NOR ARE NEXT + ALL FIRST LAST PREV) ISPEXEC SETMSG MSG(ISRZ000) EXIT CODE(12) END IF HELP = &STR(&TOKEN) | DEBUG = &STR(&TOKEN) + | LEFT = &STR(&TOKEN) | RIGHT = &STR(&TOKEN) + | NX = &STR(&TOKEN) | X = &STR(&TOKEN) + | ENTIRE = &STR(&TOKEN) - | SHORT = &STR(&TOKEN) - THEN DO SET &&TOKEN. = &STR(&TOKEN) IF DEBUG = &DEBUG THEN WRITE &I TOK&I=&TOK&&I + TOKEN=&TOKEN GOTO NXT_TOK END IF &SUBSTR(1:6,&STR(&TOKEN) ) = &STR(BEGIN&STR(&LP)) + THEN DO SET BEGIN = &SUBSTR(7:&EVAL(&LENGTH(&STR(&TOKEN))-1),+ &STR(&TOKEN) ) GOTO NXT_TOK END IF &SUBSTR(1:5,&STR(&TOKEN) ) = &STR(INCR&STR(&LP)) + THEN DO SET BEGIN = &SUBSTR(6:&EVAL(&LENGTH(&STR(&TOKEN))-1),+ &STR(&TOKEN) ) GOTO NXT_TOK END IF &SUBSTR(1,&TOKEN) = &STR(.) THEN DO IF &LABF = &STR() THEN DO SET LABF = &STR(&TOKEN) GOTO NXT_TOK END IF &STR(&LABL) = &STR() THEN DO SET LABL = &STR(&TOKEN) GOTO NXT_TOK END SET &ZEDSMSG = &STR(LABEL &STR(&TOKEN)) SET &ZEDLMSG = &STR(EXACTLY TWO LABELS ARE REQUIRED FOUND + "&LABF", "&LABL" AND "&STR(&TOKEN)") ISPEXEC SETMSG MSG(ISRZ000) EXIT CODE(12) END IF &STR(&TOKEN) = &STR()) THEN DO SET &ZEDSMSG = &STR(LOST PARENTHESIS) SET &ZEDLMSG = BLANKS SEPARATE ALL OPERANDS; THEREFORE + INVALID IN FROM() TO() COL() BEGIN() ISPEXEC SETMSG MSG(ISRZ000) EXIT CODE(12) END WRITE &TOKEN NOT PROVIDED FOR IN CLIST SET REMAIN = &STR(&REMAIN &STR(&TOKEN)) NXT_TOK: + SET I = &I + 1 END END_TOK: SET I = &I IF &STR(&REMAIN.) ^= &STR() THEN - WRITE &REMAIN -- NOT PROVIDED FOR IN CLIST /***************************************************************** /*************************************************************** IF NX = &STR() THEN DO SET X = X SET NX = NX END IF ENTIRE = &ENTIRE THEN DO /*** LABELS ARE REQUIRED ****** IF &LABF = &STR() THEN DO SET LABF = .ZFIRST SET LABL = .ZLAST END ELSE DO SET &ZEDSMSG = &STR(LABEL CONFLICT) SET &ZEDLMSG = &STR("ENTIRE" IMPLIES .ZFIRST .ZLAST + CONFLICTS WITH "&LABF" AND "&LABL") ISPEXEC SETMSG MSG(ISRZ000) EXIT CODE(12) END END IF &LABF = &STR() THEN DO SET &ZEDSMSG = &STR(MISSING .LABELS) SET &ZEDLMSG = &STR(REFORMAT WITHOUT LABEL-RANGE REFUSED) ISREDIT LINE_AFTER .ZCSR = NOTELINE "*ERROR** + @EDITMSK &ZEDLMSG." ISPEXEC SETMSG MSG(ISRZ000) EXIT CODE(4) END /*************** ISREDIT (MEMBERX) = MEMBER ISREDIT (DSNX) = DATASET /*************** ISREDIT SHIFTNX &LABF. &LABL. &X &NX. RIGHT 7 ISREDIT @SEQ &LABF. &LABL. &NX. COL(1) L(6) BEGIN(&BEGIN.) + INCR(&INCR.) IF SHORT = &SHORT THEN DO ISREDIT LINE_BEFORE &LABF. = DATALINE "COMMAND ===>" ISREDIT LINE_BEFORE &LABF. = DATALINE + "=COLS> ----+----1----+----2----+----+ 3----+----4----+----5----+----6----" EXIT CODE(1) END /****************** ISREDIT LABEL &LABF. = .BEGIN 2 ISREDIT LABEL &LABL. = .END 2 SET LABF = &STR(.BEGIN) SET LABL = &STR(.END) /****************** ISREDIT LINE_BEFORE &LABF = DATALINE "&SYSLC(.SK 1)" ISREDIT LINE_BEFORE &LABF = DATALINE "&SYSLC(.KP ON;.FO OFF)" ISREDIT LINE_BEFORE &LABF = DATALINE "&SYSLC(:GT12.)" ISREDIT LINE_BEFORE &LABF = DATALINE "&SYSLC(.SK 1)" ISREDIT LINE_BEFORE &LABF. = - ":&SYSLC(HP2).EDIT:&SYSLC(EHP)2.:&SYSLC(HP)2.---- + IS03.SHARE.TEXT(EDITXXXX) - 01.00 - + COLUMNS 001 124:&SYSLC(EHP2.)&RBL." ISREDIT LINE_BEFORE &LABF. = - ":&SYSLC(HP)2.COMMAND ===>:&SYSLC(EHP)+ 2. :&SYSLC(HP)2.SCROLL + ===> CSR:&SYSLC(EHP)2.&RBL." ISREDIT LINE_BEFORE &LABF. = - ":&SYSLC(HP)2.******:&SYSLC(EHP)2. *********************+ ******* TOP OF DATA *****************************" /* FOLLOWING LINE GO OUT IN REVERSE ORDER... ISREDIT LINE_AFTER &LABL = DATALINE "&SYSLC(.KP OFF)" ISREDIT LINE_AFTER &LABL = DATALINE "&SYSLC(:EGT12.)" ISREDIT LINE_AFTER &LABL. = - ".*---- - - - - - - - - - - - + - - - - - - - - - - - NN LINES(S) NOT DISPLAYED" ISREDIT LINE_AFTER &LABL. = - ":&SYSLC(HP)2.******:&SYSLC(EHP)2. ***********************+ ** BOTTOM OF DATA *****************************"