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