Go to LeighWeb Home Page            

Back To LeighWeb Mainframe Utilities Page

View the documentation associated with this module

ISREDIT MACRO (PARM)
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 &STR(&PARM) = HELP THEN GOTO HELPSEC
/**********************************************************************
/* UTILITY : PAGECONT                                                 *
/* AUTHOR : DAVID LEIGH                                               *
/* DATE : 10-22-90                                                    *
/* FUNCTION : COUNT THE NUMBER OF LINES AND PAGES IN A FILE BEING     *
/*            EDITED WHICH HAS ANSI CONTROL CHARACTERS IN COLUMN 1.   *
/**********************************************************************

SET ZEDLMSG = &STR(*** COUNTING PAGES AND LINES ***)
ISPEXEC CONTROL DISPLAY LOCK
ISPEXEC DISPLAY MSG(UTLZ000W)

ISREDIT (LN,CL) = CURSOR
FREE DDNAME(TEMPDD)
DELETE TEMP.PAGECONT
ALLOC DD(TEMPDD) DSN(TEMP.PAGECONT) +
                 NEW CATALOG +
                 UNIT(SYSDA) VOLUME(WRK$$$) +
                 SPACE(2,2) TRACKS RELEASE +
                 RECFM(F B) LRECL(80) BLKSIZE(23440) DSORG(PS)
OPENFILE TEMPDD OUTPUT

SET PAGE = 0
SET LINE = 0
SET BAD  = 0
ISREDIT FIND FIRST P'=' 1
DO WHILE &LASTCC = 0
    ISREDIT (COL) = LINE .ZCSR
    SET COL = &SUBSTR(1:1,&NRSTR(&COL))
    SELECT (&STR(&COL))
        WHEN (&STR( )) SET LINE = &LINE + 1
        WHEN (&STR(0)) SET LINE = &LINE + 2
        WHEN (&STR(-)) SET LINE = &LINE + 3
        WHEN (&STR(+)) SET LINE = &LINE
        WHEN (&STR(1)) +
            DO
                SET PAGE = &PAGE + 1
                SET TEMPDD = &STR(PAGE &PAGE CONTAINS &LINE LINES)
                PUTFILE TEMPDD
                SET LINE = 1
                SET ZEDLMSG = &STR(*** &PAGE PAGES COUNTED SO FAR ***)
                ISPEXEC CONTROL DISPLAY LOCK
                ISPEXEC DISPLAY MSG(UTLZ000W)
            END
        OTHERWISE +
            DO
                SET BAD = &BAD + 1
                SET LINE = &LINE + 1
            END
    END
    ISREDIT FIND NEXT P'=' 1
END

IF &LINE > 0 THEN +
    DO
        SET PAGE = &PAGE + 1
        SET TEMPDD = &STR(PAGE &PAGE CONTAINS &LINE LINES)
        PUTFILE TEMPDD
        SET ZEDLMSG = &STR(*** &PAGE PAGES COUNTED SO FAR ***)
        ISPEXEC CONTROL DISPLAY LOCK
        ISPEXEC DISPLAY MSG(UTLZ000W)
    END

IF &BAD > 0 THEN +
    DO
        SET TEMPDD = &STR(&BAD LINES DID NOT CONTAIN VALID ANSI +
                          CONTROL CHARACTERS)
        PUTFILE TEMPDD
        SET TEMPDD = &STR(THEY WERE COUNTED AS " " CONTROL CHARACTERS)
        PUTFILE TEMPDD
    END

CLOSFILE TEMPDD
FREE DDNAME(TEMPDD)
ISPEXEC EDIT DATASET(TEMP.PAGECONT)

ISREDIT CURSOR = &LN &CL

EXIT

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