Det er efterhånden lang tid siden, jeg har skrevet et tip om EDIT-macroer. I denne uge vil jeg derfor fortælle lidt om, hvordan man sætter sin EDIT-macro i stand til at genkende linie-kommandoer og bruge dem til noget fornuftigt.
Jeg vil som sædvanligt starte med et eksempel, der viser alle herlighederne, for dem er der mange af:
Jeg tager forbehold for stavefejl, da EDIT-macroen er en omformuleret og kraftigt reduceret udgave af en fuldt udbygget udgave. Denne EDIT-macro mangler også proceduren ISPF_MESSAGE.
Hovedtrækkene er, at option NOPROCESS er krævet på MACRO-kommandoen for at få den til at forstå linie-kommandoer. Dernæst fortæller PROCESS-kommandoen, hvilke linie-kommandoer, man vil forstå og hvordan. Jeg har her valgt en blok-kommando (RANGE) kaldet S. Der er intet i vejen for at bruge eksisterende linie-kommandoer og man kan angive flere adskilt af blanke.
Returkoden fra PROCESS-kommandoen bestemmer, hvad man så kan foretage sig. Returkode 0 er alt OK og man har nu adgang til 2 system-definerede labels kaldet .ZFRANGE og .ZLRANGE, når man benytter option RANGE på PROCESS-kommandoen. .ZFRANGE peger på den første linie og .ZLRANGE på den sidste. De andre returkoders betydning håber jeg fremgår af programmet. Læg mærke til, at RANGE_CMD returnerer den valgte linie-kommando. Den er nødvendig ved returkode 0, hvis man har angivet flere forskellige linie-kommandoer på RANGE-kommandoen.