Return to Mainframe Utilities Page
Module
ISREDIT MACRO (HELP)
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
IF &HELP = HELP THEN GOTO HELPSEC
/**********************************************************************
/* EDIT MACRO : SPLITTO *
/* AUTHOR : DAVE LEIGH *
/* DATE : 6-4-90 *
/* FUNCTION : SPLIT A LINE AFTER A " TO " IN A COBOL PROGRAM AND *
/* INSERT A MESSAGE LINE INDICATING THE ACTION TAKEN. *
/* ONLY DO THIS ON ERROR LINES. *
/**********************************************************************
ISREDIT (USERSTAT) = USER_STATE
ISREDIT UNNUM
ISREDIT BOUNDS 1 80
ISREDIT (SLN,SCL) = CURSOR
SET COUNT = 0
ISREDIT LOCATE FIRST ERROR
DO WHILE &LASTCC = 0
ISREDIT (LINE1,NULL) = DISPLAY_LINES
ISREDIT CURSOR = &LINE1 1
ISREDIT FIND FIRST ' TO ' .ZCSR .ZCSR
IF &LASTCC = 0 THEN +
DO
SET COUNT = &COUNT + 1
ISREDIT (LN,CL) = CURSOR
SET CL = &CL + 3
SET SLEN = 72 - &CL
ISREDIT TSPLIT .ZCSR &CL
ISREDIT FIND FIRST P'¬' 12 80 .ZCSR .ZCSR
ISREDIT FIND NEXT ' ' 12 80 .ZCSR .ZCSR
ISREDIT FIND NEXT P'¬' 12 80 .ZCSR .ZCSR
ISREDIT (NULL,X) = CURSOR
ISREDIT LINE_BEFORE .ZCSR = MSGLINE '*** SPLIT HERE ***'
ISREDIT CURSOR = &LN &CL
ISREDIT FIND NEXT P'=' 1
ISREDIT FIND NEXT P'¬' .ZCSR .ZCSR
ISREDIT (LN,CL) = CURSOR
SET Y = &CL + &SLEN
ISREDIT CHANGE P'=' ' ' &Y 80 .ZCSR .ZCSR ALL
SET X = &X - &CL
ISREDIT SHIFT > .ZCSR &X
END
ISREDIT LOCATE ERROR
END
SET ZEDLMSG = &STR(*** SPLIT &COUNT LINES *** "L SPECIAL" TO +
LOCATE THEM ***)
ISPEXEC SETMSG MSG(UTLZ000)
ISREDIT CURSOR = &SLN &SCL
ISREDIT RESET ERROR
ISREDIT USER_STATE = (USERSTAT)
ISREDIT RIGHT DATA
ISREDIT LEFT DATA
EXIT
HELPSEC: + 02480000
ISPEXEC SELECT PGM(ISPTUTOR) PARM(HELPSHEL) 02490000
SET ZEDLMSG = &STR(*** HELP DISPLAYED FOR SPLITTO UTILITY + 02490000
*** NO PROCESSING PERFORMED ***) 02490000
ISPEXEC SETMSG MSG(UTLZ000) 02490000
EXIT
Documentation
This utility is used in conjuction with the LINEUPTO utility (and, in fact, may
be executed conditionally WITH LINEUPTO by specifying "lineupto split") when
invoking LINEUPTO. It will find the lines marked "==ERR>" by LINEUPTO and
split them just after the " TO ", place the receiving field under the sending
field and mark the line as "split" with a message line.
EXAMPLE | After the
==ERR> MOVE AAAAAAAAAAAAAAAAAAA TO BBBBBBBBBBBBBBBBBB. | split,
BECOMES +-------------------+ you must
000001 MOVE AAAAAAAAAAAAAAAAAAA TO | run LINEUPTO again to line up
000002 BBBBBBBBBBBBBBBBBBB. | previous error lines.

0 Comments