etsh-4.9.0


Monday, 2017/11/27, 14:30 UTC By V6Shell (Jeff)

Release details

The latest official release of etsh (ET the Extraterrestrial Shell) is available via:

I welcome all feedback; you’ll find my email address in the README and other files. Please drop me a line if you’d like to help in some way.. Notice that the etsh-4.9.0 release is available on GitHub as well…

CHANGES

[etsh-4.9.0] (latest):
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.

CHANGES6

[etsh-4.9.0] (latest):
sh6.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.

glob.c, sh6.c, sh.h, err.h, 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).  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]:
	* For the if(1) - conditional command of sh6/tsh,
	  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
	     sh6/tsh and csh/tcsh.

Conclusion

You could say that adding == as a synonym for = is a new feature of sorts. More than anything though, it simply fixes a longstanding annoyance I’ve always had when I see = used to represent a test for equality instead of an assignment. So, while otherwise cleaning the tree, I figured why not fix it, making it correct (from the perspective of both the C programming language and the C shell). ;^)

For the curious, it may also help to open the door more widely for historical shell explorations perhaps.

Thanks & Enjoy & Cheers! =^)


comments powered by Disqus
Copyright © 2014-2018 V6Shell Blog.
All rights reserved. Contact


Theme: Midnight (a modified version)