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