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