Changes since 2008-11-04 follow.

:::::::: INIT ::::::::

09-04-28 package.sh: handle admin.db contact field $9
09-04-15 iffe.sh: add implicit "ini" op to initialize io for subsequent ops
09-03-31 regress.sh: EXPORT before test => global ENVIRON[]
09-03-26 package.sh: test fail pattern is 'fail[es]'
09-03-26 UNIT - ... appends (options) to command line
09-03-19 TEST.mk: x.tst => x only if x is command target
09-03-15 regress.sh: add ${MAIN} for base name of main unit
09-03-10 TEST.mk: add .SOURCE:tests if tests is a dir
09-03-03 regress.sh: allow command line unit to override UNIT
09-03-03 mktest.sh: handle IO == $'
09-02-02 package.sh: delay $INSTALLROOT/bin/.paths generation until mamprobe runs
09-01-30 cc.mvs.390: c89 balks at [ ()] in -Dname="..."!
09-01-27 package.sh: add isascii() to use ratz instead of tar
09-01-20 hurl.sh: add --size=bytes option
09-01-08 TEST.mk: add test.* prereqs, multiple arg lists with :T=*: binding
09-01-03 regress.sh: fix UNIT to allow command line override
09-01-03 mktest.sh: handle TWD
08-12-24 package.sh: fix cross-compile HOSTTYPE logic
08-12-15 package.sh,hurl.sh: handle http codes { 301 302 303 }

:::::::: ksh93 ::::::::

09-05-01  --- Release ksh93t+  ---
09-05-01  A bug that caused a core dump when SIGWINCH was received and
	  both vi and emacs mode were off has been fixed.
09-04-22  Default alias compound='typeset -C' added.
09-04-15  A bug that caused ${...;} to hang for large files has ben fixed.
09-04-08  A change was made in the -n option which printed out an incorrect
	  warning with <>.
09-04-07  The emacs edit command M-_ and M_. and the vi command _ was fixed
	  to handle the case there there is no history file.
09-04-05  A bug in handling new-lines with read -n has been fixed.
09-04-05  The ENV variable defaults the the file named by $HOME/.kshrc rather
	  then to the string $HOME/.kshrc.
09-03-31  A bug in which a nested command substitution with redirections could
	  leave a file descriptor open has been fixed.
09-03-24  ksh now only uses the value of the _ variable on startup if it can
	  verify that it was set by the invoking process rather than being
	  inherited by some other ancestor.
09-03-24  When ksh is invoked without -p and ruid!=euid, and the shell is
	  compiled without SHOPT_P_UID or ruid<SHOPT_P_UID, the shell now
	  enables the -p option.  The previous version instead set the
	  euid to the ruid as it does for set +p.
09-03-24  When SHOPT_P_UID is defined at compile time and the shell is started
	  without -p and ruid!=euid and ruid>=SHOPT_P_UID then euid is set
	  to ruid. A bug that did the wrong test (ruid<SHOPT_P_UID) was fixed.
09-03-17  The sleep(1) builtin now accept and ISO 8601 PnYnMnDTnHnMnS
	  duration or date(1) compatible date/time operand.
09-03-10  If a variable that was left or right justified or zero-filled was
	  changed with a typeset statement that was left or right justified
	  or zero-filled, then the original justification no longer affects
	  the result.
09-03-10  A bug in the handling of traps when the last command in a script
	  is a subshell grouping command has been fixed.
09-03-03  A bug in which an expansion of the form ${!prefix@} could generate
	  an exception after the return from a function has been fixed.
09-02-02  A bug in restricted mode in which the value of ENV could be
	  changed from within a function has been fixed.
09-02-02  A bug in which an erroneous message indicating that a process
	  terminated with a coredump has been fixed.
09-02-02  The exit status when exit was called without an argument from
	  a signal handler was incorrect and has been fixed.
09-02-02  A bug in which a function autoloaded in a subshell could cause
	  a core dump when the subshell completed has been fixed.
09-02-02  A bug in which 2>&1 inside a command substitution wasn't working
	  correctly has been fixed.
09-02-02  A bug in the call stack of arithmetic function with 2 args
	  returning int has been fixed.
09-01-30  A bug in which 'eval print \$0' inside a function was giving the
	  wrong value for $0 has been fixed.
09-01-28  A bug in which a command substitution could return an exit status
	  of 127 when the pipefail option is enabled has been fixed.
09-01-26  ksh93 now generates an error message if you attempt to create
	  a global name reference to a local variable.
09-01-26  The [[ -v var ]] operator was modified to test for array elements.
09-01-23  The redirection operator <>; was added.  It is similar to <>
	  except that if the command it is applied to succeeds, the file
	  is truncated to the offset at the command completion.
09-01-23  The default file descriptor for <> was changed to 1.
09-01-20  A bug in which the exit status specified in an exit trap was
	  not used when a process terminated with a signal has been fixed.
09-01-19  A bug in which a signal whose default action is to terminate
	  a process could be ignored when the process is running a sub-shell
	  has been fixed.
09-01-19  A bug in which sending SIGWINCH to a process that reads from a pipe
	  could cause a memory fault has been fixed.
09-01-16  The -R unary operator was added to [[...]] and test to check whether
	  a variable is a  name reference.
09-01-16  The -v unary operator was added to [[...]] and test to check whether
	  a variable is set.
09-01-14  The unset built-in was modified to return 0 exit status when
	  unsetting a variable that was unset to conform with the POSIX
	  standard.
09-01-14  The unset built-in was modified to continue to unset variables
	  after encountering a variable that it could not unset to
	  conform to the POSIX standard.
09-01-14  The parameter expansion ${x+value} no longer expands the value of
	  the variable x when determining whether x is set or not.
09-01-13  A bug in which background jobs and pipelines that were not waited
	  for could, in rare instances, cause the shell to go into an infinite
	  loop or fail has been fixed.
09-01-06  A bug in indexed arrays of compound variables in which referencing
	  non-existent sub-variable in an arithmetic expression could cause
	  the sub-variable to be created has been fixed.
09-01-05  A bug in which the  character did not escape extended regular
	  expression pattern characters has been fixed.
08-12-24  A bug in which killing the last element of a pipe did not cause
	  a write to the pipe to generate a SIGPIPE has been fixed.
08-12-19  A bug which could cause command substitution to hang when the
	  last element of a pipeline in a command substitution was a built-in
	  and the output was more that PIPE_BUFF.
08-12-18  A bug which occurs when a here documented marker embedded in a
	  command substitution occurs on a buffer boundary has been fixed.
08-12-17  A bug in the output of typeset -p for variables that had attributes
	  but did not have a value has been fixed.
08-12-16  A bug in which a name reference to a name reference variable that
	  references an array element has been fixed.
08-12-16  A bug in which a variable given both the -A and -C attribute along
	  with an initial assignment didn't work correctly has been fixed.
08-12-10  The [[ -t fd ]] test was fixed to handle fd>9.
08-12-10  A bug where function stack misalignment could cause a bus error
	  has been fixed.
08-12-09  Command completion was changed to use  to quote special characters
	  instead of quoting the argument in single quotes.
08-12-07  A bug in typeset -m which occurred when the target node was an
	  associative array element has been fixed.
08-12-07  A timing bug on some systems (for example darwin), that could
	  cause the last process of a pipeline entered interactively to fail
	  with an "Exec format error" has been fixed.
08-12-04  SHOPT_BGX enables background job extensions. Noted by "J" in
	  the version string when enabled. (1) JOBMAX=n limits the number
	  of concurrent & jobs to n; the n+1 & job will block until a
	  running background job completes. (2) SIGCHLD traps are queued
	  so that each completing background job gets its own trap; $! is
	  set to the job pid and $? is set to the job exit status at the
	  beginning of the trap. (3) sleep -s added to sleep until the time
	  expires or until a signal is delivered.
08-12-04  The sign of floating point zero is preserved across arithmetic
	  function calls.
08-12-04  A bug that caused print(1) to produce garbled stdout/stderr
	  output has been fixed.
08-12-04  A bug in which printf "%d "'<euro>'" did not output the
          numerical value of the EURO symbol, 8354, has been fixed.
08-11-24  /dev/fd* and /dev/std* redirections are first attempted with
	  open() to preserve seek semantics; failing that the corresponding
	  file descriptors are dup()'d.
08-11-20  A bug which could cause a core dump if a function compiled with
	  shcomp was found has been fixed.
08-11-20  A bug in which jobs were not cleared from the jobs table for
	  interactive shells when the pipefail option is on has been fixed.
08-11-11  A bug in which a field that was unset in a type definition and later
	  set for an instance could appear twice when displaying the variable
	  has been fixed.
08-11-11  A bug in which running a simple command & inside a function would
	  not return the correct process id has been fixed.
08=11-10  A bug in which the exit status of a command could be lost if the pid
	  was that of the most recent command substitution that had completed
	  has been fixed.
08-11-10  The maximum depth for subshells has been increased from 256 to 65536.
08-11-06  A bug which could cause a core dump when the _ reference variable was
          used as an embedded type with a compound assignment has been fixed.


:::::::: pax ::::::::

08-12-31 pax.c,pax-vczip.c: add vczip compression format

:::::::: proto ::::::::

09-03-02 Makefile: eliminate master src paths from ../INIT/proto.c
09-01-15 sear.sh: update for msvcrt.dll link
08-11-15 sear.sh: add manifest logic

:::::::: tests ::::::::

09-04-27 sfio/tpool.c: update to match libast/sfio/sfpool.c patch
09-02-22 date.dat: add iso duration tests
09-02-02 sfio/tprintf.c: fix sfaprints() test
08-12-30 date.dat: add TM_WORK tests
08-12-19 date.dat,datey2k.dat: update for %_K

:::::::: 3d ::::::::

08-12-04 fs.c: change open(/dev/fd/NN,...) try open(2) first, then dup(2)

:::::::: cpp ::::::::

09-01-06 cpp.tst: add macro definition overwrite test
09-01-05 cpp.tst: add another multiple include guard test

:::::::: nmake ::::::::

09-03-24 Makerules.mk: --option[=value] compatibility with option[=value] until 2011
09-03-02 Makerules.mk: ues $(-recurse:/:/ /G:N=[0-9]*:O=N) for recursion limit
09-02-02 Makerules.mk: reset :PACKAGE: pkg:noinstall for each pkg
09-01-09 Makerules.mk: fix .TGZ to handle large manifests
09-01-09 Makerules.mk: :: foo.man[=N] installs in man/manN/foo.N (default 1)
09-01-06 bind.c: fix 2d .SOURCE* cross product virtual+dir bug
08-12-08 Makerules.mk: -lfoo/bar => bar plugin for foo
08-12-08 expand.c: handle -lfoo/bar prereqs
08-11-11 Makerules.mk: add %.pl => % for perl scripts
08-11-11 rules-win32.mk: rc requires native path to .rc file
08-11-04 bind.c: handle non-3d VPATH for absolute dirs in .SOURCE*

:::::::: builtin ::::::::

09-03-31 features/pty,Makefile: add pty.h and -lutil refs for linux -- great, another util library
09-02-14 join.tst: add a VSC test
09-02-14 tail.tst: add some VSC tests
09-02-02 mktemp: add
09-02-02 tail.tst: update for -b[blocks], +cl, -cl
09-01-30 pty.c: add <ast_time.h> (for fd_set!! on mvs.390)
09-01-12 tr.tst: add tests for trailing '-' in source and/or destination sets
09-01-03 mkfifo.rt: add

:::::::: codex ::::::::

09-04-15 codex.c: add --passfile=file

:::::::: bgp ::::::::

09-03-19 bgp-mrt.c: fix DUMP_V2 ipv6 => as32
09-03-11 bgp-mrt.c: handle TABLE_DUMP_V2 <13> records
08-11-13 bgp-mrt.c: handle undocumented BGP4MP <16,20> records
08-11-12 bgp-mrt.c: forgot to set rp->afi!

:::::::: ip_t ::::::::

09-03-19 ip_t.c,itlie.h: elide leading 0.* for 2-tuple external conversion
09-03-15 pt[v].h,pt[v]open.c: add Pt[v]prefix_t.data, pt[v]insert() returns new prefix
09-03-15 itlie.h: handle as set marker in last element

:::::::: time_t ::::::::

09-01-30 handle TMX_FLOAT (mvs.390)

:::::::: mailx ::::::::

08-11-04 spam.c: fix 0-terminated overrun in usermatch() -- wow

:::::::: re ::::::::

09-02-02 repetition.dat,haskell.dat: add tests by Chris Kuklewicz www.haskell.org
08-11-04 iso8859-1.dat: add [!-...] and [^-...] locale tests

:::::::: std ::::::::

09-04-15 ls.c: add --sort=version
09-01-30 mount.c: hide mount prototype too (for mvs.390)
09-01-20 dd.c: fix state.in.special counting logic
08-12-08 ls.c: at least one space before link count for -l
08-12-07 ls.c: use %[_][EO]K for [space pad] [full|long] iso

:::::::: warp ::::::::

08-11-15 warp.c: fix time() _WIN32 intercept

:::::::: vczip ::::::::

09-02-02 vczip.c: -u is now a flag (no optional arg)
09-01-18 vczip.c: fix bug that forgot to assign src file path
08-11-04 vczip.c: change date to official kpv -lvcodex release

:::::::: cia ::::::::

09-02-02 cpl1.0

:::::::: incl ::::::::

09-02-02 cpl1.0

:::::::: sudoku ::::::::

08-12-04 stable

:::::::: libast ::::::::

09-05-01 comp/setlocale.c: fix _UWIN intercepts to return NiL on unknown locales
09-04-27 sfio/sfpool.c: fix bug that did not return pool on delete
09-04-22 include/regex.h,regex/regcomp.c: add REG_REGEXP <regexp.h> compatibility
09-04-15 tm/tmxdate.c: handle "4th thursday in november"
09-03-31 string/strvcmp.c,string/strnvcmp.c: add version strcmp(3)
09-03-31 string/strpcmp.c,string/strnpcmp.c: add path prefix strcmp(3)
09-03-29 misc/optget.c: clean up num = number casts
09-03-04 tm/tmxmake.c: add tmxtm() with zone override
09-03-03 tm/tmxfmt.c: add %(...)<c>, specifically %(...)z for output zone
09-02-22 tm/tmxdate.c: add iso P... durations
09-02-02 path/pathprog.c: add
09-02-02 misc/opthdr.h,optget.c: fix flags mixup, handle old '-' as option
09-02-02 sfio/sfprints.c: fix sfvaprints() return value to not count trailing ' '
09-02-02 misc/cmdarg.c: handle !defined(ARG_MAX)
09-02-02 port/astconf.c: fix UNIVERSE overwrite of null[] value!
09-01-31 features/sys: drop header sys/localedef.h
09-01-28 include/fs3d.h,misc/fs3d.c: mount() => fs3d_mount() for diff std prototypes
09-01-14 misc/fts_open.c: delay top list reorder until first fts_read()
09-01-14 include/ls.h: LS_W_INUMBER => 9 to accomodate large st_ino
09-01-14 misc/optget.c: expand STYLE_usage input text
09-01-09 features/uwin,stdio/_stdfun.c: iffe for _p__iob and __p__iob
09-01-09 misc/magic.tab: add ISO filesystem image entries
09-01-07 string/strtoi.c: strtol() etc. do not consume [lLuU] suffix -- thanks jkf
09-01-07 sfio/sfstrtof.h: strtod() etc. do not consume [fFlL] suffix -- thanks jkf
09-01-05 string/strlcat.c: fix logic to match docs (not that easy)
08-12-30 tm/tmxdate.c,include/tm.h: add TM_WORK { "workday" "working" "work" }
08-12-28 sfio/sfcvt.c: fix 'a' format rounding
08-12-21 tm/tmdata.c: add 2008-12-31+23:59:60-0000 leap second event
08-12-19 tm/tmxdate.c: check for dates near the epoch rolling back to the future
08-12-19 tm/tmxfmt.c: change %s for now==0 to be the epoch
08-12-07 include/ast_std.h,misc/getenv.c: no _ast_getenv for uwin ast54 compatibility
08-12-07 tm/tmxfmt.c: add %[_][EO]K for [space pad] [full|long] iso
08-12-07 sfio/sfvscanf.c: fix ok[] short by one allocation
08-12-07 comp/setlocale.c: fix off by one composite initialition loop test
08-12-07 path/pathkey.c: fix off by one loop test
08-12-04 vmalloc/vmbest.c: catch sbrk() wraparound
08-12-04 comp/spawnveg.c: clean up attrs on failure too
08-11-04 regex/regcomp.c: fix locale [!-...] and [^-...] re-initialization
08-11-04 stdio: add flockfile.c ftrylockfile.c funlockfile.c

:::::::: libcmd ::::::::

09-03-31 cat.c: handle --no* options
09-03-15 tail.c: fix --timeout termination logic
09-03-03 tee.c: clean up sfio disciplines on error
09-03-03 cat.c: fix -v|-e|-n|-B interaction bugs
09-02-14 tail.c: fix VSC failures
09-02-14 join.c: fix VSC failure
09-02-02 uniq.c: document -number == -fnumber, +number == -snumber
09-02-02 tail.c: fix usage[] for negative offsets, add sun -b
09-02-02 mktemp.c: add
09-02-02 features/utsname: UWIN _UNAME_os_DEFAULT => UWIN
09-01-31 dirname.c: add experimental { -f -r -x } for pathpath(3)
09-01-05 cmp.c: fix EOF diagnostic to conform to posix
09-01-03 mkfifo.c: fix --mode=mode logic
08-12-07 date.c: add %[_][EO]K for [space pad] [full|long] iso docs
08-11-10 stty.c: check for -t grouping so -tostop != -t -ostop

:::::::: libdll ::::::::

09-04-15 dllopen.c: add, use dllopen() internally to wrap dlopen()

:::::::: libexpr ::::::::

09-02-02 exgram.h: drop function ref in call() to avoid eval in exeval()

:::::::: libbz ::::::::

09-04-15 bzlib.c: add bzfopen()

:::::::: libpp ::::::::

09-02-02 pp.probe,probe.win32: check for compiler supplied __FUNCTION__
09-02-02 ppop.c: include pp_default.h/probe at end of builtin script
09-01-20 probe.win32: elide #pragma comment.*linker.*manifest
09-01-06 ppcall.c: fix macro definition overwrite bug -- I know
09-01-05 ppcontrol.c: fix multiple include guard for #include outside guard
08-12-07 pp.h,ppdata.c: fix ancient pptype and ppctype[] off by one
08-11-15 ppsearch.c: '\' => '/' in first step; msvc complains about '\' in #line!!

:::::::: libvcodex ::::::::

09-03-12 vcstrip.c: add
09-03-10 vcalias.c: add qnl
09-02-24 vcalias.c: add rte
09-02-24 vcsfio.c: ignore VC_EOF+ at end of header data
09-02-02 vcsfxsort.c: fix suffix sort stack overflow bug
08-12-07 sync with kpv 2008-11-04

:::::::: libvgraph ::::::::

08-12-07 rename graph => vgraph
08-11-22 graph.h: add _WINIX import/export qualifiers

:::::::: libcia ::::::::

09-02-02 cpl1.0


July 28, 2011