xref: /freebsd/contrib/tcsh/FAQ (revision c80476e4c3e6730697b9424f88dfa74d1907cabd)
1c80476e4SDavid E. O'Brien
2c80476e4SDavid E. O'BrienLast Updated:
3c80476e4SDavid E. O'BrienFri Mar 12 12:53:43 EST 1999
4c80476e4SDavid E. O'Brien
5c80476e4SDavid E. O'BrienThis is for people who do not read the manual!
6c80476e4SDavid E. O'Brien
7c80476e4SDavid E. O'BrienSo far people who don't read manuals don't read this either... I may
8c80476e4SDavid E. O'Briencall it README.*PLEASE* in the future, but then the same people won't
9c80476e4SDavid E. O'Brienbe able to get ftp it... :-)
10c80476e4SDavid E. O'Brien
11c80476e4SDavid E. O'Brien1.  Why is the meta key broken in tcsh-5.20 and up?
12c80476e4SDavid E. O'Brien
13c80476e4SDavid E. O'Brien    On some machines the tty is not set up to pass 8 bit characters by default.
14c80476e4SDavid E. O'Brien    Tcsh 5.19 used to try to determine if pass8 should be set by looking at
15c80476e4SDavid E. O'Brien    the terminal's meta key. Unfortunately there is no good way of determining
16c80476e4SDavid E. O'Brien    if the terminal can really pass 8 characters or not. Consider if you are
17c80476e4SDavid E. O'Brien    logged in through a modem line with 7 bits and parity and your terminal
18c80476e4SDavid E. O'Brien    has a meta key. Then tcsh 5.19 would set wrongly set pass8.
19c80476e4SDavid E. O'Brien
20c80476e4SDavid E. O'Brien    If you did like the previous behavior you can add in /etc/csh.login, or
21c80476e4SDavid E. O'Brien    in .login:
22c80476e4SDavid E. O'Brien
23c80476e4SDavid E. O'Brien    if ( $?tcsh && $?prompt ) then
24c80476e4SDavid E. O'Brien	if ( "`echotc meta`" == "yes" ) then
25c80476e4SDavid E. O'Brien	     stty pass8
26c80476e4SDavid E. O'Brien	endif
27c80476e4SDavid E. O'Brien    endif
28c80476e4SDavid E. O'Brien
29c80476e4SDavid E. O'Brien    If you don't have pass8, maybe something like
30c80476e4SDavid E. O'Brien
31c80476e4SDavid E. O'Brien	stty -parity -evenp -oddp cs8 -istrip   (rs6000)
32c80476e4SDavid E. O'Brien    or
33c80476e4SDavid E. O'Brien	stty -parenb -istrip cs8
34c80476e4SDavid E. O'Brien
35c80476e4SDavid E. O'Brien    would work..
36c80476e4SDavid E. O'Brien
37c80476e4SDavid E. O'Brien2.  I ran 'dbxtool &' and 'shelltool &' from tcsh, and they end up in cbreak
38c80476e4SDavid E. O'Brien    and no echo mode?
39c80476e4SDavid E. O'Brien
40c80476e4SDavid E. O'Brien    These programs are broken. Background jobs should not try to look at the
41c80476e4SDavid E. O'Brien    tty. What happens is that dbxtool looks in stderr to inherit the tty
42c80476e4SDavid E. O'Brien    setups, but tcsh sets up the tty in cbreak and -echo modes, so that it
43c80476e4SDavid E. O'Brien    can do line editing. This cannot be fixed because tcsh cannot give away
44c80476e4SDavid E. O'Brien    the tty. A work-around is:
45c80476e4SDavid E. O'Brien
46c80476e4SDavid E. O'Brien    dbxtool < /dev/null >& /dev/null &
47c80476e4SDavid E. O'Brien    or
48c80476e4SDavid E. O'Brien    /usr/etc/setsid dbxtool &
49c80476e4SDavid E. O'Brien
50c80476e4SDavid E. O'Brien    If that does not work, for dbxtool at least you can add "sh stty sane"
51c80476e4SDavid E. O'Brien    in your .dbxinit
52c80476e4SDavid E. O'Brien
53c80476e4SDavid E. O'Brien3.  I tried to compile tcsh and it cannot find <locale.h>?
54c80476e4SDavid E. O'Brien
55c80476e4SDavid E. O'Brien    Your system does not support NLS. Undefine NLS in config_f.h and it
56c80476e4SDavid E. O'Brien    should work fine.
57c80476e4SDavid E. O'Brien
58c80476e4SDavid E. O'Brien4.  Where can I get csh sources?
59c80476e4SDavid E. O'Brien
60c80476e4SDavid E. O'Brien    Csh sources are now available with the 4.4BSD networking distributions.
61c80476e4SDavid E. O'Brien    You don't need csh sources to compile tcsh-6.0x.
62c80476e4SDavid E. O'Brien
63c80476e4SDavid E. O'Brien5.  I just made tcsh my login shell, and I cannot ftp any more?
64c80476e4SDavid E. O'Brien
65c80476e4SDavid E. O'Brien    Newer versions of the ftp daemon check for the validity of the
66c80476e4SDavid E. O'Brien    user's shell before they allow logins. The list of valid login
67c80476e4SDavid E. O'Brien    shells is either hardcoded or it is usually in a file called
68c80476e4SDavid E. O'Brien    /etc/shells. If it is hard-coded, then you are out of luck and
69c80476e4SDavid E. O'Brien    your best bet is to get a newer version of ftpd. Otherwise add
70c80476e4SDavid E. O'Brien    tcsh to the list of shells. [For AIX this file is called
71c80476e4SDavid E. O'Brien    /etc/security/login.cfg]. Remember that the full path is required.
72c80476e4SDavid E. O'Brien    If there is no /etc/shells, and you are creating one, remember to
73c80476e4SDavid E. O'Brien    add /bin/csh, /bin/sh, and any other valid shells for your system,
74c80476e4SDavid E. O'Brien    so that other people can ftp too :-)
75c80476e4SDavid E. O'Brien
76c80476e4SDavid E. O'Brien6.  I am using SunView/OpenWindows and editing is screwed up. In
77c80476e4SDavid E. O'Brien    particular my arrow keys and backspace don't work right. What
78c80476e4SDavid E. O'Brien    am I doing wrong?
79c80476e4SDavid E. O'Brien
80c80476e4SDavid E. O'Brien    Well, cmdtool tries to do its own command line editing and the
81c80476e4SDavid E. O'Brien    effect you get is one of using an editor inside an editor. Both
82c80476e4SDavid E. O'Brien    try to interpret the arrow key sequences and cmdtool wins since
83c80476e4SDavid E. O'Brien    it gets them first. The solutions are in my order of preference:
84c80476e4SDavid E. O'Brien
85c80476e4SDavid E. O'Brien	1 Don't use suntools
86c80476e4SDavid E. O'Brien	2 Use shelltool instead of cmdtool.
87c80476e4SDavid E. O'Brien	3 Unset edit in tcsh.
88c80476e4SDavid E. O'Brien
89c80476e4SDavid E. O'Brien6b. On a SPARCstation running Solaris 2.x and OpenWindows 3.1,
90c80476e4SDavid E. O'Brien    inside a cmdtool, the short-cut key sequence to clear log
91c80476e4SDavid E. O'Brien    (i.e. Meta-e or Diamond-e) doesn't work: it just echos 'e'
92c80476e4SDavid E. O'Brien
93c80476e4SDavid E. O'Brien6c. On a SPARCstation running Solaris 2.x and OpenWindows 3.1,
94c80476e4SDavid E. O'Brien    maketool (within SPARCworks) doesn't work: it just does
95c80476e4SDavid E. O'Brien    a `cd' to the working directory then stops.
96c80476e4SDavid E. O'Brien
97c80476e4SDavid E. O'Brien    The workaround for 6b and 6c is doing "unset edit."
98c80476e4SDavid E. O'Brien    Using shelltool instead of cmdtool doesn't fix 6c.
99c80476e4SDavid E. O'Brien
100c80476e4SDavid E. O'Brien7.  I rlogin to another machine, and then no matter what I tell 'stty'
101c80476e4SDavid E. O'Brien    I cannot get it to pass 8 bit characters?
102c80476e4SDavid E. O'Brien
103c80476e4SDavid E. O'Brien    Maybe you need to use 'rlogin -8' to tell rlogin to pass 8
104c80476e4SDavid E. O'Brien    bit characters.
105c80476e4SDavid E. O'Brien
106c80476e4SDavid E. O'Brien8.  Where do I get the public domain directory library?
107c80476e4SDavid E. O'Brien
108c80476e4SDavid E. O'Brien    Anonymous ftp to prep.ai.mit.edu:/pub/gnu/dirent.tar.Z
109c80476e4SDavid E. O'Brien
110c80476e4SDavid E. O'Brien9.  I compiled tcsh using gcc, and when I start up it says:
111c80476e4SDavid E. O'Brien    tcsh: Warning no access to tty (Invalid Argument).
112c80476e4SDavid E. O'Brien    Thus no job control in this shell
113c80476e4SDavid E. O'Brien
114c80476e4SDavid E. O'Brien    Your <sys/ioctl.h> file is not ansi compliant. You have one of 3 choices:
115c80476e4SDavid E. O'Brien	a. Run fixincludes from the gcc distribution.
116c80476e4SDavid E. O'Brien	b. Add -traditional to the gcc flags.
117c80476e4SDavid E. O'Brien	c. Compile with cc.
118c80476e4SDavid E. O'Brien
119c80476e4SDavid E. O'Brien10. I compiled tcsh with the SunOS unbundled compiler and now things
120c80476e4SDavid E. O'Brien    get echo'ed twice.
121c80476e4SDavid E. O'Brien
122c80476e4SDavid E. O'Brien    It is a bug in the unbundled optimizer. Lower the optimization level.
123c80476e4SDavid E. O'Brien
124c80476e4SDavid E. O'Brien11. How can I use the arrow keys with hpterm?
125c80476e4SDavid E. O'Brien    Hp terminals use the arrow keys internally. You can tell hpterm not
126c80476e4SDavid E. O'Brien    to do that, by sending it the termcap sequence smkx. Since this
127c80476e4SDavid E. O'Brien    has to be done all the time, the easiest thing is to put it as an
128c80476e4SDavid E. O'Brien    alias for precmd, or inside the prompt:
129c80476e4SDavid E. O'Brien
130c80476e4SDavid E. O'Brien    if ($term == "hp") then
131c80476e4SDavid E. O'Brien	set prompt="%{`echotc smkx`%}$prompt"
132c80476e4SDavid E. O'Brien    endif
133c80476e4SDavid E. O'Brien
134c80476e4SDavid E. O'Brien    Note that by doing that you cannot use pgup and pgdn to scroll...
135c80476e4SDavid E. O'Brien    Also if you are using termcap, replace "smkx" with "ks"...
136c80476e4SDavid E. O'Brien
137c80476e4SDavid E. O'Brien12. On POSIX machines ^C and ^Z will do not work when tcsh is a login
138c80476e4SDavid E. O'Brien    shell?
139c80476e4SDavid E. O'Brien    Make sure that the interrupt character is set to ^C and suspend
140c80476e4SDavid E. O'Brien    is set to ^Z; 'stty -a' will show you the current stty settings;
141c80476e4SDavid E. O'Brien    'stty intr ^C susp ^Z' will set them to ^C and ^Z respectively.
142c80476e4SDavid E. O'Brien
143c80476e4SDavid E. O'Brien13. I am trying to compile tcsh and I am getting compile errors that
144c80476e4SDavid E. O'Brien    look like:
145c80476e4SDavid E. O'Brien
146c80476e4SDavid E. O'Brien    >sh.c:???: `STR???' undeclared, outside of functions [gcc]
147c80476e4SDavid E. O'Brien    or
148c80476e4SDavid E. O'Brien    >"sh.c", line ???: STR??? undefined [cc]
149c80476e4SDavid E. O'Brien
150c80476e4SDavid E. O'Brien    You interrupted make, while it was making the automatically
151c80476e4SDavid E. O'Brien    generated headers. Type 'make clean; make'
152c80476e4SDavid E. O'Brien
153c80476e4SDavid E. O'Brien14. On the cray, sometimes the CR/LF mapping gets screwed up.
154c80476e4SDavid E. O'Brien
155c80476e4SDavid E. O'Brien    You are probably logged in to the cray via telnet. Cray's
156c80476e4SDavid E. O'Brien    telnetd implements line mode selection the telnet client
157c80476e4SDavid E. O'Brien    you are using does not implement telnet line mode.
158c80476e4SDavid E. O'Brien    This cause the Cray's telnetd to try to use KLUDGELINEMODE.
159c80476e4SDavid E. O'Brien    You can turn off telnet line mode from the cray side by
160c80476e4SDavid E. O'Brien    doing a "stty -extproc", or you can get the Cray AIC to build
161c80476e4SDavid E. O'Brien    a telnetd without KLUDGELINEMODE, or you can compile
162c80476e4SDavid E. O'Brien    a new telnet client (from the BSD net2 tape), or at least
163c80476e4SDavid E. O'Brien    on the suns use: 'mode character'.
164c80476e4SDavid E. O'Brien
165c80476e4SDavid E. O'Brien
166c80476e4SDavid E. O'Brien15. On AU/X, I made tcsh my startup shell, but the mac desktop is not
167c80476e4SDavid E. O'Brien    starting up (no X11 or Finder), and I only get console emulation.
168c80476e4SDavid E. O'Brien
169c80476e4SDavid E. O'Brien    This is another manifestation of item 5. Just add the pathname
170c80476e4SDavid E. O'Brien    to tcsh in /etc/shells and everything should work fine.
171c80476e4SDavid E. O'Brien
172c80476e4SDavid E. O'Brien16. On machines that use YP (NIS) tilde expansion might end up in /dev/null
173c80476e4SDavid E. O'Brien    If this happens complain to your vendor, to get a new version of NIS.
174c80476e4SDavid E. O'Brien    You can fix that in tcsh by defining YPBUGS in config.h
175c80476e4SDavid E. O'Brien
176c80476e4SDavid E. O'Brien17. Script on SGI 4.0.5 does not give us a tty, so we cannot have job
177c80476e4SDavid E. O'Brien    control. Their csh does not have job control either. Try:
178c80476e4SDavid E. O'Brien	% script
179c80476e4SDavid E. O'Brien	% cat > /dev/tty
180c80476e4SDavid E. O'Brien
181c80476e4SDavid E. O'Brien18. I start tcsh and it takes a couple of minutes to get the prompt.
182c80476e4SDavid E. O'Brien    You have defined REMOTEHOST and your DNS is not responding. Either
183c80476e4SDavid E. O'Brien    undefine REMOTEHOST and recompile or fix your DNS.
184c80476e4SDavid E. O'Brien
185c80476e4SDavid E. O'Brien19. If you need help generating your .cshrc file, check out:
186c80476e4SDavid E. O'Brien	http://www.imada.ou.dk/~blackie/dotfile/
187c80476e4SDavid E. O'Brien
188c80476e4SDavid E. O'Brien20. On POSIX systems the kernel will send hup signals to all the processes
189c80476e4SDavid E. O'Brien    in the foreground process group if 'stty hupcl' is set. For example
190c80476e4SDavid E. O'Brien    ./tcsh
191c80476e4SDavid E. O'Brien    echo $$
192c80476e4SDavid E. O'Brien    591
193c80476e4SDavid E. O'Brien    ./tcsh
194c80476e4SDavid E. O'Brien    kill -6 591
195c80476e4SDavid E. O'Brien
196c80476e4SDavid E. O'Brien    Will kill everything, since hup will be sent to all tcsh processes.
197c80476e4SDavid E. O'Brien    To avoid that you can set stty -hupcl, but it is not recommended.
198c80476e4SDavid E. O'Brien
199c80476e4SDavid E. O'Brien21. When I rsh the meta key stops working on the remote machine.
200c80476e4SDavid E. O'Brien
201c80476e4SDavid E. O'Brien    Try using rsh -8; this option is undocumented on some systems,
202c80476e4SDavid E. O'Brien    but it works. If that does not work, get and use ssh/sshd. You'll
203c80476e4SDavid E. O'Brien    be better off from a security point of view anyway.
204c80476e4SDavid E. O'Brien
205c80476e4SDavid E. O'Brien22. Tcsh compiled under hp/ux-10.x does not pass resource limits correctly
206c80476e4SDavid E. O'Brien    when ran on hp/ux-11.x systems. This is a problem with lack of ABI
207c80476e4SDavid E. O'Brien    compatibility between the two systems. The only solution is to recompile.
208c80476e4SDavid E. O'Brien
209c80476e4SDavid E. O'Brienchristos
210c80476e4SDavid E. O'Brien
211c80476e4SDavid E. O'BrienEverything else is a bug :-(
212