Skip to content

gnash 1.3.0

Choose a tag to compare

@brianjfox brianjfox released this 06 Jul 14:11
Immutable release. Only release title and notes can be modified.

gnash 1.3.0

A feature release focused on deepening the shell personalities.

Highlights

  • readline vi editing modeset -o vi now provides a working vi command mode: motions, d/c/y operators with counts, f/t find, x/r/~/p, undo, and insert-mode entry.
  • personality / emulate builtin — switch the shell's personality at runtime, with syntax identical to zsh's emulate:
    • personality zsh switches live; personality zsh -c '…' runs a command under a personality then restores it; personality -L zsh is local to the enclosing function.
    • emulate is the zsh-mode alias.
  • True-to-zsh parameter expansion (under --personality=zsh):
    • No word-splitting of unquoted $var (zsh's SH_WORD_SPLIT off), while command substitution still splits.
    • Bare $array expands to all elements.
    • 1-based array indexing with negative indices and ranges ($a[1], $a[-1], $a[2,4]), and brace-free subscripts / $#a.
    • ${(flags)…} expansion flags (join j/F, split s/f, sort o/O/n, unique u, case L/U/C, keys/values k/v), ${=name} forced splitting, and scalar character/substring indexing.
    • Flat key/value associative assignment h=(k1 v1 k2 v2) (also fixes this for the bash personality).
  • csh/tcsh word-initial tilde expansionecho ~ and ~user now expand.

Install

brew tap brianjfox/tools && brew install gnash

Or download the universal (arm64 + x86_64) macOS tarball below.