Skip to content

Releases: magicant/yash

Version 2.49

21 Sep 15:22
Compare
Choose a tag to compare

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

22 Dec 14:27
Compare
Choose a tag to compare

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

10 Apr 15:00
Compare
Choose a tag to compare

This version introduces the "err-return" option and fixes some bugs.

Version 2.46

28 Oct 14:20
Compare
Choose a tag to compare

This is a maintenance release.

Version 2.45

05 Jul 14:02
Compare
Choose a tag to compare

This is a maintenance release.

Version 2.44

18 Jan 14:58
Compare
Choose a tag to compare

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

22 Sep 08:36
Compare
Choose a tag to compare

Yet another shell, version 2.43.

This version includes minor completion script updates.

Version 2.42

26 Aug 15:01
Compare
Choose a tag to compare

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

20 Mar 07:18
Compare
Choose a tag to compare

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