January 4th, 2012· This version changes the osh exit status for alias and unalias so that they exit with a false (1) status when there are no aliases to print, set, or unset.
· Otherwise, they exit with a true (0) status when there is no error.
· It adds 'version' as an osh special built-in command, replacing the previous 'version' alias found in examples/dot.oshrc.
· It changes the _XOPEN_SOURCE definition from 600 to 600L in mkconfig.
· It also adds DEBUG_ALIAS, DEBUG_GLOB, and DEBUG_PROC definitions (undefined by default) to err.h for printf debugging.
December 2nd, 2011· This version adds useful build system info from 'uname -srm' to the built binaries.
· It updates the included example osh dot files for the sake of simplicity.
· It also adds handy new 'v' and 'version' aliases.
October 27th, 2011· This version is dedicated to the memory of Dennis M. Ritchie (dmr).
· It fixes a mkconfig problem on older OpenBSD releases and a globbing problem caused by an unsigned integer overflow.
· It adds $# (as a synonym for $n) and $* parameters, and a new command aliasing feature that is similar to csh(1) aliasing in some respects.
· Style changes were made in all of the manual pages, and a new "Aliases (+)" subsection was added to osh.1.
· The included example osh dot files were updated.
May 2nd, 2010· This release adds and documents a new, osh history-file-support feature to save the user's command-line history to the user $h/.osh.history file. This is a simple user-convenience feature.
March 6th, 2010· This release changes osh globbing so that it's handled in the main osh process.
· This is for user convenience to allow (for example) `mkdir some_really_long_directory_name... ; cd some*...' and globbing for other special built-in commands as well.
December 19th, 2009· This release incorporates changes from osh-20091127-p1.patch to fix a file offset and lseek(2) problem with the external goto command on OpenSolaris. This problem resulted in unexpected goto behavior for sh6 scripts. This release also makes installation of package documentation and examples optional instead of default install behavior. Lastly, this release changes the example rc init files so that users can use osh to initialize/invoke sh6 by doing "[exec] osh [-i | -l] sh6". This can make it easier for users to use sh6 interactively if they've never done so before.
November 29th, 2009· This release adds the program name to osh diagnostics (e.g., "osh: syntax
· error"). It also adds COPYRIGHT section headings and appropriate copyright
· notices to all manuals. Further code cleanup and rechecking with splint eases future
· maintenance.
October 29th, 2009· This release fixes a compilation problem on AIX caused by not wrapping WCOREDUMP(s)
· with #ifdef WCOREDUMP ... #endif . A minor code cleanup reduces unnecessary code
· duplication. Package documentation and example rc files are now installed by default
· in DOCDIR. MANDIR now defaults to $(PREFIX)/share/man/man1 .
May 28th, 2009· This release fixes an echo bug in osh that causes `echo ""' to print an unnecessary diagnostic.
· It also fixes a 'sigign' bug in osh that can cause incorrect signal ignoring behavior for subshells. For osh features, it adds 'cd' as a synonym for the 'chdir' special
· command.
· It also adds $m as a special parameter for the value of the MANPATH
· environment variable.
December 12th, 2008· This release changes the effect of the "-v" command-line option so that, in addition to printing non-blank command lines to the standard error, the shell also prints each blank/empty command line as an empty line. It also changes the fd2 "-e" command-line option so that it reflects the documented behavior. For example, this change causes invocation of "fd2 -ef file command" to redirect both conventional output and diagnostic output from "command" to "file".
November 21st, 2008Major changes include:
· This release adds a configure case for DragonFly BSD to prevent a "config.h" compilation warning. It fixes a bug introduced in version 20081026 which causes the shell to incorrectly print empty termination messages for the SIGINT signal in some cases when it should not do so. It also fixes a bug introduced in version 20061230 which causes the shell to incorrectly handle unescaped terminating backslash () characters at the end of "string" when invoked as "osh -c string".
· See http://v6shell.org/src/CHANGES for full details.
October 26th, 2008[osh-20081026]:
· * New files: defs.h, sh.h, util.c, v.c
· * Moved common definitions for all programs to "defs.h".
· * Added an osh package comment to the top of all header files.
INSTALL, Makefile:
· * Changed the "oshall" target to only build osh since the utilities
· are now built into the shell.
· * Changed the "install-oshall" target to only install osh and its
· manual pages. This includes the utility manual pages since they
· are not fully documented elsewhere.
mkconfig:
· * Changed the comment describing _XOPEN_SOURCE and _BSD_SOURCE for
· compiling the osh package to be more neutral.
*.1.in:
· * Synced the manual pages w/ the code as needed.
osh.c:
· * Include "sh.h" for needed declarations.
· * See "util.c:" below for integrated shell utilities description.
· * Renamed cmd_index() to cmd_lookup(), and changed the algorithm from
· a linear search to a binary search.
· * Added a base reallocation multiplier to glob()'s gavnew(). This
· doubles the number of new arguments for which to reallocate memory
· when the current allocation will not be large enough for the resulting
· argument vector. This reduces the number of realloc()s required
· for very large argument vectors while allowing the first malloc()
· to be a relatively small allocation for up to 126 matching
· file-name arguments.
util.c:
· * Include "sh.h" for needed declarations.
· * Integrated the external `if', `goto', and `fd2' shell utilities as
· special built-in commands to improve shell performance. Also, added
· `echo' as a special built-in command. Osh executes each of these
· built-ins in a subshell. Consequently, the I/O for each can be
· redirected as before, and the argument list for each can be the
· result of a call to glob() as before.
fd2.c:
· * Added a new `-e' command-line option to fd2.