
			LC

		"@(#)README	1.3 9/7/90 Kent Landfield"

This directory contains the source to lc. lc is much like the ls 
command except it separates the types of files into groups and then
displays located file names to the user is a columnar fashion. 

lc was initially implemented by myself after I became accustomed
to the lc command on a Mark Williams Coherent system I was running back
in 1984.  When I started moving to different systems I found that I did
not like the lack of information, flexibility and the general display 
that ls provided.  I have found that I am not the only one that has 
become feed up with ls and its jumbled output. All the people here use 
lc much more than they use ls. It is a locally well known fact that when
a new machine comes into the house, the first local software that is put 
on the machine is lc.  It is far from perfect but it is better than ls on 
a general use basis.

lc uses three different environment variables COLS, CDPATH, and LC
allowing you to customize how you wish lc to perform on a default 
basis. COLS is used to switch the column width between 80 and 132 
column display.  LC is used to set lc specific options. The command 
line options shown in the option list below are available to be used 
in setting up how lc is to work for you. Options that you supply on 
the command line override options that are specified in the environment.
lc uses CDPATH to locate files that are requested but are not in the 
specified location or within the local directory.

lc has incorporated minimal spell checking using slightly modified
routines found in the book, The UNIX Programming Environment, by 
Brian Kernighan and Rob Pike.

The following is a quick reference of options to lc. These options
can be specified in the Environment variable LC so that they are
done each time lc is executed.

 lc -- categorize files in a directory and list column-wise

   Usage:       lc [ options ] [ directory ... ]

   Options:
        -a      List dot files as well.
        -b      List block special files only
        -c      List character special files only
        -d      List directories only
        -D      Do not display singular files
        -e      Mark executable files with '*'
        -f      List regular files only
        -F      List fifo files only
        -1      List files one per line instead of in columns
        -r      Do not sort the file names before displaying.
        -m      List shared memory name space entry files only
        -M      List semaphore name space entry files only
        -S      List socket file only
        -s      List symbolic links only
        -L      Display symbolic links
        -l      Mark symbolic links with '@'
        -I      Suppress unresolved symbolic link messages.
  
   The "only" options can not be combined.

   If there is no 'directory' specified, the current directory is used.

   Not all options are supported on every system. (e.g. no symbolic links
   on your system ? Options -s, -L or -l won't be available..)
   If your system does not support shared memory name space entry files, 
   then you cannot use the -m option...

History:
      Initially designed on an IBM-XT running Coherent in 1984.
      Ported to XENIX on an IBM-AT in 1984.
      Ported to System V on AT&T 3Bs in 1985.
      Ported to DEC Vax 11/750 running System V in 1986.
      Ported to BSD4.2 on a Sequent Balance 8000 in 1986.
      Jeff Minnig added the initial support for links.
      Ported to SunOS 4.0 on a Sun 3/60 in 1988.
      Rick Ohnemus did major surgery to remove static storage
      and *greatly* enhanced the link support. Thanks rick!
      Tested with Ultrix 3.0 & 3.1 on a DECstation 3100 in 1989.
      Tested with Ultrix 3.0 & 3.1 on a VAXstation 3500 in 1989.
      Ported to AIX 2.2 on an IBM RT.
      Tested with UTek on a Tektronix 4319 in 1989.
      Tested with IRIX System V on a Silicon Graphics Iris 4D/210GTX in 1989.
      Tested with AmigaDOS 1.3 on an Amiga 1000 in 1989.
      Tested with SunOS 4.0.3 on a Sparkstation 1 in 1989.
      Tested with UTek on a Tektronix XD8810 in 1989.
      Tested with AIX 3.+ on a Risc System/6000 in 1990.

The following is a todo list that may get done someday...

1. Port to all flavors of unix on all platforms. Lofty goal but
   on-going... :-)
2. Need to modify lc so that one environment (or compile) option will
   only let you see files you own or have access to.
3. Add spell checking code to CDPATH usage
4. Allow combination of only options...
                                                        
                          *PLEASE!* 
If you have a problem, there's someone else out there who either has
had or will have the same problem.  Please send all "lc" ideas, patches, 
etc to 

INTERNET: kent@sparky.IMD.Sterling.COM or UUCP: uunet!ssbell!sparky!kent

so that I can continue to improve the functionality and portability of lc.

			-Kent+

	
