       +--------------------------------------------+
       | FI2config v2.10 (FileInfo II configurator) |
       |      (c) 1994-1998 Thierry Godefroy.       |
       +--------------------------------------------+


A.- LEGAL STUFF
    ~~~~~~~~~~~
a.- Copyright notice:
    ~~~~~~~~~~~~~~~~
 FI2config  v2.10  is a freeware,  it is  NOT  in the public
 domain.  This software  is copyright  (c) 1994-1998 Thierry
 Godefroy, all rights reserved in all countries.

 You are granted a restrictive and limited license to:
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  - use  this  software  free of charge  for your  own usage
    and/or  in your  own programs  (including commercial and
    shareware programs);

  - make as many copies of this software as you like;

  - give  to others  as many copies  of this software as you
    like,  by any  means  you like  (BBS,  Internet,  disks,
    CD-ROM, software libraries, etc...);

 provided however that:
 ~~~~~~~~~~~~~~~~~~~~~
  - when you  incorporate  my software  into yours,  this is
    mentioned;

  - any  copy   given  to  another   person  be  entire  and
    unmodified,  i.e.  contains all the unmodified  files of
    this software, including this copyright notice;

  - any copy given  to another person  be so on a non-profit
    and no benefit basis  (i.e. you may charge for the media
    and mailing cost ONLY);

  - you  do  not  claim  for  any  ownership/rights  on this
    software  and you  do not place  any restriction  on its
    further distribution.

b.- Disclaimers:
    ~~~~~~~~~~~
 The author  cannot be held  liable for any  loss  or damage
 -direct or not-  resulting from the use  of this program or
 its documentation.  Although carefully tested, this program
 is not guaranteed  being bug free.  This software  is free,
 use it at your own risks or just don't use it at all.

c.- Misc.:
    ~~~~~
 FI2config has been compiled  with Qliberator v3.36 (c) 1991
 Liberation Software. The menus have been created with Easy-
 Ptr v3.50 (c) 1991 Albin Hessler Software.
 This  program runs  under "Qjump extended environment"  (c)
 QJUMP Ltd  and  uses "Qmenu"  (c) 1989-96  Jochen  Merz  if
 present in your system.


B.- GENERAL FEATURES & REQUIREMENTS:
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 FI2config v2.10 allows you to configure FileInfo II v3.1x.

 To  run,   this  program  needs  the  Extended  Environment
 (PTR_GEN, WMAN and  HOT_REXT), the Toolkit II and  Qlib_run
 (v3.36mod at least).  These files must  either be in ROM or
 loaded once for all as resident procedures.

 Version "3.36mod(ified)"  of QLib_run rectifies two bugs of
 v3.36  which prevented  to get the  error  code with  ERNUM
 (ERNUM was in fact equivalent to ERLIN !). "FI2config" will
 not trap errors properly without this version 3.36mod which
 will  replace  any  former  versions  with  benefit  (total
 ascending  compatibility).  You can  check  the  version of
 QLib_run installed by typing the Super Basic command "Q_L".

 Although the QMenu extensions (MENU_REXT) can  be dispensed
 with,  they greatly  ease the use  of the program thanks to
 their file selector.  The "MENU_REXT"  file can be found in
 some commercial software ("QD" for instance).

 Furthermore  you must load the FileInfo II  thing in memory
 (with something like:  LRESPR FileInfo2_bin)  before trying
 to configure it.


C.- USING FI2config:
    ~~~~~~~~~~~~~~~~
1.- The help menu:
    ~~~~~~~~~~~~~~
 Four buttons allow to:

  - return to the main menu,
  - read again the help file from the start,
  - display the next page,
  - display the next line.

2.- The main menu:
    ~~~~~~~~~~~~~~
 The top left  four buttons  respectively enable to move the
 menu around,  to leave the program, to call this  help menu
 ("?" button) and to make the program dormant and reduce its
 display size to a button one (the "zzz" button  that can be
 activated if - and only if - QPAC2 has been loaded).

 The bottom left  four buttons entitle you  to load and save
 FileInfo II  either from/to  a file or from/to memory.  The
 current FileInfo II data base is not changed until you save
 the data  to memory  from  FI2config  or you  LRESPR  a new
 "FileInfo2_bin" file.

2.1.- The "Extensions" window:
      ~~~~~~~~~~~~~~~~~~~~~~~~
 The left window  ("Extensions")  entitles you to choose the
 extension to be configured.

 When  FI2config starts,  it loads  the current  FileInfo II
 data base  from  memory  and  presents  you with  the known
 extensions.
 If FI2config  was passed  a filename  in its  command  line
 (e.g. EX FI2config_obj;"my_filename") then the extension of
 this filename is extracted and FI2config either selects the
 corresponding extension  as the current one (if this exten-
 sion already exists in the FileInfo II database) or creates
 a new extension and prompts  for the first action name.  If
 "my_filename"  did not get  any extension,  then  FI2config
 will select  the joker  extension  ("*"),  or create  it if
 needed.
 If no command line was passed to FI2config,  then the first
 extension of the data base  is selected  as the current one
 in the FI2config menu.

 Some empty slots (11 or 12) are allocated by FI2config into
 the "Extensions"  window each time  a new data base is loa-
 ded.  This entitles you to add  new extensions  to the data
 base;  if this number of free slots is not enough, then you
 will have to save  (either to file or memory)  and  to load
 back the current configuration  so that new empty slots are
 allocated.

 Issuing a "hit event"  (left mouse button  or space bar) on
 an extension name  into the "Extensions"  window selects it
 as the current extension  and makes FI2config  updating the
 windows  so to reflect  the current data  configuration for
 this extension.

 Issuing  a "do event"  (right mouse button  or ENTER) on an
 extension name (or issuing a hit on an empty slot),  allows
 to edit  the extension  name.  If you enter an empty string
 for  this extension  name  then  the extension  and all its
 associated  data will be cleared and the corresponding slot
 in the "Extensions" window will be made empty.

 Valid  extension names  are made up  of one to four  alpha-
 numeric characters ("a" to "z" and "0" to "9").

 There is no theoretical limit  to the number  of extensions
 you can have  in one  FileInfo II  data base  but FI2config
 will not allow  for more than 32767 extensions  (limitation
 due to the SBASIC arrays maximum index value).

2.2.- The "Actions" window:
      ~~~~~~~~~~~~~~~~~~~~~
 This window holds the names  of the actions associated with
 the current (selected)  extension.  When you hit  an action
 name, FI2config updates all the other windows/buttons so to
 reflect the associated fields for this action.

 Issuing a do event on a name entitles to edit it. An action
 may  be removed  from the list  by leaving  its name empty.
 Note though  that it is  not  allowed  to suppress  all the
 actions  associated  with an extension  (there  must be  at
 least one action associated with each extension).

 There is always one empty slot  into the action list;  this
 allows to add new actions (an empty slot is added each time
 a new action is added).  You may associate up to  32767 (!)
 actions to each extension.

 Special  action types  may be selected  by selecting either
 the <BASIC command>, the <Execute> or the <View> button. If
 neither of these buttons are selected, then the action type
 will be either one  of the "normal" ones  (if the <Thing to
 launch> button is selected)  or the "Pick job" one  (if the
 <Job to pick> button is selected).

 Once you entered the action name  and chosen its type,  you
 may then fill in  the associated action fields as described
 below.

2.3.- The "Mandatory/forbidden job name" field:
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 When comes  the  time  to  "execute"  a file  (the "file to
 process"),  FileInfo II scans  for all the possible actions
 associated  with  the file  to process  extension.  If  the
 "Mandatory/forbidden  job  name"  field of  the  considered
 action is not empty then FileInfo II checks for the name of
 the calling job and rejects the action either  if this name
 is not matching the field  and the name is Mandatory, or if
 this name is matching the field and the name is forbidden.

 The actual meaning  of this field  (mandatory or forbidden)
 is to be specified at configuration time  from FI2config by
 selecting either the <Mandatory> or the <forbidden> button.

 The comparison between the calling job name  and this field
 contents is case independent and only the number of letters
 of the field contents are checked (i.e., if the field holds
 "QD " and the calling job name  is "QD myfile_txt",  then a
 match will be reported  as the comparison  only takes place
 on the first three characters of the job name, here "QD ").

 Issuing either  a hit  or a do  event  on this window  will
 entitle you to edit the job name.

2.4.- The "Thing to launch/Job to pick" field:
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 The purpose of this field is to hold the name of a thing or
 a job that FileInfo II must launch/pick  in order to set up
 the "processing job" which will be responsible  for proces-
 sing the "file to process". The actual meaning of the field
 (thing  or job  name)  is  to be  specified  thanks  to the
 <Thing to launch> and <Job to pick> buttons. Note that only
 executable things may be launched by FileInfo II  (there is
 an exception though: if the calling job is QD then QD2M and
 QD5T things may also be launched).

2.5.- The "Executable file to load" field:
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 This field  is to contain  the name  of the executable file
 that  FileInfo  II  will  load  in  order  to  set  up  the
 "processing  job"  when  FileInfo II  failed  to launch the
 thing or  to pick the job  which name  was in  the previous
 field (or when no name was in that previous field).

 Issuing either a hit event  on this window will entitle you
 to edit the filename, while issuing  a do event will pop up
 the QMenu file selector  (if QMenu is present)  so to allow
 you to choose the file.

2.6.- The "Command line" field:
      ~~~~~~~~~~~~~~~~~~~~~~~~~
 This  field  holds  the command line  that will  be sent by
 FileInfo II  to the processing job  in order to instruct it
 how  to process  the "file to process".  Note that  for the
 <SBASIC command>  action  type,  this  command line will be
 sent to the S(uper)BASIC interpreter (job 0).

 The  command line may be  either put on  the processing job
 stack  (if the  <Put it on job stack>  button  is selected)
 before its activation,  or stuffed into  its keyboard queue
 after its activation. If the processing job allows for both
 methods to be used, then you should use the stack method as
 it is by far the cleanest one.

 The "Command line" sub-menu:
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  When issuing either  a hit or a  do event  on the "Command
  line" window, the "Command line" sub-menu is popped up.
  This sub-menu contains 9 buttons and one editing window.

  The upper left three buttons are (from left to right):

   - the exit button to return to the main menu and validate
     the new command line.

   - the "cursor" button to trigger the command line editing
     and activate  the cursor  in the editing window.  While
     the cursor is active  the pointer  is hidden and may be
     activated back by moving the mouse or keying-in the "·"
     character (with <CTRL SHIFT W> on a QL).

   - the BACKSPACE  button enabling to erase the last symbol
     or character in the command line.

  The other  buttons  enable  to insert  the special symbols
  recognized by FileInfo II into the command line. All these
  symbols  (except "·")  may  be entered  directly  with the
  keyboard  from  the editing  window.  The buttons are just
  there  to save you  to remember  what  special  symbol  is
  associated with a particular key combination...

   - <devN_name_ext> :  orders  to  insert  the name  of the
     "file to process" in the command line.
     The associated symbol for this button is "¾".

   - <devN_name> :  same as above  but the name  without its
     extension is inserted instead.
     The associated symbol for this button is "¼".
     
   - <name_ext> : same  as above  but  the name  without its
     device is inserted instead.
     The associated symbol for this button is "½".
     
   - <name> : same  as  above  but the name  without  device
     neither extension is inserted.
     The associated symbol for this button is "¿".

   - <Random number> :  orders to insert  a random number (4
     characters from 0 to 9).  This may be  useful  for some
     programs  (like  Xchange)  that asks  for  a  different
     parameter  each time that  a new file  is to be loaded,
     example: a temporary file name,  a task name (Xchange),
     a keyword, etc...  Of course you may give  the filename
     (or a part of it) as a parameter  but this parameter is
     perhaps limited  to a given number  of characters (this
     is the case with Xchange which allows 8 chars max.)...

   - <N seconds pause> :  orders  to  insert  a  pause  when
     stuffing the command line into the keyboard queue.  The
     corresponding  symbol must  be  followed  with a number
     (1 to 9)  which gives  the pause  length  (in seconds),
     then when  you hit  this  button,  the  editing  window
     cursor is activated,  enabling you to enter the number.
     Of course  this button  is unavailable  if you chose to
     pass the command line onto the job stack.
     The associated symbol for this button is "·".

2.7.- The "Requested file type" field:
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 This field decides whether or not the action must be retai-
 ned as a possible action depending on the "file to process"
 type  (FTYP).  If  the "irrelevant" item  is selected  then
 FileInfo II will not take care about the file type  and the
 action will be retained (provided  that the "Mandatory/for-
 bidden job name" field also matches).  If any other item is
 selected then FileInfo II  will check  the file type of the
 "file to process". This field is very useful when used with
 the "joker" extension ("*").

2.8.- The "Redirections" fields:
      ~~~~~~~~~~~~~~~~~~~~~~~~~~
 These fields are used when the <Put it on job stack> button
 is selected to tell FileInfo II to put as well some channel
 Ids together  with the  command line  on the processing job
 stack BEFORE activating it.  These channel  Ids are usually
 used by the processing job to redirect its input/output.
 You may choose to put 0 (no redirection)  or 1 to 3 channel
 Ids on the processing job stack (for C68 compiled programs,
 this will allow to redirect stdin, stdout and stderr).
 Whatever the number  of Ids  (1 to 3),  the same Id will be
 put on the stack each time: this Id is either the Id passed
 by the "calling job" (the job that invoked FileInfo II), if
 any, or a S(uper)BASIC (job 0) Id (from #1 to #15).

2.9.- The "On returning from FileInfo II" buttons:
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 The <Pick caller back>  button will instruct FileInfo II to
 pick back the "calling job" (the job that invoked FileInfo)
 after  starting  the  "processing job"  and/or stuffing the
 "command line" into the keyboard queue.

 The <Wait end> button will instruct FileInfo II to wait for
 the "processing job"  termination before  returning back to
 the "calling job".

 The <History>  button allows  to disable  (when unselected)
 the history recording for the current action (there is also
 a mean to disable the history for  ALL the actions but this
 button entitles to do so  on a  per-action basis).  This is
 useful  for actions  that change  the name  of the "file to
 process" or even move/delete this file (the history records
 the file to process name together with the action name;  if
 the filename  is not valid any more,  there is  no point to
 record it and waste resources...).

3.- The selection keys:
    ~~~~~~~~~~~~~~~~~~~
 To make the use without a mouse easier, the buttons and the
 windows can be selected with the following keys:

  "Move" button. . . . . . . . . . . . . . . . . : CTRL F4
  "Flash" button (help menu) . . . . . . . . . . : CTRL F2
  "Sleep" button (<zzz>) . . . . . . . . . . . . : CTRL F1
  "Exit" button. . . . . . . . . . . . . . . . . : ESC
  "Help " button (<?>) . . . . . . . . . . . . . : F1
  "Next page" button (help menu) . . . . . . . . : P
  "Next line" button (help menu) . . . . . . . . : L
  <BASIC Command> button . . . . . . . . . . . . : B
  <Exec> button. . . . . . . . . . . . . . . . . : X
  <View> button. . . . . . . . . . . . . . . . . : I
  <Mandatory> button . . . . . . . . . . . . . . : M
  <forbidden> button . . . . . . . . . . . . . . : D
  <Thing to launch> button . . . . . . . . . . . : H
  <Job to pick> button . . . . . . . . . . . . . : J
  <Put it on job stack> button . . . . . . . . . : P
  <Pick caller back> button. . . . . . . . . . . : K
  <Wait termination> button. . . . . . . . . . . : W
  "Extensions" window. . . . . . . . . . . . . . : E
  "Actions" window . . . . . . . . . . . . . . . : A
  "Mandatory or forbidden job name" window . . . : N
  "Thing to launch or Job to pick" window. . . . : O
  "Executable file to load" window . . . . . . . : F
  "Command line" window. . . . . . . . . . . . . : C
  "Cursor" button (command line editing menu). . : TAB
  "Back space" button (cmd line editing menu). . : CTRL ¼ or
                                                   BACKSPACE
  <Random number> button (cmd line editing menu) : R
  <N seconds pause> button (cmd line edit. menu) : N
  <devN_name_ext> button (cmd line editing menu) : D
  <devN_name> button (cmd line editing menu) . . : E
  <name_ext> button (cmd line editing menu). . . : X
  <name> button (cmd line editing menu). . . . . : A
  <OK> button (error alert box). . . . . . . . . : O
  <Yes> button (confirmation box). . . . . . . . : Y
  <No> button (confirmation box) . . . . . . . . : N

4.- Errors:
    ~~~~~~~
 When an error arises an alert box appears.  You can exit it
 by hitting the "OK" button.


D.- UPGRADING FROM AN OLD FILEINFO (II) THING:
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 From time  to time  new  versions  of  FileInfo II  will be
 released and  you may want  to upgrade  without loosing the
 previous version configuration. Here is how to do this:

 Step A:
 =-=-=-=

 1.- With old QL ROMs:
     ~~~~~~~~~~~~~~~~
  With these  buggy ROMs,  when you LRESPR new  PROC/FN with
  the same name as older ones,  the old PROC/FN will stay in
  force.  Because  of this,  you will have  to follow  these
  steps:

  Let's assume  as an example  that your boot file holds the
  following line:

  250 LRESPR win1_sys_FileInfo_bin

  - First,  copy the  file holding  the  old FileInfo  thing
    together with your configuration into a safe place (i.e.
    another directory or a floppy disk). In our example, you
    could do:

    COPY win1_sys_FileInfo_bin TO win1_tmp_FileInfo_bin

  - Then overwrite the old file with the new "FileInfo2_bin"
    file. In our example, you would have to do:

    COPY_O flp1_FileInfo2_bin TO win1_sys_FileInfo_bin

  - Reboot your computer.

  - Then Jump to step B.

 2.- With modern QL ROMs and SMSQ(/E):
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  - Install first  the new  FileInfo II  thing  code in your
    system  (just  "LRESPR FileInfo2_bin",  there is no need
    for you to reset your computer).

  - Then Jump to step B.

 Step B:
 =-=-=-=

 - EXECute FI2config_obj(you must execute the FI2config ver-
   sion joined with the NEW FileInfo II release).

 - Load the  file holding  the OLD  FileInfo II  version (or
   FileInfo v2.xx)  together with your configured  data into
   FI2config.   You  will  then  see  your   extensions  and
   associated data in the FI2config windows.

 - Edit/add  extensions/actions  (you will probably  wish to
   rename the actions to more sensible names than "Action 1"
   and "Action 2").

 - Save a configured copy to file,  the saved file now holds
   the new  FileInfo II  thing code  with your old data base
   (which  as been converted  into the new  "FIv3" data base
   format).

 - Now you may either save the configuration  to memory from
   FI2config or reboot your computer  to install FileInfo II
   again.

 Please  note  that  this applies only  to  old  FileInfo II
 releases from  v1.8 onwards  and to  FileInfo releases from
 v2.00 onwards, and NOT to FileInfo v1.xx NOR to FileInfo II
 from v1.0 to 1.7.


E.- CONFIGURATION:
    ~~~~~~~~~~~~~~
 "FI2config"  is configurable  with "CONFIG" (level 1) which
 is the configuration  software  common  to the most  of the
 programs running under the Extended Environment.
 The configurable parameters are the following:

  - The help file name,
  - The default name for the file holding FileInfo II thing.
    If this name is an empty string,  FI2config will use the
    default    DATA_USE    directory   together   with   the
    "FileInfo2_bin" filename.


That's it !  You  know everything !  For any  suggestions or
remarks,  you can contact  me on  QLCF BBS  (2:2503/402.2 or
2:252/67.7) or on Internet (email: godefroy@imaginet.fr, Web
site: http://www.imaginet.fr/~godefroy).


                                           Thierry Godefroy.
