README revision 83098
1208747SrajThis is tcsh version 6.11.  Tcsh is a version of the Berkeley
2208747SrajC-Shell, with the addition of: a command line editor, command and file
3208747Srajname completion, listing, etc. and a bunch of small additions to the
4208747Srajshell itself.
5208747Sraj
6208747SrajTcsh has been ported to most unix variants, and can be tinkered to work
7208747Srajin unix systems that it has not ported yet. See the Ported file for
8208747Sraja more complete list of ported systems and in the config directory for
9208747Sraja configuration file that matches your system.
10208747SrajTcsh also runs under VMS/POSIX and OS/2+emx; the OS/2 port is not
11208747Srajcomplete yet.
12208747Sraj
13208747SrajFeel free to use it.  These changes to csh may only be included in a
14208747Srajcommercial product if the inclusion or exclusion does not change the
15208747Srajpurchase price, level of support, etc.  Please respect the individual
16208747Srajauthors by giving credit where credit is due (in other words, don't
17208747Srajclaim that you wrote portions that you haven't, and don't delete the
18208747Srajnames of the authors from the source code or documentation).  
19208747Sraj
20208747SrajTo install tcsh:
21208747Sraj
22208747Sraj0)  Try running "configure".  If that works, goto step 6.
23208747Sraj    If you are using imake, try xmkmf and goto step 3.
24208747Sraj    If imake does not work, copy Makefile.std to Makefile.
25208747Sraj
26208747Sraj1)  Look at the Makefile and make sure that you are using the right
27208747Sraj    compilation flags.
28208747Sraj
29208747Sraj2)  Copy the appropriate for your machine and OS config file from the
30208747Sraj    config subdirectory into config.h.  Consult the file "Ported" for
31208747Sraj    settings known to work on various machines.  If you are trying to
32208747Sraj    compile tcsh on a machine for which there is no config file yet,
33208747Sraj    you will need to create a config file using as a template one of
34208747Sraj    the supplied ones.  If you get tcsh working on a new machine, I'd
35208747Sraj    appreciate a copy of the config file plus additional information
36208747Sraj    about the architecture/OS.  If you are creating a new config file,
37208747Sraj    look very hard at BSDJOBS, BSDSIGS, and BSDTIMES if you are running
38208747Sraj    a non-BSD machine.  For vanila SysV, these would all be #undef-ed,
39208747Sraj    but others may vary (such as A/UX or HPUX).  On a pyramid, compile
40208747Sraj    in the UCB universe even if you are running under the ATT universe
41208747Sraj    usually; it will work anyway, and you get job control for free.
42208747Sraj
43208747Sraj3)  Look at config_f.h, and enable or disable any features you want.
44208747Sraj    It is configured the way I like it, but you may disagree.
45208747Sraj    If you do not have NLS, then locale.h will not be found. Undefine it
46208747Sraj    and things should work ok. On the other hand, if you have NLS you
47261352Snwhitehorn    might as well use it...
48256861Sbrooks
49208747Sraj4)  Look at host.defs to make sure that you have the right defines to set
50208747Sraj    the environment variables "HOSTTYPE", "MACHTYPE", "OSTYPE" and 
51208747Sraj    "VENDOR" correctly.  If you need to make changes, PLEASE SEND THEM 
52208747Sraj    BACK TO ME.
53208747Sraj
54208747Sraj5)  You may want to adjust the TCSH_BINDIR and TCSH_MANDIR entries in
55208747Sraj    the Makefile.  These are the directories that tcsh, and the tcsh.1
56208747Sraj    man entry will be placed in when you do a "make install" and "make
57208747Sraj    install.man" respectively.  If you decide to install tcsh somewhere
58208747Sraj    other than in /usr/local/bin/tcsh, you should #define _PATH_TCSHELL
59208747Sraj    "/your/installation/directory/tcsh" in pathnames.h.
60208747Sraj
61208747Sraj6)  If you've changed any of the configuration variables you may need
62208747Sraj    to re-run configure.
63208747Sraj
64208747Sraj7)  make
65208747Sraj
66208747Sraj8)  Read the documentation while you are waiting.  The file tcsh.man
67208747Sraj    is in standard [nt]roff -man format. If you like, you can run the
68208747Sraj    tcsh.man2html script (requires Perl) to generate an HTML version of
69208747Sraj    the manpage which you can read with Mosaic, lynx or other HTML browser.
70208747Sraj
71208747Sraj9)  Test tcsh by typing ./tcsh to see that it has compiled correctly.
72208747Sraj    The history command should give a time stamp on every entry.
73208747Sraj    Typing normal characters should echo each exactly once.  Control-A
74208747Sraj    should put the cursor at the beginning of the input line, but after
75208747Sraj    the prompt.  Typing characters after that should insert them into
76208747Sraj    the line.  If you have job control make sure that stopping and
77208747Sraj    restarting jobs works. Make sure you can ^C in the middle of the
78208747Sraj    input line.  Also make sure that pipelines work correctly and there
79208747Sraj    are no races. Try 'echo | cat | cat | cat | cat | more' a couple of
80208747Sraj    times. If you have job control, try this command in the background
81208747Sraj    and bring it in the foreground when it stops for tty output.  Also
82256861Sbrooks    make sure that the ioctl() modes are preserved.  Get into vi, enter
83256861Sbrooks    and exit input mode and suspend it, background it and foreground it
84208747Sraj    again. After all that, lastly make sure that the tty process group
85256861Sbrooks    manipulation is happening correctly. Try ftp to some host. If your
86256861Sbrooks    passwd appears on the screen, you have lost /dev/tty. Otherwise
87208747Sraj    everything is fine.
88208747Sraj
89256861Sbrooks10)  Once satisfied that tcsh is working correctly, complete the installation
90256861Sbrooks    by typing "make install" to install the binary, and "make install.man" to
91256861Sbrooks    install the documentation. Don't forget to look at complete.tcsh for
92256861Sbrooks    useful completions...
93256861Sbrooks
94208747Sraj11) Enjoy.
95208747Sraj
96208747Sraj12) PLEASE send any bug reports (and fixes), code for new features,
97208747Sraj    comments, questions, etc. (even flames) to:
98208747Sraj
99208747Sraj	The tcsh mailing list
100208747Sraj	tcsh@mx.gw.com
101208747Sraj
102208747SrajVarious:
103208747Sraj
104208747Sraj***************************************************************************
105208747Sraj
106208747SrajOn sysv versions < 3.0 (not hpux) Doug Gwyn's public domain directory 
107208747Srajmanipulation library has to be installed. This library is available
108208747Srajfor anonymous ftp from prep.ai.mit.edu:/pub/gnu/dirent.tar.Z
109208747SrajIf the network is not installed, then there is a gethostname()
110208747Srajroutine is tc.os.c, enabled by defining NEEDgethostname
111208747Sraj
112208747Sraj***************************************************************************
113256861Sbrooks
114256861SbrooksOn BSDreno, in ttyname() closedir() is called twice and so the same
115256861Sbrookspointer gets free'd twice. tcsh's malloc is picky and it prints an
116208747Srajerror message to that effect. If you don't like the message:
117256861Sbrooks
118208747Sraj1. Apply the following patch:
119208747Sraj
120208747Sraj*** /usr/src/lib/libc/gen/ttyname.c.orig	Fri Jun  1 17:17:15 1990
121208747Sraj--- /usr/src/lib/libc/gen/ttyname.c	Tue Oct 29 16:33:12 1991
122208747Sraj***************
123208747Sraj*** 51,57 ****
124208747Sraj  		if (stat(buf, &sb2) < 0 || sb1.st_dev != sb2.st_dev ||
125208747Sraj  		    sb1.st_ino != sb2.st_ino)
126208747Sraj  			continue;
127208747Sraj- 		closedir(dp);
128208747Sraj  		rval = buf;
129208747Sraj  		break;
130208747Sraj  	}
131208747Sraj--- 51,56 ----
132208747Sraj
133208747SrajOr: Comment the error printing out in tc.alloc.c
134208747SrajOr: Compile -DSYSMALLOC
135208747Sraj
136208747Sraj
137208747Sraj***************************************************************************
138208747Sraj
139266160SianFrom: Scott Krotz <krotz@honey.rtsg.mot.com>
140248482Sray
141248482SrayTcsh has been ported to minix by  Scott Krotz (krotz@honey.rtsg.mot.com).
142208747SrajUnfortunately the minix sed is broken, so you'll have to find a way to
143208747Srajmake tc.const.h, sh.err.h, ed.defns.h which are automatically generated.
144208747SrajThe easiest way to create them is to make a copy from unix, copying 
145208747Srajminix to config.h, and then 'make sh.err.h tc.const.h ed.defns.h'
146208747Sraj
147266152SianThe OS/dependent files are in mi.termios.h, mi.wait.h, mi.varargs.h
148266152Sian
149266152SianYou will get some warnings, but dont worry about them, just ignore
150248480Sraythem.  After tcsh has compiled and the gcc binary is converted to a
151208747Srajminix binary, remember to chmem it to give it more memory - it will
152208747Srajneed it!  How much you need depends on how many aliases you have, etc..
153208747SrajAdd at least 50000 to it.
154208747Sraj
155261352SnwhitehornOne last thing.  You might have to make some links for include files so
156208747Srajthat they are in the directories that tcsh is expecting while compiling.
157208747SrajI forget if I had to do this or not, but it should be fairly easy to sort
158208747Srajout.  If it cant find any include files this is probably the reason.
159208747Sraj
160208747SrajIf you have any problems, please tell me.  I can be contacted through
161208747Sraje-mail at:
162208747Sraj
163208747Srajkrotz@honey.rtsg.mot.com
164208747Sraj
165208747SrajI also read comp.os.minix on a regular basis, so a note there will get
166208747Srajmy attention also.
167208747Sraj
168208747SrajHave fun!
169208747Sraj
170208747Srajps.  The termios functions are provided by Magnus Doell and Bruce Evans.
171208747Sraj     Thanks, guys!
172208747Sraj
173208747Sraj
174208747SrajFrom: Bob Byrnes <byrnes@ee.cornell.edu>
175208747Sraj
176208747SrajThis is for minix 1.5 (straight out of the box from P-H) plus the i386
177208747Srajpatches from Bruce Evans.
178208747Sraj
179208747SrajI cross-compiled on a Sun using gcc 2.1 with a target of i386-bsd
180208747Sraj(using the minix include files instead of the bsd versions), and then
181208747Srajlinked the resulting object files with similarly compiled crtso.o and
182208747Srajlibc.a on vax (little endian) using a hacked version of ld which I put
183208747Srajtogether to generate minix executables instead of bsd a.out format.
184208747SrajWhat a kludge ...
185208747Sraj
186208747SrajI compiled with -O2 -Wall ...  So far I haven't noticed any problems
187208747Srajwith the optimizer.
188208747Sraj
189208747SrajIn case anyone is contemplating compiling tcsh with bcc (Bruce Evan's
190208747Sraji386 compiler that comes with the minix386 upgrade package), don't bother.
191239274SgonzoIt is some serious bugs that kill tcsh when compiled for 16-bit characters.
192239274SgonzoI can provide more details of bugs that I noticed for brave souls who want
193239274Sgonzoto try, but it would be hard (and why bother if you can get gcc?).
194209904Sraj
195208747SrajI can make the binary available to anyone who wants it (for example people
196208747Srajwho can't get access to a cross-compiling environment, and who don't yet
197208747Srajhave gcc running under minix).
198208747Sraj
199208747Sraj
200273675Sian***************************************************************************
201209904Sraj
202209904SrajIf your compiler cannot handle long symbol names, add 
203208747Sraj
204208747Sraj#include "snames.h" 
205208747Sraj
206208747Srajto your config.h file
207208747Sraj
208208747Sraj	     -- Christos Zoulas
209208747Sraj		christos@zoulas.com
210208747Sraj
211208747Sraj