                               CLAM README
                               ===========

Introduction.
-------------
Clam is a UNIX(tm) shell that has many features of tcsh, sh and improvements all
its own. It was written as a programming project for a Computing Science Honours
year and has undergone further work since. The most notable features of Clam
are: command line editing; "real" aliases; aliases and builtins are on the path;
normal wildcard expansion in/output redirection etc. Please note, Clam is not
csh/tcsh but is original source code and differs in some ways from those shells
in the features it provides.

  Clam has been ported to a number of different UNIX environments including
4.xBSD, SysV, SunOS, Ultrix, and Minix. The terminfo routines for SysV hasn't
been written yet (as I have none to test it on) so Clam relies purely on termcap
features at this stage.

  Clam also allows clam-shell-scripts although flow control is not yet written.

Copyright Notice.
-----------------
            Clam is copyright (c) 1988 by Callum Gibson.
Clam is provided free of charge. You may make copies of it and redistribute
it if you wish. You may not sell Clam source or binaries. You may alter Clam
for your own purposes but you may not redistribute altered copies of Clam or
part thereof. You must leave the copyright notice intact at the top of every
Clam source file. Finally, no warranty is provided with Clam.

Bug Fixes and Updates.
----------------------
Please report any bugs you find to the author, Callum Gibson at:
  email: callum@gara.une.oz.au
  snail: c\- 32 Robert St,
         Bellingen, 2454,
         NSW, Australia.
The limitation on bug-fix posting and redistribution is so that I have a version
control on Clam and so that there is a standard copy out in the real world. This
also gives me the chance to test the suggested change (or see if it makes sense)
or let me find it myself and save yourself the trouble!

  Clam was initially released in the newsgroup comp.os.minix in early 1989.
Further postings will be made to this group as revisions are made. No definite
plans have been made to post it to any other source group as yet.

Installing Clam.
----------------
The only changes that need to be made to the Clam distribution to enable it
to compile and run on your system (if it's at all possible) are to the files
header.h and Makefile. You can edit header.h and define the path names that
Clam needs to know about. The only other stuff you can change in header.h is
the size of some of the data structures. This isn't really needed. Note Minix
already has its own set of smaller data structures since it runs in a pathetic
640K of memory. Makefile can be changed so that the right defines are given
to cpp, i.e. UCB or ATT or MINIX etc. Also Minix people need to set the variable
O to be 's' while the normal UNIX people should have it as 'o'. Now type make
and away it goes. There should be no warnings at all. If there are, please
inform me about them as it could indicate that something is wrong (or that your
compiler is unusually fussy - don't bother trying to lint it :-). Oh, and you
may want to change the location of some .h files since I can't have ifdefs for
everyone.

Documentation.
--------------
Clam documentation is provided in clam.1. The manual is in nroff -man format.
The file log.tex (if included) is the development log of Clam continued from
the original honours project log.

History.
--------
Clam shell is the result of a Computing Science Honours year programming
project at the University of New England, Armidale, NSW, Australia. Further
development has since taken place (and will continue). Approximately 10 months
of work went into the original version of Clam from March to November in 1988.
In March 1989, work recommenced to remove the more illusive bugs and proceed
to add more features. The log.tex file formed Appendix C of the accompanying
dissertation and describes some of the planning and programming work that Clam
underwent. If you really want, I can send a copy of the thesis (latex) to
you. It does actually explain a bit of the design philosophy and implementation
aspects of Clam. Most of you will be happy just to compile and run it I imagine.

Clam was initially developed on a Pyramid 90x owned by the Department of Maths,
Stats and Comp. Sci. and was later ported to a SUN 3/50, Gould NP1, Vaxstation
(running Ultrix) and IBM-PC/Minix

------------------------------END-README--------------------------------
