1232633SmpThis is tcsh version 6.18.01.  Tcsh is a version of the Berkeley
259243SobrienC-Shell, with the addition of: a command line editor, command and file
359243Sobrienname completion, listing, etc. and a bunch of small additions to the
459243Sobrienshell itself.
559243Sobrien
659243SobrienTcsh has been ported to most unix variants, and can be tinkered to work
759243Sobrienin unix systems that it has not ported yet. See the Ported file for
859243Sobriena more complete list of ported systems and in the config directory for
959243Sobriena configuration file that matches your system.
1059243SobrienTcsh also runs under VMS/POSIX and OS/2+emx; the OS/2 port is not
1159243Sobriencomplete yet.
1259243Sobrien
1359243SobrienFeel free to use it.  These changes to csh may only be included in a
1459243Sobriencommercial product if the inclusion or exclusion does not change the
1559243Sobrienpurchase price, level of support, etc.  Please respect the individual
1659243Sobrienauthors by giving credit where credit is due (in other words, don't
1759243Sobrienclaim that you wrote portions that you haven't, and don't delete the
1859243Sobriennames of the authors from the source code or documentation).  
1959243Sobrien
2059243SobrienTo install tcsh:
2159243Sobrien
22167465Smp0)  Try running "./configure".  If that doesn't work, goto step 1.
23167465Smp    Run "./configure --help" to see possible options.  After running
24167465Smp    configure, goto step 3.
2559243Sobrien
26167465Smp1)  Otherwise copy Makefile.std to Makefile. Look at the Makefile and
27167465Smp    make sure that you are using the right compilation flags.
2859243Sobrien
2959243Sobrien2)  Copy the appropriate for your machine and OS config file from the
3059243Sobrien    config subdirectory into config.h.  Consult the file "Ported" for
3159243Sobrien    settings known to work on various machines.  If you are trying to
3259243Sobrien    compile tcsh on a machine for which there is no config file yet,
3359243Sobrien    you will need to create a config file using as a template one of
3459243Sobrien    the supplied ones.  If you get tcsh working on a new machine, I'd
3559243Sobrien    appreciate a copy of the config file plus additional information
3659243Sobrien    about the architecture/OS.  If you are creating a new config file,
37167465Smp    look very hard at BSDJOBS and BSDTIMES if you are running
3859243Sobrien    a non-BSD machine.  For vanila SysV, these would all be #undef-ed,
3959243Sobrien    but others may vary (such as A/UX or HPUX).  On a pyramid, compile
4059243Sobrien    in the UCB universe even if you are running under the ATT universe
4159243Sobrien    usually; it will work anyway, and you get job control for free.
4259243Sobrien
4359243Sobrien3)  Look at config_f.h, and enable or disable any features you want.
4459243Sobrien    It is configured the way I like it, but you may disagree.
4559243Sobrien
4659243Sobrien4)  Look at host.defs to make sure that you have the right defines to set
4759243Sobrien    the environment variables "HOSTTYPE", "MACHTYPE", "OSTYPE" and 
4859243Sobrien    "VENDOR" correctly.  If you need to make changes, PLEASE SEND THEM 
4959243Sobrien    BACK TO ME.
5059243Sobrien
51167465Smp5)  You may want to adjust the DESTBIN and DESTMAN entries in
5259243Sobrien    the Makefile.  These are the directories that tcsh, and the tcsh.1
5359243Sobrien    man entry will be placed in when you do a "make install" and "make
5459243Sobrien    install.man" respectively.  If you decide to install tcsh somewhere
5559243Sobrien    other than in /usr/local/bin/tcsh, you should #define _PATH_TCSHELL
5659243Sobrien    "/your/installation/directory/tcsh" in pathnames.h.
5759243Sobrien
58167465Smp6)  make
5959243Sobrien
60167465Smp7)  Read the documentation while you are waiting.  The file tcsh.man
6159243Sobrien    is in standard [nt]roff -man format. If you like, you can run the
6259243Sobrien    tcsh.man2html script (requires Perl) to generate an HTML version of
6359243Sobrien    the manpage which you can read with Mosaic, lynx or other HTML browser.
6459243Sobrien
65167465Smp8)  Test tcsh by typing ./tcsh to see that it has compiled correctly.
6659243Sobrien    The history command should give a time stamp on every entry.
6759243Sobrien    Typing normal characters should echo each exactly once.  Control-A
6859243Sobrien    should put the cursor at the beginning of the input line, but after
6959243Sobrien    the prompt.  Typing characters after that should insert them into
7059243Sobrien    the line.  If you have job control make sure that stopping and
7159243Sobrien    restarting jobs works. Make sure you can ^C in the middle of the
7259243Sobrien    input line.  Also make sure that pipelines work correctly and there
7359243Sobrien    are no races. Try 'echo | cat | cat | cat | cat | more' a couple of
7459243Sobrien    times. If you have job control, try this command in the background
7559243Sobrien    and bring it in the foreground when it stops for tty output.  Also
7659243Sobrien    make sure that the ioctl() modes are preserved.  Get into vi, enter
7759243Sobrien    and exit input mode and suspend it, background it and foreground it
7859243Sobrien    again. After all that, lastly make sure that the tty process group
7959243Sobrien    manipulation is happening correctly. Try ftp to some host. If your
8059243Sobrien    passwd appears on the screen, you have lost /dev/tty. Otherwise
8159243Sobrien    everything is fine.
8259243Sobrien
83167465Smp9)  Once satisfied that tcsh is working correctly, complete the installation
8459243Sobrien    by typing "make install" to install the binary, and "make install.man" to
8559243Sobrien    install the documentation. Don't forget to look at complete.tcsh for
8659243Sobrien    useful completions...
8759243Sobrien
88167465Smp10) Enjoy.
8959243Sobrien
90232633Smp11) PLEASE file any bug reports (and fixes), code for new features at:
9159243Sobrien
92145479Smp	http://bugs.gw.com/
93145479Smp
94145479Smp    Comments, questions, etc. (even flames) are welcome via email to:
95145479Smp
96131962Smp	The tcsh bugs mailing list
97131962Smp	tcsh-bugs@mx.gw.com
9859243Sobrien
9959243SobrienVarious:
10059243Sobrien
10159243Sobrien***************************************************************************
10259243Sobrien
10359243SobrienOn sysv versions < 3.0 (not hpux) Doug Gwyn's public domain directory 
10459243Sobrienmanipulation library has to be installed. This library is available
10559243Sobrienfor anonymous ftp from prep.ai.mit.edu:/pub/gnu/dirent.tar.Z
10659243SobrienIf the network is not installed, then there is a gethostname()
107145479Smproutine is tc.os.c
10859243Sobrien
10959243Sobrien***************************************************************************
11059243Sobrien
11159243SobrienOn BSDreno, in ttyname() closedir() is called twice and so the same
11259243Sobrienpointer gets free'd twice. tcsh's malloc is picky and it prints an
11359243Sobrienerror message to that effect. If you don't like the message:
11459243Sobrien
11559243Sobrien1. Apply the following patch:
11659243Sobrien
11759243Sobrien*** /usr/src/lib/libc/gen/ttyname.c.orig	Fri Jun  1 17:17:15 1990
11859243Sobrien--- /usr/src/lib/libc/gen/ttyname.c	Tue Oct 29 16:33:12 1991
11959243Sobrien***************
12059243Sobrien*** 51,57 ****
12159243Sobrien  		if (stat(buf, &sb2) < 0 || sb1.st_dev != sb2.st_dev ||
12259243Sobrien  		    sb1.st_ino != sb2.st_ino)
12359243Sobrien  			continue;
12459243Sobrien- 		closedir(dp);
12559243Sobrien  		rval = buf;
12659243Sobrien  		break;
12759243Sobrien  	}
12859243Sobrien--- 51,56 ----
12959243Sobrien
13059243SobrienOr: Comment the error printing out in tc.alloc.c
13159243SobrienOr: Compile -DSYSMALLOC
13259243Sobrien
13359243Sobrien
13459243Sobrien***************************************************************************
13559243Sobrien
13659243SobrienFrom: Scott Krotz <krotz@honey.rtsg.mot.com>
13759243Sobrien
13859243SobrienTcsh has been ported to minix by  Scott Krotz (krotz@honey.rtsg.mot.com).
13959243SobrienUnfortunately the minix sed is broken, so you'll have to find a way to
14059243Sobrienmake tc.const.h, sh.err.h, ed.defns.h which are automatically generated.
14159243SobrienThe easiest way to create them is to make a copy from unix, copying 
14259243Sobrienminix to config.h, and then 'make sh.err.h tc.const.h ed.defns.h'
14359243Sobrien
14459243SobrienThe OS/dependent files are in mi.termios.h, mi.wait.h, mi.varargs.h
14559243Sobrien
14659243SobrienYou will get some warnings, but dont worry about them, just ignore
14759243Sobrienthem.  After tcsh has compiled and the gcc binary is converted to a
14859243Sobrienminix binary, remember to chmem it to give it more memory - it will
14959243Sobrienneed it!  How much you need depends on how many aliases you have, etc..
15059243SobrienAdd at least 50000 to it.
15159243Sobrien
15259243SobrienOne last thing.  You might have to make some links for include files so
15359243Sobrienthat they are in the directories that tcsh is expecting while compiling.
15459243SobrienI forget if I had to do this or not, but it should be fairly easy to sort
15559243Sobrienout.  If it cant find any include files this is probably the reason.
15659243Sobrien
15759243SobrienIf you have any problems, please tell me.  I can be contacted through
15859243Sobriene-mail at:
15959243Sobrien
16059243Sobrienkrotz@honey.rtsg.mot.com
16159243Sobrien
16259243SobrienI also read comp.os.minix on a regular basis, so a note there will get
16359243Sobrienmy attention also.
16459243Sobrien
16559243SobrienHave fun!
16659243Sobrien
16759243Sobrienps.  The termios functions are provided by Magnus Doell and Bruce Evans.
16859243Sobrien     Thanks, guys!
16959243Sobrien
17059243Sobrien
17159243SobrienFrom: Bob Byrnes <byrnes@ee.cornell.edu>
17259243Sobrien
17359243SobrienThis is for minix 1.5 (straight out of the box from P-H) plus the i386
17459243Sobrienpatches from Bruce Evans.
17559243Sobrien
17659243SobrienI cross-compiled on a Sun using gcc 2.1 with a target of i386-bsd
17759243Sobrien(using the minix include files instead of the bsd versions), and then
17859243Sobrienlinked the resulting object files with similarly compiled crtso.o and
17959243Sobrienlibc.a on vax (little endian) using a hacked version of ld which I put
18059243Sobrientogether to generate minix executables instead of bsd a.out format.
18159243SobrienWhat a kludge ...
18259243Sobrien
18359243SobrienI compiled with -O2 -Wall ...  So far I haven't noticed any problems
18459243Sobrienwith the optimizer.
18559243Sobrien
18659243SobrienIn case anyone is contemplating compiling tcsh with bcc (Bruce Evan's
18759243Sobrieni386 compiler that comes with the minix386 upgrade package), don't bother.
18859243SobrienIt is some serious bugs that kill tcsh when compiled for 16-bit characters.
18959243SobrienI can provide more details of bugs that I noticed for brave souls who want
19059243Sobriento try, but it would be hard (and why bother if you can get gcc?).
19159243Sobrien
19259243SobrienI can make the binary available to anyone who wants it (for example people
19359243Sobrienwho can't get access to a cross-compiling environment, and who don't yet
19459243Sobrienhave gcc running under minix).
19559243Sobrien
19659243Sobrien
19759243Sobrien***************************************************************************
19859243Sobrien
19959243SobrienIf your compiler cannot handle long symbol names, add 
20059243Sobrien
20159243Sobrien#include "snames.h" 
20259243Sobrien
20359243Sobriento your config.h file
20459243Sobrien
20559243Sobrien	     -- Christos Zoulas
20659243Sobrien		christos@zoulas.com
20759243Sobrien
208