1*4887Schin07-04-18  --- Release ksh93s+  ---
2*4887Schin07-04-18  A small memory leak with each redirection of a non-builtin has
3*4887Schin	  been fixed.
4*4887Schin07-03-08  A bug in which set +o output command line options has been fixed.
5*4887Schin07-03-08  A bug in which an error in read (for example, an invalid variable
6*4887Schin	  name), could leave the terminal in raw mode has been fixed.
7*4887Schin07-03-06  A bug in which read could core dump when specified with an array
8*4887Schin	  variable with a subscript that is an arithmetic expression has
9*4887Schin	  been fixed.
10*4887Schin07-03-06  Several serious bugs with the restricted shell were reported and
11*4887Schin	  fixed.
12*4887Schin07-03-02  If a job is stopped, and subsequently restarted with a CONT
13*4887Schin	  signal and exits normally, ksh93 was incorrectly exiting with
14*4887Schin	  the exit status of the stop signal number.
15*4887Schin07-02-26  M-^L added to emacs mode to clear the screen.
16*4887Schin07-02-26  A bug in which setting a variable readonly in a subshell would
17*4887Schin	  cause an unset error when the subshell completed has been fixed.
18*4887Schin07-02-19  The format with printf uses the new = flag to center the output.
19*4887Schin07-02-19  A bug in which ksh93 did not allow multibyte characters in
20*4887Schin	  identifier names has been fixed.
21*4887Schin07-02-19  A bug introduced in ksh93 that causes global compound variable
22*4887Schin	  definitions inside functions to exit with "no parent" has been fixed.
23*4887Schin07-02-19  A bug in which using compound commands in process redirection
24*4887Schin	  arguments would give syntax errors <(...) and >(...) has been fixed.
25*4887Schin07-01-29  A bug which caused the shell to core dump which can occur when a
26*4887Schin	  built-in exits without closing files that it opens has been fixed.
27*4887Schin07-01-26  A bug in which ~(E) in patterns containing \ that are not inside ()
28*4887Schin	  has been fixed.
29*4887Schin
30*4887Schin06-12-29  --- Release ksh93s  ---
31*4887Schin06-12-29  A bug in which the value of IFS could be changed after a command
32*4887Schin	  substitution has been fixed.
33*4887Schin06-12-22  /dev/(tcp|udp|sctp)/HOST/SEVRICE now handles IPv6 addresses on
34*4887Schin	  systems that provide getaddrinfo(3).
35*4887Schin06-12-19  A -v option was added to read.  With this option the value of
36*4887Schin	  the first variable name argument will become the default value
37*4887Schin	  when read from a terminal device.
38*4887Schin06-11-20  A bug in which "${foo[@]:1}}" expands a null argument (instead of
39*4887Schin	  no argument), when foo[0] is not empty has been fixed.
40*4887Schin06-11-16  The discipline functions have been modified to allow each subscript
41*4887Schin	  to act independently.  Currently the discipline function will not
42*4887Schin	  be called when called from a discipline function of the same variable.
43*4887Schin06-11-14  A bug which could cause a core dump if a file descriptor for
44*4887Schin	  an internal file was closed from with a subshell has been fixed.
45*4887Schin06-10-30  The redirections <# pattern, and <## pattern have been added.
46*4887Schin	  Both seek forward to the beginning of the next line that contains
47*4887Schin	  the pattern.  The <## form copies the skipped portion to standard
48*4887Schin	  output.
49*4887Schin06-10-26  On systems that support stream control transport, the virtual file
50*4887Schin	  name /dev/sctp/host/port can now be used to establish connections.
51*4887Schin06-10-26  The printf modifier # when used with d produces units in thousands
52*4887Schin	  with a single letter suffix added.  The modifier # when used with
53*4887Schin	  the i specification provides units of 1024 with a two letter suffix.
54*4887Schin06-10-24  The value of $! is now set to the process id of a job put
55*4887Schin	  into the background with the bg command as required by POSIX.
56*4887Schin06-10-23  A bug in which the value of $! was affected by a background
57*4887Schin	  job started from a subshell has been fixed.
58*4887Schin06-10-23  A bug in ${var:offset:len} in multibyte locales has been fixed.
59*4887Schin06-10-15  The remaining math functions from C99 were added for any system
60*4887Schin	  that supports them.
61*4887Schin06-10-13  The klockwork.com software detected a few coding errors that
62*4887Schin	  have been fixed.
63*4887Schin06-10-12  A bug when skipping over `...` with ${x:=`...`} when x is set
64*4887Schin	  has been fixed.
65*4887Schin06-10-11  A bug in process floating constants produced by the %a format
66*4887Schin	  of printf has been fixed.
67*4887Schin06-10-06  A bug in which IFS was not being restored correctly in some
68*4887Schin	  cases after a subshell has been fixed.
69*4887Schin06-10-06  A bug in which pipefail was not detecting some failures in
70*4887Schin	  pipelines with 3 or more states has been fixed.
71*4887Schin06-10-03  A bug in the processing of >(...) with builtins which could
72*4887Schin	  cause the builtin to hang has been fixed.
73*4887Schin06-10-03  A bug in the for loop optimizer which causes >(...) process
74*4887Schin	  substitution to be ignored has been fixed.
75*4887Schin06-09-17  The -a option was added to typeset for indexed arrays.  This
76*4887Schin	  is only needed when using the ([subscript]=value ...) form.
77*4887Schin06-09-06  The showme option was added.  Each simple command not beginning
78*4887Schin	  with a redirection and not occurring with in the while, until, if,
79*4887Schin	  select condition can be preceded by a semi-colon which will
80*4887Schin	  be ignored when showme is off.  When showme is on, any command
81*4887Schin	  preceded by a colon will be traced but not executed.
82*4887Schin06-08-16  As a new feature, a leading ~(N) on a pattern has no effect
83*4887Schin	  except when used for file expansion.  In this case if not
84*4887Schin	  matches are found, the pattern is replaced by nothing rather
85*4887Schin	  than itself.
86*4887Schin06-08-11  A bug in the expansion of ${.sh.match[i]:${#.shmatch[i]}} has
87*4887Schin	  been fixed.
88*4887Schin06-08-10  The read builtin options -n and -N have been modified to treat
89*4887Schin          the size as characters rather than bytes unless storing into a
90*4887Schin	  binary (typeset -B) variable.
91*4887Schin06-07-27  When the here document operator << is followed directly by a #
92*4887Schin	  rather than a -, the first line of the here-document determines
93*4887Schin	  how much whitespace is removed for each line.
94*4887Schin06-07-26  A bug in the C-shell history (enabled with set -H) in which the
95*4887Schin	  history event !$ was not processed has been fixed.
96*4887Schin06-07-21  A bug on some systems in which assigning PATH on a command line
97*4887Schin	  would not take effect has been fixed.
98*4887Schin06-07-20  Add ksh93 and rksh93 as allowable names for ksh binaries.
99*4887Schin06-07-20  Removed the SHOPT_OO compilation option which was only partially
100*4887Schin	  implemented.
101*4887Schin06-07-20  The ability to use egrep, grep, and fgrep expressions within
102*4887Schin	  shell patterns has been documented.
103*4887Schin06-07-17  A bug with arithmetic command expressions for locales in which
104*4887Schin	  the comma is a thousands separator has been fixed.
105*4887Schin06-07-13  The default HISTSIZE was increased from 128 to 512.
106*4887Schin06-07-13  A multibyte problem with locales that use shift codes has been fixed.
107*4887Schin06-06-23  A number of bug fixes for command, file, and variable completion
108*4887Schin	  have been mode.
109*4887Schin06-06-20  Floating point division by zero now yields the constant Inf or -Inf
110*4887Schin	  and floating functions with invalid arguments yield NaN.
111*4887Schin06-06-20  The floating point constants Inf and NaN can be used in arithmetic
112*4887Schin	  expressions.
113*4887Schin06-06-20  The functions isinf(), isnan(), tanhl() have been added for
114*4887Schin	  arithmetic expressions.
115*4887Schin06-06-13  Internal change to use ordering for variables instead of hashing
116*4887Schin	  to speed up prefix matching.
117*4887Schin06-06-13  A window between fork/exec in which a signal could get lost
118*4887Schin	  and cause a program to hang has been eliminated
119*4887Schin06-06-13  A bug in edit completion with quoted strings has been fixed.
120*4887Schin06-06-07  The restricted options can now be enabled by set as well as on
121*4887Schin	  the command line.  Once set, it can not be disabled.
122*4887Schin06-06-04  Modified built-in binding so that for systems for which /bin
123*4887Schin          and /usr/bin are the same, a builtin bound to /bin will get
124*4887Schin	  selected when either /bin or /usr/bin is scanned.
125*4887Schin06-06-04  Added literal-next character processing for emacs/gmacs mode.
126*4887Schin	  This change is not compatible with earlier versions of ksh93
127*4887Schin          and ksh88 when the stty lnext is control-v.  The sequence
128*4887Schin	  escape-control-v will display the shell version.
129*4887Schin06-05-31  Modified emacs and vi mode so that entering a TAB after a partial
130*4887Schin	  TAB completion, generates a listing of possible completions.
131*4887Schin	  After the second TAB, a number followed by a TAB will perform
132*4887Schin	  the completion with the corresponding item.
133*4887Schin06-05-19  Modified arithmetic so that conversions to strings default to
134*4887Schin	  the maximum number of precision digits.
135*4887Schin06-05-16  Bug fixes for multibyte locales.
136*4887Schin06-05-10  The =~ operator was added to [[...]] and  [[ string ~= ERE ]]
137*4887Schin	  is equivalent to [[ string == ~(E)ERE ]].
138*4887Schin06-04-25  A bug in the vi edit mode which could cause the shell to core dump
139*4887Schin	  when switching from emacs mode.
140*4887Schin06-04-17  A bug in which using LANG or LC_ in assignment lists with builtins
141*4887Schin	  did not restore the localed correctly has been fixed.
142*4887Schin06-04-04  A bug in which discipline functions could not be added to variables
143*4887Schin	  whose names started with .sh has been fixed.
144*4887Schin06-03-28  The -s option to typeset was added to modify -i to indicate short
145*4887Schin	  integers.
146*4887Schin06-03-28  A bug in which variables assignment lists before functions
147*4887Schin	  defined with function name were not passed on the functions
148*4887Schin	  invoked by this function has been fixed.
149*4887Schin06-03-28  A bug in which name references defined within a function defined
150*4887Schin	  with function  name could not be used with compound variables has
151*4887Schin	  been fixed.
152*4887Schin06-03-27  A bug in which read <&p (print >&p) would cause the coprocess input
153*4887Schin	  (output) pipe to close before reading from (after writing to)
154*4887Schin          it has been fixed.
155*4887Schin06-02-28  A bug in which stopping a job created with the hist builtin command
156*4887Schin	  would create a job that could not be restarted has been fixed.
157*4887Schin
158*4887Schin06-01-24  --- Release ksh93r  ---
159*4887Schin06-01-24  A bug in which running commands with standard output closed would
160*4887Schin	  not work as expected has been fixed.
161*4887Schin06-01-23  A bug in which print -u<n> could fail when file descriptor <n> was
162*4887Schin	  open for writing has been fixed.
163*4887Schin06-01-19  The ?: arithmetic operator fixed to work when the operation after
164*4887Schin	  the colon was an assignment.
165*4887Schin05-12-24  A bug which could lead to a core dump when elements of a compound
166*4887Schin	  variable were array elements, i.e. foo=(bar=(1 2)), has been fixed.
167*4887Schin05-12-13  An arithmetic bug in which x+=y+=z was not working has been fixed.
168*4887Schin05-12-13  An arithmetic bug in which x||y was returning x when x was non-zero
169*4887Schin	  rather than 1 has been fixed.
170*4887Schin05-12-07  The aliases for integer and float have been changed to use attributes
171*4887Schin	  -li and -lE to handle long long and long double types.
172*4887Schin05-12-07  The histexpand (-H) option has been added which allows C-shell
173*4887Schin	  style history expansions using the history character !.
174*4887Schin05-12-07  The multiline option was added which changes that way the edit
175*4887Schin	  modes handle lines longer than the window width.  Instead of
176*4887Schin	  horizontal scrolling, multiple lines on the screen are used.
177*4887Schin05-12-05  The whence builtin now returns an absolute pathname when the
178*4887Schin          command is found in the current directory.
179*4887Schin05-11-29  A bug which caused ksh -c '[[ ! ((' to core dump rather than
180*4887Schin	  report a syntax error has been fixed.
181*4887Schin05-11-29  A bug when reading fixed length records into typeset -b variables
182*4887Schin	  which caused a zero byte to terminate the value has been fixed.
183*4887Schin05-11-22  The ability to seek to an offset within a file has been added
184*4887Schin	  with the new I/O redirection operators, <#  and >#.  Currently,
185*4887Schin	  these redirection operators must be followed by ((expr))
186*4887Schin	  but in a future release, it should be able to used to seek forward
187*4887Schin	  to the specified shell pattern.  In addition $(n<#) expands to the
188*4887Schin	  current byte offset for file descriptor n.
189*4887Schin05-11-22  The .sh.match array variable is now set after each [[ ... ]]
190*4887Schin	  pattern match.  Previously it was only set for substring matches.
191*4887Schin05-10-17  A bug in which the library path variable could be prefixed
192*4887Schin          with a directory when a .path file was not encountered in
193*4887Schin	  the directory of the executable has been fixed.
194*4887Schin05-09-15  A for/while loop optimizer bug in which $OPTIND was not
195*4887Schin	  correctly expanded has been fixed.
196*4887Schin05-09-05  A bug in which a history command that invoked a history
197*4887Schin	  command could go into an infinite loop has been fixed.
198*4887Schin05-08-31  In the case that IFS contains to adjacent new-lines so that
199*4887Schin	  new-line is not treated as a space delimiter, only a single
200*4887Schin	  new-line is deleted at the end of a command substitution.
201*4887Schin05-08-19  When a tilde substitution expands to the / directory and is
202*4887Schin	  followed by a /, it is replaced by the empty string.
203*4887Schin05-08-16  A bug in which n<&m did not synchronize m has been fixed.
204*4887Schin05-08-16  A bug in which process substitution  ( <() and >() ) was not
205*4887Schin	  working within for and while loops has been fixed.
206*4887Schin05-07-24  A bug in which the pattern ~(E)(foo|bar) was treated as a syntax
207*4887Schin	  error has been fixed.
208*4887Schin05-07-24  A bug in completion with <n>=, where n was the one of the
209*4887Schin	  previous selection choices has been fixed.
210*4887Schin05-07-21  A bug with multibyte input when no edit mode was specified which
211*4887Schin	  caused the input line to shift left/right has been fixed.
212*4887Schin05-06-24  A race condition which could cause the exit status to get lost
213*4887Schin	  on some fast systems has been fixed.
214*4887Schin05-06-21  A bug in which nested patterns of the form {m,n}(pat) would cause
215*4887Schin	  syntax errors has been fixed.
216*4887Schin05-06-21  A bug in the macro expander has been fixed which could cause a
217*4887Schin          syntax error for an expansion of the form ${x-$(...)} when
218*4887Schin	  x is set and the command substitution contained certain strings.
219*4887Schin05-06-08  On systems for which echo does not do System V style \ expansions,
220*4887Schin	  the -e option was added to enable these expansion.
221*4887Schin05-06-08  A bug in which ${var op pattern} to not work when inside an
222*4887Schin	  arithmetic expression has been fixed.
223*4887Schin05-05-23  An extension to shell patterns that allows matching of nested
224*4887Schin	  groups while skipping over quoted strings has been added.
225*4887Schin05-05-18  A bug in which the line number for errors was not correct for
226*4887Schin          functions loaded from FPATH has been fixed.
227*4887Schin05-04-18  A bug in which the exit status $? is not set when a trap triggered
228*4887Schin	  by the [[...]] command is executed has been fixed.
229*4887Schin05-04-08  Redirection operators can be directly preceded with {varname}
230*4887Schin	  with no intervening space, where varname is a variable name which
231*4887Schin	  allows the shell to select a file descriptor > 10 and store it
232*4887Schin	  into varname.
233*4887Schin05-04-08  SHOPT_CMDLIB_BLTIN=1 now includes <cmdlist.h> generated table.
234*4887Schin05-04-07  [[ -o ?option ]] is true if "option" is a supported option.
235*4887Schin05-04-05  A bug in handling file completion with spaces in the names
236*4887Schin          has been fixed.
237*4887Schin05-03-25  The SIGWINCH signal is caught by default to keeps the LINES and
238*4887Schin	  COLUMNS variables in sync with the actual window size.
239*4887Schin05-03-25  Building ksh with SHOPT_REMOTE=1 causes ksh to set --rc if stdin is
240*4887Schin	  a socket (presumably part of a remote shell invocation.)
241*4887Schin05-03-25  Building ksh with SHOPT_SYSRC=1 causes interactive ksh to source
242*4887Schin	  /etc/ksh.kshrc (if it exists) before sourcing the $ENV file.
243*4887Schin05-03-25  {first..last[..incr][%fmt]} sequences added to brace expansions
244*4887Schin	  when braceexpand is enabled.
245*4887Schin05-03-03  A bug where a SIGCHLD interrupt could cause a fifo open to fail has
246*4887Schin	  been fixed.
247*4887Schin05-02-25  A bug in which a builtin command run in the background could
248*4887Schin	  keep a file descriptor open which could cause a foreground
249*4887Schin	  process to hang has been fixed.
250*4887Schin05-02-24  A bug where builtin library commands (e.g., date and TZ) failed to
251*4887Schin	  detect environment variable changes has been fixed.
252*4887Schin05-02-22  The read builtin and word splitting are now consistent with respect
253*4887Schin	  to IFS -- both treat IFS as field delimiters.
254*4887Schin05-02-22  The read builtin no longer strips off trailing delimiters that
255*4887Schin	  are not space characters when there are fewer variables than fields.
256*4887Schin05-02-17  A builtin bug on systems where dlsym(libcmd) returns link-time
257*4887Schin	  bindings has been fixed.
258*4887Schin05-02-12  A bug in which the lib_init() function for .paths BUILTIN_LIB
259*4887Schin	  libraries was not called has been fixed.
260*4887Schin05-02-06  A bug on some systems in which moving the write end of a co-process
261*4887Schin	  to a numbered file descriptor could cause it to close has been fixed.
262*4887Schin05-02-06  A bug in the vi-edit mode in which the character under the cursor
263*4887Schin	  was not deleted in some cases with the d% directive has been fixed.
264*4887Schin05-02-06  A bug where external builtin stdout/stderr redirection corrupted
265*4887Schin          stdout has been fixed.
266*4887Schin05-02-04  A bug where times formatting assumed CLK_TCK==60 has been fixed.
267*4887Schin
268*4887Schin05-01-11  --- Release ksh93q  ---
269*4887Schin05-01-11  A bug in the integral divide by zero check has been fixed.
270*4887Schin05-01-11  The -l option has been added to read /etc/profile and
271*4887Schin	  $HOME/.profile, if they exist, before the first command.
272*4887Schin05-01-11  An argument parsing bug that caused `kill -s x -- n' to fail has
273*4887Schin	  been fixed.
274*4887Schin05-01-11  The .paths file, introduced in ksh93m, which can appear in
275*4887Schin	  any directory in PATH, now allows a line of the form 'BUILTIN_LIB=.'
276*4887Schin	  When a command is searched for this directory, and the full path
277*4887Schin	  matches the path of the built-in version of the command (listed
278*4887Schin	  by the 'builtin' command) then the built-in version of the command
279*4887Schin	  is used.  When ksh is built with SHOPT_CMDLIB_DIR=1 then all libcmd
280*4887Schin	  functions become builtins with the '/opt/ast/bin/' directory prefix.
281*4887Schin05-01-10  A bug in which a nameref to a compound name caused a core dump has
282*4887Schin	  been fixed.
283*4887Schin05-01-09  A bug in which some SIGCHLD interrupts (from child processes exiting)
284*4887Schin	  caused a fatal print/echo error diagnostic has been fixed.
285*4887Schin04-12-24  A bug in which some SIGCHLD interrupts (from child processes exiting)
286*4887Schin          corrupted the internal process/job list, sometimes causing the shell
287*4887Schin	  to hang, has been fixed.
288*4887Schin04-12-01  A bug in which typeset -Fn truncated less than n digits for large
289*4887Schin	  numbers has been fixed.
290*4887Schin04-11-25  A bug in which standard error could be closed after a redirection
291*4887Schin	  to /dev/stderr has been fixed.
292*4887Schin04-11-17  A bug in which an expansion of the form ${array[@]:3} could expand
293*4887Schin          to ${array[0]} when ${array[3]} was not set has been fixed.
294*4887Schin04-10-22  The -E or -orc command line option reads ${ENV-$HOME/.kshrc} file.
295*4887Schin04-10-22  `-o foo' equivalent to `+o nofoo', `-o nobar' equivalent to `+o bar'.
296*4887Schin          `--foo' equivalent to `-o foo', `--nofoo' equivalent to `+o foo'
297*4887Schin04-10-05  The .paths file, introduced in ksh93m, which can appear in
298*4887Schin	  any directory in PATH, now allows a line of the form
299*4887Schin	  'BUILTIN_LIB=libname'.  When a command is searched for this directory,
300*4887Schin	  the shared library named by libname will first be searched for a
301*4887Schin	  built-in version of the command.
302*4887Schin04-09-03  <<< here documents now handle quotes in the word token correctly.
303*4887Schin04-08-08  The maximum size for read -n and and read -N was increased from
304*4887Schin	  4095 to 32M.
305*4887Schin04-08-04  printf %q was modified so that if an no operand was supplied, no
306*4887Schin	  no output would be generated rather than a quoted empty string.
307*4887Schin04-08-01  The -n and -N options of the read builtin has been modified
308*4887Schin	  when reading variables with the binary attribute so that the
309*4887Schin	  data is stored directly rather than through assignment.
310*4887Schin04-08-01  The shcomp command has been modified to process alias commands
311*4887Schin	  under some conditions.
312*4887Schin04-07-31  The .sh.match variable added in ksh93l, now works like other
313*4887Schin	  indexed arrays.
314*4887Schin04-07-08  A loop optimizer bug which occurs when typeset is used in
315*4887Schin	  a for or while loop inside a function has been fixed.
316*4887Schin04-06-24  The number of subexpressions in a pattern was increased to 64
317*4887Schin	  from the current number of 20.
318*4887Schin04-06-17  The -t option to read was modified to allow seconds to be
319*4887Schin	  specified as any arithmetic expression rather than just
320*4887Schin	  an integral number of seconds, for example even -t 'sin(.5)'
321*4887Schin	  is now valid.
322*4887Schin04-06-16  Two small memory leak problems were fixed.
323*4887Schin04-06-15  A bug in ${var/pattern/"string"} which occurred when string
324*4887Schin	  contained pattern matching characters has been fixed.
325*4887Schin04-05-08  printf $'%d\n' produced an erroneous error message and has
326*4887Schin	  been fixed.
327*4887Schin04-05-24  A bug in which an associative array without any elements could
328*4887Schin	  cause a core dump when a script with an associative array with
329*4887Schin	  the same name was declared in a script invoked by name has
330*4887Schin	  been fixed.
331*4887Schin04-05-11  A bug in which an exec statement could close the script that
332*4887Schin	  is being processed in a script that is run by name causing
333*4887Schin	  a failure has been fixed.
334*4887Schin04-04-28  If the first character of assignment to an integer variable was 0,
335*4887Schin          the variable had been treated as unsigned.  This behavior was
336*4887Schin          undocumented and has been removed.
337*4887Schin04-04-05  A bug in which the positioning of standard input could be incorrect
338*4887Schin	  after reading from standard input from a subshell has been fixed.
339*4887Schin04-03-30  A bug in the for loop optimizer which in rare cases could cause
340*4887Schin	  memory corruption has been fixed.
341*4887Schin04-03-29  The preset alias source='command .' has been added.
342*4887Schin04-03-29  A bug introduced in ksh93p on some systems in which invoked by
343*4887Schin	  name with #! on the first line would not get the signals handling
344*4887Schin	  initialized correctly has been fixed.
345*4887Schin04-03-29  A bug introduced in ksh93p in which a HUP signal received by
346*4887Schin	  a shell that is a session group leader was not passed down to
347*4887Schin	  its children has been fixed.
348*4887Schin
349*4887Schin04-02-28  --- Release ksh93p  ---
350*4887Schin04-02-28  The ability to apply an append discipline to any variable has
351*4887Schin	  been added.
352*4887Schin04-02-14  A bug in which the exportall option (set -a) would cause incorrect
353*4887Schin	  results for arrays has been fixed.
354*4887Schin04-02-02  A bug in which an exported array would pass more than
355*4887Schin	  the first element to a script invoked by name has been fixed.
356*4887Schin04-02-02  A bug on some systems in which name=value pairs preceding a script
357*4887Schin	  invoked by name was not getting passed to the script has been fixed.
358*4887Schin04-01-20  A bug in which an unset discipline function could cause a core
359*4887Schin	  dump on some systems has been fixed.
360*4887Schin04-01-12  A bug in which a continue or break called outside a loop from
361*4887Schin	  inside a function defined with name() syntax could affect
362*4887Schin	  the invoking function has been fixed.
363*4887Schin04-01-08  If a command name begins with ~, only filename completion will be
364*4887Schin	  attempted rather than pathname completion using the builtin editors.
365*4887Schin04-01-08  A bug in the vi edit mode in which the wrong repeat count on
366*4887Schin	  multiple word replacements with the . directive has been fixed.
367*4887Schin04-01-06  Backspace characters are now handled correctly in prompt strings.
368*4887Schin04-01-06  The getopts builtin has been modified to accept numerical
369*4887Schin	  arguments of size long long on systems that support this.
370*4887Schin04-01-06  A bug in which unsetting all elements of an associative array
371*4887Schin	  would cause it to be treated as an indexed array has been fixed.
372*4887Schin03-12-15  A bug in which a quoted string ending with an unescaped $ would
373*4887Schin	  delete the ending $ in certain cases has been fixed.
374*4887Schin03-12-05  A bug in which the shell could hang when set -x tracing a command
375*4887Schin	  when an invalid multibyte character is encountered has been fixed.
376*4887Schin03-12-05  On some systems, if the KEYBD trap is set, then commands that use
377*4887Schin	  the meta key were not processed until return was hit.  This
378*4887Schin	  has been fixed.
379*4887Schin03-12-05  A problem which occurred when the login shell was not a group
380*4887Schin	  leader that could cause it to fail has been fixed.
381*4887Schin03-12-05  A problem in which a shell could core dump after receiving a signal
382*4887Schin	  that should cause it to terminate while it was in the process
383*4887Schin	  of acquiring more space has been fixed.
384*4887Schin03-12-05  If ENV is not specified, the shell will default to $HOME/.kshrc
385*4887Schin	  for interactive shells.
386*4887Schin03-11-21  A bug introduced in ksh93o in which the DEBUG trap could get
387*4887Schin	  disabled after it triggered has been fixed.
388*4887Schin03-11-04  A bug in which using arithmetic prefix operators ++ or -- on a
389*4887Schin	  non-lvalue could cause a core dump has been fixed.
390*4887Schin03-11-04  A bug in which leading zeros were stripped from variable
391*4887Schin	  expansions within arithmetic computation to avoid being treated
392*4887Schin	  as octal constants when they should not have, has been fixed.
393*4887Schin03-10-08  A bug introduced in ksh93o in which a large here document inside
394*4887Schin	  a function definition could get corrupted has been fixed.
395*4887Schin03-09-22  A bug in which the .get discipline function was not being
396*4887Schin	  called when a string variable was implicitly referenced from
397*4887Schin	  within a numerical expression has been fixed.
398*4887Schin03-09-22  A bug in which a script without a leading #! could get executed
399*4887Schin	  by /bin/sh rather than the current shell on some systems has
400*4887Schin	  been fixed.
401*4887Schin03-09-12  To improve conformance with ksh88, leading zeros will be ignored
402*4887Schin	  when getting the numerical value of a string variable so that
403*4887Schin	  they will not be treated as octal constants.
404*4887Schin03-09-03  The builtin kill command now processes obsolete invocations
405*4887Schin	  such as kill -1 -pid.
406*4887Schin03-09-02  The restriction on modifying FPATH in a restricted shell (sh -r)
407*4887Schin	  has been documented.
408*4887Schin03-09-02  The restricted shell (sh -r) has been modified to disallow
409*4887Schin	  executing command -p.
410*4887Schin03-08-07  A bug in which the KEYBD trap was not being invoked when
411*4887Schin	  characters with the 8th bit set has been fixed.
412*4887Schin03-08-02  A parser bug introduced in ksh93o which caused the character
413*4887Schin	  after () in a Posix function definition to be skipped
414*4887Schin	  when reading from standard input has been fixed.
415*4887Schin03-08-01  A bug in which "${foo#pattern}(x)" treated (x) as if it were
416*4887Schin	  part of the pattern has been fixed.
417*4887Schin03-08-01  The command -x option has been modified so that any trailing
418*4887Schin	  arguments that do expand to a single word will be included
419*4887Schin	  on each invocation, so that commands like command -x mv * dir
420*4887Schin	  work as expected.
421*4887Schin
422*4887Schin03-07-20  --- Release ksh93o+  ---
423*4887Schin03-07-20  A bug in which could cause memory corruption when a posix
424*4887Schin	  function invoked another one has been fixed.
425*4887Schin03-07-15  A bug in which a file descriptor>2 could be closed before
426*4887Schin	  executing a script has been fixed.
427*4887Schin03-07-15  A parsing error for <() and >() process substitutions inside
428*4887Schin	  command substitution has been fixed.
429*4887Schin03-07-15  A parsing error for patterns of the form {...}(...) when
430*4887Schin	  used inside ${...} has been fixed.
431*4887Schin03-07-15  An error in which expanding an indexed array inside a compound
432*4887Schin	  variable could cause a core dump has been fixed.
433*4887Schin03-07-15  A bug in which under on rare occassions a job completion interrupt
434*4887Schin	  could cause to core dump has been fixed.
435*4887Schin03-06-26  A bug in which process substitution embedded within command
436*4887Schin	  substitution would generate a syntax error has been fixed.
437*4887Schin03-96-23  A bug in which ${@:offset:len} could core dump when there
438*4887Schin	  were no arguments has been fixed.
439*4887Schin03-96-23  A bug in which ${X[@]:offset:len} could core dump when X
440*4887Schin	  was unset has been fixed.
441*4887Schin03-06-22  The -x option was added to the command builtin.  If this
442*4887Schin	  option is on, and the number of arguments would exceed ARG_MAX,
443*4887Schin	  the command will be invoked multiple times with a subset of
444*4887Schin	  the arguments.  For example, with alias grep='command -x grep,
445*4887Schin	  any number of arguments can be specified.
446*4887Schin03-06-14  A bug in which could cause a core dump on some systems with
447*4887Schin	  vi and emacs editors with the MULTIBYTE option has been fixed.
448*4887Schin03-06-06  A bug in which the shell could core dump when a script was
449*4887Schin	  run from its directory, and the script name a symlink to a file
450*4887Schin	  beginning with .., has been fixed.
451*4887Schin03-06-05  A bug in which the shell could core dump when a child process
452*4887Schin	  that it is unaware of terminates while it is calling malloc()
453*4887Schin	  has been fixed.
454*4887Schin03-06-02  An option named globstar (set -G) has been added.  When enabled,
455*4887Schin	  during pathname expansion, any component that consists only of ** is
456*4887Schin	  matches all files and any number of directory levels.
457*4887Schin03-05-30  A bug in which the PATH search could give incorrect results when
458*4887Schin	  run from directory foo and PATH contained .:foo:xxx has been fixed.
459*4887Schin03-05-29  Some changes were made to the code that displays the prompt in edit
460*4887Schin	  mode to better handle escape sequences in the prompt.
461*4887Schin03-05-27  I added = to the list of characters that mark the beginning of
462*4887Schin	  a word for edit completion so that filenames in assignments
463*4887Schin	  can be completed.
464*4887Schin03-05-20  A bug in which read -N could hang on some systems when reading
465*4887Schin	  from a terminal or a pipe has been fixed.
466*4887Schin03-05-19  A bug in which the output of uname from a command substitution
467*4887Schin	  would go to the standard output of the invoking command when
468*4887Schin	  uname was invoked with a non-standard option has been fixed.
469*4887Schin03-05-19  A job control bug which would cause the shell to exit because
470*4887Schin	  it hadn't take back the terminal has been fixed.  The bug
471*4887Schin	  could occur when running a function that contained a pipeline
472*4887Schin	  whose last element was a function.
473*4887Schin03-05-19  A job control timing bug introduced in ksh93o on some systems
474*4887Schin	  which could cause a pipeline to hang if the first component
475*4887Schin	  completed quickly has been fixed.
476*4887Schin03-05-13  The read builtin has been modified so that the builtin editors
477*4887Schin	  will not overwrite output from a previous incomplete line.
478*4887Schin03-05-13  A bug in which the name of an identifier could have the string
479*4887Schin	  .sh. prefixed to it after expanding a variable whose name begins
480*4887Schin	  with .sh. has been fixed.
481*4887Schin03-05-13  A bug in the expansion of $var for compound variables in which
482*4887Schin	  some elements would not be output when the name was a prefix
483*4887Schin	  of another name in the compound variable has been fixed.
484*4887Schin03-05-08  The last item in the ksh93o release on 03-01-02 has been
485*4887Schin	  altered slightly to preserve the leading 0's when the
486*4887Schin	  preceding character is a digit.  Thus, with typeset -LZ3 x=10,
487*4887Schin	  $(( 1$x)) will be 1010 whereas $(( $x) will be 10.
488*4887Schin03-04-25  A bug in which if x is a name reference, then nameref y=x.foo
489*4887Schin	  did not follow x has been fixed.
490*4887Schin
491*4887Schin03-03-18  --- Release ksh93o  ---
492*4887Schin03-03-18  A -N unary operator was added to test and [[...]] which returns
493*4887Schin	  true if the file exists and the file has been modified since it
494*4887Schin	  was last read.
495*4887Schin03-03-18  The TIMEFORMAT variable was added to control the format for
496*4887Schin	  the time compound command.  The formatting description is
497*4887Schin	  described in the man page.
498*4887Schin03-03-06  A -N n option was added to read which causes exactly n bytes
499*4887Schin	  to be read unlike -n n which causes at most n bytes to be read.
500*4887Schin03-03-03  Three new shell variables were added.  The variable .sh.file
501*4887Schin	  stores the full pathname of the file that the current command
502*4887Schin	  was found in.  The variable .sh.fun names the current function
503*4887Schin	  that is running.  The variable .sh.subshell contains the depth
504*4887Schin	  of the current subshell or command substitution.
505*4887Schin03-03-03  When the DEBUG trap is executed, the current command line after
506*4887Schin	  expansions is placed in the variable .sh.command.  The trap
507*4887Schin	  is also now triggered before each iteration of a for, select,
508*4887Schin	  and case command and before each assignment and redirection.
509*4887Schin03-02-28  Function definitions are no longer stored in the history file so
510*4887Schin	  that set -o nolog no longer has any meaning.
511*4887Schin03-02-28  All function definitions can be displayed with typeset -f not
512*4887Schin	  just those stored in the history file.  In addition, typeset +f
513*4887Schin	  displays the function name followed by a comment containing the
514*4887Schin	  line number and the path name for the file that defined this function.
515*4887Schin03-02-28  A bug in which the value of $LINENO was not correct when executing
516*4887Schin	  command contained inside mult-line command substitutions has been
517*4887Schin	  fixed.
518*4887Schin03-02-19  Since some existing ksh88 scripts use the undocumented and
519*4887Schin	  unintended ability to insert a : in front of the % and # parameter
520*4887Schin	  expansion operators, ksh93 was modified to accept :% as equivalent
521*4887Schin	  to % and :# as equivalent to # with ${name op word}.
522*4887Schin03-02-14  A bug which could cause a core dump when reading from standard
523*4887Schin	  error when standard error was a pty has been fixed.
524*4887Schin03-02-14  The shell arithmetic was modified to use long double on systems
525*4887Schin	  that provide this data type.
526*4887Schin03-02-09  A bug in which a function located in the first directory in FPATH
527*4887Schin	  would not be found when the last component of PATH was . and the
528*4887Schin	  current directory was one of the directories in PATH has been fixed.
529*4887Schin03-02-07  The trap and kill builtin commands now accept a leading SIG prefix
530*4887Schin	  on the signal names as documented.
531*4887Schin03-02-05  A bug in the expansion of ${var/$pattern}, when pattern contained
532*4887Schin	  \[ has been fixed.
533*4887Schin03-02-05  A bug in which .sh.match[n], n>0, was not being set for substring
534*4887Schin	  matches with % and %% has been fixed.
535*4887Schin03-01-15  A bug in which getopts did not work for numerical arguments specified
536*4887Schin	  as n#var in the getopts string has been fixed.
537*4887Schin03-01-09  A bug in which using ${.sh.match} multiple times could lead to
538*4887Schin	  a memory exception has been fixed.
539*4887Schin03-01-06  A bug in the expansion of ${var/pattern/$string} in the case that
540*4887Schin	  $string contains \digit has been fixed.
541*4887Schin03-01-02  A -P option was added for systems such as Solaris 8 that support
542*4887Schin	  profile shell.
543*4887Schin03-01-02  For backward compatibility with ksh88, arithmetic expansion
544*4887Schin	  with ((...)) and let has been modified so that if x is a zero-filled
545*4887Schin	  variable, $x will not be treated as an octal constant.
546*4887Schin
547*4887Schin02-12-05  --- Release ksh93n+  ---
548*4887Schin02-11-30  A bug that can show up in evaluating arithmetic statements that
549*4887Schin	  are in an autoloaded function when the function is autoload from
550*4887Schin	  another function has been fixed.
551*4887Schin02-11-30  An optimization bug in which an expansion of the form ${!name.@},
552*4887Schin	  which occurred inside a for or a while loop, when name is a name
553*4887Schin	  reference, has been fixed.
554*4887Schin02-11-18  A bug in which modifying array variables in a subshell could leave
555*4887Schin	  side effects in the parent shell environment has been fixed.
556*4887Schin02-11-18  A memory leak when unsetting an associative array has been fixed.
557*4887Schin02-11-14  The code to display compound objects was rewritten to make
558*4887Schin	  it easier for runtime extensions to reuse this code.
559*4887Schin02-11-14  A change was made to allow runtime builtins to be notified when
560*4887Schin	  a signal is received so that cleanup can be performed.
561*4887Schin02-10-31  User applications can now trap the ALRM signal.  Previously,
562*4887Schin	  the ALRM signal was used internally and could not be used
563*4887Schin	  by applications.
564*4887Schin02-10-31  A bug in which signals received while reading from a coprocess
565*4887Schin	  for which traps were set was not handled correctly has been fixed.
566*4887Schin02-10-31  A bug in which a file opened with exec inside a subshell could
567*4887Schin	  be closed before the subshell completed has been fixed.
568*4887Schin02-10-21  A bug in which setting PATH or FPATH inside a function might not
569*4887Schin	  take effect has been fixed.
570*4887Schin02-10-21  A bug which could cause a core dump when a local SECONDS variable
571*4887Schin	  is defined in a function has been fixed.
572*4887Schin02-10-15  A bug in which the associate array name operator ${!array[@]}
573*4887Schin	  could return the same name multiple times has been fixed.
574*4887Schin02-10-15  A bug in which the zero'th element of an associative array was
575*4887Schin	  not getting set when an assignment was made without a subscript
576*4887Schin	  specified has been fixed.
577*4887Schin
578*4887Schin02-09-30  --- Release ksh93n  ---
579*4887Schin02-09-30  The maximum indexed array size was increased to 16Megs.
580*4887Schin02-09-30  A bug which could cause a core dump when changing attributes
581*4887Schin	  of associative array has been fixed.
582*4887Schin02-09-30  A bug in which exporting an array variable would not export the
583*4887Schin	  0-th element has been fixed.
584*4887Schin02-09-30  A bug in which an array assignment of the form a=($a ...) would unset
585*4887Schin	  'a' before the right hand side was evaluated has been fixed.
586*4887Schin02-09-27  A bug in which the error message for ${var?message} when var was
587*4887Schin	  null or unset did not contain the variable name var has been fixed.
588*4887Schin02-09-27  A bug in which closing file descriptors 0 through 2 could
589*4887Schin	  cause a subsequent here document to fail has been fixed.
590*4887Schin02-09-14  A bug in whence which occurs when the specified name contained
591*4887Schin	  a / has been fixed.
592*4887Schin02-09-14  A bug in the parser for strings of the form name$((expr))=value
593*4887Schin	  has been fixed.
594*4887Schin02-09-14  A for loop optimization bug in which the number of elements in
595*4887Schin	  an array was treated as an invariant has been fixed.
596*4887Schin02-09-09  A bug in which redirection or closing of a file descriptor between
597*4887Schin	  3 and 9 could cause a subsequent here document to fail has been
598*4887Schin	  fixed.
599*4887Schin02-09-09  A bug in which a background job was not removed from the job list
600*4887Schin	  when a subshell completed has been fixed, for example (prog&).
601*4887Schin02-09-03  A bug in which an assignment of the form name=(integer x=3)
602*4887Schin	  could be interpretted as an array assignment rather than a
603*4887Schin	  compound variable assignment has been fixed.
604*4887Schin02-08-19  A command completion bug which occurred on file systems that
605*4887Schin	  are case insensitive has been fixed.
606*4887Schin02-08-19  A bug which could lead to an exception on some systems (for
607*4887Schin	  example FREEBSD) which occurred when setting PATH has been fixed.
608*4887Schin02-08-11  A bug in arithmetic rounding in which a value input as a decimal
609*4887Schin	  string would output as a rounded version of the string has
610*4887Schin	  been fixed.
611*4887Schin02-08-11  A bug in which the last character could be deleted from shell
612*4887Schin	  traces and from whence when called from a multibyte locale
613*4887Schin	  has been fixed.
614*4887Schin02-08-01  A bug which could cause a core dump to occur when a shell script
615*4887Schin	  is executed while a coprocess is running that has closed the
616*4887Schin	  output pipe has been fixed.
617*4887Schin02-08-01  A bug in which command completion in multibyte mode could
618*4887Schin	  corrupt memory for long command lines has been fixed.
619*4887Schin
620*4887Schin02-06-17  --- Release ksh93n-  ---
621*4887Schin02-06-17  A bug in which user defined macros could cause a core dump in
622*4887Schin	  with MULTIBYE mode has been fixed.
623*4887Schin02-06-17  A bug in which printf format specifiers of the form %2$s were causing
624*4887Schin	  a core dump has been fixed.
625*4887Schin02-06-17  A bug in which setting stty to noecho mode did not prevent the
626*4887Schin	  echoing of characters by ksh when emacs or viraw mode
627*4887Schin	  was enabled has been fixed.
628*4887Schin02-06-17  A bug in which background job completion could cause the sleep
629*4887Schin	  builtin to terminate prematurely has been fixed.
630*4887Schin02-06-17  A bug in which the shell could core dump if getopts was called
631*4887Schin	  when the OPTIND variable contained a negative value has been fixed.
632*4887Schin02-06-10  The edit mode prompt has been modified to handle escape sequences.
633*4887Schin02-06-10  A bug which occurred for interactive shells in which the builtin
634*4887Schin	  cat command was used in command substitution on a file whose
635*4887Schin	  size was larger than PIPE_BUF has been fixed.
636*4887Schin02-06-10  A bug in which the trap on ERR was not being processed when
637*4887Schin	  set inside a function has been fixed.
638*4887Schin02-06-07  A bug in which function definitions could cause the history count
639*4887Schin	  to be decremented by one (and even become negative) has been fixed.
640*4887Schin02-06-05  A bug in read in which share mode could be enabled has been fixed.
641*4887Schin02-05-28  A bug which could occur when the last command of a script was
642*4887Schin	  a case statement and the action selected ended in ;& instead of ;;
643*4887Schin	  has been fixed.
644*4887Schin02-05-23  A bug with unary + introduced in ksh93k has been fixed.
645*4887Schin02-05-07  A bug in substitutions of the form ${var/pattern/string} in which
646*4887Schin	  a backslash was inserted in the replacement string when it contained
647*4887Schin	  a special pattern character has been fixed.
648*4887Schin02-05-01  A bug in the emacs edit mode which occurred in versions compiled
649*4887Schin	  for multibyte character sets which occurred when a repeated search
650*4887Schin	  was requested after a long line had been returned for the previous
651*4887Schin	  search has been fixed.
652*4887Schin02-04-02  vi and emacs edit modes were modified so that tab completion is
653*4887Schin	  disabled when invoked from the read built-in.
654*4887Schin
655*4887Schin02-03-26  --- Release ksh93m+  ---
656*4887Schin02-03-26  A bug in which \ was not handled correctly when used in file
657*4887Schin	  expansion has been fixed.
658*4887Schin02-02-18  A bug in which lines beginning with a # were deleted from here
659*4887Schin	  documents when the here-document delimiter was followed by
660*4887Schin	  a comment has been fixed.
661*4887Schin02-12-06  An optimization bug in which ${!x[@]) was treated as invariant in
662*4887Schin	  a for loop has been fixed.
663*4887Schin02-02-06  A bug in which the ERR trap is not cleared for a script invoked
664*4887Schin	  by name from within a function has been fixed.
665*4887Schin02-01-08  A bug in which a shell script executed from within a subshell
666*4887Schin	  could cause this script to have an invalid pointer leading
667*4887Schin	  to a memory fault has been fixed.
668*4887Schin02-01-07  Added here documents of the form <<< word (as per zsh) which
669*4887Schin	  is equivalent to << delim\nword\ndelim.
670*4887Schin02-01-07  A bug in which the first word of a compound assignment,
671*4887Schin	  x=(word ...), was treated as a reserved word has been fixed.
672*4887Schin02-01-07  A bug in the handling of \ when noglob was enabled and a
673*4887Schin	  substitution of the form ${word op pattern} occurred in the
674*4887Schin	  same word has been fixed.
675*4887Schin02-01-07  A compilation option, CMDLIB_BLTIN in the file OPTION, has
676*4887Schin	  been added.  When this options is set, all commands implemented
677*4887Schin	  in libcmd become shell builtin commands by default.
678*4887Schin02-01-07  A bug in which builtin foo, where foo is already a builtin
679*4887Schin	  would result in the builtin foo getting removed has been fixed.
680*4887Schin02-01-07  A bug which the shell executed a command found in the current
681*4887Schin	  directory when PATH have no valid directories has been fixed.
682*4887Schin01-11-28  The value of $? was not being set when called with exit.
683*4887Schin01-11-28  If the last command was of the form (...) and a trap on EXIT or
684*4887Schin	  ERR was set, and the command inside () modified the trap, then
685*4887Schin	  the original trap wasn't executed.
686*4887Schin01-11-26  The value for 0 is now preceded by the base number when
687*4887Schin	  the base was not 10.
688*4887Schin01-11-26  The default has compilation mode has been changes so that
689*4887Schin	  viraw mode will always be on.
690*4887Schin
691*4887Schin01-10-31  --- Release ksh93m  ---
692*4887Schin01-10-31  A for loop optimizer bug for subshells contained withing for
693*4887Schin	  loops has been fixed.
694*4887Schin01-10-16  typeset without arguments no longer outputs variable names
695*4887Schin	  that do not have any attributes that are set.
696*4887Schin01-10-16  A bug introduced in ksh93l in which assignments specified with
697*4887Schin	  the exec built-in were not being expanded properly has been
698*4887Schin	  fixed.
699*4887Schin01-10-11  An optimization bug in which ${!x) was treated as invariant in
700*4887Schin	  a for loop has been fixed.
701*4887Schin01-10-11  Unsigned integer variables in bases other than 10 are printed now
702*4887Schin	  expand in that base with the base prefix.
703*4887Schin01-10-10  A number of typos in the self generating man pages for shell
704*4887Schin	  built-ins have been fixed.
705*4887Schin01-10-04  The self generated man pages for hist and fc were not working
706*4887Schin	  correctly and have been fixed.
707*4887Schin01-10-03  Yet another optimizer bug in which shell patterns were
708*4887Schin	  treated as invariants has been fixed.
709*4887Schin01-09-27  Two bugs relating to multibyte history searches and to find
710*4887Schin	  have been fixed.
711*4887Schin01-09-27  A bug introduced in ksh93k in which the PATH searching was
712*4887Schin	  not restored after running a command with an assignment list
713*4887Schin	  has been fixed.
714*4887Schin01-09-26  A bug in which a zero filled field was treated as octal when
715*4887Schin	  converted to integer has been fixed.
716*4887Schin01-09-26  Yet another bug in the optimization of for loops related to
717*4887Schin	  recursive functions with break or continue statements has been fixed.
718*4887Schin01-09-25  The exponentiation operator ** was added to the shell arithmetic
719*4887Schin	  evaluation.  It has higher precedence than * and is left
720*4887Schin	  associative.
721*4887Schin01-09-25  The code was modified to use the ast multibyte macros
722*4887Schin	  and functions for handing multibyte locales.
723*4887Schin01-09-25  The expansion ${parameter:offset:length} now handles negative
724*4887Schin	  offsets which cause offsets to be measured from the end.
725*4887Schin01-09-25  Some spelling errors in the documentation were corrected.
726*4887Schin01-09-24  The /dev/tcp/host/port and /dev/udp/host/port now allow
727*4887Schin	  the ports to be specified by service name.
728*4887Schin01-09-24  The change staring with ksh93g in which the the appropriate
729*4887Schin	  library path variable is prepended with a corresponding library
730*4887Schin	  directory has been modified.  With the new method, only the
731*4887Schin	  library path defined in the file named .paths in the directory
732*4887Schin	  where the executable is found will be modified.  See the
733*4887Schin	  man page for more details.
734*4887Schin01-09-23  The .fpath file (see ksh93h) is no longer looked for in each
735*4887Schin	  directory on the path to locate function directories.  The
736*4887Schin	  file named .paths is used instead.
737*4887Schin01-09-23  A bug in which IFS was not being restored after being changed in
738*4887Schin	  a subshell has been fixed.
739*4887Schin01-09-16  With the vi and emacs edit modes, after a list of command
740*4887Schin	  or functions is generated with = or M-= respectively,
741*4887Schin	  any element from the list can be pasted on the command line
742*4887Schin	  by preceding the = or M-= with a numeric parameter specifying
743*4887Schin	  the position on the list.
744*4887Schin01-09-16  A bug in ksh93l caused command completion not to find aliases
745*4887Schin	  and functions.  Command listing from the edit mode was presented
746*4887Schin	  in reverse order.  This has been fixed.
747*4887Schin01-09-13  Another bug in the optimization of for loops related to subshells
748*4887Schin	  when traps were set has been fixed.
749*4887Schin01-09-07  A change in ksh93l caused brace expansion to stop working
750*4887Schin	  and this has been fixed.
751*4887Schin01-09-04  A bug introduced in ksh93k in which an arithmetic statement
752*4887Schin	  within a function that used name references did not follow the
753*4887Schin	  reference has been fixed.
754*4887Schin01-09-04  A bug introduced in ksh93l in which export -p did not prefix
755*4887Schin	  each export with the word export has been fixed.
756*4887Schin01-08-29  A bug in multibyte input which occurred when a partial multibyte
757*4887Schin	  character was received has been fixed.
758*4887Schin01-08-29  A bug introduced in ksh93l which could cause a core dump
759*4887Schin	  when an assignment list containing PATH is specified inside
760*4887Schin	  command substitution has been fixed.
761*4887Schin01-08-09  Another bug in the optimization of for loops in ksh93l caused
762*4887Schin	  errors in recursive functions using local variables that
763*4887Schin	  contained for loops has been fixed.
764*4887Schin01-07-27  A bug in which IFS would be unset after a command substitution
765*4887Schin	  inside a here document has been fixed.
766*4887Schin01-07-26  To conform to the POSIX standard, if you invoked ksh name,
767*4887Schin	  and name does not contain a /,  it will first try to run
768*4887Schin	  one in the current directory whether it is executable or not
769*4887Schin	  before doing a path search for an executable script.  Earlier
770*4887Schin	  versions first checked for an executable script using the
771*4887Schin	  PATH variable.
772*4887Schin01-07-23  A bug in which unset -f invoked in a subshell could unset a
773*4887Schin	  function defined in the parent has been fixed.
774*4887Schin01-07-16  A bug in the optimization of for loops in ksh93l caused
775*4887Schin	  name references to be treated as invariants has been fixed.
776*4887Schin01-07-09  A bug in which a discipline function applied to a local variable
777*4887Schin	  could cause a shell exception has been fixed.  Discipline
778*4887Schin	  functions can only be specified for global variables.
779*4887Schin
780*4887Schin01-06-18  --- Release ksh93l  ---
781*4887Schin01-06-18  A bug in assigning integers larger than can be represented as
782*4887Schin	  long integers to floating point variables has been fixed.
783*4887Schin01-06-18  A bug in the handling of unsigned integers (typeset -ui) has
784*4887Schin	  been fixed.
785*4887Schin01-06-04  The evaluation of the PS1 prompt no longer effects the value
786*4887Schin	  of the $? variable.
787*4887Schin01-06-01  A small memory leak from subshells has been fixed.
788*4887Schin01-05-22  A bug in which attributes for variables that did not have
789*4887Schin	  values would be lost after a subshell has been fixed.
790*4887Schin01-05-22  The %R format has been added to convert a shell pattern into
791*4887Schin	  an extended regular expression.
792*4887Schin01-05-22  The escape sequences \e, \cX, \C[.collating-element.], and
793*4887Schin	  \x{hex} have been added to ASCII-C strings and to printf format
794*4887Schin	  strings.
795*4887Schin01-05-20  Patterns of the form {n}(pattern) and {m,n}(pattern) are now
796*4887Schin	  recognized.  The first form matches exactly n of pattern whereas,
797*4887Schin	  the second form matches from m to n instances of pattern.
798*4887Schin01-05-20  The shell allows *-(pattern), +-(pattern),  ?-(pattern),
799*4887Schin	  {m,n}-(pattern}, and @-(pattern) to cause the minimal
800*4887Schin	  match of pattern to be selected whenever possible rather
801*4887Schin	  than the maximal (greedy) match.
802*4887Schin01-05-20  The character class [:word:] has been added to patterns.
803*4887Schin	  The word class is the union of [:alnum:] and the character _.
804*4887Schin01-05-20  Inside (...) pattern groups, the \ character is now treated
805*4887Schin	  specially even when in an enclosing character class.  The
806*4887Schin	  sequences, \w, \d, \s are equivalent to the character classes
807*4887Schin	  word, digit, and space respectively.  The sequences \W, \D,
808*4887Schin	  and \S are their complement sets.
809*4887Schin01-05-20  The shell now recognizes pattern groups of the form
810*4887Schin	  ~(options:pattern) where options or :pattern can be omitted.
811*4887Schin	  Options use the letters + and - to enable and disable options
812*4887Schin	  respectively.  The option letters g (greedy), i (ignore case)
813*4887Schin	  are used to cause maximal matching and to cause case
814*4887Schin	  insensitive matching respectively.  If :pattern is also
815*4887Schin	  specified, these options are only in effect while this
816*4887Schin	  pattern is being processed.  Otherwise, these options remain
817*4887Schin	  in effect until the end of the pattern group that they are contained
818*4887Schin	  in or until another ~(...) is encountered.  These pattern groups
819*4887Schin	  are not counted with respect to group numbering.
820*4887Schin01-05-14  When edit completion, expansion, or listing occurs in the
821*4887Schin	  middle of a quoted string, the leading quote is ignored when
822*4887Schin	  performing the completion, expansion, or listing.
823*4887Schin01-05-14  A small memory leak from subshells has been fixed.
824*4887Schin01-05-10  A bug in which open files were not restored after a subshell
825*4887Schin	  that had used exec to replace a file has been fixed.
826*4887Schin01-05-10  Redirection to a null file name now generates an error message.
827*4887Schin01-05-09  The shell now rejects some invalid parameter substitutions that
828*4887Schin	  were previously processed in undefined ways.
829*4887Schin01-05-09  A bug in which the output of select was not flushed before the
830*4887Schin	  read when input did not come from the terminal has been fixed.
831*4887Schin01-05-08  A bug in which job ids would not be freed for interactive shells
832*4887Schin	  when subshells ran built-ins in the background has been fixed.
833*4887Schin01-05-08  The FPATH variable now requires an explicit . to cause the
834*4887Schin	  current directory to be treated as a function directory.
835*4887Schin01-05-08  A bug in read -n when echo mode was disabled has been fixed.
836*4887Schin01-05-07  A bug in which function definitions could be listed as part
837*4887Schin	  of the history has been fixed.
838*4887Schin01-04-30  This release uses a new and often much faster pattern matcher than
839*4887Schin	  earlier releases.
840*4887Schin01-04-30  An optimizer now eliminates invariant parameter expansions from
841*4887Schin	  for while and until loops.
842*4887Schin01-04-30  The variable .sh.match is set after each pattern match (# % or /)
843*4887Schin	  in a variable substitution.  The variable .sh.match is an
844*4887Schin	  indexed array with element 0 being the complete match.
845*4887Schin	  The array is only valid until the next subsequent pattern
846*4887Schin	  match or until the value of the variable changes which ever
847*4887Schin	  comes first.
848*4887Schin01-04-30  A self generating man page has been added to shcomp.  Also,
849*4887Schin	  shcomp now stops compiling when it finds an exit or exec
850*4887Schin	  command and copies the remainder so that it can be used
851*4887Schin	  for standard input.
852*4887Schin01-04-30  The shcomp command was modified so that it can work in an
853*4887Schin	  EBCIDIC environment and that binary scripts are portable
854*4887Schin	  across environments.
855*4887Schin01-04-30  A bug in the handling of a trailing : in PATH has been fixed.
856*4887Schin01-04-30  A bug in which the builtin version of a command would get invoked
857*4887Schin	  even though the full pathname for the command was specified
858*4887Schin	  has been fixed.
859*4887Schin01-04-30  A bug in which read would loose the last character when
860*4887Schin	  reading the last line of a file that did not contain a new-line
861*4887Schin	  character has been fixed.
862*4887Schin01-04-23  A bug on some systems in which in vi mode the end of file
863*4887Schin	  character and end of line character could be swapped has
864*4887Schin	  been fixed.
865*4887Schin01-04-23  A bug on some systems in which invoking a shell script that
866*4887Schin	  did not have execute permission could set the exit value to
867*4887Schin	  127 rather than 126 has been fixed.
868*4887Schin01-04-20  A bug in which read -n from a pipe would block if fewer than
869*4887Schin	  n characters was received has been fixed.
870*4887Schin01-04-09  A bug in which invalid patterns, for example, ) by itself,
871*4887Schin	  was not treated as a string has been fixed so that if i=')',
872*4887Schin	  then [[ $i == $i ]] is true.
873*4887Schin01-04-09  The shell arithmetic now interprets C character constants.
874*4887Schin01-04-09  A bug in which a non-zero return from a function defined
875*4887Schin	  with the function reserved word did not trigger the ERR
876*4887Schin	  trap or exit with set -e has been fixed.
877*4887Schin01-04-02  A bug on some systems, in which characters above 127 were
878*4887Schin	  not displayed correctly in vi or emacs edit mode has been fixed.
879*4887Schin01-04-02  A bug on some systems, introduced in the 'k' point release, in
880*4887Schin	  which the erase character in viraw mode was moving the cursor
881*4887Schin	  to the left without erasing the character has been fixed.
882*4887Schin01-04-02  On some systems the wcwith() function was returning a wrong
883*4887Schin	  value for characters and caused characters to be displayed
884*4887Schin	  incorrectly from the shell edit modes.  A work around for
885*4887Schin	  this problem has been added.
886*4887Schin01-03-26  A bug in which valid scripts could produce syntax errors
887*4887Schin	  when run with locales that considered characters such as "'"
888*4887Schin	  to be space characters has been fixed.
889*4887Schin01-03-20  A bug in which an syntax error in an arithmetic expression
890*4887Schin	  entered interactively could cause the shell to go into
891*4887Schin	  an infinite loop outputting the error message has been fixed.
892*4887Schin01-03-10  ksh93 accepts -l as a synonym for -L in test on systems for
893*4887Schin	  which /bin/test -l tests for symbolic links.
894*4887Schin01-03-10  A bug in parsing scripts in which { and } are used in place of
895*4887Schin	  in and esac in case statements embedded in compound commands
896*4887Schin	  has been fixed.  Use of { and } for in and esac is obsolete.
897*4887Schin01-03-06  A bug in which an argument of the form foo=bar was not
898*4887Schin	  being passed correctly to a traced function whose name
899*4887Schin	  was foo has been fixed.
900*4887Schin01-03-02  Using $(trap -p name) did not print the name of the current
901*4887Schin	  trap setting for trap name.
902*4887Schin01-02-26  Exported floating point variables gave incorrect results
903*4887Schin	  when passing them to ksh88.  This has been fixed.
904*4887Schin01-02-25  A race condition in which a coprocess which completed too quickly
905*4887Schin	  would not allow subsequent coprocesses to start has been fixed.
906*4887Schin01-02-25  The 'g' format specifier is now handled by printf.  It had
907*4887Schin	  inadvertently been omitted.
908*4887Schin01-02-20  The + was not being displayed during an execution trace
909*4887Schin	  with the += assignment operator.
910*4887Schin01-02-19  The error message which occurs when the interpreter name
911*4887Schin	  defined on the #! line does not exist is more informative.
912*4887Schin01-02-19  A bug in which $0 would not be set correctly when a
913*4887Schin	  script with #! was invoked by full pathname from the
914*4887Schin	  directory of the script has been fixed.
915*4887Schin01-02-19  A shell script did not always pick up tty mode changes
916*4887Schin	  made by external commands such as stty which could
917*4887Schin	  effect the behavior of read.
918*4887Schin01-02-19  The -u, -g, and -k unary tests did not give the correct
919*4887Schin	  results when used with negation and this has been fixed.
920*4887Schin
921*4887Schin01-02-05  --- Release ksh93k+  ---
922*4887Schin01-02-05  The sequence \<newline> inside $'...' was not incrementing
923*4887Schin	  the line count and this has been fixed.
924*4887Schin01-02-05  Modified expansion of "${@-}" so that if no arguments are set
925*4887Schin	  it results in null string rather than nothing.
926*4887Schin01-02-02  memory leak problem with local variables in functions fixed.
927*4887Schin01-01-25  allow arithmetic expressions with float%int and treat them
928*4887Schin	  as ((int)float)%int rather than as an error.
929*4887Schin01-01-19  read -n1 was not working and has been fixed.
930*4887Schin01-01-17  ksh now handles the case in which a here document in command
931*4887Schin	  substitution $() is terminated by the trailing ).  Previously,
932*4887Schin	  a new-line was needed at the end of the delimiter word.
933*4887Schin01-01-02  A bug in which a KEYBD trap would cause a multi-line token
934*4887Schin	  to be processed incorrectly has been fixed.
935*4887Schin00-12-10  Arithmetic integer constants can now have L and U suffices.
936*4887Schin00-12-10  A bug in the processing of arithmetic expressions with compound
937*4887Schin	  variables when the -n option is on has been fixed.
938*4887Schin00-12-08  A bug in M-f and M-b from emacs mode has been fixed.  This
939*4887Schin	  bug only occurs when ksh93 is compiled without MULTIBYTE enabled.
940*4887Schin00-11-29  A bug in which jobs -p would yield 0 for background
941*4887Schin	  jobs run in a script has been fixed.
942*4887Schin00-11-21  A bug in integer arrays in which the number of elements is
943*4887Schin	  incorrect when the ++ operator is applied to a non-existing
944*4887Schin	  element has been fixed.  For example, integer x; ((x[3]++)).
945*4887Schin00-11-20  A timing bug in which the shell could reset the terminal
946*4887Schin	  group to the wrong value in the case that the a new process
947*4887Schin	  changes the terminal group during startup has been fixed.
948*4887Schin
949*4887Schin00-10-27  --- Release ksh93k  ---
950*4887Schin00-10-27  Using tab for completion now works only when applied
951*4887Schin	  after a non-blank character at the end of the current line.
952*4887Schin	  In other case a tab is inserted.
953*4887Schin00-10-27  A bug in the emacs edit mode for ^X^E has been fixed.
954*4887Schin	  The ^X^E sequence is supposed to invoke the full editor
955*4887Schin	  on the current command.
956*4887Schin00-10-18  A bug in which expansions of the form ${var//pattern/string}
957*4887Schin	  did not work correctly when pattern was '/' or "/" has
958*4887Schin	  been fixed.
959*4887Schin00-10-18  The output format for indexed arrays in compound variables
960*4887Schin	  has been modified so that it can be used as input.
961*4887Schin00-10-18  Assignments with name references (typeset -n) will now
962*4887Schin	  implicitly unreference an existing name reference.
963*4887Schin00-10-17  A bug the += append operator when a single array element
964*4887Schin	  is appended to a variable that is not an array has been fixed.
965*4887Schin00-10-16  A bug in which the SIGCONT signal was being sent to
966*4887Schin	  each process will kill -0 or kill -n 0 has been fixed.
967*4887Schin00-10-12  The arithmetic evaluation portion has been rewritten to
968*4887Schin	  perform a number of optimizations.
969*4887Schin00-10-10  A bug in which name prefix matching ${!name.*} was not
970*4887Schin	  checking name to see if it was a name reference has been fixed.
971*4887Schin00-09-26  A bug in the multibyte version in which the width of for
972*4887Schin	  non-printing characters was not correct has been fixed.
973*4887Schin00-09-12  Made changes to get multibyte editing work on UWIN for windows
974*4887Schin00-09-12  A bug in which multibyte characters would be displayed incorrectly
975*4887Schin	  has been fixed.
976*4887Schin00-08-08  Removed build dependency on iswprint() and iswalph().
977*4887Schin00-07-20  In some cases the read builtin would read more than a single
978*4887Schin	  line from a pipe on standard input and therefore leave the seek
979*4887Schin	  position in the wrong location.
980*4887Schin00-07-05  If the directory / is on the path, a / will not be inserted
981*4887Schin	  between the directory and the file name during path searching
982*4887Schin	  to avoid searching // for systems that treat this specially.
983*4887Schin00-06-26  A bug in which on rare occasions wait could return before all
984*4887Schin	  jobs have completed has been fixed.
985*4887Schin00-06-21  A bug in which backspace did not work correctly during the
986*4887Schin	  R replace directive in vi-mode has been fixed.
987*4887Schin00-06-12  Added variable name completion/expansion/listing  to the set of
988*4887Schin	  completions.  Variable name completions begin with $ or "$ followed
989*4887Schin	  by a letter.
990*4887Schin00-05-09  --- Release ksh93j  ---
991*4887Schin00-05-09  Modified command substitution to avoid using /tmp files when
992*4887Schin          run on read-only file systems.
993*4887Schin00-04-17  Modified printf to handle '%..Xc' and '%..Xs' options where X
994*4887Schin	  is not an alpha character.  Previous versions core dumped with this.
995*4887Schin00-04-10  Changes to multibyte editing code were made to use standard
996*4887Schin	  ISO C functions rather than methods devised before the standard.
997*4887Schin00-04-09  Add %H options to printf to output strings with <"'&\t> properly
998*4887Schin	  converted for use in HTML and XML documents.
999*4887Schin00-04-07  Modified getopts builtin to handle \f...\f in usage string
1000*4887Schin	  by invoking specified function.
1001*4887Schin00-04-04  Added self generating man pages for bg, fc, fg, disown, jobs,
1002*4887Schin	  hist, let, ., and ulimit.
1003*4887Schin00-03-30  The append operator += has been added and can be used
1004*4887Schin	  for all assignments, strings, arrays, and compound variables.
1005*4887Schin00-03-30  Code was modified in several places to support automatic
1006*4887Schin	  generation of C locale dictionaries.
1007*4887Schin00-03-28  A bug in which the set and trap commands invoked with --name
1008*4887Schin	  type arguments would terminate the invoking script  has
1009*4887Schin	  been fixed.
1010*4887Schin00-03-27  A bug in which the library path variable was not updated
1011*4887Schin	  correctly on some systems as described in the 'g' point
1012*4887Schin	  release has been fixed.
1013*4887Schin00-03-07  printf now returns a non-zero exit status when one of
1014*4887Schin          its arguments cannot be converted to the given type.
1015*4887Schin00-03-05  The return value and error message for a command that
1016*4887Schin          was found on the path but was not executable was set
1017*4887Schin          incorrectly.
1018*4887Schin00-03-05  A prototype for ioctl() was removed from the vi edit mode.
1019*4887Schin
1020*4887Schin00-01-28  --- Release ksh93i  ---
1021*4887Schin00-01-28  Most of the built-in commands and ksh itself are now
1022*4887Schin          self documenting.  Running command --man will produce
1023*4887Schin          screen output.  Running command --html produces the
1024*4887Schin          man page in html format.
1025*4887Schin00-01-28  The getopts builtin can process command description
1026*4887Schin          strings to produce man pages.
1027*4887Schin00-01-28  A bug in which a script could terminate when getopts
1028*4887Schin          encountered an error when invoked inside a function
1029*4887Schin          has been fixed.
1030*4887Schin00-01-28  When a symbolic link was specified as the name of
1031*4887Schin          the script to invoke by name, the value of $0 was
1032*4887Schin          set to the real file name rather than the link name
1033*4887Schin          in some cases and this has been fixed.
1034*4887Schin00-01-28  A bug in which the precision given as an argument
1035*4887Schin	  to printf was not working has been fixed.
1036*4887Schin
1037*4887Schin99-03-31  --- Release ksh93h  ---
1038*4887Schin99-03-31  The PATH search algorithm has been modified to look
1039*4887Schin	  for a file named .fpath in each bin directory and if
1040*4887Schin	  found, to search for functions in this directory if
1041*4887Schin	  it cannot find the command in that directory.
1042*4887Schin99-03-31  When performing pathname expansion, the shell checks
1043*4887Schin	  to see whether each directory it reads is case sensitive
1044*4887Schin	  or not, and performs the matching accordingly.
1045*4887Schin99-03-31  The %T format for printing formatted date/time.
1046*4887Schin99-03-31  The emacs and vi modes now handle arrow keys when
1047*4887Schin          they use standard ANSI escape sequences.
1048*4887Schin99-03-31  The TAB key can be used for completion in emacs and viraw mode.
1049*4887Schin99-03-31  A bug in setting .sh.editchar during the KEYBD trap
1050*4887Schin	  for the MULTIBYTE option was fixed in release ksh93h.
1051*4887Schin99-03-31  A bug in shcomp for compilation of unary operators with [[...]]
1052*4887Schin	  has been fixed.
1053*4887Schin99-03-31  A bug in which the value of $? was changed when executing
1054*4887Schin	  a keyboard trap has been fixed.
1055*4887Schin99-03-31  The handling of SIGCHLD has been changed so that the
1056*4887Schin	  trap is not triggered while executing trap commands
1057*4887Schin	  to avoid recursive trap calls.
1058*4887Schin99-03-31  A bug in which a local variable in a function declared readonly
1059*4887Schin	  would generated an error when the function went out of
1060*4887Schin	  scope has been fixed.
1061*4887Schin99-03-31  A bug in which \<new_line> entered from the keyboard
1062*4887Schin	  with the KEYBD trap enabled has been fixed.
1063*4887Schin99-03-31  The error message for a misplaced ((, for example print ((3),
1064*4887Schin	  was often garbled and has been fixed.
1065*4887Schin99-03-31  A bug in the KEYBD trap in which escape sequences of the form
1066*4887Schin	  <ESC>[#~ were not being handled as a unit has been fixed.
1067*4887Schin99-03-31  A bug in which ksh would consider expressions like [[ (a) ]]
1068*4887Schin	  as syntax errors has been fixed.
1069*4887Schin99-03-31  A function defined as foo() without a function body
1070*4887Schin	  was not reported as a syntax error.
1071*4887Schin99-03-31  A bug in which ksh could run out of file descriptors when
1072*4887Schin	  a stream was repeatedly opened with exec and read from
1073*4887Schin	  has been fixed.
1074*4887Schin
1075*4887Schin98-04-30  --- Release ksh93g  ---
1076*4887Schin98-04-30  The pipefail option has been added.  With pipefail
1077*4887Schin	  enabled, a pipeline will not complete until all
1078*4887Schin	  commands are complete, and the return value will
1079*4887Schin	  be that of the last command to fail, or zero if
1080*4887Schin	  all complete successfully.
1081*4887Schin98-04-30  The name-value pair library uses the cdt library rather
1082*4887Schin	  than the hash library.  This change should be transparent
1083*4887Schin	  to applications.
1084*4887Schin98-04-30  On the U/WIN version for Window 95 and Windows NT,
1085*4887Schin          when a directory beginning with a letter followed by
1086*4887Schin          a colon is given to cd, it is assumed to be an absolute
1087*4887Schin          directory
1088*4887Schin98-04-30  When an executable is found on a given path,
1089*4887Schin	  the appropriate library path variable is prepended
1090*4887Schin	  with a corresponding library directory.
1091*4887Schin98-04-30  A bug in which a name reference could be created to
1092*4887Schin	  itself and later cause the shell to get into an infinite
1093*4887Schin	  loop has been fixed.
1094*4887Schin98-04-30  A bug in shcomp relating to compound variables was fixed.
1095*4887Schin98-04-30  A bug introduced in ksh93e in which leading 0's in -Z
1096*4887Schin	  fields caused the value to be treated as octal for arithmetic
1097*4887Schin	  evaluation has been fixed.
1098*4887Schin98-04-30  A bug when a name reference with a shorter name than
1099*4887Schin          the variable it references was the subject of a compound
1100*4887Schin	  assignment has been fixed.
1101*4887Schin98-04-30  A bug which in which assignment to array variables in
1102*4887Schin	  a subshell could effect the parent shell has been
1103*4887Schin	  fixed.
1104*4887Schin98-04-30  read name?prompt was putting a 0 byte at the end of the
1105*4887Schin	  prompt on standard error.
1106*4887Schin98-04-30  A bug in [[ string1 > string2 ]] when ksh was run with -x
1107*4887Schin	  has been fixed.
1108*4887Schin98-04-30  A bug in which the escape character was not processed
1109*4887Schin	  correctly inside {...} when brace expansion is enabled
1110*4887Schin	  has been fixed, for example {\$foo}.
1111*4887Schin98-04-30  A bug in line continuation in here-documents has been
1112*4887Schin	  fixed.
1113*4887Schin98-04-30  The default base when not specified with typeset -i is
1114*4887Schin	  10 in accordance with the documentation.  Previously,
1115*4887Schin	  the value was determined by the first assignment.
1116*4887Schin98-04-30  A parsing bug in which a # preceded alphanumeric
1117*4887Schin	  characters inside a command substitution caused
1118*4887Schin	  a syntax error to be reported has been fixed.
1119*4887Schin98-04-30  A bug in which a decimal constant represented as 10#ddd
1120*4887Schin	  where ddd was more than five digits generated a syntax
1121*4887Schin	  error has been fixed.
1122*4887Schin98-04-30  A bug in here document expansion in which ${...} expansions
1123*4887Schin	  were split across buffer boundaries has been fixed.
1124*4887Schin98-04-30  The sh_fun() function now takes third argument which
1125*4887Schin	  is an argument list for the invoked discipline function
1126*4887Schin	  or built-in.
1127*4887Schin98-04-30  A callback function can be installed which will give
1128*4887Schin          notification of file duplications and file closes.
1129*4887Schin98-04-30  When ksh is compiled on systems that do not use fork()
1130*4887Schin	  current option settings where not propagated to sub-shells.
1131*4887Schin
1132*4887Schin97-06-30  --- Release ksh93f  ---
1133*4887Schin97-06-30  Hostnames in addition to host addresses can be given in
1134*4887Schin	  /dev/tcp/host/port virtual file names.
1135*4887Schin97-06-30  File name completion and expansion now quotes special
1136*4887Schin	  characters in file names from both emacs and vi edit modes.
1137*4887Schin97-06-30  An empty for list behave like a for list with null expansions.
1138*4887Schin	  It produces a warning message with sh -n.
1139*4887Schin97-06-30  The code has been modified to work with EBCDIC as well as ASCII.
1140*4887Schin97-06-30  A bug which would cause the secondary prompt to be
1141*4887Schin	  displayed when a user entered a literal carriage
1142*4887Schin	  return has been fixed.
1143*4887Schin97-06-30  A bug which caused ksh read -s name to core dump was
1144*4887Schin	  fixed.
1145*4887Schin97-06-30  A bug with the expansion of \} and \] inside double
1146*4887Schin	  quoted strings that also contained variable expansions
1147*4887Schin	  has been fixed
1148*4887Schin97-06-30  Changes in the ksh93e point release caused autoload
1149*4887Schin	  functions invoked from within command substitution
1150*4887Schin	  to fail.  This has been fixed.
1151*4887Schin97-06-30  A bug in the processing of here-documents that could
1152*4887Schin	  prevent variable substitution to occur after $(...) command
1153*4887Schin	  substitution for long here documents has been fixed.
1154*4887Schin97-06-30  A bug caused by a race condition that could cause SIGTERM
1155*4887Schin	  to be ignored by a child process has been fixed.
1156*4887Schin97-06-30  A bug which prevented the startup of a coprocess immediately
1157*4887Schin	  after killing a running coprocess has been fixed.
1158*4887Schin97-06-30  ulimit foobar, where foobar is not an arithmetic
1159*4887Schin	  expression, now gives an error message as it did with ksh88
1160*4887Schin	  instead of setting the file size limit to 0.
1161*4887Schin97-06-30  A bug which could cause an interactive shell to terminate when
1162*4887Schin	  the last process of a pipeline was a POSIX function was fixed.
1163*4887Schin97-06-30  A bug which could cause command substitution of a shell script
1164*4887Schin	  to core dump has been fixed.
1165*4887Schin97-06-30  A security hole was fixed in suid_exec.
1166*4887Schin97-06-30  Arithmetic functions such as pow() that take more than
1167*4887Schin	  one argument, did not work if arguments other than the
1168*4887Schin	  first contained parenthesized sub-expression.
1169*4887Schin97-06-30  The error message from a script containing an incomplete
1170*4887Schin	  arithmetic expression has been corrected.
1171*4887Schin97-06-30  A bug which caused a core dump on some machines when
1172*4887Schin	  the value of a name reference contained a positional
1173*4887Schin	  parameter and the name reference was not defined inside
1174*4887Schin	  a function has been fixed.
1175*4887Schin97-06-30  Arithmetic expressions now correctly handle hexadecimal
1176*4887Schin	  constants.
1177*4887Schin97-06-30  A bug in which integer variables could be expanded
1178*4887Schin	  with a leading 10# when declared with typeset -i
1179*4887Schin	  multiple times has been corrected.
1180*4887Schin97-06-30  A bug in which IFS wasn't correctly restored when
1181*4887Schin	  set within command substitution has been fixed.
1182*4887Schin97-06-30  The _ character is now considered as part of a word
1183*4887Schin	  with the M-f and M-b emacs directives as it was in ksh88.
1184*4887Schin97-06-30  A bug in brace pattern expansions that caused expressions
1185*4887Schin          such as {foo\,bar,bam} to expand incorrectly have been fixed.
1186*4887Schin
1187*4887Schin
1188*4887Schin96-07-31  --- Release ksh93e  ---
1189*4887Schin96-07-31  The math functions, atan2, hypot, fmod, and pow were added.
1190*4887Schin96-07-31  When a shared library is loaded, if the function lib_init()
1191*4887Schin	  is defined in the library, it is invoked the first time that
1192*4887Schin	  the library is loaded with builtin -f library.
1193*4887Schin96-07-31  The k-shell information abstraction database option, KIA,
1194*4887Schin          has been revamped.
1195*4887Schin96-07-31  Empty command substitutions of the form $() now work.
1196*4887Schin	  whence -v foo now gives the correct result after calling
1197*4887Schin	  builtin -d foo.
1198*4887Schin96-07-31  A bug in right to left arithmetic assignment for which
1199*4887Schin	  the arithmetic expression (( y = x = 1.5 )) did not
1200*4887Schin	  yield 1 for y when x was declared typeset -i was fixed.
1201*4887Schin96-07-31  printf has been fixed to handle format  containing \0
1202*4887Schin	  and/or \0145 correctly.  In addition, characters following
1203*4887Schin	  %b in the format string are no longer displayed when
1204*4887Schin	  the operand contains \c.
1205*4887Schin96-07-31  A bug in printf that could cause the %E format to
1206*4887Schin	  produce unnormalized results has been fixed.
1207*4887Schin96-07-31  A bug which causes some arithmetic expressions to be
1208*4887Schin	  incorrectly evaluated as integer expressions rather
1209*4887Schin	  that floating point has been fixed.
1210*4887Schin96-07-31  Functions defined inside a subshell no longer remain
1211*4887Schin	  defined when the subshell completes.
1212*4887Schin96-07-31  The error message from sh -c ';echo foo' has been
1213*4887Schin	  corrected.
1214*4887Schin96-07-31  The format for umask -S has been changed to agree
1215*4887Schin	  with the specification in the POSIX standard.
1216*4887Schin96-07-31  A bug that caused side effects in subscript evaluation
1217*4887Schin	  when tracing was enabled for subscripts using ++ or --
1218*4887Schin	  has been fixed.
1219*4887Schin96-07-31  To conform to the Posix standard getopts has been changed
1220*4887Schin	  so that the option char is set to ? when it returns with
1221*4887Schin	  a non-zero exit status.
1222*4887Schin96-07-31  The handling of \} inside ${name...} has been fixed so
1223*4887Schin	  that the \ quotes the }.
1224*4887Schin96-07-31  A bug that caused the read builtin to resume execution
1225*4887Schin	  after processing a trap has been fixed.
1226*4887Schin96-07-31  [[ -s file ]] has been fixed so that if file is open
1227*4887Schin	  by ksh, it is flushed first.
1228*4887Schin96-07-31  In some cases attributes and sizes for non exported
1229*4887Schin	  variables weren't being reset before running a script.
1230*4887Schin96-07-31  The value of TMOUT was affected by changes make to
1231*4887Schin	  it in a subshell.
1232*4887Schin96-07-31  The jobs command did not reflect changes make by
1233*4887Schin	  sending the CONT signal to a command.
1234*4887Schin96-07-31  The error message for ksh -o unknown was incorrect.
1235*4887Schin96-07-31  Functions invoked as name=value name, did not use
1236*4887Schin	  values from the calling scope when evaluating value.
1237*4887Schin96-07-31  A bug in which the shell would reexecute previously
1238*4887Schin	  executed code when a shell script or coprocess was
1239*4887Schin	  run in the background has been fixed.
1240*4887Schin96-07-31  A bug in which an empty here-document would leave
1241*4887Schin	  a file descriptor open has been fixed.
1242*4887Schin96-07-31  A bug in which $(set -A array ...) would leave a
1243*4887Schin	  side effect has been fixed.
1244*4887Schin96-07-31  A discipline function for a global variable defined
1245*4887Schin	  within a function defined with the function keyword,
1246*4887Schin	  incorrectly created a local variable of the same name
1247*4887Schin	  and applied the discipline to it.
1248*4887Schin
1249*4887Schin95-08-28  --- Release ksh93d  ---
1250*4887Schin95-08-28  The \ character was not handled correctly in replacement
1251*4887Schin	  patterns with ${x/pattern/replace}.
1252*4887Schin95-08-28  A bug with read in which the line did not end with
1253*4887Schin	  a new-line has been fixed.
1254*4887Schin95-08-28  A bug in file name generation which sometimes
1255*4887Schin	  appended a . for filenames that ended in / has
1256*4887Schin	  been fixed.
1257*4887Schin95-08-28  If a process is waited for after a status has
1258*4887Schin	  been returned by a previous wait, wait now
1259*4887Schin	  returns 127.
1260*4887Schin95-08-28  A bug with hist (fc) -e which prevented a command
1261*4887Schin	  to re-executed after it had been edited has been fixed.
1262*4887Schin95-08-28  A bug which prevented quoting from removing the meaning
1263*4887Schin	  of unary test operators has been fixed.
1264*4887Schin95-08-28  A bug with typeahead and KEYBOARD traps with the
1265*4887Schin          MULTIBYTE option set has been fixed.
1266*4887Schin95-08-28  Builtin functions can take a third argument which is
1267*4887Schin          a void*.
1268*4887Schin95-08-28  The nv_scan() function can restrict the scope of a walk
1269*4887Schin          to the top scope.
1270*4887Schin
1271*4887Schin95-04-31  --- Release ksh93c  ---
1272*4887Schin95-04-31  The expansion of "$@" was incorrect when $1 was the null
1273*4887Schin	  string.
1274*4887Schin95-04-31  A bug which could incorrectly report a syntax error in
1275*4887Schin	  a backquoted expression when a $ was preceded by \\
1276*4887Schin	  has been fixed.
1277*4887Schin95-04-31  A bug which prevented the shell from exiting after
1278*4887Schin	  reporting an error when failing to open a script
1279*4887Schin	  has been fixed.
1280*4887Schin95-04-31  A bug that could lead to memory corruption when a
1281*4887Schin	  large here document that required parameter or command
1282*4887Schin	  substitution was expanded has been fixed.
1283*4887Schin95-04-31  A bug that could cause a core dump on some systems
1284*4887Schin	  after ksh detected an error when reading a function
1285*4887Schin	  has been fixed.
1286*4887Schin95-04-31  A bug which could cause a coprocess to hang when
1287*4887Schin	  reading from a process that has terminated has been fixed.
1288*4887Schin95-04-31  A bug which caused a script to terminate when set -e
1289*4887Schin	  was on and the first command of and && or || list
1290*4887Schin	  failed has been fixed.
1291*4887Schin95-04-31  A bug with here documents inside $(...) when the delimiter
1292*4887Schin	  word is an identifier has been fixed.
1293*4887Schin95-04-31  A bug which caused $0 to display the wrong value when
1294*4887Schin	  a script was invoked as an argument to the . command
1295*4887Schin	  and the eval command has been fixed.
1296*4887Schin95-04-31  A bug that could cause the built-in sleep to hang
1297*4887Schin	  has been fixed.
1298*4887Schin95-04-31  A bug introduces in 12/28/93b which caused the backslash
1299*4887Schin	  to be removed when it was followed by digit inside double
1300*4887Schin	  quotes in some instances has been fixed.
1301*4887Schin95-04-31  A bug which could cause a core dump if ksh was invoked with
1302*4887Schin	  standard input closed has been fixed.
1303*4887Schin95-04-31  A bug which could cause a core dump if typeset -A was
1304*4887Schin	  specified for an existing variable has been fixed.
1305*4887Schin95-04-31  Variables that were unset but had attributes such as readonly
1306*4887Schin	  and export were not listed with readonly, export and typeset.
1307*4887Schin95-04-31  Several problems with signals have been fixed.
1308*4887Schin95-04-31  A bug which prevented ulimit -t from working has been fixed.
1309*4887Schin	  Also, a bug in which failed ulimits could cause a core dump
1310*4887Schin	  has also been fixed.
1311*4887Schin95-04-31  A bug in expansion of the form ${name/#pattern/string} and
1312*4887Schin	  ${name/%pattern/string} has been fixed.
1313*4887Schin95-04-31  A bug which caused read -r on a line that contained only
1314*4887Schin	  blanks to get a non-null value has been fixed.
1315*4887Schin95-04-31  A bug introduced in the 'a' point release in which
1316*4887Schin	  ${x='\\'} expanded to \ when x was unset has been fixed.
1317*4887Schin95-04-31  A bug which prevented a trap on EXIT from being executed
1318*4887Schin	  when the last command in a script was a function invocation
1319*4887Schin	  has been fixed.
1320*4887Schin95-04-31  A bug which caused an interactive shell ignore input when
1321*4887Schin	  standard error was redirected to a file with exec,
1322*4887Schin	  and then restored with exec 2>&1 has been fixed.
1323*4887Schin95-04-31  An interactive shell turns on monitor mode even when
1324*4887Schin	  standard error has been redirected to a file.
1325*4887Schin95-04-31  A bug which could cause standard input to be incorrectly
1326*4887Schin	  positioned for the last command of a script has been fixed.
1327*4887Schin95-04-31  A bug in the edit modes which allowed walking back in
1328*4887Schin	  the history file for more than HISTSIZE commands has
1329*4887Schin	  beed fixed.
1330*4887Schin95-04-31  A bug which could cause a core dump if variable TMPDIR was
1331*4887Schin	  changed between two command substitutions has been fixed.
1332*4887Schin95-04-31. A bug which prevented a trap on EXIT from being cleared
1333*4887Schin	  has been fixed.
1334*4887Schin95-04-31  A bug fixed for the v directive in vi MULTIBYTE has been
1335*4887Schin          fixed.
1336*4887Schin95-04-31  Code to for IFS handling of multibyte characters has
1337*4887Schin          been added.
1338*4887Schin95-04-31  The displaying of multibyte strings in export, readonly,
1339*4887Schin          typeset, and execution traces has been fixed.
1340*4887Schin95-04-31  Variables inside functions are now statically scoped.
1341*4887Schin	  The previous behavior was never documented.
1342*4887Schin95-04-31  Variables inside functions are now statically scoped.
1343*4887Schin          The previous behavior was never documented.
1344*4887Schin95-04-31  A few changes have been made to the name-value library
1345*4887Schin          that affect built-ins that use disciplines.  The
1346*4887Schin          changes allow disciplines to be shared by variables
1347*4887Schin          and should make it possible to add new disciplines
1348*4887Schin          without recompilation.
1349*4887Schin95-04-31  The name-value library interface has undergone significant
1350*4887Schin          change for this revision.  See the new nval.3 man page.
1351*4887Schin
1352*4887Schin94-12-31  --- Release ksh93b  ---
1353*4887Schin94-12-31  Variables inside functions are now statically scoped.
1354*4887Schin          The previous behavior was never documented.
1355*4887Schin94-12-31  If IFS contains two consecutive identical characters belonging
1356*4887Schin	  to the [:space:] class, then this character is treated as
1357*4887Schin	  a non-space delimiter so that each instance will delimit
1358*4887Schin	  a field.  For example, IFS=$'\t\t' will cause two consecutive
1359*4887Schin	  tabs to delimit a null field.
1360*4887Schin94-12-31  The getopts command has a -a name option that specifies a
1361*4887Schin	  name that will be used for usage messages.
1362*4887Schin94-12-31  A bug which caused unset RANDOM to dump core has been
1363*4887Schin	  fixed.
1364*4887Schin94-12-31  A bug which prevented return for terminating a profile
1365*4887Schin	  or ENV file has been fixed.
1366*4887Schin94-12-31  A bug which prevented standard input from being
1367*4887Schin	  directed to /dev/null for background jobs when
1368*4887Schin	  monitor mode was turned off has been fixed.
1369*4887Schin94-12-31  Statements of the form typeset -options var[expr]=value
1370*4887Schin	  did not perform substitutions on expr as expected.
1371*4887Schin94-12-31  A bug which prevented the shell from sending a HUP
1372*4887Schin	  signal to some background jobs that were not disowned
1373*4887Schin	  has been fixed.
1374*4887Schin94-12-31  A bug which allowed a script to trap signals that are
1375*4887Schin	  ignored at the time that the shell was invoked by exec
1376*4887Schin	  has been fixed.
1377*4887Schin94-12-31  A bug which could cause a core dump when a discipline
1378*4887Schin	  function was unset within a discipline was fixed.
1379*4887Schin94-12-31  The typeset builtin now accepts a first argument of
1380*4887Schin	  + or - for compatibility with ksh88.
1381*4887Schin94-12-31  For compatibility with ksh88, the results of expansions
1382*4887Schin	  of command arguments will treat the extended character
1383*4887Schin	  match characters ()|& as ordinary characters.
1384*4887Schin94-12-31  A bug which caused read to fail on a file that was
1385*4887Schin	  open for read/write with <> when the first operation
1386*4887Schin	  was print or printf has been fixed.
1387*4887Schin94-12-31  When a job is suspended, it is put on the top of
1388*4887Schin	  the job list as required by the POSIX standard.
1389*4887Schin94-12-31  The value of OPTARG when an option that required
1390*4887Schin	  an argument but didn't have one was incorrect in the
1391*4887Schin	  case the the option string began with a :.
1392*4887Schin94-12-31  A bug which caused the terminal to get into a bad
1393*4887Schin	  state with some KEYBD traps in vi-mode has been fixed.
1394*4887Schin94-12-31  A bug which caused an invalid trap to cause a script
1395*4887Schin	  to terminate, rather than just return an error, has
1396*4887Schin	  been fixed.
1397*4887Schin94-12-31  Backreferencing sub-expressions in patterns and replacement
1398*4887Schin	  strings now works.
1399*4887Schin94-12-31  A bug in chmod which caused the -R option to fail has
1400*4887Schin	  been fixed.
1401*4887Schin94-12-31  More signal names have been added for Solaris
1402*4887Schin
1403*4887Schin94-06-30  --- Release ksh93a  ---
1404*4887Schin94-06-30  An expansion bug which causes portions of a word after
1405*4887Schin	  a $((...)) expansion that contains a nested $var expansion
1406*4887Schin	  to be lost has been fixed.
1407*4887Schin94-06-30  A bug that caused a core dump when a script that did not
1408*4887Schin	  have PWD set and did a cd inside command substitution
1409*4887Schin	  has been fixed.
1410*4887Schin94-06-30  A bug which caused a core dump on some machines when
1411*4887Schin	  the LANG variable was assigned to has been fixed.
1412*4887Schin94-06-30  A bug which incorrectly handled set disciplines that
1413*4887Schin	  performed arithmetic evaluation when the discipline
1414*4887Schin	  was called from the arithmetic evaluator has been fixed.
1415*4887Schin94-06-30  A bug caused by an EXIT trap inside a function that
1416*4887Schin	  was executed in a subshell was fixed.
1417*4887Schin94-06-30  If foo is a function, and not a program, then command foo
1418*4887Schin	  now reports that foo isn't found rather than invoking foo.
1419*4887Schin94-06-30  The previous version incorrectly listed -A as an
1420*4887Schin	  invocation option.  The -A option is only for set.
1421*4887Schin94-06-30  A bug was fixed which caused ksh to loop when execution trace
1422*4887Schin	  was enabled and the PS4 prompt required command substitution.
1423*4887Schin94-06-30  A bug which could cause the job control switch character
1424*4887Schin	  to be disabled when a script that enabled monitor mode
1425*4887Schin	  terminated was fixed.
1426*4887Schin94-06-30  A bug in the macro expansion global replacement operator //,
1427*4887Schin	  when the pattern began with a [ or +( has been fixed.
1428*4887Schin94-06-30  A bug which prevented ~ expansion from occurring when
1429*4887Schin	  it was terminated with a colon inside an assignment
1430*4887Schin	  has been fixed.
1431*4887Schin94-06-30  A bug in the dot command which prevented autoload functions
1432*4887Schin	  from working has been fixed.
1433*4887Schin94-06-30  A bug which caused a variable to be unset if the
1434*4887Schin	  its value were expanded inside a set discipline has
1435*4887Schin	  been fixed.
1436*4887Schin94-06-30  Whence -a now longer reports that a defined function
1437*4887Schin	  is undefined.
1438*4887Schin94-06-30  A bug on some systems in which $0 would be incorrect
1439*4887Schin	  in scripts invoked by name has been fixed.
1440*4887Schin94-06-30  Here documents with an empty body now work.
1441*4887Schin94-06-30  A bug which disabled argument passing and resetting
1442*4887Schin	  of options for a script invoked by name inside a
1443*4887Schin	  function has been fixed.
1444*4887Schin94-06-30  A bug in which an EXIT trap set the caller of a function
1445*4887Schin	  would be executed if a command called inside a function
1446*4887Schin	  was not found has been fixed.
1447*4887Schin94-06-30  A bug which allowed a script to trap signals that are
1448*4887Schin	  ignored at the time that the shell was invoked has
1449*4887Schin	  been fixed.
1450*4887Schin94-06-30  A bug which caused 2<&1- when applied to a shell built-in
1451*4887Schin	  to leave standard input closed has been fixed.
1452*4887Schin94-06-30  A bug which caused the shell to incorrectly parse
1453*4887Schin	  $() command substitutions with nested case statements
1454*4887Schin	  has been fixed.
1455*4887Schin
1456