Changelog:
# ksh93
12-08-01 A bug that ignored interrupts for some builtins (e.g. cmdtst::grep)
that read from stdin has been fixed.
12-08-01 A bug that interpreted "cd .foo" as "cd foo" has been fixed.
12-07-30 Added automatic restart for EINTR for ioctl, tcgetattr, and tcsetattr.
12-07-23 A scoping error with namrefs to compound associative arrays has
been fixed.
12-07-20 A bug where builtin -d /path/foo deleted foo has been fixed.
12-07-18 A bug in which /dev/stdout did not work in command substitution on
some systems has been fixed.
12-07-17 A bug in which the restricted option set in a subshell prevented
some variables from getting restored when the subshell completed
has been fixed.
12-07-09 A bug in which the directory is not restored after a subshell changes
the name of the directory for subshells executed in the same process
has been fixed.
12-07-09 A bug in which file descriptors created with {n}< file were not being
closed has been fixed.
12-07-09 The 12-04-04 fix for cd .. was not correct causing cd /etc;cd .. to
remain in /etc. This has been fixed.
12-07-02 A bug in which builtin name did now work for builtins found in a
library added by builtin -f lib has been fixed.
12-07-02 A bug in the edit modes which <tab> after a directory did not refresh
the input line has been fixed.
12-07-02 A bug in which an exit status > 256 corresponding to a signal was
not returned by a function to indicate a signal exit has been fixed.
12-06-28 Fix ulimit -a to list (Kibytes) instead of (kbytes).
12-06-27 Fix unitialized data reference for <CR> as first char in --vi mode.
12-06-26 The formatting of printf "%q" for multibyte locales has changed to
output using \u[xxx] format for valid wide characters.
12-06-25 The size limit for read -N and read -n has been raised to INT_MAX.
12-06-22 A bug in which an exit trap set in a subshell might not be triggered
when the last command was a simple executable has been fixed.
12-06-22 A bug which could cause the shell to hang when a coprocess exits
while a command inside a command substitution is reading from it has
been fixed.
12-06-21 +ksh new accepts for commands of the form for i; <nl> do;...;done
12-06-19 Tab completion after a / when there is only one match not completes
with that match rather than generating a menu of matches.
12-06-19 A bug in which patterns containing {...} where not processed
correctly inside ${var/pattern/string} has been fixed.
12-06-15 Change the .paths plugin/builtin library variable name from
BUILTIN_LIB to PLUGIN_LIB to prevent new plugin_version() aware
-lcmd from causing older non-plugin_version() aware ksh to dump core.
12-06-14 builtin without argument no longer lists .sh.tilde as a built-in.
12-06-12 For assignments if the form x=(foo bar), foo is only check for an
alias if it is float, integer, compound, or nameref.
12-06-12 +The shell supports 64 bit i-nodes even for 32 bit binaries.
12-06-11 A bug wth >; redirection systems for which vfork() was the same a
fork() has been fixed.
12-06-11 A bug in path lookup that ignored buffer boundaries has been fixed.
12-06-08 typeset -a var and typeset -A var, first unset var when var is
a compound variable.
12-06-08 A bug in which running shcomp on a program containg namespace
could core dump has been fixed.
12-06-06 A bug in which unset of an associative array of compound variables
did not completely unset the variable has been fixed.
12-06-06 A bug in which exporting left or right justfied fields could loose
the field width has been fixed.
12-06-06 A bug on Solaris11 in which >; did not work for /dev/null was fixed.
12-06-05 A race condition which occured when stopping a builtin command
invoked from a subshell has been fixed.
12-06-05 A bug with appending elements to an empty indexed array has been
fixed.
12-06-04 A bug in which continuing a stopped builtin could cause it to
terminate has been fixed.
12-06-04 By default, builtins added at runtime will restore the current
directory if they are killed or stopped.
12-06-04 A bug in handling \ in read has been fixed.
12-05-31 Use getrlimit64/setrlimit64 on systems that support it.
12-05-31 Fix 64 bit big-endian arithmentic bug that mishandled nan and inf.
12-05-31 Handle ECONNRESET like EPIPE.
12-05-31 Change .paths parse to use only the last BUILTIN_LIB from the top
and treat BUILTIN_LIB value as a ':' separated list of lib names.
12-05-29 Fix BUILTIN_LIB binding bug that ignored subsequent lookups.
12-05-29 shtests: --nocompile omits the compile test and --compile does only
the compile test.
12-05-25 A command subsitution containing a here-document that itself contains
a here-document no longer hangs.
12-05-24 When the redirection operatory >; is directed to a symlink, it now
overwrites the file named by the link rather than the link.
12-05-21 +Added printf formats %(type)q where type can be html, url, pattern,
ere, or csv.
12-05-18 A bug with appending elements to an indexed array has been fixed.
12-05-18 The exit status from getopts --man interactively was 0 instead of 2
and has been fixed.
12-05-18 Another bug with SHOPT_EDPREDICT which could cause a core dump has
been fixed.
12-05-17 A bug with fixed size arrays which could cause a core dump has been
fixed.
12-05-17 A bug in which the here-document <<< $(<file) was not processed
correctly has been fixed.
12-05-15 The default value for -L, -R, and -Z when the size was not set was
incorrectly defaulting to 1 and has been fixed.
12-05-15 A bug in which a subshell of the form (name=value exec ...) could
coredump when name is an environment variable and xtrace is on has
been fixed.
12-05-15 Fixed a .paths bug in which only the first BUILTIN_LIB assignment worked.
12-05-14 Arithmetic expressions and subexpressions that are not floating point
now treat -0 as 0, so that $((-0)) is 0 and $((-0.0)) is -0.
12-05-11 'unset .sh' now fails with readonly message instead of coredump.
12-05-11 A bug which left an associative array arr containing one element in
the wrong state after expanding with ${arr[@]} has been fixed.
12-05-10 A bug in which typeset -f did not display options that called getopts
has been fixed.
12-05-08 Fixed a number of potential bugs uncovered by valgrind.
12-05-08 A bug in which typeset -b -Z10 var did not initialize var to the
empty string has been fixed.
12-05-07 A bug in which the exit value of an interactive shell could be
affected by the evaluation of the PS1 prompt has been fixed.
12-05-04 A bug in which x=() was not unsetting the old value of x before
creating an empty compound variable has been fixed.
12-05-01 A bug in vi edit mode in which after <ESC>^V, the terminal was not
restored to insert mode after a character is entered has been fixed.
12-04-27 A bug in which old attributes were not cleared when assigning a
value using typeset has been fixed.
12-04-26 +Enabled multiline editing by default. set +o multiline can disable.
12-04-25 The 12-04-17 PATH fix created a new bug which was fixed.
12-04-25 Fixed a big memory leak problem in which unsetting compound variables
did not free all the space.
12-04-25 A bug in which test ! ! ! was treated as an error has been fixed.
12-04-24 A bug with print -v for a compound variable that contained fixed
arrays which prevented the output from being used again as input
has been fixed.
12-04-23 +kill provides the STKFLT signal on systems that support it.
12-04-23 +The -L option was added to kill. The -L option is the same as -l
except that without arguments the output format is in the form of
a select menu.
12-04-23 A bug in which the exit status for an interactive shell was always
0 has been fixed.
12-04-20 Entering blank lines interactively no longer resets the exit status.
12-04-18 A bug in file completion in which the second tab completion on a file
would list the completion rather than inserting the completion has
been fixed.
12-04-18 A bug in which "${arr[@]:i:j}" and "${@:i:j}" generated the empty
string when i was a valid subscript and j was <=0 rather than
generating nothing has been fixed.
12-04-17 A bug in which read -d delim from a terminal did not respond to
interrupt and did not termrinate when the delimiter was entered
has been fixed.
12-04-17 A bug in which a directory in PATH containing a .paths file that
contains a line with FPATH=dir, where dir does not exist could
cause the path search to fail has been fixed.
12-04-16 A bug in which $(trap -p) did not display traps such as ERR and
DEBUG that are not associated with signals has been fixed.
12-04-11 A bug in which unsetting a variable did not unset attributes when
the variable did not have a value has been fixed.
12-04-11 A bug in which read -A for an array whose index is an enumeration
type, lost the enumeration type has been fixed.
12-04-10 Shared libraries loaded from a library named by a BUILTIN_LIB= found
in a .paths file found in a directory on PATH now add builtins that
are associated with the directory in PATH containing the .paths file.
12-04-09 Increased I/O buffer sizes for better performance.
12-04-09 A bug in which the leading 0 was stripped from $x, when $x contained
a heximadecimal constant inside an arithmetic expression inside
a for or while loop.
12-04-06 Modified namespaces to hand variabes FPATH, PATH, and OPTIND that
are defined in name spaces appropriately. This also fixed OPTIND
and OPTARG processing for functions.
12-04-04 A bug in which cd .. fails when the current directory has been
renamed has been fixed.
12-04-02 Made some namespace changes and added a regression test.
12-03-30 A bug with namespaces in which PATH and FPATH set in a namespace was
not restored when leaving the namespace has been fixed.
12-03-29 --- Release ksh93u++ ---
12-03-29 A bug in which appending an index array onto an array without elements
caused the first element to be 1 rather than 0 has been fixed.
12-03-29 A bug which could cause a core dump when copying a large index array
has been fixed.
12-03-28 The shell now generates an error message when the sizes with L, Z, and
R are > 32767 on 32 bit binaries instead of generating a core dump.
12-03-28 A bug in left and right justification in which the width of invalid
characters was not taken as zero has been fixed.
12-03-26 A bug in which typeset -p ref, when ref is a reference to an index
array element did not display the subscript has been fixed.
12-03-23 A bug in lowercase and uppercase fields when expanding ${name:=val}
when name is the empty string has been fixed.
12-03-22 A namespace bug in which a type t defined in namespace foo could not
be referenced outside the namespace as .foo.t has been fixed.
12-03-22 A bug in name reference scoping in which a name function called from
another function is pass a name reference to a compound variable
instance to be created and the compound variable is in the global
scope.
12-03-22 A bug in which ${ref[@}} did not behave like ${arr[i][@]} when
ref is a name reference to arr[i] has been fixed.
12-03-21 A bug in which assigning a compound variable into arr[i], where
arr[i] is an array variable did not work correctly has been fixed.
12-03-21 A bug with multi-dimenstional index arrays in which ${arr[i][j]}
could generate a bogus error message when i was > 9 has been fixed.
12-03-21 A bug in which typeset v=foo, typeset -p v[0] generated a core dump
has been fixed.
12-03-20 A bug in vi edit mode in which the sequence bar<ESC>0i<ESC>l left the
cursor on the b rather than the a has been fixed.
12-03-20 A bug which caused a core dump when defining a type with a field
as ' integer -a data=([0]=0)' has been fixed.
12-03-19 Using typeset -a array when array is an associative arry not
generated an error message.
12-03-19 typeset +a, typeset +A, and typeset +C not displays the variables
with the attributes a, A, and C respectively instead of an error.
12-03-19 A bug in which typeset -pC, typeset -pa, and typeset -pA output all
variables rather than those of type C, a, or A only has been fixed.
12-03-18 A bug in which unset foo where foo is a name reference to a compound
variable defined inside a function is not unset has been fixed.
12-03-18 A bug with SHOPT_EDPREDICT which could cause a core dump when the
list of matches became empty has been fixed.
12-03-15 The assignment, typeset -C foo=(a b c) now generates a syntax
error since a is not an assignment command.
12-03-16 A bug in which an unset discipline from a variable defined in a
subshell is not invoked in the subshell has been fixed.
12-03-08 The assignment typeset -a (x=1 y=2) now creates an index array
of two elements rathern than an array of one element which is
a compound variable.
12-03-02 +The vi and emacs edit modes now list all the entries in a directory
when entering a <tab> for completion after a /.
12-03-02 A bug in which a program that exits with value 12 when called
from a command substitution in which standard output has been
redirected caused the shell to hang has been fixed.
12-03-01 A bug in which the shell could not parse [[ ']' == ~(E)[]] ]]
has been fixed.
# INIT
12-07-17 iffe.sh: add C code NOTE("...") to ammend --verbose output
12-06-26 iffe.sh: fix "npt foo" to handle function-like macro foo()
12-06-20 package.sh: use $KSH for rt in "results test"
12-06-15 Makefile: add PLUGIN_LIB to $INSTALLROOT/bin/.paths and BUILTIN_LIB => PLUGIN_LIB
12-06-15 package.sh: add PLUGIN_LIB to $INSTALLROOT/bin/.paths and BUILTIN_LIB => PLUGIN_LIB
12-06-13 package.sh: handle admin.db column output
12-06-08 iffe.sh: fix 12-06-06 typo
12-06-06 iffe.sh: check for -l* in reverse and accumulative order (e.g., for -last & -lm)
12-06-04 package.sh: always check $INSTALLROOT/lib/package/profile
12-05-31 Makefile: ID=ast; $(INSTALLROOT)/prototyped.h => $(INSTALLROOT)/$(ID)/prototyped.h
12-05-28 iffe.sh: api foo YYYYMMDD => FOOAPI(rel) test macro
12-05-24 package.sh: change admin.db comment => owner attributes
12-04-25 ratz.c: add sear -k option to keep installation tmp dir on exit
12-04-17 package.sh: skip sh version logic for ``use''
12-04-17 cc.ibm.risc*: _LARGEFILE64_SOURCE => _LARGE_FILE_API moved to libast/features
12-04-09 cc.ibm.risc*: speak aixese for _LARGEFILE64_SOURCE
12-02-29 cc.darwin.i386*: handle default cc vs kernel bittedness
12-02-29 C+probe: add __TIMESTAMP__ to the nopredefined list
12-02-29 package.sh: don't assume grep -q or /usr/local/lib in LD_LIBRARY_PATH
12-02-29 package.sh: fix ksh vs -lcmd compatibility checks
* PLIST.xattr is moved to Makefile.common
* Patches are introduced from zsh-current
Tested on NetBSD 6.99.8 and 5.1.
Changelog:
* Many improvements.
In detail, see NEWS
* Optimize dash -c "command" to avoid a fork.
* Eliminate unnecessary promotion in echocmd.
* Avoid using undefined handler.
* Avoid gcc warning: variable 'oldstackp' set but not used.
* Avoid clang warning about dead store to "size".
* Make outc an inline function.
* Remove spurious space in descriptions of PS1, PS2, PS4.
* Remove unused EV_BACKCMD flag.
* Fix clobbering of checkkwd.
* Free IFS state after here document expansion.
* Use va_copy when reusing a va_list.
* Let funcnode refer to a function definition, not its first
* command.
* Improve LINENO support.
* Port to Solaris.
* Fix backslash handling in read(1).
* Dotcmd should exit with zero when doing nothing.
* Fix CTLESC clobbering by read(1).
* Port to AIX.
* Replace GPL noclobberopen code with the FreeBSD version.
* Do not split the result of tilde expansion.
* Mark status as volatile in exitshell.
* Use EXEXIT in place of EXEXEC.
* Stop documenting EXSHELLPROC.
* Use exit status 127 when the script to run does not exist.
* Document optional open parenthesis for case patterns.
* Fixed trap/return regression due to SKIPEVAL removal.
* Allow the originator of EXERROR to set the exit status.
* Free IFS state in evalbackcmd.
* Fix ifsfirst/ifslastp leak in casematch.
* Fix EXEXEC status clobbering.
* Fix ifsfirst/ifslastp leak.
* Fix trailing field bug in read(1).
* Debug compile fix.
* Fix varinit ordering that broke fc.
* Check exit for eval NSUBSHELL.
* Fix loss of variables when hash collides.
* Removed dead code for eval NPIPE.
* Don't clear eflag in evalbackcmd.
* Continue after EINTR in read(1) with no pending signals.
* Force fork if any trap is set, not just on EXIT.
* Fix corruption of redirections with byte 0x81.
* Fix poplocalvar on abnormal exit from function.
* Do not poplocalvars prematurely on regular utilities.
* Move null redirect checks into caller.
* Fix popredir on abnormal exit from built-in.
* Fix wait regression where it does not wait for all jobs.
* Replace cmdenviron with localvars.
* Fix poplocalvar leak.
* Move unsetvar functionality into setvareq.
* Add localvars nesting, local now fails outside functions.
* Fix command -- crash.
* Fix for job control off warning.
* Use faccessat if available.
* Make trap signal name/number errors non-fatal.
* Release 0.5.6.
* Use TMPDIR in mkbuiltins.
* Fix logical or result value.
* Fix binary operator parsing.
* Fix off-by-one recordregion in readcmd.
don't read-uninitialized for \177 in a here-doc
A DEL (0177, dec 127) byte in a here-document would cause dash to
access uninitialized memory at the end of one of the syntax.c
tables,
since those tables are sized to accommodate a maximum index of
BASESYNTAX + 126. Make the generated tables one byte larger.
printf ':<<\\E\n\200y\nE'|./dash
* src/mksyntax.c (filltable): Use 258, not 257 as the size,
so that BASESYNTAX(=130) + 127 is a valid index.
(print): Likewise.
Don't emit explicit array dimension in declaration.
* Avoid compiler warnings on isdigit.
* Add another missing LC_COLLATE to mkbuiltins.
* Fix NUL termination in readcmd.
* Lookup PWD after going through CDPATH.
* Pass EV_TESTED into evalcmd.
* Revert SKIPEVAL into EXEXIT.
* Add preliminary LINENO support.
* Honor tab as IFS whitespace when splitting fields in readcmd.
* Do not truncate file for FROMTO redirection.
* Fix quoted pattern patch breakage.
* Fix incorrect savefd conversions.
* Fix dowait signal race.
* Remove EXSIG.
* Do not close stderr when /dev/tty fails to open.
* Allow newlines after var name in for statements.
* Use CHKNL to parse case statements.
* Update manual page to differentiate dash from ash.
a window when the new patch file wasn't committed, and there's no check
for "extra" lines in distinfo, so this clearly identifies the version
with the new patch file included.
This unbreaks at least one of AST/ksh packages.
Changes since 2006-02-14:
2012-02-29
See the release change log for details:
http://www2.research.att.com/~gsf/download/release.2012-02-29.2011-02-08.html
2011-02-08
This source release contains the first official ksh93u.
See the release change log for details:
http://www2.research.att.com/~gsf/download/release.2011-02-08.2010-08-26.html
2010-08-26
See the release change log for details:
http://www2.research.att.com/~gsf/download/release.2010-08-26.2010-06-21.html
2010-06-21
This source release contains the last official ksh93t+.
The only updates for ksh93t+ will be hotfixes for serious bugs.
See the release change log for details:
http://www2.research.att.com/~gsf/download/release.2010-06-21.2010-06-18.html
2010-03-09
This source and binary release contains a fix for the
2010-03-01 ksh memory leak plus a few minor fixes to clean
up the bit rot that accumulated since 2009-07-04.
See the release change log for details:
http://www2.research.att.com/~gsf/download/release.2010-03-09.2010-03-01.html
2010-03-01
This source and binary release contains minor fixes to the
unannounced 2010-02-02 release. It is the first official
non-beta release in almost 8 months (we really do try to
decrease the time between official releases, but the
abundance of moving targets sometimes makes that
interesting). See the release change log for details:
http://www2.research.att.com/~gsf/download/release.2010-03-01.2010-02-02.html
2010-02-02
This source and binary release includes:
# fixes for problems reported by the OpenSolaris community
as part of the ksh93 integration project
# a UWIN update with initial support for Windows 7,
improved handle and process resource management, and
improved /var/log/uwin logging
# an expanded man page index that includes the UWIN man
pages in the U subsections and nmake(1) rule and operator
man pages in the 1M subsection
See the release change log for details:
http://www2.research.att.com/~gsf/download/release.2010-02-02.2009-07-04.html
2009-07-04
See the release change log for details:
http://www2.research.att.com/~gsf/download/release.2009-07-04.2009-05-05.html
2009-05-05
This source and binary release cleans up a few reported
build problems in the 2009-05-01 release (which has been
removed). The release procedures have been adjusted to avoid
similar problems in the future. (The main problem is
synthesizing external non-ast environments to fully exercise
portions of the build system seen by outside users -- since
we use our stuff for everything, including packaging and
building, setting up an environment that has no ast
components leaking in can be non-trivial).
See the release change log for details:
http://www2.research.att.com/~gsf/download/release.2009-05-05.2009-05-01.html
2009-05-01
This source release contains the official (and hopefully
final) ksh93t+ 2009-05-01, along with updates for the ast
commands and libraries. A lot of work went into cleaning up
the regression tests -- most regressions directly correspond
to unsupported native system features or buggy native system
interfaces that we felt should be fixed rather than worked around.
Of course we could be persuaded otherwise.
See the release change log for details:
http://www2.research.att.com/~gsf/download/release.2009-05-01.2008-11-04.html
2008-11-04
This source release contains the official ksh93t 2008-11-04,
along with updates for a few ast-open commands, libraries and plugins.
See the release change log for details:
http://www2.research.att.com/~gsf/download/release.2008-11-04.2008-07-25.html
2008-07-25
This source release corrects the build problems in the 2008-06-24 source release.
See the release change log for details:
http://www2.research.att.com/~gsf/download/release.2008-07-25.2008-06-24.html
2008-06-24
This source release contains first release of ksh93t and support libraries.
See the release change log for details:
http://www2.research.att.com/~gsf/download/release.2008-06-24.2008-02-02.html
2008-02-02
This release addresses standalone build problems and issues
raised on the lists. It also contains the final ksh93s+ release.
See the release change log for details:
http://www2.research.att.com/~gsf/download/release.2008-02-02.2007-11-05.html
2007-11-05
This release adresses issues raised on the lists.
See the release change log for details:
http://www2.research.att.com/~gsf/download/release.2007-11-05.2007-03-28.html
2007-03-28
Yes -- a new release in only 3 months. This release contains
fixes and features that address the issues raised on the lists.
A summary of recent ksh93 changes:
1. Double precision floating point arithmetic with full C99
arithmetic support on systems that provide the C99
arithmetic functions. The numbers Inf and NaN can be
used in arithmetic expressions.
2. TAB-TAB completion generates a numbered list of
completions which the user can select.
3. Support for processing/handling multibyte locales (e.g.,
en_US.UTF-8, hi_IN.UTF-8, ja_JP.eucJP, zh_CN.GB18030,
zh_TW.BIG5 etc.) has been extensively revised, tested,
and is now supported even on the language level (e.g.
variable and function identifiers may contain locale
specific codeset characters).
4. /dev/(tcp|udp|sctp)/host/sevrice now handles IPv6
addresses on systems that provide getaddrinfo(3).
5. The ability to seek on a file by offset or content with
new redirection operators.
6. A new --showme option which allows portions of a script
to behave as if -x were specified while other parts
execute as usual. This simplifies the coding of make -n
style semantics at the script level by eliminating code
replication. In particular, io redirections are handled
by --showme.
7. The [[...]] operator =~ has been added which compares
the string to an extended regular expression rather than
== which compares against a shell pattern.
8. The printf(1) builtin has been extended to support the =
flag for centering a field. The # flag when used with
%d and %i provides values in units of thousands or 1024
respectively with an appropriate suffix added.
9. Example screenshots from joint work with the Solaris
ksh93 integration project are available here.
See the release change log for details:
http://www2.research.att.com/~gsf/download/release.2007-03-28.2007-01-11.html
2007-01-11
This release, almost a year from the last big release,
contains changes based on feedback from the { ast-users
ast-developers uwin-users uwin-developers } lists and the
ongoing ksh93-solaris integration project. Thanks to all
who helped. Our resolution this year is to increase release
frequency to keep internal and external source/binaries
more in sync. See the release change log for details:
http://www2.research.att.com/~gsf/download/release.2007-01-11.2006-02-14.html
2006-05-01
Change log at
http://www2.research.att.com/~gsf/download/release.2006-05-01.2006-02-14.html
is empty.
This package will install tcsh in the /bin directory (not ${LOCALBASE}/bin).
DragonFly already has tcsh in the base system, so this package will replace
it with no ability to restore the system version. This is not desired.
shells/tcsh still works should there be any need for a pkgsrc version installed
at ${LOCALBASE}/bin.
mksh R40f fixes a critical bug as well as this:
[tg, RT] Implement fcntl(2)-based advisory locking as an alternative
iff flock(2) is not found (LP: #912691); keep trying in the face of EINTR
[tg] Fix severe regression wrt. initialising tty(4) states
[tg] Improve testsuite, build-time checks and debugging output
[tg, RT, winstonw] Improve portability to BeOS (works), Cygwin (good),
Dell UNIX (works somewhat, but not with gcc), LynxOS (works somewhat),
NeXTstep (works but not OpenStep 4.2), USL C compiler, SCO OpenServer (good),
SCO UnixWare (good), Plan 9 (still broken), Syllable Desktop (broken?)
[tg] rlim_t is supposed to be unsigned
[tg] Some code, warning and spelling cleanup
[tg] New Build.sh environment configurable: AWK (= awk)
[tg, DONG-DONG YANG] Add safety net in the Emacs line editing code
[tg] No longer rely on env(1), id(1), printf(1) in the testsuite, and
strcasecmp(3), strcasestr(3), strncasecmp(3) in the code
[tg, stsc, RT] Reduce system requirements of check.pl further
mksh R40e is another must-have bugfix update:
[tg, Jilles Tjoelker] skip readonly check in unevaluated ternary twig
[tg, anonymous] fix all remaining ifs.sh testcases
[tg] No longer try to build with GCC and C99 extensions
[tg, Jilles Tjoelker] Do not expand aliases in COMSUB twice
[tg] Honour UTF-8 multi-byte character boundaries when doing partial
tab-completion insertions (LP: #909025) to fix RedHat BZ#745702
[tg] Fix R40 (BZ#496791) regression with IOACT in TIF (LP: #907224)
[tg, ft] Darn persistent history code worst offenders (LP: #906914)
[tg] Fix some gc-sections, GCC and Clang/scan-build warnings/issues
[tg, 28C3] dot.mkshrc hash functions: partially address LP: #909818
[tg] Only compile divmod(0x80000000, -1) code in when not unneeded
[tg, RT] Move mirtoconf checks and INCLUDES_ONLY parts of
sh.h around to ensure prerequisites are always available
[tg, RT, ir0nh34d] Pass mksh.exe to testsuite, if such thing is generated,
and deal with Cygwin passing just "mksh" in argv[0] in such cases
[tg] Imply -DMKSH_ASSUME_UTF8=0 on MSYS; optimise checks
[tg, Jb_boin] Fix regression introduced in R35b by jaredy's security
patch where TTIME trashed a non-TCOM string argument (e.g. in TFOR)
[tg] Better support for tcc; fix GCCism that accidentally crept in
[tg] Deal with UTF-8 when reporting jobs' commands
[RT] Add SkyOS to known OS list
[tg, RT] Support Minix in its variants Minix 3 and Ninix 3 better
[tg] Drop some Android-specific unused code (lsmod builtin)
[tg, RT, lewellyn] Support QNX and various versions of BSD/OS better
[tg] More code cleanup and new developer-only debugging functions
[tg, Andrew Kudryashov] Fix some tab completion related escaping bugs
[tg, draenog] Honour COLUMNS and LINES from the environment in scripts
[tg, winstonw] The sleep built-in utility now blocks more signals
[tg] Warn when using another deprecated function that will be removed
Security fix.
=== v0.9.15.1 15/03/2012 ===
* Corrected security bug allowing user to get out of the restricted
shell. Thank you bui from NBS System for reporting this grave issue!
=== v0.9.15 13/03/2012 ===
* Set the hostname to the "short hostname" in the prompt.
* Corrected traceback when "sudo" command was entered alone. Thank you
Kiran Reddy for reporting this.
* Added support for python2.3 as subprocess is not included by default.
* Corrected the 'strict' behavior when entering a forbidden path.
* Added short path promp support using the 'prompt_short' variable.
* Corrected stacktrace when group did not exist.
* Add support for empty prompt.
* Fixed bugs when using $() and ``.
* Corrected strict behavior to apply to forbidden path.
* Added support for wildcard '*' when using 'cd'.
* Added support for "cd -" to return to previous directory.
* Updated security issue with non printable characters permitting user
to get out of the limited shell.
* Now lshell automatically reload its configuration if the configuration
file is modified.
* Added possibility to have no "intro" when user logs in. (by setting
the intro configuration field to "")
* Corrected multiple commands over ssh, and aliases interpretation.
* Added possibility to use wildcards in path definitions.
* Finally corrected the alias replacement loop.
* new autorehash builtin to control how the internal command hash
table is maintained.
* globstar globbing to allow ** and *** expansions
* euid, euser, egid variables.
* wait built-in is now interruptible
* new anyerror variable to control error handling in pipelines
Upstream changes:
=== v0.9.14 27/10/2010 ===
* Corrected get_aliases function, as it was looping when aliases were
"recursive" (e.g. 'ls':'ls --color=auto')
* Added lsudo built-in command to list allowed sudo commands.
* Corrected completion function when 2 strings collided (e.g. ls and lsudo)
* Corrected the README's installation part (adding --prefix).
* Added possibility to log via syslog.
* Corrected warning counter (was counting minus 1).
* Added the possibility to disable the counter, and just warn the user
(withouht kicking him).
* Added possibility to configure prompt. Thank you bapt for the patch.
* Added possibility to set environment variables to users. Thank you bapt
for the patch.
* Added the 'history' built-in function.
=== v0.9.13 02/09/2010 ===
* Switched from deprecated popen2 to subprocess to be python2.6 compatible.
Thank you Greg Orlowski for the patch.
* Added missing builin commands when 'allowed' list was set to 'all'. For
example, the "cd" command was then missing.
* Added the "export" builtin function to export shell variables. Thank you
Chris for reporting this issue.
Changes: essentially bugfixes.
# [tg] New test.sh `-f' option (same as `-C fastbox')
# [tg] Drop using set -o noglob inside pushd/popd/dirs
# [tg] Use += more in dot.mkshrc and keep strings shorter
# [tg] Correct interworking between local and set -A
# [tg] Fix out-of-bounds memory access on strings of 32 KiB length
# [tg] MKSH_DISABLE_DEPRECATED (for integrators)
# [tg, Jilles Tjoelker] test(1) built-in behaves exactly as POSIX says
# [tg] Move compile-time assertions to Build.sh from misc.c#ifdef DEBUG
# [tg] Invocation documentation is at the bottom of Build.sh
# [tg] test.sh: verbosely look for perl(1) interpreter to use
# [tg] New tests for integers (base 1#36, base unspecified, base OOB)
# [tg] Correct error paths for typeset -n global state
# [tg] Deprecate interpreting "010" as octal number, will go
# [tg] Improvements re. integer handling; more explicit manpage text
# [tg] Do not use caddr_t on Linux, so dietlibc stops bitching
# [tg, Jilles Tjoelker] Catch division/modulo overflow 0x80000000/-1
# [tg] Emacs mode ^O regression fix when the fetched lines are edited