Changes since 2004-03-19 follow.

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

05-02-02 *.sh,*probe: IFS may be unset and { ash bsh } don't on startup -- wow
05-01-11 update setup docs to include authorize+password fix .source.cyg final directory edit notice=1 for conspicuous empty NOTICE file fix *-index.html installation retain input file suffix in tmp copy
	 mamexec.c: fix non-contiguous "exec" bug that skipped lines fix candidate lib test to try grouping subsequent libs fix child process stdin hijack that skipped input lines --shell=osh to force read -r compatibility command chop iffe input leading space before # for KnR compatibility
05-01-05 add ${TAR} ${TARFLAGS} and tar B flag for pipes
	 mamake.c: fix makefile scan to ignore lib*.[hH] immunize function/symbol tests from aggressive -O
04-12-28 add :WWWPAGE: faq.*.mm index generator
04-12-21 ratz.c: make sure tmp dir is writable -- doh
04-12-08 fix dat test for aggressive -O
04-12-01 add `include file' to pull in #define's for `exp'
04-11-11 default MAKESKIP is "*[-.]*"
04-10-22 ratz.c: change docs to note zlib license
	 mamake.c: handle --debug-symbols and --strip-symbols make (debug|strip)=1 => --(debug|strip)-symbols add :LICENSE: => package.license.class
	 mamake.c: fix recursive order logic
04-10-18 add :LICENSE:, :OMIT: to omit package subdirs
04-10-11 add 'authorize name' and 'password password'
04-10-01 double check $static link with ! $static
	 Makefile: add BUILTIN_LIB to $INSTALLROOT/bin/.paths
	 make.probe: add CC.DIALECT EXPORT={ALL,REF,EXT,DLL} add BUILTIN_LIB to $INSTALLROOT/bin/.paths
04-09-21 $(init)$(name) is now an implicit prereq
04-09-09 copy to $INSTALLROOT/bin/ok
04-09-01, rename *.txt => *.README add the runtime package type (no *.[ah]) fix key test reports
04-08-26 Makefile: { add m2.c m3.c } -lm tests for { frexp[l] ldexp[l] }
04-08-11 handle HOSTTYPE for solaris > 9 add `checkaout proto' for { make view } check for { md5sum md5 } add {if|elif|else|endif} test ... add 'exp - expression' and '( expression )' add 'name = test ...' user defined macros add '! test ...' negation add implied { .c .sh } generated prereq
	 cc.darwin.ppc: handle 10.3 -dylib mess
04-08-01 let include handle nested requirements -- duh
04-07-31 attempt a second ping before admin assumes host down
04-07-26 fix hp.ia64 HOSTTYPE
04-07-23 probe.win32: generalize #include dir order search
04-07-17 add INPUT -x for chmod +x
04-07-01 TMP => TWD
04-06-29 put COMMAND in $TWD too
04-06-21 mkdir -p INPUT and OUTPUT intermediate dirs add :TEST: -- to disable .c .sh search
04-06-18 add .SCAN.tst
04-06-17 TEST returns true if active, false otherwise add CD to change test pwd from $TWD
04-06-16 add TWD for ./unit.tmp override DO now flushes previous test INPUT and OUTPUT handle -f for printf instead of print
04-06-11 make sure $INSTALLROOT/bin is in front of $PATH skip nmake if older than 2000-10-31
04-05-20 fix arg vs. package parse with - or '' to disambuguate
04-05-11 package verbose update lists closure for package setup add src/lib/libardir to nmake proto bootstrap probe for rm -u vs. chmod -R u+rwx
04-05-01 $CC must be C, not C++; allow release command on $PATH
04-04-15 make.probe: check probe_libdir false positives add lib/package/*.lic src package subdirs add mamfile=0 to inhibit Mamfile generation config name_DECLARED => HAVE_name_DECL fix mac to handle default value
04-04-11 normalize sed [\\\\/] quoting
04-04-04 only checksum generated tarballs add STDCHMOD
04-04-01 C+probe: set export LANG=C for uniform error messages
	 make.probe: another CC.STDLIB tweak fix regress core dump pattern, expand [a-z] match ranges
04-03-31 Makefile: add intl :MAPLIB: test
	 make.probe: fix CC.STDLIB search; drop CC.* path duplicates
04-03-28 drop unused exec $stdin<&0 dup
04-03-25 Makefile: add iconv :MAPLIB: use ${PING:-ping -c 1 -w 4}, allowing admin.db override
04-03-24 add *.md5 checksum for each *.(c|exe|tgz) update base change on md5 sum instead of size adjust case label  and keyword quoting for ancient /bin/sh
04-03-22 probe.win32: ncc => nld
04-03-19 change the instructions and old source dir default fix recurse=list check add *.md5 checksum for each *.(c|exe|tgz) fix update base/delta/sync existence check

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

05-01-11  --- Release ksh93q  ---
05-01-11  A bug in the integral divide by zero check has been fixed.
05-01-11  The -l option has been added to cause /etc/profile and
	  $HOME/.profile, if they exist, to be read before the first command.
05-01-11  An argument parsing bug that caused `kill -s x -- n' to fail has
	  been fixed.
05-01-11  The .paths file, introduced in ksh93m, which can appear in
	  any directory in PATH, now allows a line of the form 'BUILTIN_LIB=.'
	  When a command is searched for this directory, and the full path
	  matches the path of the built-in version of the command (listed
	  by the 'builtin' comman) then the built-in version of the command
	  is used.  When ksh is built with SHOPT_CMDLIB_DIR=1 then all libcmd
	  functions become builtins with the '/opt/ast/bin/' directory prefix.
05-01-10  A bug in which a nameref to a compound name caused a core dump has
	  been fixed.
05-01-09  A bug in which some SIGCHLD interrupts (from child processes exiting)
	  caused a fatal print/echo error diagnostic has been fixed.
04-12-24  A bug in which some SIGCHLD interrupts (from child processes exiting)
          corrupted the internal process/job list, sometimes causing the shell
	  to hang, has been fixed.
04-12-01  A bug in which typeset -Fn truncated in less than n digits for large
	  numbers has been fixed.
04-11-25  A bug in which standard error could be closed after a redirection
	  to /dev/stderr has been fixed.
04-11-17  A bug in which an expansion of the form ${array[@]:3} could expand
          to ${array[0]} when ${array[3]} was not set has been fixed.
04-10-22  The -E or -orc command line option reads ${ENV-$HOME/.kshrc} file.
04-10-22  `-o foo' equivalent to `+o nofoo', `-o nobar' equivalent to `+o bar'.
          `--foo' equivalent to `-o foo', `--nofoo' equivalent to `+o foo'
04-10-05  The .paths file, introduced in ksh93m, which can appear in
	  any directory in PATH, now allows a line of the form
	  'BUILTIN_LIB=libname'.  When a command is searched for this directory,
	  the shared library named by libname will first be searched for a
	  built-in version of the command.
04-09-03  <<< here documents now handle quotes in the word token correctly. 
04-08-08  The maximum size for read -n and and read -N was increased from
	  4095 to 32M.
04-08-04  printf %q was modified so that if an no operand was supplied, no
	  no output would be generated rather than a quoted empty string.
04-08-01  The -n and -N options of the read builtin has been modified
	  when reading variables with the binary attribute so that the
	  data is stored directly rather than through assignment.
04-08-01  The shcomp command has been modified to process alias commands
	  under some conditions.
04-07-31  The .sh.match variable added in ksh93l, now works like other
	  indexed arrays.
04-07-08  A loop optimizer bug which occurs when typeset is used in
	  a for or while loop inside a function has been fixed.
04-06-24  The number of subexpressions in a pattern was increased to 64
	  from the current number of 20.
04-06-17  The -t option to read was modified to allow seconds to be
	  specified as any arithmetic expression rather than just
	  an integral number of seconds, for example even -t 'sin(.5)'
	  is now valid.
04-06-16  Two small memory leak problems were fixed.
04-06-15  A bug in ${var/pattern/"string"} which occured when string
	  contained pattern matching characters has been fixed.
04-05-08  printf $'%d produced an erroneous error message and has
	  been fixed.
04-05-24  A bug in which an associative array without any elements could
	  cause a core dump when a script with an associative array with
	  the same name was declared in a script invoked by name has
	  been fixed.
04-05-11  A bug in which an exec statement could close the script that
	  is being proccessed in a script that is run by name causing
	  a failure has been fixed.
04-04-28  If the first character of assigment to an integer variable was 0,
          the variable had been treated as unsigned.  This behavior was
          undocumented and has been removed.
04-04-05  A bug in which the positioning of standard input could be incorrect
	  after reading from standard input from a subshell has been fixed.
04-03-30  A bug in the for loop optimizer which in rare cases could cause
	  memory corruption has been fixed.
04-03-29  The preset alias source='command .' has been added.
04-03-29  A bug introduced in ksh93p on some systems in which invoked by
	  name with #! on the first line would not get the signals handling
	  initialized correctly has been fixed. 
04-03-29  A bug introduced in ksh93p in which a HUP signal received by
	  a shell that is a session group leader was not passed down to
	  its children has been fixed.

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

04-12-25 bio.c: fix (*putheader)() return value logic, especially for ENOSPACE
04-12-08 listformat now handles high resolution time
04-12-01 tv.h,tv.c,features/tv move to libast
04-09-25 bio.c: fix ap->io->count for skipped data -- wow
	 pax-rpm.c: fix header padding logic
04-09-01 bio.c: fix bread() seek logic
04-08-11 pax.c,options.h,options.c: add -C,--chmod=mode to control header modes
04-08-05 bio.c: fix bread() pointer arith 64 bit assumption (pax#15)
04-08-01 delta.c: fix checksum 32-bit logic (pax#11) (testpax#01)
04-07-19 delta.c,format.c,pax-tar.c: { O_RDONLY O_WRONLY O_RDWR } are values

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

05-02-01 IFS may be unset!
05-01-11 add --top
04-12-22 fix .xx link unverified rm
04-08-01 htmlrefs.c: symlink only if different mtime
04-06-18 htmlrefs.c: add -S,--symlink to symlink() rather than copy
04-04-26 troff2html: handle .ta
04-04-04 mm2html: .xx link|text separated by tab for table entry urls

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

04-10-24 note in docs that ratz options apply to sear .exe's
04-10-22 proto.tst: add array arg prototype tests
04-10-01 proto.c: add CPL docs
04-09-24 add cc -c to avoid nativepp "ratz.c" message
04-05-20 proto.tst: add `int fun __P((int));' test
04-03-19 proto.c: add { .cpp .hpp }, fix standalone -c parse

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

05-01-11 tw.c: --local test for directories only
04-12-24 tw.c: cmd non-zero exit status causes tw to terminate
04-12-08 find.c: fix `option ... path ... option' logic *again*
04-08-01 find.c: really fix -size
04-04-15 tw.tst: add %s scanf tests
04-04-01 find.c: handle `-sort -KEY' and `-sort KEY'
	 find.tst: add `-sort -name' for uniform results -- duh

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

05-01-04 date.c: add ``FMT time format answer''
04-10-31 date.dat: add { hours days weeks months } ago tests
04-10-27 opt.tst: TESTs 9? for astsa (stanadalone ast)
04-09-14 date.dat: add %| and %& tests
04-09-08 opt.tst: add :!value: omitted optional arg value TEST 47
04-04-15 date.dat: add specific and ordinal day tests
04-04-01 vmalloc: snarf vmalloc tests from kpv

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

05-02-01 IFS may be unset and { ash bsh } don't on startup -- wow
05-01-01,utimets3d.c: add utimets() intercept
04-12-15 pathreal.c: "..." should fail if no lower view -- doh
04-10-01 features/syslib: _exit test now uses SIGKILL (openbsd abort() hangs)
04-07-26 update runtime docs
	 3d.1: drop in deference to the runtime docs
04-07-20 3d.h: undef _BLD_DEBUG to avoid raw libast symbols
04-07-19 fs.c,lib.c,open3d.c,vcs_3d.h: { O_RDONLY O_WRONLY O_RDWR } are values
04-07-19 dir3d.c: rewinddir643d() must call seekdir643d() (not seekdir64())
04-07-01 3d.tst: TMP => TWD to match regress(1)
04-06-16 3d.tst: coordinate $TMP with regress(1)
04-06-14 lib.c: fix fs3d() 2d return value
04-06-11 3d.tst: fix test and error counts
04-05-04 open3d.c: create missing lower level dirs for O_CREAT ... file paths

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

04-10-01 cpp.tst: adjust for hidden line patch
04-08-11 cpp.tst: adjust for ppproto.c patch

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

05-01-01 --- release 5.0 ---
	 high resolution time stamps
04-12-25 handle cc-,a=b check for -I. after -I- add MVFLAGS=-f for install actions relax .PACKAGE.INIT. PACKAGE_%_INCLUDE search fix list.manifest recursion add experimental --recurse=combine assert .LCL.INCLUDE before .PREFIX.INCLUDE :T=G: bind fix _PACKAGE_ID
	 bind.c: disable bindalias() for unbound files -- doh
	 misc.c: fix { %C %S } core dump (after a warning!)
	 parse.c: drop CON_scan for over all rules; $(...) does it
	 parse.c: drop { .ASSERT .ASSIGN } lists, add { .ASSERT. .ASSIGN. }
	 state.c: ignore file timestamp subsecond truncation -- willya fix ext3
04-12-08 add .SCAN.iffe for `include previous-iffe-output' fix $(prefixinclude:?...) => $(-prefix-include:+...) no -g CC.LIB.TYPE (in ar name) if CC.OPTIMIZE also set
	 rule.c: don't propagate .DONTCARE .IGNORE to bound rule
	 parse.c: association pattern ending in % is appended
	 expand.c: fix :P=A: 3d logic to retain pwd prefix -- doh
	 expand.c: fix makefile scan to ignore lib*.[hH]
	 bind.c: fix bug that missed bind dir for x given explicit d/x (edit#18)
	 misc.c,option.c: *,*=* is a target/prereq, not a (scoped) var assignment
04-12-01 object.c,state.c: tmsleep() on statefile time for 1 sec granularity
04-11-25 expand.c: handle :T=<op>=<ops>: for all <op>
	 command.c: maintain error state for cancelled actions
	 command.c: add .AFTER .FAILURE to capture action errors LEX = $(FLEX) if flex exists add :YYPREFIX: fallback to previously generated
04-10-22 check for package-pwd in LICENSEFILES mam ${(debug|strip)...} => ${-(debug|strip)-symbols...} add $(LICENSECLASS) add $(package.license.class) pattern for .LIST.PACKAGE.* add $(.SELECT.EDIT.) for omitting .RECURSE subdirs
	 expand.c: fix recursive order logic
04-10-01 metarule.c: metaget assumes % target for ... : % .NULL (-Q0x08000000)
	 scan.c: add \T token match for (\D|\V) :PACKAGE: --option checked first, "set" by default .SCAN.cob COPY has "\T" lead-in instead of " \D"
04-09-28 expand.c: fix operator separator parse (edit#17)
	 option.c: fix $(-c) option flag lookup (option#14)
04-09-24 option.c: optcheck() after each option table change
04-09-21 add --option prereq scope with getopt() style "--" terminator
	 expand.c: :P=A: now acts like :P=L!: fix $(-static) => $(-static-link) /bin/cat.exe => "%.exe : % .NULL"
04-09-09 expand.c: add :T=QO: (isoption()) and :T=QR: (!!getrule())
	 object.c: finally stomp the complist() panic via compcheck()
	 object.c: fix loadstring() to detect early EOF
	 option.c: add isoption(), --name[[-+&|^]=value]
	 option.c: fix set option table format to handle future extensions drop PACKAGE_LOCAL definition -- not used anywhere add rules options, syn with options.c this version incompatible with make < 2004-09-09
04-09-01 add .LIST.PACKAGE.RUNTIME fix recursive .LIST.PACKAGE.EDIT.
	 make.h,options.h,option.c,command.c: add --serialize, state.serialize
	 expand.c: sync :W: 2d and 3d logic
	 option.c: add --option values subarg for optget(3) value list
	 read.c: fix MAKERULES vs. explicit rules statement logic
	 variable.c: change $(+) to $(--[name]), add $(-?[name])
04-08-31 fix -D-d vs -dD logic
04-08-11 expand.c: :W=O: scans INIT files too -- duh
	 expand.c: fix :P=H: sufix checks
	 expand.c: handle :P!=S:
	 command.c: fix .JOBDONE rule arg (internal#05)
	 command.c: fix --targetcontext directory commit logic
	 metarule.c: add --targetprefix=prefix to handle source base clashes
	 parse.c: fix local ( a ... ) $(%) (statement#10) fix :PACKAGE_INSTALL: to use .ACCEPT (e.g. for proto) fix .MAMEDIT. initialization for 2d vs. 3d YACCFIX now applies proto to ignore VERSION==- for default output file names fix :DLL: to work -- wow fix synthesized rule names to avoid .. canonicalization fix :PACKAGE: to handle `foo=bar' rhs add .LIST.PACKAGE.LICENSE add separateinclude=1 to override CC.DIALECT=-I- handle --targetprefix
04-08-10 add :PACKAGE: { atl crt mfc } support -- puke
04-07-27 move :: related files to msg specific action
04-07-22 tests/*.tst: more test additions
04-07-17 archive.c: --regress enables ranlib for all archive types
	 bind.c: fix binding guess for unbuilt targets
	 bind.c: fix overzealous dir HASH prune for 2d views
	 bind.c: allow D_source&P_target to inherit lower view (assert#29)
	 expand.c: add :T=B..: unbind pre-op
	 main.c: move the .INIT trap after candidate state variable freeze
	 main.c,read.c: update MAKECONVERT to handle 'file1:file2 action ...'
	 make.c: let joint prereq share sibling frame for binding (assert#34)
	 make.c: fix require_p loop detection
	 object.c: add objectfile() to unify with statefile()
	 object.c: fix lower view state var time propagation
	 object.c: -nbf file inhibits frozen var check
	 object.c: use complink() skip logic in comprule() -- wow
	 option.c: --writestate and --writestate can specifiy dir only
	 rule.c: add .GLOBAL and
	 state.c: drop leads/lags warning for --regress handle multiple :LINK: lhs fix .DO.INSTALL.DIR view logic with .DO.TOP.LEVEL add ".ATTRIBUTE.%.h : .SCAN.c" for .PARAMETER files add $'...' quotes
04-06-30 parse.c: pass blank lines at all input levels to preserve numbering
	 parse.c: no space indent warning for blank lines
	 parse.c,syntax-08: handle quote after expansion in expression
04-06-28 make.c: preserve joint metarule prereq list order
	 diagnostics.tst: add
04-06-21 make options env ignored if MAKE_OPTIONS set
	 make.h: add state.import with increment/decrement semantics
	 options.h,options.c,variable.c,object.c: add import state option
	 parse.c: fix here action parse to honor quotes and nesting
	 parse.c: retain blank/hidden action lines for line number consistency
	 trap.c: fix functional vs. obsolete virtual interrupt logic
	 assert.tst,automatics.tst,interrupts.tst,syntax.tst: add
04-06-20 dump.c: drop dumprule() trailing ' ' by adding "state" status
	 expand.c: skip tst=='F' for :T=XG:
	 make.c: maketop() rule rename disabled (what did that do?)
	 misc.c: handle %o in printext() -- oops
	 misc.c: %t %T calls tmdate() if not a number
	 parse.c: D_scope prereqs do not set P_target if ! "$(CC.DIALECT:N=-I-)" then no -I- -- duh
04-06-19 implicit.tst: add
04-06-18 rule.c: add nametype() to unify is*() name type macros
04-06-17 options.h: add -q, --regress to massage output for testing
	 misc.c: add numtime() for mam/regress/trace numeric times
	 prereqs.tst: add
04-06-12 assignment.tst: add
04-06-11 fix per-target +l vs. -l
	 nmake.tst: split into attributes.tst edit.tst options.tst
	 options.c: recode to pass options.tst
04-06-10 nmake.tst: initialize in 2d with no VPATH
04-06-08 drop :PACKAGE: nolibrary => -l%:.VIRTUAL
04-06-06 rule.c: fix associate() .SCAN match
04-06-04 add :PACKAGE: foo:notype bar:type=-p --type=-g fix .REQUIRE.* to handle libfoo.a etc.
	 scan.c: add 'O' option to inhibit scan override warning
	 parse.c: debug=7 for active statements, debug=8 for skipped
04-05-31 fix :PACKAGE: version logic add .FLAGSINIT, called in .MAKEINIT, strip to generic cobol
	 expand.h,expand.c: add ^ edit op sep
04-05-20 fix .OFFICIAL to not diff dirs
04-05-19 parse.c: make the read builtin interruptable
04-05-18 rule.c: move b_*() builtins here, add b_syscall()
04-05-11 mam.c: add "bind ..." to match the mam doc
	 make.c: add "meta ..." to match the mam doc tweak cobol sql scan
	 scan.c: fix ancient dup pattern prefix bug
04-05-06 fix CCLD CCLDFLAGS semantics
04-04-15 expand.c: fix :V: operand check
	 expand.c: check var alternation only before first delimiter
	 expand.c: add :P=F: to recursively expand dir hierarchies
	 expand.c: fix ancient $(...) non-tokenizing edit op bug
	 parse.c: fix dup scope prereq value append
	 bind.c: check for consistent ../* bound directory rebind fix :PACKAGE: :noinclude:nolib:noroot add :P=F: to .MANIFEST. add :INIT: drop obsolete MAKESKIP var definition proto notice generation disabled unless LICENSE=="*=*" package/PACKAGE.(lic|pkg) on PKGDIRS inhibits "not found" "test" action checks for gnu "check" fix recurse action target selection fix .INCLUDE.cob to search lower and upper case suffixes add SYSDIR
04-04-12 Makefile: add STDCHMOD (for osf.alpha cmd :LIBRARY:)
04-04-04 bind.c: don't alias 2d directories -- duh
04-04-01 .BIND.+l% checks .REQUIRE.-l% for disable
04-03-31 expand.c: add :VB: for VAL_BRACE { ... } fix .SHARED.LIST. again add :PACKAGE: noCC.* CC.*=value probe overrides
04-03-30 omit -L*/local/* if in CC.STDLIB (00-03-17 repeal)
04-03-25 drop openbsd.i386 -lc_r workaround fix .SHARED.BIND. CC.SUFFIX.STATIC -l* expansion bug

:::::::: ss ::::::::

04-07-22 ssd.c: access() => eaccess()

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

04-10-01 fmt.tst: update for --optget
04-09-30 od.c: -v does not accept an offset operand
04-08-08 uuencode.c: fix -x docs, add -b == --method=binhex
04-07-22 look.c: access() => eaccess()
04-07-01 pr.c: add -c and -v via sfio input discipline
04-05-27 expr.tst: add string and `:' operator tests
04-04-14 tr.c: char* => unsigned char* to avoid sign extension

:::::::: cql ::::::::

04-07-22 hix.c: access() => eaccess()

:::::::: ie ::::::::

05-02-01 IFS may be unset and { ash bsh } don't on startup -- wow
04-07-26 update runtime docs
04-07-23 Makefile: link with static ast libraries

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

04-08-17 head.c: handle Content-Type: message
04-07-22 lex.c: access() => eaccess()
04-04-15 spam.c: add spamtest mask names, fix spam() ordering
04-03-25 mailx.h: shquote=>shellquote to avoid netbsd clash in <stdlib.h>!!

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

04-06-08 ed.c: fix move() bug that botched pointers across append()
04-05-24 testregex.dat: add more backreference tests
04-05-11 testregex.c: matchprint() now lists (?,?) up to nsub

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

04-12-01 main.c: fix -zI bug that only worked for 1 input file (sort#26)
04-09-28 main.c: fix ERROR_USAGE logic
04-08-11 main.c: add #intermediates to -Xdump, limit intermediates to 64
04-07-22 main.c: acces() => eaccess()
04-06-16 main.c: -R% -R- use recfmt() to sample for record format

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

04-12-25 ls: -e == --time-style=long-iso, -E == --time-style=full-iso
	 ls: fix --quote-style=literal to bet literal -- doh
04-12-15 ls: --time-style=long-iso
04-12-12 touch.c: add high resolution time support
04-10-28 ls.c: add space between group/size so they won't run together
04-10-01 dd.c: drop ancient unused map code
04-09-14 ls.c: add -w[linesX]cols, last col must be visible in window
04-07-17 ls.c: rename -f => -Z, add x/open -f
04-03-28 ls.c: add variable column widths for minimal { -C -x } footprint

:::::::: tksh ::::::::

04-03-31 uinit.c: unalias ksh "source" to uncover tcl builtin by same name

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

05-02-01 IFS may be unset and { ash bsh } don't on startup -- wow
05-01-01 warp.c,feature/lib: add utimes() intercept with struct timespec
04-12-09 %s instead of %#, add clock_gettime() intercepts
04-07-26 update runtime docs
04-07-23 Makefile: link with static ast libs

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

05-01-11 sfio/sfmove.c: try to seek(fr) when fw==0
	 comp/omitted.c: intercept utimes() too
	 comp/omitted.c: add DOSPATHVARS env var path value conversions
	 features/tvlib,tm/tvtouch.c: check for utimets()
	 misc/optget.c: handle '-' or '_' option word separators
	 sfio/_sfopen.c: allow stream mode changes after initialization
	 sfio: sync with kpv: SF_SYNCED fix for ksh input loss bug
05-01-09 tm/tmxfmt.c: fix %6N for n<100000000
05-01-08 regex/regcomp.c: conj() => con() to avoid C99 clash
05-01-05 tm/*: fix { %U %V %W } logic -- my head hurts
04-12-30 tm/tmxtime.c: fix tm_isdst<0 loop
04-12-23 vmalloc/vmbest.c: fix vmresize bug that didn't 0 new data
04-12-19 misc/optget.c: broaden - long option match
04-12-09 string/strtoi.h: fix terabyte 't' suffix math
	 string/strmatch.c: flush cache on locale change
04-12-01 tm/tmsleep.c: add
	 tv.h,tv*.c,tv.3: move from pax
	 tmx.h,tmx*.c,tmx.3: add high resolution tm(3) counterparts
	 features/lib: add *another* sgi linux.ia64 memccpy bug check
04-10-31 Makefile: __OBSOLETE__ now computed <6 months ago year>0101
	 ccode.h,ccmapid.c: add ccmaplist(Ccmap_t*) iterator
	 option.h,optesc.c: add 3rd arg, 1 => quote '?' too
	 misc/magic.c: fix bug that terminated `string  a' at  
	 misc/magic.c: handle vcodex() via decompose()
	 misc/ add vcodex magic
	 features/stdio: handle _LARGEFILE64_SOURCE -- oops
	 stdio/(fseek|ftell|fseeko|fsetpos|fgetpos|ftello).c: oops^2
04-10-28 string/swapop.c: size==-4 => size=4 and extend op=3 to op=7
	 tm/tmfix.c: fix tm_mon<0 logic
04-10-22 tm/tmdate.c: handle 'final day feb 2004'
	 port/astlicense.c: add query=all|id|${...}${...}
	 port/astlicense.c: "free" => "mit"
	 comp/omitted.c: revert to the open source license
	 string/stropt.c: drop siz==0 => tab is hash table
	 include/sfio.h: incorporate <sfstr.h>
	 include/sfstr.h: drop
	 disc/sfstrtmp.c: drop -- use sfstrbuf()
04-10-20 misc/ update tar magic
04-10-18 ufc-crypt.h,crypt_util.c: drop GPL code
	 crypt.c: add BSD code
	 pathpath.c: disable { $0 $_ $PWD } related root search
04-10-01 normalize ident stamps
	 port/astlicense.c: add type=cpl -- yeah
04-09-25 string/swapop.c: return op < size -- duh
04-09-23 comp/spawnveg.c: :NOOPTIMIZE: -- volatile sometimes ignored
04-09-21 comp/spawnveg.c: exec_errno_ptr is volatile -- duh
04-09-14 tm/tmscan.c: add %| alternation and %& => tmdate()
04-09-08 misc/optget.c: add :!value: omitted optional arg value
	 misc/optget.c: fix --noNAME ambiguous option logic
04-08-26 string/strperm.c: add who^mode to propagate least restrictive up
	 astmath.c: add { frexpl ldexpl } checks for ast.req
	 port/astlicense.c: ignore first option if non-assignment
	 include/ast_dir.h: move d_fileno map before struct defs -- duh
04-08-24 vmalloc/vmbest.c: add {VM_region} VMCHECK=+r for region segment checks
	 misc/recfmt.c,include/recfmt.h: add
04-08-23 vmalloc/vmbest.c: add {VM_primary VM_secondary} VMCHECK=-s for primary
	 features/common: punt to <stdarg.h> for unknown va_list
04-08-11 vmalloc: sync _UWIN libposix hooks
04-07-27 features/common,features/limits.c: ULL suffix for unsigned _ast_int8_t
04-07-22 include/ast.h,comp/eaccess.c: add eaccess() for effective access()
04-07-19 comp/open.c,sfio/_sfopen.c: { O_RDONLY O_WRONLY O_RDWR } are values
04-06-28 misc/error.c: check level after error_info.auxilliary
04-06-24 string/strmatch.c: strgrpmatch() match[] now variable size array
04-06-17 features/common: change _DLL null define to (the standard ast) 1
04-06-11 misc/optget.c: allow optional [-|+|--|++] optstr() option prefix
	 misc/optget.c: reset optstr() state on 0 return
	 misc/optget.c: text()=>textout() linux.ppc symbol hijack workaround
04-05-31 sfio/sfreserve.c: no side buffer if user buffer is large enough
04-05-27 string/fmtbuf.c: handle one concurrent buf > sizeof(buf)
04-05-24 regcomp.c: fix no-advance initialization
04-05-05, update to align with standards ms suffix update
04-05-04 port/lcgen.c: fix territory initialization
04-04-15 tm/tmdate.c,include/tm.h: fix specific and ordinal days
04-04-08 astconf: retain { HOSTTYPE LIBPATH LIBPREFIX LIBSUFFIX } strict vals
04-04-07 vmalloc/vmbest.c: fix alpha tiny block bug
	 vmalloc/malloc.c: re-enable on alpha
04-03-30 tm/tminit.c: GMT => UCT only if tz.daylight not defined
04-03-25 vmalloc/malloc.c: _AST_std_malloc=1 for __alpha
	 path/pathprobe.c: per-user probe dir => $HOME/.probe/$HOSTTYPE
04-03-23 regex/reglib.h: fix isw*() redefines

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

05-01-11 cat.c: restore output stream to binary mode on exit
04-12-15 cp.c: add --preserve high resolution time support
04-12-08 date.c: add high resolution time support
04-12-01 cmp.c: fix %6I*ld => %6I*d -- doh
	 fmt.c: handle "n operands n"
	 head.c: handle -cN -nN, N > 4Gb
04-11-22 cmp.c: handle >2G chars/lines
04-11-18 fold.c: add --prepend=text, --append=text
04-10-31 tail.c: use SF_LOCKR macro
04-10-28 tail.c: use strtol() for old stype [+-]number[suffix] -- doh
04-10-22 cp.c: check rename() errno==ENOENT to retain destination
04-10-11 fmt.c: fix -o,--optget sublist bugs
	 tail.c: use strton() for number conversion
04-10-08 pathchk.c: add empty path and -p - first component char
04-10-01 fmt.c: add -o,--optget concatenated usage string format
	 stty.c: context is ERROR_INTERCATIVE
	 rm.c: restore 3d before exit
04-09-24 pathchk.c: fix docs
04-09-14 date.c: add %| and %& --parse docs
04-08-27 cp.c: add FTW_DC check -- duh
04-08-01 fmt.c: handle last char != '
04-07-22 date.c,uname.c: access() => eaccess()
04-07-01 fmt.c: handle large input lines -- ouch
04-06-11 id.c: fix -r to output something!
04-05-27 expr.c: fix `:' op subexpression output
04-04-15 chmod.c: follow symlink for relative mode
04-04-12 Makefile: add STDCHMOD (for osf.alpha)
04-03-19 tail.c: handle -f sfreserve() large chunk failure

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

04-10-01 dllfind.c: drop ksh "builtin" workaround
	 dllscan.c: directory prefix in name limits search to dir and siblings
04-07-22 dllscan.c: access() => eaccess()

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

05-01-11 Makefile: fix exop.h generation to handle spurious #define's
04-12-14 exeval.c: handle printf "%% %x"
04-04-15 exeval.c: handle scanf %s -- forgot that regression test!
04-04-01 exparse.y: drop #pragma prototyped

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

04-10-31 rsmerge.c: fix EOF detection
04-10-15 rs-copy.c: add
04-10-11 recsort.h: change int count to Sfulong_t count
04-09-28 recsort.h: add { RS_TERMINATE RS_DELETE RS_ACCEPT RS_INSERT }
	 rsprocess.c,rswrite.c: initial RS_INSERT code -- not right yet
04-08-11 rskeydump.c: list key.nproc if >1
04-06-15 rsprocess.c: fix V format record read

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

04-09-22 cowait.c: remove CO_SERIALIZE temporaries after listing -- duh
04-09-01 co*: add CO_SERIALIZE
04-07-22 system.c: access() => eaccess()

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

04-07-22 csopen.c,cssend.c,csauth.c,cslocal.c: access() => eaccess()
04-07-19 cslocal.c: call spawnveg() for standalone 3d
04-03-25 csrecv.c,cssend.c: OPEN_MAX_CEIL => OPEN_MAX

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

05-01-11 ppargs.c: fix -I-S docs
	 ppinput.c: ppproto() only for COMPATIBILITY or PLUSPLUS
04-10-22 ppproto.c: handle `type var[x][y]' arg prototype
04-10-01 pplex.c: really fix directive hidden newline logic
04-08-31 pplex.c: fix directive hidden newline logic
	 ppcall.c: fix '(' peek bug that missed the MARK
04-08-30 add pragma pp:pragmaflags PP_PRAGMAFLAGS, pp:system_header
04-08-11 ppproto.c: intercept "#(define|undef) extern" for __(EX|IM)PORT__
04-07-23 probe.win32: generalize #include dir order search
04-07-22 ppsearch.c: access() => eaccess()
04-05-20 ppproto.c: don't __PROTO__ `int fun __P((int));'
04-04-15 probe.win32: sync up with uwin 2003-08-06 master -- oops
04-04-01 pp.probe: add stdinclude usrinclude path cleanup

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

04-10-31 cdbcdb.c: fix CDB_OPEN vs. cdbhdrread() sfdisc() buffer flush bug

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

04-04-08 add pznospace()

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

04-07-19  tcl/tclIOUtil.c: treat { O_RDONLY O_WRONLY O_RDWR } as values

July 28, 2011