home *** CD-ROM | disk | FTP | other *** search
- /* HTML-Helper Arexx script for GoldEd
- * Ver : 1.2 (7th January 1996)
- * Copyright: Paul Kolenbrander (InterNet: paul@serena.iaehv.nl)
- * Function : Pass on the HTML commands from HTML-Helper to GoldEd.
- * Now it also detects if there is a block defined in
- * GoldEd. If so, it'll split tag pairs and wrap them
- * around that block. Thanks to Cletus Baker for giving me
- * the basics on how to do this.
- * Input : HTMLCMD - The HTML command to be inserted.
- */
-
- OPTIONS RESULTS /* enable return codes */
- PARSE ARG MYCMD HTMLCMD
-
- HTMLCMD = SUBSTR(HTMLCMD,2, LENGTH(HTMLCMD)-1) /* strip leading space */
- HTMLCMD = SUBSTR(HTMLCMD,2, LENGTH(HTMLCMD)-2) /* strip leading/trailing " */
- posit=1 /* replace all '"' by '*"' */
- NEWSTRING="" /* as GEd eats single '"'. */
- max=LENGTH(HTMLCMD)
- DO UNTIL posit = max
- IF SUBSTR(HTMLCMD,posit,1) = '"' THEN
- NEWSTRING = NEWSTRING || '*'
- NEWSTRING = NEWSTRING || SUBSTR(HTMLCMD,posit,1)
- posit=posit+1
- END
- NEWSTRING = NEWSTRING || SUBSTR(HTMLCMD,LENGTH(HTMLCMD),1)
- HTMLCMD=NEWSTRING
-
- HTMLCMD='"'||HTMLCMD||'"' /* Now enclose in "" again */
-
- ADDRESS 'GOLDED.1'
-
- 'LOCK CURRENT' /* lock GUI, gain access */
- OPTIONS FAILAT 6 /* ignore warnings */
- SIGNAL ON SYNTAX /* ensure clean exit */
-
- 'FOLD ALL OPEN=TRUE' /* open all folds */
-
- IF POS('><',HTMLCMD) ~= 0 THEN DO /* Is it a split command? */
- /* If yes, then.... */
- 'QUERY BLOCK' /* Check if there's a block*/
- IF (result = 2) THEN DO /* character block mode */
- CMD2 = right(HTMLCMD,(LENGTH(HTMLCMD)-(LASTPOS('<',HTMLCMD))+1))
- CMD1 = substr(HTMLCMD,1,(LENGTH(HTMLCMD)-LENGTH(CMD2)))
- CMD1 = CMD1||'"' /* add a trailing " */
- CMD2 = '"'||CMD2 /* add a leading " */
- 'GOTO BLAST' /* Goto end of Block */
- 'TEXT STAY T=' CMD2 /* Insert close at cursor. */
-
- 'GOTO BFIRST'
- 'TEXT STAY T=' CMD1 /* Insert open at cursor. */
- 'MARK HIDE'
- END
- ELSE DO
- IF (result = 1) THEN DO /* Line block mode */
- CMD2 = right(HTMLCMD,(LENGTH(HTMLCMD)-(LASTPOS('<',HTMLCMD))+1))
- CMD1 = substr(HTMLCMD,1,(LENGTH(HTMLCMD)-LENGTH(CMD2)))
- CMD1 = CMD1||'"' /* add a trailing " */
- CMD2 = '"'||CMD2 /* add a leading " */
- 'QUERY BLOCKB' /* Get Block end line */
- 'GOTO LINE='result + 1 /* And add a line */
- 'GOTO COLUMN=1' /* goto first column */
- 'TEXT CR T=' CMD2 /* insert text and add CR */
- 'GOTO BFIRST' /* Goto block begin */
- 'TEXT CR T=' CMD1 /* Insert open at cursor. */
- 'MARK HIDE'
- END
- ELSE DO /* no block mode */
- 'TEXT T=' HTMLCMD /* insert at current pos. */
- END
- END
- END
- ELSE DO
- 'TEXT T=' HTMLCMD /* insert at current pos. */
- END
-
- IF MYCMD = 'SAVE' THEN DO
- 'SAVE ALL'
- 'QUERY PATH'
- MYPAD = result
- 'QUERY FILE'
- MYFILE = result
- 'UNLOCK' /* And unlock the GUI */
- IF RIGHT(MYPAD,1) = ':' THEN DO
- MYPAD = MYPAD||MYFILE
- END
- ELSE DO
- MYPAD = MYPAD||'/'
- MYPAD = MYPAD||MYFILE
- END
-
- IF OPEN('tempname', 'T:TempRexxFile', 'READ') ~= 1 THEN DO
- OPEN('tempname','T:TempRexxFile','WRITE')
- WRITELN('tempname',MYPAD)
- CLOSE('tempname')
- ADDRESS COMMAND 'rx S:HTMLVIEW.rexx '||MYPAD
- END
- ELSE DO
- OLDFILE = READLN('tempname')
- IF UPPER(OLDFILE) = UPPER(MYPAD) THEN DO
- ADDRESS COMMAND 'rx S:HTMLVIEW.rexx'
- END
- ELSE DO
- OPEN('tempname','T:TempRexxFile','WRITE')
- WRITELN('tempname',MYPAD)
- CLOSE('tempname')
- ADDRESS COMMAND 'rx S:HTMLVIEW.rexx '||MYPAD
- END
- END
-
- END
- ELSE DO
- 'UNLOCK' /* And unlock the GUI */
- END
- EXIT
-