Changes that improve compatibility w/ the Version 6 (V6) UNIX
Thompson shell are marked w/ a `C:' in the details below.

-------------------------------------------------------------------------------
[etsh-current] (development):
	* Work In Progress ( see https://etsh.nl/src/current/ )

-------------------------------------------------------------------------------
[etsh-5.4.0] (latest):
	* Bumped copyright/license year ranges from ...-2018 to ...-2019 .

README:
	* Updated supported systems with OpenBSD 6.5-beta, NetBSD 8.0_STABLE,
	  GNU/Linux Fedora 29, Ubuntu 18.04 LTS, and Ubuntu 19.04.

	* OpenIndiana: Hipster 2018.04: previously/currently supported.
	  Could someone please let me know if the same is true for
	  OpenIndiana: Hipster 2018.10: or not?  I would appreciate it!
	  =) link/url follows -

https://www.openindiana.org/2018/10/24/openindiana-hipster-2018-10-is-here/

(=

AUTHORS:
	* Replaced "Sixth Edition" with "Version 6".

INSTALL Makefile Makefile.config:
	*
	  1) Tweaked INSTALL, adding more info to CC description;
	  2) Removed -DETSH_VNUM=[...] from Makefile & ETSH_VNUM=[...]
	     from Makefile.config;
	.

LICENSE defs.h etsh.c:
	* etsh.c: Added SIZE_T_EOVERFLOW(num, siz) as an example.

	* Please see CHANGES-tsh+ about whether it's needed here or not.

mkconfig defs.h:
	* Added a compile test to mkconfig that defines HAVE_BSD_STYLE with
	  a value of 1 or 0, and added its complement to defs.h to handle
	  the case of if/when the compile test defines HAVE_BSD_STYLE as 0.

sh.h:
	* Changed struct tnode { ... } by moving nested enum { ... } ntype
	  found there out of tnode to a separate declaration of its own.
	  Now, enum tntype is directly above the struct tnode declaration.
	  This change affects both etsh.c and tsh.c; it makes struct tnode
	  easier to read (for me at least).

	* Updated the IS_VARNAME(v) macro to disallow s ($s) as a variable.
	  Now, doing a `set s value' will result in a "set: s: bad name"
	  diagnostic.

etsh.[1c]:
	* Since s ($s) is no longer used as a variable, it can instead
	  be used to represent the SHELL environment variable as $s in
	  the same way that $p represents PATH, $e represents EXECSHELL,
	  and so forth.

	* Added relevant documentation to etsh.1 about SHELL and $s.

etsh.c:
	* Added a new case to the switch in get_dolp(...) to implement
	  the new SHELL environment variable -> $s feature.

	* Changed how -V and -VV behave; I removed the code that wrote the
	  etsh version and the etsh url to standard error.  I originally
	  thought it would be useful, but instead, it was just annoying.
	  I left the version and url for the -VVV usage error message,
	  as it is actually useful.  That was my original intent.

etsh.c util.c lib.c lib.h sh_err.c:
	* Replaced instances of UChar with u_char, UCHAR with U_CHAR,
	  and UCPTR with U_CPTR to sync with defs.h .

* */.* */*:
	* Replaced ') io>|etsh\.io' with ') nl>|etsh.nl'.

	* Replaced "Sixth Edition" with "Version 6", and similar
	  variations, such as "V6 Thompson shell".

History/*:
	* Removed.  You can find it on the website in various forms.
	  That said, I need to update https://etsh.nl/history/ to make
	  the files in question visible.  At the same time, I will remove
	  the terribly formatted and styled manuals that are there now and
	  replace them with outputs from my mancnv script.  I use it to
	  generate the online manuals for the etsh project.

libexec.etsh/pev libexec.etsh/README Makefile:
	* Added a new script, .../pev, to the project, and updated
	  .../README to describe and document what it does.  It
	  prints etsh & tsh (package) version & info about its
	  components; it's not really new; I wrote it long ago
	  and figured I should clean it up and include it as part
	  of the project itself.

	* Updated the Makefile to install libexec.etsh/pev .

examples/etsh.login:
	* Fixed an incorrect PATH in the etlocal section.
	  This isn't a default like /usr/local, by the way.
	  I use /usr/local/etlocal as the install PREFIX for
	  etsh-current most of the time.  That way it doesn't
	  conflict with the OpenBSD shells/etsh port, which uses
	  /usr/local by default.

examples/.etsh.prompt:
	* There is a section that previously tested:

	      *) if $t != /dev/ttyC1 -a $t != /dev/ttyp1;

	  This changed to:

	      *) if $t != /dev/ttyC0 -a $t != /dev/tty00;

	  It makes a bit more sense to me given the way I use OpenBSD.

	* Also, updated it with 2 more simple non-default prompt examples.

	  [5] & [5 identical] add the short form hostname ($H) and
	  precede the prompt with a '\n' character.  [6] & [6 identical]
	  simply precede the prompt with a '\n' character.  For me, the
	  preceding newline helps reduce the visual noise on my terminals.

	  The previous example, without the preceding '\n' character,
	  moved to [7] & [7 identical].

-------- cvs commit log messages --------

Release as etsh-5.4.0, making it available via
https://etsh.nl/src/ on Thursday, 2019-03-28
(before 18:00 UTC).

--------

-------------------------------------------------------------------------------
[etsh-5.3.1]:
README:
	* Updated supported systems:

	  *) Replaced OpenBSD 6.3-current with 6.4-beta;

	  *) Replaced NetBSD  8.0_RC1     with 8.0;

mkconfig:
	* Changed #define _XOPEN_SOURCE from 600L to 700 for OpenIndiana.

defs.h:
	* Removed ULong typedef & inclusion of <inttypes.h>, both unused.

defs.h etsh.c tsh.c:
	* Removed the UInt typedef of unsigned int; it's already
	  available as u_int on supported systems.  Replaced
	  instances of UInt with u_int in etsh.c & tsh.c .

lib.c: prompt_debug():
	* Changed the type of cnt, a counter, from unsigned to u_int.

pexec.c sh_err.h util.c:
	* Added a missing error message, ": too large", found in the
	  original V6 Thompson shell source code; see History/sh.c
	  for more information.

	* C: This error message is available in both etsh & tsh.

	* Also, defined PWD_USAGE; sbi_pwd(), in util.c, uses it.

if.c strtoint.[ch] util.c: strtoint():
	* Changed long to long int; it's not exactly a change, but
	  it's better to be explicit than not; e3(), in if.c & util.c,
	  uses strtoint() and has the same long to long int change.

examples/{.*,*}:
	* Synced URLs - https://etsh.io/examples - with website again.

tests/{README,run,test0[1-8]}:
	* Synced URLs - https://etsh.io/tests - with website again.

-------------------------------------------------------------------------------
[etsh-5.3.0]:
	* Commits.log - Moved to https://etsh.io/src/old/Commits.log .

INSTALL:
	* Updated in order to sync with the Makefile, and tidied up
	  & clarified (the Footnotes:) a bit.

	* Improved the OpenIndiana example.

LICENSE:
	* Added a new license for the pwd built-in command's simple
	  documentation; I used an adaptation of it in etsh.1 & util.c .

Makefile:
	* Added 'CC?='.

Makefile, examples/ready_rc_files:
	* Changed the name of the examples.install temporary directory
	  to exp instead.

PROJECT:
	* Updated / synced this file with the Etsh Project website.
	  It has its own https://etsh.io/Project page too.
	  All for good fun and utility.

README:
	* Added OpenIndiana Hipster 2018.04 to supported systems.

sh.h etsh.[1c] util.c:
	* Added a new special built-in command, pwd; it prints the absolute
	  pathname of the current working directory to the standard output.
	  See its function, sbi_pwd(), in util.c .

	* Added documentation for it to the "Special commands" subsection
	  of etsh.1 .

	* Changed the size of the local buf buffer in get_set_cwd() from
	  PATHMAX to PATHMAX + 1 to include a byte for the terminating NUL;
	  sbi_pwd() uses the same size for its local buffer as well.

tests/run:
	* Updated accordingly to generate, and test against, the new logs.

tests/test0[67]_etsh.log:
	* Regenerated the logs for 'make check*'; it was necessary, as cvs
	  added CVS directories when moving the v6shell repository back to
	  cvs, of course.

tests/test0[67]_etsh_nocvsdir.log:
	* Added these 2 new log files; doing so allows 'make check*' to be
	  run and work correctly from both a cvs checked out source tree &
	  a released one; CVS directories get removed when I run the etsh
	  release script.

examples/.etshrc:
	* Changed VISUAL from /usr/local/bin/vim to /usr/local/bin/nvi .

-------------------------------------------------------------------------------
[etsh-5.2.0]:
	* For information about changes I've not included here,
	  please see https://etsh.io/src/etsh-5.2.0-commit.log
	  on the etsh project (v6shell) website.

	* I moved the project from a git repository hosted by GitHub to
	  a fossil repository hosted by me on my own machine(s) at the
	  beginning of June 2018 (the 4th to be exact).

* (all files):
	* Due to the project movement mentioned above, all of the ident strings
	  (for the files that had them) got nullified for some reason.  Not a
	  problem really.  I just created new ones manually.  Now, I just have
	  to remember to update them manually as well.  Possible.

AUTHORS, CHANGES, CHANGES-tsh+:
	* Updated.

README:
	* Updated supported systems:

	  *) Replaced OpenBSD 6.2-current with 6.3-current;

	  *) Replaced NetBSD 8.0_BETA with 8.0_RC1;

	  *) Replaced Fedora 27 with 28;

	  *) Removed Centos and Linpus, since I don't know if they still are;

Makefile:
	* Added DOCFILES macro for project documentation files to be installed
	  into DOCDIR (DESTDOCDIR in its final form).  The default value (now)
	  is: README PROJECT NOTES LICENSE DEDICATIONS AUTHORS.

mkconfig:
	* Updated to use the proper secure idiom for awk printf statements.

*.[1ch]:
	* There are some changes, but I'm too tired to write about them
	  coherently again.

	* Please see https://etsh.io/src/etsh-5.2.0-commit.log instead.

libexec.etsh/history:
	* Made a few changes:

	  1) Update the 2 aliases fd2ncat & ncat to fd2lncat & lncat to keep
	     history in sync with the change in v6scripts from ncat to lncat;
	     the noted v6scripts change was to avoid a name conflict with the
	     `ncat' command that is installed with `nmap'; the alias names in
	     the `history' command file don't conflict, but it's better for me
	     to keep stuff like this in sync when possible;

	  2) Change the SIGPIPE (13) trap from using '' to : ;

	  3) Realign stuff by adding a few tabs after the changes mentioned in
	     1) above;

examples/(.*|*):
	* Made various updates / improvements to the following 4 files:

	  *) .etsh.logout, .etshrc, etsh.etshrc, and etsh.login;

-------------------------------------------------------------------------------
[etsh-5.1.5]:
	* Removed etsh-5.1.5-git.log, as it's on the etsh project (v6shell)
	  website at https://etsh.io/src/etsh-5.1.5-git.log ; please see it
	  for information about changes.

-------------------------------------------------------------------------------
[etsh-5.1.0]:
	* Write up CHANGES*, and release!?.
	  But in the meantime, to not delay release, please see the git
	  commit log at https://etsh.io/src/etsh-5.1.0-git.log ;

-------------------------------------------------------------------------------
[etsh-5.0.2]:
defs.h:
	* Added ALIASMAX with a value of 2.

err.h:
	* Changed ERR_ALIASLOOP to ERR_ALIASTMNA.

etsh.c:
	* In syn3(), removed some blank lines, used ALIASMAX & ERR_ALIASTMNA,
	  and added another alias debugging message.  All for cleanliness.

etsh.1:
	* Changed where tsh(1) appears in `SEE ALSO' so that it is
	  a little more alphabetical, and document the alias changes
	  that are described above.

examples/.etshrc, libexec.etsh/etshdir:
	* Tweaked/Synced .../.etshrc with .../etshdir, changing
	  rmod (for remove OSHDIR) to rmed (for remove ETSHDIR).

-------------------------------------------------------------------------------
[etsh-5.0.1]:
Makefile:
	* We now remove the examples.install temporary directory via
	  the clean target, not the install-exp target.  This allows
	  the user to see the state of this directory if desired after
	  running make ... install-exp .

	* Changed the install-exp commentary so it makes more sense.

-------------------------------------------------------------------------------
[etsh-5.0.0]:
	* Trimmed CHANGES ( see https://etsh.io/src/CHANGES-trim
	  as noted below ).

History/* (new files):
	* Added the original V6 UNIX source code from which this project
	  originated to the tree (as a historical reference).

INSTALL:
	* Updated due to changes in the Makefile and so forth.

	* If you do more than a `./configure ; make ; doas make install'
	  or equivalent, you will want to familiarize yourself with its
	  changes and/or the changes in the Makefile (see below).

Makefile:
	* The changes were primarily string substitutions.  They basically
	  boiled down to...
		'(SH6|sh6)' getting replaced with '(TSH|tsh)'
	  and:
		'(OSH|osh)' getting replaced with '(ETSH|etsh)'
	  ...
	  between the old Makefile and the new Makefile.

README:
	* Added NetBSD 8.0_BETA & OpenBSD 6.2-current to supported systems.

	* Moved osh.[1c] to etsh.[1c], and made all associated
	  changes that this required (e.g., to the Makefile and so forth).
	  See above for more details about the Makefile changes.

	  Strictly speaking, osh (as in old shell) no longer exists.

	* C: Removed (+) from `Broken pipe' termination message in etsh.1,
	     and added `Broken pipe' termination message to tsh.1 and tsh.c
	     for compatibility reasons.  The original V6 Thompson shell did
	     not print this termination message when its process received a
	     SIGPIPE signal.  It was documented but not implemented.  For
	     etsh and tsh though, it is both documented and implemented.

etsh.[1c]:
	* Added : as another action for trap to ignore signals
	  on the shell and user's behalf, and document it as well.  It is
	  preferable to use : instead of the empty string, as '' and/or ""
	  are used for quoting.  No worries, trap '' signal_number ... will
	  continue to ignore the specified signals as it always has.

	* Changed examples/* and tests/* trap invocations to use : .

*.1:
	* Other manual page changes were related to moving sh6 to tsh
	  and osh to etsh as well.

*.[ch]:
	* Other code changes were related to the above
	  Makefile changes / bin name changes as well.

tests/...:
	* Updated regression tests as needed, and regenerated test logs.

-------------------------------------------------------------------------------
[etsh-4.9.0]:
README:
	* Updated supported systems to include NetBSD 7.1.

Makefile:
	* Clarify the comment for the install-exp target.

	* Simplified what the install-doc target installs and where,
	  only the project README into a default DOCDIR that uses
	  the same name that OpenBSD ports/packages does.

osh.c, err.c, defs.h:
	* Increased size of line buffer & word pointer array.

	  Previously, line only allowed a maximum of 2042 characters in each
	  command line.  It now allows 2063 and gives a "Too many characters"
	  error at 2064 and beyond.  For word, instead of allowing a maximum
	  of 1018 arguments/words per command line and giving "Too many args"
	  at 1019 and beyond, it now allows 1026 and errors at 1027 and beyond.

osh.c:
	* Fixed a problem that prevented -n & -v from working as expected
	  when the shell was invoked "without args" [1] and reading command
	  lines from the standard input via a pipe or file.  The correct
	  post-fix behaviour is shown in the following examples:

		% echo \' | etsh -nv
		-n: noexec
		-v: verbose
		'
		etsh: syntax error

		% etsh -nv <file
		-n: noexec
		-v: verbose
		'
		etsh: 1: syntax error

	  ...
	  [1]: "without args" - this means without any shell flags, options,
	       or command-line arguments except for -n and/or -v (or the
	       combination thereof).

osh.c, lib.c, sh.h, err.[ch], defs.h:
	* Had what amounted to being a cleanup fest of sorts...

	  Without going into too much detail, this provided a good opportunity
	  to revisit, check, and fix a couple of problems (not problems) in the
	  atrim() and gtrim() functions.  Many of the cleanups were because of
	  reports by splint(1) only when the shell was in full DEBUG mode.
	  This gave me a chance to change some splint annotations.

if.[1c], util.c:
	* For the if(1) - conditional command of osh/etsh,
	  made == a synonym for =.

	  1) The rationale is simple; 'if s1 == s2 echo equal' evaluates
	     the expression for equality; 'if s1 = s2 echo equal' does
	     too, but it looks like an assignment.

	  2) In effect, this improves if(1) syntax compatibility between
	     osh/etsh and csh/tcsh.

	  3) Tweak some in "History (+)" subsection of osh.1 manual page.

tests/...:
	* Updated regression tests, and regenerate test logs.

-------------------------------------------------------------------------------
[etsh-4.8.0]:
osh.[1c], err.h:
	* Added a new -n (noexec) flag/option to allow syntax checking
	  while not executing command lines.  Notice that this only checks
	  syntax with the shell's input and command-line parsing routines,
	  not including glob, if, goto, and fd2 errors.
	  For example, an if example follows:

	  % etsh -vn -c 'if { test -r "$1" -a -w "$1" echo "rw: $1;"' /dev/null
	  -n: noexec
	  -v: verbose
	  if { test -r "/dev/null" -a -w "/dev/null" echo "rw: /dev/null;"

	  % etsh -v -c 'if { test -r "$1" -a -w "$1" echo "rw: $1;"' /dev/null
	  -v: verbose
	  if { test -r "/dev/null" -a -w "/dev/null" echo "rw: /dev/null;"
	  if: {: } expected

	  % etsh -c 'if { test -r "$1" -a -w "$1" echo "rw: $1;"' /dev/null
	  if: {: } expected

	  % etsh -c 'if { test -r "$1" -a -w "$1" } echo "rw: $1;"' /dev/null
	  rw: /dev/null;

-------------------------------------------------------------------------------
[etsh-4.7.0]:
*:
	* Changed v6shell (dot) org references to etsh (dot) io,
	  and v6shell.org references to etsh.io too, almost a
	  s/v6shell.org/etsh.io/ in effect, but not quite.

osh.[1c]:
	* New feature; user can set the shell command prompt,
	  and the shell will prompt the user with it.  Doing
	  a `set P value' will get you rolling.

	* Reworded the description of how an interactive shell prompts
	  the user for the sake of clarity.

libexec.etsh/SetP:
	* Added this new command file to help users set P on the fly.

-------------------------------------------------------------------------------
[etsh-4.6.0]:
*:
	* Changed all URLs {https://} from: v6shell.org to: etsh.io {/*} .

defs.h, osh.1, osh.c, sh.h:
	* Added $g as a new etsh / osh parameter / variable.
	  Like $u is the effective user name of the current user,
	  $g is the effective group name.

if.1, util.c:
	* Added two new primaries, -n to test for non-zero length string &
	  -z to test for zero length string, like the same primaries found
	  in test(1).

tests/...:
	* Moved (or renamed) tests/run.osh to tests/run, made some needed
	  changes due to the new name, and regenerated the test logs.

examples/...:
	* ready_rc_files - new sh(1) script to preprocess the example rc files
	  for the install-exp Makefile target.

	* Made many changes revolving around the idea of simplification.

README:
	* CentOS 7.3 is supported.

INSTALL:
	* Made many necessary updates, nothing earth-shattering though.

mkconfig:
	* Renamed the CONFIG_UBUNTU_16 macro to CONFIG_BROKEN.  The reason
	  is simple.  Not just Ubuntu 16.xx and 17.xx are broken.  Debian 9.x
	  is too, which is extremely troubling to me.

	  NOTE: I use the term broken, not to offend, but simply to state that
		I, or sh6.c and goto.c more specifically, do not support them.

	  Thus, I am left with the following open question(s):

		Is the sh6 and goto problem caused by a problem in sh6.c
		and goto.c, by systemd, by gcc-6.3.0, or by something else
		that is unrelated?

		Finally, does it make any sense at all that particular
		GNU/Linux operating systems are now unable to run the
		original UNIX shell and have it successfully perform
		one of its most basic functions, executing goto in a
		command file (aka script) in order to jump to a new
		offset via lseek(2) and then allow sh6 to continue
		on its merry way as it always has?

	  I welcome all feedback on this topic.  Thank you.

-------------------------------------------------------------------------------
[etsh-4.5.1]:
osh.c:
	* Changed OSHDIR to ETSHDIR.  ETSHDIR was documented in osh.1,
	  but I forgot to change the code.  This resulted in a broken /
	  nonfunctional etshdir script.

-------------------------------------------------------------------------------
[etsh-4.5.0]:
	* Building on the changes found in osh-4.4.0 (see below),
	  all changes in the tree transition this project from using
	  osh and sh6 to using etsh and tsh for the default binary names
	  of the shells upon installation instead.

	  So then...  What's in a name anyway??  Good question!

-------------------------------------------------------------------------------
[osh-4.4.0]:
	* New files: config.rc, configure, and mkconfig.tmp

	  These help work around a binary name conflict that need not exist.

	  It was a conflict between the osh and .oshrc files, found in the
	  Osh Project [1], and files with the same names, found in the OMake
	  build system [2].  Fixed the problem by moving osh and its .oshrc
	  to etsh (enhanced Thompson shell) and .etshrc I did.  The benefit
	  is that omake and osh can now be installed side by side on the
	  same machine without conflict.

	  etsh and .etshrc are simply the new defaults going forward; you can
	  always change config.rc or do `./configure osh sh6' if you prefer to
	  install osh and sh6 with their original names.

	  1. https://v6shell.org/
	  2.  http://omake.metaprl.org/

Makefile.config:
	* Bumped minor from 3 to 4 due to adding a ./configure step to the
	  build and install instructions.

Makefile:
	* Included macros from mkconfig.tmp to change the osh and sh6
	  binary names and to generate the manual pages as needed for
	  build and install.

mkconfig, osh.c:
	* The FILE_DOT_OSHRC macro is now defined via mkconfig and found
	  in config.h, not osh.c, after configure is run.

*.1:
	* Changed osh and sh6 references to match their binary names
	  set in *.1.out by configure.

examples/etc.osh.oshrc:
	* Added comments for clarity, and improved PATH handling.

-------------------------------------------------------------------------------
[osh-4.3.2]:
Makefile:
	* Removed the -Os optimization flag.  This should allow shells/osh
	  in OpenBSD Ports to not need a patch in order to compile with the
	  -O2 flag by default.

	* Changed -fstack-protector to -fstack-protector-strong.  This option
	  was always commented out as it, -fstack-protector, has been enabled
	  by default in OpenBSD's gcc for ages.  With OpenBSD's newly imported
	  clang, version 4.0.0 (tags/RELEASE_400/final) (based on LLVM 4.0.0),
	  the equivalent of -fstack-protector-strong is enabled by default.
	  This option is still commented out by default; it can cause problem
	  elsewhere (e.g., cc: error: unrecognized command line option).
	  Elsewhere, meaning not OpenBSD, the reference operating system
	  for this project.

-------------------------------------------------------------------------------
[osh-4.3.1]:
	* Changed http:// to https:// where appropriate, as v6shell.org
	  is now served via HTTPS (SSL/TLS) thanks to Let's Encrypt.

osh.c, sh.h:
	* Removed the `version' special built-in command; it is redundant
	  after adding `osh -VV' in osh-4.3.0.

osh.c, err.h:
	* Added an osh usage error for the `-V' and `-VV' options.
	  The text of the error message is identical to the SYNOPSIS
	  both in the osh(1) manual and in the osh.c main() comment.

err.c:
	* Increased the length of FMTMAX to allow for OSH_USAGE.

osh.1:
	* Removed documentation for the `version' special built-in command.

	* Improved the descriptions for the `-V' and `-VV' options,
	  and moved them both to the end of the option list.

*.1, libexec.osh/history.help:
	* s/General Commands/General Commands Manual/

examples/etc.osh.oshrc:
	* Updated for osh-4.3.1.

examples/dot.oshrc:
	* Removed the v and v1 aliases, and replaced them with V and VV.

	* Added a jobs alias to remind us that osh is not a job-control shell.

-------------------------------------------------------------------------------
[osh-4.3.0]:
	* Reorganized files: examples/*

	* New files: lib.[hc] (osh library routines)

	* New directory & files: libexec.osh/* (osh support scripts & files)

	* Changed LIBEXECDIR layout to support both sh6 & osh.  The
	  sh6(1) external utilities moved into a new sh6 subdirectory.  A new
	  osh subdirectory exists for osh support scripts & files (see above);
	  these files came (and will be removed) from the V6Scripts Collection.

INSTALL:
	* Synced with Makefile.

README:
	* Updated supported systems: Debian 8.7 (jessie), (Net|Open)BSD, OS X.

Makefile:
	* Removed "share/" from the default MANDIR.

	* Added check-(osh|oshall) & check-(sh6|sh6all) targets for consistency.

Makefile, tests/run.osh:
	* Fixed `make check' so it doesn't require doing `make install' first.

tests/bin/now:
	* Changed this script from sh6 to sh so the regression tests
	  can pass even if/when sh6 isn't installed on the system.

mkconfig, sh6.c, goto.c:
	* Disabled sh6 compilation on Ubuntu 16.(04|10).

pexec.c:
	* Set esh_argv to NULL after free(3) for consistency.

osh.c, lib.[hc]:
	* Moved osh library routines from osh.c to lib.[hc].

osh.[1c]:
	* Added Version [-V | -VV] command-line flags / options.

	* Added & documented a new special built-in command, `verbose'.
	  It works like / with the `-v' command-line flag / option,
	  allowing the user to make osh verbose or not and to better
	  control on-the-fly debugging.

osh.1:
	* Added & updated [Hh]istory* documentation as needed.

*.1:
	* Did some manual page cleanup.  Notice that these legacy manuals
	  are written in man(7) format, not mdoc(7)..  Perhaps someday...

-------------------------------------------------------------------------------
[osh-4.2.1 - osh-030811]:
	* Changes for these releases are at https://etsh.io/src/CHANGES-trim .

-------------------------------------------------------------------------------
[osh-030730]:
	* This is the initial maintenance release by Jeffrey Allen Neitzel.

osh.c:
	* Added '#ifdef CLONE' so the desired command search behavior
	  can be chosen at build time.

	* Fixed segfault when command line contains only whitespace.
	  We simply ignore this situation now.

	* Fixed segfault when redirections are used w/o a command.
	  This will now result in a syntax error.

	* Fixed segfault when redirecting a command w/o a filename.
	  This will now result in a syntax error.

	* Fixed a small memory leak when using redirection arguments.

	* Made osh correctly detect when a command line contains
	  too many arguments.  This allows command lines to have a
	  maximum of 255 arguments.

if.c:
	* Added '#ifdef CLONE' to make if(1) search for external commands
	  the same way osh(1) does.

goto.c:
	* Fixed a bug where goto should produce a 'label not found' error
	  but would instead go into an infinite loop at the end of the
	  command file.  We now correctly detect EOF and successfully
	  report 'label not found' errors.

-------------------------------------------------------------------------------
[osh-020214]:
	* All releases of osh prior to and including 020214 were authored
	  and maintained by Gunnar Ritter.

Jeffrey Allen Neitzel						2019/03/28

@(#)$Id: CHANGES,v 1.18.2.1 2019/03/27 06:08:05 jneitzel Exp $
