The Linux Software Map is a huge list of software that has been ported
to or written for Linux.  I wrote 'lsmsearch' to make it easier to
browse this list and search for software.  It accepts any valid perl
regular-expression as a search string, and can search either entire
records, or limit the search to the Keywords, Title, and/or Description
fields.  It does CASE-INSENSITIVE searches. It uses dialog for a nice
interface, or it can be used from the commandline alone.  I've included 
two versions of lsmsearch.  lsmsearch-dialog uses dialog and can be used 
interactively or from the commandline.  lsmsearch-cmdline doesn't use dialog
and only works from the commandline.  


REQUIRED:
1)  You need perl 5.000 or greater.  A binary release of Perl 5.001 for
Linux is available at sunsite.unc.edu /pub/Linux/devel/perl or any
sunsite mirror site in a.out or ELF formats.

2)  If you want to use the interactive version of the program, you need
dialog 0.4 or greater to use the dialog perl interface I've included
with this package.  Type 'dialog -h' at your prompt to see what version
of dialog you have; it should say "dialog version 0.3 ..... patched to
version 0.4 ...".  Dialog is available at
"sunsite.unc.edu:/pub/Linux/utils/shell/dialog-0.5.tar.gz" or any
sunsite mirror site. (dialog.pl that I've included is taken from the
dialog 0.5 release.  I've just included it in case you don't already
have it, but I didn't write it.)

3)  A copy of the LSM file (Linux Software Map).  This is what lsmsearch uses
as its database.  You can get the latest copy from 
"sunsite.unc.edu /pub/Linux/docs/LSM.gz".  I'll say in the install section
where to put this file so lsmsearch can find it.

INSTALL:
1)  Make sure you have the right versions of Perl and dialog as stated above.

2)  Get a copy of the LSM file.  Make sure it is gzipped (should end in .gz)

3)  Edit the version of lsmsearch that you plan to use.
'lsmsearch-dialog' uses dialog for an interactive interface, and
'lsmsearch-cmdline' only has a commandline interface.  The only parts you
should need to change are at the top.
     	o  Change the line that reads:
	   #!/usr/local/bin/perl
	   to point to the actual location of your perl binary.  
	o  Change the line that reads
	   $LSMFILE = "/usr/local/lib/LSM.gz";
	   to point to the actual location of your lsmfile.  Or just put your
	   LSM file in /usr/local/lib/ and name it LSM.gz and don't change
	   this line.

4)  If you choose to use the dialog version, copy 'dialog.pl' to your
perl library directory -- probably this is either /usr/lib/perl5/ or
/usr/local/lib/perl5/.

5)  Copy lsmsearch-dialog or lsmsearch-cmdline to your bin directory
(maybe /usr/local/bin), under the name 'lsmsearch'.



USAGE INSTRUCTIONS:
------------------------------------------------------
--- Interactive Use:
Only lsmsearch-dialog works interactively, though it can also be used from the
commandline.
	To use lsmsearch interactively, just type 'lsmsearch', and it will
present the main menu.  

	Options Menu:
Use this menu item to limit the search to the Keywords, Title, and/or
Description fields.  Once in the Options menu, use the arrow keys to go to an
option, and the space bar to toggle an option on or off. If you choose more
than one option, it will search all the fields that you've selected.  For
instance if you select 'Keywords' and 'Description', then when you search, it
will display all records containing the search string in the Keywords field
or the Description field.

	Search item:
This presents you with a box to enter a regular expression to search for.
The important thing is that whatever you enter is treated as a valid Perl
regexpression.  This means you must backslash any special characters that you
don't want to be treated as part of a regexpression.  For example, to search
for 'C++', you would enter 'C\+\+'.  If you don't know about regular
expressions, a good rule to follow is:  Just put a backslash before any
character that isn't a letter or number.  (Or read the perl manpage 
'perlre (1P)' to learn about regexpressions. :)  lsmsearch always does a
CASE-INSENSITIVE search.  So entering 'Editor' and 'editor' are the same.

	Quit:
Quits the program.

  After you search for an item, all records that contain a match will be
displayed in a dialog textbox.  Use PGUP/PGDOWN or the arrow keys to scroll, 
'/' to search for a string, and Enter to return to the main menu.

--- Use from the commandline:
Both versions work from the command line.
Use one or more options and a searchstring/regexpression.
Options are:
    -k   -- limit search to the Keywords Field
    -t   -- limit search to the Title field
    -d   -- limit search to the Description field.
    -h   -- Display a usage message and list of options.

    regexp -- A search string or valid regular expression.

When using from the command line, the program will search directly for the
search string, and exit when you are done viewing the found records.


EXAMPLES:
	lsmsearch
Starts up lsmsearch in interactive mode.

  	lsmsearch -k -d 'editor'
lsmsearch finds all LSM records containing the string 'editor' in the
Keywords field or the Description field and displays them.  The program will
exit when you are done viewing them.

	lsmsearch 'game|vga'
lsmsearch treats the search string as a regular expression.  So it finds all
records containing the word 'game' or the word 'vga'.  Searches the whole
record since I didn't give any limiting options.

PROBLEMS:
o  You get an error or unexpected results after entering a search string:
   Remember that this program treats search strings as valid Perl regexps.  
   Put a backslash before any character that isn't a letter or number unless
   you mean to use it as part of a regular expression.  Read the perlre
   manpage.
