GEMScript commands

- (*) non-standard commands
- All parameters are strings (the behaviour parameters are not case-sensitive)
- The commands apply first on the block, and if no selection, on the entire text

 Name: appGetLongName
  Returns: "Joe"
  Comment: the name of the application (used for example by MultiStrip)

 Name: appGetVersion (*)
  Returns: the version number in string format "1.47"

 Name: close
  Comment: same as new in the 1.47 version, close the current text
           and make a new one. 

 Name: copy
  Comment: copy the text clipboard at text cursor position
  
 Name: cut
  Comment: cut the selected block to text clipboard
  
 Name: delete
  Comment: delete the selected block
  
 Name: deselect (*)
  Parameter 1: "block.start", "block.end" (default)
  Comment: deselect the current block and set the text cursor at start or end

 Name: destroyTags (*)
  Comment: destroy the tags (marked with < and <) in the current text
  
 Name: getAllCommands
  Returns: alphabetical sorted list of GEMScript commands

 Name: getFirstLink (*)
  Returns: a pathfile (unix format) or the complete URL, if not found nothing (false)
  Parameter 1: "link.source", "link.reference", "link.all" (default)
  Comment: you can choose with the parameter the type of link you want
           to get (source are mostly embedded files (ie images),
           reference are mostly http link to HTML document). The next links
           are get with getNextLink command
           
 Name: getFront
  Returns: the filename of current edited text.

 Name: getNextLink (*)
  Returns: a pahtfile, if not found nothing.
  Comment: you must call getFirstLink before use this command.
  
 Name: isASCIIMode (*)
  Returns: "1" (true) if the ASCII mode is selected, nothing (false) instead
  
 Name: isEntityMode (*)
  Returns: "1" (true) if the entity mode is active, nothing (false) instead
  
 Name: isLocked (*)
  Returns: "1" (true) if Joe has been locked, nothing (false) instead
  
 Name: isSelected (*)
  Returns: "1" (true) if a block selection exist in the edited text,
           nothing (false) instead
          
 Name: lock (*)
  Comment: lock the Joe's interface, only the window can be manipulated
           use this if you have long and exclusive GEMScript manipulations
           
 Name: merge
  Parameter 1: filename
  Parameter 2: "text.start", "texte.end", "text.cursor" (default)
  Comment: merge a textfile with the edited one.
  
 Name: new
  Comment: same as close for the 1.47 version (behaviour will be
           modified for multiple textfile managment)
           
 Name: open
  Parameter 1: filename
  Comment: loads a textfile
  
 Name: paste
  Comment: insert the text clipboard at text cursor position
  
 Name: print
  
 Name: quit
  Comment: there's no alert of confirmation

 Name: reduce (*)
  Comment: the double lines are made one, the lines are TRIMed
  
 Name: renameAs (*)
  Parameter 1: filename
  Comment: rename the current edited file with the new filename
  
 Name: replace (*)
  Parameter 1: string to search
  Parameter 2: string to replace
  Parameter 3: "case.sensitive", "case.indifferent" (default)
  Comment: replace all occurences in the block (if selection) or the text
  
 Name: save
  Comment: save the edited file
  
 Name: saveAs
  Parameter 1: filename
  Comment: save the edited file with a new filename
  
 Name: selectAll
  Comment: select all the text as block

 Name: selectFirstString (*)
  Parameter 1: string to search
  Parameter 2: "case.sensitive", "case.indifferent" (default)
  Returns: "1" (true) if found and selected, nothing (false) instead
  Comment: select the first found string, the next strings are selected
           with selectNextString command

 Name: selectFirstTag (*)
  Parameter 1: tagname such as IMG, TABLE or P (case indifferent)
  Parameter 2: "tag.group" (ie for tables), "tag.element" (default) (ie for images)
  Returns: "1" (true) if found and selected, nothing (false) instead
  Comment: select the first type of tag in the text. Its nature is defined
           in parameter 1 and its type (element or property/group) in parameter 2.
           The next same tags must be selected with selectNextTag

 Name: selectLine (*)
  Parameter 1: line number
  Returns: "1" (true) if the line number is correct and the line is selected
           nothing (false) if the line number is the last line and the 
           line is selected.
           An error occurs if the line number is too big.
           
 Name: selectNextString (*)
  Returns: "1" (true) if found and selected, nothing (false) instead
  Comment: you must specify the search with selectFirstString before
  
 Name: selectNextTag (*)
  Returns: "1" (true) if found and selected, nothing (false) instead
  Comment: you muit specify th search  with selectFirstTag before
  
 Name: selectTagUnderCursor (*)
  Parameter 1: "tag.group" (ie for tables), "tag.element" (default) (ie for images)
  Returns: "1" (true) if a tag has been found under cursor and selected
           nothing (false) if not
           
 Name: setLineEnd (*)
  Parameter 1: "CR" and/or "LF" (case indifferent)
  Comment: set the line end for saving the text
           (Atari/DOS is "CRLF", Unix is "LF", Mac is "CR")
  
 Name: toASCII (*)
  Comment: transform HTML entities to ASCII characters
  
 Name: toEntity (*)
  Comment: transform ASCII characters to HTML entities
  
 Name: toFront
  Parameter 1: filemane
  Comment: dummy command, will be used with multiple file managment
  
 Name: toHTMLChar (*)
  Parameter 1: "<" and/or ">" and/or "&" and/or """
  Comment: transform the reserved HTML characters to HTML entities (& to &amp;)
  
 Name: toReservedChar (*)
  Parameter 1: "<" and/or ">" and/or "&" and/or """
  Comment: transform the HTML entities &amp; and/or &lt; etc to HTML reserved characters
  
 Name: toUpper (*)
  Comment: set the text to capital letters
  
 Name: undo
  Comment: not implemented for the moment, a thousand apologizes :(
  
 Name: unlock
  Comment: unlock Joe and make it react to user commands
  
