================================ Find 1.7 =================================
===========================================================================
A  file  find utility written by Olaf `Olsen' Barthel.  © Copyright 1991-92
by Olaf `Olsen' Barthel, Giftware, all rights reserved.
   No  guarantee  of any kind is made that the program(s) described in this
document are 100% reliable.  You use this material on your own risk.

================================= Purpose ================================
===========================================================================
`Find' is yet another utility to help you to locate files which you know to
hide  somewhere  (but  where?)  on  your  hard  disk  drive.   Unlike other
utilities  of this kind, it requires Kickstart 2.04 or higher and Workbench
37.67  or  higher  to  work,  handles  directory  links and multiple volume
assignments correctly and identifies the type of each file it finds.

============================== Installation ===============================
===========================================================================
Pick  up  the  `Find'  icon  and  drop it into your SYS:WbStartup drawer --
that's all.

================================== Usage ==================================
===========================================================================
`Find'  can  be  started both from Shell and Workbench.  A window will open
which contains the following display areas and buttons:

Search Area............ This  is  where you enter the name of the directory
                        tree   to  search  for  a  file  or  name  pattern.
                        Alternatively,  you  could pick up a Workbench icon
                        and  drop  it  on  the  `Find'  window.   The  path
                        corresponding to the icon will be read and put into
                        the `Search Area' gadget.

Search For............. Here  you  enter the file name or pattern to search
                        for.

Wildcards.............. If this switch is enabled, `Find' will use standard
                        AmigaDOS  pattern  matching  routines  to  scan for
                        files.   If  not  enabled,  the  Boyer-Moore string
                        search  algorithm  will  be used to look for files.
                        Note that the Boyer-Moore algorithm will search for
                        any occurence of the search pattern in a file name.

`?'.................... Pressing this button will start and stop the search
                        process.

Large list window...... The  names  and  types  of  all  files to match the
                        pattern  will  be  displayed here.  Click on a file
                        name  to  have  the  full  file  path name and file
                        attributes displayed.

Small window........... If  a  name  is  selected in the large list window,
                        this  window  will  display  the  creation date and
                        time,  file  size  in  bytes  and  blocks  and file
                        protection attributes.

Small list window...... This window displays the full path of the currently
                        selected file.

=========================== Startup parameters ============================
===========================================================================
Most  of  the following options can either be specified on the command line
(when  `Find'  is  invoked  from Shell) or can be entered into the tooltype
entries of the `Find' icon.  An asterisk (*) denotes options which are also
available from Workbench.

Area................... The  path  name  given  here  will be placed in the
                        `Search Area' gadget of the window to be opened.

Pattern................ The search pattern given here will be placed in the
                        `Search For' gadget of the window to be opened.

NoWildcards............ If  this  command  line  switch  is  in effect, the
                        `Wildcards' button will be disabled and the program
                        will  not  use  AmigaDOS  wildcard pattern matchine
                        while searching for files.

CX_POPKEY (*).......... A  key  combination  to  press  to bring the `Find'
                        window  to the front.  If possible, `Find' will try
                        to open its window on the frontmost public  screen.
                        The default key combination is `shift help'.

CX_PRIORITY (*)........ You  may  want  to  adjust  this  value  if several
                        commodities  exchange utilities on your machine use
                        the  same  key  combination  as  `Find'  does.  The
                        utility with the highest priority will be the first
                        to receive the keystrokes to invoke.

CX_POPUP (*)........... This  switch  determines  whether  `Find'  will  on
                        invocation open its big window or open just a small
                        window/put an icon on the Workbench window and wait
                        quietly in the background.  It will open its window
                        when  the  `popup' key combination (see `CX_POPUP')
                        is pressed.
                           This  switch has two choices:  `yes' to open the
                        big window and `no' to stay in the background.
                          Workbench users:  the tooltype entry `Iconify' is
                        a valid synonym for `CX_POPUP=no'.

============================= Menu selection ==============================
===========================================================================
    The following `Find' functions are available through menu entries:

Save file list as...... This  menu provides a three-way choice to allow you
                        to  save  the list of files displayed in the window
                        to  a  text  file.   Three  different  formats  are
                        available:

                        - Full path names

                          The  file  names  will be output along with their
                          full  access  path,  i.e.   a  the name of a file
                          called  `Input'  located  in  the  `WB_2.x:Prefs'
                          drawer will be output as `WB_2.x:Prefs/Input'.

                        - File names only

                          Only  the  base file name of each list entry will
                          be output, i.e.  if a file `Input' was located in
                          the  `WB_2.x:Prefs/Input'  drawer,  only the name
                          `Input' will be ouput.

                        - `List' style format

                          The file names will be output in a format similar
                          as  produced  by  the  Shell command `List' or as
                          shown  by  Workbench when the contents drawer are
                          shown by name.

About.................. Displays a copyright notice.

Quit................... Terminates the program.

Copy path to clipboard. If  a  file  list entry is currently selected, this
                        menu  entry  will cause its full path and file name
                        to be copied to the clipboard.

Select search area..... This  menu  entry  is closely linked to the `Search
                        Area'  gadget.   It  will bring up a file requester
                        which allows to select the directory tree to search
                        by mouse.

Iconify................ Selecting  this  menu entry will cause `Find' to go
                        to  sleep.  If started from Workbench, an icon will
                        be put on the Workbench window.  If run from Shell,
                        the program window will be shrunken.

============================ Special functions ============================
===========================================================================
Some of the features of `Find' cannot be directly accessed through buttons,
command-line switches or menu entries, as there are:

- Clipboard support

  Pressing  Amiga+V will paste the current contents of the clipboard into a
  string  gadget.   Unless  the string gadget is empty, The key combination
  Amiga+C will place its contents in the clipboard.

- Workbench icon support

  To make `Find' use the location of a file as the area to search, drop the
  icon  of  the file on the main window.  When in iconified state, dropping
  the icon of a file on the `Find' icon will have the same effect.

- Commodities toolkit support

  `Find'  interfaces to the commodities toolkit and can be configured using
  the  standard  keyname sequences described in the system software manual.
  Use the `Exchange' program to enable/disable program features and to show
  or hide the user interface.

- Public screen support

  Whenever  possible,  `Find'  will try to open its window on the frontmost
  public screen.  If the frontmost screen does not happen to be public, the
  window will be opened on the Workbench screen.

- Iconification

  When  the  program  was started in iconified state, closing the window by
  pressing  the  window close gadget will return it to iconified state.  To
  terminate the program, use the `Quit' menu entry.

- File type identification

  `Find'  will try to identify the type of each file displayed in the list.
  The file type will be displayed below the file name.

- Limitations

  `Find'  will not enter directory levels deeper than eight file names.  In
  order to  avoid  neverending  loops, directory links will not be entered.
  Still, multiple volume assigns are processed correctly.

============================== Function keys ==============================
===========================================================================
    A number of functions can be controlled by keyboard, as there are:

- List scrolling

  The  list  of  files can be scrolled through the up and down cursor keys.
  If a modifier key is held down while the cursor keys are pressed, it will
  have the following effects:

  - Shift key held down

    The  list  scrolling  will  be  faster, flipping over the contents of a
    whole list page each time a cursor key is pressed.

  - Control key held down

    Will jump to the beginning (cursor up key) or the end (cursor down key)
    of the file list.

  - Alternate key held down

    Moves  the  highlighted bar which indicates the currently selected list
    entry  up  or  down.  You may also hold down a shift key in addition to
    the alternate key.

- Start and stop search

  Instead  of pressing the `?' button, the <Return> key may be used.  Press
  it  to  start  searching,  pressing  it again while the program ist still
  searching will cause the search to stop.

- Closing the window

  Pressing  the  <Escape>  or `Q' key will cause `Find' to close its window
  (similar to pressing the window close gadget).

================================= Credits =================================
===========================================================================
Credits go to David Jones whose QuickSort.asm code `Find' uses and to David
Goldsmith, the author of the Apple Macintosh `File find' program.

==================== Author's Request & Gift-Ware fee =====================
===========================================================================
By  releasing  this program and the accompanying source code as Gift-Ware I
do  not  place any obligations on you, feel free to share this program with
your friends (and enemies) to study and to learn from it.  If you like this
program  and  use  it frequently, I would like you to send me a gift of any
kind which you think will do as a `payment' for `Find'.  Gifts, bug reports
and enhancement requests should be sent to:

                               Olaf Barthel
                             Brabeckstrasse 35
                            D-3000 Hannover 71

                        Federal Republic of Germany

   I  may  also  answer  questions  asked  via  electronic  mail.  My email
addresses are:

                   Z-Netz: O.BARTHEL@A-LINK-H
                   Usenet: o.barthel@a-link-h.comlink.de
                           olsen@sourcery.mxm.sub.org

   If  you  have  no idea what to contribute:  I am looking for old Infocom
games   ("Arthur  and  the  quest  for  the  holy  grail",  "Border  zone",
"Bureacracy",  "Cutthroats",  "Leather Goddesses of Phobos", "Nord and Bert
couldn't  make  head  or  tail  of  it",  "Plundered Hearts", "Seastalker",
"Sherlock  -  The  Riddle  of  the Crown Jewels", and "Trinity"; MS-DOS and
Atari  ST  versions  of  the  text-only games are welcome as well since the
story format can be converted to the Amiga).

   The entire `Find' package may be noncommercially redistributed, provided
that  the package is always distributed in its complete form.  A small copy
fee  for  media  costs  is  okay but any kind of commercial distribution is
strictly forbidden!
   Comments  and  suggestions  how  to  improve  this program are generally
appreciated!

=============== Revision history (most recent change first) ===============
===========================================================================
1.7     Small changes in the iconification code.

1.6     First public release.

1.0-1.5 Before written history.
