Subject: CVS commit: pkgsrc/shells/osh
To: None <pkgsrc-changes@NetBSD.org>
From: Jeremy C. Reed <reed@netbsd.org>
List: pkgsrc-changes
Date: 03/26/2007 16:43:35
Module Name:	pkgsrc
Committed By:	reed
Date:		Mon Mar 26 16:43:35 UTC 2007

Modified Files:
	pkgsrc/shells/osh: Makefile distinfo
Added Files:
	pkgsrc/shells/osh/patches: patch-aa

Log Message:
Update osh to version 20070324. This is for PR 36080 from upstream
developer.

pkgsrc changes include:

Use BUILD_TARGET=oshall as request in PR.
And make it work with PKGMANDIR.

CHANGES file includes:

Changes that improve compatibility w/ the Sixth Edition Unix shell
are marked w/ a `C:' in the details below.

-------------------------------------------------------------------------------
[osh-20070324]:
osh.c:
	* In main(), changed when fdfree() is called so that it is in a more
	  ideal sequence with other operations according to how the shell is
	  invoked (e.g., interactive shell vs. non-interactive shell).

-------------------------------------------------------------------------------
[osh-20070321]:
	* Imported the project into a local subversion repository.

	* Changed the all of the code to "#include <stdbool.h>" and to use
	  the "bool" data-type macro where appropriate.

Makefile:
	* Added SYSCONFDIR and a new `man' target.

osh.c:
	* Defined _PATH_SYSTEM_LOGIN as `SYSCONFDIR/**/"/osh.login"' instead
	  of "/etc/osh.login" so that the user can use SYSCONFDIR (/etc by
	  default) at build-time to specify the directory where the shell
	  shall search for its system-wide initialization file.

	* Added a new special parameter, $v, which makes the version of the
	  osh package available as a read-only string.  The format is
	  `osh-YYYYMMDD' for official releases and `osh-current (YYYYMMDD)'
	  (interpreted as one word) for development snapshots.

	* Fixed a bug where interactive shells were no longer ignoring SIGTERM
	  when invoked, as they are supposed to.  Now, SIGTERM is being ignored
	  again upon invocation of all interactive shells.

	* Fixed the output from doing a `sigign' so that it matches its
	  documentation in osh.1: "..., a list is printed of those signals
	  which are ignored by sigign in the current shell."

	  Previously, the output from a `sigign' could be a little confusing.
	  Now, its output only indicates those cases where a given signal is
	  being ignored w/ the possibility that it can then be unignored
	  (reset) in the current shell context.

if.c:
	* Added 3 new primaries: -ef (equal files - same device, same inode),
	  -nt (newer than), -ot (older than).  See the if(1) manual page for
	  full details.

-------------------------------------------------------------------------------
[osh-20070131]:
osh.1:
	* Made a few minimal changes to synchronize the manual w/ the code.

osh.c	1.2 (jneitzel) 2007/01/14:
	* Changed the `chdir: No old directory' diagnostic to
	  `chdir: No previous directory' to match the manual.

-------------------------------------------------------------------------------
[osh-20061230]:
	The following files have been removed in this release:
		examples/*: These files are now available at:
			    http://jneitzel.sdf1.org/osh/initialization_files/
		   tests/*: ... until I have a chance to rewrite them ...

*.1:
	* Changed all instances of `UNIX' to `Unix' since the name
	  of the Unix operating system is not an acronym.

pexec.c:
	* Fixed a possible, but very unlikely, memory leak.

osh.c:
	C: Rewrote the shell!  It is now a combination of the ports of the
	   original source code from sh6.c and glob6.c (see CHANGES_sh-to-sh6)
	   w/ the prior enhancements which were found in osh-060124/osh*.[ch] .

fd2.c:
	* Removed the call to lseek(2) to end-of-file for errors.
	  The shell determines when this is necessary.

	* Changed the `: no shell' diagnostic to `: No shell!'
	  in the spirit of sh6(1).

goto.c:
	* Fixed a bug which interfered w/ finding a requested label when
	  its first character had the high-order bit set.  The value of the
	  first character is now passed to getlabel() as an unsigned char
	  converted to an int to allow correct comparison in such a case.

if.c:
	* Removed the call to lseek(2) to end-of-file for errors.
	  The shell determines when this is necessary.

	* Changed the method used to build the argument list for all commands
	  executed by this utility, and removed the `Too many args' diagnostic.
	  The maximum length of the argument list for a command is now limited
	  only by the maximum length that the invoker can pass and by any
	  system-imposed limit for execve(2) (see E2BIG in errno(2)).

	* Changed the `: no shell' diagnostic to `: No shell!'
	  in the spirit of sh6(1).

	* Changed the diagnostic used for `!', `-a', `-o', and `(' operator
	  errors from `: argument expected' to `: expression expected'.


To generate a diff of this commit:
cvs rdiff -r1.16 -r1.17 pkgsrc/shells/osh/Makefile
cvs rdiff -r1.8 -r1.9 pkgsrc/shells/osh/distinfo
cvs rdiff -r0 -r1.4 pkgsrc/shells/osh/patches/patch-aa

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.