2014-11-17  Stéphane Aulery <saulery@free.fr>

	* Correct typo in manual page.
	* Document redirection file descriptor limitation.

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

	* Catch variable length expansions on non-existant specials.

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

	* Removed unnecessary pungetc on EOF from parser.
	* Simplify EOF/newline handling in list parser.

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

	* Add printf support for format string a, A, and F.
	* Handle embedded NULs correctly in printf.
	* Replace open-coded flushall in preadbuffer.
	* Add likely tag in outmem.
	* Add ifdefs around MEM_OUT handling in outmem.
	* Remove unnecessary restoration of format string in printf.
	* Remove getintmax in printf.
	* Use error instead of warnx for fatal errors in printf.
	* Optimise handling of backslash octals in printf.
	* Simplify echo command.
	* Handle -- in dotcmd.

2014-10-13  Eric Blake <eblake@redhat.com>

	* cd: support drive letters on Cygwin.

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

	* Split unquoted $@/$* correctly when IFS is set but empty.
	* Do not split quoted VSLENGTH and VSTRIM.
	* Optimise nulonly away and just use quoted as before.

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

	* Use setvareq to set OPTIND initially.

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

	* Exit without arguments in a trap should use status outside traps.
	* Do not allow break to break across function calls.
	* Move common skipcount logic into skiploop.
	* Allow return in loop conditional to set exit status.
	* Return without arguments in a trap should use status outside traps.

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

	* Do not clobber exitstatus in evalcommand.

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

	* Fix use-after-free in dotrap/evalstring.
	* Make sure evalskip is zero before running traps.
	* Set exitstatus in onint.

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
