|
Back To LeighWeb Mainframe Utilities Page
View the documentation associated with this module
ISREDIT MACRO NOPROCESS (STG1,STG2,OPT1,OPT2,OPT3,OPT4,OPT5,OPT6,OPT7)
ISPEXEC CONTROL ERRORS RETURN
/**** SET MESSAGE DISPLAY ON/OFF BASED ON THE DEBUG SWITCH ***/
ISPEXEC VGET (DBGSWTCH) PROFILE
IF &DBGSWTCH = &STR(ON) THEN CONTROL MSG LIST CONLIST SYMLIST NOFLUSH
ELSE CONTROL NOMSG NOLIST NOFLUSH NOPROMPT
/**********************************************************************/
/* UTILITY NAME : B */
/* DATE WRITTEN : 9-29-88 */
/* AUTHOR : DAVE LEIGH */
/* DESCRIPTION : INSERT 'STRING 2' BEFORE LINE WITH (AN) OCCURANCE(S)*/
/* : OF 'STRING 1' */
/*========================== MODIFICATIONS ===========================*/
/* WHO |WHEN |WHY */
/* --- |---- |--- */
/* DAVE LEIGH |8-11-89 |TOOK OFF THE 'CODE(&MAXCC)' PORTION OF THE */
/* | |EXIT STATEMENT SINCE A CODE OF > 0 WOULD */
/* | |CAUSE THE INVOCATION COMMAND ON THE COMMAND */
/* | |TO REMAIN AFTER IT WAS COMPLETE, AND HITTING*/
/* | |THE LAST LINE OF THE FILE WOULD ALWAYS CAUSE*/
/* | |THE RETURN CODE TO BE > 0. */
/* DAVE LEIGH |8-17-89 |CHANGED &STRING_ TO &NRSTR(&STRING_) TO TAKE*/
/* | |CARE OF STRINGS WITH '&' IN THEM. */
/**********************************************************************/
IF &NRSTR(&STG2) = THEN +
IF &NRSTR(&STG1) = &STR(HELP) THEN GOTO HELPSEC
ELSE +
DO
SET ZEDSMSG = &STR(2ND STRING MISSING)
ISPEXEC SETMSG MSG(UTLZ001)
EXIT CODE(8)
END
IF &SYSNSUB(1,&STG2) = ZLINE OR +
&SYSNSUB(1,&STG2) = &SYSNSUB(0,&ZLINE) THEN +
DO
ISREDIT PROCESS RANGE Z
IF &LASTCC ¬= 0 THEN +
DO
SET ZEDLMSG = &STR(*** NO LINE MARKED "Z" TO INSERT ***)
ISPEXEC SETMSG MSG(UTLZ001)
EXIT
END
ELSE +
DO
SET I = 0
ISREDIT FIND FIRST P'=' 1 .ZFRANGE .ZLRANGE
DO WHILE &LASTCC = 0
SET I = &I + 1
ISREDIT (ZLINE&I) = LINE .ZCSR
ISREDIT FIND NEXT P'=' 1 .ZFRANGE .ZLRANGE
END
SET NUMZ = &I
END
END
ELSE +
IF &SUBSTR(1:1,&STR(&SYSNSUB(1,&STG2))) = &STR(') OR +
&SUBSTR(1:1,&STR(&SYSNSUB(1,&STG2))) = &STR(") THEN +
DO
SET X = &LENGTH(&SYSNSUB(1,&STG2))
SET STG2 = &SUBSTR(2:&X-1,&SYSNSUB(1,&STG2))
END
SET OPTIONS = &SYSCAPS(&OPT1 &OPT2 &OPT3 &OPT4 &OPT5 &OPT6 &OPT7)
ISREDIT (SLINE,SCOL) = CURSOR
SET XCOUNT = 0
ISREDIT FIND FIRST &NRSTR(&STG1) &OPTIONS
DO WHILE &LASTCC = 0
SET XCOUNT = &XCOUNT + 1
IF &SYSNSUB(1,&STG2) = ZLINE OR +
&SYSNSUB(1,&STG2) = &SYSNSUB(0,&ZLINE) THEN +
DO
ISREDIT LABEL .ZCSR = .CURR
DO &I = 1 TO &NUMZ
ISREDIT LINE_BEFORE .CURR = (ZLINE&I)
ISREDIT FIND PREV P'=' 1 .ZCSR .ZCSR
ISREDIT FIND PREV P'=' 1
ISREDIT CHANGE 'XCOUNT' '&XCOUNT' .ZCSR .ZCSR ALL
ISREDIT SEEK FIRST P'=' .CURR .CURR
END
END
ELSE +
DO
ISREDIT LINE_BEFORE .ZCSR = (STG2)
ISREDIT FIND PREV P'=' 1 .ZCSR .ZCSR
ISREDIT FIND PREV P'=' 1
ISREDIT CHANGE 'XCOUNT' '&XCOUNT' .ZCSR .ZCSR ALL
ISREDIT FIND NEXT P'=' 1
END
ISREDIT SEEK LAST P'=' .ZCSR .ZCSR
ISREDIT FIND NEXT &NRSTR(&STG1) &OPTIONS
END
ISREDIT CURSOR = &SLINE &SCOL
IF &STR(&NUMZ) > 1 THEN SET XCOUNT = &XCOUNT * &NUMZ
SET ZEDSMSG = &STR(&XCOUNT LINES INSERTED)
ISPEXEC SETMSG MSG(UTLZ000)
EXIT
HELPSEC: +
CLEAR
WRITE *** HELP FOR EDIT MACRO 'B' ***
WRITE
WRITE THE 'B' EDIT MACRO ALLOWS YOU TO INSERT A LINE OF BEFORE
WRITE EVERY LINE IN WHICH OCCURS AT LEAST ONCE.
WRITE
WRITE BASIC SYNTAX :
WRITE
WRITE COMMAND ===> B XXXX $$$$
WRITE
WRITE FILE VIEW BEFORE COMMAND EXECUTION :
WRITE
WRITE 000100 AAAA
WRITE 000200 BBBB
WRITE 000300 XXXX
WRITE 000400 CCCC
WRITE 000500 XXXX
WRITE
WRITE FILE VIEW AFTER COMMAND EXECUTION :
WRITE
WRITE 000100 AAAA
WRITE 000200 BBBB
WRITE 000201 $$$$
WRITE 000300 XXXX
WRITE 000400 CCCC
WRITE 000401 $$$$
WRITE 000500 XXXX
WRITE
WRITE TO PROCESS ONLY EXCLUDED LINES :
WRITE
WRITE COMMAND ===> B XXXX $$$$ X
WRITE
WRITE FILE VIEW BEFORE COMMAND EXECUTION :
WRITE
WRITE 000100 AAAA
WRITE 000200 BBBB
WRITE X XXXX
WRITE 000400 CCCC
WRITE 000500 XXXX
WRITE
WRITE FILE VIEW AFTER COMMAND EXECUTION :
WRITE
WRITE 000100 AAAA
WRITE 000200 BBBB
WRITE 000201 $$$$
WRITE 000300 XXXX
WRITE 000400 CCCC
WRITE 000500 XXXX
WRITE
WRITE TO PROCESS ONLY INCLUDED LINES :
WRITE
WRITE COMMAND ===> B XXXX $$$$ NX
WRITE
WRITE FILE VIEW BEFORE COMMAND EXECUTION :
WRITE
WRITE 000100 AAAA
WRITE 000200 BBBB
WRITE X XXXX
WRITE 000400 CCCC
WRITE 000500 XXXX
WRITE
WRITE FILE VIEW AFTER COMMAND EXECUTION :
WRITE
WRITE 000100 AAAA
WRITE 000200 BBBB
WRITE X XXXX
WRITE 000400 CCCC
WRITE 000401 $$$$
WRITE 000500 XXXX
WRITE
WRITE SPECIAL NOTES : IF NEITHER 'X' NOR 'NX' ARE SPECIFIED TO DEAL WITH
WRITE EXCLUDED OR INCLUDED LINES, ALL LINES WILL BE
WRITE SEARCHED REGARDLESS OF INCLUSION/EXCLUSION STATUS.
WRITE
WRITE SINGLE/DOUBLE QUOTE USAGE AROUND THE 2 STRINGS IS
WRITE IDENTICAL TO THAT OF THE EDIT 'CHANGE' (OR 'C')
WRITE COMMAND.
WRITE
WRITE THE NUMBER OF LINES INSERTED WILL BE PLACED IN THE
WRITE SHORT MESSAGE FIELD AT THE UPPER RIGHT HAND CORNER
WRITE OF YOUR SCREEN.
WRITE
WRITE IF YOU SPECIFY 'X' FOR PROCESSING EXCLUDED LINES,
WRITE ALL LINES WILL BE RESET AT THE END OF MACRO
WRITE EXECUTION.
WRITE
WRITE IF YOU DO NOT SPECIFY 'X' OR 'NX', AND EXCLUDED
WRITE LINES ARE FOUND WHICH CONTAIN THEY WILL
WRITE BE RESET.
EXIT
|
|