Changes since 2002-12-21 follow.
:::::::: INIT ::::::::
03-04-22 probe.win32: CC.DIALECT += "LIBPP -I-" for all cc's
package.sh: fix admin write binary tarball snarf
03-04-21 package.mk: package covered *.@(pkg|lic) too
03-04-15 package.mk: don't generate incremental archives for lcl
package.mk: add incremental=[source:1 binary:0] archive control
package.sh: generate $INSTALLROOT/bin/cc wrapper for CC != cc
package.sh: admin must ditto lib/package/*.@(pkg|lic) too
mamake.c: ignore time of ignore prereqs
mamake.c: -D2 lists propagated times
03-04-11 package.mk: tidy up cyg tarballs
package.sh: fix old shell clash between get() and $get
03-04-05 package.mk: restore *.inx generation somehow lost during cyg additions
package.sh: add pthread_num_processors_np() last resort for cpu count
package.sh: use `make believe' to accept mamake generated files
package.sh: handle `make [make-flags] [target ...]'
mamake.c: ignore -e
03-03-21 package.mk: fix cyg old make typo
package.sh: switch to `package setup' instructions
03-03-19 package.sh: add registry checks for `host cpu'
package.sh: `results failed' now lists core dump messages
03-03-17 package.sh: on cygwin verify 'ntsec binmode' in $CYGWIN or die
Makefile: install gcc wrapper if no cc
package.mk: add :DETAILS: { :README: :EXPORT: :INSTALL: :TEST: } ops
03-03-12 package.mk: add :DETAILS: for style-specific details
03-03-11 package.sh: add beta setup/update support
TEST.mk: add (TESTCC) prereq for .sh tests
03-03-07 hurl.sh: add
03-03-06 iffe.sh: fix lib win32 test cygwin vs native incompatibility
iffe.sh: change internal stdio.h guard to handle C++ inline vs. macro
03-03-03 package.sh: check for curl or wget for update
package.sh: add setup action == update read make
package.sh: fix packageroot() typo that showed up in non ~user shells
mamake.c: treat name+=value args like name=value
mamake.c: add ${var?*|value?match?no-match?}
mamake.c: fix archive vs. dynamic bind logic
03-02-28 package.sh: add the "cyg" (cygwin) package type
package.mk: add "cyg" stubs, :CATEGORY: for category name(s)
03-02-25 mamake.c: add -D4 system(3) debug trace
03-02-24 package.mk: change --mismatch to --corrupt=accept
03-02-14 ratz.c: add _WIN32 setmode([01],O_BINARY) and fopen "rb"/"wb"
03-02-12 Makefile: handle getconf LIBPATH with host pattern
03-01-31 package.mk: fix .lic search
03-01-30 package.sh: handle { INIT ksh nmake } already installed elsewhere
package.sh: admin handles command outside of $PACKAGEROOT/bin
Makefile: install $(INSTALLROOT)/lib/make/package.mk
03-01-28 package.sh: admin remote commands on one line to please syslog
03-01-23 probe.win32: borland and mingw32 tweaks
03-01-22 package.sh: fix $CC test to ignore set -x trace -- duh
03-01-16 ditto.sh: tw --chop on by default
03-01-14 package.sh: use /bin/cp to copy previous binaries to bin/ok/
package.sh: admin now initiates remote exec and copy from local host
03-01-12 package.sh: handle admin "xxx:" default root
03-01-03 probe.win32: add /usr/include/borland path truncation workaround
:::::::: ksh93 ::::::::
03-03-18 --- Release ksh93o ---
03-03-18 A -N unary operator was added to test and [[...]] which returns
true if the file exists and the file has been modified since it
was last read.
03-03-18 The TIMEFORMAT variable was added to control the format for
the time compound command. The formatting description is
described in the man page.
03-03-06 A -N n option was added to read which causes exactly n bytes
to be read unlike -n n which causes at most n bytes to be read.
03-03-03 Three new shell variables were added. The variable .sh.file
stores the full pathname of the file that the current command
was found in. The variable .sh.fun names the current function
that is running. The variable .sh.subshell contains the depth
of the current subshell or command substitution.
03-03-03 When the DEBUG trap is executed, the current command line after
expansions is placed in the variable .sh.command. The trap
is also now triggered before each iteration of a for, select,
and case command and before each assignment and redirection.
03-02-28 Function definitions are no longer stored in the history file so
that set -o nolog no longer has any meaning.
03-02-28 All function definitions can be displayed with typeset -f not
just those stored in the history file. In addition, typeset +f
displays the function name followed by a comment containg the
line number and the path name for the file that defined this function.
03-02-28 A bug in which the value of $LINENO was not correct when executing
command contained inside mult-line command substitutions has been
fixed.
03-02-19 Since some existing ksh88 scripts use the undocumented and
unintended ability to insert a : in front of the % and # parameter
expansion operators, ksh93 was modified to accept :% as equivalent
to % and :# as equivalent to # with ${name op word}.
03-02-14 A bug which could cause a core dump when reading from standard
error when standard error was a pty has been fixed.
03-02-14 The shell arithmetic was modified to use long double on systems
that provide this data type.
03-02-09 A bug in which a function located in the first directory in FPATH
would not be found when the last component of PATH was . and the
current directory was one of the directories in PATH has been fixed.
03-02-07 The trap and kill builtin commands now accept a leading SIG prefix
on the signal names as documented.
03-02-05 A bug in the expansion of ${var/$pattern}, when pattern contained
\[ has been fixed.
03-02-05 A bug in which .sh.match[n], n>0, was not being set for substring
matches with % and %% has been fixed.
03-01-15 A bug in which getopts did not work for numerical arguments specified
as n#var in the getopts string has been fixed.
03-01-09 A bug in which using ${.sh.match} multiple times could lead to
a memory exception has been fixed.
03-01-06 A bug in the expansion of ${var/pattern/$string} in the case that
$string contains \digit has been fixed.
03-01-02 A -P option was added for systems such as Solaris 8 that support
profile shell.
03-01-02 For backward compatibility with ksh88, arithmetic expansion
with ((...)) and let has been modified so that if x is a zero-filled
variable, $x will not be treated as an octal constant.
:::::::: pax ::::::::
03-03-05 pax.c: tgz => ustar:gzip, tbz => ustar:bzip
03-02-28 pax.c: handle a few common -x aliases
03-01-14 misc.c: fix meter sign overflow for sizeof(off_t)==sizeof(int)
:::::::: html ::::::::
03-03-25 mm2html: table border size '' => 0
03-02-06 troff2html.c: fmtquote() FMT_ALWAYS update
:::::::: tests ::::::::
03-04-22 date.dat: add last, this, next tests
03-03-21 date.dat,datey2k.dat: add %Q/recent/distant/
opt.tst: add trailing '*' option and option args tests
03-02-13 base64.c: add base64encode()/base64decode() tests
:::::::: 3d ::::::::
03-03-28 dir3d.c,rmdir3d.c,syscall3d.c: add D_FILENO and D_TYPE ifdefs
03-03-25 dup3d.c: fix bug that cleared Dir_t pointer just after allocation
03-03-07 ftruncate3d.c,lseek3d.c,truncate3d.c: check _typ_off64_t
:::::::: coshell ::::::::
03-03-04 add state.remote=CS_REMOTE_SHELL
:::::::: nmake ::::::::
03-04-22 rules-win32.mk: drop :PACKAGE: Xm override -- handled by uwin
03-04-15 mam.c: output P_ignore attribute
Makerules.mk: fix the mam .DO.INSTALL to compare before mv to .old!!
03-04-05 expand.c: add :W=P: for ordered recursive prereqs
Makerules.mk: add recurse=prereqs
pkg-X11.mk: add openbsd.* -lc_r pthread workaround
Makerules.mk: add .PACKAGE.$(P).found:=1 if package lib or header found
Makerules.mk: optional :PACKAGE: rhs must now be marked :dontcare
Makerules.mk: pure recursion makefiles make .RECURSE first by default
Makerules.mk: .NORECURSE inhibits default .RECURSE first
Makerules.mk: fix .DO.INSTALL directory prereq omission
Makerules.mk: add .BELIEVE for initialization, e.g., after mamake
bind.c: fix rebind alias bug
misc.c: limit `mtime after the epoch' warnings to { S_ISREG S_ISDIR }
03-03-28 Makerules.mk: eliminate CC.STDINCLUDE before -I- too
03-03-27 Makerules.mk: add :PACKAGE: *:attributes:*
pkg-X11.mk: fix CC.REQUIRE.Xm
rules-win32.mk: add :PACKAGE: Xm:attributes:static
03-03-21 command.c,object.c: always emit target name for --mam=dynamic
03-03-19 expand.c: add :W=R: for true :MAKE: recursion order
state.c: add test 0x00040000 to set failed event to staterule event
nmake.tst: add first regression tests since 1984 -- yes, I'm ashamed
Makerules.mk: change :W=O: to :W=R:
Makerules.mk: use CC.LD.RUNPATH for LDRUNPATH and non-std dirs
Makerules.mk: drop MAKEDIRS .RECURSE.OFFSET. -- not needed with :W=R:
03-03-15 Makerules.mk: fix debug=1 to delete $(CC.OPTIMIZE) from CCFLAGS
expand.c: fix SORT_* comparison function selection
03-03-11 expand.c: add ~ edit op sep
expand.c: limit edit op [~!<>=] sep to one occurrence
expand.c: add :H=[FINUV]: alternative to edit sep overload
expand.c: add :L~: to use version comparison
Makerules.mk: use :H=[FINUV]: and :L~:
Makerules.mk: add pkgconfig(1) .pc file support in :PACKAGE:
Makerules.mk: fix %.sh=>% :T=E: misquote (ancient!)
03-03-03 Makerules.mk: .MAM.INIT handles debug=1 for CC.DEBUG vs. CC.OPTIMIZE
Makerules.mk: add 'test : .DONTCARE .ONOBJECT'
Makerules.mk: another prefixinclude fix -- my head hurts
Makerules.mk: pass recursive $(=) by value ( $(=:V) )
misc.c: fix :F=[LUV]: translation
03-02-28 Makerules.mk: YACCFIX workaround for bison yytoken addition
Makerules.mk: include $(LDLIBRARIES) in %.req
Makerules.mk: fix .BIND.-l% comparison on CC.PREFIX.SHARED
debug.mk: handle .o scope prereqs
variable.c: fix $(!) internal.val conflict
03-02-24 option.c: drop --mismatch alias for --corrupt
03-02-12 Makerules.mk: handle multiple lhs for :INSTALLDIR:
03-02-06 pkg-freetype.mk: add
03-01-31 Makerules.mk: mark .PACKAGE.LIBRARIES. hints .DONTCARE
Makerules.mk: :PACKAGE: add to .PACKAGE. first, then include pkg-*.mk
03-01-23 Makerules.mk: more prefixinclude tweaks
03-01-11 Makerules.mk: CATALOG default is $(.CATALOG.NAME.)
03-01-10 Makerules.mk: parameterize all silent => $(SILENT)
02-12-21 --- release 4.3 ---
:::::::: builtin ::::::::
03-04-05 nl.tst: generate test data file
03-02-24 nl.c,nl.tst: add
03-02-14 od.c,tr.c: no error message for EPIPE
03-02-11 dlls.c: add Dllinfo_t.env
:::::::: mailx ::::::::
03-01-17 add shquote() to quote popen pathnames; fix save to -f core dump
:::::::: pzip ::::::::
03-04-05 pop.c: add OP_VERBOSE for cut() trace
03-01-04 pin.c: list range only if more than 2 elements
02-12-25 pin: add --sort
:::::::: re ::::::::
03-03-17 ed.tst: add ! command tests for sfpopen() "" mode fix
03-02-17 testregex.dat: add bm tests
03-01-13 sed0.c: operate on all input files, even if some fail
testfnmatch.c,testmatch.c: ignore testmatch -o option
03-01-03 testregex.c,testregex.dat: add REG_SHELL_GROUP options and tests
:::::::: sort ::::::::
03-03-11 testsort.sh: initialize $CC from :TEST: TESTCC state var
03-03-07 Makefile: +lsort for now
:::::::: std ::::::::
03-03-21 ls.c: add -z,--time-style
ls.c: if only -t is set then set FTW_SEEDOTDIR to keep configure happy
03-03-11 pss.c: pid <= 1 => ppid == 0 to avoid ancestor loop
03-03-06 ps.c: add pgid alias for pgrp
03-02-28 pss*.[ch]: add Pss_dev_t and Pss_id_t
ps.c: don't warn about unsupported fields for [cfjl]
03-02-21 pss-*.c: initf errors except no space now warnings for ps fallback
Makefile: hosttype workaround to avoid botched -lkvm
03-02-11 ps.c: flags width 2 => 3 since posix says its octal
03-02-07 ps.c: add --children and --parents, --tree == --children --parents
03-02-06 locale.c,ls.c: fmtquote() FMT_ALWAYS update
03-02-01 ps*.[ch]: convert to independent Pssmeth_t methods
pss-ps.c: export _PSS_ps=1 to force for testing
03-01-31 pss.c: add darwin.ppc kvm_getprocs() -- still needs work
03-01-29 ps.c: check for obvious invalid pids
03-01-10 locale.c: don't list default after unknown category/keyword
:::::::: tksh ::::::::
03-01-02 Makefile: dynamic -lshell on CC.HOSTTYPE=*win*
:::::::: libast ::::::::
03-04-21 tm/tmdate.c: fix next hour/min logic
03-04-15 vmalloc/malloc.c: intercept __malloc() along with __libc_malloc()
string/strdup.c: intercept __strdup() along with __libc_strdup()
features/mmap: consolidate from features/(lib|sfio|vmalloc)
add _NO_MMAP==1 to disable all mmap()/munmap() calls
path/pathposix.c: add
03-04-14 comp/setlocale.c: fix debug_mbtowc() return value for *s==0 || n < 1
comp/iconv.c: fix error return errno values
03-04-11 misc/stk.c: fix stkgrow() realloc bug
03-04-05 string/tok.c: support readonly single token input strings
disc/sfdcdio.c: fix F_DIOINFO and FDIRECT #ifdef's
include/ast_std.h: allow _LARGEFILE64_SOURCE on __hppa
features/common: fix `tst _foo_' => `tst foo_' typo
features/float: fix `tst _foo_' => `tst foo_' typo
features/float: add FLTMAX_(UINTMAX_MAX,INTMAX_MAX,INTMAX_MIN)
comp/omitted.c: fix pathconf => _pathconf => _ast_pathconf loop
03-04-03 features/float: add _ast_no_um2fm: no usinged intmax => floatmax cast
vmalloc/vmbest.c: add getenv("VMCHECK") to initialize Vmcheck
03-03-28 include/ast_dir.h: add D_TYPE; { D_FILENO D_TYPE } must be #ifdef'd
misc/fts.c|getcwd.c|glob.c,preroot/getpreroot.c: add D_FILENO #ifdef's
Makefile: make sure _BLD_ast is defined for all compiles
03-03-27 ast_vfork.h: generate from features/vfork to pick up headers/pragmas
03-03-25 comp/omitted.c: drop free() of live environ
path/pathshell.c: allow trailing .exe -- pox on that
string/strtoi.h: fix bug leading 3 digits before thousands sep bug
string/(fmt|str)[gu]id.c: we know root when we see it
03-03-24 misc/optget.c: handle : and ? in := default value
03-03-21 ast_std.h: drop all spawn*() but spawnveg()
obsolete/spawn.c: add for dropped spawn*()
features/lib: _use_spawnveg if spawnveg() is a win over fork()/exec()
features/lib: drop NutForkExecve() and _map_spawnve
features/lib: fix memccpy test to clean up /tmp droppings
comp/spawnveg.c: call posix_spawn() if implemented
comp/omitted.c: add spawnve() intercept
comp/getoptl.c: set getopt_long() optind even if no options
tm/tmfmt.c: add %Q<delim>recent<delim>distant<delim>
misc/optget.c: fix trailing '*' for option and option args
sfio/sfmode.c: getenv("_AST_SFIO_OPTIONS") [,]SF_LINE[,] for fd {0,1,2}
vmalloc/*: kpv sync for uwin build independent of libast
03-03-18 port/astconf.c: switch to dynamic string values (saves 7K data/bss)
string/strmatch.c: switch to dynamic regex cache (saves 3K data/bss)
regex/regcoll.c,ucs_names.h: initialize rw tables from smaller ro data
features/lib: add vfork test for passing SIG_IGN across exec
features/lib: add spawn test for passing SIG_IGN across spawn
03-03-17 comp/omitted.c: unlink() renames to .deleted dir in case file open
sfio/sfpopen.c: handle mode "" for spawn with no pipe
features/float,comp/frexp.c,comp/frexpl.c: add pow2() table alternative
03-03-12 features/lib: fix linux.ia64 memccpy() tests -- now its their turn
features/vmalloc: fix /dev/zero test
features/align: _ast_intmax_t and _ast_fltmax_t join the union
misc/stk.c: fix struct frame size to align data
disc/sfdcdos.c: change sfslen() => sfvalue(f)
03-03-10 misc/optget.c: handle [f<:>x:lll>ddd]?>
03-03-07 port/astconf.c: uninitialized CONFORMANCE + POSIXLY_CORRECT => standard
03-03-05 comp/omitted.c: make sure at least /bin is in PATH to find cygwin dlls
03-03-02 path/pathshell.c: write access to /bin is effectively root
03-02-28 features/float: add (FLT|DBL|LDBL)_U?(LONG|LONGLONG|INTMAX)_(MIN|MAX)
03-02-25 features/lib: change vfork() test to use _exit() instead of exit()
03-02-23 include/error.h: update ERROR_VERSION for error_info.number space
03-02-22 comp/conf.sh: wrap ksh check in eval to avoid premature exit
03-02-21 misc/fts.c: verify chdir(..) to avoid malicious dir rename()
03-02-19 string/strtoip4.c: isspace() instead of ' '||'\t'
03-02-17 regex/regcomp.c: fix stats.l REX_REP logic that botched REX_BM
03-02-13 string/base64.c: handle catenated encodings
03-02-11 features/libpath.sh: change LIBPATH to <dir>[:<env>[:<pat>]][,...]
03-02-07 path/pathfind.c: allow "/dev/null" to be PATH_REGULAR
03-02-06 include/ast.h,fmtquote.c: add FMT_ALWAYS|FMT_ESCAPED|FMT_SHELL|FMT_WIDE
03-02-05 tm/tmdate.c,tm/tmword.c,string/strelapsed.c: '_' treated like ' '
03-02-01 string/strelapsed.c: handle ps style [day-][hour:]min:sec
03-01-31 port/astlicense.c: fix author=* match
03-01-30 include/tm.h: add tmisleapyear() macro
03-01-29 comp/getopt.h,comp/getoptl.c: add gnu getopt_long(), getopt_long_only()
include/ast_getopt.h: for non-gnu part of comp/getopt.h
include/ast_std.h: include <ast_getopt.h> instead of <getopt.h>
03-01-28 ast.h,string/base64.c: add base64encode() and base64decode()
path/pathfind.c: verify S_ISREG()
03-01-24 path/pathexists.c: fix abs dir bug and deal with case ignorance
03-01-23 path/pathpath.c: honor PATH_ABSOLUTE for the easy case too
03-01-22 path/pathprobe.c: fix search to find both the probe script and command
03-01-17 misc/magic.tab: application/zip => appplication/(gzip|pzip|zip)
03-01-14 misc/optget.c: change href="" to href="."
03-01-10 include/ast_std.h: strtold() import hackery for static __CYGWIN__
03-01-03 include/regex.h,regex/regcomp.h: add REG_SHELL_GROUP
include/ast.h,string/strmatch.c: add STR_GROUP for REG_SHELL_GROUP
:::::::: libcmd ::::::::
03-03-21 date.c: add %Q/recent/distant/ docs
03-02-19 date.c: fix %+|!flag docs
:::::::: libdll ::::::::
03-03-12 dllfind.c: dlopen() with RTLD_GLOBAL|RTLD_PARENT defaults
03-02-11 dllscan.c: change LIBPATH to <dir>[:<env>[:<pat>]][,...]
03-01-08 dllscan.c: hack version logic again -- is consistency rocket science?
03-01-07 dlfcn.c: fix darwin.ppc dlopen/dlsym/dlclose
:::::::: libardir ::::::::
03-04-05 ar-port.c: fix bug that skipped initial long name entry
ar-port.c: handle netbsd.i386 ' <long-index>' vs. '/<long-index>'
03-02-05 ar-port.c: handle solaris TYPE_port variation
03-01-30 ar-port.c: handle member name length == 16 (no terminator)
:::::::: librecsort ::::::::
03-03-07 Makefile: generate dll for dr. ek
03-01-21 rsmerge.c: fix typo that kicked in on large (~100K) record sizes
:::::::: libuu ::::::::
03-01-07 uulib: check UU_HEADER in bx_header()
:::::::: libz ::::::::
03-03-13 gzio.c: eliminate fixed gzprintf() buffer size via sfio string stream
03-01-20 zlib.h,gzio.c: add gzreopen()
:::::::: libcs ::::::::
03-03-28 msglib.h: add D_FILENO ifdef
:::::::: libpp ::::::::
03-03-25 ppop.c: PP_RESERVED now deletes old symbol before redef with lex value
03-03-14 pp.probe: fix the #include_next probe
03-02-28 ppsearch.c: fix -MM bug that missed prefix include hosted mark
03-02-18 pplex.c: handle COMPATIBILITY
03-01-23 probe.win32: mingw32 tweaks
:::::::: libpz ::::::::
03-04-15 pzlib.h: add PZ_MARK_PART for partial last input record
pzlib.h: add PZ_MARK_TAIL for tail records
partial input record is now a warning and handled on inflate
03-03-03 pzhead.c: PZ_FORCE disables unknown input diagnostic
03-02-10 sfdczip.c,sfdcpzip.c: handle PZ_CRC and SFGZ_NOCRC
03-02-06 pzhead.c: fmtquote() FMT_ALWAYS update
03-01-04 pzpart.c: list range only if more than 2 elements
02-12-25 pzip.h,pzpart.c,pzdeflate.c,pzwrite.c: add PZ_SORT
:::::::: libtksh ::::::::
03-04-05 src/var.c: fix off by 1 malloc() call -- for once not gsf's fault!!
src/var.c: hack around nv_move() double-free bug -- needs better fix
03-03-12 src/tcleval.c,src/tclIO.c: change sfslen() => sfvalue(f)
|