Changes since 2007-03-28 follow.

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

07-11-05 fix write op error count pattern
07-11-05 fix $(~req) .ver binding
07-08-11 probe.win32: add cl.exe setuid workaround, CC.VERSION[.STRING]
07-08-01 handle 'package read lcl|tgz'
07-05-08 execute basename instead of absolute path for short $0
07-04-27 cc.sgi.mips[34]: for #error to exit non-zero -- a no brainer
07-04-20 defer to systems without 'grep -q' -- sigh
07-04-11 handle $(CC.*) => ${mam_cc_*}, $(...) => ${...}
07-04-11 make.probe: fix CC.PICBIG probe, default { CC.PIC CC.DLL } to BIG
07-04-04 prepend ${tst}${ext} to each .c probe
07-03-28 fix binary tgz architecture type duplication
07-03-28 add binary write PACKAGE.$HOSTTYPE.lst
07-03-28 add -F header to mac test

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

07-10-02 sudocoup.c,pseudocoup.c: validate input puzzles -- doh
07-06-28 sudoku.c: -go tour only, sudz over -lbz2 for public consumption
07-05-31 sudoku.c: -gnN -goN tours

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

07-11-05  --- Release ksh93s+  ---
07-11-05  A bug in which printf %d "'AB" did not diagnose unconverted characters
	  has been fixed.
07-11-05  printf %g "'A" support added for all floating point formats.
07-11-01  A bug in which typeset -f fun did not display the function definition
          when invoked in a subshell has been fixed.
07-10-29  The sleep builtin was fixed so that all floating point constants
	  are valid operands.
07-10-10  A bug in which the locale was not being restored after
          LANG=value command has been fixed.
07-09-20  A bug in which a nameref to a compound variable that was local
	  to the calling function would not expand correctly when displaying
	  is value has been fixed.
07-09-19  A bug which cause cause a core dump if .sh.edchar returned
	  80 characters or more from a keyboard trap has been fixed.
07-09-14  A bug in which could cause a core dump when more than 8 file
	  descriptors were in use has been fixed.
07-09-10  A bug in which creating a name reference to an instance of
	  an array when the array name is itself a reference has been fixed.
07-09-10  The file completion code has been modified so that after an = in
	  any word, each : will be considered a path delimiter.
07-09-06  A bug in which subprocess cleanup could corrupt the malloc() heap
          has been fixed.
07-08-26  A bug in which a name reference to an associatve array instance
	  could cause the subscript to be evaluated as an arithmetic expression
	  has been fixed.
07-08-22  A bug in which the value of an array instance was of a compound
	  variable was not expanded correctly has been fixed.
07-08-14  A bug which could cause a core dump when a compound assignment was
	  made to a compound variable element with a typeset -a attribute
	  has been fixed.
07-08-08  A bug in which a trap ignored in a subshell caused it to be
	  ignored by the parent has been fixed.
07-08-07  A bug in which the set command would generated erroneous output
	  for a variable with the -RZ attribute if the variable name had been
	  passed to a function has been fixed.
07-08-02  A bug in which read x[1] could core dump has been fixed.
07-08-02  A second bug in which after read x[sub] into an associative array
	  of an element that hasn't been assigned could lead to a core dump
	  has been fixed.
07-07-31  A bug in which a pipeline that completed correctly could have
	  an exit status of 127 when pipefail was enabled has been fixed.
07-07-09  The SHOPT_AUDIT compile option has been added for keyboard logging.
07-06-25  In vi insert mode, ksh no longer emits a backspace character
	  before the carraige return when the newline is entered. 
07-06-25  A bug in which pipefail would cause a command to return 0
	  when the pipeline was the last command and the failure happened
	  on a component other than the last has been fixed.
07-06-25  A bug in the expansion of ${var/pattern/rep} when pattern or rep
	  contained a left parenthesis in single quotes has been fixed.
07-06-18  The braces for a subscripted variable with ${var[sub]} are now
	  optional when inside [[...]], ((...)) or as a subscript.
07-05-28  A bug in brace expansion in which single and double quotes did
          not treat the comma as a literal character has been fixed.
07-05-24  The -p option of whence now disables -v.
07-05-23  Several bug fixes in compound variables and arrays of arrays
	  have been made.
07-05-15  A bug in which the %B format of printf was affected  by the
	  locale has been fixed.
07-05-14  A bug in which  was not removed in the replacement pattern with
	  ${var/pattern/rep} when it was not followed by  or a digit has
	  been fixed.
07-05-10  A bug in which ksh -R file core dumped if no script was specified
	  has been fixed.  it not displays an error message.
07-05-07  Added additional Solaris signals to signal table.
07-04-30  A bug in which a pipeline with command substitution inside a
	  function could cause a pipeline that invokes this function to
	  hang when the pipefail option is on has been fixed.
07-04-30  Added -q to whence.
07-04-18  A small memory leak with each redirection of a non-builtin has
	  been fixed.

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

07-09-21 format.c: add sumprint() default scale arg
07-05-01 pax-tar.c,options.c: fix pax extended header for >=2**32 size

:::::::: html ::::::::

07-08-11 --texish for tex style bb code
07-04-20 add for mm => bb code

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

07-05-21 date*.*: update for ISO 8601:2000 %F == %Y-%m-%d
07-04-11 sfio/tprintf.c: update for { inf INF nan NAN }

:::::::: coshell ::::::::

07-10-23 main.c: avoid UOUT CO_SERIALIZE cswrite hangs via O_NONBLOCK
07-09-25 handle CO_SERIALIZE

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

07-10-22 initialize ( to match .SHARED.LIST.LIBS.
07-10-18 parse.c: handle .assoc.*%* : .INSERT to insert into assoc list
07-09-11 fix --force-shared docs to match semantics
07-09-07 scan.c: tweak ANY logic (leading ANY still does not play nice)
07-09-07 handle ``ID. COPY ...''
07-08-28 bind.c: handle assoc foo=>bar alias
07-07-31 rule.c,object.c: handle include - f, f missing in .mo, then exists
07-06-28 fix .SHARED.LIST.EXCLUDE. plugin bug (sortlib/vcodex)
07-06-25 let $(CPP) do the %.rc=>%.res preprocessing
07-06-21 .IGNORE shared only if ! "$(CC.SUFFIX.DYNAMIC)"
07-06-21 flush dir cache after each :MAKE: recursion
07-06-21 option.c: handle set --option=';foo;sa;...'
07-06-21 expand.c: handle --recurse=*implicit* and clean up order_*() apis
07-06-21 expand.c: + ... intermediate makefile dirs in :W: (-Q0x40000000)
07-06-20 add --recurse=leaf to terminate leaf recursion
07-06-20 handle "lhs :ALL:"
07-06-15 expand.c: add :W: . alias check
07-06-11 variable.c: foo:bar==1 equiv to bar==; foo : bar=1
07-06-06 bind.c: fix ancient internal.openfile bug -- wow
07-06-06 add .SHARED.LIST.EXCLUDE. to exclude self
07-06-06 rule.c: add self to IGNORECHANGE(), only check primary joint
07-05-25 retry package sans version if version fails
07-05-21 misc.c: invalidate openfile if _WINIX && st_nlink>1
07-05-09 fix %.req logic
07-04-20 fix PROTOINSTALL sed <ast_*.h> => <ast/ast_*.h>
07-04-18 add :REQUIRE:

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

07-09-21 cksum.tst: drop sha1, add -r compatibility

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

07-09-12 bgp-ipma.c,bgp-mrt.c: <(~0),1> is the value (~0), not a group marker
07-09-06 dss.tst: add message group and dss {return} tests
07-09-05 bgp.c: add MESSAGE group bit and message index
07-08-08 data/,bgp-map.dss: add atomic map { NAG AG }

:::::::: flat ::::::::

07-06-05 flat.c: <COUNT>*</> => <COUNT>0</> => 0 or more

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

07-10-25 ptrebit.c: add
07-09-12 itlie.h: <(~0),1> is the value (~0), not a group marker
07-09-05 ip_t.c: handle ("" =~ prefix)

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

07-10-16 sed: add /RE/I... => ignore case

:::::::: sort ::::::::

07-10-30 main.c: default insize == procsize -- worth ~25% time!
07-10-30 sort.tst, export LC_ALL=C

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

07-08-03 ls.c: use return from main() instead of exit()
07-06-27 error messages to the standard error -- oops
07-06-01 Makefiles: add $(PACKAGE_LOCALE)umount link
07-05-05,seq.rt: new
07-04-25 locale.c: defer unknown keywords to /usr/bin/locale

:::::::: tw ::::::::

07-10-26 find.c: fix default -print w.r.t. -o
07-10-03 find.c: fix { -atime -ctime -mtime } [-+]N logic
07-09-21 expr.c: add sumprint() default scale arg
07-08-17 tw.c: add --snapshot
07-05-08 find.c: fix -printf => sfvprintf() translation
07-05-08 tw.c: provide empty *ftw for -n actions
07-04-24 cmdarg.c,cmdarg.h: move to src/lib/libast

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

07-10-31 regex/regcomp.c: fix REX_COLL_CLASS node allocation size
07-10-31 sfio/sfcvt.c: use signbit() if available
07-10-31 features/isoc99: _ISOC99_SOURCE tests
07-10-31 port/astmath.c: add -DN=8 for signbit()
07-10-31 sfio/sfstrtod.h: don't forget about -0.0
07-10-26 features/map.c: add { optopt optarg optind opterr }
07-10-26 features/stdio: add _filbuf => _ast__filbuf
07-10-26 comp/getsubopt.c: fix #undef that interfered with <ast_map.h>
07-10-26 regex/regcomp.c: fix bug that missed ')' in ~(F)...
07-10-12 port/astconf.c: fix CONF_ALLOC 16 bit overflow
07-10-12 misc/fts.c: fix fts_close() to free the handle -- doh
07-10-11 comp/setlocale.c: second and subsequent setlocale(*,"") reverts to previous
07-10-11 path/pathprobe.c: add vfs ST_NOSUID check
07-10-10 comp/ add a few more xpg6 deferrals
07-09-28 astsa: update to share with mainline src via _PACKAGE_astsa
07-09-25 sfio/sfgetr.c: no limit on string stream line size
07-09-25 sfio/sfextern.c: increase _Sfmaxr to 256*1024
07-09-18 misc/procopen.c: tighten up SIGCHLD logic between parent/child
07-09-18 misc/signal.c: unblock SIG_DFL after setting handler, sig<0 => don't unblock
07-09-13 misc/fs3d.c: no $LD_PRELOAD => no 3d and avoids invalid mount(2) call
07-09-11 vmalloc: vmstat(0,0)==1 => region in use, drop VM_primary|VM_secondary
07-09-05 misc/recstr.c: handle [lL] gobbled by strtol() -- ouch
07-08-17 path/pathprobe.c: handle '\r' in VERSION string
07-07-17 regex/regcache.c: regcache(0,n,0) extends cache to size n (no shrinking)
07-07-16 tm/tmdata.c: add 2005-12-31, drop 1999-12-31 (where did that come from?)
07-05-21 tm/tmxfmt.c,tmxscan.c: %F => %L (TM_DEFAULT); %F => %Y-%m-%d
07-05-15 sfio/sfvprintf.c: %h? and SFFMT_SHORT => raw bytes
07-05-09 features/signal.c,features/siglist: use kill -l & strsignal()
07-04-25 misc/optctx.c: add for opt_info switching
07-04-24 misc/cmdarg.c,include/cmdarg.h: add CMD_CHECKED, CMD_SILENT
07-04-24 misc/procopen.c,include/proc.h: add PROC_CHECK
07-04-24 misc/procrun.c: add flags arg (current use PROC_ARGMOD)
07-04-24 misc/cmdarg.c,include/cmdarg.h: move from src/cmd/tw
07-04-20 port/(lclang.h|lc.c|mc.c|lclib.h|lcgen.c): separate lctab.c
07-04-20 comp/ defer to systems without 'grep -q' -- sigh
07-04-20 comp/ probe for LL integer constant initializer suffix
07-04-20 include/syslog.h: <namval.h> => <ast_namval.h> for win32
07-04-20 ast_namval.h: add as copy of include/namval.h for win32
07-04-19 comp/ fix SVID SI entries to probe SI_* (not _SI_*)
07-04-13 tm/tmxdate.c,tm/tmzone.c: handle [-+]0000 UTC zone offset
07-04-11 sfio/sfvprintf.c: add %F, propagate SFFMT_UPPER
07-04-11 sfio/sfcvt.c: handle SFFMT_UPPER => nan/inf vs. NAN/INF
07-04-02 comp/,comp/ add C/POSIX <stdint.h> symbols
07-03-28 misc/optget.c: fix l10n --?-

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

07-10-29 cksum.c: add SUM_LEGACY for -r
07-10-12 cp.c: plug usage string memory leak by using per-builtin state
07-09-21 cksum.c: add sumprint() default scale arg, --scale, --bsd for solaris
07-09-10 chmod.c: add --show,-n
07-07-27 wclib.c: bias <wchar.h> checks for modern unix
07-07-17 cat.c: fix --squeeze-blank to reduce multiple blank lines to *one*
07-05-20 cmd.h: handle msvc's balk at if(0)0=0;
07-05-20 cksum.c: #include <modex.h>
07-05-11 cmd.h: add _CMD_CONTEXT_OK() to verify >= 20070511 context
07-05-09 fds.c: handle ipv6 sockets
07-05-09 cmd.h: <shbltin.h> : cmdquit() => sh_checksig(context)
07-04-25 mkdir.c: force (S_ISVTX|S_ISUID|S_ISGID) after mkdir(2)
07-04-24 procrun.c: add -last intercept => sh_run() and whence -q
07-04-19 uname.c: name operands first checked for CS_NAME, then NAME
07-03-28 date.c: add --unelapsed=scale, -U: fmtelapsed() => strelapsed()

:::::::: libsum ::::::::

07-10-29 sum.h,sumlib.c: add SUM_LEGACY for legacy output format
07-09-21 sum-sha1.c: reinstate Steve Reid's public domain implementation
07-07-26 sumlib.c: drop GPL sum-sha1.c

:::::::: librecsort ::::::::

07-10-30 rshdr.h: default INSIZE == PROCSIZE -- worth ~25% time!
07-10-30 rskey.h,rskeyopen.c,rskey.c: honor locale collation order
07-10-10 rskey.c: handle ascii signed zoned decimal (0x70 => negative)
07-04-16 recsort.h,rskey.c: add RSKEY_KEYS

:::::::: libz ::::::::

07-06-11 rename ARCH macros to ZLIB_ARCH to cut down namespace pollution
07-05-09 Makefile: :INSTALLPROTO: zconf.h for win32 <ast_*> post edit

:::::::: libcoshell ::::::::

07-10-29 coshell.h,coexec.c: fix procrun()/system() intercept logic
07-08-15 add CO_SEPARATE,CO_MODE_SEPARATE for separate shell+wait per action
07-04-09 Makefile: $(CC.PIC) to allow archive to be pulled into other dlls

:::::::: libcs ::::::::

07-06-05 csclient.c: add CS_CLIENT_SEP

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

07-09-21 ppproto.c: add "Public Domain" to the noticed list
07-08-11 probe.win32: add cl.exe setuid workaround, CC.VERSION[.STRING]
07-06-12 pplex.c: finish -D:preserve logic update for imake
07-06-07 pplex.c: handle -D:preserve S_CHRB splices
07-06-04 ppsearch.c: only apply pp:chop ?old?new? if original not found

:::::::: libcodex ::::::::

07-09-26 code-uu.c: uu_sync() => flush() for encode only -- doh
07-09-22 code-uu.c: fix uu_read() partial reads
07-09-22 codex.c: handle PASSPHRASE=* as documented
07-09-22 codex.c: handle quoted parameter values

:::::::: libdss ::::::::

07-10-26 cxcomp.c: fix s="S"; print(s,s) cast bug
07-10-25 cxcomp.c: pretty up CX_DEBUG instruction code trace
07-10-01 dss.h: add void* Dssfile_t.caller caller defined handle
07-09-27 cx.h: add CX_HEADER_INIT for sun4 K&R
07-09-24 cx.h: add Cxvariable_t.header.index set by cxaddvariable()
07-09-21 dss-return.h: document it via return_beg() -- doh
07-09-20 dssopen.c: fix dss var initialization base type loop
07-09-06 dssopen.c: add dss-return.h
07-09-06 cxcomp.c: handle ()?{}:{...}
07-09-05 cxopen.c,cxcomp.c: handle (<string> op <fundamental-integer>)
07-04-02 dssfile.c: handle empty compressed file peek

July 28, 2011