Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!linus!genrad!decvax!harpo!floyd!vax135!ariel!houti!hogpc!houxm!ihnp4!zehntel!zinfandel!mark
From: mark@zinfandel.UUCP
Newsgroups: net.unix-wizards
Subject: vi/csh strange bug -- please help - (nf)
Message-ID: <1071@zehntel.UUCP>
Date: Fri, 17-Jun-83 01:19:13 EDT
Article-I.D.: zehntel.1071
Posted: Fri Jun 17 01:19:13 1983
Date-Received: Tue, 21-Jun-83 00:15:47 EDT
Lines: 101

#N:zinfandel:12400029:000:2390
zinfandel!mark    Jun 15 15:54:00 1983

I don't know where to post this bug-report/help-request,
so here goes.

Environment:
    vax 11/750 running 4.1BSD
    vi version 3.6
    csh version 4.1 10/9/80 (most modules) (see postscript for details).

Problem:
    alias vi '(echo start; /usr/ucb/vi \!*; echo end)'
    vi file

Now hit the break key.
I get back to the shell with my terminal not reset.
vi is still running. If I'm unlucky vi has (apparently) read keyboard EOF
since it continuously scrolls my file by the screen until the end of file,
at which point it prints its "At EOF" message ad infinitum.
Vi must be killed manually.

    alias vi '/bin/csh -cf "echo start; /usr/ucb/vi \!*; echo end"'
    vi file

works just fine, as does

    alias vi '(/usr/ucb/vi \!*)'
    vi file

and

    alias vi /usr/ucb/vi
    vi file

Note that just running vi in a subshell isn't sufficient;
the subshell must contain multiple commands.
Anyone know what's going on here?
Seems that if this is a problem in the shell that it might
bite someplace else too.

Mark Wittenberg
...!decvax!sytek!zehntel!mark
...!ucbvax!menlo70!sytek!zehntel!mark
...!teklabs!zehntel!mark

PS. If you really want to look at this problem here's the output
    of "what /bin/csh /usr/ucb/vi":

/bin/csh:
	sh.c 4.2 3/11/81
	sh.dol.c 4.2 5/3/81
	sh.err.c 4.1 10/9/80
	sh.exec.c 4.1 10/9/80
	sh.exp.c 4.1 10/9/80
	sh.func.c 4.5 81/06/19
	sh.glob.c 4.2 3/11/81
	sh.hist.c 4.1 10/9/80
	sh.lex.c 4.1 10/9/80
	sh.misc.c 4.1 10/9/80
	sh.parse.c 4.1 10/9/80
	sh.print.c 4.1 10/9/80
	sh.sem.c 4.1 10/9/80
	sh.set.c 4.1 10/9/80
	sh.proc.c	4.6 (Berkeley) 81/05/03
	sh.dir.c 4.1 10/9/80
	sh.time.c 4.1 10/9/80
	alloc.c 4.1 10/9/80
	sh.init.c 4.1 10/9/80
	printf.c 4.1 10/9/80

/usr/ucb/vi:
	ex.c	6.4 11/8/80
	ex_addr.c	6.1 10/18/80
	ex_cmds.c	6.3 11/3/80
	 Version 3.6, 11/3/80.
	ex_cmds2.c	6.1 10/18/80
	ex_cmdsub.c	6.1 10/18/80
	ex_data.c	6.1 10/18/80
	ex_get.c	6.1 10/18/80
	ex_io.c	6.2 10/23/80
	ex_put.c	6.4 11/8/80
	ex_re.c	6.2 10/23/80
	ex_set.c	6.3 10/30/80
	ex_subr.c	6.3 11/8/80
	ex_temp.c	6.2 10/23/80
	ex_tty.c	6.2 10/30/80
	ex_unix.c	6.1 10/18/80
	ex_v.c	6.1 10/18/80
	ex_vadj.c	6.2 10/23/80
	ex_vget.c	6.2 10/23/80
	ex_vmain.c	6.2 10/23/80
	ex_voper.c	6.2 10/23/80
	ex_vops.c	6.3 10/23/80
	ex_vops2.c	6.2 10/23/80
	ex_vops3.c	6.2 10/23/80
	ex_vput.c	6.1 10/18/80
	ex_vwind.c	6.1 10/18/80
	 printf.c:2.2 6/5/79
	printf.c	6.1 10/18/80
	bcopy.c	6.1 10/18/80