Index: head/contrib/tcsh/FAQ =================================================================== --- head/contrib/tcsh/FAQ (revision 131962) +++ head/contrib/tcsh/FAQ (revision 131963) @@ -1,262 +1,304 @@ [Home] FAQ Home | RecentChanges | Preferences _________________________________________________________________ This is for people who do not read the manual! So far people who don't read manuals don't read this either... I may call it README.*PLEASE* in the future, but then the same people won't be able to get ftp it... :-) _________________________________________________________________ - 1. Why is the meta key broken in tcsh-5.20 and up? + 1. Where can I find tcsh sources? + See http://www.tcsh.org/MostRecentRelease for download locations. + _________________________________________________________________ + + 2. Why is the meta key broken in tcsh-5.20 and up? + On some machines the tty is not set up to pass 8 bit characters by default. Tcsh 5.19 used to try to determine if pass8 should be set by looking at the terminal's meta key. Unfortunately there is no good way of determining if the terminal can really pass 8 characters or not. Consider if you are logged in through a modem line with 7 bits and parity and your terminal has a meta key. Then tcsh 5.19 would set wrongly set pass8. If you did like the previous behavior you can add in /etc/csh.login, or in .login: if ( $?tcsh && $?prompt ) then if ( "`echotc meta`" == "yes" ) then stty pass8 endif endif If you don't have pass8, maybe one of these would work.. stty -parity -evenp -oddp cs8 -istrip (rs6000) stty -parenb -istrip cs8 Finally, tcsh will bind all printable meta characters to the self insert command. If you don't want that to happen (i.e. use the printable meta characters for commands) setenv NOREBIND. _________________________________________________________________ - 2. I ran 'dbxtool &' and 'shelltool &' from tcsh, and they end up in + 3. I ran 'dbxtool &' and 'shelltool &' from tcsh, and they end up in cbreak and no echo mode? These programs are broken. Background jobs should not try to look at the tty. What happens is that dbxtool looks in stderr to inherit the tty setups, but tcsh sets up the tty in cbreak and -echo modes, so that it can do line editing. This cannot be fixed because tcsh cannot give away the tty. Pick one of the following as a workaround: dbxtool < /dev/null >& /dev/null & /usr/etc/setsid dbxtool & If that does not work, for dbxtool at least you can add "sh stty sane" in your .dbxinit _________________________________________________________________ - 3. I tried to compile tcsh and it cannot find ? + 4. I tried to compile tcsh and it cannot find ? Your system does not support NLS. Undefine NLS in config_f.h and it should work fine. _________________________________________________________________ - 4. Where can I get csh sources? + 5. Where can I get csh sources? Csh sources are now available with the 4.4BSD networking distributions. You don't need csh sources to compile tcsh-6.0x. _________________________________________________________________ - 5. I just made tcsh my login shell, and I cannot ftp any more? + 6. I just made tcsh my login shell, and I cannot ftp any more? Newer versions of the ftp daemon check for the validity of the user's shell before they allow logins. The list of valid login shells is either hardcoded or it is usually in a file called /etc/shells. If it is hard-coded, then you are out of luck and your best bet is to get a newer version of ftpd. Otherwise add tcsh to the list of shells. [For AIX this file is called /etc/security/login.cfg.] Remember that the full path is required. If there is no /etc/shells, and you are creating one, remember to add /bin/csh, /bin/sh, and any other valid shells for your system, so that other people can ftp too :-) _________________________________________________________________ - 6. I am using SunView? or OpenWindows? and editing is screwed up. In + 7. I am using SunView or OpenWindows and editing is screwed up. In particular my arrow keys and backspace don't work right. What am I doing wrong? Well, cmdtool tries to do its own command line editing and the effect you get is one of using an editor inside an editor. Both try to interpret the arrow key sequences and cmdtool wins since it gets them first. The solutions are in my order of preference: 1. Don't use suntools 2. Use shelltool instead of cmdtool. 3. Unset edit in tcsh. + _________________________________________________________________ - 6b. On a SPARCstation running Solaris 2.x and OpenWindows? 3.1, inside - a cmdtool, the short-cut key sequence to clear log (i.e. Meta-e or - Diamond-e) doesn't work: it just echos 'e' + 8. On a SPARCstation running Solaris 2.x and OpenWindows 3.1, inside a + cmdtool, the short-cut key sequence to clear log (i.e. Meta-e or + Diamond-e) doesn't work: it just echos 'e'; or - 6c. On a SPARCstation running Solaris 2.x and OpenWindows? 3.1, - maketool (within SPARCworks) doesn't work: it just does a `cd' to the - working directory then stops. + Unset edit in tcsh. + _________________________________________________________________ - The workaround for 6b and 6c is doing "unset edit." Using shelltool - instead of cmdtool doesn't fix 6c. + 9. On a SPARCstation running Solaris 2.x and OpenWindows 3.1, maketool + (within SPARCworks) doesn't work: it just does a `cd' to the working + directory then stops. + + Unset edit in tcsh. Using shelltool instead of cmdtool does not fix + this. _________________________________________________________________ - 7. I rlogin to another machine, and then no matter what I tell 'stty' + 10. I rlogin to another machine, and then no matter what I tell 'stty' I cannot get it to pass 8 bit characters? Maybe you need to use 'rlogin -8' to tell rlogin to pass 8 bit characters. _________________________________________________________________ - 8. Where do I get the public domain directory library? + 11. Where do I get the public domain directory library? Anonymous ftp to prep.ai.mit.edu:/pub/gnu/dirent.tar.Z _________________________________________________________________ - 9. I compiled tcsh using gcc, and when I start up it says: tcsh: + 12. I compiled tcsh using gcc, and when I start up it says: tcsh: Warning no access to tty (Invalid Argument). Thus no job control in this shell Your file is not ansi compliant. You have one of 3 choices: 1. Run fixincludes from the gcc distribution. 2. Add -traditional to the gcc flags. 3. Compile with cc. _________________________________________________________________ - 10. I compiled tcsh with the SunOS? unbundled compiler and now things + 13. I compiled tcsh with the SunOS unbundled compiler and now things get echo'ed twice. It is a bug in the unbundled optimizer. Lower the optimization level. _________________________________________________________________ - 11. How can I use the arrow keys with hpterm? + 14. How can I use the arrow keys with hpterm? Hp terminals use the arrow keys internally. You can tell hpterm not to do that, by sending it the termcap sequence smkx. Since this has to be done all the time, the easiest thing is to put it as an alias for precmd, or inside the prompt: if ($term == "hp") then set prompt="%{`echotc smkx`%}$prompt" endif Note that by doing that you cannot use pgup and pgdn to scroll... Also if you are using termcap, replace "smkx" with "ks"... _________________________________________________________________ - 12. On POSIX machines ^C and ^Z will do not work when tcsh is a login + 15. On POSIX machines ^C and ^Z will do not work when tcsh is a login shell? Make sure that the interrupt character is set to ^C and suspend is set to ^Z; 'stty -a' will show you the current stty settings; 'stty intr ^C susp ^Z' will set them to ^C and ^Z respectively. _________________________________________________________________ - 13. I am trying to compile tcsh and I am getting compile errors that + 16. I am trying to compile tcsh and I am getting compile errors that look like: >sh.c:???: `STR???' undeclared, outside of functions [gcc] >"sh.c", line ???: STR??? undefined [cc] You interrupted make, while it was making the automatically generated headers. Type 'make clean; make' _________________________________________________________________ - 14. On the cray, sometimes the CR/LF mapping gets screwed up. + 17. On the cray, sometimes the CR/LF mapping gets screwed up. You are probably logged in to the cray via telnet. Cray's telnetd implements line mode selection the telnet client you are using does not implement telnet line mode. This cause the Cray's telnetd to try to use KLUDGELINEMODE. You can turn off telnet line mode from the cray side by doing a "stty -extproc", or you can get the Cray AIC to build a telnetd without KLUDGELINEMODE, or you can compile a new telnet client (from the BSD net2 tape), or at least on the suns use: 'mode character'. _________________________________________________________________ - 15. On AU/X, I made tcsh my startup shell, but the mac desktop is not + 18. On AU/X, I made tcsh my startup shell, but the mac desktop is not starting up (no X11 or Finder), and I only get console emulation. This is another manifestation of item 5. Just add the pathname to tcsh in /etc/shells and everything should work fine. _________________________________________________________________ - 16. On machines that use YP (NIS) tilde expansion might end up in + 19. On machines that use YP (NIS) tilde expansion might end up in /dev/null If this happens complain to your vendor, to get a new version of NIS. You can fix that in tcsh by defining YPBUGS in config.h _________________________________________________________________ - 17. Script on SGI 4.0.5 does not give us a tty, so we cannot have job + 20. Script on SGI 4.0.5 does not give us a tty, so we cannot have job control. Their csh does not have job control either. Try: % script % cat > /dev/tty _________________________________________________________________ - 18. I start tcsh and it takes a couple of minutes to get the prompt. + 21. I start tcsh and it takes a couple of minutes to get the prompt. You have defined REMOTEHOST and your DNS is not responding. Either undefine REMOTEHOST and recompile or fix your DNS. _________________________________________________________________ - 19. If you need help generating your .cshrc file, check out: + 22. If you need help generating your .cshrc file, check out: - http://www.imada.ou.dk/~blackie/dotfile/ + http://www.imada.sdu.dk/~blackie/dotfile/ + + or + http://www.dotfiles.com _________________________________________________________________ - 20. On POSIX systems the kernel will send hup signals to all the + 23. On POSIX systems the kernel will send hup signals to all the processes in the foreground process group if 'stty hupcl' is set. For example ./tcsh echo $$ 591 ./tcsh kill -6 591 Will kill everything, since hup will be sent to all tcsh processes. To avoid that you can set stty -hupcl, but it is not recommended. _________________________________________________________________ - 21. When I rsh the meta key stops working on the remote machine. + 24. When I rsh the meta key stops working on the remote machine. Try using rsh -8; this option is undocumented on some systems, but it works. If that does not work, get and use ssh/sshd. You'll be better off from a security point of view anyway. _________________________________________________________________ - 22. Tcsh compiled under hp/ux-10.x does not pass resource limits + 25. Tcsh compiled under hp/ux-10.x does not pass resource limits correctly when ran on hp/ux-11.x systems. This is a problem with lack of ABI compatibility between the two systems. The only solution is to recompile. _________________________________________________________________ - 23. Refreshing in command line editing can appear broken on some OS's + 26. Refreshing in command line editing can appear broken on some OS's This is because the termcap/terminfo description lies about the ability of the terminal to use tabs. At least on Compaq/DEC Alpha OSF/1 3.x and 4.x systems, stty -tabs will cause problems. _________________________________________________________________ + 27. Where can I learn the merits of tcsh vs. bash vs. csh vs. sh etc? + + You can read the manual page section titled [NEW FEATURES] listing + features that tcsh adds to csh. + + You can read Tom Christiansen's [Csh Programming Considered Harmful], + a document advocating that csh (and by extension, tcsh) should not be + used for writing shell scripts. + + XXX: Need to find something about [bash], but bash is sh-compatible + and has many of the same interactive features of tcsh (command + completion does not appear to be as flexible, though). + + [Curtains up: introducing the Z shell] has a pretty good rundown on + zsh. Aside from the arguments about csh being evil, tcsh appears to + compare well with zsh [zsh]. Zsh is sh and ksh compatible, with many + of the interactive features of tcsh. + _________________________________________________________________ + + 28. Why does FreeBSD's tcsh do history browsing differently than I + expect? + + On FreeBSD, by default, the up arrow is set to + "history-search-backward", rather than the default "up-history". As a + result, if you type (part of) a word and press up arrow, you'll see + previous commands that match the prefix. Pretty useful, actually, + although it takes some getting used to. You can use bindkey to see + your settings, and to rebind up & down differently if desired. + _________________________________________________________________ + Everything else is a bug :-( Christos _________________________________________________________________ Home | RecentChanges | Preferences Edit text of this page | View other revisions - Last edited April 27, 2001 13:43 (diff) + Last edited April 29, 2004 15:02 (diff) Search: ____________________ Index: head/contrib/tcsh/Fixes =================================================================== --- head/contrib/tcsh/Fixes (revision 131962) +++ head/contrib/tcsh/Fixes (revision 131963) @@ -1,1612 +1,1655 @@ + 36. V6.13.00 - 20040519 + 35. V6.12.03 - 20040322 + 34. turn on kanji and dspmbyte by default; add check for utf8 locales, + and turn parsing of that automatically based on $LANG. + 33. Fix compilation issue under Windows/NT and charset incorrect patch + (Yoshiyuki Sakakibara) + 32. completion additions (Tom Warzeka) + 31. compilation fix (Martin Kraemer) + 30. V6.12.02 - 20040221 + 29. Glob completion listing addition (Tom Warzeka) + 28. BS2000 bs2cmd builtin. (Martin Kraemer) + 27. Fix interrupt resetting code when /etc startup scripts have syntax errors + (Mark A. Grondona) + 26. Clarification of kill-ring commands (Per Hedeland) + 25. Debian completion additions (Martin Godisch) + 24. Japanese character set fixes (Juehiro-san) from debian + 23. NLS charset fixes; disabled since they only work with gnu gencat + (Martin Godisch) + 22. Fix HPUX >= 11 resource (Jack Cummings) + 21. Handle breaksw that jumps out of loops. + 20. Revert #16. It causes worse problems. + 19. Avoid using execl() because the last NULL does not always promoted to + a pointer because the function is variadic (Harti Brandt) + 18. revert ignoreeof to the 6.11.00 behavior and document it (Martin Godisch) + 17. do a case insensitive comparison for the multibyte vars (Martin Godisch) + 16. don't sigsuspend() for an already exited job + 15. glob all arguments in source (Martin Godisch) + 14. various debian fixes (Martin Godisch) + 13. setenv syntax check revert (Satoshi I. Nozawa) + 12. EAGAIN typo (dan harkless) + 11. filec compilation issue on hpux (beebe) + 10. win32 compilation fixes for O_LARGEFILE (amol) + 9. Don't go into an infinite loop when tcgetpgrp() returns an error. + 8. Cygwin fixes (Corinna Vinschen) + 7. NLS catclose() bug avoidance (KAJIMOTO Masato) + 6. V6.12.01 - 20030208 + 5. Misc NT cleanup. No more GPL code (amol) + 4. use strtol() to detect errors in builtin kill (Peter Jeremy) + 3. Recognize linux systems on mips* (Maciej W. Rozycki) + 2. Enable complete=igncase on unix (Stephen Krauth) + 1. Eliminate maxitems (Todd Miller) + + 58. V6.12.00 - 20020732 57. misc cleanups. 56. V6.11.05 - 20020712 55. We should have socklen_t in the INET6 case, but we leave int otherwise. 54. Fixed for Darwin/Rhapsody (Mark Peek) 53. provide new config.sub and config.guess from ftp://ftp.gnu.org/gnu/config/ (Nelson Beebe) 52. V6.11.04 - 20020709 51. Dissallow setting of environment variables that do not contain alphanumeric names (Ton Voon) 50. Don't expand path components that don't resolve to path names (Jonathan Chen) 49. Make $ignoreeof agree with the man page (Matias Moreno Meringer) 48. Fix argument passing in tc.prompt.c expdollar (Nelson Beebe) 47. Completion fixes from FreeBSD (Mark Peek) 46. FreeBSD's sbsize limit (Mark Peek) 45. Fix repeat 3 repeat 2 echo foo 44. Fix I/O redirection in scripts (Ian D Allen) 43. Fix ` \\\n ` evaluation (Jean-Luc Leger) 42. add --version (Nelson Beebe) 41. portability fixes for sed (Nelson Beebe) 40. undef sv_handler for AIX's benefit. (Nelson Beebe) 39. Add a test for ss_family that disables IPV6 (linux/ppc, osf/1 have problems) (Nelson Beebe) 38. Disable ipv6 for Apple (Nelson Beebe) 37. Fix darwin configure entry (Nelson Beebe) 36. V6.11.03 - 20020701 35. Add Ian D. Allen's bug list. 34. If we are invoked as csh, default to bsd echo (Matej Vela) 33. Don't close file descriptors too early because setuid scripts fail. (Jill Pryse-Davies) 32. Completion updates (Tom Warzeka) 31. Fix compilation issue on SunOS4 with _POSIX_VDISABLE (Tom Warzeka) 30. ukrainian update (Olexander Kunytsa) 29. DSPMBYTE=utf8 patch (Jean-Luc Leger) 28. fix ipv4 only compilation, remove extra sigsetmask() call (Takayuki Nakao) 27. window change can cause free to be re-entered causing abort (Mark Peek) 26. vp->vec vetting, suggested by Ian Dall. 25. V6.11.02 - 20020516 24. Fix prompt bugs in $var and %c0n (TAKAI Kousuke) 23. Add Cray SV2 config (Rafal Maszkowski) 22. Add pdf manual page (Warren Ferguson) 21. Fix REMOTEHOST lossage in with AF_LOCAL sockets (Tom Mander) 20. Fix win32 break because of TIOCSTI (Amol) 19. Fix TIOCSTI for hpux 11 (Igor Schein) 18. Avoid collapsing paths that refer to non-existent components (Martin Kraemer) 17. Make -shell invocations always treated as a login shell. 16. V6.11.01 - 20020308 15. Fixes to polish nls locale (Paweł Niewiadomski) 14. russian locale fixes (Alexey Dokuchaev) 13. document door support (Shaen) 12. tcsh euc handling extensions (Alexey Zelkin) 11. Make sure that jobcmd does not clobber the current job (Rob McMahon) 10. Make sure that the output of verbose and echo do not end up in the command output (Victor I. Pasko) 9. Add %j in prompt [needs more work; is not right the first time after proclist changes] (Hr. Peter Kruse) 8. `` commands with embedded newlines would ignore commands following the new line (Victor I. Pasko) 7. Re-initialize nls if NLSPATH is changed (Naoki Wakamatsu) 6. Fix 64 bit compilation with linux and resource limits. 5. Avoid double globbing when ls-F needs to fork (Joe Townsend) 4. put back csh filec compatible support. 3. add support for quads in xprintf in the presence of gcc. 2. unlimit should set rlim.rlim_max to rlim.rlim_cur if max < cur. 1. Make ~user work again when the home directory is '/'. 40. V6.11.00 - 20010902 39. Completion fixes (Tom Warzeka) 38. make c_insert not static so that it can be used from win32 (amol) 37. Fix rmstar not to corrupt memory when we say no. (Mark Peek) 36. V6.10.02 - 20010806 35. polish nls locale (Paweł Niewiadomski)) 34. Fix a tcsetattr race running background jobs as the last line on an xterm window (Andrew Brown) 33. jobcmd alias (Greg Parker) 32. hpux11 support (Joshua Weage) 31. Fix SHORT_STRINGS compilation (Daniel Trinkle) 30. Add kill -s (Mark Peek) 29. Don't recognize all mips as dec (Bjorn Knutsson) 28. Fix GLOB_QUOTE problem (noted by Per) I introduced in 6.10.01. 27. Port to concurrent's powermaxos (Matt Majka) 26. New builtin srcfile (Amol) 25. Fix bindkey "\\" cmd (reported by Ismail H. Tuncer) 24. %0Xc was broken in the prompt if the user's home directory was '/'. (reported by Edward Glowacki) 23. V6.10.01 - 20010426 22. LARGEFILE support on Linux. 21. Add big5 multibyte support (Yen-Ming Lee) 20. Check the return value of setpriority (Dima Dorfman) 19. Avoid constructing paths with // on DomainOS (Nickolai Zeldovich) 18. Russian translation (Ilmar S. Habibulin) 17. Fix hostdefs for alpha support in FreeBSD (Andrey A. Chernov) 16. Add door support in colorls (Shaen) 15. Add BSD_STYLE_COLORLS for FreeBSD (Anand) 14. MAXHOSTNAMELEN needs to be 256 (Kris Kennaway) 13. Document stty -tabs problems on compaq (Nelson H. F. Beebe) 12. Fix broken comment, and new versions of config.guess and config.sub (H.Merijn Brand) 11. fix redrawing in the recognize case (Andrew Brown) 10. don't call qsort with 0 items. (Luke Mewburn) 9. fix echo;echo;echo; not outputing anything (Andrey A. Chernov) 8. Fix shell word parsing in dabbrev-expand (Per Hedeland) 7. hpux fixes (Chienting Lin) 6. Implement kill ring (Per Hedeland) 5. Avoid core-dumping when a very long $HOME gets passed in (Kris Kennaway) 4. Add rlimit_vmem for linux based on rlimit_as (N KomaZaki) 3. back out symlink=expand path check. 2. Add Estonian translation (Toomas Soome) 1. Accept empty $savedirs to mean infinity. 57. V6.10.00 - 20001119 56. Completion fixes (Tom Warzeka) 55. add missing linux kanji define (Tsuyoshi Kawabe) 54. More WINNT_NATIVE fixes (amol) 53. Fix compile error on winnt (Yoshiyuki Sakakibara) 52. nonstopux configure and makefile fixes (Tom Bates) 51. V6.09.04 - 20001111 50. Order of initialization for multibyte display was wrong (HyunChul Kim) 49. Follow the guideline for linux for japanese locale: http://www.linux.or.jp/JF/JFdocs/Japanese-Locale-Policy.txt (Tomohiro KUBOTA) 48. Ukrainian nls map (Olexander Kunytsa) 47. exit immeditiately if we get an error while we are setting up (Michael Shalayeff) 46. (unset path; unsetenv PATH; rehash) -> crash (Kent Vander Velden) 45. change winnt to winnt_native (Randolph Fritz) 44. Support home/end in the editor (Andrey A. Chernov) 43. Typo s/gycwin/cygwin/ in tc.os.h (Andreas Schott) 42. Alpha ev6 addition (Karen R. McArthur) 41. DSPMBYTE patch from (Issei Suzuki) 40. Security fix for here-doc tmp files (proton@ENERGYMECH.NET) 39. Fix resource limit rounding *again* (Johannes Gross) 38. Fix $ expansion in prompt (Takashi Sumiyoshi) 37. V6.09.03 - 20000715 36. cygwin port fixes (Arihiro Yoshida) 35. Add a new "catalog" variable that specifies which NLS catalog to be used (Issei Suzuki) 34. cleanup and addition of page up/down (amol) 33. fix vfork compile problem. 32. use inet_addr instead of inet_aton for portability. 31. V6.09.02 - 20000704 30. lots more completions (George Cox) 29. change FILSIZ to BUFSIZE [now that BUFSIZE >> MAXPATHLEN] and avoid a potential buffer overflow in sh.dir.c (Volker Schmidt) 28. _MINIX_VMD port (Martijn van Buul) 27. inet6 handling for remotehost and configure (Hajimu UMEMOTO) 26. aix-4 does not need gethostname (Darren Reed) 25. IBM OS/390 Unix Systems Services support (Peter Prymmer) 24. Fix prompt formatting (Andrey A. Chernov) 23. Use HostType from Imakefile correctly (Kjetil Torgrim Homme) 22. Handle long and expanded history lines better (Boleslaw Ciesielski) 21. With symlinks=expand expand valid paths only (Martin Kraemer) 20. Make one-byte charsets work with KANJI (Andrey A. Chernov) 19. NT-specific executable detection moved to NT code (amol) 18. New "complete module" (Dan Nicolaescu) 17. Correctly display scaling string in limit error messages (Nathan Ahlstrom) 16. Don't display "unset watch" message when not appropriate (kim) 15. V6.09.01 - 20000114 14. Circumvent IRIX4D ESTALE bug by exiting. 13. IRIS4D de-linting. 12. Finnish nls catalogs (Jukka A. Ukkonen) 11. Even more multibyte fixes (Taga Nayuta) 10. Patches to statically link tcsh under solaris-2.6 (John Hawkinson) 9. Manual page typos (R. Bernstein) 8. HP/UX-11 (9000/800) HP/UX-10.20 (9000/820) (Haflidi Sigtryggur Magnusson) 7. Color-ls fixes (Luis Francisco Gonzalez) 6. Don't re-use time0 to compare to stat's st_mtime, cause it could be the value returned from times(2) which is the ticks since system startup (Frank van der Linden) 5. Time percentage wrap fix (Simon Burge) 4. EUCKR support (HyunChul Kim) 3. Grammar and typo fixes for tcsh.man (Steve Kelem) 2. More multibyte fixes (Rodney Ruddock) 1. Change 6.08 -> 6.09 where I missed it; update for utlrix 4.5 (Simon Burge) 65. V6.09.00 - 19990816 64. Add csh emacs mode (Dan Harkless) 63. Make sure the the glob buffer matches the word buffer size (Brian Biswas) 62. Fix periodic to work without tperiod set (Kenny McCormack) 61. V6.08.07 - 19990813 60. Fix e_dabbrev_expand (Bjorn Knutsson) 59. Make \builtin work again (by calling the command not the builtin) 58. Add NLS_BUGS for OS's that keep file descriptors open for NLS (Ian Dowse) 57. Make NONLSREBIND work after tcsh starts up. 56. Fix AIX stupid exit bug. (Dan Harkless) 55. More irix fixes (Kaveh) 54. V6.08.06 - 19990701 53. module command completion (Dan Nicolaescu) 52. Man command completion enhancement (Tom) 51. Fixes for irix configuration (Kaveh) 50. Support \a and \e in echo command. From (Keith Thompson) 49. Alpha configure nit from Kaveh 48. V6.08.05 - 19990511 47. In some system, when a builtin fails immediately after we start tcsh and before we print any messages, NLS messages fail (some descriptor might be closed) [FreeBSD, HP/UX?]. So we force reading the NLS catalogs in errinit() (Yoshiyuki Sakakibara) 46. typos in ja/set1 and ja/set29 (Yoshiyuki Sakakibara) 45. "dspmbyte autoset trap" support to HP-UX 10.20. (Yoshiyuki Sakakibara) 44. misnumbered NLS message in tw.help.c (Yoshiyuki Sakakibara) 43. colorcat variable for NLS color messages (Yoshiyuki Sakakibara) 42. autoconf fixes from Kaveh (and if it broke, me) 41. SGI irix fixes from Glenn Coombs. 40. Don't spin writing the history file when quota is exceeded (Rob McMahon) 39. V6.08.04 - 19990419 38. complete additions (John Gotts) 37. Port to amiga with geek gadgets (Arto Huusko) 36. Ignore case in setenv for windows (amol) 35. Bug fixes for NT unc stuff (amol) 34. Hash spell check (amol) 33. V6.08.03 - 19990211 32. Helpcommand documentation (Vladimir Alexiev) 31. small Y2K fix [%y in prompt would be formatted as 10 not 00 at year 2000], and new Itoa() code (Chris Torek) 30. OpenBSD m68k patches (Paul DuBois) 29. Avoid redefinition of getpeername on Solaris-2.7 28. fix problems with savedups=erase, savehist=merge (Randy Gobbel) 27. Don't set $shell to csh, if we were invoked as tcsh (Tomas Persson) 26. added $_ 25. added postcmd 24. V6.08.02 - 19981124 23. document continue and continue_args 22. wrong test in slowexec made NT optimization a noop (Amol) 21. Rhapsody fixes + separate CFLAGS/CPPFLAGS (Wilfredo Sanchez) 20. literals in both prompt at rprompt did not work properly (Taga Nayuta) 19. multibyte deletion fixes (Yoshiyuki.Sakakibara) 18. clean up key binding stuff for NT by moving the nt dependent code to the NT source (amol) 17. dspmbyte fixes for AIX, typos in man page and nls (Yoshiyuki Sakakibara) 16. Convex fixes (Ron Echeverri) 15. V6.08.01 - 19981025 14. SX4 port; this adds many casts for machines where ptrdiff_t is 64 bits. (Andreas Schott) 13. U/Win port; does not work properly with U/Win 1.6, wait for the next version (Chris Jones) 12. Sgi does not need gethostname prototype (John Bogan) 11. Logic in sh.dir.c was wrong for NT (Amol) 10. HP_CXD_SPP stat64 fixes (Scott Garee) 9. Documentation spelling fixes (Keith Thompson) 8. Documentation fix for savedirs (Amol) 7. Siemens OSD_POSIX fixes (Martin Kraemer) 6. include for all the BSD's (Trevor Johnson) 5. Multibyte display fixes for gnu ls (Taga Nayuta) 4. Configure/Makefile hesiod and bindir fixes (Dan Winship) 3. Use winnt not win32 in tc.os.h (Amol) 2. Cygwin32 port (Raj Menon) 1. Ported Fixes (Tom) 95. V6.08.00 - 19981002 94. where builtin nt fix (Amol) 93. V6.07.13 - 19980926 96. NT multibyte fixes (Amol) 95. NeXT needs getcwd. 94. fix new bug introduced by strncpy'fication in sh.dir.c (Taga Nayuta) 93. V6.07.12 - 19980918 92. add cray in configure script (Tom) 91. nls fixes 90. Avoid buffer overflows in directory code (kim) 89. Add multibyte character display support (Yoshiyuki Sakakibara) 88. Make tcsh use getcwd instead of getwd and supply a getcwd. 87. Fix remotehost again (kim) 86. V6.07.11 - 19980913 85. Leave remotehost ip addresses alone (don't try to resolve them) (Kim) 84. Read vs. force_read fixes (Amol) 83. Make colorls if color is set before the first LS_COLORS setenv (Taga Nayuta) 82. Use _PATH_DEFPATH on BSD4_4 systems. (Jim Bernard) 81. Cursor bounds checks (Michael Schroeder) 80. Syntax error nits (Michael Schroeder) 79. configure fixes (Michael Schroeder) 78. V6.07.10 - 19980904 77. Off by one error in NO_ERRORS... 76. Japanese NLS messages (Yoshiyuki Sakakibara) 75. Add ENXIO and EBADF in the test for write failures for Irix Zombies (Ralf W. Grosse-Kunstleve) 74. Missed a test for NOSTRCOLL in glob.c (Michael Liepelt) 73. Another ABSOLUTEP change (Amol) 72. Italian NLS messages (Massimo Bertozzi) 71. WIN32 fixes for ntslowexec and color_ls literal printing in prompt (Amol) 70. a few missed WIN32 merges (Amol) 69. defined YPBUGS for sgi (Kaveh) 68. V6.07.09 - 19980707 67. Separate the nt builtins (Amol) 66. completion fixes (Tom) 65. color ls fixes (Taga Nayuta) 64. V6.07.08 - 19980629 63. add config.h.in (Kaveh) 62. win32 updates (Amol) 61. warning and portability cleanups on the new changes (Kaveh) 60. V6.07.07 - 19980628 59. Fast execute by-pass for win32 (Amol Deshpande) 58. Clean up const usage a bit, and fix gcc 2.8.1 warnings. 57. Use @bindir@ for DESTBIN in Makefile.in (Edgar Hoch) 56. Avoid overflow in time builtin computation (Nobue Adachi) 55. Color ls additions (Taga Nayuta) 54. unsigned char vs. char warning fixes (Kaveh) 53. Solaris 64 bit fixes (fix directory offset bug) (Thomas-Martin Kruel) 52. More win32 patches (Amol) 51. autoconf lossage from (Kaveh) 50. V6.07.06 - 04/08/98 49. Collation fix for globbing (Andrey A. Chernov) 48. We might have NLS_CATALOGS and not LC_MESSAGES (Andrey A. Chernov) 47. 4.4BSD header fixes (Andrey A. Chernov) 46. Signed char prompt fixes (Andrey A. Chernov) 45. Pattern match fix for directory searches (Mike Patnode) 44. Pentium DGUX fixes (Miko Nahum) 43. Spanish nls message catalogs (Luis Francisco Gonzalez) 42. Fix trailing whitespace parsing in HASHBANG code (Martin Kraemer) 41. Remove stray debuggin message from unmatched substitutions. (from Amol Deshpande) 40. Fix reversed arguments in Usagae message. (from Amol Deshpande) 39. Fix bug introduced at tcsh-7.06.03 [expdollar] that affected %.n prompt format. 38. Fix typos introduced in last batch of changes. 37. Fix interrupted script using onintr, exiting parent shell problem. 36. Cleanup prototypes. 35. V6.07.05 - 10/28/97 34. Integrate Amol Deshpande's WINNT fixes to the tcsh source. Note that this is not complete yet; we are missing the NT glue code and the message catalogs. 33. Fix ^T at the first character in the line (Chuck Silvers) 32. Eliminate xsprintf and xvsprintf 31. Qmail patch from (Matthew Zahorik) 30. Added missing linux signals (Vadim Vygonets) 29. fixed problem where complete complete 'p/*/t:*.txt/' would not honor the pattern. 28. Port to an EBCDIC machine: BS2000 by Siemens Nixdorf that has an IBM/390 compatible processor (Martin.Kraemer) 27. Detect when we have errors writing to stdout (Vadim Vygonets) 26. Ignore quotes in the comparisons for builtins, so that \builtin works (Amol Deshpande). 25. HPUX, portability fixes; make sure that we have the right config file (Jonathan Kamens) 24. Don't do lookups for x displays and figure out ttys properly (Leonard N. Zubkoff) 23. make print_by_columns print in a single column when the output is not a tty 22. use rlim_t for Solaris2 (Casper Dik) 21. V6.07.04 - 05/04/97 20. set -f -l patch (Michael Veksler) 19. SGI patches (Tomasz J. Cholewo). Also fix completion code to take into account aliases that start with a period. 18. SCO patches (Boyd Lynn Gerber) 17. Fujitsu patches (Toshiaki Nomura) 16. autoconf patches (Kaveh Ghazi) 15. BSDI patches (Paul Vixie) 14. %Q formatting character addition. 13. Fix set=#123; echo $i:s/#// (Quoting problem) 12. V6.07.03 - 02/23/97 11. Understand %$variable in the prompt. 10. Quote directory names properly in .cshdirs 9. USE_ACCESS and autoconfig patches from (Larry Schwimmer) 8. Pyramid att config file (Andrew Lister) 7. $rprompt code (Luke Mewburn) 6. Kanji patches (Huw Rogers) 5. Cray T3E port (Jorn Amundsen) 4. Avoid html redirects in tcsh.man2html (from Kimmo) 3. HP/UX 10.0 fix for filesize resource limit; don't scale by 512 anymore. 2. Workaround for TIOCSTAT for NetBSD from lukem@netbsd.org 1. Return exit status from 0..255 not -128...127, as POSIX mandates. V6.07.02, 10/27/96 58. More configure fixes from Kaveh. 57. Fix histdup=erase again: Don't renumber events, or access uninitialized storage. 56. 6.07.01 - 10/19/96 55. Fix histdup=erase, where after some repetitions, we would get negative history events (kim@gw.com) 54. NLS fixes and typo in sh.err.c (Martin.Kraemer@deejai.mch.sni.de) 53. Output history in raw format in the history file (mveksler@VNET.IBM.COM) 52. Fix possible core dump when !: in autoexpand mode (rbrown@ERA.COM) 51. 6.07.00 - 10/11/96 50. Avoid stdio.h inclusion problem in SCO (gethost.c). 49. A bit of housekeeping in host.defs 48. 6.06.04 - 10/05/96 47. Fix tellmewhat() code to return true if found. 46. Change register foo to register int foo to avoid compiler warnings. 45. Fix problem with sticky non editing mode from Casper Dik. 44. history lex fix from Martin Kraemer; history events that ended with 0 were not properly parsed. 43. SNI fixes from Martin Kraemer. 42. SGI fixes from Ralf W. Grosse-Kunstleve. 41. BSDI2.1 fixes from Paul Vixie. 40. 6.06.03 - 09/24/96 39. undef TIOCGLTC for HP/UX 10.0 from Michael Shroeder 38. Sinix fixes 37. 6.06.02 - 06/22/96 36. Added implicitcd 35. Added configure.in and Makefile.in from Kaveh. 34. unset path, unsetenv PATH, ./foo did not work. 33. Add VAR_NOGLOB, and use it to avoid globbing directory names when cd'ing into them. 32. Fix bug introduced in the new tty parsing code. 31. Avoid pushing string back to the parsing string in ${ errors. 30. Patches for the manual page from Dave. 29. 6.06.01 - 05/24/96 28. Use sysconf to get NCARGS if available Robert Daniel Kennedy 27. Grab the program name and use that instead of tcsh in error messages. 26. Fix histdup, so that it does not leave gaps in the event sequence. 25. HP/UX v10.0 fixes: Don't use bsdtty.h and avoid clobbering memory since SIGRT??? is defined as -1. 24. Avoid coredumps when $TERMCAP exceeds 1024 characters Michael Schroeder 23. Fix memory clobbering when SHORT_STRINGS is not defined. Todd J Derr 22. Only restart stopped editors. Robert Webb 21. Recognize pts sysv ptys when checking to set autologout Bob Myers 20. Magic space incomplete modified core dump fix. Chris Metcalf , Bradley White 19. Linux nls fixes Rik Faith 18. SGI RS8000, Ported notes. Ralf W. Grosse-Kunstleve 17. Greek nls messages. Aggelos P. Varvitsiotis 16. Imakefile linux and libcrypt fixes. Jonathan Kamens 15. FreeBSD fixes Jukka Ukkonen 14. Expand the environment space for path Steve Kelem 13. Don't overwrite the environment randomly Steve Kelem 12. Don't turn the editor on when we have dumb or unknown terminals. This breaks emacs when compiled with terminfo Jonathan Kamens 11. Fix F- parsing in tc.bind.c (Bob Meyers) 10. Added -T option in history to force timestamp printing. -h alone does not print timestamps anymore for compatibility with csh. 9. Typo in tc.bind.c [with -DOBSOLETE] (misplaced parenthesis) 8. Recognize convex models properly. 7. suppress the DING! option using the noding variable. 6. negative nice values did not work. 5. Harris CX/UX 7.x support. 4. ERR_DMMODE was used on the crays but not defined. I changed the error messages in tc.os.c to use ERR_STRING instead, and fixed a missing error message in the catalogs. Someone will need to retranslate #30 and #31 in set23. 3. Bug setting listflags... Workaround: set listflags=(A /bin/ls) 2. Typo in Imakefile (# comment instead of c comment) 1. Typo in ma.setp.c (missing parenthesis) V6.06.00, 05/13/95 88. Cleanup off-by-one error ed.defns.c. 87. 6.05.09 - 05/06/95 86. Small memory leak in dosetenv() 85. Make sure that the number of editing functions defined is correct and abort otherwise. 84. Completion Fixes from Tom 83. Don't add yp stuff in the tilde cache [names that start with + or -] 82. Don't let children catclose() in xexit(), because the parent will lose access to the nls catalogs. From Michael. 81. 6.05.08 - 04/29/95 80. Update to the newest csh sh.file.c 79. More completions from Tom. 78. Fix the Imakefile to use XCOMM 77. Update for AIX 3.2. 76. French catalog from J.M.Vansteene@frcl.bull.fr (fwd Michael Schmidt) 75. Nls fixes and small typos from Michael 74. PDP11 BSD type fixes. 73. More manual page fixes. 72. 6.05.07 - 04/19/95 71. More NLS catalog fixes. 70. Bruce's jumbo patch. 69. 6.05.06 - 03/15/95 68. make clean does not clobber config.h if Makefile.std is used. make veryclean does. 67. New config define NISPLUS. Reportedly fixes vanishing output of ~expansion on solaris 2.4. 66. showdots has been removed; use listflags instead. [handles -x too] 65. more nls catalog fixes. 64. set histchars=,. did not have any effect in .cshrc 63. fix "-c command" new core dump. 62. more completions from Tom 61. call catclose() before exiting, so that svr4 cleans up the symlinks before exiting. 60. Per's fix for insert-last-word 59. Per's emacs abbreviation mode. 58. Makefile fixes for catalog stuff. 57. fixed again complete-word-raw and list-word-raw 56. 6.05.05 - 03/11/95 55. Made %?str work again 54. IRIX sigalarm problem should be fixed 53. complete-word-raw and list-word-raw should work 52. nls catalogs complete reworking. 51. sh.init.c: Signal complete rewrite. 50. Signal fixes from Bruce. 49. Added promptchars, like histchars; affect %# in the prompt. The first char is for the user and the second is for root. 48. 6.05.04 - 03/03/95 47. Add NODOT config, $command [that holds the command passed with -c] $GROUP and $group 46. AFS fixes from Larry Schwimmer 45. Real NLS catalogs from Michael Schmidt 44. patch to allow ^? binding. 43. completion patch from Paul DuBois. 42. Don't spell check in here docs. 41. Incorrect normalization of usec in sh.time.c 40. directory printing and option parsing fixes [from Paul DuBois] 39. realloc_searchlen should be static to avoid conflicts with OS's that use the same malloc package. 38. LOGINFIRST now applies to /etc/csh.login 37. Fixes in bind compatibility code to bindkey. 36. 6.05.03 - 01/17/95 35. Don't print the whole watchlist on startup. One can use explicitly the log builtin for that. 34. Don't display the $watch value in the log command. 33. Don't delete the unmatched portion if we try to complete a spelling error. 32. Solaris 2.4 workaround for isprint('\t') lossage (From Casper) 31. Fixed csh bug: [Reported by Jaap] set test="one\ two\ three" echo "$test:q" 30. Fixed the lossage in setting the looking mode in tw.parse.c before calling t_search; $x/$y will not append the right suffix. 29. Another attempt at the gethost timeout code. 28. Cray dmmode and filetests -m -k [need documentation!] 27. More manual patches. 26. Don't glob the path; security problem and core-dump. [from beto] 25. Avoid waiting for jobs that failed to restart, thus hanging the shell. eg, run job in background, attach to debugger; kill it inside the debugger. Get out of the debugger and you are stuck if you fg that job. 24. 6.05.02 - 09/04/94 23. remhost code could pass the wrong length to getpeername() 22. too eager sed'ing broke convex getwarpbyvalue() to getwarpbyvarval() 21. Fixed new bindings bug. 20. Fixed bug in newgrp code; execv was called incorrectly. 19. Take into account programmable completion hints when spell checking. 18. Unconditionally change stty modes in Rawmode() 17. Change date in $version to be ISO 8601 per Keith's suggestion 16. Fixed portability problems in the new counted-strings codes (From Kaveh) 15. Fixed binding problem with the new counted-strings code [all key bindings ended up in the extended map] 14. 6.05.01 - 07/08/94 13. Changed key bindings to use counted strings instead of Null terminated strings, so that binding ^@ works. 12. Fix parsing bug, where words that contained keywords caused incorrect word breaks: switch (iftagd) case iftagd: echo It works breaksw default: echo It is broken. endsw 11. Fix sh.c for systems with no job control. [the new hup builtin sends SIGCONT]. 10. Don't add the suffix character when all completions fail, from michael 9. Added histdup=erase, that deletes the oldest duplicate instead of the newest. 8. Don't call .logout recursively if we receive more than one hup, and don't process hangups when we execute the .logout. 7. $logout was set to a static string. 6. Non printable binding listing was broken. 5. Recursive sourced scripts would get mangled up because of input buffer confusion (thanks michael) 4. M-space should not be counted as a space. Leads to infinite loop in word splitting. 3. Pyramid fixes. 2. Fixed '\' in sysv echo (from Mika) 1. Missed fix_yp_bugs() when setting REMOTEHOST (From Casper) V6.05.00, 06/19/94 113. 6.04.17 06/18/94 112. Realloc debug fix from John. 111. Completion fixes from Bruce. 110. Added -b option to bind. 109. Added tcsh.man2html from Dave. Looks great! 108. 6.04.16 06/06/94 107. Allow multi word glob in "`foo`" expressions. > if ("`ls`" == "a b c") then 106. Michaels lex() buffer patch version 2. the previous version core-dumped with > sleep | echo 105. Fix seg fault in find_cmd, when path is unset. 104. 6.04.15 05/28/94 103. the previous =~ fix, was a bit broken. 102. 6.04.14 05/25/94 101. expression parser fix for !~ and =~. if (foo =~ *) echo ok the * was taken for a multiply and parsed as 0 * 0 returning 0. and asked to match "foo" with "0" 100. Michael's lex() buffer patch. 99. Bruce's Jumbo cleanup 98. fixed Imakefile for X11R6 97. fixed argument parsing in source command. 96. added $sched to format scheduled events. 95. 6.04.13 05/07/94 94. added expand-command 93. Alpha OSF-2.0 fixes 92. 6.04.12 04/28/94 91. Ignoreeof patch from Bruce. 90. Dan's completion fix. 89. 6.04.11 04/12/94 88. Don't source .logout when killed with -HUP unless we are a login shell. [ actually $loginsh controls the behavior now ] 87. ISC-4.0 posix exec() bug workaround (from Jonathan Broome ) 86. Dan's patch for complete=enhance 85. Kaveh's patches for memset, host.defs, _{U,G}ID_T 84. 6.04.10 03/29/94 83. Pathname completion bug fixes... 82. Completion pathname(p) changes: Completion 'C' -> 'X'. Replaced 'p' with 'F' and added D,T,C. 81. Next NLS fixes (From Paul Nevai ) 80. make spelling correction obey the current histchars setting. 79. Fix rounding in limits so that 0 is a true 0. (From Ken Lalonde ) 78. 6.04.09 03/12/94 77. Alarm race with remotehost. 76. If you have in your .cshrc set savehist=(100 merge) and execute #!./tcsh exec ps you get no output; [fixed] 75. setenv SHLVL -1; tcsh = Segmentation fault [fixed] 74. 6.04.08 02/10/94 73. new machtype, ostype, vendor 72. execute .logout on hangup. 71. more man page fixes. 70. 6.04.07 02/04/94 69. Dynamic hash changes, globbing for which command from Michael. 68. INBUFSIZE fixes for history. 67. printenv returns 1 when a variable is not found, like the non builtin one 66. Add quotes to the mismatch array so that: > touch foo > mail "oo bar" does not get corrected. The right fix would be to do correct parsing and quote the space... 65. NULL terminate mismatch[] array in ed.inputl.c, since it is used in Strchr(). 64. renamed stat to filetest 63. Afs and Hesiod patches. 62. More manual page patches. 61. 6.04.06 12/19/93 60. Alarm for resolver timeouts (untested) 59. Fixes for Henry Spenser's regex in the Makefiles 58. Modifiers now work with $< and $< does not do :q by default. [incompatibility with csh] and $< can be interrupted. 57. Added $histdup. 56. source /etc/.login for Solaris 2.x 55. don't remove trailing spaces in history searches. 54. dirs -L and dirs -S spurious warning elimination. 53. man page fixes from David. 52. Kimmo's patch [makefile, gcc warning, netdb.h include] 51. 6.04.05 12/12/93 50. rewrote srcunit() to use st_save and st_restore. The code was too messy to be useful before. 49. recdirs and rechist patches again! 48. Harris hck port, and ISC imake update 47. Eliminate the x windows :display.screen before looking for the hostname in REMOTEHOST 46. Patch for CDF filetype() recognition (hpux) 45. 6.04.04 11/12/93 44. Made =x obey nonomatch. 43. Fixed rechist and recdirs not to depend on savehist and savedirs 42. Removed aliases, bind, linedit builtins [ifdef'ed out as OBSOLETE] 41. change REMHOST to REMOTEHOST for compatibility with SGI. 40. $owd was not working correctly. 39. Debugging printf elimination (from Kimmo) 38. Typos in the new hup code in sh.c (from Matt) 37. Imakefile fix for sequent (from Jaap) 36. 6.04.03, 10/30/93 35. New manual page in place. 34. Fixed Makefile sed RE to work with gnu sed. 33. Added hup builtin. 32. Added $REMHOST in config_f.h 31. Fixed random parsing bug in sh.exp.c in isa(). It checked cp[1] without checking cp[0] first... (should propagate to 4.4BSD) 30. More sh.exp.c fixes from Bruce 29. Always exit when the user types exit. cat | tcsh -f -s exit ls 28. savedirs fix and readlink() null termination fix from Peter. 27. Added -p flag (force dirs printing in all directory functions and $owd variable 26. Let $dirstack work by default without needing to be set. 25. Fixed history -h to work with other history flags. 24. Renamed ed-functions more consistently (dcs) 23. Added missing filetests (dcs) 22. Added NEWGRP define in config_f.h (dcs) 21. More fixes for non blocking io recovery from Bruce 20. 6.04.02, 10/08/93 19. changed default prompt to %# 18. New group 'g' completion. 17. removed IIASA defs. 16. fix for history -SL and dirs -SL to work when savedirs and savehist are not set. 15. fix magic-space to understand :p 14. make :u,:l work for history. 13. Fixes for non-blocking i/o recovery. trap all non blocking styles under sunos. 12. 6.04.01, 08/10/93 11. Vi mode word moves [they work like vi and don't obey wordchars anymore]. 10. New file operators and stat builtin 9. David's FIONREAD patch for SVR4 8. Bruce's ignoreeof=n patch 7. Dan's complete/correct enhancement 6. Abort corrections patch. 5. Print_by_columns, now does not use the rightmost column. 4. Renamed config/config.$i to $i to avoid once and for all filename length problems. 3. bbn butterfly config 2. Beto's proc fixes 1. Bruce's bug fix for ed.chared.c, signals V6.04.00, 07/03/93 92. Alpha prototypes, for gcc -Wall clean compile. 91. Fixed alpha hashing. Did not work for directories > 31, Thanks to Dan Mosedale for all the help! 90. Added USE(a) for unused parameters, to avoid compiler warnings. 89. 6.03.10, 06/25/93 88. Makefile and lint patches from Bruce. 87. Posixsig patch from Peter for svr4 86. 6.03.09, 06/11/93 85. signal handling broke with the last job control patch... > (does-not-compute;) would hang. 84. don't quit after the first modifier fails: > set i=aabbcc > echo $i:s/a/A/:s/b/B/ AaBbcc > echo $i:s/x/A/:s/b/B/ aabbcc 83. Imakefile fixes for sequents from Jaap. 82. Move past the bottom of input when we hit ^C, so that multi-line input commands don't get trashed. 81. Look only at the first word in ${EDITOR,VISUAL} to determine the editor name. 80. Last patch broke listmax. 79. Remove extra sandbagging in exitstat(). Not needed anymore as value() will never return NULL. 78. Save $status before calling aliasrun() otherwise: > alias precmd 'cd .' > true > echo $status 0 > false > echo $status 0 77. 6.03.08, 06/07/93 76. missing prototypes/unused variables under SYSV4. 75. savedirs should glob the filename argument. 74. 6.03.07, 06/05/93 73. Changed _Q, _Q1 macros in sh.lex.c, sh.dol.c, sh.char.? to _QF and _QB because today 4.4BSD defined _Q to be ``Phonetics'' 72. listmaxrows variable. 71. set -r would not make existing variables readonly. 70. print usernames with ~user where possible in dirs and job cwd's 69. Mika's fixes (missing args in sh.c set(), linux Makefile, SIGCHLD) 68. FIONREAD argument is int everywhere except on SunOS where it is long. Tcsh used to think that it was long, and so it broke on the alpha where sizeof(int) != sizeof(long) 67. 6.03.06 05/16/93 66. Pipeline fixes. This should get rid of the dreaded Stopped tty output message. 65. Michael's fix for history buffer cleanup: > alias foo 'echo \!:1:h' > foo a/b a > ^P [nothing happens] 64. Unsigned long rlimit type for 64 bit machines (alpha) 63. Fixed Imakefile for alpha 62. tilde expansion now obeys $nonomatch 61. readonly veriables. 'set -r x=3' will set x to a very sticky 3... 60. Fixed bug in the new tab'ed completion that interfered with old listing. 59. Fixed entry -> item in tw.parse.c 58. Added -f option to unlimit 57. Define __STDC__ in Imakefile for Irix 56. Static redeclarations in tw.parse.c 55. 6.03.05 04/26/93 54. Don't echo history expansion in loops: > alias junk 'foreach i (\!:2*) \ foreach? echo \!:1 $i; \ foreach? end' > junk a b c d echo a $i ; a b echo a $i ; a c echo a $i ; a d 53. Added complete-word-fwd and complete-word-back that scroll through the list of possible completions... Neat addition from jfink@csugrad.cs.vt.edu (Jeff "$DOTDIR" Fink) 52. Workaround hpux9.01 broken optimizer in sh.glob.c where 'ls *' breaks. 51. Michael's editor fix. With "magic margins" and 80 char width, try: > set prompt= 20aa76bac 50. Reverted fix that does not glob the expanded back-quote text again. 49. > cd /., echo $cwd /. Eliminate the . in this case... 48. Matt's optimization in glob.c [retracted] 47. Fixed bug with -S 46. Renamed Makefile Makefile.std, and fixed the readme file 45. 6.03.04 04/07/93 44. Changed -s == !-z and -S == socket 43. Fixed typo in sh.c, in phup [shpgrp != pr->pgrp] 42. Multi-line aliases are not entered into the history when executed. 41. Changed f_seek to a union to avoid gcc warnings on 4.4BSD 40. Fixed 'unset home; dirs' bug 39. fixed $HOME->$home memory problem. 38. $?0 returns false now on interactive shells for csh compatibility. 37. Default watch inteval was 10 hours not 10 minutes as advertized in the manual! 36. Fixed clobbered veriable warning from gcc-1.39 in tw.parse.c 35. Fixed typo with INVPTR in sh.lex.c 34. 6.03.03 03/04/93 33. Eliminate 'Reset tty pgrp error message'. It is normal for the walking process group stuff. Check about the killpg() above? 32. More portability for 64 bit machines. 31. Improved completion error messages. 30. Fix bug with double globbing expansion on mirrored variables: > setenv TERM '?vt100' 29. Avoid hanging when writing to pipes etc. (From Paul Close) 28. Typo in the $HOME->$home mirroring. 27. %p %P 'p'recise time formats that include seconds for prompt strings. 26. Signal list fixes from Paul Close. nsig is now a variable. 25. 6.03.02 02/12/93 24. NEC SX3 "entry" is a reserved word!, changed entry to item... [this is as bad as cray typedefining "word" to int. Next thing I know, I'll have to prefix all the variables with tcsh_!] 23. xxx 22. Protected all include files to avoid warnings from lcc. 21. Finally resolved the job control problems with linux and ISC (from Beto) 20. More HUP,XFSZ,XCPU fixes. (with Beto) 19. Dcanon would not canonicalize correctly in case where dnormalize() failed to find a directory, but the directory existed when not crossing the symbolic link. 18. sh.init.c fixes; give 65 signals for all POSIX machines. 17. AMS mail fixes and cmu wm handling. 16. Setenv would not ignore trim quoted names... > alias foo 'setenv "\!:1" bar' > setenv FOO 123 > foo FOO > printenv ... FOO=123 FOO=bar ... 15. 6.03.01 08/01/93 14. #undef SHORT_STRINGS gcc warning fixes... 13. csh bug fix in foreach [quoteing problem] > foreach i ("*") > echo $i:q > end Should print * 12. ls-F obeys showdots... 11. After scheduled commands get executed, the editor could stay disabled until the first enter. 10. sigset() bug in ed.init.c; ^C could get disabled sometimes. 9. Don't glob in dowhich(); otherwise \pat does not work if pat is aliased. 8. When completion patterns are used $ and ~ expansion did not work right. 7. Printenv builtin and long backquote expansion fix from Harald. 6. $:-1, $:-0 enhancement from Paul and Michael. 5. Lynx/OS patches 4. Apollo bugs [Setenv -> tsetenv, typedef in pid_t] 3. ^@ did not work correctly in bindkey. 2. Fix vms/posix ifdefs in tc.alloc.c 1. Elide gcc-2.3.1 warnings V6.03.00, 11/20/92 102. Solaris2 patches, renamed sunosX to sosX to fit in 14 character filenames. 101. 6.02.12 11/12/92 100. Decreased BUFSIZE to 1K... 99. Don't use sbrk() in tc.alloc.c on VMS 98. EINTR error handling from Michael 97. Overwrite mode takes effect immediately, not delayed by a command. 96. Emx fixes. 95. SIGHUP gain... 94. Coherent times()/ fixes. 93. 6.02.11 10/27/92 92. Mach setpath fixes. 91. Which now globs its arguments 90. Again POSIX SIGHUP fixes... Maybe we got it right this time... 89. Increased BUFSIZE to 4K. Smaller machines may want to decrease this. [ Now one can edit up to 4K of buffer! ]. From Harald. 88. : is now a true builtin that does nothing, instead of being treated like the last character of a label. This is so it can take args. From Harald. 87. More fixes for hpux limits from Harald. 86. Login shell if ppid == 1 and argc == 1 for VMS. 85. Typo in sh.exec.c from Harry. 84. Per's editor fixes. 83. 6.02.10 10/17/92 82. Don't free STRNULL in freelex(). Update linked list in copylex() to do the same insert as in lex(). 81. Fixed spurious tilde printing in %c prompt. 80. Fixed dumb wild free in AddXKey... (thanks Harald for the complex bindings! :-) > bindkey "\e10z" expand-line # Any editor command will do > bindkey -[cs] "\e10z" "foo" # Any string or command will do Free(%x) .... 79. coherent additions. 78. fixes for hpux8 resource limits [Thanks Harald] 77. 6.02.09 10/10/92 76. More vms cleanups. 75. Removed #include CONFIGH from sh.h. There was no way to make it work under VMS/POSIX 74. Added t completion (Gray Watson) 73. Memory leaks in sh.dir.c and sh.glob.c [thanks purify :-)] 72. IRIX 5.0 patches (from Paul Close) 71. BSD resource limits for hpux8.0 (From Andreas Stolcke) 70. NGROUPS_MAX fixes (from Matt Day) 69. 6.02.08 10/04/92 68. VMS port additions. 67. Added $%var, which == strlen(var) 66. Added ^X^I and ^X^D to override programmable listing+completion 65. Added case insensitive globbing for OS/2 64. FIOCLEX and FIONCLEX are only used if we don't have FD_CLOEXEC. 63. Added emx termio support, and emx pathsep support; emx compiles and runs: needs job-debugging and finishing touches. 62. Horrible bug with the lex linked list; from Loic Grenie, grenie@ens.fr > echo a !# echoed 'echo a echo a echo'! 61. Shell -w,-x were incompatible with the same for test [POSIX] (beto) 60. builtin newgrp did not accept the - argument. 59. FIOCLEX for the masses (POSIX FD_CLOEXEC addition) 58. Old style csh completion bug fix [not used] (beto) 57. A background process waiting for input from tty blocks when being foregrounded doesn't read its input and doesn't get and signals. It can only be killed from another session. (beto) > cat > foo #!/bin/csh -f echo ">>>>>>" set x = $< echo $x ^D > chmod +x foo > foo & > fg ^Z,^C # Nothing happens 56. history > 1000 fix (beto) 55. 6.02.07 9/18/92 54. Added e_stuff_char() to put back a character in cooked mode in the input stream... Useful for status (^T) 53. $? == $status and $# == $#argv like in the bourne shell. 52. Added $dirstack. Problems: off by one since =0 == $cwd, but $dirstack[1] == $cwd... Suggestions welcome. 51. Leading spaces would confuse the run-help function. 50. Don't expand imported environment variables: > setenv HOME \* > tcsh > echo "$home" > echo "$HOME" 49. %C0n displays the number of directories omitted as /usr/local/bin /<2>bin/ 48. Added POSIXSIGS as a configuration option. 47. Per's fixes for history format and arrow key binding. 46. Expand-variables expands array variables too 45. 6.02.06 8/14/92 44. Separated limit stuff from BSDTIMES and added BSDLIMIT 43. History searching inconsistent with HistLit: > echo foo foo > ^foo^bar bar > ec[M-p] echo foo 42. 6.02.05 8/8/92 41. sourcing a script that contains 'onintr -; onintr' would disable interrupts on the command line 40. cd ../... with symlinks=ignore would work !@#!@ 39. No more BACKPIPE for POSIX machines... 38. SUNOS NLS bug workarounds... 37. New HASHBANG define for #! emulation... even 386BSD does not have it yet... 36. Added new -b -c file operators from SGI csh. 35. 6.02.04 7/23/92 34. Walking process group fixes. 33. $0 contains now argv[0] when we are not executing a shell script. 32. New Getwd() was broken. 31. 6.02.03 7/17/92 30. We kill our last foreground process group on HUP, for POSIX systems. 29. Walking process group fix. 28. $shlvl gets reset to 1 for login shells. 27. Macros can now involve multiple commands, i.e. bindkey -s "^[OP" "ls\n^P" 26. 6.02.02 7/6/92 25. nostat accepts now a list shell patterns. 24. Avoid print_exit_value in if ( { foo } ) 23. Symbolic key names for bindkey [arrow keys]. 22. Smarter getwd() that avoids some of the NFS hangs... 21. Use memmove() where possible. 20. 6.02.01 6/16/92 19. Fix automatic correction to work with the new completion. 18. Globbing bug with brace expansion, when arguments need to be realloced... e.g. echo 134{6,7}{0,1,2,3,4,5,6,7,8,9}{0,1,2,3,4,5,6,7,8,9} 17. shift and left operators update variables correcly ('shift path' did not work) 16. apollo fixes for cd. 15. STRNULL <-> NULL bug fixes. 14. %S in xprintf for short strings. 13. history -LSc, dirs -LSc additions, builtins builtin [oxymoron] 12. history formatting string, who formatting string, prompt formatting all use tprintf() now. 11. $history accepts a second formatting argument.. 10. History timestamps preserved in .history 9. Backquotes were broken: echo hi | cat > `echo foo` 8. SGI -t operator problem. 7. Dnix fixes. 6. Fix history file writing bug when autologout. 5. Change from TCSETA to TCSETAW, since we affect the output. 4. Per's fixes for display margin bugs. 3. Linux fixes. 2. Collapse adjacent stars in glob.c to avoid exponential behavior. 1. Fixed parseescape to put ^ literally if not followed by alpha. V6.02.00, 5/15/92 94. Default echo_style was not being set correctly. 93. $< did not work correctly with NLS chars. 92. 6.01.15 (5/11/92) 91. Minor cleanups in refresh code. 90. 6.01.14 (5/8/92) 89. Print \n in the right margin always to be consistent. 88. Linux patches. 87. 6.01.13 (5/2/92) 86. Fixes in listing and completion of non-unique commands. 85. Fix =stack entries > 9... from Bill Petro 84. Fix for last character at margin. [on terminals that have am & xm move the cursor manually to the next line] 83. Fix for complete completions 82. small typo in tc.alloc.c from Mark Moraes. 81. small typo in tw.parse.c from Richard. 80. Man page fixes from Per. 79. 6.01.12 (4/24/92) [release version for 6.02] 78. Autosuffix was not getting reset all the time. 77. Don't limit completion patterns to 1K. 76. Naming changes in ed.screen.c from Justin. 75. 6.01.11 (4/10/92) 74. Fixed magic-space ! expand bug: > echo a b123 45.{6,7} > echo !:2!:3[magic-space] 73. Work-around for apollo optimizer in tc.bind.c 72. Problem with setjmp in tw.parse.c 71. symlinks=expand from Yumin. 70. tenematch() fixes from Michael; 69. 6.01.10 (4/3/92) 68. Fixed Gnmatch. 67. Removed ignore_symlinks and chase_symlinks. Replaced by symlinks variable. 66. Backquote from completion was broken for machines with no dup2() 65. No $printexitvalue for `` jobs. 64. Added ultrix stuff for PW_AUTH [from Mike Potter mpotter@lampf.lanl.gov] 63. Fixed bug in Gnmatch(), added 'N' command 'x' completion. 62. Fixed fg_proc_entry() so autologout gets disabled when a process is foregrounded. 61. 6.01.09 (3/26/92) 60. source builtin takes arguments now that are passed in the script e.g.: > ./tcsh -i a b c > cat test echo $argv > echo $argv a b c > source test 1 2 3 1 2 3 > echo $argv a b c 59. Eliminate $margin_bug, add more intelligent margin code [from Justin] 58. expand_symlinks variable Urgh... 57. SGI CONTROL() fixes... 56. new dnormalize(), expand_symlinks flag. 55. interrupting completion restores the current line. [from Marc] 54. 6.01.08 (3/20/92) 53. inputmode affects the first line too. 52. Searches in vi do not destroy the current line. 51. -drwX test enhancement. 50. Generalized completion syntax and added more completion builtins. 49. Don't print '\n' on the right margin if we can avoid it. 48. 6.01.07 (3/9/92) 47. New completion style. [[[ ]],=] 46. 6.01.06 (3/7/92) 45. complete styles are ignored after shell metachars eg. > complete mail =u > mail christos < [tab] completes filenames. 44. $echo_style is initialized to the default style of the machine. 43. SGI 4.0 CTRL() macro is busted. So we ignore it. 42. Fixed bug with the new margin code (thanks justin) 41. Fixed mirroring of variables. Now set and setenv affect HOME, TERM, PATH, SHLVL, USER and their csh counterparts. Unset affects affects only the csh copies of the variables, and unsetenv only the environment variables. 40. Fixed gcc-2.0 warnings in sh.sem.c (needed for vfork() -O2 optimization) 39. 6.01.05 (2/21/92) 38. signal masking for BSD machines was still wrong in tw.init.c 37. Added $margin_bug, and now the editor outputs on the rightmost column by default. This should fix the xterm cut-n-paste problem. 36. AU/X 2.0 and SGI compiles with POSIX as a default now. 35. sysv_echo is gone too. Now we have a variable called echo_style which can be set to "none", "bsd", "sysv", "both" that defines the builtin echo_style. The default is "bsd" for systems with SYSVREL == 0, "sysv" otherwise. This can be overriden in config.h by defining ECHO_STYLE ro be BSD_ECHO, SYSV_ECHO, BOTH_ECHO, or NONE_ECHO. 34. asynchronous notification in run-fg-editor would try to change the tty settings and print an extra prompt. > set notify > sleep 10 & > vi^Z > ^[^Z 33. alias x /bin/true x? reported .//bin/true instead of /bin/true 32. 6.01.04 (2/12/92) 31. fixed vi_substitute_line 30. binding completion addition. 29. showdots=-A addition 28. sysv_echo addition; deleted bsd_echo which is now the default. 27. dunique could crash. 26. Don't clear lines after an asynchronous notification, because it might erase the message. 25. 6.01.03 (1/29/92) 24. `` were not working correctly when tcsh is started with 0,1,2 closed. 23. Correction was picking up the wrong thing in cases like .rhosts hosts 22. Correction with names with quoted spaces was broken. 21. Added sysv_echo and bsd_echo. 20. Added and documented the complete builtin. 19. Added dunique and cd -. 18. Per's fix for alarm functions. Things would break if time went backwards. 17. Realloc bug fix (copy min of old and new size) 16. Fix for csh compatible braces. 15. Brace globbing and negation globbing for Gmatch. 14. 6.01.02 (1/16/92) 13. Completion builtin, new tw* files. 12. 6.01.01 (1/6/92) 11. Changed w_ fields in tc.who.c to who_ to avoid redefinitions in in some os's. 10. Setting savehist to an empty string makes savehist use the value in $history. 9. echotc did not use the internal termcap descriptions. 8. echotc did not work right for single argument termcap strings. 7. DGUX needs SAVESIGVEC, updated type protection, and disabled CSWTCH. 6. Changed SVID to SYSVREL, since there is no SVID == 4 (yet). 5. Typo in tc.sig.h: UNRELSIGS was not getting defined. 4. Globbing bug fix. tglob() should ignore globbing characters inside backquotes otherwise things get expanded twice: % echo 'bar?' > 'foo?' % echo `cat foo\?` echo: No match. 3. Mach setpath fix. 2. Alliant process group fix. 1. Xenix fixes for broken vi and help path with no suffixes. V6.01.00, 12/19/91 [for comp.sources.unix] 22. Restore the original prompt in automatic correction when the user asks to re-edit the command. 21. Better error for unreadable files in tw.parse.c 20. Sequent patches. 19. (V6.00.08 beta 12/14/91) 18. Filenames containing # were spelled/expanded incorrectly. 17. Stellar/stellix port. 16. Hpux 8.0 has SIGWINDOW but we cannot get the window size. Protect against window changes updating $LINES and $COLUMNS. 15. Mach setpath did not work right. 14. Mach does not need setenv in lib; in fact that does not work right. 13. shell level gets decremented when we exec. 12. restart_fg_editor picked the wrong editor if arg contained a slash. e.g vi ~/.cshrc 11. (V6.00.07 beta 12/08/91) 10. Allow use of vfork() on systems that do not have job control. 9. Avoid NUMCC from being defined twice. 8. (V6.00.06 beta 12/05/91) 7. SunOS3's FIOCLEX dups... 6. Yet another globbing bug fix from Michael (echo .[^.]) 5. Ultrix now wants __ before cpp symbols. 4. Workaround sun's header files inconsistency so tcsh can be compiled with #undef POSIX 3. Fixed limit stuff so that large values don't cause errors. 2. Fixed =1 and ~user error messages (Per) 1. (beta-5 6.00.04 == 6.00.05) $#* $#* New numbering scheme (The last 2 digits are reserved for beta releases $#* from now on. So we start at 6.00.06 which is 6.00.04 beta 6, and we are $#* going to release 6.01.00... $#* V6.00.04, (never released) 34. (beta-5 11/25/91) 33. Simplify code in BindArrowKeys() 32. Get rid of the PNULL's 31. Support for shadow password in locking code. (From Kimmo) 30. Normalize-path editor function. 29. (beta-4 11/21/91) 28. minix additions 27. bindkey fixes (-c addition, casting cleanups) 26. (beta-3 11/16/91) 25. Prompt length checking. 24. Michael's fixes for the watching code. Tcsh could core dump when using a corrupted utmp. 23. overwrite mode flag, and autologout locking code. 22. overwrite mode would still insert digits! 21. Get the value of _POSIX_VDISABLE from pathconf... 20. Hpux 8.0 fixes. Sigstack botches with shared libraries. Ansi mode static initialization of structures with prototyped function pointers gives spurious warnings... 19. Onintr in /etc rc files is disabled. 18. (beta-2 11/03/91) 17. Multi-line aliases with `` bug fix. 16. Sticky emacs overwrite mode. 15. Autolist option. 14. Fix for redirection with wildcard filanames. 13. No error correction for multi-line commands. 12. Esix-4 re-defines p_pid. Argh... 11. (beta-1 10/28/91) 10. Foreach loops were broken again. 9. SUNOS localtime() bug does not only happen on the 8th byte. [Michael] 8. sh.dir.c, memory corruption in dinit(). Thanks Michael. 7. uts broken work-around, and has a wait3() 6. SGI (-t filename) extension, returns true when filename is a tty. 5. 'default:' addition in all switch() statements. 4. oflag was not being updated correctly in Rawmode() 3. missing 'break;' in prompt code '%y'. 2. infinite loop in :a code. 1. hashstat was not reporting hits+misses V6.00.03, 10/21/91 31. watch code now accepts shell patterns. 30. new hashing code portability fixes. 29. $foo:gs/:/ / fix and 'a' modifier addition. 28. Added $! (the pid of the last background job forked) 27. exec does not kill the shell when it fails. 26. Irix4.0 decls. 25. SVR4 uthost fixes from Kimmo Suominen 24. Imake addition from marc 23. New i-search from Per. 22. ibmesa fixes 21. convex fixes. 20. t command for vi. 19. SVR4 fixes (reverse pipeline and sigaction()) from David Dawes. 18. New hashing from Marc 17. Added : to the ~name separators so ~foo:~bar works. 16. New ed.init.c. Added ed.term.c 15. Still can't get the history exactly csh-like... !-2$ was broken... 14. vi character searches. 13. -Dvar=name command line option for the apollos. 12. Prompt format changes for date/directory. 11. Vi searches. 10. Emacs i-search. [currently not bound] 9. Vi additions ([dc]-{w,$,f},Undo) 8. tcsh -n parses now builtin structures. 7. seek to the end on errors in loops. 6. echotc -s was broken 5. Better !event parsing. !foo;!bar was broken. 4. foreach loops and if statements in aliases. 3. .cshdirs would corrupt the heap if some directories were not there. 2. System V echo was broken with \ 1. Fixed echo '!-1', history would eat the quote. V6.00.02, 08/05/91 [For comp.sources.unix] 8. tcsh will always set $LOGNAME and $USER if not already set in the environment. 7. added $histfile. 6. echo `echo` * and echo ~ {} were broken 5. setty builtin addition 4. Multiple : modifiers [experimental, disabled with -DCOMPAT] 3. 7 bit fixes, and hp9000s500. 2. #undef DEBUG in tc.alloc.c, so we continue if we get a bad free() 1. getn() is now protected against NULL strings. V6.00.01, 07/16/91 17. added beepcmd, and fixed small tenematch bugs. 16. Renamed DUP2 flag to HAVEDUP2 cause AIXPS2 defines DUP2 already. 15. More ANSI fixes, and mit additions (load-average) 14. don't clear ECHOE, background programs might need it. 13. Refresh bug fix... 12. getpwent() should not be interrupted (yellow pages), cause it might leave dangling pointers, that endpwent() will trash. 11. ChangeSize is now responsible to set the screen size to something sane, but it should not affect the environment if the information it received is not valid 10. Find out if we are running under emacs using $TERM. It is more reliable. 9. tcsh was broken if SHORT_STRINGS was not defined (glob() problem) 8. If GetSize() fails it should always return reasonable screen sizes. 7. globbing should not fail if one or more patterns match. 6. increased the number of aliases in the loop detection code. 5. DGUX has size_t and pid_t defined now... 4. ESIX does not have EWOULDBLOCK or EAGAIN & POSIX... That was not handled correctly. 3. rs6000 needs BSDWAIT. 2. Hpux susp key could not be changed. 1. Apollo fixes. V6.00.00, 07/04/91 45. Fixed quoting of VSTART/VSTOP on termios 44. Memory leak every time you pipe in or out. 43. echo {foo bar.[ch]}. Did not check for end of word. 42. ANSI prototypes 41. dmove() would leave the source descriptor open when using dup2() e.g. while (1) echo foo >>! bar end runs out of file descriptors 40. recursive `` expanded via aliases would abort. 39. set home=../relative-path-name was broken. e.g. set home=../..; cd ..; 38. Incorrect error when changing to directory: e.g. mkdir not-in-cd-path; chmod -x not-in-cd-path; cd not-in-cd-path; echoed: not-in-cd-path: No such file or directory. it should have said not-in-cd-path: Permission denied. 37. if ( \! =~ [\!] ) echo ok, did not echo ok. Quoting inside [] pattern. 36. More than 127 jobs caused job # to go negative 35. unsetenv ... Added support for more than one pattern. 34. More background process status report fixes. 33. Apollo builtin support. 32. Glob fix. echo '*' * was not handled properly. 31. Glob fix. setenv FOO `sleep 1` would either cause a segmentation fault. or print ambiguous. 30. Glob fix. Quoted characters inside [] were not handled properly. 29. Removed TELL and VMUNIX defines. I think we cannot compile on V6 anyway 28. Overflow check for expansions. 27. Added matchbeep, shell pattern history searching. 26. Added code to handle /dev/std{in,out,err} 25. Fixed POSIX speed handling in raw mode. 24. Fixed a flushing bug in the filec code in sh.file.c 23. Compiled and added hp9000s700 to the list of hosts. 22. Fixed horrible bug in gmatch() switch (4) case [a-z]: echo bug; breaksw; case 4: echo ok; breaksw; endsw 21. Fixes for _SEQUENT_ ut_host. 20. FLUSHO added 19. mkdir foo\`bar; cd foo\`bar; was broken 18. EWOULDBLOCK == EAGAIN on RENO check for that too. 17. Dword() simplified and removed the gotos. 16. Hpux now compiles with POSIX. Moved the local chars modes in ed.init.c after the tty modes. 15. Process group fixes for POSIX 14. We need on the suns for FIOCLEX!!! We did not close our file descriptors before... 13. A/UX fixes. 12. History events that start with a number are not necessarily numeric: > !3d 3d: Event not fount 11. History loop detection added. > alias a \!# > b; a 10. Alias loop detection code was ineffective on eager optimizers. 9. All errors should now go through our table. Next step we should add nls error messages. 8. Unsetenv now globs its arguments! Before it did not... 7. Added tilde cache and -l flag. 6. Added autocorrect 5. Fixed for so that background jobs in scripts get process groups 4. Fixed amazing memory leak in setenv()... 3. Added short2qstr() so that we can form quoted strings to be used with glob() 2. str2short and short2str allocate space dynamically. 1. Fixed bug related to the is*() routines called with shorts. [only if NLS and SHORT_STRINGS are defined]. (The _ctype_ was getting indexed with shorts...) 0. Complete overhaul. Brought in the 4.4 csh stuff. Separated most tcsh and csh code except where I would have to add more global variables. Compiled correctly with both lint and gcc -Wall on a sparc running 4.1 V5.20.03, 03/20/91. - Never released 25. Kanji, SXA additions. 24. (exec foo) should not fail if they are suspended jobs. 23. Support kernel paging stuff on aix 370. 22. Now we handle correctly the environment variables LINES, COLUMNS, TERMCAP for window size changes... 21. Tcsh 5.18c+ had broken NULL chars on scripts. > cat > foo #!/usr/local/bin/tcsh -f echo "foo" echo "^V^@" echo "bar" ^D > chmod +x foo; foo foo 20. Posix has EAGAIN and not EWOULDBLOCK 19. Don't set ECHOK; makes kill ^U ugly. 18. $shell is SHELLPATH and not $SHELL any more. 17. Added -n flag to cd, pushd, popd and dirs. Documented -l and -v flags. 16. Documented and fixed chase_symlinks and ignore_symlinks. 15. Call endpwent() when you get interrupted... cd ~chri^C cd ~christos/ 14. Exec when you have suspended jobs asks for verification. 13. Variable length fixes: >set abcdefghijklmnopqrstuvwxyz=1 >echo $abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrs: Undefined variable Now we have better messages too... 12. Icon fixes... 11. Quote expanded glob and history chars too. 10. If someone sets SHIN to O_NDELAY we died... Now we set it back... 9. unset path; unsetenv PATH; ls-F; (poof) fixed... 8. Patches for masscomp, and ${var123} lexical analysis fix... 7. Patch for sunview bug: A partially covered suntool sends SIGWINCH every time the text is scrolled, causing annoying redraw effects. Now tcsh checks if the size really changed before doing anything. 6. Interrupt in the middle of cwdcmd, and periodic does not remove the aliases. 5. prompt2 and prompt3 fixes: Prompt2 now prints the status of the parser by default. Prompt3 can now have the standard prompt escape sequences. 4. eval file descriptor re-direction fix. >set p='w | tail +3' >eval $p (originally | tail +3 was ignored) 3. $edit != emacs anymore; it was misleading, 'set edit' enables editing 'unset edit' disables it. 2. PERROR define fix. 1. irix3.3.1 line discipline fix. V5.20.02, 12/15/90. 32. /etc/Logout added and merged with /etc/Login flag. 31. Fixed tty chars in ed.init.c. Some of them were not handled correctly. 30. Command execution does not leak memory any more, and doing ~ four times does not core-dump. 29. Fixed the notorious csh 'if(' bug (part of the convex fixes) 28. Intelligent getwd() on startup, and canonicalization. 27. Intelligent directory stack. Gets updated when $HOME changes. 26. Directory stack/save-restore additions 25. Convex Fixes. 24. Fixed onlret, and echonl getting stuck on svid. 23. Shouldn't leave tty in raw mode at auto-logout (e.g. when su'ing from a csh, this is annoying). 22. Some users had environment EMACS set to something, and with my bad fix at pl 1 found that they didn't have echo... (of course, even before my "fix", they didn't have editing...). Anyway, refined the check to be for EMACS=t, which is what emacs sets when running a subshell. 21. kill -CONT %job, would not update the status of the job, but it would just restart it. 20. Sequent fixes. 19. AIX370 signal and TCF fixes. 18. fixed ls-F -l, SIGINT problem. 17. aix on the ps2 does not have strcoll() either. 16. Bind [A - [D and OA to OD in vi mode to the arrow key functions so that they work from insert mode. 15. %~ was not working correctly for /home/news and /home/newsbin... 14. Removed Rcs Log 13. ISC unix fixes. 12. sunos3.x wants not 11. Remove precmd's, cwdcmd's and periodic cmds that had errors. 10. Compile sunos4.1 using termio. 9. Rs6000 line discipline fixes. 8. T_Tabs was wrong for termio machines. 7. Don't bind single keystroke arrow keys, when they are already bound! 6. Test for newline and tab before deciding not to send shell scripts to the bourne shell. 5. Added LITERAL prompt stuff. 4. Fixed gethostname() in sh.rest.c to return the nodename. 3. Do not quote spell checked stuff. This is not very intelligent but works better than before. 2. Fixes for relative path components. (paths that start with a .) 1. Fixed so that Rawmode() is not called when we are not editing (breaks running under emacs) V5.20.01, 11/15/90. 12. Recognize environment variables too. 11. Always start in Rawmode() 10. don't try to execute binary files using the bourne shell. 9. Vi change to end of line updates correctly now. 8. Prompt in continuation lines. 7. Prompt in if statements fix. 6. System V ^C works right now. 5. ^Z works correctly in bindings 4. Better error messages for variables. 3. dinit() now is more robust. 2. Added aux2.0 patches. 1. Fixed bug with arrow key bindings in ed.screen.c. All the keys were bound to up-history! V5.20.00, 11/10/90. 26. Fixed system V and POSIX time reporting. 25. Fixed ed.screen.c so that it does not use malloc(). 24. Fixed SIGWINCH on the iris 23. Fixed ed.screen.c, so that settc works correcly. It used to set the termcap with a string that was allocated from the stack! 22. Fixed listing of commands, where the last command was not checked. 21. Fixed which command. It did not work for \, if command was aliased. 20. Eliminated CSH4.3 define. You've had enough time to upgrade from 4.2 19. Fixed GotTermCaps to be called only once. 18. Added bindkey -r 17. Attributes were not getting reset correctly. 16. history -t does not print the time-stamp. 15. AddXkey, works now for single character xkeys. 14. filetype() knows better about symlinks. 13. ls-F works with filenames that have metachars 12. Completion/spelling works with quoted things. 11. Fixed refresh bug. Repeat by: On an intelligent terminal that has insert and delete chars (xterm) > orphan > vi orphan.c > ^P^P 10. Fixed so that if we don't have a tty on stdin editing is disabled. 9. Check for nested process forking, to avoid loops such as: > alias foo 'set bar=`foo`' > foo 8. Fix setting of AsciiOnly (Per) 7. tw.spell.c, defined F_OK for systems that don't have it. 6. ourwait.h had typo in ifdef. 5. BSD compilers need a cast to int for enums used in switches (Matthew Day) 4. Found the cause for the core-dump in long backquote expansions (Mark Davies) 3. Some externs in ed.h needed to be truly externs... reported by Mark Davies, bug appeared only on hp9000s800. 2. Changed $tcsh, and $version strings. 1. Added internal sprintf function, renamed putchar to CSHputchar, printf to CSHprintf, sprintf to CSHsprintf. V5.19.02, 10/23/90. 36. Added /etc/cshrc for the SGI irises. 35. Added expand-variables function. 34. Documented $time in tcsh.man 33. Shell variables are now 'recognized' when expanding/listing things. 32. ls-F does not eat the last slash on the / directory! 31. Strings bound to keys are printed inside double quotes. 30. History now remembers the exact line, not just an unparsed version of the tokens. 29. Renamed itoa to Itoa(), so things in libc that use itoa() don't break. 28. Ported to IBM aix/ps2. 27. Fixed eval so that it forks when the output is piped Repeat by: > who | grep $user > eval who | grep $user 26. Fixed so that 'nice ' does not nice or fork. Consider doing: nice cd /tmp && rm *.c (don't try it!!!) [what actually happens is that nice has to fork, then the child executes chdir, and the parent stays where it was] 25. Added Dan's patches (nls, builtin bindkey, fixes to the editor). 24. Added aix370, migrate, getspath, getspath, getxvers, setxvers 23. Added builtin echotc, removed sl and el. 22. Ported to 4.4 BSD. This involved changing the way lots of flags worked, cleanup of the SVID stuff, and addition of more compilation flags. Now POSIX can work whed BSD is defined... 21. Fixed so that el, sl work. Actually they are to be removed soon and be replaced with echotc. 20. Avoid the Quoted Space hack for alias when printing jobs! [aliases to the same name avoid further alias expansion, by inserting a quoted space in front of the command. In SHORT_STRINGS QUOTE is the 15th bit so print ignores it thinking it is the end of the string. So we just skip the Quoted Space....] Repeat by: > set notify > alias ls ls -F > (ls) & Prints Exit 0 ( Should print: Exit 0 ( ls -F ) 19. Fixed so that "", '', ``, all produce ': Command not found', and not the spurious messages. Repeat by: > set path = (/bin /usr/bin .... .) > "" /some/path/name/: Command not found 18. Enable the use of macros if they exist and NLS is defined. NLS code is not ready yet. 17. Fixed rmstar and continue_jobs code, so that they are not compile options, but shell variables. Now you need to 'set rmstar' to get enable rmstar. 16. Fixed SIGWINCH, SIGWINDOW, and setting of li, co, that broke suntools, and others. Repeat by: Start a shelltool of size other than 80x34 > telltc > stty -a do not report the same number of lines and columns. 15. More fixes to tw.parse.c, and tw.spell.c. 14. More fixes to sh.char.c. 13. Fixed coredump caused by ``. 12. Fixed spell-line code.. 11. Trapped SIGCHLD in sh.sem.c, while forking. Still there is a small race, but the probability of happening is smaller! 10. Fixed sh.char.c to be ISO compliant. 9. Added expand-glob 8. Fixed ourwait.h for little endians. 7. Fixed that foreach i (^D expands correctly. 6. Fixed so that listmax is ignored in ls-F. 5. Fixed spelling correction so that single letter words and words that contain globbing chars do not get spell checked. 4. Changed NeXT HOSTTYPE to next, since all HOSTTYPE's are lower case. 3. Fixed symmetry, and changed symmetry HOSTTYPE from sequent to symmetry. 2. Added boldfacing, underlining chars. 1. Added IRIX3.3.1 support. V5.19.01, 9/26/90. 7. Brought the README file up-to-date, and changed the bug report address to point to me. 6. sh.lex.c. In addla(), overflow computation was wrong. 5. Fixed SHELLPATH, to be set correctly when $SHELL is not set. 4. Fixed print statement in sh.proc.c that contained \215. 3. Fixed the Makefile and MAKEDIFFS so that a tahoe diff can be made. 2. RS6000: hacked around execv bug, and ed.init.c warning. 1. Editor should not be enabled when we don't have a tty. Index: head/contrib/tcsh/Imakefile =================================================================== --- head/contrib/tcsh/Imakefile (revision 131962) +++ head/contrib/tcsh/Imakefile (revision 131963) @@ -1,622 +1,624 @@ XCOMM -XCOMM $Id: Imakefile,v 1.81 2002/07/23 16:18:31 christos Exp $ +XCOMM $Id: Imakefile,v 1.83 2003/02/08 20:03:25 christos Exp $ XCOMM XCOMM Imakefile for tcsh 6.12 XCOMM Marc Horowitz, MIT SIPB XCOMM #ifdef DestDir #undef DestDir #endif #ifdef ManSuffix #undef ManSuffix #endif /* All config options go in a separate file. */ #include "imake.config" #ifndef HasGcc # define HasGcc 0 #endif #ifndef HasGcc2 # define HasGcc2 0 #endif /* This is a giant conditional block. It should be set up right for platforms which are in here, but it may need to be changed for new ones. Please send in your fixes and additions! */ /**** tcsh configuration defines ****/ /* specific platforms */ #ifndef ConfigH # ifdef UltrixArchitecture # define ConfigH ultrix # endif # ifdef UxpArchitecture # define ConfigH sysv4 # endif # ifdef LinuxArchitecture # define ConfigH linux # endif # ifdef AlphaArchitecture # ifndef LinuxArchitecture # define ConfigH decosf1 # endif # if !HasGcc # define MyCflags -std1 -Olimit 2000 # else # define NoCombineRegs # endif # endif # if defined(VaxArchitecture) && !defined(UltrixArchitecture) # define ConfigH bsd # endif # ifdef NeXTArchitecture # define ConfigH mach # endif # if defined(SunArchitecture) # if (OSMajorVersion == 3) # define ConfigH sunos35 # else # if (OSMajorVersion == 4) # if (OSMinorVersion == 0) # define ConfigH sunos40 # else /* OSMinorVersion == 1 */ # if (OSTeenyVersion == 3) # define ConfigH sunos413 # else /* OsTeenyVersion in [0,1,2] */ # define ConfigH sunos41 # endif # endif # define NoCombineRegs # else /* OSMajorVersion == 5 */ # if (OSMinorVersion < 3) # if (OSMinorVersion < 2) # define ConfigH sol2 # else # define ConfigH sol22 # endif # else # if (OSMinorVersion < 4) # define ConfigH sol23 # else # if (OSMinorVersion < 6) # define ConfigH sol24 # else # define ConfigH sol26 # endif # endif # endif # define NoCombineRegs # endif # endif # endif # ifdef HPArchitecture /* For some stupid reason makedepend on HP requires this */ DEPENDFLAGS = -o.o # if (OSMajorVersion >= 8) # define ConfigH hpux8 # else # define ConfigH hpux7 # endif # endif # ifdef CrayArchitecture # define ConfigH cray # endif # ifdef SGIArchitecture # define ConfigH irix # define UseLibBSD # if (OSMajorVersion < 5) # ifdef you_are_using_yp # define UseSunLib # endif # if !HasGCC # define MyStdc -D__STDC__ # if SGICompilerMajorVersion < 4 CCOPTIONS=-float # We don't want -cckr and -prototypes # endif # endif # endif # if (OSMajorVersion == 6) # if (OSMinorVersion >= 2) # undef UseLibBSD # define ConfigH irix62 # endif # endif # endif # ifdef IBMArchitecture # undef UseLibBSD # if (SystemV == YES) # define ConfigH aix # if OSMajorVersion < 3 # if OSMinorVersion < 2 # define UseLibBSD # endif # endif # else # define ConfigH bsd # define AOSArchitecture # endif # endif #ifdef AOSArchitecture #define MyStdc -U__STDC__ #endif # if defined(MipsBsdArchitecture) || defined(MipsSysvArchitecture) # define ConfigH mips # endif # ifdef DguxArchitecture # define ConfigH dgux # endif # ifdef ConvexArchitecture # define ConfigH convex # endif # if defined(SQNTArchitecture) || defined(SequentArchitecture) # define ConfigH sequent # endif # ifdef MacIIArchitecture # define ConfigH mac2 # endif # ifdef MinixArchitecture /* Maybe conditional on MACH? */ SYSSRCS=mi.termios.c mi.wait.h mi.varargs.h SYSOBJS=mi.termios.${SUF} EXTF=ma.setp.c vms.termcap.c # else /* Maybe conditional on MACH? */ SYSSRCS=ma.setp.c SYSOBJS=ma.setp.${SUF} EXTF=mi.termios.c mi.wait.h mi.varargs.h vms.termcap.c # endif # ifdef i386Isc # if IscVersion != 202 # define ConfigH isc # define UseLibCposix # else # define ConfigH isc202 # endif # endif /* i386Isc */ # ifdef OpenBSDArchitecture # define ConfigH bsd4.4 # endif /* OpenBsdArchitecture */ # ifdef NetBSDArchitecture # define ConfigH bsd4.4 # endif /* NetBsdArchitecture */ # ifdef FreeBSDArchitecture # define ConfigH bsd4.4 # endif /* FreeBsdArchitecture */ # ifdef i386SVR4Architecture # define ConfigH sysv4 # ifdef DELL # define NoCombineRegs # endif # endif #endif /* !ConfigH */ /* generic os's */ #ifndef ConfigH #if (SystemV == YES) #define ConfigH sysv3 #else /* why this as a default? Why not? */ #define ConfigH bsd #endif #endif /* !ConfigH */ /**** libraries ****/ #if (SystemV == NO) || defined(HPArchitecture) || \ defined(SQNTArchitecture) || defined(SequentArchitecture) || \ defined(MacIIArchitecture) || defined(UseLibTermcap) LIBTERMCAP = -ltermcap #else LIBTERMCAP = #endif #if defined(SQNTArchitecture) || defined(SequentArchitecture) LIBSQNT=-lsocket -linet -lnsl -lseq #endif /* This may not be good enough - I don't have access to enough systems to really test it. */ #if (SystemV == YES) || defined(UseLibCurses) && !defined(HPArchitecture) LIBCURSES = -lcurses #else LIBCURSES = #endif #if defined(UseLibNet) LIBNET = -lnet #else LIBNET = #endif #if defined(UseLibSocket) LIBSOCKET = -lsocket #else LIBSOCKET = #endif #if defined(UseLibBSD) LIBBSD = -lbsd #else LIBBSD = #endif #if (defined(SGIArchitecture) && \ (OSMajorVersion == 3) && (OSMinorVersion == 3)) || \ defined(UseLibC_S) LIBC_S = -lc_s #else LIBC_S = #endif #if defined(UseLibSun) LIBSUN = -lsun #else LIBSUN = #endif #if defined(UseLibCposix) LIBCPOSIX = -lcposix #else LIBCPOSIX = #endif #if defined(UseLibInet) LIBINET = -linet #else LIBINET = #endif #if defined(UseLibDir) LIBDIRECT = -ldir #else LIBDIRECT = #endif #if defined(UseLibX) LIBX = -lx #else LIBX = #endif #if defined(UseLibIntl) LIBINTL = -lintl #else LIBINTL = #endif #if (HasLibCrypt == YES) LIBCRYPT = -lcrypt #else LIBCRYPT = #endif #if defined(MacIIArchitecture) || defined(UseLibPosix) LIBPOSIX = -lposix #else LIBPOSIX = #endif #if defined(ATTArchitecture) || defined(UseLibDirent) LIBDIRECTENT = -ldirent #else LIBDIRECTENT = #endif /* The order here is significant. Although nothing uses all of these, some platforms which use more than one do care about the order. */ SYSLIBS = $(LIBPOSIX) $(LIBDIRECTENT) $(LIBTERMCAP) $(LIBCURSES) \ $(LIBNET) $(LIBINTL) $(LIBSOCKET) $(LIBSUN) $(LIBBSD) $(LIBCPOSIX) \ $(LIBINET) $(LIBDIRECT) $(LIBX) $(LIBC_S) $(LIBSQNT) $(LIBCRYPT) /* Past here, nothing should need to be changed to compile on a different platform, unless you have a really weird architecture. */ #ifdef MyCC CC = MyCC #else # if HasGcc # if HasGcc2 CC = gcc # else # ifdef NoCombineRegs CC = gcc -finline-functions -fstrength-reduce # else CC = gcc -fcombine-regs -finline-functions -fstrength-reduce # endif # endif # else CC = cc # endif #endif #ifdef HESIOD HESLIB = -L/usr/athena/lib -lhesiod /* it seems to me that the -I shouldn't be necessary, but there seems to be a bug in the Imake stuff, so here it is. */ HESDEF = -DHESIOD -I/usr/athena/include #else HESLIB = HESDEF = #endif #ifdef AFS #ifndef AFSDIR AFSDIR = /usr/afsws #endif #ifdef AFS33 #define AFS33LIB -laudit #else #define AFS33LIB #endif /* Auxilliary libs needed for AFS */ /* Both HPUX and Solaris need the BSD libraries. We need -lc before * the bsd library to avoid using any more of it than is necessary. */ #if defined(HPArchitecture) #define AFSAUXLIB -lc -lBSD /* This is probably a kludge, but so is imake. */ #else #if defined(SunArchitecture) && (OSMajorVersion == 5) #define AFSAUXLIB -lsocket -lnsl -lc -lucb #else #define AFSAUXLIB #endif #endif /* AFSAUXLIB */ AFSLIB = -L$(AFSDIR)/lib -L$(AFSDIR)/lib/afs -lkauth -lprot -lubik\ -lauth -lrxkad -lsys -ldes -lrx -llwp -lcom_err\ $(AFSDIR)/lib/afs/util.a AFS33LIB AFSAUXLIB AFSDEF = -DAFS -I$(AFSDIR)/include #else AFSLIB = AFSDEF = #endif /* This is encore specific, but I don't know what encore's #define is, and it shouldn't hurt to have it here, so here it is */ PARALLEL=12 # Make the multi-max run fast. #ifndef TcshTop #define TcshTop /usr/local #endif TCSHTOP = TcshTop #ifndef ManSuffix #define ManSuffix 1 #endif MANSUFFIX = ManSuffix #ifdef TcshPath PATH_TCSHELL = TcshPath TCSHPATH = -D_PATH_TCSHELL='"$(PATH_TCSHELL)"' #else TCSHPATH = #endif #ifdef DestBin TCSH_BINDIR = DestBin #else TCSH_BINDIR = $(TCSHTOP)/bin #endif #ifdef DestMan TCSH_MANDIR = DestMan #else TCSH_MANDIR = $(TCSHTOP)/man/man$(MANSUFFIX) #endif LOCALLIBS = #ifndef MyCflags #define MyCflags #endif #ifndef MyDefines #define MyDefines #endif #ifndef MyIncludes #define MyIncludes #endif #ifndef MyStdc #define MyStdc #endif #ifdef CDebugFlags CDEBUGFLAGS = CDebugFlags #else # if HasGcc2 CDEBUGFLAGS = -O2 # else CDEBUGFLAGS = -O # endif #endif #ifdef HostType HOSTTYPE=HostType HTDEF = -DHOSTTYPE='"$(HOSTTYPE)"' #else HTDEF = #endif DEFINES = $(TCSHPATH) $(HESDEF) $(AFSDEF) $(HTDEF) MyDefines MyCflags MyStdc INCLUDES = -I. MyIncludes #ifdef MyLibs LDLIBS = MyLibs #endif SUF = o VERSION = 6.12 -SHSRCS= sh.c sh.dir.c sh.dol.c sh.err.c sh.exec.c sh.char.c \ - sh.exp.c sh.file.c sh.func.c sh.glob.c sh.hist.c sh.init.c \ - sh.lex.c sh.misc.c sh.parse.c sh.print.c sh.proc.c sh.sem.c \ - sh.set.c sh.time.c sh.char.h sh.dir.h sh.proc.h sh.h \ - sh.decls.h glob.c glob.h ${SYSSRCS} +SHSRCS= sh.c sh.dir.c sh.dol.c sh.err.c sh.exec.c \ + sh.char.c sh.exp.c sh.file.c sh.func.c \ + sh.glob.c sh.hist.c sh.init.c sh.lex.c \ + sh.misc.c sh.parse.c sh.print.c sh.proc.c \ + sh.sem.c sh.set.c sh.time.c glob.c \ + sh.char.h sh.dir.h sh.proc.h sh.h \ + sh.decls.h glob.h ${SYSSRCS} SHOBJS= sh.${SUF} sh.dir.${SUF} sh.dol.${SUF} sh.err.${SUF} sh.exec.${SUF} \ - sh.char.${SUF} sh.exp.${SUF} sh.func.${SUF} sh.glob.${SUF} \ - sh.hist.${SUF} sh.init.${SUF} sh.lex.${SUF} sh.misc.${SUF} \ - sh.parse.${SUF} sh.print.${SUF} sh.proc.${SUF} sh.sem.${SUF} \ - sh.set.${SUF} sh.time.${SUF} glob.${SUF} ${SYSOBJS} + sh.char.${SUF} sh.exp.${SUF} sh.file.${SUF} sh.func.${SUF} \ + sh.glob.${SUF} sh.hist.${SUF} sh.init.${SUF} sh.lex.${SUF} \ + sh.misc.${SUF} sh.parse.${SUF} sh.print.${SUF} sh.proc.${SUF} \ + sh.sem.${SUF} sh.set.${SUF} sh.time.${SUF} glob.${SUF} ${SYSOBJS} TWSRCS= tw.decls.h tw.h tw.help.c tw.init.c tw.parse.c tw.spell.c \ tw.comp.c tw.color.c TWOBJS= tw.help.${SUF} tw.init.${SUF} tw.parse.${SUF} tw.spell.${SUF} \ tw.comp.${SUF} tw.color.${SUF} EDSRCS= ed.chared.c ed.decls.h ed.defns.c ed.h ed.init.c ed.inputl.c \ ed.refresh.c ed.screen.c ed.xmap.c ed.term.c ed.term.h EDOBJS= ed.chared.${SUF} ed.refresh.${SUF} ed.screen.${SUF} ed.init.${SUF} \ ed.inputl.${SUF} ed.defns.${SUF} ed.xmap.${SUF} ed.term.${SUF} TCSRCS= tc.alloc.c tc.bind.c tc.const.c tc.decls.h tc.disc.c \ tc.func.c tc.os.c tc.os.h tc.printf.c tc.prompt.c \ tc.sched.c tc.sig.c tc.sig.h tc.str.c sh.types.h tc.vers.c tc.wait.h \ tc.who.c tc.h TCOBJS= tc.alloc.${SUF} tc.bind.${SUF} tc.const.${SUF} tc.defs.${SUF} \ tc.disc.${SUF} tc.func.${SUF} tc.os.${SUF} tc.printf.${SUF} \ tc.prompt.${SUF} tc.sched.${SUF} tc.sig.${SUF} tc.str.${SUF} \ tc.vers.${SUF} tc.who.${SUF} MISCF = Makefile.std Fixes MAKEDIFFS MAKESHAR NewThings README FAQ \ WishList config_f.h eight-bit.me glob.3 patchlevel.h \ pathnames.h tcsh.man Ported src.desc Imakefile imake.config \ README.imake complete.tcsh vmsreadme.txt Makefile.vms termcap.vms \ snames.h host.defs gethost.c tcsh.man2html Makefile.in configure.in \ Makefile.win32 CONFSRCS=config/[a-z]* SRCS = $(SHSRCS) $(TWSRCS) $(EDSRCS) $(TCSRCS) OBJS = $(SHOBJS) $(TWOBJS) $(EDOBJS) $(TCOBJS) ALLSRCS= $(MISCF) $(SRCS) $(EXTF) AllTarget(tcsh) ed.defns.h: config.h ed.defns.c @rm -f $@ @echo '/* Do not edit this file, make creates it. */' > $@ @echo '#ifndef _h_ed_defns' >> $@ @echo '#define _h_ed_defns' >> $@ egrep '[FV]_' ed.defns.c | egrep '^#define' >> $@ @echo '#endif /* _h_ed_defns */' >> $@ sh.err.h: config.h sh.err.c @rm -f $@ @echo '/* Do not edit this file, make creates it. */' > $@ @echo '#ifndef _h_sh_err' >> $@ @echo '#define _h_sh_err' >> $@ egrep 'ERR_' sh.err.c | egrep '^#define' >> $@ @echo '#endif /* _h_sh_err */' >> $@ tc.const.h: config.h tc.const.c @rm -f $@ @echo '/* Do not edit this file, make creates it. */' > $@ @echo '#ifndef _h_tc_const' >> $@ @echo '#define _h_tc_const' >> $@ ${CC} -E $(INCLUDES) ${DEFINES} -D_h_tc_const tc.const.c | \ grep 'Char STR' | \ sed -e 's/Char \([a-zA-Z0-9_]*\)\[\].*/extern Char \1[];/' | \ sort >> $@ @echo '#endif /* _h_tc_const */' >> $@ config.h: config_f.h cp config/ConfigH config.h $(OBJS): sh.err.h tc.const.h ed.defns.h tar.Z: rm -f tcsh-${VERSION}.tar.Z rm -rf tcsh-${VERSION} mkdir tcsh-${VERSION} tcsh-${VERSION}/config cp ${ALLSRCS} tcsh-${VERSION} cp ${CONFSRCS} tcsh-${VERSION}/config tar cf - nls/Makefile nls/?*/set?* | (cd tcsh-${VERSION}; tar xpf -) tar cvf - tcsh-${VERSION} | compress > tcsh-${VERSION}.tar.Z rm -rf tcsh-${VERSION} tar.gz: rm -f tcsh-${VERSION}.tar.gz rm -rf tcsh-${VERSION} mkdir tcsh-${VERSION} tcsh-${VERSION}/config cp ${ALLSRCS} tcsh-${VERSION} cp ${CONFSRCS} tcsh-${VERSION}/config tar cf - nls/Makefile nls/?*/set?* | (cd tcsh-${VERSION}; tar xpf -) tar cvf - tcsh-${VERSION} | gzip > tcsh-${VERSION}.tar.gz rm -rf tcsh-${VERSION} shar: rm -f tcsh-*.shar rm -rf tcsh-${VERSION} mkdir tcsh-${VERSION} tcsh-${VERSION}/config cp ${ALLSRCS} tcsh-${VERSION} cp ${CONFSRCS} tcsh-${VERSION}/config tar cf - nls/Makefile nls/?*/set?* | (cd tcsh-${VERSION}; tar xpf -) MAKESHAR -v -n tcsh-${VERSION} tcsh-${VERSION} \ tcsh-${VERSION}/?* tcsh-${VERSION}/config/?* \ tcsh-${VERSION}/?*/set?* rm -rf tcsh-${VERSION} catalogs: @(cd nls; make catalogs) world: $(MAKE) clean ; $(MAKE) depend ; $(MAKE) tcsh ; $(MAKE) install clean:: rm -f ed.defns.h sh.err.h tc.const.h config.h tc.defs.* rm -f tcsh.*.m tcsh.*.cat depend:: config.h ed.defns.h sh.err.h tc.const.h $(SRCS) tc.defs.c tc.defs.${SUF}: tc.defs.c sh.h tc.defs.c: gethost host.defs @rm -f $@ @echo "/* Do not edit this file, make creates it */" > $@ ./gethost host.defs >> $@ ALIB=$(HESLIB) $(AFSLIB) $(SYSLIBS) AINC=ed.defns.h sh.err.h tc.const.h sh.h NormalProgramTarget(tcsh, $(OBJS), $(AINC), $(LOCALLIBS), $(ALIB)) NormalProgramTarget(gethost, gethost.${SUF}, $(AINC), $(LOCALLIBS), $(ALIB)) InstallProgram(tcsh,$(TCSH_BINDIR)) InstallManPage(tcsh,$(TCSH_MANDIR)) DependTarget() Index: head/contrib/tcsh/Makefile.in =================================================================== --- head/contrib/tcsh/Makefile.in (revision 131962) +++ head/contrib/tcsh/Makefile.in (revision 131963) @@ -1,640 +1,654 @@ -# $Id: Makefile.in,v 3.19 2002/07/23 16:13:21 christos Exp $ +# $Id: Makefile.in,v 3.20 2003/03/12 19:14:50 christos Exp $ # Makefile.in 4.3 6/11/83 # # C Shell with process control; VM/UNIX VAX Makefile # Bill Joy UC Berkeley; Jim Kulp IIASA, Austria # # With an input editor, command completion, etc. and ported to all sorts of # things; Paul Placeway, CIS Dept., Ohio State University # SHELL=/bin/sh VERSION=6.12 -BUILD=tcsh +BUILD=tcsh$(EXEEXT) VPATH=@srcdir@ srcdir=@srcdir@ ################################################################ ## CFLAGS. For various -D things, see config.h ################################################################ # # These are the default suffixes from .c to .o and -c to get there # but to use the global optimizer on the mips boxes, see below # SUF=o CF=-c CPPFLAGS=-I. -I$(srcdir) LFLAGS= #LFLAGS= -Zn10000 # hpux lint CFLAGS = @CFLAGS@ # This is set by autoconf. #CFLAGS= -g # debug #CFLAGS= -O # production #CFLAGS= # Broken optimizers.... #CFLAGS= -g -pg -DPROF #CFLAGS= -O -pg -DPROF # gcc 1.00-1.37 #CFLAGS= -O -finline-functions -fstrength-reduce # gcc 1.37-1.40 #CFLAGS= -O -fcombine-regs -finline-functions -fstrength-reduce # add -msoft-float for 68881 machines. # gcc 2.0 # On the sparc, don't use -O2; it breaks setjmp() and vfork() #CFLAGS= -O # gcc-2.1+ #CFLAGS= -O2 # lucid c on suns #CFLAGS= -O5 # gcc 2.1 on linux #CFLAGS= -O6 -fomit-frame-pointer # HP/UX 8.0, 9.0 #CFLAGS= +O3 -Aa # Ultrix 4.2a #CFLAGS= -O -Olimit 2000 # Intel Paragon OSF/1 with PGI compilers #CFLAGS= -O -Mnodebug -Mnoperfmon # DEC Alpha OSF/1 #CFLAGS= -O2 -Olimit 2000 ## Normal Optimization #CFLAGS= -O3 -Olimit 2000 ## Full Optimization - may not work #CF=-j #SUF=u #.SUFFIXES: .u # for silicon graphics (and other mips compilers) -- use the # global optimizer! (-O3). # On SGI 4.0+ you need to add -D__STDC__ too. #CFLAGS= -O3 #CFLAGS= -O3 -Olimit 2000 ## Ultrix 4.2a #CF=-j #SUF=u #.SUFFIXES: .u ## Ultrix and gnu-make need that # mips systems # CFLAGS= -O -systype bsd43 -Wf,-XNd5000 -Wf,-XNp6000 -Olimit 2000 # for at&t machines #CFLAGS= -O -Ksd # Stardent Titan #CFLAGS = -O -43 # Stardent Stellar or sunos4 /bin/cc or Solaris2.1 /opt/SUNWspro/bin/cc #CFLAGS = -O4 # Intergraph clipper CLIX 3.1 #CFLAGS= -w -O2 # Dnix 5.3 #CFLAGS = -O -X7 # Pyramid OS/x #CFLAGS = -OG # Multiflow (5M binary... if you choose -O5!) #CFLAGS = -O5 -sb_trace 0 # DDE Supermax Unix SYSV Rel III. # CFLAGS= -O3 # SINIX RMx00 #CFLAGS= -O # -D_POSIX_SOURCE # -kansi # Apollo's with cc [apollo builtins don't work with gcc] # and apollo should not define __STDC__ if it does not have # the standard header files. RT's (aos4.3) need that too; # you might want to skip the -O on the rt's... Not very wise. # AIX/ESA needs -D_IBMESA on command line (this may disappear by GA) #DFLAGS=-U__STDC__ #DFLAGS=-D_IBMESA # On aix2.2.1 we need more compiler space. #DFLAGS=-Nd4000 -Nn3000 # AU/X 2.0 needs a flag for POSIX (read the config file) #DFLAGS=-Zp # Tektronix 4300 running UTek 4.0 (BSD 4.2) needs: #DFLAGS = -DUTek -DBSD # VMS_POSIX needs: #DFLAGS=-D_VMS_POSIX # Multiflow and PCC compilers don't like void typedefs. # You may also need -U__STDC__ if you use pcc (i.e. ibmrt aos4.3). #DFLAGS=-DMULTIFLOW #DFLAGS=-DPCC # DELL SVR4 #DFLAGS=-DDELL #DFLAGS= #DFLAGS=-D_PATH_TCSHELL='"${DESTBIN}/tcsh"' ## The following is set by autoconf. -DFLAGS = -D_PATH_TCSHELL='"${DESTBIN}/tcsh"' @DFLAGS@ @CPPFLAGS@ +DFLAGS = -D_PATH_TCSHELL='"${bindir}/tcsh"' @DFLAGS@ @CPPFLAGS@ ################################################################ ## LDFLAGS. Define something here if you need to ################################################################ LDFLAGS= @LDFLAGS@ ## This is set by autoconf. #LDFLAGS= ## The simplest, suitable for all. #LDFLAGS= -s ## Stripped. Takes less space on disk. #LDFLAGS= -s -n ## Pure executable. Spares paging over # ## the network for machines with local # ## swap but external /usr/local/bin . #LDFLAGS= -s -n -Bstatic ## Without dynamic linking. (SunOS/cc) #LDFLAGS= -s -n -static ## Without dynamic linking. (SunOS/gcc) #LDFLAGS= -Wl,-s,-n ## Stripped, shared text (Unicos) #LDFLAGS= -s -static ## Link statically. (linux) #LDFLAGS= -s -N ## Impure executable (linux) ################################################################ ## SBINLDFLAGS. Flags to build a tcsh suitable for installation in ## in /sbin under Solaris with gcc. See the "tcsh.sbin" ## target. ################################################################ SBINLDFLAGS=-Wl,-R/etc/lib,-I/etc/lib/ld.so.1,-ldl,-Bstatic ################################################################ ## LIBES. Pick one, or roll your own. ################################################################ LIBES= @LIBS@ ## This is set by autoconf. #LIBES= -ltermcap ## BSD style things #LIBES= -ltermcap ## SunOS, HP-UX, pyramid #LIBES= -ltermcap ## Linux #LIBES= -ltermcap -lshadow ## Linux with PW_SHADOW #LIBES= -ltermcap -lsec ## Tek XD88/10 (UTekV) with PW_SHADOW #LIBES= -ltermcap -lsec ## Motorola MPC (sysV88) with PW_SHADOW #LIBES= -ltermcap -lcs ## Mach #LIBES= -ltermcap -lbsd ## DEC osf1 on the alpha #LIBES= -ltermcap -lbsd ## Intel paragon #LIBES= -ltermcap -lbsd ## Clipper intergraph #LIBES= -ltermcap -lseq ## Sequent's Dynix #LIBES= -ltermcap -lauth ## Ultrix with Enhanced Security #LIBES= -ltermcap -ldir -lx ## Xenix 386 style things #LIBES= -ltermcap -lndir -lsocket -ljobs ## masscomp RTU6.0 #LIBES= -lcurses ## AIX on the rt #LIBES= -lcurses ## TitanOS on the stellar #LIBES= -ltermlib -lsocket -lnsl ## SysV4 w/o BSDTIMES or Solaris 2 #LIBES= -lcurses ## SysV3 w/o networking #LIBES= -lcurses -lnet ## SysV3 with networking #LIBES= -lcurses -ldir ## SysV2 w/o networking & dirlib #LIBES= -lcurses -ldir -lnet ## SysV2 with networking & dirlib #LIBES= -lcurses -lbsd ## AIX on the IBM 370 or rs6000 or ps2 #LIBES= -lcurses -lbsd ## ETA10 #LIBES= -lcurses -lbsd ## Irix3.1 on the SGI-IRIS4D #LIBES= -lcurses -lbsd -lc_s ## Irix3.3 on the SGI-IRIS4D w/o yp #LIBES= -lcurses -lsun -lbsd -lc_s ## Irix3.3 on the SGI-IRIS4D with yp #LIBES= -lcurses -lsocket -lbsd ## Amdahl UTS 2.1 #LIBES= -lcurses -lsocket ## Intel's hypercube. #LIBES= -lcurses -lsocket ## ns32000 based Opus. #LIBES= -lcurses -lcposix ## ISC 2.2 without networking #LIBES= -lcposix -lc_s -lcurses -linet ## ISC 2.2 with networking #LIBES= -lcurses -lsec -lc_s ## ISC 2.0.2 without networking #LIBES= -lcurses -linet -lsec -lc_s ## ISC 2.0.2 with networking #LIBES= -lcurses -lintl -lcrypt ## SCO SysVR3.2v2.0 #LIBES= -lcurses -lintl -lsocket -lcrypt ## SCO+ODT1.1 #LIBES= -lposix -ltermcap ## A/UX 2.0 #LIBES= -lposix -ltermcap -lc_s ## A/UX 3.0 #LIBES= -ldirent -lcurses ## att3b1 cc w/o shared lib & dirlib #LIBES= -shlib -ldirent -lcurses ## att3b1 gcc with shared lib & dirlib #LIBES= -ltermlib -lsocket -lnsl -lc /usr/ucblib/libucb.a ## SysV4 with BSDTIMES #LIBES= -lcurses -lnsl -lsocket -lc /usr/ucblib/libucb.a ## Stardent Vistra #LIBES= -ltermc ## emx under OS/2 #LIBES= ## Minix, VMS_POSIX #LIBES= -ltermcap -lcrypt ## Multiflow #LIBES= -ltermcap -lcrypt ## NetBSD #LIBES= -lcurses ## DDE Supermax ################################################################ ## EXTRAFLAGS and EXTRALIBS ################################################################ # Compiling for AFS with kerberos authentication #AFSLIBDIR = /usr/afsws/lib #AFSDEF = -DAFS -I/usr/afsws/include #AFS33LIB = -laudit # #Solaris and HPUX require the BSD libraries with AFS. #We use -lc to use only what we require. #AFSAUXLIB = -lsocket -lnsl -lc -lucb # Solaris #AFSAUXLIB = -lc -lBSD # HPUX # #AFSLIB = -L$(AFSLIBDIR) -L$(AFSLIBDIR)/afs -lkauth -lprot -lubik\ # -lauth -lrxkad -lsys -ldes -lrx -llwp -lcom_err\ # $(AFSLIBDIR)/afs/util.a $(AFS33LIB) $(AFSAUXLIB) # EXTRAFLAGS = @HESDEF@ $(AFSDEF) EXTRALIBS = @HESLIB@ $(AFSLIB) # The difficult choice of a c-compiler... # First, you should try your own c-compiler. # Gcc -traditional is also a safe choice. # If you think that you have good include files try gcc -Wall... # If you want to take out -traditional, make sure that your sys/ioctl.h # is fixed correctly, otherwise you'll be stopped for tty input, or you # will lose the editor and job control. # This is for setting your C preprocessor value. CPP = @CPP@ # This is set by autoconf. # The -B tells gcc to use /bin/ld. This is to avoid using the gnu ld, which # on the suns does not know how to make dynamically linked binaries. CC = @CC@ # This is set by autoconf. #CC= gcc -Wall -Wmissing-prototypes -Wstrict-prototypes -Wpointer-arith -Werror #CC= gcc -Wall -pipe -B/bin/ # -ansi -pedantic #CC= gcc -m486 -pipe -Wall # Generate code for Intel 486 (linux) #CC= shlicc # BSDI2.1 w/ shared libraries #CC= cc #CC= occ #CC= acc #CC= pcc #CC= hc -w #CC= c89 # For VMS/POSIX #CC= /bin/cc # For suns, w/o gcc and SVR4 #CC= /usr/lib/sun.compile/cc # FPS 500 (+FPX) with Sun C compiler #CC= /opt/SUNWspro/bin/cc # Solaris 2.1 #CC= scc # Alliant fx2800 #CC= cc -h0,ansi,novector,float0 # for NEC SX-4 #CC= lcc -wa ED= ed AS= as RM= rm CXREF= /usr/ucb/cxref VGRIND= csh /usr/ucb/vgrind CTAGS= /usr/ucb/ctags #XSTR= /usr/ucb/xstr SCCS= /usr/local/sccs PARALLEL=12 # Make the multi-max run fast. #P=& # Use Sequent's parallel make P= prefix=@prefix@ exec_prefix=@exec_prefix@ bindir=@bindir@ mandir=@mandir@ MANSECT=1 DESTBIN=${DESTDIR}${bindir} DESTMAN=${DESTDIR}${mandir}/man${MANSECT} # DESTMAN=${DESTDIR}/catman/man${MANSECT} # A/UX # DESTMAN=${DESTDIR}/usr/share/man/man${MANSECT} # Stardent Vistra (SysVR4) # DESTMAN=/usr/catman/1l # Amiga unix (SysVR4) +EXEEXT=@EXEEXT@ FTPAREA=/usr/spool/ftp ASSRCS= sh.c sh.dir.c sh.dol.c sh.err.c sh.exec.c sh.char.c \ sh.exp.c sh.file.c sh.func.c sh.glob.c sh.hist.c sh.init.c \ sh.lex.c sh.misc.c sh.parse.c sh.print.c sh.proc.c sh.sem.c \ sh.set.c sh.time.c sh.char.h sh.dir.h sh.proc.h sh.h \ tw.color.c PSSRCS= sh.decls.h glob.c glob.h mi.termios.c mi.wait.h mi.varargs.h ma.setp.c \ vms.termcap.c SHSRCS= ${ASSRCS} ${PSSRCS} SHOBJS= sh.${SUF} sh.dir.${SUF} sh.dol.${SUF} sh.err.${SUF} sh.exec.${SUF} \ sh.char.${SUF} sh.exp.${SUF} sh.file.${SUF} sh.func.${SUF} \ sh.glob.${SUF} sh.hist.${SUF} sh.init.${SUF} sh.lex.${SUF} \ sh.misc.${SUF} sh.parse.${SUF} sh.print.${SUF} sh.proc.${SUF} \ sh.sem.${SUF} sh.set.${SUF} sh.time.${SUF} glob.${SUF} \ mi.termios.${SUF} ma.setp.${SUF} vms.termcap.${SUF} TWSRCS= tw.decls.h tw.h tw.help.c tw.init.c tw.parse.c tw.spell.c \ tw.comp.c tw.color.c TWOBJS= tw.help.${SUF} tw.init.${SUF} tw.parse.${SUF} tw.spell.${SUF} \ tw.comp.${SUF} tw.color.${SUF} EDSRCS= ed.chared.c ed.decls.h ed.defns.c ed.h ed.init.c ed.inputl.c \ ed.refresh.c ed.screen.c ed.xmap.c ed.term.c ed.term.h EDOBJS= ed.chared.${SUF} ed.refresh.${SUF} ed.screen.${SUF} ed.init.${SUF} \ ed.inputl.${SUF} ed.defns.${SUF} ed.xmap.${SUF} ed.term.${SUF} TCSRCS= tc.alloc.c tc.bind.c tc.const.c tc.decls.h tc.disc.c \ tc.func.c tc.os.c tc.os.h tc.printf.c tc.prompt.c \ tc.sched.c tc.sig.c tc.sig.h tc.str.c sh.types.h tc.vers.c tc.wait.h \ tc.who.c tc.h TCOBJS= tc.alloc.${SUF} tc.bind.${SUF} tc.const.${SUF} tc.defs.${SUF} \ tc.disc.${SUF} tc.func.${SUF} tc.os.${SUF} tc.printf.${SUF} \ tc.prompt.${SUF} tc.sched.${SUF} tc.sig.${SUF} tc.str.${SUF} \ tc.vers.${SUF} tc.who.${SUF} PVSRCS= Makefile.std Makefile.vms Makefile.in Makefile.win32 AVSRCS= Fixes MAKEDIFFS MAKESHAR NewThings README FAQ \ WishList config_f.h eight-bit.me glob.3 patchlevel.h \ pathnames.h tcsh.man Ported src.desc Imakefile imake.config \ README.imake complete.tcsh vmsreadme.txt termcap.vms snames.h \ host.defs gethost.c tcsh.man2html configure.in configure config.h.in VHSRCS=${PVSRCS} ${AVSRCS} CONFSRCS=config/* ALLSRCS= ${SHSRCS} ${TWSRCS} ${EDSRCS} ${TCSRCS} ${VHSRCS} DISTSRCS= ${PSSRCS} ${TWSRCS} ${EDSRCS} ${TCSRCS} ${AVSRCS} OBJS= ${SHOBJS} ${TWOBJS} ${EDOBJS} ${TCOBJS} all: ${BUILD} -tcsh:$(P) ${OBJS} - rm -f tcsh core - ${CC} -o tcsh ${LDFLAGS} ${CFLAGS} ${CPPFLAGS} ${OBJS} ${LIBES} ${EXTRALIBS} +tcsh$(EXEEXT):$(P) ${OBJS} + rm -f tcsh$(EXEEXT) core + ${CC} -o tcsh$(EXEEXT) ${LDFLAGS} ${CFLAGS} ${CPPFLAGS} ${OBJS} ${LIBES} ${EXTRALIBS} tcsh.sbin:$(P) ${OBJS} rm -f tcsh.sbin core ${CC} -o tcsh.sbin ${SBINLDFLAGS} ${LDFLAGS} ${CFLAGS} ${CPPFLAGS} ${OBJS} ${LIBES} ${EXTRALIBS} # Purify pure:$(P) ${OBJS} - rm -f tcsh core - purify `echo ${CC} | sed -e s,-B/bin/,,` -o tcsh ${LDFLAGS} ${CFLAGS} ${CPPFLAGS} ${OBJS} ${LIBES} ${EXTRALIBS} + rm -f tcsh$(EXEEXT) core + purify `echo ${CC} | sed -e s,-B/bin/,,` -o tcsh$(EXEEXT) ${LDFLAGS} ${CFLAGS} ${CPPFLAGS} ${OBJS} ${LIBES} ${EXTRALIBS} # OS/2 -tcsh.exe: tcsh - emxbind tcsh +#tcsh.exe: tcsh +# emxbind tcsh gethost: gethost.c sh.err.h tc.const.h sh.h rm -f gethost ${CC} -o gethost ${LDFLAGS} ${CFLAGS} ${CPPFLAGS} ${DFLAGS} $(srcdir)/gethost.c ${LIBES} ${EXTRALIBS} tc.defs.c: gethost host.defs @rm -f $@ @echo "/* Do not edit this file, make creates it */" > $@ ./gethost $(srcdir)/host.defs >> $@ tcsh.ps: tcsh.man rm -f tcsh.ps -ptroff -t -man $(srcdir)/tcsh.man > tcsh.ps .c.${SUF}: ${CC} ${CF} ${CFLAGS} ${CPPFLAGS} ${DFLAGS} ${EXTRAFLAGS} $< # _VMS_POSIX #module addition #.c.${SUF}: # @(echo '#module '`echo $< | sed -e 's/\./_/g'`; cat $<) > $*..c # @echo ${CC} ${CF} ${CFLAGS} ${CPPFLAGS} ${DFLAGS} ${EXTRAFLAGS} $*.c # @${CC} ${CF} ${CFLAGS} ${CPPFLAGS} ${DFLAGS} ${EXTRAFLAGS} $*..c # @mv $*..o $*.o # @rm -f $*..c # Don't do any special massaging of C files for sharing of strings!! # it causes weird segmentation faults on some systems. #.c.o: # ${CPP} ${CFLAGS} ${CPPFLAGS} $*.c | ${XSTR} -c - # ${CC} ${CF} ${CFLAGS} ${CPPFLAGS} x.c # mv -f x.o $*.o # rm -f x.c #ed.init.o: ed.init.c # ${CPP} ${CFLAGS} ${CPPFLAGS} $*.c | ${XSTR} -c - # ${CC} -R ${CF} ${CFLAGS} ${CPPFLAGS} x.c # mv -f x.o $*.o # rm -f x.c #strings.o: strings # ${XSTR} # ${CC} -c -R xs.c # mv -f xs.o strings.o # rm -f xs.c ##.DEFAULT: ## ${SCCS} get $< ##.DEFAULT: ## co $< ed.defns.h: ed.defns.c @rm -f $@ @echo '/* Do not edit this file, make creates it. */' > $@ @echo '#ifndef _h_ed_defns' >> $@ @echo '#define _h_ed_defns' >> $@ grep '[FV]_' $(srcdir)/ed.defns.c | grep '^#define' >> $@ @echo '#endif /* _h_ed_defns */' >> $@ sh.err.h: sh.err.c @rm -f $@ @echo '/* Do not edit this file, make creates it. */' > $@ @echo '#ifndef _h_sh_err' >> $@ @echo '#define _h_sh_err' >> $@ grep 'ERR_' $(srcdir)/sh.err.c | grep '^#define' >> $@ @echo '#endif /* _h_sh_err */' >> $@ tc.const.h: tc.const.c sh.char.h config.h config_f.h sh.types.h sh.err.h @rm -f $@ @echo '/* Do not edit this file, make creates it. */' > $@ @echo '#ifndef _h_tc_const' >> $@ @echo '#define _h_tc_const' >> $@ ${CPP} $(CPPFLAGS) ${DFLAGS} ${EXTRAFLAGS} -D_h_tc_const\ $(srcdir)/tc.const.c | grep 'Char STR' | \ sed -e 's/Char \([a-zA-Z0-9_]*\) *\[ *\].*/extern Char \1[];/' | \ sort >> $@ @echo '#endif /* _h_tc_const */' >> $@ csh.prof: ${OBJS} sh.prof.${SUF} mcrt0.${SUF} rm -f csh.prof ld -X mcrt0.${SUF} ${OBJS} -o csh.prof ${LIBES} -lc sh.prof.${SUF}: cp sh.c sh.prof.c ${CC} ${CF} ${CFLAGS} ${CPPFLAGS} -DPROF sh.prof.c lint: tc.const.h ed.defns.h lint ${DFLAGS} ${CPPFLAGS} ${LFLAGS} sh*.c tw*.c ed*.c tc.*.c ${LIBES} alint: tc.const.h ed.defns.h alint ${DFLAGS} ${CPPFLAGS} ${LFLAGS} sh*.c tw*.c ed*.c tc.*.c ${LIBES} print: @pr READ_ME @pr makefile makefile.* @(size -l a.out; size *.${SUF}) | pr -h SIZES @${CXREF} sh*.c | pr -h XREF @ls -l | pr @pr sh*.h [a-rt-z]*.h sh*.c alloc.c vprint: @pr -l84 READ_ME TODO @pr -l84 makefile makefile.* @(size -l a.out; size *.${SUF}) | pr -l84 -h SIZES @${CXREF} sh*.c | pr -l84 -h XREF @ls -l | pr -l84 @${CXREF} sh*.c | pr -l84 -h XREF @pr -l84 sh*.h [a-rt-z]*.h sh*.c alloc.c vgrind: @cp /dev/null index @for i in *.h; do vgrind -t -h "C Shell" $$i >/crp/bill/csh/$$i.t; done @for i in *.c; do vgrind -t -h "C Shell" $$i >/crp/bill/csh/$$i.t; done @vgrind -t -x -h Index index >/crp/bill/csh/index.t install-strip: install -install: tcsh +install: tcsh$(EXEEXT) -mkdir -p ${DESTBIN} - -mv -f ${DESTBIN}/tcsh ${DESTBIN}/tcsh.old - cp tcsh ${DESTBIN}/tcsh - -strip ${DESTBIN}/tcsh - chmod 555 ${DESTBIN}/tcsh + -mv -f ${DESTBIN}/tcsh$(EXEEXT) ${DESTBIN}/tcsh.old + cp tcsh$(EXEEXT) ${DESTBIN}/tcsh$(EXEEXT) + -strip ${DESTBIN}/tcsh$(EXEEXT) + chmod 755 ${DESTBIN}/tcsh$(EXEEXT) install.man: tcsh.man -mkdir -p ${DESTMAN} -rm -f ${DESTMAN}/tcsh.${MANSECT} cp $(srcdir)/tcsh.man ${DESTMAN}/tcsh.${MANSECT} chmod 444 ${DESTMAN}/tcsh.${MANSECT} +install.cygwin: install install.man + -mkdir -p ${DESTDIR}${prefix}/doc/tcsh + cp ${srcdir}/FAQ ${srcdir}/Fixes ${DESTDIR}${prefix}/doc/tcsh + cp ${srcdir}/NewThings ${srcdir}/README ${DESTDIR}${prefix}/doc/tcsh + cp ${srcdir}/WishList ${srcdir}/Y2K ${DESTDIR}${prefix}/doc/tcsh + perl ${srcdir}/tcsh.man2html ${srcdir}/tcsh.man + cp -rp tcsh.html ${DESTDIR}${prefix}/doc/tcsh + -mkdir -p ${DESTDIR}/etc/profile.d + -mkdir -p ${DESTDIR}/etc/postinstall + cp -p ${srcdir}/cygwin/etc/csh.* ${DESTDIR}/etc + cp -p ${srcdir}/cygwin/etc/profile.d/*.tcsh ${DESTDIR}/etc/profile.d + cp -p ${srcdir}/cygwin/etc/postinstall/tcsh.sh ${DESTDIR}/etc/postinstall + # Amiga Unix #install.man: tcsh.man # compress tcsh.man # cp tcsh.man.Z ${DESTMAN}/tcsh.Z # chmod 444 ${DESTMAN}/tcsh.Z # Apple A/UX #install.man: tcsh.man # -rm -f ${DESTMAN}/tcsh.${MANSECT}.Z # nroff -man tcsh.man | compress > ${DESTMAN}/tcsh.${MANSECT}.Z # chmod 444 ${DESTMAN}/tcsh.${MANSECT}.Z clean: - ${RM} -f a.out strings x.c xs.c tcsh tcsh.a _MAKE_LOG core gethost + ${RM} -f a.out strings x.c xs.c tcsh$(EXEEXT) tcsh.a _MAKE_LOG core gethost ${RM} -f *.${SUF} sh.prof.c ed.defns.h tc.const.h sh.err.h tc.defs.c ${RM} -f tcsh.*.m tcsh.*.cat veryclean: clean ${RM} -f config.h config.status config.cache config.log Makefile tcsh.ps ${RM} -f *~ #* distclean: veryclean tags: /tmp ${CTAGS} sh*.c tar.Z: rm -f tcsh-${VERSION}.tar.Z rm -rf tcsh-${VERSION} -mkdir tcsh-${VERSION} tcsh-${VERSION}/config cp ${ALLSRCS} tcsh-${VERSION} cp ${CONFSRCS} tcsh-${VERSION}/config tar cf - nls/Makefile nls/?*/set?* | (cd tcsh-${VERSION}; tar xpf -) tar cvf - tcsh-${VERSION} | compress > tcsh-${VERSION}.tar.Z rm -rf tcsh-${VERSION} tar.gz: rm -f tcsh-${VERSION}.tar.gz rm -rf tcsh-${VERSION} -mkdir tcsh-${VERSION} tcsh-${VERSION}/config cp ${ALLSRCS} tcsh-${VERSION} cp ${CONFSRCS} tcsh-${VERSION}/config tar cf - nls/Makefile nls/?*/set?* | (cd tcsh-${VERSION}; tar xpf -) tar cvf - tcsh-${VERSION} | gzip > tcsh-${VERSION}.tar.gz rm -rf tcsh-${VERSION} shar: rm -f tcsh-*.shar rm -rf tcsh-${VERSION} -mkdir tcsh-${VERSION} tcsh-${VERSION}/config cp ${ALLSRCS} tcsh-${VERSION} cp ${CONFSRCS} tcsh-${VERSION}/config tar cf - nls/Makefile nls/?*/set?* | (cd tcsh-${VERSION}; tar xpf -) MAKESHAR -v -n tcsh-${VERSION} tcsh-${VERSION} \ tcsh-${VERSION}/?* tcsh-${VERSION}/config/?* \ tcsh-${VERSION}/?*/set?* rm -rf tcsh-${VERSION} catalogs: @(cd nls; make catalogs) tcsh-${VERSION}.tar.Z: rm -rf tcsh-${VERSION} rm -f tcsh-${VERSION}.tar tcsh-${VERSION}.tar.Z DIFFS.[123] -mkdir tcsh-${VERSION} ./MAKEDIFFS bsd mv DIFFS.1 DIFFS.2 DIFFS.3 tcsh-${VERSION} cp ${DISTSRCS} tcsh-${VERSION} -mkdir tcsh-${VERSION}/config cp ${CONFSRCS} tcsh-${VERSION}/config cp Makefile tcsh-${VERSION}/Makefile.new tar cf - nls/Makefile nls/?*/set?* | (cd tcsh-${VERSION}; tar xpf -) tar cvf - tcsh-${VERSION} | compress > tcsh-${VERSION}.tar.Z rm -rf tcsh-${VERSION} tcsh.tahoe-${VERSION}.tar.Z: rm -rf tcsh.tahoe-${VERSION} rm -f tcsh.tahoe-${VERSION}.tar tcsh.tahoe-${VERSION}.tar.Z DIFFS.[123] -mkdir tcsh.tahoe-${VERSION} ./MAKEDIFFS tahoe mv DIFFS.1 DIFFS.2 DIFFS.3 tcsh.tahoe-${VERSION} cp ${DISTSRCS} tcsh.tahoe-${VERSION} -mkdir tcsh.tahoe-${VERSION}/config cp ${CONFSRCS} tcsh.tahoe-${VERSION}/config cp Makefile tcsh.tahoe-${VERSION}/Makefile.new tar cf - nls/Makefile nls/?*/set?* | (cd tcsh-${VERSION}; tar xpf -) tar cvf - tcsh.tahoe-${VERSION} | compress > tcsh.tahoe-${VERSION}.tar.Z rm -rf tcsh.tahoe-${VERSION} tcsh.reno-${VERSION}.tar.Z: rm -rf tcsh.reno-${VERSION} rm -f tcsh.reno-${VERSION}.tar tcsh.reno-${VERSION}.tar.Z DIFFS.[123] -mkdir tcsh.reno-${VERSION} ./MAKEDIFFS reno mv DIFFS.1 DIFFS.2 DIFFS.3 tcsh.reno-${VERSION} cp ${DISTSRCS} tcsh.reno-${VERSION} -mkdir tcsh.reno-${VERSION}/config cp ${CONFSRCS} tcsh.reno-${VERSION}/config cp Makefile tcsh.reno-${VERSION}/Makefile.new tar cf - nls/Makefile nls/?*/set?* | (cd tcsh-${VERSION}; tar xpf -) tar cvf - tcsh.reno-${VERSION} | compress > tcsh.reno-${VERSION}.tar.Z rm -rf tcsh.reno-${VERSION} ftp: tcsh-${VERSION}.tar.Z tcsh.tahoe-${VERSION}.tar.Z cp tcsh-${VERSION}.tar.Z tcsh.tahoe-${VERSION}.tar.Z ${FTPAREA} cp tcsh.man ${FTPAREA} autoconfigure: $(srcdir)/configure $(srcdir)/config.h.in $(srcdir)/configure: $(srcdir)/configure.in cd $(srcdir) && autoconf $(srcdir)/config.h.in: $(srcdir)/stamp-h.in $(srcdir)/stamp-h.in: $(srcdir)/configure.in cd $(srcdir) && autoheader @echo timestamp > $(srcdir)/stamp-h.in # # Dependencies # config.h: config_f.h TCH=tc.h tc.const.h tc.decls.h tc.os.h tc.sig.h SHH=sh.h sh.types.h sh.char.h sh.err.h sh.dir.h sh.proc.h pathnames.h \ sh.decls.h ${TCH} TWH=tw.h tw.decls.h EDH=ed.h ed.decls.h # EDH EDINC=sh.${SUF} sh.func.${SUF} sh.lex.${SUF} sh.print.${SUF} sh.proc.${SUF} \ sh.set.${SUF} tc.bind.${SUF} tc.os.${SUF} tc.prompt.${SUF} \ tc.sched.${SUF} tw.parse.${SUF} tw.color.${SUF} ${EDOBJS} ${EDINC} : ${EDH} # SHH ${OBJS}: config.h ${SHH} # TWH TWINC=ed.chared.${SUF} ed.inputl.${SUF} sh.exec.${SUF} sh.func.${SUF} \ sh.set.${SUF} tc.func.${SUF} tw.color.${SUF} ${TWOBJS} ${TWINC}: ${TWH} # glob.h glob.${SUF} sh.glob.${SUF}: glob.h # ed.defns.h EDDINC=tc.bind.${SUF} tc.func.${SUF} tc.os.${SUF} ${EDOBJS} ${EDDINC}: ed.defns.h # tc.defs.o tc.defs.${SUF}: tc.defs.c sh.h Index: head/contrib/tcsh/README =================================================================== --- head/contrib/tcsh/README (revision 131962) +++ head/contrib/tcsh/README (revision 131963) @@ -1,210 +1,210 @@ This is tcsh version 6.12. Tcsh is a version of the Berkeley C-Shell, with the addition of: a command line editor, command and file name completion, listing, etc. and a bunch of small additions to the shell itself. Tcsh has been ported to most unix variants, and can be tinkered to work in unix systems that it has not ported yet. See the Ported file for a more complete list of ported systems and in the config directory for a configuration file that matches your system. Tcsh also runs under VMS/POSIX and OS/2+emx; the OS/2 port is not complete yet. Feel free to use it. These changes to csh may only be included in a commercial product if the inclusion or exclusion does not change the purchase price, level of support, etc. Please respect the individual authors by giving credit where credit is due (in other words, don't claim that you wrote portions that you haven't, and don't delete the names of the authors from the source code or documentation). To install tcsh: 0) Try running "configure". If that works, goto step 6. If you are using imake, try xmkmf and goto step 3. If imake does not work, copy Makefile.std to Makefile. 1) Look at the Makefile and make sure that you are using the right compilation flags. 2) Copy the appropriate for your machine and OS config file from the config subdirectory into config.h. Consult the file "Ported" for settings known to work on various machines. If you are trying to compile tcsh on a machine for which there is no config file yet, you will need to create a config file using as a template one of the supplied ones. If you get tcsh working on a new machine, I'd appreciate a copy of the config file plus additional information about the architecture/OS. If you are creating a new config file, look very hard at BSDJOBS, BSDSIGS, and BSDTIMES if you are running a non-BSD machine. For vanila SysV, these would all be #undef-ed, but others may vary (such as A/UX or HPUX). On a pyramid, compile in the UCB universe even if you are running under the ATT universe usually; it will work anyway, and you get job control for free. 3) Look at config_f.h, and enable or disable any features you want. It is configured the way I like it, but you may disagree. If you do not have NLS, then locale.h will not be found. Undefine it and things should work ok. On the other hand, if you have NLS you might as well use it... 4) Look at host.defs to make sure that you have the right defines to set the environment variables "HOSTTYPE", "MACHTYPE", "OSTYPE" and "VENDOR" correctly. If you need to make changes, PLEASE SEND THEM BACK TO ME. 5) You may want to adjust the TCSH_BINDIR and TCSH_MANDIR entries in the Makefile. These are the directories that tcsh, and the tcsh.1 man entry will be placed in when you do a "make install" and "make install.man" respectively. If you decide to install tcsh somewhere other than in /usr/local/bin/tcsh, you should #define _PATH_TCSHELL "/your/installation/directory/tcsh" in pathnames.h. 6) If you've changed any of the configuration variables you may need to re-run configure. 7) make 8) Read the documentation while you are waiting. The file tcsh.man is in standard [nt]roff -man format. If you like, you can run the tcsh.man2html script (requires Perl) to generate an HTML version of the manpage which you can read with Mosaic, lynx or other HTML browser. 9) Test tcsh by typing ./tcsh to see that it has compiled correctly. The history command should give a time stamp on every entry. Typing normal characters should echo each exactly once. Control-A should put the cursor at the beginning of the input line, but after the prompt. Typing characters after that should insert them into the line. If you have job control make sure that stopping and restarting jobs works. Make sure you can ^C in the middle of the input line. Also make sure that pipelines work correctly and there are no races. Try 'echo | cat | cat | cat | cat | more' a couple of times. If you have job control, try this command in the background and bring it in the foreground when it stops for tty output. Also make sure that the ioctl() modes are preserved. Get into vi, enter and exit input mode and suspend it, background it and foreground it again. After all that, lastly make sure that the tty process group manipulation is happening correctly. Try ftp to some host. If your passwd appears on the screen, you have lost /dev/tty. Otherwise everything is fine. 10) Once satisfied that tcsh is working correctly, complete the installation by typing "make install" to install the binary, and "make install.man" to install the documentation. Don't forget to look at complete.tcsh for useful completions... 11) Enjoy. 12) PLEASE send any bug reports (and fixes), code for new features, comments, questions, etc. (even flames) to: - The tcsh mailing list - tcsh@mx.gw.com + The tcsh bugs mailing list + tcsh-bugs@mx.gw.com Various: *************************************************************************** On sysv versions < 3.0 (not hpux) Doug Gwyn's public domain directory manipulation library has to be installed. This library is available for anonymous ftp from prep.ai.mit.edu:/pub/gnu/dirent.tar.Z If the network is not installed, then there is a gethostname() routine is tc.os.c, enabled by defining NEEDgethostname *************************************************************************** On BSDreno, in ttyname() closedir() is called twice and so the same pointer gets free'd twice. tcsh's malloc is picky and it prints an error message to that effect. If you don't like the message: 1. Apply the following patch: *** /usr/src/lib/libc/gen/ttyname.c.orig Fri Jun 1 17:17:15 1990 --- /usr/src/lib/libc/gen/ttyname.c Tue Oct 29 16:33:12 1991 *************** *** 51,57 **** if (stat(buf, &sb2) < 0 || sb1.st_dev != sb2.st_dev || sb1.st_ino != sb2.st_ino) continue; - closedir(dp); rval = buf; break; } --- 51,56 ---- Or: Comment the error printing out in tc.alloc.c Or: Compile -DSYSMALLOC *************************************************************************** From: Scott Krotz Tcsh has been ported to minix by Scott Krotz (krotz@honey.rtsg.mot.com). Unfortunately the minix sed is broken, so you'll have to find a way to make tc.const.h, sh.err.h, ed.defns.h which are automatically generated. The easiest way to create them is to make a copy from unix, copying minix to config.h, and then 'make sh.err.h tc.const.h ed.defns.h' The OS/dependent files are in mi.termios.h, mi.wait.h, mi.varargs.h You will get some warnings, but dont worry about them, just ignore them. After tcsh has compiled and the gcc binary is converted to a minix binary, remember to chmem it to give it more memory - it will need it! How much you need depends on how many aliases you have, etc.. Add at least 50000 to it. One last thing. You might have to make some links for include files so that they are in the directories that tcsh is expecting while compiling. I forget if I had to do this or not, but it should be fairly easy to sort out. If it cant find any include files this is probably the reason. If you have any problems, please tell me. I can be contacted through e-mail at: krotz@honey.rtsg.mot.com I also read comp.os.minix on a regular basis, so a note there will get my attention also. Have fun! ps. The termios functions are provided by Magnus Doell and Bruce Evans. Thanks, guys! From: Bob Byrnes This is for minix 1.5 (straight out of the box from P-H) plus the i386 patches from Bruce Evans. I cross-compiled on a Sun using gcc 2.1 with a target of i386-bsd (using the minix include files instead of the bsd versions), and then linked the resulting object files with similarly compiled crtso.o and libc.a on vax (little endian) using a hacked version of ld which I put together to generate minix executables instead of bsd a.out format. What a kludge ... I compiled with -O2 -Wall ... So far I haven't noticed any problems with the optimizer. In case anyone is contemplating compiling tcsh with bcc (Bruce Evan's i386 compiler that comes with the minix386 upgrade package), don't bother. It is some serious bugs that kill tcsh when compiled for 16-bit characters. I can provide more details of bugs that I noticed for brave souls who want to try, but it would be hard (and why bother if you can get gcc?). I can make the binary available to anyone who wants it (for example people who can't get access to a cross-compiling environment, and who don't yet have gcc running under minix). *************************************************************************** If your compiler cannot handle long symbol names, add #include "snames.h" to your config.h file -- Christos Zoulas christos@zoulas.com Index: head/contrib/tcsh/WishList =================================================================== --- head/contrib/tcsh/WishList (revision 131962) +++ head/contrib/tcsh/WishList (revision 131963) @@ -1,65 +1,320 @@ [Home] WishList Home | RecentChanges | Preferences _________________________________________________________________ + Surprised by this behavior...is this a bug? + + (Goal: e.g. distinguish between completely numeric args/names and + those containing non-numerics) + + % touch 1023 pex103 pex103a 104a z101 16a02 1999 2001 2001_A_Space_Odyssey + % ls -1 *[^0-9]* + 104a + 16a02 + 2001_A_Space_Odyssey + pex103 + pex103a + z101 + # (great, looks good to me. Got everything containing a nonnumeric, no more, n +o less.) + + % foreach p ( 1023 pex103 pex103a 104a z101 16a02 1999 2001 2001_A_Space_Odyss +ey ) + foreach? if ( $p !~ *[^0-9]* ) echo $p + foreach? end + # (no output. Huh?) + + % foreach p ( 1023 pex103 pex103a 104a z101 16a02 1999 2001 2001_A_Space_Odyss +ey ) + foreach? if ( $p =~ *[^0-9]* ) echo $p + foreach? end + 1023 (!) + pex103 + pex103a + 104a + z101 + 16a02 + 1999 (!) + 2001 (!) + 2001_A_Space_Odyssey + # (Huh?) + + The [MAN page description] for =~ and !~ just refer to "(see [Filename + substitution])', but evidently there is a (unexplained) difference. + The actual filename globbing looks correct to me, but the pattern + matching operator behavior is unexpected, if I'm not missing + something. + + tcsh 6.09.00 + + - bhooglan + _________________________________________________________________ + + I'm a long-time faithful user of tcsh, and one thing has always bugged + me -- the need to type "rehash" at a prompt when adding a new command. + My suggestions is to change tcsh so before printing "Command not + found.", it first searches its entire path and rebuilds its hash + table. Only after doing this, and if the command is still not in the + path, then print "Command not found.". I realize there are some + extreme cases in which this is suboptimal, but in most cases with + normal users this would be a big win, and simplify the manual and + perhaps even the code. + _________________________________________________________________ + + Wish "tcsh -l" would accept other flags. At least "-c". + + Currently I can't get ssh to have the right environment unless it is a + login shell. The .ssh/environment doesn't work for me because I login + to different machines with different environments. One thing to do + would be to not have the different environment for login compared to + other shells, but what I would really like is something like... + + ssh remote_application_server "tcsh -l -c application" + + The "ssh -t" doesn't work for me and I don't know why. + + Thanks Tim + + Fix limit vmemoryuse in Linux + + In Linux tcsh is unable to limit vmemoryuse. This is because + RLIMIT_VMEM isn't defined, instead Linux has RLIMIT_AS which means the + same. On Google groups I found patches suggested by Komazaki at + http://groups.google.com/groups?hl=sv&lr=&ie=UTF-8&oe=ISO-2022-JP&selm + =m3snmczvfc.wl%40thinkpad.osk.3web.ne.jp.osk.3web.ne.jp and Ogawa + Hirofumi suggests a patch at + http://groups.google.com/groups?hl=sv&lr=&ie=UTF-8&selm=87snmba4id.fsf + %40devron.myhome.or.jp None of these patches seems to have been + included in version 6.12 as 6.12 still has this problem. + + /Henrik?? + + New idea: use last line (or n'th line) of output as input to new + command. + + I often find myself typing something like: + + >locate lshort + /usr/local/stow/share/texmf/doc/latex/general/lshort.dvi . . . + /usr/local/store/share/texmf/doc/latex/general/lshort.dvi + + >xdvi /usr/local/store/share/texmf/doc/latex/general/lshort.dvi + + Now the way I accomplish writing the last line, is by moving the mouse + over the last line, and the copy paste it. It would be very nice, if + the shell could keep the last n lines of output in a buffer. This way + one could avoid using the mouse by typing something like: + + >xdvi + + which would insert the last line of output, similarly could + insert the second last line of output. (the exact commands used is of + course configured via bindkey). + + This could save me a couple of times to the mouse everyday - + di010070@diku.dk + + The shell does not capture any output from commands it runs, so + this is really more a feature for the terminal (be it hardware + or software). --Kim + Fix memory leak related to aliasrun(). Precmd, Cwdcmd etc. leak memory. - _________________________________________________________________ Fix migrate -site $$... Seems to hang... (aix370) - _________________________________________________________________ Fix history in loops. - _________________________________________________________________ New idea: sed operations on variables. Lots of people seem to like the idea to be able to do sed type operations on shell variables. Maybe we can extend the syntax of the variable editing to understand string operations. So I would like to be able to use: - > set a="this is a STRING" - > echo $a:[3-] - is is a STRING - > echo $a:[#] - 16 - > echo $a:[6-7] - is - > echo $a:[-2] - ng - > echo $a:[-20] - Subscript out of bounds. - > echo $a:[2-20] - Subscript out of bounds. - > echo $a:[1-1]:u$a:[2-]. - This is a string. - _________________________________________________________________ +> set a="this is a STRING" +> echo $a:[3-] +is is a STRING +> echo $a:[#] +16 +> echo $a:[6-7] +is +> echo $a:[-2] +ng +> echo $a:[-20] +Subscript out of bounds. +> echo $a:[2-20] +Subscript out of bounds. +> echo $a:[1-1]:u$a:[2-]. +This is a string. + + Fix pipelines that contain builtins so that they behave correctly. I tried to fix that (most of the code is in sh.sem.c, but it works only for non POSIX machines cause otherwise the setpgid() I added fails). - _________________________________________________________________ Fix the correct code... How to do that involves A.I.... - _________________________________________________________________ Rewrite the whole thing. It has taken to much beating over the years... - _________________________________________________________________ Add another hook like precmd to be executed after the prompt but before the command. - _________________________________________________________________ Add instructions for using configure in the README file. + + Make manual page references links in the HTML version of the manual. + + It is possible to match the words with ([0-9]) after them. Links could + be using the manual page CGI at http://www.tac.eu.org/cgi-bin/man-cgi + for content. + + Add OpenBSD?? to the Makefile, etc. + + A Csh compatability mode would be nice: I know tcsh is supposed to be + fully csh compatible, but csh scripts containing such constructs as + '$<' , 'if ( -d $file ) cd $file' or any of a great number of other + valid csh commands, will produce syntax errors or the like with tcsh, + which is frustrating when writing/maintaining csh scripts which have + to run on systems with only tcsh and systems with only csh. If such a + thing exists, I couldn't find it after searching the man page for two + hours, and it should be better documented + + Add hooks for command completion Either for a dynamically loaded + library, or a callback to another program that allows another pass to + complete the command. As a trivial example, the module could duplicate + the functionality of aliases. A tcsh_mud.so could define sigh, groan, + cheer, lol, etc to produce output if they weren't actually valid + commands. + + Properly deal with : in filename substitution + + Given something like + + blah.foo:*.foo + + expand it properly to something like + + blah.foo:baz.foo:bob.foo:bar.foo + + It already does this, if you have a file named like that... --Kim + + Directory commands don't handle blanks in filenames. If I have an + environment variable such as: + +% setenv TOMCAT '/c/Program? Files/Apache? Software Foundation/Tomcat? 5.0' +and then do the following, setenv complains that it has too many arguments. +% cd /tmp +% cd "$TOMCAT" +setenv: Too many arguments +% dirs +/c/Program? Files/Apache? Software Foundation/Tomcat? 5.0 /tmp +% pushd "$TOMCAT" +/c/Program? Files/Apache? Software Foundation/Tomcat? 5.0 +setenv: Too many arguments. +% pushd /tmp +/tmp /c/Program? Files/Apache? Software Foundation/Tomcat? 5.0 +% pushd +/c/Program? Files/Apache? Software Foundation/Tomcat? 5.0 /tmp +setenv: Too many arguments. + + Wish tcsh would feature fc (fix command) as in bash !Wish tcsh would + featuer fc (fix command) as in bash ! + + i wish for read-only CVS access to the sources (as i am on the + bleeding egde) + + Functions would be useful! As would being able to redirect stderr (or + other file descriptors) independently of stdout! -- Rohan Talip + + Don't complete commands with non-executable files. For example if I + have a file called README in a directory in the PATH, and I type R TAB + tcsh will complete README as a command. But README does not have the x + bit set, so it's kind of pointless to have that completion. + + --> Setting the shell variable "recognize_only_executables" will give + you this behavior. --Waz + + If I have in my .tcshrc: complete {cd,pushd} p/1/d/ and I type + "complete cd" at the shell prompt nothing is printed. It would be nice + if {cd,pushd} p/1/d/ was printed. + + --> I had programmed this feature a while ago but have not submitted + it because the implementation is not robust enough to keep TCSH from + crashing when special characters are part of the pattern. I'll get + back to it at some point! --Waz + + It would be nice if "set autolist" would be on by default. + + --- + + Unicode (UTF-8) doesn't seem to work. It's not even possible to "make + catalogs" in unicode environment. Also unicode support (and other + multibyte encodings) should depend on environment variables + (LC_CTYPE), not on "set dspmbyte". On unicode terminal translations + show empty characters instead of messages. + + In addition to message catalogs, there are more problems: +ipi:~/test/tcsh/bin> ls +tcsh ĺäö +ipi:~/test/tcsh/bin> set dspmbyte utf8 +ipi:~/test/tcsh/bin> ls ??? +ls: No match. + + Unicode is used more and more, and is default on many environments, so + this really should be fixed. --mpaananen _________________________________________________________________ + When I have a script called from complete I would like to have the the + existing text from the command line passed to that script so that it + can look at all existing words to detemine what it should output as + the completion list. + + For example: + + complete prog 'n/-x/`myscript`' + + Then when I do this: + + > prog -a A -b B -x + + The script would get 'prog -a A -b B -x ' which would allow the script + to base its -x completions on the options given for -a and -b (or if + they aren't present give nothing - or a message saying that they are + required). Setting a temporary environment variable before executing + the command would also work and would probably be safer. + + Perhaps this info is already available as a special variable that can + be manually passed to the script: complete prog 'n/-x/`myscript + $cmd_line`'? + + Update: I looked into this further by actually downloading the code + and looking through it. It doesn't seem that this information is + available anywhere, but I did manage to achieve what I wanted by + adding the following two lines around the call to tw_complete (line + 278, tw.parse.c 6.12.00): + + added> tsetenv(STRCURRCMDLINE, (Char *)&qline); + looking = tw_complete(cmd_start, &wordp, &pat, looking, &suf); + + added> Unsetenv(STRCURRCMDLINE); + + And I added a definition for STRCURRCMDLINE to be "CURRCMDLINE". + + This provides the environment variable CURRCMDLINE to any + script/program running under complete. The only issue I see is picking + a sufficiently obscure environment variable that noone else is likely + to use, but have it readable enough to understand what it is for. It + also shouldn't overwrite an existing ENV variable if it is already in + use. + _________________________________________________________________ + Home | RecentChanges | Preferences Edit text of this page | View other revisions - Last edited April 28, 2001 2:04 (diff) + Last edited March 25, 2004 10:27 (diff) Search: ____________________ Index: head/contrib/tcsh/complete.tcsh =================================================================== --- head/contrib/tcsh/complete.tcsh (revision 131962) +++ head/contrib/tcsh/complete.tcsh (revision 131963) @@ -1,969 +1,1185 @@ # -# $Id: complete.tcsh,v 1.40 2002/07/07 15:37:20 christos Exp $ +# $Id: complete.tcsh,v 1.43 2004/02/22 15:57:15 christos Exp $ # example file using the new completion code # +# Debian GNU/Linux +# /usr/share/doc/tcsh/examples/complete.gz +# +# This file may be read from user's ~/.cshrc or ~/.tcsh file by +# decompressing it into the home directory as ~/.complete and +# then adding the line "source ~/.complete" and maybe defining +# some of the shell variables described below. +# +# Added two Debian-specific completions: dpkg and dpkg-deb (who +# wrote them?). Changed completions of several commands. The ones +# are evaluated if the `traditional_complete' shell variable is +# defined. +# +# Debian enhancements by Vadim Vygonets . +# Bugfixes and apt completions by Miklos Quartus . +# Cleanup by Martin A. Godisch . onintr - if (! $?prompt) goto end if ($?tcsh) then if ($tcsh != 1) then set rev=$tcsh:r set rel=$rev:e set pat=$tcsh:e set rev=$rev:r endif if ($rev > 5 && $rel > 1) then set _complete=1 endif unset rev rel pat endif if ($?_complete) then set noglob if ( ! $?hosts ) set hosts foreach f ($HOME/.hosts /usr/local/etc/csh.hosts $HOME/.rhosts /etc/hosts.equiv) if ( -r $f ) then set hosts = ($hosts `grep -v "+" $f | grep -E -v "^#" | tr -s " " " " | cut -f 1`) endif end if ( -r $HOME/.netrc ) then set f=`awk '/machine/ { print $2 }' < $HOME/.netrc` >& /dev/null set hosts=($hosts $f) endif if ( -r $HOME/.ssh/known_hosts ) then set f=`cat $HOME/.ssh/known_hosts | cut -f 1 -d \ ` >& /dev/null set hosts=($hosts $f) endif unset f if ( ! $?hosts ) then set hosts=(hyperion.ee.cornell.edu phaeton.ee.cornell.edu \ guillemin.ee.cornell.edu vangogh.cs.berkeley.edu \ ftp.uu.net prep.ai.mit.edu export.lcs.mit.edu \ labrea.stanford.edu sumex-aim.stanford.edu \ tut.cis.ohio-state.edu) endif complete ywho n/*/\$hosts/ # argument from list in $hosts complete rsh p/1/\$hosts/ c/-/"(l n)"/ n/-l/u/ N/-l/c/ n/-/c/ p/2/c/ p/*/f/ complete ssh p/1/\$hosts/ c/-/"(l n)"/ n/-l/u/ N/-l/c/ n/-/c/ p/2/c/ p/*/f/ complete xrsh p/1/\$hosts/ c/-/"(l 8 e)"/ n/-l/u/ N/-l/c/ n/-/c/ p/2/c/ p/*/f/ complete rlogin p/1/\$hosts/ c/-/"(l 8 e)"/ n/-l/u/ complete telnet p/1/\$hosts/ p/2/x:''/ n/*/n/ complete cd p/1/d/ # Directories only complete chdir p/1/d/ complete pushd p/1/d/ complete popd p/1/d/ complete pu p/1/d/ complete po p/1/d/ complete complete p/1/X/ # Completions only complete uncomplete n/*/X/ complete exec p/1/c/ # Commands only complete trace p/1/c/ complete strace p/1/c/ complete which n/*/c/ complete where n/*/c/ complete skill p/1/c/ complete dde p/1/c/ complete adb c/-I/d/ n/-/c/ N/-/"(core)"/ p/1/c/ p/2/"(core)"/ complete sdb p/1/c/ complete dbx c/-I/d/ n/-/c/ N/-/"(core)"/ p/1/c/ p/2/"(core)"/ complete xdb p/1/c/ complete gdb n/-d/d/ n/*/c/ complete ups p/1/c/ complete set 'c/*=/f/' 'p/1/s/=' 'n/=/f/' complete unset n/*/s/ complete alias p/1/a/ # only aliases are valid complete unalias n/*/a/ complete xdvi n/*/f:*.dvi/ # Only files that match *.dvi complete dvips n/*/f:*.dvi/ +if ($?traditional_complete) then complete tex n/*/f:*.tex/ # Only files that match *.tex +else + complete tex n/*/f:*.{tex,texi}/ # Files that match *.tex and *.texi +endif complete latex n/*/f:*.{tex,ltx}/ complete su c/--/"(login fast preserve-environment command shell \ help version)"/ c/-/"(f l m p c s -)"/ \ n/{-c,--command}/c/ \ n@{-s,--shell}@'`cat /etc/shells`'@ n/*/u/ complete cc c/-[IL]/d/ \ c@-l@'`\ls -1 /usr/lib/lib*.a | sed s%^.\*/lib%%\;s%\\.a\$%%`'@ \ c/-/"(o l c g L I D U)"/ n/*/f:*.[coasi]/ complete acc c/-[IL]/d/ \ c@-l@'`\ls -1 /usr/lang/SC1.0/lib*.a | sed s%^.\*/lib%%\;s%\\.a\$%%`'@ \ c/-/"(o l c g L I D U)"/ n/*/f:*.[coasi]/ complete gcc c/-[IL]/d/ \ c/-f/"(caller-saves cse-follow-jumps delayed-branch \ elide-constructors expensive-optimizations \ float-store force-addr force-mem inline \ inline-functions keep-inline-functions \ memoize-lookups no-default-inline \ no-defer-pop no-function-cse omit-frame-pointer \ rerun-cse-after-loop schedule-insns \ schedule-insns2 strength-reduce \ thread-jumps unroll-all-loops \ unroll-loops syntax-only all-virtual \ cond-mismatch dollars-in-identifiers \ enum-int-equiv no-asm no-builtin \ no-strict-prototype signed-bitfields \ signed-char this-is-variable unsigned-bitfields \ unsigned-char writable-strings call-saved-reg \ call-used-reg fixed-reg no-common \ no-gnu-binutils nonnull-objects \ pcc-struct-return pic PIC shared-data \ short-enums short-double volatile)"/ \ c/-W/"(all aggregate-return cast-align cast-qual \ comment conversion enum-clash error format \ id-clash-len implicit missing-prototypes \ no-parentheses pointer-arith return-type shadow \ strict-prototypes switch uninitialized unused \ write-strings)"/ \ c/-m/"(68000 68020 68881 bitfield fpa nobitfield rtd \ short c68000 c68020 soft-float g gnu unix fpu \ no-epilogue)"/ \ c/-d/"(D M N)"/ \ c/-/"(f W vspec v vpath ansi traditional \ traditional-cpp trigraphs pedantic x o l c g L \ I D U O O2 C E H B b V M MD MM i dynamic \ nodtdlib static nostdinc undef)"/ \ c/-l/f:*.a/ \ n/*/f:*.{c,C,cc,o,a,s,i}/ complete g++ n/*/f:*.{C,cc,o,s,i}/ complete CC n/*/f:*.{C,cc,cpp,o,s,i}/ complete rm c/--/"(directory force interactive verbose \ recursive help version)"/ c/-/"(d f i v r R -)"/ \ n/*/f:^*.{c,cc,C,h,in}/ # Protect precious files complete vi n/*/f:^*.[oa]/ complete bindkey N/-a/b/ N/-c/c/ n/-[ascr]/'x:'/ \ n/-[svedlr]/n/ c/-[vedl]/n/ c/-/"(a s k c v e d l r)"/\ n/-k/"(left right up down)"/ p/2-/b/ \ p/1/'x:'/ complete find n/-fstype/"(nfs 4.2)"/ n/-name/f/ \ n/-type/"(c b d f p l s)"/ n/-user/u/ n/-group/g/ \ n/-exec/c/ n/-ok/c/ n/-cpio/f/ n/-ncpio/f/ n/-newer/f/ \ c/-/"(fstype name perm prune type user nouser \ group nogroup size inum atime mtime ctime exec \ ok print ls cpio ncpio newer xdev depth \ daystart follow maxdepth mindepth noleaf version \ anewer cnewer amin cmin mmin true false uid gid \ ilname iname ipath iregex links lname empty path \ regex used xtype fprint fprint0 fprintf \ print0 printf not a and o or)"/ \ n/*/d/ complete -%* c/%/j/ # fill in the jobs builtin complete {fg,bg,stop} c/%/j/ p/1/"(%)"// complete limit c/-/"(h)"/ n/*/l/ complete unlimit c/-/"(h)"/ n/*/l/ complete -co* p/0/"(compress)"/ # make compress completion # not ambiguous +if ($?traditional_complete) then complete zcat n/*/f:*.Z/ +else + # "zcat" may be linked to "compress" or "gzip" + if (-X zcat) then + zcat --version >& /dev/null + if ($status != 0) then + complete zcat n/*/f:*.Z/ + else + complete zcat c/--/"(force help license quiet version)"/ \ + c/-/"(f h L q V -)"/ n/*/f:*.{gz,Z,z,zip}/ + endif + endif +endif complete finger c/*@/\$hosts/ n/*/u/@ complete ping p/1/\$hosts/ complete traceroute p/1/\$hosts/ complete {talk,ntalk,phone} p/1/'`users | tr " " "\012" | uniq`'/ \ n/*/\`who\ \|\ grep\ \$:1\ \|\ awk\ \'\{\ print\ \$2\ \}\'\`/ complete ftp c/-/"(d i g n v)"/ n/-/\$hosts/ p/1/\$hosts/ n/*/n/ # this one is simple... #complete rcp c/*:/f/ C@[./\$~]*@f@ n/*/\$hosts/: # From Michael Schroeder # This one will rsh to the file to fetch the list of files! complete rcp 'c%*@*:%`set q=$:-0;set q="$q:s/@/ /";set q="$q:s/:/ /";set q=($q " ");rsh $q[2] -l $q[1] ls -dp $q[3]\*`%' 'c%*:%`set q=$:-0;set q="$q:s/:/ /";set q=($q " ");rsh $q[1] ls -dp $q[2]\*`%' 'c%*@%$hosts%:' 'C@[./$~]*@f@' 'n/*/$hosts/:' complete dd c/--/"(help version)"/ c/[io]f=/f/ \ c/conv=*,/"(ascii ebcdic ibm block unblock \ lcase notrunc ucase swab noerror sync)"/,\ c/conv=/"(ascii ebcdic ibm block unblock \ lcase notrunc ucase swab noerror sync)"/,\ c/*=/x:''/ \ n/*/"(if of conv ibs obs bs cbs files skip file seek count)"/= complete nslookup p/1/x:''/ p/2/\$hosts/ complete ar c/[dmpqrtx]/"(c l o u v a b i)"/ p/1/"(d m p q r t x)"// \ p/2/f:*.a/ p/*/f:*.o/ # these should be merged with the MH completion hacks below - jgotts - complete {sprev,snext} \ + complete {refile,sprev,snext,scan,pick,rmm,inc,folder,show} \ c@+@F:$HOME/Mail/@ # these and interrupt handling from Jaap Vermeulen complete {rexec,rxexec,rxterm,rmterm} \ 'p/1/$hosts/' 'c/-/(l L E)/' 'n/-l/u/' 'n/-L/f/' \ 'n/-E/e/' 'n/*/c/' complete kill 'c/-/S/' 'c/%/j/' \ 'n/*/`ps -u $LOGNAME | awk '"'"'{print $1}'"'"'`/' # these from Marc Horowitz complete attach 'n/-mountpoint/d/' 'n/-m/d/' 'n/-type/(afs nfs rvd ufs)/' \ 'n/-t/(afs nfs rvd ufs)/' 'n/-user/u/' 'n/-U/u/' \ 'c/-/(verbose quiet force printpath lookup debug map \ nomap remap zephyr nozephyr readonly write \ mountpoint noexplicit explicit type mountoptions \ nosetuid setuid override skipfsck lock user host)/' \ 'n/-e/f/' 'n/*/()/' complete hesinfo 'p/1/u/' \ 'p/2/(passwd group uid grplist pcap pobox cluster \ filsys sloc service)/' # these from E. Jay Berkenbilt # = isn't always followed by a filename or a path anymore - jgotts +if ($?traditional_complete) then complete ./configure 'c/--*=/f/' 'c/--{cache-file,prefix,exec-prefix,\ bindir,sbindir,libexecdir,datadir,\ sysconfdir,sharedstatedir,localstatedir,\ libdir,includedir,oldincludedir,infodir,\ mandir,srcdir}/(=)//' \ 'c/--/(cache-file verbose prefix exec-prefix bindir \ sbindir libexecdir datadir sysconfdir \ sharedstatedir localstatedir libdir \ includedir oldincludedir infodir mandir \ srcdir)//' +else + complete ./configure \ + 'c@--{prefix,exec-prefix,bindir,sbindir,libexecdir,datadir,sysconfdir,sharedstatedir,localstatedir,infodir,mandir,srcdir,x-includes,x-libraries}=*@x:'@ \ + 'c/--cachefile=*/x:/' \ + 'c/--{enable,disable,with}-*/x://' \ + 'c/--*=/x://' \ + 'c/--/(prefix= exec-prefix= bindir= \ + sbindir= libexecdir= datadir= sysconfdir= \ + sharedstatedir= localstatedir= infodir= \ + mandir= srcdir= x-includes= x-libraries= cachefile= \ + enable- disable- with- \ + help no-create quiet silent version verbose )//' +endif complete gs 'c/-sDEVICE=/(x11 cdjmono cdj550 epson eps9high epsonc \ dfaxhigh dfaxlow laserjet ljet4 sparc pbm \ pbmraw pgm pgmraw ppm ppmraw bit)/' \ 'c/-sOutputFile=/f/' 'c/-s/(DEVICE OutputFile)/=' \ 'c/-d/(NODISPLAY NOPLATFONTS NOPAUSE)/' 'n/*/f/' complete perl 'n/-S/c/' complete printenv 'n/*/e/' complete sccs p/1/"(admin cdc check clean comb deledit delget \ delta diffs edit enter fix get help info \ print prs prt rmdel sccsdiff tell unedit \ unget val what)"/ complete setenv 'p/1/e/' 'c/*:/f/' # these and method of setting hosts from Kimmo Suominen if ( -f $HOME/.mh_profile && -x "`which folders`" ) then if ( ! $?FOLDERS ) setenv FOLDERS "`folders -fast -recurse`" if ( ! $?MHA ) setenv MHA "`ali | sed -e '/^ /d' -e 's/:.*//'`" set folders = ( $FOLDERS ) set mha = ( $MHA ) complete ali \ 'c/-/(alias nolist list nonormalize normalize nouser user help)/' \ 'n,-alias,f,' complete anno \ 'c/-/(component noinplace inplace nodate date text help)/' \ 'c,+,$folders,' \ 'n,*,`(mark | sed "s/:.*//";echo next cur prev first last)|tr " " "\12" | sort -u`,' complete burst \ 'c/-/(noinplace inplace noquiet quiet noverbose verbose help)/' \ 'c,+,$folders,' \ 'n,*,`(mark | sed "s/:.*//";echo next cur prev first last)|tr " " "\12" | sort -u`,' complete comp \ 'c/-/(draftfolder draftmessage nodraftfolder editor noedit file form nouse use whatnowproc nowhatnowproc help)/' \ 'c,+,$folders,' \ 'n,-whatnowproc,c,' \ 'n,-file,f,'\ 'n,-form,f,'\ 'n,*,`(mark | sed "s/:.*//";echo next cur prev first last)|tr " " "\12" | sort -u`,' complete dist \ 'c/-/(noannotate annotate draftfolder draftmessage nodraftfolder editor noedit form noinplace inplace whatnowproc nowhatnowproc help)/' \ 'c,+,$folders,' \ 'n,-whatnowproc,c,' \ 'n,-form,f,'\ 'n,*,`(mark | sed "s/:.*//";echo next cur prev first last)|tr " " "\12" | sort -u`,' complete folder \ 'c/-/(all nofast fast noheader header nopack pack noverbose verbose norecurse recurse nototal total noprint print nolist list push pop help)/' \ 'c,+,$folders,' \ 'n,*,`(mark | sed "s/:.*//";echo next cur prev first last)|tr " " "\12" | sort -u`,' complete folders \ 'c/-/(all nofast fast noheader header nopack pack noverbose verbose norecurse recurse nototal total noprint print nolist list push pop help)/' \ 'c,+,$folders,' \ 'n,*,`(mark | sed "s/:.*//";echo next cur prev first last)|tr " " "\12" | sort -u`,' complete forw \ 'c/-/(noannotate annotate draftfolder draftmessage nodraftfolder editor noedit filter form noformat format noinplace inplace digest issue volume whatnowproc nowhatnowproc help)/' \ 'c,+,$folders,' \ 'n,-whatnowproc,c,' \ 'n,-filter,f,'\ 'n,-form,f,'\ 'n,*,`(mark | sed "s/:.*//";echo next cur prev first last)|tr " " "\12" | sort -u`,' complete inc \ 'c/-/(audit file noaudit nochangecur changecur file form format nosilent silent notruncate truncate width help)/' \ 'c,+,$folders,' \ 'n,-audit,f,'\ 'n,-form,f,' complete mark \ 'c/-/(add delete list sequence nopublic public nozero zero help)/' \ 'c,+,$folders,' \ 'n,*,`(mark | sed "s/:.*//";echo next cur prev first last)|tr " " "\12" | sort -u`,' complete mhmail \ 'c/-/(body cc from subject help)/' \ 'n,-cc,$mha,' \ 'n,-from,$mha,' \ 'n/*/$mha/' complete mhpath \ 'c/-/(help)/' \ 'c,+,$folders,' \ 'n,*,`(mark | sed "s/:.*//";echo next cur prev first last)|tr " " "\12" | sort -u`,' complete msgchk \ 'c/-/(nodate date nonotify notify help)/' complete msh \ 'c/-/(prompt noscan scan notopcur topcur help)/' complete next \ 'c/-/(draft form moreproc nomoreproc length width showproc noshowproc header noheader help)/' \ 'c,+,$folders,' \ 'n,-moreproc,c,' \ 'n,-showproc,c,' \ 'n,-form,f,' complete packf \ 'c/-/(file help)/' \ 'c,+,$folders,' \ 'n,*,`(mark | sed "s/:.*//";echo next cur prev first last)|tr " " "\12" | sort -u`,' complete pick \ 'c/-/(and or not lbrace rbrace cc date from search subject to othercomponent after before datefield sequence nopublic public nozero zero nolist list help)/' \ 'c,+,$folders,' \ 'n,*,`(mark | sed "s/:.*//";echo next cur prev first last)|tr " " "\12" | sort -u`,' complete prev \ 'c/-/(draft form moreproc nomoreproc length width showproc noshowproc header noheader help)/' \ 'c,+,$folders,' \ 'n,-moreproc,c,' \ 'n,-showproc,c,' \ 'n,-form,f,' complete prompter \ 'c/-/(erase kill noprepend prepend norapid rapid nodoteof doteof help)/' complete refile \ 'c/-/(draft nolink link nopreserve preserve src file help)/' \ 'c,+,$folders,' \ 'n,-file,f,'\ 'n,*,`(mark | sed "s/:.*//";echo next cur prev first last)|tr " " "\12" | sort -u`,' complete rmf \ 'c/-/(nointeractive interactive help)/' \ 'c,+,$folders,' complete rmm \ 'c/-/(help)/' \ 'c,+,$folders,' \ 'n,*,`(mark | sed "s/:.*//";echo next cur prev first last)|tr " " "\12" | sort -u`,' complete scan \ 'c/-/(noclear clear form format noheader header width noreverse reverse file help)/' \ 'c,+,$folders,' \ 'n,-form,f,'\ 'n,-file,f,'\ 'n,*,`(mark | sed "s/:.*//";echo next cur prev first last)|tr " " "\12" | sort -u`,' complete send \ 'c/-/(alias draft draftfolder draftmessage nodraftfolder filter nofilter noformat format noforward forward nomsgid msgid nopush push noverbose verbose nowatch watch width help)/' \ 'n,-alias,f,'\ 'n,-filter,f,' complete show \ 'c/-/(draft form moreproc nomoreproc length width showproc noshowproc header noheader help)/' \ 'c,+,$folders,' \ 'n,-moreproc,c,' \ 'n,-showproc,c,' \ 'n,-form,f,'\ 'n,*,`(mark | sed "s/:.*//";echo next cur prev first last)|tr " " "\12" | sort -u`,' complete sortm \ 'c/-/(datefield textfield notextfield limit nolimit noverbose verbose help)/' \ 'c,+,$folders,' \ 'n,*,`(mark | sed "s/:.*//";echo next cur prev first last)|tr " " "\12" | sort -u`,' complete vmh \ 'c/-/(prompt vmhproc novmhproc help)/' \ 'n,-vmhproc,c,' complete whatnow \ 'c/-/(draftfolder draftmessage nodraftfolder editor noedit prompt help)/' complete whom \ 'c/-/(alias nocheck check draft draftfolder draftmessage nodraftfolder help)/' \ 'n,-alias,f,' complete plum \ 'c/-/()/' \ 'c,+,$folders,' \ 'n,*,`(mark | sed "s/:.*//";echo next cur prev first last)|tr " " "\12" | sort -u`,' complete mail \ 'c/-/()/' \ 'n/*/$mha/' endif #from Dan Nicolaescu if ( $?MODULESHOME ) then alias Compl_module 'find ${MODULEPATH:as/:/ /} -name .version -o -name .modulea\* -prune -o -print | sed `echo "-e s@${MODULEPATH:as%:%/\*@@g -e s@%}/\*@@g"`' complete module 'p%1%(add load unload switch display avail use unuse update purge list clear help initadd initrm initswitch initlist initclear)%' \ 'n%{unl*,sw*,inits*}%`echo "$LOADEDMODULES:as/:/ /"`%' \ 'n%{lo*,di*,he*,inita*,initr*}%`eval Compl_module`%' \ 'N%{sw*,initsw*}%`eval Compl_module`%' 'C%-%(-append)%' 'n%{use,unu*,av*}%d%' 'n%-append%d%' \ 'C%[^-]*%`eval Compl_module`%' endif # from George Cox complete acroread 'p/*/f:*.{pdf,PDF}/' complete apachectl 'c/*/(start stop restart fullstatus status graceful \ configtest help)/' complete appletviewer 'p/*/f:*.class/' complete bison 'c/--/(debug defines file-prefix= fixed-output-files \ help name-prefix= no-lines no-parser output= \ token-table verbose version yacc)/' \ 'c/-/(b d h k l n o p t v y V)/' 'n/-b/f/' 'n/-o/f/' \ 'n/-p/f/' complete bunzip2 'p/*/f:*.bz2/' complete bzip2 'n/-9/f:^*.bz2/' 'n/-d/f:*.bz2/' complete c++ 'p/*/f:*.{c++,cxx,c,cc,C,cpp}/' complete co 'p@1@`\ls -1a RCS | sed -e "s/\(.*\),v/\1/"`@' complete crontab 'n/-u/u/' complete camcontrol 'p/1/(cmd debug defects devlist eject inquiry \ modepage negotiate periphlist rescan reset start \ stop tags tur)/' complete ctlinnd 'p/1/(addhist allow begin cancel changegroup \ checkfile drop feedinfo flush flushlogs go hangup \ logmode mode name newgroup param pause readers refile \ reject reload renumber reserve rmgroup send shutdown \ kill throttle trace xabort xexec)/' complete cvs 'c/--/(help help-commands help-synonyms)/' \ 'p/1/(add admin annotate checkout commit diff \ edit editors export history import init log login \ logout rdiff release remove rtag status tag unedit \ update watch watchers)/' 'n/-a/(edit unedit commit \ all none)/' 'n/watch/(on off add remove)/' complete cxx 'p/*/f:*.{c++,cxx,c,cc,C,cpp}/' complete detex 'p/*/f:*.tex/' complete edquota 'n/*/u/' complete exec 'p/1/c/' complete ghostview 'p/*/f:*.ps/' complete gv 'p/*/f:*.ps/' complete ifconfig 'p@1@`ifconfig -l`@' 'n/*/(range phase link netmask \ mtu vlandev vlan metric mediaopt down delete \ broadcast arp debug)/' complete imake 'c/-I/d/' complete ipfw 'p/1/(flush add delete list show zero)/' \ 'n/add/(allow permit accept pass deny drop reject \ reset count skipto num divert port tee port)/' complete javac 'p/*/f:*.java/' complete ldif2ldbm 'n/-i/f:*.ldif/' complete libtool 'c/--mode=/(compile execute finish install link \ uninstall)/' 'c/--/(config debug dry-run features \ finish help quiet silent version mode=)/' complete libtoolize 'c/--/(automake copy debug dry-run force help ltdl \ ltdl-tar version)/' complete links 'c/-/(assume-codepage async-dns download-dir \ format-cache-size ftp-proxy help http-proxy \ max-connections max-connections-to-host \ memory-cache-size receive-timeout retries \ unrestartable-receive-timeout version)/' complete natd c/-/'(alias_address config deny_incoming dynamic \ inport interface log log_denied log_facility \ outport outport port pptpalias proxy_only \ proxy_rule redirect_address redirect_port \ reverse same_ports unregistered_only use_sockets \ verbose)'/ 'n@-interface@`ifconfig -l`@' complete netstat 'n@-I@`ifconfig -l`@' complete objdump 'c/--/(adjust-vma= all-headers architecture= \ archive-headers debugging demangle disassemble \ disassemble-all disassemble-zeroes dynamic-reloc \ dynamic-syms endian= file-headers full-contents \ headers help info line-numbers no-show-raw-insn \ prefix-addresses private-headers reloc section-headers \ section=source stabs start-address= stop-address= \ syms target= version wide)/' \ 'c/-/(a h i f C d D p r R t T x s S l w)/' complete xmodmap 'c/-/(display help grammar verbose quiet n e pm pk \ pke pp)/' complete lynx 'c/-/(accept_all_cookies anonymous assume_charset= \ assume_local_charset= assume_unrec_charset= auth= base \ book buried_news cache= case cfg= child cookie_file= \ cookies core crawl debug_partial display= dump editor= \ emacskeys enable_scrollback error_file= force_html \ force_secure forms_options from ftp get_data head help \ hiddenlinks= historical homepage= image_links index= \ ismap link= localhost mime_header minimal \ newschunksize= newsmaxchunk= nobrowse nocc nocolor \ nofilereferer nolist nolog nopause noprint noredir \ noreferer nostatus number_links partial partial_thres \ pauth= popup post_data preparsed print pseudo_inlines \ raw realm reload restrictions= resubmit_posts rlogin \ selective show_cursor soft_dquotes source stack_dump \ startfile_ok tagsoup telnet term= tlog trace traversal \ underscore useragent= validate verbose version vikeys \ width=)/' 'c/(http|ftp)/$URLS/' complete gmake 'c/{--directory=,--include-dir=}/d/' \ 'c/{--assume-new,--assume-old,--makefile,--new-file,--what-if,--file}/f/' \ 'c/--/(assume-new= assume-old= debug directory= \ dry-run environment-overrides file= help \ ignore-errors include-dir= jobs[=N] just-print \ keep-going load-average[=N] makefile= max-load[=N] \ new-file= no-builtin-rules no-keep-going \ no-print-directory old-file= print-data-base \ print-directory question quiet recon silent stop \ touch version warn-undefined-variables what-if=)/' \ 'n@*@`cat -s GNUMakefile Makefile makefile |& sed -n -e "/No such file/d" -e "s/^\([A-Za-z0-9-]*\):.*/\1/p"`@' \ 'n/=/f/' 'n/-f/f/' complete mixer p/1/'(vol bass treble synth pcm speaker mic cd mix \ pcm2 rec igain ogain line1 line2 line3)'/ \ p@2@'`mixer $:-1 | awk \{\ print\ \$7\ \}`'@ complete mpg123 'c/--/(2to1 4to1 8bit aggressive au audiodevice \ auth buffer cdr check doublespeed equalizer frames \ gain halfspeed headphones left lineout list mix mono \ proxy quiet random rate reopen resync right scale \ shuffle single0 single1 skip speaker stdout stereo \ test verbose wav)/' complete mysqladmin 'n/*/(create drop extended-status flush-hosts \ flush-logs flush-status flush-tables flush-privileges \ kill password ping processlist reload refresh \ shutdown status variables version)/' complete mutt c@-f=@F:${HOME}/Mail/@ \ n/-a/f/ \ n/-F/f/ n/-H/f/ \ n/-s/x:''/ \ n/-e/x:''/ \ n@-b@'`cat ${HOME}/.muttrc-alias | awk '"'"'{print $2 }'"'"\`@ \ n@-c@'`cat ${HOME}/.muttrc-alias | awk '"'"'{print $2 }'"'"\`@ \ n@*@'`cat ${HOME}/.muttrc-alias | awk '"'"'{print $2 }'"'"\`@ complete ndc 'n/*/(status dumpdb reload stats trace notrace \ querylog start stop restart )/' + if ($?traditional_complete) then complete nm 'c/--/(debug-syms defined-only demangle dynamic \ extern-only format= help line-numbers no-demangle \ no-sort numeric-sort portability print-armap \ print-file-name reverse-sort size-sort undefined-only \ version)/' 'p/*/f:^*.{h,C,c,cc}/' + else + complete nm 'c/--radix=/x:/' \ + 'c/--target=/x:/' \ + 'c/--format=/(bsd sysv posix)/n/' \ + 'c/--/(debugsyms extern-only demangle dynamic print-armap \ + print-file-name numeric-sort no-sort reverse-sort \ + size-sort undefined-only portability target= radix= \ + format= defined-only\ line-numbers no-demangle version \ + help)//' \ + 'n/*/f:^*.{h,c,cc,s,S}/' + endif complete nmap 'n@-e@`ifconfig -l`@' 'p/*/$hostnames/' complete perldoc 'n@*@`\ls -1 /usr/libdata/perl/5.*/pod | sed s%\\.pod.\*\$%%`@' complete postfix 'n/*/(start stop reload abort flush check)/' complete postmap 'n/1/(hash: regexp:)' 'c/hash:/f/' 'c/regexp:/f/' complete rcsdiff 'p@1@`\ls -1a RCS | sed -e "s/\(.*\),v/\1/"`@' complete X 'c/-/(I a ac allowMouseOpenFail allowNonLocalModInDev \ allowNonLocalXvidtune ar1 ar2 audit auth bestRefresh \ bgamma bpp broadcast bs c cc class co core deferglyphs \ disableModInDev disableVidMode displayID dpi dpms f fc \ flipPixels fn fp gamma ggamma help indirect kb keeptty \ ld lf logo ls nolisten string noloadxkb nolock nopn \ once p pn port probeonly query quiet r rgamma s \ showconfig sp su t terminate to tst v verbose version \ weight wm x xkbdb xkbmap)/' complete users 'c/--/(help version)/' 'p/1/x:""/' complete vidcontrol 'p/1/(132x25 132x30 132x43 132x50 132x60 40x25 80x25 \ 80x30 80x43 80x50 80x60 EGA_80x25 EGA_80x43 \ VESA_132x25 VESA_132x30 VESA_132x43 VESA_132x50 \ VESA_132x60 VESA_800x600 VGA_320x200 VGA_40x25 \ VGA_80x25 VGA_80x30 VGA_80x50 VGA_80x60)/' complete vim 'n/*/f:^*.[oa]/' complete where 'n/*/c/' complete which 'n/*/c/' complete wmsetbg 'c/-/(display D S a b c d e m p s t u w)/' \ 'c/--/(back-color center colors dither help match \ maxscale parse scale smooth tile update-domain \ update-wmaker version workspace)/' complete xdb 'p/1/c/' complete xdvi 'c/-/(allowshell debug display expert gamma hushchars \ hushchecksums hushspecials install interpreter keep \ margins nogrey noinstall nomakepk noscan paper safer \ shrinkbuttonn thorough topmargin underlink version)/' \ 'n/-paper/(a4 a4r a5 a5r)/' 'p/*/f:*.dvi/' complete xlock 'c/-/(allowaccess allowroot debug description \ echokeys enablesaver grabmouse grabserver hide inroot \ install inwindow mono mousemotion nolock remote \ resetsaver sound timeelapsed use3d usefirst verbose \ wireframe background batchcount bg bitmap both3d \ count cycles delay delta3d display dpmsoff \ dpmsstandby dpmssuspend endCmd erasedelay erasemode \ erasetime fg font foreground geometry help \ icongeometry info invalid left3d lockdelay logoutCmd \ mailCmd mailIcon message messagefile messagefont \ messagesfile mode name ncolors nice nomailIcon none3d \ parent password planfont program resources right3d \ saturation size startCmd timeout username validate \ version visual)/' 'n/-mode/(ant atlantis ball bat \ blot bouboule bounce braid bubble bubble3d bug cage \ cartoon clock coral crystal daisy dclock decay deco \ demon dilemma discrete drift eyes fadeplot flag flame \ flow forest galaxy gears goop grav helix hop hyper \ ico ifs image invert julia kaleid kumppa lament laser \ life life1d life3d lightning lisa lissie loop lyapunov \ mandelbrot marquee matrix maze moebius morph3d \ mountain munch nose pacman penrose petal pipes puzzle \ pyro qix roll rotor rubik shape sierpinski slip sphere \ spiral spline sproingies stairs star starfish strange \ superquadrics swarm swirl tetris thornbird triangle \ tube turtle vines voters wator wire world worm xjack \ blank bomb random)/' complete xfig 'c/-/(display)/' 'p/*/f:*.fig/' complete wget c/--/"(accept= append-output= background cache= \ continue convert-links cut-dirs= debug \ delete-after directory-prefix= domains= \ dont-remove-listing dot-style= exclude-directories= \ exclude-domains= execute= follow-ftp \ force-directories force-html glob= header= help \ http-passwd= http-user= ignore-length \ include-directories= input-file= level= mirror \ no-clobber no-directories no-host-directories \ no-host-lookup no-parent non-verbose \ output-document= output-file= passive-ftp \ proxy-passwd= proxy-user= proxy= quiet quota= \ recursive reject= relative retr-symlinks save-headers \ server-response span-hosts spider timeout= \ timestamping tries= user-agent= verbose version wait=)"/ # these from Tom Warzeka # this one works but is slow and doesn't descend into subdirectories # complete cd C@[./\$~]*@d@ \ # p@1@'`\ls -1F . $cdpath | grep /\$ | sort -u`'@ n@*@n@ if ( -r /etc/shells ) then complete setenv p@1@e@ n@DISPLAY@\$hosts@: n@SHELL@'`cat /etc/shells`'@ else complete setenv p@1@e@ n@DISPLAY@\$hosts@: endif complete unsetenv n/*/e/ - if (-r /var/spool/mail) then - set _maildir = /var/spool/mail - else - set _maildir = /usr/mail - endif + set _maildir = /var/mail if (-r $HOME/.mailrc) then complete mail c/-/"(e i f n s u v)"/ c/*@/\$hosts/ \ c@+@F:$HOME/Mail@ C@[./\$~]@f@ n/-s/x:''/ \ n@-u@T:$_maildir@ n/-f/f/ \ n@*@'`sed -n s/alias//p $HOME/.mailrc | tr -s " " " " | cut -f 2`'@ else complete mail c/-/"(e i f n s u v)"/ c/*@/\$hosts/ \ c@+@F:$HOME/Mail@ C@[./\$~]@f@ n/-s/x:''/ \ n@-u@T:$_maildir@ n/-f/f/ n/*/u/ endif unset _maildir if (! $?MANPATH) then if (-r /usr/share/man) then setenv MANPATH /usr/share/man: else setenv MANPATH /usr/man: endif endif + if ($?traditional_complete) then # use of $MANPATH from Dan Nicolaescu # use of 'find' adapted from Lubomir Host complete man \ 'n@1@`set q = "$MANPATH:as%:%/man1 %" ; \ls -1 $q |& sed -e s%^.\*:.\*\$%% -e s%\\.1.\*\$%%`@'\ 'n@2@`set q = "$MANPATH:as%:%/man2 %" ; \ls -1 $q |& sed -e s%^.\*:.\*\$%% -e s%\\.2.\*\$%%`@'\ 'n@3@`set q = "$MANPATH:as%:%/man3 %" ; \ls -1 $q |& sed -e s%^.\*:.\*\$%% -e s%\\.3.\*\$%%`@'\ 'n@4@`set q = "$MANPATH:as%:%/man4 %" ; \ls -1 $q |& sed -e s%^.\*:.\*\$%% -e s%\\.4.\*\$%%`@'\ 'n@5@`set q = "$MANPATH:as%:%/man5 %" ; \ls -1 $q |& sed -e s%^.\*:.\*\$%% -e s%\\.5.\*\$%%`@'\ 'n@6@`set q = "$MANPATH:as%:%/man6 %" ; \ls -1 $q |& sed -e s%^.\*:.\*\$%% -e s%\\.6.\*\$%%`@'\ 'n@7@`set q = "$MANPATH:as%:%/man7 %" ; \ls -1 $q |& sed -e s%^.\*:.\*\$%% -e s%\\.7.\*\$%%`@'\ 'n@8@`set q = "$MANPATH:as%:%/man8 %" ; \ls -1 $q |& sed -e s%^.\*:.\*\$%% -e s%\\.8.\*\$%%`@'\ 'n@9@`set q = "$MANPATH:as%:%/man9 %" ; \ls -1 $q |& sed -e s%^.\*:.\*\$%% -e s%\\.9.\*\$%%`@'\ 'n@0@`set q = "$MANPATH:as%:%/man0 %" ; \ls -1 $q |& sed -e s%^.\*:.\*\$%% -e s%\\.0.\*\$%%`@'\ 'n@n@`set q = "$MANPATH:as%:%/mann %" ; \ls -1 $q |& sed -e s%^.\*:.\*\$%% -e s%\\.n.\*\$%%`@'\ 'n@o@`set q = "$MANPATH:as%:%/mano %" ; \ls -1 $q |& sed -e s%^.\*:.\*\$%% -e s%\\.o.\*\$%%`@'\ 'n@l@`set q = "$MANPATH:as%:%/manl %" ; \ls -1 $q |& sed -e s%^.\*:.\*\$%% -e s%\\.l.\*\$%%`@'\ 'n@p@`set q = "$MANPATH:as%:%/manp %" ; \ls -1 $q |& sed -e s%^.\*:.\*\$%% -e s%\\.p.\*\$%%`@'\ c@-@"(- f k M P s S t)"@ n@-f@c@ n@-k@x:''@ n@-[MP]@d@ \ 'N@-[MP]@`\ls -1 $:-1/man? |& sed -n s%\\..\\+\$%%p`@' \ 'n@-[sS]@`\ls -1 $MANPATH:as%:% % |& sed -n s%^man%%p | sort -u`@'\ 'n@*@`find $MANPATH:as%:% % \( -type f -o -type l \) -printf "%f " |& sed -e "s%find: .*: No such file or directory%%" -e "s%\([^\.]\+\)\.\([^ ]*\) %\1 %g"`@' #n@*@c@ # old way -- commands only + else + complete man n@1@'`\ls -1 /usr/man/man1 | sed s%\\.1.\*\$%%`'@ \ + n@2@'`\ls -1 /usr/man/man2 | sed s%\\.2.\*\$%%`'@ \ + n@3@'`\ls -1 /usr/man/man3 | sed s%\\.3.\*\$%%`'@ \ + n@4@'`\ls -1 /usr/man/man4 | sed s%\\.4.\*\$%%`'@ \ + n@5@'`\ls -1 /usr/man/man5 | sed s%\\.5.\*\$%%`'@ \ + n@6@'`\ls -1 /usr/man/man6 | sed s%\\.6.\*\$%%`'@ \ + n@7@'`\ls -1 /usr/man/man7 | sed s%\\.7.\*\$%%`'@ \ + n@8@'`\ls -1 /usr/man/man8 | sed s%\\.8.\*\$%%`'@ \ + n@9@'`[ -r /usr/man/man9 ] && \ls -1 /usr/man/man9 | sed s%\\.9.\*\$%%`'@ \ + n@0@'`[ -r /usr/man/man0 ] && \ls -1 /usr/man/man0 | sed s%\\.0.\*\$%%`'@ \ + n@new@'`[ -r /usr/man/mann ] && \ls -1 /usr/man/mann | sed s%\\.n.\*\$%%`'@ \ + n@old@'`[ -r /usr/man/mano ] && \ls -1 /usr/man/mano | sed s%\\.o.\*\$%%`'@ \ +n@local@'`[ -r /usr/man/manl ] && \ls -1 /usr/man/manl | sed s%\\.l.\*\$%%`'@ \ +n@public@'`[ -r /usr/man/manp ]&& \ls -1 /usr/man/manp | sed s%\\.p.\*\$%%`'@ \ + c/-/"(- f k P s t)"/ n/-f/c/ n/-k/x:''/ n/-P/d/ \ + N@-P@'`\ls -1 $:-1/man? | sed s%\\..\*\$%%`'@ n/*/c/ + endif complete ps c/-t/x:''/ c/-/"(a c C e g k l S t u v w x)"/ \ n/-k/x:''/ N/-k/x:''/ n/*/x:''/ complete compress c/-/"(c f v b)"/ n/-b/x:''/ n/*/f:^*.Z/ complete uncompress c/-/"(c f v)"/ n/*/f:*.Z/ complete uuencode p/1/f/ p/2/x:''/ n/*/n/ complete uudecode c/-/"(f)"/ n/-f/f:*.{uu,UU}/ p/1/f:*.{uu,UU}/ n/*/n/ complete xhost c/[+-]/\$hosts/ n/*/\$hosts/ complete xpdf c/-/"(z g remote raise quit cmap rgb papercolor \ eucjp t1lib freetype ps paperw paperh level1 \ upw fullscreen cmd q v h help)"/ \ n/-z/x:''/ \ n/-g/x:''/ n/-remote/x:''/ \ n/-rgb/x:''/ n/-papercolor/x:''/ \ n/-{t1lib,freetype}/x:''/ \ n/-ps/x:''/ n/-paperw/x:''/ \ n/-paperh/x:''/ n/-upw/x:''/ \ n/-/f:*.{pdf,PDF}/ \ N/-{z,g,remote,rgb,papercolor,t1lib,freetype,ps,paperw,paperh,upw}/f:*.{pdf,PDF}/ \ N/-/x:''/ p/1/f:*.{pdf,PDF}/ p/2/x:''/ + complete tcsh c/-D*=/'x:'/ c/-D/'x:'/ \ + c/-/"(b c d D e f F i l m n q s t v V x X -version)"/ \ + n/-c/c/ n/{-l,--version}/n/ n/*/'f:*.{,t}csh'/ + + complete rpm c/--/"(query verify nodeps nofiles nomd5 noscripts \ + nogpg nopgp install upgrade freshen erase allmatches \ + notriggers repackage test rebuild recompile initdb \ + rebuilddb addsign resign querytags showrc setperms \ + setugids all file group package querybynumber qf \ + triggeredby whatprovides whatrequires changelog \ + configfiles docfiles dump filesbypkg info last list \ + provides queryformat requires scripts state triggers \ + triggerscripts allfiles badreloc excludepath checksig \ + excludedocs force hash ignoresize ignorearch ignoreos \ + includedocs justdb noorder oldpackage percent prefix \ + relocate replace-files replacepkgs buildroot clean \ + nobuild rmsource rmspec short-circuit sign target \ + help version quiet rcfile pipe dbpath root specfile)"/\ + c/-/"(q V K i U F e ba bb bp bc bi bl bs ta tb tp tc \ + ti tl ts a f g p c d l R s h ? v vv -)"/ \ + n/{-f,--file}/f/ n/{-g,--group}/g/ n/--pipe/c/ n/--dbpath/d/ \ + n/--querybynumber/x:''/ n/--triggeredby/x:''/\ + n/--what{provides,requires}/x:''/ n/--root/d/ \ + n/--{qf,queryformat}/x:''/ n/--buildroot/d/ \ + n/--excludepath/x:''/ n/--prefix/x:''/ \ + n/--relocate/x:''/ n/--target/x:''/\ + n/--rcfile/x:''/ n/--specfile/x:''/ \ + n/{-[iUFep],--{install,upgrade,freshen,erase,package}}/f:*.rpm/ + # these conform to the latest GNU versions available at press time ... # updates by John Gotts if (-X emacs) then # TW note: if your version of GNU Emacs supports the "--version" option, # uncomment this line and comment the next to automatically - # detect the version, else replace "21.2" with your version. + # detect the version, else set "_emacs_ver" to your version. #set _emacs_ver=`emacs --version | sed -e 's%GNU Emacs %%' -e q | cut -d . -f1-2` - set _emacs_ver=21.2 + set _emacs_ver=21.3 set _emacs_dir=`which emacs | sed s%/bin/emacs%%` complete emacs c/--/"(batch terminal display no-windows no-init-file \ user debug-init unibyte multibyte version help \ no-site-file funcall load eval insert kill)"/ \ c/-/"(t d nw q u f l -)"/ c/+/x:''/ \ n/{-t,--terminal}/x:''/ n/{-d,--display}/x:''/ \ n/{-u,--user}/u/ n/{-f,--funcall}/x:''/ \ n@{-l,--load}@F:$_emacs_dir/share/emacs/$_emacs_ver/lisp@ \ n/--eval/x:''/ n/--insert/f/ n/*/f:^*[\#~]/ unset _emacs_ver _emacs_dir endif - # if your "zcat" is the GNU version, change "gzcat" below to just "zcat" complete gzcat c/--/"(force help license quiet version)"/ \ c/-/"(f h L q V -)"/ n/*/f:*.{gz,Z,z,zip}/ complete gzip c/--/"(stdout to-stdout decompress uncompress \ force help list license no-name quiet recurse \ suffix test verbose version fast best)"/ \ c/-/"(c d f h l L n q r S t v V 1 2 3 4 5 6 7 8 9 -)"/\ n/{-S,--suffix}/x:''/ \ n/{-d,--{de,un}compress}/f:*.{gz,Z,z,zip,taz,tgz}/ \ N/{-d,--{de,un}compress}/f:*.{gz,Z,z,zip,taz,tgz}/ \ n/*/f:^*.{gz,Z,z,zip,taz,tgz}/ complete {gunzip,ungzip} c/--/"(stdout to-stdout force help list license \ no-name quiet recurse suffix test verbose version)"/ \ c/-/"(c f h l L n q r S t v V -)"/ \ n/{-S,--suffix}/x:''/ \ n/*/f:*.{gz,Z,z,zip,taz,tgz}/ complete zgrep c/-*A/x:'<#_lines_after>'/ c/-*B/x:'<#_lines_before>'/\ c/-/"(A b B c C e f h i l n s v V w x)"/ \ p/1/x:''/ N/-*e/f/ \ n/-*e/x:''/ n/-*f/f/ n/*/f/ complete zegrep c/-*A/x:'<#_lines_after>'/ c/-*B/x:'<#_lines_before>'/\ c/-/"(A b B c C e f h i l n s v V w x)"/ \ p/1/x:''/ N/-*e/f/ \ n/-*e/x:''/ n/-*f/f/ n/*/f/ complete zfgrep c/-*A/x:'<#_lines_after>'/ c/-*B/x:'<#_lines_before>'/\ c/-/"(A b B c C e f h i l n s v V w x)"/ \ p/1/x:''/ N/-*e/f/ \ n/-*e/x:''/ n/-*f/f/ n/*/f/ complete znew c/-/"(f t v 9 P K)"/ n/*/f:*.Z/ complete zmore n/*/f:*.{gz,Z,z,zip}/ complete zfile n/*/f:*.{gz,Z,z,zip,taz,tgz}/ complete ztouch n/*/f:*.{gz,Z,z,zip,taz,tgz}/ complete zforce n/*/f:^*.{gz,tgz}/ + complete dcop 'p/1/`$:0`/ /' \ + 'p/2/`$:0 $:1 | awk \{print\ \$1\}`/ /' \ + 'p/3/`$:0 $:1 $:2 | sed "s%.* \(.*\)(.*%\1%"`/ /' + + complete grep c/-*A/x:'<#_lines_after>'/ c/-*B/x:'<#_lines_before>'/\ c/--/"(extended-regexp fixed-regexp basic-regexp \ regexp file ignore-case word-regexp line-regexp \ no-messages revert-match version help byte-offset \ line-number with-filename no-filename quiet silent \ text directories recursive files-without-match \ files-with-matches count before-context after-context \ context binary unix-byte-offsets)"/ \ c/-/"(A a B b C c d E e F f G H h i L l n q r s U u V \ v w x)"/ \ p/1/x:''/ N/-*e/f/ \ n/-*e/x:''/ n/-*f/f/ n/*/f/ complete egrep c/-*A/x:'<#_lines_after>'/ c/-*B/x:'<#_lines_before>'/\ c/--/"(extended-regexp fixed-regexp basic-regexp \ regexp file ignore-case word-regexp line-regexp \ no-messages revert-match version help byte-offset \ line-number with-filename no-filename quiet silent \ text directories recursive files-without-match \ files-with-matches count before-context after-context \ context binary unix-byte-offsets)"/ \ c/-/"(A a B b C c d E e F f G H h i L l n q r s U u V \ v w x)"/ \ p/1/x:''/ N/-*e/f/ \ n/-*e/x:''/ n/-*f/f/ n/*/f/ complete fgrep c/-*A/x:'<#_lines_after>'/ c/-*B/x:'<#_lines_before>'/\ c/--/"(extended-regexp fixed-regexp basic-regexp \ regexp file ignore-case word-regexp line-regexp \ no-messages revert-match version help byte-offset \ line-number with-filename no-filename quiet silent \ text directories recursive files-without-match \ files-with-matches count before-context after-context \ context binary unix-byte-offsets)"/ \ c/-/"(A a B b C c d E e F f G H h i L l n q r s U u V \ v w x)"/ \ p/1/x:''/ N/-*e/f/ \ n/-*e/x:''/ n/-*f/f/ n/*/f/ complete sed c/--/"(quiet silent version help expression file)"/ \ c/-/"(n V e f -)"/ n/{-e,--expression}/x:'