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
|