
				   Find Words

			   Copyright 2006 Jason Hood

			      Freeware.  Release 1


    ===========
    Description
    ===========

    Find Words (FW) will search a word list for a  pattern.   Find  Multiple
    Words  (FMW)  will	search	a  word list for words appearing in a set of
    letters.  Column Format (CF) will format the output  of  the  other  two
    programs into a series of columns.


    ============
    Requirements
    ============

    A word list (see http://wordlist.sourceforge.net/ ).  Any text file with
    one word per line is sufficient.


    ============
    Installation
    ============

    There are three executables for each program:

	*p.exe: 32-bit (protected mode) DOS
	*r.exe: 16-bit (real mode) DOS
	*w.exe: 32-bit console Windows

    Place the ones you want somewhere on your PATH.  Rename your  word	list
    to `word.lst' and place it there, too (Unix users: move the word list to
    `/usr/share/dict/word.lst').  Uninstall simply involves removing all the
    files you added.


    =====
    Usage
    =====

    Each program has built-in help accessed by `/?'  or  `--help'.   Here  I
    will only describe salient points for each program.

    FW: anagrams use `/' and `=' to indicate how many letters are  relevant.
    It	only  indicates position, not letters.	Eg: `;abc/d' specifies three
    or four letters are required, not  that  it  must  have  `abc'  and  may
    optionally	have `d'.  (Although, now that I formally state it, that may
    be something to consider for a future  version.)  Anagram  balances  are
    used  to  indicate	which  letters	were removed from the anagram (those
    after the `-') and substituted for  wildcards  (those  after  the  `+').
    Digits  are  used  to  represent the repeat occurrence of a letter.  Eg:
    `1..1' finds four-letter words that begin and end with the same  letter.
    Normally  digits are unique and will not match a previous digit, but the
    `-d' option changes that.  Eg: `123' will match `end',  but  not  `egg';
    however `-d 123' will match both.

    FMW: default output will place words in ascending order of length;	`-s'
    will  sort	the words alphabetically (it will not sort the entire list).
    Eg: `aabeegiiklnppp' will generate `pie apple  baking'  by  default,  or
    `apple  baking pie' with `-s'.  If the length of each word is known, the
    output will be in that order.  Eg: `aabeegiiklnppp 6-5-3' will  generate
    `baking apple pie'.

    CF: the width is actually one less than that specified (eg: if the width
    is	80, lines will be no more than 79 characters).	The height specifies
    the (maximum) number of lines  in  each  column.   As  many  columns  as
    possible  will be created to fit the width.  A blank line is then added,
    to separate each set of columns; `-f' will not add this blank line.  The
    default height depends on this blank line; if it is added, the height is
    one less than the height of the screen, making the blank line  fill  the
    screen;  if it is not added, the height is the same as the screen.	This
    affects the pause, which really only works with default values.


    ===========
    Limitations
    ===========

    Non-English letters are not recognised - they must match  exactly.	 For
    example, `' (in CP437) or `' (in Latin-1), will not match `a'.

    The 16-bit DOS versions may run out of memory when sorting is  requested
    for  FW, or with long columns for CF.  In this case they will display as
    many as they have, then continue, resulting in partially sorted output.

    CF will not handle very long words sensibly.  In a worst  case  scenario
    only one column will be generated (ie. no different from its input).


    =========
    Compiling
    =========

    I have developed in Windows XP, using  MinGW  (gcc	3.4.2),  djgpp	(gcc
    4.1.0)  and  Borland C++ 3.1.  They should work fine in Unix, but I have
    not tested them.  Nothing special is needed, but the 16-bit DOS versions
    should  be	compiled using the compact model (near code, far data).  For
    example:

	gcc -O2 -Wall fw.c -s -o fw
	bcc -1- -mc -ecfr.exe cf.c	(TURBOC.CFG: -O2 -d -w -f- -k-)


    =======
    Contact
    =======

    mailto:jadoxa@yahoo.com.au
    http://fw.adoxa.cjb.net/

    Jason Hood
    11 Buckle Street
    North Rockhampton
    Qld 4701
    Australia


    ============
    Distribution
    ============

    The original zipfile can be freely distributed, by any means. However, I
    would  like  to  be  informed if it is placed on a CD-ROM (other than an
    archive compilation).  Modified versions may be distributed, as long  as
    the original zipfile is included (I would prefer to be contacted).


    ============================
    Jason Hood, 15 August, 2006.
