🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.bugs.4bsd
Article #1112

Re: vi with an 8-bit shell

#1112
From: Simon Brown
Date: Sat, 30 Jul 1988 20:17
36 lines
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!simon
References: <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