xref: /freebsd-src/contrib/tcsh/NewThings (revision c80476e4c3e6730697b9424f88dfa74d1907cabd)
1*c80476e4SDavid E. O'BrienThis file contains visible (incompatible) changes to the users.
2*c80476e4SDavid E. O'BrienThis version of tcsh has the following new things:
3*c80476e4SDavid E. O'Brien
4*c80476e4SDavid E. O'Brien6.08
5*c80476e4SDavid E. O'Brien* %$variables are now expanded in the prompt.
6*c80476e4SDavid E. O'Brien* print_by_columns prints in a single column if the output is not a tty.
7*c80476e4SDavid E. O'Brien* REMOTEHOST contains only the IP address, not the host name of the machine.
8*c80476e4SDavid E. O'Brien* names in .cshdirs are quoted.
9*c80476e4SDavid E. O'Brien* exit value from 0..255 not -128..127 as posix mandates.
10*c80476e4SDavid E. O'Brien
11*c80476e4SDavid E. O'Brien6.07
12*c80476e4SDavid E. O'Brien* Implicit cd when the variable implicitcd is set or set to verbose
13*c80476e4SDavid E. O'Brien
14*c80476e4SDavid E. O'Brien6.06
15*c80476e4SDavid E. O'Brien* NLS Message Catalog support.
16*c80476e4SDavid E. O'Brien
17*c80476e4SDavid E. O'Brien6.05
18*c80476e4SDavid E. O'Brien* The bind, aliases, linedit builtins are not used anymore; they are
19*c80476e4SDavid E. O'Brien  #ifdef'ed OBSOLETE and will be really removed in the next version
20*c80476e4SDavid E. O'Brien* new filetest builtin
21*c80476e4SDavid E. O'Brien* new hup builtin
22*c80476e4SDavid E. O'Brien* =x obeys nonomatch
23*c80476e4SDavid E. O'Brien* tcsh.man2html nroff to HTML converter for the tcsh manpage
24*c80476e4SDavid E. O'Brien* prompt is now %# by default.
25*c80476e4SDavid E. O'Brien* $REMOTEHOST contains the name of the remote host (optional)
26*c80476e4SDavid E. O'Brien* $HOSTTYPE is going away. New variables $OSTYPE, $MACHTYPE, $VENDOR similar
27*c80476e4SDavid E. O'Brien  to the gnu ones.
28*c80476e4SDavid E. O'Brien* $< can be interrupted and takes modifiers. Does not quote args by default
29*c80476e4SDavid E. O'Brien  like csh.
30*c80476e4SDavid E. O'Brien
31*c80476e4SDavid E. O'Brien6.04
32*c80476e4SDavid E. O'Brien* Variable modifiers do not stop processing after the first one fails
33*c80476e4SDavid E. O'Brien     > set i=aabbcc
34*c80476e4SDavid E. O'Brien     > echo $i:s/a/A/:s/b/B/
35*c80476e4SDavid E. O'Brien     AaBbcc
36*c80476e4SDavid E. O'Brien     > echo $i:s/x/A/:s/b/B/
37*c80476e4SDavid E. O'Brien     aabbcc
38*c80476e4SDavid E. O'Brien* set -r makes variables readonly
39*c80476e4SDavid E. O'Brien* set nonomatch, echo ~notaser returns ~notauser instead of an error
40*c80476e4SDavid E. O'Brien* file operators: Changed -s == !-z and -S == socket
41*c80476e4SDavid E. O'Brien* $?0 returns false now on interactive shells for csh compatibility.
42*c80476e4SDavid E. O'Brien* %p%P include seconds in prompt strings.
43*c80476e4SDavid E. O'Brien
44*c80476e4SDavid E. O'Brien6.03
45*c80476e4SDavid E. O'Brien* $%var contains the number of characters in $var.
46*c80476e4SDavid E. O'Brien* Shell -w -x are now POSIX compliant on POSIX machines.
47*c80476e4SDavid E. O'Brien* Imported environment variables are not globbed.
48*c80476e4SDavid E. O'Brien* $dirstack can be used to set and examine the directory stack.
49*c80476e4SDavid E. O'Brien* $? == $status and $# == $#argv like in the bourne shell.
50*c80476e4SDavid E. O'Brien* expand variables expands arrays too (but not array elements yet).
51*c80476e4SDavid E. O'Brien* $0 contains argv[0] on interactive shells.
52*c80476e4SDavid E. O'Brien* new -b -c etc file operators from SGI csh.
53*c80476e4SDavid E. O'Brien* nostat takes a list of shell patterns.
54*c80476e4SDavid E. O'Brien* symbolic names for arrow key bindings [left, right, up, down]
55*c80476e4SDavid E. O'Brien* shift, left operators update variables correctly.
56*c80476e4SDavid E. O'Brien* builtins builtin.
57*c80476e4SDavid E. O'Brien* history and dirs accept now -LSc flags.
58*c80476e4SDavid E. O'Brien* $history accepts an optional second argument, that can change the
59*c80476e4SDavid E. O'Brien  history builtin output similar to the $time format.
60*c80476e4SDavid E. O'Brien* History timestamps preserved in .history. The history file contains
61*c80476e4SDavid E. O'Brien  now the timestamps as csh comments.
62*c80476e4SDavid E. O'Brien
63*c80476e4SDavid E. O'Brien
64*c80476e4SDavid E. O'Brien6.02
65*c80476e4SDavid E. O'Brien* ignore_symlinks and chase_symlinks are replaced with symlinks=ignore
66*c80476e4SDavid E. O'Brien  and symlinks=chase; symlinks=expand addition
67*c80476e4SDavid E. O'Brien* complete and uncomplete builtins; user-programmable completion additions.
68*c80476e4SDavid E. O'Brien* Tcsh now uses the rightmost column of the terminal, allowing cut-and-paste
69*c80476e4SDavid E. O'Brien  operations in terminal emulators that work [xterm R5 not R4]
70*c80476e4SDavid E. O'Brien* echo_style controls now the behaviour of the builtin echo; the default
71*c80476e4SDavid E. O'Brien  should match the builtin echo of /bin/csh; if your system does not
72*c80476e4SDavid E. O'Brien  come with csh, then the default echo should match /bin/echo.
73*c80476e4SDavid E. O'Brien* cd -; changes to the previous directory.
74*c80476e4SDavid E. O'Brien* setting dunique variable pushes only unique directories on the directory
75*c80476e4SDavid E. O'Brien  stack.
76*c80476e4SDavid E. O'Brien* source builtin allows additional arguments that get passed in $argv in
77*c80476e4SDavid E. O'Brien  the sourced script.
78*c80476e4SDavid E. O'Brien* tcsh now mirrors correctly all exported csh variables [term=TERM,path=PATH
79*c80476e4SDavid E. O'Brien  etc.]
80*c80476e4SDavid E. O'Brien* showdots=-A makes listing behave like ls -A.
81*c80476e4SDavid E. O'Brien* directory stack access =<num> allows for entries > 9.
82*c80476e4SDavid E. O'Brien* $a:u uppercase the first character in $a, $a:l downcases the first
83*c80476e4SDavid E. O'Brien  character in $a.
84*c80476e4SDavid E. O'Brien* Shorthand for file tests in 'if' expressions ( -dx file ) is the
85*c80476e4SDavid E. O'Brien  same as ( -d file && -x file )
86*c80476e4SDavid E. O'Brien
87*c80476e4SDavid E. O'Brien6.01
88*c80476e4SDavid E. O'Brien* Nothing new.
89*c80476e4SDavid E. O'Brien
90*c80476e4SDavid E. O'Brien6.00 PL3
91*c80476e4SDavid E. O'Brien* %d in the prompt is the week-day and no longer $cwd; use %/ instead.
92*c80476e4SDavid E. O'Brien* changes in the prompt format. Date changes to accomodate people from
93*c80476e4SDavid E. O'Brien  down under.
94*c80476e4SDavid E. O'Brien* vi insert mode to command mode transition does not move the cursor.
95*c80476e4SDavid E. O'Brien
96*c80476e4SDavid E. O'Brien6.00 PL2
97*c80476e4SDavid E. O'Brien* setty builtin
98*c80476e4SDavid E. O'Brien  This is used to specify what tcsh modes can be altered using stty,
99*c80476e4SDavid E. O'Brien  Modes that should be set are specified as +<mode>, modes that should
100*c80476e4SDavid E. O'Brien  be cleared are specified as -<mode>, and the ones that should be
101*c80476e4SDavid E. O'Brien  untouched are specified as <mode>. setty with no arguments prints
102*c80476e4SDavid E. O'Brien  the modes that are affected by tcsh, and setty -a prints all modes.
103*c80476e4SDavid E. O'Brien* multiple : modifiers in variables and ! escapes. Things like:
104*c80476e4SDavid E. O'Brien      > set prompt="$host:r:$cwd>"
105*c80476e4SDavid E. O'Brien  don't work any more, they should be replaced with
106*c80476e4SDavid E. O'Brien      > set prompt="${host:r}:$cwd>"
107*c80476e4SDavid E. O'Brien  or
108*c80476e4SDavid E. O'Brien      > set prompt="$host:r"":$cwd>"
109*c80476e4SDavid E. O'Brien  the reason is that now you can
110*c80476e4SDavid E. O'Brien      > set foo=/usr/local/a.b.c
111*c80476e4SDavid E. O'Brien      > echo $foo:t:r:e
112*c80476e4SDavid E. O'Brien      b
113*c80476e4SDavid E. O'Brien  If for some reason you don't like this change you can disable it with
114*c80476e4SDavid E. O'Brien  -DCOMPAT. -DCOMPAT may go away in future tcsh versions and the way tcsh
115*c80476e4SDavid E. O'Brien  works now is the way the 4.4BSD csh works.
116*c80476e4SDavid E. O'Brien
117*c80476e4SDavid E. O'Brien6.00 PL1
118*c80476e4SDavid E. O'Brien* There is no more config.iris4d, use config.sgi instead
119*c80476e4SDavid E. O'Brien
120*c80476e4SDavid E. O'Brien6.00
121*c80476e4SDavid E. O'Brien* History searching searches using shell patterns too.
122*c80476e4SDavid E. O'Brien* The autolist values that controlled beeping are not supported any more;
123*c80476e4SDavid E. O'Brien  used matchbeep instead.
124*c80476e4SDavid E. O'Brien* /etc/Login and /etc/Logout were renamed to /etc/csh.login /etc/csh.logout
125*c80476e4SDavid E. O'Brien  and /etc/csh.cshrc was added
126*c80476e4SDavid E. O'Brien* prompt2 and prompt3 can have prompt escapes.
127*c80476e4SDavid E. O'Brien* eval pipes work
128*c80476e4SDavid E. O'Brien* ignore_symlinks works
129*c80476e4SDavid E. O'Brien
130*c80476e4SDavid E. O'Brien5.20 PL2
131*c80476e4SDavid E. O'Brien* %{..%} escapes in prompt
132*c80476e4SDavid E. O'Brien
133*c80476e4SDavid E. O'Brien5.20 PL0
134*c80476e4SDavid E. O'Brien* bindkey -r
135*c80476e4SDavid E. O'Brien* history -t
136*c80476e4SDavid E. O'Brien* shell variables in paths expand correctly.
137*c80476e4SDavid E. O'Brien* variable expansion
138*c80476e4SDavid E. O'Brien* quoted expansions now work.
139*c80476e4SDavid E. O'Brien* new version and tcsh variable format
140*c80476e4SDavid E. O'Brien
141*c80476e4SDavid E. O'Brien5.19 PL2
142*c80476e4SDavid E. O'Brien* NLS support
143*c80476e4SDavid E. O'Brien* New bindkey and echotc builtins
144*c80476e4SDavid E. O'Brien* Underline and Bold in the prompt; additions and changes to the prompt and
145*c80476e4SDavid E. O'Brien  who syntax (%u is now %n, so that %u can be used to turn undeline off,
146*c80476e4SDavid E. O'Brien  and %n is now \n).
147*c80476e4SDavid E. O'Brien* rmstar needs to be set to protect from accidental removal
148*c80476e4SDavid E. O'Brien* Fixed editor, and spell line.
149*c80476e4SDavid E. O'Brien* Glob-expand, on arguments.
150*c80476e4SDavid E. O'Brien* Added process migration builtins for aix370
151*c80476e4SDavid E. O'Brien
152*c80476e4SDavid E. O'Brien5.19 PL1
153*c80476e4SDavid E. O'Brien* Maintainance release for mainly the rs6000
154*c80476e4SDavid E. O'Brien
155*c80476e4SDavid E. O'Brien5.19 PL0
156*c80476e4SDavid E. O'Brien* 8 bit clean code, by using 16 bit strings.
157*c80476e4SDavid E. O'Brien* Mostly shared strings (a side-effect)
158*c80476e4SDavid E. O'Brien* Highlights everywhere (and in ls-F) filenames that contain characters
159*c80476e4SDavid E. O'Brien  with the eighth bit set (or passes them unchanged depending on the
160*c80476e4SDavid E. O'Brien  variable 'nometa')
161*c80476e4SDavid E. O'Brien* Newline in the prompt via %n.
162*c80476e4SDavid E. O'Brien* dirs takes also a -v flag for `vertical display'
163*c80476e4SDavid E. O'Brien* There is a new variable `listjobs' which controls if and how jobs
164*c80476e4SDavid E. O'Brien  are displayed when a new job is suspended. [Idea from the mtXinu
165*c80476e4SDavid E. O'Brien  code, very useful for novice users who hit control-Z 10 times on
166*c80476e4SDavid E. O'Brien  the same job!]
167*c80476e4SDavid E. O'Brien  set listjobs=long, jobs -l is executed every time a job is suspended.
168*c80476e4SDavid E. O'Brien  set listjobs=short, jobs is executed every time a job is suspended.
169*c80476e4SDavid E. O'Brien* Passes lint... At least on a sun.
170