<HTML><h1>How Microhelp decodes a hyperlink</h1>

When you click on a blue hyperlink, Microhelp looks up the string in the
command &lt;a href="string"> and takes the following steps:

  Checks if the string is empty.  If so it ignores the click.
 
  Stores the current text position for use with the <a href="Microhelp:Microhelp.Contents#Back">Back</a> command.
 
  If the string starts with '#' Microhelp treats this as a link to a place
   in the same file.

  Microhelp searches the string for the characters ':' or '$' in the string.
   If these are found (ie the filename is rooted) the whole string is
   copied as the new filename.

  Otherwise, Microhelp takes the current filename and removes the name of
   the current page from the end.  Then it removes a directory for every
   occurence of '^.' at the start of the string.  The '^." entries are then
   removed from the string, and the rest of the string is appended to the
   filename.

  The new filename is scanned for the character '#', starting at the end and
   working backwards.  If a ':' is encountered the search is abandoned.
   If a '#' is found it, and the text following it are removed and <a name="anchor">copied as
   an anchor name</a>.
   
  Microhelp attempts to find the file.  There are four possible outcomes:

	(1) Microhelp finds a text file.  The text is loaded and displayed
	    in Microhelps window.

	(2) The file exists but is not text.  Microhelp issues commands to
	    the filer, which runs the file as if it were double-clicked.

	(3) The file is a directory.  If the directory name contains a '!'
	    Microhelp will run it, otherwise it will ask the Filer to open
	    a viewer for the directory.

	(4) The file does not exist.  An error is generated.

  If the file is HTML text, Microhelp recalls whether it stored an anchor
   for this file (see <a href="#anchor">above</a>).  If so, Microhelp jumps to the anchor name
   in the text.

