BUGS

When a suspended command is restarted, the shell prints the directory
it started in if this is different from the current directory. This can
be misleading (i.e., wrong) as the job may have changed directories internally.

Shell builtin functions are not stoppable/restartable. Command sequences
of the form `a ; b ; c' are also not handled gracefully when stopping is
attempted. If you suspend `b', the shell will then immediately execute
`c'. This is especially noticeable if this expansion results from an
alias. It suffices to place the sequence of commands in ()'s to force it
to a subshell, i.e., `( a ; b ; c )'.

Control over tty output after processes are started is primitive; perhaps
this will inspire someone to work on a good virtual terminal interface.
In a virtual terminal interface much more interesting things could be
done with output control.

Alias substitution is most often used to clumsily simulate shell procedures;
shell procedures should be provided rather than aliases.

Commands within loops are not placed in the history
list. Control structures should be parsed rather than being recognized as
built-in commands. This would allow control commands to be placed anywhere,
to be combined with `|', and to be used with `&' and `;' metasyntax.

Glob-patterns which do not use `?', `*' or `[]' or which use `{}' or `~'
are not negated correctly.

The single-command form of if does output redirection even if
the expression is false and the command is not executed.

ls-F includes file identification characters when sorting filenames
and does not handle control characters in filenames well. It cannot be
interrupted.

Report bugs to tcsh-bugs@mx.gw.com, preferably with fixes. If you want to
help maintain and test tcsh, send mail to listserv@mx.gw.com with the text
`subscribe tcsh <your name>' on a line by itself in the body. You can
also `subscribe tcsh-bugs <your name>' to get all bug reports, or
`subscribe tcsh-diffs <your name>' to get the development list plus
diffs for each patchlevel.