/* ** $VER: end_environ.ged 0.003 (12 May 1996) ** ** © 1996 Stefan Berendes ** ** PROGRAMNAME: end_environ.ged ** ** FUNCTION: auto \end the current environment ** ** $HISTORY: ** ** 12 May 1996 : 000.003 : changing word spacing chars does not work ** 02 May 1996 : 000.002 : set/reset word spacing characters ** 30 Jan 1996 : 000.001 : initial release */ OPTIONS RESULTS /* enable return codes */ if (LEFT(ADDRESS(), 6) ~= "GOLDED") then /* not started by GoldEd ? */ address 'GOLDED.1' 'LOCK CURRENT' /* lock GUI, gain access */ OPTIONS FAILAT 6 /* ignore warnings */ SIGNAL ON SYNTAX /* ensure clean exit */ /* ------------------------ INSERT YOUR CODE HERE: ------------------- */ 'PING 0' /* remember our position */ endcnt = 1 /* count of number of \end a \begin is needed for */ DO WHILE endcnt > 0 'LEFT' 'FIND QUIET PREV WILD=TRUE STRING="#?(\end|\begin)#?"' IF RC = 0 THEN DO 'RIGHT' 'QUERY WORD VAR CURRENTMATCH' SELECT WHEN UPPER(CURRENTMATCH) = "END" THEN DO endcnt = endcnt + 1 END WHEN UPPER(CURRENTMATCH) = "BEGIN" THEN DO endcnt = endcnt - 1 END OTHERWISE SAY "What the `ell `appened?" END 'LEFT' END ELSE DO 'REQUEST TITLE="TeX for GoldED" PROBLEM="No matching \begin found."' 'PONG 0' 'UNLOCK' EXIT END END 'RIGHT' 'NEXT' 'QUERY WORD VAR ENVNAME' 'PONG 0' 'FIX VAR ENVNAME' 'TEXT T="\end{'|| ENVNAME || '}"' /* ---------------------------- END OF YOUR CODE --------------------- */ 'UNLOCK' /* VERY important: unlock GUI */ EXIT SYNTAX: SAY "Sorry, error line" SIGL ":" ERRORTEXT(RC) ":-(" 'UNLOCK' EXIT