2014-10-02  Herbert Xu <herbert@gondor.apana.org.au>

	* Fix use-after-free in dotrap/evalstring.

2014-09-29  Herbert Xu <herbert@gondor.apana.org.au>

	* Kill pgetc_macro.
	* Handle backslash newlines properly after dollar sign.
	* Add nlprompt/nlnoprompt helpers.

2014-09-28  Herbert Xu <herbert@gondor.apana.org.au>

	* Correctly handle test ! ! = !.

2014-09-26  Herbert Xu <herbert@gondor.apana.org.au>

	* Small optimisation of command -pv change.
	* Set command -p path to /usr/sbin:/usr/bin:/sbin:/bin.
	* Change "characters" for printf precision to "bytes".
	* Release 0.5.8.

2014-09-26  Jonathan Nieder <jrnieder@gmail.com>

	* Clarify "trap '' signals" syntax in manual page.

2014-09-26  Adam Buchbinder <adam.buchbinder@gmail.com>

	* Clarify that 0 and EXIT are both acceptable for exit traps.

2014-09-26  Harald van Dijk <harald@gigawatt.nl>

	* command: allow combining -p with -v.
	* getjob: Fix off-by-one error for multiple of four job numbers

2013-08-23  Herbert Xu <herbert@gondor.apana.org.au>

	* Propagate EXP_QPAT in subevalvar.
	* Initialise OPTIND after importing environment.
	* Fixed argument parsing crash in test.

2013-03-12  Peter Rosin <peda@lysator.liu.se>

	* Add newline when tracing in poplocalvars.

2013-01-10  Jérémie Courrèges-Anglas <jca+dash@wxcvbn.org>

	* Markup fixes in manual for mandoc 1.12.1.

2012-12-03  Harald van Dijk <harald@gigawatt.nl>

	* Use PRIdMAX instead of %j in printf.

2012-07-20  Kimo Rosenbaum <kimor79@yahoo.com>

	* Fix typo for wait in manual.

2012-06-09  Christoph Mathys <eraserix@gmail.com>

	* Add support for ulimit -r.

2012-03-11  Jim Meyering  <meyering@redhat.com>

	* Avoid overflow for very long variable name.
	$ perl -le 'print "v"x(2**31+1) ."=1"' | dash

2012-02-25  Herbert Xu <herbert@gondor.apana.org.au>

	* Sanitise environment variable names on entry.

2011-08-17  David S. Miller <davem@davemloft.net>

	* Allow building without LINEO support.
	* Add top-level autogen.sh.

2011-07-26  Harald van Dijk <harald@gigawatt.nl>

	* Avoid imaxdiv when only one of the results is wanted.

2010-07-09  maximilian attems <max@stro.at>

	* Fix klibc DEBUG compilation.

2011-07-09  Herbert Xu <herbert@gondor.apana.org.au>

	* Merge SKIPFUNC/SKIPFILE and only clear SKIPFUNC when leaving dotcmd.

2011-07-08  Herbert Xu <herbert@gondor.apana.org.au>

	* Release 0.5.7.

2011-07-07  Herbert Xu <herbert@gondor.apana.org.au>

	* Optimize dash -c "command" to avoid a fork.
	* Eliminate unnecessary promotion in echocmd.

2011-05-25  Jim Meyering  <meyering@redhat.com>

	* Avoid using undefined handler.

2011-05-23  Jim Meyering  <meyering@redhat.com>

	* Avoid gcc warning: variable 'oldstackp' set but not used.
	* Avoid clang warning about dead store to "size".

2011-05-22  Jonathan Nieder <jrnieder@gmail.com>

	* Make outc an inline function.

2011-05-02  Kalle Olavi Niemitalo <kon@iki.fi>

	* Remove spurious space in descriptions of PS1, PS2, PS4.

2011-04-10  Jonathan Nieder <jrnieder@gmail.com>
 
	* Remove unused EV_BACKCMD flag.

2011-03-15  Herbert Xu <herbert@gondor.apana.org.au>

	* Fix clobbering of checkkwd.

2011-03-15  Jonathan Nieder <jrnieder@gmail.com>

	* Free IFS state after here document expansion.
	* Use va_copy when reusing a va_list.

2011-03-15  Harald van Dijk <harald@gigawatt.nl>

	* Let funcnode refer to a function definition, not its first command.
	* Improve LINENO support.

2011-03-15  Brian Koropoff <bkoropoff@gmail.com>

	* Port to Solaris.

2011-03-11  Herbert Xu <herbert@gondor.apana.org.au>

	* Fix backslash handling in read(1).

2011-03-10  Jonathan Nieder <jrnieder@gmail.com>

	* Dotcmd should exit with zero when doing nothing.

2011-03-10  Herbert Xu <herbert@gondor.apana.org.au>

	* Fix CTLESC clobbering by read(1).

2011-03-10  Brian Koropoff <bkoropoff@gmail.com>

	* Port to AIX.

2011-03-10  Jilles Tjoelker <jilles@stack.nl>

	* Replace GPL noclobberopen code with the FreeBSD version.
	* Do not split the result of tilde expansion.

2010-11-28  Maciej Żenczykowski <zenczykowski@gmail.com>

	* Mark status as volatile in exitshell.

2010-11-28  Jonathan Nieder <jrnieder@gmail.com>

	* Use EXEXIT in place of EXEXEC.
	* Stop documenting EXSHELLPROC.

2010-11-28  Gerrit Pape <pape@smarden.org>

	* Use exit status 127 when the script to run does not exist.

2010-11-28  Philipp Weis <pweis@pweis.com>

	* Document optional open parenthesis for case patterns.

2010-11-28  Herbert Xu <herbert@gondor.apana.org.au>

	* Fixed trap/return regression due to SKIPEVAL removal.
	* Allow the originator of EXERROR to set the exit status.
	* Free IFS state in evalbackcmd.

2010-10-18  Herbert Xu <herbert@gondor.apana.org.au>

	* Fix ifsfirst/ifslastp leak in casematch.

2010-10-07  Herbert Xu <herbert@gondor.apana.org.au>

	* Fix EXEXEC status clobbering.

2010-09-08  Herbert Xu <herbert@gondor.apana.org.au>

	* Fix ifsfirst/ifslastp leak.
	* Fix trailing field bug in read(1).

2010-09-08  maximilian attems <max@stro.at>

	* Debug compile fix.

2010-09-08  Jilles Tjoelker <jilles@stack.nl>

	* Fix varinit ordering that broke fc.

2010-07-06  Gerrit Pape <pape@smarden.org>

	* Check exit for eval NSUBSHELL.

2010-07-06  Herbert Xu <herbert@gondor.apana.org.au>

	* Fix loss of variables when hash collides.
	* Removed dead code for eval NPIPE.

2010-06-28  Gerrit Pape <pape@smarden.org>

	* Don't clear eflag in evalbackcmd.

2010-05-29  Herbert Xu <herbert@gondor.apana.org.au>

	* Continue after EINTR in read(1) with no pending signals.

2010-05-27  Jilles Tjoelker <jilles@stack.nl>

	* Force fork if any trap is set, not just on EXIT.
	* Fix corruption of redirections with byte 0x81.

2010-05-27  Herbert Xu <herbert@gondor.apana.org.au>

	* 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.

2010-05-26  Herbert Xu <herbert@gondor.apana.org.au>

	* Replace cmdenviron with localvars.

2010-05-25  Herbert Xu <herbert@gondor.apana.org.au>

	* Fix poplocalvar leak.
	* Move unsetvar functionality into setvareq.

2010-05-24  Herbert Xu <herbert@gondor.apana.org.au>

	* Add localvars nesting, local now fails outside functions.

2010-05-03  Gerrit Pape <pape@smarden.org>

	* Fix command -- crash.

2010-04-15  H. Peter Anvin <hpa@zytor.com>

	* Fix for job control off warning.

2010-04-02  Herbert Xu <herbert@gondor.apana.org.au>

	* Use faccessat if available.

2010-04-02  Herbert Xu <herbert@gondor.apana.org.au>

	* Make trap signal name/number errors non-fatal.
	* Release 0.5.6.

2010-04-02  maximilian attems <max@stro.at>

	* Use TMPDIR in mkbuiltins.

2010-03-10  Jilles Tjoelker <jilles@stack.nl>

	* Fix logical or result value.

2010-03-09  Herbert Xu <herbert@gondor.apana.org.au>

	* Fix binary operator parsing.

2009-11-26  Herbert Xu <herbert@gondor.apana.org.au>

	* Fix off-by-one recordregion in readcmd.

2009-09-28  Jim Meyering  <meyering@redhat.com>

	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.

2009-08-31  Eric Blake <ebb9@byu.net>

	* Avoid compiler warnings on isdigit.

2009-08-31  Matthew Burgess <matthew@linuxfromscratch.org>

	* Add another missing LC_COLLATE to mkbuiltins.

2009-08-31  Herbert Xu <herbert@gondor.apana.org.au>

	* Fix NUL termination in readcmd.
	* Lookup PWD after going through CDPATH.

2009-08-11  Herbert Xu <herbert@gondor.apana.org.au>

	* Pass EV_TESTED into evalcmd.
	* Revert SKIPEVAL into EXEXIT.

2009-08-11  Rocky Bernstein <rocky.bernstein@gmail.com>

	* Add preliminary LINENO support.

2009-08-11  Stefan Potyra <stefan.potyra@informatik.uni-erlangen.de>

	* Honor tab as IFS whitespace when splitting fields in readcmd.

2009-06-30  Herbert Xu <herbert@gondor.apana.org.au>

	* Do not truncate file for FROMTO redirection.

2009-06-27  Herbert Xu <herbert@gondor.apana.org.au>

	* Fix quoted pattern patch breakage.

2009-05-23  Herbert Xu <herbert@gondor.apana.org.au>

	* Fix incorrect savefd conversions.

2009-02-22  Herbert Xu <herbert@gondor.apana.org.au>

	* 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.

2009-02-22  Gerrit Pape <pape@smarden.org>

	* Update manual page to differentiate dash from ash.

2009-01-14  Herbert Xu <herbert@gondor.apana.org.au>

	* Add arith_yacc.h to dash_SOURCES.
	* Release 0.5.5.1.

2009-01-13  Herbert Xu <herbert@gondor.apana.org.au>

	* Release 0.5.5.

2009-01-13  Mark Mentovai <mmentovai@gmail.com>

	* Fixed build on OS X.

2008-12-26  Aleksey Cheusov <vle@gmx.net>

	* Fixed build on NetBSD.

2008-10-17  Herbert Xu <herbert@gondor.apana.org.au>

	* Removed obsolete for loop syntax in manual.

2008-08-05  Herbert Xu <herbert@gondor.apana.org.au>

	* Fixed getcwd build error for the non-glibc case.

2008-06-13  Gerrit Pape <pape@smarden.org>

	* Added missing right parenthesis in manual page.

2008-06-13  Herbert Xu <herbert@gondor.apana.org.au>

	* Fixed 3,4-argument cases for test per POSIX.
	* Made aexpr/oexpr non-recursive.
	* Made t_lex reentrant.
	* Made setinputfd static.
	* Expand ENV before using it.
	* Added support for -l.

2008-05-19  Herbert Xu <herbert@gondor.apana.org.au>

	* Fixed non-leading slash treatment in expmeta.

2008-05-07  Gerrit Pape <pape@smarden.org>

	* Fixed lexical error in arithmetic expansion of & and |.

2008-05-03  Dan McGee <dpmcgee@gmail.com>

	* Fixed klibc/klcc build problems.
	* Added gitignore.

2008-05-03  Herbert Xu <herbert@gondor.apana.org.au>

	* Fixed _PATH_BSHELL warning.
	* Test __GLIBC__ instead of _GNU_SOURCE.
	* Restored warning when getcwd fails.
	* Set default exvwarning2 arg0 for errors during early initialisation.
	* Use uninitialized_var to silence bogus warnings.

2008-05-02  Herbert Xu <herbert@gondor.apana.org.au>

	* Restored non-glibc getcwd support.

2008-03-07  Larry Doolittle <ldoolitt@recycle.lbl.gov>

	* Fix cmdtxt crash on if statements.

2008-01-01  Herbert Xu <herbert@gondor.apana.org.au>

	* Fix slash treatment in expmeta.

2007-12-27  Herbert Xu <herbert@gondor.apana.org.au>

	* Add FAKEEOFMARK for expandstr.
	* Do not show prompts in expandstr.

2007-12-23  Gerrit Pape <pape@smarden.org>

	* If imaxdiv() isn't available, use / and % operators.

2007-12-23  Richard M Kreuter <kreuter@progn.net>

	* Add set +o support.

2007-12-23  Steve Langasek <steve.langasek@canonical.com>

	* Fixed bad pointer arithmetic in evalcommand.

2007-11-11  Herbert Xu <herbert@gondor.apana.org.au>

	* Removed noexpand/length check on eofmark.
	* Removed herefd hack.
	* Expand here-documents in the current shell environment.

2007-10-20  Herbert Xu <herbert@gondor.apana.org.au>

	* Added configure --enable-glob and --enable-fnmatch options.
	* Fix here-doc corruption.

2007-10-17  Herbert Xu <herbert@gondor.apana.org.au>

	* Replace shared illnum message by badnum function.

2007-10-17  Oleg Verych <olecom@flower.upol.cz>

	* Disallow completely blank strings in non-arithmetic context.

2007-10-15  Herbert Xu <herbert@gondor.apana.org.au>

	* Fixed execing of scripts with no hash-bang.

2007-10-11  Herbert Xu <herbert@gondor.apana.org.au>

	* Add assignment support in arithmetic expansions.
	* Size optimisations in arithmetic lexer.
	* Add likely flags in expari.
	* Use setvarint to set OPTIND.

2007-10-08  Herbert Xu <herbert@gondor.apana.org.au>

	* Report substition errors at expansion time.

2007-10-06  Herbert Xu <herbert@gondor.apana.org.au>

	* Add pushstackmark.
	* Treat OPTIND=0 in the same way as OPTIND=1.
	* Remove setvarsafe.
	* Use intmax_t arithmetic in test.

2007-10-05  Herbert Xu <herbert@gondor.apana.org.au>

	* Made grabstackblock an inline wrapper for stalloc.

2007-10-04  Herbert Xu <herbert@gondor.apana.org.au>

	* Fix parsing of ${##1}.
	* Size optimisations in parameter expansion parser.

2007-10-04  Alexey Gladkov <legion@altlinux.org>

	* Add --enable-static option to configure.

2007-09-26  Herbert Xu <herbert@gondor.apana.org.au>

	* Recognise here-doc delimiters terminated by EOF.

2007-09-26  Roy Marples <uberlord@gentoo.org>

	* Refresh stack pointers after makestrspace in _rmescapes.

2007-09-25  Gerrit Pape <pape@smarden.org>

	* Clarify description of -nt, -ot options to test builtin.
	* Clarify syntax of the for command.

2007-09-25  Herbert Xu <herbert@gondor.apana.org.au>

	* Do not expand tilde in parameter expansion within quotes.
	* Move parse-time quote flag detection to run-time.

2007-09-24  Herbert Xu <herbert@gondor.apana.org.au>

	* Do not quote back slashes in parameter expansions outside quotes.
	* Perform tilde expansion in all parameter expansion words.
	* Remove superfluous arinest test in CENDQUOTE.
	* Remove superfluous arinest test for dqvarnest.
	* Remove superfluous dblquote settings when ending arith.
	* Remove arithmetic expansion collapsing at parse time.

2007-09-22  Oleg Verych <olecom@flower.upol.cz>

	* White space fixes for test(1).
	* Use direct comparison instead of strcmp in test(1).

2007-09-22  Herbert Xu <herbert@gondor.apana.org.au>

	* Move flushall to the point just before _exit.

2007-09-21  Denis Vlasenko <vda.linux@googlemail.com>

	* Restore foreground process group on exit.

2007-07-12  Herbert Xu <herbert@gondor.apana.org.au>

	* Release 0.5.4.

2007-05-12  Herbert Xu <herbert@gondor.apana.org.au>

	* Fix redirect restore on closed file descriptors.
	* Size optimisations in redir.c.

2007-05-06  Herbert Xu <herbert@gondor.apana.org.au>

	* Removed unnecessary inclusion of redir.h from parser.c.
	* Invoke sh_error on error in copyfd.
	* Use dup2 instead of copyfd in evalbackcmd.
	* Replace copyfd by savefd and dup2.
	* Removed redundant CLOEXEC calls.

2007-05-05  Herbert Xu <herbert@gondor.apana.org.au>

	* Fixed typo in parser.h comment.

2007-04-28  Dan Nicholson <dbn.lists@gmail.com>

	* Set LC_COLLATE for sort in mkbuiltin.

2006-10-22  Gerrit Pape <pape@smarden.org>

	* Fixed command -v segmentation fault.

2006-10-13  Alexey Gladkov <legion@altlinux.org>

	* Check return code for getgroups and fwrite.

2006-10-04  Herbert Xu <herbert@gondor.apana.org.au>

	* Fixed inverted char class matching.

2006-05-23  Alexey Gladkov <legion@altlinux.org>

	* Added --with-libedit option to configure.

2006-03-29  Herbert Xu <herbert@gondor.apana.org.au>

	* Removed useless parsebackquote flag.
	* Use alloca to get rid of setjmp in parse.c.
	* Only use signed char for syntax arrays.

2006-01-12  Herbert Xu <herbert@gondor.apana.org.au>

	* Fixed eval exit status with empty arguments.

2005-11-26  Herbert Xu <herbert@gondor.apana.org.au>

	* Release 0.5.3.

2005-11-14  Herbert Xu <herbert@gondor.apana.org.au>

	* Fix \c spillage across echo commands.

2005-11-13  Herbert Xu <herbert@gondor.apana.org.au>

	* Remove unnecessary truncation in _STPUTC.
	* Always call conv_escape_str in echocmd.

2005-11-04  Herbert Xu <herbert@gondor.apana.org.au>

	* Use mktemp if tempfile is not available.

2005-10-30  Herbert Xu <herbert@gondor.apana.org.au>

	* Fixed support for disabling job control.

2005-10-29  Herbert Xu <herbert@gondor.apana.org.au>

	* Updated BSD licence to 3-clause version per NetBSD.
	* Updated copyright.
	* Removed CVS IDs and inclusion of sys/cdefs.h.
	* Removed use of __P from error.h.
	* Use bsd_signal if it exists and signal does not.
	* Stop using sysexits.h in commandcmd.
	* Use stat if stat64 does not exist.
	* Added default implementation of bsearch.
	* Added getpwhome as a wrapper for getpwnam.
	* Fixed gcc 4.0 compilation problems.
	* Added missing system.h inclusion for mempcpy.
	* Added default implementation of strsignal.
	* Added default implementation of killpg.
	* Disable ulimit if there is no getrlimit.
	* Disable histcmd completely when SMALL is defined.
	* Added default definition for SSIZE_MAX.
	* Removed standalone/csh support from printf.
	* Added dummy strtod implementation.
	* Removed standalone/csh support from test.
	* Added dummy sysconf implementation.
	* Include system.h for stpcpy in nodes.c.
	* Added out-of-line ctypes functions for klibc.
	* Fixed fallback stpcpy implementation.

2005-10-26  Herbert Xu <herbert@gondor.apana.org.au>

	* Size optimisations in preadbuffer().

2005-10-01  Herbert Xu <herbert@gondor.apana.org.au>

	* Skip NUL characters properly in input.c.

2005-03-28  Herbert Xu <herbert@gondor.apana.org.au>

	* Removed some unnecessary inclusions of input.h.
	* Removed unnecessary inclusion of main.h from eval.c.
	* Removed unnecessary inclusion of eval.h from parser.c.
	* Generalise setinputfile for use in read_profile/readcmdfile.
	* Handle SKIPEVAL in read_profile by exiting.
	* Let evaltree handle traps from cmdloop.
	* Reset evalskip after minusc is executed.
	* Stop executing traps once SKIPEVAL is seen.
	* Only handle each signal once in dotrap.

2005-03-25  Gerrit Pape <pape@smarden.org>

	* Add trailing equal sign in setvar for variables set to null.

2005-03-25  Herbert Xu <herbert@gondor.apana.org.au>

	* Cleaned up src/Makefile.am.
	* Get rid of duplicate -g -O2 in CFLAGS.
	* Eliminate first null termination in setvar.
	* Turn evalskip into a bit field.

2005-03-25  Gilles Chanteperdrix <gilles.chanteperdrix@laposte.net>

	* Fixed support for cross-compilation.

2005-03-03  Herbert Xu <herbert@gondor.apana.org.au>

	* Removed qflag.
	* Removed redundant setstackmark from dotcmd.
	* Do not clobber exit status in dotcmd.

2005-03-02  Herbert Xu <herbert@gondor.apana.org.au>

	* Renamed symbols to avoid conflict with libc.
	* Optimisations in bltin/test.c.

2005-02-28  Herbert Xu <herbert@gondor.apana.org.au>

	* Replaced EXEVAL with SKIPEVAL.
	* Update funcnest atomically.
	* Only set skipcount for break and continue.
	* Removed expcmd built-in.
	* Normalise input in likely/unlikely macros.

2005-02-28  A Costa <agcosta@gis.net>

	* Corrected that/than typo in manual page.

2005-02-25  A Costa <agcosta@gis.net>

	* Corrected grammar in manual page.

2005-02-25  Herbert Xu <herbert@gondor.apana.org.au>

	* Changed boolean rootshell into shlvl counter.
	* Catch set -e exits within built-in commands.
	* Size optimisations with setjmp in main().
	* Only reread exitstatus on EXEXIT in exitshell.
	* Eliminated global exerrno.

2005-01-31  Gerrit Pape <pape@smarden.org>

	* Release 0.5.2.
	* Corrected manual entry about ENV and non-interactive shells.

2004-11-24  Gerrit Pape <pape@smarden.org>

	* Spell behaviour consistently in manual page.

2004-11-23  A Costa <agcosta@gis.net>

	* Fixed spelling errors in manual page.

2004-08-21  Herbert Xu <herbert@gondor.apana.org.au>

	* Size optimisations around varvalue() in src/expand.c.
	* Fixed signed char promotion in src/expand.c.

2004-08-18  Herbert Xu <herbert@gondor.apana.org.au>

	* Fixed $@ expansion when leading argument is null in src/expand.c.

2004-08-07  Herbert Xu <herbert@gondor.apana.org.au>

	* Allow negative pid argument to kill(1) in src/jobs.c.

2004-08-04  Herbert Xu <herbert@gondor.apana.org.au>

	* Fixed cd - when OLDPWD is unset in src/cd.c.

2004-07-09  Herbert Xu <herbert@gondor.apana.org.au>

	* Include system.h (Gerrit Pape):
	  . src/mystring.c
	  . src/var.c
	  . src/bltin/printf.c

2004-07-03  Herbert Xu <herbert@gondor.apana.org.au>

	* Release 0.5.1.
	* Use automake and autoconf.
	* Include stdlib.h for exit(3) in src/mksyntax.c.

2004-06-29  Herbert Xu <herbert@gondor.apana.org.au>

	* Added sigclearmask.
	* Removed hack for _setjmp/_longjmp.
	* Added default implementations of mempcpy/stpcpy/strchrnul.
	* Use strtoll/strtoull if strtoimax/strtoumax are unavailable.
	* Removed sh.1 to dash.1.

2004-05-28  Herbert Xu <herbert@gondor.apana.org.au>

	* Fixed vstype trim operator ordering in cmdputs.
	* Fixed quote for CTLENDVAR in cmdputs.
	* Fixed VSLENGTH crash in cmdputs.
	* Turned vstype back into a 2-d array of chars.
	* Added POSIX character class support in pmatch.

For older ChangeLogs see ChangeLog.O.

ChangeLog ends here
