Changes since 2006-02-14 follow.

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

06-12-04 3d.h: strmode() bsd conflict tweak
06-11-23 finally get linux to pass regression tests
06-11-21 fchdir3d: let chdir do the work if fd matches cached path
06-09-28 used getconf LIBPATH|LIBPREFIX|LIBSUFFIX -- how novel
06-09-26 3d.h,dir3d.c,dll3d.c: fix strtou*l*l maps for __int64 vs. long long
06-09-18 strmatch.c,touch.c: add private obsolete api copies
06-08-27 mkdir3d.c: foloow mkdir -p mode rules for missing intermediates

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

07-01-05 fix "admin write binary" logic
07-01-01 add "cmd" --verbose trace
07-01-01 sort => LC_ALL=C sort
07-01-01 C+probe: LC_ALL=C
06-12-22 make.probe: lean on gcc -v for stdlib, but preserve /usr/local!
06-11-23 *.md5 are not tarballs -- doh
06-11-23 add -F, --features=feature-test-header
06-11-11 make.probe: favor lib64 over lib for hosttype==*64
06-10-31 make.probe: add "-ignore-source-dir -iquote" test
06-10-31 add status{...} code block
06-10-11 fix DO to handle {...} (time for regress.tst?)
06-10-11 handle already gunzip'd *.tgz
06-10-06 add reference for header content tests
06-09-27 fix UMASK to do DO too (duh)
06-09-22 drop -O for npt tests (for msvc intrinsics)
06-09-14 cc.darwin: drop -O until gcc 4.* gets its act together
06-09-11 { cc ld ldd } intercepts check ${HOSTTYPE%.*} too
06-09-08 add PIPE INPUT|OUTPUT for pipe io
06-09-05 C+probe: add { probe_version version_stamp version_string }
06-09-05 make.probe: add version stamp comment, CC.VERSION[.STRING]
06-08-27, add UMASK
06-08-25 add -b,--ignore-space,IGNORESPACE
06-08-25 add IGNORESPACE
06-08-24 handle  00 in data
06-08-24 handle -f* for INPUT|OUTPUT|ERROR
06-08-16 fix 'install flat' logic
06-08-11 handle style=shell %K date format
06-07-17 ratz.c: fix __MVS__ FAR definition
06-07-17 "header x.h" -- deprecate "include x.h" for .SCAN.iffe
06-07-17 differentiate urls vs. assignments
06-06-27 add --failed, --heading
06-06-27 C+probe,,make.probe,, 'ulimit -c 0'
06-06-26 cc.darwin.ppc: handle -lcc_dynamic disappearance
06-06-25 implement PROG
06-06-11 Makefile: add -ldbm :MAPLIB:, provide public
06-05-06 add PACKAGE_admin_tail_timeout
06-05-22 ratz.c: upgrade to zlib-1.2.3
06-05-09 fix admin.db docs
06-03-11 fix `package use - command ...'
06-03-05 make.probe: work around pedantic bash 3.1 mismatched " in `.`
06-02-14 "results failed test" == "results test failed"
	 cc.sgi.*: add _AST_cc_OPTIONS parameterization, -OPT:Olimit=0
	 cc.linux.ia64-icc: add for intel cc

:::::::: at ::::::::

06-10-11 add sfstruse() error checks
06-09-19 atd.c: sysconf() => astconf()
06-05-17 handle empty or nonexistent crontab

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

06-12-12 chmod.rt,mkdir.rt: add absolute mode tests
06-11-15 cp.tst,ln.tst,mv.tst: add initial regression tests
06-10-31 global edit to eliminate most non-const static data
06-10-11 add sfstruse() error checks
06-08-25 uniq.rt: add initial regression tests
06-08-23 mkdir.tst: add -p final dir mode tests
06-07-20 pty.c: add
06-06-25 chmod.rt,mkdir.rt: add initial regression tests
06-06-24 dlls.c: add --containing

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

06-08-23 codex.tst: add uu boundary and text tests

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

06-10-11 add sfstropen()/sfstruse() error checks
06-09-19 command.c,cotest.c: sysconf() => astconf()
06-08-15 shell.c: unset CO_ENV_SHELL
06-08-11 main.c: handle CO_ENV_MSGFD msgfd != 3
06-08-11 handle connect=*
06-08-04 shell.c: handle CO_APPEND for job out|err
06-06-21 event.c: add --older, --newer, REQ_all
06-06-18 event.c: add event name pattern match/glob
06-06-11 event.c, add

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

06-05-09 cpp.tst: add pp:externalize tests
	 cpp.tst: add compatibility ul numeric qualifier tests

:::::::: cs ::::::::

06-10-11 add sfstropen()/sfstruse() error checks
06-06-11 cs.c: switch to csclient()

:::::::: dss ::::::::

06-10-11 add sfstruse() error checks

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

06-10-11 flat.c: add sfstruse() error checks

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

06-10-11 itlie.h: add sfstruse() error checks

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

06-10-31 mm2html: fix tager=_top omission bug
06-10-11 add sfstruse() error checks
06-05-03 htmlrefs.c: add COPY to avoid e.g. cgi symlinks

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

06-12-29  --- Release ksh93s  ---
06-12-29  A bug in which the value of IFS could be changed after a command
	  substitution has been fixed. 
06-12-22  /dev/(tcp|udp|sctp)/HOST/SEVRICE now handles IPv6 addresses on
	  systems that provide getaddrinfo(3).
06-12-19  A -v option was added to read.  With this option the value of
	  the first variable name argument will become the default value
	  when read from a terminal device. 
06-11-20  A bug in which "${foo[@]:1}}" expands a null argument (instead of
	  no argument), when foo[0] is not empty has been fixed. 
06-11-16  The discipline functions have been modified to allow each subscript
	  to act independently.  Currently the discipline function will not
	  be called when called from a discipline function of the same variable.
06-11-14  A bug which could cause a core dump if a file descriptor for
	  an internal file was closed from with a subshell has been fixed.
06-10-30  The redirections <# pattern, and <## pattern have been added.
	  Both seek forward to the beginning of the next line that contains
	  the pattern.  The <## form copies the skipped portion to standard
06-10-26  On systems that support stream control transport, the virtual file
	  name /dev/sctp/host/port can now be used to establish connections.
06-10-26  The printf modifier # when used with d produces units in thousands
	  with a single letter suffix added.  The modifier # when used with
	  the i specification provides units of 1024 with a two letter suffix.
06-10-24  The value of $! is now set to the process id of a job put
	  into the background with the bg command as required by POSIX.
06-10-23  A bug in which the value of $! was affected by a background
	  job started from a subshell has been fixed.
06-10-23  A bug in ${var:offset:len} in multibyte locales has been fixed.
06-10-15  The remaining math functions from C99 were added for any system
	  that supports them.
06-10-13  The software detected a few coding errors that
	  have been fixed.
06-10-12  A bug when skipping over `...` with ${x:=`...`} when x is set
	  has been fixed.
06-10-11  A bug in process floating constants produced by the %a format
	  of printf has been fixed.
06-10-06  A bug in which IFS was not being restored correctly in some
	  cases after a subshell has been fixed.
06-10-06  A bug in which pipefail was not detecting some failures in
	  pipelines with 3 or more states has been fixed.
06-10-03  A bug in the processing of >(...) with builtins which could
	  cause the builtin to hang has been fixed.
06-10-03  A bug in the for loop optimizer which causes >(...) process
	  substitution to be ignored has been fixed.
06-09-17  The -a option was added to typeset for indexed arrays.  This
	  is only needed when using the ([subscript]=value ...) form.
06-09-06  The showme option was added.  Each simple command not beginning
	  with a redirection and not occurring with in the while, until, if,
	  select condition can be preceded by a semi-colon which will
	  be ignored when showme is off.  When showme is on, any command
	  preceded by a colon will be traced but not executed.
06-08-16  As a new feature, a leading ~(N) on a pattern has no effect 
	  except when used for file expansion.  In this case if not
	  matches are found, the pattern is replaced by nothing rather
	  than itself.
06-08-11  A bug in the expansion of ${.sh.match[i]:${#.shmatch[i]}} has
	  been fixed.
06-08-10  The read builtin options -n and -N have been modified to treat
          the size as characters rather than bytes unless storing into a
	  binary (typeset -B) variable.
06-07-27  When the here document operator << is followed directly by a #
	  rather than a -, the first line of the here-document determines
	  how much whitespace is removed for each line.
06-07-26  A bug in the C-shell history (enabled with set -H) in which the
	  history event !$ was not processed has been fixed.
06-07-21  A bug on some systems in which assigning PATH on a command line
	  would not take effect has been fixed.
06-07-20  Add ksh93 and rksh93 as allowable names for ksh binaries.
06-07-20  Removed the SHOPT_OO compilation option which was only partially
06-07-20  The ability to use egrep, grep, and fgrep expressions within
	  shell patterns has been documented.
06-07-17  A bug with arithmetic command expressions for locales in which
	  the comma is a thousands separator has been fixed. 
06-07-13  The default HISTSIZE was increased from 128 to 512.
06-07-13  A multibyte problem with locales that use shift codes has been fixed.
06-06-23  A number of bug fixes for command, file, and variable completion
	  have been mode.
06-06-20  Floating point division by zero now yields the constant Inf or -Inf
	  and floating functions with invalid arguments yield NaN. 
06-06-20  The floating point constants Inf and NaN can be used in arithmetic
06-06-20  The functions isinf(), isnan(), tanhl() have been added for
	  arithmetic expressions.
06-06-13  Internal change to use ordering for variables instead of hashing
	  to speed up prefix matching.
06-06-13  A window between fork/exec in which a signal could get lost
	  and cause a program to hang has been eliminated
06-06-13  A bug in edit completion with quoted strings has been fixed.
06-06-07  The restricted options can now be enabled by set as well as on
	  the command line.  Once set, it can not be disabled.
06-06-04  Modified built-in binding so that for systems for which /bin
          and /usr/bin are the same, a builtin bound to /bin will get
	  selected when either /bin or /usr/bin is scanned.
06-06-04  Added literal-next character processing for emacs/gmacs mode. 
	  This change is not compatible with earlier versions of ksh93
          and ksh88 when the stty lnext is control-v.  The sequence
	  escape-control-v will display the shell version.
06-05-31  Modified emacs and vi mode so that entering a TAB after a partial
	  TAB completion, generates a listing of possible completions.
	  After the second TAB, a number followed by a TAB will perform
	  the completion with the corresponding item.
06-05-19  Modified arithmetic so that conversions to strings default to
	  the maximum number of precision digits.
06-05-16  Bug fixes for multibyte locales. 
06-05-10  The =~ operator was added to [[...]] and  [[ string ~= ERE ]]
	  is equivalent to [[ string == ~(E)ERE ]].
06-04-25  A bug in the vi edit mode which could cause the shell to core dump
	  when switching from emacs mode.
06-04-17  A bug in which using LANG or LC_ in assignment lists with builtins
	  did not restore the localed correctly has been fixed.
06-04-04  A bug in which discipline functions could not be added to variables
	  whose names started with .sh has been fixed.
06-03-28  The -s option to typeset was added to modify -i to indicate short
06-03-28  A bug in which variables assignment lists before functions
	  defined with function name were not passed on the functions
	  invoked by this function has been fixed. 
06-03-28  A bug in which name references defined within a function defined
	  with function  name could not be used with compound variables has
	  been fixed.
06-03-27  A bug in which read <&p (print >&p) would cause the coprocess input
	  (output) pipe to close before reading from (after writing to)
          it has been fixed.
06-02-28  A bug in which stopping a job created with the hist builtin command
	  would create a job that could not be restarted has been fixed.  

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

06-10-11 data.c: ARG_MAX => private ARGMAX
06-10-11 add sfstropen()/sfstruse() error checks
06-06-24 fio.c: fix nul count scan bug
06-04-17 head.c,spam.c: catch and normalize inventive subject spaces

:::::::: msgcc ::::::::

06-11-15 date -f x => date +x for ast-base portability
06-10-11 add sfstruse() error checks

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

07-01-11 --- release 5.2 ---
07-01-09 expand.c: add :P=D: alias check (-Q0x10000000)
07-01-01 add --local-static with dynamic targets now default
07-01-01 cmd+dll installs dll before command compile/link
06-12-24 expand.c: handle $("":T=ZW) (equivalent to $("":T=R))
06-12-24 misc.c: fix :F=T: to handle sec[.nsec]
06-12-22 add CC.STDLIB.BASE to differentiate 32 vs 64 arch
06-12-22 use CC.STDLIB.BASE
06-12-15 set up PACKAGE rules to search CC.STDLIB -- doh
06-12-14 add (RC) (RCFLAGS) to %.rc => %.res
06-12-12 bind.c: handle win32 dir vs. dir.exe => not aliased
06-12-07 expand.c: add $("<table>":L...) for { FILES RULES VARIABLES }
06-12-07 expand.c: add :VX: to still expand value
06-12-07 use $("<VARIABLES>":L=CC.+([[:upper:].])) in .MAM.INIT
06-11-23 fix .BIND.-l% for -g only bootstrap
06-11-15 fix :: vs :LIBRARY: ordering bug for .o prereqs
06-11-11 fix :PACKAGE: vs lib64
06-09-28 add $(IFFEREFS)
06-09-15 fix .SHARED.DEF.* scope prereq logic
06-09-01 Makefile: no -O for command.c on darwin (probably gcc 4.0's fault)
06-08-15 command.c: handle no action but .AFTER|.BEFORE prereqs 
06-08-11 .PACKAGE.INIT now checks lib64 for HOSTTYPE==*64
06-08-11 command.c: pass $(COSHELL) to coopen()
06-08-07 command.c,parse.c: add 'query - blocked' for blocked jobs
06-08-02 command.c: cokill(state.coshell,0,0) to kill event jobs
06-07-31 metarule.c: handle dynamic metarule rhs
06-07-27 command.c: clear job->cojobs to prevent concurrent use
06-07-17 cc-...~... => cc-...,...
06-06-21 expand.c: add :Z[=C]: for closure and cycle detection
06-06-11 command.c: update to use copending() cojobs() cozombie()
06-05-09 command.c: pass CO_ENV_OPTIONS to coopen()
06-03-29 fix +l* explicit binding override
06-03-08 fix :JOINT: rhs double eval

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

06-10-31 delta.c,format.c: fix ar=>ar delta bug that skipped data twice
06-10-11 add sfstropen()/sfstruse() error checks
06-09-27 pax.tst: fix uid etc. tests to use --listformat -- duh
06-09-12 delta.c: delta for any X_IPERM st_mode changes
06-06-07 pax: add -U --delta.update to update only delta members

:::::::: probe ::::::::

06-09-05 probe.c: add -f, --force

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

06-12-04 proto.c: add utime() prototype
06-06-28 proto.tst: add more externalize tests
06-05-09 proto.c: add --externalize, -x
06-05-09 proto.tst: add -x tests

:::::::: line ::::::::

06-12-18 move into separate plugin source dir

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

06-10-11 add sfstruse() error checks
06-08-16 testglob.dat,noop.dat: add KRE ~(N) tests
06-07-28 testglob.(c|dat): add gl_extra tests
06-07-17 reg.dat: handle (?p) (pedandic RE checks)
06-07-17 zero.dat: update inline option tests

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

06-07-17 main.c: RS_POP before checking output
06-07-17 main.c: handle empty file for record format data sample
06-05-09 main.c: add path to record format determination message
	 main.c: fix -o path to inherit -R% format from input
	 sort.tst: fix -R% v format test
06-04-19 main.c: fix minor merge file list bug

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

06-12-11 ls.c: disable LS_PRINTABLE for utf-8
06-12-04 du.c: handle > 2Ti in local.pointer
06-11-23 ps.c: --escape now the default: -E => --noescape
06-10-11 add sfstruse() error checks
06-10-11 ls.c: header/trailer must honor state.scale too
06-09-19 split.c: pathconf() => astconf()
06-05-23 ps.c: add but ignore -w, --wide

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

07-01-11 sudoku.c: add per-group options
06-02-14 sudoku.c: add -C

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

06-09-14 datey2k.dat: yield to the gentlemen from congress
06-08-25 opt.tst: update for leading 0 numeric option arg strip

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

07-01-06 find.c: fix dumb -empty coding bug
06-12-07 find.c,find.tst: fix -exec/-xargs vs {} +
06-12-07 cmdarg.c,xargs.tst: adjust ARG_MAX logic
06-10-11 add sfstropen()/sfstruse() error checks
06-09-27 find.c: peel off leading [-+] from all -perm
06-07-17 find.tst: fix -perm tests
06-05-25 find.c: fix inum (and all but size) default units

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

07-01-11 misc/stk.c: a 2 day marathon bug fix (can we release now dr ek?)
07-01-05 comp/spawnveg.c: posix_spawnattr_setflags(POSIX_SPAWN_SETPGROUP)
07-01-05 misc/error.c: fix multibyte vs. printable logic
07-01-01 comp/ LC_ALL=C
06-12-26 tm/tmxdate.c: handle nn*.nnnn* == sec.ns
06-12-20 features/ generalize sol.* LIBPATH patterns
06-12-18 comp/setlocale.c: include ast_standards.h and ast_wchar.h !
06-12-12 string/strperm.c: octal modes are absolute!
06-12-11 comp/ always defer ARG_MAX
06-12-07 Makefile: fix conftab.c generation CCFLAGS to match build - doh
06-12-04 sfio/sfcvt.c: fix (int) vs. (long) cast mismatches
06-12-01 comp/ add changes to cover solaris { bin xpg4 xpg6 }
06-12-01 regex/reginit.c: adjust { SRE KRE } escaped (){}*? inside [...]
06-12-01 sfio/sfcvt.c: add signbit/copysign tests
06-11-22 comp/spawnveg.c: fix _real_vfork logic to work with 3d
06-11-20 features/common: bias _ast_int8_t "long long" before "__int64"
06-11-20 string/strperm.c: fix X to work with all ops (not just +)
06-11-15 astconf.c, add CONF_DEFER_* for variable constants
06-11-11 port/astconf.c: validate path arg w.r.t. underlying calls
06-11-11 comp/ fix S CONF_STANDARD bug, add D to defer to native
06-11-11 comp/ add D to defer to native
06-11-01 include/vmalloc.h: avoid VM_FLAGS sys/v*.h clash
06-11-01 include/ast.h: add FMT_PARAM for fmtquote()
06-10-31 disc/sfdcseekable.c: add SFSK_DISCARD for seekable window control
06-10-31 comp/spawnveg.c,features/lib: handle posix_spawn exit status 127
06-10-30 features/lib: fix posix_spawn() fork() prototype conflicts
06-10-30 string/fmtscale.c: fix 1024 rounding bugs
06-10-27 disc/sfkeyprintf.c: handle 'i' (=='d') -- oops
06-10-26 sfio/sfvprintf.c: %#d => fmtscale(1000), %#i => fmtscale(1024)
06-10-26 features/map.c: _map_libc cleanup
06-10-26 features/fcntl: add to the circle of trust
06-10-26 features/sys: add <sys/socket.h> socklen_t
06-10-26 include/regex.h: handle include before <ast_map.h>
06-10-25 astconf "SHELL" => "SH" to avoid _POSIX_SHELL conflict
06-10-25 comp/conf.*: drop no-op duplicate conftab.c entries
06-10-18 string/fmtscale.c: 1000: n[.]n[n](kMGTPE), 1024: n[.]n[n](KMGTPE)i
06-10-11 ast_std.h: now implies <sys/stat.h> (did on most before anyway)
06-10-11 strtoi.h: ignore sign for 0, validate scale shift
06-10-11 strdup.c,vmstrdup.c: handle 0 arg
06-10-11 add sfstruse()/sfstropen() error checks
06-10-10 misc/procopen.c: envv==environ => don't modify environ
06-10-10 misc/procclose.c: return valid exit(1) status
06-10-06 port/astconf.c,comp/,comp/ play nice with getconf(1)
06-10-01 comp/ SHELL default checks { _CS_PATH } X { ksh ksh93 sh }
06-10-01 comp/ export CONF_getconf to shell actions
06-10-01 comp/putenv.c: always enable setenv() for procopen()
06-10-01 misc/procopen.c: use pathshell() or astconf("SHELL",0,0) if PARANOID
06-10-01 path/pathshell.c: localize the shell path patterns and accept ksh93
06-09-28 Makefile: avoid ast <stdio.h> vix iffe -X ast -- doh
06-09-27 regex/regdecomp.c: add
06-09-26 regex/regcomp.c: handle KRE ~(...)<invalid-kre>
06-09-25 reorganize to avoid native header intercepts
06-09-15 uwin/crypt.c: _UWIN only!
06-09-14 Makefile: tweak the ast_common.h bootstrap again (finally?)
06-09-14 misc/optget.c: noncommercial => OPT_proprietary
06-09-12 string/strelapsed.c: fix multi-char qualifier parse
06-09-12 string/strtoi.h: drop [cClLqQwW] multipliers
06-09-11 misc/optget.c: add numeric arg validity check
06-09-07 misc/optget.c,tm/tmfix.c: fix uninitialzed var refs
06-09-05 path/pathprobe.c: add version header verification
06-08-01 Makefile: handle iffe vs FEATURE/common vs ast_common.h
06-08-31 Makefile: add ast_map.h to the bootstrap list
06-08-30 misc/glob.c: fix ~(E)re bug that stripped ~(E) before regcomp
06-08-30 include/ast.h: add { integralof(x) pointerof(x) }
06-08-27 string/strelapsed.c: fix off-by-one (too little) parse bug
06-08-25 misc/optget.c: 0*<n>.* numeric option args => <n>.*
06-08-22 misc/glob.c: handle ~(...) pattern options
06-08-16 string/strelapsed.c: fix off-by-one (too far) parse bug
06-08-16 regex/regcomp.c: accept but ignore ~(N)
06-08-14 features/ add solaris LD_LIBRARY_PATH_64 check
06-08-05 sfio/sfpool.c: pool SF_READ|SF_WRITE loop fix
06-08-02 misc/fts.c: fix FTS_NOSTAT optimization to check for ..
06-07-28 include/glob.h: add gl_extra for user globlist_t expansion
06-07-27 features/common: #include "ast_map.h"
06-07-26 comp/fnmatch.[ch]: allow <ast_map.h> to map fnmatch()
06-07-22 cdt: snarf from kpv
06-07-17 string/strperm.c: perm==-1 skips umask(1)
06-07-17 sfio/sfvprintf.c: handle format invalid mb seq
06-07-17 regex/regcomp.c: inline REG_SHELL => anchored, otherwise not
06-07-17 regex/regcomp.c: inline B|G:basic E:REG_EXTENDED F|L:REG_LITERAL
06-07-17 regex/regcomp.c: inline l:REG_LEFT r:REG_RIGHT
06-07-17 regex/regcomp.c: inline a:REG_LEFT|REG_RIGHT p:~REG_LENIENT
06-07-17 string/chresc.c: add \Uxxxxxxxx
06-07-17 sfio/sfstrtof.h: ignore thousands sep after decimal
06-07-17 string/tokline.c: splice() => spliceline() for bsd
06-06-27 features/float,sfio/sfcvt.c: fix Nan logic
06-06-27 port/astmath.c: fix long double isnan() test
06-06-27 features/map.c: _map_libc for std => _ast_std
06-06-25 string/strperm.c: handle posix = w.r.t. umask
06-06-19 port/mnt.c,features/fs: handle netbsd getmntent api change
06-06-18 regex/regstat.c: add REG_LITERAL check
06-06-11 cdt/dtview.c: update from kpv
06-05-31 sfio/sfhdr.h: fix _SFOPEN() typo
06-05-09 comp/ add native getconf -a names to the mix
06-04-28 misc/optget.c: add solaris long option name compatibility
06-03-09 string/strmatch.c: add REG_ADVANCE => REG_* flags
06-02-14 comp/iconv.c: fix uwin iconv_list() /reg/ generator

:::::::: libcdb ::::::::

06-10-11 add sfstruse()/sfstropen() error checks

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

07-01-02 fmt.c: fix buffer splice off by one bug -- what else
06-11-23 cmd.h: because of proto cmdinit cannot be a function like macro
06-11-21 cp.c: fix 06-10-31 const dot[] readonly assignment
06-11-15 cp.c: fix 06-10-31 ln -s enoent bug
06-11-11 getconf.c: let astconf() handle "undefined" vs. ""
06-11-11 getconf.c: fix deferred getconf path search
06-11-11 fmt.c: handle two char { \t } in --usage ouput
06-10-31 global edit to eliminate most non-const static data0
06-10-31 use <cmd.h> for all b_*() implementations; drop <cmdlib.h> 
06-10-31 cmd.h: add CMD_ prefix to { BUILTIN DYNAMIC STANDALONE } 
06-10-31 join.c: tone down /tmp usage vi SFSK_DISCARD
06-10-31 cp.c,rm.c: update to <fts.h> to accomodate non-static data
06-10-29 date.c: "...%H%..." => "...%H" "%..." to avoid SCCS conflict
06-10-26 fds.c: handle sctp
06-10-18 tail.c: fix invalid suffix infinite loop
06-10-11 chgrp.c,cp.c: add sfstruse() error checks
06-10-10 tee.c: add --linebuffer, -l
06-10-06 getconf.c: preserve native getconf(1) known variable behavior
06-10-04 sync.c: add (thanks to Roland Mainz)
06-10-04 getconf.c: add -v specification => run native getconf(1)
06-09-28 stty.c: static setmode() => set() for darwin.i386
06-09-27 head.c: handle -1c => -c1
06-09-19 pathchk.c: pathconf() => astconf()
06-09-11 tail.c: handle compatibility corner cases
06-09-08 date.c: add output write error diagnostic
06-09-04 tail.c: fix initial position for -n0, no args => no -f
06-08-28 uniq.c: add -D,--all-repeated
06-08-25 wc.c,wclib.c: add -L,--longest-line,WC_LONGEST
06-08-24 wc.c,wclib.c: implement -m and WC_MBYTE
06-08-24 rmdir.c: -sp applies to every message, add gnu -e
06-08-23 rmdir.c: add solaris --suppress, -s
06-08-23 mkdir.c: don't add 0300 to -p final dir mode
06-07-17 cut.c: handle last line with no newline
06-07-17 cut.c: --output-delimiter == --line-delimiter
06-06-25 chmod.c: mask -c output with S_IPERM
06-05-09 uname.c: add -o; change -a to match linux
06-05-03 date.c: add --last -L to list last of multiple time args
06-02-14 tail.c: fix -f bug that lost fast stream data

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

06-08-23 code-uu.c: fix remainder output *and* input bugs

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

06-08-22 coshell.h: procrun => coprocrun, system => cosystem
06-08-09 coshell.h: export CO_ENV_MSGFD for COSHELL=coshell
06-08-02 coexec.c: Cojob_t.flags&CO_SERVICE for service requests
06-08-02 cokill.c: cokill() signal==0 => kill CO_SERVICE jobs
06-07-27 coexec.c: drop server cowait() that bypassed caller
06-06-21 coexec.c: add non-block cowait() to drain responses
06-06-11 fix service intercept cleanup
06-05-24 add service=name:init lightweight service intercepts

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

06-09-19 css.c: sysconf() => astconf()
06-08-15 csclient.c: fix prompt logic
06-08-14 csopen.c: fix group=name logic
06-08-04 csclient.c: fix CS_CLIENT_ARGV
06-06-11 csclient.c: add
06-05-31 csopen.c,cs.h: add csattach() for non-/dev/fdp/ streams

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

06-10-11 dllscan.c: check sfstruse() return values -- doh

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

06-12-04 dssopt.c: add full type description to dssopt()
06-10-11 add sfstruse() error checks
06-02-14 dss.h: always __EXPORT__ dss_lib()

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

06-10-11 add exstash() and exnospace() for sfstruse()/vmstrdup() errs

:::::::: libmap ::::::::

06-10-11 add sfstruse() error checks

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

06-09-23 ppop.c: check -I <dev,ino> for c and TYPE_HOSTED|TYPE_VENDOR attrs
06-09-23 pplex.c: add HOSTED check for "/* appears in // comment" -- doh
06-09-05 pp.probe: add version stamp comment
06-06-29 pp.probe: gcc pp:linefile probe (otherwise it can dump!)
06-06-28 ppproto.c: fix inappropriate __PARAM__ insertion
06-05-09,ppcontrol.c,ppproto.c: add externalize
	 ppfsm.c: handle compatibility ul numeric qualifiers
06-02-28 probe.win32: add wchar_t probe

:::::::: libpz ::::::::

06-12-18 pzline.c: move to separate plugin source dir
06-10-11 add sfstruse() error checks
06-03-22 pzopen.c: change "input stream close error" to "data corrupted"

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

06-12-15 rskeyhdr.h: increase MAXFIELD to INT_MAX
06-07-17 rsprocess.c: re-key after RS_READ calout
06-06-29 rsprocess.c: set obj key,keylen before RS_READ
06-05-10 rsmerge.c: (car) caught 2 more missing RS_WRITE callouts!
06-04-20 rsmerge.c: no RS_WRITE events for intermediate merge -- doh
06-04-19 finally fixed multi-level merge v record format bugs
06-02-14 recsort.h: always __EXPORT__ rs_disc()

:::::::: libtksh ::::::::

06-09-19  src/shcompat.c: sysconf() => astconf()

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

06-07-26 vcgetmeth.c,vcextract.c: handle CC_NATIVE!=CC_ASCII
06-02-14 vcodex.h: add __EXPORT__ to plugin declaration

July 28, 2011