Path: utzoo!utgpu!attcan!uunet!mcvax!unido!sbsvax!greim From: greim@sbsvax.UUCP (Michael Greim) Newsgroups: comp.bugs.4bsd Subject: Re: vi with an 8-bit shell Message-ID: <575@sbsvax.UUCP> Date: 29 Jul 88 09:20:19 GMT References: <571@etive.ed.ac.uk> Organization: Universitaet des Saarlandes, Saarbruecken, West Germany Lines: 30 In article <571@etive.ed.ac.uk>, simon@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@sbsvax.UUCP | Universitaet des Saarlandes | | CSNET: greim%sbsvax.uucp@Germany.CSnet| FB 10 - Informatik (Dept. of CS) | | ARPA: greim%sbsvax.uucp@uunet.UU.NET | Bau 36, Im Stadtwald 15 | | Phone: +49 681 302 2434 | D-6600 Saarbruecken 11, West Germany | +------------------------------------------------------------------------------+ | # include | +------------------------------------------------------------------------------+