home *** CD-ROM | disk | FTP | other *** search
/ The AGA Experience 2 / agavol2.iso / software / utilities / comms / html-heaven / arexx / html-golded.rexx < prev    next >
OS/2 REXX Batch file  |  1996-01-08  |  5KB  |  116 lines

  1. /* HTML-Helper Arexx script for GoldEd
  2.  * Ver      : 1.2 (7th January 1996)
  3.  * Copyright: Paul Kolenbrander (InterNet: paul@serena.iaehv.nl)
  4.  * Function : Pass on the HTML commands from HTML-Helper to GoldEd.
  5.  *            Now it also detects if there is a block defined in 
  6.  *            GoldEd. If so, it'll split tag pairs and wrap them 
  7.  *            around that block. Thanks to Cletus Baker for giving me
  8.  *            the basics on how to do this.
  9.  * Input    : HTMLCMD - The HTML command to be inserted.
  10. */
  11.  
  12. OPTIONS RESULTS                                 /* enable return codes     */
  13. PARSE ARG MYCMD HTMLCMD 
  14.  
  15. HTMLCMD = SUBSTR(HTMLCMD,2, LENGTH(HTMLCMD)-1) /* strip leading space      */
  16. HTMLCMD = SUBSTR(HTMLCMD,2, LENGTH(HTMLCMD)-2) /* strip leading/trailing " */
  17. posit=1                                        /* replace all '"' by '*"'  */
  18. NEWSTRING=""                                   /* as GEd eats single '"'.  */ 
  19. max=LENGTH(HTMLCMD)
  20. DO UNTIL posit = max
  21.    IF SUBSTR(HTMLCMD,posit,1) = '"' THEN
  22.       NEWSTRING = NEWSTRING || '*'
  23.    NEWSTRING = NEWSTRING || SUBSTR(HTMLCMD,posit,1)
  24.    posit=posit+1
  25. END  
  26. NEWSTRING = NEWSTRING || SUBSTR(HTMLCMD,LENGTH(HTMLCMD),1)
  27. HTMLCMD=NEWSTRING
  28.  
  29. HTMLCMD='"'||HTMLCMD||'"'                   /* Now enclose in "" again */
  30.  
  31. ADDRESS 'GOLDED.1'
  32.  
  33. 'LOCK CURRENT'                              /* lock GUI, gain access   */
  34. OPTIONS FAILAT 6                            /* ignore warnings         */
  35. SIGNAL ON SYNTAX                            /* ensure clean exit       */
  36.  
  37. 'FOLD ALL OPEN=TRUE'                        /* open all folds          */
  38.  
  39. IF POS('><',HTMLCMD) ~= 0 THEN DO           /* Is it a split command?  */
  40.                                             /* If yes, then....        */
  41.    'QUERY BLOCK'                            /* Check if there's a block*/
  42.    IF (result = 2) THEN DO                  /* character block mode    */
  43.       CMD2 = right(HTMLCMD,(LENGTH(HTMLCMD)-(LASTPOS('<',HTMLCMD))+1))
  44.       CMD1 = substr(HTMLCMD,1,(LENGTH(HTMLCMD)-LENGTH(CMD2)))
  45.       CMD1 = CMD1||'"'                      /* add a trailing "        */
  46.       CMD2 = '"'||CMD2                      /* add a leading "         */
  47.       'GOTO BLAST'                          /* Goto end of Block       */                                                     
  48.       'TEXT STAY T=' CMD2                   /* Insert close at cursor. */
  49.  
  50.       'GOTO BFIRST'
  51.       'TEXT STAY T=' CMD1                   /* Insert open at cursor.  */
  52.       'MARK HIDE'
  53.    END
  54.    ELSE DO
  55.       IF (result = 1) THEN DO               /* Line block mode         */
  56.          CMD2 = right(HTMLCMD,(LENGTH(HTMLCMD)-(LASTPOS('<',HTMLCMD))+1))
  57.          CMD1 = substr(HTMLCMD,1,(LENGTH(HTMLCMD)-LENGTH(CMD2)))
  58.          CMD1 = CMD1||'"'                   /* add a trailing "        */
  59.          CMD2 = '"'||CMD2                   /* add a leading "         */
  60.          'QUERY BLOCKB'                     /* Get Block end line      */
  61.          'GOTO LINE='result + 1             /* And add a line          */
  62.          'GOTO COLUMN=1'                    /* goto first column       */
  63.          'TEXT CR T=' CMD2                  /* insert text and add CR  */
  64.          'GOTO BFIRST'                      /* Goto block begin        */
  65.          'TEXT CR T=' CMD1                  /* Insert open at cursor.  */
  66.          'MARK HIDE'
  67.       END
  68.       ELSE DO                               /* no block mode           */
  69.         'TEXT T=' HTMLCMD                   /* insert at current pos.  */
  70.       END
  71.    END
  72. END
  73. ELSE DO
  74.    'TEXT T=' HTMLCMD                        /* insert at current pos.  */
  75. END
  76.  
  77. IF MYCMD = 'SAVE' THEN DO
  78.    'SAVE ALL'
  79.    'QUERY PATH'
  80.    MYPAD = result
  81.    'QUERY FILE'
  82.    MYFILE = result
  83.    'UNLOCK'                                 /* And unlock the GUI      */
  84.    IF RIGHT(MYPAD,1) = ':' THEN DO
  85.       MYPAD = MYPAD||MYFILE
  86.    END
  87.    ELSE DO
  88.       MYPAD = MYPAD||'/'
  89.       MYPAD = MYPAD||MYFILE
  90.    END 
  91.  
  92.    IF OPEN('tempname', 'T:TempRexxFile', 'READ') ~= 1 THEN DO  
  93.       OPEN('tempname','T:TempRexxFile','WRITE')
  94.       WRITELN('tempname',MYPAD)
  95.       CLOSE('tempname')
  96.       ADDRESS COMMAND 'rx S:HTMLVIEW.rexx '||MYPAD
  97.    END
  98.    ELSE DO
  99.       OLDFILE = READLN('tempname')
  100.       IF UPPER(OLDFILE) = UPPER(MYPAD) THEN DO
  101.          ADDRESS COMMAND 'rx S:HTMLVIEW.rexx'
  102.       END
  103.       ELSE DO
  104.          OPEN('tempname','T:TempRexxFile','WRITE')
  105.          WRITELN('tempname',MYPAD)
  106.          CLOSE('tempname')
  107.          ADDRESS COMMAND 'rx S:HTMLVIEW.rexx '||MYPAD
  108.       END
  109.    END
  110.  
  111. END
  112. ELSE DO
  113.    'UNLOCK'                                 /* And unlock the GUI      */
  114. END
  115. EXIT
  116.