Date: Thu, 6 Apr 2000 14:21:36 -0700 (PDT) From: Matthew Dillon <dillon@apollo.backplane.com> To: "David O'Brien" <obrien@freebsd.org> Cc: arch@freebsd.org Subject: Re: Import of tcsh into src/contrib/, replacing src/usr.bin/csh Message-ID: <200004062121.OAA90627@apollo.backplane.com> References: <20000406134916.A23265@dragon.nuxi.com>
next in thread | previous in thread | raw e-mail | index | archive | help
:I'm going to be importing tcsh into src/contrib/ and replacing /bin/csh
:with tcsh. Tcsh started life as the CSRG BSD csh sources, is maintained
:by a BSD developer, and is fully under the BSD license. I can find zero
:reason to keep our limited UI /bin/csh. I've seen *MANY* people get
:highly irritated at root's shell being one of poor UI. Of the [t]csh
:users I know, only about 10% use csh over tcsh and that is only because
:csh is in the base system. Those people would not even notice the extra
:tcsh features.
:
:Before someone asks here are the sizes:
:
: 379900 /bin/csh*
: 561536 /bin/sh*
: 336852 tcsh*
: 735152 tcsh.static*
:
:Yes I know tcsh is larger than csh, but does that *really* matter? Only
:the "operator" user in PicoBSD uses csh, and that could easily be changed
:to `sh'. I can't find any CSH scripts that are part of PicoBSD, so I
:don't see where csh is a dependency for PicoBSD.
:
:--
:-- David (obrien@NUXI.com)
I don't think we can replace /bin/csh with tcsh, for compatibility
reasons. Thousands upon thousands of scripts use csh and the risk is just
too great that we might break some of them. Remember /bin/sh vs
/bin/bash? I'll admit /bin/csh vs /bin/tcsh is less of a problem, but
it's still a problem.
I think we *CAN* change the default shell to tcsh, and make /bin/tcsh
official (rather then having to use /usr/local/bin/tcsh). I've used
tcsh for years, even for shell scripts (because it doesn't have internal
variable size limitations for things like foreach loops containing
backticked command output), and I think making it the default is
an excellent idea.
I would also propose that the default csh.cshrc (which tcsh sources)
still be used for both tcsh and csh since it's so trivial to test which
one is sourcing the file. I do *NOT* recommend creating a separate
.tcshrc.
And I would also propose that we turn command-line partial-history-
completion on by default. Once you start using it, you will never go
back (Amiga, anyone?). Finally, I recommend that we map ^W to
word-erase (for tcsh).
for "/etc/csh.cshrc":
if ( $shell == "/bin/tcsh" || $shell == "/usr/local/bin/tcsh" ) then
set prompt = "%m:%/%# "
set symlinks = expand
bindkey "^W" backward-delete-word
bindkey -k up history-search-backward
bindkey -k down history-search-forward
endif
-Matt
Matthew Dillon
<dillon@backplane.com>
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-arch" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200004062121.OAA90627>
