/* EDITCHEK Author: David McRitchie, created 1988/02/02 IS03 rexx */ /* at "The REXX Macros Toolbox", DMcRitchie@hotmail.com */ /* For checking SCRIPT/VS tagging errors before use. */ /* Updated 1992/02/03 21:43 IS03 */ /* REXX 1994/04/06 12:49 IS03 conversion to REXX */ /* This is one of many macros found at "The REXX Macros Toolbox": */ /* http://www.geocities.com/davemcritchie/nclist.htm */ /*********************************************************************/ address "ISREDIT";"MACRO (MAC)" "x all" mac note = time('n') 'EDITCHEK began' "line_before .zf = noteline (note)" "find '########'p 73" if rc = 0 then do "line_before .zf = noteline """, "col 73 may have residual sequence number(s)""" end err = 0; listerr = 0; querr = 0; qqerr = 0; errwatch=0 "find '.qq'"; if rc = 0 then qqerr=1 "find ':qq'"; if rc = 0 then qqerr=1 if qqerr \= 0 then do; err = err + 1 "line_before .zf = noteline "".qq (quick quit) found in data""" end; "find '.qu'"; if rc = 0 then querr=1 "find ':qu'"; if rc = 0 then querr=1 if querr = 1 then do; err = err + 1 "line_before .zf = noteline "".qu (quit) found in data""" end "seek first '.rc '" if rc = 0 then do /* err = err + editpair("'$rc # on'p", "'$rc # off'p", mac) */ end err = err + editpair("'.li on'", "'.li off'", mac) err = err + editpair("'.su on'", "'.su off'", mac) err = err + editpair("x'50d6d84b'", "x'50c3d84b'", mac) err = err + editpair("x'50d6d8d84b'", "x'50c3d8d84b'", mac) err = err + editpair(':dt.', ':dd.' , mac) err = err + editpair(':gb10.', ':egb10.', mac) err = err + editpair(':gb12.', ':egb12.', mac) err = err + editpair(':gt10.', ':egt10.', mac) err = err + editpair(':gt12.', ':egt12.', mac) err = err + editpair(':gt15.', ':egt15.', mac) err = err + editpair(':gt18.', ':egt18.', mac) err = err + editpair(':gt22.', ':egt22.', mac) err = err + editpair(':gt24.', ':egt24.', mac) err = err + editpair(':gt', ':egt' , mac) err = err + editpair(':gb', ':egb' , mac) err = err + editpair(':hp0.', ':ehp0.', mac) err = err + editpair(':hp1.', ':ehp1.', mac) err = err + editpair(':hp2.', ':ehp2.', mac) err = err + editpair(':hp3.', ':ehp3.', mac) err = err + editpair(':hp4.', ':ehp4.', mac) err = err + editpair(':hp5.', ':ehp5.', mac) err = err + editpair(':hp6.', ':ehp6.', mac) err = err + editpair(':hp7.', ':ehp7.', mac) err = err + editpair(':hp8.', ':ehp8.', mac) err = err + editpair(':hp9.', ':ehp9.', mac) err = err + editpair(':hp10.', ':ehp10.', mac) err = err + editpair(':hp11.', ':ehp11.', mac) err = err + editpair(':hp12.', ':ehp12.', mac) err = err + editpair(':hp13.', ':ehp13.', mac) err = err + editpair(':hp14.', ':ehp14.', mac) err = err + editpair(':hp15.', ':ehp15.', mac) err = err + editpair(':hp16.', ':ehp16.', mac) err = err + editpair(':hp17.', ':ehp17.', mac) err = err + editpair(':hp18.', ':ehp18.', mac) err = err + editpair(':hp19.', ':ehp19.', mac) err = err + editpair(':hp', ':ehp', mac) err = err + editpair(':italic.', ':eitalic.', mac) err = err + editpair(':lq', ':elq' , mac) err = err + editpair(':pr12.', ':epr12.', mac) err = err + editpair(':q.', ':eq.', mac) err = err + editpair(':fm', ':efm' , mac) err = err + editpair(':fp', ':efp' , mac) err = err + editpair(':fm1.', ':efm1.', mac) err = err + editpair(':fm4.', ':efm4.', mac) err = err + editpair(':fp1.', ':efp1.', mac) err = err + editpair(':fm2.', ':efm2.', mac) err = err + editpair(':fp2.', ':efp2.', mac) /* *******extended check for :fn :efn. **************/ /* :fnref. is not to be included */ "seek all ':fn ' " mac "(fncnt1s,fncnt1l) = seek_counts" "seek all ':fn.' " mac "(fncnt2s,fncnt2l) = seek_counts" "seek all ':efn.' " mac /* :efn. */ "(fncnt3a) = seek_counts" fncnt1a = fncnt1s + fncnt2s if fncnt1a \= fncnt3a then do "line_before .zf = noteline", """Unmatched :fn("fncnt1a") :efn("fncnt3a")""" end /* *******extended check for .kp on .kp off **************/ "seek all '.kp on ' " mac "(kpcnt1s,kpcnt1l) = seek_counts" "seek all '.kp inline' " mac "(kpcnt2s,kpcnt2l) = seek_counts" "seek all '.kp off' " mac "(kpcnt3a) = seek_counts" kpcnt1s = kpcnt1s + kpcnt2s if kpcnt1s \= kpcnt3a then do "line_before .zf = noteline", """unmatched .kp on/inline ("kpcnt1s") .kp off ("kpcnt3a")""" end /* *******extended check for .bf .pf **************/ "seek all '.bf ' " mac "(oqcnt1s,oqcnt2l) = seek_counts" "seek all '.pf ' " mac "(cqcnt1s,cqcnt2l) = seek_counts" "seek all '.pf;' " mac "(cqcnt1a) = seek_counts" /* .bf */ cqcnt1s = cqcnt1s + cqcnt1a if oqcnt1s \= cqcnt1s then do "line_before .zf = noteline", """unmatched .bf ("oqcnt1s") .pf ("cqcnt1s")""" end /* *******extended check for lists (ol,dl,gl,sl,ul) */ listerr = 0 listerr = listerr + editpair(':dl', ':edl', word mac) listerr = listerr + editpair(':gl', ':egl', word mac) listerr = listerr + editpair(':ol', ':eol', word mac) listerr = listerr + editpair(':sl', ':esl', word mac) listerr = listerr + editpair(':ul', ':eul', word mac) if listerr \= 0 then do "line_before .zf = noteline ""unmatched list tags", "(:ol,:dl,:gl,:sl,:ul) were found (see above)""" /* :eol,:edl,:egl,:esl,:eul*/ "line_before .zf = noteline "" the EDITOL", "macro can help determine nesting errors in these lists""" err = err + listerr end err = err + editpair(':xmp.', ':exmp.' , mac) if err \= 0 then do note = time('n') 'EDITCHEK completed, found errors' "line_before .zf = noteline (note)" end else do note = time('n') 'EDITCHEK completed, looks good' "line_before .zf = noteline (note)" end "loc 0" if rc \= 0 then exit 1 /* :ol. force this as an error if editchek run against itself*/ /* :ol. force this as an error if editchek run against itself*/ editpair: procedure expose errwatch arg open,close,range address "ISREDIT" "seek all" open range "(open1,open1L) = seek_counts" "seek all" close range "(close1,close1L) = seek_counts" open1=open1+0; close1=close1+0 if open1 = close1 then return 0 if errwatch = 0 then do errwatch = errwatch + 1 note="Related clists -- checkdup, editol, editpr, period, plichk" "line_before .zf = noteline (note)" note = "Clists that add entries or change --", "fixquote, fixpi, pinx, pinxdoit" "line_before .zf = noteline (note)" note = " pir, ungml, lcfix, editpr" "line_before .zf = noteline (note)" end note = "EDITCHEK found unmatched--", open"("open1"), "close"("close1")" "line_before .zfirst = noteline (note)" return 1