mirror of
				git://git.code.sf.net/p/cdesktopenv/code
				synced 2025-03-09 15:50:02 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			11853 lines
		
	
	
	
		
			608 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			11853 lines
		
	
	
	
		
			608 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
 | |
| <HTML>
 | |
| <HEAD>
 | |
| <META name="generator" content="mm2html (AT&T Research) 2012-01-11">
 | |
| <META name="description" content="ast-open package">
 | |
| <META name="keywords" content="software, package">
 | |
| <TITLE> ast-open package </TITLE>
 | |
| <META name="author" content="gsf+dgk+kpv">
 | |
| <STYLE type="text/css">
 | |
| div.FI	{ padding-left:2em; text-indent:0em; }
 | |
| div.HI	{ padding-left:4em; text-indent:-2em; }
 | |
| dt	{ float:left; clear:both; }
 | |
| dd	{ margin-left:3em; }
 | |
| </STYLE>
 | |
| </HEAD>
 | |
| <BODY bgcolor=white link=slateblue vlink=teal >
 | |
| <TABLE border=0 align=center width=96%>
 | |
| <TBODY><TR><TD valign=top align=left>
 | |
| <!--INDEX--><!--/INDEX-->
 | |
| <P>
 | |
| <P><CENTER><FONT color=red><FONT face=courier><H3><A name="ast-open package">ast-open package</A></H3></FONT></FONT></CENTER>
 | |
| The AT&T Software Technology ast-open package from AT&T Research
 | |
| contains all of the ast open source commands and libraries.
 | |
| Components in this package:
 | |
| <P>
 | |
| <P></P><TABLE border=0 frame=void rules=none width=100%><TBODY><TR><TD>
 | |
| <TABLE align=center bgcolor=papayawhip border=0 bordercolor=white cellpadding=2 cellspacing=2 width=99% >
 | |
| <TBODY>
 | |
| <TR><TD align=left>
 | |
| <A href="#3d">3d</A>  </TD><TD align=left>  html  </TD><TD align=left>  <A href="#pax">pax</A>  </TD><TD align=left>  <A href="#tksh">tksh</A>  </TD><TD align=left>  libdll  </TD><TD align=left>  libtk</TD></TR>
 | |
| <TR><TD align=left>
 | |
| <A href="#at">at</A>  </TD><TD align=left>  <A href="#ie">ie</A>  </TD><TD align=left>  paxlib  </TD><TD align=left>  <A href="#tw">tw</A>  </TD><TD align=left>  libdss  </TD><TD align=left>  libtksh</TD></TR>
 | |
| <TR><TD align=left>
 | |
| <A href="#builtin">builtin</A>  </TD><TD align=left>  jcl  </TD><TD align=left>  probe  </TD><TD align=left>  vczip  </TD><TD align=left>  libexpr  </TD><TD align=left>  libuu</TD></TR>
 | |
| <TR><TD align=left>
 | |
| bzip  </TD><TD align=left>  <A href="#ksh93">ksh93</A>  </TD><TD align=left>  <A href="#proto">proto</A>  </TD><TD align=left>  <A href="#warp">warp</A>  </TD><TD align=left>  libjcl  </TD><TD align=left>  libvcodex</TD></TR>
 | |
| <TR><TD align=left>
 | |
| codex  </TD><TD align=left>  kshlib  </TD><TD align=left>  <A href="#pzip">pzip</A>  </TD><TD align=left>  libardir  </TD><TD align=left>  libmam  </TD><TD align=left>  libvdelta</TD></TR>
 | |
| <TR><TD align=left>
 | |
| codexlib  </TD><TD align=left>  mailx  </TD><TD align=left>  re  </TD><TD align=left>  libast  </TD><TD align=left>  libodelta  </TD><TD align=left>  libvgraph</TD></TR>
 | |
| <TR><TD align=left>
 | |
| <A href="#coshell">coshell</A>  </TD><TD align=left>  mam  </TD><TD align=left>  <A href="#sort">sort</A>  </TD><TD align=left>  libbz  </TD><TD align=left>  libpp  </TD><TD align=left>  libz</TD></TR>
 | |
| <TR><TD align=left>
 | |
| cpp  </TD><TD align=left>  <A href="#msgcc">msgcc</A>  </TD><TD align=left>  sortlib  </TD><TD align=left>  libcmd  </TD><TD align=left>  libpz</TD></TR>
 | |
| <TR><TD align=left>
 | |
| cs  </TD><TD align=left>  ncsl  </TD><TD align=left>  ss  </TD><TD align=left>  libcodex  </TD><TD align=left>  librecsort</TD></TR>
 | |
| <TR><TD align=left>
 | |
| dss  </TD><TD align=left>  <A href="#nmake">nmake</A>  </TD><TD align=left>  <A href="#std">std</A>  </TD><TD align=left>  libcoshell  </TD><TD align=left>  libsum</TD></TR>
 | |
| <TR><TD align=left>
 | |
| dsslib  </TD><TD align=left>  pack  </TD><TD align=left>  tests  </TD><TD align=left>  libcs  </TD><TD align=left>  libtaso</TD></TR>
 | |
| </TBODY></TABLE></TD></TR></TBODY></TABLE>
 | |
| <P>
 | |
| This package is a superset of the following packages: ast-base ast-make ast-ksh ksh ast-ast ast-dss; you won't need these if you download ast-open.
 | |
| The software is covered by this license:
 | |
| <UL type=square>
 | |
| <LI>
 | |
| <A href="http://www.eclipse.org/org/documents/epl-v10.html">http://www.eclipse.org/org/documents/epl-v10.html</A>
 | |
| </UL>
 | |
| Individual components may be covered by separate licenses;
 | |
| refer to the component source and/or binaries for more information.
 | |
| <P>
 | |
| A recent
 | |
| <A href="#release change log">release change log</A>
 | |
| is also included.
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="3d">3d</A></H3></FONT></FONT></CENTER>
 | |
| <STRONG>3d</STRONG>
 | |
| is the historical name for
 | |
| <EM>n</EM><STRONG>DFS</STRONG><EM>,</EM>
 | |
| the multiple dimension file system.
 | |
| It is implemented as a shared library that is preloaded
 | |
| before any other shared library using the recently documented
 | |
| (<EM>ahem</EM>)
 | |
| <STRONG>LD_PRELOAD</STRONG>
 | |
| or
 | |
| <STRONG>_RLD_LIST</STRONG>
 | |
| feature of the runtime linker.
 | |
| <STRONG>3d</STRONG>
 | |
| intercepts pathname system calls (and other calls if tracing is
 | |
| turned on) and provides a logical namespace on top of the underlying
 | |
| physical file system.
 | |
| The shared library implementation currently works
 | |
| only on
 | |
| <EM>bsd.i386</EM>,
 | |
| <EM>linux.i386</EM>,
 | |
| <EM>osf.alpha</EM>,
 | |
| <EM>sun4</EM>,
 | |
| <EM>sol.*</EM>,
 | |
| and
 | |
| <EM>sgi.*</EM>.
 | |
| <P>
 | |
| <STRONG>3d</STRONG>
 | |
| works in conjunction with
 | |
| <STRONG>ksh88</STRONG>
 | |
| or
 | |
| <STRONG>ksh93</STRONG>.
 | |
| The
 | |
| <STRONG>3d</STRONG>
 | |
| command with no arguments enters a
 | |
| <STRONG>3d</STRONG>
 | |
| shell.
 | |
| The
 | |
| <STRONG>vpath</STRONG>
 | |
| builtin controls the logical
 | |
| filesystem view:
 | |
| <DIV class=FI>
 | |
| <PRE>
 | |
| vpath dir_1 dir_2
 | |
| </DIV>
 | |
| </PRE>
 | |
| mounts the directory hierarchy
 | |
| <EM>dir_1</EM>
 | |
| on top of
 | |
| <EM>dir_2</EM>.
 | |
| Files under
 | |
| <EM>dir_1</EM>
 | |
| overlay files under
 | |
| <EM>dir_2</EM>.
 | |
| Files under
 | |
| <EM>dir_2</EM>
 | |
| are readonly;
 | |
| any files under
 | |
| <EM>dir_2</EM>
 | |
| that are modified are first copied to the
 | |
| corresponding place in
 | |
| <EM>dir_1</EM>.
 | |
| <EM>vpaths</EM>
 | |
| may be chained:
 | |
| <DIV class=FI>
 | |
| <PRE>
 | |
| vpath dir_2 dir_3
 | |
| </DIV>
 | |
| </PRE>
 | |
| <EM>vpaths</EM>
 | |
| are per-process; every process may have a different view.
 | |
| <EM>vpaths</EM>
 | |
| are a handy way to separate source and generated files.
 | |
| Typical
 | |
| <STRONG>advsoft</STRONG>
 | |
| users set up
 | |
| <STRONG>3d</STRONG>
 | |
| at login or
 | |
| <STRONG>xterm</STRONG>
 | |
| time:
 | |
| <DIV class=FI>
 | |
| <PRE>
 | |
| export HOSTTYPE=$(package)
 | |
| vpath $HOME/arch/$HOSTTYPE $HOME
 | |
| </DIV>
 | |
| </PRE>
 | |
| with source files in
 | |
| <TT>$HOME/src/(cmd|lib)/*</TT>.
 | |
| <STRONG>nmake</STRONG>
 | |
| is run in
 | |
| <TT>$HOME/arch/$HOSTTYPE/src/(cmd|lib)/*</TT>
 | |
| and generated files (objects and executables) are dropped in the top hierarchy.
 | |
| <P>
 | |
| <STRONG>2d</STRONG>
 | |
| can prefix any command to disable 
 | |
| <STRONG>3d</STRONG>
 | |
| for that command:
 | |
| <DIV class=FI>
 | |
| <PRE>
 | |
| 2d ls *.c
 | |
| </DIV>
 | |
| </PRE>
 | |
| <P>
 | |
| <STRONG>3d</STRONG>
 | |
| also provides tracing, monitoring and call intercept services.
 | |
| <STRONG>vpm</STRONG>
 | |
| uses monitoring to graph the process and io hierarchy.
 | |
| The
 | |
| <EM>cs</EM>
 | |
| name server uses pathname call intercepts to translate network
 | |
| pathnames.
 | |
| Try this for any host:
 | |
| <DIV class=FI>
 | |
| <PRE>
 | |
| cat /dev/tcp/hostname/inet.daytime
 | |
| </DIV>
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="at">at</A></H3></FONT></FONT></CENTER>
 | |
| The
 | |
| <STRONG>ast</STRONG>
 | |
| <STRONG>at</STRONG>
 | |
| command is a re-implementations of
 | |
| <NOBR><A href="/~gsf/man/man1/at.html"><STRONG>at</STRONG></A>(1)</NOBR>
 | |
| and
 | |
| <NOBR><A href="/~gsf/man/man1/crontab.html"><STRONG>crontab</STRONG></A>(1),</NOBR>
 | |
| including a
 | |
| <NOBR><A href="/~gsf/man/man1/cs.html"><STRONG>cs</STRONG></A>(1)</NOBR>
 | |
| service \bat.svc\b for the \bat\b and \bcron\b daemons.
 | |
| On most systems the
 | |
| <STRONG>at</STRONG>
 | |
| and
 | |
| <STRONG>crontab</STRONG>
 | |
| commands are installed as
 | |
| <STRONG>ast_at</STRONG>
 | |
| and
 | |
| <STRONG>ast_crontab</STRONG>
 | |
| because the \bat\b service executor \b$INSTALLROOT/lib/at/jobs/atx\b must be
 | |
| installed setuid \broot\b so the daemon can operate multi-user
 | |
| (enabling \broot\b privelege is always a manual operation with
 | |
| <NOBR><A href="/~gsf/man/man1/package.html"><STRONG>package</STRONG></A>(1)</NOBR>
 | |
| packages.)
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="builtin">builtin</A></H3></FONT></FONT></CENTER>
 | |
| The
 | |
| <STRONG>ast</STRONG>
 | |
| <STRONG>builtin</STRONG>
 | |
| commands are stand-alone implementations of the section
 | |
| <STRONG>1</STRONG>
 | |
| command in
 | |
| <NOBR><A href="/~gsf/man/man3/libcmd.html"><STRONG>libcmd</STRONG></A>(3).</NOBR>
 | |
| See the
 | |
| <NOBR><A href="/~gsf/man/man1/ksh.html"><STRONG>ksh</STRONG></A>(1)</NOBR>
 | |
| <STRONG>builtin</STRONG>(1)
 | |
| command for information on loading command DLLs at runtime.
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="coshell">coshell</A></H3></FONT></FONT></CENTER>
 | |
| <STRONG>coshell</STRONG>
 | |
| executes blocks of shell commands on lightly loaded hosts in the local network.
 | |
| There is one
 | |
| <STRONG>coshell</STRONG>
 | |
| server per user.
 | |
| This server runs as a daemon on the user's home host,
 | |
| and only processes running on the home host have access to the server.
 | |
| The server controls a background
 | |
| <STRONG>ksh</STRONG>
 | |
| shell process, initiated by
 | |
| <STRONG>rsh</STRONG>,
 | |
| on each of the connected hosts.
 | |
| <P>
 | |
| <STRONG>coshell</STRONG>
 | |
| is easy to use and administer.
 | |
| The only privilege required for installation, administration or use is
 | |
| <STRONG>rsh</STRONG>
 | |
| access to the local hosts.
 | |
| <STRONG>coshell</STRONG>
 | |
| does requires a uniform file namespace across all hosts on the local network.
 | |
| <P>
 | |
| <STRONG>nmake</STRONG>
 | |
| and
 | |
| <STRONG>gmake</STRONG>
 | |
| users can take advantage of network execution with
 | |
| no makefile modifications.
 | |
| Shell level access is similar to but more efficient than
 | |
| <STRONG>rsh</STRONG>
 | |
| and allows host expression matching to replace the explicit host name argument.
 | |
| <P>
 | |
| Factor of 5 compilation speedups are typical.
 | |
| <P>
 | |
| To start your local daemon:
 | |
| <DIV class=FI>
 | |
| <PRE>
 | |
| coshell +
 | |
| </DIV>
 | |
| </PRE>
 | |
| To send
 | |
| <STRONG>nmake</STRONG>
 | |
| or
 | |
| <STRONG>gmake</STRONG>
 | |
| actions to
 | |
| <STRONG>coshell</STRONG>
 | |
| at concurrency level 8:
 | |
| <DIV class=FI>
 | |
| <PRE>
 | |
| export COSHELL=coshell
 | |
| export NPROC=8
 | |
| </DIV>
 | |
| </PRE>
 | |
| To run shell commands on a lightly loaded host:
 | |
| <DIV class=FI>
 | |
| <PRE>
 | |
| coshell -r - 'hostname; sort a > b' &
 | |
| pid=$!
 | |
| # other stuff
 | |
| wait $pid
 | |
| </DIV>
 | |
| </PRE>
 | |
| For interactive
 | |
| <STRONG>coshell</STRONG>
 | |
| status:
 | |
| <DIV class=FI>
 | |
| <PRE>
 | |
| coshell -
 | |
| coshell> s
 | |
| <EM>... status ...</EM>
 | |
| coshell> h
 | |
| <EM>... help ...</EM>
 | |
| coshell> q
 | |
| </DIV>
 | |
| </PRE>
 | |
| <STRONG>package</STRONG>
 | |
| generates static host information and
 | |
| <STRONG>ss</STRONG>
 | |
| lists the dynamic status of hosts on the local network.
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="ie">ie</A></H3></FONT></FONT></CENTER>
 | |
| <STRONG>ie</STRONG>
 | |
| executes a dynamically linked command with the
 | |
| <NOBR><A href="/~gsf/man/man1/ksh.html"><STRONG>ksh</STRONG></A>(1)</NOBR>
 | |
| input line edit discipline pushed on the standard input.
 | |
| All child processes will also have input line editing enabled.
 | |
| <P>
 | |
| <STRONG>ie</STRONG>
 | |
| intercepts the
 | |
| <NOBR><A href="/~gsf/man/man3/read.html"><STRONG>read</STRONG></A>(3)</NOBR>
 | |
| system call by preloading a DLL (shared library) at runtime,
 | |
| so it only works on architectures that support DLL preload.
 | |
| Statically-linked, set-uid or set-gid commands will not work with
 | |
| <STRONG>ie</STRONG>.
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="ksh93">ksh93</A></H3></FONT></FONT></CENTER>
 | |
| KSH-93 is the most recent version of the KornShell Language
 | |
| described in
 | |
| "The KornShell Command and Programming Language,"
 | |
| by Morris Bolsky and David Korn of AT&T Bell Laboratories, ISBN 0-13-182700-6.
 | |
| The KornShell is a shell programming language,
 | |
| which is upward compatible with "sh" (the Bourne Shell),
 | |
| and is intended to conform to the IEEE P1003.2/ISO 9945.2 Shell and
 | |
| Utilities standard.
 | |
| KSH-93 provides an enhanced programming environment in
 | |
| addition to the major command-entry features of the BSD
 | |
| shell "csh".  With KSH-93, medium-sized programming tasks can be
 | |
| performed at shell-level without a significant loss in performance.
 | |
| In addition, "sh" scripts can be run on KSH-93 without modification.
 | |
| <P>
 | |
| The code should conform to the IEEE POSIX 1003.1 standard and to the
 | |
| proposed ANSI-C standard so that it should be portable to all
 | |
| such systems.  Like the previous version, KSH-88,
 | |
| it is designed to accept eight bit character sets
 | |
| transparently, thereby making it internationally compatible.
 | |
| It can support multi-byte characters sets with some characteristics
 | |
| of the character set given at run time.
 | |
| <P>
 | |
| KSH-93 provides the following features, many of which were also inherent
 | |
| in KSH-88:
 | |
| <UL type=square>
 | |
| <LI>
 | |
| Enhanced Command Re-entry Capability:  The KSH-93 history
 | |
| function records commands entered at any shell level and stores
 | |
| them, up to a user-specified limit, even after you log off.
 | |
| This allows you to re-enter long commands with a few keystrokes
 | |
| - even those commands you entered yesterday.
 | |
| The history file allows for eight bit characters in
 | |
| commands and supports essentially unlimited size histories.
 | |
| <LI>
 | |
| In-line Editing: In "sh", the only way to fix mistyped
 | |
| commands is to backspace or retype the line. KSH-93 allows you
 | |
| to edit a command line using a choice of EMACS-TC or "vi"
 | |
| functions.
 | |
| You can use the in-line editors to complete filenames as
 | |
| you type them.
 | |
| You may also use this editing feature when entering
 | |
| command lines from your history file.
 | |
| A user can capture keystrokes and rebind keys to customize the
 | |
| editing interface.
 | |
| <LI>
 | |
| Extended I/O Capabilities:  KSH-93 provides several I/O
 | |
| capabilities not available in "sh", including the ability to:
 | |
| <UL type=circle>
 | |
| <LI>
 | |
| specify a file descriptor for input and output
 | |
| <LI>
 | |
| start up and run co-processes
 | |
| <LI>
 | |
| produce a prompt at the terminal before a read
 | |
| <LI>
 | |
| easily format and interpret responses to a menu
 | |
| <LI>
 | |
| echo lines exactly as output without escape processing
 | |
| <LI>
 | |
| format output using printf formats.
 | |
| <LI>
 | |
| read and echo lines ending in "\".
 | |
| </UL>
 | |
| <LI>
 | |
| Improved performance: KSH-93 executes many scripts faster
 | |
| than the System V Bourne shell. A major reason for this is
 | |
| that many of the standard utilities are built-in.
 | |
| To reduce the time to initiate a command, KSH-93 allows
 | |
| commands to be added as built-ins at run time
 | |
| on systems that support dynamic loading such as System V Release 4.
 | |
| <LI>
 | |
| Arithmetic: KSH-93 allows you to do integer arithmetic in any
 | |
| base from two to sixty-four.  You can also do double
 | |
| precision floating point arithmetic.
 | |
| Almost the complete set of C language operators are available
 | |
| with the same syntax and precedence.
 | |
| Arithmetic expressions can be used to as an argument expansion 
 | |
| or as a separate command.
 | |
| In addition there is an arithmetic for command that works
 | |
| like the for statement in C.
 | |
| <LI>
 | |
| Arrays: KSH-93 supports both indexed and associative arrays.
 | |
| The subscript for an indexed array is an arithmetic expression,
 | |
| whereas, the subscript for an associative array is a string.
 | |
| <LI>
 | |
| Shell Functions and Aliases: Two mechanisms - functions and
 | |
| aliases - can be used to assign a user-selected identifier to
 | |
| an existing command or shell script.
 | |
| Functions allow local variables and provide scoping
 | |
| for exception handling.
 | |
| Functions can be searched for and loaded on first reference the
 | |
| way scripts are.
 | |
| <LI>
 | |
| Substring Capabilities:  KSH-93 allows you to create a
 | |
| substring of any given string either by specifying the starting
 | |
| offset and length, or by stripping off leading
 | |
| or trailing substrings during parameter substitution.
 | |
| You can also specify attributes, such as upper and lower case,
 | |
| field width, and justification to shell variables.
 | |
| <LI>
 | |
| More pattern matching capabilities:  KSH-93 allows you to specify
 | |
| extended regular expressions for file and string matches.
 | |
| <LI>
 | |
| KSH-93 uses a hierarchal name space for variables.
 | |
| Compound variables can be defined and variables can
 | |
| be passed by reference.  In addition, each variable
 | |
| can have one or more disciplines associated with
 | |
| it to intercept assignments and references.
 | |
| <LI>
 | |
| Improved debugging:  KSH-93 can generate line numbers on execution
 | |
| traces.  Also, I/O redirections are now traced.
 | |
| There is a DEBUG trap that gets evaluated before each command
 | |
| so that errors can be localized.
 | |
| <LI>
 | |
| Job Control: On systems that support job control, including
 | |
| System V Release 4, KSH-93
 | |
| provides a job-control mechanism almost identical to that of
 | |
| the BSD "csh", version 4.1.
 | |
| This feature allows you
 | |
| to stop and restart programs, and to move programs between the
 | |
| foreground and the background.
 | |
| <LI>
 | |
| Added security:
 | |
| KSH-93 can execute scripts which do not have read permission
 | |
| and scripts which have the setuid and/or setgid set when
 | |
| invoked by name, rather than as an argument to the shell.
 | |
| It is possible to log or control the execution of setuid and/or
 | |
| setgid scripts.
 | |
| The noclobber option prevents you from accidentally erasing
 | |
| a file by redirecting to an existing file.
 | |
| <LI>
 | |
| KSH-93 can be extended by adding built-in commands at run time.
 | |
| In addition, KSH-93 can be used as a library that can
 | |
| be embedded into an application to allow scripting.
 | |
| </UL>
 | |
| Documentation for KSH-93 consists of an "Introduction to KSH-93",
 | |
| "Compatibility with the Bourne Shell" and a manual page and a
 | |
| README file.  In addition, the "New KornShell Command and Programming
 | |
| Language," book is available from Prentice Hall.
 | |
| 
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="msgcc">msgcc</A></H3></FONT></FONT></CENTER>
 | |
| <STRONG>msgcc</STRONG>
 | |
| and
 | |
| <STRONG>msgcpp</STRONG>
 | |
| extract message text from C source for
 | |
| <NOBR><A href="/~gsf/man/man1/gencat.html"><STRONG>gencat</STRONG></A>(1)</NOBR>
 | |
| message catalogs.
 | |
| <NOBR><A href="/~gsf/man/man1/msggen.html"><STRONG>msggen</STRONG></A>(1)</NOBR>
 | |
| is a
 | |
| <NOBR><A href="/~gsf/man/man1/gencat.html"><STRONG>gencat</STRONG></A>(1)</NOBR>
 | |
| replacement that generates machine independent binary message
 | |
| catalogs that are compatible with the
 | |
| <STRONG>ast</STRONG>
 | |
| <NOBR><A href="/~gsf/man/man3/catgets.html"><STRONG>catgets</STRONG></A>(3)</NOBR>
 | |
| implementation.
 | |
| <STRONG>catgets</STRONG>
 | |
| also supports native message catalogs where available.
 | |
| <NOBR><A href="/~gsf/man/man1/msgcvt.html"><STRONG>msgcvt</STRONG></A>(1)</NOBR>
 | |
| and
 | |
| <NOBR><A href="/~gsf/man/man1/msgadmin.html"><STRONG>msgadmin</STRONG></A>(1)</NOBR>
 | |
| are administrative commands that support machine translation
 | |
| of C locale message catalogs.
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="nmake">nmake</A></H3></FONT></FONT></CENTER>
 | |
| <STRONG>nmake</STRONG>
 | |
| is the AT&T
 | |
| <STRONG>nmake</STRONG>,
 | |
| first released in 1985.
 | |
| <STRONG>nmake</STRONG>
 | |
| is a modern variant of the traditional Feldman
 | |
| <STRONG>make</STRONG>
 | |
| with an important difference:
 | |
| <STRONG>nmake</STRONG>
 | |
| maintains state that records
 | |
| information for future runs.
 | |
| The state includes:
 | |
| <UL type=square>
 | |
| <LI>
 | |
| file modification times
 | |
| <LI>
 | |
| explicit prerequisites (from makefile assertions)
 | |
| <LI>
 | |
| implicit prerequisites (from
 | |
| <EM>#include</EM>
 | |
| scanning)
 | |
| <LI>
 | |
| action text (used to build targets)
 | |
| <LI>
 | |
| variable values
 | |
| <LI>
 | |
| target attributes
 | |
| </UL>
 | |
| State
 | |
| <EM>and</EM>
 | |
| a language to manipulate it finally makes concise
 | |
| makefiles a reality; concise because rules traditionally placed in
 | |
| each makefile can now be implemented in a general way in a single
 | |
| <EM>base rules</EM>
 | |
| file.
 | |
| The base rules are such a fundamental part of
 | |
| <STRONG>nmake</STRONG>
 | |
| that most of its visible features are controlled by them.
 | |
| <P>
 | |
| Most makefiles are just a few lines:
 | |
| <DIV class=FI>
 | |
| <PRE>
 | |
| :PACKAGE: X11
 | |
| 
 | |
| xgame :: README xgame.6 xgame.h xgame.c xutil.c -lXaw -lXmu -lXt
 | |
| </DIV>
 | |
| </PRE>
 | |
| Automatically generated
 | |
| <STRONG>probe</STRONG>
 | |
| information provides convenient compiler abstractions:
 | |
| <DIV class=FI>
 | |
| <PRE>
 | |
| CCFLAGS = $(CC.DLL)
 | |
| 
 | |
| ast 4.0 :LIBRARY: ast.c strmatch.c
 | |
| </DIV>
 | |
| </PRE>
 | |
| In this case if the compiler supports
 | |
| shared libraries (aka <STRONG>dll</STRONG><EM>s</EM>) then
 | |
| <TT>nmake install</TT>
 | |
| will generate
 | |
| <EM>libast.a</EM>
 | |
| and
 | |
| <EM>libast.so.4.0</EM>
 | |
| (or the appropriate shared library suffix determined by
 | |
| <STRONG>CC.SUFFIX.SHARED</STRONG>).
 | |
| There are no
 | |
| <STRONG>nmake</STRONG>
 | |
| makefile generators (because the makefiles are so small),
 | |
| there is no separate
 | |
| <TT>make depend</TT>
 | |
| (because the files with
 | |
| <EM>.SCAN</EM>
 | |
| attributes are automatically scanned for implicit prerequisites),
 | |
| and there is no cheating (because all time stamp changes
 | |
| are detected, not just
 | |
| <EM>newer-than</EM>).
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="pax">pax</A></H3></FONT></FONT></CENTER>
 | |
| <STRONG>pax</STRONG>
 | |
| is a POSIX 1003.2 conformant replacement for
 | |
| <STRONG>tar</STRONG>
 | |
| and
 | |
| <STRONG>cpio</STRONG>
 | |
| that handles most UNIX archive and tape formats.
 | |
| <STRONG>pax</STRONG>
 | |
| uses the
 | |
| <EM>vdelta</EM>
 | |
| algorithm to construct efficient delta archives that contain bytewise
 | |
| changes from a given base archive. 
 | |
| <STRONG>gzip</STRONG>
 | |
| and
 | |
| <STRONG>compress</STRONG>
 | |
| archives are also handled on input and output.
 | |
| <P>
 | |
| To create a
 | |
| <EM>vdelta</EM>
 | |
| compressed base archive:
 | |
| <DIV class=FI>
 | |
| <PRE>
 | |
| tw | pax -w -f base -z -
 | |
| </DIV>
 | |
| </PRE>
 | |
| To create a delta archive on the base above (record file changes only):
 | |
| <DIV class=FI>
 | |
| <PRE>
 | |
| tw | pax -w -f delta -z base
 | |
| </DIV>
 | |
| </PRE>
 | |
| To read the delta archive:
 | |
| <DIV class=FI>
 | |
| <PRE>
 | |
| pax -r -f delta -z base
 | |
| </DIV>
 | |
| </PRE>
 | |
| To create a delta archive from linux-1.2.0 to linux-1.2.5:
 | |
| <DIV class=FI>
 | |
| <PRE>
 | |
| pax -rf linux-1.2.5.tar.gz -wf 0-5.pax.gz -x gzip -z linux-1.2.0.tar.gz
 | |
| </DIV>
 | |
| </PRE>
 | |
| To create the linux-1.2.5 archive:
 | |
| <DIV class=FI>
 | |
| <PRE>
 | |
| pax -rf 0-5.pax.gz -z linux-1.2.0.tar.gz -wf linux-1.2.5.tar.gz -x tar -x gzip
 | |
| </DIV>
 | |
| </PRE>
 | |
| The
 | |
| <STRONG>bax</STRONG>
 | |
| script, shipped with
 | |
| <STRONG>pax</STRONG>,
 | |
| combines
 | |
| <STRONG>tw</STRONG>
 | |
| and
 | |
| <STRONG>pax</STRONG>
 | |
| for handy backup control.
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="proto">proto</A></H3></FONT></FONT></CENTER>
 | |
| <STRONG>proto</STRONG>
 | |
| converts ANSI C prototype constructs to constructs compatible
 | |
| with K&R C, ANSI C, and C++.
 | |
| Only files with the line
 | |
| <DIV class=FI>
 | |
| <PRE>
 | |
| #pragma prototyped
 | |
| </DIV>
 | |
| </PRE>
 | |
| in the first 64 lines are processed; other files are silently ignored.
 | |
| This is how
 | |
| <STRONG>advsoft</STRONG>
 | |
| source is first shipped to foreign architectures.
 | |
| Once
 | |
| <STRONG>advsoft</STRONG>
 | |
| is bootstrapped the
 | |
| non-<STRONG>proto</STRONG>
 | |
| source can be built using the
 | |
| <STRONG>advsoft</STRONG>
 | |
| tools.
 | |
| <P>
 | |
| <STRONG>proto</STRONG>
 | |
| also converts in the other direction by providing
 | |
| <EM>extern</EM>
 | |
| prototypes for a collection of K&R source files and by converting
 | |
| K&R source files in place.
 | |
| K&R to ANSI is not 100%, but is a good starting point for manual conversion.
 | |
| <P>
 | |
| <STRONG>proto</STRONG>
 | |
| is token based (no C grammar); this allows it to convert 
 | |
| before C preprocessing, and also allows
 | |
| <STRONG>proto</STRONG>
 | |
| to be inserted into
 | |
| the standalone
 | |
| <STRONG>cpp</STRONG>.
 | |
| This is how
 | |
| <STRONG>nmake</STRONG>
 | |
| compiles ANSI C source with K&R compilers.
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="pzip">pzip</A></H3></FONT></FONT></CENTER>
 | |
| Fixed length record data is often viewed as a waste of space,
 | |
| too sparse for production use.
 | |
| Much effort is then put into optimizing
 | |
| the data schema, and in the process complicating the data interface.
 | |
| <STRONG>pzip</STRONG>
 | |
| shows that in many cases this view of fixed length data is wrong.
 | |
| In fact, variable length data may become more compressible when
 | |
| converted to a sparse, fixed length format.
 | |
| Intense semantic schema
 | |
| analysis can be replaced by an automated record partition, resulting in
 | |
| compression space improvements of 2 to 10 times and decompression speed
 | |
| improvements of 2 to 3 times over
 | |
| <STRONG>gzip</STRONG>
 | |
| for a large class of data.
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="sort">sort</A></H3></FONT></FONT></CENTER>
 | |
| <STRONG>sort</STRONG>
 | |
| is a POSIX 1003.2 conformant implementation based on
 | |
| <STRONG>-lrecsort</STRONG>
 | |
| by Phong Vo and Glenn Fowler with key encoding by Doug McIlroy.
 | |
| The
 | |
| <STRONG>recsort</STRONG>
 | |
| discipline/method interface allows
 | |
| <STRONG>sort</STRONG>
 | |
| to double as a test harness for different sort algorithms.
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="std">std</A></H3></FONT></FONT></CENTER>
 | |
| The
 | |
| <STRONG>ast</STRONG>
 | |
| <STRONG>std</STRONG>
 | |
| commands are re-implementations of some of the standard section
 | |
| <STRONG>1</STRONG>
 | |
| commands.
 | |
| On most systems the
 | |
| <STRONG>mount</STRONG>
 | |
| and
 | |
| <STRONG>ps</STRONG>
 | |
| commands are installed as
 | |
| <STRONG>ast_mount</STRONG>
 | |
| and
 | |
| <STRONG>ast_ps</STRONG>
 | |
| because the author either could not keep up with option proliferation or
 | |
| the commands must be installed with sufficient privelege to operate
 | |
| multi-user.
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="tksh">tksh</A></H3></FONT></FONT></CENTER>
 | |
| <EM>tksh</EM>
 | |
| is an implementation of the Tcl C library
 | |
| written on top of the library for the new KornShell
 | |
| (<EM>ksh93</EM>).
 | |
| <EM>tksh</EM>
 | |
| emulates the behavior of Tcl by using the API that is provided for extending
 | |
| <EM>ksh93</EM>,
 | |
| which is similar to the Tcl library in that it allows access to
 | |
| variables, functions and other state of the interpreter.
 | |
| This implementation requires no modification to
 | |
| <EM>ksh93</EM>,
 | |
| and allows Tcl libraries such as Tk to run on top of
 | |
| <EM>ksh93</EM>
 | |
| unchanged,
 | |
| making it possible to use shell scripts in
 | |
| place of Tcl scripts. 
 | |
| <EM>ksh93</EM>
 | |
| is well suited for use with Tk because it is
 | |
| backward compatible with
 | |
| <EM>sh</EM>,
 | |
| making it both easy to learn and easy to extend
 | |
| existing scripts to provide a graphical user interface.
 | |
| <P>
 | |
| <EM>tksh</EM>
 | |
| is not yet
 | |
| another port of Tk to another language -- it allows Tcl scripts to run without
 | |
| modification using the ksh93 internals.
 | |
| This makes it possible to combine
 | |
| Tcl and
 | |
| <EM>ksh93</EM>,
 | |
| which is useful for writing
 | |
| <EM>ksh93</EM>
 | |
| scripts that use components that have been implemented in Tcl
 | |
| (such as Tk widgets).
 | |
| <P>
 | |
| <EM>tksh</EM>
 | |
| was developed by
 | |
| <A href="http://www.research.att.com/~jlk" target=_top>Jeff Korn</A>
 | |
| and is distributed by
 | |
| <A href="mailto:advsoft@research.att.com" target=_top>advsoft@research.att.com</A>.
 | |
| For the latest information vist the
 | |
| <EM>tksh</EM>
 | |
| <A href="http://www.cs.princeton.edu/~jlk/tksh" target=_top>home page</A>.
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="tw">tw</A></H3></FONT></FONT></CENTER>
 | |
| <STRONG>tw</STRONG>
 | |
| is a combination of
 | |
| <STRONG>find</STRONG>
 | |
| and
 | |
| <STRONG>xargs</STRONG>
 | |
| that applies C style expressions on the
 | |
| <EM>stat</EM>
 | |
| structure of each file in a directory hierarchy.
 | |
| <DIV class=FI>
 | |
| <PRE>
 | |
| tw
 | |
| </DIV>
 | |
| </PRE>
 | |
| lists the directory hierarchy under the current directory,
 | |
| <DIV class=FI>
 | |
| <PRE>
 | |
| tw chmod go-rwx
 | |
| </DIV>
 | |
| </PRE>
 | |
| changes the mode of all files in the directory hierarchy under the current
 | |
| directory by calling
 | |
| <STRONG>chmod</STRONG>
 | |
| as few times as the
 | |
| <EM>exec</EM>
 | |
| arg limit allows.
 | |
| <DIV class=FI>
 | |
| <PRE>
 | |
| tw -d /usr/src -e "name=='*.[chly]'" grep FOOBAR
 | |
| </DIV>
 | |
| </PRE>
 | |
| greps for
 | |
| <STRONG>FOOBAR</STRONG>
 | |
| in all the
 | |
| <STRONG>C</STRONG>
 | |
| source files in /usr/src. 
 | |
| <P>
 | |
| <STRONG>tw</STRONG>
 | |
| efficiently prunes the file tree search; it follows symbolic
 | |
| links by default (logical walk).
 | |
| The
 | |
| <STRONG>getconf</STRONG>
 | |
| variable
 | |
| <STRONG>PATH_RESOLVE</STRONG>
 | |
| controls the default behavior for all
 | |
| <STRONG>advsoft</STRONG>
 | |
| commands:
 | |
| <DIV class=FI>
 | |
| <PRE>
 | |
| getconf PATH_RESOLVE - physical
 | |
| </DIV>
 | |
| </PRE>
 | |
| sets the default to not follow symbolic links,
 | |
| <STRONG>logical</STRONG>
 | |
| to follow,
 | |
| and
 | |
| <STRONG>metaphysical</STRONG>
 | |
| to follow only command line symbolic links
 | |
| (corresponding to the -P, -L and -H command options that override the
 | |
| default).
 | |
| <DIV class=FI>
 | |
| <PRE>
 | |
| tw -P -e type==LNK
 | |
| </DIV>
 | |
| </PRE>
 | |
| does a physical walk that lists all symbolic links.
 | |
| <DIV class=FI>
 | |
| <PRE>
 | |
| tw -e "mtime>='yesterday morning'"
 | |
| </DIV>
 | |
| </PRE>
 | |
| lists all files modified since yesterday morning.
 | |
| The magic file types from the
 | |
| <STRONG>file</STRONG>
 | |
| command are available in
 | |
| <STRONG>tw</STRONG>
 | |
| expressions
 | |
| (<STRONG>tw</STRONG>
 | |
| and
 | |
| <STRONG>file</STRONG>
 | |
| use the same library routine in
 | |
| <STRONG>libast</STRONG>):
 | |
| <DIV class=FI>
 | |
| <PRE>
 | |
| tw -e "(mode & 'u+s') && magic == '*script*'" chmod u-s
 | |
| </DIV>
 | |
| </PRE>
 | |
| finds all setuid scripts and turns off the setuid mode bit.
 | |
| The magic file also contains MIME types:
 | |
| <DIV class=FI>
 | |
| <PRE>
 | |
| tw -e "mime == '*/exe'"
 | |
| </DIV>
 | |
| </PRE>
 | |
| lists all executable programs
 | |
| (<EM>a.out</EM>'s).
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="warp">warp</A></H3></FONT></FONT></CENTER>
 | |
| <STRONG>warp</STRONG>
 | |
| executes a dynamically linked command in a different time frame.
 | |
| It intercepts time related system calls and modifies the times seen by
 | |
| the command using the formula:
 | |
| <DIV class=FI>
 | |
| <PRE>
 | |
| time' = time + warp + (time - base) * (factor - 1)
 | |
| </DIV>
 | |
| </PRE>
 | |
| where:
 | |
| <UL type=square>
 | |
| <LI>
 | |
| <EM>time'</EM>
 | |
| The logical system time seen by the command process.
 | |
| <LI>
 | |
| <EM>time</EM>
 | |
| The physical system time.
 | |
| <LI>
 | |
| <EM>warp</EM>
 | |
| A fixed offset from the physical system time
 | |
| (i.e., the warp.)
 | |
| <LI>
 | |
| <EM>base</EM>
 | |
| The physical system time when
 | |
| <STRONG>warp</STRONG>
 | |
| was first applied to the process or any ancestor process.
 | |
| <LI>
 | |
| <EM>factor</EM>
 | |
| The rate of logical time change with respect to the physical clock
 | |
| (i.e., the warp factor.)
 | |
| </UL>
 | |
| <EM>warp</EM>,
 | |
| <EM>base</EM>,
 | |
| and
 | |
| <EM>factor</EM>
 | |
| are inherited by children of warped processes so that a child process
 | |
| is warped in the same time frame as its parent.
 | |
| Time progresses for warped processes at the rate of
 | |
| <EM>factor</EM>
 | |
| times the physical system clock.
 | |
| Any files created by a warped process
 | |
| will appear to be in the warped logical time frame
 | |
| for that process but will appear in physical system time frame
 | |
| for non-warped processes.
 | |
| <P>
 | |
| Statically-linked, set-uid or set-gid commands are not warped.
 | |
| <P>
 | |
| <H4><A name="Interface">Interface</A></H4>
 | |
| <STRONG>warp</STRONG>
 | |
| [
 | |
| <STRONG>-b</STRONG>
 | |
| <EM>base</EM>
 | |
| ] [
 | |
| <STRONG>-f</STRONG>
 | |
| <EM>factor</EM>
 | |
| ] [
 | |
| <STRONG>-n</STRONG>
 | |
| ] [
 | |
| <STRONG>-t</STRONG>
 | |
| ]
 | |
| <EM>date</EM>
 | |
| [
 | |
| <EM>command</EM>
 | |
| [
 | |
| <EM>arg</EM>
 | |
| <!--NULL-->...
 | |
| ] ]
 | |
| <P>
 | |
| The components of the warp formula are set as follows:
 | |
| the warp offset
 | |
| <EM>warp</EM>
 | |
| is
 | |
| <EM>date-now</EM>,
 | |
| <EM>base</EM>
 | |
| is
 | |
| <EM>date</EM>
 | |
| by default,
 | |
| and
 | |
| <EM>factor</EM>
 | |
| is 1 by default.
 | |
| <P>
 | |
| Command argument date specifications support common conventions:
 | |
| <DIV class=FI>
 | |
| <PRE>
 | |
| yesterday
 | |
| next week
 | |
| 50 days
 | |
| 2000-02-28/00:00
 | |
| feb 28 2000
 | |
| </DIV>
 | |
| </PRE>
 | |
| Absolute seconds since the epoch, a.k.a.
 | |
| <STRONG>time_t</STRONG>
 | |
| values, are represented by
 | |
| <STRONG>#</STRONG><EM>seconds.</EM>
 | |
| <P>
 | |
| The
 | |
| <STRONG>-n</STRONG>
 | |
| option shows how
 | |
| <EM>command</EM>
 | |
| would be executed without actually executing it.
 | |
| The
 | |
| <STRONG>-t</STRONG>
 | |
| option traces each intercepted system call.
 | |
| <P>
 | |
| <STRONG>warp</STRONG>
 | |
| executes
 | |
| <EM>command</EM>
 | |
| with optional
 | |
| <EM>args</EM>,
 | |
| or
 | |
| <STRONG>$SHELL</STRONG>
 | |
| if
 | |
| <EM>command</EM>
 | |
| is omitted.
 | |
| <P>
 | |
| <H4><A name="Examples">Examples</A></H4>
 | |
| <DIV class=FI>
 | |
| <PRE>
 | |
| $ date -f %Y-%m-%d/%H:%M
 | |
| 1998-03-11/13:41
 | |
| $ warp 2000-02-29/12:30:30 date -f %Y-%m-%d/%H:%M
 | |
| 2000-02-29/12:30
 | |
| $ date -f %Y-%m-%d/%H:%M
 | |
| 1998-03-11/13:44
 | |
| $ warp +57060970 date
 | |
| 2000-01-01/00:00
 | |
| 
 | |
| # get a shell where 1 logical day passes for each physical second
 | |
| $ PS1='(warp) ' warp -f $(60*60*24) 2000-02-29/12:30:30
 | |
| (warp) date -f %Y-%m-%d/%H:%M
 | |
| 2000-03-07/18:58
 | |
| (warp) sleep 1
 | |
| (warp) date -f %Y-%m-%d/%H:%M
 | |
| 2000-03-19/18:58
 | |
| </DIV>
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="release change log">release change log</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| All recorded changes follow.
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="ksh93 changes">ksh93 changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 12-08-01  --- Release ksh93u+ ---
 | |
| 12-08-01  A bug that ignored interrupts for some builtins (e.g. cmdtst::grep) 
 | |
| 	  that read from stdin has been fixed.
 | |
| 12-08-01  A bug that interpreted "cd .foo" as "cd foo" has been fixed.
 | |
| 12-07-30  Added automatic restart for EINTR for ioctl, tcgetattr, and tcsetattr.
 | |
| 12-07-23  A scoping error with namrefs to compound associative arrays has
 | |
| 	  been fixed.
 | |
| 12-07-20  A bug where builtin -d /path/foo deleted foo has been fixed.
 | |
| 12-07-18  A bug in which /dev/stdout did not work in command substitution on
 | |
| 	  some systems has been fixed.
 | |
| 12-07-17  A bug in which the restricted option set in a subshell prevented
 | |
| 	  some variables from getting restored when the subshell completed
 | |
| 	  has been fixed.
 | |
| 12-07-09  A bug in which the directory is not restored after a subshell changes
 | |
| 	  the name of the directory for subshells executed in the same process
 | |
| 	  has been fixed.
 | |
| 12-07-09  A bug in which file descriptors created with {n}< file were not being
 | |
| 	  closed has been fixed.
 | |
| 12-07-09  The 12-04-04 fix for cd .. was not correct causing cd /etc;cd .. to
 | |
| 	  remain in /etc.  This has been fixed.
 | |
| 12-07-02  A bug in which builtin name did now work for builtins found in a
 | |
| 	  library added by builtin -f lib has been fixed.
 | |
| 12-07-02  A bug in the edit modes which <tab> after a directory did not refresh
 | |
|           the input line has been fixed.
 | |
| 12-07-02  A bug in which an exit status > 256 corresponding to a signal was
 | |
|           not returned by a function to indicate a signal exit has been fixed.
 | |
| 12-06-28  Fix ulimit -a to list (Kibytes) instead of (kbytes).
 | |
| 12-06-27  Fix uninitialized data reference for <CR> as first char in --vi mode.
 | |
| 12-06-26  The formatting of printf "%q" for multibyte locales has changed to
 | |
| 	  output using \u[xxx] format for valid wide characters.
 | |
| 12-06-25  The size limit for read -N and read -n has been raised to INT_MAX.
 | |
| 12-06-22  A bug in which an exit trap set in a subshell might not be triggered
 | |
| 	  when the last command was a simple executable has been fixed.
 | |
| 12-06-22  A bug which could cause the shell to hang when a coprocess exits
 | |
| 	  while a command inside a command substitution is reading from it has
 | |
| 	  been fixed.
 | |
| 12-06-21 +ksh new accepts for commands of the form for i; <nl> do;...;done
 | |
| 12-06-19  Tab completion after a / when there is only one match not completes
 | |
| 	  with that match rather than generating a menu of matches.
 | |
| 12-06-19  A bug in which patterns containing {...} where not processed
 | |
| 	  correctly inside ${var/pattern/string} has been fixed.  
 | |
| 12-06-18  Code modified to eliminate fts_notify variable.
 | |
| 12-06-15  Change the .paths plugin/builtin library variable name from
 | |
| 	  BUILTIN_LIB to PLUGIN_LIB to prevent new plugin_version() aware
 | |
| 	  -lcmd from causing older non-plugin_version() aware ksh to dump core.
 | |
| 12-06-14  builtin without argument no longer lists .sh.tilde as a built-in.
 | |
| 12-06-12  For assignments if the form x=(foo bar), foo is only check for an
 | |
| 	  alias if it is float, integer, compound, or nameref.
 | |
| 12-06-12 +The shell supports 64 bit i-nodes even for 32 bit binaries.
 | |
| 12-06-11  A bug with >; redirection systems for which vfork() was the same a
 | |
| 	  fork() has been fixed.
 | |
| 12-06-11  A bug in path lookup that ignored buffer boundaries has been fixed.
 | |
| 12-06-08  typeset -a var and typeset -A var, first unset var when var is
 | |
| 	  a compound variable.
 | |
| 12-06-08  A bug in which running shcomp on a program containing namespace
 | |
| 	  could core dump has been fixed.
 | |
| 12-06-06  A bug in which unset of an associative array of compound variables
 | |
| 	  did not completely unset the variable has been fixed.
 | |
| 12-06-06  A bug in which exporting left or right justified fields could loose
 | |
| 	  the field width has been fixed.
 | |
| 12-06-06  A bug on Solaris11 in which >; did not work for /dev/null was fixed.
 | |
| 12-06-05  A race condition which occurred when stopping a builtin command
 | |
| 	  invoked from a subshell has been fixed.
 | |
| 12-06-05  A bug with appending elements to an empty indexed array has been
 | |
| 	  fixed.
 | |
| 12-06-04  A bug in which continuing a stopped builtin could cause it to
 | |
| 	  terminate has been fixed.
 | |
| 12-06-04  By default, builtins added at runtime will restore the current
 | |
| 	  directory if they are killed or stopped.
 | |
| 12-06-04  A bug in handling \ in read has been fixed.
 | |
| 12-05-31  Use getrlimit64/setrlimit64 on systems that support it.
 | |
| 12-05-31  Fix 64 bit big-endian arithmetic bug that mishandled nan and inf.
 | |
| 12-05-31  Handle ECONNRESET like EPIPE.
 | |
| 12-05-31  Change .paths parse to use only the last BUILTIN_LIB from the top
 | |
| 	  and treat BUILTIN_LIB value as a ':' separated list of lib names.
 | |
| 12-05-29  Fix BUILTIN_LIB binding bug that ignored subsequent lookups.
 | |
| 12-05-29  shtests: --nocompile omits the compile test and --compile does only
 | |
| 	  the compile test.
 | |
| 12-05-25  A command substitution containing a here-document that itself contains
 | |
| 	  a here-document no longer hangs.
 | |
| 12-05-24  When the redirection operatory >; is directed to a symlink, it now
 | |
| 	  overwrites the file named by the link rather than the link.
 | |
| 12-05-21 +Added printf formats %(type)q where type can be html, url, pattern,
 | |
| 	  ere, or csv. 
 | |
| 12-05-18  A bug with appending elements to an indexed array has been fixed.
 | |
| 12-05-18  The exit status from getopts --man interactively was 0 instead of 2
 | |
| 	  and has been fixed.
 | |
| 12-05-18  Another bug with SHOPT_EDPREDICT which could cause a core dump has
 | |
| 	  been fixed.  
 | |
| 12-05-17  A bug with fixed size arrays which could cause a core dump has been
 | |
| 	  fixed.
 | |
| 12-05-17  A bug in which the here-document <<< $(<file) was not processed
 | |
| 	  correctly has been fixed.
 | |
| 12-05-15  The default value for -L, -R, and -Z when the size was not set was
 | |
| 	  incorrectly defaulting to 1 and has been fixed.
 | |
| 12-05-15  A bug in which a subshell of the form (name=value exec ...) could
 | |
| 	  coredump when name is an environment variable and xtrace is on has
 | |
| 	  been fixed.
 | |
| 12-05-15  Fixed a .paths bug in which only the first BUILTIN_LIB assignment worked.
 | |
| 12-05-14  Arithmetic expressions and subexpressions that are not floating point
 | |
| 	  now treat -0 as 0, so that $((-0)) is 0 and $((-0.0)) is -0. 
 | |
| 12-05-11  'unset .sh' now fails with readonly message instead of coredump. 
 | |
| 12-05-11  A bug which left an associative array arr containing one element in
 | |
| 	  the wrong state after expanding with ${arr[@]} has been fixed. 
 | |
| 12-05-10  A bug in which typeset -f did not display options that called getopts
 | |
| 	  has been fixed.
 | |
| 12-05-08  Fixed a number of potential bugs uncovered by valgrind.
 | |
| 12-05-08  A bug in which typeset -b -Z10 var did not initialize var to the
 | |
| 	  empty string has been fixed.
 | |
| 12-05-07  A bug in which the exit value of an interactive shell could be
 | |
| 	  affected by the evaluation of the PS1 prompt has been fixed.
 | |
| 12-05-04  A bug in which x=() was not unsetting the old value of x before
 | |
| 	  creating an empty compound variable has been fixed.
 | |
| 12-05-01  A bug in vi edit mode in which after <ESC>^V, the terminal was not
 | |
| 	  restored to insert mode after a character is entered has been fixed.
 | |
| 12-04-27  A bug in which old attributes were not cleared when assigning a
 | |
| 	  value using typeset has been fixed.
 | |
| 12-04-26 +Enabled multiline editing by default.  set +o multiline can disable.
 | |
| 12-04-25  The 12-04-17 PATH fix created a new bug which was fixed.
 | |
| 12-04-25  Fixed a big memory leak problem in which unsetting compound variables
 | |
| 	  did not free all the space.
 | |
| 12-04-25  A bug in which test ! ! ! was treated as an error has been fixed.
 | |
| 12-04-24  A bug with print -v for a compound variable that contained fixed
 | |
| 	  arrays which prevented the output from being used again as input
 | |
| 	  has been fixed.
 | |
| 12-04-23 +kill provides the STKFLT signal on systems that support it.
 | |
| 12-04-23 +The -L option was added to kill.  The -L option is the same as -l
 | |
| 	  except that without arguments the output format is in the form of
 | |
| 	  a select menu.
 | |
| 12-04-23  A bug in which the exit status for an interactive shell was always 
 | |
| 	  0 has been fixed. 
 | |
| 12-04-20  Entering blank lines interactively no longer resets the exit status.
 | |
| 12-04-18  A bug in file completion in which the second tab completion on a file
 | |
| 	  would list the completion rather than inserting the completion has
 | |
| 	  been fixed.
 | |
| 12-04-18  A bug in which "${arr[@]:i:j}" and "${@:i:j}" generated the empty
 | |
| 	  string when i was a valid subscript and j was <=0 rather than
 | |
| 	  generating nothing has been fixed.
 | |
| 12-04-17  A bug in which read -d delim from a terminal did not respond to
 | |
| 	  interrupt and did not termrinate when the delimiter was entered
 | |
| 	  has been fixed.
 | |
| 12-04-17  A bug in which a directory in PATH containing a .paths file that
 | |
| 	  contains a line with FPATH=dir, where dir does not exist could
 | |
| 	  cause the path search to fail has been fixed.
 | |
| 12-04-16  A bug in which $(trap -p) did not display traps such as ERR and
 | |
| 	  DEBUG that are not associated with signals has been fixed.
 | |
| 12-04-11  A bug in which unsetting a variable did not unset attributes when
 | |
| 	  the variable did not have a value has been fixed.
 | |
| 12-04-11  A bug in which read -A for an array whose index is an enumeration
 | |
| 	  type, lost the enumeration type has been fixed.
 | |
| 12-04-10  Shared libraries loaded from a library named by a BUILTIN_LIB= found
 | |
| 	  in a .paths file found in a directory on PATH now add builtins that
 | |
| 	  are associated with the directory in PATH containing the .paths file.
 | |
| 12-04-09  Increased I/O buffer sizes for better performance.
 | |
| 12-04-09  A bug in which the leading 0 was stripped from $x, when $x contained
 | |
| 	  a heximadecimal constant inside an arithmetic expression inside
 | |
| 	  a for or while loop.
 | |
| 12-04-06  Modified namespaces to hand variables FPATH, PATH, and OPTIND that
 | |
| 	  are defined in name spaces appropriately.  This also fixed OPTIND
 | |
| 	  and OPTARG processing for functions.
 | |
| 12-04-04  A bug in which cd .. fails when the current directory has been
 | |
| 	  renamed has been fixed.
 | |
| 12-04-02  Made some namespace changes and added a regression test.
 | |
| 12-03-30  A bug with namespaces in which PATH and FPATH set in a namespace was
 | |
| 	  not restored when leaving the namespace has been fixed.
 | |
| 12-03-29  A bug in which appending an index array onto an array without elements
 | |
| 	  caused the first element to be 1 rather than 0 has been fixed.
 | |
| 12-03-29  A bug which could cause a core dump when copying a large index array
 | |
| 	  has been fixed.
 | |
| 12-03-28  The shell now generates an error message when the sizes with L, Z, and
 | |
| 	  R are > 32767 on 32 bit binaries instead of generating a core dump.
 | |
| 12-03-28  A bug in left and right justification in which the width of invalid
 | |
| 	  characters was not taken as zero has been fixed.
 | |
| 12-03-26  A bug in which typeset -p ref, when ref is a reference to an index
 | |
| 	  array element did not display the subscript has been fixed.
 | |
| 12-03-23  A bug in lowercase and uppercase fields when expanding ${name:=val}
 | |
| 	  when name is the empty string has been fixed.
 | |
| 12-03-22  A namespace bug in which a type t defined in namespace foo could not
 | |
| 	  be referenced outside the namespace as .foo.t has been fixed.
 | |
| 12-03-22  A bug in name reference scoping in which a name function called from
 | |
| 	  another function is pass a name reference to a compound variable
 | |
| 	  instance to be created and the compound variable is in the global
 | |
| 	  scope.
 | |
| 12-03-22  A bug in which ${ref[@}} did not behave like ${arr[i][@]} when
 | |
| 	  ref is a name reference to arr[i] has been fixed.
 | |
| 12-03-21  A bug in which assigning a compound variable into arr[i], where
 | |
| 	  arr[i] is an array variable did not work correctly has been fixed.
 | |
| 12-03-21  A bug with multi-dimenstional index arrays in which ${arr[i][j]}
 | |
| 	  could generate a bogus error message when i was > 9 has been fixed.
 | |
| 12-03-21  A bug in which typeset v=foo, typeset -p v[0] generated a core dump
 | |
| 	  has been fixed.
 | |
| 12-03-20  A bug in vi edit mode in which the sequence bar<ESC>0i<ESC>l left the
 | |
| 	  cursor on the b rather than the a has been fixed.
 | |
| 12-03-20  A bug which caused a core dump when defining a type with a field
 | |
| 	  as ' integer -a data=([0]=0)' has been fixed.
 | |
| 12-03-19  Using typeset -a array when array is an associative array not
 | |
| 	  generated an error message.
 | |
| 12-03-19  typeset +a, typeset +A, and typeset +C not displays the variables
 | |
| 	  with the attributes a, A, and C respectively instead of an error.
 | |
| 12-03-19  A bug in which typeset -pC, typeset -pa, and typeset -pA output all
 | |
| 	  variables rather than those of type C, a, or A only has been fixed.
 | |
| 12-03-18  A bug in which unset foo where foo is a name reference to a compound
 | |
| 	  variable defined inside a function is not unset has been fixed.
 | |
| 12-03-18  A bug with SHOPT_EDPREDICT which could cause a core dump when the
 | |
| 	  list of matches became empty has been fixed.  
 | |
| 12-03-15  The assignment, typeset -C foo=(a b c) now generates a syntax
 | |
| 	  error since a is not an assignment command.
 | |
| 12-03-16  A bug in which an unset discipline from a variable defined in a
 | |
| 	  subshell is not invoked in the subshell has been fixed.
 | |
| 12-03-08  The assignment typeset -a (x=1 y=2) now creates an index array
 | |
| 	  of two elements rather than an array of one element which is
 | |
| 	  a compound variable.
 | |
| 12-03-02 +The vi and emacs edit modes now list all the entries in a directory
 | |
| 	  when entering a <tab> for completion after a /.  
 | |
| 12-03-02  A bug in which a program that exits with value 12 when called
 | |
| 	  from a command substitution in which standard output has been
 | |
| 	  redirected caused the shell to hang has been fixed.
 | |
| 12-03-01  A bug in which the shell could not parse [[ ']' == ~(E)[]] ]]
 | |
| 	  has been fixed.
 | |
| 
 | |
| 12-02-29  --- Release ksh93u+ ---
 | |
| 12-02-29  A bug in which ~user expanded first in a subshell prevented it
 | |
| 	  from expanding later in a program has been fixed.
 | |
| 12-02-29  A bug which could lead to a core dump when more that four shared
 | |
| 	  libraries were added with the builtin command has been fixed.
 | |
| 12-02-29  Fixed a few bugs which caused SIGCHLD to be blocked preventing
 | |
| 	  background jobs from being reaped until a foreground job was run.
 | |
| 12-02-27  A bug in which sh -c for a simple command caused a fork() has been
 | |
| 	  fixed.
 | |
| 12-02-27  A timing bug on systems such as AIX that doesn't support vfork()
 | |
| 	  that could cause the exist status to get lost has been fixed.
 | |
| 12-02-22  A private file descriptor that was not close-on-exec for a command
 | |
| 	  substitution and has been fixed.
 | |
| 12-02-14  A bug in which ^Z did not stop a pipeline when the last component
 | |
| 	  was a shell built-in has been fixed.
 | |
| 12-02-14  getconf("PATH") used to initialize ed(1) path.
 | |
| 12-02-13 +In earlier version read from standard input would fail when called
 | |
| 	  from the KEYBD trap.  Now read options -N, -n, and -t should work
 | |
| 	  when called from a KEYBD trap.
 | |
| 12-02-13  If FCEDIT is not set and fc is invoked without the -e option,
 | |
| 	  ed will be invoked if found instead of /bin/ed. 
 | |
| 12-02-10  Another bug in the saving and restoring of IFS in a subshell
 | |
| 	  that caused a core dump has been fixed.
 | |
| 12-02-08  A bug in which .sh.fun disciplines could be cleared after a
 | |
| 	  function completes has been fixed.
 | |
| 12-02-08  A bug in job control in which the foregroup process group was not
 | |
| 	  set correctly after restarting a stopped pipeline has been fixed.
 | |
| 12-02-07  A bug in which numbers with leading zeros could be treated as
 | |
| 	  octal constants outside of ((...)) has been fixed.
 | |
| 12-02-06  A bug in arithmetic with compound variables containing multiple
 | |
| 	  array elements has been fixed.
 | |
| 12-02-02  A bug in the ulimit option table was fixed.
 | |
| 12-01-26  A bug in which a set command that did not change monitor could
 | |
| 	  effect the behavior of the monitor when monitor mode is on is fixed.
 | |
| 12-01-21 +You can now test whether the shell implements a math function using
 | |
| 	  typeset -f .sh.math.name, where name is the name of the function.
 | |
| 12-01-21  A bug in which typeset -L and typeset -R did not handle multibyte
 | |
| 	  characters correctly has been fixed.
 | |
| 12-01-20  A bug that could cause the shell to hang waiting for an incorrect
 | |
| 	  job pid has been fixed.
 | |
| 12-01-19  A memory leak which occurred for a nested command subtiution has been
 | |
| 	  fixed.
 | |
| 12-01-17  A bug in which typeset -u PS1 could enable the uppercase attribute
 | |
| 	  for some other variables, for exampe, HISTFILE has been fixed.
 | |
| 12-01-16  A bug in which .sh.match was not correct after a substring match when
 | |
| 	  the replacement string contained a substring match has been fixed.
 | |
| 12-01-12 +Files that are sourced from profile files are now read and executed
 | |
| 	  one command at a time so that alias definitions take effect as they
 | |
| 	  do for profile files.
 | |
| 12-01-12  A bug in which whence -p would find a function if one existed and
 | |
| 	  there was no command of that name on PATH.
 | |
| 12-01-11  Change b_* prototype (int, char**, void*) => (int, char**, Shbltin_t*).
 | |
| 12-01-05  A bug in which read was not terminating for a signal that had a trap
 | |
| 	  set has been fixed.
 | |
| 12-01-01  A timing problem with >; has been fixed.
 | |
| 12-01-01  A macro expansion memory leak has been fixed.
 | |
| 11-12-26  A bug in array assignments of the form arr=( $arr[i] ...) in which
 | |
| 	  arr was not unset before the assignment has been fixed. 
 | |
| 11-12-20  A number of code changes were made based on the results of errors
 | |
| 	  indicated by static code analysis.
 | |
| 11-12-13  In vi edit mode a lteral <TAB> can now be entered by preceding it
 | |
| 	  with a backshash.
 | |
| 11-12-13  When tab is entered for completion after a ' or ", the ' and "
 | |
| 	  characters are no longer deleted.
 | |
| 11-12-07  A bug in which a program in the current directory with a . in the
 | |
| 	  name could fail to execute when both PATH and FPATH end with :. has
 | |
| 	  been fixed.
 | |
| 11-12-07  I fixed a bug in which a variable expansion in a large here-document
 | |
| 	  could be expanded to a null string.
 | |
| 11-12-06  An optimization to read was added in the case the the read command
 | |
| 	  was redirected from a file.
 | |
| 11-12-06  Changes were made to make the line limit for read unlimited by
 | |
| 	  default.
 | |
| 11-12-05  A bug in which unsetting an array variable did not completely clear
 | |
| 	  the variable in some cases has been fixed.
 | |
| 11-12-02 +The printf alternative character # when applied to the %q format will
 | |
| 	  quote argument in a form suitable for a field in a .csv format file.
 | |
| 11-12-02 +A -S option was added to read to be able to read .csv format files.
 | |
| 11-11-28  A bug in which redirection of standard error in a function called from
 | |
| 	  command substitution caused standard error to be lost has ben fixed.
 | |
| 11-11-21  [[ (-n foo) ]] no longer requires a space before (.
 | |
| 11-11-11  The readonly attribute for a variable now applies to compound
 | |
| 	  assignments to that variable.
 | |
| 11-11-07  Changes were made to reduce the stack size to allow deeper function
 | |
| 	  recursion.
 | |
| 11-10-10 +Added alternate flag to printf %H for encoding of URI's.
 | |
| 11-10-10  A bug which could lead to a core dump when the shell was invoked
 | |
| 	  with more than twenty five open files has been fixed.
 | |
| 11-10-06  A bug in the scoping of name references in functions called by other
 | |
| 	  functions has been fixed.
 | |
| 11-10-05  A bug in which wait on a pid may return the exit status of an
 | |
| 	  earlier background job with that pid instead has been fixed.
 | |
| 11-09-22  A bug in which a read timed out with TMOUT did not always restore
 | |
| 	  the terminal state has been fixed.
 | |
| 11-09-21  An optimization that allowed the last command in a script to use
 | |
| 	  the same process id as the script has been eliminated.
 | |
| 11-09-21  Added letoctal option that enables the let command to recognize
 | |
| 	  octal constants starting with 0.
 | |
| 11-09-20  A bug in which ${var.} could cause a core dump has been fixed.
 | |
| 11-09-20  A bug with SHOPT_EDPREDICT when neither vi or emacs was enabled for
 | |
| 	  lines beginning with # when in a multibyte locale has been fixed.
 | |
| 11-09-20  A bug in emacs edit mode with SHOPT_EDPREDICT that would cause
 | |
| 	  history searches matching comments lines to generate predictions
 | |
| 	  has been fixed.  Only user typed comment lines generate predictions.
 | |
| 11-09-20  A bug in emacs edit mode with a search that matches a comment line
 | |
| 	  that could cause a core dump has been fixed.
 | |
| 11-09-16  A bug in which a command name ending in .. could cause the shell to
 | |
| 	  abort has been fixed.
 | |
| 11-09-16  The characters ! + - % and @ in file names are no longer escaped with
 | |
| 	  file name completion.
 | |
| 11-09-13  The let command no longer treats numbers starting with 0 as octal
 | |
| 	  constants.  
 | |
| 11-09-08  A bug in which printf "%R" could cause a core dump for invalid shell
 | |
| 	  patterns has been fixed.
 | |
| 11-08-09  With set -u, ${var#pattern} reported that var was unset for special
 | |
| 	  variables.
 | |
| 11-08-03  A bug in which the shell did not preserve the exit status for a
 | |
| 	  coprocess has been fixed.
 | |
| 11-08-02  A bug in the saving and restoring of IFS in command substitution that
 | |
| 	  caused a core dump has been fixed.
 | |
| 11-07-21  Modified the 10-08-27 bug fix so that background jobs started in for
 | |
| 	  and while loops created interactively generate completion messages.
 | |
| 11-07-20  I fixed a bug in here documents in which multi-byte characters that
 | |
| 	  crossed buffer boundaries were not processed correctly.
 | |
| 11-06-22  The shell compiler now supports process substitution.
 | |
| 11-06-22 +Added code to support process substitution on systems that do
 | |
| 	  not supply the /dev/fd directory.
 | |
| 11-06-21  Fixed extraneous jobs Done messages when builtin is at the end of a
 | |
| 	  pipeline.
 | |
| 11-06-20  Fixed two regression tests.
 | |
| 11-06-20  Fixed a bug introduced on last update.
 | |
| 11-06-14  A bug with pipefail in which the shell would wait for background
 | |
| 	  jobs to complete has been fixed.
 | |
| 11-06-09  A bug which caused the options.sh regression test to fail on OS390
 | |
| 	  Linux has been fixed.  The bug could also have affected other systems.
 | |
| 11-06-07 +A number of changes to support the still undocuments namespace option
 | |
| 	  have been added.
 | |
| 11-06-06  A bug in which command substitution of eval would hang when it  had
 | |
| 	  standard error redirected to standard output has been fixed.
 | |
| 11-06-01  A bug in case statement fall through (;&) ignoring set -e was fixed.
 | |
| 11-06-01  A bug in which creating a left or right justified upper or lowercase
 | |
|           variable with an empty string has been fixed.
 | |
| 11-06-01  A bug in which the .paths directory wasn't read when a subshell was
 | |
| 	  executed before any other command has been fixed.
 | |
| 11-05-31  The shell now gives an error when a type variable is assigned to
 | |
| 	  an array instance when the array has been declared a compound variable
 | |
| 	  array.
 | |
| 11-05-31  A bug in which typeset -m of an array instance did not remove the
 | |
| 	  original instance has been fixed. 
 | |
| 11-05-28  A bug in which typeset -m dest=src fails when src and are passed as
 | |
| 	  name references was fixed.
 | |
| 11-05-28  A bug in which typeset -m "c.board[1][i]=el", where el is a compound
 | |
| 	  variable core dumps has been fixed.
 | |
| 11-05-28  Two bugs in the display of arrays of compound variables with print -v
 | |
| 	  have been fixed.
 | |
| 11-05-27  A bug with command substitution with the shift jis locale has been
 | |
| 	  fixed.
 | |
| 11-05-25  A bug in which unset -f foo, called within function foo could cause
 | |
| 	  the shell to core dump has been fixed.
 | |
| 11-05-24  A bug in unsetting arrays of compound variables that could lead to
 | |
| 	  a core dump has been fixed.
 | |
| 11-05-24  A scoping bug in with typeset -m for variables passed as references
 | |
| 	  has been fixed. 
 | |
| 11-05-09  A bug in which 'typeset +p array[$i]' in a subshell could cause an
 | |
| 	  exception has been fixed.
 | |
| 11-05-03  Two more scoping bugs with name references and read -C were fixed.
 | |
| 11-05-03  A potential race condition which occurs when here-documents are
 | |
| 	  processed in asynchronous blocks has been eliminated.
 | |
| 11-05-02  Another scoping bug with name references defined in a function has
 | |
| 	  been fixed.
 | |
| 11-05-02  A bug in which the shell discards saved exit status of a job if it is
 | |
| 	  followed by a subshell execution has been fixed.
 | |
| 11-04-28  The shell now checks for numerical overflows with process ids.
 | |
| 11-04-28  Another scoping bug with compound variables defined by name references
 | |
| 	  inside a function has been fixed.
 | |
| 11-04-28  A bug which caused a core dump on 32 bit systems with the basic.sh
 | |
| 	  regression test has been fixed.
 | |
| 11-04-27  A scope binding error for name references has been fixed.
 | |
| 11-04-27  Assignment of compound variable to compound array element by name
 | |
| 	  is now working.
 | |
| 11-04-26  I fixed a bug with SHOPT_FIXEDARRAY compilation that could cause
 | |
| 	  an a core dump for not fixed arrays.
 | |
| 11-04-25  A bug in the references to two dimensional compound arrays has
 | |
| 	  been fixed.
 | |
| 11-04-20  A bug in which a name reference to a multidimentional index array
 | |
| 	  index, nameref x=foo[3][4], did not work correctly has been fixed.
 | |
| 11-04-18  Changes were added to allow fixed size arrays of variable sized
 | |
| 	  objects when the SHOPT_FIXEDARRAY compile option defined on 10-09-28.
 | |
| 11-04-18  A bug in which name references to array elements could fail has
 | |
| 	  been fixed.
 | |
| 11-04-15 +A compile option, SHOPT_2DMATCH, has been added which causes
 | |
| 	  .sh.match to be a two dimensional array after ${var//pat/str} 
 | |
| 	  where the first dimension is the pattern number and the second is
 | |
| 	  the match instance.
 | |
| 11-04-11  A bug in which readonly var, where var is exported could cause var
 | |
| 	  to be unset has been fixed.
 | |
| 11-04-06  A tokenizer bug in which ${x/{3}(\d)/ } would cause in infinite
 | |
| 	  loop has been fixed.
 | |
| 11-04-05  A bug in which ${!x.} could cause a core dump has been fixed.
 | |
| 11-04-04  A bug in which cleaning out the history file could terminate before
 | |
| 	  keeping all the recent history events has been fixed.
 | |
| 11-03-29  A bug in which ${#array[@]} was 1 rather than 0 after issuing
 | |
| 	  typeset array[7] has been fixed.
 | |
| 11-03-29  The subscript out or range message for fixed arrays has been fixed.
 | |
| 11-03-29  A bug in which suspend could cause a core dump has been fixed.
 | |
| 11-03-24  For the showme option added 09-09-09, commands beginning with a ;
 | |
| 	  inside an arithmetic for loop, no longer produce syntax errors.
 | |
| 11-03-18  A bug in _WINIX ~domain/user expansion has been fixed.
 | |
| 11-03-16  A bug in the pipefail option which could cause a script to hang
 | |
| 	  has been fixed.
 | |
| 11-03-12  The shell no longer treats ${##pattern} as a syntax error.
 | |
| 11-03-11  A bug in typeset -u on systems that don't supply the towctrans()
 | |
| 	  function has been fixed.
 | |
| 11-03-11  A bug in which a compound assignment of the form var[sub]=(...)
 | |
| 	  would evaluate sub for each assignment has been fixed.
 | |
| 11-03-07  A bug in which reassigning a compound variable to an associative
 | |
| 	  array index could incorrectly increase the count of the number
 | |
| 	  of elements has been fixed.
 | |
| 11-03-04 +The tilde expansion on windows has been modified to handle user
 | |
| 	  names of the form domain/user so that ~domain/user now expands
 | |
| 	  to the home directory of that domain user.
 | |
| 11-03-03  A bug in which the width of the prompt was calculated incorrectly
 | |
| 	  which cause the wrong line length for edit commands has been fixed.
 | |
| 11-03-02  A bug in which a global variables set from within a function inside
 | |
| 	  a subshell can leave side effects in parent shell has been fixed.
 | |
| 11-03-01  A bug in which whence -a could dump core when the first match
 | |
| 	  was due to : in PATH and the program was in the current directory.
 | |
| 11-02-28  A bug in emacs mode with SHOPT_EDPREDICT (added on 10-05-20) which
 | |
| 	  disabled prediction on a line starting with # when the cursor was not
 | |
| 	  at the end of line has been fixed.
 | |
| 11-02-28  The output format for compound variables with set has been fixed.
 | |
| 11-02-25  A bug which could lead to a core dump occurred when a shell script
 | |
| 	  without #! is invoked by name from a parent shell that has name
 | |
| 	  references defined and the script creates name references of the
 | |
| 	  same name.
 | |
| 11-02-21  The shell now fails with a syntax error when a here-document in a
 | |
| 	  command substitution is not completed before the closing ), for
 | |
| 	  example, $( foobar <<! )
 | |
| 		here_doc
 | |
| 	  !.
 | |
| 11-02-18  A bug in which the value of $0 in a function defined by name()
 | |
| 	  was changed to name has been fixed.
 | |
| 11-02-17  A bug in which the declaration typeset var[100] did not work
 | |
| 	  correctly has been fixed. 
 | |
| 11-02-15  A bug in which [[ -v sh.match ]] did not work correctly has been
 | |
| 	  fixed.
 | |
| 
 | |
| 11-02-08  --- Release ksh93u  ---
 | |
| 11-02-08  A bug in which opening standard output after it has been closed with
 | |
| 	  exec 1>&- doesn't work has been fixed.
 | |
| 11-02-07  A bug on some systems for which a command substitution could hang
 | |
| 	  has been fixed.
 | |
| 11-01-28  A bug in file name completion for files containing both multibyte
 | |
| 	  characters shell special characters has been fixed.
 | |
| 11-01-18  The .sh.match variable now shows elements that do not match as
 | |
| 	  as not set rather than an empty string.
 | |
| 11-01-18  A bug with typeset -m of an array into an element of an indexed
 | |
| 	  array has been fixed.
 | |
| 11-01-13  A bug in handling of arrays of compound variables inside ((...)) which
 | |
| 	  reported a syntax error been fixed.
 | |
| 11-01-10  A bug in arithmetic assignment operators of the form op= for array
 | |
| 	  variables when the same array was referenced on the left and the
 | |
| 	  right hand side with different indices has been fixed.
 | |
| 11-01-10  A bug in which the output of time was lost when { time...;} 2>&1
 | |
| 	  occurred inside command substitution has been fixed.
 | |
| 11-01-07  [[ -v sh.match[i] ]] was returning false when sh.match[i] was set.
 | |
| 11-01-05  Added and modified warning messages with sh -n.
 | |
| 11-01-02  Fixed bugs with typeset -l/-u/-M and arrays.
 | |
| 10-12-28  Fixed a bug with typeset -l/-u/-M values in arithmetic expressions.
 | |
| 10-12-26  Fixed a time parsing bug in sleep and localeconv() initialization.
 | |
| 10-12-23  Prevented the shell from generating a core dump when it sends itself
 | |
| 	  a termination signal because the last command terminated with that
 | |
| 	  signal.  This prevents a core dump to be overwritten by the shell.
 | |
| 10-12-22  A bug in the expansion of  ${A[@]} ${B[@]}, introduced in 10-12-01
 | |
| 	   when A="" B=B has been fixed.
 | |
| 10-12-21 +Use MS_3D in b_vpath() for setting win32 WoW mount defaults.
 | |
| 10-12-17  A bug in the expansion of ${var:i:j} which caused a core dump when
 | |
| 	  i > ${#var} has been fixed.
 | |
| 10-12-16 +sleep now treats . as decimal point even in locales that use comma.
 | |
| 10-12-16 +typeset -M mapname was added to generalize on toupper and tolowwer
 | |
| 	  mapping as provided with wctrans(). 
 | |
| 10-12-10  A bug in which typeset -l displayed namespaces as well as lower case
 | |
| 	  variables has been fixed.
 | |
| 10-12-06  A bug in which a pipeline could terminate prematurely for a pipeline
 | |
| 	  whose right hand side is a builtin, and whose left hand side ends in
 | |
| 	  a simple command that has standard output redirected has been fixed.
 | |
| 10-12-06  A bug in hexfloat assignments when the right hand side is a string
 | |
|           variable starting with 0x has been fixed.
 | |
| 10-12-01  A bug in the expansion of ${$1+"$@"} which causes the last positional
 | |
| 	  parameter to disappear when it is empty has been fixed.
 | |
| 10-12-01  A number of changes were made to reduce the startup time.
 | |
| 10-11-29  When wait is interrupted by a signal that is caught, it now exits
 | |
| 	  with a non-zero exit status.
 | |
| 10-11-29  When a variable is used directly in an arithmetic expression,
 | |
| 	  leading zeros no longer cause the value to be treated as an
 | |
| 	  octal constant.  This was true in previous versions for justified
 | |
| 	  variables.
 | |
| 10-11-29  An incorrect warning message was eliminated with the -n option for
 | |
| 	  arithmetic expressions with associative arrays.
 | |
| 10-11-29  Some changes were made to slightly reduces startup time.
 | |
| 10-11-24  A bug in which a name reference is make to arr[0] when arr is not
 | |
| 	  an array has been fixed.
 | |
| 10-11-23  If a type definition is made without a compound variable assignment it
 | |
| 	  produces an error message and no longer shows up as a defined type. 
 | |
| 10-11-22  The handling of  inside [...] for for shell and ~(E) patterns has
 | |
| 	  been fixed.
 | |
| 10-11-22  A patch was made to pfsh to handle an error case.
 | |
| 10-11-22 +Modified types defined in namespace so that they do not clash with
 | |
| 	  types in other namespaces.  Types can be referenced using
 | |
| 	  .namespace.typename.
 | |
| 10-11-22  A bug which caused functions addressed as .namespace.funct to not
 | |
| 	  work has been fixed.
 | |
| 10-11-22  A bug in which if nr was a name reference to an unset associative
 | |
| 	  array subscript, then ${!nr} did not output the subscript correctly
 | |
| 	  has been fixed.
 | |
| 10-11-18  A bug in which shcomp -n was not processing double quotes correctly
 | |
| 	  has been fixed.
 | |
| 10-11-18  Fixed a bug in which typeset -T foo; typeset -T could cause a
 | |
| 	  core dump.
 | |
| 10-11-17  Fixed a bug in which the error message for set -u could come out
 | |
| 	  garbelled.
 | |
| 10-11-17  Modified the parser so that typeset -a var=(...) no longer checks
 | |
| 	  the first index for aliases and reserved words.
 | |
| 10-11-17  A bug in which a subshell command consisted of only a for or until
 | |
| 	  command has been fixed.
 | |
| 10-11-16  Fixed a bug in which typeset -u would display namespace variables
 | |
| 	  as well as upper case variables.
 | |
| 10-11-16  A bug which could cause a core dump when unsetting a type variable
 | |
| 	  when there are references to type elements has been fixed.
 | |
| 10-11-15  A bug which could cause a core dump when unsetting a compound
 | |
| 	  array variable when there are references to array subscripts has
 | |
| 	  been fixed.
 | |
| 10-11-15  A bug in which using typeset -m to move an indexed array instance
 | |
| 	  to another array could cause the array to display incorrectly has
 | |
| 	  been fixed.
 | |
| 10-11-12  A bug in which the unset discipline function for a type is called
 | |
| 	  when the type is initialized has been fixed.
 | |
| 10-11-12  The sequences \< and \> are now preserved after patterns containing
 | |
| 	  ~(E) in ${var/pattern/string} expansions.
 | |
| 10-11-11  A bug in typeset -m when the variables were compound array instances
 | |
| 	  has been fixed.
 | |
| 10-11-10  A bug in output of a compound variable with types containing types
 | |
| 	  has been fixed.
 | |
| 10-11-10  Fixed ``name=value export [-p]'' to list environment.
 | |
| 10-11-09  shtests resets SIGPIPE to SIG_DFL for all tests.
 | |
| 10-11-09  Fixed a bug in expansion of $"..." when used in assignments.
 | |
| 10-11-09  Fixed a getaddrinfo() memory leak that didn't call freeaddrinfo()
 | |
| 	  after an interrupt.
 | |
| 10-11-08  Modified the behavior of set -u so that the shell terminates with
 | |
| 	  error message when when var is unset with ${!var} and ${#var}.
 | |
| 10-11-02  Fix a bug in which a signal received while in a subshell could be
 | |
| 	  ignored.
 | |
| 10-10-26  Fix a bug where terminal interrupt was ignored while in vi/emacs
 | |
| 	  edit search mode.
 | |
| 10-10-26  Fix $'a b'c to expand to 'ac'.
 | |
| 10-10-26  Provide user defined round() if not in <math.h>.
 | |
| 10-10-26  Fix bug where $((undefined_function(1))) dumped core.
 | |
| 10-10-22  Provide user defined iszero() if not in <math.h>.
 | |
| 10-10-22  Fixed a bug with BGX compile option that could cause the shell to
 | |
| 	  hang.
 | |
| 10-10-22  Fixed a bug with user define math function on systems for which
 | |
| 	  char is unsigned.
 | |
| 10-10-21  A bug in which function autoloaded in a function leaves a file open
 | |
| 	  has been fixed.
 | |
| 10-10-20  Modified the behavior of set -u so that the shell terminates when
 | |
| 	  when var is unset with ${var op string} when op is #, % or /.
 | |
| 10-10-20  Fixed a bug with the AUDIT option in which the audit file was not
 | |
| 	  not close-on-exec.
 | |
| 10-10-20 +Made a number of changes and fixes for the NAMESPACE compile option
 | |
| 	  which as added on 10-06-09 but some problems still remain.
 | |
| 10-10-15  Fixed a bug in which arithmetic functions (added on 10-03-24) did
 | |
| 	  not work when the function definition was in the same compound
 | |
| 	  command in which the function was referenced.
 | |
| 10-10-13  A bug in which creating an associative array of compound variables
 | |
| 	  with no members as an element of a compound variable did not work
 | |
| 	  has been fixed.
 | |
| 10-10-08  A bug in which killing the last command in a function defined
 | |
| 	  with function name, terminated the calling script has been fixed. 
 | |
| 10-10-08  A bug which could cause a core dump if IFS is unset inside a function
 | |
| 	  has been fixed.
 | |
| 10-10-07 +To reduce unwanted side effects, invoking typeset without the export
 | |
| 	  option and without an assignment now causes the variables to be unset
 | |
| 	  if the variable is inherited from the environment.
 | |
| 10-10-06  The closing brace for ${ command } is now a token no matter what
 | |
| 	  character follows it.
 | |
| 10-10-04  The change for $'...' expansion on 10-08-09 did not expand parameters
 | |
| 	  contained in the error message and this has been fixed.
 | |
| 10-10-04  A bug in which a declaration of indexed array (-a_ in a type
 | |
| 	  definition would be displayed as a compound indexed array (-C -a)
 | |
| 	  has been fixed.
 | |
| 10-09-30  The C99 math function ldexp has been added.
 | |
| 10-09-30  A bug with two dimensional arrays with expansion of the form
 | |
| 	  ${ref[0..5]} where ref is a nameref to array[i] has been fixed.
 | |
| 10-09-29  A bug in which an eval with redirections invoked from a dot script
 | |
| 	  would not restore the file has been fixed.
 | |
| 10-09-29  A bug in which loading a function from FPATH could leave a file
 | |
| 	  descriptor open has been fixed.
 | |
| 10-09-28 +A new compile option SHOPT_FIXEDARRAY has been added and is being
 | |
| 	  evaluation.  It allows fixed sized indexed arrays be to defined
 | |
| 	  using "typeset array[dim1][dim2]...[dimn]".  Fixed sized arrays
 | |
| 	  are used the same way indexed arrays are.  Currently, only fixed
 | |
| 	  arrays of fixed objects (float, int, and justifies objects) are
 | |
| 	  supported.
 | |
| 10-09-22  A bug which could cause an exception when a function with static
 | |
| 	  variables was redefined has been fixed.
 | |
| 10-09-21  A bug in the processing of (command&) which created a job in the
 | |
| 	  parent process has been fixed.
 | |
| 10-09-21  A for loop optimization bug with arithmetic expression evaluation
 | |
| 	  has been fixed.
 | |
| 10-09-21  A bug in which a recursive function containing a pipeline could
 | |
| 	  lead to an exception fixed after 8 levels of recursion has been
 | |
| 	  fixed.
 | |
| 10-09-18  A bug in which the count of elements in an array was wrong leading
 | |
| 	  to an exception has been fixed.
 | |
| 10-09-13  A bug which occurred when both xtrace and showme options where
 | |
| 	  specified in which the xtrace option disabled showme has been fixed.
 | |
| 10-09-13  A bug in which creating a reference to an array variable with any
 | |
| 	  elements could cause subsequent array elements to be treated as
 | |
| 	  compound variables has been fixed.
 | |
| 10-09-09  A bug which caused ((c.ar[x][y])) to be treated as a syntax error
 | |
| 	  has been fixed.
 | |
| 10-09-08  A bug in the processing of references to multidimensional arrays
 | |
| 	  in arithmetic expressions has been fixed.
 | |
| 10-09-08  A bug in the handling of multi-dimensional arrays which caused
 | |
| 	  the number of elements in each dimension to be incorrect has
 | |
| 	  been fixed.
 | |
| 10-09-07  The change for messages on 10-08-09 did not handle message in
 | |
| 	  assignments and this has been fixed.
 | |
| 10-09-07  A bug in the indentation of compound variables in arrays when
 | |
| 	  output with print -v has been fixed.
 | |
| 10-09-07  A rare bug with indexed arrays when assigned a null string that could
 | |
| 	  cause a core dump has been fixed.
 | |
| 10-09-03  A number of changes were made for jobs pools.
 | |
| 10-08-31  typeset -p was modified to output name references after other
 | |
| 	  variables so that the output could be used as input.
 | |
| 10-08-31  A bug with typeset -p in which variables with attributes but
 | |
| 	  without attributes were not displayed correctly has been fixed.
 | |
| 10-08-27 +When running a subshell, the current pool is unset.
 | |
| 10-08-27  A bug in which jobs started from within for or while lists in
 | |
| 	  interactive shells could generate completion messages has been fixed.
 | |
| 10-08-25  Fixed a couple of bugs related to job pools. 
 | |
| 10-08-24 +[[ -e /dev/xxx/ ]] can be used to check whether special files of
 | |
| 	  those names are handled by the shell.
 | |
| 10-08-24  A bug in the running of a compiled dot script in which only the
 | |
| 	  first command was executed has been fixed.
 | |
| 10-08-23  A bug which sometimes caused a core dump with a configure script
 | |
| 	  has been fixed.
 | |
| 10-08-20  A bug in command substitution which caused a configure script to
 | |
| 	  hang has been fixed.
 | |
| 10-08-19  Eliminated unnecessary ; from output of compound variable with
 | |
| 	  typeset -p.
 | |
| 10-08-17  Fixed a bug in command substitution in which under certain
 | |
| 	  circumstances a file whose size is a power of 2 plus one, and the last
 | |
| 	  character was not a new-line, could cause memory corruption.
 | |
| 10-08-13 +Added static discipline functions to type similar to C++ static
 | |
| 	  class functions.
 | |
| 10-08-11  A bug in time when applied to a pipeline in which the shell did
 | |
| 	  not wait for all elements of the pipeline to complete has been fixed.
 | |
| 10-08-11  Restored sh_fmtq() quoting to not quote NAME= in NAME=VALUE.
 | |
| 10-08-09 +Modified the expansion of message strings, $"...", so that they
 | |
| 	  are expanded each time they are referenced rather than expanding
 | |
| 	  them when the script is compiled or read in.
 | |
| 10-08-06 +The process id for jobs in job pools is now of the form poolname.n
 | |
| 	  where n is the jobid in that pool.  Commands that accept job names
 | |
| 	  or numbers now understand names in this format.
 | |
| 10-08-05  A bug in which an assignment from within an arithmetic expression
 | |
| 	  inside a function would create a local variable has been fixed.
 | |
| 10-08-04  A bug in the expanding of variables whose names contain multibyte
 | |
| 	  characters has been fixed.
 | |
| 10-08-04  A bug which caused an exception when processing scripts compiled
 | |
| 	  with shcomp -n has been fixed.
 | |
| 10-08-02  Tests using very small buffer sizes uncovered a number of bug most
 | |
| 	  connected with here documents which have been fixed.
 | |
| 10-07-27  The format modifier , used for digit grouping with d and f formats
 | |
| 	  has been documented.
 | |
| 10-07-26  cd '' now produces and error rather than changing to the current
 | |
| 	  directory.
 | |
| 10-07-26  A bug in multi-byte locales which the last character of a
 | |
| 	  multi-byte character is a  or pattern character which could occur
 | |
| 	  when the character was the last character of a command substitution
 | |
| 	  has been fixed.
 | |
| 10-07-23  Another bug in the processing of ${var:offset;len} in multi-byte
 | |
| 	  locales when len is larger than the number of characters has been
 | |
| 	  fixed.
 | |
| 10-07-23  Many coding changes have been made to eliminate most of the uses
 | |
| 	  of global variables in the shell code.
 | |
| 10-07-22  Fixed a bug in which discipline functions were not being invoked
 | |
| 	  when it was invoked as ref.discipline where ref was a name reference
 | |
| 	  to an array instance.
 | |
| 10-07-22  Fixed a bug in which discipline functions were not being invoked it
 | |
| 	  was invoked on a two dimensional array, i.e., arr[5][9].discipline.
 | |
| 10-07-19  Fixed a buffering problem which occurred when running a script with
 | |
| 	  ssh and the parent ssh process is killed.
 | |
| 10-07-14  Modified the parser to treat ((...)) inside [[...]] as ( (...) ) to
 | |
| 	  that it is a nested (...).
 | |
| 10-07-09  A bug in the handling of process substitution inside command
 | |
| 	  substitution as part of a pipeline has been fixed.
 | |
| 10-07-07  A bug in the output for compound variables containing
 | |
| 	  multi-dimensional arrays has been fixed.
 | |
| 10-07-06  ksh now recovers from changes made by bash to the history file without
 | |
| 	  losing history commands.
 | |
| 10-06-25  A bug in which a large here document containing command substitutions
 | |
| 	  of a dynamically loaded function that contained a here document
 | |
| 	  could get truncated has been fixed.
 | |
| 10-06-24  If after executing a script found in FPATH, if a function, builtin,
 | |
| 	  or type name corresponding to that script is not defined, the shell
 | |
| 	  now outputs an error message and returns value 126.
 | |
| 10-06-23  Floating point functions that happened to return integer values
 | |
| 	  were being treated as if the function returned integers so that
 | |
| 	  integer division could be used instead of floating point division.
 | |
| 10-06-22  Fixed a bug in earlier ksh93u in which an arithmetic assignment to a
 | |
| 	  variable in the global scope would instead create a local variable if
 | |
| 	  the variable had an attribute but did not have a value.
 | |
| 10-06-18  Modified trap handling so that if the same signal is received when
 | |
| 	  executing the handler, it is deferred until the handler completes.
 | |
| 10-06-16  Fixed a bug in which ulimit -v was setting the the cpu limit
 | |
| 	  on Linux.
 | |
| 10-06-14 +The command 'typeset -T' now generates the list of type definitions
 | |
| 	  in a format that can be used as input to the shell.
 | |
| 10-06-09  Put in patch from Solaris for output quoting with %q.
 | |
| 10-06-09 +Made changes to the NAMESPACE compile option so that it now seems
 | |
| 	  to work.  With this option, namespace <name> { command;} will
 | |
| 	  run command in the namespace .name so that all variables and
 | |
| 	  functions created by command are accessible outside the name
 | |
| 	  space via .name.var and .name.fun.  Variables and functions that
 | |
| 	  are not in the namespace are not modified when running command.
 | |
| 10-06-07  Change most internal interfaces to take Sh_t* argument.
 | |
| 10-06-03 +Types can be loaded on first reference by putting definitions in
 | |
| 	  PFPATH.
 | |
| 10-06-03 +The shell is now able to parse commands which use type statements
 | |
| 	  before the typeset -T command to define the type executes.
 | |
| 10-06-03  A bug in the quoting for name reference declarations which did
 | |
| 	  not properly handle [ and ] in subscripts for associative arrays.
 | |
| 10-06-02  A bug in which a discipline function defined by a type instance to
 | |
| 	  override the default was not being registered has been fixed.
 | |
| 10-06-02  A bug in which read -C of an associative array of compound variables
 | |
| 	  was not working has been fixed.
 | |
| 10-06-02  A bug in which the error message for an unset parameter with set -u
 | |
| 	  did not contain the name of the variable has been fixed.
 | |
| 10-06-01  A bug in typeset -m for moving an indexed array instance to a variable
 | |
| 	  has been fixed.
 | |
| 10-06-01  A bug in which caused memory to be freed twice when unset was called
 | |
| 	  for an indexed array that had get or set disciplines has been fixed.
 | |
| 10-06-01  A bug in which the %b format of printf was not preserving NUL bytes
 | |
| 	  with   has been fixed.
 | |
| 10-06-01  A bug in the handling of name references to array variables in
 | |
| 	  arithmetic expressions has been fixed.
 | |
| 10-05-28  Fixed bugs in changing attributes for two dimensional arrays.
 | |
| 10-05-28  Eliminated a few unreferenced variables and a reference to
 | |
| 	  uninitialized memory.
 | |
| 10-05-27  Rewrote the subshell code to avoid using pipes an many cases.
 | |
| 10-05-24  Fixed a bug which cause an exception when both -l and -s were
 | |
| 	  specified with typeset -i.
 | |
| 10-05-21  Inputting of three dimensional indexed arrays with ( ( (...)...)...) 
 | |
|           was not working and has been fixed.
 | |
| 10-05-21  A bug in which adding the attributes -Ai to a variable via a name
 | |
| 	  reference could cause the value to display incorrectly has been fixed.
 | |
| 10-05-21  A bug in which using $var inside ((...)) did not work when var was
 | |
| 	  a hex float variable.
 | |
| 10-05-20 +The compile option SHOPT_EDPREDICT has been added.  When this option
 | |
| 	  is on, as you type a line beginning with a # the following characters
 | |
| 	  are treated as a shell pattern and cause matching lines from the
 | |
| 	  history file to be displayed as a numbered list as you type.
 | |
| 	  You can scroll up and down this list or you can use <ESC>nTAB
 | |
| 	  to make this the current line (n defaults to 1 of omitted) or
 | |
| 	  <ESC>n<cr> to execute.
 | |
| 10-05-20  A bug which caused an exception when multiple levels of composite
 | |
| 	  functions in arithmetic expressions has been fixed.
 | |
| 10-05-19  <<< with an empty string no longer gives an error.
 | |
| 10-05-19  A bug in arithmetic evaluation when a name reference to an array
 | |
| 	  instance was used has been fixed. 
 | |
| 10-05-14  A bug in which the shell treats a valid index array assignment,
 | |
| 	  typeset -a x=(foo (x=3;y=4) bar) as a syntax error has been fixed.
 | |
| 10-05-13  A bug in creating name references to associative array variable
 | |
| 	  after a lookup of one of its elements has been fixed.
 | |
| 10-05-12  Two bugs in the handling of function static type variables in
 | |
| 	  subshells have been fixed.  One could cause an exception and the
 | |
| 	  other would leave side effects in the parent shell.
 | |
| 10-05-10  A bug in which static variables in functions were not being saved and
 | |
| 	  restored properly when running subshells has been fixed.
 | |
| 10-05-05  A bug in which print -v did not work correctly when an operand was an
 | |
| 	  indexed array element referring to a compound variable has been fixed.
 | |
| 10-05-05  A change to improve performance by special casing empty string
 | |
| 	  assignments to avoid repeated malloc() and free().
 | |
| 10-05-05  A bug in which creating a name reference to a non-existent associative
 | |
| 	  array element would create the array element has been fixed.
 | |
| 10-05-04  A bug in which name references to static variables in the static
 | |
| 	  scope were not found has been fixed.
 | |
| 10-04-30  Do not use socketpair() on systems that implement ioctl(I_PEEK)
 | |
| 	  on pipes.
 | |
| 10-04-29 +When the current job pool is set, coprocess are run in a job pool.
 | |
| 10-04-28  A type defined with a member foo that is an associative array without
 | |
| 	  elements followed by an expansion ${bar.foo[a]} and an assignment
 | |
| 	  bar.foo[a]=b, no longer indicates that ${#bar.foo[@]} has 0 members.
 | |
| 10-04-27  Another bug in which a nested command substitution could hang if it
 | |
| 	  generated too much data has been fixed.
 | |
| 10-04-26  A type defined with a member that is an indexed array without elements
 | |
| 	  would behave as if the 0th element of each instance was defined after
 | |
| 	  a non-zero element was specified and this has been fixed.
 | |
| 10-04-26  A bug in which types defined in a subshell were not undefined when
 | |
| 	  the subshell completed has been fixed.
 | |
| 10-04-23  For file completion in command line editing, file names starting
 | |
| 	  with # are now escaped so that they are not treated as comments.
 | |
| 10-04-23  A bug in which ${t.var:=value}, where t is an instance of a type
 | |
| 	  variable, could assign value to the type variable rather than to
 | |
| 	  the type instance has been fixed.
 | |
| 10-04-23 +Added &| which can be used in place of | to have portions of a
 | |
| 	  pipeline executed in the pool.
 | |
| 10-04-22 +The .sh.pool variable was added for use with job pools.
 | |
| 10-04-22  A bug in which a nested command substitution could hang if it
 | |
| 	  generated too much data has been fixed.
 | |
| 10-04-20  A bug which corrupted one byte of memory when read was called with
 | |
| 	  reads that did not use a delimiter has been fixed.
 | |
| 10-04-19  The display of a compound variable with an embedded array with
 | |
| 	  attributes was sometimes not working correctly and has been fixed.
 | |
| 10-04-16  A bug in which attributes were not be propagated to elements in
 | |
| 	  an associative array has been fixed.
 | |
| 10-04-15  A bug which caused scripts containing user defined math functions to
 | |
| 	  fail to compile with shcomp has been fixed.
 | |
| 10-04-15 +Job pools have been added with the SHOPT_COSHELL compilation option.
 | |
| 	  A job pool allows a collection of background jobs to run either locally 
 | |
| 	  or remotely and to be managed as a unit.  The command '& name ...'
 | |
| 	  creates or uses a named job pool for subsequent background jobs.
 | |
| 	  kill, wait, and jobs allow the pool name as operands.
 | |
| 10-04-14  A bug in which a coprocess connection could terminate prematurely
 | |
| 	  when running a nested subshell has been fixed.
 | |
| 10-04-12 +Enumeration constants can be used in arithmetic expressions with the
 | |
| 	  ==, != and = operators when the left hand side is an enum variable
 | |
| 	  and the right hand side is an enumeration constant.
 | |
| 10-04-07  A bug in which setting the trap on CHLD to ignore could cause
 | |
| 	  an incorrect exit status has been fixed.
 | |
| 10-04-06  A bug in which LINENO was not incremented for a here-document when
 | |
| 	  the here-document word was followed by a comment has been fixed.
 | |
| 10-04-06  The optimization that execs the last process of a script rather
 | |
| 	  than creating a new process has been removed when a trap on
 | |
| 	  interrupt has been set.
 | |
| 10-04-06  Unsetting the 'C', 'A' or 'a' typeset attribute now produces an
 | |
| 	  error message rather than generating an exception.
 | |
| 10-04-06  A bug in which .sh.name contained the subscript and .sh.subscript
 | |
| 	  was empty in some cases with discipline functions on array instances
 | |
| 	  has been fixed.
 | |
| 10-04-05  A bug in the edit modes where preceding the interrupt character with
 | |
| 	  the literal next character did not work has been fixed.
 | |
| 10-04-05  A bug in the creation of type instances of arrays which could cause
 | |
| 	  an exception has been fixed.
 | |
| 10-03-30  A bug in the display of a compound variable containing an indexed
 | |
| 	  array of compound variables has been fixed.
 | |
| 10-03-24 +Arithmetic functions can be defined using the shell function syntax,
 | |
| 	  'function .sh.math.name x y z{...}' , where name is the function name
 | |
| 	  invoked within ((...)) and x y z are long double arguments passed
 | |
| 	  as name references.  y and z are used for functions with two and
 | |
| 	  three arguments respectively.  The value of the function is the value
 | |
| 	  of the long double .sh.value variable when the function returns.
 | |
| 10-03-24  A bug in which integer division was mistakenly used when the
 | |
| 	  numerator was a binary operator with the first operand floating
 | |
| 	  point and the second integer, e.g. (.1**3)/3, has been fixed.
 | |
| 10-03-24  The >; file operator was modified so that the temporary file is
 | |
| 	  created in the same physical directory as file.
 | |
| 10-03-23  A warning message was added to sh -n when $var was used inside
 | |
| 	  ((...)) instead of var.
 | |
| 10-03-19  fmin was added to the list of math function on the man page.
 | |
| 10-03-19  Fixed the return value for unalias when the alias did not
 | |
| 	  exist.
 | |
| 10-03-19  A bug in which the SHLVL variable exported the value it had on
 | |
| 	  input rather than the incremented value has been fixed.
 | |
| 10-03-19  A bug which causes whence -q to go into an infinite loop has been
 | |
| 	  fixed.
 | |
| 10-03-19  Removed space between Stopped message and (SIGTTIN) and (SIGTTOUT).
 | |
| 10-03-17  Modified profile shell execution so that when builtins that
 | |
| 	  correspond to executable have extended attributes, they are
 | |
| 	  executed by pfksh instead of being treated as built-ins.
 | |
| 10-03-16  A bug in whence -a which produced duplicate lines of output has
 | |
| 	  been fixed.
 | |
| 10-03-16  A bug in the handling of process groups in monitor mode for
 | |
| 	  command substitutions has been fixed.
 | |
| 10-03-15  Fixed a bug in which read -u[fd] could cause the shell to core
 | |
| 	  dump when fd was greater than open_max.
 | |
| 10-03-15 +Modified the shell I/O so that the shell will not fail if the
 | |
| 	  ulimit for open_max is increased as part of the script.
 | |
| 10-03-12  A bug in which a here-document containing command substitutions
 | |
| 	  that contained here-documents did not process correctly has been
 | |
| 	  fixed.
 | |
| 10-03-12  A bug in which the terminal is not restored to canonical mode
 | |
| 	  after read times out when in a multibyte locale with no edit mode
 | |
| 	  enabled has been fixed.
 | |
| 
 | |
| 10-03-05  --- Release ksh93t+  ---
 | |
| 10-03-05  A variable unset memory leak has been fixed and tests/leaks.sh
 | |
| 	  has been added to verify the fix.
 | |
| 10-03-04  Documentation, comment, and diagnostic spelling typos corrected.
 | |
| 10-02-14  Fix sh_getenv() initialization to cooperate with the 3d fs.
 | |
| 10-02-12  A bug in which the get discipline function was not invoked for
 | |
| 	  associative array subscripts for unset array elements has been fixed.
 | |
| 10-02-12  A bug which could occur if the last line of a script was an eval
 | |
| 	  that executed multiple commands has been fixed.
 | |
| 10-02-02  A buffer overflow in read and another in binary type base64
 | |
| 	  encoding were fixed.
 | |
| 10-01-20  A bug in the evaluation of arithmetic expression in which the
 | |
| 	  subscript was evaluated twice for $((foo[x++]++)) has been fixed.
 | |
| 10-01-19  A workaround for a double-free of a trap in both a subshell and its
 | |
| 	  parent has been added.
 | |
| 10-01-18  A bug in type handling of typeset -H has been fixed.
 | |
| 10-01-15  The "adding empty subscript" warning now only emitted with -x set.
 | |
| 10-01-01  A bug in the parser in which '$((case i in i):;esac);:))' was not
 | |
| 	  parsed correctly was fixed.
 | |
| 10-01-01  A bug in the parser in which '$(( 2 , 3.6 ))' dumped core for locales
 | |
| 	  with radix char , and thousands separator . has been fixed.
 | |
| 09-12-28  A bug in the handling of SIGCLD on systems that generated SIGCLD
 | |
| 	  while blocked waiting for process to complete has been fixed.
 | |
| 09-12-24  ast setlocale() reworked to differentiate env var changes from user
 | |
| 	  override.
 | |
| 09-12-18  A bug with the SHOPT_BGX option set which disabled traps for signals
 | |
| 	  < SIGCHLD when a trap for a signal > SIGCHLD was set has been fixed.
 | |
| 09-12-18  A bug where [[ -v var ]] was incorrect for some variables (including
 | |
| 	  LC_* vars) has been fixed.
 | |
| 09-12-15  A bug that produced a syntax error when a multibyte character
 | |
| 	  straddled a buffer boundary has been fixed.
 | |
| 09-12-11  A bug where the subscript of an unset variable was not evaluated has
 | |
| 	  been fixed.
 | |
| 09-12-09  A bug where shcomp dumped core on certain syntax errors has been fixed.
 | |
| 09-12-07  A bug where a parent shell environment var reset in a subshell removed
 | |
| 	  the value in subsequent children of the parent shell has been fixed.
 | |
| 09-12-04  A bug in which in some cases a trap in a function executed in
 | |
| 	  a subshell could trigger twice has been fixed.
 | |
| 09-12-03  A bug in which SHLVL exported with some attributes could cause
 | |
| 	  the shell to abort at startup has been fixed.
 | |
| 09-12-02  A bug with pipefail in which the shell could hang waiting for the
 | |
| 	  writer to complete before the last reader command has been fixed.
 | |
| 09-11-30  A bug in which a trap could be inherited by the first element of
 | |
| 	  a pipeline when the command had more than 63 arguments that did
 | |
| 	  not contain any macro expansions has been fixed.
 | |
| 09-11-19  When read from a terminal was called from with a while or for loop,
 | |
| 	  and an edit mode was on, a backspace or erase no longer will
 | |
| 	  overwrite the prompt.
 | |
| 09-11-17 +Change .paths parse to handle BUILTIN_LIB=foo BUILTIN_LIB=foo-1.2.
 | |
| 09-11-17  Inside a function, typeset foo.bar will bind foo to global variable
 | |
| 	  foo if local variable foo does not exist, instead of creating a 
 | |
| 	  local variable.
 | |
| 09-11-17  "read -n1" from the terminal has been fixed to read exactly one character.
 | |
| 09-11-11  Job control now works for subshell commands, (...).
 | |
| 09-11-11  If set -e is on for an interactive shell errors in special builtins
 | |
| 	  now cause the shell to exit.
 | |
| 09-11-11  A bug in which an interrupt handler processed during the read builtin
 | |
| 	  when IFS did not contain a new line has been fixed.
 | |
| 09-11-09  A bug in which a variable that has been unset in a subshell and then
 | |
| 	  exported from that subshell does not show up in the environment
 | |
| 	  has been fixed.
 | |
| 09-11-02  ``,2'' is now a valid numeric constant for locales with
 | |
| 	  decimal_point=','.
 | |
| 09-11-02  A bug where "return" in .profile did not restore the shell state
 | |
| 	  has been fixed.
 | |
| 09-10-31  A bug that corrupted saved exit status when pids wrapped around has
 | |
| 	  been fixed.
 | |
| 09-10-26  A bug in { LANG LC_ALL LC_category } ordering has been fixed in -last.
 | |
| 09-10-16  A bug where notification to libast that the environment has changed
 | |
|           has been fixed.
 | |
| 09-10-12  A bug in which a function loaded in a subshell could leave side
 | |
| 	  effects in the parent shell has been fixed.
 | |
| 09-10-12  A bug in converting a printf %d operand to a number when the operand
 | |
| 	  contains multiple subscripts for the same variable has been fixed.
 | |
| 09-10-09  A bug in the handling of the escape character  in directory prefixes
 | |
| 	  in command completion has been fixed.
 | |
| 09-10-09  $PATH processing has been changed to delay dir stat() and .paths
 | |
| 	  lookup until the directory is needed in the path search.
 | |
| 09-09-28  Call the ast setlocale() intercept on unset too.
 | |
| 09-09-24  A bug in which LANG=foo; LC_ALL=foo; unset LC_ALL; did not revert
 | |
| 	  LC_CTYPE etc. to the LANG value has been fixed.
 | |
| 09-09-17  A bug in which unsetting SVLVL could cause a script invoked by
 | |
| 	  name without #! to core dump has been fixed.
 | |
| 09-09-16  A bug in which a pipeline in a here-document could hang when the
 | |
| 	  pipefail option was on has been fixed. 
 | |
| 09-09-09  A bug in the processing of line joining in here documents which
 | |
| 	  occurred when a buffer began with <escape><new-line> has been fixed.
 | |
| 09-09-09 +A leading ; with commands in a brace group or parenthesis group
 | |
| 	  no longer causes an error.  It now is used for the "showme" option.
 | |
| 09-09-09  A bug in which a subshell containing a background process could
 | |
| 	  block until the background process completed has been fixed.
 | |
| 09-09-04  A bug in handing ${var[sub]}, where var is a nameref has been fixed.
 | |
| 09-09-03  A bug which caused an index array to have the wrong number of elements
 | |
| 	  when it was converted from a compound variable by adding an another
 | |
| 	  element has been fixed.
 | |
| 09-09-03  Specifying export for a compound variable now generates an error.
 | |
| 09-09-02  $"..." localizations strings are no longer recognized inside `...`.
 | |
| 09-09-01  A bug in the for loop optimizer in the handling of type static
 | |
| 	  variables has been fixed.
 | |
| 09-09-01  An error message is not displayed when * and @ are used as subscripts.
 | |
| 09-09-01  Several bugs in the processing for types that included an associative
 | |
| 	  array of another type has been fixed.
 | |
| 09-09-01  A bug in the tracing of [[ a < b ]] and [[ a > b ]] has been fixed.
 | |
| 09-08-26  The .sh.file variable was not being set for a script that was run
 | |
| 	  by name and didn't start with #! and this has been fixed.
 | |
| 09-08-25  A bug in which a function called to deeply from command substitution
 | |
| 	  did not display an error message has been fixed.
 | |
| 09-08-24 +When processing profiles, ksh93 now violates the POSIX standard and
 | |
| 	  treats &> as a redirection operator similar to bash.
 | |
| 09-08-23  A bug in the handling of the trap on SIGPIPE that could lead to a
 | |
| 	  memory fault has been fixed.
 | |
| 09-08-21  A bug in the handling of the comma operator in arithmetic expressions
 | |
| 	  that could cause a core dump on some systems has been fixed.
 | |
| 09-08-20  A bug in which a compound variable containing an array of a type
 | |
| 	  that doesn't have any elements now expands correctly.
 | |
| 09-08-19  A bug which disabled function tracing inside a function after
 | |
| 	  a call to another function has been fixed.
 | |
| 09-08-19  A bug in which initializing a compound variable instance to another
 | |
| 	  compound variable by name has been fixed.
 | |
| 09-08-18  A bug in which compound variable instances could be lost after
 | |
| 	  an instance that invoked a type method discipline has been fixed.
 | |
| 09-08-18  A bug in which a discipline function for a type applied to an
 | |
| 	  array instance when invoked in a function ignored the subscript
 | |
| 	  has been fixed.
 | |
| 09-08-18  A scoping error with variables in arithmetic expression with
 | |
| 	  type variables when reference with a name reference has been fixed.
 | |
| 09-08-10  Several memory leaks were fixed primarily related to subshells.
 | |
| 09-08-06  A bug in which setting the trap on CHLD to ignore could cause
 | |
| 	  a script to hang has been fixed. 
 | |
| 09-07-08  A bug in the processing of name reference assignments when it
 | |
| 	  contained pattern expansions with quoting has been fixed.
 | |
| 09-06-22 +The default width for typeset -X has been changed so that there
 | |
| 	  should be no loss of precision when converting to a string.
 | |
| 09-06-19  A bug in the printing of array elements for binary variables with
 | |
| 	  printf %B has been fixed.
 | |
| 09-06-19  A bug which caused a core dump with trap DEBUG set with an array
 | |
| 	  assignment with no elements has been fixed.
 | |
| 09-06-19  A bug with read with typeset -b -Z<num> has been fixed.
 | |
| 09-06-19  Two bugs related to read -b for array variables has been fixed.
 | |
| 09-06-19  A bug with typeset for compound variables containing arrays of
 | |
| 	  compound variables has been fixed.
 | |
| 09-06-18  A bug in appending a compound variable to a an indexed array of
 | |
| 	  compound variables has been fixed.
 | |
| 09-06-18  A bug which occurs when appending a compound variable to an indexed
 | |
| 	  array element has been fixed.
 | |
| 09-06-18  Setting VISUAL to a value other than one ending in vi or emacs will
 | |
| 	  no longer unset the edit mode.
 | |
| 09-06-17  A bug in typeset -m when moving a local compound variable to a
 | |
| 	  global compound variable via a name reference has been fixed.
 | |
| 09-06-17  A bug in appending to nodes of an array of compound variables when
 | |
| 	  addressing them via nameref has been fixed.
 | |
| 09-06-17  A bug in typeset -p var, when var is an array of compound variables
 | |
| 	  in which the output only contained on array element has been fixed.
 | |
| 09-06-17  The prefix expansion ${!y.@} now works when y is a name
 | |
| 	  reference to an element of an array.
 | |
| 09-06-16  Traps on signals that are ignored when the shell is invoked
 | |
| 	  no longer display.  Previously they were ignored as required but
 | |
| 	  would be listed with trap -p.
 | |
| 09-06-12  A bug in vi edit mode in which hitting the up arrow key at the
 | |
| 	  end of a line longer than 40 characters which caused a core dump
 | |
| 	  has been fixed. 
 | |
| 09-06-11  A bug in which "eval non-builtin &" would create two processes,
 | |
| 	  one for the & and another for non-builtin has been fixed.
 | |
| 09-06-08  When var is an identifier and is unset, ${var} no longer tries to
 | |
| 	  run command substitution on the command var.
 | |
| 09-06-08 +Process substitution arguments of the form <(command) can now be
 | |
| 	  used following the < redirection operator to redirect from command.
 | |
| 09-05-13  A bug in which redirections of the form 2>&1 1>&5 inside command
 | |
| 	  substitution could cause the command substitution to hang has been
 | |
| 	  fixed.
 | |
| 09-05-12  To conform with POSIX, the -u option only checks for unset variables
 | |
| 	  and subscript elements rather than checking for all parameters.
 | |
| 09-05-12  A bug which could cause a core dump when a variable whose name
 | |
| 	  begins with a . was referenced as part of a name reference inside
 | |
| 	  a function has been fixed.
 | |
| 09-05-01  A bug that caused a core dump when SIGWINCH was received and
 | |
| 	  both vi and emacs mode were off has been fixed.
 | |
| 09-04-22 +Default alias compound='typeset -C' added.
 | |
| 09-04-15  A bug that caused ${...;} to hang for large files has been fixed.
 | |
| 09-04-08  A change was made in the -n option which printed out an incorrect
 | |
| 	  warning with <>.
 | |
| 09-04-07  The emacs edit command M-_ and M_. and the vi command _ was fixed
 | |
| 	  to handle the case there there is no history file.
 | |
| 09-04-05  A bug in handling new-lines with read -n has been fixed.
 | |
| 09-04-05  The ENV variable defaults the the file named by $HOME/.kshrc rather
 | |
| 	  then to the string $HOME/.kshrc.
 | |
| 09-03-31  A bug in which a nested command substitution with redirections could
 | |
| 	  leave a file descriptor open has been fixed.
 | |
| 09-03-24 +ksh now only uses the value of the _ variable on startup if it can
 | |
| 	  verify that it was set by the invoking process rather than being
 | |
| 	  inherited by some other ancestor.
 | |
| 09-03-24 +When ksh is invoked without -p and ruid!=euid, and the shell is
 | |
| 	  compiled without SHOPT_P_UID or ruid<SHOPT_P_UID, the shell now
 | |
| 	  enables the -p option.  The previous version instead set the
 | |
| 	  euid to the ruid as it does for set +p.
 | |
| 09-03-24 +When SHOPT_P_UID is defined at compile time and the shell is started
 | |
| 	  without -p and ruid!=euid and ruid>=SHOPT_P_UID then euid is set
 | |
| 	  to ruid. A bug that did the wrong test (ruid<SHOPT_P_UID) was fixed.
 | |
| 09-03-17 +The sleep(1) builtin now accept and ISO 8601 PnYnMnDTnHnMnS
 | |
| 	  duration or date(1) compatible date/time operand.
 | |
| 09-03-10  If a variable that was left or right justified or zero-filled was
 | |
| 	  changed with a typeset statement that was left or right justified
 | |
| 	  or zero-filled, then the original justification no longer affects
 | |
| 	  the result.
 | |
| 09-03-10  A bug in the handling of traps when the last command in a script
 | |
| 	  is a subshell grouping command has been fixed.
 | |
| 09-03-03  A bug in which an expansion of the form ${!prefix@} could generate
 | |
| 	  an exception after the return from a function has been fixed.
 | |
| 09-02-02  A bug in restricted mode in which the value of ENV could be
 | |
| 	  changed from within a function has been fixed.
 | |
| 09-02-02  A bug in which an erroneous message indicating that a process
 | |
| 	  terminated with a coredump has been fixed.
 | |
| 09-02-02  The exit status when exit was called without an argument from
 | |
| 	  a signal handler was incorrect and has been fixed.
 | |
| 09-02-02  A bug in which a function autoloaded in a subshell could cause
 | |
| 	  a core dump when the subshell completed has been fixed.
 | |
| 09-02-02  A bug in which 2>&1 inside a command substitution wasn't working
 | |
| 	  correctly has been fixed.
 | |
| 09-02-02  A bug in the call stack of arithmetic function with 2 args
 | |
| 	  returning int has been fixed.
 | |
| 09-01-30  A bug in which 'eval print \$0' inside a function was giving the
 | |
| 	  wrong value for $0 has been fixed.
 | |
| 09-01-28  A bug in which a command substitution could return an exit status
 | |
| 	  of 127 when the pipefail option is enabled has been fixed.
 | |
| 09-01-26  ksh93 now generates an error message if you attempt to create
 | |
| 	  a global name reference to a local variable.
 | |
| 09-01-26 +The [[ -v var ]] operator was modified to test for array elements.
 | |
| 09-01-23 +The redirection operator <>; was added.  It is similar to <>
 | |
| 	  except that if the command it is applied to succeeds, the file
 | |
| 	  is truncated to the offset at the command completion.
 | |
| 09-01-23  The default file descriptor for <> was changed to 1.
 | |
| 09-01-20  A bug in which the exit status specified in an exit trap was
 | |
| 	  not used when a process terminated with a signal has been fixed.
 | |
| 09-01-19  A bug in which a signal whose default action is to terminate
 | |
| 	  a process could be ignored when the process is running a sub-shell
 | |
| 	  has been fixed.
 | |
| 09-01-19  A bug in which sending SIGWINCH to a process that reads from a pipe
 | |
| 	  could cause a memory fault has been fixed.
 | |
| 09-01-16 +The -R unary operator was added to [[...]] and test to check whether
 | |
| 	  a variable is a  name reference.
 | |
| 09-01-16 +The -v unary operator was added to [[...]] and test to check whether
 | |
| 	  a variable is set.
 | |
| 09-01-14  The unset built-in was modified to return 0 exit status when
 | |
| 	  unsetting a variable that was unset to conform with the POSIX
 | |
| 	  standard.
 | |
| 09-01-14  The unset built-in was modified to continue to unset variables
 | |
| 	  after encountering a variable that it could not unset to
 | |
| 	  conform to the POSIX standard.
 | |
| 09-01-14  The parameter expansion ${x+value} no longer expands the value of
 | |
| 	  the variable x when determining whether x is set or not.
 | |
| 09-01-13  A bug in which background jobs and pipelines that were not waited
 | |
| 	  for could, in rare instances, cause the shell to go into an infinite
 | |
| 	  loop or fail has been fixed.
 | |
| 09-01-06  A bug in indexed arrays of compound variables in which referencing
 | |
| 	  non-existent sub-variable in an arithmetic expression could cause
 | |
| 	  the sub-variable to be created has been fixed.
 | |
| 09-01-05  A bug in which the  character did not escape extended regular
 | |
| 	  expression pattern characters has been fixed.
 | |
| 08-12-24  A bug in which killing the last element of a pipe did not cause
 | |
| 	  a write to the pipe to generate a SIGPIPE has been fixed.
 | |
| 08-12-19  A bug which could cause command substitution to hang when the
 | |
| 	  last element of a pipeline in a command substitution was a built-in
 | |
| 	  and the output was more that PIPE_BUFF.
 | |
| 08-12-18  A bug which occurs when a here documented marker embedded in a
 | |
| 	  command substitution occurs on a buffer boundary has been fixed.
 | |
| 08-12-17  A bug in the output of typeset -p for variables that had attributes
 | |
| 	  but did not have a value has been fixed.
 | |
| 08-12-16  A bug in which a name reference to a name reference variable that
 | |
| 	  references an array element has been fixed.
 | |
| 08-12-16  A bug in which a variable given both the -A and -C attribute along
 | |
| 	  with an initial assignment didn't work correctly has been fixed.
 | |
| 08-12-10  The [[ -t fd ]] test was fixed to handle fd>9.
 | |
| 08-12-10  A bug where function stack misalignment could cause a bus error
 | |
| 	  has been fixed.
 | |
| 08-12-09  Command completion was changed to use  to quote special characters
 | |
| 	  instead of quoting the argument in single quotes.
 | |
| 08-12-07  A bug in typeset -m which occurred when the target node was an
 | |
| 	  associative array element has been fixed.
 | |
| 08-12-07  A timing bug on some systems (for example darwin), that could
 | |
| 	  cause the last process of a pipeline entered interactively to fail
 | |
| 	  with an "Exec format error" has been fixed.
 | |
| 08-12-04 +SHOPT_BGX enables background job extensions. Noted by "J" in
 | |
| 	  the version string when enabled. (1) JOBMAX=n limits the number
 | |
| 	  of concurrent & jobs to n; the n+1 & job will block until a
 | |
| 	  running background job completes. (2) SIGCHLD traps are queued
 | |
| 	  so that each completing background job gets its own trap; $! is
 | |
| 	  set to the job pid and $? is set to the job exit status at the
 | |
| 	  beginning of the trap. (3) sleep -s added to sleep until the time
 | |
| 	  expires or until a signal is delivered.
 | |
| 08-12-04  The sign of floating point zero is preserved across arithmetic
 | |
| 	  function calls.
 | |
| 08-12-04  A bug that caused print(1) to produce garbled stdout/stderr
 | |
| 	  output has been fixed.
 | |
| 08-12-04  A bug in which printf "%d "'<euro>'" did not output the
 | |
|           numerical value of the EURO symbol, 8354, has been fixed.
 | |
| 08-11-24 + /dev/fd* and /dev/std* redirections are first attempted with
 | |
| 	  open() to preserve seek semantics; failing that the corresponding
 | |
| 	  file descriptors are dup()'d.
 | |
| 08-11-20  A bug which could cause a core dump if a function compiled with
 | |
| 	  shcomp was found has been fixed.
 | |
| 08-11-20  A bug in which jobs were not cleared from the jobs table for
 | |
| 	  interactive shells when the pipefail option is on has been fixed.
 | |
| 08-11-11  A bug in which a field that was unset in a type definition and later
 | |
| 	  set for an instance could appear twice when displaying the variable
 | |
| 	  has been fixed.
 | |
| 08-11-11  A bug in which running a simple command & inside a function would
 | |
| 	  not return the correct process id has been fixed.
 | |
| 08-11-10  A bug in which the exit status of a command could be lost if the pid
 | |
| 	  was that of the most recent command substitution that had completed
 | |
| 	  has been fixed.
 | |
| 08-11-10  The maximum depth for subshells has been increased from 256 to 65536.
 | |
| 08-11-06  A bug which could cause a core dump when the _ reference variable was
 | |
|           used as an embedded type with a compound assignment has been fixed.
 | |
| 
 | |
| 08-10-31  --- Release ksh93t  ---
 | |
| 08-10-31  Variable scoping/initialization bugs that could dump core were fixed.
 | |
| 08-10-24  The lexer now accepts all RE characters for patterns prefixed
 | |
| 	  with a ksh ~(...) option expression.
 | |
| 08-10-24 +For ${var/pat/sub}   in sub expands to the text matched by pat.
 | |
| 08-10-18  A bug in array scoping that could dump core has been fixed.
 | |
| 08-10-10  read -n and -N fixed to count characters in multibyte locales.
 | |
| 08-10-10  A bug that mishandled _.array[] type references has been fixed.
 | |
| 08-10-09 +${.sh.version} now contains a concatenation of the following (after
 | |
| 	  'Version') denoting compile time features:
 | |
| 		A	SHOPT_AUDIT
 | |
| 		B	SHOPT_BASH
 | |
| 		L	SHOPT_ACCT
 | |
| 		M	SHOPT_MULTIBYTE
 | |
| 08-10-09  A bug that caused subshell command substitution with redirection
 | |
| 	  to hang has been fixed.
 | |
| 08-10-08  Output errors, other than to stderr, now result in a diagnostic.
 | |
| 08-10-08  ksh93 now supports types that contain arrays of other types as
 | |
| 	  members.  Earlier versions core dumped in this case.
 | |
| 08-10-05  A bug which caused the shell to emit a syntax error for an arithmetic
 | |
| 	  statement of the form (( var.name[sub] = value)) has been fixed.
 | |
| 08-10-01  A bug that caused subshell command substitution to hang has
 | |
| 	  been fixed.
 | |
| 08-09-29  When the -p export option of typeset is used with other options,
 | |
| 	  only those variables matching the specified options are displayed.
 | |
| 08-09-29  When the shell reads the environment and finds variables that are
 | |
| 	  not valid shell assignments, it now passes these on to subsequent
 | |
| 	  commands rather than deleting them.
 | |
| 08-09-29  A bug in the display of compound variables containing an indexed
 | |
| 	  array of compound variables has been fixed.
 | |
| 08-09-29  A bug in the display of compound variables containing an associative
 | |
| 	  array with a subscript containing a . in the name has been fixed.
 | |
| 08-09-26  A core dump in the subshell environment restore has been fixed.
 | |
| 08-09-24  $(...) has been fixed to properly set the exit status in $?.
 | |
| 08-09-23  $(<...) with IFS=$'n' has been fixed to retain all but the last
 | |
| 	  of multiple trailing newlines.
 | |
| 08-09-23  The -p option to typeset when used with other attributes, restricts
 | |
| 	  the output to variables with the specified attributes.
 | |
| 08-09-22  A bug that sometimes lost the exit status of a job has been fixed.
 | |
| 08-09-21  A bug that retained trailing command substitution newlines in
 | |
| 	  cases where the command caused the shell to fork has been fixed.
 | |
| 08-09-19  type, whence -v, and command -v were fixed to comply with POSIX
 | |
| 	  by writing 'not found' diagnostics to the standard error.
 | |
| 08-09-18  test and [...] were fixed to comply with POSIX in the case
 | |
| 	  of test '(' binop ')' where binop is a valid binary test operator.
 | |
| 08-09-16 +If a method discipline named create is specified when defining a
 | |
| 	  type, this function will be called when an instance is created.
 | |
| 08-09-15 +The variable _ is now set as a reference to the compound variable
 | |
| 	  when defining a compound variable or a type.
 | |
| 08-09-10  The shell now prints an error message when the type name specified
 | |
| 	  for an indexed array subscript is not an enumeration type.
 | |
| 08-09-10  A bug in which a subshell that spawned a background process could
 | |
| 	  loose output that was produced after the foreground completed
 | |
| 	  has been fixed.
 | |
| 08-09-10  A timing bug on some systems that could cause coprocesses started by a
 | |
| 	  subshell to not clean up and prevent other coprocesses has been fixed.
 | |
| 08-09-09  The typeset -m option is now able to rename array elements from
 | |
| 	  the same array.
 | |
| 08-09-09  The exit status of 2 from the DEBUG trap causes the next command
 | |
| 	  to be skipped.  An exit value of 255 from a DEBUG trap called from
 | |
| 	  a function causes the function to return. 
 | |
| 08-09-08  A bug in which a coprocess created in a subshell that did not
 | |
| 	  complete when the subshell terminated could prevent a coprocess
 | |
| 	  from being created in the parent shell has been fixed.
 | |
| 08-09-05  An assignment of the form name1=name2 where name1 and name2
 | |
| 	  are both compound variables causes name1 to get a copy of name2.
 | |
| 	  name1+=name2 causes name2 sub-variables to be appended to name1.
 | |
| 08-09-05  A bug in which unsetting a compound variable did not unset all
 | |
| 	  the sub-variables has been fixed.
 | |
| 08-09-01  A bug in the subshell cleanup code that could cause SIGSEGV has
 | |
| 	  been fixed.
 | |
| 06-08-26 +The SHLVL variable which is an environment variable used by bash
 | |
|           and zsh that gets incremented when the shell starts.
 | |
| 08-08-25 +For an indexed array, a negative subscript now refers to offsets
 | |
| 	  from the end so that -1 refers to the last element.
 | |
| 08-08-24  An alignment error for shorts on 64 bit architectures has been fixed.
 | |
| 08-08-22  If oldvar is a compound variable, typeset -C newvar=oldvar creates 
 | |
| 	  newvar as a copy of oldvar.
 | |
| 08-08-19 +The ALRM signal no longer cause the sleep builtin to terminate.
 | |
| 08-08-13  When used in an arithmetic expression, the .sh.version variable  
 | |
| 	  now produces a number that will be increasing for each release.
 | |
| 08-08-11  A bug in which type instantiation with a compound assignment in
 | |
| 	  a dot script in which the type is defined has been fixed. 
 | |
| 08-08-07 +The -m option has been added to typeset to move or rename a
 | |
| 	  variable.  Not documented yet.
 | |
| 08-08-06  A bug in read when used in a loop when a prompt was specified
 | |
| 	  when reading from a terminal has been fixed.
 | |
| 08-08-01  A bug with the pipefail option in which a nested pipeline could
 | |
| 	  cause an asynchronous command to block has been fixed.
 | |
| 08-08-01  A for loop optimizer bug that treats .sh.lineno as an invariant
 | |
| 	  has been fixed.
 | |
| 08-07-30  A bug in which expanding compound variable that had a get discipline
 | |
| 	  from with a here document could cause a syntax error has been fixed.
 | |
| 08-07-18  A bug in which a nameref caused a local variable to be created
 | |
| 	  rather than binding to an existing variable in the global scope
 | |
| 	  has been fixed.
 | |
| 08-07-17  A bug which occurred when a nameref was created from within a
 | |
| 	  function that was  part of a pipeline has been fixed.
 | |
| 08-07-14 +The compile option SHOPT_STATS was added. With this option the
 | |
| 	  compound variable .sh.stats keeps usage statistics that could help
 | |
| 	  with performance tuning.
 | |
| 08-07-10 +The output of set now always uses a single line for each variable.
 | |
| 	  For array variables, the complete set of values is now displayed.
 | |
| 08-07-09 +The typeset -C option can be used with arrays to indicate that
 | |
| 	  each element should default to a compound variable.
 | |
| 08-07-08 +The %B format now outputs compound variables and arrays.  The
 | |
| 	  alternate flag # can be used to cause output into a single line.
 | |
| 08-07-03  When the window change signal, WINCH, is received, the current
 | |
| 	  edit line is redrawn in place. 
 | |
| 08-07-01  A bug in the handling of shared variables when inside an embedded
 | |
| 	  type has been fixed.
 | |
| 08-06-29  A bug in multiline edit mode which occurred when the prompt length
 | |
| 	  was three characters or less has been fixed.
 | |
| 08-06-23  A bug in which the SIGCLD was not be triggered when background
 | |
| 	  jobs completed has been fixed.
 | |
| 08-06-23  _KSH_VERSION added as a name reference to .sh.version.
 | |
| 08-06-20  type now outputs 'special builtin' for special builtins.
 | |
| 08-06-19  A couple of bugs in multi-dimensional arrays have been fixed.
 | |
| 08-06-19  A bug in which a syntax error in a dot script could generated
 | |
| 	  a syntax error in the next subsequent command has been fixed.
 | |
| 08-06-17  Reduced the maximum function call depth to 2048 to avoid exceptions
 | |
| 	  on some architectures.
 | |
| 08-06-16  A bug in which printf "%B" could generate an exception when the
 | |
| 	  specified variable was not set has been fixed.
 | |
| 08-06-16 +When typeset -p is followed by variable names, it now displays
 | |
| 	  the attributes names and values for the specific names.
 | |
| 08-06-14  A bug that could effect the drawing of the screen from multiline
 | |
| 	  emacs or gmacs mode when walking up the history file has been fixed.
 | |
| 08-06-13  A bug in which a compound variable defined in a subshell could
 | |
| 	  have side effects into the parent shell has been fixed.
 | |
| 08-06-13  A number of bugs related to using .sh.level to set the stack from
 | |
| 	  for DEBUG traps have been fixed.
 | |
| 08-06-13 +The .sh.lineno variable has been added.  When .sh.level is changed
 | |
| 	  inside a DEBUG trap, the .sh.lineno contains the calling line number
 | |
| 	  for the specified stack frame.
 | |
| 08-06-13  The .sh.level variable has been documented and now works.
 | |
| 08-06-11 +The -C option has been added to read for reading compound command
 | |
| 	  definitions from a file.
 | |
| 08-06-11 +The . command is now permitted inside a compound command definition.
 | |
| 	  The dot script can contain declaration commands and dot commands.
 | |
| 08-06-09 +Add -C option to typeset so that typeset -C foo, is equivalent
 | |
| 	  to foo=().
 | |
| 08-06-09  Added -n warning message for typeset option orderings that are valid
 | |
| 	  with ksh88 but not valid with ksh93, for example Lx5.
 | |
| 08-06-09  A bug in which the return value for an assignment command containing
 | |
| 	  a command substitution with that failed was zero when the assignment
 | |
| 	  contained redirections has been fixed.
 | |
| 08-06-09  A bug in the quoting of $ inside a ERE pattern ~(E)(pattern)
 | |
| 	  has been fixed.
 | |
| 08-06-06  A bug when processing `` command substitution with the character
 | |
| 	  sequence \$' has been fixed.
 | |
| 08-06-02 +When defining a type, the typeset -r attribute causes this field
 | |
| 	  to be required to be specified for each instance of the type and
 | |
| 	  does not allow a default value.
 | |
| 08-06-02  Several bugs in which compound variables were modified by
 | |
| 	  subshells have been fixed.
 | |
| 08-05-22 +The ceil function has been added to the math functions.
 | |
| 08-05-21  A bug in which a name reference defined in a function and passed
 | |
| 	  as an argument to another function could cause an incorrect binding.
 | |
| 08-05-21  A bug in freeing compound variables that are local to functions
 | |
| 	  has been fixed.
 | |
| 08-05-19 +The array expansions ${array[sub1..sub2]} and ${!array[sub1..sub2]}
 | |
| 	  to expand to the value (or subscripts) for array between sub1 and
 | |
| 	  sub2 inclusive.  For associative arrays, the range is based on
 | |
| 	  location in the POSIX locale.  The .. must be explicit and cannot
 | |
| 	  result from an expansion.
 | |
| 08-05-15  The trap on SIGCLD is no longer triggered by the completion of
 | |
| 	  the foreground job as with ksh88.
 | |
| 08-05-14  A bug in the implementation of the editing feature added on 
 | |
| 	  07-09-19 in emacs mode has been fixed.
 | |
| 08-05-12  A bug in processing the test built-in with parenthesis has been
 | |
| 	  fixed.
 | |
| 08-05-12  The unset built-in now returns non-zero when deleting an array
 | |
| 	  subscript that is not set.
 | |
| 08-05-08 +Changing the value of HISTFILE or HISTSIZE will cause the old
 | |
| 	  history file to be close and reopened with the new name or size.
 | |
| 08-05-08  When FPATH is changed functions that were found via a path search
 | |
| 	  will be searched for again.
 | |
| 08-05-08  A parser bug in which reserved words and labels were recognized
 | |
| 	  inside compound indexed array assignment after a new-line has
 | |
| 	  been fixed.
 | |
| 08-05-07  A bug in getopts when handling numerical option arguments has
 | |
| 	  been fixed.
 | |
| 08-05-07 +The typeset -S option was added for variables outside type
 | |
| 	  definitions to provide a storage class similar to C static
 | |
| 	  inside a function defined with function name.  When outside
 | |
| 	  type definitions and outside a function, the -S option cause
 | |
| 	  the specified variable so be unset before the assignment and
 | |
| 	  before the remaining attributes are supplied.
 | |
| 08-05-07  A bug that affected the cursor movement in multiline mode when
 | |
| 	  a character was deleted from near the beginning of the any
 | |
| 	  line other than the first.
 | |
| 08-05-01  In multiline edit mode, the refresh operation will now clear
 | |
| 	  the remaining portion of the last line.
 | |
| 08-05-01  A bug in computing prompt widths for the edit modes for prompts
 | |
| 	  with multibyte characters has been fixed.
 | |
| 08-05-01  A bug in the multiline edit mode which could cause the current
 | |
| 	  line to be displayed incorrectly when moving backwards from third
 | |
| 	  or higher line to the previous line has been fixed.
 | |
| 08-05-01  A bug in which options set in functions declared with the function
 | |
| 	  name syntax were carried across into functions invoked by these
 | |
| 	  functions has been fixed.
 | |
| 08-04-30  A bug which could cause a coprocess to hang when the read end
 | |
| 	  is a builtin command has been fixed.
 | |
| 08-04-30 +The emacs and vi editors have been modified to handle window
 | |
| 	  change commands as soon as they happen rather than waiting for
 | |
| 	  the next command.
 | |
| 08-04-28  A bug in which ${!x} did not expand to x when x was unset has been
 | |
| 	  fixed.
 | |
| 08-04-27  A bug in which the assignment x=(typeset -a foo=([0]=abc)) created
 | |
| 	  x.foo as an associative array has been fixed.
 | |
| 08-04-25  A bug in which $# did not report correctly when there were more
 | |
| 	  than 32K positional parameters has been fixed.
 | |
| 08-04-04  Choose the name _ as the sub-variable that holds type or instance
 | |
| 	  specific data used by discipline functions.
 | |
| 08-03-27  A bug in which the terminal group was not given back to the parent
 | |
| 	  shell when the last part of a pipeline was handled by the parent shell
 | |
| 	  and the other parts of the pipeline complete has been fixed. 
 | |
| 	  The symptom was that the pipeline became uninterruptible.
 | |
| 08-03-25  A bug in restricted mode introduced in ksh93s that caused scripts
 | |
| 	  that did not use #! to executed in restricted mode has been fixed.
 | |
| 08-03-25  A bug in which the pipefail option did not work for a pipeline
 | |
| 	  within a pipeline has been fixed.
 | |
| 08-03-24  A bug in which OPTIND was not set correctly in subshells has
 | |
| 	  been fixed.
 | |
| 08-03-24  A bug which could cause a memory exception when a compound variable
 | |
| 	  containing an indexed array with only element 0 defined was expanded.
 | |
| 08-03-20  A bug in which ${!var[sub].*} was treated as an error has been fixed.
 | |
| 08-03-20  Associative array assignments of the form ([name]=value ...)
 | |
| 	  now allow ; as well as space tab and new line to separate elements.
 | |
| 08-03-18  A buffering problem in which standard error was sometimes
 | |
| 	  not flushed before sleep has been fixed.
 | |
| 08-03-17  A bug in which a signal sent to $$ while in a subshell would be
 | |
| 	  sent to the subshell rather than the parent has been fixed.
 | |
| 08-03-17 + A --default option added to set(1) to handle set +o POSIX semantics.
 | |
| 	  set --state added as a long name alias for set +o.
 | |
| 08-03-14  A bug in which using monitor mode from within a script could
 | |
| 	  cause the terminal group to change has been fixed.
 | |
| 08-03-10  The new ${...} command substitution will treat the trailing }
 | |
| 	  as a reserved word even if it is not at the beginning of a command,
 | |
| 	  for example, ${ date }.
 | |
| 08-03-10  If the name of the ENV begins with /./ or ././ then the
 | |
| 	  /etc/ksh.kshrc file will not be executed on systems that support
 | |
| 	  this interactive initialization file.
 | |
| 08-03-07  A bug in which ksh -i did not run the ENV file has been fixed.
 | |
| 08-03-07  A bug in which ulimit did not always produce the same output as
 | |
| 	  ulimit -fS has been fixed.
 | |
| 08-03-04  A bug in multiline mode in emacs and vi mode which could cause the
 | |
| 	  cursor to be on the wrong line when interrupt was hit has been fixed.
 | |
| 08-03-03  The change made in ksh93s+ on 07-06-18 in which braces became
 | |
| 	  optional for ${a[i]} inside  [[...]] was restored in the case
 | |
| 	  where the argument can be a pattern.
 | |
| 08-03-03  A bug in which creating a name reference to an associative array
 | |
| 	  instance would fail when the subscript contained characters [ or
 | |
| 	  ] has been fixed.
 | |
| 08-02-29 +The redirection operator >; has been added which for non-special
 | |
| 	  files, generates the output in a temporary file and writes the
 | |
| 	  specified file only of the command has completed successfully.
 | |
| 08-02-15  A bug in ${var/pattern/string} for patterns of the form ?(*) and +(*)
 | |
| 	  has bee fixed.
 | |
| 08-02-07  A bug in which test \( ! -e \) produced an error has been fixed.
 | |
| 08-02-14 +The typeset -a option can now optionally be followed by the name
 | |
| 	  of an enumeration type which allows subscripts to be enumerations.
 | |
| 08-02-14 +The enum builtin which creates enumeration types has been added.
 | |
| 08-02-12  The backoff logic when there are no more processes has been fixed.
 | |
| 08-02-07  The -X option has been added to typeset.  The -X option creates
 | |
| 	  a double precision number that gets displayed using the C99 %a
 | |
| 	  format.  It can be used along with -l for long double.
 | |
| 08-01-31  The -T option to typeset has been added for creating typed
 | |
| 	  variables.  Also the -h and -S options have been added to
 | |
| 	  typeset that are only applicable when defining a type.
 | |
| 08-01-31  The prefix expansion operator @ has been added.  ${@name}
 | |
| 	  expands to the type of name or yields the attributes.
 | |
| 07-11-15  A bug in the macro expander for multibyte characters in which
 | |
| 	  part of the character contains a file pattern byte has been fixed. 
 | |
| 07-10-03  A bug in which : was not allowed as part of an alias name has been
 | |
| 	  fixed.
 | |
| 07-09-26  A bug in which appending a compound variable to a compound variable
 | |
| 	  or to an index array didn't work has been fixed.
 | |
| 07-09-19  In both emacs and vi edit mode, the escape sequence \E[A (usually
 | |
| 	  cursor up, when the cursor is at the end of the line will fetch
 | |
| 	  the most recent line starting with the current line.
 | |
| 07-09-18  The value of ${!var} was correct when var was a reference to an
 | |
| 	  array instance.
 | |
| 07-09-18  The value of ${!var[sub]} was not expanding to var[sub] and this
 | |
| 	  was fixed.  It also fixed ${name} where name is a name reference
 | |
| 	  to var[sub].
 | |
| 07-09-18 +It is now legal to create a name reference without an initialization.
 | |
| 	  It will be bound to a variable on the first assignment.
 | |
| 07-08-30 +A discipline function can be invoked as ${x.foo} and is equivalent
 | |
| 	  to ${ x.foo;} and can be invoked as x.foo inside ((...)).
 | |
| 07-07-09  A bug in which typeset -a did not list indexed arrays has been
 | |
| 	  fixed.
 | |
| 07-07-03 +The command substitution ${ command;} has been added.  It behaves
 | |
| 	  like $(command) except that command is executed in the current
 | |
| 	  shell environment.  The ${ must be followed by a blank or an
 | |
| 	  operator.
 | |
| 
 | |
| 08-04-17  --- Release ksh93s+  ---
 | |
| 08-04-17  A bug in which umask was not being restored correctly after a
 | |
|           subshell has been fixed.
 | |
| 08-04-15  A bug in which sending a STOP signal to a job control shell started
 | |
| 	  from within a shell function caused cause the invoking shell to
 | |
| 	  terminate has been fixed.
 | |
| 08-04-11  A bug which caused $(exec > /dev/null) to go into an infinite loop
 | |
| 	  has been fixed.
 | |
| 08-03-27  A bug in which typeset -LZ was being treated as -RZ has been fixed.
 | |
| 08-03-06  A bug with ksh -P on systems that support the the profile shell,
 | |
|           in which it would exit after running a non-builtin has been fixed.
 | |
| 08-01-31  A bug in which command substitution inside ((...)) could cause
 | |
| 	  syntax errors or lead to core dumps has been fixed.
 | |
| 08-01-17  A bug in which discipline functions could be deleted when invoked
 | |
| 	  from a subshell has been fixed.
 | |
| 08-01-17  A bug in which a command substitution consisting only of
 | |
| 	  assignments was treated as a noop has been fixed.
 | |
| 08-01-17  A bug in which discipline functions invoked from within a
 | |
| 	  compound assignment could fail has been fixed.
 | |
| 08-01-16  Incomplete arithmetic assignments, for example ((x += )), now
 | |
| 	  generate an error message.
 | |
| 08-01-16  A bug in which a set discipline defined for a variable before
 | |
| 	  an array assignment could cause a core dump has been fixed. 
 | |
| 08-01-03  A bug in on some systems in which exit status 0 is incorrectly
 | |
| 	  returned by a process that catches the SIGCONT signal is stopped 
 | |
| 	  and then continued.
 | |
| 07-12-13  A race condition in which a program that has been stopped and then
 | |
| 	  continued could loose the exit status has been fixed.
 | |
| 07-12-12  Code to check for file system out of space write errors for all
 | |
| 	  writes has been added.
 | |
| 07-12-11  A bug in the macro expander for multibyte characters in which
 | |
| 	  part of the character contains a file pattern byte has been fixed. 
 | |
| 07-12-06  A bug in the emacs edit mode when multiline was set that output
 | |
| 	  a backspace before the newline to the screen has been fixed.
 | |
| 07-12-04  A bug in which using <n>TAB after a variable name listing expansion
 | |
| 	  in the edit modes would cause the $ to disappear has been fixed.
 | |
| 07-11-28  A bug in which setting IFS to readonly could cause a subsequent
 | |
| 	  command substitution to fail has been fixed.
 | |
| 07-11-27  A work around for a gcc 4.* C99 "feature" that could cause a job
 | |
| 	  control shell to go into an infinite loop by adding the volatile
 | |
| 	  attribute to some auto vars in functions that call setjmp().
 | |
| 07-11-27  A bug in which the shell could read ahead on a pipe causing the
 | |
| 	  standard input to be incorrectly positioned has been fixed.
 | |
| 07-11-27  A bug in which compound variable UTF-8 multibyte values were not
 | |
| 	  expanded or traced properly has been fixed.
 | |
| 07-11-21  A bug where an unbalanced '[' in a command argument was not treated
 | |
| 	  properly has been fixed.
 | |
| 07-11-15  A bug in which compatibility mode (no long option names) getopts(1)
 | |
| 	  incorrectly set the value of OPTARG for flag options has been fixed.
 | |
| 07-11-15  A bug in which "hash -- name" treated "--" as an invalid name operand
 | |
| 	  has been fixed.
 | |
| 07-11-15  typeset now handles "-t -- [-r] [--]" for s5r4 hash(1) compatibility.
 | |
| 07-11-15  A bug in which the umask builtin mis-handled symbolic mode operands
 | |
| 	  has been fixed.
 | |
| 07-11-15  Bugs in which shell arithmetic and the printf builtin mis-handled the
 | |
| 	  signs of { -NaN -Inf -0.0 } have been fixed.
 | |
| 07-11-15 +The full { SIGRTMIN SIGRTMIN+1 ... SIGRTMAX-1 SIGRTMAX } range
 | |
| 	  of signals, determined at runtime, are now supported.
 | |
| 07-11-15  A bug in which creating an index array with only subscript 0 created
 | |
| 	  only a simple variable has been fixed.
 | |
| 07-11-14  A bug in which appending to an indexed array using the form
 | |
| 	  name+=([sub]=value) could cause the array to become an associative
 | |
| 	  array has been fixed.
 | |
| 07-11-14  A bug in which typeset without arguments could coredump if a
 | |
| 	  variable is declared as in indexed array and  has no elements has
 | |
| 	  been fixed.
 | |
| 07-11-14  A bug in which creating a local SECONDS variable with typeset in
 | |
| 	  a function could corrupt memory has been fixed.
 | |
| 07-11-14  A bug which could cause a core dump when a script invoked by name
 | |
| 	  from a function used compound variables has been fixed.
 | |
| 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 associative 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 carriage 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.
 | |
| 07-03-08  A bug in which set +o output command line options has been fixed.
 | |
| 07-03-08  A bug in which an error in read (for example, an invalid variable
 | |
| 	  name), could leave the terminal in raw mode has been fixed.
 | |
| 07-03-06  A bug in which read could core dump when specified with an array
 | |
| 	  variable with a subscript that is an arithmetic expression has
 | |
| 	  been fixed.
 | |
| 07-03-06  Several serious bugs with the restricted shell were reported and
 | |
| 	  fixed.
 | |
| 07-03-02  If a job is stopped, and subsequently restarted with a CONT
 | |
| 	  signal and exits normally, ksh93 was incorrectly exiting with
 | |
| 	  the exit status of the stop signal number.
 | |
| 07-02-26 +M-^L added to emacs mode to clear the screen.
 | |
| 07-02-26  A bug in which setting a variable readonly in a subshell would
 | |
| 	  cause an unset error when the subshell completed has been fixed. 
 | |
| 07-02-19 +The format with printf uses the new = flag to center the output.
 | |
| 07-02-19  A bug in which ksh93 did not allow multibyte characters in
 | |
| 	  identifier names has been fixed.
 | |
| 07-02-19  A bug introduced in ksh93 that causes global compound variable
 | |
| 	  definitions inside functions to exit with "no parent" has been fixed.
 | |
| 07-02-19  A bug in which using compound commands in process redirection
 | |
| 	  arguments would give syntax errors <(...) and >(...) has been fixed.
 | |
| 07-01-29  A bug which caused the shell to core dump which can occur when a
 | |
| 	  built-in exits without closing files that it opens has been fixed.
 | |
| 07-01-26  A bug in which ~(E) in patterns containing  that are not inside ()
 | |
| 	  has been fixed.
 | |
| 
 | |
| 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
 | |
| 	  output.
 | |
| 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 klockwork.com 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
 | |
| 	  implemented.
 | |
| 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
 | |
| 	  expressions.
 | |
| 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 locale 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
 | |
| 	  integers.
 | |
| 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.  
 | |
| 
 | |
| 06-01-24  --- Release ksh93r  ---
 | |
| 06-01-24  A bug in which running commands with standard output closed would
 | |
| 	  not work as expected has been fixed.
 | |
| 06-01-23  A bug in which print -u<n> could fail when file descriptor <n> was
 | |
| 	  open for writing has been fixed.
 | |
| 06-01-19  The ?: arithmetic operator fixed to work when the operation after
 | |
| 	  the colon was an assignment.
 | |
| 05-12-24  A bug which could lead to a core dump when elements of a compound
 | |
| 	  variable were array elements, i.e. foo=(bar=(1 2)), has been fixed.
 | |
| 05-12-13  An arithmetic bug in which x+=y+=z was not working has been fixed. 
 | |
| 05-12-13  An arithmetic bug in which x||y was returning x when x was non-zero
 | |
| 	  rather than 1 has been fixed.
 | |
| 05-12-07 +The aliases for integer and float have been changed to use attributes
 | |
| 	  -li and -lE to handle long long and long double types.
 | |
| 05-12-07 +The histexpand (-H) option has been added which allows C-shell
 | |
| 	  style history expansions using the history character !.
 | |
| 05-12-07 +The multiline option was added which changes that way the edit
 | |
| 	  modes handle lines longer than the window width.  Instead of
 | |
| 	  horizontal scrolling, multiple lines on the screen are used.
 | |
| 05-12-05  The whence builtin now returns an absolute pathname when the
 | |
|           command is found in the current directory.
 | |
| 05-11-29  A bug which caused ksh -c '[[ ! ((' to core dump rather than
 | |
| 	  report a syntax error has been fixed.
 | |
| 05-11-29  A bug when reading fixed length records into typeset -b variables
 | |
| 	  which caused a zero byte to terminate the value has been fixed.
 | |
| 05-11-22 +The ability to seek to an offset within a file has been added
 | |
| 	  with the new I/O redirection operators, <#  and >#.  Currently,
 | |
| 	  these redirection operators must be followed by ((expr))
 | |
| 	  but in a future release, it should be able to used to seek forward
 | |
| 	  to the specified shell pattern.  In addition $(n<#) expands to the
 | |
| 	  current byte offset for file descriptor n.
 | |
| 05-11-22 +The .sh.match array variable is now set after each [[ ... ]]
 | |
| 	  pattern match.  Previously it was only set for substring matches.
 | |
| 05-10-17  A bug in which the library path variable could be prefixed
 | |
|           with a directory when a .path file was not encountered in
 | |
| 	  the directory of the executable has been fixed.
 | |
| 05-09-15  A for/while loop optimizer bug in which $OPTIND was not
 | |
| 	  correctly expanded has been fixed.
 | |
| 05-09-05  A bug in which a history command that invoked a history
 | |
| 	  command could go into an infinite loop has been fixed.
 | |
| 05-08-31 +In the case that IFS contains to adjacent new-lines so that
 | |
| 	  new-line is not treated as a space delimiter, only a single
 | |
| 	  new-line is deleted at the end of a command substitution.
 | |
| 05-08-19 +When a tilde substitution expands to the / directory and is
 | |
| 	  followed by a /, it is replaced by the empty string.
 | |
| 05-08-16  A bug in which n<&m did not synchronize m has been fixed.
 | |
| 05-08-16  A bug in which process substitution  ( <() and >() ) was not
 | |
| 	  working within for and while loops has been fixed.
 | |
| 05-07-24  A bug in which the pattern ~(E)(foo|bar) was treated as a syntax
 | |
| 	  error has been fixed.
 | |
| 05-07-24  A bug in completion with <n>=, where n was the one of the
 | |
| 	  previous selection choices has been fixed.
 | |
| 05-07-21  A bug with multibyte input when no edit mode was specified which
 | |
| 	  caused the input line to shift left/right has been fixed.
 | |
| 05-06-24  A race condition which could cause the exit status to get lost
 | |
| 	  on some fast systems has been fixed.
 | |
| 05-06-21  A bug in which nested patterns of the form {m,n}(pat) would cause
 | |
| 	  syntax errors has been fixed.
 | |
| 05-06-21  A bug in the macro expander has been fixed which could cause a
 | |
|           syntax error for an expansion of the form ${x-$(...)} when
 | |
| 	  x is set and the command substitution contained certain strings.
 | |
| 05-06-08 +On systems for which echo does not do System V style  expansions,
 | |
| 	  the -e option was added to enable these expansion.
 | |
| 05-06-08  A bug in which ${var op pattern} to not work when inside an
 | |
| 	  arithmetic expression has been fixed.
 | |
| 05-05-23 +An extension to shell patterns that allows matching of nested
 | |
| 	  groups while skipping over quoted strings has been added.
 | |
| 05-05-18  A bug in which the line number for errors was not correct for
 | |
|           functions loaded from FPATH has been fixed.
 | |
| 05-04-18  A bug in which the exit status $? is not set when a trap triggered
 | |
| 	  by the [[...]] command is executed has been fixed.
 | |
| 05-04-08 +Redirection operators can be directly preceded with {varname}
 | |
| 	  with no intervening space, where varname is a variable name which
 | |
| 	  allows the shell to select a file descriptor > 10 and store it
 | |
| 	  into varname.
 | |
| 05-04-08 +SHOPT_CMDLIB_BLTIN=1 now includes <cmdlist.h> generated table.
 | |
| 05-04-07 +[[ -o ?option ]] is true if "option" is a supported option.
 | |
| 05-04-05  A bug in handling file completion with spaces in the names
 | |
|           has been fixed.
 | |
| 05-03-25 +The SIGWINCH signal is caught by default to keeps the LINES and
 | |
| 	  COLUMNS variables in sync with the actual window size.
 | |
| 05-03-25 +Building ksh with SHOPT_REMOTE=1 causes ksh to set --rc if stdin is
 | |
| 	  a socket (presumably part of a remote shell invocation.)
 | |
| 05-03-25 +Building ksh with SHOPT_SYSRC=1 causes interactive ksh to source
 | |
| 	  /etc/ksh.kshrc (if it exists) before sourcing the $ENV file.
 | |
| 05-03-25 +{first..last[..incr][%fmt]} sequences added to brace expansions
 | |
| 	  when braceexpand is enabled.
 | |
| 05-03-03  A bug where a SIGCHLD interrupt could cause a fifo open to fail has
 | |
| 	  been fixed.
 | |
| 05-02-25  A bug in which a builtin command run in the background could
 | |
| 	  keep a file descriptor open which could cause a foreground
 | |
| 	  process to hang has been fixed.
 | |
| 05-02-24  A bug where builtin library commands (e.g., date and TZ) failed to
 | |
| 	  detect environment variable changes has been fixed.
 | |
| 05-02-22 +The read builtin and word splitting are now consistent with respect
 | |
| 	  to IFS -- both treat IFS as field delimiters.
 | |
| 05-02-22 +The read builtin no longer strips off trailing delimiters that
 | |
| 	  are not space characters when there are fewer variables than fields.
 | |
| 05-02-17  A builtin bug on systems where dlsym(libcmd) returns link-time
 | |
| 	  bindings has been fixed.
 | |
| 05-02-12  A bug in which the lib_init() function for .paths BUILTIN_LIB
 | |
| 	  libraries was not called has been fixed.
 | |
| 05-02-06  A bug on some systems in which moving the write end of a co-process
 | |
| 	  to a numbered file descriptor could cause it to close has been fixed. 
 | |
| 05-02-06  A bug in the vi-edit mode in which the character under the cursor
 | |
| 	  was not deleted in some cases with the d% directive has been fixed.
 | |
| 05-02-06  A bug where external builtin stdout/stderr redirection corrupted
 | |
|           stdout has been fixed.
 | |
| 05-02-04  A bug where times formatting assumed CLK_TCK==60 has been fixed.
 | |
| 
 | |
| 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 read /etc/profile and
 | |
| 	  $HOME/.profile, if they exist, 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' command) 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 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 occurred 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 processed in a script that is run by name causing
 | |
| 	  a failure has been fixed.
 | |
| 04-04-28 +If the first character of assignment 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.
 | |
| 
 | |
| 04-02-28  --- Release ksh93p  ---
 | |
| 04-02-28 +The ability to apply an append discipline to any variable has
 | |
| 	  been added.
 | |
| 04-02-14  A bug in which the exportall option (set -a) would cause incorrect
 | |
| 	  results for arrays has been fixed.
 | |
| 04-02-02  A bug in which an exported array would pass more than
 | |
| 	  the first element to a script invoked by name has been fixed.
 | |
| 04-02-02  A bug on some systems in which name=value pairs preceding a script
 | |
| 	  invoked by name was not getting passed to the script has been fixed.
 | |
| 04-01-20  A bug in which an unset discipline function could cause a core
 | |
| 	  dump on some systems has been fixed.
 | |
| 04-01-12  A bug in which a continue or break called outside a loop from
 | |
| 	  inside a function defined with name() syntax could affect 
 | |
| 	  the invoking function has been fixed.
 | |
| 04-01-08  If a command name begins with ~, only filename completion will be
 | |
| 	  attempted rather than pathname completion using the builtin editors. 
 | |
| 04-01-08  A bug in the vi edit mode in which the wrong repeat count on
 | |
| 	  multiple word replacements with the . directive has been fixed.
 | |
| 04-01-06  Backspace characters are now handled correctly in prompt strings.
 | |
| 04-01-06 +The getopts builtin has been modified to accept numerical
 | |
| 	  arguments of size long long on systems that support this.
 | |
| 04-01-06  A bug in which unsetting all elements of an associative array
 | |
| 	  would cause it to be treated as an indexed array has been fixed.
 | |
| 03-12-15  A bug in which a quoted string ending with an unescaped $ would
 | |
| 	  delete the ending $ in certain cases has been fixed.
 | |
| 03-12-05  A bug in which the shell could hang when set -x tracing a command
 | |
| 	  when an invalid multibyte character is encountered has been fixed. 
 | |
| 03-12-05  On some systems, if the KEYBD trap is set, then commands that use
 | |
| 	  the meta key were not processed until return was hit.  This
 | |
| 	  has been fixed.
 | |
| 03-12-05  A problem which occurred when the login shell was not a group
 | |
| 	  leader that could cause it to fail has been fixed.
 | |
| 03-12-05  A problem in which a shell could core dump after receiving a signal
 | |
| 	  that should cause it to terminate while it was in the process
 | |
| 	  of acquiring more space has been fixed.
 | |
| 03-12-05 +If ENV is not specified, the shell will default to $HOME/.kshrc
 | |
| 	  for interactive shells.
 | |
| 03-11-21  A bug introduced in ksh93o in which the DEBUG trap could get
 | |
| 	  disabled after it triggered has been fixed. 
 | |
| 03-11-04  A bug in which using arithmetic prefix operators ++ or -- on a
 | |
| 	  non-lvalue could cause a core dump has been fixed.
 | |
| 03-11-04  A bug in which leading zeros were stripped from variable
 | |
| 	  expansions within arithmetic computation to avoid being treated
 | |
| 	  as octal constants when they should not have, has been fixed.
 | |
| 03-10-08  A bug introduced in ksh93o in which a large here document inside
 | |
| 	  a function definition could get corrupted has been fixed.
 | |
| 03-09-22  A bug in which the .get discipline function was not being
 | |
| 	  called when a string variable was implicitly referenced from
 | |
| 	  within a numerical expression has been fixed.
 | |
| 03-09-22  A bug in which a script without a leading #! could get executed
 | |
| 	  by /bin/sh rather than the current shell on some systems has
 | |
| 	  been fixed.
 | |
| 03-09-12 +To improve conformance with ksh88, leading zeros will be ignored
 | |
| 	  when getting the numerical value of a string variable so that
 | |
| 	  they will not be treated as octal constants.
 | |
| 03-09-03 +The builtin kill command now processes obsolete invocations
 | |
| 	  such as kill -1 -pid.
 | |
| 03-09-02  The restriction on modifying FPATH in a restricted shell (sh -r)
 | |
| 	  has been documented.
 | |
| 03-09-02 +The restricted shell (sh -r) has been modified to disallow
 | |
| 	  executing command -p.
 | |
| 03-08-07  A bug in which the KEYBD trap was not being invoked when
 | |
| 	  characters with the 8th bit set has been fixed.
 | |
| 03-08-02  A parser bug introduced in ksh93o which caused the character
 | |
| 	  after () in a Posix function definition to be skipped 
 | |
| 	  when reading from standard input has been fixed.
 | |
| 03-08-01  A bug in which "${foo#pattern}(x)" treated (x) as if it were
 | |
| 	  part of the pattern has been fixed.
 | |
| 03-08-01 +The command -x option has been modified so that any trailing
 | |
| 	  arguments that do expand to a single word will be included
 | |
| 	  on each invocation, so that commands like command -x mv * dir
 | |
| 	  work as expected.
 | |
| 
 | |
| 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 substitutions 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 on rare occasions a job completion interrupt
 | |
| 	  could cause to core dump has been fixed.
 | |
| 03-06-26  A bug in which process substitution embedded 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.
 | |
| 03-06-14  A bug in which could cause a core dump on some systems with
 | |
| 	  vi and emacs editors with the MULTIBYTE option has been fixed.
 | |
| 03-06-06  A bug in which the shell could core dump when a script was
 | |
| 	  run from its directory, and the script name a symlink to a file
 | |
| 	  beginning with .., has been fixed.
 | |
| 03-06-05  A bug in which the shell could core dump when a child process
 | |
| 	  that it is unaware of terminates while it is calling malloc()
 | |
| 	  has been fixed.
 | |
| 03-06-02 +An option named globstar (set -G) has been added.  When enabled,
 | |
| 	  during pathname expansion, any component that consists only of ** is
 | |
| 	  matches all files and any number of directory levels.
 | |
| 03-05-30  A bug in which the PATH search could give incorrect results when
 | |
| 	  run from directory foo and PATH contained .:foo:xxx has been fixed.
 | |
| 03-05-29 +Some changes were made to the code that displays the prompt in edit 
 | |
| 	  mode to better handle escape sequences in the prompt.
 | |
| 03-05-27  I added = to the list of characters that mark the beginning of
 | |
| 	  a word for edit completion so that filenames in assignments
 | |
| 	  can be completed.
 | |
| 03-05-20  A bug in which read -N could hang on some systems when reading
 | |
| 	  from a terminal or a pipe has been fixed.
 | |
| 03-05-19  A bug in which the output of uname from a command substitution
 | |
| 	  would go to the standard output of the invoking command when
 | |
| 	  uname was invoked with a non-standard option has been fixed.
 | |
| 03-05-19  A job control bug which would cause the shell to exit because 
 | |
| 	  it hadn't take back the terminal has been fixed.  The bug
 | |
| 	  could occur when running a function that contained a pipeline
 | |
| 	  whose last element was a function.
 | |
| 03-05-19  A job control timing bug introduced in ksh93o on some systems
 | |
| 	  which could cause a pipeline to hang if the first component
 | |
| 	  completed quickly has been fixed.
 | |
| 03-05-13 +The read builtin has been modified so that the builtin editors
 | |
| 	  will not overwrite output from a previous incomplete line. 
 | |
| 03-05-13  A bug in which the name of an identifier could have the string
 | |
| 	  .sh. prefixed to it after expanding a variable whose name begins
 | |
| 	  with .sh. has been fixed.
 | |
| 03-05-13  A bug in the expansion of $var for compound variables in which
 | |
| 	  some elements would not be output when the name was a prefix
 | |
| 	  of another name in the compound variable has been fixed.
 | |
| 03-05-08  The last item in the ksh93o release on 03-01-02 has been
 | |
| 	  altered slightly to preserve the leading 0's when the
 | |
| 	  preceding character is a digit.  Thus, with typeset -LZ3 x=10,
 | |
| 	  $(( 1$x)) will be 1010 whereas $(( $x) will be 10.
 | |
| 03-04-25  A bug in which if x is a name reference, then nameref y=x.foo
 | |
| 	  did not follow x has been fixed.
 | |
| 
 | |
| 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 containing 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.
 | |
| 
 | |
| 02-12-05  --- Release ksh93n+  ---
 | |
| 02-11-30  A bug that can show up in evaluating arithmetic statements that
 | |
| 	  are in an autoloaded function when the function is autoload from
 | |
| 	  another function has been fixed.
 | |
| 02-11-30  An optimization bug in which an expansion of the form ${!name.@},
 | |
| 	  which occurred inside a for or a while loop, when name is a name
 | |
| 	  reference, has been fixed.
 | |
| 02-11-18  A bug in which modifying array variables in a subshell could leave
 | |
| 	  side effects in the parent shell environment has been fixed.
 | |
| 02-11-18  A memory leak when unsetting an associative array has been fixed.
 | |
| 02-11-14 +The code to display compound objects was rewritten to make
 | |
| 	  it easier for runtime extensions to reuse this code.
 | |
| 02-11-14 +A change was made to allow runtime builtins to be notified when
 | |
| 	  a signal is received so that cleanup can be performed.
 | |
| 02-10-31 +User applications can now trap the ALRM signal.  Previously,
 | |
| 	  the ALRM signal was used internally and could not be used
 | |
| 	  by applications. 
 | |
| 02-10-31  A bug in which signals received while reading from a coprocess
 | |
| 	  for which traps were set was not handled correctly has been fixed.
 | |
| 02-10-31  A bug in which a file opened with exec inside a subshell could
 | |
| 	  be closed before the subshell completed has been fixed.
 | |
| 02-10-21  A bug in which setting PATH or FPATH inside a function might not
 | |
| 	  take effect has been fixed.
 | |
| 02-10-21  A bug which could cause a core dump when a local SECONDS variable
 | |
| 	  is defined in a function has been fixed.
 | |
| 02-10-15  A bug in which the associate array name operator ${!array[@]}
 | |
| 	  could return the same name multiple times has been fixed.
 | |
| 02-10-15  A bug in which the zero'th element of an associative array was
 | |
| 	  not getting set when an assignment was made without a subscript
 | |
| 	  specified has been fixed.
 | |
| 
 | |
| 02-09-30  --- Release ksh93n  ---
 | |
| 02-09-30 +The maximum indexed array size was increased to 16Megs.
 | |
| 02-09-30  A bug which could cause a core dump when changing attributes
 | |
| 	  of associative array has been fixed.
 | |
| 02-09-30  A bug in which exporting an array variable would not export the
 | |
| 	  0-th element has been fixed.
 | |
| 02-09-30  A bug in which an array assignment of the form a=($a ...) would unset
 | |
| 	  'a' before the right hand side was evaluated has been fixed.
 | |
| 02-09-27  A bug in which the error message for ${var?message} when var was
 | |
| 	  null or unset did not contain the variable name var has been fixed.
 | |
| 02-09-27  A bug in which closing file descriptors 0 through 2 could
 | |
| 	  cause a subsequent here document to fail has been fixed. 
 | |
| 02-09-14  A bug in whence which occurs when the specified name contained
 | |
| 	  a / has been fixed.
 | |
| 02-09-14  A bug in the parser for strings of the form name$((expr))=value
 | |
| 	  has been fixed.
 | |
| 02-09-14  A for loop optimization bug in which the number of elements in
 | |
| 	  an array was treated as an invariant has been fixed.
 | |
| 02-09-09  A bug in which redirection or closing of a file descriptor between
 | |
| 	  3 and 9 could cause a subsequent here document to fail has been
 | |
| 	  fixed. 
 | |
| 02-09-09  A bug in which a background job was not removed from the job list
 | |
| 	  when a subshell completed has been fixed, for example (prog&). 
 | |
| 02-09-03  A bug in which an assignment of the form name=(integer x=3)
 | |
| 	  could be interpreted as an array assignment rather than a
 | |
| 	  compound variable assignment has been fixed.
 | |
| 02-08-19  A command completion bug which occurred on file systems that
 | |
| 	  are case insensitive has been fixed.
 | |
| 02-08-19  A bug which could lead to an exception on some systems (for
 | |
| 	  example FREEBSD) which occurred when setting PATH has been fixed.
 | |
| 02-08-11  A bug in arithmetic rounding in which a value input as a decimal
 | |
| 	  string would output as a rounded version of the string has
 | |
| 	  been fixed.
 | |
| 02-08-11  A bug in which the last character could be deleted from shell
 | |
| 	  traces and from whence when called from a multibyte locale
 | |
| 	  has been fixed.
 | |
| 02-08-01  A bug which could cause a core dump to occur when a shell script
 | |
| 	  is executed while a coprocess is running that has closed the
 | |
| 	  output pipe has been fixed.
 | |
| 02-08-01  A bug in which command completion in multibyte mode could
 | |
| 	  corrupt memory for long command lines has been fixed.
 | |
| 
 | |
| 02-06-17  --- Release ksh93n-  ---
 | |
| 02-06-17  A bug in which user defined macros could cause a core dump in
 | |
| 	  with MULTIBYTE mode has been fixed.
 | |
| 02-06-17  A bug in which printf format specifiers of the form %2$s were causing
 | |
| 	  a core dump has been fixed.
 | |
| 02-06-17  A bug in which setting stty to noecho mode did not prevent the
 | |
| 	  echoing of characters by ksh when emacs or viraw mode
 | |
| 	  was enabled has been fixed.
 | |
| 02-06-17  A bug in which background job completion could cause the sleep
 | |
| 	  builtin to terminate prematurely has been fixed.
 | |
| 02-06-17  A bug in which the shell could core dump if getopts was called
 | |
| 	  when the OPTIND variable contained a negative value has been fixed. 
 | |
| 02-06-10 +The edit mode prompt has been modified to handle escape sequences.  
 | |
| 02-06-10  A bug which occurred for interactive shells in which the builtin
 | |
| 	  cat command was used in command substitution on a file whose
 | |
| 	  size was larger than PIPE_BUF has been fixed.
 | |
| 02-06-10  A bug in which the trap on ERR was not being processed when
 | |
| 	  set inside a function has been fixed.
 | |
| 02-06-07  A bug in which function definitions could cause the history count
 | |
| 	  to be decremented by one (and even become negative) has been fixed.
 | |
| 02-06-05  A bug in read in which share mode could be enabled has been fixed.
 | |
| 02-05-28  A bug which could occur when the last command of a script was
 | |
| 	  a case statement and the action selected ended in ;& instead of ;;
 | |
| 	  has been fixed.
 | |
| 02-05-23  A bug with unary + introduced in ksh93k has been fixed.
 | |
| 02-05-07  A bug in substitutions of the form ${var/pattern/string} in which
 | |
| 	  a backslash was inserted in the replacement string when it contained
 | |
| 	  a special pattern character has been fixed.
 | |
| 02-05-01  A bug in the emacs edit mode which occurred in versions compiled
 | |
| 	  for multibyte character sets which occurred when a repeated search
 | |
| 	  was requested after a long line had been returned for the previous
 | |
| 	  search has been fixed.
 | |
| 02-04-02 +vi and emacs edit modes were modified so that tab completion is
 | |
| 	  disabled when invoked from the read built-in.
 | |
| 
 | |
| 02-03-26  --- Release ksh93m+  ---
 | |
| 02-03-26  A bug in which  was not handled correctly when used in file
 | |
| 	  expansion has been fixed.
 | |
| 02-02-18  A bug in which lines beginning with a # were deleted from here
 | |
| 	  documents when the here-document delimiter was followed by
 | |
| 	  a comment has been fixed.
 | |
| 02-12-06  An optimization bug in which ${!x[@]) was treated as invariant in
 | |
| 	  a for loop has been fixed.
 | |
| 02-02-06  A bug in which the ERR trap is not cleared for a script invoked
 | |
| 	  by name from within a function has been fixed.
 | |
| 02-01-08  A bug in which a shell script executed from within a subshell
 | |
| 	  could cause this script to have an invalid pointer leading
 | |
| 	  to a memory fault has been fixed. 
 | |
| 02-01-07 +Added here documents of the form <<< word (as per zsh) which
 | |
| 	  is equivalent to << delimordelim.
 | |
| 02-01-07  A bug in which the first word of a compound assignment,
 | |
| 	  x=(word ...), was treated as a reserved word has been fixed.
 | |
| 02-01-07  A bug in the handling of  when noglob was enabled and a
 | |
| 	  substitution of the form ${word op pattern} occurred in the
 | |
| 	  same word has been fixed.
 | |
| 02-01-07 +A compilation option, CMDLIB_BLTIN in the file OPTION, has
 | |
| 	  been added.  When this options is set, all commands implemented
 | |
| 	  in libcmd become shell builtin commands by default.
 | |
| 02-01-07  A bug in which builtin foo, where foo is already a builtin
 | |
| 	  would result in the builtin foo getting removed has been fixed. 
 | |
| 02-01-07  A bug which the shell executed a command found in the current
 | |
| 	  directory when PATH have no valid directories has been fixed.
 | |
| 01-11-28  The value of $? was not being set when called with exit.
 | |
| 01-11-28  If the last command was of the form (...) and a trap on EXIT or
 | |
| 	  ERR was set, and the command inside () modified the trap, then
 | |
| 	  the original trap wasn't executed.
 | |
| 01-11-26 +The value for 0 is now preceded by the base number when
 | |
| 	  the base was not 10.
 | |
| 01-11-26 +The default has compilation mode has been changes so that
 | |
| 	  viraw mode will always be on.
 | |
| 
 | |
| 01-10-31  --- Release ksh93m  ---
 | |
| 01-10-31  A for loop optimizer bug for subshells contained within for
 | |
| 	  loops has been fixed.
 | |
| 01-10-16  typeset without arguments no longer outputs variable names
 | |
| 	  that do not have any attributes that are set.
 | |
| 01-10-16  A bug introduced in ksh93l in which assignments specified with
 | |
| 	  the exec built-in were not being expanded properly has been
 | |
| 	  fixed.
 | |
| 01-10-11  An optimization bug in which ${!x) was treated as invariant in
 | |
| 	  a for loop has been fixed.
 | |
| 01-10-11  Unsigned integer variables in bases other than 10 are printed now
 | |
| 	  expand in that base with the base prefix.
 | |
| 01-10-10  A number of typos in the self generating man pages for shell
 | |
| 	  built-ins have been fixed.
 | |
| 01-10-04  The self generated man pages for hist and fc were not working
 | |
| 	  correctly and have been fixed.
 | |
| 01-10-03  Yet another optimizer bug in which shell patterns were
 | |
| 	  treated as invariants has been fixed.
 | |
| 01-09-27  Two bugs relating to multibyte history searches and to find
 | |
| 	  have been fixed.
 | |
| 01-09-27  A bug introduced in ksh93k in which the PATH searching was
 | |
| 	  not restored after running a command with an assignment list 
 | |
| 	  has been fixed.
 | |
| 01-09-26  A bug in which a zero filled field was treated as octal when
 | |
| 	  converted to integer has been fixed.
 | |
| 01-09-26  Yet another bug in the optimization of for loops related to
 | |
| 	  recursive functions with break or continue statements has been fixed.
 | |
| 01-09-25 +The exponentiation operator ** was added to the shell arithmetic
 | |
| 	  evaluation.  It has higher precedence than * and is left
 | |
| 	  associative.
 | |
| 01-09-25  The code was modified to use the ast multibyte macros
 | |
| 	  and functions for handing multibyte locales.
 | |
| 01-09-25 +The expansion ${parameter:offset:length} now handles negative
 | |
| 	  offsets which cause offsets to be measured from the end.
 | |
| 01-09-25  Some spelling errors in the documentation were corrected.
 | |
| 01-09-24 +The /dev/tcp/host/port and /dev/udp/host/port now allow
 | |
| 	  the ports to be specified by service name. 
 | |
| 01-09-24 +The change staring with ksh93g in which the the appropriate
 | |
| 	  library path variable is prepended with a corresponding library
 | |
| 	  directory has been modified.  With the new method, only the
 | |
| 	  library path defined in the file named .paths in the directory
 | |
| 	  where the executable is found will be modified.  See the
 | |
| 	  man page for more details.
 | |
| 01-09-23 +The .fpath file (see ksh93h) is no longer looked for in each
 | |
| 	  directory on the path to locate function directories.  The
 | |
| 	  file named .paths is used instead.
 | |
| 01-09-23  A bug in which IFS was not being restored after being changed in
 | |
| 	  a subshell has been fixed.
 | |
| 01-09-16 +With the vi and emacs edit modes, after a list of command
 | |
| 	  or functions is generated with = or M-= respectively,
 | |
| 	  any element from the list can be pasted on the command line
 | |
| 	  by preceding the = or M-= with a numeric parameter specifying
 | |
| 	  the position on the list.
 | |
| 01-09-16  A bug in ksh93l caused command completion not to find aliases
 | |
| 	  and functions.  Command listing from the edit mode was presented
 | |
| 	  in reverse order.  This has been fixed.
 | |
| 01-09-13  Another bug in the optimization of for loops related to subshells
 | |
| 	  when traps were set has been fixed.
 | |
| 01-09-07  A change in ksh93l caused brace expansion to stop working
 | |
| 	  and this has been fixed.
 | |
| 01-09-04  A bug introduced in ksh93k in which an arithmetic statement
 | |
| 	  within a function that used name references did not follow the
 | |
| 	  reference has been fixed.
 | |
| 01-09-04  A bug introduced in ksh93l in which export -p did not prefix
 | |
| 	  each export with the word export has been fixed.
 | |
| 01-08-29  A bug in multibyte input which occurred when a partial multibyte
 | |
| 	  character was received has been fixed.
 | |
| 01-08-29  A bug introduced in ksh93l which could cause a core dump
 | |
| 	  when an assignment list containing PATH is specified inside
 | |
| 	  command substitution has been fixed.
 | |
| 01-08-09  Another bug in the optimization of for loops in ksh93l caused
 | |
| 	  errors in recursive functions using local variables that
 | |
| 	  contained for loops has been fixed.
 | |
| 01-07-27  A bug in which IFS would be unset after a command substitution
 | |
| 	  inside a here document has been fixed.
 | |
| 01-07-26  To conform to the POSIX standard, if you invoked ksh name,
 | |
| 	  and name does not contain a /,  it will first try to run
 | |
| 	  one in the current directory whether it is executable or not
 | |
| 	  before doing a path search for an executable script.  Earlier
 | |
| 	  versions first checked for an executable script using the
 | |
| 	  PATH variable.
 | |
| 01-07-23  A bug in which unset -f invoked in a subshell could unset a
 | |
| 	  function defined in the parent has been fixed.
 | |
| 01-07-16  A bug in the optimization of for loops in ksh93l caused
 | |
| 	  name references to be treated as invariants has been fixed.
 | |
| 01-07-09  A bug in which a discipline function applied to a local variable
 | |
| 	  could cause a shell exception has been fixed.  Discipline
 | |
| 	  functions can only be specified for global variables. 
 | |
| 
 | |
| 01-06-18  --- Release ksh93l  ---
 | |
| 01-06-18  A bug in assigning integers larger than can be represented as
 | |
| 	  long integers to floating point variables has been fixed.
 | |
| 01-06-18  A bug in the handling of unsigned integers (typeset -ui) has
 | |
| 	  been fixed.
 | |
| 01-06-04  The evaluation of the PS1 prompt no longer effects the value
 | |
| 	  of the $? variable.
 | |
| 01-06-01  A small memory leak from subshells has been fixed.
 | |
| 01-05-22  A bug in which attributes for variables that did not have
 | |
| 	  values would be lost after a subshell has been fixed.
 | |
| 01-05-22 +The %R format has been added to convert a shell pattern into
 | |
| 	  an extended regular expression.
 | |
| 01-05-22 +The escape sequences \, <JOIN>X, \C[.collating-element.], and
 | |
| 	  \x{hex} have been added to ASCII-C strings and to printf format
 | |
| 	  strings.
 | |
| 01-05-20 +Patterns of the form {n}(pattern) and {m,n}(pattern) are now
 | |
| 	  recognized.  The first form matches exactly n of pattern whereas,
 | |
| 	  the second form matches from m to n instances of pattern.
 | |
| 01-05-20 +The shell allows *-(pattern), +-(pattern),  ?-(pattern),
 | |
| 	  {m,n}-(pattern}, and @-(pattern) to cause the minimal
 | |
| 	  match of pattern to be selected whenever possible rather
 | |
| 	  than the maximal (greedy) match. 
 | |
| 01-05-20 +The character class [:word:] has been added to patterns.
 | |
| 	  The word class is the union of [:alnum:] and the character _.
 | |
| 01-05-20 +Inside (...) pattern groups, the  character is now treated
 | |
| 	  specially even when in an enclosing character class.  The
 | |
| 	  sequences, \w, \d, \s are equivalent to the character classes
 | |
| 	  word, digit, and space respectively.  The sequences \W, \D,
 | |
| 	  and \S are their complement sets. 
 | |
| 01-05-20 +The shell now recognizes pattern groups of the form
 | |
| 	  ~(options:pattern) where options or :pattern can be omitted.
 | |
| 	  Options use the letters + and - to enable and disable options
 | |
| 	  respectively.  The option letters g (greedy), i (ignore case)
 | |
| 	  are used to cause maximal matching and to cause case
 | |
| 	  insensitive matching respectively.  If :pattern is also
 | |
| 	  specified, these options are only in effect while this
 | |
| 	  pattern is being processed.  Otherwise, these options remain
 | |
| 	  in effect until the end of the pattern group that they are contained
 | |
| 	  in or until another ~(...) is encountered.  These pattern groups
 | |
| 	  are not counted with respect to group numbering.
 | |
| 01-05-14  When edit completion, expansion, or listing occurs in the
 | |
| 	  middle of a quoted string, the leading quote is ignored when
 | |
| 	  performing the completion, expansion, or listing.
 | |
| 01-05-14  A small memory leak from subshells has been fixed.
 | |
| 01-05-10  A bug in which open files were not restored after a subshell
 | |
| 	  that had used exec to replace a file has been fixed. 
 | |
| 01-05-10 +Redirection to a null file name now generates an error message. 
 | |
| 01-05-09  The shell now rejects some invalid parameter substitutions that
 | |
| 	  were previously processed in undefined ways.
 | |
| 01-05-09  A bug in which the output of select was not flushed before the
 | |
| 	  read when input did not come from the terminal has been fixed. 
 | |
| 01-05-08  A bug in which job ids would not be freed for interactive shells
 | |
| 	  when subshells ran built-ins in the background has been fixed.
 | |
| 01-05-08 +The FPATH variable now requires an explicit . to cause the
 | |
| 	  current directory to be treated as a function directory. 
 | |
| 01-05-08  A bug in read -n when echo mode was disabled has been fixed.
 | |
| 01-05-07  A bug in which function definitions could be listed as part
 | |
| 	  of the history has been fixed.
 | |
| 01-04-30 +This release uses a new and often much faster pattern matcher than
 | |
| 	  earlier releases.
 | |
| 01-04-30 +An optimizer now eliminates invariant parameter expansions from
 | |
| 	  for while and until loops.
 | |
| 01-04-30 +The variable .sh.match is set after each pattern match (# % or /)
 | |
| 	  in a variable substitution.  The variable .sh.match is an
 | |
| 	  indexed array with element 0 being the complete match. 
 | |
| 	  The array is only valid until the next subsequent pattern
 | |
| 	  match or until the value of the variable changes which ever
 | |
| 	  comes first.
 | |
| 01-04-30 +A self generating man page has been added to shcomp.  Also,
 | |
| 	  shcomp now stops compiling when it finds an exit or exec
 | |
| 	  command and copies the remainder so that it can be used
 | |
| 	  for standard input.
 | |
| 01-04-30 +The shcomp command was modified so that it can work in an
 | |
| 	  EBCIDIC environment and that binary scripts are portable
 | |
| 	  across environments.
 | |
| 01-04-30  A bug in the handling of a trailing : in PATH has been fixed.
 | |
| 01-04-30  A bug in which the builtin version of a command would get invoked
 | |
| 	  even though the full pathname for the command was specified
 | |
| 	  has been fixed.
 | |
| 01-04-30  A bug in which read would loose the last character when
 | |
| 	  reading the last line of a file that did not contain a new-line
 | |
| 	  character has been fixed.
 | |
| 01-04-23  A bug on some systems in which in vi mode the end of file
 | |
| 	  character and end of line character could be swapped has
 | |
| 	  been fixed.
 | |
| 01-04-23  A bug on some systems in which invoking a shell script that
 | |
| 	  did not have execute permission could set the exit value to
 | |
| 	  127 rather than 126 has been fixed.
 | |
| 01-04-20  A bug in which read -n from a pipe would block if fewer than
 | |
| 	  n characters was received has been fixed.
 | |
| 01-04-09  A bug in which invalid patterns, for example, ) by itself,
 | |
| 	  was not treated as a string has been fixed so that if i=')',
 | |
| 	  then [[ $i == $i ]] is true.
 | |
| 01-04-09 +The shell arithmetic now interprets C character constants.
 | |
| 01-04-09  A bug in which a non-zero return from a function defined
 | |
| 	  with the function reserved word did not trigger the ERR
 | |
| 	  trap or exit with set -e has been fixed.
 | |
| 01-04-02  A bug on some systems, in which characters above 127 were
 | |
| 	  not displayed correctly in vi or emacs edit mode has been fixed.
 | |
| 01-04-02  A bug on some systems, introduced in the 'k' point release, in
 | |
| 	  which the erase character in viraw mode was moving the cursor
 | |
| 	  to the left without erasing the character has been fixed.
 | |
| 01-04-02  On some systems the wcwith() function was returning a wrong
 | |
| 	  value for characters and caused characters to be displayed
 | |
| 	  incorrectly from the shell edit modes.  A work around for
 | |
| 	  this problem has been added. 
 | |
| 01-03-26  A bug in which valid scripts could produce syntax errors
 | |
| 	  when run with locales that considered characters such as "'"
 | |
| 	  to be space characters has been fixed.
 | |
| 01-03-20  A bug in which an syntax error in an arithmetic expression
 | |
| 	  entered interactively could cause the shell to go into
 | |
| 	  an infinite loop outputting the error message has been fixed.
 | |
| 01-03-10 +ksh93 accepts -l as a synonym for -L in test on systems for
 | |
| 	  which /bin/test -l tests for symbolic links.
 | |
| 01-03-10  A bug in parsing scripts in which { and } are used in place of
 | |
| 	  in and esac in case statements embedded in compound commands
 | |
| 	  has been fixed.  Use of { and } for in and esac is obsolete.
 | |
| 01-03-06  A bug in which an argument of the form foo=bar was not
 | |
| 	  being passed correctly to a traced function whose name
 | |
| 	  was foo has been fixed.
 | |
| 01-03-02  Using $(trap -p name) did not print the name of the current
 | |
| 	  trap setting for trap name.
 | |
| 01-02-26  Exported floating point variables gave incorrect results
 | |
| 	  when passing them to ksh88.  This has been fixed.
 | |
| 01-02-25  A race condition in which a coprocess which completed too quickly
 | |
| 	  would not allow subsequent coprocesses to start has been fixed.
 | |
| 01-02-25  The 'g' format specifier is now handled by printf.  It had
 | |
| 	  inadvertently been omitted.
 | |
| 01-02-20  The + was not being displayed during an execution trace
 | |
| 	  with the += assignment operator.
 | |
| 01-02-19  The error message which occurs when the interpreter name
 | |
| 	  defined on the #! line does not exist is more informative.
 | |
| 01-02-19  A bug in which $0 would not be set correctly when a
 | |
| 	  script with #! was invoked by full pathname from the
 | |
| 	  directory of the script has been fixed.
 | |
| 01-02-19  A shell script did not always pick up tty mode changes
 | |
| 	  made by external commands such as stty which could
 | |
| 	  effect the behavior of read.
 | |
| 01-02-19  The -u, -g, and -k unary tests did not give the correct
 | |
| 	  results when used with negation and this has been fixed.
 | |
| 
 | |
| 01-02-05  --- Release ksh93k+  ---
 | |
| 01-02-05  The sequence \<newline> inside $'...' was not incrementing
 | |
| 	  the line count and this has been fixed.
 | |
| 01-02-05 +Modified expansion of "${@-}" so that if no arguments are set
 | |
| 	  it results in null string rather than nothing.
 | |
| 01-02-02  memory leak problem with local variables in functions fixed.
 | |
| 01-01-25 +allow arithmetic expressions with float%int and treat them
 | |
| 	  as ((int)float)%int rather than as an error. 
 | |
| 01-01-19  read -n1 was not working and has been fixed.
 | |
| 01-01-17 +ksh now handles the case in which a here document in command
 | |
| 	  substitution $() is terminated by the trailing ).  Previously,
 | |
| 	  a new-line was needed at the end of the delimiter word. 
 | |
| 01-01-02  A bug in which a KEYBD trap would cause a multi-line token
 | |
| 	  to be processed incorrectly has been fixed.
 | |
| 00-12-10 +Arithmetic integer constants can now have L and U suffices. 
 | |
| 00-12-10  A bug in the processing of arithmetic expressions with compound
 | |
| 	  variables when the -n option is on has been fixed.
 | |
| 00-12-08  A bug in M-f and M-b from emacs mode has been fixed.  This
 | |
| 	  bug only occurs when ksh93 is compiled without MULTIBYTE enabled.
 | |
| 00-11-29  A bug in which jobs -p would yield 0 for background
 | |
| 	  jobs run in a script has been fixed.
 | |
| 00-11-21  A bug in integer arrays in which the number of elements is
 | |
| 	  incorrect when the ++ operator is applied to a non-existing
 | |
| 	  element has been fixed.  For example, integer x; ((x[3]++)).
 | |
| 00-11-20  A timing bug in which the shell could reset the terminal
 | |
| 	  group to the wrong value in the case that the a new process
 | |
| 	  changes the terminal group during startup has been fixed.
 | |
| 
 | |
| 00-10-27  --- Release ksh93k  ---
 | |
| 00-10-27  Using tab for completion now works only when applied
 | |
| 	  after a non-blank character at the end of the current line.
 | |
| 	  In other case a tab is inserted.
 | |
| 00-10-27  A bug in the emacs edit mode for ^X^E has been fixed.
 | |
| 	  The ^X^E sequence is supposed to invoke the full editor
 | |
| 	  on the current command.
 | |
| 00-10-18  A bug in which expansions of the form ${var//pattern/string}
 | |
| 	  did not work correctly when pattern was '/' or "/" has
 | |
| 	  been fixed.
 | |
| 00-10-18 +The output format for indexed arrays in compound variables
 | |
| 	  has been modified so that it can be used as input.
 | |
| 00-10-18  Assignments with name references (typeset -n) will now
 | |
| 	  implicitly unreference an existing name reference.
 | |
| 00-10-17  A bug the += append operator when a single array element
 | |
| 	  is appended to a variable that is not an array has been fixed.
 | |
| 00-10-16  A bug in which the SIGCONT signal was being sent to
 | |
| 	  each process will kill -0 or kill -n 0 has been fixed.
 | |
| 00-10-12 +The arithmetic evaluation portion has been rewritten to
 | |
| 	  perform a number of optimizations.
 | |
| 00-10-10  A bug in which name prefix matching ${!name.*} was not
 | |
| 	  checking name to see if it was a name reference has been fixed.
 | |
| 00-09-26  A bug in the multibyte version in which the width of for
 | |
| 	  non-printing characters was not correct has been fixed.
 | |
| 00-09-12 +Made changes to get multibyte editing work on UWIN for windows
 | |
| 00-09-12  A bug in which multibyte characters would be displayed incorrectly
 | |
| 	  has been fixed.
 | |
| 00-08-08  Removed build dependency on iswprint() and iswalph().
 | |
| 00-07-20  In some cases the read builtin would read more than a single
 | |
| 	  line from a pipe on standard input and therefore leave the seek
 | |
| 	  position in the wrong location.
 | |
| 00-07-05 +If the directory / is on the path, a / will not be inserted
 | |
| 	  between the directory and the file name during path searching
 | |
| 	  to avoid searching // for systems that treat this specially.
 | |
| 00-06-26  A bug in which on rare occasions wait could return before all
 | |
| 	  jobs have completed has been fixed.
 | |
| 00-06-21  A bug in which backspace did not work correctly during the
 | |
| 	  R replace directive in vi-mode has been fixed.
 | |
| 00-06-12 +Added variable name completion/expansion/listing  to the set of
 | |
| 	  completions.  Variable name completions begin with $ or "$ followed
 | |
| 	  by a letter. 
 | |
| 00-05-09  --- Release ksh93j  ---
 | |
| 00-05-09  Modified command substitution to avoid using /tmp files when
 | |
|           run on read-only file systems. 
 | |
| 00-04-17 +Modified printf to handle '%..Xc' and '%..Xs' options where X
 | |
| 	  is not an alpha character.  Previous versions core dumped with this.
 | |
| 00-04-10 +Changes to multibyte editing code were made to use standard
 | |
| 	  ISO C functions rather than methods devised before the standard.
 | |
| 00-04-09  Add %H options to printf to output strings with <"'&\t> properly
 | |
| 	  converted for use in HTML and XML documents.
 | |
| 00-04-07 +Modified getopts builtin to handle <.>..</.>< >in usage string</ >
 | |
| 	  by invoking specified function.
 | |
| 00-04-04  Added self generating man pages for bg, fc, fg, disown, jobs,
 | |
| 	  hist, let, ., and ulimit.
 | |
| 00-03-30 +The append operator += has been added and can be used
 | |
| 	  for all assignments, strings, arrays, and compound variables.
 | |
| 00-03-30 +Code was modified in several places to support automatic
 | |
| 	  generation of C locale dictionaries.
 | |
| 00-03-28  A bug in which the set and trap commands invoked with --name
 | |
| 	  type arguments would terminate the invoking script  has
 | |
| 	  been fixed.
 | |
| 00-03-27  A bug in which the library path variable was not updated  
 | |
| 	  correctly on some systems as described in the 'g' point
 | |
| 	  release has been fixed. 
 | |
| 00-03-07  printf now returns a non-zero exit status when one of
 | |
|           its arguments cannot be converted to the given type. 
 | |
| 00-03-05  The return value and error message for a command that
 | |
|           was found on the path but was not executable was set
 | |
|           incorrectly.
 | |
| 00-03-05  A prototype for ioctl() was removed from the vi edit mode.
 | |
| 
 | |
| 00-01-28  --- Release ksh93i  ---
 | |
| 00-01-28 +Most of the built-in commands and ksh itself are now
 | |
|           self documenting.  Running command --man will produce
 | |
|           screen output.  Running command --html produces the
 | |
|           man page in html format.
 | |
| 00-01-28 +The getopts builtin can process command description
 | |
|           strings to produce man pages.
 | |
| 00-01-28  A bug in which a script could terminate when getopts
 | |
|           encountered an error when invoked inside a function
 | |
|           has been fixed.
 | |
| 00-01-28  When a symbolic link was specified as the name of
 | |
|           the script to invoke by name, the value of $0 was
 | |
|           set to the real file name rather than the link name
 | |
|           in some cases and this has been fixed.
 | |
| 00-01-28  A bug in which the precision given as an argument
 | |
| 	  to printf was not working has been fixed.
 | |
| 
 | |
| 99-03-31  --- Release ksh93h  ---
 | |
| 99-03-31 +The PATH search algorithm has been modified to look
 | |
| 	  for a file named .fpath in each bin directory and if
 | |
| 	  found, to search for functions in this directory if
 | |
| 	  it cannot find the command in that directory.
 | |
| 99-03-31 +When performing pathname expansion, the shell checks
 | |
| 	  to see whether each directory it reads is case sensitive
 | |
| 	  or not, and performs the matching accordingly.
 | |
| 99-03-31 +The %T format for printing formatted date/time.
 | |
| 99-03-31 +The emacs and vi modes now handle arrow keys when
 | |
|           they use standard ANSI escape sequences.
 | |
| 99-03-31 +The TAB key can be used for completion in emacs and viraw mode.
 | |
| 99-03-31  A bug in setting .sh.editchar during the KEYBD trap
 | |
| 	  for the MULTIBYTE option was fixed in release ksh93h.
 | |
| 99-03-31  A bug in shcomp for compilation of unary operators with [[...]]
 | |
| 	  has been fixed.
 | |
| 99-03-31  A bug in which the value of $? was changed when executing
 | |
| 	  a keyboard trap has been fixed. 
 | |
| 99-03-31  The handling of SIGCHLD has been changed so that the
 | |
| 	  trap is not triggered while executing trap commands
 | |
| 	  to avoid recursive trap calls.
 | |
| 99-03-31  A bug in which a local variable in a function declared readonly
 | |
| 	  would generated an error when the function went out of
 | |
| 	  scope has been fixed.
 | |
| 99-03-31  A bug in which \<new_line> entered from the keyboard
 | |
| 	  with the KEYBD trap enabled has been fixed.
 | |
| 99-03-31  The error message for a misplaced ((, for example print ((3),
 | |
| 	  was often garbled and has been fixed.
 | |
| 99-03-31  A bug in the KEYBD trap in which escape sequences of the form
 | |
| 	  <ESC>[#~ were not being handled as a unit has been fixed.
 | |
| 99-03-31  A bug in which ksh would consider expressions like [[ (a) ]]
 | |
| 	  as syntax errors has been fixed.
 | |
| 99-03-31  A function defined as foo() without a function body
 | |
| 	  was not reported as a syntax error.
 | |
| 99-03-31  A bug in which ksh could run out of file descriptors when
 | |
| 	  a stream was repeatedly opened with exec and read from
 | |
| 	  has been fixed.
 | |
| 
 | |
| 98-04-30  --- Release ksh93g  ---
 | |
| 98-04-30 +The pipefail option has been added.  With pipefail
 | |
| 	  enabled, a pipeline will not complete until all
 | |
| 	  commands are complete, and the return value will
 | |
| 	  be that of the last command to fail, or zero if
 | |
| 	  all complete successfully.
 | |
| 98-04-30 +The name-value pair library uses the cdt library rather
 | |
| 	  than the hash library.  This change should be transparent
 | |
| 	  to applications.
 | |
| 98-04-30 +On the U/WIN version for Window 95 and Windows NT,
 | |
|           when a directory beginning with a letter followed by
 | |
|           a colon is given to cd, it is assumed to be an absolute
 | |
|           directory
 | |
| 98-04-30 +When an executable is found on a given path,
 | |
| 	  the appropriate library path variable is prepended
 | |
| 	  with a corresponding library directory.
 | |
| 98-04-30  A bug in which a name reference could be created to
 | |
| 	  itself and later cause the shell to get into an infinite
 | |
| 	  loop has been fixed.
 | |
| 98-04-30  A bug in shcomp relating to compound variables was fixed.
 | |
| 98-04-30  A bug introduced in ksh93e in which leading 0's in -Z
 | |
| 	  fields caused the value to be treated as octal for arithmetic
 | |
| 	  evaluation has been fixed.
 | |
| 98-04-30  A bug when a name reference with a shorter name than
 | |
|           the variable it references was the subject of a compound
 | |
| 	  assignment has been fixed. 
 | |
| 98-04-30  A bug which in which assignment to array variables in
 | |
| 	  a subshell could effect the parent shell has been
 | |
| 	  fixed.
 | |
| 98-04-30  read name?prompt was putting a 0 byte at the end of the
 | |
| 	  prompt on standard error.
 | |
| 98-04-30  A bug in [[ string1 > string2 ]] when ksh was run with -x
 | |
| 	  has been fixed.
 | |
| 98-04-30  A bug in which the escape character was not processed
 | |
| 	  correctly inside {...} when brace expansion is enabled
 | |
| 	  has been fixed, for example {\$foo}.
 | |
| 98-04-30  A bug in line continuation in here-documents has been
 | |
| 	  fixed.
 | |
| 98-04-30  The default base when not specified with typeset -i is
 | |
| 	  10 in accordance with the documentation.  Previously,
 | |
| 	  the value was determined by the first assignment.   
 | |
| 98-04-30  A parsing bug in which a # preceded alphanumeric
 | |
| 	  characters inside a command substitution caused
 | |
| 	  a syntax error to be reported has been fixed.
 | |
| 98-04-30  A bug in which a decimal constant represented as 10#ddd
 | |
| 	  where ddd was more than five digits generated a syntax
 | |
| 	  error has been fixed.
 | |
| 98-04-30  A bug in here document expansion in which ${...} expansions
 | |
| 	  were split across buffer boundaries has been fixed.
 | |
| 98-04-30 +The sh_fun() function now takes third argument which
 | |
| 	  is an argument list for the invoked discipline function
 | |
| 	  or built-in.
 | |
| 98-04-30 +A callback function can be installed which will give
 | |
|           notification of file duplications and file closes.
 | |
| 98-04-30  When ksh is compiled on systems that do not use fork()
 | |
| 	  current option settings where not propagated to sub-shells.
 | |
| 
 | |
| 97-06-30  --- Release ksh93f  ---
 | |
| 97-06-30 +Hostnames in addition to host addresses can be given in
 | |
| 	  /dev/tcp/host/port virtual file names.
 | |
| 97-06-30  File name completion and expansion now quotes special
 | |
| 	  characters in file names from both emacs and vi edit modes.
 | |
| 97-06-30  An empty for list behave like a for list with null expansions.
 | |
| 	  It produces a warning message with sh -n.
 | |
| 97-06-30 +The code has been modified to work with EBCDIC as well as ASCII.
 | |
| 97-06-30  A bug which would cause the secondary prompt to be
 | |
| 	  displayed when a user entered a literal carriage
 | |
| 	  return has been fixed.
 | |
| 97-06-30  A bug which caused ksh read -s name to core dump was
 | |
| 	  fixed.
 | |
| 97-06-30  A bug with the expansion of \} and \] inside double
 | |
| 	  quoted strings that also contained variable expansions
 | |
| 	  has been fixed
 | |
| 97-06-30  Changes in the ksh93e point release caused autoload
 | |
| 	  functions invoked from within command substitution
 | |
| 	  to fail.  This has been fixed.
 | |
| 97-06-30  A bug in the processing of here-documents that could
 | |
| 	  prevent variable substitution to occur after $(...) command
 | |
| 	  substitution for long here documents has been fixed.
 | |
| 97-06-30  A bug caused by a race condition that could cause SIGTERM
 | |
| 	  to be ignored by a child process has been fixed.
 | |
| 97-06-30  A bug which prevented the startup of a coprocess immediately
 | |
| 	  after killing a running coprocess has been fixed.
 | |
| 97-06-30  ulimit foobar, where foobar is not an arithmetic
 | |
| 	  expression, now gives an error message as it did with ksh88
 | |
| 	  instead of setting the file size limit to 0.
 | |
| 97-06-30  A bug which could cause an interactive shell to terminate when
 | |
| 	  the last process of a pipeline was a POSIX function was fixed.
 | |
| 97-06-30  A bug which could cause command substitution of a shell script
 | |
| 	  to core dump has been fixed.
 | |
| 97-06-30  A security hole was fixed in suid_exec.
 | |
| 97-06-30  Arithmetic functions such as pow() that take more than
 | |
| 	  one argument, did not work if arguments other than the
 | |
| 	  first contained parenthesized sub-expression.
 | |
| 97-06-30  The error message from a script containing an incomplete
 | |
| 	  arithmetic expression has been corrected.
 | |
| 97-06-30  A bug which caused a core dump on some machines when
 | |
| 	  the value of a name reference contained a positional
 | |
| 	  parameter and the name reference was not defined inside
 | |
| 	  a function has been fixed.
 | |
| 97-06-30  Arithmetic expressions now correctly handle hexadecimal
 | |
| 	  constants.
 | |
| 97-06-30  A bug in which integer variables could be expanded
 | |
| 	  with a leading 10# when declared with typeset -i
 | |
| 	  multiple times has been corrected.
 | |
| 97-06-30  A bug in which IFS wasn't correctly restored when
 | |
| 	  set within command substitution has been fixed.
 | |
| 97-06-30  The _ character is now considered as part of a word
 | |
| 	  with the M-f and M-b emacs directives as it was in ksh88.
 | |
| 97-06-30  A bug in brace pattern expansions that caused expressions
 | |
|           such as {foo\,bar,bam} to expand incorrectly have been fixed.
 | |
| 
 | |
| 
 | |
| 96-07-31  --- Release ksh93e  ---
 | |
| 96-07-31 +The math functions, atan2, hypot, fmod, and pow were added.
 | |
| 96-07-31 +When a shared library is loaded, if the function lib_init()
 | |
| 	  is defined in the library, it is invoked the first time that
 | |
| 	  the library is loaded with builtin -f library.
 | |
| 96-07-31  The k-shell information abstraction database option, KIA,
 | |
|           has been revamped.
 | |
| 96-07-31  Empty command substitutions of the form $() now work.
 | |
| 	  whence -v foo now gives the correct result after calling
 | |
| 	  builtin -d foo. 
 | |
| 96-07-31  A bug in right to left arithmetic assignment for which
 | |
| 	  the arithmetic expression (( y = x = 1.5 )) did not
 | |
| 	  yield 1 for y when x was declared typeset -i was fixed.
 | |
| 96-07-31  printf has been fixed to handle format  containing  
 | |
| 	  and/or  145 correctly.  In addition, characters following
 | |
| 	  %b in the format string are no longer displayed when
 | |
| 	  the operand contains <JOIN>.
 | |
| 96-07-31  A bug in printf that could cause the %E format to
 | |
| 	  produce unnormalized results has been fixed.
 | |
| 96-07-31  A bug which causes some arithmetic expressions to be
 | |
| 	  incorrectly evaluated as integer expressions rather
 | |
| 	  that floating point has been fixed.
 | |
| 96-07-31  Functions defined inside a subshell no longer remain
 | |
| 	  defined when the subshell completes.
 | |
| 96-07-31  The error message from sh -c ';echo foo' has been
 | |
| 	  corrected.
 | |
| 96-07-31  The format for umask -S has been changed to agree
 | |
| 	  with the specification in the POSIX standard.
 | |
| 96-07-31  A bug that caused side effects in subscript evaluation
 | |
| 	  when tracing was enabled for subscripts using ++ or --
 | |
| 	  has been fixed.
 | |
| 96-07-31  To conform to the Posix standard getopts has been changed
 | |
| 	  so that the option char is set to ? when it returns with
 | |
| 	  a non-zero exit status.
 | |
| 96-07-31  The handling of \} inside ${name...} has been fixed so
 | |
| 	  that the  quotes the }.
 | |
| 96-07-31  A bug that caused the read builtin to resume execution
 | |
| 	  after processing a trap has been fixed.
 | |
| 96-07-31  [[ -s file ]] has been fixed so that if file is open
 | |
| 	  by ksh, it is flushed first.
 | |
| 96-07-31  In some cases attributes and sizes for non exported
 | |
| 	  variables weren't being reset before running a script.
 | |
| 96-07-31  The value of TMOUT was affected by changes make to
 | |
| 	  it in a subshell.
 | |
| 96-07-31  The jobs command did not reflect changes make by
 | |
| 	  sending the CONT signal to a command.
 | |
| 96-07-31  The error message for ksh -o unknown was incorrect.
 | |
| 96-07-31  Functions invoked as name=value name, did not use
 | |
| 	  values from the calling scope when evaluating value.
 | |
| 96-07-31  A bug in which the shell would reexecute previously
 | |
| 	  executed code when a shell script or coprocess was
 | |
| 	  run in the background has been fixed.
 | |
| 96-07-31  A bug in which an empty here-document would leave
 | |
| 	  a file descriptor open has been fixed.
 | |
| 96-07-31  A bug in which $(set -A array ...) would leave a
 | |
| 	  side effect has been fixed.
 | |
| 96-07-31  A discipline function for a global variable defined
 | |
| 	  within a function defined with the function keyword,
 | |
| 	  incorrectly created a local variable of the same name
 | |
| 	  and applied the discipline to it.
 | |
| 
 | |
| 95-08-28  --- Release ksh93d  ---
 | |
| 95-08-28  The  character was not handled correctly in replacement
 | |
| 	  patterns with ${x/pattern/replace}.
 | |
| 95-08-28  A bug with read in which the line did not end with
 | |
| 	  a new-line has been fixed.
 | |
| 95-08-28  A bug in file name generation which sometimes
 | |
| 	  appended a . for filenames that ended in / has
 | |
| 	  been fixed.
 | |
| 95-08-28 +If a process is waited for after a status has
 | |
| 	  been returned by a previous wait, wait now
 | |
| 	  returns 127.
 | |
| 95-08-28  A bug with hist (fc) -e which prevented a command
 | |
| 	  to re-executed after it had been edited has been fixed.
 | |
| 95-08-28  A bug which prevented quoting from removing the meaning
 | |
| 	  of unary test operators has been fixed.
 | |
| 95-08-28  A bug with typeahead and KEYBOARD traps with the
 | |
|           MULTIBYTE option set has been fixed.
 | |
| 95-08-28 +Builtin functions can take a third argument which is
 | |
|           a void*.
 | |
| 95-08-28  The nv_scan() function can restrict the scope of a walk
 | |
|           to the top scope.
 | |
| 
 | |
| 95-04-31  --- Release ksh93c  ---
 | |
| 95-04-31  The expansion of "$@" was incorrect when $1 was the null
 | |
| 	  string.
 | |
| 95-04-31  A bug which could incorrectly report a syntax error in
 | |
| 	  a backquoted expression when a $ was preceded by \\
 | |
| 	  has been fixed.
 | |
| 95-04-31  A bug which prevented the shell from exiting after
 | |
| 	  reporting an error when failing to open a script
 | |
| 	  has been fixed.
 | |
| 95-04-31  A bug that could lead to memory corruption when a
 | |
| 	  large here document that required parameter or command
 | |
| 	  substitution was expanded has been fixed.
 | |
| 95-04-31  A bug that could cause a core dump on some systems
 | |
| 	  after ksh detected an error when reading a function
 | |
| 	  has been fixed.
 | |
| 95-04-31  A bug which could cause a coprocess to hang when
 | |
| 	  reading from a process that has terminated has been fixed.
 | |
| 95-04-31  A bug which caused a script to terminate when set -e
 | |
| 	  was on and the first command of and && or || list
 | |
| 	  failed has been fixed.
 | |
| 95-04-31  A bug with here documents inside $(...) when the delimiter
 | |
| 	  word is an identifier has been fixed.
 | |
| 95-04-31  A bug which caused $0 to display the wrong value when
 | |
| 	  a script was invoked as an argument to the . command
 | |
| 	  and the eval command has been fixed.
 | |
| 95-04-31  A bug that could cause the built-in sleep to hang
 | |
| 	  has been fixed.
 | |
| 95-04-31  A bug introduces in 12/28/93b which caused the backslash
 | |
| 	  to be removed when it was followed by digit inside double
 | |
| 	  quotes in some instances has been fixed.
 | |
| 95-04-31  A bug which could cause a core dump if ksh was invoked with
 | |
| 	  standard input closed has been fixed.
 | |
| 95-04-31  A bug which could cause a core dump if typeset -A was
 | |
| 	  specified for an existing variable has been fixed.
 | |
| 95-04-31  Variables that were unset but had attributes such as readonly
 | |
| 	  and export were not listed with readonly, export and typeset.
 | |
| 95-04-31  Several problems with signals have been fixed.
 | |
| 95-04-31  A bug which prevented ulimit -t from working has been fixed. 
 | |
| 	  Also, a bug in which failed ulimits could cause a core dump
 | |
| 	  has also been fixed.
 | |
| 95-04-31  A bug in expansion of the form ${name/#pattern/string} and
 | |
| 	  ${name/%pattern/string} has been fixed.
 | |
| 95-04-31  A bug which caused read -r on a line that contained only
 | |
| 	  blanks to get a non-null value has been fixed.
 | |
| 95-04-31  A bug introduced in the 'a' point release in which
 | |
| 	  ${x='\'} expanded to  when x was unset has been fixed.
 | |
| 95-04-31  A bug which prevented a trap on EXIT from being executed
 | |
| 	  when the last command in a script was a function invocation
 | |
| 	  has been fixed.
 | |
| 95-04-31  A bug which caused an interactive shell ignore input when
 | |
| 	  standard error was redirected to a file with exec,
 | |
| 	  and then restored with exec 2>&1 has been fixed.
 | |
| 95-04-31  An interactive shell turns on monitor mode even when
 | |
| 	  standard error has been redirected to a file.
 | |
| 95-04-31  A bug which could cause standard input to be incorrectly
 | |
| 	  positioned for the last command of a script has been fixed.
 | |
| 95-04-31  A bug in the edit modes which allowed walking back in
 | |
| 	  the history file for more than HISTSIZE commands has
 | |
| 	  been fixed.
 | |
| 95-04-31  A bug which could cause a core dump if variable TMPDIR was
 | |
| 	  changed between two command substitutions has been fixed.
 | |
| 95-04-31. A bug which prevented a trap on EXIT from being cleared
 | |
| 	  has been fixed.
 | |
| 95-04-31  A bug fixed for the v directive in vi MULTIBYTE has been
 | |
|           fixed.
 | |
| 95-04-31  Code to for IFS handling of multibyte characters has
 | |
|           been added.
 | |
| 95-04-31  The displaying of multibyte strings in export, readonly,
 | |
|           typeset, and execution traces has been fixed.
 | |
| 95-04-31  Variables inside functions are now statically scoped.
 | |
| 	  The previous behavior was never documented.
 | |
| 95-04-31  Variables inside functions are now statically scoped.
 | |
|           The previous behavior was never documented.
 | |
| 95-04-31  A few changes have been made to the name-value library
 | |
|           that affect built-ins that use disciplines.  The
 | |
|           changes allow disciplines to be shared by variables
 | |
|           and should make it possible to add new disciplines
 | |
|           without recompilation.
 | |
| 95-04-31 +The name-value library interface has undergone significant
 | |
|           change for this revision.  See the new nval.3 man page.
 | |
| 
 | |
| 94-12-31  --- Release ksh93b  ---
 | |
| 94-12-31 +Variables inside functions are now statically scoped.
 | |
|           The previous behavior was never documented.
 | |
| 94-12-31 +If IFS contains two consecutive identical characters belonging
 | |
| 	  to the [:space:] class, then this character is treated as
 | |
| 	  a non-space delimiter so that each instance will delimit
 | |
| 	  a field.  For example, IFS=$'\t\t' will cause two consecutive
 | |
| 	  tabs to delimit a null field.
 | |
| 94-12-31 +The getopts command has a -a name option that specifies a
 | |
| 	  name that will be used for usage messages.
 | |
| 94-12-31  A bug which caused unset RANDOM to dump core has been
 | |
| 	  fixed.
 | |
| 94-12-31  A bug which prevented return for terminating a profile
 | |
| 	  or ENV file has been fixed.
 | |
| 94-12-31  A bug which prevented standard input from being
 | |
| 	  directed to /dev/null for background jobs when
 | |
| 	  monitor mode was turned off has been fixed.
 | |
| 94-12-31  Statements of the form typeset -options var[expr]=value
 | |
| 	  did not perform substitutions on expr as expected.
 | |
| 94-12-31  A bug which prevented the shell from sending a HUP
 | |
| 	  signal to some background jobs that were not disowned
 | |
| 	  has been fixed.
 | |
| 94-12-31  A bug which allowed a script to trap signals that are
 | |
| 	  ignored at the time that the shell was invoked by exec
 | |
| 	  has been fixed.
 | |
| 94-12-31  A bug which could cause a core dump when a discipline
 | |
| 	  function was unset within a discipline was fixed.
 | |
| 94-12-31  The typeset builtin now accepts a first argument of
 | |
| 	 + or - for compatibility with ksh88.
 | |
| 94-12-31  For compatibility with ksh88, the results of expansions
 | |
| 	  of command arguments will treat the extended character
 | |
| 	  match characters ()|& as ordinary characters.
 | |
| 94-12-31  A bug which caused read to fail on a file that was
 | |
| 	  open for read/write with <> when the first operation
 | |
| 	  was print or printf has been fixed.
 | |
| 94-12-31  When a job is suspended, it is put on the top of
 | |
| 	  the job list as required by the POSIX standard.
 | |
| 94-12-31  The value of OPTARG when an option that required
 | |
| 	  an argument but didn't have one was incorrect in the
 | |
| 	  case the the option string began with a :.
 | |
| 94-12-31  A bug which caused the terminal to get into a bad
 | |
| 	  state with some KEYBD traps in vi-mode has been fixed.
 | |
| 94-12-31  A bug which caused an invalid trap to cause a script
 | |
| 	  to terminate, rather than just return an error, has
 | |
| 	  been fixed.
 | |
| 94-12-31  Backreferencing sub-expressions in patterns and replacement
 | |
| 	  strings now works.
 | |
| 94-12-31  A bug in chmod which caused the -R option to fail has
 | |
| 	  been fixed.
 | |
| 94-12-31 +More signal names have been added for Solaris
 | |
| 
 | |
| 94-06-30  --- Release ksh93a  ---
 | |
| 94-06-30  An expansion bug which causes portions of a word after
 | |
| 	  a $((...)) expansion that contains a nested $var expansion
 | |
| 	  to be lost has been fixed.
 | |
| 94-06-30  A bug that caused a core dump when a script that did not
 | |
| 	  have PWD set and did a cd inside command substitution
 | |
| 	  has been fixed.
 | |
| 94-06-30  A bug which caused a core dump on some machines when
 | |
| 	  the LANG variable was assigned to has been fixed.
 | |
| 94-06-30  A bug which incorrectly handled set disciplines that
 | |
| 	  performed arithmetic evaluation when the discipline
 | |
| 	  was called from the arithmetic evaluator has been fixed.
 | |
| 94-06-30  A bug caused by an EXIT trap inside a function that
 | |
| 	  was executed in a subshell was fixed.
 | |
| 94-06-30  If foo is a function, and not a program, then command foo
 | |
| 	  now reports that foo isn't found rather than invoking foo.
 | |
| 94-06-30  The previous version incorrectly listed -A as an
 | |
| 	  invocation option.  The -A option is only for set. 
 | |
| 94-06-30  A bug was fixed which caused ksh to loop when execution trace
 | |
| 	  was enabled and the PS4 prompt required command substitution.
 | |
| 94-06-30  A bug which could cause the job control switch character
 | |
| 	  to be disabled when a script that enabled monitor mode
 | |
| 	  terminated was fixed.
 | |
| 94-06-30  A bug in the macro expansion global replacement operator //,
 | |
| 	  when the pattern began with a [ or +( has been fixed.
 | |
| 94-06-30  A bug which prevented ~ expansion from occurring when
 | |
| 	  it was terminated with a colon inside an assignment
 | |
| 	  has been fixed.
 | |
| 94-06-30  A bug in the dot command which prevented autoload functions
 | |
| 	  from working has been fixed.
 | |
| 94-06-30  A bug which caused a variable to be unset if the
 | |
| 	  its value were expanded inside a set discipline has
 | |
| 	  been fixed.
 | |
| 94-06-30  Whence -a now longer reports that a defined function
 | |
| 	  is undefined.
 | |
| 94-06-30  A bug on some systems in which $0 would be incorrect
 | |
| 	  in scripts invoked by name has been fixed.
 | |
| 94-06-30  Here documents with an empty body now work.
 | |
| 94-06-30  A bug which disabled argument passing and resetting
 | |
| 	  of options for a script invoked by name inside a
 | |
| 	  function has been fixed.
 | |
| 94-06-30  A bug in which an EXIT trap set the caller of a function
 | |
| 	  would be executed if a command called inside a function
 | |
| 	  was not found has been fixed.
 | |
| 94-06-30  A bug which allowed a script to trap signals that are
 | |
| 	  ignored at the time that the shell was invoked has
 | |
| 	  been fixed.
 | |
| 94-06-30  A bug which caused 2<&1- when applied to a shell built-in
 | |
| 	  to leave standard input closed has been fixed.
 | |
| 94-06-30  A bug which caused the shell to incorrectly parse
 | |
| 	  $() command substitutions with nested case statements
 | |
| 	  has been fixed.
 | |
| 
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="pax changes">pax changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 12-05-25 file.c: #include <tm.h> for tmdate() prototype
 | |
| 12-05-14 pax.c: use Format_t.match to eliminate explicit format references
 | |
| 12-05-14 pax.c: add xz format -- requires local system standalone xz command
 | |
| 12-05-07 tar.sh: fix file/option quoting, --show
 | |
| 12-05-04 tar.sh: snarf update from Brian Russell
 | |
| 12-04-20 pax.c: verify that --maxout > --blocksize (else it recurses on newio()!)
 | |
| 12-04-17 pax.c,copy.c: fix multiple prompt for --write --yes
 | |
| 12-04-17 misc.c: --yes accepts { 'y' 'Y' '1' }, { 'q' 'Q' '-' } => remaining no
 | |
| 11-06-21 pax.c,copy.c,file.c: add --filter option mtime=<date-string>
 | |
| 11-03-17 copy.c: fix bug that didn't list special files for --verbose
 | |
| 11-02-11 pax-tnef.c: handle "" member names -- really?
 | |
| 11-02-02 pax-pds.c: ident now requires at least one dir entry
 | |
| 10-10-10 file.c: don't prune state.update dirs based on time -- doh
 | |
| 10-10-04 pax.c,misc.c: fix --meter off-by-one bugs for long paths
 | |
| 10-10-04 pax.c: add #updated files to --update --verbose summary
 | |
| 10-10-04 pax.c: --meter implies --verbose summary
 | |
| 10-09-01 pax.c: RE errors => exit(2)
 | |
| 10-08-27 add -U, --different to update files with different <mtime,size,mode>
 | |
| 10-08-22 format.c: archive update requires (ap->io->mode & O_RDWR)
 | |
| 10-08-11 use conformance("standard",0) test
 | |
| 10-08-09 fix extended header size key precedence/performance
 | |
| 10-08-09 use { SEEK_DATA SEEK_HOLE } for -rw if available
 | |
| 10-08-08 disable SOKTYPE
 | |
| 10-06-21 align { --append --update } with posix
 | |
| 10-06-14 ug+s only for -p [eo]
 | |
| 10-06-14 atime in archive by default for formats that support it
 | |
| 10-06-14 add state.resetacctime to separate -t from state.acctime
 | |
| 10-06-12 fix --exact to list matched directory hierarchies
 | |
| 10-06-01 sync with ast api 20100601
 | |
| 10-01-22 pax.c: fix -rw to 1 char dir name that dropped '/' separator
 | |
| 09-09-09 ax-tar.c: handle gnu tar octal overflow extensions for all octal fields
 | |
| 08-12-31 pax.c,pax-vczip.c: add vczip compression format
 | |
| 08-05-08 pax.tst: handle systems with privileged chmod +t / mkfifo
 | |
| 08-05-01 pax-tar.c: handle sfsprintf() ' '
 | |
| 07-12-11 delta2patch.sh: drop pax -v, add pax --nosummary
 | |
| 07-12-06 delta2patch.sh: add
 | |
| 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
 | |
| 07-03-14 pax-tnef.c: swap op == 3 for all arch!
 | |
| 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
 | |
| 05-12-14 pax: fix --filter to work for --read and expand command %(...)
 | |
| 05-06-07 format.c: fix inter volume fill logic
 | |
| 05-05-28 pax: improve "junk data after volume" checks
 | |
| 05-05-22 pax: fix --append for the formats that can handle it
 | |
| 05-05-18 pax-flash.c: add solaris flash embedded archive format read
 | |
| 05-03-19 options.c: -l == --link (not --local) per posix
 | |
| 05-02-08 misc.c: fix interaction between delta and --meter
 | |
| 05-02-07 delta.c,pax.h: don't output delta when src==tar -- duh
 | |
| 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
 | |
| 04-03-17 pax-tar.c: add tar_putepilogue to *all* tar variants
 | |
| 	 format.h: let pax-tar.c determine tar variant order
 | |
| 	 bio.c: fix a few printf format long long mismatches: %ld => %I*d
 | |
| 	 format.c: map ident buffer CC_ASCII => CC_NATIVE
 | |
| 04-02-29 format.c: drop ap->format=0 for possible deltaverify()
 | |
| 	 format.c: handle CC_ASCII=>CC_NATIVE getprologue() header translation
 | |
| 	 options.h,options.c: add --forceconvert to force --from
 | |
| 04-02-25 pax.c: regcomp REG_SHELL => REG_LEFT|REG_RIGHT
 | |
| 04-02-24 pax.c: add --action
 | |
| 	 copy.c: fix file list peek premature ' => ' ' bug
 | |
| 	 pax.tst: add --action,--checksum,--filter,--install tests
 | |
| 04-02-21 file.c: fix VPATH state.pwd corruption
 | |
| 04-02-14 add -F --fsync to call fsync(2) for each copied file
 | |
| 04-01-27 bio.c: fix bget() buffer size alignment/mismatch overflow
 | |
| 04-01-24 pax-*.c: use paxlib.h interfaces
 | |
| 04-01-03 pax-cab.c: move to paxlib/cab as standalone plugin
 | |
| 	 pax-calib.c: move to paxlib/calib as standalone plugin
 | |
| 04-01-01 add --passphrase=passphrase, -E
 | |
| 03-12-24 pax-zip.c: move to paxlib/zip as standalone plugin
 | |
| 03-12-18 paxlib.h: add paxpart(), link with -lcodex for paxlib plugins
 | |
| 03-12-05 pax-zip.c: fix EXT header logic
 | |
| 03-12-01 rename OPT_delta_size to OPT_uncompressed: !=0 => compressed
 | |
| 	 list compression % in delta op field
 | |
| 03-11-25 paxlib.h: add external format dll interface
 | |
| 03-11-20 pax-calib.c: add file suffix heuristics
 | |
| 03-11-19 pax-calib.c: convert ibm -INC [edit comment] to COPY [REPLACING]
 | |
|          pax-calib.c: handle line size > 80
 | |
| 03-11-11 pax-pds.c: add mvs pds listing
 | |
| 03-11-06 regression tests finally pass after Format_t method switch
 | |
| 03-10-31 Format_t converted to true method
 | |
| 03-10-20 initial readonly ca-librarian support
 | |
| 03-10-01 add pax delta format -- groundwork for vcdiff deltas
 | |
| 03-09-23 pax.tst: change test file names for same ascii/ebcdic sort
 | |
| 	 pax.c: extended header values with length need no quoting
 | |
| 03-09-11 default output format now ustar -- should eventually be pax
 | |
| 	 format rename: tar=>oldtar, ustar=>ustar|tar
 | |
| 	 add --testdate=date regression test hook
 | |
| 	 add --uid=id --gid=id
 | |
| 	 ascii vs. ebcdic cleanup
 | |
| 03-09-10 private static cleanup
 | |
| 03-09-09 xopen sync and { pax ustar } format fixes, <tv.h> interface
 | |
| 03-06-21 format.c: add ccode conversion check to putheader()
 | |
| 03-05-28 file.c: fix -vrw directory double list
 | |
| 	 update to new <ccode.h> interface
 | |
| 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)
 | |
| 02-12-13 format.c: fix TNEF bug that did bget(n) for n>buffersize
 | |
| 02-10-23 misc.c: fix meter buffer overflow
 | |
| 02-10-20 pax: drop experimental OMF; use ardirlist() to list ar types
 | |
| 	 pax: add -t for x/open
 | |
| 02-10-18 pax: add tar/ustar swap and inter-volume junk block checks
 | |
| 02-09-09 format.c: handle all 11 octal digits in cpio format size
 | |
| 02-09-05 file.c: fix chmod() loop at exists=0011 on case ignorant filesystems
 | |
| 02-08-19 pax: cmd line patterns applied before -i or -s path edits
 | |
| 	 pax: add posix -c for --invert
 | |
| 02-08-06 pax: change --meter to use * instead of non-portable inverse video
 | |
| 02-07-17 pax: handle gnu tar largefile size extension
 | |
| 02-06-26 pax: fix regsubexec() edited symlink text buffer clobber
 | |
| 02-05-24 pax: update to use regsubcomp(),regsubexec()
 | |
| 02-05-07 pax: use <ardir.h>,-lardir for library archives
 | |
| 02-04-23 pax: add dos omf library read
 | |
| 01-12-07 pax: fix --meter to retain paths containing " -- "
 | |
| 01-12-06 pax: fix --meter to stop at 100% (don't tell coach)
 | |
| 01-10-20 pax: describe the 4 operation modes in separate paragraphs
 | |
| 01-10-18 pax: fix --meter for paths containing <\>n</\>\r\v
 | |
| 01-09-06 pax: add ms tnef (transport neutral encapsulation format) archive read
 | |
| 01-08-11 pax: fix tar_checksum() w.r.t. CC_NATIVE!=CC_ASCII
 | |
| 01-06-28 pax: fix --from --to bio logic that sometimes double converted
 | |
| 01-04-24 pax: --from & --to now associated with archive instead of global state
 | |
| 01-04-17 pax: --from conversion only done if no control chars in first 256
 | |
| 01-04-01 pax: fix --intermediate to create missing dirs first
 | |
| 01-02-27 pax: add lchmod() and lchown() for symlink() restoration
 | |
| 01-02-08 pax.tst: add -L and -P to symlink edit test
 | |
| 01-02-07 format.c: fix malloc off-by-one for vdb format read
 | |
| 01-02-02 file.c: fix duplicate -s map in addlink()
 | |
| 00-12-20 bio.c: include <sys/ioctl.h> for systems that miss _IOW() etc.
 | |
| 00-10-31 format.c: handle rpm 4.0 and newer
 | |
| 00-09-20 copy.c: always allocate state.tmp.lst!
 | |
| 00-08-31 change paths in delta archive: -rf i -z - -s e -wf o -z - [almost]
 | |
| 00-08-11 copy.c: drop memalign() call for _std_malloc==1 in libast
 | |
| 	 copy.c: save filter path from sfgetr() reset
 | |
| 00-06-01 pax: fix mime format size by dropping last \r
 | |
| 00-05-26 pax: astconf("CONFORMANCE",0,0)=="standard" inhibits some extensions
 | |
| 	 pax: check USTAR file and link name lengths
 | |
| 00-04-01 pax.tst: export TZ=EST5EDT; new tests should be UCT
 | |
| 00-03-11 pax: add encapsulated mime format read
 | |
| 	 pax: fix vdb block count
 | |
| 00-02-14 pax: fix hard link read that didn't apply -s edit
 | |
| 	 pax: logical|physical filter options
 | |
| 00-01-04 pax: fix rpm embedded archive hard seek
 | |
| 	 pax: --filter implies --nodescend
 | |
| 	 pax: add --meter
 | |
| 	 pax: handle ms PORTAR '' => '/' path separator
 | |
| 99-11-19 pax: try `ratz -c' if `gunzip' not found
 | |
| 99-11-11 add --checksum, --install, --local, --preserve=s
 | |
| 99-11-04 fix zip for archives with EXTLOC headers
 | |
| 	 don't generate //* file names
 | |
| 99-10-31 pax: add tgz == tar:gzip, --filter=-
 | |
| 99-08-11 bio: fix end of medium handling
 | |
| 99-06-01 restore -T == --test
 | |
| 99-05-28 pax: add rpm read
 | |
| 99-05-21 pax: fix -rw umask(0) bug
 | |
| 99-05-17 pax: fix chmod() delay for ug+s,+t
 | |
| 99-05-11 nocom: long options
 | |
| 99-05-09 pax: sfopen(sfstdin,0,"rt") for input file list
 | |
| 99-05-01 pax: state.xdev => FTW_MOUNT!!
 | |
| 99-04-01 pax: fix Integral_t for sizeof(long)==8
 | |
| 	 pax: fix ]] in optget usage
 | |
| 99-03-17 pax: better st_mode preservation
 | |
| 99-03-01 pax: fix dirprefix() prune to work in all cases
 | |
| 	 pax: add savepath() to handle >PATH_MAX paths
 | |
| 99-02-06 pax: update to new optget()
 | |
| 99-01-11 pax: add bzip2 compression support
 | |
| 98-10-01 pax: fix -rw hard link bug
 | |
| 	 pax: fix -o preserve=* option.level inconsistencies
 | |
| 98-08-11 cpio.sh: fix with getopts
 | |
| 	 pax: increase -rw default buffer size
 | |
| 	 pax: use REG_DELIMITED to parse -s
 | |
| 98-04-01 fix tar delta bug that set st_size=0 before consuming delta head/tail
 | |
| 	 pax -<flag> '?' lists help info for flag
 | |
| 	 fix -rw bugs introduced by recent delta fixes
 | |
| 	 testpax: add regression tests
 | |
| 	 fileout: add EIO memalign fallback to track sgi bug
 | |
| 98-03-19 fix tar delta epilogue check
 | |
| 	 fix delta pass checks
 | |
| 	 fix off_t vs. file size mismatches
 | |
| 98-03-17 umask(0) only if -o preserve=* in effect
 | |
| 	 add File_t.ro to mark readonly files/paths
 | |
| 98-02-14 add -o intermediate to copy output to intermediate before commit
 | |
| 98-01-23 use %I#d scanf format to get off_t right
 | |
| 98-01-11 -K == -o keepgoing
 | |
| 	 -x format on read accepts that format only (useful with -o keepgoing)
 | |
| 97-12-07 add 4 NULs to work around gunzip bug that peeks beyond EOF
 | |
| 97-11-11 use PROC_FD_PARENT to let procopen() close parent fd
 | |
| 97-10-31 cab list works; anyone have LZX or QUANTUM decompress code?
 | |
| 97-09-22 fix vdb format write
 | |
| 97-08-11 fix omitted missdir() call
 | |
| 97-07-17 -r attempts chmod u+w along with missdir and remove
 | |
| 	 -rl preserves existing links if possible
 | |
| 	 beginnings of cab file read
 | |
| 97-05-09 fix putepilogue() with off_t boundary
 | |
| 96-12-25 zip archive header magic fix
 | |
| 	 use MTIOCGETBLKINFO to determine default tape blocksize
 | |
| 	 -o eom=!command uses $(command read|write part [file]) for next file
 | |
| 	 -s ',.*,-,' cats to stdout
 | |
| 	 -x pax support for >2GB file size
 | |
| 96-11-28 off64_t tweaks
 | |
| 	 drop -r -w -x order dependency
 | |
| 	 undo ccmaps() in bunread()
 | |
| 	 add explicit O_RDONLY checks (!= 0 on some systems)
 | |
| 96-10-11 change to <ccode.h> from mem[ae]to[ae]()
 | |
| 96-08-11 add -o to={ascii|ebcdic} -o from={ascii|ebcdic} from mvs
 | |
| 96-02-29 enable -rw setfile() -- why was it disabled in the first place?
 | |
| 	 fix stdin file list peek bug that dropped leading files
 | |
| 96-02-09 handle zip archives on input
 | |
| 96-01-18 AT&T Research now
 | |
| 	 switch to <regex.h>
 | |
| 95-11-24 don't check for compressed format if already uncompressing
 | |
| 95-11-18 ignore empty file list lines
 | |
| 95-10-31 fix and compensate for cpio header hard link size bug
 | |
| 95-10-11 drop "blocking ignored in pass mode" message
 | |
| 	 aschk symlink data need not have trailing ' '
 | |
| 95-09-01 fix nocom  handling
 | |
| 95-08-11 builtin nocom for -o filter=nocomment
 | |
| 	 more delta tracing
 | |
| 	 vd02 delta algorithm
 | |
| 95-07-17 fix -w output to stdout initialization bug
 | |
| 	 fix stdin file list peek bug that dropped trailing files
 | |
| 95-05-09 don't check member count unless its really a trailer
 | |
| 	 sfkeyprintf lookup string arg is now the format conversion character
 | |
| 	 initialize output archive for -rw to stdout archive
 | |
| 	 misc.c had putc() and fgets()!
 | |
| 	 unused var cleanup
 | |
| 	 add return to listprintf()
 | |
| 	 fix delta pass missing dir fd bug
 | |
| 	 fix dirprefix for /
 | |
| 	 add bax.sh as an *example*
 | |
| 95-04-01 with proto va_start() must come before any arg references
 | |
| 	 fix delta bug that failed to mark emitted or skipped members
 | |
| 	 allow -z for patch deltas
 | |
| 	 be sure to set ap->format before binit()
 | |
| 	 fix ordering bug that botched most deltas!
 | |
| 	 use file.name (after -s maps) rather than file.path in delta hash
 | |
| 	 fix bget() bug that skipped checksum
 | |
| 95-03-19 first round with POSIX 1003.2 1995 
 | |
| 	 handle file holes on input
 | |
| 	 delta header contains member index and trailer size
 | |
| 	 delta trailer contains member checksum
 | |
| 	 delta epilogue contains member count
 | |
| 95-03-01 internal redesign using Archive_t handles instead of global state
 | |
| 	 -o ordered (-O) allows single pass through base
 | |
| 95-02-14 make -u work with VPATH
 | |
| 	 -x composes gzip,compress,delta,delta88,ignore,patch with real formats
 | |
| 	 -x gzip:tar, -x gzip,tar, -x 'gzip tar' accepted
 | |
| 	 -x delta is equivalent to -z -
 | |
| 	 -o delta deleted
 | |
| 	 fix OPT_owner null dereference
 | |
| 	 fix archive pass bug that didn't update DELTA_create members
 | |
| 95-01-19 detect compress and gzip on input
 | |
| 	 add -f -z grouping with -r -w to support -r -f -z -w -f -z
 | |
| 	 fix a few compress/delta ineraction bugs
 | |
| 	 add -t s[#]k[#] to skip all [#] and/or keep all [#] tape volumes
 | |
| 	 use new <align.h> ALIGN_ identifiers
 | |
| 95-01-11 add s option to -s to stop on success
 | |
| 	 add delta 94 (vdelta)
 | |
| 	 add long option names
 | |
| 	 deprecate most flag options
 | |
| 	 DELTA_TEMP <64K avoids temp file
 | |
| 	 add -o delta=patch for patch archives
 | |
| 94-12-25 add lib/pax/*.fmt args files for unknown formats
 | |
| 	 fix mknod() calls to use the right file type!
 | |
| 94-11-11 fix ar out of phase warning
 | |
| 94-08-11 add -Rh'header' and -Rt'trailer' for vdb write
 | |
| 	 -e now works for -rw
 | |
| 93-08-11 add vdb `virtual database' r/w format
 | |
| 93-06-11 fix bug that didn't output non-regular files
 | |
| 	 -w now uses FTW_POST to preserve dir modes
 | |
| 93-04-01 handle PORTAR long member name table
 | |
| 92-04-01 copy all 0 length files out regardless of read permission
 | |
| 91-08-11 add check for garbage after end tar implementation bug
 | |
| 90-10-01 add mips ar format out of date check
 | |
| 90-08-11 header/trailer alignment now table driven
 | |
| 90-07-20 fix binary output bug that set header size and time to 1
 | |
| 90-06-01 fix misc delta compression bugs
 | |
| 90-05-01 fix DELTA_create bug that did not check COMPRESS
 | |
| 90-03-28 bump regular output block size to 8k
 | |
| 90-02-11 delta changes held off by #if new_delta_format until new libdelta
 | |
| 	 base archive checksums incompatible with previous versions
 | |
| 90-02-06 fix newio() bug that looped when write() returned 0
 | |
| 90-01-25 add proposed posix 1003.1b archive/interchange format
 | |
| 	 tune buffering
 | |
| 	 change -R option for general record support
 | |
| 	 generalize delta id file name -- incompatible with old format
 | |
| 	 prepare for new libdelta and subsequent incompatibilities
 | |
| 89-12-01 add self-delta support, delete -A option (one algorithm with versions)
 | |
| 89-11-18 fix dir mode restoration bug
 | |
| 89-11-11 fix delta update with older file
 | |
| 89-10-31 add portarch and randarch readonly object formats
 | |
| 89-10-11 allow -f with -rwz
 | |
| 89-10-01 add -Bmaxblocks and -C to match latest tar/cpio extensions
 | |
| 89-08-22 align read() buffers to IOALIGN
 | |
| 89-07-27 add EFBIG & EDQUOT checks to newio()
 | |
| 89-07-04 fix cpio binary header mtime and size swab bug
 | |
| 	 fix -rw bug that makes it work now!
 | |
| 	 redo file post processing restoration
 | |
| 89-05-11 handle GNU-tar USTAR format botch
 | |
| 	 missing intermediate directories inherit mode of nearest ancestor
 | |
| 	 fix names on stdin bug that only did -P
 | |
| 	 incorporate lar changes from David Muir
 | |
| 	 expand -R arg syntax
 | |
| 	 handle ansi/ibm D,F,S,U,V formats on output
 | |
| 89-03-28 fix bget() buffer boundary error for reads < buffersize
 | |
| 89-03-01 ignore DELTA_PASS file set*() calls
 | |
| 89-02-22 fix bread bug for 0 count and bget memcpy overlap
 | |
| 89-01-18 fix copyout() rfd<0 delta bug that generated multiple entries
 | |
| 89-01-11 fix dirsize!=0 bug; change ftwalk XDEV implementation
 | |
| 88-12-11 fix symlink->nowhere bug
 | |
| 88-11-22 add vmsbackup readonly format; fix lseek validity checks
 | |
| 88-11-17 add -T040 to simulate tape device blocking on input
 | |
| 88-11-11 add s5r4 asc and aschk formats
 | |
| 88-11-07 hard links and deltas don't cross volumes
 | |
| 88-11-01 add -n to read exact file list
 | |
| 88-10-20 add bread(0,...) to skip, bget() and bput() io optimizations
 | |
| 88-10-11 fix delta ops to use pattern args
 | |
| 88-10-04 fix argc bug that botched -rw with file args
 | |
| 88-10-01 for delta update, verify that untouched files match base archive
 | |
| 88-09-30 fix allocate() bug: malloc() -> calloc()
 | |
| 88-08-23 use libx/memsum() for checksum calculations
 | |
| 88-08-20 add `![command]' to end of medium replies
 | |
| 88-08-18 table of contents output to stdout
 | |
| 88-08-08 update for libx/ftwalk() and libx/strls()
 | |
| 88-07-28 streamline ftwalk() interface
 | |
| 88-07-21 finish up -a and -u tar compatibility
 | |
| 88-07-17 add cpio.sh and tar.sh interface scripts
 | |
| 88-07-15 convert to pax
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="html changes">html changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 12-02-29 mm2html: fix so stack bug that popped one too many
 | |
| 12-01-11 mm2html: fix <FONT SIZE=-6>[1]</FONT> to use <SUP>...</SUP>
 | |
| 12-01-01 htmlrefs: add <SCRIPT src=...> to include list
 | |
| 11-12-30 mm2html: add .xx faq
 | |
| 11-09-11 mm2html: add .H n "title" link="href"
 | |
| 11-08-06 mm2html: use optget() style for .SH and .TP
 | |
| 11-04-18 htmlrefs: don't symlink .html for --copy (doh)
 | |
| 10-09-07 use += to append to compond values
 | |
| 10-06-01 sync with ast api 20100601
 | |
| 10-05-28 mm2*.sh: use --???MAN=nx for man section titles
 | |
| 10-04-11 mm2html.sh: headings now internal anchors by default
 | |
| 10-01-31 mm2html.sh: handle bsd mandoc
 | |
| 10-01-25 mm2html.sh: handle optget --nroff { .H[01234] .OP }
 | |
| 10-01-15 mm2html.sh: handle <name>(<number><chars>) references
 | |
| 09-09-17 mm2bb.sh: .sn now uses expand(1) instead of cat(1)
 | |
| 09-07-01 mm2html.sh: --frame=foo for man generates side content frame
 | |
| 09-07-01 mm2html.sh: add redirection hackery to insert html.labels
 | |
| 09-06-30 mm2html.sh: increase heading level for -o html.labels
 | |
| 09-05-08 mm2twiki.sh: add for mm => twiki markups
 | |
| 07-12-11 mm2bb.sh: fix bb list and fill logic, add long name #0091;CC...]
 | |
| 07-12-11 mm2html.sh: add long name #0091;CC...]
 | |
| 07-08-11 mm2bb.sh: --texish for tex style bb markups
 | |
| 07-04-20 mm2bb.sh: add for mm => bb markups
 | |
| 07-02-09 mm2html.sh: expand  rather than escape to \\(*..
 | |
| 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
 | |
| 05-10-15 mm2html.sh: add BP name=value parameters
 | |
| 05-10-10 mm2html.sh: add .CE, .BP *.@(gif|png) ... => <IMG...>
 | |
| 05-02-22 htmlrefs.c: rel=internal ignored if --external
 | |
| 05-02-14 mm2html.sh: add .xx linkframe="" for no target=_top
 | |
| 05-02-01 mm2html.sh: IFS may be unset!
 | |
| 05-01-11 mm2html.sh: add --top
 | |
| 04-12-22 mm2html.sh: 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
 | |
| 04-02-29 mm2html: .TS box => void lines
 | |
| 03-08-11 mm2html: handle man .TH args>2
 | |
| 03-03-25 mm2html: table border size '' => 0
 | |
| 03-02-06 troff2html.c: fmtquote() FMT_ALWAYS update
 | |
| 02-10-24 mm2html: viewgraph link target is _top too
 | |
| 02-10-15 mm2html: ident footer is now a TABLE instead of a DIV
 | |
| 02-08-30 mm2html: .AL with no args is equivalent to .NL
 | |
| 02-08-26 mm2html: fix .VL mark indent logic
 | |
| 02-08-19 mm2html: ignore .fp
 | |
| 02-06-09 mm2html: expand mailto address pattern match
 | |
| 02-05-31 mm2html: check .vG arg count before shift
 | |
| 	 mm2html: \ => &#0092;
 | |
| 02-03-17 mm2html: add .SG no-op
 | |
| 	 mm2html: check .EX figure# label args
 | |
| 	 mm2html: add .so/.sn dir search to .BP
 | |
| 02-03-15 mm2html: add LC_NUMERIC=C for floating point constants
 | |
| 02-02-14 mm2html: shorten indentation
 | |
| 02-01-16 mm2html: handle .so and .xx in getline
 | |
| 	 mm2html: .sn and .so look in dir of including file
 | |
| 01-10-20 htmlrefs: fix <!--INTERNAL--> filter delete detection, GLOB_AUGMENTED
 | |
| 01-05-09 mm2html: ignore a few more requests
 | |
| 01-05-04 mm2html: more tbl adjustments from Bruce Lilly
 | |
| 01-05-02 mm2html: tweak tbl column spacing, handle .TH [N]
 | |
| 01-05-01 mm2html: tbl fixes
 | |
| 01-04-27 mm2html: fix .SH,.SH indentation; ignore { .nh .hc .hy }
 | |
| 01-03-22 mm2html,troff2html: ignore { .hw .lw }
 | |
| 01-03-01 troff2html: fix bug that treated 0093;? as #0093;?
 | |
| 01-02-28 troff2html: add  and fix macros for y2k -- oops
 | |
| 01-01-31 htmlrefs: fix nul char bug in <!--INTERNAL--> filter
 | |
| 01-01-01 mm2html: fix incorrect \h'... #local refs
 | |
| 	 mm2html: append <!--LABELS-->...<!--/LABELS--> for second pass
 | |
| 	 mm2html: add .xx [no]index to inhibit or restart index labels
 | |
| 	 mm2html: add .xx noFOO, .xx [no]index
 | |
| 	 mm2html: .xx begin|end before <BODY> gets copied to <HEAD>
 | |
| 	 mm2html: identification trailer aligned right
 | |
| 	 htmlrefs: <!--INTERNAL--> in index.html <HEAD> skips file/dir
 | |
| 00-12-14 mm2html: fix tbl colspan
 | |
| 00-12-12 mm2html: ignore bgcolor for table with no box
 | |
| 00-12-07 download: .tar.gz => .tgz
 | |
| 	 htmlrefs: add --delete
 | |
| 00-12-05 mm2html: add .PM
 | |
| 	 mm2html: <SMALL><<A href=mailto:id@id.id...>id@id.id...</A>></SMALL> => mailto:
 | |
| 00-11-27 mm2html: --frame is now 1 level instead of 2; no *-body and *-head
 | |
| 	 mm2html: add .IS ... .IE indentation
 | |
| 	 mm2html: .LR foo (1) generates man link
 | |
| 	 htmlrefs: add https support
 | |
| 00-10-31 htmlrefs: remove if internal filter leaves <= 1 line
 | |
| 00-05-25 mm2html: add viewgraph outline and navigation
 | |
| 00-05-11 mm2html: add .vG viewgraph macros
 | |
| 00-03-04 htmlrefs: add <LINK rel=dynamic>
 | |
| 00-02-14 htmlrefs: add .htaccess and <LINK> checks
 | |
| 	 mm2html: add .xx ref=...
 | |
| 	 mm2html: use "..." tag attribute quote instead of '...'
 | |
| 	 mm2html: .BL => <UL> square circle disc
 | |
| 00-02-03 mm2html: fix -o nohtml.ident
 | |
| 00-01-20 mm2html: fix -o quoted arg parse
 | |
| 	 htmlrefs: add --perlwarn for embedded perl constructs
 | |
| 99-08-11 mm2html,troff2html: add .xx begin=x end=x
 | |
| 	 mm2html: handle simple .TS ... .TE; room for improvement
 | |
| 	 mm2html: fix <TABLE><TR>...</TR></TABLE> nesting
 | |
| 	 mm2html: add SEE ALSO hot links
 | |
| 	 mm2html: hot link man name not (section)
 | |
| 99-05-17 download,html2db,mm2html: long options
 | |
| 99-05-13 html2rtf: long options
 | |
| 99-04-01 fix .xx link
 | |
| 	 long options, macro search bug fix
 | |
| 99-01-01 html2rtf: fix </LI> with no <LI> core dump
 | |
| 98-04-01 add company corporation location meta.* organization
 | |
| 97-05-09 info tollbar=path for junk before </BODY>
 | |
| 97-05-01 \h'0...' for hyperlinks
 | |
| 97-04-01 first release
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="proto changes">proto changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 12-02-20 proto.c: bump version to match astlicense() { since start source } change
 | |
| 12-02-14 protp.tst: update for libpp/ppproto.c fix
 | |
| 12-01-01 proto.c: add epl to the license type list
 | |
| 11-03-04 sear.sh: add { sear32.ico sear64.ico }, $(dirname -r lib/$COMMAND/...)
 | |
| 11-02-02 Makefile: don't update ../INIT/proto.c if no change or if cpp hack failed
 | |
| 10-10-10 sear.sh: retain .exe suffix in sear -- its dos on the other side!
 | |
| 10-09-10 sear.sh: add --args=args
 | |
| 10-08-22 sear.sh: ratz+sear now requires -ladvapi32
 | |
| 10-01-20 changes.sh: avoid nmake variable expansions in sh!
 | |
| 09-03-02 Makefile: eliminate master src paths from ../INIT/proto.c
 | |
| 09-01-15 sear.sh: update for msvcrt.dll link
 | |
| 08-11-15 sear.sh: add manifest logic
 | |
| 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
 | |
| 05-12-25 ratz.c: fix sear CreateDirectory(tmp) permissions
 | |
| 05-09-16 proto.c: add <stdio.h> for standalone rename() prototype
 | |
| 05-07-31 proto.c: finally trust __STDC__ headers
 | |
| 05-05-11 since.sh: add
 | |
| 04-10-24 sear.sh: 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 sear.sh: 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
 | |
| 04-02-29 proto.tst: add -f -p option tests
 | |
| 04-01-14 proto.c: add suffix-comment table
 | |
| 04-02-11 proto.c: default comment style set to match file suffix
 | |
| 03-06-21 proto.tst: add T_INVALID ? splice bug test
 | |
| 02-07-31 sear.sh: make sure output files has a suffix
 | |
| 02-03-12 proto.c: add type=free
 | |
| 02-01-07 proto.tst: add TEST 05 -- no fix yet
 | |
| 01-12-12 sear.sh: fix rc ICON path  escapes
 | |
| 01-10-31 sear.sh: add sear.ico
 | |
| 01-10-16 sear.sh: _SEA_* => _SEAR_*
 | |
| 01-10-05 sear.sh: rename from sea.sh
 | |
| 01-09-11 sea.sh: add
 | |
| 01-06-26 proto.tst: add another buffer boundary test (large of course)
 | |
| 01-04-01 proto: preserve file mode for -r
 | |
| 01-02-06 proto.tst: add (finally)
 | |
| 99-11-19 add --license, --shell, --copy, --verbose
 | |
| 99-08-11 long options
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="bzip changes">bzip changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 02-02-14 bzip2.c: fix uwin core dump
 | |
| 02-01-24 bzip2.c: use _PACKAGE_ast touch(3) instead of <utime.h>
 | |
| 	 bzip2.c: fix strstr() loop
 | |
| 01-01-01 bzip2.c: include bzlib.h first
 | |
| 99-01-01 package for ast
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="tests changes">tests changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 12-02-02 add timeout to { testlib terror.h }
 | |
| 11-10-20 add TESTLIB.mk, common { testlib terror.h }, and test.aso
 | |
| 11-09-26 vmalloc: sync with kpv
 | |
| 10-05-28 date.dat,datey2k.dat: update for ast move to %Q? %K
 | |
| 10-04-05 opt.tst: add head --nroff .TH fix tests
 | |
| 10-04-02 opt.tst: add head --version bug fix test
 | |
| 09-12-17 opt.tst: update for solaris short/long mix
 | |
| 09-11-13 vmalloc/trandom.c: fix test logic
 | |
| 09-07-22 ip6.rt: add trailing :0 tests
 | |
| 09-04-27 sfio/tpool.c: update to match libast/sfio/sfpool.c patch
 | |
| 09-02-22 date.dat: add iso duration tests
 | |
| 09-02-02 sfio/tprintf.c: fix sfaprints() test
 | |
| 08-12-30 date.dat: add TM_WORK tests
 | |
| 08-12-19 date.dat,datey2k.dat: update for %_K
 | |
| 08-06-24 date.dat: update for tmxfmt() %z fix
 | |
| 08-05-22 testdate.sh: add date.dat supplement test case generator
 | |
| 08-05-20 strtof*.rt: reorganize strtof tests for easy(ier) change
 | |
| 08-02-11 date.dat: add more ISO 8601:2000 tests
 | |
| 08-01-18 strn*.tst: consolidate into str*.tst
 | |
| 08-10-15 strn*tof.(c|tst): handle +/- nan|inf|0
 | |
| 08-10-15 strn*toi.(c|tst): handle bitsof(long) -- {32 64 }
 | |
| 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 }
 | |
| 06-09-14 datey2k.dat: yield to the gentlemen from congress
 | |
| 06-08-25 opt.tst: update for leading 0 numeric option arg strip
 | |
| 05-04-30 sfio: tgetr: add sfmaxr() tests
 | |
| 05-04-20 cdt: snarf cdt tests from kpv
 | |
| 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
 | |
| 04-02-29 sfio/tscanf.c: add %! test
 | |
| 	 opt.tst: add html escape test
 | |
| 04-02-04 sfio/texcept.c: add sfraise(0,a,b) test
 | |
| 04-01-14 sfio/tmmap2read.c: fix mmap() override for linux/bsd
 | |
| 03-10-12 strtoi.tst: add strton[ll] suffix multiplier tests
 | |
| 03-09-23 opt.tst: more optstr() tests
 | |
| 03-09-11 opt.tst: add n:=v tests
 | |
| 03-09-05 opt.tst: [f:l*?] test 43 update
 | |
| 03-08-11 date.dat: add arithmetic tests
 | |
| 03-05-25 opt.tst: add optstr() ???* internal option tests
 | |
| 03-05-11 strtoi.tst: add malformation tests
 | |
| 03-05-06 opt.tst: add getopt_long() compatibility 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
 | |
| 02-10-04 strtof.tst: add simple cases
 | |
| 02-09-15 sfio/tscanf.c: add NaNS test
 | |
| 02-09-05 opt.tst: add .fp 5 CW for *roff tests
 | |
| 02-08-21 strelapsed.tst,strelapsed.c: add
 | |
| 02-07-27 sfio/tpoll.c: fix for rw pipes
 | |
| 02-06-26 opt.tst: fix debug locale message numbers
 | |
| 02-05-16 date.dat: add '60+n min/sec ago' tests for n min/sec after the hour
 | |
| 	 data.dat,datey2k.dat: update for %u addition to tmfmt()
 | |
| 02-03-14 opt.tst: update <.>..</.>< >--keys tests</ >
 | |
| 02-02-02 sfio/(tclose|ttpopenrw|ttell).c: add alarm to handle hung coproc
 | |
| 02-01-27 sfio/terror.h: handle non-idempotent <varargs.h>
 | |
| 02-01-12 date.dat,date2k.dat: fix EST/EDT %z tests
 | |
| 01-12-18 date.dat,datey2k.dat: update for %z change from SHH to SHHMM
 | |
| 	 date.dat: add YYYY/MM/DD tests
 | |
| 01-11-24 opt.tst: update --?+SECTION tests
 | |
| 01-10-31 opt.tst: add --?+SECTION tests
 | |
| 01-10-30 date*.dat: fix cron tests where both mday and wday are specified
 | |
| 01-10-18 strtof.tst: adjust for sfprintf()/printf() rounding
 | |
| 01-10-18 sfio/twchar.c: add wchar_t tests
 | |
| 01-10-11 opt.tst: add example and literal tests, <!--NULL-->. nroff tests
 | |
| 01-10-10 opt.tst: sync with optget() i18n fixes
 | |
| 01-08-11 test.sf*: need $(LDFLAGS) for -L* library link paths!
 | |
| 01-03-26 test.strtoi,test.strtof: add
 | |
| 01-02-14 sfio: add tmpread
 | |
| 01-01-31 sfio: uniform test exit codes
 | |
| 01-01-01 opt.tst: add enumerated option argument values
 | |
| 00-12-11 date.dat: add a few more crontab(1) forms
 | |
| 00-10-31 date.dat: add date(1) and touch(1) forms
 | |
| 	 sfio: kpv updates to handle mac os X
 | |
| 00-10-17 sfio/thole.c: move large buffer from stack to global
 | |
| 00-10-03 testy2k.dat: `Feb 29 01:02' => `Feb 29  2000'
 | |
| 00-04-01 Makefile: add ../../lib/libast to .SOURCE for features/sfio
 | |
| 00-03-07 opt.tst: add printf +1 bug fix test
 | |
| 00-02-14 opt.tst: fix for "..." attribute quote
 | |
| 	 datey2k.dat: oops: %l fails for old (2000-02-29) NOW
 | |
| 00-01-10 opt.tst: fix USAGE_LICENSE
 | |
| 99-10-22 date: test all % formats
 | |
| 99-08-11 sfio: fix 3 tests for uwin
 | |
| 	 sfio: tscanf for netbsd
 | |
| 99-03-25 :TEST: don't forget about foo.c for foo.tst
 | |
| 	 sfio/testsfio: fix option parse for `-x *,*' and cc.* and *.cc
 | |
| 99-01-23 moved library tests from std to here
 | |
| 	 added optget() tests
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="3d changes">3d changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 12-06-25 change strcpy() within buffer to strcopy()
 | |
| 12-06-22 sys.tab,utimensat3d.c: add utimensat()
 | |
| 12-05-25 sys.tab: handle missing getdents64 on linux+gcc-4.4
 | |
| 12-05-25 syscall3d.c: tweak _exit() logic (really?) to dumped core on recent solaris
 | |
| 11-12-01 fix fcntl 3rd arg int vs void*
 | |
| 10-06-01 sync with ast api 20100601
 | |
| 10-04-10 mkdir3d.c: fix mkdir() intermediate dir logic
 | |
| 10-01-19 3d.h: increase some path buffer sizes -- these need to be dynamic!
 | |
| 09-05-15 dll_3d.h: handle dllopen => dlopen
 | |
| 08-12-04 fs.c: change open(/dev/fd/NN,...) try open(2) first, then dup(2)
 | |
| 08-06-20 ast_3d.h,ast.c: add libast/misc/setenviron.c
 | |
| 07-03-26 Makefile: drop -L* from IFFEREFS -- handled by .IFFE.REF.
 | |
| 07-03-21 lib_3d.h,error.c: handle error_info => *_error_data_
 | |
| 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 3d.sh: 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
 | |
| 05-02-01 3d.sh: IFS may be unset and { ash bsh } don't on startup -- wow
 | |
| 05-01-01 sys.tab,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 3d.sh: update runtime docs
 | |
| 	 3d.1: drop in deference to the 3d.sh 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
 | |
| 03-08-15 mount3d.c: change 3d intercept test to handle NiL || ""
 | |
| 03-06-11 ast.c: add _map_malloc checks for _ast_malloc => malloc
 | |
| 03-06-05 pathreal.c: fix ancient multiple relative|.. symlink bug
 | |
| 03-06-04 3d.sh: change `shift $OPTIND-1' to `set x "@"; shift $OPTIND'
 | |
| 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
 | |
| 02-10-18 features/syscall.sh: handle pseudo files in cc -E line syncs
 | |
| 02-07-17 syscall3d.c: clean up user level intercept code
 | |
| 02-06-25 open3d.c: fix bug that created 0 mode file with only O_RDWR
 | |
| 02-06-14 ast_3d.h,cs.c: move fmttime() macro override to cs.c
 | |
| 02-06-06 dir3d.c: fix rewinddir() bug that did not decrement intercepted count
 | |
| 02-04-01 Makefile,cs.c,cs_3d.h,ast_3d.h: _WIN32 tweaks
 | |
| 01-11-26 pathreal.c: empty path is an error
 | |
| 01-11-16 ftruncate3d.c,truncate3d.c: use lseek3d indirection via sysfunc()
 | |
| 01-10-31 fchdir3d: add along with state.file[].dir to cache open dir paths
 | |
| 	 dir3d.c: add recursive call intercepts
 | |
| 	 error.c: add recursive call intercepts
 | |
| 	 pathreal.c: add buffer size check
 | |
| 	 features/syscall.sh: add bsd syscall __RENAME() checks
 | |
| 	 syscall3d.c: check _lib_syscall before using it!
 | |
| 01-10-30 features/syscall.sh,syscall3d.c: handle -ldl calls back into 3d
 | |
| 01-09-20 3d.sh: drop extra } in USAGE that emitted -} for --?
 | |
| 01-07-17 Makefile: don't link 3d dll against ast dll
 | |
| 01-02-19 close3d: dup reserved fd's higher
 | |
| 01-02-14 add :VARIANT: to build dll's for CC.DLL.VARIANTS
 | |
| 01-01-01 dir_3d.h: real readdir must be struct dirent, not dirent64
 | |
| 00-12-14 3d.sh: fix -c
 | |
| 00-10-31 ast.c add pathtemp.c
 | |
| 00-10-19 init.c: initialize _3d_2d
 | |
| 00-07-17 fix fchown to call MSG_fchown (not MSG_fchown); fixes vim dump!
 | |
| 00-02-14 3d command long options (finally)
 | |
| 99-01-01 --- release 4.0 ---
 | |
| 99-04-01 dll: sfsprintf => _3d_sfsprintf
 | |
| 	 check for __*_nc (osf.alpha)
 | |
| 99-02-14 pathreal: copy to state.path.name if not already there
 | |
| 	 rewinddir3d: just call seekdir(p,0); fixes `top' core dump
 | |
| 99-01-11 lseek3d,syscall3d: add sysfunc() for off_t!=long
 | |
| 99-01-01 --- release 3.0 ---
 | |
| 98-02-14 3d.sh: fix _RLD32_LIST => _RLDN32_LIST typo
 | |
| 	 pathreal: fix (P_LSTAT|P_READLINK) under pwd bug that did phys on .
 | |
| 	 features/syscall.sh: tighten up version __call header grep
 | |
| 	 unlink: trap remove() too
 | |
| 	 features/syscall.sh: favor strong (_ prefix) name for some arch's
 | |
| 98-02-06 syscall3d: handle longjmp with cp->active
 | |
| 98-01-23 features/syscall.sh: check for _xstat vs __xstat
 | |
| 98-01-01 add readdir64 rewinddir64 seekdir64 telldir64
 | |
| 97-10-11 fix lefty's virtual dir touch bug -- recursive doubling on stbuf
 | |
| 97-07-17 CS_INTERFACE=2
 | |
| 97-04-01 features/syscall.sh: fix __exit() test for new sgi
 | |
| 96-12-25 handle stat64() implementations on top of _xstat()
 | |
| 	 3d.tst must be run under 3d!
 | |
| 	 _SCO_STAT_VER tweaks
 | |
| 	 sgi _RLD_NEXT_PATHNAME fix for -32 -n32 -64 differentiation
 | |
| 	 _*xstat() hacks around proto in *stat3d.c
 | |
| 	 add constant casts for long shift counts
 | |
| 	 fix pathnext() to report version instance level in state.path.level
 | |
| 96-11-28 fix rename() to do physical stat on subject path!
 | |
| 96-02-29 handle syscall loops caused by botched libs like solaris libsocket.so
 | |
| 	 generalize name service interface to handle ifs+vcs
 | |
| 	 catch acl,facl even if not on local sys
 | |
| 	 fix features/syscall.sh bug that set $stdc incorrectly
 | |
| 	 use alloca() in execve() if possible
 | |
| 	 add 3d.tst and test makefile action
 | |
| 	 fix a few important virtual dir / create / append bugs
 | |
| 	 fix null dereference in open3d() for state.in_2d
 | |
| 96-02-14 add NFS acl,facl
 | |
| 96-02-08 fix 2d bug in link,rename,symlink that generated empty arg 1
 | |
| 96-01-30 fix features/syscall.sh for compilers that ignore prototypes
 | |
| 96-01-22 P_TOP only takes effect for files in virtual dir!
 | |
| 95-11-24 optimize exec $shell to eval in 3d.sh
 | |
| 95-11-11 don't fs3d_copy opaqued files
 | |
| 95-10-11 fs3d_mkdir virtual dir fix 
 | |
| 	 fix 2d virtual dir test in pathreal()
 | |
| 	 solaris _rename() != weak rename()
 | |
| 	 solaris exit() doesn't call _exit()
 | |
| 	 all static data in state
 | |
| 	 test state.in_2d in link3d()
 | |
| 	 fix opaque.sh that was broken sometime after 91
 | |
| 	 linux LD_BIND_NOW not needed with ld.so-1.7.9
 | |
| 95-07-17 handle irix-5.3 struct stat64 and off64_t
 | |
| 	 dlsym(__exit) before dlsym(_exit)
 | |
| 95-05-09 fix pathcanon() bug that incremented state.path.level too far on ...
 | |
| 	 percolate inode metadata changes to the top level too (no more EROFS)
 | |
| 	 add P_TOP to truncate() too!
 | |
| 	 feature/syscall.sh does not generate #include, up to *3d.c
 | |
| 	 spawnveg.c must come after spawnve.c in ast.c
 | |
| 	 cspoll.c must come after cs*.c in cs.c
 | |
| 	 fix 3d to work like $SHELL if no shared 3d lib found
 | |
| 	 fix chdir .. symlink bug that set state.pwd to physical path
 | |
| 	 add %n.n.nd to bvprintf
 | |
| 	 ignore a few more non-initialization setcwd() errors
 | |
| 95-01-19 fix undefined var ref for _VER_ hack calls in features/syscall.sh
 | |
| 95-01-11 access W_OK succeeds if on lower view
 | |
| 94-12-01 add /#fs/NAME/load to load shared lib fs
 | |
| 	 add user system call trap() stack
 | |
| 	 VPATH=*::* or VPATH=*:-:* to separate disjoint views
 | |
| 	 change trap() to intercept()
 | |
| 94-07-17 add /#fs/safe
 | |
| 94-06-01 fix symlink() and link() bug that didn't instantiate virtual dir
 | |
| 	 fix [f]statvfs() infinite loop for att hybrids
 | |
| 94-05-11 merge with the real vcs
 | |
| 	 add char*_3d_2d: if _3d_2d!=0&&getenv(_3d_2d)==0 then 2d
 | |
| 	 trailing slash in pathreal() interpreted as slash dot (off/w test=010)
 | |
| 93-05-28 add /#option/limit=n to limit view depth
 | |
| 93-04-01 --- release 2.0 ---
 | |
| 93-03-11 change /dev/3d/* to /#*
 | |
| 	 remove anno and rpl specific hooks
 | |
| 	 add name,monitor,active fs mounts
 | |
| 92-04-01 --- release 1.1 ---
 | |
| 92-02-11 change retained mounts to /dev/3d/dev
 | |
| 92-01-11 add $SHELL and /bin/sh exec() checks to force 3d sh
 | |
| 	 fix checklink() to concatenate relative links with original prefix
 | |
| 91-11-11 --- release 1.0 ---
 | |
| 	 add feature/syscall.sh to handle att s5r4, hp snake, sun 4.1
 | |
| 	 change umask() 3d state toggle to mount(-,/dev/3d/option/{2d,3d})
 | |
| 	 fix creat() virtual dir bug for umteenth time
 | |
| 	 link() and rename() now migrate to top instead of EROFS
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="coshell changes">coshell changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 10-06-01 sync with ast api 20100601
 | |
| 08-04-08 event.c: use dbmlib.iffe
 | |
| 07-10-23 main.c: avoid UOUT CO_SERIALIZE cswrite hangs via O_NONBLOCK
 | |
| 07-09-25 handle CO_SERIALIZE
 | |
| 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 COSHELL.mk: 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,COSHELL.mk: add
 | |
| 03-03-04 add state.remote=CS_REMOTE_SHELL
 | |
| 01-12-12 resolve SETSHELL local vs. global conflict -- its both
 | |
| 	 ignore attr now really ignores host -- duh
 | |
| 01-12-11 add global maxidle=0 to ignore idle
 | |
| 	 split readonly and user settable values in `g' command output
 | |
| 00-12-14 shell is per host attribute
 | |
| 00-02-01 --- release 2.2 ---
 | |
| 99-06-24 cosh: change exit to return
 | |
| 99-06-24 --- release 2.1 ---
 | |
| 97-12-07 update for CS_SVC_SUFFIX
 | |
| 96-12-25 add constant casts for long shift counts
 | |
| 96-05-09 coinit(CO_SERVER)
 | |
| 96-02-29 use <hashkey.h>
 | |
| 96-01-31 AT&T Research
 | |
| 96-01-31 --- release 2.0 ---
 | |
| 95-07-17 add perhost job limit
 | |
| 	 all specific misc attr expr to override idle
 | |
| 95-05-09 convert init script to hostinfo
 | |
| 	 fix indirect bug that forgot to poll the command stream!
 | |
| 95-04-01 change streval() to strexpr()
 | |
| 95-01-01 don't bias out home host with cpu>1
 | |
| 	 add shell=path to set remote shell path
 | |
| 	 add debug=level to set debug level as an attribute
 | |
| 	 add identify=1 to identify remote command output
 | |
| 	 identify="format with %s"
 | |
| 	 attributes may be set on the command line
 | |
| 	 add COINIT to cosh so .coshrc can check for new coshell
 | |
| 	 add state.grace to g output
 | |
| 94-11-11 csstat() lazy evaluation in expressions
 | |
| 94-07-17 --- release 1.1 ---
 | |
| 94-06-11 add disable=secs to disable hosts of jobs killed by SIGKILL
 | |
| 	 handle shell quoted space in -r strings
 | |
| 94-04-01 add per host access=(expression) to control access
 | |
| 	 add per host bypass=(expression) to bypass min idle
 | |
| 	 add uid, gid, day (monday:1,sunday:7), hour, min to expressions
 | |
| 	 add periodic check for share/lib/cs/access for access control
 | |
| 	 add grace=n for busy job grace running time
 | |
| 	 add scale=n (default == # cpu) load average scale
 | |
| 	 add migrate="command" to override default SIGSTOP for hogs
 | |
| 	 add profile="command" to override default ". .profile"
 | |
| 94-03-11 fix pseudo-float and elapsed-time constant operand conversions
 | |
| 	 add static minidle to disambiguate from dynamic idle
 | |
| 	 fix remote shellopen to work for csh users (there's still some left?)
 | |
| 94-03-01 fix maxload to be pseudo-float
 | |
| 93-10-11 add CO_OPT_ACK coexec() ack
 | |
| 	 add maxload,percpu,perserver,peruser job limits
 | |
| 93-03-11 reschedule jobs queued on hung shells
 | |
| 92-11-11 minor fixes to handle `coshell -' on pipeline
 | |
| 92-09-26 /dev/tcp/* supported as alternative to /dev/fdp/*
 | |
| 92-04-01 --- release 1.0 ---
 | |
| 92-02-29 fix COATTRIBUTES quote bug, handle aaa==bbb@ccc in expressions
 | |
| 92-02-11 add `noattr' to delete misc attributes
 | |
| 91-10-11 add COTEMP temp file base to job environment
 | |
| 91-08-11 jobs queued for shell open now in job table
 | |
| 91-07-17 add heterogenous pool support
 | |
| 	 add % weight for additional cpus
 | |
| 	 fix (type@xxx) expression evaluation
 | |
| 91-03-11 fix handling of down hosts
 | |
| 91-02-11 add string comparisons to attribute evaluation
 | |
| 	 update for new message interface
 | |
| 91-01-31 add -?
 | |
| 90-12-11 if . has idle=0 then local bias entry is ignored
 | |
| 90-11-11 local host not reported down if status missing
 | |
| 90-10-11 . $ENV after .profile in $COINIT
 | |
| 	 add -l <expr> to list hosts matching <expr>
 | |
| 	 change CO_{attr,close,open} msgs to CO_server
 | |
| 	 add load and up readonly attributes
 | |
| 90-10-01 libx/cs -> libcs
 | |
| 90-08-11 check auto=0 file attribute
 | |
| 	 fix bug that dropped multiple SHELL job status messages
 | |
| 	 arbitrary attributes and C-style attribute expressions supported
 | |
| 	 ks <job> and kc <job> added to stop and continue jobs
 | |
| 	 signals sent to remote shells use signal name rather than number
 | |
| 	 add shell/job label attribute
 | |
| 90-07-17 add auto=[01] attribute for automatic scheduling pool
 | |
| 	 tune scheduling
 | |
| 	 add server protocol check (narrows unix-domain socket panic window)
 | |
| 	 catch SIGHUP to reconnect connect stream path
 | |
| 90-07-11 bad rank shells dropped from pool
 | |
| 	 more rank tuning
 | |
| 90-06-01 --- release 0.0 ---
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="cpp changes">cpp changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 09-01-06 cpp.tst: add macro definition overwrite test
 | |
| 09-01-05 cpp.tst: add another multiple include guard test
 | |
| 08-10-31 cpp.tst: add #x and pp:nomultiple tests
 | |
| 06-05-09 cpp.tst: add pp:externalize tests
 | |
| 	 cpp.tst: add compatibility ul numeric qualifier tests
 | |
| 06-01-11 cpp.tst: update pp:passthrough tests
 | |
| 05-12-16 cpp.tst: add imake pp:passthrough comment splice test
 | |
| 05-04-11 cpp.tst: add '"a" #s' catliteral + stringize
 | |
| 04-10-01 cpp.tst: adjust for hidden line patch
 | |
| 04-08-11 cpp.tst: adjust for ppproto.c patch
 | |
| 03-12-12 cpp.tst: add empty macro actual tests
 | |
| 03-11-25 cpp.tst: add -D-d test
 | |
| 03-11-12 cpp.tst: add #if expression tests
 | |
| 03-06-21 cpp.tst: add T_INVALID ? splice bug test
 | |
| 03-05-19 cpp.tst: add stray SKIPMACRO test
 | |
| 03-05-18 cpp.tst: add SYS_FUNCTION ungetchr() bug fix test
 | |
| 03-04-30 cpp.tst: add pp:mapinclude tests
 | |
| 02-11-07 cpp.c: exit() => return for lame linters
 | |
| 02-10-10 cpp.tst: add does not end with `newline' tests
 | |
| 02-05-24 cpp.tst: add TEST 15 pragma space canonicalization tests
 | |
| 02-03-15 cpp.tst: add TEST 14 for libpp/ppproto.c memory fault fix
 | |
| 01-10-20 cpp.tst: add pp:splicespace "..." tests
 | |
| 01-06-01 cpp.tst: add -M* dependency generation tests
 | |
| 01-02-14 cpp.tst: pp:pragmaexpand pp:catliteral # operator interactions
 | |
| 01-02-05 cpp.tst: add (finally)
 | |
| 96-01-31 --- release 2.0 ---
 | |
| 92-04-01 update for new libpp
 | |
| 92-04-01 --- release 1.1 ---
 | |
| 90-10-11 update cpp.1
 | |
| 88-06-08 update makefile to install Makeinstall.mk ALTPP.LINK links
 | |
| 88-02-29 redo PP_INITDIR initialization
 | |
| 87-10-11 update man page
 | |
| 87-09-18 add ppop(PP_DONE) call
 | |
| 87-04-24 recode for updated library interface
 | |
| 87-04-03 add -D-Ttest to enable debugging test code
 | |
| 87-04-02 add -I-Rfile for PP_READ
 | |
| 	 move #include "ppdefault.h" to ppargs.c using PP_READ
 | |
| 	 add -D-I[id] to name line sync directive ("line" if id omitted)
 | |
| 87-03-31 change -Nfilename to -D-Ffilename
 | |
| 87-03-30 add -D-Llanguage for PP_LANGUAGE,language
 | |
| 	 add -D-H for PP_NOHOSTED
 | |
| 	 add -I-H for PP_HOSTED
 | |
| 87-03-24 --- release 1.0 ---
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="cs changes">cs changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 10-06-01 sync with ast api 20100601
 | |
| 06-10-11 add sfstropen()/sfstruse() error checks
 | |
| 06-06-11 cs.c: switch to csclient()
 | |
| 02-10-02 tst.c: tmform() => fmttime()
 | |
| 01-01-01 vcs_src/*: drop old notices, fix signal handler prototype
 | |
| 00-05-09 mbb: add (message bulletin board service)
 | |
| 99-09-22 cs: update for CS_MNT_TAIL
 | |
| 99-05-18 cs,css: long options
 | |
| 98-05-01 css: add
 | |
| 97-05-09 imount: add
 | |
| 96-12-25 cs: fix -i eof logic
 | |
| 96-02-29 nam protocol change
 | |
| 	 add vcs+ifs beta
 | |
| 	 drop getdomainname() call
 | |
| 	 vcs: use ast equivalents for strstr ftruncate realpath
 | |
| 95-12-08 add -r raw interactive mode
 | |
| 95-07-17 add /trust=user when server not in PATH
 | |
| 95-04-01 start this file
 | |
| 	 fix cat server read bug CS_LINE -> CS_EXACT
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="mam changes">mam changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 10-06-01 sync with ast api 20100601
 | |
| 04-02-29 self-document
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="msgcc changes">msgcc changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 10-10-20 msgcc.sh: add raw type (like str) for ksh -D style strings
 | |
| 10-06-01 sync with ast api 20100601
 | |
| 06-11-15 msgcc.sh: date -f x => date +x for ast-base portability
 | |
| 06-10-11 add sfstruse() error checks
 | |
| 02-03-11 msgcc: fix merge replacement threshhold logic
 | |
| 	 msggen: convert { \a \b < ></ >\r \v } back to C escapes
 | |
| 	 msgcpp: set pp:modern
 | |
| 02-02-14 msggen: add -f to list printf format signatures
 | |
| 01-10-10 msgcc: allow some email forms to pass
 | |
| 01-06-10 msgcpp: add proper escapes to OMIT pattern
 | |
| 01-05-29 msgcc: add similar unused message replacement, -M-similar
 | |
| 01-04-22 msgcc,msggen,msgget: use mcindex()
 | |
| 01-01-31 ignore ls generation errors
 | |
| 00-04-20 first release
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="nmake changes">nmake changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 12-06-20 O_cloexec|F_dupfd_cloexec edit
 | |
| 12-05-22 bind.c,dump.c,make.c,mam.c,rule.c: fix --mam=static 3d vs VPATH diffs
 | |
| 12-05-14 make.c: .IGNORE disables non-file "must"
 | |
| 12-05-04 option.c: add 'set --global...set --noglobal' scoping for :OP: makefiles
 | |
| 12-05-03 Makerules.mk: don't use ``grep -q'' until sun/oracle gets on board
 | |
| 12-04-20 option.c,load.c,Makerules.mk: add Op option .mo reread prereqs
 | |
| 12-03-22 Makerules.mk: .BIND.-l% in STDLIB dir with only CC.SUFFIX.ARCHIVE => -lfoo
 | |
| 12-03-22 bind.c: add .BIND.-l% --debug=3 trace
 | |
| 12-03-22 expand.c: SORT_qualified '!' and SORT_first '>' no longer mutually exclusive
 | |
| 12-02-29 Makerules.mk: fix ``lhs :MAKE: rhs'' logic for lhs and rhs makefile
 | |
| 12-02-29 option.c: fix regress option doc typo
 | |
| 12-02-20 Makerules.mk: update for astlicense() { since start source }
 | |
| 12-02-14 Makerules.mk: ignore MAKE_OPTIONS for --mam
 | |
| 12-02-14 Makerules.mk: add LICENSEFILEDEFAULT
 | |
| 12-02-14 Makerules.mk: add PWD edit ala MAKEPATH to PAXFLAGS
 | |
| 12-02-07 metarule.c: fix read string past terminator bug
 | |
| 12-02-02 Makerules.mk: add [[ a || b ]] to the $SHELL -n compatibility test
 | |
| 12-01-30 Makerules.mk: fix .INSTALL* to better handle 'text file busy'
 | |
| 12-01-26 SCCS.mk: add to rule install list
 | |
| 12-01-21 --- release 5.7 ---
 | |
| 12-01-21 internal tmfmt() must use user format on special times too
 | |
| 12-01-09 Makerules.mk: fix .MAMEDIT. to elide -[DI]-*
 | |
| 11-12-13 option.c: fix off by 1 undermalloc
 | |
| 11-12-13 Makerules.mk: fix MAKE_OPTIONS to peoperly handle --*=* options
 | |
| 11-11-01 Makerules.mk: omit .TARGETs from manifest
 | |
| 11-10-28 command.c: expand .EXPORT values at export time -- doh
 | |
| 11-10-10 Makerules.mk: parameter (PROTO) (PROTOFLAGS) -- doh
 | |
| 11-09-11 parse.c: fix ``local ( A B ... ) 1'' that did not declare B
 | |
| 11-09-09 Makerules.mk: check $PACKAGE_foo and then $FOO_HOME
 | |
| 11-09-07 debug-package.mk: add
 | |
| 11-08-31 mam.c,option.c: add state.mam.hold, set mam=[no]hold
 | |
| 11-08-30 object.c: drop OLD_header_t.version union for old cc
 | |
| 11-08-28 Makerules.mk: add $(ARHYPHEN) for ancient sun4-vintage ar(1)
 | |
| 11-08-25 Makerules.mk: change obsolete name=value option timeout to 20121221
 | |
| 11-08-11 Makerules.mk: fix :READONLY: typo
 | |
| 11-05-09 Makerules.mk: add .SOURCE.h : $(INSTALLROOT)/include
 | |
| 11-05-09 fix .LIST.PACKAGE.LICENSE to include .'d def files
 | |
| 11-03-03 rules.win32.mk: add %.rc -DRCWOW=...
 | |
| 11-03-02 Makerules.mk: fix :LIBRARY: --plugin=foo --static to generate the plugin!
 | |
| 11-02-11 add '### .*archaic.* ###' test for %.sh install to diable sh -n check
 | |
| 11-02-02 --- release 5.6 ---
 | |
| 11-02-02 command.c: fix .AFTER prereq bug that executed target twice
 | |
| 11-02-02 Makerules.mk: add :LIBRARY: --static --private
 | |
| 11-02-02 Makerules.mk: fix mam %.req to check for $INSTALLROOT/lib/lib/%
 | |
| 11-01-21 expand.c: fix active() non-terminating loop for joint targets
 | |
| 11-01-21 Makerules.mk: add "::" (.OPTIONS.$(<)) : .PARAMETER
 | |
| 11-01-18 Makerules.mk: handle sh patterns on rhs of :MAKE:
 | |
| 11-01-11 Makerules.mk: handle .INSTALL.COMMON - - -
 | |
| 11-01-04 rules-win32.mk: add 32/64 conditionals for c++ mangle compatibility
 | |
| 10-11-12 Makerules.mk: add .MAM.STATE.VARS. for FOO=BAR => -DFOO=BAR in mamake!
 | |
| 10-11-12 command.c: fix .AFTER .FORCE .REPEAT infinite loop -- wow
 | |
| 10-11-10 object.c: fix old_header.version puns for strict-aliasing
 | |
| 10-10-20 Makerules.mk: fix .SHARED.LIST. to honor top level .MULTIPLE
 | |
| 10-10-20 msgcat.mk: ksh -D strings => raw string
 | |
| 10-08-24 bind.c: glob_diropen() gs->name absolute path
 | |
| 10-08-23 bind.c: drop GLOB_NOCHECK so *.notthere => empty
 | |
| 10-08-15 mam.c: fix joint target make-done imbalance
 | |
| 10-07-17 option.c: expand external.old for execve() -- doh
 | |
| 10-06-21 Makerules.mk: use CC.SUFFIX.DEBUG instead of .pdb
 | |
| 10-06-21 Makerules.mk: add "idxxx ... id=id :LIBRARY: ..." to preserve _BLD_id==1
 | |
| 10-06-17 Makerules.mk,Scanrules.mk: finally a general solution to -I- vs prefix-include?
 | |
| 10-06-01 ast api 20100601
 | |
| 10-06-01 Makerules.mk: :PACKAGE: --latest --api=YYYYMMDD|latest FOO:YYYYMMDD
 | |
| 10-05-25 pkg-X11.mk: add CC.STDLIB.BASE checks for PACKAGE_X11_LIB
 | |
| 10-04-15 command.c: update to latest cowait() api
 | |
| 10-03-11 object.c: fix rare 0 complink compile bug
 | |
| 10-03-11 option.c: handle delayed option quoting if needed
 | |
| 10-03-10 expand.c: add '-' to order prereq token char set
 | |
| 10-03-09 read.c: fix ancient makefile cpp comment check that missed /**...
 | |
| 10-03-04 Makerules.sh: LC_ALL=C for %:%.sh $SHELL -n to avoid 1.2 arith syntax errors
 | |
| 10-02-24 rule.c: add .GETOPTS and b_getopts() builtin for optget()
 | |
| 10-02-14 Makerules.mk: add .INSTALL.COMMON. directory arg
 | |
| 10-02-14 bind.c: add bind_p "- ..." and "... ..." virtual logic
 | |
| 10-02-14 debug.mk: set --nonativepp -- doh
 | |
| 10-02-14 make.c,metarule.c: change metget() prereqs arg to active frame
 | |
| 10-02-14 expand.c,make.c,metarule.c: .IMPLICIT metarules not applied to implicit prereqs
 | |
| 10-02-02 Makerules.mk: fix LICENSEINFO search to check $(.PACKAGE.)-foo.lic
 | |
| 10-01-19 Makerules.mk: fix .RECURSE to handle install or .INSTALL
 | |
| 10-01-01 --- release 5.4 ---
 | |
| 10-01-01 parse.c: ['"] following # always ignored
 | |
| 09-12-09 Makerules.mk: .EXPORT => .SCRIPT, internal.exported => internal.script
 | |
| 09-12-09 Makerules.mk: .EXPORT now adds vars to coshell coexport(3) list
 | |
| 09-12-04 Makerules.mk: rename PACKAGE_OPTIMIZE=foo to PACKAGE_OPTIONS=optimize-foo
 | |
| 09-11-13 Makerules.mk: fix .req logic for virtual -lfoo
 | |
| 09-10-28 command.c: disable *** error status message for .FAILURE targets
 | |
| 09-10-27 parse.c,make.c: a - b : .JOINT => b:.DONTCARE (b optionally generated)
 | |
| 09-10-27 Makerules.mk: install .pdb if it exists in .lib dir
 | |
| 09-10-09 --- release 5.4 ---
 | |
| 09-10-07 bind.c: makerule(path) == makerule(base) && !alias && terminal => drop path
 | |
| 09-10-06 Makerules.mk: add '-' prefix to ARFLAGS for posix portability
 | |
| 09-10-05 Makerules.mk: consult REQUIRE libs for CC.DLL targets
 | |
| 09-09-28 Makerules.mk: retract: if -lfoo binds to CC.STDLIB dir then bind to -lfoo
 | |
| 	 (it makes a difference for some cc!)
 | |
| 09-09-22 Makerules.mk: CC='' or --cctype=- or --cctype=0 => no C probe
 | |
| 09-09-22 Makerules.mk: if -lfoo binds to CC.STDLIB dir then bind to -lfoo
 | |
| 09-09-22 main.c: missing default makefile diagnostic is warning if --errorid
 | |
| 09-09-09 Makerules.mk: fix CC.AR.ARFLAGS logic
 | |
| 09-09-01 Makerules.mk: handle { libfoo.a foolib.a foo.a } prereqs
 | |
| 09-08-20 Makerules.mk: add :LIBRARY: name=soname and CC.SHARED.NAME logic
 | |
| 09-08-20 Makerules.mk: add :PACKAGE: --soname[=-n], -n to drop n suffixes in soname
 | |
| 09-07-31 Makerules.mk: add CC.AR.ARFLAGS
 | |
| 09-05-05 scan.c: reject implicit prereq names containing space
 | |
| 09-03-24 Makerules.mk: --option[=value] compatibility with option[=value] until 2011
 | |
| 09-03-02 Makerules.mk: use $(-recurse:/:/ /G:N=[0-9]*:O=N) for recursion limit
 | |
| 09-02-02 Makerules.mk: reset :PACKAGE: pkg:noinstall for each pkg
 | |
| 09-01-09 Makerules.mk: fix .TGZ to handle large manifests
 | |
| 09-01-09 Makerules.mk: :: foo.man[=N] installs in man/manN/foo.N (default 1)
 | |
| 09-01-06 bind.c: fix 2d .SOURCE* cross product virtual+dir bug
 | |
| 08-12-08 Makerules.mk: -lfoo/bar => bar plugin for foo
 | |
| 08-12-08 expand.c: handle -lfoo/bar prereqs
 | |
| 08-11-11 Makerules.mk: add %.pl => % for perl scripts
 | |
| 08-11-11 rules-win32.mk: rc requires native path to .rc file
 | |
| 08-11-04 bind.c: handle non-3d VPATH for absolute dirs in .SOURCE*
 | |
| 08-10-24 Makerules.mk: fix install --link=* to handle directories
 | |
| 08-10-24 command.c: work around another gcc code generation bug -- ouch
 | |
| 08-10-16 Makerules.mk: fix :NOOPTIMIZE: to cooperate with :NOPROTECT:
 | |
| 08-09-24 Makerules.mk: add --recurse=only
 | |
| 08-09-10 Makerules.mk: add :NOPROTECT:, fix CC.DIALECT=VERSION shared lib bind
 | |
| 08-08-08 state.c: do not use low res virtual st.st_mtime
 | |
| 08-08-08 Makerules.mk: always include explicit :: files in manifest
 | |
| 08-06-06 Makerules.mk: drop -G from _BLD_DEBUG trigger -- doh
 | |
| 08-05-22 Makerules.mk: $(CC.ARFLAGS) also needs $(CCLDFLAGS)
 | |
| 08-05-20 tests/test.def: add SET local -- nfs can't keep up
 | |
| 08-04-28 make.c: fix .ACCEPT to propagate state event time
 | |
| 08-04-28 option.c: split --regress into --regress={message|sync}
 | |
| 08-04-28 tests: --regress for all tests, --regress=sync for timing only
 | |
| 08-04-01 Scanrules.mk: .SCAN.c <nosuffix> => nosuffix : .TERMINAL
 | |
| 08-03-27 Scanrules.mk: add --ignorecase option to .INCLUDE.SUFFIX.
 | |
| 08-03-27 scan.c: fix buffer boundary slide bug
 | |
| 08-02-29 --- release 5.3 ---
 | |
| 08-02-29 option.c,variable.c: $(-+name) => option value
 | |
| 08-02-29 expand.c: add :H=O: to reverse token list
 | |
| 08-02-09 Makerules.mk: fix .SHARED.LIST. to allow multiple explicit lib prereqs
 | |
| 08-02-02 Makerules.mk: add LDRUNPATH init from $(CC.RUNPATH)
 | |
| 07-12-15 Scanrules.mk: add "set stdio HEADER" to .SCAN.iffe
 | |
| 07-11-26 Makerules.mk: handle a.req => -lfoo -lbar, and -la does not exists
 | |
| 07-10-22 Makerules.mk: initialize (CC.SHARED.LIBS.target) to match .SHARED.LIST.LIBS.
 | |
| 07-10-18 parse.c: handle .assoc.*%* : .INSERT to insert into assoc list
 | |
| 07-09-11 Makerules.mk: 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 pkg-cobol.mk: 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 Makerules.mk: fix .SHARED.LIST.EXCLUDE. plugin bug (sortlib/vcodex)
 | |
| 07-06-25 rules-win32.mk: let $(CPP) do the %.rc=>%.res preprocessing
 | |
| 07-06-21 Makerules.mk: .IGNORE shared only if ! "$(CC.SUFFIX.DYNAMIC)"
 | |
| 07-06-21 Makerules.mk: 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 Makerules.mk: add --recurse=leaf to terminate leaf recursion
 | |
| 07-06-20 Makerules.mk: 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 Makerules.mk: add .SHARED.LIST.EXCLUDE. to exclude self
 | |
| 07-06-06 rule.c: add self to IGNORECHANGE(), only check primary joint
 | |
| 07-06-01 rules-win32.mk: PACKAGE_LOCAL=
 | |
| 07-05-25 Makerules.mk: retry package sans version if version fails
 | |
| 07-05-21 misc.c: invalidate openfile if _WINIX && st_nlink>1
 | |
| 07-05-09 Makerules.mk: fix %.req logic
 | |
| 07-04-20 rules-win32.mk: fix PROTOINSTALL sed <ast_*.h> => <ast/ast_*.h>
 | |
| 07-04-18 Makerules.mk: add :REQUIRE:
 | |
| 07-03-26 make.h: add state.expall to detect and disable $(...) recursion
 | |
| 07-03-26 Makerules.mk: fix .IFFE.REF. to handle -l* reqs
 | |
| 07-03-23 ppcc.sh: handle -G <number>
 | |
| 07-03-11 Makerules.mk: add --shared as an alternative to CCFLAGS+=$(CC.DLL)
 | |
| 07-02-23 Makerules.mk: add :PACKAGE: foo:private for +lfoo but not in *.req
 | |
| 07-02-14 expand.c: tweak :P=D: alias check (-Q0x10000000)
 | |
| 07-01-11 --- release 5.2 ---
 | |
| 07-01-09 expand.c: add :P=D: alias check (-Q0x10000000)
 | |
| 07-01-01 Makerules.mk: add --local-static with dynamic targets now default
 | |
| 07-01-01 Makerules.mk: 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 Makerules.mk: add CC.STDLIB.BASE to differentiate 32 vs 64 arch
 | |
| 06-12-22 pkg-X11.mk: use CC.STDLIB.BASE
 | |
| 06-12-15 Makerules.mk: set up PACKAGE rules to search CC.STDLIB -- doh
 | |
| 06-12-14 rules-win32.mk: 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 Makerules.mk: use $("<VARIABLES>":L=CC.+([[:upper:].])) in .MAM.INIT
 | |
| 06-11-23 Makerules.mk: fix .BIND.-l% for -g only bootstrap
 | |
| 06-11-15 Makerules.mk: fix :: vs :LIBRARY: ordering bug for .o prereqs
 | |
| 06-11-11 Makerules.mk: fix :PACKAGE: vs lib64
 | |
| 06-10-31 Makerules.mk: add $(PROTOINSTALL) to :INSTALLPROTO:, rules-win32.mk
 | |
| 06-09-28 Makerules.mk: add $(IFFEREFS)
 | |
| 06-09-15 Makerules.mk: 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 Makerules.mk: .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 Makerules.mk: 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 Makerules.mk: fix +l* explicit binding override
 | |
| 06-03-08 Makerules.mk: fix :JOINT: rhs double eval
 | |
| 06-02-08 pkg-cobol-cobc.mk: drop -g from COBOLFLAGS
 | |
| 06-01-31 Makerules.mk: fix :PACKAGE: P:static to honor .PACKAGE.P.library
 | |
| 06-01-25 Makerules.mk: { -ldl -lm } dynamic unless explicitly overridden
 | |
| 06-01-21 --- release 5.1 ---
 | |
| 	 Makerules.mk: fix list.package.binary INSTALLROOT edit
 | |
| 	 command.c: add gcc 4.*.* ppc code generation bug workaround
 | |
| 	 read.c: handle /dev/* mtime==0
 | |
| 	 version.c: fix { VROOT VOFFSET } initialization
 | |
| 06-01-08 pkg-cobol-*.mk: handle --debug-symbols
 | |
| 05-12-25 Makerules.mk: fix :LIBRARY: plugin bind for exe/dll
 | |
| 05-11-22 variable.c: restore $(+...)==$(-...) until 2009
 | |
| 05-11-07 Makerules.mk: fix :YYPREFIX: to handle YY in new prefix
 | |
| 05-11-04 Makerules.mk: PACKAGE_p_LIB => PACKAGE_p_INCLUDE
 | |
| 05-11-03 expand.c: add :H=P: directory prefix sort
 | |
| 05-11-01 pkg-cobol-*.mk: add :VARARGS:
 | |
| 05-10-14 pkg-cobol*.mk: add COBOL.PLUGIN.LIBRARIES for mfcobc plugins
 | |
| 05-10-12 Makerules.mk: handle "foo :LIBRARY: -lfoo" to gen dll from lib
 | |
| 	 tests/cc.def: add test version of pkg-cobol.mk
 | |
| 05-10-11 Makerules.mk: :PACKAGE: foo:bar => .PACKAGE.foo.option.bar:=1
 | |
|  	 pkg-cobol-mfcobc.mk: add special char extern demangle
 | |
|  	 pkg-cobol-mfcobc.mk: :PACKAGE: cobol:always => .COBOL.INIT
 | |
| 05-09-15 Makerules.mk: quote .PROBE.SPECIAL return to disable time arith
 | |
| 05-08-11 rule.c,state.c,tests/attribute.tst: fix .RETAIN
 | |
| 05-08-08 Makerules.mk: add :A!=.TERMINAL: to .BUILT. -- doh
 | |
| 	 tests/recurse.tst: add test for .BUILT. vs .TERMINAL
 | |
| 05-07-17 Makerules.mk: move cobol specifics to pkg-cobol.mk
 | |
| 	 Makerules.mk: add CCSPECIALIZE $(CC.OPTIMIZE) override
 | |
| 	 Makerules.mk: add include - + pkg-default.mk
 | |
| 	 Makerules.mk: add $(-mam) test for .MAM.INIT in .mo
 | |
| 	 Makerules.mk: --mam=static set noreadstate reread strictview
 | |
| 	 Makerules.mk: handle package named by root dir: :PACKAGE: /a/b/name
 | |
| 	 pkg-cobol.mk: generic cobol package setup
 | |
| 	 pkg-cobol-cobc.mk: open source cobol package setup
 | |
| 	 pkg-cobol-mfcobc.mk: microfocus cobol package setup
 | |
| 	 options.h: OPT_reread is boolean, not numeric
 | |
| 	 rule.c: add .FREEZE state.freeze
 | |
| 	 tests/recurse.tst: add
 | |
| 05-05-25 Makerules.mk: use $(CC.INCLUDE.LOCAL) instead of -I- CC.DIALECT
 | |
| 05-05-18 Makerules.mk: fix --static-link typo
 | |
| 	 Makerules.mk: disable .MAMACTION "setv FOO ${FOO}"
 | |
| 	 Makerules.mk: add (CC.SHARED.LIBS.*) to capture -l* bind changes
 | |
| 05-05-11 Makerules.mk: fix --nolib-type to work for referenced libs too
 | |
| 05-05-05 Scanrules.mk: handle cobol COPY "book" optional quotes
 | |
| 05-05-01 Makerules.mk: drop -D* from COBOLFLAGS
 | |
| 	 Makerules.mk: :PACKAGE: :dynamic => :notype
 | |
| 05-04-26 Makerules.mk: add COBOLDIALECT
 | |
| 05-04-20 Makerules.mk: add :P=A: to .LIST.PACKAGE.BINARY VROOT logic
 | |
| 	 Makerules.mk: fix PACKAGE_%_LIB logic to handle /usr/%/lib64 etc.
 | |
| 	 version.c: fix OLDMAKE to search $(PATH) for { gmake make }
 | |
| 05-04-15 option.c: fix regress state.start for hi res clock lo res filesystem
 | |
| 	 state.c: failed statevar action must set statevar time to 0
 | |
| 	 Makerules.mk: change manifest edit op :P=F: => :P=F:T=FR:
 | |
| 05-04-14 Makerules.mk: drop /usr/common from LCLDIRS, /home from OPTDIRS
 | |
| 05-04-11 command.c: set internal.openfd FD_CLOEX before coopen()
 | |
| 05-04-08 parse.c: revisit space indentation [syntax:10]
 | |
|          object.c: pre-2005-03-01 corruption repair drops 0 prereq list items
 | |
| 05-04-03 variable.c: fix += vs space inconsistencies [assign:09]
 | |
| 	 Makerules.mk: restore $(PACKAGE_LOCAL) -- used in user makefiles
 | |
| 05-03-31 Makerules.mk: add --lib-type
 | |
| 	 object.c: move bound object prereq name to COMP_NSEC
 | |
| 	 parse.c: fix assertion/assignment intercept $(%) to be operator name
 | |
| 05-03-19 Makerules.mk: %.sh chmod only if not already writeable&executable
 | |
| 	 Makerules.mk: mam ${-debug-symbols...} defaults to ${CCFLAGS.FORCE}
 | |
| 	 make.c: fix optional joint metarule prereq state check
 | |
| 	 metarule.c: fix closure ordering bug (metarule:23)
 | |
| 	 object.c: don't mark (P_joint|P_target) garbage
 | |
| 	 object.c: fix makefile prereq subsecond truncation time check
 | |
| 	 object.c: fix makefile .SOURCE.mk prereq change bug (diagnostics:14)
 | |
| 	 parse.c: .SPECIAL not interpreted as metarule -- doh
 | |
| 	 state.c: triggered state var time now synced after action completes
 | |
| 05-03-17 state.c: fix statefile() to return non-null for --nowritestate
 | |
| 	 state.c: demote "file timestamp subsecond truncation" to --warn
 | |
| 	 Makerules.mk: fix .SHARED.LIST. to honor --all-static
 | |
| 	 Makerules.mk: _PACKAGE_foo=0 => ignore :PACKAGE: foo
 | |
| 05-03-11 state.c: handle linux subsecond truncation after state lock inode flush
 | |
| 	 expand.c: handle */foo?* : lib/libfoo in :W=O:
 | |
| 05-03-09 Scanrules.mk: cobol accepts "\T \D COPY ..." !
 | |
| 	 rule.c: clarify prereq list change explanations
 | |
| 05-03-08 Makefile: generate nmake.1 from --nroff + make.1.body + make.1.tail
 | |
| 05-03-01 object.c: fix compcheck() bug that missed some prereq->complink
 | |
|          object.c: repair pre-2005-03-01 compcheck() corruption in load()
 | |
| 	 Makerules.mk: fix .LIST.PACKAGE.EDIT. , delimiter clash
 | |
| 	 Makerules.mk: fix binary .LIST.PACKAGE.EDIT. to retain arch/HOSTTYPE
 | |
| 	 Makerules.mk: fix plugin static :LIBRARY: dll install bug
 | |
| 	 Makerules.mk: --static-link => _BLD_STATIC_LINK==1
 | |
| 05-02-28 object.c: reset errno for "object file io" EOF messages
 | |
| 05-02-22 make.c: fix joint metarule time comparison
 | |
| 05-02-14 object.c: object option strings must be utf8
 | |
| 05-02-11 Makerules.mk: check :MAKE: recursion on .
 | |
| 05-02-08 Makerules.mk: shared lib link now uses ./*.req too
 | |
| 05-02-06 Makerules.mk: .FIND. lib/package checks $(PACKAGEROOT) first
 | |
| 05-02-04 Makerules.mk: drop .LIBRARY.CLEANUP. old plugin cleanup
 | |
| 05-01-01 --- release 5.0 ---
 | |
| 	 high resolution time stamps
 | |
| 04-12-25 Makerules.mk: handle cc-,a=b
 | |
| 	 Makerules.mk: check for -I. after -I-
 | |
| 	 Makerules.mk: add MVFLAGS=-f for install actions
 | |
| 	 Makerules.mk: relax .PACKAGE.INIT. PACKAGE_%_INCLUDE search
 | |
| 	 Makerules.mk: fix list.manifest recursion
 | |
| 	 Makerules.mk: add experimental --recurse=combine
 | |
| 	 Scanrules.mk: assert .LCL.INCLUDE before .PREFIX.INCLUDE :T=G: bind
 | |
| 	 msgcat.mk: 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 Scanrules.mk: add .SCAN.iffe for `include previous-iffe-output'
 | |
| 	 Scanrules.mk: fix $(prefixinclude:?...) => $(-prefix-include:+...)
 | |
| 	 Makerules.mk: 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
 | |
| 	 Makerules.mk: LEX = $(FLEX) if flex exists
 | |
| 	 Makerules.mk: add :YYPREFIX: fallback to previously generated
 | |
| 04-10-22 Makerules.mk: check for package-pwd in LICENSEFILES
 | |
| 	 Makerules.mk: mam ${(debug|strip)...} => ${-(debug|strip)-symbols...}
 | |
| 	 Makerules.mk: add $(LICENSECLASS)
 | |
| 	 Makerules.mk: add $(package.license.class) pattern for .LIST.PACKAGE.*
 | |
| 	 Makerules.mk: 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)
 | |
| 	 Makerules.mk: :PACKAGE: --option checked first, "set" by default
 | |
| 	 Scanrules.mk: .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!:
 | |
| 	 Makerules.mk: fix $(-static) => $(-static-link)
 | |
| 	 Makerules.mk: /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
 | |
| 	 Makerules.mk: drop PACKAGE_LOCAL definition -- not used anywhere
 | |
| 	 Makerules.mk: add rules options, syn with options.c
 | |
| 	 Makerules.mk: this version incompatible with make < 2004-09-09
 | |
| 04-09-01 Makerules.mk: add .LIST.PACKAGE.RUNTIME
 | |
| 	 Makerules.mk: 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 debug.mk: 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)
 | |
| 	 Makerules.mk: fix :PACKAGE_INSTALL: to use .ACCEPT (e.g. for proto)
 | |
| 	 Makerules.mk: fix .MAMEDIT. initialization for 2d vs. 3d
 | |
| 	 Makerules.mk: YACCFIX now applies proto to y.tab.h
 | |
| 	 Makerules.mk: ignore VERSION==- for default output file names
 | |
| 	 Makerules.mk: fix :DLL: to work -- wow
 | |
| 	 Makerules.mk: fix synthesized rule names to avoid .. canonicalization
 | |
| 	 Makerules.mk: fix :PACKAGE: to handle `foo=bar' rhs
 | |
| 	 Makerules.mk: add .LIST.PACKAGE.LICENSE
 | |
| 	 Makerules.mk: add separateinclude=1 to override CC.DIALECT=-I-
 | |
| 	 Makerules.mk: handle --targetprefix
 | |
| 04-08-10 rules-win32.mk: add :PACKAGE: { atl crt mfc } support -- puke
 | |
| 04-07-27 msgcat.mk: 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 internal.global
 | |
| 	 state.c: drop leads/lags warning for --regress
 | |
| 	 Makerules.mk: handle multiple :LINK: lhs
 | |
| 	 Makerules.mk: fix .DO.INSTALL.DIR view logic with .DO.TOP.LEVEL
 | |
| 	 Scanrules.mk: add ".ATTRIBUTE.%.h : .SCAN.c" for .PARAMETER files
 | |
| 	 Scanrules.mk: .SCAN.sh: 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 Makerules.mk: 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
 | |
| 	 Makerules.mk: 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 Makerules.mk: 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 Makerules.mk: drop :PACKAGE: nolibrary => -l%:.VIRTUAL
 | |
| 04-06-06 rule.c: fix associate() .SCAN match
 | |
| 04-06-04 Makerules.mk: add :PACKAGE: foo:notype bar:type=-p --type=-g
 | |
| 	 Makerules.mk: 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 Makerules.mk: fix :PACKAGE: version logic
 | |
| 	 Makerules.mk: add .FLAGSINIT, called in .MAKEINIT
 | |
| 	 Makerules.mk,Scanrules.mk: strip to generic cobol
 | |
| 	 expand.h,expand.c: add ^ edit op sep
 | |
| 04-05-20 Makerules.mk: 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
 | |
| 	 Scanrules.mk: tweak cobol sql scan
 | |
| 	 scan.c: fix ancient dup pattern prefix bug
 | |
| 04-05-06 Makerules.mk: 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
 | |
| 	 Makerules.mk: fix :PACKAGE: :noinclude:nolib:noroot
 | |
| 	 Makerules.mk: add :P=F: to .MANIFEST.
 | |
| 	 Makerules.mk: add :INIT:
 | |
| 	 Makerules.mk: drop obsolete MAKESKIP var definition
 | |
| 	 Makerules.mk: proto notice generation disabled unless LICENSE=="*=*"
 | |
| 	 Makerules.mk: package/PACKAGE.(lic|pkg) on PKGDIRS inhibits "not found"
 | |
| 	 Makerules.mk: "test" action checks for gnu "check"
 | |
| 	 Makerules.mk: fix recurse action target selection
 | |
| 	 Scanrules.mk: fix .INCLUDE.cob to search lower and upper case suffixes
 | |
| 	 rules-win32.mk: add SYSDIR
 | |
| 04-04-14 Makerules.mk,Scanrules.mk: add COBOLIPF,COBOLSQL
 | |
| 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 Makerules.mk: .BIND.+l% checks .REQUIRE.-l% for disable
 | |
| 04-03-31 expand.c: add :VB: for VAL_BRACE { ... }
 | |
| 	 Makerules.mk: fix .SHARED.LIST. again
 | |
| 	 Makerules.mk: add :PACKAGE: noCC.* CC.*=value probe overrides
 | |
| 04-03-30 Makerules.mk: omit -L*/local/* if in CC.STDLIB (00-03-17 repeal)
 | |
| 04-03-25 pkg-X11.mk: drop openbsd.i386 -lc_r workaround
 | |
| 	 Makerules.mk: fix .SHARED.BIND. CC.SUFFIX.STATIC -l* expansion bug
 | |
| 04-03-17 expand.c: check { :: :LIBRARY: } lhs
 | |
| 	 option.c: fixed bug that looped on `-' or `+' arg -- wow
 | |
| 	 Makerules.mk: atom arg disables foo => .FOO checks for subsequent args
 | |
| 	 Makerules.mk: fix .LIST.PACKAGE.BINARY :P=A: misplacement
 | |
| 	 Makerules.mk: fix inappropriate .BIND.-l% CC.SUFFIX.ARCHIVE .IGNORE
 | |
| 	 Makerules.mk: fix .SHARED.REF.* to bind before return
 | |
| 	 Makerules.mk: :NOTHING: now does `exit 0' -- almost nothing
 | |
| 	 Makerules.mk: I not appended to ARFLAGS if .def :LIBRARY: rhs
 | |
| 	 pkg-X11.mk: handle /usr/include/X11R* /usr/lib/X11R*, deprecate contrib
 | |
| 04-02-29 state.c: fix `another make running' message to handle <=0 elapsed time
 | |
| 	 Makerules.mk: CC.LD.RUNPATH used only if LDRUNPATH set (. to kick in)
 | |
| 	 Makerules.mk: mam ${MAKE} => ${NMAKE}, ${MAKEFLAGS} => ${NMAKEFLAGS}
 | |
| 	 Makerules.mk: localize plugin DLLDIR and CC.SHARED.REGISTRY
 | |
| 	 Makerules.mk: do not install plugin CC.SUFFIX.SHARED libs
 | |
| 	 Makerules.mk: fix CC.SUFFIX.SHARED CC.SUFFIX.ARCHIVE clash
 | |
| 	 variable.c: mam $(-): $MAKEFLAGS => ${NMAKEFLAGS}
 | |
| 	 nmake.tst: 001 now ebcdic immune
 | |
| 04-02-14 scan.c: add class identifier match action 'C'
 | |
| 	 expand.c: add :P=E: for PATH independent executable name
 | |
| 	 expand.c: static mam :P=A: expands ``.'' for pwd
 | |
| 	 expand.c: :N=pat: now uses regcomp() instead of strmatch()
 | |
| 	 expand.c: :T=F: lstat() (as always) :T>F: pathstat()
 | |
| 	 read.c: extend new vs. old makefile type check
 | |
| 	 parse.c: add <<'end' ... end for literal actions
 | |
| 	 Makerules.mk: let proto -c '' determine .LIST.PACKAGE.* comment style
 | |
| 	 Makerules.mk: add $(CC.EXPORT.DYNAMIC) to default cobol LDFLAGS
 | |
| 	 Makerules.mk: add $(CC.SHARED.LD) to differentiate -r and $(CC.SHARED)
 | |
|          option.c: add --writeobject[=file] --writestate[=file]
 | |
| 04-02-11 Makerules.mk: .LIST.PACKAGE.* generates top view relative paths
 | |
| 	 Makerules.mk: add $(CC.AR) for ar
 | |
| 	 option.c: fix optget() usage bug that treated --nofoo as --foo
 | |
| 04-02-02 Makerules.mk: :LIBRARY: plugin static still installs req
 | |
| 	 Makerules.mk: fix :PACKAGE: foo:nolibrary
 | |
| 	 Scanrules.mk: ignore C++ include <foo> (no suffix)
 | |
| 	 object.c: retain reference .IGNORE in state
 | |
| 	 option.c: non-0 exit for invalid command line options
 | |
| 	 parse.c: don't check D_scope for D_dynamic
 | |
| 	 rule.c: add external.order for .ORDER, :W=[OPR]:, :PACKAGE: X:order
 | |
| 	 scan.c: null map means ignore; handle |A.IGNORE|
 | |
| 04-01-30 Makerules.mk: add .LIBRARY.CLEANUP.* to clean up after plugin renam
 | |
| 	 Makerules.mk: :PACKAGE_INIT: lhs for pre-installed $(BINDIR) files
 | |
| 04-01-28 Makerules.mk: add ``lib version plugin=id :LIBRARY: ...''
 | |
| 	 expand.c: :W=[OPR]: now favors make if its in the mix
 | |
| 04-01-22 Makerules.mk: add .PREQUIRE check to ensure up to date *.req
 | |
| 04-01-20 expand.c: :T=F: includes triggered time==0 targets
 | |
| 04-01-01 --- release 4.4 ---
 | |
| 03-12-31 Makerules.mk: $(LDRUNPATH) overrides defaults for CC.LD.RUNPATH
 | |
| 03-12-19 expand.c: add `foolib:foo:libfoo' to :W=[OPR]:
 | |
| 03-11-25 Makerules.mk: CC=c++ not found => search for any existing c++ compiler
 | |
| 03-11-19 Scanrules.mk: default cobol include suffix is .CPY (or .cpy)
 | |
| 03-09-29 Makerules.mk: fix $(PACKAGES) logic inversion typo (:VARIANT: bug)
 | |
| 03-09-22 Makerules.mk: don;t clobber $(CATALOG).msg
 | |
| 03-09-19 Makerules.mk: fix %.sh USAGE_LICENSE quoting
 | |
| 	 expand.c: fix :T=E: quoting
 | |
| 03-09-16 archive.c: inhibit `member newer than archive' for ranlib time skew
 | |
| 03-08-27 Makerules.mk: honor explicit :MAKE: rhs order
 | |
| 03-08-11 make.c: change -T0x00300000 to -Q0x00300000 as documented
 | |
| 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
 | |
| 03-06-11 Makerules.mk: reinstate install .a on .dll+.lib systems
 | |
| 	 rules-win32.mk: inhibit libast.a install since cc does implicit ast.lib
 | |
| 	 Makerules.mk: drop DIALECT==CLOSURE check for new -l* binding 
 | |
| 	 Makerules.mk: add --mam ${mam_cc_FLAGS} to handle user CCFLAGS override
 | |
| 	 Makerules.mk: fix :DLL: to honor CCFLAGS
 | |
| 	 Makerules.mk: add -D_BLD_DEBUG to mam CCFLAGS
 | |
| 03-06-10 debug.mk: add libpp(3) -D-d to %.i rules
 | |
| 03-06-09 main.c: wait for jobs to finish before making .DONE
 | |
| 	 expand.c: change `V edit op value' error to be a warning
 | |
| 	 Makerules.mk: fall back to flex if lex not found
 | |
| 03-06-06 expand.c: add :VFU: to expand unbound internal var names
 | |
| 	 Makerules.mk: use .SHARED.LIST. to generate -l* +l* list
 | |
| 03-06-02 ppcc.sh: -o C++ implies -o PPLD for link time instantiation
 | |
| 03-05-21 Makerules.mk: fix %.sh=>% :T=E: echo quote bug
 | |
| 03-05-19 Makerules.mk: runtime check for flex -[oP] and bison -[op]
 | |
| 	 Makerules.mk: add strip=1 ala debug=1
 | |
| 03-05-11 rule.c: fix MAKEPATH=$PWD:$PWD loop
 | |
| 03-05-09 command.c: add "init TARGET CURTIME" dynamic mam
 | |
| 	 command.c: add CURTIME to mam "code TARGET STATETIME CURTIME ..."
 | |
| 03-05-07 Makerules.mk: add COBOL COBOLFLAGS COBOLMAIN COBOLLIBRARIES .SUFFIX.cob
 | |
| 	 Scanrules.mk: add .SCAN.cob, `*( MAIN )*' for main source
 | |
| 	 scan.c: add \D (0 or more digits), \V (0 or more variable chars)
 | |
| 03-04-27 Makerules.mk: don't build dlls in subdir for CC.SUFFIX.SHARED==".x"
 | |
| 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 ---
 | |
| 02-12-18 Makerules.mk: :NOOPTIMIZE: "..."'d operator arg shenanigans
 | |
| 02-12-16 Makerules.mk: disable .ARCOPY for linked targets
 | |
| 02-12-06 Makerules.mk: sync CC.MAKE.OPTIONS,nativepp,prefixinclude logic
 | |
| 02-12-04 Makerules.mk: fix contorted .so editing for - and  n.n.n versions
 | |
| 	 Makerules.mk: parameterize CC/cc suffixes in { .SUFFIX.c .SUFFIX.C }
 | |
| 	 Makerules.mk: use { .SUFFIX.c .SUFFIX.C } in :cc: list generation
 | |
| 	 Makerules.mk: parameterize fortran suffixes in { .SUFFIX.f .SUFFIX.r }
 | |
| 	 Makerules.mk: %.f is now equivalent to %.F
 | |
| 	 Scanrules.mk: use { .SUFFIX.c .SUFFIX.C .SUFFIX.f .SUFFIX.r }
 | |
| 	 Scanrules.mk: change .SCAN.F to .SCAN.fql -- who cares?
 | |
| 02-12-03 rule.c: don't .UNBIND M_bind rules (questionable=0x02000000)
 | |
| 02-12-02 Makerules.mk: prefixinclude=0 if CC.DIALECT has -I-
 | |
| 	 make.c: add mutually dependent requirement loop check (for -l loops)
 | |
| 02-11-28 main.c: don't close error_info.fd in startup
 | |
| 02-11-21 Makerules.mk: dll version "-" bug that removed the installed dll!
 | |
| 02-11-20 Makerules.mk: fix :cc: to handle all C source suffixes
 | |
| 02-11-12 Makerules.mk: handle CC.LD.ORIGIN and CC.LD.STRIP
 | |
| 02-10-31 main.c: change exit()=>return for pedantic lint
 | |
| 02-10-28 bind.c: add GLOB_NOTDIR optimization to gl_dirnext
 | |
| 02-10-25 eliminate a few uninitialized variable references
 | |
| 02-10-20 Makerules.mk: add :NOTHING: (:ALL: or ...)
 | |
| 02-10-16 Makerules.mk: fix :MAKE: for rhs files
 | |
| 02-10-02 state.c: (-Q0x01000000) $(>) use min(r->time,state(r)->time)
 | |
| 	 misc.c: tmform() => fmttime(); %K default time format
 | |
| 02-09-22 Makerules.mk: drop ${mam_cc_STATIC} for +l binding
 | |
| 	 expand.c: fix mam $(FOO|BAR) => ${mam_cc_FOO-${mam_cc_BAR}} conversion
 | |
| 02-09-11 make.probe,probe.win32: move to INIT src to share with mamprobe
 | |
| 	 Makerules.mk: add a few more mam_cc_* refs (mamprobe mostly complete)
 | |
| 	 Makerules.mk: don't install .a only on .dll+.lib systems
 | |
| 	 Makerules.mk: add :PACKAGE: :ignore=dir:, PACKAGE_IGNORE
 | |
| 	 Makerules.mk: .PACKAGE.INIT. always initializes .PACKAGE.GLOBAL.
 | |
| 	 Makerules.mk: add STDCMP to MAM install action
 | |
| 02-09-07 Makerules.mk: disable lib REQUIRE closure if from CC.REQUIRE.*
 | |
| 02-09-05 Makerules.mk: drop .NO.STATIC foo.a => foo-static.a rename
 | |
| 02-09-01 Makerules.mk: add RMRECURSEFLAGS=-r
 | |
| 	 Makerules.mk: assume mkdir -p (handled by INIT install)
 | |
| 02-08-30 make.c: modified .JOINT siblings now trigger action
 | |
| 02-08-06 make.h: { setbit shquote } macro rename to appease netbsd -- barf
 | |
| 02-07-17 make.c,parse.c: allow keepgoing to be set by .QUERY
 | |
| 02-06-11 Makerules.mk: :F=%(...)S: => :F=%(...)s:
 | |
| 	 misc.c: %S %C obsolete warning
 | |
| 	 variable.c: fix $(!) that improperly skipped !rule.scan && PREREQS.scan
 | |
| 02-06-07 state.c: stat() after close() instead of fstat() before for cygwin
 | |
| 02-06-06 Makerules.mk: fix $(output) to handle -$(VERSION) already in $(PWD)
 | |
| 02-05-28 probe.win32: updates for { mingw }
 | |
| 02-05-24 probe.win32: updates for { digital-mars borland lcc }
 | |
| 02-05-20 expand.c: update to use regsubcomp(),regsubexec()
 | |
| 02-05-09 expand.c: fix cross() so / X foo generates /foo, not //foo
 | |
| 02-05-07 archive.c: use <ardir.h>,-lardir for library archives
 | |
| 02-05-06 probe.win32: add more win32 compilers
 | |
| 02-04-15 Makerules.mk: fix .DO.INSTALL ln-s to use proper source path
 | |
| 02-03-29 Makerules.mk: CC.SUFFIX.SHARED==".lib" => CC.SUFFIX.DYNAMIC==".dll"
 | |
| 	 make.probe: cygwin CC.PREFIX.SHARED=lib CC.SUFFIX.SHARED=.dll.a
 | |
| 02-03-27 Makerules.mk: fix .BIND.-l% and .REQUIRE.-l% recursion checks
 | |
| 02-03-23 Makerules.mk: ensure that _BLD_<variant> is valid identifier
 | |
| 	 Makerules.mk: add .LIST.INSTALLED for existing files only
 | |
| 	 Makerules.mk: add $(LICENSEFILE) to .FILES.
 | |
| 02-03-14 variable.c: add label to --mam "setv" 
 | |
| 02-02-14 makerules: add and use CMPFLAGS
 | |
| 	 makerules: add win32 ar I flag only when installing .a
 | |
| 	 makerules: iffe { CC CCFLAGS LDFLAGS } => { IFFECC ... }
 | |
| 	 scan.c,variable.c: .SCAN.IGNORE must ignore state prereqs too
 | |
| 	 main.c: fix final message sequence for .ERROR intercept
 | |
| 	 state.c,variable.c: fix $(?x) when state(x) exists but rule(x) doesn't
 | |
| 	 makerules: add .SHARED.UNIQ. to .COMMAND.o (required by sgi.mips3)
 | |
| 02-02-02 makerules: mark :VARIANT: target .SPECIAL
 | |
| 	 makerules: use STDED & STDEDFLAGS to differentiate from ED=vi
 | |
| 	 makerules: drop ED & EDFLAGS
 | |
| 	 Makeinstall.mk: add STD* probe with possible execrate(1)
 | |
| 	 makerules: inhibit lib/lib closure for CC.DIALECT==CLOSURE
 | |
| 	 probe.win32: add CC.DIALECT CLOSURE to inhibit .lib closure
 | |
| 	 option.c: -S => -S0
 | |
| 	 makerules: fixed .SHARED.UNIQ. to ignore .MULTIPLE -- duh
 | |
| 02-02-01 makerules: fix .IFFE.REF. for \rsystems -- barf
 | |
| 02-01-22 makerules: ARFLAGS += I for CC.DLL on win32.*
 | |
| 02-01-15 makerules: fix $(CC.PREFIX.DYNAMIC) logic in .BIND.-l%
 | |
| 	 makerules: mark $(CC.SUFFIX.DYNAMIC) .SCAN.IGNORE
 | |
| 02-01-11 makerules: fix $(CC.SUFFIX.LD) prereqs for :LIBRARY: dlls
 | |
| 	 make.probe: add .ign to cygwin CC.SUFFIX.LD
 | |
| 02-01-10 makerules: add proto -e arg to lhs of :INSTALLPROTO:
 | |
| 	 probe.win32: add .ign to CC.SUFFIX.LD
 | |
| 02-01-08 makerules: initialize HOSTCC to $(CC)
 | |
| 02-01-07 makerules: fix .LIBRARY.STATIC.* binding
 | |
| 02-01-04 makerules: .REQUIRE.-l% includes pkg-%.mk of lib+prereqs before bind
 | |
| 01-12-26 makerules: .REQUIRE.-l% includes pkg-%.mk if it exists
 | |
| 01-12-24 pkg-X11.mk: add CC.REQUIRE.Xaw3d
 | |
| 01-12-20 makerules: fix .RECURSE.INIT to use only first match of $(MAKEFILES)
 | |
| 01-12-19 makerules: foo :VARIANT: ... implies _BLD_foo==implies _BLD_foo==1
 | |
| 01-12-18 makerules: sync .SOURCE.a between .BIND* and .PACKAGE* (again!)
 | |
| 01-12-15 command.c: fix bug that discarded a running job twice
 | |
| 01-11-30 command.c: exit 128 silently marks job error but continues
 | |
| 01-11-25 command.c: add .JOBDONE(target status user sys) .FUNCTION
 | |
| 01-10-31 makerules: adjust .SOURCE.mk to ensure user specified dir order
 | |
| 	 makerules: search MAKERULESPATH for ppcc rather than just MAKELIB
 | |
| 	 makerules: delay CC.SHARED.REGISTRY expansion
 | |
| 	 bind.c: add debug=14 directory search order trace
 | |
| 	 make.probe: fix CC.SHARED.REGISTRY probe typo
 | |
| 01-10-30 makerules: _BLD_foo==1 only for foo :LIBRARY: source
 | |
| 01-10-20 makerules: fix --mam bug that didn't parameterize HOSTCC
 | |
| 	 makerules: fix .PACKAGE.INIT. and .BIND.-l% to use the same search!
 | |
| 	 bind.c: foiled alias still allows bind questionable=0x40
 | |
| 	 expand.c: allow all edit op delimiter combinations (e.g., !>, <>)
 | |
| 	 make.probe: fix CC.DLL probe for gcc __ia64
 | |
| 01-10-18 misc.c: clear SFFMT_LONG for %[cCsS] to avoid wide char conversions
 | |
| 01-10-17 misc.c: add %a %A format, fix unknown format core dump
 | |
| 01-10-15 makerules: fix .SELECT. bug that improperly dropped .ARCHIVE
 | |
| 01-10-11 make.probe: fix CC.WARN probe for C++
 | |
| 01-10-10 Makerules.mk,make.probe: add { SHELLMAGIC CC.SHELLMAGIC }
 | |
| 01-10-05 make.c: add -Q0x00800000 to disable r->status=FAILED when errors!=0 !!
 | |
| 01-10-02 makerules: :YYPREFIX: invert case for macro prefix
 | |
| 01-09-28 makerules: fix .RWD. and .OWD. usage
 | |
| 01-09-24 fix $(.GETCONF x) builtin
 | |
| 01-09-19 make.probe: add cygwin dll build probes
 | |
| 	 probe.win32: sync with make.probe
 | |
| 	 makerules: include debug.mk by default
 | |
| 	 makerules: .dll+.lib rule now passes .dll suffix to $(CC.LD)
 | |
| 	 make.probe,makerules: add CC.PREFIX.(ARCHIVE|DYNAMIC|SHARED)
 | |
| 	 make.probe,makerules: change CC.SYMPREFIX to CC.PREFIX.SYMBOL
 | |
| 	 makerules: fix .RECURSE and .ONOBJECT to hit sub :MAKE: levels
 | |
| 01-09-17 makerules: fix PACKAGE_OPTIMIZE logic
 | |
| 01-09-11 expand.c: use pathnative() for native fs representation
 | |
| 	 openar(): must open with "b" mode
 | |
| 	 state.c: open state with "b" mode
 | |
| 01-09-08 makerules: add *.a prereqs to dll link
 | |
| 01-09-04 makerules: +l* bind conditioned on .LIBRARY.LIST. for dll builds
 | |
| 01-08-11 makerules: reference $(CC.DLL.LIBRARIES) last and in link args only
 | |
| 	 makerules: +l* in req list now checks .PACKAGE.*.library for -l*
 | |
| 	 parse.c: fix `\\\r to act like `\\\n'
 | |
| 	 make.h: add FSWINDOWS to include { _WIN32 _UWIN __CYGWIN__ }
 | |
| 01-07-17 makerules: fix :LIBRARY: to honor LDLIBRARIES
 | |
| 01-06-21 misc.c: fix strtoll and strtoull macro rename
 | |
| 01-06-10 makerules: add CC.NATIVE for native objects
 | |
| 01-06-07 command.c: fix job deadlock bug that improperly broke the loop
 | |
| 01-05-31 makerules: add option rhs to :DLL:
 | |
| 	 makerules: :PACKAGE: add :(optimize|space|time) for PACKAGE_OPTIMIZE
 | |
| 	 makerules: add CC.HOSTTYPE != CC.EXECTYPE for IFFEFLAGS
 | |
| 	 make.probe: add CC.EXECTYPE
 | |
| 	 make.probe: fix { ld nm size strip } search
 | |
| 	 make.probe: adjust probe_shared order for linux.arm gcc
 | |
| 	 option.c: add --cross to not run generated executables
 | |
| 01-05-30 make.probe: add CC.NATIVE
 | |
| 01-05-28 make.probe: add CC.STRIP and CC.STRIP.FLAGS
 | |
| 	 makerules: add PACKAGESTRIP check for .LIST.PACKAGE.BINARY
 | |
| 01-05-26 expand.c: add :T=Y: for mime type
 | |
| 01-05-09 --- release 4.2 ---
 | |
| 	 make.h: isdynamic,isglob,isstatevar: functions to factor out strmatch()
 | |
| 	 expand.c: add T=XQ[S[AV]|V[I]] to factor out strmatch() in base rules
 | |
| 	 rule.c: speed up associate() by factoring out attributes
 | |
| 01-05-01 expand.c: order() now handles :PACKAGE: foo:command
 | |
| 01-04-26 makerules: null out cctype and .CC.PROBE. for --base
 | |
| 	 makerules: fix .REQ. bug that missed :LIBRARY: targets
 | |
| 01-04-25 makerules: add variants=pattern to select cc- variants
 | |
| 	 makerules: add .VARIANTS alias for .CC-
 | |
| 	 option.c: fix bug that omitted readonly option values in .mo
 | |
| 01-04-24 makerules: :DLL: sets VARIANT=DLL
 | |
| 01-04-18 object.c: fix CC_NATIVE!=CC_ASCII buffer overflow
 | |
| 	 make.probe,makerules: mvs.390 adjustments for CC.LIB.DLL=symbol
 | |
| 01-04-01 scan.c: fix * scan match bug that gave up too soon
 | |
| 01-03-08 printext: handle %*C
 | |
| 01-02-26 makerules: CC.SUFFIX.STATIC get .ARCHIVE attribute
 | |
| 	 makerules: add .NO.ARPROFILE to defer to dll prereqs for dll target
 | |
| 	 pkg-X11.mk: check libXmu.sa for openwin
 | |
| 01-02-14 make.probe,makerules: add CC.DLL.LIBRARIES, CC.DLL.ALTERNATES
 | |
| 	 make.probe: linux needs CC.DLL.LIBRARIES=-lc for binary compatibility
 | |
| 	 probe.win32: change to CC.STATIC=-Bstatic, dynamic is now the default
 | |
| 	 makerules: drop .SCAN.IGNORE for .DO.INSTALL.DIR
 | |
| 	 makerules: fix .SHARED.BIND. to pull in dynamic refs
 | |
| 	 makerules: change .OFFICIAL diff style to -u
 | |
| 	 mam: add `bind -lX [dontcare]' to simplify library binding
 | |
| 	 command.c: fix job deadlock bug that used archive before it built
 | |
| 01-02-07 Scanrules.mk: add .cxx for C++
 | |
| 01-02-02 makerules: bias package search to viewpath and make installroot
 | |
| 	 makerules: *.req can be down the view
 | |
| 01-01-01 --- release 4.1 ---
 | |
| 	 expand: fix :D: to preserve leading / -- how long has this been wrong?
 | |
| 	 makerules: fix .PACKAGE.INIT. for dir == /
 | |
| 	 makerules: $(PACKAGE_PATH) is list of default package root dirs
 | |
| 	 makerules: add recurse=list to list recursion order and exit
 | |
| 	 makerules: _BLD_DLL==1 when building dll's
 | |
| 	 makerules: link dll with static -l*
 | |
| 	 makerules: check =l% bound dir in .REQUIRE.-l% PACKAGE_%_LIB
 | |
| 	 expand: eliminate loops from :W=O:
 | |
| 	 parse: add exit [code]
 | |
| 	 bind: eliminate dups for 2d glob
 | |
| 00-12-25 makerules: add header arg to :YYPREFIX:
 | |
| 	 makerules: add :T=AF: for .ARCOPY
 | |
| 	 probe.win32: add cc path *and* args to first line to avoid hash clash
 | |
| 00-12-18 ppcc: check for old bash
 | |
| 00-12-15 makerules: handle uwin $(CC.DLL) => -D_BLD_DLL change
 | |
| 00-12-14 main: initialize version with fmtident()
 | |
| 00-12-12 makerules: bias :PACKAGE: search for $(INSTALLROOT)
 | |
| 	 make: use stat() instead of access() for better NFS behavior
 | |
| 00-12-11 makerules: _BLD_DLL only for _DLL lib members
 | |
| 00-12-03 debug.mk: add %.inc for -H include nesting
 | |
| 00-10-31 option: --corrupt={accept|error|ignore}, --mismatch => --corrupt
 | |
| 	 makerules: req file must be seen at of before the lib
 | |
| 	 makerules: fix AWK and NAWK default definitions
 | |
| 	 makerules: physical=1 => 2d iff in 3d
 | |
| 	 pkg-tcl.mk: add CC.DLL, don't clobber TCLROOT
 | |
| 	 makerules: define _PACKAGE_foo in .PACKAGE.INIT.
 | |
| 	 makerules: add .VIEW to .MAMEDIT and .MAMACTION
 | |
| 00-10-28 makerules: drop MAKEFILES filter on .SELECT. (why was it there?)
 | |
| 00-10-26 make.c: fix .JOINT sync bug
 | |
| 	 makerules: add $(PACKAGES expr) and :VARIANT: rhs expr
 | |
| 	 expand.c: add :T=F[BCFLPR]: to test file type
 | |
| 	 makerules: cut down the number of --mam -L options for .req
 | |
| 00-10-25 makerules: set +x => set -
 | |
| 	 makerules: add set - to .req MAM action for zsh
 | |
| 00-10-24 makerules: add :PACKAGE: name:lib=lib:include=include name:command
 | |
| 	 makerules: add :VARIANT: to cc-%
 | |
| 00-10-18 C+probe: mac os10 additions
 | |
| 	 add cc.darwin.ppc for max os10
 | |
| 00-10-16 object.c: don't compile makefile prereqs if state.base
 | |
| 00-10-12 misc.c: add %x and %X formats to printf extension
 | |
| 00-10-04 makerules: fix bug that passed -I- to non--I- CC
 | |
| 00-10-03 makerules: add :YYPREFIX:
 | |
| 00-09-21 expand.c: add libxxx and xxx to makefile ordered prereqs
 | |
| 00-09-07 makerules: handle rhs a=b in :LIBRARY:
 | |
| 00-08-11 archive.c: add aix <bigaf> archive format
 | |
| 	 bind.c: add glob() gl_intr check
 | |
| 00-07-17 makerules: fix $(cctype) freeze in makerules.mo
 | |
| 00-06-20 makerules: mam_lib_* always checks lib/lib/* file
 | |
| 00-06-19 makerules: generate dll in lib.so/libNN.dll
 | |
| 00-06-01 main,state: a few _UWIN tweaks for W98 FAT
 | |
| 00-05-31 shquote: fix for `foo == bar'
 | |
| 00-05-26 option: fix scanargs() bug that skipped some targets before options
 | |
| 00-05-22 makerules: drop .ORIGINAL.ALL
 | |
| 00-05-11 makerules: add :PACKAGE: { a b } to pick first of a b (thanks Dr. ek)
 | |
| 00-05-01 makerules: add $(STDCAT) initialization
 | |
| 00-04-01 makerules: add skeleton=1 to mkdir virtual directories in 2d
 | |
| 	 makerules: add CATALOG and ERROR_CATALOG
 | |
| 00-03-17 make.probe: fix CC.NMEDIT to grab only external text symbols
 | |
| 	 makerules: add :NOOPTIMIZE:
 | |
| 	 makerules: allow N.Ntag :LIBRARY: versions (and dll.custom)
 | |
| 	 makerules: insert $(*FLAGS_DEFAULT) on *FLAGS
 | |
| 	 makerules: don't omit -L*/local/* even if in CC.STDLIB
 | |
| 	 parse.c: `unknown operator' now a warning
 | |
| 00-03-07 pkg-X11.mk: add -lXaw candidate required libraries
 | |
| 00-03-06 add probe.lcl check
 | |
| 00-02-14 --- release 4.0 ---
 | |
| 00-02-10 Makerules: add CC.DLLBIG, :PACKAGE_INIT:
 | |
| 	 Makerules: add .ARCHIVE.OMIT. to .ARCLEAN.LIST.
 | |
| 	 Makerules: adjust :PACKAGE: search for X11 => X
 | |
| 	 Makerules: add .COMMON.SAVE to .LIST.PACKAGE.* source actions
 | |
| 	 Makerules: fix setv PACKAGE dirs
 | |
| 	 Makerules: add $(PACKAGE_LOCAL) and package_local=arch cmd prefix
 | |
| 	 Makerules: apply %.X>% for `f :: b.X'
 | |
| 	 state.c: add local skew test for touch(3) { utime(2) or utimes(2) }
 | |
| 	 make.c: don't apply metarule if lhs has dir and metarule doesn't
 | |
| 00-02-08 believe if state.believe>0 and  view level >= (state.believe-1)
 | |
| 	 pkg-X11.mk: add PACKAGE_X11_VERSION=6 for X11R6 installations
 | |
| 	 pkg-X11.mk: add -ldnet_stub for osf.alpha
 | |
| 	 Makerules: fix .REQUIRE.-l%
 | |
| 00-01-31 Makerules: add $(CC.SUFFIX.LD) in .SHARED.REF.lib
 | |
| 00-01-25 Makerules: add _MAKE_PROBE_WORKAROUND_ for broken cc -G like sco.i386
 | |
| 00-01-11 Makerules,probe.win32: -Bwhole-archive + -Bstatic -- whew!
 | |
| 	 Makerules: make $(LICENSEFILES) for --mam
 | |
| 	 Makerules: add $(DICTIONARY) to USAGE_LICENSE
 | |
| 	 make.probe: hosttype now in C.probe
 | |
| 	 expand: fix :P=L: path buffer overrun
 | |
| 99-11-11 expand: add :P=W: for astlicense()
 | |
| 	 expand: :P=N: null input generates null (not '')
 | |
| 	 bind: fix 2d globv() and bindfile() by adding state.view[].root - wow
 | |
| 	 bind: fix 2d :P=L=*:
 | |
| 	 mam: capture important empty exec make-done pairs
 | |
| 	 main: make sure external.pwd is valid
 | |
| 	 Makerules: iffe --static=x => iffe -S x
 | |
| 	 Makerules: explicit :INSTALL: inhibits :: install
 | |
| 	 Makerules: add MM2HTML
 | |
| 	 Makerules: install cc- => cc-install
 | |
| 	 Makerules: add .MAM.CCFLAGS to handle .CC.NOOPTIMIZE
 | |
| 	 option.c: clean up --errorid
 | |
| 	 option.c: add set readonly for state.readonly hook
 | |
| 	 Makerules: use set readonly for INSTALLROOT and PACKAGEROOT
 | |
| 	 make.probe: sco CC.WARN=-w3
 | |
| 	 make.probe: CC.MEMBERS => CC.LIB.ALL CC.LIB.DLL CC.LIB.UNDEF
 | |
| 	 expand: add :U[!]: for uniq [file equality] list
 | |
| 	 Makerules: IFFEFLAGS initialized in .MAKEINIT
 | |
| 	 rule: make sure PWD and VPATH are both logical or physical
 | |
| 	 parse: add "x" <|>[=] "y"
 | |
| 	 Makerules: add LDLIBRARIES to .SHARED.lib
 | |
| 99-10-31 Makerules: add :PACKAGE: => :package: if lhs
 | |
| 	 Makerules: :MAKE: with no rhs driven by MAKEDIRS and MAKESKIP
 | |
| 	 Makerules: add :Q: to "::" assertion scope items (yuk)
 | |
| 	 Makerules: add LICENSE hooks, USAGE_LICENSE
 | |
| 	 expand.c: add :P=G: to do viewpath glob, :W=O: to order subdir descent
 | |
| 	 expand.c: add :O=N:
 | |
| 	 expand.c: pretty up :Q:
 | |
| 	 expand.c: add :P=V0: for top view logical name of bound file
 | |
| 	 rule.c: add globv() for rhs patterns -- strictly . relative down view
 | |
| 	 make.probe: fix nmflags logic (for aix -p, portable not)
 | |
| 99-10-01 Makerules: add %.iffe
 | |
| 	 make.c: handle metarule .ACCEPT
 | |
| 99-07-17 mam.c: outer make...done for virtual joint target
 | |
| 	 command.c: fix job deadlock detection
 | |
| 	 Makerules: don't pp probe if CC.CC == ""
 | |
| 	 Makerules: allstatic=1 for +l propagation, 0 for item only
 | |
| 	 Makerules: fix $(.SHARED. ...) usage
 | |
| 	 Makerules: :INSTALL*: now handles dir on rhs
 | |
| 	 Makerules: add %.cxx
 | |
| 	 Makerules: add .ti to clobber list
 | |
| 	 Makerules: cc-: `~' => space if specified, otherwise `,' => space
 | |
| 	 Makerules: add recurse_enter and recurse_exit
 | |
| 	 misc.c: add %[eFfFgG] print formats
 | |
| 	 expand.c: generate() lists primary and secondary by default
 | |
| 	 Makerules: add .author and PROTOID to PROTOCOPYRIGHT
 | |
| 	 Makerules: allow state on :INSTALL*: rhs
 | |
| 	 Makerules: .CC.MEMBER: jobs>0 workaround: a bug coverup
 | |
| 	 Makerules: add :PACKAGE: debug profile CC.LIB.TYPE
 | |
| 	 expand.c: fix putptr(0) base addr switch
 | |
| 	 .SCAN.IGNORE: don't block on these - duh
 | |
| 99-07-17 --- release 3.6 ---
 | |
| 99-06-24 Makerules: fix .SHARED.ON. test
 | |
| 99-06-15 make.probe: shlib before others, /var/shlib, -none == ! -all
 | |
| 99-06-14 Makerules: +lfoo applies to self, not to .req members
 | |
| 99-05-09 option: separate usage string stream
 | |
| 99-05-01 main: long options
 | |
| 99-04-22 Makerules: fix :LIBRARY: for version "-" (no version)
 | |
| 99-04-01 Makerules: -mam cleanup
 | |
| 	 Makerules: %.req version bug fix
 | |
| 	 Makerules: :PACKAGE: :nolibrary means it -- don't pull it in
 | |
| 	 Makerules: .REQ. fix
 | |
| 	 Makerules: fix .req -mam cc script
 | |
| 	 expand: regfatalpat() for regcomp() pattern in error messages
 | |
| 	 option: first optget() interface -- could be more complete
 | |
| 99-03-17 Makerules: %.req just binds -- duh
 | |
| 	 Makerules: .RECURSE clears .RWD.
 | |
| 	 Makerules: handle `lib - :LIBRARY: ...' => no VERSION
 | |
| 	 make.probe: CC.DEBUG CC.HOSTTYPE CC.OPTIMIZE CC.STRICT CC.WARN
 | |
| 	 main.c: command line scripts done after .MAKEINIT
 | |
| 	 main.c: test 0x00020000 to close openfd before coexec
 | |
| 	 make.c: D_scope prereqs take effect in make() too
 | |
| 99-03-01 Makerules: add :P=C: to .MANIFEST.
 | |
| 99-02-14 make.probe: move some init stuff from C.probe
 | |
| 	 make.probe: deal with gcc/ld writing errors to stderr with 0 exit code
 | |
| 	 trap: clean up .INTERRUPT interface
 | |
| 	 Makerules: :PACKAGE: -l* .MULTIPLE
 | |
| 	 Makerules: fix :: :LIBRARY: for cmd and lib by same name
 | |
| 	 object.c: retain D_global in load()
 | |
| 	 Scanrules: fix .PFX.INCLUDE test
 | |
| 99-01-23 Makerules: *.req.REQUIRE : .IGNORE
 | |
| 	 Makerules: add -f $(MAKEFILE) to .RECURSE $(MAKE) args
 | |
| 	 Makerules: .REQUIRE.-l% checks $(PACKAGE_%_LIB)/lib/% first
 | |
| 	 Makerules: make :PACKAGE: search picky about version
 | |
| 	 Makerules: handle :PACKAGE: -lfoo
 | |
| 	 Makerules: PACKAGE_%_VERSION defined
 | |
| 	 make.probe: use full path for NM, etc.
 | |
| 	 make.probe: libpath not added to CC.STDLIB
 | |
| 99-01-11 Makerules,make.probe: CC.MEMBERS.UNDEF
 | |
| 	 Makerules: fixed .SHARED.lib wrt :PACKAGE:
 | |
| 	 make.probe: tweak CC.STDLIB
 | |
| 98-12-25 Makerules: :LIBRARY: initializes VERSION var if not set
 | |
| 	 Makerules: add tgz, tarball; drop update*; pax and tgz recursive
 | |
| 	 Makerules: tarball uses VERSION
 | |
| 	 Makerules: `:: dir' adds dir to manifest
 | |
| 	 Makerules: arch-$(_hosttype_).mk architecture specific additions
 | |
| 	 Makerules: $(CC.DLL) uses local *.lib
 | |
| 	 expand: add :P=N: for 'native-path'
 | |
| 	 expand: :P=S=subdir: to handle recursive manifest
 | |
| 	 parse: fix \\n splice bug that activated rules direcive
 | |
| 	 rule: .READONLY external support
 | |
| 	 bind: (P_readonly|P_terminal) does not get attribute assoc
 | |
| 	 bind: add rule_compare() and rule_hash() for case hacks
 | |
| 	 option: -o writeobject (on by default)
 | |
| 	 expand: regcomp(REG_SHELL) needs REG_LEFT|REG_RIGHT -- duh
 | |
| 	 rule: include + "file" to include file as global makefile
 | |
| 	 make,rule: fix state.force and P_force for P_dontcare
 | |
| 98-12-25 --- release 3.5 ---
 | |
| 98-11-11 expand: :G=x: tokenized
 | |
| 	 add ms %.def:%.sym
 | |
| 	 make: recheck require_p prereqs
 | |
| 98-11-01 expand: fix ignorecase bug in :L:
 | |
| 98-08-11 probe: add probe.ini for arch specific shortcuts
 | |
| 	 probe: add opional CC.MAKE.OPTIONS
 | |
| 	 Makerules: check CC.MAKE.OPTIONS
 | |
| 	 bind.c,scan.c: a few more uwin file path workarounds
 | |
| 	 parse.c: readline() now converts \r=> 
 | |
| 	 variable.c: V_functional looks for "v->name" and ".v->name." rule
 | |
| 98-07-17 Makerules: check before assuming /usr/lib or /lib
 | |
| 	 command.c: fix P_before P_repeat FAILED bug
 | |
| 	 Makerules: add .UNBIND to .PACKAGE.LIBRARIES. (must be a better way)
 | |
| 	 Makerules: add static=1 to favor lib instead of dll (except for std)
 | |
| 98-05-26 make.probe: add /usr/lib /lib verification
 | |
| 98-05-01 rule.c: add .RUN .WAIT for background job control
 | |
| 	 rule.c: add .MAKEPROMPT .MAKERUN sequence points
 | |
| 	 rule.c: add .RESET to reset rule info to start state
 | |
| 	 parse.c: interactive sfpoll sfstdin and state.coshell->msgfp
 | |
| 98-04-01 expand: plug leak by calling regfree() for :C:
 | |
| 	 Makerules: adjust .IFFE.REF. fix to not include package being built
 | |
| 	 Makerules: add %.cpp for C++
 | |
| 	 scan.c: don't tokenize quoted implicit prereqs!
 | |
| 98-03-17 Makerules: fix .IFFE.REF. to expand package include dirs
 | |
| 98-02-14 Makerules: fix .IFFE.REF. to expand required libraries
 | |
| 98-01-23 Makerules: add _hosttype_ to .MAM.INIT
 | |
| 	 Makerules: :PACKAGE: x attempts include - "pkg-x.mk"
 | |
| 	 Makerules: handle :LIBRARY: rhs +l*
 | |
| 	 pkg-tcl.mk: initial release
 | |
| 98-01-11 Makerules,probe: add CC.SHARED.REGISTRY and CC.SHARED.REGISTRY.PATH
 | |
| 97-10-31 Makerules: CC.PIC not that easy to deprecate!
 | |
| 	 Makerules: fix -L option for *.req rule
 | |
| 	 Makerules: LDRUNPATH unset by default
 | |
| 	 Makerules: no CC.SUFFIX.LD to AR
 | |
| 97-10-11 Makerules: fix :LIBRARY: *.req prerequisites
 | |
| 	 probe: fix ld probe, add CC.SUFFIX.LD=".def .exp" for uwin
 | |
| 	 make.c: REQUIRE map => - marks rule virtual
 | |
| 97-08-11 Makerules: .BASE.DATE.FORMAT. for y2k
 | |
| 	 Makerules: drop weird xxx.a install in .SHARED.DEF.lib
 | |
| 	 Makerules: add $(.sh.) as non-frozen version of $(sh)
 | |
| 97-07-17 Makerules: move $(MAKELIB) to the front of PACKAGE search
 | |
| 	 Makerules: required libraries linked with dll too
 | |
| 	 version.c: tighten initdynamic[] loop termination
 | |
| 97-05-09 Makerules: /usr/local/arch/$(_hosttype_) first in LCLDIRS
 | |
| 	 Makerules,make.probe: add mvs.390 dll support
 | |
| 	 expand: don't :T=A: if .SCAN.IGNORE
 | |
| 	 variable: allow `export name=value'
 | |
| 	 Makerules: allow `:MAKE: name=value' => `export name=value'
 | |
| 	 Makerules: bias package binding to fully qualified PATH dirs
 | |
| 	 Makerules: IFFEFLAGS uses CCLDFLAGS instead of LDFLAGS
 | |
| 	 Makerules: don't change -Wl., in cc-% (hack alert)
 | |
| 	 Makerules: CC.PIC deprecated for CC.DLL
 | |
| 	 Makerules: _INSTRUMENT_ deprecated for _BLD_INSTRUMENT
 | |
| 	 Makerules: _TRACE_ deprecated for _BLD_DEBUG
 | |
| 	 command: -t attempts to touch fs .o as well as .a/.o
 | |
| 96-12-25 --- release 3.4 ---
 | |
| 	 add CC.LD.DYNAMIC and CC.LD.STATIC to make.probe and makerules
 | |
| 	 add .PROBE.LOAD and .PROBE.SPECIAL. to catch/start early probe
 | |
| 	 addfile(xxx) for xxx.exe on _WIN32
 | |
| 	 bind.c: check for _WIN32 C:/ prefix
 | |
| 	 parse.c: -FUNCTIONAL now clears var.functional too
 | |
| 	 Makerules: .CC.MEMBERS. fixed for small ARG_MAX systems
 | |
| 	 Makerules: OFFICIAL file now in lower view
 | |
| 	 Makerules: drop -G* from CC.PROFILE
 | |
| 	 Makerules: remove global +lxxx => -lxxx==+lxxx
 | |
| 	 archive.c: add `/*/' to SYMDIR_port (for sgi.mips4)
 | |
| 	 Makerules: if $(CC.PROFILE) and $(CC.PIC) then don't install .ARCHIVE
 | |
| 	 make.c: relax `modifying lower view file' message via dontcare
 | |
| 	 Makerules: fix +lxxx MAM bind
 | |
| 	 Makerules: fix :LIBRARY: req file generator
 | |
| 	 Makerules: fix :PACKAGE: LIBDIR search
 | |
| 	 ppcc: install in $(MAKELIB)
 | |
| 	 ARG_SCRIPT: fix bug that mishandled `+' and `&' in cmd line targets
 | |
| 	 Makerules,probe: add CC.SUFFIX.LD and ldscript for ld scripts
 | |
| 	 Makerules: add $(sh command): where has this been hiding
 | |
| 	 a:-TARGET now works
 | |
| 	 .ARCHIVE not scanned if rule.scan==.SCAN.IGNORE
 | |
| 	 :LIBRARY: sets .MAIN.TARGET. too
 | |
| 	 make.probe: don't automatically place /usr/lib last
 | |
| 	 make.probe: add CC.SUFFIX.LD
 | |
| 	 Makerules: handle cc-opt1,-opt2 by splitting options on ,
 | |
| 	 bind.c,metarule.c: handle _WIN32 directory ignorecase
 | |
| 	 Makerules: add :DLL: .DLL for dll generation
 | |
| 	 Makerules: fix .MAKEINIT premature :T=F: that botched .SOURCExVPATH
 | |
| 	 object.c: fix to handle 01/24/89 format objects (yes it still works)
 | |
| 	 ppcc,makerules: generalize $(CC.DIALECT) option passing
 | |
| 	 metarule: case sensitive match for patterns matching `[-+]*'
 | |
| 	 archive.c,object.c: (Sfoff_t) for K&R compilers
 | |
| 	 MAKEFILES=Nmakefile:nmakefile:Makefile:makefile -- thanks bill
 | |
| 	 MAKEARGS=Nmakeargs:nmakeargs:Makeargs:makeargs -- thanks again bill
 | |
| 	 probe: add CC.LD.RUNPATH
 | |
| 	 makerules: add LDRUNPATH and CC.LD.RUNPATH support
 | |
| 	 makerules: tone down PTR prereq scan
 | |
| 	 .GETCONF: first builtin function
 | |
| 96-11-28 ccmaps .mo for ascii/ebcdic compatibility
 | |
| 96-10-31 outstanding bug reports addressed
 | |
| 	 :LIBRARY: defines _BLD_<lib>==1
 | |
| 	 use PATH=$(STDDIRS):$PATH to find STDRM etc. in Makerules.mk
 | |
| 	 add CC.SUFFIX.DYNAMIC for win32 .dll .lib .a
 | |
| 96-10-11 metarule rhs prefix dir check even if rhs has prefix questionable=0x8
 | |
| 	 alias check path suffix in bindfile questionable=0x10000
 | |
| 	 add more instrument guesswork
 | |
| 	 .PFX.INCLUDE headers must be .TERMINAL
 | |
| 	 fix $(...) bug that let some unselected items slip through
 | |
| 96-10-01 update make.probe for probe_libdir to catch alpha /usr/shlib
 | |
| 96-09-09 add CC.PROBEPP to override pp probe info
 | |
| 	 add $(INCLUDEDIR) and $(LIBDIR) to .SOURCE* from $(ancestor_list)
 | |
| 96-08-11 --- release 3.3 ---
 | |
| 96-07-17 don't pass -D-* to cc in ppcc
 | |
| 	 add ``X|external-scan $(%)'' external scan
 | |
| 	 clean up makerules/probe readonly
 | |
| 96-05-31 fix $(".":P=L*) for no views
 | |
| 96-05-09 make.probe: drop multiple / in stdlib
 | |
| 	 try to stat non-readable files
 | |
| 96-04-22 fix staterule()->scan assignment evaluation order ambiguity in scan.c
 | |
| 96-02-29 -lxxx binds to +lxxx if +lxxx bound first
 | |
| 	 add pkg to OPTDIRS
 | |
| 	 cut off botched metaclose recursion unless questionable=0x100
 | |
| 	 `.XXX : .USE .IMMEDIATE .ATTRIBUTE' -> `xxx yyy' -> `xxx : yyy'
 | |
| 	 fix :PACKAGE: search bug that forced package name to be in root path
 | |
| 	 add REGRESS + REGRESSFLAGS
 | |
| 	 aliases may produce more than one :P=D: bound dir
 | |
| 	 fix nonterminating D_scanned loop in scan()
 | |
| 	 handle -L* on :LIBRARY: rhs
 | |
| 96-02-14 $(CC.SUFFIX.COMMAND) appened only if no suffix
 | |
| 	 :PACKAGE: xxx:version=n.m:static:dynamic:nolibrary:noinstall:
 | |
| 96-02-07 archive scan handles multiple port|rand meta entries
 | |
| 	 rescan check on (s|alt)&P_force
 | |
| 	 scan A action can now set (.+) or clear (-) attributes
 | |
| 96-01-31 :PACKAGE: libs now .DONTCARE
 | |
| 	 fix touch bug that kept the blasted libast conf*.[ch] out of date
 | |
| 96-01-01 AT&T Research
 | |
| 	 uwin Makerules.mk and make.probe tweaks
 | |
| 	 :I<: for literal intersection, otherwise pathname intersection
 | |
| 	 convert to <regex.h>
 | |
| 	 condition LN on _feature_=ln
 | |
| 95-12-08 fix :LIBRARY: -lxxx probe
 | |
| 	 add uwin dll to make.probe and :LIBRARY:
 | |
| 	 BINED -> ED
 | |
| 95-11-24 . :INSTALLDIR: does not add to all or man
 | |
| 95-11-11 installed CC.SUFFIX.SHARED are now readonly
 | |
| 	 CC.SUFFIX.SHARED==CC.SUFFIX.OBJECT expands -l*
 | |
| 	 CC.SUFFIX.SHARED installed readonly
 | |
| 	 CC.SUFFIX.SHARED hard linked to CC.SUFFIX.SHARED.major.minor
 | |
| 	 P_target && D_dynamic does not imply generated (questionable=0x4000)
 | |
| 95-10-11 fix :TABLE: options `no' and `NO' entries
 | |
| 	 D_source is now cleared in make object for .SOURCE cross product
 | |
| 	 $(^) subject to localview() too
 | |
| 	 fix :WORKAROUND: for in-place changes
 | |
| 	 set include=dir appends to .SOURCE.mk
 | |
| 	 .ASSERT intercepts not applied to .IMMEDIATE targets
 | |
| 	 -d4 lists make object prerequisite file info
 | |
| 	 fix state.targetcontext expand bug that dropped too many marks
 | |
| 	 add %.o:%.S to makerules/scanrules
 | |
| 	 intersect() now handles invented :P=D: .. dirs not in .SOURCE*
 | |
| 	 drop $(CC.REPOSITORY:@?-l??) from PPCC
 | |
| 	 add sun -[Qq](dir|option|path|produce) to ppcc
 | |
| 	 add proto -x to :INSTALLPROTO:
 | |
| 	 fix compvar() V_oldvalue bug that put command line def in .mo
 | |
| 	 internal.export -> internal.exported for proto export keyword
 | |
| 	 :T=G: never matches non-target .TERMINAL
 | |
| 95-10-01 add :TABLE: novariables to inhibit leaf variable assignments
 | |
| 	 add preliminary long edit op names and converter
 | |
| 	 D_global if not P_target (questionable=0x800 for old behavior)
 | |
| 	 alias if !streq(name,r->name) (questionable=0x1000 for old behavior)
 | |
| 	 fix scanrules .PREFIX.INCLUDE. handling of ../*
 | |
| 	 more aggressive putbound() in bindalias() (-Q0020000 for old)
 | |
| 	 `.FORCE : x' sets P_force too
 | |
| 	 longest metarule patterns applied first
 | |
| 	 more alias fixes
 | |
| 	 move scan attribute/property additions before staterule() call
 | |
| 	 :INSTALLMAP: ... scan now more selective
 | |
| 	 .UNBIND now sets rule.time=0
 | |
| 95-07-17 --- release 3.2 ---
 | |
| 	 :F=%x: sfio 'u' internal format now handled
 | |
| 	 fix .PTR.OPTIONS. initial condition
 | |
| 	 fix .ERROR to work like 2.2 if !.FUNCTIONAL
 | |
| 	 .FUNCTIONAL .ERROR return value: new level, no msg if already printed
 | |
| 95-06-28 add *.ii to .CLOBBER. for EDG C++
 | |
| 95-05-09 add SYMDIR_strict for strict ranlib uptodate check
 | |
| 	 change $(!$(*:O=1)) to $(!$(*)) since lists are ok now
 | |
| 	 drop .SAVE. since :: already handles it
 | |
| 	 add old value to state variable changed explanation
 | |
| 	 add .DO.READONLY.-xMerge
 | |
| 	 unused var cleanup
 | |
| 	 another make.probe preroot workaround
 | |
| 	 add .CC.NOOPTIMIZE local scope
 | |
| 	 handle `t {}' and strip lead space in {...}
 | |
| 	 fix r==0 dereference in :P=B:
 | |
| 	 don't force CCFLAGS=-g for instrument=purify
 | |
| 	 fix .BIND.-l% version interactions with -lxxx.[0-9]
 | |
| 	 add -o noalias to diable directory aliasing (for .INSTALL.LIST)
 | |
| 	 make.probe pic test must check linker too
 | |
| 	 calm down +([a-z]) => .+([A-Z]) conversion for :ALL: and .ARGS
 | |
| 	 &error_info cannot be in a static initializer
 | |
| 	 .OFFICIAL uses .MANIFEST. instead of .SOURCES.
 | |
| 	 fix scope var bug that appended twice
 | |
| 	 add - stack debug command to query
 | |
| 	 drop extra .so's from ship.list.bin
 | |
| 	 state.mam.out && !state.mam.port doesn't rebind after build
 | |
| 95-04-01 `:: xxx' marks xx .TERMINAL
 | |
| 	 fix recursion bug in :G:
 | |
| 	 define PACKAGE_* vars if !mam too
 | |
| 	 fix ciadb to exclude headers that may generate %.o (e.g., *.c)
 | |
| 	 fix stray M_mark bug caused by expand() inside intersect()
 | |
| 	 fix :INSTALLMAP: with no lhs
 | |
| 	 :PACKAGE: is a little less restrictive on package root search
 | |
| 	 use $(CCLDFLAGS) in %:%.s
 | |
| 	 change :T=G: to check .TERMINAL state before .TERMINAL
 | |
| 	 fix ppcc.sh pattern match ksh93ism for bsh compatibility
 | |
| 	 fix PROTOFLAGS expansion with :Q:
 | |
| 	 generated .SCAN.c do not get .PFX.INCLUDE
 | |
| 	 scan prereqs for .JOINT targets are in staterules(PREREQS)
 | |
| 	 change obsolete MAM -expandview ref to static*,port*
 | |
| 	 fix trap bug that used elementsof(int*caught)
 | |
| 	 makerules PTRMUST -> PTRMKDIR
 | |
| 	 alpha archive symbol directory has word size embedded _64E[BL]E[BL]_
 | |
| 	 fix   in output of recursive print -um
 | |
| 	 fix bindfile() .. test for terminal directories [via Rich Drechsler]
 | |
| 	 tablook() prototype tweak
 | |
| 	 fix putbound() test in bindfile [via Dan Tiernan]
 | |
| 	 beef up makerules $SHELL -n test
 | |
| 	 drop newlines from PROTOCOPYRIGHT for MAM
 | |
| 95-03-19 fix .AFTER job freelist bug in trigger() [via Rich Drechsler]
 | |
| 	 add makerules STDDIRS; SYSRM -> STDRM {cmp,cp,ln,mv,rm}
 | |
| 	 clean up makerules INSTRUMENT_* interface
 | |
| 	 -v no longer turns on ppcc verbose
 | |
| 	 fix cc- MAKEPATH override by $(=)
 | |
| 95-02-14 fix targetcontext mkdir() test
 | |
| 	 fix printarg() for proper sfio interface
 | |
| 95-01-19 add CC.ARFLAGS for $(CC) that generates libraries
 | |
| 	 add CC.DIALECT=PTRIMPLICIT for implicit C++ ptr dir name
 | |
| 	 add CC.DIALECT=PTRMKDIR if C++ local ptr must exist
 | |
| 	 add CC.DIALECT=PTRCOPY if C++ PTRMKDIR contents copied 
 | |
| 	 fix CC.READONLY probe to cast the const pointer assignment
 | |
| 	 punt() now assumes oldmake has mam if options set
 | |
| 	 add a few .SPECIAL's in ::
 | |
| 	 fix rule.time update for .NULL action in trigger()
 | |
| 	 add A_* flags instead of assertion() set.clear, etc.
 | |
| 	 OP_NONE assertions are A_special
 | |
| 	 x :LIBRARY: makes x virtual prereq of .ALL
 | |
| 	 "local" statement mods for operator and function arg handling
 | |
| 	 local same-name same-name gives dup name initial value of 1
 | |
| 	 local name=value now accepted
 | |
| 	 local -[n] arg ... sets $(1) ... [empties missing up to n]
 | |
| 	 local (formal ...) actual ... sets formals from actuals
 | |
| 	 $(;) returns the state data (formerly $(#))
 | |
| 	 $(#) is the arg count from local -[n] | (formal ...) ...
 | |
| 	 add TABLE.mk for :TABLE: table and map lookup
 | |
| 	 add SS.mk for :SS: directory hierarchy subsystems
 | |
| 	 don't forceread if global (questionable=0x400 for old behavior)
 | |
| 	 add -o targetcontext to expand action in target dir context
 | |
| 	 add state.context and MARK_CONTEXT for state.targetcontext
 | |
| 	 fix a few more alias bugs
 | |
| 	 .MAKE .LOCAL actions can contain parent scope assignments
 | |
| 	 add base and delta common actions for pax -z support
 | |
| 	 add :SYSTEM: to :SS: in SYSTEM.mk and delete SS.mk
 | |
| 	 fix rebind to first clear D_entries|D_scanned
 | |
| 	 add "*.[sS]|*.[aA][sS][mM]" to ppcc source list
 | |
| 95-01-01 fix .CLOBBER $(-global) expansion
 | |
| 	 .NULL metarule now provides equivalence for :G:
 | |
| 	 avoid multiple entries in make.probe CC.REQUIRE.++ 
 | |
| 94-12-25 ppcc, MAM -l<shared>, probe tweaks
 | |
| 	 fix port/rand ar touch bug that modified member terminator
 | |
| 	 fix .DO.INSTALL bug that asserted x : x
 | |
| 	 avoid a few more 'not compiled' panics
 | |
| 	 add -o mam=<type>[,noport] to inhibit porting hints
 | |
| 	 drop mam_port and use noport mam option
 | |
| 	 fix V_retain bug that took value from lowest view statefile
 | |
| 	 fix PACKAGE .SOURCE.(h|a) that blew the CC.STD(INCLUDE|LIB) order
 | |
| 	 fix .REBIND to work like .UNBIND on directories
 | |
| 	 PACKAGE lib not .DONTCARE by default
 | |
| 94-11-11 --- release 3.1 ---
 | |
| 	 detect loops in complete() to avoid `did not complete'
 | |
| 	 fix D_entries|D_scanned propagation in merge()
 | |
| 	 fix .BIND. view and state.targetview propagation
 | |
| 	 add :WORKAROUND: for external distribution workarounds
 | |
| 	 merge(MERGE_ALL) does not propagate rule.scan==SCAN_NULL
 | |
| 	 .OFFICIAL diffs changed files into ./OFFICIAL
 | |
| 	 fix scan attribute propagation interaction with dirscan()
 | |
| 	 fix uninitialized od reference in bindfile()
 | |
| 	 fix ppcc -O over shift and empty rm
 | |
| 94-10-01 CC.DIALECT DOTI : *.i accepted as preprocessed input
 | |
| 	 CC.DIALECT TOUCHO : cc link may touch *.o
 | |
| 	 $(CCC) dropped in favor of simpler $(PPCC)
 | |
| 	 $(FEATURE) changed to $(IFFE)
 | |
| 	 add -o mam=<type>[,dontcare] to list dontcare targets too
 | |
| 	 fix staterule() to accept top view state if time matches
 | |
| 	 fix bindfile()+putbound() for ..
 | |
| 	 fix VOFFSET,VROOT for non-3d
 | |
| 	 fix bindstate() recursion
 | |
| 	 fix metaclose() bug that forced artificial metarule ordering
 | |
| 94-08-11 add state.questionable mask (looks like it should go but not sure)
 | |
| 	 move some state.test bits to state.questionable
 | |
| 	 add MAM generated attribute
 | |
| 	 add fs3d view loop test
 | |
| 	 Os option arguments must be specified
 | |
| 94-07-17 --- release 3.1 ---
 | |
| 94-06-11 add -o believe=level (-B level) for 2d
 | |
| 	 -b no longer implies -c
 | |
| 	 -b implies no makerules
 | |
| 	 uncouple state.keepgoing from state.mam (should have learned by now!)
 | |
| 	 dirscan() sets rule.bound and rule.time
 | |
| 	 add .SYNC : file [edit-select]
 | |
| 	 fix .QUERY longjmp active frames and error trap hold
 | |
| 	 fix pattern association parse that botched ../*%*
 | |
| 	 avoid pathcanon() in metarule makerule() calls
 | |
| 	 change include from control statement to immediate rule
 | |
| 	 use rule in include list uses action as include file filter
 | |
| 	 add makerules mam_port=0 to inhibit -o mam=static ${mam_*} mappings
 | |
| 	 promote lower view state to top on load if no previous top iview state
 | |
| 94-05-22 virtual preview not propagated
 | |
| 	 fix nested loops in file input
 | |
| 	 fix unalias() bug that dropped original binding
 | |
| 	 fix merge() bug that called bind() while bind in progress
 | |
| 	 fix -ptr *again* for CC 3.0.3
 | |
| 	 add $(^) for current line in scan
 | |
| 	 :A>pattern: matches rule prereqs
 | |
| 	 fix statevar stateview search that unnecessarily forced re-scan
 | |
| 	 .PARAMETER file checks now done after .INIT
 | |
| 	 update CIA rules to use DOT instead of DAG
 | |
| 94-04-01 .ERROR made for levels > 0; return 1 inhibits message print
 | |
| 	 $(.ERROR) set to level and message text inside .ERROR
 | |
| 	 stateview() now binds before searching state views
 | |
| 	 fix CC.SO install for live replacement
 | |
| 	 add .COMPDONE to fit the .INIT+.DONE pattern
 | |
| 	 add rule.mark and M_* to eliminate mark clashes
 | |
| 	 add .INTERRUPT.<signal> for signal specific handlers
 | |
| 	 add .ALARM:<elapsed> immediate rule to set alarm
 | |
| 	 add $(.ALARM) to be absolute time for next alarm, 0 for no alarm
 | |
| 	 add .SYNC immediate rule to sync statefile
 | |
| 	 maketop() now resets property when complete
 | |
| 	 maketop(P_ignore) temporarily sets keepgoing=1
 | |
| 	 xxx -> .XXX immediate test for all `no operator on line' statements
 | |
| 	 .FORCE : xxx forces xxx to be new
 | |
| 	 { action } -> .ALWAYS :$("t")action
 | |
| 	 immediate a b c -> .IMMEDIATE : a b c
 | |
| 	 attribute a b c -> a b c : .ATTRIBUTE
 | |
| 	 a b c { action } -> a : b c$("t")action
 | |
| 	 :MAKE: allows rhs a/b
 | |
| 	 .DO.l.CC dropped -- let C++ fend for itself
 | |
| 	 (<id>*)<stuff> can appear as target
 | |
| 	 $("":D) no longer produces ``.''
 | |
| 	 print -n -u[0-9m] -f "format" +-[io] path -p command data ...
 | |
| 	 read -n -u[0-9m] +-i path +-o path -p command variable
 | |
| 	 -uxxx may appear in $(INSTALLROOT)/lib/lib/<LIB>
 | |
| 	 fix scan | ... % | bug that forced trailing space
 | |
| 	 replace CC.OBJ and CC.SO with CC.SUFFIX.*
 | |
| 	 .MAKE .OPERATOR prereqs made before operator applied
 | |
| 	 add .PROBEINIT to .MAKEINIT and "::"
 | |
| 	 .SHARED. now links with CC.SUFFIX.SHARED sibling library if it exists
 | |
| 	 fix alias .UNBIND
 | |
| 94-03-01 unify mam with gmake (additions done by gsf)
 | |
| 	 -o mam={dynamic|regress|static}[:file[:[label][:root]]]
 | |
| 	 -M no longer implies -nF
 | |
| 	 -o mamtrace=file (-m) dropped
 | |
| 	 -o regress=root dropped
 | |
| 	 -o never (-N) added to override .ALWAYS
 | |
| 	 fix scan bug that assigned strategy before binding
 | |
| 	 frozen V_functional always causes .mo recompile
 | |
| 	 add oldname(r) to fix unbind bug that omitted putbound(r,0)
 | |
| 	 ``else if'' now accepted for ``elif''
 | |
| 	 complain about extra chars after else and end
 | |
| 	 add :T=Z[CERS]: for {cancel,event,relative,state} time
 | |
| 	 fix circular implicit prereq actions
 | |
| 	 fix aix shared library probe
 | |
| 	 finish now handles errors in .MAKEDONE and .DONE
 | |
| 	 fix stray D_mark unbind with D_markbind,D_markprereq,D_markscan 
 | |
| 	 fix :READONLY: probe for mips
 | |
| 	 base rules unbound after reading (so make can install them!)
 | |
| 	 delay statefile load until after makefile read
 | |
| 	 add complete() for MAKING implicit prereq
 | |
| 	 add CC.REPOSITORY with repository dir value
 | |
| 	 delete PTREPOSITORY from CC.DIALECT
 | |
| 	 stop .INSERT|.APPEND from adding duplicate prereqs unless .MULTIPLE
 | |
| 	 .QUERY now pushes an active frame (shows up in $(<))
 | |
| 	 fix state view resolution in stateview()
 | |
| 	 fix :G=a/b: with no %
 | |
| 94-02-14 warn about implicit reference while action in progress
 | |
| 	 add print -opath
 | |
| 94-01-31 .CLEAR now checks staterule before freeing prereq list
 | |
| 	 .UNBIND now clears D_global, D_regular and preview
 | |
| 	 add :F=%(time-format)T:
 | |
| 	 add :F=%(invert|lower|upper|variable)S:
 | |
| 	 change :F=[LUV]: to :F=%(lower|upper|variable)S: with obsolete warning
 | |
| 	 fix .MEMBER view/preview mismatch that triggerred unnecessary actions
 | |
| 94-01-11 $("":T=R) operates on current date
 | |
| 	 add print -n -u[12m] -f "format"
 | |
| 	 fix \<newline> action parse
 | |
| 93-12-01 --- release 3.0 ---
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="probe changes">probe changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 10-06-01 sync with ast api 20100601
 | |
| 07-02-22 probe.c: fix double sfclose(fp)
 | |
| 06-09-05 probe.c: add -f, --force
 | |
| 02-10-30 probe.c: reset proc->rfd after sfnew() to avoid close() error
 | |
| 02-09-21 probe.c: handle strlen(base) != BASE_MAX
 | |
| 02-09-11 probe.c: add more override docs
 | |
| 02-01-30 probe.c: add probe.ini check to match libast/pathprobe()
 | |
| 01-12-03 probe.c: return HOME relative path if readonly/non-suid fs
 | |
| 00-08-11 probe: fix non-suid generation check
 | |
| 00-01-11 probe: fix -t with writable info
 | |
| 99-09-01 probe: add --override
 | |
| 99-05-09 probe: long options
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="ss changes">ss changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 10-06-01 sync with ast api 20100601
 | |
| 04-07-22 ssd.c: access() => eaccess()
 | |
| 03-07-29 ssd.c,features/cmd: add utmpx support
 | |
| 99-05-18 ss: long options
 | |
| 97-08-11 ssd: fix now used before defined bug
 | |
| 95-05-09 fix ssd nlists feature tests
 | |
| 	 add a few more utmp file macros from <utmp.h>
 | |
| 95-02-14 fix an extremely botched since() macro
 | |
| 95-01-19 fix user idelt time check that broke loop too soon
 | |
| 	 checks every 10s, updates every CS_STAT_FREQ if not interesting
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="at changes">at changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 12-02-29 atd.c,atx.c: fix uid/gid sequencing for unix/winix compatibility
 | |
| 10-06-01 sync with ast api 20100601
 | |
| 10-03-19 atd.c,atx.c: each job in separate session
 | |
| 06-10-11 add sfstruse() error checks
 | |
| 06-09-19 atd.c: sysconf() => astconf()
 | |
| 06-05-17 crontab.sh: handle empty or nonexistent crontab
 | |
| 05-06-29 crontab.sh: fix (...) => @(...) syntax error
 | |
| 02-02-14 atd: add strdup(argv[1]) to workaround argv[1]=>0 mystery
 | |
| 01-06-18 crontab: clarify the command<=>job relationship
 | |
| 01-03-28 atd: fix log file rollover infinite loop
 | |
| 01-02-14 atd: monitor daemon and restart if it dies
 | |
| 01-01-01 atd: add actual and expected info to atx log messages
 | |
| 00-09-28 crontab: update USAGE
 | |
| 00-06-16 atd,atx: use base 36 instead of 64 in job names (now just lower case)
 | |
| 00-05-22 crontab: clarify crontab jobs w.r.t at(1)
 | |
| 00-05-09 atd: ": LABEL; command" sets job label to LABEL
 | |
| 	 atd: roll over log file to AT_LOG_FILE.old each month
 | |
| 00-03-14 at,atd: add at.allow and at.deny checks; tweak uwin verifcations
 | |
| 00-01-22 --- release 1.2 ---
 | |
| 00-01-22 crontab: fix getopts check
 | |
| 99-10-11 at,atd: fix job dictionary bugs
 | |
| 99-08-11 at: fix usage for at+batch
 | |
| 	 at.h: add AT_STRICT
 | |
| 99-06-23 atd: fix job queue handle lookup that dropped jobs
 | |
| 99-06-23 --- release 1.1 ---
 | |
| 99-05-09 tweak uwin FAT checks -- how do you get FAT security?
 | |
| 	 at,batch,crontab: long options
 | |
| 99-04-01 crontab.sh: "..." path vars
 | |
| 	 the official off-by-one bug of the millenium
 | |
| 98-07-17 fix bad scanf base 64 format
 | |
| 98-02-14 get it working
 | |
| 	 add -A for admin commands (all entries, all queues)
 | |
| 97-11-11 atd: use csread(CS_RESTART) to avoid SIGCHLD interrupts
 | |
| 	 atd: add state.atxd in.atxd code for systems with incomplete chmod u+s 
 | |
| 97-10-31 fix `at date ...' arg parse bug
 | |
| 96-05-24 --- release 1.0 ---
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="builtin changes">builtin changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 12-05-31 od,tr: errno!=EPIPE => !ERROR_PIPE(errno)
 | |
| 12-02-28 pty.c: change --verbose[=level] to --debug=level
 | |
| 12-02-11 what.c: fix boyer moore cut n paste bug -- thanks werner
 | |
| 12-01-26 pty.c: fix --man docs
 | |
| 10-04-22 dlls.c: fix --path to only list the path -- doh
 | |
| 10-11-03 od.c: use is[w]print() for printable char check
 | |
| 10-10-19 od.c: speed up inner loop
 | |
| 10-09-15 od.c: fix (unsigned char*) (char*) mismatches
 | |
| 10-09-08 tr.c: handle tr abc '[%*]xyz'
 | |
| 10-08-04 dlls.c: add -l to list plugin version stamps
 | |
| 10-06-21 pty.c: add 4 sec timeout for initial handshake -- fix me!!
 | |
| 10-06-01 od.c: add -c locale checks (and undo some fmtesc() work), add ast -tC1
 | |
| 10-04-12 pty: fix sfpoll() result read/write bug
 | |
| 10-04-12 cat.rt: add -v tests
 | |
| 10-04-11 cmp.rt: add
 | |
| 10-04-01 pty: add --tty='stty-settings'
 | |
| 10-03-23 tail.tst: add -f large initial offset test
 | |
| 10-03-19 pty: add --dialogue
 | |
| 10-03-15 pty: fix select() fd management
 | |
| 10-03-07 tail.tst: add partial line -f test
 | |
| 10-03-05 mktemp.rt: add
 | |
| 09-09-24 uuencode,uudecode: use uumeth(0) to generate usage method list
 | |
| 09-08-18 testtail.sh: add fifo tests
 | |
| 09-08-01 join.tst: TEST 19 for empty field defref bug
 | |
| 09-05-24 tail.tst: add r combinations
 | |
| 09-03-31 features/pty,Makefile: add pty.h and -lutil refs for linux -- great, another util library
 | |
| 09-02-14 join.tst: add a VSC test
 | |
| 09-02-14 tail.tst: add some VSC tests
 | |
| 09-02-02 mktemp: add
 | |
| 09-02-02 tail.tst: update for -b[blocks], +cl, -cl
 | |
| 09-01-30 pty.c: add <ast_time.h> (for fd_set!! on mvs.390)
 | |
| 09-01-12 tr.tst: add tests for trailing '-' in source and/or destination sets
 | |
| 09-01-03 mkfifo.rt: add
 | |
| 08-10-15 rm.rt: add to test rm -f x x
 | |
| 08-02-14 look.c: fix operand parse / diagnostic bugs
 | |
| 08-01-30 expr.tst: add substr * 1 * tests
 | |
| 07-09-21 cksum.tst: drop sha1, add -r compatibility
 | |
| 07-02-23 cksum.tst: add -x tw tests
 | |
| 07-02-07 cksum: handle std => libcmd move
 | |
| 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
 | |
| 06-01-30 od.c: add -tb binary character format
 | |
| 05-12-06 od.c: handle od() static split buffer overflow
 | |
| 05-08-07 tr.c: fix a-b- and a-b-c
 | |
| 05-03-07 od.c: handle -t ...z for --printable
 | |
| 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
 | |
| 03-10-11 od.c: add --map=ccode, -tm, generate doc from tables
 | |
| 03-09-18 tail.tst: add header and timeout tests
 | |
| 03-07-28 expr.tst: add
 | |
| 03-07-14 fmt.tst: add
 | |
| 03-06-10 who.c: ctime() arg must be time_t* (linux.s390-64)
 | |
| 03-05-21 asa.c,asa.tst: add
 | |
| 03-05-15 join.tst: add -v2 tests
 | |
| 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
 | |
| 02-11-14 what.c: stop on < to catch html/xml
 | |
| 	 update cmdinit() calls for 4th flag arg
 | |
| 02-09-11 dlls.c: add --base & --path
 | |
| 02-09-05 pr.data: eliminate case ignorant file name clashes (for mac os X)
 | |
| 02-08-30 dlls.c: exit 1 if no matching dll found
 | |
| 02-08-28 od.c: check and report write errors -- ouch
 | |
| 	 dlls.c: add --info
 | |
| 02-08-23 dlls.c: add
 | |
| 02-08-19 chown.tst: add chow regression tests
 | |
| 02-04-15 look.c: add look.tst, fix hang
 | |
| 02-03-24 uudecode,uuencode: sfopen "rt" for \r-- puke
 | |
| 02-01-24 look.c: drop <strings.h> ref
 | |
| 01-11-26 what.c: fix doc type, add --matched
 | |
| 01-10-31 what.c: fix omitted file arg doc
 | |
| 01-06-06 who.c: fix entry skip logic that listed too many entries
 | |
| 01-05-31 Makefile: add PACKAGE_OPTIMIZE=space checks
 | |
| 01-05-29 Makefile: if -lcmd is dll then BUILTINS linked to one a.out
 | |
| 01-05-21 tr: regcollate() interface update
 | |
| 01-04-17 date.tst: move from std
 | |
| 01-04-01 uudecode: fix -o decode-file and add regression test
 | |
| 01-03-39 uudecode: add --local for UU_LOCAL
 | |
| 00-12-04 look: add
 | |
| 00-12-01 what: add RCS ident(1) $Id:
 | |
| 00-04-01 uuencode: umask 022 for consistent header comparisons
 | |
| 00-02-14 fmt: move to libcmd
 | |
| 00-01-06 pr: fix empty field in multi-col output
 | |
| 99-11-19 pr: -t == -T
 | |
| 99-10-01 strings: add --long-strings
 | |
| 99-08-11 mime,strings: fix usage[]
 | |
| 99-06-25 who: fix printing of data strings with no  
 | |
| 99-06-20 who: fix -i
 | |
| 99-06-17 who: add
 | |
| 99-06-11 pr: fix date failure logic
 | |
| 99-06-08 expr.tst: add -- it needs more too
 | |
| 99-05-21 paste.tst: add -- but it needs more
 | |
| 99-05-01 mime,strings,what: long options
 | |
| 99-04-28 uuencode,uudecode: long options, file arg interpretation fix
 | |
| 99-03-17 od: --swap=0 for testing
 | |
| 	 od: allow space and , in --format, --type==--format
 | |
| 99-03-11 od: add -w number-per-line, long options
 | |
| 	 strings: drop debug error(1) call
 | |
| 99-03-01 tr: fixes for gnu tests, long options
 | |
| 	 join.tst,tr.tst: add gnu tests
 | |
| 	 cut.tst: create from gnu tests
 | |
| 99-01-11 tail.tst
 | |
| 98-12-25 od: fix cform() for fmtesc 
 | |
| 	 uuencode.tst: update for uulib/uu_encode fill bug fix
 | |
| 98-11-11 uuencode.tst
 | |
| 98-08-11 uuencode,uudecode: use <uu.h> and -luu
 | |
| 98-07-01 strings: fix for default format!
 | |
| 98-06-01 strings: fix offset format with I*
 | |
| 98-05-29 join.tst: TEST 09
 | |
| 98-05-18 what: change "%s%-*s" to "%s%-.*s" and fix buffer boundary bug
 | |
| 98-03-01 tr: fix char class range bugs
 | |
| 	 tr.tst: add
 | |
| 97-10-01 strings: add -m for multibyte
 | |
| 97-07-17 join: more tests in join.tst
 | |
| 	 uudecode: ignore chars after counted limit
 | |
| 	 uudecode: add binhex (decode only)
 | |
| 	 uudecode: fix posix/ucb uu_decode()! time for uu.tst
 | |
| 96-12-25 od: add od.tst
 | |
| 	 od: off_t -> int_max
 | |
| 96-11-28 uudecode: fix buffer boundary bug in qp_decode
 | |
| 96-09-06 tr: fix [A-Z] [a-z] bug
 | |
| 96-05-09 what: I don't know (third base)
 | |
| 	 uuencode: add
 | |
| 	 uudecode: add
 | |
| 	 tr: add
 | |
| 96-04-15 od: add
 | |
| 95-10-11 grab b_* list from cmd.h
 | |
| 	 add void* context 3rd arg to b_main()
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="codex changes">codex changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 09-04-15 codex.c: add --passfile=file
 | |
| 08-05-08 codex.c: Codexdisc_t can't be on main()'s stack due to SF_ATEXIT
 | |
| 06-08-23 codex.tst: add uu boundary and text tests
 | |
| 04-01-11 doc update
 | |
| 04-01-01 add --passphrase
 | |
| 03-12-18 add to ast -- still working on relationship with { -lvcodex -lz -lbz }
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="dss changes">dss changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 11-09-11 dss.c: its --map=file, not --map --- doh
 | |
| 11-06-15 dss.c: document '< expr-file' '< file-list-file'
 | |
| 10-05-21 dss.c: add SEE ALSO \bdss::dss\b(5P) (after libast::optget() fix)
 | |
| 10-05-11 dss.c: drop --info=style in favor of generic --plugins=style
 | |
| 10-05-04 dss.c: change -i,--info to -i,--info={man|html|nroff|usage}
 | |
| 09-07-02 dss.c: fix EXAMPLES typo
 | |
| 08-07-17 dss.c: tweak self-docs
 | |
| 06-10-11 add sfstruse() error checks
 | |
| 03-02-06 dss.c: convert main loop to dssrun()
 | |
| 03-01-23 dss.c: update stamp to reflect library version 20030123
 | |
| 03-01-15 dss.c: fix match docs for Cxmatch_t
 | |
| 02-12-25 dss.c: fix default expression logic -- dsscomp() requires {...} at top
 | |
| 02-12-24 dss.c: init checks now done by dssbeg()/dssend()
 | |
| 02-12-17 propagate -ldss changes
 | |
| 02-12-04 dss.c: dssopen() and method option check before main arg check
 | |
| 02-12-01 dss.tst: move to method specific source dirs
 | |
| 02-11-27 dss.c,dss.tst: change --format => --print, --type => --format
 | |
| 02-11-22 dss.tst,Makefile: redo data file naming
 | |
| 02-10-18 dss.c: handle DSS_NOOUTPUT after dssbeg()
 | |
| 02-10-17 dss.c: drop ancient argv[0] method initialization
 | |
| 02-10-09 dss.tst: add bgp-ipma and flat tests, rename test data files
 | |
| 02-09-24 bgp.prt,netflow.prt: move to src/lib/libdss/dss-*.prt
 | |
| 02-09-11 dss.c: add -n, query dssbeg() and dssend() calls, -c matched/total
 | |
| 02-08-29 move pta to separate source directory
 | |
| 02-08-11 update --method docs
 | |
| 02-07-31 dss.c: optout() now handles usage string as well as text
 | |
| 02-07-19 dss.tst: add text method =~ and !~ tests
 | |
| 02-06-14 add Dssflags_t arg to dssfopen()
 | |
| 02-05-29 standalone command source
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="dsslib changes">dsslib changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 11-08-19 add DSS_BASE method flag to handle cx scoping
 | |
| 02-11-22 */*.c: add unsigned => signed casts for msvc long long => double 
 | |
| 02-11-20 split support libs from libdss main source
 | |
| 	 flat: add lazy field recognition
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="att changes">att changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 08-08-11 dss.tst: %K.%6N for 18 digit long double limitation
 | |
| 07-11-14 dshield.dss: add
 | |
| 07-02-14 mrd-mail.dss: add
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="bgp changes">bgp changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 12-06-14 bgp.c: document int mvpn.type == route type index
 | |
| 12-06-13 bgp.c: add "bgp_t mvpn.key" for mvpn route key
 | |
| 12-05-31 bgp.c: add bgp_t mvpn.<member> support
 | |
| 12-02-20 bgp.c,bgplib.h: drop unused ip4toip6()
 | |
| 11-09-11 bgp-mrt.c: fix debug trace offset when bgp messages skipped
 | |
| 11-08-25 bgp-mrt.c: streamline BGP_best logic and drop Mrtpart_t
 | |
| 11-08-25 bgp-mrt.c: drop state->v6 and use rp->afi
 | |
| 11-08-24 bgp-mrt.c: fix MRT_ATTR_MP_REACH_NLRI => STATE_TABLE_DUMP_V2_RIB logic again
 | |
| 11-08-23 bgp-mrt.c: fix as_path element counts to handle |{a,...}|==1
 | |
| 11-08-21 bgp-mrt.c: fix "old bgp" vs "new bgp" AS16 vs AS32 logic
 | |
| 11-08-19 bgp-mrt.c: (dss->test&0x0010) enables payload trace
 | |
| 11-08-15 bgp-mrt-anonymize.c: first release
 | |
| 11-08-12 bgp-mrt.c: change most integer indices to macros for readability/debugging
 | |
| 11-08-11 bgp-mrt.c: first hack at mcast_vpn_*
 | |
| 11-08-09 bgp-mrt.c: fix typo TABLE_DUMP_V2 bug that set addr instead of src_addr
 | |
| 11-08-08 bgp-mrt.c: fix TABLE_DUMP.TABLE_IPV6_UNICAST
 | |
| 11-06-21 bgp-mrt.c: first hack at STATE_TABLE_DUMP_V2_RIB_GENERIC
 | |
| 11-04-22 bgp-mrt.c: fix bug that didn't set mp announce type
 | |
| 11-03-31 bgp-mrt.c: retain BGP_TYPE_table_dump for pseudo-announce
 | |
| 11-03-30 bgp-mrt.c: fix AS_SET allocation logic for AS16 and AS32
 | |
| 11-03-30 bgp.c: afi/safi default is 1/1
 | |
| 11-03-29 bgp.c: change "mime" doc refs to the more precise "base64"
 | |
| 11-03-28 bgp.c: change bgp.originator type from number to ipv4addr_t
 | |
| 11-03-15 bgp-mrt.c: fix nlri pointer initialization bug
 | |
| 10-05-25 bgp-mrt.c: mark record type BGP4MP_ET==17 implemented -- doh
 | |
| 10-02-02 bgp.c,bgp-mrt.c: handle rfc3107
 | |
| 09-09-28 dss.tst: adjust for ip_t/fv.c fix
 | |
| 09-03-19 bgp-mrt.c: fix DUMP_V2 ipv6 => as32
 | |
| 09-03-11 bgp-mrt.c: handle TABLE_DUMP_V2 <13> records
 | |
| 08-11-13 bgp-mrt.c: handle undocumented BGP4MP <16,20> records
 | |
| 08-11-12 bgp-mrt.c: forgot to set rp->afi!
 | |
| 08-08-28 bgp-mrt.c: add afi=1/safi=128 nlri
 | |
| 08-08-28 bgp.c: add { afi label rd_admin rd_number rd_type }
 | |
| 08-08-11 bgp.c,bgp-mrt.c: add extended community support
 | |
| 08-07-16 bgp-mrt.c: fix MP_UNREACH_NLRI parse bug
 | |
| 08-06-24 bgp-mrt.c: handle ipv6 extensions
 | |
| 08-01-15 bgp.c,bgp-cisco.c: add { BGP_rib_failure BGP_stale }
 | |
| 07-12-13 bgp-mrt.c: unknown format: <hex-flag>:<dec-type>:<dec-size>:<mime-encoded-data>;
 | |
| 07-12-06 bgp.c: add { agg_addr32 agg_as32 path32 path32_len unknown }
 | |
| 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,bgp-map.dss: add atomic map { NAG AG }
 | |
| 06-01-25 bgp.h: move to dsslib/ip_t/
 | |
| 05-03-08 lib.c: add for dssstatic()
 | |
| 03-04-15 bgp-mrt.c: fix mrt as path segment bug that ignored all but the first!
 | |
| 	 dss.tst: add TEST 02 as path segment on rrc08 updates.20030403.2200
 | |
| 	 dss.tst: add TEST 10 to check expression signed/unsigned boundaries
 | |
| 03-02-24 bgp.h: add record size field to account for variable data
 | |
| 03-02-19 bgp.c: add { cluster_len community_len path_len }
 | |
| 03-02-11 bgp-mrt.c: change swapget(0,p,n) to BEn() -- 30 sec down to 24 -- wow
 | |
| 03-01-24 bgp.c: move { as_t aspath_t cluster_t community_t } to the ip_t lib
 | |
| 03-01-22 bgp.c: add path,community,cluster internalf; DEBUG for buffer debug
 | |
| 03-01-16 bgp.c: convert to Cxmatch_t
 | |
| 03-01-15 ire.c,ire.h: replace bgpre.c with general integer list re's
 | |
| 03-01-13 bgp-mrt.c,dss.tst: fix path attribute parse bug
 | |
| 03-01-06 bgp.h,bgp-mrt.c: handle all packet types
 | |
| 03-01-03 bgp-ipma.c,bgp-cisco.c: fix junk skip logic
 | |
| 02-12-17 propagate -ldss changes
 | |
| 02-12-01 move bgp specific tests and data to this dir
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="dibbler changes">dibbler changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 06-10-11 dibbler.c: add sfstruse() error checks
 | |
| 04-02-29 dibbler_sum.c: fix cxlocation() record arg
 | |
| 03-02-11 dibbler_re.c: Vmbest => Vmlast
 | |
| 03-01-28 dibbler.c: update for Cxtype_t.Cxmember_t
 | |
| 03-01-23 update for void* => Dssrecord_t*
 | |
| 03-01-21 dibbler_outsum.c: add cxlocation() to errorf messages
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="fix changes">fix changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 03-02-11 Vmbest => Vmlast
 | |
| 03-01-30 add --stamp=date/version-stamp
 | |
| 03-01-29 first release
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="flat changes">flat changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 10-11-12 flat.c: eliminate strict-aliasing puns
 | |
| 08-08-30 flat.c: work around macos cc struct copy bug
 | |
| 07-06-05 flat.c: <COUNT>*</> => <COUNT>0</> => 0 or more
 | |
| 07-01-17 flat.c: don't sfsetbuf() on an active stream!
 | |
| 06-10-11 flat.c: add sfstruse() error checks
 | |
| 05-09-16 flat.c: fix <QUOTEALL> q=-1 vs. \xff data bug
 | |
| 05-05-09 flat.c: literal quote is "" inside "..." for quote+noescape
 | |
| 	 flat.c: add <QUOTEALL>
 | |
| 05-04-18 flat.c: fix escape quote delimiter terminator interactions
 | |
| 05-04-12 flat.c: fix <WIDTH>constant</> with <WIDTH>variable</>
 | |
| 05-03-08 lib.c: add for dssstatic()
 | |
| 04-10-20 flat.c: verify variable field width against maximum width
 | |
| 04-08-20 flat.c: handle <HEADER><PATTERN> <DELIMITER><MULTIPLE>
 | |
| 04-06-06 flat.c: flat->record trumps flat->variable
 | |
| 04-05-31 flat.c: handle mixed fixed/variabled fields
 | |
| 04-05-27 flat.c: add --emptyspace for empty field value => space
 | |
| 04-05-26 flat.c: handle <RECORD><FIXED>n</></>
 | |
| 04-05-25 flat.c: handle fixed width (sort of) flat records with terminator
 | |
| 04-05-11 flat.c: add header option to generate dynamic query header
 | |
| 04-05-09 flat.c: handle nested structures with/without non-member value
 | |
|          flat.c: fix convert ccmap() logic
 | |
| 03-10-09 flat.c: fix ambiguous key checks
 | |
| 03-09-23 flat.c: add <PHYSICAL><KEY>{<SPAN>,<ID1>,<ID2>} for maillennium
 | |
| 03-09-22 flat.c: speed up ccode conversion in flatget()
 | |
| 03-09-19 flat.c: handle nested <FIELD> structs
 | |
| 03-08-11 flat.c: add <PRINT>, <KEY>
 | |
| 03-08-08 flat.c: fix unknown type message; add <BLOCK> and <RECORD>
 | |
| 03-05-24 flat.c: drop Attribute_t table and use cxattr()
 | |
| 03-02-11 flat.c: Vmbest => Vmlast
 | |
| 03-01-29 flat.c: fix binary and buffer output for struct option
 | |
| 03-01-28 flat.c: update for Cxvariable_t.Cxreference_t
 | |
| 03-01-23 flat.c: update for void* => Dssrecord_t*
 | |
| 03-01-21 flat.c: move fundamental type internalf/externalf to libdss
 | |
| 02-12-24 flat.c: use cxstring() instead of base search
 | |
| 02-12-18 flat.c: flat convert query working
 | |
| 02-12-17 propagate -ldss changes
 | |
| 02-12-05 flat.c: fall back to map on invalid numeric fields
 | |
| 02-12-04 flat.c: fix convert bug that applied map when not needed
 | |
| 02-12-03 flat.c: fix void_external() to zero out all bytes
 | |
| 02-11-28 flat.c: fix non-global swap checks
 | |
| 02-11-27 flat.c: add [no]binary option
 | |
| 02-11-25 flat.c: add header and magic support
 | |
| 02-11-22 flat.c: initial convert implementation
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="gdat changes">gdat changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 10-04-10 add html payload details -- this should have a general solution
 | |
| 10-04-09 first (working) release -- original attempted 2003-08-07
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="ip_t changes">ip_t changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 12-06-13 bgp.h: add BGP_key for mvpn route key
 | |
| 12-05-15 bgp.h: change BGP_PMSI_* to BGP_pmsi
 | |
| 12-02-24 *sa.omk: clean up standalone old make makefiles
 | |
| 12-02-24 README-*: bring standalone READMEs up to date
 | |
| 11-10-06 testiv.c: add { -ip4 -ip6 } options
 | |
| 11-10-06 ivstr.c,ivfmt.c: add for iv addr size 1..255
 | |
| 11-10-06 iv-nested.c: fix bug that called nested freef on internal flat intervals
 | |
| 11-08-11 bgp.h: add mcast vpn definitions
 | |
| 11-03-02 bgp.h: add packet time usec part
 | |
| 11-01-21 testiv.c: change to store hop prefix&name in segment data
 | |
| 10-02-02 bgp.h: add rfc3107 BGP_labels
 | |
| 10-02-02 ip_t.c: add labels_t -- pairs of 32 bit integers
 | |
| 09-09-28 fv.c: fix off-by-one bug in fvplo() and fvphi()
 | |
| 09-09-28 ptfmin.c,ptvmax.c: call fvplo() and fpvhi()
 | |
| 09-07-28 fv.h,fv.c: add fvplo(), fvphi()
 | |
| 09-03-19 ip_t.c,itlie.h: elide leading 0.* for 2-tuple external conversion
 | |
| 09-03-15 pt[v].h,pt[v]open.c: add Pt[v]prefix_t.data, pt[v]insert() returns new prefix
 | |
| 09-03-15 itlie.h: handle as set marker in last element
 | |
| 08-08-11 bgp.h,ip_t.c: add extended community type support
 | |
| 08-07-31 ptvopen.c: fix ptvinsert() interval bug
 | |
| 08-07-25 ip_t.c: add { %(prefix:C)s %(addr:C)s } for 0x%02x comma-separated value
 | |
| 08-06-11 add { fv ptv } for ipv6
 | |
| 08-01-15 bgp.h: add { BGP_rib_failure BGP_stale }
 | |
| 07-12-06 ip_t.c: add as32 support
 | |
| 07-12-06 ire,itl: add dots arg for dotted representation
 | |
| 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 ("1.2.3.4/5" =~ prefix)
 | |
| 06-10-11 itlie.h: add sfstruse() error checks
 | |
| 06-01-24 bgp.h: bring over from dsslib/bgp.h
 | |
| 05-03-08 lib.c: add for dssstatic()
 | |
| 03-05-21 itlie.h: fix aspath_t external
 | |
| 03-04-15 itlie.h: fix external() bug that did not re-initialize the separator
 | |
| 03-02-18 itlie.h: change details to format char and separator string
 | |
| 03-02-11 ire.c: Vmbest => Vmlast
 | |
| 03-02-07 ip_t.c: add Cxformat_t.print width hints
 | |
| 03-01-28 ip_t.c: update for Cxtype_t.Cxmember_t
 | |
| 03-01-24 ip_t.c: move { as_t aspath_t cluster_t community_t } from bgp
 | |
| 03-01-20 ip_t.c: fix match message
 | |
| 03-01-16 ip_t.c: convert to Cxmatch_t
 | |
| 03-01-15 ip_t.c: prefix matching via =~ and !~ only
 | |
| 02-12-17 propagate -ldss changes
 | |
| 02-11-27 ip_t.c: fix Cxunsigned_t/Cxinteger_t casts for lame long double cc
 | |
| 02-11-22 ip_t.c: don't assume the "bgp" method -- duh
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="lookup changes">lookup changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 10-04-20 first release
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="lsa changes">lsa changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 12-02-29 add { lsag pmcoa } formats
 | |
| 12-01-15 ospf_lsa.c: handle generic ip address type binding
 | |
| 03-02-07 change "time" to "ns_t" and u_int64 in the canonical record
 | |
| 03-01-31 update rtid doc
 | |
| 03-01-23 update for void* => Dssrecord_t*
 | |
| 02-12-17 propagate -ldss changes
 | |
| 02-11-28 convert from sfprintf to errorf
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="merge changes">merge changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 03-02-14 first release
 | |
| 
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="netflow changes">netflow changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 08-09-02 netflow.c,flowlib.h: add ipv6 support
 | |
| 05-06-15 netflow.c: add default {print} format
 | |
| 04-04-01 data/netflow-sample.dss: append 3 fields
 | |
| 03-07-24 netflow.c: add sentinel to fields[]
 | |
| 	 flowlib.h: hide flow_tool_format
 | |
| 03-06-04 flow-tool.c: change u_int* typedefs to macros to avoid ibm.risc clash
 | |
| 03-05-16 flow-tool.c: add flow-tools formats
 | |
| 03-04-05 netflow-map.dss,ip.map: add 
 | |
| 	 dss.tst: add netflow-map tests
 | |
| 03-01-23 update for void* => Dssrecord_t*
 | |
| 03-01-21 add cxlocation() to errorf messages
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="num_t changes">num_t changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 11-02-02 num_t.c: pow10 => pow_10 to avoid <math.h> clash
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="opaque changes">opaque changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 03-01-23 update for void* => Dssrecord_t*
 | |
| 03-01-21 add cxlocation() to errorf messages
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="sort changes">sort changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 11-10-18 first release
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="stats changes">stats changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 11-09-11 fix %(GROUP)s for the OVERFLOW total
 | |
| 03-05-05 fix --print OVERFLOW key lookup to return 0/nil value
 | |
| 03-04-05 avoid possible floating point underflow/overflow
 | |
| 03-02-19 add `-' field operand to just count records or groups
 | |
| 03-02-11 add --print=format; Vmbest => Vmlast
 | |
| 03-02-07 add --count; check variable/type print width hint; allow width overflow
 | |
| 03-01-24 use cxcast() for group value pretty print
 | |
| 03-01-08 fix bucket alloc size
 | |
| 02-12-25 first release
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="tests changes">tests changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 03-09-22 first release
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="text changes">text changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 02-12-17 propagate -ldss changes
 | |
| 02-11-01 a rudimentary alternative to the flat method
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="time_t changes">time_t changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 09-01-30 handle TMX_FLOAT (mvs.390)
 | |
| 08-08-22 fix time_t => Time_t typo
 | |
| 08-08-11 update timestamp_t logic to tmx*()
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="validate changes">validate changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 03-04-05 avoid possible floating point underflow/overflow
 | |
| 03-02-11 Vmbest => Vmlast
 | |
| 03-01-27 keep per field dict of all invalid values for summary
 | |
| 03-01-26 add unknown map value dictionary
 | |
| 03-01-21 add cxlocation() to errorf messages
 | |
| 03-01-11 first release
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="xml changes">xml changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 10-04-22 fix jsonident(), xmlread(), jsonread(), xmlwrite(), jsonwrite()
 | |
| 10-04-21 handle json [...,...] array values
 | |
| 10-04-20 json working
 | |
| 10-04-12 first release
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="ie changes">ie changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 05-02-01 ie.sh: IFS may be unset and { ash bsh } don't on startup -- wow
 | |
| 04-07-26 ie.sh: update runtime docs
 | |
| 04-07-23 Makefile: link with static ast libraries
 | |
| 04-02-29 history.c: use pathtemp() instead of mktemp()
 | |
| 01-04-25 vi.c: handle implementations with VEOL but not VEOL2
 | |
| 00-02-14 ie: ie.sh script replaces ie fun
 | |
| 	 ie: convert configure/* => features(ielib|options.sh)
 | |
| 99-11-19 Makefile: fix sh_config.h for 2d -- eventually should use iffe
 | |
| 98-03-11 workaraound for sgi dllnext() botches
 | |
| 98-02-02 initial release snarfed from ksh88i source
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="mailx changes">mailx changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 12-06-05 spam.c: fix insider() domain check that skipped pure domain with not host
 | |
| 12-04-13 cmd1.c: fix empty list null pointer deref
 | |
| 12-02-29 add headfake boolean option to fake 'From ' line in saved message
 | |
| 11-09-11 add sender=/address/head/pattern/[&|]/head/pattern/...
 | |
| 11-07-17 fix message list to apply mimeview() to part 0 (main message body)
 | |
| 10-09-08 fix edited To: in message to override command line recipients
 | |
| 10-06-01 sync with ast api 20100601
 | |
| 09-06-09 names.c,vars.c: fix alias expansion cross-dictionary bug
 | |
| 09-05-15 proc.c,quit.c: add buffer checks to filetemp()
 | |
| 08-11-04 spam.c: fix 0-terminated overrun in usermatch() -- wow
 | |
| 08-02-12 local.c: favor fcntl() lock over flock() for N(otan)FS
 | |
| 08-01-15 cmd3.c: add `if f?path' so old Mail doesn't carp
 | |
| 07-02-06 cmd2.c: "S name" => .../From/name
 | |
| 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
 | |
| 05-03-28 main.c: add -r address; add L variable attribute
 | |
| 05-02-17 head.c: CONTENT_type PART_text trumps CONTENT_encoding binary
 | |
| 05-02-08 local.h: blankline=>allblanks (lynxos libc symbol hijack)
 | |
| 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>!!
 | |
| 04-03-17 spam.c: fix usermatch() loop
 | |
| 04-01-28 data.c: k,K are now autoprint (like d)
 | |
| 04-01-22 data.c: K is alias for mark; omitted mark defaults to nospam
 | |
| 	 list.c: addr- shorthand for addr-$
 | |
| 04-01-20 data.c: k is alias for mark; omitted mark defaults to spam
 | |
| 04-01-16 main.c: mark -f option value optional
 | |
| 03-12-10 spam.c: fix word match bug that matched prefixes instead of full word
 | |
| 03-11-20 main.c: optget() if _PACKAGE_ast -- finally
 | |
| 03-11-14 add spamsubhead=1 to edit spam subject heading list
 | |
| 03-01-17 add shquote() to quote popen pathnames; fix save to -f core dump
 | |
| 02-12-12 imap.c: handle no-name attachments
 | |
| 02-12-11 head.c: application of DeMorgan's law proves Murphy's
 | |
| 02-12-04 local.h: include FEATURE/lcl from lcl.iffe to avoid local.h clash
 | |
| 02-11-22 head.c: convert unfriendly attachment path name characters to '_'
 | |
| 02-10-31 imap.c: drop obsolete RFC2060 FETCH args
 | |
| 02-10-20 spam.c: test=0x0060 for Authentication-Warning: checks
 | |
| 02-10-16 spam.c: test=0x0010 to verify From: in domain matches Received: hosts
 | |
| 02-10-08 mailx: fix a few strncopy() size off-by-ones
 | |
| 02-10-01 mailx: fix ancient buffer overflows by comitting to ast -- bye bsd
 | |
| 02-09-22 local.c: honor MAIL if its a regular file
 | |
| 02-09-08 add spambody to catch mail filter warnings embedded in message bodies
 | |
| 02-09-07 head.c: fix bug that retained mime boundary from previous message
 | |
| 02-09-04 head.c: add call to isdate() to verify ishead() dates
 | |
| 02-09-03 handle \r=> on input
 | |
| 02-08-28 vars.c: fix ${domain} initialization
 | |
| 02-08-21 spam.c: test=0x0004 for X-Authentication-Warning
 | |
| 	 send.c: disable interpolation "-- " signature test
 | |
| 02-06-07 spam.c: delay lower priority tests until all headers seen
 | |
| 02-05-31 imap.c: error messages to stderr -- duh
 | |
| 02-03-17 spam.c: add spamtest=bitmask: 0x0001: content-type==text/html
 | |
| 02-01-31 data.c: clarify imap var docs
 | |
| 02-01-30 local.iffe: add to handle no <termios.h> and ftruncate()
 | |
| 02-01-24 ifdef { SIGTSTP SIGTTOU SIGTTIN }
 | |
| 02-01-16 properly update References: in replies
 | |
| 01-10-15 `get attachment dir' copies attachment to dir
 | |
| 01-04-01 add state.var.hostname for smtp HELO
 | |
| 	 add fmtident() to initialize state.version 
 | |
| 01-01-01 fix map bug that retained alias after expansion
 | |
| 	 smtp: add domain to RCPT TO: if omitted
 | |
| 00-11-27 add Date: and From: to smtp
 | |
| 00-09-21 drop leading */ from user name
 | |
| 00-05-09 add cd,pwd,${PWD},${OLDPWD} with ${CDPATH} check
 | |
| 00-05-04 lex: flush stdout before prompt!
 | |
| 00-03-17 add -Qn to get status of n most recent messages
 | |
| 	 fix imap -NS unread count
 | |
| 	 loosen up headerbotch header checks
 | |
| 00-02-29 handle multiline SMTP responses
 | |
| 99-07-17 fix imap reply via imap_setinput() omission
 | |
| 	 @x.y.z in spam list matches x.y.z domain suffix
 | |
| 	 tone down hostmatch(), check unknown in Received:
 | |
| 	 fix $MAIL lock by checking syscall return value -- how novel
 | |
| 	 add -S, -o justfrom
 | |
| 	 add -NS to print info and exit
 | |
| 	 spam: Message-Id: <>
 | |
| 	 spam: To: suppressed
 | |
| 	 spam: strgrpmatch() instead of strcasecmp()
 | |
| 	 imap: normalize imap message before send
 | |
| 98-12-25 "text/enriched" treated like "text/plain"
 | |
| 	 PART_text && PART_inline => in the body
 | |
| 98-11-11 `save +' with `set followup=+From' saves msg in `+From/sender'
 | |
| 98-06-01 fix header parse for message/rfc822
 | |
| 	 add sendmail=smtp://host sendmail=/dev/tcp/host/inet.smtp
 | |
| 98-02-14 more spam stuff
 | |
| 	 to==from==user isn't spam
 | |
| 	 Status: header means already scanned (MSCAN)
 | |
| 	 spam check in setinput() (either here or in setptr())
 | |
| 	 `---*' can separate headers from body
 | |
| 98-02-07 defined(SFIO_VERSION) insead of defined(printf) for sfio disciplines
 | |
| 98-01-11 set spam to mark spam candidates X
 | |
| 	 set spamlog=file to automatically log spam msgs on quit
 | |
| 	 set spamto=addr1,...,addrN for candidate spam recipients
 | |
| 	 set spamfrom=addr1,...,addrN for candidate spam senders
 | |
| 	 set spamsub=word1,...,wordN for candidate subject word prefixes
 | |
| 	 add :!x for messages not matching x
 | |
| 	 set local=domain1,...,domainN
 | |
| 	 check for nuls in mail file
 | |
| 	 set headerbotch treats nReturn-Path: as From line if not in header
 | |
| 97-11-27 couldn't resist the date
 | |
| 97-11-11 change fflush() (in stdio.h) to do physical seek to logical position
 | |
| 	 this should squash the empty message bug
 | |
| 97-10-31 replace ferror() checks with checks at the io ops
 | |
| 97-08-11 ~m with no messages no longer dumps core
 | |
| 	 sendmail="<_PATH_SENDMAIL> -oi" to retain `.' lines (least suprise?)
 | |
| 	 keep most descriptive content-type
 | |
| 97-07-17 -t implies SEND mode
 | |
| 	 set quiet still lists folder status on startup
 | |
| 	 attachments named n-m instead of n:m for fat fs
 | |
| 	 if no encoding type and mimeview(encoding) then its an encoding
 | |
| 97-02-14 [Ss]plit now takes message list arg, Split ignores headers
 | |
| 	 no longer dumps for non-empty files with no From
 | |
| 	 ~f preserves attachment encoding/boundaries
 | |
| 	 text/plain with name="" is now an attachment
 | |
| 	 ${MAIL} is default system mailbox
 | |
| 	 ${MAIL}/.. is default system mailbox dir
 | |
| 96-09-06 version 9.6
 | |
| 	 set headerbotch to handle mailers that add space between std headers
 | |
| 	 set more[=prompt] to enable sfio more discipline (overrides PAGER)
 | |
| 	 alias < file (note space around <) to read sendmail alias file for map
 | |
| 	 join [messagelist] -- reply with auto ~m ~v
 | |
| 	 Join [messagelist] -- Reply with auto ~m ~v
 | |
| 	 multipart content converted to print/type/split (attachment) lines
 | |
| 	 get attachment-index [path] after print/type decodes attachment to file
 | |
| 	 ~g file interpolates content for multipart message
 | |
| 	 ~g `uuencode -h -x base64': no header/trailer, base64 encoding
 | |
| 	 set fixedheaders="hdr1dr2..." added to outgoing message header
 | |
| 	 help [ command | ~ [ command ] set [ variable ] ]
 | |
| 	 set MAILCAP; get checks ${MAILCAP} for view command(s), Get doesn't
 | |
| 	 mime [ pattern[;] command | < file ] -- add/del/list mime capabilities
 | |
| 	 alias case insensitive -- mail addrs and sendmail aliases are anyway
 | |
| 	 use <cdt.h>
 | |
| 	 use <mime.h>
 | |
| 	 mark [messagelist] mark
 | |
| 	 folder directories treated as mh folders
 | |
| 	 set inbox=+inbox -- SAVE messages not held in this mh folder
 | |
| 	 SAVE messages deleted from any mailbox
 | |
| 	 cast off_t %ld to (long) -- how do you say long long in portable?
 | |
| 	 if displayed message from me then don't ignore To:
 | |
| 	 mailbox() attempts all standard places
 | |
| 	 retain mime type/encoding in lower case
 | |
| 96-08-11 version 9.0
 | |
| 	 convert to prototyped ANSI C
 | |
| 	 all non-shared externs static
 | |
| 	 globals into state.*
 | |
| 	 internalize mail.help and mail.tildehelp
 | |
| 	 alternates: equivalent to: alias alt[i] myname
 | |
| 	 split to split messages into numbered files
 | |
| 	 blast,Blast to blast message headers and body into name=value list
 | |
| 	 if "a" [ == != ] "b"
 | |
| 	 ${mode} is readonly with value either "send" or "receive"
 | |
| 	 some options are readonly
 | |
| 	 some options may only be set on command line
 | |
| 	 some options may not ne set while sourcing
 | |
| 	 most command line flags have option names
 | |
| 	 set all shows unset vars too
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="ncsl changes">ncsl changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 99-09-01 add usage[]
 | |
| 96-10-11 first release
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="pack changes">pack changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 2003-05-21 pack.tst: add
 | |
| 2003-04-28 pack,unpack: handle file size > 2Gb (and > 4Gb)
 | |
| 2002-03-09 pack,unpack: diagnostic if no file operands
 | |
| 1999-05-03 add optget() docs
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="pzip changes">pzip changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 03-07-17 pzip.c: update --split doc
 | |
| 	 pin.c: add --maxhigh=N% high frequency column hard limit
 | |
| 	 pin.c: fix tsp cost matrix free() bug
 | |
| 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
 | |
| 02-02-14 Makefile: add explicit -lz references
 | |
| 01-10-31 pin: add --reorder=tsp via -ltsp
 | |
| 01-10-30 pzip: fix --window doc typo
 | |
| 01-10-08 pin: add --optimize={dynamic|greedy|non|transitive}
 | |
| 	 pin: add --optimize method table for easy expansion
 | |
| 01-08-11 pzip: set error_info.id from argv for statically linked disciplines
 | |
| 01-06-28 pzip: --split turns implies PZ_READ even with -p
 | |
| 01-02-02 pzip.tst: add -w window size test
 | |
| 00-10-04 pin: add -T0x800 TSP v3 dump
 | |
| 00-10-03 pin: add -T0x400 TSP v2 dump
 | |
| 00-10-02 pin: fix -p bug that botched the input read
 | |
| 	 pin: TSP dump now computes exact big value
 | |
| 00-09-29 pin: add -T0x200 TSP v1 reorder matrix dump
 | |
| 00-05-31 pin: --size does filter() to verify guess, 0 if wrong
 | |
| 00-02-11 pin: always have state.map, even with no freq filter
 | |
| 99-11-03 pin: alb optimize()+solution() update (quadratic loop)
 | |
| 99-09-25 pzip: change --split to --split[=pattern]
 | |
| 99-09-11 pzip: change --split=dir to --split
 | |
| 99-08-11 pzip: add --append, --split=dir
 | |
| 	 pzip: fix SEE ALSO
 | |
| 99-06-23 pin: add --cache to enable pin-* cache; off by default now
 | |
| 99-06-22 pin,pop: add --prefix
 | |
| 99-06-20 pzip: add --prefix
 | |
| 99-03-22 rectify: add
 | |
| 99-03-17 pin,pzip: add --bzip for investigation
 | |
| 	 pin,pop: -r row-size now optional thanks to pzfixed()
 | |
| 	 pin: fix bugs for high==0
 | |
| 99-03-11 pin,pop,pzip: long options
 | |
| 	 pin: -hn% for % frequency cutoff, default is -h10%
 | |
| 98-11-01 pzip: delete sfclose(sfstdout) since SF_ATEXIT handles it now
 | |
| 98-10-20 pin: maintain frequency and pair compress size cache
 | |
| 	 pop: -s schema => -f pop-schema || mps-style-format
 | |
| 98-08-11 initial release
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="re changes">re changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 12-06-25 test*.c: handle \u[U+...]
 | |
| 12-06-23 testoldmatch.c: add tests for legacy astsa/strmatch.c
 | |
| 12-05-07 grep.c: add case 'y': to *really* ignore --color
 | |
| 12-05-03 grep.c: add -Y, --color -- ignored for GNU compatibility
 | |
| 12-04-20 grep.c: always enable FTS_META (to disable pure FTS_PHYSICAL)
 | |
| 12-04-17 type.dat: add type.dat re-type switch tests
 | |
| 12-03-38 sed?.[ch]: 64 bit cleanup for msvc
 | |
| 11-06-25 grep.c: handle FTS_SLNONE
 | |
| 10-12-10 grep.c: fix some empty line buffer boundary bugs
 | |
| 10-11-22 testregex.dat: add more [......] tests
 | |
| 10-09-01 grep.c: RE errors => exit(2)
 | |
| 10-08-11 ed,grep,sed: use conformance("standard",0) test
 | |
| 10-08-11 sed: align y \ <JOIN> \? logic with standard
 | |
| 10-07-31 grep: add --recursive,-r for the linux for dummies crowd -- barf
 | |
| 10-06-11 sed: drop space|semicolon separators warning
 | |
| 10-06-11 sed: fix G to always emit newline
 | |
| 10-06-11 sed: change 'l' command max line size to 72
 | |
| 10-01-01 testfnmatch.c,testmatch.c: ignore 'v' test option
 | |
| 09-12-11 grep.tst: add more -x + -e combos for regcomb() fix
 | |
| 09-12-11 testregex.dat,regex++.dat: posix semantics for [z-a]
 | |
| 09-11-20 sed: handle mb chars in y/from/to/
 | |
| 09-10-31 sed: add a few gnu compatibility options
 | |
| 09-02-02 repetition.dat,haskell.dat: add tests by Chris Kuklewicz www.haskell.org
 | |
| 08-11-04 iso8859-1.dat: add [!-...] and [^-...] locale tests
 | |
| 08-09-04 nested.dat,noop.dat: nested match beyond end of subject fix
 | |
| 08-07-29 testglob.c: add workspace symlinks
 | |
| 08-07-29 testglob.dat: add ** symlink => dir tests
 | |
| 08-05-14 *.dat: update tests for UTF-8 vs. ISO-8859-1
 | |
| 08-03-05 testregex.dat: add K {,*}(...) tests
 | |
| 08-02-14 sed.tst: sync with regsubexec() fixes
 | |
| 08-02-02 sed: add -m, --multi-digit-reference
 | |
| 07-11-19 sed: /RE/I *except* for substitute command
 | |
| 07-10-16 sed: add /RE/I... => ignore case
 | |
| 07-03-19 testregex.c: add regdecomp() harness
 | |
| 07-03-19 testdecomp.dat: add regdecomp() tests
 | |
| 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
 | |
| 05-12-14 grep.c: add --name=name (-N) for stdin file label
 | |
| 05-08-18 grep.c: add --label, -m and --total, -t
 | |
| 05-06-06 reg.dat: transcribe from tcl 8.3 Spencer reg.test
 | |
| 05-05-20 test(fmt|fnmatch|match|regex): handle file args for rt(1)
 | |
| 	 nested.dat: add
 | |
| 05-04-03 sed: change regexec() => regnexec() to handle embedded ' '
 | |
| 05-03-30 testmatch.dat,testregex.dat: add '[*' REG_SHELL pattern tests
 | |
| 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
 | |
| 04-02-13 testmatch.dat: add strmatch() cache boundary tests
 | |
| 03-10-17 testregex.c: add regexec() REG_LEFT tests, fix \x.... tests
 | |
| 03-08-11 ed.c: fix . value after s
 | |
| 03-08-08 ed.c: fix bug that botched the remembered RE parse
 | |
| 03-07-17 testregex.dat: add REG_SHELL|REG_AUGMENTED tests
 | |
| 03-06-09 minimal.dat: add tests
 | |
| 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
 | |
| 02-10-10 grep.c: ignore -a for GNU compatibility: gnugrep=tw+astgrep
 | |
| 02-08-12 testregex.dat,locale.dat: add REG_MINIMAL tests for mb bug
 | |
| 02-08-07 *.dat: recognize anchors in BRE subexpressions
 | |
| 02-07-17 testregex.c: fix basic re support test
 | |
| 02-07-15 locale.dat: add S and K tests for testfnmatch
 | |
| 02-06-20 testregex.c: handle invalid (?,*) and (*,?) in match[]
 | |
| 02-06-11 ed.c: fix global EOF test
 | |
| 02-06-10 testregex.c: add -x to inhibit REG_NOSUB
 | |
| 	 libtre.dat: add libtre regression tests
 | |
| 02-06-06 ed.c: fix substitute line splice
 | |
| 02-05-31 ed.c,sed.c: update to use regsubcomp(),regsubexec()
 | |
| 02-05-30 testregex.c: add -R to replace answers with implementation answers
 | |
| 02-05-20 testregex.c,ed.c,sed1.c,sed3.c: update to regsubcomp(),regsubexec()
 | |
| 	 testsub.dat: add new regsubcomp(),regsubexec() tests
 | |
| 02-05-14 testregex.c: add 'p' for REG_NOSUB, null regsub() 'g' match tests
 | |
| 02-05-09 testregex.c: handle 'x' for implememntations with no REG_LENIENT
 | |
| 02-05-08 testregex.c: fix "did not terminate" message
 | |
| 02-04-12 README.re,Makefile.re,re.tgz: update standalone test tarball
 | |
| 02-04-05 locale.dat: split from testre.dat
 | |
| 02-03-27 testglob.c: fix double escape() call for GLOB_LIST
 | |
| 	 testglob.dat: update tests for original pattern on no match
 | |
| 02-02-14 grep: add -P,--perl-regexp == REG_EXTENDED|REG_LENIENT
 | |
| 02-02-12 ed.c: add \r hacks
 | |
| 02-02-02 sed0.c: add \r to blank() set
 | |
| 01-12-06 grep.c: add -b,--highlight to highlight matched text on ansi terms
 | |
| 01-11-20 minimal.dat: add tests for regnexec() REG_MINIMAL char class bug
 | |
| 01-10-31 sed: all space before ; command separator for REG_LENIENT
 | |
| 01-10-20 testglob.c: handle  in pattern and result field parse
 | |
| 	 testglob.dat: add tests for  in pattern and GLON_NOCHECK
 | |
| 	 sed1.c: fix instruction cast pun
 | |
| 01-10-18 testmatch.c,testre.c: all test failure messages contain the text `fail'
 | |
| 01-10-17 testre.dat: add []{}() imbalance tests
 | |
| 01-10-05 testglob.c: update --help, add GLOB_LIST and GLOB_STACK tests
 | |
| 	 testglob.dat: add a few more tests
 | |
| 01-10-03 testmatch.dat: add ancc cc trigraph prone patterns
 | |
| 01-09-11 ed: fix t command bug, add regression test
 | |
| 	 ed: fix RE error intercept via REG_DISCIPLINE errorf
 | |
| 01-09-06 testfnmatch,testmatch: add --help
 | |
| 01-09-04 testre: update test data
 | |
| 01-06-11 testre: handle embedded   in subject string, add   tests
 | |
| 01-05-24 testre: add (?{...}) test support
 | |
| 01-05-22 testre: add regsub() tests, testsub.dat
 | |
| 01-05-16 regex.h update
 | |
| 	 test*.c,*.dat: update for sensible test \<JOIN> expansion
 | |
| 01-04-18 testglob.dat: add no metachar tests
 | |
| 01-03-19 testglob: add
 | |
| 01-03-08 testre,testmatch: update for I18N and strgrpmatch() regex wrapper
 | |
| 99-12-12 sed: delay peek for .==$
 | |
| 99-08-11 grep: don't complain about EISDIR read error
 | |
| 	 ed: usage to stderr
 | |
| 99-05-01 ed,sed: long options
 | |
| 99-04-23 testre.dat: add ksh pattern parse tests
 | |
| 99-03-01 grep: long options
 | |
| 98-11-11 testmatch: add STR_ICASE tests
 | |
| 98-09-22 sed: REG_LENIENT => delim not special inside [...]
 | |
| 98-07-17 grep: add -w, -G
 | |
| 98-04-01 sed: => newline for LHS and RHS of y if REG_LENIENT
 | |
| 98-03-01 grep.tst,testre.dat: update for regcollate() [..] fix
 | |
| 98-02-06 testre: char class range bug fix checks
 | |
| 	 testmatch: char class range bug fix checks
 | |
| 98-01-23 sed: use regerror(0 for more informative error messages
 | |
| 97-05-09 sed: fix adrs[] by adding ccmapc()
 | |
| 97-04-01 sed: fix s/old/new/w file
 | |
| 96-12-25 sed: uchar -> unsigned char for the bsd holdouts
 | |
| 	 sed: sfset(sfstdin,SF_SHARE,1) if q command compiled
 | |
| 	 sed: ccmapc() command table indices
 | |
| 	 sed: ; separator warning only if CONFORMANCE==standard
 | |
| 	 ed: add <sfdisc.h>
 | |
| 	 sed: hp.pa cpp can't handle #define f(/*a z*/a)
 | |
| 	 ed: line mark bit constants now use sizeof(off_t)*CHAR_BIT
 | |
| 96-08-31 testre: add BM tests
 | |
| 96-08-11 ed: -? and arg errors now verbose
 | |
| 96-05-09 testre: add RE_SHELL_* tests
 | |
| 96-02-29 grep: fix line buffer span bug that forgot to add the newline
 | |
| 	 grep: fix -h, add -H
 | |
| 	 sed: fix compiled expression alignment errors by typedef word
 | |
| 	 regress: move to lib0ast
 | |
| 	 grep: fix exit status and keep going on input open error
 | |
| 96-02-14 grep: -Ts keeps SF_SHARE input
 | |
| 96-02-09 grep: fix end of buffer test
 | |
| 96-02-06 grep: add regrexec() -- now its close to gre speed
 | |
| 96-01-30 ed: ,==.,$ ;==1,$ %==1,$
 | |
| 	 grep: turn off SF_SHARE on input pipe
 | |
| 	 ed,grep,sed: unused var cleanup
 | |
| 96-01-22 testre: add match overrun test
 | |
| 	 testre: drop dups from testre.dat
 | |
| 	 ed: add trap() call to append()
 | |
| 	 ed: drop malloc/realloc ptr diff hack in append() 
 | |
| 	 ed,grep,sed: REG_LENIENT (-O) is default, -S for strict
 | |
| 	 ed,grep,sed: astconf("CONFORMANCE")=="posix" for strict
 | |
| 	 sed: REG_LENIENT allows space between addresses
 | |
| 96-01-19 regress: INPUT|OUTPUT|ERROR -n for no trailing newline
 | |
| 	 sed: fix incomplete last line handling
 | |
| 	 grep: add incomplete last line handling
 | |
| 	 testre: handle \r \t \xXX in re and s fields
 | |
| 96-01-16 testre: standardize for outside exchange
 | |
| 96-01-11 sed: convert sed.h enum to #define for K&R
 | |
| 	 ed: add restricted red
 | |
| 	 ed: fix s///g bug that botched more than 1 sub!
 | |
| 	 ed: fix s///<num> bug that missed the point
 | |
| 96-01-08 regex: convert from C++ to C
 | |
| 95-12-25 regex: add REG_SHELL, REG_SHELL|REG_AUGMENTED
 | |
| 	 regex: drop REG_ANCH, reganch() -- REG_LEFT|REG_RIGHT always done
 | |
| 95-12-21 regex: snarf from Doug; now we have negation and conjunction
 | |
| 	 regex: REG_MINIMAL converts pattern to pattern&(pattern.+)!
 | |
| 95-12-19 regress: new
 | |
| 	 convert test*.sh to *.tst for use with regress
 | |
| 95-12-11 ed: undo for all ops
 | |
| 	 ed: initial tested.sh
 | |
| 95-12-08 ed: no hard limits
 | |
| 	 ed: !command added
 | |
| 	 ed: a,b!command writes to command and reads back
 | |
| 	 ed: program state in ed struct
 | |
| 95-12-04 regex: add REG_SHELL,REG_LEFT,REG_RIGHT and strgrpmatch()
 | |
| 	 regex: add REG_MINIMAL placeholder
 | |
| 	 ed: new from v10
 | |
| 	 ed: posix update
 | |
| 95-12-01 regex: snarf Doug McIlroy's C++ implementation
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="sort changes">sort changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 10-08-11 main.c: use conformance(0,0) for "standard"
 | |
| 10-05-25 main.c: handle mb -t
 | |
| 10-05-11 main.c: add -p,--plugins=style -- common to all command swith plugins
 | |
| 10-04-22 main.c: -C => -E, add posix --silent-check, -C
 | |
| 10-04-11 main.c: drop -S,--unstable, handle --nostable, -[Sy]N => -zpN
 | |
| 10-04-03 main.c: add locale reference to the sort order description
 | |
| 09-12-09 main.c: add -h, --scaled|--human-readable
 | |
| 08-04-24 main.c: add optget() 'n' option for -1 => -K1
 | |
| 07-10-30 main.c: default insize == procsize -- worth ~25% time!
 | |
| 07-10-30 sort.tst,testsort.sh: export LC_ALL=C
 | |
| 07-01-25 main.c: v format size is max of all input files
 | |
| 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
 | |
| 06-01-21 testsort.sh: fix pure sum command search logic
 | |
| 05-11-01 rec.c: add --count
 | |
| 05-06-30 main.c: add -zbBUFSIZE for regression testing
 | |
| 05-06-27 main.c: convert sftmp() etc. to rstmp*()
 | |
| 05-06-24 sfopen.c: allow multiple io intercepts per program
 | |
| 05-06-11 main.c: fix duplicate sfdcgzip() bug that corrupted input
 | |
| 05-05-31 main.c: mv rslib() before key->input[] record format processing
 | |
| 05-05-17 main.c: delay -l* => rslib() until all options parsed
 | |
| 05-05-11 main.c: fix -R* parse, preserve output zip/record attributes
 | |
| 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
 | |
| 04-02-11 main.c: document the obsolescent -k reclen:fieldlen:offset
 | |
| 	 sort.tst: add -k reclen:fieldlen:offset vs. -k .r -k .o.f tests
 | |
| 03-11-11 main.c: fix sfread vs. sfreserve logic fooled by SFOPEN_INTERCEPT
 | |
| 03-11-04 sfopen.c: add SFOPEN_INTERCEPT experiment 
 | |
| 03-10-16 main.c: add RS_CAT check
 | |
| 03-10-11 main.c: add RS_IGNORE checks, -R% to get size from path%lrecl
 | |
| 	 sort.tst: add -R% tests
 | |
| 03-09-06 main.c: add -Z, --zd, --zoned-decimal
 | |
| 03-09-04 main.c: change -R to --record=format | --recfmt=format
 | |
| 03-08-31 main.c: -l implemented by rslib()
 | |
| 03-08-15 main.c: add -J, --shuffle=seed
 | |
| 03-05-27 main.c: add -C, --codeset={a,e,i,o,n}, -p, --bcd, --packed-decimal
 | |
| 03-05-23 main.c: add -R, --reclen=reclen
 | |
| 03-03-11 testsort.sh: initialize $CC from :TEST: TESTCC state var
 | |
| 03-03-07 Makefile: +lsort for now
 | |
| 01-04-19 sort.tst: add -s tests
 | |
| 00-03-09 main.c: fix infomation typo
 | |
| 00-12-25 main.c: close input before final overwrite ops
 | |
| 00-08-31 main.c: add -zcCHUNK to sort in chunks with merge disabled
 | |
| 99-11-19 main.c: use rskeylist() for method usage
 | |
| 99-11-11 main.c: unstable sort is the default for backwards compatibility
 | |
| 99-08-11 main.c: fix usage[]
 | |
| 99-06-07 main.c: add -o in any file position for backwards compatibility
 | |
| 99-03-03 main.c: add long options
 | |
| 	 sort.tst: add gnu tests; `b' is tricky
 | |
| 99-01-11 fix buffer boundary bug that emitted `newline appended' on 4k systems
 | |
| 98-03-17 add -zI -zO to zip input/output
 | |
| 98-03-11 fix sfmove() error checks
 | |
| 	 close output before rename
 | |
| 97-12-07 -Td1:d2:...:dn works via pathtmp(0,p,"/TMP_PATH",0)
 | |
| 	 pathtmp(0,0,"/cycle",0) could be used to control phase tmp files
 | |
| 96-07-17 insize is much less aggressive -- must nail down reasonable proc mem
 | |
| 	 fix bug that required 2 ^D for interactive input
 | |
| 96-12-25 drop sfset(sfstdin,SF_SHARE,0)
 | |
| 96-10-22 sfreserve tweaks
 | |
| 	 multi-stage merge now keeps previous stages out until next stage
 | |
| 	 sfreserve() only if 1 S_ISREG() input file
 | |
| 96-10-17 increase merge file limit to (OPEN_MAX-16) where possible
 | |
| 	 update testsort TEST=15 input file size to force multi-stage merge
 | |
| 96-10-11 all regression tests pass for all methods
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="std changes">std changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 12-06-06 yes.sh: use echo instead of print if no $KSH_VERSION
 | |
| 12-04-20 ls.c: FTW_META default
 | |
| 12-02-14 yes.sh: add
 | |
| 12-01-23 du.c: the rightmost of { -b -h -k -K -m } overrides the others
 | |
| 11-12-13 features/procfs, pss-procfs.c: check _PS_task for { st_uid st_gid }
 | |
| 11-08-24 ls.c: fix { linkop linktext } to check for FTS_SLNONE too
 | |
| 11-08-01 file.c: add -b, --brief | --no-filename
 | |
| 11-06-10 ls.c: add %(view)d for 3d fs view level (iview(struct stat*))
 | |
| 11-05-09 ps,pss: handle pr_npid in /proc/<pid>/stat
 | |
| 11-04-26 ps.c: increase COMMAND width from 16 => 24
 | |
| 11-04-26 features/procfs: fix uwin /proc probes
 | |
| 11-04-21 dd.c: turn stdin O_NONBLOCK off
 | |
| 11-04-21 dd.c: fix SI vs US numeric suffix docs
 | |
| 11-04-15 ls.c: add KEY_dev for all file types
 | |
| 11-03-10 ps.c: use %0<width>s for string fields to retain last <width> chars of long strings
 | |
| 11-03-03 dd.c: fix writes beyond count for piped input across partial input blocks (thanks ggreen)
 | |
| 11-02-11 mount.c: fix umount operand verification
 | |
| 11-01-28 file.c: add -a, --all to list all magic table matches
 | |
| 11-01-11 dd.c,iconv.c: convert Iconv_disc_t* for iconv_move() and iconv_write()
 | |
| 11-01-11 iconv.c: add posix { -c,--omit -l,--list -s,--silent }
 | |
| 10-12-01 ps*: update freebsd procfs logic
 | |
| 10-08-11 df.c: use conformance("standard",0) test
 | |
| 10-06-01 sync with ast api 20100601
 | |
| 10-05-25 ls.c: back off 09-07-02 logical|(meta)physical change
 | |
| 10-02-09 ps.c: fix --tree --format=... => \\_ instead of \_
 | |
| 10-02-09 ps.c: ntpid not hex by default
 | |
| 10-01-01 ps.c: fix { -T -C -P } child detection logic
 | |
| 09-12-09 du.c: add -h, --binary-scale|human-readable; -K, --decimal-scale
 | |
| 09-11-11 features/procfs: handle linux /proc pr_tgrp == pr_tpgid
 | |
| 09-10-21 locale.c: use fmtquote() to print key values
 | |
| 09-07-02 ls.c: ftwflags() default only if not --recursive
 | |
| 09-05-15 ps.c: fix format field alias logic
 | |
| 09-04-15 ls.c: add --sort=version
 | |
| 09-01-30 mount.c: hide mount prototype too (for mvs.390)
 | |
| 09-01-20 dd.c: fix state.in.special counting logic
 | |
| 08-12-08 ls.c: at least one space before link count for -l
 | |
| 08-12-07 ls.c: use %[_][EO]K for [space pad] [full|long] iso
 | |
| 08-10-28 pss-procfs.c: use hz = getconf("CLK_TCK")
 | |
| 08-09-10 features/procfs,pss-kvm.c: netbsd 4.0 kvm tweaks
 | |
| 08-01-31 features/procfs,pss-kvm.c: freebsd6 kvm tweaks -- stop already
 | |
| 08-01-26 df.c: belay some of that delay (automounts foiled it)
 | |
| 07-11-19 df.c: delay stat()/statfs() until necessary
 | |
| 07-11-15 pss-procfs.c: handle pr_pgrp and (...) with embedded space
 | |
| 07-08-03 ls.c: use return from main() instead of exit()
 | |
| 07-06-27 seq.sh: error messages to the standard error -- oops
 | |
| 07-06-01 Makefiles: add $(PACKAGE_LOCALE)umount link
 | |
| 07-05-05 seq.sh,seq.rt: new
 | |
| 07-04-25 locale.c: defer unknown keywords to /usr/bin/locale
 | |
| 07-03-19 du.c: fix 0 pointer deref
 | |
| 07-03-19 pss.c: initialize not found process placeholders
 | |
| 07-02-07 sum.c: move to libcmd & builtin
 | |
| 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
 | |
| 06-01-11 pss-kvm.c: handle struct eproc.e_xsize
 | |
| 06-01-03 ls.c: add --show-control-characters, handle --no*
 | |
| 05-07-25 touch.c: eith => either
 | |
| 05-07-17 dd.c: fix ccode conversion diagnostic
 | |
| 05-06-16 ps.c: fix parent chain lookup infinit loop
 | |
| 05-06-14 ls.c: fix divide by 0 in col()
 | |
| 05-06-11 ls.c: sharpen the optimal row/col search
 | |
| 	 ls.tst: normalize 02 test sizes
 | |
| 05-04-22 ps.c: add --branch --escape
 | |
| 05-04-06 df.c: fix -k F_FRSIZE() to always return > 0
 | |
| 05-03-29 ps.c: check /bin/ps punt recursion when ast_ps is /bin/ps
 | |
| 05-03-11 features/procfs: cygwin tweaks
 | |
| 05-03-10 ls.c: fix -s arithmetic and column output
 | |
| 05-02-14 sum.tst: add SHA { 256 384 512 } tests
 | |
| 05-02-11 pss-info.c: add lynxos info(2) proc table
 | |
| 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
 | |
| 04-02-29 pss-getprocs.c: fix readf/partf semantic mixup
 | |
| 04-02-26 ls.c: handle solaris S_ISDOOR for -F
 | |
| 04-02-11 df.c: rescan mount table to avoid more expensive stat()/statvfs()
 | |
| 04-01-14 split.c: fix csplit {*} EOF detection
 | |
| 03-12-17 sum.c: update docs for new -lsum interface
 | |
| 03-12-09 df.c: don't stat() mount table fs paths that don't start with /
 | |
| 03-11-17 ps.c: fix --children bug that lost lower level ancestor links
 | |
| 03-10-12 dd.c: add ast iconv identity check
 | |
| 03-10-08 dd.c: fix count=n short-read when bs > underlying read size
 | |
| 03-10-07 df.c: fix -Pi to do "portable" -i
 | |
| 03-09-23 ls.c: call fmtmode() with internal mode
 | |
| 	 ls.c: -L => ~FTS_SEEDOTDIR
 | |
| 03-09-18 dd.c: numeric option arg values are now intmax
 | |
| 	 split.c: -b -C -l are now intmax
 | |
| 03-09-11 ls.c: add --testdate=date for testing
 | |
| 03-08-21 split.c: fix csplit pattern matching -- did it ever work?
 | |
| 	 csplit.tst: add regression tests
 | |
| 03-06-21 pss-procfs.c: fix PR_TIME(),PR_CTIME() normalization
 | |
| 03-06-11 mount.c: reorder includes for mvs.390
 | |
| 03-05-26 dd.tst: add
 | |
| 03-04-28 sum.tst: add sha1 tests
 | |
| 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
 | |
| 02-12-04 du.c: add -H -L -P(default) symlink options
 | |
| 02-11-22 file.c: add version type description
 | |
| 02-10-10 pss.c: redefine only if not defined -- duh
 | |
| 02-10-02 pss.c: move <ast_windows.h> to first #if __CYGWIN__
 | |
| 02-09-30 dd.c: honor both count*bs *and* count
 | |
| 02-09-24 dd.c: fix partial record computations and printf format
 | |
| 02-09-11 pss.c: _WIN32 SF_ERROR <windows.h> workaround
 | |
| 	 touch.c: drop TM_DATESTYLE (snarfed too much from date.c)
 | |
| 02-09-09 ls.c: really ignore -T<n>
 | |
| 02-08-13 touch.tst: fix 10 digit ambiguity test
 | |
| 02-08-05 ls.c: add %(perm)[os]
 | |
| 02-07-31 file.c: add -[cdiM] and swap (old ast) -m and -M semantics for posix
 | |
| 02-06-25 ps.c: handle %s vs. %d --format inconsistencies
 | |
| 02-02-14 touch.c: explicit epoch dates (0) are different from now (also 0)
 | |
| 	 locale.c: don't output on unknown keyword
 | |
| 02-02-11 ps.c: validate input pid strings
 | |
| 02-02-04 ps.c: --format subformat => heading
 | |
| 02-02-02 pss.c: handle __CYGWIN__ bug where sizeof(TTY_CONSOLE)>sizeof(dev_t)
 | |
| 02-01-31 pss.c: add aix getprocs()
 | |
| 	 ps.c: ntpid=>npid, ntpid now a deprecated alias
 | |
| 02-01-28 ls: fix devmajor/devminor to use st_rdev where appropriate
 | |
| 02-01-22 ps: fix `not available' warning to attempt subsequent fields
 | |
| 02-01-21 ps: recode to use pss.[ch] process status stream interface
 | |
| 02-01-06 touch: clarify --time doc
 | |
| 01-10-31 df: increase the fs stat timeout from 2 to 4 sec
 | |
| 01-09-04 locale: add new catagories
 | |
| 01-08-11 ls: fix nonprintable test for mb locales
 | |
| 01-08-01 features/procfs: note that synthesized psinfo doesn't have pr_psargs
 | |
| 01-06-27 dd: fix conv=[lu]case|x2y logic botch
 | |
| 01-06-08 ps: option `-' is optional for ancient compatibility
 | |
| 01-06-06 ls: drop octets for bytes -- yay
 | |
| 01-05-25 locale: -m runs local locale until the standard comes to its senses
 | |
| 	 locale: add --element to list collation element weights
 | |
| 01-04-20 df: --man now says --scale is the CONFORMANCE!=standard default
 | |
| 01-04-17 date,rm: move to -lcmd
 | |
| 01-04-01 locale: fix LC_ALL listing
 | |
| 01-03-23 tsort: fix typo that goofed up $'b c c b'
 | |
| 01-03-22 ps: %(ntpid)d takes precedence over hex attribute
 | |
| 01-03-17 date: update --man for tmfmt() changes
 | |
| 	 locale: add with regression test
 | |
| 01-03-09 df: fix cannot stat filesystem typo
 | |
| 01-03-05 ls: add --dump to dump generated --format string
 | |
| 01-03-01 ps: fix iffe logic that disabled too much for /proc synthesis
 | |
| 	 ps: fix -T -p that missed some children
 | |
| 	 ps: fix -x to include session leaders
 | |
| 01-02-14 ps: disable some iffe results for synthesized /proc structs
 | |
| 	 ps: use sfstrbase() and sfstrsize() instead of member names
 | |
| 	 mount: define NGROUPS for freebsd -- how does <sys/ucred.h> make it?
 | |
| 	 df: add scaled sizes, no sync(2) unless -s,--sync
 | |
| 	 df: add statvfs() timeout for good ol NFS
 | |
| 01-01-31 ls: handle --sort=size
 | |
| 01-01-01 ps: change (-x,--hex)=>(-X,--hex), add (-x,--detached)
 | |
| 	 ls: really ignore --tabs, add --quote-style --scale, --thousands
 | |
| 	 rm: -i and -f cancel each other
 | |
| 00-12-13 df: change type default width to 10 for linux
 | |
| 	 ps: fix --format '%(time)d'
 | |
| 00-12-11 ps: fix --tree graph
 | |
| 00-12-08 ps: no -e for pid args
 | |
| 	 ps: add --heading
 | |
| 00-10-31 date: mmddHHMMccyy doc and code fixes, test
 | |
| 	 touch: ccyymmddHHMM doc and code fixes, --time=mtime common sense, test
 | |
| 00-10-23 ps: -Tp pid gets pid and all children
 | |
| 00-10-06 du: fix roundup error by delaying until the totals
 | |
| 00-09-21 touch: fix to handle obsolete MMDDhhmm[YY]
 | |
| 00-08-11 ps: fix man typo
 | |
| 00-06-10 dd: add swap=op
 | |
| 00-05-24 ls: fix --kilobytes, add --block-size
 | |
| 00-05-11 df,ls,ps: unknown format id is fatal error
 | |
| 00-05-02 dd: use iconv() for from=x to=y conversions
 | |
| 00-04-01 ls.tst: export TZ=EST5EDT; new tests should be UCT
 | |
| 00-03-17 rm: add PATH_ATTRIBUTES 'l' check (no hard links to directories)
 | |
| 	 date: --elapsed accepts odd arg count
 | |
| 	 catmerge: add
 | |
| 00-03-09 df: add --format
 | |
| 	 date: add --elapsed
 | |
| 00-02-07 ls: -a and -A now mutually exclusive
 | |
| 	 shar: add $USAGE_LICENSE
 | |
| 00-01-25 touch: add invalid st_mtime value CAVEAT
 | |
| 	 ls.tst: limit max st_mtime to 0x7fffffe to avoid stat(2) EOVERFLOW
 | |
| 00-01-11 tsort: fix
 | |
| 99-12-25 ps: fix linux -o args
 | |
| 99-11-19 mount,umount: fix umount usage[]
 | |
| 	 ls: fix --format doc
 | |
| 99-11-18 ls: -H + cmd link non-dir symlink => lstat() (H == hairbrained)
 | |
| 99-10-31 sum: change --check, add --header --permissions for verifcation
 | |
| 99-10-22 date: fix %C %k %y doc
 | |
| 99-08-11 ps: netbsd + unixware fixes
 | |
| 	 ls: fix SEE ALSO
 | |
| 99-07-17 ps: fix cancel logic to eliminate (null) header
 | |
| 99-06-23 rm: fix -f exit status to be !=0 on errors, even if no diagnostic
 | |
| 99-06-17 expand/unexpand: long options
 | |
| 99-06-14 rm: dir arg requires -r, diagnostic even with -f
 | |
| 99-06-11 df: minimize mntread calls when args given
 | |
| 	 ps: all key.cancel format mods on rhs
 | |
| 	 sum: binary mode by default, local text mode implementation
 | |
| 99-06-01 dd: fix conv=* bitmasks
 | |
| 99-05-20 df: F_BASETYPE() for redhat 6.0 linux statvfs incompatibility
 | |
| 99-05-18 date: add settimeofday() and stime() checks/calls
 | |
| 	 date: use %Y in /bin/date punt
 | |
| 99-05-11 ps: use pr_sid for session leader checks
 | |
| 99-05-09 sum: sfopen(sfstdin,0,"rt") file lists
 | |
| 99-05-06 date: fix inconsistency between date(1) touch(1) tmdate(3)
 | |
| 	 shar: add
 | |
| 99-05-05 sum: add md5sum options
 | |
| 99-05-01 touch,tsort: long options
 | |
| 99-04-28 banner,df,du,file,mesg,mount,ps,sum: long options
 | |
| 99-04-01 ls: long options, gnu compatibility
 | |
| 	 date: fix +format for new optget()
 | |
| 99-03-11 dd: convert to optget()
 | |
| 	 ls: (time_t) cast fmttime() arg
 | |
| 99-03-01 ps: fix static key table inititialization
 | |
| 99-02-04 ps: add maxval to determine default width 
 | |
| 99-01-23 testdate: check date output format too
 | |
| 	 move sfio,date,opt tests to src/cmd/tests
 | |
| 	 move pax tests to src/cmd/pax
 | |
| 99-01-11 sfio/t*.c: make a few tests more portable
 | |
| 98-11-21 touch: add obsolete mmddhh & mmddhhyy
 | |
| 98-10-20 dd: fix in/out partial block reports
 | |
| 	 sum: add ast4|32x4|tw checksum
 | |
| 98-08-11 ps: implement -G
 | |
| 98-07-17 ps: fix -t dump
 | |
| 98-06-26 rm: tighten hard link to directory test
 | |
| 98-04-01 sfio: fix ttmpfile by intercepting open64() and creat64()
 | |
| 98-03-11 dd: fix conv=* check
 | |
| 	 du: list all command line args
 | |
| 98-02-18 date: modify tests for tmfix() 1900+tm_year leap year fix
 | |
| 98-01-23 df: add -O for mnt.options
 | |
| 	 date: add y2k date tests
 | |
| 97-12-20 ps: add (but name ast_ps until it's broken in)
 | |
| 97-12-11 rm: fix -r bug that looped when remove() silently failed
 | |
| 97-07-17 rm: `rm -rf' just prints usage; it used to do `rm -rf .'
 | |
| 	 du: change -kblocksize to -bblocksize, -k => -b1024
 | |
| 	 date: a few more tests
 | |
| 97-05-09 rm: fix FTW_AGAIN code for multi-getdents() dirs
 | |
| 	 df: add ERROR_SYSTEM to -v output
 | |
| 96-12-25 dd: add from=<ccode> to=<ccode>
 | |
| 	 tsort: fix empty list bug
 | |
| 	 df: fix sync() prototype
 | |
| 	 date: add -p input-format to supplement DATEMSK
 | |
| 	 ls: fix boundary problem with %(path) by using %(name)
 | |
| 	 ls: add -A
 | |
| 	 rm: add -F to clear and sync data before remove()
 | |
| 96-10-11 file: update for magic discipline
 | |
| 	 dd: update for <ccode.h>
 | |
| 	 *: change opt_arg to opt_info.arg
 | |
| 	 mesg: add
 | |
| 	 df: "UNKNOWN" fs type -> "local"
 | |
| 96-08-11 dd: set error_info.exit after options
 | |
| 96-06-19 fix ftwalk() top level children anomalies (fts is underneath now)
 | |
| 96-05-09 date: Xopen DATEMSK tests
 | |
| 	 df: Xopen update
 | |
| 	 du: Xopen update
 | |
| 	 ls: Xopen update
 | |
| 	 find: move to tw
 | |
| 	 rm: add
 | |
| 96-02-29 df: list some stat errors -- well, maybe not
 | |
| 	 sum: add cksum link and att,bsd,posix,zip,md5 algorithms
 | |
| 96-02-07 df: (long) cast to handle (unsigned long) vs. (long) header diffs
 | |
| 96-01-30 banner: unused var cleanup
 | |
| 96-01-01 AT&T Research now
 | |
| 	 banner: add
 | |
| 	 split: add
 | |
| 95-12-25 find: add -nouser, -nogroup POSIX unary ops
 | |
| 95-12-08 df: cap = use / (use + avail)
 | |
| 	 expand: new
 | |
| 	 unexpand: new
 | |
| 95-11-18 file: ignore empty file list lines
 | |
| 	 df: add Mnt_t.options and Mnt_t.flags
 | |
| 95-11-16 this is the place for single file standard commands
 | |
| 95-11-11 df: new
 | |
| 	 tsort: new
 | |
| 	 file: fix aix shared library
 | |
| 95-07-17 date: add gnu -d string
 | |
| 	 ls: fix "total..." aggressive output
 | |
| 95-05-09 file: switch to <magic.h> and libast/magic()
 | |
| 	 file: add posix -h == -P
 | |
| 	 ls: sfkeyprintf lookup string arg is now the format conversion char
 | |
| 	 ls: #ifdef check S_ISSOCK
 | |
| 95-04-01 ls: fix -c botch that treated it like -u
 | |
| 95-03-19 ls: add -H for posix FTW_META|FTW_PHYSICAL
 | |
| 	 ls: add -f format to match pax -o listformat
 | |
| 	 ls: add -D key=value to match pax -o listmacro
 | |
| 	 ls: dir.sh to mimic dos -- ouch
 | |
| 	 ls: don't stresc() possibly readonly string literals
 | |
| 95-03-11 find: add -metaphysical (posix -H) for FTW_META|FTW_PHYSICAL
 | |
| 95-02-14 file: add -p pattern to select types that match pattern
 | |
| 95-01-19 file: add linux kernel and minix as,ld
 | |
| 95-01-01 file: start RELEASE file
 | |
| 	 file: add JPEG, dot
 | |
| 	 file: fix GIF
 | |
| 	 file: stresc() match strings too
 | |
| 	 file: add pax compressed and delta formats
 | |
| 	 ls: add -n for LS_NUMBER
 | |
| 	 ls: -C if argv[0] base is lc
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="tksh changes">tksh changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 05-06-14 uinit.c: trap "tkloop" only if it is defined
 | |
| 04-03-31 uinit.c: unalias ksh "source" to uncover tcl builtin by same name
 | |
| 03-01-02 Makefile: dynamic -lshell on CC.HOSTTYPE=*win*
 | |
| 02-08-27 tkMain.c: wait loop recode to avoid WNOHANG cascade
 | |
| 02-02-14 Makefile: shell:static because dll is -g => fix this situation
 | |
| 01-01-01 separate -ltksh from tksh main
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="tw changes">tw changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 12-04-11 find,tw,xargs: update to cmdopen() discipline api
 | |
| 12-02-29 find.c: fix ``! -type f'' vs ``! -type f -print'' bug
 | |
| 11-10-31 tw.c: handle -lexpr X2I change -- scary
 | |
| 11-07-25 expr.c: fix -e sort:url core dump
 | |
| 11-06-30 tw.tst: add symbol table scope tests
 | |
| 11-05-05 tw.c,find.c,xargs.c: update to cmdopen_20110505 api
 | |
| 11-03-03 expr.c: add sum("method") for all libsum methods
 | |
| 10-11-30 tw.tst: add "begin" scope tests
 | |
| 10-09-01 find.c: RE errors => exit(2)
 | |
| 10-08-18 tw.tst: add expr scope tests
 | |
| 10-08-18 find.c: document -exec command ... {} +
 | |
| 10-08-15 tw.h,tw.c,expr.c: add file arg to compile() for --file=expr-file
 | |
| 10-06-01 sync with ast api 20100601
 | |
| 10-04-05 find.c: vmclose() after all usage -- doh
 | |
| 10-04-05 find.c: handle -exec|-xargs with multiple {}
 | |
| 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
 | |
| 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
 | |
| 05-06-13 tw.c: sort:path == sort:name, handle ,-separated keys
 | |
| 05-03-07 xargs.c: fix -i to treat each line as an arg
 | |
| 05-02-23 tw.c: add --error-exit=code to exit if cmd exit >= code
 | |
| 	 find.c: ignore cmd errors
 | |
| 	 cmdarg.c: fix bug that dropped a path on cmd error
 | |
| 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
 | |
| 04-02-26 tw.tst: add scanf tests
 | |
| 03-12-02 find.c: -print does not require leaf stat -- duh
 | |
| 03-11-16 find.tst,tw.tst: add leading . pattern match tests
 | |
| 03-11-14 updatedb.sh: add /proc to default prune paths
 | |
| 03-09-23 tw.c: -L => ~FTS_SEEDOTDIR
 | |
| 02-01-10 tw,find: add sfsync(sfstdout) check
 | |
| 02-11-07 tw: add type==DOOR (solaris S_ISDOOR)
 | |
| 	 find: add -type D (solaris S_ISDOOR)
 | |
| 02-07-17 updatedb.sh: add --local to skip non-local directories
 | |
| 02-04-18 find: fix lookup() bug that dumped on unknown keys
 | |
| 02-04-03 find: add FTW_DELAY logic, fix directory -empty
 | |
| 	 tw: add FTW_DELAY logic
 | |
| 02-01-16 tw: add symlink to EXPRESSIONS doc
 | |
| 01-10-31 tw,find: add slocate(1) refs
 | |
| 01-07-17 xargs: fix -e -i -l option parse for backwards compatibility
 | |
| 	 cmdarg(): fix CMD_INSERT copy that omitted leading chars
 | |
| 01-05-02 tw: fix -a to use CMD_POST instead of CMD_INSERT
 | |
| 01-02-06 tw,find: move --local test fslocal()
 | |
| 01-01-01 find: fix -newer -anewer -cnewer -perm
 | |
| 00-11-14 updatedb: add --dir-format (it was already the default)
 | |
| 00-08-11 tw: add --recursive
 | |
| 00-05-23 cmdarg: fix -a strchr loop (thanks dr ek)
 | |
| 00-05-01 find: add [f]printx and %[xX] -- or use tw
 | |
| 00-03-12 find: fix multiple PRINT with -print imbeded in ( ) -o ( )
 | |
| 99-10-11 tw: tighten up --generate exit codes
 | |
| 	 updatedb: add a few options
 | |
| 99-08-11 find: fix -size
 | |
| 	 find: undef NOGROUP NOUSER -- (net)bsd stomps again
 | |
| 99-07-17 xargs: newline *and* space separated args -- duh
 | |
| 99-05-24 find: fix PRINT!=0 enum logic bug
 | |
| 	 find.tst,tw.tst: add
 | |
| 99-05-21 tw: fix print --man
 | |
| 99-05-09 tw,xargs: sfopen(sfstdin,0,"rt") file list
 | |
| 99-04-01 find: get -o -or and -a -and disambiguation order correct
 | |
| 	 find: -*time -*min fix
 | |
| 	 find: -exec {} malloc bug fix
 | |
| 	 find: fix exit status
 | |
| 	 xargs: long options, \r fix exit status
 | |
| 	 tw: long options, fix exit status
 | |
| 99-03-11 find: convert to optget()
 | |
| 99-03-03 tw: CMD_INSERT instead of CMD_POST, fix `-' file list on stdin
 | |
| 	 find: FTW_SEEDOTDIR, CMD_INSERT instead of CMD_POST
 | |
| 99-02-14 cmdarg: use astconf("ARG_MAX")
 | |
| 	 find: -fast to execute() just like tw
 | |
| 	 find: -xargs command ';'
 | |
| 99-01-23 locate,updatedb: add
 | |
| 	 cmdarg: fix bug that did not 0 last terminator in file list
 | |
| 98-11-11 find: -ls => ls -lis
 | |
| 	 find,tw: add astconf("PATH_ATTRIBUTES") and strmatch(STR_ICASE)
 | |
| 98-08-11 tw: add 32x4 file content checksum
 | |
| 	 cmdarg: fix off-by-1 bug that lost 1 arg per cmdflush()
 | |
| 98-07-01 tw: fix expr convert disc
 | |
| 98-05-28 find: add -magic pattern and -mime pattern
 | |
| 98-03-11 tw: fix p=pwd initialization bug
 | |
| 	 tw: fix -m interaction bug with action
 | |
| 98-02-14 find: add -icase for -fast ignorecase
 | |
| 	 tw: add -I for -f ignorecase
 | |
| 	 use FTW_MULTIPLE to get ordering on cmd arg dir list too
 | |
| 	 pass dir list to findopen(read)
 | |
| 	 tw: -G now takes format arg
 | |
| 98-02-04 find: add -fast primary to handle std `find x' == `find x -print'
 | |
| 97-05-09 tw: mime && magic now use PATH(ftw)
 | |
| 96-11-28 find: add optget()
 | |
| 96-10-11 find: fix multiple -exec bug
 | |
| 	 tw: strdup() compile time strings!
 | |
| 96-10-01 update for magic discipline
 | |
| 96-05-09 add find and xargs
 | |
| 	 tw,find,xargs now use cmdarg.[ch] for exec arg limits
 | |
| 	 tw: add -F codes to read/write fast find codes
 | |
| 96-02-29 use EXIT_STATUS() to properly report command exit status
 | |
| 95-05-09 add string magic field
 | |
| 	 add -X (don't cross device boundaries)
 | |
| 95-03-11 create this file
 | |
| 	 add -H for FTW_META|FTW_PHYSICAL
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="warp changes">warp changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 12-06-22 warp.c: add utimensat()
 | |
| 08-11-15 warp.c: fix time() _WIN32 intercept
 | |
| 05-02-01 warp.sh: 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 warp.sh: %s instead of %#, add clock_gettime() intercepts
 | |
| 04-07-26 warp.sh: update runtime docs
 | |
| 04-07-23 Makefile: link with static ast libs
 | |
| 01-10-20 warp: drop :WWW: standalone distribution
 | |
| 99-11-19 warp: fix _RLD_LIST for sgi.mips4-n32
 | |
| 99-05-21 add: _xstat64
 | |
| 99-04-01 add :WWW:, change from function to script
 | |
| 98-04-01 add in factor code and intercepts
 | |
| 98-03-11 initial release
 | |
| 98-03-05 first implementation
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="vczip changes">vczip changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 09-10-01 vczip.c: make discipline data static -- it may be accessed after main() returns
 | |
| 09-07-04 vczip.c: first attempt to unify vcodex(--method) and codex(--transform)
 | |
| 09-02-02 vczip.c: -u is now a flag (no optional arg)
 | |
| 09-01-18 vczip.c: fix bug that forgot to assign src file path
 | |
| 08-11-04 vczip.c: change date to official kpv -lvcodex release
 | |
| 08-06-06 sync with kpv; add ast plugins and optget() usage
 | |
| 05-09-25 vczip.c: fix empty input test for pipes
 | |
| 05-06-16 vczip.c: snarf from kpv
 | |
| 05-06-30 vczip.c: handle vcsfmeth interface change
 | |
| 05-06-28 vczip.c: snarf from kpv
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="jcl changes">jcl changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 07-12-07 jcl.rt: add prefix '/' delimiter tests
 | |
| 07-06-06 JCL.mk: add USR1 USR2 interrupt handlers
 | |
| 07-02-20 cpy2dss.c: handle POINTER, ignore IS
 | |
| 06-11-11 jcl.c: fix map vs name=value arg precedence
 | |
| 06-11-11 JCL.mk: export JCL_AUTO_* instead of via command line
 | |
| 06-10-11 add sfstruse() error checks
 | |
| 06-08-15 jcm.mk: add --index=n
 | |
| 06-08-11 JCL.mk: add JCLGROUP for shared coshell
 | |
| 06-08-08 JCL.mk: parameterize to JCLROOT=$(PACKAGEROOT)
 | |
| 06-08-03 jcm.c: fix group base prereq
 | |
| 06-07-31 JCL.mk: parameterize event db path
 | |
| 06-06-21 jcm.c,JCL.mk: .EVENT.WAIT and .EVENT.RAISE update
 | |
| 06-06-11 jcm.c: .EVENT.GET => .EVENT.WAIT, .EVENT.SET => .EVENT.RAISE
 | |
| 06-05-25 cpy2dss.c: handle PIC -9(3).9(2)
 | |
| 06-05-22 jcm.c,JCL.mk: add .EVENT.GET .EVENT.SET
 | |
| 06-05-18 jcl.c: exit code cleanup
 | |
| 06-05-17 jcl.c: update docs
 | |
| 06-05-16 jcm.c: add job.base and user 'O' for job.name if specified
 | |
| 05-09-22 jcm.c: add --initialize=file, handle 'T' card prescan
 | |
| 	 jcm.rt: add tests
 | |
| 05-09-15 cpy2dss.c: ebcdic-m (mvs) now the default
 | |
| 05-09-12 jcm.c: ~PX0000 => $(JCL_AUTO_PX)0000
 | |
| 05-08-31 jcl.rt,JCL.mk: add
 | |
| 05-08-29 jcm.c: add JCL_AUTO prefix to makefile jcl action vars
 | |
| 	 jcl.c: add -O, --odate, -R, --rdate, -S, --date
 | |
| 05-05-31 cpy2dss.c: add typename()
 | |
| 05-05-09 cpy2dss.c: add <QUOTEALL>
 | |
| 05-04-18 cpy2dss.c: add --escape, --quote-begin, --quote-end
 | |
| 05-04-11 cpy2dss.c: handle accumulated fields > fixed record size
 | |
| 	 cpy2dss.c: handle --sized --text --variable
 | |
| 05-02-14 jcl.c: add --import env var precedence over --map definitions
 | |
| 04-12-23 cpy2dss.c: mark structs and struct arrays for --offsets
 | |
| 04-12-21 cpy2dss.c: add type field to --offsets
 | |
| 04-10-31 jcl.tst: add JCL_DD_ALIAS tests
 | |
| 	 jcl.c: add -r,--resolve to resolve/map path operands
 | |
| 04-10-20 cpy2dss.c: add -C,--comp=from:to
 | |
| 04-09-27 cpy2dss.c: fix OCCURS and structure offsets, add -k,--keep
 | |
| 04-09-21 jcl.c: add -s,--subdir
 | |
| 04-09-20 jcl.tst: handle "export JCL_AUTO_JOB=job" change
 | |
| 04-09-15 jcl.c: fix optset() to honor jcl->roflags
 | |
| 	 jcl.tst: add * prefix match tests
 | |
| 04-08-24 cpy2dss.c: handle REDEFINES => <UNION>, add --offsets
 | |
| 04-08-06 split cmd/jcl => lib/libjcl + cmd/jcl
 | |
| 04-06-18 jcl.c: JCL_LISTDATA => JCL_LISTINPUTS|JCL_LISTOUTPUTS
 | |
| 	 jcl.c: --list=dd => --list=inputs or --list=outputs
 | |
| 	 cpy2dss.c: add --bytemask
 | |
| 04-06-09 jcl.c: default JCL_MAPFILE is now optional
 | |
| 04-05-31 cpy2dss.c: fix structure pop logic, add --sized
 | |
| 04-05-20 cpy2dss.c: fix --variable to *also* emit <VARIABLE>1</>
 | |
| 04-05-19 cpy2dss.c: fix --variable to emit terminator and width
 | |
| 04-05-14 cpy2dss.c: add --terminator=char and --variable
 | |
| 04-05-06 cpy2dss.c: handle nested structs and out of sync level indices
 | |
| 04-05-04 cpy2dss.c: promote from test area
 | |
| 04-02-29 jcl.tst: add empty PARM test
 | |
| 03-11-14 jcm.c: add from control-m experiments
 | |
| 03-10-20 --map=prefix by default, --map=- to disable
 | |
| 	 --map file now a sequence of ops: "map" and "set" for now
 | |
| 03-10-15 add --map=prefix-map
 | |
| 03-10-10 more tests
 | |
| 03-10-08 reliable -x output with regression tests
 | |
| 03-10-01 first code
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="libast changes">libast changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 12-07-25 pathprobe.c: fix read() loop to handle EINTR
 | |
| 12-06-28 vmalloc/malloc.c: use sbrk() unless VMALLOC_OPTIONS=mmap or asoinit(0,0,0)!=0 (workaround until next malloc update)
 | |
| 12-06-28 aso/aso.c: asoinit(0,0,0): 0: no specific init, 1: app initialized
 | |
| 12-06-27 sfio/sfvprintf.c: allow { L* z* } aliases for I* -- posix will probably pick one
 | |
| 12-06-26 regex/regnexec.c: fix uninitialized variable reference
 | |
| 12-06-26 comp/setlocale.c: utf8_wctomb() now calls (the correct) wc2utf8()
 | |
| 12-06-25 string/chresc.c: accept \u[U+<hex>] and \u{U+<hex>}
 | |
| 12-06-24 regex/regcomp.c: mb [^...] must be marked "complicated"
 | |
| 12-06-20 port/astconf.c: increase DEBUG_astconf error debug levels (may leach into rt output)
 | |
| 12-06-18 sfio/_sfopen.c: add 'e' => O_CLOEXEC
 | |
| 12-06-18 features/fcntl.c: add #define O_CLOEXEC 0 if not defined
 | |
| 12-06-13 features/float: handle __mips c99 peculiarities
 | |
| 12-06-13 features/standards: handle __MACH__ posix peculiarities
 | |
| 12-06-08 sfio/sfclose.c,sfmode.c: sfclose() for sfopopen() stream returns sh-compatible $?
 | |
| 12-06-08 comp/strtold.c: fix header botch that missed ldexpl() prototype -- ouch
 | |
| 12-06-06 misc/proclib.h: partially undo <ast_standards.h> for leaked ancient bsd-isms
 | |
| 12-05-31 misc/proclib.h: <ast_standards.h> for linux undefined struct mmsghdr*
 | |
| 12-05-31 error.h: add ERROR_PIPE(errno) to handle EPIPE and ECONNRESET
 | |
| 12-05-31 Makefile: don't install $(INCLUDEDIR)/prototyped.h: src/cmd/INIT does it
 | |
| 12-05-31 regcomp.c: add (?V...) ~(V...) REG_REGEXP switch
 | |
| 12-05-28 regex: regoff_t in => ssize_t via api 20120528
 | |
| 12-05-21 features/asometh: split intrinsic and method tests so code only instantiated in aso.c
 | |
| 12-05-21 comp/strdup.c: use oldof() since mem overwritten by string copy
 | |
| 12-05-18 misc/stk.c: fix access of moved realloc() data
 | |
| 12-05-15 misc/optget.c: #? option with no value should have opt_info.num==0
 | |
| 12-05-11 misc/stk.c: fix memmove() read of 1 uninitialized byte
 | |
| 12-05-11 regex/regcoll.c: avoid memcpy() to self
 | |
| 12-05-01 port/astconf.c: fix astconflist() to list standard minmax value if defined
 | |
| 12-04-26 sfio/sftmp.c: fix memory leak due to inadvertent SF_STATIC copy
 | |
| 12-04-26 sfio/sfwrite.c: fix subtle memory leak (with Vmlast or Vmpool or freeBSD malloc)
 | |
| 12-04-26 vmalloc/vmbest.c: SIGSEGV overcommit check for __linux__ only
 | |
| 12-04-25 vmalloc: add _vmfd() for private close-on-exec fds
 | |
| 12-04-23 sfio_t.h: change getr to 32 bits to prepare for UTF-8 delimiters
 | |
| 12-04-23 features/signal.c: add SIGSTKFLT
 | |
| 12-04-17 regex/regcomp.c: fix (E:...) vs (E)... scoping
 | |
| 12-04-11 features/sys: add aix's _LARGE_FILE_API to the _LARGEFILE(64)?_SOURCE mix -- anyone else?
 | |
| 12-04-11 include/cmdarg.h,misc/cmdarg.c: (finally!) add a discipline with Cmdrun_f
 | |
| 12-03-28 vmalloc: int vs [s]size_t cleanup
 | |
| 12-03-27 sfio: fix #if logic that caused syntax errors (on 64 bit uwin)
 | |
| 12-03-10 misc/optget.c: HELP_index for "PLUGIN" too
 | |
| 12-02-29 include/shcmd.h: PLUGIN_VERSION 20111111 for cdt disc/meth change
 | |
| 12-02-29 comp/spawnveg.c: fix sigcritical() to include waitpid() for internal child
 | |
| 12-02-29 malloc.c: make __malloc_hook initialization thread safe
 | |
| 12-02-24 comp/iconv.c: fix winix UTF-8 vs UCS-2 over-conversion
 | |
| 12-02-24 astsa/*.h: clean up header guards
 | |
| 12-02-24 astsa/astsa.omk: clean up standalone old make makefile interactions
 | |
| 12-02-21 misc/cmdarg.c: fix bug that set argv[0]
 | |
| 12-02-10 sfvprintf.c: fix 1 byte too long buffer access
 | |
| 12-02-07 malloc.c/features/vmalloc: add gnu __malloc_hook tests
 | |
| 12-02-06 vmmopen.c: fix ALIGN vs sys/param.h macro conflict
 | |
| 12-02-02 astlicense.c: add license.component for component-specific licenses
 | |
| 12-01-31 spawnveg.c: fix transient bug that made invalid setpgid() call
 | |
| 12-01-27 pathpath.c: fix buffer size math when internal allocation requested
 | |
| 12-01-24 malloc.c: fix _vmkeep() bug that did not return previous state
 | |
| 12-01-23 malloc.c: add VMALLOC_OPTIONS=break to try sbrk() block allocator first
 | |
| 12-01-21 astlicense.c: option style only overrides default license.type
 | |
| 12-01-18 malloc.c: disable multiple regions for tracing or !vmbest or ASO_SIGNAL
 | |
| 12-01-12 sfpkrd.c: add __sun I_PEEK+rsh runtime workaround
 | |
| 12-01-10 shcmd.h: void* => Shbltin_t*
 | |
| 12-01-10 tmxdate.c: handle { n>=1000 } TM_PARTS
 | |
| 11-12-21 plug up some memory links -- thanks mhlavink
 | |
| 11-12-21 vmprivate.c: enclose VM_NONMEM exception in CLRLOCK(vm,0) ... SETLOCK(vm,0)
 | |
| 11-12-13 aso: in -lposix for uwin, not -last -- just like vmalloc
 | |
| 11-12-13 sfpoll.c: all streams SF_IOINTR => don't ignore EINTR
 | |
| 11-12-13 sfdcslow.c: set SF_IOINTR
 | |
| 11-12-09 malloc.c: add _vmkeep() for setlocale() intercept _SYS_setlocale_free_OK
 | |
| 11-12-04 sfio: _Sfmaxr=0 (unlimited) by default; use ulimit -M|-d or SFIO_OPTIONS
 | |
| 11-12-01 aso: sync to new api
 | |
| 11-11-11 optget.c: move .TH to the top for --nroff to get our macros first
 | |
| 11-11-11 aso,cdt,vmalloc: resync with kpv
 | |
| 11-11-11 cdt: preserve bits and Dt_link_t for CDT_VERSION < 20111111
 | |
| 11-10-24 sfvprintf.c: %.-ns truncate from left to n chars
 | |
| 11-10-21 sfvprintf.c: fix %0s (no width) core dump
 | |
| 11-10-10 aso: add _WIN32 support
 | |
| 11-09-26 vmalloc: sync with kpv
 | |
| 11-08-29 features/{dirent,wchar,wctype}: eliminate #include with no header
 | |
| 11-08-25 #pragma prototyped tweaks -- sun4 is dead, long live sun4
 | |
| 11-08-25 ftwalk.c: FTS_SLNONE => FTW_SL
 | |
| 11-08-11 features/wchar: fix #include _nxt_wchar for K&R C
 | |
| 11-08-04 optget.c: tweak --html rendering
 | |
| 11-07-24 mime.c: add %(default)[st] default if arg == ""
 | |
| 11-07-21 setlocale.c: fix debug locale to treat "<<" as two single byte chars
 | |
| 11-06-14 spawnveg.c: pgid -1: new session -2: setpgrp()&&tcsetpgid()
 | |
| 11-06-14 pathprog.c: add darwin _NSGetExecutablePath
 | |
| 11-05-14 features/common,features/align.c: { _X86_ _X64_ } conditionals for generic uwin
 | |
| 11-05-13 tm/tminit.c: tweak tzname[] prototype
 | |
| 11-05-09 astlicense.c: add ". file" parent-relative include and depth 4 input stack
 | |
| 11-05-05 cmdarg: update to cmdopen_20110505 api
 | |
| 11-05-03 sfio/sfclose.c: make sure close() errors propagate to sfclose() return value
 | |
| 11-04-20 port/astlicense.c: add { id name } keys
 | |
| 11-04-15 fmtdev.c: fix to work for non-{blk,chr} special
 | |
| 11-04-12 stk: change size args to size_t and stseek() offset to ssize_t
 | |
| 11-04-12 sfio: sync with kpv to optimize large SF_STRING sfputr() buffer allocation
 | |
| 11-03-28 misc/fts.c: fix FTS_SLNONE logic to set it when it should!
 | |
| 11-03-17 misc/stk.c: fixed bug that could delete an active stack frame
 | |
| 11-03-10 sfio/sfvprintf.c: add %0<width>s to preserve <width> trailing chars in string arg
 | |
| 11-03-09 misc/magic.c: add %d...%s where if %d==1 then %s=="" else %s=="s"
 | |
| 11-03-09 misc/magic.tab: add windows ico
 | |
| 11-02-08 misc/stk.c: change STK_FSIZE to (1024*sizeof(char*)) for 64 bit normalization
 | |
| 11-02-02 sfio/sfmode.c: don't call sfsetbuf() on unbuffered stream to make it unbuffered
 | |
| 11-02-02 features/wchar: handle hp.ia64 va_list interactions
 | |
| 11-02-02 comp/omitted.c: fix mismatch between stat() vs _stat()
 | |
| 11-01-31 std/wctype,features/wctype: add to handle <wchar.h> interactions
 | |
| 11-01-28 add -lw for ancient sunos
 | |
| 11-01-28 include/magic.h,misc/magic.c: add MAGIC_ALL
 | |
| 11-01-27 tm/tmxfmt.c,tmpoff.c: %_z for SHH:MM
 | |
| 11-01-25 features/wchar: change <wctype.h> <wchar.h> ordering
 | |
| 10-12-24 sfstrtof.h: fix thousand grouping bug that did not check last group
 | |
| 10-12-21 pathkey.c: add win32 { /32 /64 } preroot to hash
 | |
| 10-12-09 pathprog.c: handle intermediate path != '* and fix invalid pathpath() call
 | |
| 10-12-01 astconf.c: fix look.standard undefined variable reference
 | |
| 10-12-01 sfset.c: SF_LINE|SF_WCWIDTH => no need for sfsetbuf() to call isatty()
 | |
| 10-12-01 sfsetbuf.c: cache /dev/null <dev,ino> to cut down /dev/null stat()'s
 | |
| 10-12-01 optget.c: delay dictionary initialization until needed
 | |
| 10-11-30 malloc.c: drop { VMDEBUG VMETHOD VMPROFILE VMTRACE } env checks
 | |
| 10-11-30 port/astconf.c: eliminate esaccess() calls for OP_universe checks
 | |
| 10-11-24 regcomp.c: [[=]=]] must at least match itself in non-C locales
 | |
| 10-11-23 glob.h,glob.c: add GLOB_GROUP => REG_SHELL_GROUP
 | |
| 10-11-20 glob.c: handle mode switches across /
 | |
| 10-11-19 regcomp.c: REG_SHELL => REG_CLASS_ESCAPE
 | |
| 10-11-16 vmalloc.h: add VMFL tracing to vmstrdup()
 | |
| 10-11-16 ast.h: simplify VMDEBUG _BLD_DEBUG and VMFL logic
 | |
| 10-11-12 tm/tmlocale.c: ast TM_* extensions default to C locale
 | |
| 10-11-10 regex/regnexec.c,vmalloc/vmstat.c: eliminate strict-aliasing puns
 | |
| 10-10-20 misc/translate.c: change debug translation to drop " in (a,b,c,"d")
 | |
| 10-10-10 misc/glob.c: drop ancient D_FILENO(d)!=0 test and trust readdir()
 | |
| 10-10-06 misc/translate.c: fix "debug" locale logic
 | |
| 10-10-04 misc/magic.c: fix magic() skip check to honor the continuation
 | |
| 10-10-04 regex/regcoll.c: add wchar_t* args to regcollate(), drop ucs name lookup
 | |
| 10-09-28 comp/setlocale.c: add utf8_wctomb()
 | |
| 10-09-28 string/chresc.c,regex/regcoll.c: fix \S[.X.] (\C[.X.] never worked!)
 | |
| 10-09-24 string/chresc.c: \Cc for control c, \S[.X.] for collating symbol X
 | |
| 10-09-24 string/chresc.c: { <JOIN>c \ } deprecated
 | |
| 10-09-22 regex/regcomp.c: fix off-by-one collation class allocation bug
 | |
| 10-09-20 regex/regclass.c: fix CTYPES off-by-one bug
 | |
| 10-09-14 comp/conf.sh: const int conf_elements, prefix_elements;
 | |
| 10-09-08 add features/sizeof => ast_sizeof.h
 | |
| 10-08-31 comp/getopt[l].c: export functions for dlls
 | |
| 10-08-25 port/lc.c: add features/locale check for canonical UTF-8 spelling
 | |
| 10-08-20 include/ast.h: add export plugin_version() prototype
 | |
| 10-08-20 comp/conf.tab: add SF_BUFSIZE
 | |
| 10-08-11 misc/conformance.c: conformance(0,0) => "standard"
 | |
| 10-08-11 misc/conformance.c: check ast_env_serial for dynamic astconf() changes
 | |
| 10-08-11 port/lcgen.c: remember to fudge Table_t.count for synthesized entries
 | |
| 10-08-04 include/ast.h,comp/setlocale.c: add { debug C.UTF-8 } mbalpha() mbwidth()
 | |
| 10-08-02 misc/translate.c: add NLSPATH message cache check 
 | |
| 10-07-29 string/fmtint.c: fix nasty bug that rendered "1000" as "1"
 | |
| 10-07-27 setlocale,lsgen,localeconv: handle C vs C_EU decimal thousands sep
 | |
| 10-07-26 misc/optget.c: fix interaction with nested plugin/builtin calls
 | |
| 10-06-29 string/strtoi.h: strton() multiplier 1 => power of two suffix
 | |
| 10-06-28 features/wchar: handle systems that require __va_list => va_list
 | |
| 10-06-28 comp/conf.tab: another PID_MAX tweak -- default to 99999 for most
 | |
| 10-06-28 port/astconf.c: lone "CONFORMANCE = standard" => all defaults standard
 | |
| 10-06-25 misc/optget.c: avoid sfprints() call during initialization
 | |
| 10-06-01 features/api, ast_api.h: formalized forwards/backwards api compatibility
 | |
| 10-06-01 _AST_API=20100601: add size_t args for all path*() output buffers
 | |
| 10-06-01 comp/setlocale.c: handle C.UTF-8 test locale
 | |
| 10-06-01 include/mc.h: add size_t to mcfind() for result buffer (internal api)
 | |
| 10-06-01 use strlcpy() instead of strncpy()
 | |
| 10-05-28 include/ast_version.h: add AST_PLUGIN_VERSION for dllplugin()
 | |
| 10-05-28 include/shcmd.h: add SH_PLUGIN_VERSION for dllplugin()
 | |
| 10-05-28 misc/conformance.c: add conformance(3)
 | |
| 10-05-28 misc/optget.c: add [(id1|id2)...] conformance("id1|id2",0) conditionals
 | |
| 10-05-25 include/sfhdr.h: adjust SF_NMAP according to _ptr_bits
 | |
| 10-05-25 include/shcmd.h: add sh_builtin() macro for lib_init() table initialization
 | |
| 10-05-21 misc/optget.c: --html \bfoo::bar([[:digit:]][[:upper:]]*) => foo-bar.html
 | |
| 10-05-15 include/proc.h,misc/procopen.c: add PROC_ORPHAN
 | |
| 10-05-09 misc/optget.c: add --???MAN[section] --???SECTION
 | |
| 10-05-07 sfio,stdio: fix all snprintf() variants to handle buf==0 and/or n==0
 | |
| 10-05-04 string/fmtesc.c: add mb iswsoace() and iswcntrl() quoting checks
 | |
| 10-05-03 fix LC_MESSAGES catalog lookup bugs, check for $set==3, accept $set==1
 | |
| 10-04-30 string/chresc.c: add chrexp() for FMT_EXP_*
 | |
| 10-04-30 string/stresc.c: add strexp() for FMT_EXP_*
 | |
| 10-04-30 string/chresc.c: fix \uXXXXY bug that consumed Y
 | |
| 10-04-22 misc/optget.c: check for html entities in <A name="...">
 | |
| 10-04-22 misc/getcwd.c: add features/syscall check for SYSGETCWD() { linux solaris }
 | |
| 10-04-22 string/stresc.c: wide chars absent locale guidance default to UTF-8
 | |
| 10-04-12 port/mnt.c: favor bsd getfsstat() over getmntinfo()
 | |
| 10-04-11 string/strtoi.h: k (1000) and ki (1024) now differentiated
 | |
| 10-04-10 misc/recstr.c: fix 'd[delimiter]' parse
 | |
| 10-04-08 include/vmalloc.h,vmalloc/vmstat.c: add Vmstat_t.mode region mode bits
 | |
| 10-04-05 misc/fts.c: drop 1997-01-07 fts_open()=0 is one file and stat() fails
 | |
| 10-04-05 misc/optget.c,optlib.h: add Optpass_t.release for --nroff .TH
 | |
| 10-04-02 misc/optget.c: fix $'[-n?..]' --version bug
 | |
| 10-04-02 regex/regcomp.c: ~(X) => REG_EXTENDED|REG_AUGMENTED, ~(PU) instead of ~(U)
 | |
| 10-03-24 misc/procopen.c: add PROC_FD_CTTY(fd)
 | |
| 10-03-24 path/pathtemp.c: fix pointer => int casts
 | |
| 10-03-15 regex/regcache.c: fix 1 byte buffer overflow (didn't count trailing  )
 | |
| 10-03-08 features/tvlib: fix utimensat probe to include all macros/structs
 | |
| 10-03-07 features/lib: change stream_peek to test pipes only
 | |
| 10-03-07 string/strelapsed.c: fix next char return overrun
 | |
| 10-03-06 tm/tvtouch.c: use runtime fallback if utimensat() fails with ENOSYS
 | |
| 10-03-05 path/pathtemp.c: add pfx /seed for regression testing
 | |
| 10-03-04 vmalloc/vmwalk.c: add user supplied handle arg
 | |
| 10-03-04 path/pathtemp.c: properly handle mktemp()-style *+(X) templates
 | |
| 10-03-03 include/ast_getopt.h: remove NULL guard - _AST_GETOPT_H now handles it
 | |
| 10-02-24 comp/getopt.h: fix ast_std.h interactions
 | |
| 10-02-24 vmalloc/malloc.c: empty { VMALLOC_OPTION VMDEBUG ... } => no debug!
 | |
| 10-02-02 string/base64.c: fix corner case output buffer overflow
 | |
| 10-02-02 features/fs: sys/mnttab.h requires stdio.h on some systems!!
 | |
| 10-02-01 misc/optget.c: uppercase --html heading -- doh
 | |
| 10-01-29 misc/optget.c: [+NAME?...] overrides error_info.id for >= STYLE_man
 | |
| 10-01-25 vmalloc/vmprivate.c: fix seg ptr initialization bug (24 years old!!)
 | |
| 10-01-20 misc/optget.c: handle nested {...} rendering
 | |
| 10-01-20 misc/state.c: add ast.version for runtime api version
 | |
| 10-01-20 port/astconf.c: "_AST_VERSION" now returns ast.version
 | |
| 10-01-20 include/ast_std.h: add ast.version for runtime api version
 | |
| 10-01-19 astlicense.c: add epl
 | |
| 10-01-01 vmalloc: VMALLOC_OPTIONS env var for all runtime options
 | |
| 10-01-01 include: change some <ast.h> refs to less intrusive <ast_*.h>
 | |
| 10-01-01 setlocale.c,translate.c,fmterror.c: AST_LC_internal retains prev state
 | |
| 10-01-01 comp/setlocale.c: AST_LC_setenv defers to LC_ALL (for sh)
 | |
| 10-01-01 ast_std.h: add { AST_LC_internal AST_LC_setenv }
 | |
| 09-12-24 comp/setlocale.c: fix setlocale(LC_ALL,"") when already initialized
 | |
| 09-12-17 misc/optget.c: handle mixed solaris usage="x:f:(in)yo:(out)"
 | |
| 09-12-11 regex/regcomp.c: posix semantics for [z-a]
 | |
| 09-12-11 regex/regcomp.c: fix BRE/ERE ^^ logic
 | |
| 09-12-11 regex/regcomp.c: fix regcomb() for REG_LEFT|REG_RIGHT
 | |
| 09-12-11 regex/regcomp.c: bm complete=0 if REX_END
 | |
| 09-12-11 comp/sigflag.c: add with npt check in features/sig.sh
 | |
| 09-12-11 tm/tminit.c: fix _tzset_environ logic
 | |
| 09-12-09 tm/tmlocale.c: include "ast_nl_types.h" to pull nl_langinfo in!
 | |
| 09-12-04 features/options: add "opt map-libc" check
 | |
| 09-12-03 tm/tmxdate.c: fix 'next month final day' for dec -> jan
 | |
| 09-11-21 misc/magic.tab: add gimp XCF
 | |
| 09-11-20 vmalloc/vmtrace.c: add pid to assertion disgnostics
 | |
| 09-11-11 regex.h,regcomp.c: add REG_CLASS_ESCAPE,  inside [...] literal by default
 | |
| 09-11-03 regex/regcache.c: change to variable length pattern strings
 | |
| 09-10-28 include/error.h: fix ERROR_translate() arg parens
 | |
| 09-10-26 port/lcgen.c,comp/setlocale.c: handle LANG init after LC_* already defined
 | |
| 09-10-05 _sfopen.c: add but ignore 'F' flags for stdio compatibility
 | |
| 09-09-28 fts.h,ftwalk.h,fts.c: promote { namelen pathlen level } to (s)size_t
 | |
| 09-09-28 locales: add AST_LC_LANG for $LANG
 | |
| 09-09-28 setlocale.c: fix logic for dynamic { LANG LC_ALL LC_* } changes
 | |
| 09-09-17 include/sfio.h,sfio/sfwalk.c: add sfwalk()
 | |
| 09-09-09 sfio/sfputr.c: add SIGPIPE hang fix
 | |
| 09-08-24 sfio/sfreserve.c: fix SF_UNBOUND logic with pushed streams
 | |
| 09-08-18 include/ast_std.h,ast.h: add ast.mb_sync to sync mbchar() after error
 | |
| 09-08-17 comp/setlocale.c: add AST_LC_utf8 and { utf8_mbtowc() utf8_mblen() }
 | |
| 09-08-11 comp/setlocale.c: treat "en"/"en_US" AST_LC_MESSAGES as "C"/"POSIX"
 | |
| 09-08-10 vmalloc/vmhdr.h: add user-defined _AST_PAGESIZE and computed VMHEAPINCR
 | |
| 09-08-09 comp/conf.tab: add NPROCESSORS_MAX
 | |
| 09-07-29 astlicense.c: fix first name=value logic error
 | |
| 09-07-22 string/fmtip6.c: don't drop trailing 0 in 44::1:0:0
 | |
| 09-06-30 port/astconf.c: standard PATH_RESOLVE is "physical" (not "metaphysical")
 | |
| 09-06-19 vmalloc: sync with kpv
 | |
| 09-06-19 include/shcmd.h: add sh_context(p) cast
 | |
| 09-06-11 misc/magic.tab: differentiate pc 386 32/64 bit dll/exe/obj
 | |
| 09-06-06 port/astconf.c: fix look->name null pointer reference
 | |
| 09-06-05 port/astconf.c: fix 'UNIVERSE = value' synthesize logic
 | |
| 09-05-25 tm/tmxduration.c: add
 | |
| 09-05-08 comp/syslog.c: add _UWIN /var/log/syslog preference
 | |
| 09-05-01 comp/setlocale.c: fix _UWIN intercepts to return NiL on unknown locales
 | |
| 09-04-27 sfio/sfpool.c: fix bug that did not return pool on delete
 | |
| 09-04-22 include/regex.h,regex/regcomp.c: add REG_REGEXP <regexp.h> compatibility
 | |
| 09-04-15 tm/tmxdate.c: handle "4th thursday in november"
 | |
| 09-03-31 string/strvcmp.c,string/strnvcmp.c: add version strcmp(3)
 | |
| 09-03-31 string/strpcmp.c,string/strnpcmp.c: add path prefix strcmp(3)
 | |
| 09-03-29 misc/optget.c: clean up num = number casts
 | |
| 09-03-04 tm/tmxmake.c: add tmxtm() with zone override
 | |
| 09-03-03 tm/tmxfmt.c: add %(...)<c>, specifically %(...)z for output zone
 | |
| 09-02-22 tm/tmxdate.c: add iso P... durations
 | |
| 09-02-02 path/pathprog.c: add
 | |
| 09-02-02 misc/opthdr.h,optget.c: fix flags mixup, handle old '-' as option
 | |
| 09-02-02 sfio/sfprints.c: fix sfvaprints() return value to not count trailing ' '
 | |
| 09-02-02 misc/cmdarg.c: handle !defined(ARG_MAX)
 | |
| 09-02-02 port/astconf.c: fix UNIVERSE overwrite of null[] value!
 | |
| 09-01-31 features/sys: drop header sys/localedef.h
 | |
| 09-01-28 include/fs3d.h,misc/fs3d.c: mount() => fs3d_mount() for diff std prototypes
 | |
| 09-01-14 misc/fts_open.c: delay top list reorder until first fts_read()
 | |
| 09-01-14 include/ls.h: LS_W_INUMBER => 9 to accommodate large st_ino
 | |
| 09-01-14 misc/optget.c: expand STYLE_usage input text
 | |
| 09-01-09 features/uwin,stdio/_stdfun.c: iffe for _p__iob and __p__iob
 | |
| 09-01-09 misc/magic.tab: add ISO filesystem image entries
 | |
| 09-01-07 string/strtoi.c: strtol() etc. do not consume [lLuU] suffix -- thanks jkf
 | |
| 09-01-07 sfio/sfstrtof.h: strtod() etc. do not consume [fFlL] suffix -- thanks jkf
 | |
| 09-01-05 string/strlcat.c: fix logic to match docs (not that easy)
 | |
| 08-12-30 tm/tmxdate.c,include/tm.h: add TM_WORK { "workday" "working" "work" }
 | |
| 08-12-28 sfio/sfcvt.c: fix 'a' format rounding
 | |
| 08-12-21 tm/tmdata.c: add 2008-12-31+23:59:60-0000 leap second event
 | |
| 08-12-19 tm/tmxdate.c: check for dates near the epoch rolling back to the future
 | |
| 08-12-19 tm/tmxfmt.c: change %s for now==0 to be the epoch
 | |
| 08-12-07 include/ast_std.h,misc/getenv.c: no _ast_getenv for uwin ast54 compatibility
 | |
| 08-12-07 tm/tmxfmt.c: add %[_][EO]K for [space pad] [full|long] iso
 | |
| 08-12-07 sfio/sfvscanf.c: fix ok[] short by one allocation
 | |
| 08-12-07 comp/setlocale.c: fix off by one composite initialition loop test
 | |
| 08-12-07 path/pathkey.c: fix off by one loop test
 | |
| 08-12-04 vmalloc/vmbest.c: catch sbrk() wraparound
 | |
| 08-12-04 comp/spawnveg.c: clean up attrs on failure too
 | |
| 08-11-04 regex/regcomp.c: fix locale [!-...] and [^-...] re-initialization
 | |
| 08-11-04 stdio: add flockfile.c ftrylockfile.c funlockfile.c
 | |
| 08-10-24 port/astconf.c: handle multiple/trailing '/' in universe initialization
 | |
| 08-09-10 misc/magic.c: handle old vcodex() indices
 | |
| 08-09-10 sfio/sfvprintf.c: drop SF_WCWIDTH, use %Lc or %Ls instead
 | |
| 08-09-05 Makefile: ibm.risc joins the :NOOPTIMIZE: crowd
 | |
| 08-09-04 regex/regnexec.c: fix nested delimiter match beyond end of subject
 | |
| 08-08-20 misc/fts.c: fix st_nlink stat() optimization logic
 | |
| 08-08-19 sfio/sfpkrd.c: workaround macosx recv(PEEK) data consumption on non-socket
 | |
| 08-08-19 strn?tol?d: handle long double with smaller exponent range than double
 | |
| 08-08-18 sfio/sfcvt.c: eliminate excessive multiplies and integral overprecision
 | |
| 08-08-11 tm/tmxfmt.c: handle %10N and %010N
 | |
| 08-08-06 include/shcmd.h: add 'int invariant;' for builtin invariant arg count
 | |
| 08-08-05 features/ndbm: favor sleepycat ndbm compatibility
 | |
| 08-07-21 include/glob.h,misc/glob.c: GLOB_STARSTAR only forces lstat on chdir
 | |
| 08-07-17 sfio: sync with kpv
 | |
| 08-07-17 misc/optget.c: call astwinsize() each time terminal width required
 | |
| 08-07-16 sfio/sfvscanf.c: fix %% to skip leading space per posix
 | |
| 08-07-16 vmalloc/vmbest.c: add VMCHECK=m, VM_mmap to favor mmap() alloc
 | |
| 08-07-16 features/stdio,stdio/f(read|write).c: size_t return value!! ouch
 | |
| 08-06-24 tm/tmxfmt.c: fix %z to handle tm_isdst -- doh
 | |
| 08-06-24 misc/astintercept.c,misc/getenv.c: split from misc/setenviron.c
 | |
| 08-06-17 misc/setenviron.c: add { astintercept() getenv() }
 | |
| 08-06-09 tm/tmlocale.c: use _DATE_FMT if defined for TM_DEFAULT
 | |
| 08-06-06 misc/optget.c: handle sub-component about details
 | |
| 08-06-04 misc/optget.c: fix [-n?..#0093; version parse
 | |
| 08-06-04 include/debug.h,misc/debug.c: merge with kpvdebug.h
 | |
| 08-06-02 features/ndbm: add to tame dbmlib.iffe replication
 | |
| 08-06-01 comp/resolvepath.c,realpath.c: fix resolvepath() return value type
 | |
| 08-05-22 tm/tmxdate.c: fix a few ordinal/last/this/next bugs
 | |
| 08-05-18 string/fmtre.c: fix omitted stack var initialization bug
 | |
| 08-05-14 regex/regcomp.c,regcoll.c: fix UTF-8 collation sequence logic
 | |
| 08-05-11 tm/tmxfmt.c: :NOOPTIMIZE:, otherwise %Q/../../ fails
 | |
| 08-05-01 tm/tmxdate.c: mon 1..12 => mon[13] -- doh
 | |
| 08-04-30 misc/glob.c,reegex/regcomp.c: ~(R) => ~(O) to avoid pcre clash
 | |
| 08-04-24 port/astconf.c: 'name = value' does assignment without system init
 | |
| 08-04-15 port/astconf.c: SC#N treated like 'SC(N)'
 | |
| 08-04-14 misc/optget.c: clean up nroff output
 | |
| 08-04-01 port/astconf.c: add RELEASE => /proc/version fallback
 | |
| 08-03-30 misc/optget.c: [-n]... to enable -number & +number options
 | |
| 08-03-06 misc/optget.c: ---* and +++* are now operands
 | |
| 08-03-06 misc/errorx.c: fix old error_info.translate workaround
 | |
| 08-02-05 regex/regcomp.c: allow REG_SHELL {,n}... => {0,n}...
 | |
| 08-02-27 misc/stk.c: top element during allocation relocated to top 
 | |
| 08-02-18 include/ip6.h,string/strtoip6.c,fmtip6.c: add ipv6 addr support
 | |
| 08-02-14 regex/regsubexec.c: fix null match (tricky)
 | |
| 08-02-14 regex/regsubcomp.c: fix SRE to match ksh
 | |
| 08-02-11 comp/spawnveg.c: return proper errno on [v]fork() failure
 | |
| 08-02-11 tm/tmxdate.c,tmdata.c: handle more ISO 8601:2000 forms
 | |
| 08-02-02 regex/reglib.h: add REGMULTIREF to REG_COMP
 | |
| 08-02-02 string/strmatch.c: fix str="" pat="" sub values
 | |
| 08-01-31 comp/conf.sh,conf.tab: handle /bin/sh  in read data, redir subshell
 | |
| 08-01-18 misc/magic.tab: amd-x68, 64-bit => x86-64
 | |
| 08-01-18 string/strnton.c,strntonll.c: add
 | |
| 07-12-10 string/strelapsed.c: "0" is a valid elapsed time!
 | |
| 07-12-02 sfio/sfreserve.c: preserve SF_SHARE sfrd() via sfreserve(f,0,0)
 | |
| 07-11-21 comp/setlocale.c: add sjis_mbtowc() to work around [\~] translation
 | |
| 07-11-15 features/signal.c: RT(1) .. RT(MAX-1) => RTMIN+1 .. RTMAX-1
 | |
| 07-11-14 features/float: favor sscanf() due to gnu strto[l]d() nan bugs
 | |
| 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/conf.tab: 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/conf.sh: defer to systems without 'grep -q' -- sigh
 | |
| 07-04-20 comp/conf.sh: 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/conf.tab: 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/conf.tab,comp/conf.sh: add C/POSIX <stdint.h> symbols
 | |
| 07-03-28 misc/optget.c: fix l10n --?-
 | |
| 07-03-25 features/common: fix { ast_std.h ast_map.h stdint.h } logic
 | |
| 07-03-21 error.h: move from error_info to (*_error_data_)
 | |
| 07-03-21 misc/error.c: add errorctx() for error_info switching
 | |
| 07-03-21 option.h: move from opt_info to (*_opt_data_)
 | |
| 07-03-19 regex/regdecomp.c: fix REX_ONECHAR escapes and add REX_KMP
 | |
| 07-03-11 tm/tmxscan.c,regex/regnexec.c: fix strict-alias transgressions
 | |
| 07-02-27 comp/conf.sh: handle native getconf invalid numeric values
 | |
| 07-02-21 comp/conf.sh,comp/conf.tab: handle SSIZE_MAX vs _POSIX_SSIZE_MAX
 | |
| 07-02-20 sfio/sfvprintf.c: handle SF_WCWIDTH justification
 | |
| 07-02-14 features/common: cover <stdint.h>, move to int_(bits)_t
 | |
| 07-02-14 include/int.h: drop
 | |
| 07-02-14 include/sfio.h: add SF_WCWIDTH
 | |
| 07-02-12 comp/conf.sh: fix CONF_LIMIT bug that missed ULONG_MAX etc.
 | |
| 07-02-12 comp/conf.tab: *LONGLONG* => *LLONG* to match posix
 | |
| 07-02-12 features/float: *LONGLONG* => *LLONG* to match posix
 | |
| 07-02-12 port/astconf.c: handle CONF_LIMITS_DEF with no deferral
 | |
| 07-02-12 stdio/vasprintf.c: add trailing ' ' -- doh
 | |
| 07-02-04 string/fmtelapsed.c: fix naive multi month/year logic
 | |
| 07-02-02 misc/optget.c: add --??posix for getopts(1)/getopt(3)
 | |
| 07-01-26 string/chresc.c: use mbchar()
 | |
| 07-01-26 misc/optget.c: handle "o:-:" usage for old-style long options
 | |
| 07-01-22 sfio/sfdisc.c,sfpool.c: handle push on streams with pending peek
 | |
| 07-01-22 include/sfio.h: mv Sfieee_t to sfio/sfhdr.h
 | |
| 07-01-17 tm/tmxfmt.c: fix terminating nil logic which clobbered size-1
 | |
| 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/conf.sh: LC_ALL=C
 | |
| 06-12-26 tm/tmxdate.c: handle nn*.nnnn* == sec.ns
 | |
| 06-12-20 features/libpath.sh: 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/conf.tab: 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/conf.tab: 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,conf.tab: add CONF_DEFER_* for variable constants
 | |
| 06-11-11 port/astconf.c: validate path arg w.r.t. underlying calls
 | |
| 06-11-11 comp/conf.sh: fix S CONF_STANDARD bug, add D to defer to native
 | |
| 06-11-11 comp/conf.tab: 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/conf.sh,comp/conf.tab: play nice with getconf(1)
 | |
| 06-10-01 comp/conf.tab: SHELL default checks { _CS_PATH } X { ksh ksh93 sh }
 | |
| 06-10-01 comp/conf.sh: 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 uninitialized 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/libpath.sh: 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/conf.sh: 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
 | |
| 06-02-10 port/astconf.c: relax standard prefix filter
 | |
| 06-02-08 sfrd.c,sfsync.c: lock logic bug fix
 | |
| 06-02-01 port/astlicense.c: add { parent incorporation }
 | |
| 06-01-26 port/astconf.c: fix { LIBPREFIX LIBSUFFIX } length
 | |
| 06-01-06 features/lib: change _UNIV_DEFAULT probe to use cross{...}
 | |
| 06-01-04 misc/stk.c: fix n**2 realloc behavior
 | |
| 06-01-01 include/sfio.h: export { _Sfi _Sfmaxr }
 | |
| 05-12-13 string/chresc.c: handle \C-X => control-X, \M- => ESC
 | |
| 05-11-22 regex/regcache.c: add, convert string/strmatch.c to regcache()
 | |
| 05-10-06 string/ccmap.c: update ebcdic-u to be idempotent
 | |
| 05-09-28 vmalloc: snarf from kpv; fixes large block brk() thrashing
 | |
| 05-09-26 misc/magic.c,misc/magic.tab: handle latest vcodex header
 | |
| 05-09-12 misc/optget.c: reset opt_info.offset on error
 | |
| 	 string/strtoi.h: strton() '.' multiplier only if m>1
 | |
| 	 string/fmtesc.c: add unadvertized FMT_PARM for FMT_SHELL
 | |
| 05-09-09 string/fmtesc.c: fix FMT_SHELL logic w.r.t. [$`]
 | |
| 05-08-11 string/strerror.c: fix { sys_errlist sys_nerr } prototypes
 | |
| 05-08-03 sfio: snarf sfvaprints sfaprints
 | |
| 05-07-21 port/astconf.c: retain most recent synthesized lookup
 | |
| 05-07-20 sfio/sfsetbuf.c: default file io size now 64K on all systems
 | |
| 05-07-17 ccmap*: add microfocus cobol EBCDIC_U
 | |
| 05-06-29 regex/regcomp.c: fix the A & B inline flag logic
 | |
| 05-06-15 include/recfmt.h: add fs format flag to fmtrec()
 | |
| 05-06-14 error.c: add ERROR_OPTIONS { break count match }
 | |
| 05-06-07 features/stdio: drop FEATURE/limits to fix bootstrap circular dep
 | |
| 05-06-02 features/*,Makefile: drop vestigel iffeio.h bootstrap workaround
 | |
| 05-05-31 string/fmtbuf.c: unlock (spin) before each return -- doh
 | |
| 05-05-30 sfio/sfpkrd.c: work around macos 10.4 recv(MSG_PEEK) bug
 | |
| 05-05-27 regex: add REX_NEST (?%[S.][T.][OT])
 | |
| 	 magic.tab: amend bsd db magic
 | |
| 05-05-23 regex: REX_NEST (?%[D.][E.][L.][Q.][oc]...)
 | |
| 05-05-21 regex: state.fold[] is now locale specific -- doh
 | |
| 05-05-19 regex: add REX_NEST (?%\\()<>[]""...) %(...) nested match
 | |
| 05-05-15 recfmt.h: add recstr() reclen() fmtrec()
 | |
| 05-05-13 optget.c: allow boolean options to take numeric values
 | |
| 05-05-12 recfmt.c: add to recfmt.h, adjust Recfmt_t encodings
 | |
| 05-04-30 sfio: add sfmaxr(), default 64K
 | |
| 05-04-22 comp/omitted.c: fix magic() logic for files < 512 bytes
 | |
| 05-04-20 cdt: snarf update from kpv; void* Dt_t.user added
 | |
| 	 misc/error.c: library => ERROR_LIBRARY
 | |
| 05-04-19 regex/regcomp.c: handle REG_SHELL [^...] == [!...]
 | |
| 05-04-11 tm/tmxscan.c: handle yyy.mm.dd[-+.]hh.mm.ss.nnnnnn
 | |
| 05-04-07 regex/regnexec.c: fix out of bounds boundary check -- ouch
 | |
| 	 features/align.c: add jmp_buf to the alignment mix (ia64)
 | |
| 	 vmalloc/vmhdr.h: add jmp_buf to the alignment mix (ia64)
 | |
| 05-03-31 misc/optget.c: fix option { - _ } separator matching
 | |
| 05-03-30 misc/glob.c: eliminate superfluous GLOB_NOMATCH stat() calls
 | |
| 05-03-24 port/astwinsize.c: include <sys/ioctl.h> if possible
 | |
| 05-03-23 string/ccmap.c: add ebcdic-m mvs cobol table
 | |
| 05-03-11 comp/omitted.c: handle utime[s](const,const)
 | |
| 	 comp/conf.tab: fix linux PID_MAX probe
 | |
| 05-03-10 comp/setlocale.c: LC_* value "" => unset -- doh
 | |
| 	 misc/optget.c: reorder _PACKAGE_astsa code for msgcc
 | |
| 05-03-08 misc/optget.c: delete leading space in STYLE_nroff output
 | |
| 05-03-07 sfio/sfhdr.h: drop extern _sfdscan -- clashes with sfvscanf.c static
 | |
| 05-03-01 tm/tminit.c: add tmlocaltime() for tzset() getenv() override workaround
 | |
| 05-02-20 features/tvlib: tmsettimeofday only for systems that have settimeofday
 | |
| 	 features/float: fix mvs.s390 NaN tests
 | |
| 05-02-18 tm/tmxmake.c: fix <0 west of GMT bug that warped to 1800's -- wow
 | |
| 05-02-11 port/mnt.c: handle lynxos MOUNTED=/etc/fstab
 | |
| 05-02-08 features/float,sfio.h,sfcvt.c,sftable.c: add INF and fix NAN
 | |
| 05-02-04 features/lib: add _std_strtol (for lynxos)
 | |
| 	 include/ast_std.h: add _std_strtol tests
 | |
| 	 comp/strtod.c: #define S2F_function strtod
 | |
| 	 misc/signal.c: fix ancient bsd SV_INTERRUPT vs. SV_ABORT clash
 | |
| 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/magic.tab: 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/magic.tab: 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 conf.tab,conf.sh: update to align with standards
 | |
| 	 magic.tab: 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
 | |
| 04-03-17 features/stdio: no __FILE override for __CYGWIN_ (sys/reent.h clash)
 | |
| 	 sfio/sfhdr.h,sfio/sfsetbuf.c: lower sfmove() default buf size 4x
 | |
| 04-02-29 comp/omitted.c: move env trace after PATH fixup
 | |
| 	 comp/omitted.c: cygwin spawn _P_DETACH => _P_NOWAIT+setpgid(pid,0)
 | |
| 	 misc/optget.c: fix html mailto: match
 | |
| 	 port/astlicense.c: add type=test for fixed 2001 date
 | |
| 	 features/float: check local NaNQ first
 | |
| 	 vmalloc/vmhdr.h: fix _vmextern_ vm_truncate return type
 | |
| 	 misc/magic.tab: add elf s390 index=22
 | |
| 04-02-26 vmalloc: VMCHECK a:assertions c:arena-check w:warn-instead-of-abort
 | |
| 	 sfio/sfvscanf.c: fix extf arg selection
 | |
| 04-02-24 features/dirent: set nodefine to avoid ast_std.h _typ_off64_t undef
 | |
| 	 disc/sfkeyprintf.c: only case pattern must be ()[] balanced
 | |
| 04-02-14 include/sfio_t.h: add SF_DCDOWN, SFDCNEXT(), SFDCPREV()
 | |
| 04-02-13 string/strmatch.c: fix bug that didn't save one-time sub[] size
 | |
| 	 vmalloc: -g: export VMCHECK=1 enable malloc/free checks
 | |
| 	 vmalloc: -g: free(0) to check and disable malloc/free checks
 | |
| 	 vmalloc: -g: free(1) to check and enable malloc/free checks
 | |
| 04-02-11 Makefile: add :P=A: to conf and lcgen exec for cross-compile
 | |
| 	 regex: use MBSIZE() instead of mbsize() to grab 1 char on err
 | |
| 	 vmalloc/vmbest.c: updated to do more comprehensive DEBUG tests
 | |
| 04-02-04 sfio/sfraise.c: add sfraise(0,a,b) to iterate over all streams
 | |
| 04-02-01 vmalloc/vmbest.c: _BLD_DEBUG free(0) checks the arena
 | |
| 04-01-31 features/vmalloc: fix typo that missed _mmap_zero
 | |
| 04-01-23 string/strerror.c: handle real strerror() return value overwrite
 | |
| 04-01-11 path/pathpath.c: fix size vs. sizeof(buf) typo
 | |
| 03-12-22 misc/magic.tab: dos EXE tweaks
 | |
| 03-12-05 vmalloc: sync with kpv, adding exceptf announcements
 | |
| 03-12-04 port/astlicense.c: fix expand() loop sentinel bug
 | |
| 03-12-02 include/ast.h: mbchar() advances by 1 on mbtowc() error
 | |
| 	 misc/fts.c: increase MINNAME to 32
 | |
| 03-11-21 vmalloc/vmbest.c: export VMCHECK=1 to enable $(CC.DEBUG) vmcheck()
 | |
|          vmalloc/vmbest.c: export VMCHECK=2 to disable KPVCOMPACT
 | |
| 	 misc/magic.c: add { cobol copybook pl1 } and suffix preference
 | |
| 03-11-12 features/stdio: drop cuserid,getopt for SUSV3
 | |
| 03-11-11 vmalloc/*: merge kpv update -- this should stomp the compaction bug
 | |
| 03-10-23 comp/iconv.c: fix sfreserve lock fallback
 | |
| 03-10-20 sfio/_sfopen.c: add to allow user sfopen() intercept
 | |
| 03-10-17 regnexec.c: fix exec time REG_LEFT, \x.... => wctomb()
 | |
| 03-10-12 string/strtoi.h: fix strton '.' overconsumption
 | |
| 03-10-12 comp/iconv.c: identity is always (iconv_t)0
 | |
| 03-10-09 string/fmtesc.c: fix FMT_SHELL to check for all shell magic chars
 | |
| 03-10-01 port/astlicense.c: unknown authors copied verbatim (instead of ignored)
 | |
| 03-09-30 string/chresc.c: handle \u..., \x... consumes all trailing hex digits
 | |
| 	 string/stresc.c: \u... and \x... > UCHAR_MAX => wctomb()
 | |
| 03-09-29 fnv.h: add
 | |
| 03-09-23 modedata.c: table is for external modes, so no arch specific hacks
 | |
| 	 optget.c: fix option prefix match translation bug
 | |
| 	 optget.c: add `<length> <name>=<value> to optstr()
 | |
| 	 features/lib: add memcmp() test for sgi optimzation bug
 | |
| 03-09-22 regex.h,regcomp.c: add regncomp()
 | |
| 	 regclass.c: fix for loop dangling ; in regaddclass()
 | |
| 03-09-20 sftable.c,sfvprintf.c: fix SFFMT_CHAR handling to match extf api
 | |
| 03-09-19 sfmode.c: update release to kpv's
 | |
| 03-09-17 regcomp.c: add pedantic backref error checks
 | |
| 03-09-16 regnexec.c: exec time REG_LEFT => don't advance past initial position
 | |
| 	 regclass.c: add regaddclass() for user defined [:class:]
 | |
| 	 regexec.h: REG_VERSION_N2X, add redisc_t {re_map} ccode map
 | |
| 	 regstat.c: add regstat_t
 | |
| 03-09-11 optget.c: --n:=v sets opt_info.assign=':', opt_info.number enabled
 | |
| 03-09-09 disc/sfkeyprintf.c: *pn on lookup is arg separator; lookup "" arg too
 | |
| 03-09-05 optget.c: [f:l*?] preserves user long name past '*' in opt_info.name[]
 | |
| 03-09-03 sfstr.h: add sfstrpend() for #pending bytes in read buffer
 | |
| 03-08-25 regex: add REG_FIRST, optimize bm
 | |
| 	 features/lib: _AST_no_spawnveg==1 falls back to fork/exec
 | |
| 03-08-22 features/stdio,stdio/asprintf.c,stdio/vasprintf.c: add
 | |
| 03-08-21 path/pathnative.c,path/pathposix.c: interix updates
 | |
| 	 features/botched: add cygwin _stat => _stat64
 | |
| 03-08-15 include/ast.h: map out bsd strmode()
 | |
| 	 features/common: add interix _ast_intmax_t workarounds
 | |
| 	 misc/fs3d.c: 3d mount test now uses "" instead of NiL (or cygwin dumps)
 | |
| 03-08-11 string/fmtesc.c: fix optional quoting checks
 | |
| 	 tm/tmdate.c: fix > 1 year of seconds arithmetic
 | |
| 	 tm/tmfix.c: fix leap year adjustments
 | |
| 03-08-01 features/lib: beef up sock_peek test for interix
 | |
| 03-07-29 features/float: add -lm to frexp... test
 | |
| 	 Makefile: fix -lm astmath test sense
 | |
| 03-07-26 features/mem.c: favor _mem_sbrk over _mem_mmap_*
 | |
| 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
 | |
| 03-06-11 comp/*.c: reorder macro hding for mvs.390 and <ast_map.h> 
 | |
| 	 features/vmalloc: add _lib_brk and _lib_sbrk verification
 | |
| 	 include/ast_std.h,etc.: add _map_malloc for malloc => _ast_malloc
 | |
| 	 comp/conf.sh: fix SI_* and *_SI_* macro redefs
 | |
| 	 ast.h: VMDEBUG or _BLD_DEBUG enable <vmalloc.h> and VMFL tracing
 | |
| 	 vmalloc/vmtrace.c: _PACKAGE_ast __FUNCTION__ is a string
 | |
| 	 vmalloc/vmtrace.c: set trace file fd FD_CLOEXEC
 | |
| 	 vmalloc/vmbest.c: set /dev/zero mmap fd FD_CLOEXEC
 | |
| 	 features/mmap: fix ancient read() vs. mmap() time arithmetic typo
 | |
| 	 vmalloc/malloc.c: _AST_std_malloc==1 to force standard malloc
 | |
| 03-06-09 comp/omitted.c: add _imp__FUNCTION sybols for __CYGWIN__ static link
 | |
| 	 vmalloc/vmbest.c: handle systems with sbrk() but no brk()
 | |
| 03-06-04 port/astconf.c: drop non-standard diagnostics
 | |
| 03-06-03 comp/conf.sh: rework symbol collision logic
 | |
| 03-05-30 conf.tab,conf.sh,astconf.c: add <sys/systeminfo.h> sysinfo() SI_*
 | |
| 03-05-29 ccode.h: rework for extensibility, drop obsolete mematoe(), memetoa()
 | |
| 03-05-28 regex/*: recode to use isw*() directly when needed, is*() otherwise
 | |
| 03-05-27 features/vmalloc: fix _std_malloc test
 | |
| 03-05-25 misc/optget.c: fix optstr() ???* internal options
 | |
| 03-05-24 misc/optget.c: fix (ancient) argv null dereference
 | |
| 03-05-23 comp/getcwd.c: don't intercept on _WINIX -- unreliable st_ino
 | |
| 03-05-22 sfio/sfsprintf.c: n<0 => don't append ' '
 | |
| 03-05-18 misc/fts.c: re-stat FTS_DP to update nlink/times 
 | |
| 	 misc/fts.c: add FTSENT.stack to eliminate getlist() recursion
 | |
| 	 regex/ucs_names.h: use "..." catenation to placate some cc's
 | |
| 03-05-11 string/strtoi.h: handle "-" "+" "0x" "11#"
 | |
| 03-05-09 vmalloc/vmbest.c: large memory allocation tweaks
 | |
| 03-05-06 misc/optget.c: fix getopt_long() prefix==1 bug that missed short flags
 | |
| 03-04-27 comp/system.c: handle <ast_map.h>
 | |
| 03-04-24 vmalloc/vmmopen.c: drop dup <unistd.h>
 | |
| 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 => application/(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
 | |
| 02-12-15 include/error.h: errorcontext => Error_context_s (compatible til 2004)
 | |
| 02-12-06 misc/sigdata.c: add NoF(sigdadata) -- why nmake was uninterruptible!
 | |
| 02-12-03 comp/omitted.c,features/omitted: handle cygwin alarm() return botch
 | |
| 02-11-27 misc/swapop.c: op=3,size=4 => op=7
 | |
| 	 string/strlcat.c,strlcpy.c: fix uwin decl clash
 | |
| 02-11-26 sfio/sfvprintf.c: fix sfsprintf() ' ' termination bug
 | |
| 02-11-22 misc/glob.c: move static struniq() to libast extern
 | |
| 	 string/fmtversion.c,include/ast.h: add fmtversion
 | |
| 02-11-18 string/strncopy.c: add
 | |
| 	 misc/magic.tab: list size for magicid.h magic
 | |
| 02-11-14 sfio/sfvprintf.c: add %#c for C escapes
 | |
| 	 include/error.h: add ERROR_NOTIFY context flag for builtin commands
 | |
| 02-11-11 string/strtoi.h: add S2I_size for strnto*() size_t 2nd arg
 | |
| 	 sfio/sfstrtof.h: add S2I_size for strnto*() size_t 2nd arg
 | |
| 	 comp/putenv.c: add setenv() and unsetenv() wrappers for setenviron()
 | |
| 02-10-31 path/pathfind.c: add dir of including file to the pathinclude() list
 | |
| 	 misc/optesc.c: add
 | |
| 02-10-30 string/strtoip4.c: set next char pointer even on error
 | |
| 02-10-29 comp/resolvepath.c: add (size_t version of realpath())
 | |
| 	 misc/mime.c: fix mimehead() to ignore null content values
 | |
| 02-10-28 misc/glob.c: add GLOB_STARSTAR for /**/ and GLOB_NOTDIR optimization
 | |
| 02-10-27 string/struniq.c: add
 | |
| 02-10-23 features/common: fix off-by-one loop check
 | |
| 02-10-18 include/ast_std.h: avoid off_t,ftruncate,lseek,truncate redefinitions
 | |
| 02-10-17 misc/mime.c: handle type/* match, fix bogus header parse
 | |
| 02-10-04 sfio/sfstrtof.h: S2F_static <0:export =0:private >0:static
 | |
| 02-10-02 features/common: don't define _WIN32; define _WINIX => unix on windows
 | |
| 	 features/tty: finally stomp the bsd _POSIX_VDISABLE redefinition
 | |
| 	 misc/fastfind.c: add more specific findwrite() error messages
 | |
| 	 comp/omitted.c: fix cygwin utime() to update st_ctime
 | |
| 	 comp/strtol.c,strtoul.c: __CYGWIN__ static link workaround XXX
 | |
| 	 string/fmtls.c,fmttime.c: tmform() => tmfmt()
 | |
| 02-09-22 port/astconf.c: return values in fmtbuf() buffer instead of stack
 | |
| 	 port/mnt.c: don't set MNT_REMOTE for win32 ?:paths
 | |
| 	 sfio/sfvscanf.c: _sfdscan() is library global (not static)
 | |
| 02-09-21 path/pathkey.c: add tool arg for mamake compatible hash
 | |
| 	 features/fcntl.c: handle iffe _hdr_lcl_* => _lcl_* change
 | |
| 02-09-15 comp/conf.sh: fix enum vs. macro test
 | |
| 	 cdt: kpv sync
 | |
| 02-09-11 ast.h,features/common: move _WIN32 macro init to features/common
 | |
| 	 features/common: enable __EXTERN__ and __DEFINE__ for _WIN32&!_UWIN
 | |
| 	 features/float: add -lm to _ast_*_nan_init tests
 | |
| 	 vmalloc: kpv sync with vmresizef => vmgetmem
 | |
| 	 features/iconv: must have both <iconv.h> and iconv_open()!
 | |
| 	 features/vmalloc: alloca test must compile *and* link
 | |
| 	 sfio/sfvscanf.c,sfstrtof.h: add flag arg to char get, fix NaN loop
 | |
| 02-09-10 vmalloc/vmhdr.h: enable getpagesize() and sbrk() prototypes
 | |
| 	 features/fcntl.c: enable mmap64() prototype
 | |
| 	 include/ast_windows.h: windows.h wrapper with ast namespace workarounds
 | |
| 02-09-07 misc/mime.c: fix quoted value parse bug that ate the whole line
 | |
| 02-09-05 features/vmalloc: add free() to _std_malloc test
 | |
| 	 include/ast.h: NoF(x) now defines _DATA_x for !_BLD_DLL too
 | |
| 	 tm/tmlocale.c: { C POSIX en } == unix dadgummit
 | |
| 02-08-29 path/pathfind.c: initialize Dir_t.next=0
 | |
| 02-08-28 uwin/rint.c: update
 | |
| 	 features/libpath.sh: "bin" is now the default value
 | |
| 02-08-22 vmtrace.h: add for debugging
 | |
| 02-08-20 misc/magic.c: convert to use <cdt.h>
 | |
| 	 vmalloc/vmresizef.c: add for generic discipline resizef default
 | |
| 	 string/strelapsed.c: allow long time component names
 | |
| 02-08-19 misc/optget.c: add `.fp 5 CW' to --nroff output
 | |
| 	 string/(fmtfs|fmtuid|fmtgid|strgid|struid).c: convert to use <cdt.h>
 | |
| 	 include/dt.h,cdt/dtnew.c: add for dtopen() in specific vm region
 | |
| 02-08-13 comp/omitted.c: fix bzero logic for e.g. unixware.i386
 | |
| 	 include/ast.h: add fmtbase->fmtbasell; swap in 2003-09-01
 | |
| 02-08-12 regex/regnexec.c: fix REG_MINIMAL REX_DOT mb bug
 | |
| 02-08-08 features/iconv: <ast_common.h> instead of <sys/types.h> <ast_common.h>
 | |
| 02-08-07 regex/regcomp.c: recognize anchors in BRE subexpressions
 | |
| 02-08-06 comp/iconv.c: handle win32 cpNNNN == windows-NNNN aliases
 | |
| 02-08-05 cdt/*: sync with kpv src
 | |
| 02-08-02 features/iconv: include sys/types.h for ast_types.h
 | |
| 02-08-01 misc/magic.c: magic file "." names the default
 | |
| 	 misc/magic.c: handle addr type (from irix string)
 | |
| 	 features/lib: move malloc tests to features/vmalloc
 | |
| 	 features/vmalloc: snarf tests from features/lib
 | |
| 	 vmalloc/*: sync with kpv src
 | |
| 	 comp/libc.c: dropped -- __libc_* intercepts moved to vmalloc/malloc.c
 | |
| 02-07-30 features/lib: handle __libc_malloc() in _std_malloc test
 | |
| 	 vmalloc/malloc.c: add gnu pvalloc()
 | |
| 	 features/vmalloc: fix alloca check
 | |
| 02-07-29 features/limits.c: handle netbsd guards
 | |
| 02-07-27 sfio/sfpoll.c: handle rw pipes
 | |
| 02-07-25 features/iconv: include ast_types.h for size_t in ast_iconv.h
 | |
| 02-07-18 apply LARGEFILE64 header prototype clash patches
 | |
| 	 misc/optget.c: __EXTERN__ _opt_info_ instead of opt_info
 | |
| 02-07-17 ast_std.h: memzero() now defaults to memset() instead of bzero()
 | |
| 02-07-16 ast_std.h: add ast.env_serial
 | |
| 	 misc/setenviron.c: increment ast.env_serial
 | |
| 	 include/tm.h: tmset() now calls tminit() directly
 | |
| 	 tm/tminit.c: check ast.env_serial for env change
 | |
| 	 tm/tmfix.c: speed up for large values of tm_mday
 | |
| 02-07-15 comp/fnmatch.c: fix memory leak caused by missing regfree()
 | |
| 	 comp/strstr.c: fix broken interpretation and implementation
 | |
| 	 comp/iconv.c: intercept (but no-op) null to and from buffer pointers
 | |
| 02-06-27 ast_std.h: map _sysconf => _ast_sysconf for sun
 | |
| 02-06-26 cdt,sfio,vmalloc: kpv sync -- is this ever easy?
 | |
| 02-06-24 sfio: kpv sync, vfwscanf(),fputw() fix (wcslen(x)*sizeof(wchar_t)!!)
 | |
| 	 misc/fts.c: fix symlink chdir() optimzation bug
 | |
| 02-06-11 sfio/sfwrite.c: string to file fix
 | |
| 	 Makefile: __OBSOLETE__==20020101
 | |
| 02-06-01 regex/regcomp.c: REG_DELIMITED now consumes the delimiter
 | |
| 02-05-31 regex/reglib.h,regcomp.c,regnexec.c: null subexpression fixes
 | |
| 02-05-24 misc/fts.c: disable dir link counts in 3d
 | |
| 	 misc/magic.c: fix "*(mkfile)" sh pattern to "*@(mkfile)"
 | |
| 02-05-20 regex.h,regex/regsubcomp.c,regex/regsubexec.c: add
 | |
| 	 regex/regsub.c: deprecate
 | |
| 02-05-16 tm/tmfix.c: fix '60+n min/sec ago' bug for n min/sec after the hour
 | |
| 02-05-14 regex/regsub.c: fix (^|x) null match early termination bug
 | |
| 02-05-13 dir/dirlib.h: drop errant extern==__EXPORT__
 | |
| 	 features/uwin: add uwin lib tests
 | |
| 	 uwin/*.c: check features/uwin for stubs
 | |
| 	 features/float: add nan representation generation
 | |
| 	 sfio/sftable.h: used _ast_*_nan_init for huge values
 | |
| 02-05-09 misc/fts.c: fix virtual top to force ``child'' stat()
 | |
| 	 features/common: define va_copy() only if not in <stdarg.h>
 | |
| 02-05-01 string/strtoip4.c: cisco inverted quad mask must have 4 parts
 | |
| 02-04-30 misc/magic.tab: fix pzip version check
 | |
| 02-04-19 string/strtoip4.c: handle cisco inverted quad mask n.n.n.n/i.i.i.i
 | |
| 02-04-18 misc/fts.c: add chdir() verification stat() optimizations
 | |
| 	 path/pathkey.c: check PROBE_ATTRIBUTES for list of vars
 | |
| 02-04-12 port/astlicense.c: type=open tweak, fix author list spacing
 | |
| 02-04-11 regex/regcomp.c: check for pattern number overflow
 | |
| 02-04-05 tm/tmfmt.c: add %u
 | |
| 02-04-04 sfkeyprintf.c: fix %c numeric value
 | |
| 	 path/pathpath.c: check plain path first -- duh
 | |
| 02-04-03 misc/fts.c: fix (FTS_PHYSICAL|FTS_NOSTAT) stat optimizations
 | |
| 	 ftwalk.c: only clear FTW_DELAY if FTW_CHILDREN
 | |
| 	 ftwalk.h: add FTW_NSOK for FTW_DELAY
 | |
| 02-03-29 ast.h: drop strerror() prototype -- already in <ast_std.h>
 | |
| 	 features/stdio: check for _SFIO_H redundant _Sfstd* declarations
 | |
| 02-03-26 misc/glob.c: fix GLOB_LIST gl_flags values
 | |
| 02-03-24 port/mnt.c: update bsd fstype name and mount option logic
 | |
| 02-03-23 Makefile: add ast_wchar.h to the .check.hdr list (for mamake)
 | |
| 02-03-17 features/stdio: hack around g++ 3.* clashes
 | |
| 	 Makefile: add ast_nl_types.h to the .check.hdr list (for mamake)
 | |
| 	 string/strtoip4.c: fix validity check bug that only checked last part
 | |
| 02-03-14 misc/optget.c: fix --keys to not expand inline <.>..</.>\f
 | |
| 02-03-12 port/astlicense.c: add type=free
 | |
| 	 path/pathaccess.c: sibling ".." search ignores relative dirs
 | |
| 	 sfio/sfvscanf.c: sfstrtof get() must return 0 on eof
 | |
| 02-03-11 path/pathexists.c: check path by pairs checking {ENOTDIR,ENOENT}
 | |
| 02-02-14 features/float: copy local min/max macros to avoid printf roundoff
 | |
| 	 features/wchar: include <ast_common.h>, not <ast_std.h>
 | |
| 	 misc/magic.c: match[]=>matches[] to fix K&R match() macro conflict
 | |
| 	 include/vmalloc.h: include <stdlib.h> for !_PACKAGE_ast
 | |
| 	 uwin/mini.sym: add sprintf (now required by features/common)
 | |
| 	 regex/regnexec.c: truncate wide chars for <ctype.h> functions
 | |
| 	 Makefile: fix MAM ast_common.h sequencing bug by making it first
 | |
| 	 cdt/dthash.c: fix DT_DELETE memory leak (DT_DETACH typo)
 | |
| 	 cdt/dthash.c: fix DT_DELETE double free (dt->data->here typo)
 | |
| 	 regex/regcomp.c: fix recomb() to reject RE with backref
 | |
| 	 features/iffeio: explicitly generate stdio.lcl
 | |
| 	 stdio: add {fcloseall,f(get|put)s_unlocked,fmemopen,getdelim,getline}
 | |
| 	 tmmake,tmtime: allow negative time_t if native localtime/gmtime do
 | |
| 	 tmdate: allow years before 1969
 | |
| 	 fmtfmt: add
 | |
| 	 include/ast.h: add { PATH_TOUCH_CREATE PATH_TOUCH_VERBATIM }
 | |
| 	 Makefile: add std/*.h for std header iffe overrides
 | |
| 	 comp/iconv.c: fix non-C win32 sfreserve() loop
 | |
| 02-02-11 features/common: separate long long / long double tests
 | |
| 	 features/common: verify printf handles long long / long double
 | |
| 02-02-02 include/ast_std.h,sfio/sfhdr.h: drop _hdr_locale tests -- always on now
 | |
| 	 include/ast_std.h: trust _UWIN <unistd.h>
 | |
| 02-01-31 port/mnt.c: add aix options field
 | |
| 02-01-30 comp/strstr.c: add for ancient s5
 | |
| 	 stdio/_flsbuf.c: only on systems that transfer to native (e.g., uwin)
 | |
| 	 string/strtoi.h: cat min/max error return values
 | |
| 02-01-28 features/tty: add cf[gs]et[io]speed macros for <termio.h>
 | |
| 	 comp/rename.c: punt to (ancient) /usr/lib/mv_dir on EISDIR
 | |
| 02-01-24 sigcrit.c: fix SIGCLD!=SIGCHLD interrupt loop
 | |
| 	 sfvprintf.c: convert fast io macros to functions for uts.390 cc
 | |
| 	 string/strtoi.h: drop #pragma prototyped for standalone sfio
 | |
| 	 sfdcsubstr.c: rename from sfdcsubstream.c for 14 char fs
 | |
| 02-01-22 execlp,execvp,execvpe,spawnlp,spawnvp,spawnvpe: fix __EXPORT__
 | |
| 	 spawnlp,spawnve,spawnvp,spawnvpe: handle ms mode arg -- barf
 | |
| 	 sftable.c: ifdef hacks for _WIN32&_ALPHA_ fp exception
 | |
| 	 _stdfun.c: add _UWIN&_ALPHA_ iob map
 | |
| 02-01-18 sfio/sfstrtof.h: drop #pragma prototyped for standalone sfio
 | |
| 02-01-17 features/hdr: don't include <stddef.h> after it doesn't check out!
 | |
| 02-01-16 misc/magic.c: add version type for YYYYMMDD or [a.][b.]c.d
 | |
| 	 misc/magic.c: recode mime %s parse -- sensible and no buffer overflow
 | |
| 02-01-15 misc/magic.tab,magicid.h: add generic binary magic number and header
 | |
| 02-01-12 tm/tmlocale.c: override win32 default date for {C,POSIX,en} locales
 | |
| 	 comp/omitted.c: fix cygwin workaround logic bugs
 | |
| 02-01-09 stdio/fseeko.c,ftello.c: add from UNIX98
 | |
| 02-01-08 comp/conf.sh: use $cc instead of cc
 | |
| 02-01-07 string/strlcat.c,string/strlcpy.c: add bsd api
 | |
| 01-12-18 comp/conf.tab: fix LFS_CFLAGS default for sun _CS_LFS_CFLAGS botch
 | |
| 	 features/common: add hdr stdarg test
 | |
| 	 tm/tmdate.c: handle YYYY/MM/DD
 | |
| 01-12-10 misc/magic.tab: add generic 0x00010203 binary magic
 | |
| 01-12-03 path/pathprobe.c: return HOME relative path if readonly/non-suid fs
 | |
| 01-11-30 misc/optget.c: add simple cache for repeat offenders (like ksh read)
 | |
| 	 sfio/sfhdr.h: preserve errno across SFMMSEQON-SFMMSEQOFF
 | |
| 01-11-29 magic.tab: fix GIF version number listing
 | |
| 01-11-28 string/fmtbase.c: p!=0 => base always included in output
 | |
| 01-11-26 misc/fts.c: empty path is an error
 | |
| 01-11-14 misc/optget.c: fix --?+SECTION queries to include paragraphs
 | |
| 01-11-20 regex/regnexec.c: fix REG_MINIMAL character class match bug
 | |
| 01-11-19 features/lib: retain _lib_confstr for all solaris releases
 | |
| 01-11-16 comp/setlocale.c: fix !_lib_setlocale typo
 | |
| 01-10-31 regex/ucs_names.h: add string catenation to keep line length low
 | |
| 	 misc/fastfind.c: handle gnu slocate db read
 | |
| 	 misc/optget.c: add --?+SECTION queries
 | |
| 	 comp/fnmatch.h: add FNM_NOSYS
 | |
| 01-10-30 tm/tmdate.c: fix cron specs when both wday and mday are specified
 | |
| 01-10-20 misc/glob.c: fix bug that called  trim() twice on same path
 | |
| 	 misc/glob.c: fix  trim() bug that restored / to wrong position
 | |
| 	 string/fmtre.c: fix { ^ . $ } translations
 | |
| 	 misc/optget.c: use original string if translation fails -- duh
 | |
| 	 sfio/sfhdr.h: assume <errno.h> assigns proper atttibutes to errno
 | |
| 	 comp/regcmp.c: __ia64 workaround fixed by proper CC.DLL probe
 | |
| 	 comp/getdate.c: __ia64 workaround fixed by proper CC.DLL probe
 | |
| 	 features/lib: add lib getdate
 | |
| 01-10-18 features/lib: check for strtod static link collision
 | |
| 	 features/float: add another signed cast for old bsd cc
 | |
| 	 features/wchar: add <stdlib.h> <stdio.h> before <wchar.h> for old bsd
 | |
| 01-10-17 sfio/sfcvt.c: limit max precision to { FLT_DIG DBL_DIG LDBL_DIG }
 | |
| 	 sfio/sfcvt.c: fix %[aA] format to always have leading 0[xX]1.
 | |
| 	 sfio/sfvprintf.c: handle %C %lc %S %ls for wchar_t args
 | |
| 	 sfio/sfvscanf.c: handle %C %lc %S %ls for wchar_t args
 | |
| 	 string/fmtmode.c: fix bug that omitted trailing ' '
 | |
| 01-10-12 misc/optget.c: . => <!--NULL-->. for --??nroff
 | |
| 	 comp/wc.c: fix mbstate_t initialization typo
 | |
| 	 features/float: fix max integer / float loop termiation
 | |
| 	 features/float: fix LDBL_UINTMAX_MAX typo that did DBL_UINTMAX_MAX
 | |
| 01-10-11 include/sfio.h: fix _Sfstd* import/export
 | |
| 	 features/common: fix _UWIN __DYNAMIC__() definition
 | |
| 01-10-06 features/fcntl.c: { O_BINARY O_TEXT } default to 0
 | |
| 	 features/omitted: add for comp/omitted.c
 | |
| 	 sfio/sfopen.c: O_BINARY default for _WIN32&&!_UWIN
 | |
| 01-10-05 misc/glob.c: fix `\(x/*' GLOB_NOMATCH bug that returned `(x'
 | |
| 	 misc/optget.c: fix localization lookup that didn't drop doubled : ? ]
 | |
| 01-10-04 comp/setlocale.c: handle sizeof(wchar_t)!=4 in debug locale
 | |
| 	 comp/conf.sh: handle systems where _SC_* is both an enum and a macro
 | |
| 01-09-25 astconf: add LIBPREFIX
 | |
| 01-09-20 features/common: add __DYNAMIC__() for dll externs
 | |
| 01-09-19 cdt: kpv update
 | |
| 	 mb*() macros: update for ksh conversion, extend debug locale
 | |
| 01-09-16 tm/tmlocale.c: add compiled in defaults for C locale
 | |
| 	 misc/glob.c: add gl_nextdir callback for GLOB_COMPLETE
 | |
| 01-08-14 clarify _WIN32 vs. _UWIN vs. __CYGWIN__
 | |
| 	 tminit: fix standard & daylight initialization
 | |
| 01-09-11 pathnative.c: add for native fs representation
 | |
| 	 regex.h: fix regerror_t prototype
 | |
| 01-09-04 regex/regnexec.c: fix REG_ICASE for multi-char collating elements
 | |
| 	 tm/tmlocale.c: fix old ascii LC_TIME load
 | |
| 	 locale*: add new LC_* categories
 | |
| 	 comp/omitted.c: add CYGWIN workarounds
 | |
| 	 features/lib: add CYGWIN workarounds
 | |
| 01-08-11 features/common: some compilers have long long but no LL constants!
 | |
| 	 features/lib: add mmap64 implementation test (for linux.s390)
 | |
| 	 regex/regcomp.c: fix  in [...] parse
 | |
| 	 setlocale: retain user locale spelling in setlocale() return value
 | |
| 	 features/limits.c: don't include ./limits.h -- duh
 | |
| 	 fmtesc: don't escape multibyte chars
 | |
| 	 tm/tmlocale.c: fix native C locale default
 | |
| 01-08-08 features/float: some compilers (msdev) forget long long vs. double
 | |
| 01-07-31 misc/optget.c: handle suboptions
 | |
| 01-07-27 cdt.h: add DTDISC()
 | |
| 01-07-17 iffeio.h: move to include for stdio bootstrap iffe workarounds
 | |
| 01-06-25 regex: perl extensions added and tested
 | |
| 01-06-21 misc/error: add ERROR_OPTIONS=prefix=string for message processing
 | |
| 01-06-15 string/chresc: only 2 hex digits max for \xxx
 | |
| 	 regex/regsub: handle REG_SHELL ~(nnn) rhs backrefs
 | |
| 01-06-11 regex: handle embedded   in pattern and subject string
 | |
| 	 regex: add (?nnn) for backrefs > 9
 | |
| 	 comp/fnmatch: add FNM_LEADING_DIR for gnu compatibility
 | |
| 	 features/float: _ast_flt_unsigned_max_t for bsd.i386 omission
 | |
| 01-06-06 misc/optget.c: add o option for old ps,ar,tar with optional leading -
 | |
| 	 regex/regcomp.c: REG_LENIENT|REG_DELIMITED \<newline> => <newline>
 | |
| 	 regex/regcomp.c: REG_LENIENT  00 => NUL
 | |
| 01-06-04 features/dirent: replace Makefile hack with iffe semi-hack
 | |
| 	 regex/regnexec.c: negation must also check REG_SHELL_DOT
 | |
| 01-06-03 sprintf.c: change buf size from SF_BUFSIZE to INT_MAX
 | |
| 01-05-31 glob: fix gl_fignore to ignore leading . by default
 | |
| 	 features/lib: add botch_d_ino_dirent64 for linux botch
 | |
| 01-05-25 port/lc.tab: add a few missing language_territory's
 | |
| 01-05-23 string/chresc: \C[.collation-element.]
 | |
| 	 fmtmatch,fmtre: update for <regex.h> syntax extensions
 | |
| 01-05-21 regex: add perl extensions, unicode names for collation elements
 | |
| 01-05-11 string/chresc: \ == \E == escape, <JOIN>X == control X, \x{..} == \x..
 | |
| 01-05-09 path/pathtemp.c: pathtemp(0,0,0,"/private",0) for mode S_IRUSR|S_IWUSR
 | |
| 	 port/touch.c: handle utime(2) EPERM to fix bug that truncated
 | |
| 	 regex: change REG_MINIMAL to avoid negation -- much faster now
 | |
| 01-05-08 *.h: add some off_t macro guards for suse linux
 | |
| 01-05-03 regcomp.c: optimize ((x)!)* to ((x)!)
 | |
| 	 wchar: add <wchar.h> and stdio wchar routines
 | |
| 01-05-02 feaures/wchar: add <wchar.h> intercept, add stdio wchar functions
 | |
| 01-05-01 string/strtoi.h: signed strtoi accepts qualified unsigned constants
 | |
| 01-04-30 comp/setlocale.c: fix code that relied on 2 simultaneous getenv()'s
 | |
| 	 tm/tmlocale.c: check for UTF-8 encoded LC_TIME files
 | |
| 	 misc/magic.tab: add utf-8 and utf-16 U+FEFF magic
 | |
| 01-04-26 features/common: some cc's have _ast_int8_t but not LL constants
 | |
| 01-04-24 features/lib: add _std_strtod for mac os X
 | |
| 01-04-23 ccode: add CC_sub for ms embedded EOF char on ebcdic -- no joke
 | |
| 01-04-20 iconv: handle ebcdic<=>utf
 | |
| 	 mc.h,mc.c: add mcindex()
 | |
| 	 ast_std.h: add AST_MESSAGE_SET
 | |
| 01-04-18 features/libpath.sh: fix mvs probe
 | |
| 	 *: sundry mvs fixes
 | |
| 	 glob: fix GLOB_NOCHECK to avoid stat() and properly trim patterns
 | |
| 01-04-01 strtod,strtold: add
 | |
| 	 strtol,strtoul,strtoll,strtoull,strton,strtonl: handle locale & ERANGE
 | |
| 	 sfvprintf,sfvscanf: handle locale decimal_point,thousands_sep
 | |
| 	 sfvprintf,sfvscanf: handle %a,%A
 | |
| 	 setlocale: add LC_NUMERIC decimal_point,thousands_sep init
 | |
| 	 ast_std.h: __OPTIMIZE_SIZE__==1 to disable non-std __GNUC__ inlines
 | |
| 	 pathexists: path cache to cut down pathpath() access(2) calls
 | |
| 	 features/stdio: __FILE_TAG == _sfio_s for solaris
 | |
| 01-03-23 iconv: fix iconv_move buffer boundary bug that stopped at 1 block
 | |
| 01-03-19 glob: add GLOB_AUGMENTED
 | |
| 	 regex: REG_SHELL syntax error implies REG_LITERAL match
 | |
| 	 strto[ln][ll]: add overflow checks
 | |
| 01-03-17 locale: reimplemented to provide canonical locale namespace
 | |
| 	 locale: add LC_ALL=local for local system user default
 | |
| 	 tm.h: TM_*_3 => TM_*_ABBREV
 | |
| 	 tmfmt: handle standard E and O format modifiers
 | |
| 	 tmlocale: consult nl_langinfo() if defined
 | |
| 	 fmtquote("
 | |
| 01-03-08 regex: handle multibyte chars and collation classes
 | |
| 	 strmatch,strgrpmatch: now a wrapper on regex
 | |
| 	 ast_std.h: add mb*() multibyte and collation support
 | |
| 	 sfvscanf: handle locale decimal and thousand
 | |
| 	 proc*,system: handle ignored SIGCHLD
 | |
| 	 sfkeyprintf: handle %*C
 | |
| 01-03-06 locale: add locale data cache for efficient multiple locale switching
 | |
| 	 optget: fix LC_MESSAGES!=C --man bug
 | |
| 01-03-01 Makefile: HEADEROPT is not optional for win32.*
 | |
| 	 comp/syslog.h: comply with the de factos
 | |
| 	 optget(): fix <.>..</.>< >stack bug that referenced data after pop</ >
 | |
| 01-02-27 *locale*: a batch of fixes for native LC_MESSAGE&LC_TIME hooks
 | |
| 01-02-22 pathprobe: reprobe test now checks probe.ini too
 | |
| 	 sfio_s.h: advertize public Sfio_t members with _ prefix
 | |
| 	 sfio.h,features/stdio: add <sfio_s.h> reference
 | |
| 	 sfhdr.h: map <sfio_s.h> _foo to foo
 | |
| 	 sfio.h: SF_APPEND=>SF_APPENDWR, SF_CLOSE=>SF_CLOSING
 | |
| 01-02-14 comp/conf.sh: probe <unistd.h> for _(CS|PC|SC)_* getconf symbols
 | |
| 	 stdio/*: update for uwin stdio.dll binary compatibility
 | |
| 	 sfread: finally fixed premature pipe read EOF bug
 | |
| 	 fmtscale: format tenths for number > 0 && number < 10
 | |
| 01-02-09 _sfmode(),_sftype(),_Sfextern: UWIN binary stdio compatibility exports
 | |
| 01-02-08 sfgetm,sfputm,_sfputm: fix max clash with k&r max() macro
 | |
| 	 setlocale: undef valid for sun4 k&r valid() macro
 | |
| 01-02-07 catopen.c: don't do native catopen for the debug locale
 | |
| 01-02-06 sfraise.c: add SF_FINAL check to avoid (posibly) freed disciplines
 | |
| 01-01-01 features/common: fix uwin __DEFINE__
 | |
| 	 sftable: initialize decimal and thousand
 | |
| 	 magic.tab: add corel wordperfect document
 | |
| 	 syslog: add LOG_LEVEL, add ' only if needed
 | |
| 	 include/tm.h: #undef daylight for _WIN32
 | |
| 	 sfio.h: add _SF_APPEND and _SF_CLOSE for native namespace incursion
 | |
| 	 ast_std.h: add AST_LC_multibyte for MB_CUR_MAX>1
 | |
| 	 setlocale: set AST_LC_multibyte
 | |
| 	 strmatch: check AST_LC_multibyte
 | |
| 	 features/limits.c: add _BITS_POSIX1_LIM_H guard for linux
 | |
| 	 features/libpath.sh: fix for aix LIBPATH
 | |
| 	 procopen,procclose: block SIGCHLD if PROC_FOREGROUND (e.g., system(3))
 | |
| 	 optget.c: add enumerated option argument values
 | |
| 	 optget.c: add <!--INTERNAL--> for private --html
 | |
| 	 optget.c: fix memory leak that hit shell builtins hard
 | |
| 	 sfio: drop sfread small chunk logic
 | |
| 00-12-25 mnt.c: handle " and ' quoting for fstab
 | |
| 	 sftmp.c: let pathtemp() open the fd O_EXCL
 | |
| 00-12-15 conf.sh: add -v for verbose trace
 | |
| 	 features/(limits|unistd).c: no FEATURE/types because of _POSIX_SOURCE
 | |
| 	 features/time: add default for CLOCKS_PER_SEC
 | |
| 	 features/lib: std_malloc now handles NeXT
 | |
| 00-12-13 strton: recognize qualifier only if preceded by a digit
 | |
| 	 features/lib: change return in vfork() test to exit() for linux sparc
 | |
| 	 fmtquote: fix $'...' quote logic
 | |
| 00-12-11 tmdate: fix cron format bug that mishandled months
 | |
| 00-12-01 optget: handle $Id: ... $ in --?-version
 | |
| 	 features/fcntl.c: fix _STDPP_ mmap munmap
 | |
| 00-11-27 magic: drop dup sfclose() in load()
 | |
| 	 optget: handle error_info.id==0
 | |
| 00-11-22 features/stdio: add _FILEDEFED for sol9.sun4
 | |
| 	 strton,stronll: handle [u|U][l|L][ll|LL] qualifiers
 | |
| 00-10-31 tmdate: add TM_DATESTYLE and mmddHHMM[cc]yy
 | |
| 	 astlicense.c: #include <hashkey.h> MAM workaround
 | |
| 	 astlicense.c: check for non-empty CONTRIBUTORS
 | |
| 00-10-26 features/stdio: add _FILE and __FILE for gnu
 | |
| 	 misc/stk.c: fix stack pointer check off-by-one (dgk does it too!)
 | |
| 00-10-23 syslog.h: sync with bsd values
 | |
| 00-10-18 _STUB_* now functions instead of common symbols
 | |
| 	 all extern data declared with definition to eliminate common symbols
 | |
| 	 fastfind: add mac/bsd /var/db/locate.database
 | |
| 00-10-17 features/lib: add apple osX (darwin.ppc) workarounds
 | |
| 00-10-12 add: fmtbuf(), fmtclock(), fmtip4(), strtoip4()
 | |
| 	 fmt*() now use fmtbuf() for tmp fmt buf allocation
 | |
| 00-10-05 regex: add REG_DISCIPLINE and regdisc_t for alloc/error disc
 | |
| 00-09-29 features/lib: pipe_rw==0 for sgi: boot rw == bin incompatibility
 | |
| 00-09-21 astlicense: handle ' and 
 | |
| 00-09-20 sfwrite: fix write() error in sfprintf() loop
 | |
| 00-08-11 hdr,vmhdr.h: check/hide { getpagesize sbrk } prototypes
 | |
| 	 astlicense: add noncommercial
 | |
| 00-07-31 fflush: don't seek on pipes
 | |
| 	 sfresize: add
 | |
| 	 setlocale: fix bad newof() call
 | |
| 00-06-01 strmatch: initialize match.current.beg[0] to avoid dump at line 670
 | |
| 	 sfio/stdio: a few more errno tweaks
 | |
| 	 astquery: sfstdin/sfstderr by default
 | |
| 00-05-26 sfmode: errno=EBADF for invalid stream use
 | |
| 00-05-22 rewind: fix for xopen test
 | |
| 00-05-18 mcfind: returns absolute path
 | |
| 00-05-16 optget: --keys must catch <.>..</.>< >too</ >
 | |
| 	 translate,mc: errno cleanup
 | |
| 00-05-09 magic: add netbsd binary magic
 | |
| 	 fts: PATH_RESOLVE!=logical => FTS_SEEDOTDIR
 | |
| 	 ftwflags: call fts_flags()
 | |
| 	 astconf: astconf(0,0,0) re-syncs with _AST_FEATURES
 | |
| 00-05-08 optget: --usage & --keys for last -catalog group only
 | |
| 00-05-02 iconv.c: add; use codes[] in ccmapid() and ccmapname(); "" for native
 | |
| 00-05-01 pathtmp: copy env values (libshell or putenv may change)
 | |
| 00-04-01 optget: drop bar from [-foo?bar] for --??keys
 | |
| 	 sfvscanf: add %X -- duh
 | |
| 	 features/common: fix va_listval() for power pc
 | |
| 	 findopen: fix FIND_GENERATE codes file search
 | |
| 	 magic: add ERROR_translate() and msgcat.key
 | |
| 	 tmlocale: add for LC_TIME locale info
 | |
| 	 tmlex: check tm_info.format and tm_data.format
 | |
| 	 tmfix: fix for tm_wday special case (via nl_langinfo on LC_TIME fields)
 | |
| 	 strftime: fix for nl_langinfo special case
 | |
| 	 ast_std.h: provide LC_* defaults if not defined
 | |
| 	 sfnew: check ${_AST_sfio_bufsize} -- don't tell kpv
 | |
| 	 catopen,nl_types.h: add intercept to mc* routines
 | |
| 	 magic.tab: add ast message catalog
 | |
| 	 strerror: add _ast_strerror intercept with ERROR_translate("errno")
 | |
| 	 fmtquote: escapes >0177 only if (flags&2)
 | |
| 00-03-17 feof: stdio macro functions only for _UWIN
 | |
| 	 optget: proper ERROR_translate() calls
 | |
| 	 astgetconf: add for thread safe error message control
 | |
| 	 astlicense: fix type=special but with non-null notice
 | |
| 	 errorx: add for ERROR_translate() support
 | |
| 	 ERROR_translate: add locale id args for alternate dictionary
 | |
| 	 option.h: move _OPT_PRIVATE_ to pointer to avoid dll size mismatch
 | |
| 	 ftwalk: fix FTW_CHILDREN bug that hit top level non-dirs twice
 | |
| 	 translate.c: default error_info.translate
 | |
| 	 astconf: fix dup loop thrash that never returns, add _AST_VERSION
 | |
| 00-03-10 ast_std.h: do _LARGEFILE_SOURCE initialization before std headers
 | |
| 	 fmtquote: handle $'...' quotes
 | |
| 00-03-07 optget: fix numeric option support test
 | |
| 	 sfkeyprintf: add %q for '...' quoting with ansi escapes
 | |
| 00-03-06 features/stdio: fix _sfflsbuf prototype (dingold@gte.net)
 | |
| 00-02-14 pathtmp: fix pid cache bug that sometimes repeated after ~10 attempts
 | |
| 	 optget: "..." attribute quote
 | |
| 	 pathfind: eliminate *: prefix in lib, not type
 | |
| 	 proc: PROC_FOREGROUND for system(3) semantics (wait status return)
 | |
| 	 pathtmp: fix mktemp() logic
 | |
| 	 fts: fix FTS_NOSEEDOTDIR bug that botched ./* in top list
 | |
| 	 include/ast/prototyped.h includes include/prototyped.h
 | |
| 	 pathpath: fix strdup(0) bug
 | |
| 	 optget: --html <SMALL><<A href=mailto:foo@bar>foo@bar</A>></SMALL> => ...mailto:foo@bar...
 | |
| 	 sscanf: fix sfsscanf => sfvsscanf typo
 | |
| 	 magic.tab: strengthen tar recognition
 | |
| 00-02-08 conf.sh: fix ifdef for systems that think sysconf(FOO) is const
 | |
| 00-02-04 glob: fix globlist_t.gl_flags
 | |
| 00-02-02 vm*: add NoF() for data only files
 | |
| 00-01-27 fts: fix top level .==.. statp bug (thanks to dr. ek)
 | |
| 00-01-25 conf.tab: fix LFS*_*LAGS typo
 | |
| 00-01-24 astlicense: handle type=verbose, license.notice, author=*
 | |
| 00-01-11 pathprobe: generate info for first probe script on PATH - duh
 | |
| 	 ast.h: add NoF(x) for files that define no functions
 | |
| 	 tmpfile: fix implementation
 | |
| 	 global change for string ERROR_translate() dictionary names
 | |
| 	 optget: fix new way but no long names off by one
 | |
| 	 optget: handle [--dictionary?name]
 | |
| 99-11-19 comp/conf.sh: `expr length XXX` is not universal
 | |
| 	 drop sfstdio; stdio via functions everywhere
 | |
| 	 drop Makefile conditionals (and follow our own advice for once)
 | |
| 	 sfio: new stream after atexit() bug fix
 | |
| 	 tm: Tm_zone_t.daylight=0 for standard time within zone
 | |
| 	 stdio: fopen => _ast_fopen: only way short of binary compatibility
 | |
| 	 Makefile: atmain.C falls back to atmain.c
 | |
| 	 optget: add --keys, s<section> option
 | |
| 	 stdio: _UWIN check for foreign stdio
 | |
| 99-11-11 astlicense: add
 | |
| 99-10-31 glob: fix regexec pattern; add PATH_ATTRIBUTES case check
 | |
| 	 pathpath: path==0 means malloc space
 | |
| 99-10-22 tmfmt: %C=2-digit-century, %k=date(1), %y=2-digit-year-in-century
 | |
| 99-10-18 fastfind: expanded default db lookup
 | |
| 99-08-11 magic: fix off by one registry malloc
 | |
| 	 features/fs: add __RENAME checks for stat family (netbsd)
 | |
| 	 features/fs: major()/minor() fixes for s5
 | |
| 	 features/libpath.sh: netbsd fix -- ld.so not in std places
 | |
| 	 misc/fastfind: fix codes path generation bug
 | |
| 	 optget: beef up --?* description, fix <TR>...</TR> nesting
 | |
| 	 pathprobe: check for override (writable key file) first
 | |
| 	 features/time: int tmtimeofday(struct timeval*);
 | |
| 	 optget: fix opt_info.num, even if opt_info.arg!=0
 | |
| 	 fts: FTS_PHYSICAL => FTS_SEEDOTDIR, add FTS_CHOP
 | |
| 	 fastfind: init dir tab with logical and physical name
 | |
| 	 glob: add gnu GLOB_ALTDIRFUNC
 | |
| 99-07-17 sfio: kpv update and sfhdr.h sync!
 | |
| 99-06-24 stdio: fix fflush() to ignore sfseek(0) return value
 | |
| 99-06-23 magic: '\r' is text not control to placate m$
 | |
| 99-06-08 stdio: fix fseek,ftell semantics
 | |
| 	 uwin stdio: fflush() => _doflsh() to avoid __cplusplus clash
 | |
| 	 getopt: call liberror() to avoid error() conflict
 | |
| 	 tmfmt,tmscan: %N zone type (nation code), %z zone minutes west offset
 | |
| 	 tmfmt: - no pad _ space pad 0 leading 0 pad
 | |
| 99-05-28 magic: fix 'x' == '*' for any number, magic.tab tweaks
 | |
| 	 features/lib: verify that stat64 really works
 | |
| 99-05-21 tm*: add TM_WINDOW==69 for consistent century windowing guard year
 | |
| 99-05-18 tmtime: add century leap year calc anticipating unsigned time_t
 | |
| 99-05-17 sfkeyprintf: handle %o and %x!!
 | |
| 99-05-09 pathprobe: $HOME/.probe if not suid and st_uid!=geteuid()
 | |
| 99-04-28 magic,magic.tab: add registry()
 | |
| 99-04-24 regcomp: fix ksh pattern +! parse
 | |
| 	 regfatalpat: add
 | |
| 	 optget: make : ? ] double escape consistent in all contexts
 | |
| 99-04-01 features: drop iffeio.h and stdio.h when only printf() used
 | |
| 	 regex: fix stats() .l and .k count
 | |
| 	 fmtquote: added; most general fmtesc() form
 | |
| 99-03-22 fmtesc.c,ast.h: add fmtnesq()
 | |
| 	 optget: --?x works for -x option flag
 | |
| 99-03-17 features/limits.c: workaround solaris __EXTENSIONS__ _timespec bug
 | |
| 	 workaround limits.h circular prereq with ignore stdio.h
 | |
| 	 sfvprintf: %04e left-pad zero fixed
 | |
| 99-03-03 fts: uncle already: add FTS_SEEDOTDIR to retain leading ./
 | |
| 	 regex: REG_MULTIPLE, BM for fixed string alternation
 | |
| 	 optget: embedded `-' optional in long options, prefix={0,1,2}
 | |
| 99-02-14 fastfind: fix dir format bug that emitted wrong paths
 | |
| 	 astconf: fix redef off by one bug
 | |
| 99-02-11 pathcanon(): don't cache astconf("PATH_LEADING_SLASHES", NiL, NiL)
 | |
| 99-01-23 optget: move <old_opt.h> back into <option.h>, no open-close
 | |
| 	 optget: add "[index:long-name:description]" for --long-name
 | |
| 	 comp/gross: add weak __libc_attr for irix < 6.5 compatibility
 | |
| 	 features/limits.c: tweak the guards again
 | |
| 99-01-11 fastfind: handle old format count byte order
 | |
| 	 magic.tab: fix elf to use real phdr offset
 | |
| 	 magic.c,magic.tab: fix | to act like switch/case
 | |
| 	 comp/fross.c,features/hack: for gross hacks
 | |
| 	 features/stdio: avoid sfio namespace pollution
 | |
| 98-12-25 tmdate: yyyy.mm.dd
 | |
| 	 pathprobe: fix procrun() cmd path bug
 | |
| 	 fmtesq: add
 | |
| 	 features/common: win32.alpha va_list
 | |
| 	 magic: add pc alpha object
 | |
| 98-11-11 strmatch: add STR_ICASE
 | |
| 	 pathprobe: punt to $HOME/.probe/<key+HOSTTYPE> if not S_ISUID
 | |
| 	 tmzone,tmdate: handle +-minutes, nn/MMM/yyyy
 | |
| 	 stropt: fix nested quote pop
 | |
| 	 tmfmt: add %K => %Y-%m-%d/%H:%M:%S
 | |
| 	 sfio/stdio: fix fseek() SF_PUBLIC omissions
 | |
| 	 fmtesc: catch '\' (duh)
 | |
| 	 vmalloc: vmbest round bug fix
 | |
| 98-11-01 fts.c: no pathcanon() if (fts_flags & FTS_PHYSICAL)
 | |
| 98-10-01 features/stdio prototype fixes
 | |
| 	 optget: strton() instead of strtol() for #
 | |
| 98-09-22 regcomp: add REG_DELIMITED and REG_ESCAPE delimited re support
 | |
| 98-09-15 fix _LARGEFILE64_SOURCE stuff
 | |
| 	 ast_std.h: provide mmap() prototype
 | |
| 98-08-11 fix sfpopen() to ignore SIGPIPE by ignoresig() for sfio but not stdio
 | |
| 	 fix procopen() to ignore SIGPIPE by ignoresig() for PROC_IGNORE
 | |
| 	 sfio sfpopen/popen update
 | |
| 	 magic.src: fix ustar entry
 | |
| 98-07-17 fix ftwalk() short by one malloc()
 | |
| 	 add fts_notify()
 | |
| 98-06-25 sfdcmore,sfdcprefix: add
 | |
| 98-06-19 tokscan: add %f %g
 | |
| 98-06-01 disc/sf*.c: memset(0) after disc malloc()
 | |
| 98-05-11 strelapsed: y==Y
 | |
| 	 fts: pathcanon() top list 
 | |
| 98-04-01 error: error_info.time for all msgs, just after cmd id
 | |
| 	 error: no sfsync(sfstdin)
 | |
| 	 sfio: sfpool, Sffmt_t update
 | |
| 	 magic.tab: sgi core dumps -- why aren't these elf?
 | |
| 	 stropt: (v+n) for unknown option is option value if n!=0
 | |
| 	 procopen: fix setsid() for spawnveg() only
 | |
| 98-03-19 malloc: add realloc foreign region check
 | |
| 	 sfdisc.h: rename to match kpv disciplines
 | |
| 	 fastfind: fix strcasecmp/strcmp directory prefix mixup
 | |
| 98-03-17 features/fcntl.c,pathtmp,sftmp: add O_TEMPORARY
 | |
| 98-03-01 pathcanon: fix PATH_LEADING_SLASHES to stat() both slashes
 | |
| 	 pathcanon: add PATH_VERIFIED
 | |
| 	 tmdate: add skip[] to expand separator char set
 | |
| 	 fastfind: FIND_OLD for old 7 bit db, FIND_TYPE for new 8 bit typed db
 | |
| 	 fastfind: default generates gnu LOCATE02 8 bit db
 | |
| 	 magic: handle %s in mime description
 | |
| 	 cdt: kpv update
 | |
| 	 sfio: kpv update
 | |
| 	 stdio: fpos64_t fseek64(), ftell64(), fgetpos64(), fsetpos64()
 | |
| 	 stdio: fseek() => sfseek(SF_PUBLIC) to avoid locking
 | |
| 	 fts: initialize parent stat[bp] from top level *after* statf done
 | |
| 	 astmath: add -lm requirement test
 | |
| 	 *: Astlong_t => _ast_*_t
 | |
| 	 regex: simplify regcollate() (from doug)
 | |
| 	 tmtime: preserve Tm_t*tm when calling tminit()
 | |
| 	 astconf: add readonly PATH_ATTRIBUTES=[cirw]
 | |
| 98-02-14 fastfind: add FIND_ICASE to ignore case
 | |
| 	 tmdate,tmgoff: handle (+|-)hh[[:]mm[[:]ss]] absolute timezone
 | |
| 	 tmdate: `<n> <part>' now assumes `next <n> <part>' instead of `this'
 | |
| 	 tmfix: fix leap year bug that forgot to add 1900
 | |
| 	 proc: add PROC_ZOMBIE
 | |
| 98-02-06 strmatch() char class range bug fix
 | |
| 	 regex char class range bug fix
 | |
| 98-01-23 _WIN32: changed the #if logic again to accommodate _GNUC_
 | |
| 	 mnt: grab the mount options too
 | |
| 	 ast_std.h: hide getopt,getsubopt from stdlib.h
 | |
| 	 features/limits.c: add gnu guard macros to avoid limits.h recursion
 | |
| 	 features/mode.c: include "limits.h" instead of "FEATURE/limits.lcl"
 | |
| 98-01-11 sfio.h: use Astlong_t, move Sfio_t Sfdisc_t typedef to top for stdio.h
 | |
| 	 sfhdr.h: #undef SETLOCAL for hpux
 | |
| 	 sfvprintf,sfvscanf: %I*x for sizeof(int_arg)
 | |
| 	 handle ftruncate64 and truncate64
 | |
| 	 dtopen.c: __hppa dll needs Dtset Dtlist Dttree refs here
 | |
| 97-12-18 fmtnum: add
 | |
| 97-12-11 magic: handle sgi 64 bit core dumps
 | |
| 97-12-07 pathtmp: add override for TMPPATH,TMPDIR and cycling
 | |
| 97-11-11 tm: handle 0 return from gmtime(),localtime() (dos negative time_t)
 | |
| 	 features/stdio: fix fflush() macro to do physical sync
 | |
| 97-10-31 astconf PATH_RESOLVE is logical if 3d&&!std, metaphysical otherwise
 | |
| 	 magic: fix #! mime bug
 | |
| 	 tm: tmtime() now calls tmfix() and adjusts tm_isdst too=>mtime() works
 | |
| 97-10-11 dllfind,dlfcn: move to separate -ldll so -last can link static, duh
 | |
| 	 Makefile,state.c: move forced header generation state.c => Makefile
 | |
| 	 sfio: update including SF_WHOLE
 | |
| 97-10-01 sfdostext: add \r=> sfio discipline
 | |
| 	 stropt: NiL table => p=name for all name=value
 | |
| 97-08-11 pathtmp: check pid to note forks
 | |
| 	 procopen: FD_CLOEXEC rfd && wfd
 | |
| 	 fts: fts_close() after fts_children() with no fts_read() now works
 | |
| 97-07-17 error: sfsync(sfstdin,sfstdout,sfstderr) instead of sfsync(NiL)
 | |
| 	 _sfcvinit: add sfio internal interface to base conversion tables
 | |
| 	 strton: use _Sfcv* base conversion tables instead of sfsscanf()
 | |
| 	 sfvscanf: use _Sfcv* base conversion tables
 | |
| 	 mime: x- permutations now matched if exact fails
 | |
| 	 mime: original- stripped from content-* headers
 | |
| 	 tmdate: add yyyy-jjj, yyyy-mm-dd
 | |
| 	 dllfind: add
 | |
| 	 ccmapid: fix buf copy loop limit
 | |
| 	 ccmapname,ccmapcpy: add
 | |
| 	 sfstrtmp: add
 | |
| 97-05-09 streval: fix up casts for pseudo-ansi cc
 | |
| 	 features/types: use _ast_int_8 vars to verify support
 | |
| 	 string/modedata: check for mvs.390 S_IFMT
 | |
| 	 include/ast(_std).h: add #define __FILE_typedef
 | |
| 	 magic: add ccode text check
 | |
| 	 include/ftwalk.h: FTW_PATH=>FTS_NOCHDIR to avoid FTS_AGAIN (duh)
 | |
| 	 fts: clear status for FTS_AGAIN (fixes rm -r bug)
 | |
| 	 mnt: add mvs openedition w_getmntent()
 | |
| 	 sfhdr: _hdr_float && <float.h> for correct MAXDOUBLE
 | |
| 	 vmalloc/vmbest: if _std_malloc then use malloc()/free() not sbrk()
 | |
| 	 remove: check _std_remove
 | |
| 	 procopen: handle pio[{0,1}]=={0,1}
 | |
| 	 setenviron,features/uinstd: test for mvs.390 dll environ hacks
 | |
| 96-12-25 <sfio_p.h> -> <ast_common.h>
 | |
| 	 __EXTERN__(type,object)
 | |
| 	 __DEFINE__(type,object,value)
 | |
| 	 magic: check strings in !CC_NATIVE code set too
 | |
| 	 system: cmd==0 means check for shell access (xopen)
 | |
| 	 sfhdr.h: fix sfrsrv prototype
 | |
| 	 add __libc_malloc etc for gnu/linux
 | |
| 	 astconf(NiL,path,name) == astconf(name,path,NiL) + no liberror
 | |
| 	 fts_open: if toplist() stat fails return 0
 | |
| 	 ftwalk: handle fts_open()==0 via one phony userf() call
 | |
| 	 sfmode: S_ISFIFO default is SF_SHARE=0
 | |
| 	 features/lib: _WIN32 _lib_vfork=1 by default
 | |
| 	 unsigned<0 comparison and other fixes via sgi.mips4 cc
 | |
| 	 stk.c: use <align.h> ALIGN_BOUND for stkalloc()
 | |
| 	 features/lib,vfork: uwin fix
 | |
| 	 ast_std.h: fix strto[u]ll prototypes with features/types _ast_int_8
 | |
| 	 getsubopt: add for xopen 4.2 compatibility
 | |
| 	 drop function __IMPORT__
 | |
| 	 magic: more magic
 | |
| 	 change #define FILE from Sfio_t to struct _sfio_s
 | |
| 	 state.c: add generated includes that may be hit by std for MAM
 | |
| 	 bytesex: forgot about sizeof(long)=>7; could we fix the name too?
 | |
| 	 vmalloc.h: fix vmnewof() definition
 | |
| 	 sfio.h,stdio.h,ast_common.h: pollution cleanup
 | |
| 	 magic.c: add | op for switch
 | |
| 	 Makefile: stdio.h was on both HEADERSRC and HEADERGEN -- don't do that
 | |
| 	 drop pp:notice to get <sfio.h> ... <ast.h> to work 
 | |
| 	 regex: add [[:<:]]==\< and [[:>:]]==\> for bsd compat
 | |
| 	 mime.c: ignore X-* headers while scanning for Content-*
 | |
| 	 magic.c: check for negative indirect offsets
 | |
| 	 magic.tab: fix dos entry that generated negative indirect offsets
 | |
| 	 vmalloc.h: add vmstrdup() prototype
 | |
| 	 hash.h: add hashgetbucket() macro
 | |
| 	 magic.c: MAGIFILE is now a : file list
 | |
| 	 mnt.c: another 4.4 bsd fix -- users must include <sys/crap.h>
 | |
| 	 common: fix _WIN32 chicken&egg with va_copy
 | |
| 	 sfio: forgot to set f->val along with _Sfi in sfexcept() 
 | |
| 	 Makefile: add mini target for uwin libmini.a
 | |
| 	 sfcvt.c: workaround for flaky long double optimizers
 | |
| 	 features/common: fix to work with va_list==void*
 | |
| 	 regexec.c: fix REG_STARTEND subexpression offsets
 | |
| 	 strmatch.c: don't forget <wctype.h>
 | |
| 	 regrexec.c: fix REG_INVERT end boundary bug that missed last record
 | |
| 	 astconf.c: notify(0,0,"a=b") called for each setenviron("a=b")
 | |
| 	 pathcanon.c: check astconf(PATH_LEADING_SLASHES) to preserve //*
 | |
| 96-11-28 _LARGEFILE64_SOURCE by default if possible: NOTE: assumes xopen
 | |
| 	 regerror: fix for xopen
 | |
| 	 getopt: fix for xopen
 | |
| 	 magic: add ciao virtual database
 | |
| 	 astconf: posix/strict/xopen implies "standard" conformance
 | |
| 	 fs3d.h: hide mount prototype
 | |
| 	 ast_std.h,mnt.c,features/fs: ncr port tweaks
 | |
| 96-10-31 version 5.0
 | |
| 	 add strtoll() strtoull()
 | |
| 	 sfkeyprintf: upgrade to int_max args
 | |
| 	 ast.h: add ssizeof() to work around unsigned botch
 | |
| 	 conf.sh: add shell actions to conf.tab
 | |
| 	 _DLL*: drop for _BLD_<lib> + __EXPORT__ + __IMPORT__
 | |
| 	 sfio,cdt,vmalloc: kpv update
 | |
| 96-10-11 <ccode.h>: add character code map support
 | |
| 	 procclose: return shell style exit status
 | |
| 	 features/fs: pun statvfs.f_basetype to statvfs.f_reserved7 for mvs
 | |
| 	 uwin: add subdir for uwin additions
 | |
| 	 ast_std.h: swab() is from <stdlib.h>
 | |
| 	 sfio.h: <ast_std.h> if _PACKAGE_ast
 | |
| 	 magic.tab: add mips[1-4], 64-bit
 | |
| 	 port tweaks for sol.sun4 and sun4
 | |
| 96-09-06 strerror: add
 | |
| 	 fmterror: uses strerror
 | |
| 	 str*search: use sfiso646() order
 | |
| 	 strpsearch: add
 | |
| 	 magic: add Magic_t.mime mime type return for magictype()
 | |
| 	 mime.h: add
 | |
| 	 strton: use sfsscanf()
 | |
| 	 strperm: factor in umask() if no who
 | |
| 	 pathtmp: add TMPPATH check
 | |
| 	 libevent: add
 | |
| 	 magic: add discipline to magicopen()
 | |
| 	 mime: add discipline to mimeopen()
 | |
| 96-08-31 regex: fix BM fail table generator
 | |
| 96-08-11 mntread: fix mnt.type for SCO variant
 | |
| 	 conf.tab: add SCO KERNEL_* sysconf() vars
 | |
| 	 fastfind: add findwrite(), fix findread() FF_OFF omission
 | |
| 	 ftwalk: reimplement on top of fts
 | |
| 	 fnmatch,re_comp,regexp: reimplement on top of regex
 | |
| 	 basename,dirname,fmtmsg,fts,ftw,getdate,getsubopt,glob: add
 | |
| 	 hsearch,nftw,realpath,strftime,strptime,swab,tempnam: add
 | |
| 	 tsearch,wordexp: add
 | |
| 	 getcwd: cache last path for easy test
 | |
| 96-07-17 error: sfsync(NiL) ... write ... sfsync(sfstderr)
 | |
| 	 astconf: handle readonly *(DEV|DIR) vars
 | |
| 96-04-01 swapop: fix stupid return value bug
 | |
| 	 features/int.c: fix int_swap generation bug
 | |
| 	 regnexec,regrexec: fix unsigned underflow init error
 | |
| 	 ls.h: fix iblocks() to be in units of LS_BLOCKSIZE
 | |
| 96-02-29 magic: space before function is definition with no call
 | |
| 	 hash: drop hash_info from public interface
 | |
| 	 hash: OBSOLETE hashlast()
 | |
| 	 hash: add Hash_root_t.Hash_last_t to public interface
 | |
| 	 add strsearch() and strnsearch() to complement strlook()
 | |
| 	 add hashkey.h for keyword->long hash
 | |
| 	 pathpath: pathpath(0,0,"",0) disables $0 $_ $PWD relative search
 | |
| 	 sfio: sfstrtod+sfhdr update
 | |
| 	 regex: fix REG_LENIENT to map BRE \[+?|] to ERE [+?|]
 | |
| 	 change _std_malloc iffe test so it doesn't hang on alpha
 | |
| 	 sfhdr.h: features/sfio generates _lib_cvt instead of _i386_cvt
 | |
| 	 ast_hdr.h: add va_copy(a,b) to copy va_list b to a
 | |
| 	 getopt: fix stupid getopt() -> optget() bug
 | |
| 	 sfvprintf: %h? now downcasts
 | |
| 	 regex: handle strto?l() errno in regcomp()
 | |
| 	 sfstrtod: _Sfstrtod_already_defined -> _STUB_sfstrtod
 | |
| 	 ast_std.h: hide valloc() and ignore <strings.h>
 | |
| 	 sfkeyprintf: pass phony va_list for '2'
 | |
| 	 regex: change HIT var type from int to size_t in special()
 | |
| 	 ast.h: add EXIT_STATUS(x) to convert wait() status to sh exit status
 | |
| 96-02-14 regex: add _ to \<...\> isalnum test
 | |
| 	 regex: fix BM inner loop breakout
 | |
| 	 features/types: size_t is signed on some systems! => _ast_size_t
 | |
| 	 sfio: sfrd discipline peek optimization
 | |
| 	 vmalloc: vmalloc.h malloc family macro upgrade
 | |
| 	 tokopen: fix newline bug for non-restore open
 | |
| 	 sfio: no inline for gcc until it emits for -g too
 | |
| 96-02-12 sfio: internal upgrade
 | |
| 96-02-09 regex: Boyer-Moore boundary fix
 | |
| 	 vmalloc: snarf latest
 | |
| 96-02-06 regex: add regrecord() and regrexec() for Boyer-Moore record filtering
 | |
| 	 regex: rearrange regnexec() args to match buffer,count arg style
 | |
| 96-01-31 stk: add STK_NULL to stk.h and stk.c
 | |
| 	 regex: privatize regex.h and fix min re length computation
 | |
| 	 workaround lazy strdup() implementations in features/lib _std_malloc
 | |
| 	 fix stkclose() to free(stream) -- purify missed because of sfio links
 | |
| 	 unused var cleanup
 | |
| 	 port/mnt.c must include <ls.h> to get <ast_fs.h>
 | |
| 	 add SF_FINAL to sfio and stk
 | |
| 	 sfio reads now on natural block boundaries
 | |
| 	 add #!!! <level> <message> !!! to tokline()
 | |
| 	 add REX_BM pre-filter to regcomp/regnexec
 | |
| 96-01-22 add regcomp env.paren overflow checks
 | |
| 96-01-11 add Doug McIlroy's regex (converted to C from C++ by gsf)
 | |
| 	 AT&T Research now
 | |
| 	 sfgetr optimization
 | |
| 	 regex buglets
 | |
| 96-01-05 tweak magic.tab for win32
 | |
| 95-12-25 add !(...) -> (...)! to fmtre()
 | |
| 	 nt tweaks -- functions with no header proto must be defined extern
 | |
| 95-11-24 version 4.1
 | |
| 	 add mnt.h mntopen mntread mntclose
 | |
| 	 convert fmtfs to mnt.h
 | |
| 	 add RE_LEFTANCHOR and RE_RIGHTANCHOR
 | |
| 	 gcc inlines must also have global library function instantiation!
 | |
| 	 add hashview()
 | |
| 	 fix strtape() internal buffer flow
 | |
| 	 fix mntread() fs/dir transposition for uts mnttab
 | |
| 95-10-31 change features/unistd.c includes to break limits-param cycle
 | |
| 	 add cdt from kpv
 | |
| 	 sfio snarf from kpv
 | |
| 	 add [ht]search for _WIN32
 | |
| 95-10-11 clarify PARANOID pathcheck() warning
 | |
| 	 fix procopen() LIB_SPAWN environ bug with setenviron() cache
 | |
| 	 fix setenviron() bug that forgot to reset environ if == 0
 | |
| 	 add %Z ' ' output format to sfkeyprintf()
 | |
| 	 sfio snarf for sfvprintf fix
 | |
| 	 allow multiple hashscan() with scope caveat
 | |
| 	 add comp/fakelink.h to synthesize a few symlink text patterns
 | |
| 	 add !<xxx> magic to misc/magic.tab
 | |
| 	 add FTW_TOP to inhibit recursion (for ftw side effects on top level)
 | |
| 	 add memfatal() common malloc fatal exception message
 | |
| 	 add dos \rtest to misc/magic.c/cklang()
 | |
| 	 sftmp() O_EXCL+random to avoid collisions
 | |
| 	 pathtemp() uses sftmp() randomizing
 | |
| 	 features/fs uses SF_APPENDWR
 | |
| 	 sftmp() uses pathtemp() -- don't worry, its not circular
 | |
| 	 a few more _WIN32 compatibility additions
 | |
| 	 realloc fixed to use VM_RSCOPY|VM_RSMOVE instead of obsolete 1
 | |
| 	 add hashlook(tab, oldname, HASH_RENAME, newname)
 | |
| 	 a few more tweaks to satisfy port warnings
 | |
| 	 add _SFIO_INLINE_PRIVATE to provide real function too
 | |
| 	 fix <dirent.h> installation test
 | |
| 	 oops object / shared library compat with _sfgetl2 _sfgetu2
 | |
| 95-09-11 add getopt() compatibility
 | |
| 	 add fstat,lstat,mknod,stat fixes for _x versions in sys/stat.h
 | |
| 	 add getconf CONFORMANCE - posix for things that aren't ast default
 | |
| 	 sfio_t.h: #ifndef _SFIO_H #include "sfio.h" #endif
 | |
| 	 snarf vmalloc from kpv
 | |
| 95-08-11 fix malloc bug in magic
 | |
| 	 update linux and bsd 386 magic entries
 | |
| 	 error_info.auxilliary returns new level, |=ERROR_OUTPUT if msg done
 | |
| 	 drop fnmatch from strmatch for sparc (solaris) until it collates
 | |
| 95-07-17 fix port/astconf universe initialization
 | |
| 	 fix misc/optget opt_info.nopt initialization
 | |
| 	 drop tmset() TZ=... because it only worked when TZ=... was ignored
 | |
| 95-05-09 mongo <ast.h> namespace cleanup
 | |
| 	 drop > 2 year old obsolete interfaces
 | |
| 	 sfvprintf.c fix for (char:8 short:16 int:32 long:64) architectures
 | |
| 	 TMP_MAX back into conf.tab
 | |
| 	 pathbin() and pathshell() now use astconf()
 | |
| 	 fix pathtemp() to not cache getenv("TMPDIR")
 | |
| 	 fix ftwalk() metaphysical to handle non-dirs too
 | |
| 	 initialize *_info = { 0 }; for ancient ld semantics (NeXT)
 | |
| 	 fix magic() to do vmfree()
 | |
| 	 astconf(X_OK) must prefix lines with "getconf"
 | |
| 	 use <wchar.h> and wctype in strmatch() if available
 | |
| 	 _lib_utime_now checks utime(path,0)
 | |
| 	 _lib_poll_notimer checks poll(x,0,timeout)
 | |
| 	 add another _lib_utime_now check to port/touch.c
 | |
| 	 fix dd_buf cast in dir/opendir.c
 | |
| 	 split getconf.h into conftab.h and conftab.c for :READONLY:
 | |
| 	 use mbtowc() only if MB_LEN_MAX>1
 | |
| 	 sfio char* -> Void_t* cleanup
 | |
| 	 handle old syntax in misc/magic.c
 | |
| 	 sigdata.c holds readonly signal strings
 | |
| 	 pathcheck() does AT&T checks for tools matching PARANOID - yuk
 | |
| 	 unused var cleanup
 | |
| 	 deprecate hash_info in favor of hashlast()
 | |
| 	 fix bad conf.sh ksh integer interactions
 | |
| 	 dll cleanup
 | |
| 	 magic.c falls back to malloc for now
 | |
| 	 add environ to <ast.h> -- C library global data syms are *RESERVED*
 | |
| 	 sfhdr.h memccpy(1,2,3,size_t) prototype
 | |
| 95-04-01 version 4.0
 | |
| 	 convert to vmalloc
 | |
| 	 allow sigcritical() nesting mismatch to work around vfork() bug
 | |
| 	 add strexpr() primitive for streval() with user handle (like ftwalk)
 | |
| 	 add <magic.h> and magic.c file command magic interface
 | |
| 	 update magic mail message entry
 | |
| 	 fix keyprintf() invisible char count nesting bug
 | |
| 	 add sfstrnew(SF_READ|SF_WRITE) for alternate sfstropen() modes
 | |
| 	 sfstrnew(SF_READ) but reading requires sfseek(), sfreserve()
 | |
| 	 add conf.tab and conf.sh to nail C/POSIX limits/unistd macros
 | |
| 	 add getconf() string interface to *conf*
 | |
| 	 _DLL_INTERMEDIATE_DATA for systems that require indirect globals
 | |
| 	 _DLL for building shared libraries with _DLL_INTERMEDIATE_DATA
 | |
| 	 vecfile() restricted to S_ISREG()
 | |
| 	 add spawnveg() for job control
 | |
| 	 convert procopen() PROC_PGRP(id) to spawnveg()
 | |
| 	 fmterror() returns error text given errno (strerror() does same)
 | |
| 	 fmtsignal() returns signal text given errno (strsignal() does same)
 | |
| 	 {sig_name,sig_text,SIG_MAX} -> sig_info.{name,text,sigmax}
 | |
| 	 liberror("",...) omits [%s library] prefix
 | |
| 	 update features/signal.c table
 | |
| 	 add vmdisc() and change vmnewof() to use vmresize()
 | |
| 	 fix conf.sh to allow refs to previously defined limits
 | |
| 	 fix undefined entries in getconf()
 | |
| 	 magic data in magic.tab
 | |
| 	 fix stropt() pointer cast
 | |
| 	 vmalloc() exception handler replaces nomalloc()
 | |
| 	 merge sigdata.c into fmtsignal.c -- sun link needs function w/ data!
 | |
| 	 sftmp() bug fix
 | |
| 	 drop local <unistd.h> even with _POSIX_SOURCE
 | |
| 	 fix vmstrdup() macro arg miscount
 | |
| 	 fix conf.sh to handle enum'd symbolic constants in unistd.h
 | |
| 	 drop malloc() et.al. prototypes from vmalloc.h
 | |
| 	 fix sfvprintf() %d argument reference
 | |
| 	 add OSF/1 AES symbol(s) to conf.tab
 | |
| 	 determine standards prefix from conf.tab
 | |
| 	 add _CS_SHELL to conf.tab
 | |
| 	 getpath() default is confstr(_CS_PATH)
 | |
| 	 getshell() default is confstr(_CS_SHELL)
 | |
| 	 unify keyprintf user function args (should have learned by now!)
 | |
| 	 add quad type to magic
 | |
| 	 add astfeature() to unify universe style dynamic features
 | |
| 	 add ftwflags() to determine FTW_* flags from astfeature()
 | |
| 95-03-11 fix stropt() to not modify its *const* arg
 | |
| 	 handle "' quotes and chresc() in stropt() values
 | |
| 	 , treated like :space: between stropt() options
 | |
| 	 fix procopen() fd dup to ignore self-dups
 | |
| 	 add library id[] to misc/state.c
 | |
| 	 add ftwalk(FTW_METAPHYSICAL) for posix -H
 | |
| 	 sfvprintf() now handles balanced () in %()
 | |
| 	 add tmfmt() with buffer size check to replace tmform()
 | |
| 	 add fmttime() calling tmfmt() to fit fmt*() mold
 | |
| 	 add <keyprintf.h> and keyprintf() to support %(...)? in commands
 | |
| 	 add Hash_table_t for size==0 in stropt()
 | |
| 	 add EXTTYPE extended header to tar.h
 | |
| 95-02-14 sfmove() buffer size overflow fix
 | |
| 	 add _SFSTDIO_H to sfio.h
 | |
| 	 rename setenv() to setenviron() -- posix finally decided
 | |
| 	 rename <option.h> opt_* to opt_info.*
 | |
| 	 update features/unistd.c for _SC_* and _PC_* posix additions
 | |
| 95-01-19 (char*)uchar cast in fmtesc()
 | |
| 	 fix hash bucket memory leak in hashlook() [via John Mocenigo]
 | |
| 	 update strings/strtape()
 | |
| 	 fix optget()/optjoin() to handle leading +
 | |
| 	 add ALIGN_ prefix to <align.h> identifiers
 | |
| 95-01-11 change tm/*.c tmset(0) to tmset(tm_info.zone) to keep user setting
 | |
| 	 fix tmform() %Z null pointer dereference
 | |
| 95-01-01 add this RELEASE file
 | |
| 	 fix strperm() to properly handle "644 file"
 | |
| 	 fix tokline() to return last ' ' terminated line in string
 | |
| 	 fix tokscan() to properly handle \\n splice
 | |
| 	 add fmtesc() to complement stresc()
 | |
| 	 add LS_NUMBER to fmtls()
 | |
| 	 drop spurious optusage() ' '
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="libardir changes">libardir changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 111-08-31 ar-omf.c: fix FILENAME #pragma prototyped incompatibility
 | |
| 03-09-17 ardir.c: rewind initial peek to open position in case its /dev/stdin
 | |
| 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)
 | |
| 02-10-20 ardir.c: add ardirlist()
 | |
| 02-08-09 ardir.c: ardiropen() fails if !S_ISREG unless ARDIR_FORCE
 | |
| 02-06-11 ar-port.c: handle 4.4BSD `#1/size' long names
 | |
| 02-06-06 #ifndef EILSEQ => EINVAL
 | |
| 02-05-07 first release
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="libcmd changes">libcmd changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 12-06-25 getconf.c: don't defer to native getconf if we are it -- doh
 | |
| 12-06-19 tail.c: be nice and use sh_sigcheck() and tvsleep() to verify interrupts
 | |
| 12-05-31 cat,head,tee: use errno==EPIPE => ERROR_PIPE(errno)
 | |
| 12-05-25 vmstate.c: #include <sfdisc.h> for sfkeyprintf() prototype
 | |
| 12-04-20 chgrp.c,chmod.c,cksum.c,cp.c: default fts_flags()|FTS_META (to disable pure FTS_PHYSICAL)
 | |
| 12-03-26 cp.c: fix --interactive astquery() logic that ignored no&quit!
 | |
| 12-02-14 rm.c: --force ignores no file operands specified
 | |
| 12-01-10 b_* (int, char**, void*) => (int, char**, Shbltin_t*)
 | |
| 11-08-27 pids.c: add getsid() iffe test
 | |
| 10-08-16 chmod.c: add -l alias for { -h --symlink }
 | |
| 11-08-16 chgrp.c: change lchmod() ref to lchown()
 | |
| 11-05-03 cp.c: do not delete src if mv to dest fails -- doh
 | |
| 11-03-28 chmod.c,chgrp.c: fix --symlink logic
 | |
| 11-03-26 rm.c: don't eaccess() check symlinks!
 | |
| 11-01-27 date: add { -R, --rfc-2822, -T, --rfc-3339=type }
 | |
| 11-01-03 chgrp.c: --symlink => --physical
 | |
| 10-12-10 rm.c: fix not-writable logic
 | |
| 10-12-01 tee.c: add interrupt logic for slow open(1) -- needs to be generalized
 | |
| 10-11-30 chgrp.c: add -N,--numeric to bypass name lookup
 | |
| 10-10-20 cp: add --timestamps (preserve timestamps and permissions)
 | |
| 10-10-20 ln: fix 'cannot replace existing file' logic
 | |
| 10-10-10 cp,mv: add --remove-destination
 | |
| 10-08-11 cp.c,expr.c: use conformance("standard",0) test
 | |
| 10-08-11 cut.c: use mbnsize() instead of mblen() (for ast C.UTF-8)
 | |
| 10-07-28 chgrp.c,chmod.c,cksum.c: fts_path for diagnostics, not fts_accpath!
 | |
| 10-06-14 rm.c: fix -rfu logic
 | |
| 10-06-12 paste.c: repeat after me: do not modify argv[i]
 | |
| 10-06-01 sync with ast api 20100601
 | |
| 10-05-09 tail.c: fix -0f bug that inially listed the entire file
 | |
| 10-05-06 basename.c: add { -a,--all -s,--suffux=suffix } from BSD
 | |
| 10-04-12 cat.c: fix -v bug that dumped core and make consistent with cmp --print-chars
 | |
| 10-04-11 cmp.c: add --print-bytes, --count=n, --differences=n
 | |
| 10-04-08 vmstate.c: add { method flags } vars for Vmstat_t.mode
 | |
| 10-04-08 mkdir.c: fix check for { S_ISUID S_ISGID S_ISVTX } after successful mkdir(2)
 | |
| 10-04-01 stty.c: add --fd=fd option
 | |
| 10-03-23 tail.c: fix -f large initial offset bug that didn't copy all data
 | |
| 10-03-07 tail.c: sfsync(sfstdout) after all -f done, fix -f partial line
 | |
| 10-03-05 mktemp.c: add --regress=seed for testing
 | |
| 10-03-05 vmstate.c: add
 | |
| 10-01-26 tail.c: -f sleep(1) only if no progress from last round of checks
 | |
| 10-01-20 fts_fix.[ch]: use <fts_fix.h> instead of <fts.h> (see fts_fix.c)
 | |
| 10-01-20 cp.c: free(state) if called from old shell
 | |
| 09-12-10 join.c: <wctype.h> for iswspace()!
 | |
| 09-12-04 cmd.h: fix CMD_DYNAMIC logic
 | |
| 09-12-04 cut.c: handle -d mb
 | |
| 09-12-03 mkdir.c: add --verbose
 | |
| 09-11-30 cat.c,date.c,cksum.c: drop setlocale() call already done by optget()
 | |
| 09-11-30 join.c: handle -t mb
 | |
| 09-11-28 wclib.c: { -w -L } mb independent of -m
 | |
| 09-11-28 paste.c: handle -d mb
 | |
| 09-11-28 uniq.c: handle -s mb
 | |
| 09-11-28 cksum.c: FTS_SEEDOTDIR by default
 | |
| 09-09-09 fds.c: add --unit=fd
 | |
| 09-08-25 tail.c: initialize Tail_t.fifo=0 !!
 | |
| 09-08-15 tail.c: fix fifo logic
 | |
| 09-08-11 wc.c: add setlocale(LC_CTYPE,"C") cleanup, add utf8 optimzations
 | |
| 09-08-10 uniq.c: replace -c 1..9999 sfsprintf() with inline conversion
 | |
| 09-08-01 join.c: fix empty field null pointer deref
 | |
| 09-07-23 pathchk.c: add -P,--path and -a,--all
 | |
| 09-07-02 chgrp.c,chmod.c,cksum.c: fts_flags() default only if not --recursive
 | |
| 09-06-19 cmd.h,cmdinit.c: add ERROR_CALLBACK for ERROR_NOTIFY main() callback
 | |
| 09-06-19 mktemp.c: --unsafe now checks and prints path but does create
 | |
| 09-06-19 tee.c: add ERROR_CALLBACK for tee_cleanup() sfio discipline pop
 | |
| 09-06-18 rm.c: handle interrupts during interactive query
 | |
| 09-06-18 cp.c: handle interrupts during interactive query
 | |
| 09-05-25 tail.c: fix old style option logic to handle --invalid-long-option
 | |
| 09-05-24 tail.c: -r == +1r
 | |
| 09-05-01 mktemp.c: handle foo/prefix, add -p dir and -u
 | |
| 09-03-31 cat.c: handle --no* options
 | |
| 09-03-15 tail.c: fix --timeout termination logic
 | |
| 09-03-03 tee.c: clean up sfio disciplines on error
 | |
| 09-03-03 cat.c: fix -v|-e|-n|-B interaction bugs
 | |
| 09-02-14 tail.c: fix VSC failures
 | |
| 09-02-14 join.c: fix VSC failure
 | |
| 09-02-02 uniq.c: document -number == -fnumber, +number == -snumber
 | |
| 09-02-02 tail.c: fix usage[] for negative offsets, add sun -b
 | |
| 09-02-02 mktemp.c: add
 | |
| 09-02-02 features/utsname: UWIN _UNAME_os_DEFAULT => UWIN
 | |
| 09-01-31 dirname.c: add experimental { -f -r -x } for pathpath(3)
 | |
| 09-01-05 cmp.c: fix EOF diagnostic to conform to posix
 | |
| 09-01-03 mkfifo.c: fix --mode=mode logic
 | |
| 08-12-07 date.c: add %[_][EO]K for [space pad] [full|long] iso docs
 | |
| 08-11-10 stty.c: check for -t grouping so -tostop != -t -ostop
 | |
| 08-10-15 rm.c: handle 'rm -f x x' => exit 0
 | |
| 08-09-08 stty.c: #ifdef guard TAB[012] -- freebsd: damn the posix, full speed ahead
 | |
| 08-06-17 shcmd.h: move to libast
 | |
| 08-04-24 uniq.c: add optget() 'n' option for -1 => -f1
 | |
| 08-04-24 getconf.c: clarify diffs between "name - value" and "name = value"
 | |
| 08-04-01 cut.c: add write error check
 | |
| 08-04-01 paste.c: fix --noserial stream vector access bug
 | |
| 08-04-01 pids.c: add ls/ps style --format=format
 | |
| 08-04-01 stty.c: fix off2 uninitialized reference
 | |
| 08-03-28 chgrp.c: add --before=file
 | |
| 08-03-14 pids.c: add
 | |
| 08-03-11 chgrp.c: fix -m to use uid:gid as lookup key
 | |
| 08-02-11 Makefile: add -lmd possibly required by sumlib.o -- hack alert
 | |
| 08-01-30 expr.c: fix <=0 type that broke substr * 1 * -- wow
 | |
| 07-12-13 cp.c: fix builtin state reinitialization
 | |
| 07-11-29 rev.c: honor multibyte locales
 | |
| 07-11-27 cp.c: open non-existent destination with O_EXCL
 | |
| 07-11-27 stty.c: add -t,--terminal-group to list tty pgrp
 | |
| 07-11-27 cksum.c: --silent -s => -S, -s == -x sys5 for gnu compatibility
 | |
| 07-11-11 tee.c: drop ancient bsd compatibility "-" operand => SIGINT
 | |
| 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()
 | |
| 07-03-25 wclib.h: iswspace() requires <wctype.h>!
 | |
| 07-03-11 tty.c: add sysV --line-number, -l
 | |
| 07-02-26 Makefile: sumlib.o: direct extract from +lsum (vcodex someday)
 | |
| 07-02-24 Makefile: tweak cmdext.h action for --mam bootstrap
 | |
| 07-02-09 Makefile: { cmdext.h cmdlist.h } depend on *.c list!
 | |
| 07-02-09 Makefile: +lsum to bring in static -lsum (no dynamic right now)
 | |
| 07-02-07 cksum.c: move from src/cmd/std with ftwalk => fts
 | |
| 07-02-07 getconf.c: handle /bin == /usr/bin in defer logic
 | |
| 07-01-26 chmod.c: don't FTS_FOLLOW if !FTS_PHYSICAL
 | |
| 07-01-23 cut.c: Cut_t variable dimension list[] must be last member
 | |
| 07-01-22 uname.c: fix -h typo that clobbered astconf() state -- ouch
 | |
| 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 output
 | |
| 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 accommodate 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
 | |
| 06-02-11 getconf.c: exit 1 if name invalid -- duh
 | |
| 06-01-28 cp.c,rm.c: fix astquery() 'q' to return and not exit()
 | |
| 05-08-11 fmt.c: fix -o to handle raw --usage strings
 | |
| 05-05-17 cat.c,head.c: disable EPIPE error messages
 | |
| 05-04-14 chgrp.c: -f means all non-syntax error messages
 | |
| 05-04-11 fds.c: add from old internal open(1)
 | |
| 05-04-09 cmdext.h,cmdlist.h: generate from source -- about time
 | |
| 05-03-24 features/symlink: verify { lchmod lchown } implementations
 | |
| 05-03-07 date.c: add --listzones to list the time zone table
 | |
| 05-02-14 chmod.c: add --reference=file
 | |
| 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
 | |
| 04-02-29 cp.c: decouple -f and -i for standard CONFORMANCE
 | |
| 	 cp.c: mv now attempts rename() before remove()+rename()
 | |
| 	 date.c: -f format or +format disables system clock set
 | |
| 04-02-14 cp.c: add -F --fsync to call fsync(2) for each copied file
 | |
| 04-01-05 head.c: -s now uses opt_info.number for >2Gb skip
 | |
| 03-09-18 tail.c: add --log
 | |
| 03-09-11 rm.c: add --unconditional
 | |
| 03-08-11 fold.c: add --delimiter=c to break at c
 | |
| 03-07-28 features/time: change settimeofday() test to 2nd arg of (void*)0
 | |
| 	 expr.c: add {match,substr,index,length,quote}
 | |
| 03-07-15 fmt.c: fix trailing space bug
 | |
| 03-06-20 uname.c: fix -p constant string overwrite
 | |
| 03-06-04 stty.c: add undef to control assignment docs
 | |
| 03-05-31 uname.c: add -f and sysinfo()/confstr() compatibility via astconf()
 | |
| 03-05-27 rm.c: fix inappropriate "/.." append path overflow
 | |
| 	 cut.c: snarf from dgk
 | |
| 03-05-18 rm.c: check st_nlink to verify progress w.r.t. ftwalk/fts
 | |
| 03-05-15 join.c: fix stealth -v2 bug (thanks ahs)
 | |
| 03-05-04 wc.c: drop trailing space for `wc -l < file'
 | |
| 03-03-21 date.c: add %Q/recent/distant/ docs
 | |
| 03-02-19 date.c: fix %+|!flag docs
 | |
| 02-11-14 update for cmdinit() 4th arg and ERROR_NOTIFY for interrupt cleanup
 | |
| 02-10-02 date.c: tmform() => tmfmt()
 | |
| 02-09-30 date.c,uname.c: change execv() calls to procrun(): exec|exit => bad
 | |
| 02-09-06 wclib.c: fix 1 char-at-a-time miscount bug
 | |
| 02-08-19 chgrp.c: convert to use <cdt.h>
 | |
| 02-07-23 join.c: fix comm snarf typo
 | |
| 02-04-05 date.c: add %u
 | |
| 02-01-24 stty.c: ifdef a few more macros for uts (yes, its still running)
 | |
| 01-12-14 date.c: clarify %z doc
 | |
| 01-10-31 mkdir.c: mkdir() on existing dir could fail with errno!=EEXIST
 | |
| 	 uname.c: add execve() loop check for unknown options
 | |
| 01-10-29 tail.c: SF_SHARE on only if not reading through EOF
 | |
| 01-10-11 getconf.c: fix usage typos
 | |
| 01-09-11 cp.c,cmd.h: handle . in argv[0]
 | |
| 	 cp.c: add O_BINARY to all open() calls
 | |
| 01-09-06 tail: input streams must be SF_SHARE -- duh
 | |
| 01-07-16 stty: fix cntl() macro for CC_NATIVE!=CC_ASCII
 | |
| 01-05-31 date: fix /bin/date fallback logic
 | |
| 	 stty: fix a few mismatched flags, -a and -g option logic
 | |
| 	 stty: tone down sane to modify current settings rather than from zero
 | |
| 01-05-01 uname: -i => -h, add sol.sun4 -i, add sgi -R, punt to /usr/bin/uname
 | |
| 01-04-17 date,rm: add
 | |
| 01-03-07 cp: fix readonly string mod on "."
 | |
| 01-01-23 cp: `cp foo' => `cp foo .' only for CONFORMANCE!=standard
 | |
| 00-12-01 cut: multibyte support
 | |
| 00-10-31 mkdir: handle races by checking EEXIST
 | |
| 00-09-20 cp: copy argv to stack before modifying in place
 | |
| 00-05-18 add setlocale(LC_ALL,"")
 | |
| 00-04-30 join: drop weird opt_info.argv reference
 | |
| 00-03-17 expr: add == operator -- duh
 | |
| 	 cp,ln,mv: delay pathcanon() on destination to verify `cp a b/.'
 | |
| 	 getconf: use astgetconf for proper message control
 | |
| 	 ERROR_translate: dictionary update
 | |
| 00-03-08 tail: handle multiple -f files
 | |
| 00-03-07 fmt: add
 | |
| 00-03-07 dirname: handle PATH_LEADING_SLASHES as documented
 | |
| 	 tail: accept + options
 | |
| 00-02-14 chmod: --ignore-umask to ignore umask(2) in symbolic expressions
 | |
| 	 chmod,chgrp,cp: use FTS_NOSEEDOTDIR for correct path construction
 | |
| 	 cat: fix -n (was ignored, wow)
 | |
| 00-01-27 getconf: add "-a" and "-v spec" for sol7.* compatibility
 | |
| 99-09-09 join: fix -j1 vs. -j 1, add --ignorecase
 | |
| 99-06-22 paste: default delim in writable string
 | |
| 99-06-16 cat: fix --dos-ouput typo
 | |
| 99-06-11 cp: tighten chown() diagnostics
 | |
| 99-06-08 expr: nothing for NULL string bug fix
 | |
| 99-05-21 paste: fix missing newline columnize bug
 | |
| 99-05-20 mv: do not check for `mv foo foo' since rename() handles it
 | |
| 99-05-01 cmp,comm,cp/mv/ln,expr,fold,getconf,head: long options
 | |
| 	 join,logname,paste,pathchk,tail,tee: long options
 | |
| 99-04-10 uname: long options, stdize -a
 | |
| 	 chmod,head,tail,rev: long options
 | |
| 	 cut: long options, pass regression test 02
 | |
| 99-04-07 cat: long options, fix O_TEXT modes
 | |
| 99-01-11 tail: fix +n
 | |
| 	 join: another ggs/psm bug
 | |
| 	 join: all 1 and/or 2 to be unseekable
 | |
| 99-01-01 cp: fix -p
 | |
| 	 chmod: drop -l option because of clash with l (lock) mode
 | |
| 98-12-25 cat: add -T to sfopen(,,"rt")
 | |
| 98-11-11 chgrp,chmod: cannot open file stream => not found
 | |
| 	 join: fix another ggs/psm bug; thanks guys
 | |
| 98-10-20 cp: fix cp -rp to update dir times too
 | |
| 98-09-22 join: fix ggs null field bug
 | |
| 98-08-11 join: fix last regression test bug
 | |
| 98-05-29 join: add jp->common to handle boundary conditions
 | |
| 98-03-11 cat,cp,rev,tee: fix sfmove() error checks
 | |
| 98-03-01 join: fix bug that emitted records more than once after eof
 | |
| 	 cp: fix sfmove() error check
 | |
| 98-02-14 cp: -R physical, -[HLP], -r getconf(PATH_RESOLVE)
 | |
| 98-01-11 cp: check sfclose() return value
 | |
| 98-01-07 chown,chgrp,chmod: use fts for -R
 | |
| 	 mkdir: fix -p default mode
 | |
| 97-12-07 mkdir: fix umask() reset
 | |
| 97-11-11 chown,chgrp: proper interpretation of -h,-l for lchown()
 | |
| 	 chown,chgrp: only chown() if uid or gid change
 | |
| 97-10-31 mkdir: do umask right
 | |
| 97-08-11 cmdinit: clear opt_info.index to allow multiple calls
 | |
| 	 cp,ln,mv: add
 | |
| 97-07-17 join: fix a few more -a bugs
 | |
| 97-05-31 expr: optget() only if CONFORMANCE==standard
 | |
| 97-04-01 join: fix a few bugs that make it work!
 | |
| 96-12-25 head: sfset(sfstdin,SF_SHARE,1)
 | |
| 	 Makefile: add -last to cmd lib list
 | |
| 	 drop function __IMPORT__
 | |
| 96-08-11 tail: check for truncated file and rewind for -f
 | |
| 96-04-08 update <cmd.h>
 | |
| 96-02-29 uname: -a like std, -l for everything
 | |
| 	 id: add -a (default)
 | |
| 96-02-14 wc: speed up inner loop newline breakout
 | |
| 96-01-30 unused var cleanup
 | |
| 96-01-01 AT&T Research now
 | |
| 	 pathchk: handle getcwd(0,0) error
 | |
| 	 expr: switch to <regex.h>
 | |
| 95-11-11 add expr.c
 | |
| 	 fix cut exit code and -s optimization
 | |
| 95-10-11 add extern b_* to cmd.h
 | |
| 	 add void* context 3rd arg to b_main()
 | |
| 95-05-09 add getconf
 | |
| 	 cat -u avoids mmap
 | |
| 	 add chown|chgrp -m uid|gid map file
 | |
| 	 add chown|chgrp -P for systems with lchown(2)
 | |
| 	 chown|chgrp -P => lstat() too!
 | |
| 	 chmod|chown|chgrp -HLP
 | |
| 95-04-01 version 1.2
 | |
| 	 add rmdir
 | |
| 95-02-14 fix mkdir -p symlink bug
 | |
| 	 fix mkdir '/' skip bug that went one too far
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="libdll changes">libdll changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 12-07-25 add debug diagnostics
 | |
| 11-10-11 dll_lib.c: add { dllnames() dll_lib() }
 | |
| 10-10-20 dllscan.c: version arg "-" => 0
 | |
| 10-10-19 dllplug.c: fix bug that wiped out dlopen() error message
 | |
| 10-10-19 dllplug.c: un-localize lookup names (happens with cut and paste)
 | |
| 10-10-19 dllscan.c: still no code for implicit libs missed by dlopen()
 | |
| 10-08-02 dllplug.c: fix local path dllcheck() call
 | |
| 10-05-28 dllplug.c: add dllplugin() with dllcheck() version check
 | |
| 10-05-28 dllcheck.c: add dllcheck() to do plugin_version() checks
 | |
| 10-05-28 dllerror.c: add dllerror(int retain) for dll*() and dl*() messages
 | |
| 09-11-17 dllscan.c: handle name[-.]version in dlsopen()
 | |
| 09-04-15 dllopen.c: add, use dllopen() internally to wrap dlopen()
 | |
| 08-05-12 dllscan.c: LIBSUFFIX==.dylib => default plugin version match 0.0
 | |
| 06-10-11 dllscan.c: check sfstruse() return values -- doh
 | |
| 06-01-25 dllplug.c: add errorf() library message for dlopen() error
 | |
| 05-02-14 dllscan.c: "" || "-" => NiL
 | |
| 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()
 | |
| 04-01-30 dllfind.c: dllplug(error_info.id) then dllplug(0)
 | |
| 04-01-28 dllscan.c: update for new plugin scheme: lib/foo/bar.xxx
 | |
| 	 dllplug.c: add dllplug() for plugin dllfind()
 | |
| 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
 | |
| 02-11-18 dllfind.c: add path,size args (with backwards compatibility checks)
 | |
| 02-11-15 dllfind.c: check for ./path if '.' in path but no '/'
 | |
| 02-08-30 dllfind.c: fix a bug that returned uninitialized value on not found
 | |
| 02-08-28 dllscan.c: handle and display bin as a sibling dir
 | |
| 02-07-31 dllscan.c: add dllsopen,dllsread,dllsclose
 | |
| 	 dllfind.c: use dllsopen,dllsread,dllsclose
 | |
| 02-07-26 dllfind.c: add dllinfo()
 | |
| 02-06-27 dllnext.c: define _GNU_SOURCE to enable RTLD_NEXT
 | |
| 02-03-17 dllfind.c: fix dll prefix search (for cygwin)
 | |
| 02-01-11 features/dll: include <dlfcn.h> only if _hdr_dlfcn&&_lib_dlopen
 | |
| 01-10-31 dlfcn.c: change hp.pa dlopen() prototype (<dlfcn.h> but no -ldl!)
 | |
| 01-09-25 dllfind: add LIBSUFFIX
 | |
| 01-07-17 dllfind: do at least one dlopen() to prime dlerror()
 | |
| 01-05-29 dlopen: fix dlopen(0,0) for HP
 | |
| 01-04-20 dllfind: use getconf HOSTTYPE LIBPATH LIBSUFFIX
 | |
| 01-02-14 features/dll: fix unbalanced ' quote and ancient hostinfo reference
 | |
| 00-01-26 dlllook: add -- dlsym() with `_' weak prefix fallback
 | |
| 99-04-01 features/dll: drop <stdio.h> -- iffe protos printf
 | |
| 99-03-19 static=1 for all but win32.*
 | |
| 98-06-01 dllfind: fix version search
 | |
| 98-03-11 features/dll: probe for _DLL_RLD_SYM
 | |
| 98-03-01 dllnext: fix to work!
 | |
| 98-01-23 -ldl test moved to lib0ast
 | |
| 98-01-11 update for astconf("LIBPATH")
 | |
| 	 add dllnext(flags) to uncover next layer
 | |
| 	 dllfind() and dllnext() in separate files (for 3d)
 | |
| 97-10-11 move from libast so libast can link static
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="libexpr changes">libexpr changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 12-07-18 exgram.h,exeval.c: handle scanf("%[^#0093;", &v) -- thanks Philippe
 | |
| 11-08-25 exparse.y: fix "begin()" frame symbol table check
 | |
| 11-06-30 extoken.c: enter LABEL: in the parent scope symbol table!
 | |
| 11-06-26 exparse.y: fix bug that lost function return type
 | |
| 11-03-16 exparse.y,expr.h: fix statement_list cons tail recursion
 | |
| 11-03-03 eparse.y: fix function reff node pointer
 | |
| 11-03-03 exeval.c: function env is args[-1]
 | |
| 10-11-30 fix "begin" scope logic that caused tw bug
 | |
| 10-08-18 add static, global and function level variable scopes
 | |
| 09-02-02 exgram.h: drop function ref in call() to avoid eval in exeval()
 | |
| 06-10-11 add exstash() and exnospace() for sfstruse()/vmstrdup() errs
 | |
| 05-10-25 exeval.c: fix I2F unsigned cast
 | |
| 05-04-20 exeval.c: fix sscanf() runtime argument check logic
 | |
| 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
 | |
| 04-02-26 add scanf() and sscanf()
 | |
| 02-10-02 exeval.c: tmform() => fmttime(), static nmbuf[] => fmtbuf()
 | |
| 02-09-11 expr.h: move exbuiltin[] to private exlib.h
 | |
| 99-09-22 exparse.y,exeval.c: add for(ID[DYNAMIC])
 | |
| 	 exparse.y: ref[i].ref
 | |
| 98-12-25 excc: fmtesq() to handle 
 | |
| 98-11-11 expr.h: add disc matchf for strmatch
 | |
| 	 exlib.h: fix exeval string mem leak with Expr_t.ve
 | |
| 98-09-11 expr.h: move Exdata_t to last public element of Exnode_t
 | |
| 98-07-17 label: return type INTEGER
 | |
| 	 add exdump() for debugging
 | |
| 98-05-22 STRING * STRING == common chars by position, ' ' for diff
 | |
| 98-05-11 add function args; NOTE: auto's still global
 | |
| 98-04-01 sfprintf Sffmt_t update
 | |
| 98-02-14 fix aggressive freenode
 | |
| 98-02-04 finally drop exstr*() for vmalloc regions
 | |
| 97-12-07 preprint adjusts l count for %[doux]
 | |
| 97-10-31 tweak INTEGER <=> auto conversions
 | |
| 97-10-01 INTEGER is now Sflong_t
 | |
| 97-08-11 add pathfind()
 | |
| 	 add '$' to identifier set
 | |
| 	 eliminate S2B at PROCEDURE level
 | |
| 97-07-17 discipline interface (incompatible but only tw,cql affected)
 | |
| 	 add excc() to generate C expression code
 | |
| 	 drop exinclude()
 | |
| 	 add printf base param (%width.precision.base<format>)
 | |
| 96-12-25 rearrange exparse.y to keep yacc and bison happy
 | |
| 95-08-11 drop exseek(), add exstatement(), exrewind()
 | |
| 	 tune excontext()
 | |
| 95-05-09 drop %token for tokens in %binary,%left,%right to avoid redef errors
 | |
| 	 add EX_CALL and EX_SCALAR to refval|getval|setval elt arg
 | |
| 	 excomp with sp==0 and fp==0 resumes from previous context
 | |
| 	 fix exseek()
 | |
| 	 loosen excast() restrictions
 | |
| 	 fix Oexparse.[ch] generation
 | |
| 95-04-01 add solaris yacc bogus yyact index makefile workaround
 | |
| 	 fix switch newof() size=0!
 | |
| 95-03-19 fix exstore() alignment bug
 | |
| 95-01-11 prepare extoken.c for TRACE_lex==debug-level
 | |
| 	 add exseek() for backup
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="librecsort changes">librecsort changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 12-05-28 rskey.c: fix unsigned comparison to 0
 | |
| 11-10-11 recsort.h,rskeyopen.c: RSKEY_VERSION=20111011, add Rsdisc_t* argument
 | |
| 11-09-27 rsopen.c,rsmerge.c: drop obsolete VM_TRUST
 | |
| 10-05-25 rskey.c: locale-ize Rskey_t.tab and key_m_code()
 | |
| 10-04-22 rskey.c: 'C' codeer => 'E' to make way for posix -C
 | |
| 09-12-09 rskey.c: add h option for key_n_code (IEEE 1541-2002 scales)
 | |
| 09-05-11 rskey.c: add collation mbxfrm() overflow panic (yes I know)
 | |
| 09-05-11 rskey.c: fix mbxfrm() return value logic
 | |
| 07-12-14 rskey.c: fix mb fixed field offset >= 99 key gen 
 | |
| 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
 | |
| 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()
 | |
| 06-02-09 rstemp.c: sfset(SF_READ|SF_WRITE) not needed
 | |
| 05-12-01 -lsync event callout bug fixes -- finally working?
 | |
| 05-11-28 rswrite.c: honor RS_OTEXT
 | |
| 05-11-09 rsmerge.c: fix RS_ITEXT+notify logic
 | |
| 05-10-18 rsprocess.c: RS_READ callouts finally in the right place
 | |
| 05-10-12 rstemp.c: keep temp write SF_WRITE and temp read SF_READ
 | |
| 05-08-22 rsmerge.c: fix RS_WRITE callouts
 | |
| 05-06-30 rsmerge.c: handle all RS_TEXT record formats
 | |
| 05-06-28 add rsnew()+rsinit() to split rsopen() for rsfile*()
 | |
| 05-06-27 rstemp.c: add temp file support and RS_TEMP_* events
 | |
| 	 rsfile.c: add input/output file open RS_FILE_* events
 | |
| 05-06-11 rskey*.c: initialize disc->data via REC_*_TYPE macros -- doh
 | |
| 05-05-15 handle disc->data Recfmt_t
 | |
| 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
 | |
| 04-02-11 rskey.c: fix old ast reclen:fieldlen:offset parse
 | |
| 03-10-11 recsort.h: add RS_IGNORE Rs_t.type hint
 | |
| 03-09-18 rswrite.c: fix RS_WRITE exceptions
 | |
| 03-09-06 rskey.c: add 'Z' key_z_code for zoned decimal
 | |
| 03-09-04 rsprocess.c: rs->disc->data==-1 => ibm v format records
 | |
| 03-09-03 rslib.c: rslib() separator expanded to [,\t\r#0093;
 | |
| 03-09-01 recsort.h: add rslib(), discipline stack, extra event arg
 | |
| 03-08-29 recsort.h: add RS_READ and RS_WRITE events
 | |
| 03-08-15 rskey.c: add -Jseed for random shuffle (jumble)
 | |
| 03-05-27 rskey.c: add Ci[o] code set [conversion]
 | |
| 03-05-26 rskey.c: add 'p' packed decimal (bcd)
 | |
| 03-05-23 recsort.h: add Rskey_t.code for global ccode index
 | |
| 03-05-22 rskey.c: handle -k.reclen -k.position.length
 | |
| 03-05-21 recsort.h: add events mask to Rsdisc_t, change Rskey_t disc to pointer
 | |
| 	 rsnotify.c: add
 | |
| 03-03-07 Makefile: generate dll for dr. ek
 | |
| 03-01-21 rsmerge.c: fix typo that kicked in on large (~100K) record sizes
 | |
| 01-01-01 recsort.h: _RSHDR_H => _BLD_recsort; should have been done years ago
 | |
| 00-08-31 rskey.c: fix code() buffer off by one (too far)
 | |
| 00-03-17 rskey.c: consult RLIMIT_DATA for size limits
 | |
| 00-01-25 rskey.c: win32.i386 optimizer generates bad code for key_n_code
 | |
| 99-11-19 rskeylist.c: add usage
 | |
| 99-07-28 rskey.c: factor number of key fields into rs.disc.key
 | |
| 99-03-03 recsort.h: add RSKEYDISC() to get Rskey_t.keydisc from Rsdisc_t*
 | |
| 98-08-11 add rsmerge() write error detection
 | |
| 96-12-25 add (ulong) for alpha 64 bit << bug (ahem..correct stdc interpretation)
 | |
| 	 add (int) for unsigned char subtracts
 | |
| 	 drop function __IMPORT__
 | |
| 	 use vmalloc() for all allocations
 | |
| 	 we're getting sick of bsd: <stdlib.h> has a radixsort() prototype!
 | |
| 	 unroll rs-rasp.c for the hp.pa compiler; don't trust it!
 | |
| 96-10-31 sfio,dll update
 | |
| 	 drop MAXFIELD restriction by converting to linked list
 | |
| 	 add -k*a to accumulate fields from dup keys
 | |
| 96-10-22 K&R cast cleanup
 | |
| 96-10-17 iffe test for sizeof(long)==8
 | |
| 96-10-15 oops -- regression test bug let rswrite() bug through
 | |
| 96-10-11 all regression tests pass for all methods
 | |
| 96-10-01 rskey discipline and eventf; remove libast dependencies
 | |
| 96-09-20 rskey(kp,s,obsolete)
 | |
| 96-09-18 first working version with -lsort (ok, so -c and -m don't work yet)
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="libsum changes">libsum changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 12-02-29 sum-sha2.c: bitcount[] order reversed to allow a single noalias buffer copy
 | |
| 09-09-28 sumlib.c: use simple (faster) method name match function
 | |
| 08-06-05 sum-lmd.c: align context to largest int
 | |
| 08-05-01 sumlib.c: add some -lmd verification checks
 | |
| 08-02-11 sum-lmd.c,features/sum: add wrapper for solaris -lmd
 | |
| 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
 | |
| 05-02-14 sumlib.c: split into sum-*.c
 | |
| 05-02-14 sum-sha2.c: add SHA { 256 384 512 }
 | |
| 04-02-29 Makefile: compile with $(CC.PIC) for codexlib/sum $(CC.DLL)
 | |
| 03-12-16 add { crc prng } generic methods and maps[] to these methods
 | |
| 03-12-16 sum.h,sumlib.c: add sumdata()
 | |
| 03-09-29 sumlib.c: fix FNV to use ^ instead of +
 | |
| 03-04-28 sumlib.c: drop md5 `zeroize' for performance
 | |
| 	 sumlib.c: add FIPS 180-1 SHA-1
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="libuu changes">libuu changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 09-09-24 uulib: add cat method for mail sevenbit|7bit encoding
 | |
| 03-01-07 uulib: check UU_HEADER in bx_header()
 | |
| 01-03-27 uulib: add UU_LOCAL for local path conversion
 | |
| 00-03-06 uulib: !UU_HEADER decode checks for candidate encodings
 | |
| 00-03-04 uulib: add posix decode size check
 | |
| 98-12-25 uu_encode: fix dp->fill usage
 | |
| 98-11-11 uulib: add binhex encode
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="libvdelta changes">libvdelta changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 12-02-14 vdelhdr.h,vdio.c: apply patch from philippe.bergheaud
 | |
| 04-03-14 vdelta.h: #if !_DLL => #if !defined(_DLL) to handle empty value
 | |
| 08/11/95 version 2.0 -- new delta layout but old update recognized
 | |
| 04/24/95 back out of latest version -- incompatible deltas generated
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="libbz changes">libbz changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 10-11-08 bzlib.[ch]: change bzReadGetUnused 3rd arg to void* for strict aliasing
 | |
| 09-04-15 bzlib.c: add bzfopen()
 | |
| 03-05-13 sfdcbzip.c: add SF_DBUFFER exception, SF_SHARE before sfreserve()
 | |
| 02-02-14 blocksort.c: drop -O for msvc
 | |
| 02-01-24 bzhdr.h: rename from bzlib_private.h for 14 char fs
 | |
| 01-01-01 bzlib.h: add _PACKAGE_ast checks
 | |
| 99-09-11 sfdcbzip: return >0 if discipline pushed
 | |
| 99-07-17 sfdcbzip: don't free disc on SF_CLOSE
 | |
| 99-03-17 split library from command, sfdcbzip.[ch]
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="libz changes">libz changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 07-11-29 sfdcgzip.c: add seekf() for first buffer rewind
 | |
| 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
 | |
| 07-01-25 zlib.h,gzio.c: add gzbopen() to handle buffered unseekable data
 | |
| 07-01-25 sfdcgzip.c: use gzbopen() to handle buffered unseekable data
 | |
| 05-07-25 __MVS__ tweaks
 | |
| 05-03-21 snarf and merge zlib 1.2.3, drop gzseek64() gztell64()
 | |
| 05-05-11 sfdcgzip.c: change return value to [cgv], add vcunzip read check
 | |
| 04-02-14 sfdcgzip.c,sfdclzw.c: add SFDCNEXT()/SFDCPREV() calls
 | |
| 03-05-13 sfdcgzip.c,sfdclzw.c: add SF_DBUFFER exception, SF_SHARE+sfreserve()
 | |
| 03-03-13 gzio.c: eliminate fixed gzprintf() buffer size via sfio string stream
 | |
| 03-01-20 zlib.h,gzio.c: add gzreopen()
 | |
| 02-09-11 zlib.h: move 64 bit counts to internal_state
 | |
| 02-08-05 add z_off64_t, gzseek64() etc. to preserve old binary interface
 | |
| 	 work around 2^32 file size limitations
 | |
| 02-06-11 add uSize == unsigned _ast_intmax_t; fix header size check
 | |
| 02-05-22 zconf.h: fix __32BIT__ logic
 | |
| 02-03-11 infblock.c: apply double free patch
 | |
| 02-03-09 gzio.c: add stream->fatal to mark fatal errors previously ignored
 | |
| 	 sfdcgzip.c: fix exception return values and mark SF_ERROR on fatal
 | |
| 02-01-30 minigzip.c: error() => mgzerror() to avoid ancient ld dup sym error
 | |
| 	 minigzip.c: [uU] in executable base name => gunzip, otherwise gzip
 | |
| 01-09-18 zconf.h: include <ast_std.h> for __IMPORT__ and __EXPORT__
 | |
| 00-09-11 gzio: don't set verified=1 in check_header() for concatenation
 | |
| 99-11-19 gzio: add missing _PACKAGE_ast
 | |
| 99-09-11 sfdcgzip,sfdclzw: return 1 if discipline pushed
 | |
| 99-08-11 gzio: fix gzread() z_err to keep Z_STREAM_END after check_header()
 | |
| 99-07-17 sfdclzw: don't free disc on SF_CLOSE
 | |
| 99-06-23 fix gzread/gzwrite to return -1 on error (fixes sfio disc loop)
 | |
| 99-02-14 fix SFGZ_SETPOS to flush/sync for mode=='w' only
 | |
| 99-02-04 add SF_CLOSE to output trailer before the underlying stream is closed!
 | |
| 98-12-01 drop lzwWrite and lzwSeek in sfdclzw 
 | |
| 98-11-01 pushed stream buffer size is SF_BUFSIZE
 | |
| 98-10-01 add SFGZ_GETPOS and SFGZ_SETPOS
 | |
| 98-03-19 sfgzip => sfdcgzip
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="libcoshell changes">libcoshell changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 12-02-22 coinit.c: handle non-identifier export var names
 | |
| 11-12-13 cowait.c: handle sfpoll() error return on interrupt
 | |
| 11-11-21 cowait.c: poll before blocking read to weed out killed jobs (no 'x' message)
 | |
| 11-08-30 codata.c,coopen.c: drop macro "..." catenation for old cc
 | |
| 10-08-11 coinit.c: force _BLD_DLL for environ intercept
 | |
| 10-06-01 sync with ast api 20100601
 | |
| 10-05-19 cokill.c: do cowait(co,co,0) to drain pending messages
 | |
| 10-05-15 coshell.h,coopen.c: add CO_ORPHAN for PROC_ORPHAN
 | |
| 10-05-11 coopen.c: add PROC_ORPHAN for CO_SHELL
 | |
| 10-05-10 coopen.c: no atexit() for CO_SHELL
 | |
| 10-04-15 first ksh93u local job pool tests work (service daemon tbd)
 | |
| 10-04-14 cowait.c: add 3rd cowait() arg timeout; 0 Coshell_t* operates on all open coshells
 | |
| 10-04-10 coshell.h: add CO_SHELL for shell using coshell!
 | |
| 09-12-09 coexport.c: add runtime CO_ENV_EXPORT hook that avoids changing environ
 | |
| 08-10-28 coopen.c: close write side of parent msgfd -- doh
 | |
| 08-04-28 coexec.c: check for fd 1,2 equivalence before CO_SERIALIZE 2>&1
 | |
| 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
 | |
| 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
 | |
| 05-04-19 cowait.c: beef up invalid message tests and diagnostics
 | |
| 05-04-11 drop fixed CO_MSGFD for $_coshell_msgfd
 | |
| 05-04-07 coexec.c: fix !_lib_fork&&_map_spawnve close-on-exec redirection
 | |
| 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()
 | |
| 04-02-11 coinit.c: fix CO_CROSS PATH initialization
 | |
| 02-10-30 coclose.c: fix reference-after-free bug in coclose()
 | |
| 02-01-31 codata.c,coopen.c: fix CO_MSGFD parameterization
 | |
| 02-01-24 coopen.c: fix small memory leak
 | |
| 01-10-26 coopen.c: hung sfclose(fp) -> close(sffileno(fp)) -- wow
 | |
| 01-09-11 coinit.c: fix coident[] for ancient bsh that die on `test == 1'
 | |
| 	 coinit.c: and fix coident[] to weed out buggy ksh88i trap on exit
 | |
| 01-05-31 co*: add CO_CROSS, expose CO_DEVFD
 | |
| 01-04-23 coquote: add state.type to avoid getenv() overwrite on some systems
 | |
| 01-01-01 cokill: killjob => cokilljob, killshell => cokillshell
 | |
| 00-12-18 coinit: CO_OSH ? "${!-$$}" : "${!:-$$}"
 | |
| 00-10-25 codata: $ZSH_VERSION is not ksh
 | |
| 00-02-14 procrun,system: system(3) returns wait() status (not shell status)
 | |
| 99-11-19 co*: add CO_OSH for bsdi lack of times(1)
 | |
| 	 coexec: CO_IGNORE for all but real ksh
 | |
| 98-06-22 coinit: quote cd path arg
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="libcs changes">libcs changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 10-06-01 sync with ast api 20100601
 | |
| 10-04-12 Makefile: defer share and local generation to first use
 | |
| 08-04-09 csopen.c: fix mkmount() path cleanup
 | |
| 08-04-09 csopen.c: add debug=-1 mkmount() error message
 | |
| 07-06-05 csclient.c: add CS_CLIENT_SEP
 | |
| 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
 | |
| 05-02-04 Makefile: drop -lnetinet (for lynxos)
 | |
| 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
 | |
| 03-08-01 csdata.c: add NoF pure data workaround, drop const + prototyped
 | |
| 03-03-28 msglib.h: add D_FILENO ifdef
 | |
| 02-10-02 features/lib,genlocal.sh: add ssh, pid to hang warning
 | |
| 	 msglist.c: tmform() => fmttime()
 | |
| 01-12-12 cssfd: CS_POLL_CLOSE now close()'s if not dropped -- double duh
 | |
| 	 csstat: change down test to avoid unsigned long overflow
 | |
| 01-10-31 cssend,csrecv: use msg_accrights over msg_control
 | |
| 	 cspath: don't check /dev/fd/* -- duh
 | |
| 01-05-11 csserve: sync cs.* with css->*
 | |
| 	 csspoll: handl cspoll() EINTR that doesn't set cs.interrupt
 | |
| 01-01-01 cspoll: fix getmsg() flag arg
 | |
| 	 csaddr: fix local host addr initialization
 | |
| 00-06-01 csopen: handle dynamic ip assignment underfoot
 | |
| 00-05-11 csopen: handle /dev/tcp/local/9876/FOO/other
 | |
| 00-05-09 cssfd: CS_POLL_WRITE implies O_NONBLOCK
 | |
| 00-02-14 cschallenge(): add stat() to verify touch()
 | |
| 00-02-03 features/lib: add sys/types.h to htons etc. header refs
 | |
| 00-01-25 genlocal: use package instead of hostinfo
 | |
| 99-10-07 csbind: NODELAY for CS_ADDR_NOW only
 | |
| 99-09-22 cs*: add CS_MNT_TAIL for multi-char mount files
 | |
| 	 css: _UWIN workaround for st_ino verification
 | |
| 99-07-17 csaddr: clear more state->flags bits to avoid prev csopen() carryover
 | |
| 99-05-20 msg*: handle f_basetype and f_fsid for redhat 6.0 linux -- boo
 | |
| 99-05-13 css: fix disc.wakeup logic
 | |
| 	 cspoll: add debug=6 poll trace
 | |
| 99-04-23 csaddr: check for 127.0.0.[01] from hostname lookup == local
 | |
| 98-06-29 cs.h: add Cs == (&cs)
 | |
| 98-06-03 csserve: fix SIGCHLD exit bug
 | |
| 98-02-14 csopen: add PROC_ZOMBIE for systems that don't fork() in csdaemon()
 | |
| 97-11-27 csopen: /dev/tcp/*/inet.*/user for client inet.* authentication
 | |
| 	 css.h: add CSS_AUTHENTICATE for server inet.* authentication
 | |
| 97-11-11 csread: add CS_RESTART to restart on interrupt
 | |
| 	 cslib: CS_AUTH_MODE for authentication file mode
 | |
| 	 cs.h: drop CS_SVC_SERVICE, add CS_SVC_SUFFIX
 | |
| 	 SERVICE.mk: executable name changed from server => `service'.svc
 | |
| 	 csopen: rm CS_MOUNT_PROCESS if no connect and pid invalid
 | |
| 97-07-17 add css.h, csserve() on top of css
 | |
| 	 CS_INTERFACE=2 for thread safe state instead of global cs.*
 | |
| 	 cspoll(CS_POLL_WRITE) events cleared on write
 | |
| 	 csspoll(timeout,CSS_INTERRUPT|CSS_ERROR)
 | |
| 	 cs.h,msg.h: fix dll import/export
 | |
| 97-05-09 cslib.h: check _hdr_netdb,_hdr_netinet_in,_hdr_netinet_tcp
 | |
| 	 features/lib: statvfs.f_fstr
 | |
| 	 msglib.h: <ast.h> before "cs_lib.h"
 | |
| 97-04-01 csport: htons() done too soon
 | |
| 96-12-25 genlocal: add correct nslookup query
 | |
| 	 fix sizeof(long)==4 assumptions
 | |
| 	 install genlocal and genshare in $(INSTALLROOT)/lib/$(ID)
 | |
| 96-02-29 use <hashkey.h>
 | |
| 	 add csport()
 | |
| 	 drop CS_MOUNT_*; use csvar(CS_VAR_*,trust) instead
 | |
| 	 CS_VAR_PROXY ($CS_MOUNT_PROXY) names proxy connect stream
 | |
| 	 csopen() attempts proxy open on local failure
 | |
| 	 hold CS_PROC_FD_TST cssend() fds until next cssend()
 | |
| 	 csread(CS_LINE) really means 1 line
 | |
| 	 fix cslocal() and csopen() fdp initiate timing bug
 | |
| 96-01-31 add warning to local rather than generate on install
 | |
| 96-01-22 no <sys/uio.h> on linux (defined(MAX_IOVEC))
 | |
| 95-11-11 trap 127.0.0.[01] local address alias in cspath() and csntoa()
 | |
| 95-10-31 CS_MNT_OTHER '.' -> '#' to placate NT (trailing . ignored -- thanks)
 | |
| 95-10-11 export -> coexport
 | |
| 	 add dirsize() to cslib.h
 | |
| 	 check _mem_d_reclen_dirent for d_reclen
 | |
| 95-08-11 (done)(handle,EXIT_TERM(signal)) called on csserve() interrupt
 | |
| 		0 return ignores signal
 | |
| 	 csserve() now creates local auth dir if not there, duh
 | |
| 	 fix genlocal hostinfo timeout
 | |
| 95-07-17 fix remote auth off by one error
 | |
| 95-05-09 add linux /proc/<pid>/fd/<fd> to cssend()-csrecv()
 | |
| 	 add bsd4.4 msghdr.msg_accrights -> msghdr.msg_control mods
 | |
| 	 bsd4.4 thinks S_ISFIFO() and S_ISSOCK() are the same!
 | |
| 	 features/cs.c now uses sfio
 | |
| 95-04-01 convert genlocal.sh to hostinfo
 | |
| 95-03-19 bsd4.4 stole devname(), so use devpath() in cspath()
 | |
| 94-12-15 csinfo("-",0) gets standard info
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="libmam changes">libmam changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 10-06-01 sync with ast api 20100601
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="libpp changes">libpp changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 12-06-06 ppline.c: preserve hosted sync even for normal sync
 | |
| 12-02-29 pp.probe: handle predefined function-like macro definitions
 | |
| 12-02-14 ppproto.c: fix "already noticed" logic
 | |
| 11-08-30 ppproto.c: bump BLOCK to 16*1024 for (ppargs.c self-doc!)
 | |
| 11-03-15 ppop.c: add ppok() readonly check for subset of ppop(PP_*)
 | |
| 11-03-02 ppop.c,ppcontrol.c: use ppset() to handle readonly values
 | |
| 10-09-01 RE errors => exit(2)
 | |
| 10-09-01 ppcall.c: no disgnostic for 0 actual args for 1 formal arg
 | |
| 10-06-29 ppargs.c: ignore -H<number> (hpux /opt/langtools/lbin/cpp.ansi)
 | |
| 10-06-16 ppsearch.c: try parent prefix if -I- include search fails
 | |
| 10-06-01 sync with ast api 20100601
 | |
| 09-02-02 pp.probe,probe.win32: check for compiler supplied __FUNCTION__
 | |
| 09-02-02 ppop.c: include pp_default.h/probe at end of builtin script
 | |
| 09-01-20 probe.win32: elide #pragma comment.*linker.*manifest
 | |
| 09-01-06 ppcall.c: fix macro definition overwrite bug -- I know
 | |
| 09-01-05 ppcontrol.c: fix multiple include guard for #include outside guard
 | |
| 08-12-07 pp.h,ppdata.c: fix ancient pptype and ppctype[] off by one
 | |
| 08-11-15 ppsearch.c: '\' => '/' in first step; msvc complains about '\' in #line!!
 | |
| 08-10-31 ppsearch.c: relax pp:nomultiple pedantry
 | |
| 08-10-30 pplex.c: handle =#x S_CHRB|SPLICE bug
 | |
| 08-05-11 ppproto.c: fix proto test 10 regression
 | |
| 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
 | |
| 07-03-11 add -D-Y pp:pedantic, PP_WARN macro formal parenthesis checks
 | |
| 07-01-26 pp.def,probe.win32: add _WCHAR_T_DEFINED
 | |
| 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 pp.tab,ppcontrol.c,ppproto.c: add externalize
 | |
| 	 ppfsm.c: handle compatibility ul numeric qualifiers
 | |
| 06-02-28 probe.win32: add wchar_t probe
 | |
| 06-01-11 pplex.c: fix rpcgen pp:passthrough header splice bug
 | |
| 05-12-16 pplex.c: fix imake pp:passthrough comment splice bug
 | |
| 05-09-16 pplib.h: add <string.h> for standalone proto
 | |
| 05-07-31 pplib.h: finally trust __STDC__ headers
 | |
| 05-04-11 pplex.c: fix '"a" #s' catliteral + stringize bug
 | |
| 05-03-29 pp.probe: check $? and stderr messages for pp:lineid
 | |
| 05-02-20 probe.win32: handle /platformsdk mount
 | |
| 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
 | |
| 04-02-29 ppproto.c: fix bug that skipped prototyped check during notices check
 | |
| 	 ppproto.c: recognize `Copyright nn'
 | |
| 04-02-14 ppproto.c: comment[0]==0 => no notice
 | |
| 04-02-11 Makefile: fix %.yacc to handle cross-compile
 | |
| 04-01-28 pp.h,pplib.h,ppop.c: add PP_RESET to restore original pp.symtab scope
 | |
| 03-12-12 ppcall.c: missing macro actual warned but expanded
 | |
| 03-11-12 ppexpr.c: fix premature #if expression token strip
 | |
| 03-06-21 ppproto.c: fix T_INVALID ? splice bug that did 0?val => 0?vaL
 | |
| 03-06-10 ppargs.c: add -D-d and -D-m
 | |
| 	 ppargs.c: add gnu options { -dD -dM -imacros -include -lang-* -lint }
 | |
| 03-05-19 pplex.c: fix stray SKIPMACRO bug
 | |
| 03-05-18 ppcall.c: add SYM_FUNCTION '(' peek to avoid inappropriate ungetchr()
 | |
| 03-04-30 pp:mapinclude hosted <std.h>="." will search only hosted dirs
 | |
| 	 pp.probe: add pp:mapinclude probe for namespace incursions
 | |
| 03-04-29 ignore()=>ppmapinclude(), add pp:mapinclude
 | |
| 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
 | |
| 02-12-17 ppargs.c: document -I-!
 | |
| 02-12-06 -I- pp:noprefix otherwise pp:prefix default
 | |
| 02-11-29 probe.win32: added __INTSIZE, drop dm pp:noallmultiple
 | |
| 02-11-26 pp.def: add STDC_HOSTED
 | |
| 	 probe.win32: add C95 and C99 STDC predefined macros
 | |
| 02-10-30 ppfsm.h: add boundary check to IDSTATE()
 | |
| 02-10-18 probe.win32: update for mingw
 | |
| 02-10-15 ppsearch.c: if PLUSPLUS && not found && no suffix then try with .h
 | |
| 02-10-10 pplex.c: fix does not end with `newline' bugs
 | |
| 02-10-01 ppop.c,ppargs.c: -I-I => -I-M with proper docs; -I-I for PP_IGNORE
 | |
| 02-09-21 pp.probe: add pp:nocatliteral test
 | |
| 02-09-10 pp.tab: add pp:passthrough to match -D-P docs
 | |
| 02-08-30 probe.win32: fix for borland cc -E
 | |
| 02-08-22 ppexpr.c: add __SOURCE__ and #match(string,pattern)
 | |
| 02-06-25 ppproto.c: fix pragma search bug that stopped after 8 comment lines
 | |
| 02-06-11 ppsearch.c: fix ... next include search to skip *all* intermediates
 | |
| 02-05-28 probe.win32: updates for { mingw }
 | |
| 	 ppsearch.c: don't use inherited prefix for <...> -- duh
 | |
| 02-05-24 ppcontrol.c: simplify getline() space canonicalization
 | |
| 	 probe.win32: updates for { digital-mars borland lcc }
 | |
| 02-05-20 ppcontrol.c: update to use regsubcomp(),regsubexec()
 | |
| 02-05-09 ppcontrol.c: inhibit `EOF in directive': newline warning will catch it
 | |
| 	 pplex.c: inhibit `newline in character constant' for hosted directives
 | |
| 02-05-06 probe.win32: add more win32 compilers
 | |
| 02-04-15 probe.win32: handle long long unsigned int
 | |
| 02-04-12 ppproto.c: fix NOTICED check
 | |
| 02-03-15 ppproto.c: fix cpp pp:compatibility double line sync memory fault
 | |
| 02-03-11 pplex.c: add pp:modern to emit \a \v instead of octal forms
 | |
| 02-02-14 ppargs.c: fix -D or -U as last arg core dump
 | |
| 02-01-24 pplib.h: use vmalloc(Vmregion) if _std_malloc
 | |
| 02-01-23 probe.win32: add more msvc predefined macro candidates
 | |
| 02-01-14 ppproto.c: #pragma prototyped noticed -- has notice comment
 | |
| 02-01-10 ppproto.c: fix PROTO_FORCE|PROTO_PASS bug that disabled PROTO_FORCE
 | |
| 02-01-08 pplex.c: fix HEADEREXPAND|HEADEREXPANDALL logic
 | |
| 01-11-22 pplex.c: add pp:headerexpandall for gcc vs. msvc <...> expand diff
 | |
| 	 pp.probe: add pp:headerexpandall test
 | |
| 01-10-20 pplex.c: fix pp:splicespace inside "..."
 | |
| 01-09-11 ppinput.c: use pathnative() for native fs representation
 | |
| 01-08-31 pp.probe: handle -Dmacro(args)=value
 | |
| 01-08-11 ppcontrol: fix ... and __VAR_ARGS__ for C99
 | |
| 	 ppsearch: fix SEARCH_NEXT bug that skipped the include stack
 | |
| 01-08-06 ppproto: preserve #! first line for # comments
 | |
| 01-07-17 gentab.sh: fix ksh test to omit pdksh (typeset -u fails)
 | |
| 01-06-26 ppproto.c: fix another buffer boundary bug that didn't preserve OTHER
 | |
| 01-06-06 ppsearch.c: list PP_FILEDEPS headers once
 | |
| 01-06-01 pp.h,ppop.c,ppsearch.c: allow multiple PP_FILEDEPS (-M)
 | |
| 01-05-24 pp.probe: fix pp:hostedtransition probe: only suncc can __STDC__==1?
 | |
| 01-04-25 pp.probe: split macro probe files for compilers that have #line limits
 | |
| 01-04-19 pp.h,pplex.c,ppproto.c: fix { \a \E \v } EBCDIC translations
 | |
| 01-04-16 pp.tab: add pp:splicespace for mvs jcl decks -- the 60's live on
 | |
| 01-04-13 ppbuiltin: add __FUNCTION__ cache for functions that span the buffer
 | |
| 01-03-08 pp.tab,ppbuiltin,ppcontrol,probe: add pp:hostedtransition
 | |
| 01-02-22 pp.tab,ppfsm,pplex,pp.probe,probe.win32: add pp:zeof for ^Z => EOF
 | |
| 01-02-14 ppcall.c: fix macro(tuple*) bug that truncated macro arg expand buffer
 | |
| 	 pplex.c: fix # inside pp:pragmaexpand
 | |
| 	 gentab.sh: change ksh test for openbsd /bin/sh
 | |
| 	 ppproto.c: fix buffer boundary bug that lost call nesting
 | |
| 	 ppproto.c: add realloc prototype and memcpy=>memcopy strcpy=>strcopy
 | |
| 01-02-09 ppsearch.c: fix another pp.include null dereference
 | |
| 01-02-07 ppcall.c: fix stack inequality checks 
 | |
| 	 ppcall.c: handle trailing  in macro args
 | |
| 01-02-06 fix readonly buffer write (cpp test 07:2873)
 | |
| 01-02-04 fix -M* to properly handle .cxx .cpp .C input
 | |
| 	 fix IN_BUFFER pop bug that did not reset the token pointer
 | |
| 01-01-01 pp:headerexpand: space ok if not IN_MACRO
 | |
| 	 ppcall: hide if IN_FILE|IN_MACRO|IN_EXPAND
 | |
| 	 pplex: don't complain about ^L or ^Z as last char in file
 | |
| 	 ppsearch: fix #include <.../foo.h> loop
 | |
| 	 ppcontrol: manulally increment IN_RESCAN error_info.line
 | |
| 00-12-25 add EXPOSE to expose hidden macros (for #import ...)
 | |
| 	 probe.win32: add cc path *and* args to first line to avoid hash clash
 | |
| 	 pp.probe: filter out invalid symbols for predefined macro scan, duh
 | |
| 	 pp:headerexpand: limit expansion to IN_MACRO
 | |
| 00-10-31 __STDC__==0 if HOSTED && _UWIN
 | |
| 00-10-26 pplib.h: change SEEK_SET to O_RDONLY for aix
 | |
| 00-10-17 pp.probe: __IMPORT__ => __STDPP__IMPORT__
 | |
| 00-09-18 add __FUNCTION__=#(FUNCTION), #define <a b> c
 | |
| 	 pp.probe: add probe_longlong
 | |
| 	 probe.win32: add #define <long long>
 | |
| 00-09-11 add pp:noproto (NOPROTO pp.option) to disable ppproto()
 | |
| 00-09-01 ppproto: fix buffer slide bug
 | |
| 00-08-11 pplb.h: check for <unistd.h> already included for PROTOMAIN
 | |
| 	 pragma: add pp:pragmaexpand to expand pragma args
 | |
| 	 ppcontrol: always disable pp:* pragma expansion
 | |
| 	 ppcall: fix pp:hide buffer clash
 | |
| 00-06-01 pplex: fix "\\U" and "\\u"
 | |
| 00-05-22 ppsearch: fix uwin #include <C:/foo/bar.h>
 | |
| 00-05-16 probe.win32: update reserved word list
 | |
| 00-05-09 ppcontrol: fix C++ macro >+> invalid fuse
 | |
| 	 ppcontrol: 'macro' expansion only for COMPATIBILITY | TRANSITION
 | |
| 	 c9x: up to date with proposed standard
 | |
| 00-04-01 pp.tab: add allpossible and ALLPOSSIBLE
 | |
| 	 ppmacref: fix ref inside literal catenation
 | |
| 00-02-14 pppopen(): general comments with "bme" (begin middle end) string
 | |
| 00-01-11 pp.probe: hosttype now in C.probe
 | |
| 99-11-19 is[a-z]*( => ppis[a-z]*(
 | |
| 	 ppproto: "..." [A-Z_]+ "..." ignores [A-Z_]+ if PROTOMAIN
 | |
| 99-11-11 ppproto: use astlicense()
 | |
| 99-10-31 ppproto: add PROTO_SHARP, update license parse
 | |
| 	 pplex: fix some MARK bugs seen by #define X "A B <SMALL><<A href=mailto:C@D>C@D</A>></SMALL>"
 | |
| 99-10-01 add pp:stringsplit for "...\\n..." => "..."..."
 | |
| 	 add pp:lineid to match PP_LINEID
 | |
| 99-07-17 ppbuiltin: fix getline() canon spacing for numbers
 | |
| 	 ppsearch: fix FILEDEPS not found \\n print
 | |
| 	 pplex: fix spurious FILEDEPS '.' empty character constant message
 | |
| 	 ppargs: fix usage error call and error_info.id default value
 | |
| 	 ppproto: fix up copyright notice for ksh93 style .author file
 | |
| 	 ppproto: check if notice text if file path
 | |
| 99-06-02 ppproto: add __MANGLE_package_DATA__ & __MANGLE_package_FUNC__
 | |
| 99-05-26 ppcontrol: all pragmas but prototyped need pp:
 | |
| 99-05-25 ppargs: long options
 | |
| 99-05-22 ppproto: changes for full ast vs. PROTO_STANDALONE
 | |
| 99-05-09 ppinput: add #pragma pp:native and (pp.option&NATIVE) for native paths
 | |
| 99-04-22 ppproto: finish type=open notice
 | |
| 99-02-11 #define __STDC__ #(STDC); demote __STDC__ to 0 for HOSTED (thanks sun)
 | |
| 99-02-04 pplex: joined strings separated by \\\n
 | |
| 99-01-11 probe.win32: add _UWIN predef
 | |
| 98-10-20 pplex: a few more (HOSTED|RELAX) checks
 | |
| 	 -D:preserve throws a bunch of stuff -- great for imake (yuk)
 | |
| 98-05-11 pplex: fix "..." off by one line count
 | |
| 98-02-14 ppcontrol: fix HEADEREXPAND missing NUL
 | |
| 98-01-23 ppproto: add _GNUC_ to _WIN32 check
 | |
| 	 ppfsm: don't optimize for hp.pa
 | |
| 97-11-11 ppcontrol: fix recursive use of pp.hdrbuf for HEADEREXPAND
 | |
| 97-10-31 ppmacref,pp.h: add ppmacref sum arg -- some parts assumed it!
 | |
| 97-10-01 pplex: loosen HEADEREXPAND check
 | |
| 97-08-11 pplex: fix COMPILE pplex() bug that did not reset NEWLINE for S_MACRO
 | |
| 	 pplex: PP_PRESERVE does not pp.pragma <token> ... # <pragma-stuff>
 | |
| 	 pp.def: add UWIN
 | |
| 	 ppcall: fix macro actual arg error checks
 | |
| 97-07-17 ppproto.c: C++ __INLINE__ prefixed with extern __MANGLE__
 | |
| 	 ppop.c: fix PP_RESERVED T_* lookup
 | |
| 97-05-09 pp.def: add MVS :architecture:
 | |
| 	 ppfsm.c: change C_* pseudo codes to not clash with ebcdic
 | |
| 	 pp.probe: fix stdc.$src sed script
 | |
| 97-04-01 ppcontrol.c: fix tokop() for PP_RESERVED
 | |
| 96-12-25 add ms #@ charize to complement # stringize
 | |
| 	 pp.probe now detects preincludes
 | |
| 	 ppproto: allow #ifdef'd function definions before {
 | |
| 	 ppproto: NoN() is not a function
 | |
| 	 pp.key,ppkey.h: add int64
 | |
| 	 ppargs.c: fix -M{DGM}*
 | |
| 96-12-06 add pp:headerexpand for ms that expands macros in expanded <...>
 | |
| 96-10-31 a few more line sync tweaks for EDG C++
 | |
| 96-10-11 fix pp:macref off by one for standalone pp (big suprise)
 | |
| 96-10-01 -D:macref -D-L -> #line (n-2)pragma pp:macref ...
 | |
| 96-08-11 fix transition macro expansion
 | |
| 	 compatibility 
 | |
| 96-02-29 use <hashkey.h>
 | |
| 	 drop ungetchr() in ppcall that modified macro values
 | |
| 	 tighten the DEBUG PANIC case in ppcontrol.c
 | |
| 	 unify #architecture() and #machine() probe
 | |
| 	 add POSIX,WIN32,X86 to pp.sym
 | |
| 	 tweak pp.probe
 | |
| 96-02-14 pp:noallmultiple works on hosted files too
 | |
| 	 fix #define /* EOF loop
 | |
| 96-01-31 fix ## as arg to stringize macro to have ## value, not #
 | |
| 	 add nonstopux and SYSTYPE_SVR4 to pp.def
 | |
| 96-01-01 AT&T Research now
 | |
| 	 fix catliteral line sync line number bug
 | |
| 	 ppproto() converts non-directive <num>u to (unsigned)<num>
 | |
| 	 switch to <regex.h>
 | |
| 95-10-31 fix PP_COMPILE PP_TRANSITION bug that didn't allow space before #
 | |
| 	 fix PP_TRANSITION wline in definition complaint
 | |
| 95-10-11 fix ppproto() PROTO_PLUSPLUS bug
 | |
| 	 change ignored pp.incref PP_SYNC_POP to PP_SYNC_IGNORE
 | |
| 	 add PP_PEDANTIC to handle gnu oversights (can't beat em ...)
 | |
| 	 add memfatal() call
 | |
| 	 relax newline in quote semantics
 | |
| 	 proto inline -> __INLINE__
 | |
| 	 fix __INLINE__ proto def for __GCC__>=2
 | |
| 95-08-11 pp:preserve for easel (aka IFS) and imake
 | |
| 	 fix pp:reguard ## macro output
 | |
| 	 fix MARK PANIC with CATLITERAL
 | |
| 	 PP_INPUT *.(s|S|as|AS|asm|ASM) implies pp:nocatliteral pp:spaceout
 | |
| 	 ppargs() can't use isid() until after FSM_INIT
 | |
| 	 -D#... for assert, -D%... for directives
 | |
| 	 __STRICT_ANSI__ && __GNUC__ requires -pedantic for PP_STRICT
 | |
| 	 #include <.../x> for include_next
 | |
| 95-05-09 fix tokop() bug that concatenated adjacent strings
 | |
| 	 don't concatenate directive string literals in proto
 | |
| 	 split pp.mode into pp.mode and pp.option
 | |
| 	 restrict pp.probe hostinfo output to the first token
 | |
| 	 fix EOB/EOF pplex() nonterminating loop
 | |
| 	 unused var cleanup
 | |
| 	 add pp:reguard to emit #define and #undef (for C++ templates)
 | |
| 	 add a few ppproto '\r's for NT
 | |
| 	 fix T_BUILTIN ppsymbol -> ppsymkey pun
 | |
| 	 fix pp:stringspan `#define x "' hang
 | |
| 95-04-01 fix pp:hide for macros defined before the hide
 | |
| 	 fix pp:map getline space canonicalization
 | |
| 	 fix proto `<digits>[uU]'
 | |
| 	 proto does // comments by default (fixes bug introduced 07/17/94)
 | |
| 	 proto does "..." "..." string literal concatenation
 | |
| 	 spice up proto copyright comments for nonexclusive license
 | |
| 	 add hosttype assertion
 | |
| 	 fix proto `typedef type fun(args)'
 | |
| 	 proto copyright finishing touches
 | |
| 	 fix overzealous "empty character constant" message
 | |
| 95-02-14 pp:nopredefined probe info defines are now pp:builtin
 | |
| 	 clean up pp:hosted conflicts
 | |
| 	 tighten up unknown directive warning
 | |
| 	 PP_INPUT *.(s|as|AS|asm|ASM) implies pp:nocatliteral pp:spaceout
 | |
| 	 change newof(0,char,n,0) to newof(0,char,0,n) if 0 init not needed
 | |
| 	 don't emit unkown directives inside #if 0 ... #endif
 | |
| 95-01-19 *strict-* does not force STRICT
 | |
| 	 token##null-last-variadic-arg consumes token (to match gcc)
 | |
| 	 variadic actuals call be one less than arity (to match gcc)
 | |
| 	 fix PLUSPLUS digraph bug that lost comment state
 | |
| 	 tighten up PLUSPLUS //, /*, */ interaction warnings
 | |
| 	 macro formals in "..." for COMPATIBILITY|TRANSITION
 | |
| 	 macro formals in '...' for COMPATIBILITY|TRANSITION|!STRICT
 | |
| 	 STRINGSPAN allows ' in '... too
 | |
| 	 add PP_SYNC_* flags for pp.incref arg 3
 | |
| 	 add PP_SYNC_INSERT for invented file references
 | |
| 	 fix C++ fsm bug that popped out of comment in // /* */ ...
 | |
| 	 PP_INPUT *.(s|S|asm|ASM) implies pp:nocatliteral pp:spaceout
 | |
| 95-01-01 avoid string literal concatenation in pp.probe #if #predicate() tests
 | |
| 	 fix pplib.h memcpy,strncmp PROTOMAIN prototypes (its a nop tho)
 | |
| 94-11-11 fix readonly memory reference in refill
 | |
| 	 add C++ digraphs (digraph = --trigraph)
 | |
| 	 add C++ T_EXPLICIT -- did dos take over C++?
 | |
| 	 fix improper ppproto() C++ __PARAM__ expansion
 | |
| 94-11-01 allow #include string header arg concatenation (yes, its not ansi)
 | |
| 	 #macdef macros are recursive
 | |
| 94-10-01 fix C++ } loop in ppfsm/refill
 | |
| 	 T_NOISES consumes symbol and optional paren group
 | |
| 	 __builtin_* T_NOISES by default
 | |
| 	 fix "..." "...MARK..." join
 | |
| 	 fix STANDALONE */*comment*/
 | |
| 94-09-11 fix pp.probe cp+strip with chmod u+w
 | |
| 94-08-11 add -I<vdb-archive> to handle pax -x ppar header archives
 | |
| 	 fix -D-Q header checkpoints
 | |
| 	 add `pp:chop prefix' to chop prefix/ from include prefix/*/*
 | |
| 	 add pp:keyargs for key=value macro formals/actuals (not for C!)
 | |
| 94-06-01 fix ppcontrol/tokop() that botched pp:id, etc.
 | |
| 	 add pp:plussplice to handle cfront // \<newline> ignorance
 | |
| 	 inhibit trigraph conversion for pp:compatibility, duh
 | |
| 	 new C++ keywords enabled by pp:keyword
 | |
| 	 proto: int fun xxx((yyy)) is macro call, not decl
 | |
| 	 fix !ALLMULTIPLE pp:load to SKIP between duplicated line syncs
 | |
| 	 fix PP_DUMP for pp:noallmultiple, optimize pp:load format
 | |
| 	 fix CPP CACHEOUTX() buffer boundary bug
 | |
| 94-04-01 drop warnings for -X*
 | |
| 	 fix ppproto() %% in comment bug for yacc proto
 | |
| 	 PP_COMMENT now truncates comments to MAXTOKEN-4
 | |
| 94-03-01 no pp:truncate for #pragma pp:macref
 | |
| 94-01-01 fix STANDALONE+PP_TRUNCATE fsm macro bug
 | |
| 	 drop __VOID__ from ppproto.c
 | |
| 93-12-01 release
 | |
| 93-11-11 fix PP_COMPILE+PP_TRUNCATE=8 bug for continue,unsigned,etc.
 | |
| 	 add PP_LINEBASE for compilers that botch long line sync paths
 | |
| 	 fix #if unsigned promotions
 | |
| 	 aggressive interactive line splice flush
 | |
| 	 fix #else inside multiline null dereference
 | |
| 	 fix "..." newline space # COMPATIBILITY CATLITERAL bug
 | |
| 	 fix m(a)b compatibility token pasting [cpp/test/ess.01.c]
 | |
| 	 fix nested @X mark bug [cpp/test/net.02.c]
 | |
| 93-10-11 add FSM_COMPATIBILITY for floating point hex -- yo ansi, anybody home
 | |
| 	 add #else if|ifdef|ifndef for COMPATIBILITY but with warning
 | |
| 	 drop PP_HOSTED, add ppop(PP_CDIR|PP_HOSTED,"-",n), -D-I for pp:cdir
 | |
| 93-10-01 add pp:opspace to tokenize <binop><space>= to <binop>=
 | |
| 93-08-11 drop ancient BCD constant (`...`) detection -- wake up cfront
 | |
| 	 fix PP_TRUNCATE macro fsm bug that missed some expansions
 | |
| 	 fix stringize bug that choked if space preceded #
 | |
| 	 fix <function-like-macro> <identifier> bug that omitted space
 | |
| 93-07-17 minor transition mode fix for string concatenation
 | |
| 	 fix standalone macdef line sync buffer bug
 | |
| 	 pp:noline turns off linesync, pp:line restores it
 | |
| 93-06-22 add pp:prefix to control prefix include compatibility
 | |
| 93-04-01 use probe_verbose in predefined symbol probe
 | |
| 93-03-11 close fd after last file block read -- relaxes open fd limit
 | |
| 	 remove pp.control nesting limit
 | |
| 	 add `#rename old new'
 | |
| 	 __STDC__ not defined for plusplus (until they figure it out)
 | |
| 93-01-22 fix ansi macro args recursion bug
 | |
| 93-01-11 fix '\377'<0 for signed char compilers
 | |
| 	 add RELAX for __STDPP__directive directives
 | |
| 92-12-25 fix #include guard test that omitted IN_tokens for CPP=1
 | |
| 92-12-11 fix pp:truncate for STANDALONE and COMPILE
 | |
| 	 fix pp:allmultiple again!
 | |
| 92-11-30 add pp:final, pp:initial
 | |
| 	 add __STDPP__directive and #(directive) as ??= alternative
 | |
| 	 relax obsolete macro expand warning for _xxx||xxx
 | |
| 	 retain quoted wline when PP_LINEID != ""
 | |
| 	 fix CATLITERAL hidden newline line sync
 | |
| 92-11-11 fix COMPATIBILITY EOF in macro arg list and # in macro body
 | |
| 	 fix [?\] on 4K buffer boundary bug that lost next refill()
 | |
| 	 fix ppproto bug that botched -ih comments
 | |
| 92-10-31 fix standalone -C bug that duplicated output buffer
 | |
| 	 add pp:stringspan to handle gnu "<newline>" extension
 | |
| 92-10-12 fix T_X_GROUP asm bug
 | |
| 	 allow `#define a "b' pp:compatibility hack
 | |
| 92-08-11 add PP_PLUSCOMMENT, pp:pluscomment probe
 | |
| 	 add #(default v,d) #(empty v) #(iterate m,...)
 | |
| 	 compatibility allows #define f(a,,b) for 2 args!
 | |
| 	 probe now handles gcc -E -g3 to get gnu predefines
 | |
| 92-07-17 fix pp:multiple again, fix ppproto() out of bounds
 | |
| 	 PP_STANDARD is always PP_CDIR and PP_HOSTED
 | |
| 92-07-11 add #import and #include_next probes
 | |
| 92-06-11 fix bug where comments dissappeared after disabled macro in standalone
 | |
| 	 COMPATIBILITY macro recursion bug fix may cause some to be missed
 | |
| 	 PP_MACREF or -D-L- ignores #line until #line with file arg
 | |
| 92-06-01 add pp:ignore
 | |
| 	 fix probe of stdpp to handle -I[-+][CH]
 | |
| 92-05-11 add pp:hide <id>, pp:note <id>, noticed(<id>), exists(<...>)
 | |
| 	 add defined(__STDPP__<pragma>) feature test
 | |
| 	 add PP_CDIR, pp:cdir for C++ extern "C" { ... } include wrapping
 | |
| 	 pp.probe now handles predefines with values other than 1
 | |
| 92-04-11 add inverse proto (K&R -> prototype) to ppproto
 | |
| 92-04-01 release
 | |
| 92-02-29 #include <...> inside <xxx.h> gets next xxx.h on -I list
 | |
| 	 non-libpp generated symbols containing ' ' are not truncated
 | |
| 92-02-11 conversion to new lexer brings time close to reiser (esp. w/gcc -O)
 | |
| 	 combine standalone (ppcpp) tokenizing (pplex) and proto lex tables
 | |
| 	 recode ppproto for standalone operation via PROTOMAIN
 | |
| 	 add PP_NOHASH for PP_COMPILE front ends that rehash T_ID anyway
 | |
| 	 delete PP_NOQUOTE
 | |
| 	 delete #option(strict) test in probe in favor of non-hosted warnings
 | |
| 	 add unsigned to ppexpr()
 | |
| 91-10-11 add pp:truncate <len> for non-flexname compilers
 | |
| 91-09-11 fix ppproto aggression on f(*y); -> f __PROTO__((*y));
 | |
| 91-08-11 switch seterror() to error_info.*
 | |
| 	 add pp:linefile to force file name in line sync
 | |
| 	 add pp:spaceout for probed compilers that don't allow pp override
 | |
| 91-06-11 fix ignored -I/usr/include bug
 | |
| 91-04-11 set SYM_INIT in pp.macref for -U on cmd line
 | |
| 91-01-31 replace pp:pragma and pp:directive with pp:map
 | |
| 	 replace #assert and #unassert with #define #... and #undef #...
 | |
| 	 #assert and #unassert compatibility retained via pp:map
 | |
| 	 replace -D#directive with -D%directive (because of #assert change)
 | |
| 	 add pp:splicecat for \<newline> #define token paste
 | |
| 	 fix \<newline> bug that added space in COMPATIBILITY quoted strings
 | |
| 90-12-11 fix #pragma pp:multiple
 | |
| 90-11-11 generalize handling of non-standard keywords for COMPILE
 | |
| 	 replace pp:identifier/PP_IDENTIFIER with pp:reserved/PP_RESERVED
 | |
| 	 pp*keys* -> ppkey
 | |
| 	 add PP_NOISE
 | |
| 	 (gag) handle msdos paths by changing  to / and retrying on failure
 | |
| 	 (gag) handle msdos :> operator by pplex() '+' return
 | |
| 	 add #pragma prototyped and ppproto.c for prototype conversion
 | |
| 	 add unsigned long arg to PP_MACREF for hashed macro arity+value
 | |
| 90-10-11 0f is not a float constant
 | |
| 	 change -I-M to -I-I, file just lists include files to be ignored
 | |
| 	 fix ppprobe for __STDC__==0 hybrids
 | |
| 	 add pp.flags and PP_[a-z0-9]+ for exported state info
 | |
| 90-10-01 fix standalone ppmacref for directives
 | |
| 	 add `try' to C++ keywords
 | |
| 	 fine tune a few COMPILE error messages
 | |
| 	 privatize pp.h
 | |
| 90-08-11 use opt_again in cmdargs() option parsers
 | |
| 	 (gag) add pp:macref macro reference pragma to handle CC preprocessors
 | |
| 	 (gag) add pp:spaceout to handle ansi + asm hacks
 | |
| 90-07-17 remove spaces from macdef line sync (blew sun cc)
 | |
| 90-06-11 add internal ppsymkey to avoid ppsymbol.value pun for SYM_KEYWORD
 | |
| 90-05-01 fix catliteral bug of `"..." << ' -> `"..." <='
 | |
| 90-04-01 fix `ifndef-define-endif' include wrapper test
 | |
| 90-03-27 add setpreroot() to ppop() [ sleazy but well hidden ]
 | |
| 90-03-22 pp.macref called for all undef's
 | |
| 90-03-20 add <prefix>cpp checks to ppprobe
 | |
| 	 add pp:hostdir before pp:include in ppprobe
 | |
| 	 fix PP_HOSTDIR op with no dir arg
 | |
| 90-03-15 System V CCS compatibility update
 | |
| 	 add PP_ASSERT
 | |
| 	 add -A for PP_ASSERT and -YI,dir for PP_STANDARD
 | |
| 	 add ppincref.c and -H to use it
 | |
| 	 -Xa defines __STDC__ to 0 (gak)
 | |
| 90-03-09 duplicate macro formals cause level 2 error
 | |
| 90-03-01 add #(ARGC) for (variadic) macro arg count
 | |
| 90-02-11 fix line sync number bug in pppush()
 | |
| 89-12-01 ignore leading = in pragma map for old pragma compatibility
 | |
| 	 check for NEWLINE on first macdef line sync
 | |
| 89-11-11 add -1 arg to pp.incref -- include skipped
 | |
| 	 STRICT 0x7e-macro is T_INVALID per standard
 | |
| 89-10-31 put all C keys in ppckeys.c, C++ keys in pppkeys.c
 | |
| 	 add pp:identifier pragma to selectively undo PP_COMPILE keywords
 | |
| 	 add tokop() to ppcontrol to support multi-valued pragmas
 | |
| 	 add #ifndef...#endif include optimization for STRICT
 | |
| 89-10-27 use REF_NORMAL, REF_IF, REF_UNDEF for pp.macref arg2
 | |
| 89-10-17 fix c(x)y compatibility pasting bug
 | |
| 	 #line 1 "f" now marks "f" included
 | |
| 89-10-11 enable -I. during initialization
 | |
| 89-10-01 inhibit pp:linetype syncs for top level #line directives
 | |
| 	 ----- see HISTORY -----
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="libcodex changes">libcodex changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 10-01-15 code-uu.c: add uu-base64-string to encode with no newline separators
 | |
| 09-06-26 codex.h,codex.c: add Sfio_t* Codex_t.op for open/close/read/write apis
 | |
| 08-05-23 code-qp.c: avoid isprint()/iscntrl() for CC_NATIVE==CC_ASCII
 | |
| 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
 | |
| 06-08-23 code-uu.c: fix remainder output *and* input bugs
 | |
| 05-09-25 add '^' equivalent to '|'
 | |
| 04-02-14 codex.c: SFDCNEXT() and SFDCPREV() now provided by <sfio_t.h>
 | |
| 04-01-11 codex.c: top level composition parse, handle CODEX_INVERT
 | |
| 04-01-10 codex.c: use CODEX_FLUSH to disable SF_SYNC before initf
 | |
| 04-01-09 prepare codex.h for possible { decodef encodef } addition
 | |
| 04-01-04 codexcmp.c: fix return value to match strcmp(3)
 | |
| 03-12-30 codexmeth.c: case-sensitive match on qualified name
 | |
| 03-12-26 add CODEX_OPTIONS='trace=method-name-pattern debug'
 | |
| 03-12-25 codex.c: pop intermediate disciplines on error
 | |
| 03-12-22 add "RETAIN" option for CODEX_RETAIN
 | |
| 	 add "SIZE=size" and alternative codexsize() for expected output size
 | |
| 03-12-18 add to ast -- still working on relationship with { -lvcodex -lz -lbz }
 | |
| 03-12-16 codexlib.c: add cache to codex()
 | |
| 03-12-15 { rot13 qp uu iconv } working
 | |
| 03-12-11 first code
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="libdss changes">libdss changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 12-06-15 dssopt.c: fix bug that failed to provide closing ]
 | |
| 12-05-31 dssopt.c: handle optegt() style descriptions
 | |
| 12-05-15 cx.h: add CX_DEPRECATED
 | |
| 12-05-15 cxopen.c: handle nested structs
 | |
| 12-02-29 cxopen.c: add "hex" details for external buffer representation
 | |
| 11-10-07 dssopen.c: use generic dll_lib() to load methods
 | |
| 11-09-11 cxmap.c: fix cxsub() to cast <=> string if necessary
 | |
| 11-09-11 add <MAP><PART><EDIT>ed-style-substitute</></></>
 | |
| 11-09-11 dssprintf.c: add edit=<del>from<del>to<del>[flags]
 | |
| 11-09-11 cxopen.c: add edit() builtin
 | |
| 11-09-10 cxopen.c: add cxcvt()
 | |
| 11-09-07 dssprintf.c: fix if/else nesting -- ouch
 | |
| 11-08-22 add cxsizeof()
 | |
| 11-08-22 add sizeof(var), typeof(var), type==type, type!=type
 | |
| 11-08-19 add DSS_BASE for base methods (with dynamic schemas)
 | |
| 11-08-19 dss-print.h: add --all to list name/value for all fields
 | |
| 11-08-18 cxeval.c: (cx->test&0x0100) enables code trace
 | |
| 11-06-21 cxcomp.c: fix back() on empty input stack logic
 | |
| 11-06-15 dssmisc.c: add "< expr-file" expression to dsscomp()
 | |
| 11-06-15 dss-scan.h: add "< list-of-files-file" argv to snan_beg()
 | |
| 11-06-15 dssopen.c: dsslib() scan invalid plugin is just a warning
 | |
| 10-05-04 dssopt.c: check for '[' usage in description, drop [+PATH?...]
 | |
| 10-05-01 cxopen.c: document string type format details
 | |
| 10-04-22 dssprintf.c: %(:details:)s for default %s details
 | |
| 10-04-22 dssopt.c: handle dss default method special cases
 | |
| 10-04-22 dssprintf.c: treat { %d %ld %lld %Ld } as intmax_t
 | |
| 10-04-22 add (type)var and (type)lib::fun() casts
 | |
| 10-04-22 add lib::fun and lib::type plugin lib bindings
 | |
| 10-04-22 fix unary ! logic bugs
 | |
| 10-04-22 add Dsslib_t.variables variable/function table
 | |
| 10-04-21 dssprintf.c: allow expressions in %(...)c
 | |
| 10-04-15 add string=>number CX_CAST callout for stringvar op number
 | |
| 10-04-15 add lazy lookup for self-describing data { e.g. xml json }
 | |
| 10-04-08 dssopen.c: name=="method::..." is schema here doc
 | |
| 08-06-24 dss.h: add per-Dssfile_t vm
 | |
| 08-06-17 cx.h: add Cxtype_t* arg to Cxmatchexec_f for delayed eval
 | |
| 08-05-08 cxopen.c: fix number_external() width logic
 | |
| 07-11-28 cxcomp.c,cxmap.c: fix num=>str cast logic
 | |
| 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
 | |
| 07-01-17 dssfile.c: sfdcpzip() => sfdczip()
 | |
| 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()
 | |
| 06-02-02 dssopt.c,dss-print.h: add <p>rint</p>< >default print format</ >
 | |
| 05-09-14 dssopen.c: prevent libraries dict double queue insert
 | |
| 05-05-09 cx.h: add CX_QUOTEALL
 | |
| 05-03-08 dss.h: add dssstatic() for static Dsslib_t loading
 | |
| 04-10-20 dss.h: add dssget() dsstype() dssvariable() dsssave() dssdrop()
 | |
| 	 dss.h: add Dssformat_t.savef Dssformat_t.dropf
 | |
| 	 dss.h: add Dsstype_t Dssvariable_t
 | |
| 04-10-11 dss.h: add Dssformat_t.seekf, dssftell(), dssfseek()
 | |
| 	 dsslib.h: add Dssfile_t.seekf, dss_no_f*()
 | |
| 	 dssfile.c: add dss_no_f*()
 | |
| 04-08-24 tag.c: fix malformed input 0 pointer deref
 | |
| 04-05-19 tag.h: add Tagframe_t.attr and TAG_ATTR_conv
 | |
| 04-05-12 dss.h: add DSS_FORCE
 | |
| 04-05-06 cxopen.c: fmtquote() possibly binary message data
 | |
| 04-05-04 cxopen.c: number_internal:   => 0 is ok
 | |
| 03-09-23 add dss.file,dss.format,dss.offset,dss.record
 | |
| 03-09-22 cxopen.c: {library::query ...} searches for query in library
 | |
| 03-09-03 dssopen.c: dsslib() separator expanded to [,\t\r#0093;
 | |
| 03-08-11 dssprintf.c: add %(field:quote=qb:endquote=qe:shell:escape:opt:wide)s
 | |
| 	 dssprintf.c: check variable/type format for ll hints
 | |
| 	 cx.h: add CX_STRING|CX_NUL for string that may contain ' '
 | |
| 	 tag.c: fix tag data leading and trailing space removal
 | |
| 03-08-08 tag.c: handle &#00; values
 | |
| 	 dss-scan.h: dssfopen() errors ok, will be caught at exit time
 | |
| 03-05-28 cxopen.c: check format.code and do the map in cxcast()
 | |
| 03-05-14 dss.h: add dssformat() macro
 | |
| 03-05-05 dss-compress.h: add bzip docs
 | |
| 03-04-30 dssprintf.c: check for printf io errors -- duh
 | |
| 03-04-29 cxcomp.c: fix stack depth logic to include function formal arguments
 | |
| 03-04-15 dssprintf.c: fix signed/unsigned overflow check
 | |
| 03-04-05 cxmap.c: default delimiters: read { | + }, write { | }
 | |
| 	 cxcomp.c: propagate parse() var for string conversion
 | |
| 	 dssprintf.c: avoid possible floating point underflow/overflow
 | |
| 03-03-27 dssprintf.c: verify that each format spec has (variable)
 | |
| 03-02-28 cxcomp.c: handle (foo)||(bar)
 | |
| 03-02-21 cx.h: add Cxvariable_t.Cxarray_t and Cxvariable_t.Cxstructure_t
 | |
| 	 dssprintf.c: catch omitted format char
 | |
| 03-02-20 cx.h: add Cxformat_t.fixedpoint
 | |
| 	 dssopt.c: add method name+description to fields output
 | |
| 03-02-19 dss.h,dsstags.c: add <PRINT>format</> for default {print} format
 | |
| 03-02-18 cxopen.c: fix externalf buffer extension
 | |
| 03-02-17 dssfread.c: dssfread() file->flags|=DSS_FILE_ERROR on readf error
 | |
| 03-02-14 dssopen.c: dss head query should not be parent
 | |
| 	 cxcomp.c: peek() now skips over isspace()
 | |
| 	 cx.h: add Cxtype_t.Cxtype_t*fundamental for fundamental representation
 | |
| 03-02-11 cxopen.c: change cx em and rm from Vmbest to Vmlast
 | |
| 03-02-11 cxeval.c: execute() optimizations
 | |
| 03-02-07 add Cxpart_t.type and <MAP><ITEM><PART><TYPE>
 | |
| 	 tag.c: rework <#TABLE#> to handle embedded <#INCLUDE#>
 | |
| 03-02-06 dss.h,dssopen.c: add dssrun(), split static queries into dss-*.h
 | |
| 03-02-05 dssfile.c: (*identf)() < 0 means reject input file
 | |
| 03-01-28 cx.h: add Cxtype_t.Cxmember_t* for member info ala Cxmatch_t
 | |
| 	 cx.h: add Cxtype_t.Cxreference_t*
 | |
| 03-01-27 cxopen.c: use <ast.h> base64encode()/base64decode()
 | |
| 03-01-25 cx.h: add Cxformat_t.description for format details
 | |
| 	 cx.h: change cxnum2str() prototype for error detection -- duh
 | |
| 03-01-24 cx.h: cxnumber() => cxisnumber() etc.
 | |
| 03-01-22 cxopen.c,cxcomp.c: add buffer type relational ops
 | |
| 03-01-21 cx.h,dss.h: add Cxdisc_t.locationf and cxlocation() for Cxdisc_t.errorf
 | |
| 	 cxopen.c: add fundamental type internalf/externalf -- oops
 | |
| 03-01-15 cx.h: add Cxtype_t.Cxmatch_t callouts for type specific matching
 | |
| 03-01-14 Cxexternal_f now returns <0 on error, > size on insufficient size
 | |
| 03-01-12 dss.h: add Dssstate_t.file, Dssfile_t.offset for message context
 | |
| 03-01-11 cx.h,cxmap.c: finish external edit support
 | |
| 03-01-08 cx.h: add Cxquery_t.method pattern to match caller method
 | |
| 03-01-07 cx.h: Cxvariable_. member=>members, added member type
 | |
| 03-01-06 cxcomp.c: list() now handles interpreted cx expressions
 | |
| 03-01-04 cxcomp.c,cx.h: add ?: composition op, child=>pass|fail sibling=>next
 | |
| 03-01-02 cxcomp.c: parent now set by defaults()
 | |
| 02-12-25 cxcomp.c: fix unbalanced (...) message
 | |
| 	 cx.h: Cxvariable_t.operand.type => Cxvariable_t.type
 | |
| 02-12-24 cxopen.c: cxbase(),cxnumber(),cxstring(): add
 | |
| 	 cxeval.c: cxbeg() and cxend() now check Cxexpr_t.begun
 | |
| 02-12-20 add <METHOD>name</> to pass remaining tags to name method
 | |
| 	 add <COMPRESS>name</> and Dssmeth_t.compress for preferred {compress}
 | |
| 02-12-18 add Cxdisc_t.loadf; meth==foo checks dss:foo.dss as last resort
 | |
| 	 cxbeg() calls tail first; cxend() calls head first
 | |
| 02-12-17 all regression tests pass after reorganization
 | |
| 02-12-12 reorganize local vs. global state : only variables are dss/cx local
 | |
| 02-12-10 add query composition and rename src to reflect changes
 | |
| 02-12-07 cxparse.c: change dynamic query syntax to { name opts args >out }
 | |
| 	 cxparse.c: handle dynamic and interpeted query composition
 | |
| 02-12-04 cxparse.c: use format.map for constant folding in code()
 | |
| 	 cxeval.c: fix instruction trace long double numeric output format
 | |
| 	 dssfile.c: fstat() file to double check sfsize()==0
 | |
| 02-12-02 cx.h,cxmap.c: change cxstr2num() to all error detection -- novel
 | |
| 	 cxmap.c: add CX_IGNORECASE, <IGNORECASE>1</>
 | |
| 02-11-28 dss.h: Dssident_f takes Dssfile_t* arg
 | |
| 	 dsslib.h: add skip and ident to Dssfile_t for Dssident_f
 | |
| 	 tag.h,tag.c: reorder visit arg, add handle arg to avoid disc clash
 | |
| 02-11-27 cx.h: add CX_BINARY to mark binary representation
 | |
| 	 split dsslib.c info dssopen.c dssfile.c dssprintf.c dssmisc.c
 | |
| 02-11-26 dsslib.c,cxopen.c: add a few more floating=>signed=>unsigned casts
 | |
| 02-11-25 finally give in to Dssformat_t instead of Dsstype_t
 | |
| 02-11-22 dss.h: add DSS_ID, fix dss_lib() export
 | |
| 	 tag.h: add Tagdisc_t.id for pathfind()
 | |
| 	 cx.h: export cxinitmap()
 | |
| 	 dsslib.c: add sfdcpzip() error check -- how novel
 | |
| 02-11-21 tag.c: handle <#INCLUDE#>path</> and <#TABLE#>path</> closing </>
 | |
| 02-11-20 move support libraries to dsslibs dir
 | |
| 02-11-19 opaque/opaque.c: add opaque method
 | |
| 	 dssmagic.c: magic support for opaque data
 | |
| 	 dss.h: add variables to Dsslib_t, add dssadd()
 | |
| 	 dss.h: DSS_STATIC for static method link
 | |
| 02-11-18 dsslib.c: drop dss_init(), add libraries to Dsslib_t
 | |
| 	 dsslib.c: drop Dss_t* arg from dsslib(), change dssadd() to dssload()
 | |
| 02-11-16 cx/cxeval.c: set optget() discipline for query <i>ndex</i>\f
 | |
| 02-11-15 flat/flat.c: snarf cdb flat record code
 | |
| 	 cx dynamic queries now defined via dsslib()/dss_lib()
 | |
| 02-11-14 types/num_t.c: add numeric encoding support
 | |
| 02-11-12 finally fix cxvariable() . references for dssprintf()
 | |
| 	 add <NAME><DESCRIPTION><IDENT> nop's for all top level tag input
 | |
| 02-10-31 switch to XML tag specifications (with self documentation)
 | |
| 02-10-17 dsslib.c: add generated methods to the list of all methods
 | |
| 02-10-15 flat/flat.c: add initial XML flat file description support
 | |
| 02-10-11 netflow: add ns_t start,end nanoseconds since the epoch
 | |
| 02-10-09 bgp-ipma.c: add
 | |
| 	 dsslib.c: fix printf double -> integer cast bug when sign bit set
 | |
| 02-09-30 text/text.c: add ipadd_t,time_t: really need a "struct" method
 | |
| 02-09-24 netflow/flow-dump.c: implement dumpfwrite()
 | |
| 	 bgp/bgp.prt,netflow/netflow.prt: move from src/cmd/dss 
 | |
| 02-09-11 cx: add Cxquery_t,Cxframe_t and support functions for dll queries
 | |
| 	 cx: change Cxoperand_t keep boolean to refs count
 | |
| 	 cx/cxparse.c: work around sgi cc page boundary bug
 | |
| 	 pt: switch from vm region (16K) per table to malloc-per-entry
 | |
| 	 lsa: fix (int) pointer cast that truncated on 64 bit arch
 | |
| 	 lsa: use fmttime(%K) to list dates
 | |
| 02-09-05 Makefile: optimization bug seems to be in sol*.sun4, not just sol7
 | |
| 02-08-29 dsslist(): no dss_init() missing error message when scanning for dlls
 | |
| 02-08-22 dss,cx: eliminate inter-object globals for darwin dlls
 | |
| 02-08-20 cx/cxopen.c: drop cxvmresize; use ast vmresizef instead
 | |
| 	 lsa/*: add $pragma prototyped for sun4
 | |
| 02-08-19 cx/cxparse.c: handle char const operands on left and right
 | |
| 02-08-14 dss.h: add dss_init() prototype for static method links
 | |
| 02-08-12 lsa: add
 | |
| 	 flat: drop until different from text method
 | |
| 	 dsslib.h: install for independent method dlls
 | |
| 02-08-11 cx/cxopen.c: add cxscope() to push/pop scopes
 | |
| 02-08-09 cx/cxparse.c: cxvariable() now reports "undefined variable"
 | |
| 02-08-08 cx/cxparse.c: handle type1->base==type2->base callout
 | |
| 	 cx/cxparse.c: add /.../ quotes strings (already bowed to =~ and !~) 
 | |
| 02-08-07 cx: add cxfree(), cxtell(), cxvmresize()
 | |
| 	 bgp/bgp.h: add Bgpredisc_t, Bgperror_f, Bgpreresize_f
 | |
| 02-08-01 cx/cxvariable.c: set reference value type
 | |
| 	 dss_init: now 3 args, second is option string
 | |
| 02-07-31 dsslib.c: all methods now dlls; dsslist() searchs PATH
 | |
| 02-07-25 bgp/bgpre.c: fix must logic
 | |
| 02-07-19 dsslib.c: dsscomp() now pops cx input stream to previous state
 | |
| 	 cx/cxopen.c: fix =~ typo that checked for CX_EQ instead of CX_MATCH
 | |
| 02-06-26 dsslib.c: add shared lib method dss_init() hook
 | |
| 02-06-19 cxopen.c: add default number<=>string conversions for base==number
 | |
| 02-06-18 netflow: split into { dump fixed flat } method types
 | |
| 02-06-14 dss.h: add dssfopen() Dssflags_t arg; DSS_FILE_READ/DSS_FILE_WRITE
 | |
| 	 cx: add Cxreference_t for structure member references
 | |
| 	 dssprintf: avoid sfkeyprintf() by caching Dssformat_t
 | |
| 02-06-12 netflow: add
 | |
| 02-06-10 cx/cxparse.c: add vm arg for parse time internalf/externalf
 | |
| 	 bgp/bgp.c: add ipprefix_t==ipprefix_t callout
 | |
| 02-06-07 bgp-mrt.c: handle long prefix field line split
 | |
| 02-06-03 bgp.c: add "origination" for data time
 | |
| 02-06-02 bgp.c: fix ipaddr_t/ipprefix_t inequality overloads
 | |
| 02-05-31 bgp-fixed.c: fix read swap
 | |
| 02-05-29 split library and command source
 | |
| 02-05-28 add { =~ !~ } to usage
 | |
| 	 advertize { variable type meth-type } dictionaries
 | |
| 	 drop { itemf infof } 
 | |
| 02-05-23 update for reworked cx type interface
 | |
| 02-04-04 add numeric field maps, -I, %include
 | |
| 02-04-03 update bgp fields
 | |
| 02-03-31 first working flat method
 | |
| 02-03-26 first working dssgrep with bgp method
 | |
| 02-03-19 snarf pta bgp and cx libraries for initial implementation
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="libpz changes">libpz changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 11-09-21 sfdczip.c: set SF_SHARE if uncompress discipline pushed
 | |
| 11-03-07 pzip.h,pzpart.c: handle length@offset variable row size
 | |
| 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"
 | |
| 05-07-17 pzinflate.c: use sferror() instead of sfsync() -- doh
 | |
| 	 pzsplit.c: drop SF_WRITE sfreserve() to keep writes aligned
 | |
| 05-06-30 pzsplit.c: work around sfreserve() write failure via sfwrite()
 | |
| 04-04-08 add pznospace()
 | |
| 04-02-29 pzip.h,pzline.c: fix pz_init() prototype
 | |
| 03-11-04 pzpart.c: use PZ_HEAD to avoid multiple PZ_UPDATE, fix wrk overflow
 | |
| 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
 | |
| 03-05-13 sfdcpzip.c: add SF_DBUFFER exception, SF_SHARE before sfreserve()
 | |
| 03-05-05 sfdcpzip.c,sfdczip.c: add bzip support
 | |
| 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
 | |
| 02-12-18 pzwrite.c: add partial row buffer
 | |
| 02-12-12 sfdcpzip.c: move disc arg to the end for discplined consistency
 | |
| 02-12-11 sfdczip.c: add
 | |
| 	 sfdcpzip.c: fix SF_WRITE, set disc.partition if passed in
 | |
| 02-11-22 sfdcpzip.c: fix bug that did not close pz->pz->io (and its fd!)
 | |
| 	 pzpart: check option errors (duh) and accept comment option
 | |
| 02-10-31 pzpart: partition file "/" or "//" or "/gzip/" => gzip compress
 | |
| 02-04-30 pzopen,pzhead: tighten pzip magic check via reasonable version number
 | |
| 02-03-09 pzopen,pzdeflate,pzsync: add fatal error checks
 | |
| 02-02-14 pzopen: disable PZ_UNKNOWN check if PZ_NOPZIP -- duh
 | |
| 02-01-11 pzdeflate: use Sfoff_t for sfmove() return instead of ssize_t
 | |
| 01-08-11 pzinit: add for static discipline library linking
 | |
| 01-07-17 pzlib: call dllerror() on failed dllfind()
 | |
| 01-06-28 pzpartnext: add to iterate over all partitions
 | |
| 	 pzpartition: default partition can be on one line: `"label" size -'
 | |
| 01-02-02 delay buffer allocation until pzpartinit()
 | |
| 	 pzpart: fix non-terminated string bug for url-style paths
 | |
| 01-01-01 pzopen: open new stream instead of using sfstdin for sfdcgzip()
 | |
| 00-12-11 pzpart(): add -X0 => prefix.skip => skip prefix on uncompress
 | |
| 00-10-04 pzhead(): accept empty input for compression -- duh
 | |
| 00-05-31 pzclose(): check for pz->io == 0
 | |
| 00-02-14 PZ_DELAY|PZ_HANDLE|PZ_UNKNOWN for 'unknown format' after pzlib() done
 | |
| 00-01-26 pzlib: dlsym() for NAME and _NAME (some don't map `_' automatically)
 | |
| 99-08-11 discipline cleanup
 | |
| 	 pzdeflate: last record incomplete is an error
 | |
| 	 pzline: add
 | |
| 	 pzpart: add partition#name partition?name=value,...
 | |
| 	 pzclose: add scaled bps to PZ_SUMMARY
 | |
| 	 pzfixed: use size if available and do 2 col freq check
 | |
| 	 pzfixed: add optional pz for tracing
 | |
| 	 pzip.h: add PZ_REGRESS, Pz_t.test, drop PZ_TEST*
 | |
| 	 *: details => options, use optstr() with usage for PZ_OPTION
 | |
| 	 pzpart: fix off-by one max col check
 | |
| 99-07-17 sfdcpzip: don't free disc on SF_CLOSE
 | |
| 	 pzsplit: add
 | |
| 99-06-23 add EOF checks to PZGETP() and PZGETZ()
 | |
| 99-06-21 add Pz_t.fixed, name=value to partition file
 | |
| 99-06-15 pzfixed: fix divide by 0
 | |
| 99-06-04 resize pp->fix after detail changes
 | |
| 99-03-17 add pzfixed()
 | |
| 98-11-11 nmap==0 allowed
 | |
| 98-11-01 add PZ_NOGZIP,PZ_NOPZIP for finer convert control
 | |
| 98-10-20 add Pzdisc_t readf and writef and file trailer
 | |
| 	 add pzconvert() discipline
 | |
| 98-10-15 hide some Pzpart_t details; part access by name only
 | |
| 98-10-01 2.0 format and interface -- Pzpart_t for multiple partitions
 | |
| 98-09-09 1.3 format -- separate <run,off> <val> compression groups
 | |
| 98-08-11 1.0 release
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="libtksh changes">libtksh changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 12-05-04  update sh_sigcheck() => sh_sigcheck(0) -- eventually figure out Shell_t*
 | |
| 10-06-01  sync with ast api 20100601
 | |
| 08-08-08  src/list.c,src/tcleval.c: add temporary sh_eval(p,0x8000) hack
 | |
| 07-03-19  src/var.c: use nv_setref() to initialize references
 | |
| 06-09-19  src/shcompat.c: sysconf() => astconf()
 | |
| 04-07-19  tcl/tclIOUtil.c: treat { O_RDONLY O_WRONLY O_RDWR } as values
 | |
| 03-06-13  include/tclInt.h: disable #undef sprintf that masked its prototype
 | |
| 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)
 | |
| 02-08-27  tcl/tclNotify.c: XXX add sh_sigcheck() call -- to be cleaned up
 | |
| 02-08-22  enable regex cache initialization
 | |
| 02-06-25  include/nvextra.h: use an addaptable cheat for the namval offset
 | |
| 02-03-17  update ksh private assoc array offsets -- should be a function call
 | |
| 02-01-30  compensate for uts.390 lack of header guards for { select.h time.h }
 | |
| 01-04-19  add HAVE_TIME_H HAVE_SYS_PARAM_H HAVE___FD_MASK tests to tclPort.h
 | |
| 00-02-10  --- Release 7.6 ---
 | |
| 00-02-10  Update README file
 | |
| 00-02-09  Deleted unreferenced vars, dropped tcl 7.5 compatibility,
 | |
| 	  added _PACKAGE_ast <tm.h> routines to tclUnixTime.c, added
 | |
| 	  forward refs to the Tcl_LinkVar() Tcl_UnlinkVar() tk callbacks,
 | |
| 	  changed Makefile library refs
 | |
| 00-02-07  Modified shcompat.c and shcompat.h to handle
 | |
|           change to ksh93 where nvenv is now private.
 | |
| 00-02-07  Included Tk4.2 in distribution to avoid
 | |
|           compatibility problems.  Modified Makefile.
 | |
| 00-02-07  Using new packaging provided by gsf 
 | |
| 97-06-24  src/tclIO.c proto tweaks [gsf]
 | |
| 
 | |
| 97-04-10  --- Release 7.6b1 ---
 | |
| 97-04-09  tcl_open |command works
 | |
| 97-04-09  Default interp mode is INTERP_TCL
 | |
| 97-03-09  Combined tksh.c interp.c to init.c	
 | |
| 97-03-09  Incorporated changes for Tcl 7.6
 | |
| 97-03-09  waitevent sets interp type to tcl instead of having eval guess
 | |
| 97-03-09  Inserted code to null terminate argv in InterpProc
 | |
| 97-01-20  Integrated in tcl 7.5p1
 | |
| 97-01-20  Integrated tclIO.c written on sfio
 | |
| 97-01-20  using nmake makefile
 | |
| 97-01-20  integrated changes for uwin
 | |
| 96-09-04  Reorganization of directory
 | |
| 96-09-04  Works with Tcl 7.5
 | |
| 96-09-04  Doesn't work with Tcl 7.4, Tcl 7.4 (requires Tk4.0)
 | |
| 96-09-04  Lots of new files, deleted files
 | |
| 96-02-29  Tcl_RegExp*() changed to use posix regex
 | |
| 96-02-29  Tcl_RegExp*() cache change to avoid copying
 | |
| 96-02-29  Tcl_RegExpCompile arg 3 for case ignore match
 | |
| 96-02-29  drop stdarg.h from :: src list
 | |
| 96-02-29  drop malloc.h from tksh.h
 | |
| 96-02-25  unset TK_LIBRARY in tk.ksh
 | |
| 96-02-25  modifications to Makefile, config.sh and config.tcl:
 | |
|           make debug, make BASE=, removed debug option in interface
 | |
| 96-02-25  setsub now creates a null subscript
 | |
| 96-02-25  init.ksh sets argv0 & argv, uses discipline for env instead of trace
 | |
| 96-02-25  bug in Tksh_ConvertList fixed (didn't check errors properly)
 | |
| 96-02-25  Man page updated
 | |
| 
 | |
| 96-02-21  --- Release 1.0b2 ---
 | |
| 96-02-21  New version of Tksh paper
 | |
| 96-02-21  Man page updated
 | |
| 96-02-21  ksh version of source accepts standard input ; uses sfio
 | |
| 96-02-15  Tcl_EvalFile works with Tcl mode
 | |
| 96-02-15  Result only printed if stdout is a string.
 | |
| 96-02-13  Added sh_sigcheck to Tcl_TclEval, making it possible to stop an
 | |
|           infinite loop in a builtin.
 | |
| 96-02-13  Traces turned off in subshell
 | |
| 96-02-11  Added array data field in array discipline, used for array searches.
 | |
|           TkshMakeArray now called TkshArrayData, separate nv_makearray macro.
 | |
| 	  Search ids allocated like tcl, using array data instead of hash table
 | |
| 	  set.test would pass, except ordering of elements is different (5 fail)
 | |
| 	  however, it meets specs.
 | |
| 96-02-11  Cleaned up tksh.h a bit
 | |
| 96-02-11  Added in .sh.result traced to interp->result
 | |
| 96-02-11  Added builtin setlist
 | |
| 96-02-08  Added Tcl_UpVar, Tcl_UpVar2 functions
 | |
| 96-02-08  regexp.c used instead of shell patterns
 | |
| 96-02-08  fixed bug in proc test (but now file crashes)
 | |
| 96-02-08  changed behavior of "info commands" to strip off tcl_ so that
 | |
| 	  info.test passes
 | |
| 96-02-06  rewrote portions of var.c - now the code is a lot easier to follow.
 | |
| 	  Set up to use the new NV_NODISC flag.  Two more trace tests pass.
 | |
| 	  Note - only one unset disc is called after a function clears scope.
 | |
| 96-02-06  Added pid command
 | |
| 96-02-04  button.ksh invoke does not redirect stderr and stdout to /dev/null
 | |
| 96-02-03  Moved TclOpen and TclRead from tk.c to tclunix.c
 | |
| 96-02-03  File reorganization:
 | |
| 	    New file varcmd.c which has commands associated with vars
 | |
|               (taken from tclcommand.c)
 | |
| 	    tclcommand.c renamed commands.c, command.c renamed eval.c
 | |
| 	    commands.c has tclinfo.c and tclsource.c
 | |
| 96-02-03  Removed tcllist.c, tclstring.c and tclresult.c and put tclUtil.c
 | |
| 	  into tcl directory (only a couple of changes necessary to tclUtil.c)
 | |
| 96-02-03  Tcl_SetErrorCode.c remvoed from tclerr.c (in tclUtil.c)
 | |
| 96-02-03  Makefile updated accordingly
 | |
| 96-02-03  Fixed bug with bind : #! in bindscript was ignored
 | |
| 96-02-02  Fixed up/down arrow key problem in tk library
 | |
| 96-02-01  Removed printing of "after" for entry widgets
 | |
| 96-02-01  Removed return in Tcl_UntraceVar (return void doesn't work for sgi)
 | |
| 96-01-30  Added in checks to config.sh for -lsocket and -lnsl
 | |
| 96-01-30  Added fixstrtod (used in libtk.a on Solaris)
 | |
| 96-01-30  Moved "widget" to scripts directory and made symbolic link to it
 | |
| 96-01-30  Created "tksh" directory for binaries
 | |
| 96-01-29  Changed name of directory "kshmain" to "obsolete"
 | |
| 96-01-29  Fixed ifdef 0 in tk.c
 | |
| 96-01-29  tclinfo.c and interp.c use function TkshLibDir(), defined in tksh.c
 | |
| 96-01-29  tksh_builtin_command sets sh.exitval to 1 on error
 | |
| 
 | |
| 96-01-25  --- Release 1.0b1 ---
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="libtk changes">libtk changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 10-11-12 eliminate strict-aliasing puns
 | |
| 10-06-01 sync with ast api 20100601
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="libvcodex changes">libvcodex changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 11-01-31 Makefile: use `...` instead of $( ... ) for bootstrap build
 | |
| 10-06-01 sync with ast api 20100601
 | |
| 09-08-19 vchufgroup.c: sync with kpv (new alg)
 | |
| 09-06-22 sync with kpv, add vcgetfname(), vcwalkfname()
 | |
| 09-03-12 vcstrip.c: add
 | |
| 09-03-10 vcalias.c: add qnl
 | |
| 09-02-24 vcalias.c: add rte
 | |
| 09-02-24 vcsfio.c: ignore VC_EOF+ at end of header data
 | |
| 09-02-02 vcsfxsort.c: fix suffix sort stack overflow bug
 | |
| 08-12-07 sync with kpv 2008-11-04
 | |
| 08-09-10 vcsfio.c: handle old binary method header
 | |
| 08-07-23 vcodex.h: add __EXPORT__/__IMPORT__ extern attributes
 | |
| 08-06-04 sync with kpv
 | |
| 06-07-26 vcgetmeth.c,vcextract.c: handle CC_NATIVE!=CC_ASCII
 | |
| 06-02-14 vcodex.h: add __EXPORT__ to plugin declaration
 | |
| 06-02-08 vcsfio.c: simply magic logic by just peeking 4 byte magic
 | |
| 06-01-24 move private builtin methods to private plugins
 | |
| 06-01-16 Nmakefile: add PRIVATE for non-cpl methods
 | |
| 06-01-13 vcgetmeth.c: fix "foo.arg" parse error
 | |
| 05-10-25 vcsfio.c: fix header peek logic
 | |
| 05-09-28 Vchuff/vchhdr.h: add type case to ARRAYMAKE()
 | |
| 05-09-22 vcsfio.c: vczip command support functions for the masses
 | |
| 05-09-16 vcodex.h,vcsfio.c: add vcsfcomp() stub for vczip getmethods()
 | |
| 05-09-15 snarf from kpv, remerge _PACKAGE_ast
 | |
| 05-08-23 vcodex.h,vcsfio.c: add sfdcvcodex() (1:pushed,0:not-needed,-1:error)
 | |
| 05-08-22 vcsfio.c: peek initial header => no consumption on error
 | |
| 05-06-30 vcsfio.c: change vcsfmeth() to return Vcsfmeth_t* and size
 | |
| 05-06-29 vcodex.h: _PACKAGE_ast => <sfio.h>
 | |
| 	 fix !__STD_C for ancient sun4
 | |
| 	 change ident to char* (from unsigned char*) for pedantic cc
 | |
| 	 Vcdelta/vcdtblinit.c: init { _Vcdtbl _Vcdindex } to avoid dyn common
 | |
| 05-06-28 snarf from kpv
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="libvgraph changes">libvgraph changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 08-12-07 rename graph => vgraph
 | |
| 08-11-22 graph.h: add _WINIX import/export qualifiers
 | |
| 08-05-21 first release for -lvcodex
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="libtaso changes">libtaso changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 11-12-01 first release
 | |
| 
 | |
| </PRE>
 | |
| <P>
 | |
| <P><HR><CENTER><FONT color=red><FONT face=courier><H3><A name="libjcl changes">libjcl changes</A></H3></FONT></FONT></CENTER>
 | |
| <PRE>
 | |
| 
 | |
| 10-06-01 sync with ast api 20100601
 | |
| 10-04-20 run.c: add timout arg to cowait()
 | |
| 07-12-10 path.c: fix <size><suffix> ordering
 | |
| 07-12-07 path.c: handle { '.' '/' } delimiters, '/' for pds
 | |
| 07-12-03 jcl.h: add Jcl_t.flags JCL_GDG for data generations groups
 | |
| 07-12-03 path.c: add data generations group logic
 | |
| 07-11-21 run.c: fix USAGE computation
 | |
| 07-04-09 Makefile: $(CC.PIC) to allow archive to be pulled into other dlls
 | |
| 06-11-11 sym.c: export JCL_SYM_READONLY for exec and verbose
 | |
| 06-11-11 add JCL_SYM_READONLY for command line name=value
 | |
| 06-10-11 add sfstropen()/sfstruse() error checks
 | |
| 06-08-14 run.c: fix coopen() to use COSHELL=pathshell()
 | |
| 06-08-04 run.c: fix JOBNAME export
 | |
| 06-08-04 run.c: use coshell instead of system()
 | |
| 06-08-01 run.c: exit code is EXIT_STATUS(system(...))!
 | |
| 06-05-18 RC cleanup
 | |
| 06-05-17 libjcl.h,open.c,run.c: add JCL_EXEC SYS* redirection
 | |
| 05-10-25 run.c: fix "+" file append mark placement to be first char
 | |
| 	 parse.c: fix literal ' inside PARM=(...) list parse
 | |
| 05-10-11 jcl.h: add JCL_DD_MARKED for paths with size marks
 | |
| 05-09-15 run.c: drop "+" append mark on command arg files
 | |
| 05-09-12 lib.c: add { %%BLANK[n] %%TIME }
 | |
| 	 run.c: create output files if they don't exist
 | |
| 05-09-09 run.c: use fmtquote() FMT_SHELL flag for [$`]
 | |
| 05-08-29 jcl.h: add Jcl_t {date,odate,rdate} and control-m vars
 | |
| 	 open.c: initialize Jcl_t {date,odate,rdate}
 | |
| 	 lib.c: synthesize Jcl_t {date,odate,rdate} control-m vars
 | |
| 	 parse.c: add '$' to control-m var id set
 | |
| 05-06-11 run.c: 1 export per line for readability
 | |
| 	 run.c: export STEP=step-name
 | |
| 	 parse.c: fix SUBSYS=... file catenation bug
 | |
| 	 parse.c: SPACE=n is not a reliable lrecl predictor
 | |
| 05-02-14 sym.c: handle symbol redefinitions
 | |
| 	 find.c: ${%%foo} => ${JCL_AUTO_FOO}
 | |
| 	 jcl.h: fix JCL_CREATE/JCL_WARN bit value clash
 | |
| 	 jcl.h: add JCL_IMPORT env var precedence over map definitions
 | |
| 05-02-11 find.c: add expand() recursion check
 | |
| 04-10-31 jcl.h,parse.c,run.c: add JCL_DD_ALIAS for postponed DD
 | |
| 	 parse.c: handle DD SUBSYS=(name,'DDNAME=x')
 | |
| 04-10-18 path.c: expand() "set" args
 | |
| 04-10-17 run.c: add checkdir() to mkdir -p output dirs
 | |
| 	 find.c: recursively expand set vars
 | |
| 04-09-28 run.c: add more JCL_SUBDIR trace output
 | |
| 04-09-21 jcl.h,run.c: add JCL_SUBDIR
 | |
| 	 parse.c: add "JCL_AUTO_JOBNAME" to jclsym()
 | |
| 	 parse.c: fix expression parse bugs
 | |
| 	 uniq.c: trailing %% is not a file size mark
 | |
| 04-09-20 run.c: add "export JCL_AUTO_JOBNAME=job"
 | |
| 04-09-19 path.c: handle prefix match tail
 | |
| 04-09-15 jcl.h: add Jcl_t.roflags
 | |
| 	 path.c: add expand() for --include ${...} expand
 | |
| 	 path.c: ${...} does lookup() then getenv() -- duh
 | |
| 	 path.c: add *.X prefix match with ${1} ... subexprs
 | |
| 	 path.c: add "export" and { JCL_SYM_EXPORT JCL_SYM_SET }
 | |
| 04-08-11 jcl.h,find.c: add JCL_CREATE for jclfind() create
 | |
| 04-08-08 path.c: provide default disc.{usage,optsetf}
 | |
| 04-08-06 split cmd/jcl => lib/libjcl + cmd/jcl
 | |
| 	 path.c: set options only if usage&optsetf are set
 | |
| 04-06-14 run.c: clean up tmp files on exit
 | |
| 04-06-06 jcl.h,parse.c: parse OUTPUT and DD OUTPUT=*
 | |
| 04-05-31 jcl.h,jcl.tst: add JCL_DD_DIR for SPACE=(*(x,y,z)*)
 | |
| 04-05-24 run.c: handle JCL_DISP_MOD by prefixing dd name with '+'
 | |
| 04-05-20 cpy2dss.c: fix --variable to *also* emit <VARIABLE>1</>
 | |
| 04-05-19 cpy2dss.c: fix --variable to emit terminator and width
 | |
| 04-05-14 cpy2dss.c: add --terminator=char and --variable
 | |
| 04-05-06 cpy2dss.c: handle nested structs and out of sync level indices
 | |
| 04-05-04 cpy2dss.c: promote from test area
 | |
| 04-02-29 parse.c: ignore %%.
 | |
| 	 jclparm(): PARM=(' name=value') => name=value
 | |
| 	 run.c: parms passed as one , separated arg
 | |
| 	 run.c: map dd DSN=&FOO => ${TMPDIR:-/tmp}/job.$$.FOO
 | |
| 04-02-11 lib.c,sym.c: fix short by one bugs in stash() and jclsym()
 | |
| 04-01-30 fix '&variable' logic; JCL_LISTSCRIPTS lists INCLUDE paths too
 | |
| 04-01-27 parse.c: fix off-by-one continuation logic
 | |
| 04-01-14 run.c: fix std[3] => std[4] off-by-one declaration
 | |
| 03-11-18 parse.c: add INCLUDE and JCLLIB, fix find search()
 | |
| 03-11-17 find.c: only convert base name upper=>lower in search
 | |
| 	 parse.c: add IF/ELSE/ENDIF
 | |
| 03-10-30 fix DD SYSIN redirection, DD DUMMY
 | |
| 03-10-16 set (recfm,lrecl) via marked() if not already set
 | |
| 	 export DD catenations
 | |
| 03-10-10 variable expansion by the book
 | |
| 03-10-01 first code
 | |
| </PRE>
 | |
| <P>
 | |
| <HR>
 | |
| <TABLE border=0 align=center width=96%>
 | |
| <TR>
 | |
| <TD align=left></TD>
 | |
| <TD align=center></TD>
 | |
| <TD align=right>August 07, 2012</TD>
 | |
| </TR>
 | |
| </TABLE>
 | |
| <P>
 | |
| 
 | |
| </TD></TR></TBODY></TABLE>
 | |
| 
 | |
| </BODY>
 | |
| </HTML>
 |