Article View: comp.bugs.4bsd
Article #1112Re: vi with an 8-bit shell
From: Simon Brown
Date: Sat, 30 Jul 1988 20:17
Date: Sat, 30 Jul 1988 20:17
36 lines
2207 bytes
2207 bytes
In article <575@sbsvax.UUCP> greim@sbsvax.UUCP (Michael Greim) writes: >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. >< >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 ? well, just changing the "case '%'" switch-field in unix0() so it uses *up++ = *fp++ in place of *up++ = *fp++ | QUOTE; seems to do the trick. (i naughtily patched the binary instead of changing the source, but that was just to quickily check it out :-). of course, it means you have to explicitly quote it if the filename contains shell meta-chars, but that's not too much of a hardship... Simon. | Simon Brown | UUCP: mcvax!ukc!lfcs!simon | Laboratory for Foundations of Computer Science | ARPA: simon%lfcs.ed | Department of Computer Science | @nss.cs.ucl.ac.uk | University of Edinburgh, Scotland, UK. | JANET: simon@uk.ac.ed.lfcs
Technical Details
Message-ID:
<594@etive.ed.ac.uk>Path:
arc1-ca.pugleaf.net!utzoo!utgpu!water!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!bloom-beacon!mit-eddie!rutgers!ucsd!nosc!helios.ee.lbl.gov!lll-tis!lll-winken!uunet!mcvax!ukc!etive!lfcs!simonReferences:
<571@etive.ed.ac.uk> <575@sbsvax.UUCP>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!water!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!bloom-beacon!mit-eddie!rutgers!ucsd!nosc!helios.ee.lbl.gov!lll-tis!lll-winken!uunet!mcvax!ukc!etive!lfcs!simon From: simon@lfcs.ed.ac.uk (Simon Brown) Newsgroups: comp.bugs.4bsd Subject: Re: vi with an 8-bit shell Message-ID: <594@etive.ed.ac.uk> Date: 30 Jul 88 20:17:23 GMT References: <571@etive.ed.ac.uk> <575@sbsvax.UUCP> Sender: news@etive.ed.ac.uk Reply-To: simon@lfcs.ed.ac.uk (Simon Brown) Organization: LFCS, University of Edinburgh Lines: 35