Releases: magicant/yash
Version 2.49
Yet another shell (yash), version 2.49.
This version is a maintenance release.
- Added:
--for-local
option. - Changed: The
--no-unset
option now rejects unset variables not only in parameter expansion but also in arithmetic expansion. - Fixed: Expansion of
""$*
,""$@
,$*""
, and$@""
now correctly yields an empty string rather than nothing when there are no positional parameters. - Fixed: The
$RANDOM
variable was expanding to a value larger than 32767 on some systems. - Fixed: The
\e
escape sequence was not working in the "echo" built-in. - Fixed: When a last command is a subshell, the parent shell's jobs were not being cleared when entering the subshell.
- Fixed: The job status was not being updated correctly if a process ID was reused by another process before the previous process was removed from the job list.
- Fixed: The "typeset" built-in now prints functions that contain a simple command whose command name is a keyword in a format that can successfully re-parsed by the shell.
- Updated completion scripts:
- Fixed: Remote branch names are now correctly completed for the argument to Git remote/fetch/pull/push commands.
- Fixed: Local pathname operands are now correctly completed for the rsync command.
Version 2.48
Yet another shell (yash), version 2.48.
This version introduces the [[ ... ]]
command syntax and the local
built-in.
Various fixes and improvements have been applied as well.
- Added: The double-bracket command (the
[[ ... ]]
syntax) - Added: The
local
built-in - Added: The '--le-predict-empty' option
- Added: The prompt string now can be defined with the
$YASH_PS...
variables. - Changed: Command line prediction no longer shows suggestion before you start typing a command. Use the new '--le-predict-empty' option to restore the previous behavior.
- Changed: The default value of
$PS1
has been changed. - Fixed: The line number is now correctly counted in arithmetic expansions that contain newlines.
- Fixed: Subshells in the EXIT trap were unexpectedly exiting with the exit status of the last command executed before the EXIT trap on the main shell.
- Fixed: A new EXIT trap that was set in a subshell in the EXIT trap was unexpectedly being ignored.
- Fixed: The
typeset
built-in was crashing when printing a function that contains a here-document that contains a command substitution that contains more than one command. - Fixed: The
typeset
built-in was forgetting to print here-document contents when printing a function that contains a process substitution (or redirection) that contains here-documents. - Fixed: The variable name token in the for command and the word following a here-document redirection operator are now correctly parsed even when it resulted from an alias substitution whose value begins with a blank.
- Fixed: The
do
keyword in a for loop is no longer subject to alias substitution. - Fixed: An invalid semicolon that appears at the beginning of a line as a result of alias substitution in a for loop is now correctly rejected.
- Changed: For more strict POSIXly-correctness, some syntactic constructions are now regarded as an error in the POSIXly-correct mode:
- An IO_NUMBER token cannot be the operand of a redirection.
- Keywords immediately following a redirection are not recognized.
- Updated the sample initialization script (yashrc):
- Changed: The prompt strings are now defined with the
$YASH_PS...
variables. - Fixed: Window title update should now work on more terminals.
- Fixed: Any predefined handlers for SIGTSTP, SIGTTIN, and SIGTTOU are now cancelled so that jobs can be suspended properly.
- Changed: The prompt strings are now defined with the
- Updated completion scripts:
- Fixed: git: pathnames are now correctly completed with the latest Git.
- Added: git-grep: support new options in Git 2.19.1.
- Added: git-stash: support new options in Git 2.18.0.
- Added: ping: support some common options
- Changed: ssh, ssh-keygen: support new options in OpenSSH 7.7.
Version 2.47
This version introduces the "err-return" option and fixes some bugs.
Version 2.46
This is a maintenance release.
Version 2.45
This is a maintenance release.
Version 2.44
This version features command line prediction, which allows you to re-type a command in an instant.
A new initialization script is loaded by default so that prediction works without the need for beginners to prepare a initialization script for themselves. (If you already have your own ~/.yashrc file, the default initialization script is not automatically loaded. See https://github.com/magicant/yash/blob/trunk/share/initialization/default for instructions)
Many fixes have been applied and the shell now fully supports POSIX.1-2008 Technical Corrigendum 2 (2016).
Version 2.43
Yet another shell, version 2.43.
This version includes minor completion script updates.
Version 2.42
Yet another shell, version 2.42.
This is a maintenance release of yash with a few features.
Change log:
- + '--pipefail' option.
- + New completion script for: carthage, dnf, git-rev-parse, tree, watch
- + Updated completion script for: cd, git, git-bisect, git-rev-list (Git 2.9.2).
- = Yash now supports the 2013 edition of POSIX.1-2008.
- = Unclosed here-documents are now always rejected.
- = A job-control shell now ignores SIGTTIN and SIGTTOU by default.
- = Line-editing can now be interrupted by SIGINT.
- = The "-o errexit" option is now applied to redirection errors on compound commands and expansion errors in the for and case commands.
- * In backquoted command substitutions that occur in double quotes, backslashes that escape a double quote are now handled before the containing command is parsed.
Legend:
- +: new feature
- =: specification change
- *: bug fix
Version 2.41
Yet another shell, version 2.41.
This version includes many bug fixes with some new features.
Change log:
- + '--emptylastfield' option.
- + New option for the "shift" built-in: -A
- + The "shift" built-in now accepts negative counts.
- + New completion script for: git-notes, git-reflog, git-worktree
- = The non-interactive shell now exits on an assignment error in a simple command without a command name.
- = The exit status is now non-zero when a for loop has been interrupted because of an read-only variable.
- = When there is no positional parameter, the word """$@" is now expanded to an empty word, producing the same result as "$@""".
- = The behavior of field splitting has been modified to match the intended interpretation of POSIX: If field splitting yields more than one field and the last field is empty, the last field is now removed.
- = The "read" built-in now removes leading whitespaces when assigning the last input value to the variable.
- = The first character of $IFS is now always used as a separator when concatenating positional parameters. Previously, $IFS was ignored in some corner cases.
- * Unclosed process redirections are now detected as syntax error.
- * When $ECHO_STYLE was GNU or ZSH, the "echo" built-in was incorrectly ignoring single hyphen operands.
- * The "typeset" built-in was crashing when used with a temporary assignment to a variable not specified in the built-in operands.
- * In the "typeset" built-in, the -r option was not effective when printing functions.
- * The "typeset" built-in now detects combination of the -f and -g options as an error.
- * The "fg" and "bg" built-ins no longer try to resume a non-job- controlled job when given no operand.
- * In range brace expansion, integers were not always parsed correctly.
- * The "fc" built-in was not handling the history range correctly when the range was specified with an unused entry number.
- * The "fc" built-in was incorrectly rejecting the syntax of the form "fc -s foo=bar n".
- * The interactive shell was unexpectedly forgetting the exit status of background jobs when reporting the job status.
- * Fixed potential undefined behavior during reading a history file.
- * Parameter expansions of the form ${foo/bar/baz} are now rejected in the POSIXly-correct mode, as documented in the manual.
- * Single- or double-quoted empty words were incorrectly being removed in field splitting.
- * Backslash escapes are now recognized in parameter indexes.
Legend:
- +: new feature
- =: specification change
- *: bug fix