Mainframe Utility: SPLITTO

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.
            


Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.