README revision 100616
1This is tcsh version 6.12. Tcsh is a version of the Berkeley 2C-Shell, with the addition of: a command line editor, command and file 3name completion, listing, etc. and a bunch of small additions to the 4shell itself. 5 6Tcsh has been ported to most unix variants, and can be tinkered to work 7in unix systems that it has not ported yet. See the Ported file for 8a more complete list of ported systems and in the config directory for 9a configuration file that matches your system. 10Tcsh also runs under VMS/POSIX and OS/2+emx; the OS/2 port is not 11complete yet. 12 13Feel free to use it. These changes to csh may only be included in a 14commercial product if the inclusion or exclusion does not change the 15purchase price, level of support, etc. Please respect the individual 16authors by giving credit where credit is due (in other words, don't 17claim that you wrote portions that you haven't, and don't delete the 18names of the authors from the source code or documentation). 19 20To install tcsh: 21 220) Try running "configure". If that works, goto step 6. 23 If you are using imake, try xmkmf and goto step 3. 24 If imake does not work, copy Makefile.std to Makefile. 25 261) Look at the Makefile and make sure that you are using the right 27 compilation flags. 28 292) Copy the appropriate for your machine and OS config file from the 30 config subdirectory into config.h. Consult the file "Ported" for 31 settings known to work on various machines. If you are trying to 32 compile tcsh on a machine for which there is no config file yet, 33 you will need to create a config file using as a template one of 34 the supplied ones. If you get tcsh working on a new machine, I'd 35 appreciate a copy of the config file plus additional information 36 about the architecture/OS. If you are creating a new config file, 37 look very hard at BSDJOBS, BSDSIGS, and BSDTIMES if you are running 38 a non-BSD machine. For vanila SysV, these would all be #undef-ed, 39 but others may vary (such as A/UX or HPUX). On a pyramid, compile 40 in the UCB universe even if you are running under the ATT universe 41 usually; it will work anyway, and you get job control for free. 42 433) Look at config_f.h, and enable or disable any features you want. 44 It is configured the way I like it, but you may disagree. 45 If you do not have NLS, then locale.h will not be found. Undefine it 46 and things should work ok. On the other hand, if you have NLS you 47 might as well use it... 48 494) Look at host.defs to make sure that you have the right defines to set 50 the environment variables "HOSTTYPE", "MACHTYPE", "OSTYPE" and 51 "VENDOR" correctly. If you need to make changes, PLEASE SEND THEM 52 BACK TO ME. 53 545) You may want to adjust the TCSH_BINDIR and TCSH_MANDIR entries in 55 the Makefile. These are the directories that tcsh, and the tcsh.1 56 man entry will be placed in when you do a "make install" and "make 57 install.man" respectively. If you decide to install tcsh somewhere 58 other than in /usr/local/bin/tcsh, you should #define _PATH_TCSHELL 59 "/your/installation/directory/tcsh" in pathnames.h. 60 616) If you've changed any of the configuration variables you may need 62 to re-run configure. 63 647) make 65 668) Read the documentation while you are waiting. The file tcsh.man 67 is in standard [nt]roff -man format. If you like, you can run the 68 tcsh.man2html script (requires Perl) to generate an HTML version of 69 the manpage which you can read with Mosaic, lynx or other HTML browser. 70 719) Test tcsh by typing ./tcsh to see that it has compiled correctly. 72 The history command should give a time stamp on every entry. 73 Typing normal characters should echo each exactly once. Control-A 74 should put the cursor at the beginning of the input line, but after 75 the prompt. Typing characters after that should insert them into 76 the line. If you have job control make sure that stopping and 77 restarting jobs works. Make sure you can ^C in the middle of the 78 input line. Also make sure that pipelines work correctly and there 79 are no races. Try 'echo | cat | cat | cat | cat | more' a couple of 80 times. If you have job control, try this command in the background 81 and bring it in the foreground when it stops for tty output. Also 82 make sure that the ioctl() modes are preserved. Get into vi, enter 83 and exit input mode and suspend it, background it and foreground it 84 again. After all that, lastly make sure that the tty process group 85 manipulation is happening correctly. Try ftp to some host. If your 86 passwd appears on the screen, you have lost /dev/tty. Otherwise 87 everything is fine. 88 8910) Once satisfied that tcsh is working correctly, complete the installation 90 by typing "make install" to install the binary, and "make install.man" to 91 install the documentation. Don't forget to look at complete.tcsh for 92 useful completions... 93 9411) Enjoy. 95 9612) PLEASE send any bug reports (and fixes), code for new features, 97 comments, questions, etc. (even flames) to: 98 99 The tcsh mailing list 100 tcsh@mx.gw.com 101 102Various: 103 104*************************************************************************** 105 106On sysv versions < 3.0 (not hpux) Doug Gwyn's public domain directory 107manipulation library has to be installed. This library is available 108for anonymous ftp from prep.ai.mit.edu:/pub/gnu/dirent.tar.Z 109If the network is not installed, then there is a gethostname() 110routine is tc.os.c, enabled by defining NEEDgethostname 111 112*************************************************************************** 113 114On BSDreno, in ttyname() closedir() is called twice and so the same 115pointer gets free'd twice. tcsh's malloc is picky and it prints an 116error message to that effect. If you don't like the message: 117 1181. Apply the following patch: 119 120*** /usr/src/lib/libc/gen/ttyname.c.orig Fri Jun 1 17:17:15 1990 121--- /usr/src/lib/libc/gen/ttyname.c Tue Oct 29 16:33:12 1991 122*************** 123*** 51,57 **** 124 if (stat(buf, &sb2) < 0 || sb1.st_dev != sb2.st_dev || 125 sb1.st_ino != sb2.st_ino) 126 continue; 127- closedir(dp); 128 rval = buf; 129 break; 130 } 131--- 51,56 ---- 132 133Or: Comment the error printing out in tc.alloc.c 134Or: Compile -DSYSMALLOC 135 136 137*************************************************************************** 138 139From: Scott Krotz <krotz@honey.rtsg.mot.com> 140 141Tcsh has been ported to minix by Scott Krotz (krotz@honey.rtsg.mot.com). 142Unfortunately the minix sed is broken, so you'll have to find a way to 143make tc.const.h, sh.err.h, ed.defns.h which are automatically generated. 144The easiest way to create them is to make a copy from unix, copying 145minix to config.h, and then 'make sh.err.h tc.const.h ed.defns.h' 146 147The OS/dependent files are in mi.termios.h, mi.wait.h, mi.varargs.h 148 149You will get some warnings, but dont worry about them, just ignore 150them. After tcsh has compiled and the gcc binary is converted to a 151minix binary, remember to chmem it to give it more memory - it will 152need it! How much you need depends on how many aliases you have, etc.. 153Add at least 50000 to it. 154 155One last thing. You might have to make some links for include files so 156that they are in the directories that tcsh is expecting while compiling. 157I forget if I had to do this or not, but it should be fairly easy to sort 158out. If it cant find any include files this is probably the reason. 159 160If you have any problems, please tell me. I can be contacted through 161e-mail at: 162 163krotz@honey.rtsg.mot.com 164 165I also read comp.os.minix on a regular basis, so a note there will get 166my attention also. 167 168Have fun! 169 170ps. The termios functions are provided by Magnus Doell and Bruce Evans. 171 Thanks, guys! 172 173 174From: Bob Byrnes <byrnes@ee.cornell.edu> 175 176This is for minix 1.5 (straight out of the box from P-H) plus the i386 177patches from Bruce Evans. 178 179I cross-compiled on a Sun using gcc 2.1 with a target of i386-bsd 180(using the minix include files instead of the bsd versions), and then 181linked the resulting object files with similarly compiled crtso.o and 182libc.a on vax (little endian) using a hacked version of ld which I put 183together to generate minix executables instead of bsd a.out format. 184What a kludge ... 185 186I compiled with -O2 -Wall ... So far I haven't noticed any problems 187with the optimizer. 188 189In case anyone is contemplating compiling tcsh with bcc (Bruce Evan's 190i386 compiler that comes with the minix386 upgrade package), don't bother. 191It is some serious bugs that kill tcsh when compiled for 16-bit characters. 192I can provide more details of bugs that I noticed for brave souls who want 193to try, but it would be hard (and why bother if you can get gcc?). 194 195I can make the binary available to anyone who wants it (for example people 196who can't get access to a cross-compiling environment, and who don't yet 197have gcc running under minix). 198 199 200*************************************************************************** 201 202If your compiler cannot handle long symbol names, add 203 204#include "snames.h" 205 206to your config.h file 207 208 -- Christos Zoulas 209 christos@zoulas.com 210 211