/* REXX */ /* */ /* */ /* AUTHOR: Mark Zelden */ /* */ /* This edit macro allows the user to BROWSE */ /* the data set located on the line that the */ /* cursor is on. */ /* */ /* The cursor can be anywhere on a line that */ /* has DSN= or DSNAME= but must be at the */ /* start of the data set name if there is */ /* no DSN= or DSNAME=. */ /* */ /* Last updated on 10/15/2002 */ /* TRACE ?R */ Address ISREDIT "MACRO" Address ISPEXEC "CONTROL ERRORS RETURN" /***********************************************/ /* BEGIN PROCESSING */ /***********************************************/ "(row,col) = CURSOR" "(data1) = LINE " row /* data1 = cursor line */ /**********************************/ /* Find start of data set name */ /**********************************/ dsnstart = Pos('DSN=',data1) /* look for DSN= */ If dsnstart = 0 then do /* no DSN = */ dsnstart = Pos('DSNAME=',data1) /* look for DSNAME= */ If dsnstart = 0 then do /* no DSN= or DSNAME= */ "CURSOR = " row col /* cursor pos */ If col < 1 then dsnstart = 1 /* needed for ZB line cmd */ Else dsnstart = col /* assume cursor on DSN */ End Else dsnstart = dsnstart + 7 /* DSNAME= specified in JCL */ End /* if dsnstart = 0 */ Else dsnstart = dsnstart + 4 /* DSN = specified in JCL */ /**********************************/ /* Find end of data set name */ /**********************************/ dsnend = Pos(',',data1,dsnstart) /* look for comma at end of dsn */ If dsnend = 0 then do /* no comma found */ dsnend = Pos(' ',data1,dsnstart) /* look for blank to end DSN */ If dsnend = 0 then do /* no blank or comma at end */ zedsmsg = 'No end of DSN' zedlmsg = 'The data set name is not terminated with a' , 'space or comma.' Address ISPEXEC "SETMSG MSG(ISRZ001)" /* msg - with alarm */ "CURSOR = " row col /* put cursor back to last position */ Exit 8 End /* if dsnend = 0 */ Else dsnend = dsnend - 1 /* DSN ends with blank */ End /* if dsnend = 0 */ Else dsnend = dsnend - 1 /* DSN ends with comma */ /**********************************/ /* BROWSE the data set */ /**********************************/ dsn = Substr(data1,dsnstart,dsnend-dsnstart+1) /* extract dsn */ dsn = Strip(Translate(dsn,"","'")) /* remove quotes if used */ Address ISPEXEC "BROWSE DATASET('"dsn"')" If RC <> 0 then Address ISPEXEC "SETMSG MSG("ZERRMSG")" "CURSOR = " row col /* put cursor back to last position */ Exit 0