FAQ revision 69408
1295367Sdes 276259SgreenLast Updated: 365668SkrisFri Aug 25 13:27:45 EDT 2000 465668Skris 565668SkrisThis is for people who do not read the manual! 665668Skris 765668SkrisSo far people who don't read manuals don't read this either... I may 865668Skriscall it README.*PLEASE* in the future, but then the same people won't 965668Skrisbe able to get ftp it... :-) 1065668Skris 1165668Skris1. Why is the meta key broken in tcsh-5.20 and up? 1265668Skris 1365668Skris On some machines the tty is not set up to pass 8 bit characters by default. 1458582Skris Tcsh 5.19 used to try to determine if pass8 should be set by looking at 1558582Skris the terminal's meta key. Unfortunately there is no good way of determining 1658582Skris if the terminal can really pass 8 characters or not. Consider if you are 1758582Skris logged in through a modem line with 7 bits and parity and your terminal 18204917Sdes has a meta key. Then tcsh 5.19 would set wrongly set pass8. 1958582Skris 2076259Sgreen If you did like the previous behavior you can add in /etc/csh.login, or 21221420Sdes in .login: 22221420Sdes 23221420Sdes if ( $?tcsh && $?prompt ) then 24221420Sdes if ( "`echotc meta`" == "yes" ) then 25221420Sdes stty pass8 26221420Sdes endif 27221420Sdes endif 28221420Sdes 29295367Sdes If you don't have pass8, maybe something like 30221420Sdes 31221420Sdes stty -parity -evenp -oddp cs8 -istrip (rs6000) 32221420Sdes or 33221420Sdes stty -parenb -istrip cs8 34221420Sdes 35221420Sdes would work.. 36221420Sdes 37221420Sdes Finally, tcsh will bind all printable meta characters to the self 38295367Sdes insert command. If you don't want that to happen (i.e. use the printable 39221420Sdes meta characters for commands) setenv NOREBIND. 40221420Sdes 41221420Sdes2. I ran 'dbxtool &' and 'shelltool &' from tcsh, and they end up in cbreak 42221420Sdes and no echo mode? 43295367Sdes 44295367Sdes These programs are broken. Background jobs should not try to look at the 45295367Sdes tty. What happens is that dbxtool looks in stderr to inherit the tty 4658582Skris setups, but tcsh sets up the tty in cbreak and -echo modes, so that it 47295367Sdes can do line editing. This cannot be fixed because tcsh cannot give away 48295367Sdes the tty. A work-around is: 49295367Sdes 50295367Sdes dbxtool < /dev/null >& /dev/null & 51146998Sdes or 52146998Sdes /usr/etc/setsid dbxtool & 53146998Sdes 54204917Sdes If that does not work, for dbxtool at least you can add "sh stty sane" 55204917Sdes in your .dbxinit 56204917Sdes 57146998Sdes3. I tried to compile tcsh and it cannot find <locale.h>? 58146998Sdes 59295367Sdes Your system does not support NLS. Undefine NLS in config_f.h and it 60295367Sdes should work fine. 61295367Sdes 62295367Sdes4. Where can I get csh sources? 63295367Sdes 64295367Sdes Csh sources are now available with the 4.4BSD networking distributions. 65295367Sdes You don't need csh sources to compile tcsh-6.0x. 66295367Sdes 67295367Sdes5. I just made tcsh my login shell, and I cannot ftp any more? 68295367Sdes 69295367Sdes Newer versions of the ftp daemon check for the validity of the 70295367Sdes user's shell before they allow logins. The list of valid login 71295367Sdes shells is either hardcoded or it is usually in a file called 72295367Sdes /etc/shells. If it is hard-coded, then you are out of luck and 73295367Sdes your best bet is to get a newer version of ftpd. Otherwise add 74295367Sdes tcsh to the list of shells. [For AIX this file is called 75295367Sdes /etc/security/login.cfg]. Remember that the full path is required. 76295367Sdes If there is no /etc/shells, and you are creating one, remember to 77295367Sdes add /bin/csh, /bin/sh, and any other valid shells for your system, 78295367Sdes so that other people can ftp too :-) 79295367Sdes 80295367Sdes6. I am using SunView/OpenWindows and editing is screwed up. In 81295367Sdes particular my arrow keys and backspace don't work right. What 82295367Sdes am I doing wrong? 83295367Sdes 84295367Sdes Well, cmdtool tries to do its own command line editing and the 85295367Sdes effect you get is one of using an editor inside an editor. Both 86295367Sdes try to interpret the arrow key sequences and cmdtool wins since 87295367Sdes it gets them first. The solutions are in my order of preference: 88295367Sdes 89295367Sdes 1 Don't use suntools 90295367Sdes 2 Use shelltool instead of cmdtool. 91295367Sdes 3 Unset edit in tcsh. 92295367Sdes 93295367Sdes6b. On a SPARCstation running Solaris 2.x and OpenWindows 3.1, 94295367Sdes inside a cmdtool, the short-cut key sequence to clear log 95295367Sdes (i.e. Meta-e or Diamond-e) doesn't work: it just echos 'e' 96295367Sdes 97295367Sdes6c. On a SPARCstation running Solaris 2.x and OpenWindows 3.1, 98295367Sdes maketool (within SPARCworks) doesn't work: it just does 99295367Sdes a `cd' to the working directory then stops. 100295367Sdes 101295367Sdes The workaround for 6b and 6c is doing "unset edit." 102295367Sdes Using shelltool instead of cmdtool doesn't fix 6c. 103295367Sdes 104295367Sdes7. I rlogin to another machine, and then no matter what I tell 'stty' 105295367Sdes I cannot get it to pass 8 bit characters? 106295367Sdes 107295367Sdes Maybe you need to use 'rlogin -8' to tell rlogin to pass 8 10858582Skris bit characters. 109 1108. Where do I get the public domain directory library? 111 112 Anonymous ftp to prep.ai.mit.edu:/pub/gnu/dirent.tar.Z 113 1149. I compiled tcsh using gcc, and when I start up it says: 115 tcsh: Warning no access to tty (Invalid Argument). 116 Thus no job control in this shell 117 118 Your <sys/ioctl.h> file is not ansi compliant. You have one of 3 choices: 119 a. Run fixincludes from the gcc distribution. 120 b. Add -traditional to the gcc flags. 121 c. Compile with cc. 122 12310. I compiled tcsh with the SunOS unbundled compiler and now things 124 get echo'ed twice. 125 126 It is a bug in the unbundled optimizer. Lower the optimization level. 127 12811. How can I use the arrow keys with hpterm? 129 Hp terminals use the arrow keys internally. You can tell hpterm not 130 to do that, by sending it the termcap sequence smkx. Since this 131 has to be done all the time, the easiest thing is to put it as an 132 alias for precmd, or inside the prompt: 133 134 if ($term == "hp") then 135 set prompt="%{`echotc smkx`%}$prompt" 136 endif 137 138 Note that by doing that you cannot use pgup and pgdn to scroll... 139 Also if you are using termcap, replace "smkx" with "ks"... 140 14112. On POSIX machines ^C and ^Z will do not work when tcsh is a login 142 shell? 143 Make sure that the interrupt character is set to ^C and suspend 144 is set to ^Z; 'stty -a' will show you the current stty settings; 145 'stty intr ^C susp ^Z' will set them to ^C and ^Z respectively. 146 14713. I am trying to compile tcsh and I am getting compile errors that 148 look like: 149 150 >sh.c:???: `STR???' undeclared, outside of functions [gcc] 151 or 152 >"sh.c", line ???: STR??? undefined [cc] 153 154 You interrupted make, while it was making the automatically 155 generated headers. Type 'make clean; make' 156 15714. On the cray, sometimes the CR/LF mapping gets screwed up. 158 159 You are probably logged in to the cray via telnet. Cray's 160 telnetd implements line mode selection the telnet client 161 you are using does not implement telnet line mode. 162 This cause the Cray's telnetd to try to use KLUDGELINEMODE. 163 You can turn off telnet line mode from the cray side by 164 doing a "stty -extproc", or you can get the Cray AIC to build 165 a telnetd without KLUDGELINEMODE, or you can compile 166 a new telnet client (from the BSD net2 tape), or at least 167 on the suns use: 'mode character'. 168 169 17015. On AU/X, I made tcsh my startup shell, but the mac desktop is not 171 starting up (no X11 or Finder), and I only get console emulation. 172 173 This is another manifestation of item 5. Just add the pathname 174 to tcsh in /etc/shells and everything should work fine. 175 17616. On machines that use YP (NIS) tilde expansion might end up in /dev/null 177 If this happens complain to your vendor, to get a new version of NIS. 178 You can fix that in tcsh by defining YPBUGS in config.h 179 18017. Script on SGI 4.0.5 does not give us a tty, so we cannot have job 181 control. Their csh does not have job control either. Try: 182 % script 183 % cat > /dev/tty 184 18518. I start tcsh and it takes a couple of minutes to get the prompt. 186 You have defined REMOTEHOST and your DNS is not responding. Either 187 undefine REMOTEHOST and recompile or fix your DNS. 188 18919. If you need help generating your .cshrc file, check out: 190 http://www.imada.ou.dk/~blackie/dotfile/ 191 19220. On POSIX systems the kernel will send hup signals to all the processes 193 in the foreground process group if 'stty hupcl' is set. For example 194 ./tcsh 195 echo $$ 196 591 197 ./tcsh 198 kill -6 591 199 200 Will kill everything, since hup will be sent to all tcsh processes. 201 To avoid that you can set stty -hupcl, but it is not recommended. 202 20321. When I rsh the meta key stops working on the remote machine. 204 205 Try using rsh -8; this option is undocumented on some systems, 206 but it works. If that does not work, get and use ssh/sshd. You'll 207 be better off from a security point of view anyway. 208 20922. Tcsh compiled under hp/ux-10.x does not pass resource limits correctly 210 when ran on hp/ux-11.x systems. This is a problem with lack of ABI 211 compatibility between the two systems. The only solution is to recompile. 212 213christos 214 215Everything else is a bug :-( 216