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'.
as shells/osh.
Osh is a re-implementation of the old and obsolete shell version,
which was in standard use up to UNIX 6th Edition and was supplied
as osh with UNIX 7th Edition. Its command language is a sparse
subset of those of modern shells and is mostly common both to sh(1)
and csh(1).
This pkgsrc entry is based on the FreeBSD ports entry for osh.