Go to LeighWeb Home Page            

Back To LeighWeb Mainframe Utilities Page

View the documentation associated with this module

/**********************************************************************
/* EDIT MACRO : COLS                                                  *
/* AUTHOR : DAVE LEIGH                                                *
/* FUNCTION : UNTIL WE GO TO THE APPROPRIATE RELEASE OF ISPF          *
/*            CREATE COMMENT BOXES IN VARIOUS FORMATS.                *
/**********************************************************************
ISREDIT MACRO NOPROCESS (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

/**********************************************************************
/* DETERMINE WHETHER TO USE AN "A¦B" LINE COMMAND OR THE CURSOR POS.  *
/**********************************************************************
ISREDIT (SLN,SCL) = CURSOR

ISREDIT PROCESS DEST
SET DESTCC = &LASTCC

SELECT (&DESTCC)
    WHEN (0) DO
        ISREDIT (LINENUM) = LINENUM .ZDEST
    END
    WHEN (8) DO
        SET ZEDSMSG = &STR(A¦B LINE REQUIRED)
        SET ZEDLMSG = &STR("COLS" AS A PRIMARY COMMAND REQUIRES AN +
                           "A" OR "B" LINE COMMAND TO OPERATE)
        ISPEXEC SETMSG MSG(UTLZ001)
        EXIT CODE(12)
    END
    WHEN (16) DO
        SET ZEDSMSG = &STR(INVALID LINE COMMAND)
        SET ZEDLMSG = &STR(LINE CMDS CAN'T CONFLICT OR SPECIFY +
                           "BEFORE" THE 1ST OR "AFTER" THE LAST +
                           LINE)
        ISPEXEC SETMSG MSG(UTLZ001)
        EXIT CODE(12)
    END
    WHEN (20) DO
        SET ZEDSMSG = &STR(SEVERE ERROR)
        SET ZEDLMSG = &STR(PROCESSING THE LINE COMMAND PRODUCED A +
                           SEVERE EDIT MACRO ERROR)
        ISPEXEC SETMSG MSG(UTLZ001)
        EXIT CODE(12)
    END
    OTHERWISE
END

/**********************************************************************
/* CREATE A "COLUMNS" LINE THE SIZE OF THE LRECL                      *
/**********************************************************************
SET COLS =
ISREDIT (LRECL) = LRECL
DO &I = 1 TO &LRECL
    IF &I > 9 THEN +
        SET A = &SUBSTR(&LENGTH(&I)-1:&LENGTH(&I)-1,&I)
    SET B = &SUBSTR(&LENGTH(&I):&LENGTH(&I),&I)
    SET MARK = &STR(-)
    IF &B = 5 THEN SET MARK = &STR(+)
    IF &B = 0 THEN SET MARK = &STR(&A)
    SET COLS = &STR(&COLS&MARK)
END

/**********************************************************************
/* PLACE THE COLUMNS LINE WHERE IT BELONGS                            *
/**********************************************************************
ISREDIT CURSOR = &LINENUM 1
ISREDIT LINE_AFTER .ZCSR = (COLS)

/**********************************************************************
/* RESTORE THE USER'S CURSOR POSITION                                 *
/**********************************************************************
ISREDIT CURSOR = &SCL &SLN

EXIT

/**********************************************************************
/* HELP PROCESSING                                                    *
/**********************************************************************
HELPSEC: +                                                              02480000
ISPEXEC SELECT PGM(ISPTUTOR) PARM(HELPSHEL)                             02490000
SET ZEDLMSG = &STR(*** HELP DISPLAYED FOR COLS UTILITY +                02490000
                   *** NO PROCESSING PERFORMED ***)                     02490000
ISPEXEC SETMSG MSG(UTLZ000)                                             02490000
EXIT