Skip to content

Version 2.41

Compare
Choose a tag to compare
@magicant magicant released this 20 Mar 07:18
· 741 commits to trunk since this release

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