Subject: PR/36080 CVS commit: pkgsrc/shells/osh
To: None <,,>
From: Jeremy C. Reed <>
List: pkgsrc-bugs
Date: 03/26/2007 16:50:04
The following reply was made to PR pkg/36080; it has been noted by GNATS.

From: "Jeremy C. Reed" <>
Subject: PR/36080 CVS commit: pkgsrc/shells/osh
Date: Mon, 26 Mar 2007 16:43:35 +0000 (UTC)

 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
 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.
 	* 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).
 	* 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.
 	* Added SYSCONFDIR and a new `man' target.
 	* 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.
 	* 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.
 	* 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.
 	The following files have been removed in this release:
 		examples/*: These files are now available at:
 		   tests/*: ... until I have a chance to rewrite them ...
 	* Changed all instances of `UNIX' to `Unix' since the name
 	  of the Unix operating system is not an acronym.
 	* Fixed a possible, but very unlikely, memory leak.
 	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] .
 	* 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).
 	* 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.
 	* 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.