Changes since 20030621:
* A bug in which could cause memory corruption when a posix
function invoked another one has been fixed.
* A bug in which a file descriptor>2 could be closed before
executing a script has been fixed.
* A parsing error for <() and >() process subsitituions inside
command substitution has been fixed.
* A parsing error for patterns of the form {...}(...) when
used inside ${...} has been fixed.
* An error in which expanding an indexed array inside a compound
variable could cause a core dump has been fixed.
* A bug in which under on rare ocassions a job completion interrupt
could cause to core dump has been fixed.
* A bug in which process substitution embeded within command
substitution would generate a syntax error has been fixed.
This update does also fix the build problems on NetBSD-current reported
by Steven M. Bellovin in PR pkg/22422.
Changes since 20030422 (from the release notes):
A source and binary update. There are few small but significant patches
for ksh and nmake. nmake -l/+l library list generation is much improved.
IBM z-series { linux.s390, linux.s390-64 } and i-series { linux.ppc64 }
binary architectures have been added, and the ebcdic { mvs.390 } has
been updated after a long absence.
Tested on 1.6R (i386).
Changes:
03-03-18 --- Release ksh93o ---
03-03-18 A -N unary operator was added to test and [[...]] which returns
true if the file exists and the file has been modified since it
was last read.
03-03-18 The TIMEFORMAT variable was added to control the format for
the time compound command. The formatting description is
described in the man page.
03-03-06 A -N n option was added to read which causes exactly n bytes
to be read unlike -n n which causes at most n bytes to be read.
03-03-03 Three new shell variables were added. The variable .sh.file
stores the full pathname of the file that the current command
was found in. The variable .sh.fun names the current function
that is running. The variable .sh.subshell contains the depth
of the current subshell or command substitution.
03-03-03 When the DEBUG trap is executed, the current command line after
expansions is placed in the variable .sh.command. The trap
is also now triggered before each iteration of a for, select,
and case command and before each assignment and redirection.
03-02-28 Function definitions are no longer stored in the history file so
that set -o nolog no longer has any meaning.
03-02-28 All function definitions can be displayed with typeset -f not
just those stored in the history file. In addition, typeset +f
displays the function name followed by a comment containg the
line number and the path name for the file that defined this function.
03-02-28 A bug in which the value of $LINENO was not correct when executing
command contained inside mult-line command substitutions has been
fixed.
03-02-19 Since some existing ksh88 scripts use the undocumented and
unintended ability to insert a : in front of the % and # parameter
expansion operators, ksh93 was modified to accept :% as equivalent
to % and :# as equivalent to # with ${name op word}.
03-02-14 A bug which could cause a core dump when reading from standard
error when standard error was a pty has been fixed.
03-02-14 The shell arithmetic was modified to use long double on systems
that provide this data type.
03-02-09 A bug in which a function located in the first directory in FPATH
would not be found when the last component of PATH was . and the
current directory was one of the directories in PATH has been fixed.
03-02-07 The trap and kill builtin commands now accept a leading SIG prefix
on the signal names as documented.
03-02-05 A bug in the expansion of ${var/$pattern}, when pattern contained
\[ has been fixed.
03-02-05 A bug in which .sh.match[n], n>0, was not being set for substring
matches with % and %% has been fixed.
03-01-15 A bug in which getopts did not work for numerical arguments specified
as n#var in the getopts string has been fixed.
03-01-09 A bug in which using ${.sh.match} multiple times could lead to
a memory exception has been fixed.
03-01-06 A bug in the expansion of ${var/pattern/$string} in the case that
$string contains \digit has been fixed.
03-01-02 A -P option was added for systems such as Solaris 8 that support
profile shell.
03-01-02 For backward compatibility with ksh88, arithmetic expansion
with ((...)) and let has been modified so that if x is a zero-filled
variable, $x will not be treated as an octal constant.
have it be automatically included by bsd.pkg.mk if USE_PKGINSTALL is set
to "YES". This enforces the requirement that bsd.pkg.install.mk be
included at the end of a package Makefile. Idea suggested by Julio M.
Merino Vidal <jmmv at menta.net>.
Changes from 20020922 (other than bug fixes) are:
* The code to display compound objects was rewritten to make it easier
for runtime extensions to reuse this code.
* A change was made to allow runtime builtins to be notified when a
signal is received so that cleanup can be performed.
* User applications can now trap the ALRM signal. Previously, the ALRM
signal was used internally and could not be used by applications.
KSH-93 is the most recent version of the KornShell Language described
in "The KornShell Command and Programming Language," by Morris
Bolsky and David Korn of AT&T Bell Laboratories. The KornShell is
a shell programming language, which is upward compatible with "sh"
(the Bourne Shell), and is intended to conform to the IEEE P1003.2/ISO
9945.2 Shell and Utilities standard. KSH-93 provides an enhanced
programming environment in addition to the major command-entry
features of the BSD shell "csh". With KSH-93, medium-sized programming
tasks can be performed at shell-level without a significant loss
in performance. In addition, "sh" scripts can be run on KSH-93
without modification.