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