File:  [MW Coherent from dump] / coherent / d / bin / sh / Changes.1992
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Wed May 29 04:56:39 2019 UTC (7 years, 2 months ago) by root
Branches: MarkWilliams, MAIN
CVS tags: relic, HEAD
coherent

sh/Changes
steve's sh source change log, begun 6/19/92

Fri Jun 19 22:21:10 1992 PDT
Makefile
		Added -DYYMAXDEPTH=300 to y.tab.c compilation.
		Comeau C++ required a greater stack depth for its script.
exec3.c
		Added code to allow redirection with built-in "eval".
		Deleted code to execute ':' comment lines with the empty
		function s_colon, this now happens in yylex().
		In s_read(), set readflag before yylex() to tell it not
		to ignore comments.
		Minor cosmetic changes.
extern.c
		Added global readflag, used by s_read() and yylex().
lex.c
		In yylex(), the previous code ate '#'-delimited comments
		to the following newline.  Now it eats both '#'- and ':'-
		delimited comments, unless doing a "read".
		Minor cosmetic changes.
sh.h
		Added extern readflag, added #include <string.h> and deleted
		string function declarations, defined index() and rindex()
		as macros calling strchr() and strrchr().

Wed Jun 24 16:53:48 1992 PDT
eval.c
		V3.2.9: Improved handling of nested shell variable evaluation:
			${x-${y}foo}
		now does something reasonable.

Wed Jul  1 09:15:59 1992 PDT
exec3.c
lex.c
		V3.3.0: Retracted above change for ':'-delimited comments,
		because e.g. "echo foo : 2 3 4" should echo ": 2 3 4".

Wed Jul  1 15:36:07 1992 PDT
eval.c
		V3.3.1: In evalvar(), if a variable name does not begin
		with a legal character, evalvar() now realizes
		that it is not a variable and passes it unchanged
		instead of complaining.  Thus,
			echo "foo.$/"
		used to produce an "Illegal variable name" error,
		now it prints
			foo.$/
		This is desirable for AT&T compatability,
		says Gary Comeau via norm.
tab.c
		Added comments to identify table positions.

Thu Jul  9 14:09:12 1992 PDT
eval.c
		V3.3.2: In evalvar(), added code so that e.g.
			x=${FOO-"zap"}
		strips off the quotes on "zap", as requested by hal.
		The way this evalvar() code works in general is disgraceful.
exec3.c
var.c
		Changed getwd() to _getwd(), in keeping with libc change.

Wed Jul 29 12:22:18 1992 PDT
exec3.c
		V3.3.3: Builtin with redirection such as
			eval /lib/cpp '$1' >baz
		did not return correct exit status.  The parent
		process now waits for the child to exit and takes its status.

Fri Aug 21 09:48:41 1992 PDT
Makefile
		V3.3.4: removed -VSINU from CFLAGS.
sh.h
		Redefined NODE so that -VSINU compilation is no longer needed.

Fri Aug 28 12:16:29 1992 PDT
eval.c
		V3.3.5: changed the handling of shell variable assignments
		of the form
			a=${b=c}
		and the related forms with "-?+" instead of "=".
		First, an optional ':' before the "-=+" is now ignored, so
			a=${b:=c}
		now works (as in Unix) rather than complaining
		about an illegal variable name.
		Second, a variable set with an empty value (e.g. "foo=")
		is now regarded as unset rather than set, so that e.g.
			foo=
			baz=${foo=whatever}
		used to set baz to the (empty) value of foo,
		but sets baz (and foo) to the value "whatever".
		This is consistent with Interactive Unix /bin/sh.

Mon Aug 31 11:44:57 1992 PDT
exec3.c
		V3.3.6: in s_break, delete reset() after
		"break" or "continue" error message.  Previously,
		"break" or "continue" outside of a loop terminated
		shell execution; now the error is nonfatal.
		This is consistent with SV /bin/sh, according to vlad.

Mon Aug 31 12:30:03 1992 PDT
main.c
		V3.3.7: case RUEXITS, changed to make "${foo?whatever}"
		exit as it should when foo is not set.
		User Richard Lindner reported the bug,
		I broke sh when I made a change requested by piggy.

Mon Sep 28 15:04:19 1992 PDT
		V3.3.8: relinked with new libc.a containing execve()
		changes to understand interpreter script specifications.
		No change to sh source per se.

Thu Oct  1 17:24:57 1992 PDT
eval.c
		V3.3.9: in evalcom(), save slret and restore it in cloned
		child process so that grave commands referencing $? work
		as expected.

Fri Oct  2 17:19:19 1992 PDT
exec1.c
		V3.4.0: in comscom(), case FASSG and case FIORS|FASSG,
		set slret to 0 if command is just an assignment.  Thus,
			false; x1=$?; x2=$?
		now sets x2 to 0 rather than 1.

Wed Oct 28 13:55:04 1992 PST
exec1.c
		V3.4.1: in pipescom(), add conditionals to test pipev[0|1]
		before closing it.  If fd 0 or 1 is closed before the dup2
		call, the pipe call can set pipev[01] to 0 or 1, and the
		close (intended to close the extra fd) can actually close
		the working fd.  This fixes a bug reported by user Blatchey.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.