Date: Wed, 9 Aug 1995 17:43:09 PDT From: Bill Fenner <fenner@parc.xerox.com> To: FreeBSD-gnats-submit@freebsd.org Subject: bin/669: csh doesn't allow !-2* Message-ID: <199508100043.RAA11259@baobab.parc.xerox.com> Resent-Message-ID: <199508100030.RAA06275@freefall.FreeBSD.org>
index | next in thread | raw e-mail
>Number: 669
>Category: bin
>Synopsis: csh doesn't allow !-2*
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: freebsd-bugs
>State: open
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Wed Aug 9 17:30:01 PDT 1995
>Last-Modified:
>Originator: Bill Fenner
>Organization:
Xerox PARC
>Release: FreeBSD 2.0-BUILT-19950527 i386
>Environment:
>Description:
csh doesn't allow the full history syntax documented in the man page. The
man page says:
The `:' separating the event specification from the word designator can
be omitted if the argument selector begins with a `^', `$', `*' `-' or
`%'.
However,
% echo !-2*
2*: Event not found.
>How-To-Repeat:
Use any of the argument selectors ^, *, - or % after a history command that
is not !!
>Fix:
Note, I didn't take the time to gain a deep understanding of the code, but
this fixes the immediate problem. I don't know if it creates new problems.
Someone who knows csh internals (is there anyone left?) might want to review
it to be absolutely sure.
--- bin/csh/lex.c.orig Tue May 30 00:06:35 1995
+++ bin/csh/lex.c Thu Aug 10 00:08:22 1995
@@ -1187,7 +1187,7 @@
}
np = lhsb;
event = 0;
- while (!cmap(c, _ESC | _META | _QF | _QB) && !any("${}:", c)) {
+ while (!cmap(c, _ESC | _META | _QF | _QB) && !any("^$*-%{}:", c)) {
if (event != -1 && Isdigit(c))
event = event * 10 + c - '0';
else
>Audit-Trail:
>Unformatted:
home |
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199508100043.RAA11259>
