Changes since 2003-06-21 follow.

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

03-06-21 package.sh: fix INITROOT initialization bug
	 package.sh: make sure admin logs exists before tail'ing

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

03-07-20  --- Release ksh93o+  ---
03-07-20  A bug in which could cause memory corruption when a posix
	  function invoked another one has been fixed.
03-07-15  A bug in which a file descriptor>2 could be closed before
	  executing a script has been fixed.
03-07-15  A parsing error for <() and >() process subsitituions inside
	  command substitution has been fixed.
03-07-15  A parsing error for patterns of the form {...}(...) when
	  used inside ${...} has been fixed.
03-07-15  An error in which expanding an indexed array inside a compound
	  variable could cause a core dump has been fixed.
03-07-15  A bug in which under on rare ocassions a job completion interrupt
	  could cause to core dump has been fixed.
03-06-26  A bug in which process substitution embeded within command
	  substitution would generate a syntax error has been fixed.
03-96-23  A bug in which ${@:offset:len} could core dump when there
	  were no arguments has been fixed.
03-96-23  A bug in which ${X[@]:offset:len} could core dump when X
	  was unset has been fixed.
03-06-22  The -x option was added to the command builtin.  If this
	  option is on, and the number of arguments would exceed ARG_MAX,
	  the command will be invoked multiple times with a subset of
	  the arguments.  For example, with alias grep='command -x grep,
	  any number of arguments can be specified.

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

03-06-21 format.c: add ccode conversion check to putheader()

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

03-06-21 proto.tst: add T_INVALID ? splice bug test

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

03-06-21 cpp.tst: add T_INVALID ? splice bug test

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

03-07-17 archive.c: add arupdate()
	 state.c: don't skew sync archives (avoids possible ranlib interference)
03-06-21 parse.c: fix expr() quote recursion bug
	 Makerules.mk: fix .DLL.INSTALL logic
	 object.c: add initcode() to initialize the ccode maps early enough
	 main.c: add initcode() startup call

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

03-07-14 fmt.tst: add

:::::::: pzip ::::::::

03-07-17 pzip.c: update --split doc
	 pin.c: add --maxhigh=N% high frequency column hard limit

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

03-07-17 testregex.dat: add REG_SHELL|REG_AUGMENTED tests

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

03-06-21 pss-procfs.c: fix PR_TIME(),PR_CTIME() normalization

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

03-07-22 vmalloc/vmbest.c: fall back to sbrk() if mmap() fails
	 features/mem.c: _mem_sbrk means sbrk() and brk() work
03-07-17 regex/regcomp.c: fix bug that treated KRE X{n,m} like {n,m}(X)
	 misc/magic.c: check MAGIC_VERBOSE for all load() messages
03-07-14 misc/optget.c: handle [...]{[...]<.>..<.>..}
03-06-21 misc/sigcrit.c: block SIGCHLD if _lib_sigprocmask || _lib_sigsetmask
	 comp/spawnveg.c,sfio/sfmode.c: use sigcritical() SIG_REG_* macros
	 comp/spawnveg.c: drop ENOEXEC logic
	 vmalloc/*: snarf kpv KPVCOMPACT() fix
	 vmalloc/vmbest.c: export VMCHECK=2 to disable KPVCOMPACT (just in case)
	 string/strdup.c: drop __strdup() etc. intercepts -- malloc gets it
	 features/mem: define _mem_method and _mem_* possible values
	 vmalloc/malloc.c: _AST_mem_method==_mem_* to force mem get method
	 sfio/sfputr.c: __ia64 memccpy is bogus -- how many tries do they get?
	 path/pathshell.c: verify abs path and access(path,X_OK) -- duh
	 vmalloc/vmhdr.h: add private _Vmessage() for non-sfio ASSERT() 
	 port/astconf.c: fix bug that always returned the minmax value

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

03-07-15 fmt.c: ix trailing space bug

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

03-06-21 ppproto.c: fix T_INVALID ? splice bug that did 0?val => 0?vaL

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

03-07-23 pzsplit.c: --split file size limited to --window
03-07-17 pzpart.c: fix "//" partition translation
	 pzpart.c: add include="file", library="..." disabled during include
	 pzpart.c: default split window threshhold is now 16K
	 pzsplit.c: free Id_t when done


July 28, 2011