ISREDIT MACRO
CONTROL NOFLUSH NOMSG
ISPEXEC CONTROL ERRORS RETURN
/*********************************************************************/
/* BROWSE COPYBOOK FOUND ON CURSOR LINE . ASSUMES COPYBOOK RESIDES */
/* IN EDIT LIBRARY */
/* MARC LODGE 26TH APRIL 2006 */
/*********************************************************************/
ISREDIT (ROW,COL) = CURSOR
ISREDIT (LCOL) = DATA_WIDTH
ISREDIT (ELINE) = LINE &ROW
/*************************************/
/* FIND THE WORD COPY */
/*************************************/
ISREDIT F 'COPY' .ZCSR .ZCSR 1, &LCOL
IF &LASTCC NE 0 THEN DO
SET &ZEDSMSG = &STR(INVALID POSITION)
SET &ZEDLMSG = &STR(CURSOR MUST BE ON LINE WITH THE WORD COPY IN IT)
ISPEXEC SETMSG MSG(ISRZ001)
ISREDIT CURSOR = &ROW &COL
EXIT CODE(0)
END
ISREDIT (ROW,COL) = CURSOR
SET &I = &COL
/*************************************/
/* FIND THE 1ST BLANK AFTER 'COPY' */
/*************************************/
ISREDIT F ' ' .ZCSR .ZCSR &I, &LCOL
IF &LASTCC NE 0 THEN DO
SET &ZEDSMSG = &STR(INVALID POSITION)
SET &ZEDLMSG = &STR(CANNOT FIND A BLANK AFTER THE WORD COPY)
ISPEXEC SETMSG MSG(ISRZ001)
ISREDIT CURSOR = &ROW &COL
EXIT CODE(0)
END
ISREDIT (ROW,COL) = CURSOR
SET &I = &COL
/*************************************/
/* FIND THE 1ST NON BLANK AFTER COPY */
/* WHICH SHOULD BE COPYBOOK NAME */
/*************************************/
ISREDIT F P'¬' .ZCSR .ZCSR &I, &LCOL
IF &LASTCC NE 0 THEN DO
SET &ZEDSMSG = &STR(INVALID POSITION)
SET &ZEDLMSG = &STR(CANNOT FIND COPYBOOK NAME AFTER THE WORD COPY)
ISPEXEC SETMSG MSG(ISRZ001)
ISREDIT CURSOR = &ROW &COL
EXIT CODE(0)
END
ISREDIT (ROW,COL) = CURSOR
SET &STARTPOS = &COL
/*************************************/
/* FIND THE NEXT '.' AFTER COPYBOOK */
/* NAME. IF NO '.' EXISTS, FIND NEXT */
/* BLANK CHAR */
/*************************************/
ISREDIT F '.' .ZCSR .ZCSR &STARTPOS, &LCOL
IF &LASTCC NE 0 THEN DO
ISREDIT F ' ' .ZCSR .ZCSR &STARTPOS, &LCOL
IF &LASTCC NE 0 THEN DO
SET &ZEDSMSG = &STR(INVALID POSITION)
SET &ZEDLMSG = &STR(CANNOT FIND COPYBOOK NAME AFTER THE WORD COPY)
ISPEXEC SETMSG MSG(ISRZ001)
ISREDIT CURSOR = &ROW &COL
EXIT CODE(0)
END
END
/*************************************/
/* SET END POSITION TO ONE LESS THAN */
/* CURSOR POS AS POSITIONED ON SPACE */
/* PR '.' AFTER COPYBOOK NAME */
/* SET UP MEMBER NAME AND BROWSE */
/*************************************/
ISREDIT (ROW,COL) = CURSOR
SET &ENDPOS = &COL - 1
SET &MEMNAME = &SUBSTR(&STARTPOS:&ENDPOS,&STR(&ELINE))
ISREDIT BROWSE &MEMNAME
IF &LASTCC NE 0 THEN DO
SET &ZEDSMSG = &STR(MEMBER NOT FOUND)
SET &ZEDLMSG = &STR(MEMBER NAME &MEMNAME NOT FOUND IN LIBRARY)
ISPEXEC SETMSG MSG(ISRZ001)
ISREDIT CURSOR = &ROW &COL
EXIT CODE(0)
END
ISREDIT RESET
EXIT CODE(&LASTCC)