vi with an 8-bit shell
Michael Greim
greim at sbsvax.UUCP
Fri Jul 29 19:20:19 AEST 1988
In article <571 at etive.ed.ac.uk>, simon at lfcs.ed.ac.uk (Simon Brown) writes:
< If you use '%' or '#'in a shell-escape, such as
< :!diff % %.orig
< then vi will set the high-bit on the substituted filenames. If you use a
< shell which passes 8-bit data correctly (such as ksh-i), then you get:
< diff: mumble.c: Invalid argument
< This doesn't happen for sh or csh, of course, since they strip 8-bit data.
<
< See the unix0() function in ex_unix.c.
<
<
< Simon.
Yes, it's there. Probably it's for filenames which contain shell
meta characters like "*" or just plain spaces. By quoting vi ensures that
the filename is "correctly" interpreted by the shell. Most people, like
me, never notice such a thing, because they have plain sh or csh.
I think when vi was written, there was no such thing as a "8 bit" shell.
Can you come up with a fix ?
-mg
--
+------------------------------------------------------------------------------+
| UUCP: ...!uunet!unido!sbsvax!greim | Michael T. Greim |
| or greim at sbsvax.UUCP | Universitaet des Saarlandes |
| CSNET: greim%sbsvax.uucp at Germany.CSnet| FB 10 - Informatik (Dept. of CS) |
| ARPA: greim%sbsvax.uucp at uunet.UU.NET | Bau 36, Im Stadtwald 15 |
| Phone: +49 681 302 2434 | D-6600 Saarbruecken 11, West Germany |
+------------------------------------------------------------------------------+
| # include <disclaimers/std.h> |
+------------------------------------------------------------------------------+
More information about the Comp.bugs.4bsd.ucb-fixes
mailing list