***********************************************************
*
* Commands for Falcon.dll v1.51
*
***********************************************************

-- The commands in detail --

----------------
   FALC_shell
----------------

   Shell is a direct connection to the ShellExecute() Win32 API function. 
   Like 'exec', it starts programs, but the TCL exec command is blocking 
   and waits for the started app to exit before XiRCON regains control. 
   To me, this is not what windows is all about.  The shell command returns 
   immediatly and XiRCON is free to process.  Shell can also start documents 
   using the proper application as found in the registry.

   Usage: FALC_shell [-v <verb>] [-p <parms>] [-d <DefDirectory>] 
                     [-s <ShowStyle>] <file>

   NOTES: Options may be in any order, but the <file> must be the last 
          argument.  Use the "/" instead of the "\" as a directory 
          seperator in the <file> and <DefDirectory>.

   Returns: nothing or an error.

    [-v <verb>]
      Valid verbs are:

       open     Opens the file specified by <file>.  The file can be an 
                 executable file or a document file.  The file can be a 
                 Windows 95 folder to open. "open" is the default, if  
                 <verb> is missing.
       print    Prints the file specified by <file>.  The file should  
                 be a document file.  If the file is an executable 
                 file, the function opens the file, as if "open" had 
                 been specified.
       explore  The function explores the folder specified by <file>.
       *any*    Any action name located in the associate section of the 
                 registry for the filetype specified by <file>.
 
    [-s <ShowStyle>]
	     Valid showstyles are:

       hi[de]  Hides the window. Be careful with this; it truely hides it.
       ma[x]   Maximizes the window.
       mi[n]   Minimizes the window to start.
       no[rm]  Activates and displays a window normally. This is the default,
                if <ShowStyle> is missing.

     <DefDirectory> supports environment variable substitution.
     ex. <DefDirectory> might be: %temp%/blabla to get C:\windows\temp\blabla .

     - TCL examples:

      alias run {
        if {[llength [args]]>0}{
          FALC_shell -v open -s norm [join [args]]
        } else {
          FALC_shell -v open -s norm [FALC_fileopen -m -t "Open What File?"]
        }
        complete
      }

    - XiRC examples:

      /ftcl FALC_shell -p "c:/xircon/Readme.txt" -s min notepad
      /ftcl FALC_shell -v print c:/xircon/tcl.txt
      /ftcl FALC_shell -s norm [FALC_fileopen -m -t "Run a file" -d "%SystemDrive%/" -f "WinWord Files|*.doc;*.rtf|Text Files|*.txt;*.asc;*.bak|All Files|*.*"]

      - Some internet examples:
      /ftcl FALC_shell ftp://www.xircon.com/tcl
      /ftcl FALC_shell http://www.xircon.com/
      /ftcl FALC_shell "mailto:davygrvy@bigfoot.com?subject=Your falcon.dll is Awesome!"

      - to start explorer in a folder:
      /ftcl FALC_shell -v explore c:/xircon
      /ftcl FALC_shell c:/xircon


---------------
 FALC_fileopen
---------------

   Usage: FALC_fileopen [-n] [-M] [-o] [-h <helpfile> <context>] 
                        [-m] [-e] [-t <Title>] [-d <defaultDir>] 
                        [-f <filter>]
   NOTE: Options may be in any order. No parameters are required.

   Returns: The file selected or a {Tcl list} of files when the multi-select 
            (-M) option is used.

     [-t <Title>]
         Text the title bar should be.

     [-d <defaultDir>]
         From what directory should the dialog open to. Use "/" instead
         of "\" as the directory seperators.  Does environment variable
         substitution, too.

     [-f <filter>]
         The filter mask contains pairs of filter strings seperated by a "|" 
         (vertical bar) . The first string in each pair describes a filter 
         (for example, "Text Files"), and the second specifies the filter 
         pattern (for example, "*.TXT"). Multiple filters can be specified 
         for a single item by separating the filter pattern strings with a 
         semicolon (for example, "*.TXT;*.DOC;*.BAK"). If <filter> is empty,  
         the dialog box will not display any filters. The default filter is 
         the first.

     [-o]
         Uses the old-style Win3.1 dialogs, but with long filenames.

     [-M]
         Enables multi-select.  This will allow the dialog to return a 
         {Tcl list} of all files selected.
         (short, 8.3 names when -o is used too).

     [-n]
         Turns on the network button. Doesn't have any effect unless -o is 
         used, too.

//     REMOVED!  Now its always a modal dialog. Using this option won't error,
//               though.
//     [-m]
//         The dialog will be application-modal to XiRCON.  IOW: until a file is 
//         selected or cancel is pressed, XiRCON is stuck with this dialog in 
//         front of it.

     [-s]
         Uses a savefile dialog instead and allows the user to enter a filename
         that doesn't exist.  Disables multi-select if specified as well.  The 
         only visible thing that's really different is that the 'Open' button 
         now says 'Save'.

     [-e]
         Lets the dialog return a filename that doesn't exist.  Useful for
         a 'new...' script routine when its to create a file.

     [-h <helpfile> <context>]
         This option adds a help button to the dialog.  Use <helpfile> to set
         the help filename to call and open to the <context> topic.


    - XiRC examples:

       /ftcl FALC_fileopen -m -t "Select a file" -d "c:/windows" -f "Text Files|*.txt;*.asc|All Files|*.*"


-----------------
   FALC_wmatch
-----------------

   Usage: FALC_wmatch <Mask> <StringToMatch>
   Returns: 0 for nomatch, or # of characters matched"

   This string match function is a direct copy/paste [stolen?] from match.c
   in the eggdrop source code. Its only real difference from 
   [string match "h? *" "hi there!"] is that FALC_wmatch has 4 wildcards
   and a quoting character.

     - Wildcards:

       '*' = "matches ANYTHING" wildcard
       '%' = "matches ANY NUMBER OF NON-SPACE CHARS" wildcard
       '?' = "matches EXACTLY ONE CHARACTER" wildcard
       '~' = "matches AT LEAST ONE SPACE" wildcard

       '\' = The quoting character -- what overrides wildcards
             ie. \* your matching a literal *

     - Tcl examples:

       if [FALC_wmatch *.undernet.* [lindex [server] 0]] {
         set num_chanmodes 6
       } else {
         set num_chanmodes 3
       }

     - XiRC examples:

       /ftcl echo [FALC_wmatch "This~is~only~a~test" "This is only a      test"]
       /ftcl echo [FALC_wmatch "\\* in here" "NO asterisk in here"]

-----------------
   FALC_hmatch
-----------------

     Usage: FALC_hmatch <Mask> <StringToMatch>
     Returns: 0 for nomatch, or # of characters matched"

     This command searches the string backwards and might be faster 
     than 'string match'. Best suited for matching hostmasks.

     - Wildcards:

       '*' = "matches ANYTHING" wildcard
       '?' = "matches EXACTLY ONE CHARACTER" wildcard

       '\' = The quoting character -- what overrides wildcards
             ie. \* your matching a literal asterisk


----------------
    FALC_ini
----------------

  read/write ini files using the WinAPI calls.

  Usage: FALC_ini -w[rite]|-r[ead] <params>

  Thanks to Pete <slipstream@home.com> I found-out there is a 64k limit to an 
  ini file's size.   Be aware of this if you're using ini files to store a large
  amount of data.  Like, !seen lists dating back to '93 :)

  - With the -r switch the usage is: 
     FALC_ini -r[ead] <inifile> <section> <key> [<default>]

     Returns: a {Tcl list} of the data contained at that file/section/key combo.

     <inifile> 
        The fullpath of the ini file.  Use quotes to be sure filenames with 
        spaces are handled correctly.  Does environment variable substition, 
        too.  Use "/" instead of "\" as the directory seperator.

     <section> 
        The section name. If this is "NULL" then all the section names in the 
        ini file are returned.

     <key> 
        The key. If this is "NULL" then all the keys for the section are 
        returned.

     [<default>]
        Optional, this is the data returned if the inifile doesn't exist, the 
        section doesn't exist, the key isn't there, or the key is blank.

  - With the -w switch the usage is: 
     FALC_ini -w[rite] <inifile> <section> <key> <string>

     Returns: 0 on success or system error message on failure

     <string>
        The string to save. if this is "NULL" then the key is deleted.

     NOTE: if <key> is "NULL", the entire section is deleted.  If <string>
           is "NULL", that entry is deleted.  If both <key> and <string>
           are "NULL" then just a section name is written.


  - Tcl examples:

     - to iterate through the entire ini file, use something like this
       in a script:

       # get all the sections 
       foreach botnet [FALC_ini -r "c:/xircon/botnets.ini" NULL ""] {
         # get all the keys for the section
         foreach bot [FALC_ini -r "c:/xircon/botnets.ini" $botnet NULL] {
           set data [split [FALC_ini -r "c:/xircon/botnets.ini" $botnet $bot] :]
           menu status "BotNets->$botnet->$bot" \
             [subst {/raw privmsg \[my_nick\] :\001dcc chat chat [FALC_ip2long [lindex $data 0]] \
             [FALC_port [lindex $data 1]]\001}]
         }
       }

       where the 'botnet.ini' file could look like this:

       [lamestbots]
       WOW_lame=127.0.0.1:chargen
       morelame=123.45.67.89:discard
       suchlame=98.76.54.231:www-http
       [nolame]
       JoJo=189.23.20.3:23680

   - XiRC examples

     - writes an entry
      /ftcl FALC_ini -w %systemroot%/bla.ini somesection somekey "Some data contained here"
     - deletes that entry
      /ftcl FALC_ini -w %systemroot%/bla.ini somesection somekey NULL


----------------
   FALC_isip
----------------

   Tests to see if the <text> is a valid IP address.

   Usage: FALC_isip <text>
   Returns: 0 or 1

   - XiRC example:

     /ftcl if [FALC_isip 127.0.0.1] {echo "Yes"} {echo "No"}

----------------
  FALC_ip2long
----------------

   Converts an IP into a network long IP.

   Usage: FALC_ip2long <IP>
   Returns: a network long IP or 0 for an error

   - XiRC examples:

      /ftcl echo [FALC_ip2long 127.0.0.1]
      /ftcl raw privmsg [my_nick] :\001dcc chat chat [FALC_ip2long 123.45.67.89] [FALC_serv telnet]\001}]

----------------
  FALC_long2ip
----------------

   Converts a network long IP to a dotted4 IP.

   Usage: FALC_long2ip <LongIP>
   Returns: a dotted4 IP or 0 for an error.

   - XiRC example:

      /ftcl echo [FALC_long2ip 1234567890]
      /ftcl echo [FALC_long2ip [FALC_ip2long 127.0.0.1]]

----------------
   FALC_port
----------------

   Resolves the TCP port # from a service name. This is just a direct 
   pipe into the winsock's API getservbyname().

   Usage: FALC_port <ServiceName>|<PortNum>
   Returns: the port #.

   - XiRC example:

      /ftcl echo [FALC_port ftp]
      /ftcl echo [FALC_port telnet]
      /ftcl echo [FALC_port 80]

----------------
   FALC_ver
----------------

   Can be used for script dependancies.

   Usage: FALC_ver
   Returns: the version number of the falcon.dll

   - XiRC example:

      /ftcl echo [FALC_ver]

   - Tcl example:

      if {[FALC_ver] < 1.4} {
        error "this dll is too old"
      }


-----------------
   FALC_ial
-----------------

   Internal Address List routines.

   NOT implimented yet.  Watch this space.


-----------------
   FALC_mib
-----------------

   Get query replies from your built-in mib2 SNMP agent.  It'll do the same
   thing that the NETSTAT utility does and more (eventually).

   NOT implimented yet.  Watch this space.


-----------------
   FALC_icmp
-----------------

   Starts an ICMP datagram sniffer.  Will be extremely useful for a newk
   detector script.

   NOT implimented yet.  Watch this space.


-----------------
   FALC_ras
-----------------

   gets information and control MS's dial-up networking.  Will do things 
   like redailing your ISP, etc.

   NOT implimented yet.  Watch this space.


-----------------
   FALC_ddeserv
-----------------

   Add/Remove topics and handlers in the DDE server.

   NOT implimented yet.  Watch this space.

   The DDE server is active in this release, but has a BIG bug in it.  If the
   first loaded script that is using the DLL is reloaded (that's the script 
   that gets the server), the DDE server's interpreter is lost.  I haven't 
   figured-out a solution to this problem yet.  Please be aware of this bug 
   if you are using the server.  Although, at this time, I don't recommend 
   using it.

   To execute a script in the server's interpreter, do something like this:

   /ftcl FALC_dde -a poke Falcon action script "echo \"hello, this is a test\" status"


-----------------
   FALC_dde
-----------------

   Creates and maintains DDE conversations.

   Usage: FALC_dde [-async] <command> <service> <topic> <item> [<data>]

   "Warm" DDE links aren't working yet.  Watch this space.

   All data is sent and recieved using the CF_TEXT (standard Ansi text) format.
   Unicode is not supported.

     [-async]
        This switch lets the command return immediatly.  Only used with 
        the execute and poke commands.

     <command>
        Sets the DDE command. Valid commands are:

          e[xecute]  -- Sends <data> as a DDE XTYP_EXECUTE. the <item> is  
                        ignored. Set this to "".
          r[equest]  -- result will be the answer to the DDE question sent as an 
                        XTYP_REQUEST.
          p[oke]     -- Sends <data> as a DDE XTYP_POKE.
          s[ervices] -- Returns a {Tcl list} of ALL active DDE service/topic
                        pairs that support XTYP_WILDCONNECT. mIRC doesn't, BTW.

     <service>
        DDE service name.

     <topic>
        DDE topic name.

     <item>
        DDE item name.

     [<data>]
        text data to send.

   - XiRC examples:

     /ftcl echo [FALC_dde s "" "" ""]

     - using mIRC's DDE server:
     /ftcl echo [FALC_dde request mIRC version ""]
     /ftcl FALC_dde poke mIRC command "" "echo 4 -s Oh, how I bow in the presence of XiRCON, dear squire."
     /ftcl echo "There are [llength [FALC_dde request mIRC users #somechannel]] in #somechannel over in mIRC"

     - using the monologw.exe text-to-speech engine:
     /ftcl FALC_dde -a poke monolog talk "" "Greetings earthling. Take me to your leader"

     - modify your start menu
     /ftcl FALC_dde e progman progman "" "\[CreateGroup(Bogus)\]"
     /ftcl FALC_dde e progman progman "" "\[AddItem(notepad.exe,BogusNotePadLink)\]"
     /ftcl FALC_dde e progman progman "" "\[ShowGroup(Bogus,0)\]"
     /ftcl FALC_dde e progman progman "" "\[ShowGroup(Bogus,1)\]"
     /ftcl FALC_dde e progman progman "" "\[DeleteItem(BogusNotePadLink)\]"
     /ftcl FALC_dde e progman progman "" "\[DeleteGroup(Bogus)\]"


-----------------
FALC_askbox
-----------------

   Displays a messagebox and returns a value.

   Usage: FALC_askbox [-b <Buttons>] [-d <DefaultButton>] [-i <Icon>]
                      [-t <Title>] <message>
   NOTE: Options maybe in any order. <message> is required, and must be last.

   Return: the button pressed. Possible string returns: 
                abort, cancel, ignore, no, ok, retry, yes


     [-b <Buttons>]
       Valid values for <Buttons> are:
         abort_retry_ignore, ok, ok_cancel, retry_cancel, yes_no, yes_no_cancel

     [-d <DefaultButton>]
       Valid values for <DefaultButton> are:
         abort, retry, ignore, ok, cancel, yes, no

     [-i <Icon>]
       Valid values for <Icon> are:
         exclamation, info, question, stop, or 0 (to explictly say no icon)
         No icon is the default.

     [-t <Title>]
       Will set the titlebar of messagebox to be <Title>.

     <message>
       The message you want to say.

   - Script examples:

       switch [FALC_askbox -b yes_no_cancel "Press a button"] {
         yes    { echo "you pressed [color highlight]YES" }
         no     { echo "you pressed [color highlight]NO" }
         cancel { echo "you pressed [color highlight]CANCEL" }
       }

   - XiRC examples:

       /ftcl echo [FALC_askbox -b yes_no -d no -i question -t "this is a test" "Are you older than Bill Clinton?"]


-----------------
   FALC_listbox
-----------------

   NEW!

   Displays a popup dialog that contains a list of entries to choose 
   from and returns the selection.  You could use FALC_dialog to do the 
   same thing, but this way is easiest.

   Usage: FALC_listbox [-t <Title>] [-m <message>] [-x] [-e] <list>
                      
   NOTE: Options maybe in any order. <list> is required, and must be 
         last.

   Return: the selected item or nothing when cancel is pressed.


    [-t <title>]
      The title you would like displayed in the titlebar.

    [-m <message>]
      The message you would like.

    [-x]
      Sets the combobox to 'extended user-interface'.  Instead of F4
      causing the list to dropdown, the arrows keys will now do it.
      Personaly, I like this style.

    [-e]
      Uses a dropdown combobox rather that a dropdownlist.  This allows the 
      selection to be edited.

    <list>
      The {Tcl list} of elements you would like placed in the combobox.
      The amount of entries is unlimited, but no element by itself should be 
      greater than 256 characters.


   - Script examples:

       set message "Select wisely from the given list"
       set choices [list "The road less traveled" "The windy path into the hills" \
          "Hitchhike to Alaska" "I-580 North, a map, and toll fare" "California or Bust!" \
          "The desert, do acid, and talk to a wise snake" "Not today, I'll pass"]
       if {[set answer [FALC_listbox -m $message -x $choices]] != ""} {
         echo $answer
       } else {
         echo "You have chosen not to choose"
       }

   - XiRC examples:

       /ftcl echo [FALC_listbox -x [list "entry1" "entry2" "entry4" "entry5"]]


-----------------
   FALC_dialog
-----------------

   NEW!

   The GUI flagship command in falcon.dll is here at last!

   A very powerful command that builds and displays dynamic dialogboxes.  The 
   dialog is always displayed in the center of the screen and modal to XiRCON.
   An OK and a Cancel button are always included for you.  Only the system 
   default behavior for the items is done.  I am not intercepting window's 
   messages to change behavior.  Best uses would be for creating a setup
   dialog for your script.  In this way, the user can see and set all the 
   options in your script in a wonderfully graphical way :)

   Usage: FALC_dialog [-t <Title>] [-h <helpfile>] <width> <height> <ItemsList>
                      
   NOTE: Options may be in any order.

   Returns: a {Tcl list} whos 0 index are the names are the IDs of the items 
            and the 1 index is the return value or nothing at all when cancel is 
            pressed.

    [-t <title>]
      The title you would like displayed in the titlebar.

    [-h <helpfile>]
      The path of the helpfile to be associated with the elements in 
      the dialog.

    <width>
      The width of the dialog in DLUs.  A DLU is independent of
      screen resolution.
      
    <height>
      The height of the dialog in DLUs.

    <DialogItemList>
      A {Tcl list} of items to add to the dialog. A single item's usage 
      (or form) would be:

      {<Type> [<options>] <ID> <x> <y> <width> <height> [<value>]}

       <Type>
         Valid values for <Type> are:
           combo, label, check, edit

         combo is a combobox.  It returns the item selected (or index with -s).  
         <options> for a combo include:

           [-h <HelpID>]
             Sets the context help ID. Ignored if <helpfile> hasn't been set 
             for the dialog.

           [-x]
             Sets the combobox to 'extended user-interface'.  Instead of F4
             causing the list to dropdown, the arrows keys will now do it.
             Personaly, I like this style.

           [-e]
             Uses a dropdown combobox rather that a dropdownlist.  Allows the 
             selection to be edited.

           [-s <index>]
             Sets the combo to the given zero-based <index> in <value> and
             tells it to return the selected index instead of the text.

           [<value>]
             In the case of the combo, <value> is a {Tcl list} of elements 
             you would like placed in the combobox.  The amount of entries 
             is unlimited.


         label is a static label.  There is no return value.
         <options> for a label include:

           [-c]
             Center align the text.

           [<value>]
             The text you would like to display.  


         check is a checkbox.  It returns a value of 0 (zero) if the check
         wasn't X'ed or 1 if it was.  <options> for a check include:

           [-h <HelpID>]
             Sets the context help ID. Ignored if <helpfile> hasn't been set 
             for the dialog.

           [-v <boolean>]
             The boolean value for the check to start with. 1,on,yes,or true
             puts an X in the check.

           [<value>]
             What you would like displayed.

         edit is an edit control.  It returns the text contained in the edit 
         control for its return.  <options> for an edit include:

           [-h <HelpID>]
             Sets the context help ID. Ignored if <helpfile> hasn't been set 
             for the dialog.

           [<value>]
             The text you would like the edit control to start with.



       <ID>
         The text ID you would like to give the control.  Its used in
         the return array to identify what control has what return value.

       <x>
         upper-left horizontal origin distance in DLUs.

       <y>
         upper-left vertical origin distance in DLUs.

       <width>
         width of the control in DLUs.

       <height>
         height of the control in DLUs.

       [<value>]
         This is dependent on the type of control.  See the description 
         for <Type>.



   - Script examples:

     set ItemsList [list]
     lappend ItemsList [list label lbl1 5 15 20 10 "Host:"]
     lappend ItemsList [list edit POPhost 25 13 104 12 [get_cookie POPhost]
     lappend ItemsList [list label lbl2 5 30 20 10 "User:"]
     lappend ItemsList [list edit POPuser 25 28 104 12 [get_cookie POPuser]]
     lappend ItemsList [list label lbl3 5 45 20 10 "Pass:"]
     lappend ItemsList [list edit POPpass 25 43 104 12 [get_cookie POPpass]]
     lappend ItemsList [list check -v [get_cookie POPautochk] POPautochk 14 62 70 10 "autocheck every:"]
     lappend ItemsList [list edit POPautochktime 84 60 14 12 [get_cookie POPautochktime]]
     lappend ItemsList [list label lbl4 100 63 30 10 "minutes"]

     if [llength [set answer [FALC_dialog -t "POP3 Email Checker" 146 84 $ItemsList]]] {
       foreach control $answer {
         set_cookie [lindex $control 0] [lindex $control 1]
       }
       echo "*** Updated POP3 Email Checker options" status
     }

   - XiRC examples:

     /ftcl echo [FALC_dialog 150 44 [list [list combo -x cmb1 15 15 104 67 [list "entry1" "entry2" "entry3"]]]]


-----------------
   FALC_yield
-----------------

   NEW!

   Lets XiRCON process pending events in it's queue.  Its best use is during
   long script procedures that lock the GUI momentarily.  Calling FALC_yield
   will let XiRCON redraw itself, and other events while the long script 
   procedure has context.

   Usage:  FALC_yield

   Returns: 1 if an event was processed or 0 if not.

   - Script example:

     for {set outer 0} {$outer < 1000} {incr outer} {
       while [FALC_yield] {}
       for {set inner 0} {$inner < 1000} {incr inner} {
         FALC_yield
         set answer [expr $outer * $inner]
       }
     }
     echo "Done at last!" status


-----------------
   FALC_winhelp
-----------------

     Opens winhelp.exe to a file with options that you specify. Now I've given 
     you a reason to make a real window's helpfile for your scripts :)

     Usage: FALC_winhelp <filename> <optionname> ...


     <filename>
        string containing the path, if necessary, and the name of the Help 
        file that the Help application is to display.

        The filename may be followed by an angle bracket (>) and the name of 
        a secondary window if the topic is to be displayed in a secondary 
        window rather than in the primary window. The name of the secondary 
        window must have been defined in the [WINDOWS] section of the Help 
        project (.HPJ) file.


     <optionname>
       Valid option names and associated parameter are:

       command <macro>
         Executes a Help macro or macro string command.
       
       contents
         Displays the topic specified by the Contents option in the [OPTIONS] 
         section of the Help project (.HPJ) file.  This is for backward 
         compatibility.  New applications should provide a .CNT file and use 
         the finder command.

       context <index>
         Displays the topic identified by the specified context identifier 
         defined in the [MAP] section of the .HPJ file.

       contextpopup <index>
         Displays, in a pop-up window, the topic identified by the specified 
         context identifier defined in the [MAP] section of the .HPJ file.

       finder
         Displays the Help Topics dialog box. The Help Topics dialog box lets 
         the user select topics to display by viewing the titles of the 
         topics, the keywords associated with the topics, or the words and 
         phrases found in the topics. Applications typically display the Help 
         Topics dialog box when the user chooses a command, such as Help 
         Topics, from the Help menu. An application may also display this 
         dialog box if the user presses the F1 key when no specific window, 
         control, or menu in the application has the focus or is active.

       forcefile
         Ensures that WinHelp is displaying the correct help file. If the 
         incorrect help file is being displayed, WinHelp opens the correct 
         one; otherwise, there is no action.

       helponhelp
         Displays help on how to use Windows Help, if the WINHELP.HLP file 
         is available.

       index
         Displays the Index in the Help Topics dialog box. This command 
         is for backward compatibility. New applications should use the 
         finder command.

       key <keyword>
         Displays the topic in the keyword table that matches the specified 
         keyword, if there is an exact match. If there is more than one match, 
         displays the Index with the topics listed in the Topics Found list 
         box.

       partialkey <keyword>
         Displays the topic in the keyword table that matches the specified 
         keyword, if there is an exact match. If there is more than one match, 
         displays the Index tab. To display the Index without passing a 
         keyword, you should use an empty string ("").

       quit
         Informs the Help application that it is no longer needed. If 
         no other applications have asked for Help, Windows closes the 
         Help application.

       setcontents <index>
         Specifies the Contents topic. The Help application displays 
         this topic when the user clicks the Contents button.

       setindex <index>
         Specifies a keyword table to be displayed in the Index of the 
         Help Topics dialog box.



-----------------
   FALC_update
-----------------

     This command !MUST! be placed in XiRC's 'on timer' event.

     Use this:

     on timer {
       if {[llength [info commands FALC_update]]} { FALC_update }
     }


     This command gives Falcon the interpreter so it can process asyncronous
     events.  Tcl does have an internal notifier for file/socket events, but 
     XiRC doesn't make this available for extensions.  This is my work-around. 
     All scripts that load this extension !MUST! have FALC_update in their 
     'on timer' event or never expect the DDE server to work.


----------------
   FALC_debug
----------------

     Displays some debugging info about falcon. Try it. Its fun.

     Usage: FALC_debug [args]
     Returns: nothing



-- end of file.. go write some scripts!