[hacknews] sh

david@utzoo.UUCP (David Trueman) (05/08/84)

I have fixed a few relatively minor bugs in the shell:  the `value' of
a command is supposed to be the status returned by wait(2) plus octal 200 if
the command terminates abnormally--it was not--it is now; the shell built-in
`wait' was not always returning the correct exit status--it does now.

Sh(1) now uses the directory(3) scanning library routines when it reads a
directory to do filename expansion.  This provides a modest performance
improvement, but more importantly, enhances portability.
-- 
				David Trueman @ U of Toronto Zoology
				{allegra,ihnp4,linus,decvax}!utzoo!david

david@utzoo.UUCP (David Trueman) (07/19/84)

The shell has been changed to unconditionally set the environment variable
IFS on startup.  It is set to space, tab, newline.  IFS can still be changed
within a shellfile, but the changed value will not be known to any children
of that process.
-- 
				David Trueman @ U of Toronto Zoology
				{allegra,ihnp4,linus,decvax}!utzoo!david

david@utzoo.UUCP (David Trueman) (12/17/84)

I installed a bug fix to sh(1) that was reported on the net.  The shell
was not doing the right thing on the command:

	glurp ; echo hello

It should print:
	glurp: not found
	hello
whereas it was only printing the first line.  Perhaps more seriously, it
was also goofing:
	glurp || echo hello

The new version handles these cases correctly.
-- 
				David Trueman @ U of Toronto Zoology
				{allegra,ihnp4,linus,decvax}!utzoo!david

david@utzoo.UUCP (David Trueman) (07/09/85)

There was a bug in the built-in expr in the recently installed shell.
When doing a regular expression match using parentheses to select
a substring, memory corruption was occurring.  The (very nasty) symptom 
was the creation of a file with an unspeakable name, containing garbage.

This version also has a smaller data size due to dynamically allocating the
buffer for reading directories.  The smaller data size results in faster
loading of a new shell.  The directory-scanning code should use the 
directory(3) routines, but I've yet to resolve some internal conflicts.
At least with this change, all the directory accesses are isolated in one
place, making a future change to the library routines easier.
-- 
				David Trueman @ U of Toronto Zoology
				{allegra,ihnp4,linus,decvax}!utzoo!david