Commit graph

1146 commits

Author SHA1 Message Date
jperkin
18e706a470 bash: Add --enable-function-import.
This is required to make 'export -f' work, which is enabled by default on
other OS I checked.  While here sort the list of enabled options so that
it's easier to compare against the list of available options, as there are
still a number that we do not enable, and remove the bogus comment.

Bump PKGREVISION.
2021-06-16 12:30:04 +00:00
nia
6885fecc06 dash: update to 0.5.11.4. enable libedit support.
Andrej Shadura (1):
      builtin: Default to mktemp, not tempfile

Antonio Ospite (6):
      eval: make traps work when "set -e" is enabled
      shell: Update configure.ac with suggestions from autoupdate
      shell: Enable automake silent rules
      eval: Silence compiler warning about missing parentheses
      shell: Fix clang warnings about "string plus integer"
      output: Fix clang warnings about GNU old-style field designator

Denys Vlasenko (3):
      jobs: Rename DOWAIT_NORMAL to DOWAIT_NONBLOCK
      var: Remove poplocalvars() always-zero argument, make it static
      expand: Remove unused expandmeta() flag parameter

Fangrui Song (1):
      shell: delete AC_PROG_YACC

Gerrit Pape (2):
      eval: Report I/O error on stdout
      main: Print \n upon EOF (CTRL-D) when run interactively

Herbert Xu (57):
      exec: Return 126 on most errors in shellexec
      main: Only set savestatus in exitcmd
      mkinit: Split reset into exitreset and reset
      jobs: Only clear gotsigchld when waiting for everything
      parser: Save/restore here-documents in command substitution
      var: Set IFS to fixed value at start time
      output: Fix fmtstr return value
      jobs: Replace some uses of fmtstr with stpcpy/stpncpy
      memalloc: Add growstackto helper
      exec: Do not allocate stack string in padvance
      builtin: Mark more regular built-ins
      exec: Stricter pathopt parsing
      exec: Never rehash regular built-ins
      eval: Add assignment built-in support again
      eval: Fail immediately with redirections errors for simple command
      eval: Replace with listsetvar with mklocal/setvareq
      eval: Add vfork support
      builtin: Use test_access from NetBSD when faccessat is unavailable
      expand: Use HOME in tilde expansion when it is empty
      expand: Merge syntax/quotes in memtodest with flags
      expand: Fix skipping of command substitution when trimming in evalvar
      expand: Do not reprocess data when expanding words
      eval: Always set localvar_stop
      memalloc: Avoid looping in growstackto
      expand: Ensure result is escaped in cvtnum
      expand: Fix multiple issues with EXP_DISCARD in evalvar
      eval: Use the correct expansion mode for fd redirection
      expand: Eat closing brace for length parameter expansion
      parser: Do not push token back before parseheredoc
      eval: Use sh_warnx instead of warnx
      system: Disable glibc warning on sigsetmask
      eval: avoid leaking memory associated with redirections
      eval: Only restore exit status on exit/return
      redir: Handle nested exec within REALLY_CLOSED redirection
      options: Do not set commandname in procargs
      expand: Fix double-decrement in argstr
      eval: Reset handler when entering a subshell
      parser: Fix old-style command substitution here-document crash
      parser: Only accept single-digit parameter expansion outside of braces
      redir: Clear saved redirections in subshell
      builtin: Fix seconds part of times(1)
      jobs: Fix infinite loop in waitproc
      parser: Fix handling of empty aliases
      parser: Catch errors in expandstr
      parser: Fix alias expansion after heredoc or newlines
      shell: Always use explicit large file API
      parser: Save and restore heredoclist in expandstr
      parser: Fix double-backslash nl in old-style command sub
      Release 0.5.11.
      jobs: Fix waitcmd busy loop
      Release 0.5.11.1.
      shell: Group readdir64/dirent64 with open64
      Release 0.5.11.2.
      jobs: Only block in waitcmd on first run
      Release 0.5.11.3.
      eval: Do not cache value of eflag in evaltree
      Release 0.5.11.4.

Jeroen Roovers (1):
      input: Fix compiling against libedit with -fno-common

Martijn Dekker (1):
      shell: update .gitignore

Martin Michlmayr (1):
      shell: Fix typos

Michael Greenberg (1):
      shell: mktokens relative TMPDIR

Nikolai Merinov (1):
      expand: Fix trailing newlines processing in backquote expanding

Peter Korsgaard (1):
      shell: Don't include config.h for native helpers

esr@thyrsus.com (1):
      man: Problems in dash.1, sh.1, sh.distrib.1
2021-06-12 08:48:03 +00:00
wiz
5e5e54e289 zsh-autosuggestions: update to 0.7.0.
## v0.7.0
- Enable asynchronous mode by default (#498)
- No longer wrap user widgets starting with `autosuggest-` prefix (#496)
- Fix a bug wrapping widgets that modify the buffer (#541)
2021-06-10 10:16:33 +00:00
adam
3900d3c66c xonsh: py-prompt_toolkit has moved 2021-06-10 07:34:52 +00:00
wiz
6eae1297d5 *: recursive bump for perl 5.34 2021-05-24 19:49:01 +00:00
kre
1a3d935311 Add a patch, obtained from upstream, which fixes a bug with "wait -n pid"
if that wait is interrupted by a trapped signal.   A later wait for the
same pid would return status 127 (process not found) even though the
process was still running (and still in bash's jobs table).

This was a bug introduced in bash 5.1 (does not occur in 5.0 or earlier).

This patch should be removed when bash is next updated (to 5.2 or beyond)
(the change will be in the bash codebase) or if a patch is released from
upstream to fix this problem.

PGKREVISION++

{ This change is not significant enough to warrant an entry in doc/CHANGES. }
2021-05-17 22:10:43 +00:00
kre
e619017f3c Update shells/bash to 5.1 patch 8.
The new patches:

Patch 5: Fix memory leaks when using assigning arrays using ...
Patch 6: Use correct process group for command substitution processes
Patch 7: Fix readline version checking in inputrc files
Patch 8: Clean up FIFOs used for process substitutions properly
2021-05-05 11:02:59 +00:00
pho
4d74cf7192 *: Bump PKGREVISION for ghc-9.0.1 2021-05-03 19:00:52 +00:00
schmonz
aff3dabdd1 Update to 6.9. From the changelog:
- This is oksh-6.9, matching ksh(1) from OpenBSD 6.9 with portability
  additions.

From the OpenBSD 6.9 changelog:

- Fixed ksh(1) redrawing of a multiline PS1 prompt in vi mode and added
  support for ^R (redraw) in insert mode.
2021-05-01 07:40:00 +00:00
micha
1aa3e09a6e shells/pbosh: Update to 20210421
Changelog from AN-2021-01-05:
- Bourne Shell: When we introduced ${.sh.path} in February 2020, we did
  use the "new" and POSIX-only function realpath() that is not present
  on e.g. Ultrix. We now use abspath() from libschily if realpath() is
  missing.

  Note that abspath() is better than realpath(), as it supports path
  names longer than PATH_MAX, but since ${.sh.path} is only used to
  return the absolute pathname for the current shell binary, this is
  not a problem and on the other side, we can avoid linking against
  libschily this way, so shell scripting with lazy linking is faster
  since less libraries need to be linked at startup.

Changelog from AN-2021-04-21:
- Bourne Shell: gmatch.c: The new version no longer aborts with an
  illegal multi byte sequence as "no match". As a result, the "*"
  now again matches any filename - even if the filename contains an
  illegal multi-byte sequence. This is a problem that did not exist
  on the original Bourne Shell from Solaris that used gmatch() from
  the AT&T libgen, but since we added our private portable gmatch.c.
  to get better portability.

  Thanks to Stephane Chazelas for reporting the problem related to
  multi-byte to wide character conversion and illegal multi byte
  sequences in the case statement and filesystem globbing.

- Bourne Shell: word.c::readwc() no longer uses prwc() but rather
  a loop on the original multi-byte stream to print the "set -v"
  output. This permits to output the original input data in any
  case instead of stumbling over illegal multi-byte sequences.

  Thanks to Stephane Chazelas for reporting the general problem
  with input byte sequences that cause an EILSEQ error.

- Bourne Shell: struct fileblk now remembers lastwc and the related
  input string as fileblk->mbs[] in order to avoid incorrect
  conversions via wctomb() in case that the input wide char was a
  result from an EILSEQ conversion and thus has no related multi
  byte string.

  An important visible result of that change is that input read
  by the builtin command read(1) correctly forwards input that
  caused an EILSEQ error.

  It could not be verified whether this covers all possible similar
  cases, but it is at least very close to a completely correct
  solution.

  Thanks to Stephane Chazelas for reporting the general problem
  with input byte sequences that cause an EILSEQ error.

- Bourne Shell: xec.c: Cstyle changes

- Bourne Shell: the Copyright messages now mention 2021
2021-04-26 10:52:42 +00:00
micha
9330c17ad0 shells/bosh: Update to 20210421
Changelog from AN-2021-01-05:
- Bourne Shell: When we introduced ${.sh.path} in February 2020, we did
  use the "new" and POSIX-only function realpath() that is not present
  on e.g. Ultrix. We now use abspath() from libschily if realpath() is
  missing.

  Note that abspath() is better than realpath(), as it supports path
  names longer than PATH_MAX, but since ${.sh.path} is only used to
  return the absolute pathname for the current shell binary, this is
  not a problem and on the other side, we can avoid linking against
  libschily this way, so shell scripting with lazy linking is faster
  since less libraries need to be linked at startup.

Changelog from AN-2021-04-21:
- Bourne Shell: gmatch.c: The new version no longer aborts with an
  illegal multi byte sequence as "no match". As a result, the "*"
  now again matches any filename - even if the filename contains an
  illegal multi-byte sequence. This is a problem that did not exist
  on the original Bourne Shell from Solaris that used gmatch() from
  the AT&T libgen, but since we added our private portable gmatch.c.
  to get better portability.

  Thanks to Stephane Chazelas for reporting the problem related to
  multi-byte to wide character conversion and illegal multi byte
  sequences in the case statement and filesystem globbing.

- Bourne Shell: word.c::readwc() no longer uses prwc() but rather
  a loop on the original multi-byte stream to print the "set -v"
  output. This permits to output the original input data in any
  case instead of stumbling over illegal multi-byte sequences.

  Thanks to Stephane Chazelas for reporting the general problem
  with input byte sequences that cause an EILSEQ error.

- Bourne Shell: struct fileblk now remembers lastwc and the related
  input string as fileblk->mbs[] in order to avoid incorrect
  conversions via wctomb() in case that the input wide char was a
  result from an EILSEQ conversion and thus has no related multi
  byte string.

  An important visible result of that change is that input read
  by the builtin command read(1) correctly forwards input that
  caused an EILSEQ error.

  It could not be verified whether this covers all possible similar
  cases, but it is at least very close to a completely correct
  solution.

  Thanks to Stephane Chazelas for reporting the general problem
  with input byte sequences that cause an EILSEQ error.

- Bourne Shell: xec.c: Cstyle changes

- Bourne Shell: the Copyright messages now mention 2021
2021-04-26 10:45:39 +00:00
pho
c2d627ba99 Update to ShellCheck-0.7.2
No change logs are provided by the upstream.
2021-04-24 13:51:23 +00:00
nia
4f1bbc2443 bash: add sbin to default PATH 2021-04-23 09:43:30 +00:00
nia
9f30189cf8 fish: update to 3.2.2
fish 3.2.2 (released April 7, 2021)
====================================

This release of fish fixes a number of additional issues identified in the fish 3.2 series:

- The command-not-found handler used suggestions from ``pacman`` on Arch Linux, but this caused major slowdowns on some systems and has been disabled (:issue:`7841`).
- fish will no longer hang on exit if another process is in the foreground on macOS (:issue:`7901`).
- Certain programs (such as ``lazygit``) could create situations where fish would not receive keystrokes correctly, but it is now more robust in these situations (:issue:`7853`).
- Arguments longer than 1024 characters no longer trigger excessive CPU usage on macOS (:issue:`7837`).
- fish builds correctly on macOS when using new versions of Xcode (:issue:`7838`).
- Completions for ``aura`` (:issue:`7865`) and ``tshark`` (:issue:`7858`) should no longer produce errors.
- Background jobs no longer interfere with syntax highlighting (a regression introduced in fish 3.2.1, :issue:`7842`).

If you are upgrading from version 3.1.2 or before, please also review the release notes for 3.2.1 and 3.2.0 (included below).
2021-04-08 10:46:52 +00:00
nia
b0eb834277 fish: Update to 3.2.1
fish 3.2.1 (released March 18, 2021)
====================================

This release of fish fixes the following problems identified in fish 3.2.0:

-  Commands in key bindings are run with fish's internal terminal modes, instead of the terminal modes typically used for commands. This fixes a bug introduced in 3.2.0, where text would unexpectedly appear on the terminal, especially when pasting (:issue:`7770`).
-  Prompts which use the internal ``__fish_print_pipestatus`` function will display correctly rather than carrying certain modifiers (such as bold) further than intended (:issue:`7771`).
-  Redirections to internal file descriptors is allowed again, reversing the changes in 3.2.0. This fixes a problem with Midnight Commander (:issue:`7769`).
-  Universal variables should be fully reliable regardless of operating system again (:issue:`7774`).
-  ``fish_git_prompt`` no longer causes screen flickering in certain terminals (:issue:`7775`).
-  ``fish_add_path`` manipulates the ``fish_user_paths`` variable correctly when moving multiple paths (:issue:`7776`).
-  Pasting with a multi-line command no longer causes a ``__fish_tokenizer_state`` error (:issue:`7782`).
-  ``psub`` inside event handlers cleans up temporary files properly (:issue:`7792`).
-  Event handlers declared with ``--on-job-exit $fish_pid`` no longer run constantly (:issue:`7721`), although these functions should use ``--on-event fish_exit`` instead.
-  Changing terminal modes inside ``config.fish`` works (:issue:`7783`).
-  ``set_color --print-colors`` no longer prints all colors in bold (:issue:`7805`)
-  Completing commands starting with a ``-`` no longer prints an error (:issue:`7809`).
-  Running ``fish_command_not_found`` directly no longer produces an error on macOS or other OSes which do not have a handler available (:issue:`7777`).
-  The new ``type`` builtin now has the (deprecated) ``--quiet`` long form of ``-q`` (:issue:`7766`).

It also includes some small enhancements:

-  ``help`` and ``fish_config`` work correctly when fish is running in a Chrome OS Crostini Linux VM (:issue:`7789`).
-  The history file can be made a symbolic link without it being overwritten (:issue:`7754`), matching a similar improvement for the universal variable file in 3.2.0.
-  An unhelpful error ("access: No error"), seen on Cygwin, is no longer produced (:issue:`7785`).
-  Improvements to the ``rsync`` completions (:issue:`7763`), some completion descriptions (:issue:`7788`), and completions that use IP address (:issue:`7787`).
-  Improvements to the appearance of ``fish_config`` (:issue:`7811`).

If you are upgrading from version 3.1.2 or before, please also review
the release notes for 3.2.0 (included below).
2021-03-19 10:19:35 +00:00
jperkin
571a1bebc5 bash-completion: Update to version 2.11.
pkgsrc changes:

  * Stop pretending that share/bash-completion.d is supported, it isn't.
    Packages that are installing files there should install them into
    share/bash-completion/completions instead.

  * Stop installing profile.d script, only really makes sense under /etc,
    and it wasn't correctly handled as a configuration file anyway.

bash-completion (2.11)

  [ Alexander Meshcheryakov ]
  * _known_hosts_real: check that ruptime is present before calling
    (#390)

  [ Andrew Gaul ]
  * totem: reuse kaffeine completions (#372)

  [ Damien Nadé ]
  * __reassemble_comp_words_by_ref: avoid triggering nounset on
    indirect references

  [ Felix Lechner ]
  * lintian: complete paths for Ubuntu's .ddeb and Debian's buildinfo
    files (#397)

  [ Felix Yan ]
  * ip: complete route add table arg
  * ip: style fixes similar to ip-netns
  * ip: add more completions for ip-rule
  * ip: add support for netns (#391)
  * ip: improve completion of route subcommands (#326)

  [ Hans-Christoph Steiner ]
  * unzip, zipinfo: complete *.aar (#428)

  [ Jakub Jelen ]
  * ssh: add new -Q completions in OpenSSH 8.2p1 (#400)

  [ Kevin Locke ]
  * python: support executables with minor version (#389)

  [ Michal Suchánek ]
  * insmod, modinfo, modprobe: support xz compressed modules (#401)

  [ Phan Duc Nhat Minh ]
  * tshark: complete -r arg with all filenames (#422)

  [ Sebastian Jakubiak ]
  * openssl: update -starttls completions (#403)
  * _filedir*: update link to bug-bash discussion on -X (#404)
  * test/python: add testcase for submodule completion

  [ Ville Skyttä ]
  * Release 2.11
  * extra/make-changelog: check and output usage message
  * pre-commit: anchor exclude patterns
  * pytest: rewrite in bash, support toplevel funcs, avoid nondef ones
    and classes
  * test/xfreerdp: skip --help failure cases
  * test/tshark: fix multiple -O completion with no http2 support
  * test/ant: avoid complete-ant-cmd.pl interference with ANT_ARGS
  * _xinetd_services: avoid nounset error on bash 4.2
  * pre-commit: upgrade isort to 5.1.4
  * pre-commit: upgrade pyupgrade to 2.7.2
  * pre-commit: add pyupgrade, run it
  * test/ant: gitignore all target cache files
  * _known_hosts_real: exclude Host negations
  * pre-commit: upgrade isort to 5.0.7
  * pre-commit: update shellcheck-py URL
  * test/inputrc: do not set print-completions-horizontally
  * test/inputrc: comment typo fix
  * pytest: complete async test class methods
  * __get_cword_at_cursor_by_ref: fix regression on bash 4.2
  * test: upgrade markdownlint-cli to 0.23.2
  * _known_hosts_real: avoid errors in nounset mode on Ubuntu 14 and
    16
  * _longopt: exclude too many dashes, allow underscores, require ends
    with alnum
  * _included_ssh_config_files: support globs
  * _known_hosts_real: prevent unwanted pathname expansion on host
    entries
  * test/shfmt: upgrade to 3.1.2, reformat with it
  * test/_known_hosts_real: add explicit no globbing test case
  * test: upgrade mypy to 0.782
  * CONTRIBUTING.md: add posix and nounset mode item
  * test: upgrade mypy to 0.781
  * test: upgrade perltidy to 20200619
  * _known_hosts_real: fix completion of Host entries after a wildcard
    etc
  * _known_hosts_real: fix # handling in ssh configs
  * test: upgrade flake8 to 3.8.3
  * test/xhost: multiple expected result handling fixes
  * test/slapt-src: single expected result handling fixes
  * test: partial hostname completion fixes
  * test: simplify completion parsing
  * test/dpkg-query: mark as xfail on non-Debian based systems
  * .gitignore: clean up some no longer needed ignores
  * test/lspci: skip -A arg test if lspci fails -A help, e.g. busybox
    lspci
  * test: regex escape our magic mark for completeness
  * test: upgrade mypy to 0.780
  * test/_known_hosts_real: don't modify class scoped base expected
    list
  * test/_known_hosts_real: reset COMP_KNOWN_HOSTS_WITH_HOSTFILE
    between tests
  * test/_known_hosts_real: tolerate duplicates
  * bash_completion: trivial cleanups
  * gcc: avoid errors in nounset mode
  * pytest: fix test class method completion with BSD awk
  * man, mutt: avoid errors in nounset mode on Ubuntu 14 and 16
  * java, make: avoid errors in nounset mode on Ubuntu 14 and 16
  * README: document GNU make build requirement
  * pytest: add test class method completion
  * _known_hosts: avoid errors in nounset mode and no arguments
  * bash_completion: fix array set checks with empty elements in them
  * *: avoid more errors in nounset mode
  * cfrun: fix $hostfile leak
  * _command_offset, route: cleanups
  * *: avoid more errors in nounset mode
  * qemu: add -machine arg completion
  * qemu, sbopkg: avoid unintentional globbing on option arg
    completions
  * test: enable shellcheck SC2035
  * *: drop support for bash 4.1
  * _init_completion: fix unassigned redirect completion in nounset
    mode
  * ip: route shfmt, arithmetic evaluation
  * _filedir: avoid unbound variable error on Ubuntu 14 and 16
  * _pids, _pgids, _pnames: improve shfmt formatting
  * scp, sftp, ssh: fix completion on options bundled with -4/-6
  * modprobe, tshark, _included_ssh_config_files: use [[ ]] instead of
    [ ]
  * test/runLint: warn about [ ] instead of [[ ]] use
  * test: skip various tests if we don't get a useful usage message
  * *: mark nounset mode as supported, issues with it are bugs now
  * *: avoid more errors in nounset mode
  * *: avoid more errors in nounset mode
  * *: avoid more errors in nounset mode
  * test/inputrc: comment and whitespace tweaks
  * *: avoid more errors in nounset mode
  * test/unit: sort files included in dist
  * test/unit: include test_unit_known_hosts_real.py in dist
  * bash_completion: line wrapping tweaks, NFC
  * 7z: fix -o/-w attached arg completion
  * postfix: try to arrange a fake tty so we can tickle the usage
    message out
  * _bashcomp_try_faketty: new function to try running command with a
    fake tty
  * mr: avoid herestrings, simplify command parsing
  * test/mr: handle missing "clean" with skipif
  * test: mark known non-ASCII issues with test suite as xfail
  * dpkg-deb: add --raw-extract and -X arg completions
  * test: add some dpkg-query test cases
  * dpkg-deb: fix --show/-W completion
  * test: upgrade markdownlint-cli to 0.23.1
  * *: use more arithmetic evaluation
  * test: try harder to restore environment and cwd on failures
  * *: use $ifs for storing/restoring $IFS
  * test/irb: xfail options test if --help is not available
  * test: upgrade flake8 to 3.8.1
  * test: pre-commit config cleanups, ordering
  * test: upgrade pre-commit to 2.4.0+, drop shfmt kludge
  * test: sync shfmt and shellcheck configs
  * test: shfmt bashrc
  * test: remove unused run-shellcheck, shellcheck is in pre-commit
    now
  * test: remove old test suite code no longer used \o/
  * test/_known_hosts_real: port remaining test cases to
    pytest+pexpect
  * test: remove more no longer needed old test suite code
  * test/_known_hosts_real: port more test cases to pytest+pexpect
  * test/_get_cword: port remaining test case to pytest+pexpect
  * test: replace some echos with printfs
  * test/_filedir: fix shutil.rmtree on Python < 3.6
  * test/_expand: port remaining test cases to pytest+pexpect
  * test: drop some no longer needed old test suite code
  * test/_filedir: port remaining test cases to pytest+pexpect
  * test: run all Travis jobs on dist: bionic
  * test: drop not needed sudo on Travis
  * test/_filedir: port more test cases to pytest+pexpect
  * test/__expand_tilde_by_ref: port remaining test cases to
    pytest+pexpect
  * test/_get_comp_words_by_ref: convert remaining test cases to
    pytest+pexpect
  * test: run pytest --verbose in docker
  * lftp: use "bookmark list" command to list bookmarks
  * test: drop some no longer needed old test suite code
  * test/slapt-src: convert remaining test case to pytest+pexpect
  * _xfunc: simplify
  * apt-cache: avoid nonzero exit code from _apt_cache_packages
  * test/slapt-get: convert remaining test case to pytest+pexpect
  * test/secret-tool: add to test command list
  * test/scp: port remaining test case to pytest+pexpect
  * test/umount: convert remaining test case to pytest+pexpect
  * secret-tool: new completion
  * apt-get: complete build-dep with dirs
  * travis: use golang 1.14 for shfmt
  * *: run all shell code through shfmt -s
  * pre-commit etc: add shfmt
  * test: fix incorrect fixtures/shared/default xfails/expectations
  * test: upgrade markdownlint to 0.23.0
  * nmap: simplify help scraping a bit, don't try to emit unnecessary
    newlines
  * test: prefix fake test commands with underscore
  * test: port most umount test cases to pytest+pexpect
  * test: add note about unescaped assert_complete single return
    values
  * editorconfig: apply yaml settings to .yaml too
  * pre-commit: use local perlcritic hook
  * *: doc and comment link updates
  * pre-commit, *.md: add markdownlint, address findings
  * README: clarify loading automatically on demand
  * ssh-keygen: -O arg updates and improvements
  * ssh-keygen: add -b arg completions according to specified -t
  * ssh-keygen: option and arg completion updates for new versions
  * _command: improve commentary
  * reportbug, scp, sftp, svn: use compgen -c instead of _command
  * find: fix -exec etc argument and its completion
  * extra: trigger docker builds only on test-cmd-list.txt changes
  * test: add script to maintain list of executables for full test
    coverage
  * test: run lint tests on Travis in a quickish separate first stage
  * test/make: mark more cases as requiring command
  * make: add bmake alias
  * test: run pre-commit on host instead of docker
  * test: add perlcritic to pre-commit, run on all perl
  * *: remove some unused variables, thanks to shellcheck SC2034
  * *: various loop iteration improvements
  * crontab: fix loop over already given args
  * apt-cache: fix command mode handling
  * doc: add loop variable naming guideline
  * test: make at-point completion tests easier
  * ssh, xsltproc: address shellcheck SC2006
  * scp: work around shellcheck SC1003
  * mutt: address shellchec SC2236
  * wget: address shellcheck SC2116
  * pytest: address shellcheck SC2002
  * bash_completion, java, tipc: for loop whitespace consistency
    tweaks
  * *: more arithmetic evaluation cleanups, thanks to shellcheck
    SC2004
  * __reassemble_comp_words_by_ref, java: address and work around
    shellcheck SC2102
  * test: enable parallel pre-commit shellcheck
  * test: remove shellcheck severity filter, add explicit disables
    instead
  * doc: recommend arithmetic evaluation
  * *: array subscript cleanups
  * ssh-keygen: -s and -n completion improvements
  * *: enable and address shellcheck SC2053
  * bash_completion, invoke-rc.d, svcadm: trivial cleanups
  * *: replace various conditional expressions with arithmetic
    evaluation
  * carton: fix command parsing with BSD sed
  * nmap: fix option parsing with BSD sed
  * test/alias: port remaining test case to pytest+pexpect
  * test: generalize complete at point test
  * test/cd: fix test_dir_at_point for setups that repeat "trailer"
  * pytest: add some option arg (non-)completions
  * pytest: complete test classes
  * pgrep, pkill: add --ns and --nslist arg completions
  * test: run skipif and xfail commands without caring if they output
    or not
  * test: make it possible to not care whether command did output or
    not
  * test/xfreerdp: skip xfreerdp kbd test if kbd-list returns empty
  * test: tolerate duplicates from compgen actions
  * test: bump shellcheck severity to warning + some disables
  * *: address shellcheck SC2046
  * test/lib/library.sh: address shellcheck SC2125
  * java, pkgadd, sysbench: address shellchec SC2124
  * scp: address shellcheck SC2089 and SC2090
  * _filedir_xspec: address shellcheck SC2140
  * rpm, ssh, umount.linux: address shellcheck SC2120
  * cvs, modprobe, sh: address shellcheck SC2209
  * mutt: address shellcheck SC2088
  * _upvar, _upvars, _variables, rpm: address shellcheck SC1083
  * test/run: address shellcheck SC2164
  * renice: address shellcheck SC2254
  * tipc: comment grammar and spelling fixes
  * man, perl, route, tipc: address shellcheck SC2053
  * info, java: address shellcheck SC2153
  * quote_readline: fix $ret leak
  * test: upgrade shellcheck to 0.7.1
  * test/printenv: xfail if --help doesn't contain options (e.g.
    busybox)
  * test/aptitude: require command where necessary
  * _known_hosts_real, op: address shellcheck SC2184
  * test: don't run shellcheck on completions/.gitignore
  * protoc: complete all --*_out without more specific handling with
    dirs
  * sysbench: add --test= deprecation TODO
  * pkgadd: indentation fix
  * chronyc, wvdial: address shellcheck SC2178
  * java, pkgadd, sysbench: address shellcheck SC2124
  * mplayer: address shellcheck SC1078 false positive
  * smartctl: hush shellcheck SC2054 false positives
  * *: address shellcheck SC2221 and SC2222
  * bash_completion: address shellcheck SC2220
  * crontab, wodim: silence shellcheck SC2191 and SC2192
  * aptitude: add some option arg (non)completions
  * aptitude: parse options list from --help, hardcode less
  * test/aptitude: add some test cases
  * *: argument interation improvements
  * *: whitespace tweaks
  * apt-get etc: use _apt_cache_packages from apt-cache
  * pre-commit: run most python checks on helpers/python too
  * test/ldd: xfail if --help is not implemented
  * test/printenv: require command for arg completion test
  * printenv: indentation fixes
  * test: upgrade mypy to 0.770
  * test: split dependencies requiring Python 3.6.1+ to requirements-
    dev.txt
  * git: trigger docker rebuild on pre-commit config change
  * test: require openssl command for option argument tests
  * test: move perltidy to pre-commit, run with --converge
  * test: move shellcheck to pre-commit
  * test: ignore flake8 messages that are in black's domain
  * _xinetd_services: look up from $BASHCOMP_XINETDDIR, add some unit
    tests
  * printenv: new completion
  * copyright: add 2020
  * test: fix CompletionResult.__eq__ UnboundLocalError
  * test: run pre-commit in tools container
  * test: shellcheck tweaks
  * test: add isort to pre-commit, run it
  * test: add flake8-bugbear
  * test: install black for Python 3.6 too
  * pre-commit: add config with black, flake8, and mypy
  * test: drop redundant black args from docker runs
  * *: python type hint fixes and improvements
  * extra/make-changelog: run through black
  * test/totem: add basic test case
  * test/cd: remove unused import
  * openssl: complete -writerand with filenames
  * openssl: parse available options from $command -help
  * openssl: support getting digest list from more recent openssl
    versions
  * nmap: handle options split on equals sign
  * nmap: parse options from -h output
  * test/cd: make dir_at_point produce better debuggable failures
  * test/cd: convert remaining test case to pytest+pexpect
  * test: remove some no longer needed old test suite code
  * test/chown,sudo: parametrize special case test, improve xfail
    targeting
  * test/tsig-keygen: require command for test_options
  * test/upgradepkg: port remaining test case to pytest+pexpect
  * tsig-keygen: new completion
  * test: host helper lint and usage fixes
  * test: port some _known_hosts_real unit tests to pytest+pexpect
  * test: remove some no longer needed tcl/expect code
  * test: fix spurious hosts fixture failure without avahi-browse
    installed
  * test: port some scp test cases to pytest+pexpect
  * test: port remaining finger, sftp, ssh, and xhost cases to
    pytest+pexpect
  * lilo: work around shellcheck false positive
  * test/ipcalc: fix tests with busybox ipcalc
  * chromium-browser, firefox: complete on *.txt (#379)
  * README.md: add introduction
  * ipcalc: new completion
  * *: complete commands when prefixed with a backslash
  * test/wol: don't fail MAC test if test system has /etc/ethers
    entries
  * test/dnssec-keygen: allow more alternatives in algorithm
    completion
  * lilo: don't complete on commented out labels
  * lilo: honor -C when completing labels
  * lilo: add -B and -E completions

  [ beantaxi ]
  * Source user completion only if it's a file (#409)

  [ hugoziviani ]
  * jarsigner: complete on *.apk too (#386)
  * cryptsetup: add luksChangeKey arg completion (#380)

 -- Ville Skyttä <ville.skytta@iki.fi>  Sat, 25 Jul 2020 11:25:09 +0300

bash-completion (2.10)

  [ Felix Lechner ]
  * perltidy: associate *.t (#338)

  [ Gabriel F. T. Gomes ]
  * perl: fix completion with space between option and argument

  [ Grisha Levit ]
  * _variables: add TERM and LC_* completion (#353)

  [ Iñigo Martínez ]
  * autotools: Replace pkgdatadir with datadir
  * pkg-config: Relative paths
  * pkg-config: generate Name from autotools PACKAGE

  [ Jakub Jelen ]
  * ssh: option and argument completion updates (#332)

  [ Michał Górny ]
  * test_arp: Skip if ARP tables are empty
  * test_chromium_browser: Skip test_2 if 'chromium-browser --help'
    fails
  * test_rpm2tgz: Fix expected output

  [ Sebastian ]
  * cppcheck: Add new standards to --std option. (#356)

  [ Tomasz N ]
  * apt-get: fix pkg version completion if it contains a colon (#351)

  [ Ville Skyttä ]
  * test: bump black to >=19.10b0
  * ssh, scp, sftp, ssh-copy-id, curl: improve identity file
    completion
  * update-rc.d: indentation fix
  * update-rc.d: remove dead code
  * screen: add serial device basic arg (non)completion
  * screen: add //telnet completion
  * test: add some trivial perl -E/-e cases
  * perl: indentation fixes
  * curl: make @filename completion do the right thing with dirs
  * _filedir: avoid duplicate dirs internally, and a compgen -d call
    for files
  * _filedir: remove unused $x
  * bash_completion.sh: shellcheck SC2086 fixes
  * test: shellcheck config cleanups
  * shellcheck: add some option arg (non)completions
  * test: fix cpio users test in presence of usernames with whitespace
  * test: python typing fixes
  * test: add minimal mypy config
  * .gitignore: mypy cache
  * makepkg: fix option completion
  * test: mark dcop and mr testcases requiring the cmd as such
  * CONTRIBUTING: disable e-mail bug gateway due to spam
  * carton: new completion
  * op: direct command parsing stderr to /dev/null
  * test: adjust java expectations based on whether jars can be listed
  * valgrind: look tool names from lib/*-linux-gnu dirs too
  * test: xfail locale-gen option completion if --help is not
    available
  * _sysvdirs: always return 0
  * java: don't assume jar is installed
  * travis: test with Debian 10
  * wine: install for wine-development and wine-stable too
  * travis: generate dist tarball on alpine
  * dmypy: new completion
  * test: add require_longopt xfail helper, use it
  * test: mark more tests that parse command output as requiring
    command
  * sysctl: invoke completed sysctl instead of one from path to get
    variables
  * screen, smartctl, update-alternatives: _parse_help, drop hardcoded
    option list
  * lintian-info: _parse_help, add more option arg (non)completions
  * gprof: _parse_usage, drop hardcoded option list
  * test: fix retrieving command to test from request
  * travis: pass NETWORK as env var, so we can actually use it
  * test: xfail MAC address completion without networking
  * test: ignore _makepkg_bootstrap in makepkg test env
  * test: hush flake8-bugbear B010
  * test: don't sort expected completion lists under the hood
  * test: add bunch of basic option parsing test cases
  * test: always run tests which don't require tested command
  * test: explodepkg and upgradepkg test fixes
  * test: mark sbcl-mt xfail due to whitespace split issues
  * _terms: search directly from various terminfo dirs
  * _terms: combine and simplify somewhat
  * pkg-get: fix $i leak
  * pkgutil: fix $i leak
  * test: portinstall/upgrade test case and setup fixes
  * lvm pv*, vg*: parse help instead of hardcoding option list
  * ipv6calc: parse help instead of hardcoding option list
  * test: avoid some sed -r/-E runLint false positives
  * test: use sh +* as ccache command test case
  * java: make jar/zip listing work with unzip
  * test: installpkg test fixes
  * test: fix acroread fixture dir
  * test: remove unnecessary returns after pytest.skip
  * test: avoid gnome-mplayer core dump on Ubuntu 14
  * xvfb-run: new completion
  * test: skip gssdp-discover --message-type when option not available
  * test: expect failures for bc without --help useful with _longopt
  * test: don't expect a .tox dir in fixture
  * test: drop sourcing our no longer existing profile.d script
  * tox: include -- in option completions
  * tox: complete defaults after a --
  * gssdp-discover: new completion
  * test: register our pytest markers to hush warnings from 4.5+
  * test: fix required pytest version
  * ip: invoke the tool as $1
  * README: drop distro badges, link to Repology instead
  * chromium-browser: add --proxy-server arg completion
  * test: source our profile.d test env script in docker
  * influx: new completion
  * README: badge title tweaks
  * tox: do simple parse on tox.ini if --listenvs* yields nothing
  * test: add basic tox fixture
  * man: fall back to _parse_usage for _parse_help
  * test_wsimport: xfail options test on unparseable -help
  * test: don't try to install black on Python < 3.6
  * pgrep: fix fallback to _parse_usage
  * test: xfail unparseable mock and munin-node-configure --help cases
  * test_pwdx: xfail more unparseable help cases
  * build: make pytest executable configurable, look for pytest-3 too
  * test: enforce minimum pytest version
  * test: zopflipng flake8 fix
  * test: xfail getent and pwdx option completions with unparseable
    --help
  * test: add more basic _parse_help use test cases
  * test: add bunch of basic _parse_help use test cases
  * .gitignore: add configure.lineno
  * badblocks: fix $i leak
  * postfix: option completion is expected to fail at the moment
  * cal: try _parse_help before _parse_usage
  * test: add bunch of basic _parse_usage use test cases
  * chsh, pwck: try _parse_help before _parse_usage
  * test: add basic autossh test
  * test: convert more _filedir unit tests to pytest+pexpect
  * test: flake8 fix
  * test: convert bunch of _filedir unit tests to pytest+pexpect
  * test: convert finger partial test case to pytest+pexpect
  * README: add some badges, tweak existing
  * test: port _variables unit tests to pytest+pexpect
  * test: port compgen and quote tests to pytest+pexpect
  * iconv, lz4, tipc, xsltproc: replace some seds with compgen -X
  * test: disallow Alpine failure on Travis
  * _pnames: adapt for busybox ps, rewrite in pure bash
  * test: run our docker script in test containers by default
  * test: use one Dockerfile for all dists
  * test_ifup: accept short option completions too
  * timeout: fallback to _parse_usage from _parse_help
  * test_wget: test --s instead of --h
  * test_lsusb: xfail with unparseable --help
  * test: expect failures for various completions without useful
    --help
  * test: support xfail in our markers like skipif, use it a lot
  * test: add Alpine Linux container, allow failures for now
  * iconv: weed out ... from encoding completions
  * test_iconv: add basic file completion test
  * test_iconv: skip option completion if --help fails
  * test_getconf: skip if -a doesn't output any POSIX_V*
  * test_feh, test_makepkg: invoke grep as "command grep"
  * test: generalize check whether we're being run in a container
  * tar: simplify locating tarball from command line
  * pkg_delete: don't limit to FreeBSD
  * test: reformat test_chromium_browser.py source
  * test: set up BASH_COMPLETION_COMPAT_DIR in bashrc (only)
  * test: more thorough system location interference avoidance
  * test: bashrc comment and whitespace tweaks
  * build: makefile whitespace tweaks
  * build: really reset return value before completions check
  * build: simplify symlink setup
  * tar: add missing bsdtar, gtar, and star symlinks
  * README: use light gray badges for unknown versions
  * README: link to cygwin package

  [ Wolf ]
  * ri: hush some warnings

  [ andreabravetti ]
  * unrar: complete on *.exe (#337)

  [ ezr ]
  * chromium-browser: Add support for .mhtml files

  [ jerkey ]
  * screen: complete first arg with serial devices

  [ marxin ]
  * gcc: support new --completion option (#222)

  [ pcc ]
  * unzip, zipinfo: complete *.aab (#340)

  [ versat ]
  * cppcheck: Remove deprecated option 'posix'  for '--std='

 -- Ville Skyttä <ville.skytta@iki.fi>  Thu, 05 Dec 2019 17:04:26 +0200

bash-completion (2.9)

  [ Antonio Terceiro ]
  * dpkg-source: Add --before-build --after-build --commit, and
    --print-format

  [ Gabriel F. T. Gomes ]
  * xm: Deprecate completion for obsolete command (#284)
  * _filedir_xspec: Fallback to suggesting all files if requested
    (#260)
  * tar: Support completions for zstd compression extensions (#255)
  * dpkg: List held packages (#250)
  * cvs: Add completion for the log command

  [ Guillaume Mella ]
  * unzip, zipinfo: Associate with *.xar (eXist-db application
    package) (#257)

  [ Igor Susman ]
  * mplayer: Associate with *.w64

  [ Jaak Ristioja ]
  * okular: Added support for xz-compressed files.

  [ John Swinbank ]
  * _xspecs: Declare as global on bash >= 4.2

  [ Kevin Locke ]
  * test: Increase expect pty to 160 columns
  * test: avoid interrupting magic mark output

  [ Per Lundberg ]
  * 7z: add .msi support

  [ Peter Wu ]
  * tshark: speed up tshark -O completion
  * tshark: fix completion of -Xlua_script option
  * tshark: Support preferences (-o) completion with memoization
  * test: fix misinterpretation of completion output in tests
  * test: fix flake8 complaints about unused imports
  * conftest: fix RemovedInPytest4Warning due to use of
    node.get_marker
  * chromium-browser: consider chrome and chromium as aliases
  * tshark: support .gz and .cap files for -r expansion
  * tshark: prevent a single-character file from breaking -G
    completion
  * tshark: update -T and -t completions

  [ Russell Davis ]
  * man: Fix completion when failglob option is enabled (#225)

  [ Timo Taipalus ]
  * mplayer: Add common supported module music formats

  [ Tomasz N ]
  * _longopt: pick first long option on a line, not last

  [ Ville Skyttä ]
  * *: avoid shellcheck SC1007 and SC1010
  * 7z: add some TODO notes on parsing "i" output for extensions
  * ssh: make -o protocol completion less hardcoded
  * ssh: make option completion case insensitive
  * ssh: fix suboption completion with combined -*o
  * xvnc4viewer: code cleanups
  * doc/testing: remove lots of legacy info, add some new
  * CONTRIBUTING: add upstream vs bash-completion considerations
  * CONTRIBUTING: note runLint and run-shellcheck
  * __parse_options, 7z: avoid herestrings
  * arp, ccze, ifstat, inotifywait, makepkg: invoke sed with "command"
  * shellcheck: disable bunch of warnings when in "-S warning" mode
  * test: move default shell option from run-shellcheck to
    .shellcheckrc
  * test: make runLint search for herestrings
  * tar, valgrind: avoid some herestrings
  * travis: run shellcheck on bash_completion.sh.in too
  * travis: fail on shellcheck errors
  * make: quote eval array definitions to work around shellcheck
    SC1036 bug
  * test: add make -C test case
  * *: shellcheck error fixes
  * _included_ssh_config_files: store found included files in an array
  * _included_ssh_config_files: doc grammar fixes
  * test: add invoke-rc.d test case for not repeating already given
    options
  * ebtables: improve existing table arg parsing
  * test: add script to run shellcheck, run it in Travis, allowing
    failure for now
  * iptables: improve existing table arg parsing
  * test: shorten long gdb test core file name so tar doesn't croak on
    it
  * AUTHORS: remove unrelated project association from my entry
  * apt-get: protect source against regex specials
  * mypy, mysql, xmms: don't complete unknown split long option args
  * synclient: remove unused local variable "split"
  * test: adjust _get_comp_words_by_ref test to changed error output
  * apt-cache: protect showsrc against regex specials
  * test: improve tshark -O arg completion test
  * tshark: ignore stderr when parsing -G, -L, and -h output
  * *: error output consistency, use bash_completion prefix
  * _upvar: deprecate in favor of _upvars
  * *: add missing "ex: filetype=sh"
  * phing: fix getting just a tab for options on CentOS 6
  * phing: don't complete -l with files
  * various: apply file vs dir special cases also when invoked with
    full path
  * *: whitespace tweaks
  * ssh: don't offer protocol v1 specific options if it's not
    supported
  * test: add some gdb non-core files
  * _parse_help: look for long options somewhat more eagerly
  * gdb: relax core filename pattern
  * test/tools: fix exit status incrementation
  * *: arithmetic expression related cleanups
  * test/tools: run all tools, don't stop at first failure
  * test: check for perltidy errors and warnings
  * *: format Perl code with perltidy
  * *: format Python code with black
  * .dir-locals.el: use flycheck-sh-bash-args
  * valgrind: look up tools from libexec dirs too
  * *: make _parse_usage fallbacks more concise
  * svn, svk, wget: use _iconv_charsets
  * *: spelling fixes
  * msynctool: code cleanups
  * *: remove whitespace after redirections
  * *: remove spaces immediately within $()
  * bzip2: recognize *.tbz2 as bzipped
  * modprobe: module parameter boolean values
  * ping, tracepath: parse options primarily with _parse_help
  * ulimit: new completion
  * shellcheck: new completion
  * dnssec-keygen: new completion
  * modprobe: append = to module parameter completions
  * test: include test_unit_longopt.py in dist
  * test: add some _longopt unit tests
  * _longopt: simplify regex, use printf instead of echo, drop
    unnecessary sort
  * nsupdate: new completion
  * _longopt: don't complete --no-* with file/dirname arg
  * copyright: add 2019
  * pytest: complete --pythonwarnings/-W arg
  * python: make warning action list reusable
  * test: use pytest-xdist
  * extra: add git pre-push hook for triggering Docker Hub builds
  * post-commit: trigger on test/requirements.txt too
  * pytest: complete pytest-xdist --dist, --numprocesses, and
    --rsyncdir
  * test: remove no longer needed completion/*.exp
  * xfreerdp: reinstate support for old versions with dash option
    syntax
  * test: rewrite "generate" in Python, fix trailing backslash in
    EXTRA_DIST
  * test: sort t/Makefile.am EXTRA_DIST in C locale
  * ssh: support RemoteCommand and SyslogFacility options
  * test: Expect failure for chown all users test as non-root
  * test: Fix declare test case with bash 5.0
  * adb: Deprecate in favor of one shipped with the Android SDK
  * xfreerdp: Update for more modern xfreerdp
  * jsonschema: New completion
  * test: Remove unnecessary ri xfail
  * test: Clean up man tmp dir
  * .gitignore: Add .python-version (for pyenv)
  * test: Remove unnecessary autouse=True from fixtures
  * ifstat: Make work with iproute2 version
  * iperf, iperf3: Add some option arg (non-)completions
  * test: Fix test generation wrt results checking improvements
  * ifstat: New completion
  * __parse_options: Avoid non-zero exit status
  * test: Refactor/improve completion results checking
  * test: Match Python's default locale unaware sort in bash setup
  * test: Rename completion.line to .output
  * test: Add man failglob test case
  * test: Add pre_cmds support for completion fixture
  * inotifywatch: New completion, common with inotifywait
  * inotifywait: Fix -e completion with BSD sed
  * inotifywait: Avoid some false positive event names
  * test: extend _ip_addresses unit tests some
  * _ip_addresses: Avoid completing ipv4 ones with -6
  * inotifywait: New completion
  * test: Mark some xfails based on if in docker instead of in CI
  * test: Skip ifup options test if it doesn't grok --help, not in CI
  * test: Clean up and docker-ignore __pycache__ dirs
  * build: Include test/t in dist tarball
  * test/t: Avoid trailing backslash in Makefile.am's to appease
    automake
  * test: Remove some no longer used old test suite code
  * _xspecs: Simplify bash version check
  * chmod: Fix "-" completion
  * sysctl: Treat -f as alias for -p/--load
  * .gitignore: Add pytestdebug.log
  * chmod: Fix file completion after modes starting with a dash
  * _count_args: Add 3rd arg for treating option-like things as args
  * test: Fix _count_args test_7 to test intended case
  * pydocstyle: New completion
  * Travis: Remove unused PYTEST env var
  * doc: Note email issues gateway
  * tcpdump: Various option and their arg completion updates
  * test: Fix arp CI (non)expectations, remove redundant test case
  * test: Be more consistent with "CI" env var examination and xfails
  * arp: New completion, somewhat incomplete
  * test: Expect failure in gkrellm if there's no X display
  * doc: Update docs on generating simple tests
  * doc: Some test dependency doc updates
  * test: Add requirements.txt for installing dependencies
  * grpck: Parse options with _parse_help, falling back to
    _parse_usage
  * grpck: Add --root/-R arg completion
  * test suite: Ignore _scp_path_esc in env for ssh-copy-id
  * ssh-copy-id: Add -i and -o arg (non-)completions
  * tar: Clean up some redundant code
  * cancel: Split long line
  * cancel: Add some option arg (non-)completions
  * locale-gen: New completion
  * makepkg: Don't apply to other than Slackware makepkg
  * test: Allow unknowns options in makepkg option completion
  * makepkg: Use _parse_help instead of hardcoding option list
  * mypy: New completion
  * op: New completion
  * hunspell: New completion
  * xmllint: Improve --encode, --pretty, and --xpath arg
    (non-)completions
  * test: Remove leftover completion/ls.exp
  * gcc: Add g++, gcc, gccgo, and gfortran *-[568] aliases
  * perlcritic: New completion
  * gnome-screenshot: New completion
  * isort: New completion
  * freeciv: Option and arg completion updates
  * freeciv-gtk2: Install for freeciv and freeciv-gtk3, rename to
    freeciv
  * mplayer etc: Complete on *.crdownload partial downloads in
    addition to *.part
  * chromium-browser, google-chrome*: New non-xspec completion
  * firefox etc: New non-xspec completion
  * Merge branch 'master' into wip-pexpect
  * nc: Add some more option (non-)completions
  * test: Mark MANPATH without leading/trailing colons test an xfail
    on CI CentOS 6
  * test: Remove kill, killall remnants
  * test: Make case specific env entries shell code, not escaped
  * Merge branch 'master' into wip-pexpect
  * unzip, zipinfo: Associate with *.whl
  * __load_completion: Avoid unnecessary lookups from nonexistent dirs
  * Merge branch 'master' into wip-pexpect
  * gcc: Add g++, gcc, gccgo, and gfortran *-7 aliases
  * test: Use test_unit_* prefix for unit tests, to avoid name clashes
  * test: Support setting cmd=None to require no command, for unit
    tests
  * test: Misc test suite fixes
  * test: Fix jq and scrub skipif commands
  * test: Don't require complete marker on test methods
  * test: Add support for per-test env modifications
  * test: Use more conventional Python file names for tests
  * test: Sort completion results in Python for ease of use in Python
    tests
  * test: Allow __load_completion to fail
  * test: chdir to fixtures dir in Python as well
  * test: Mark xfreerdp as expected failure for now
  * test: Replace + with Plus in test class names
  * test: Implement load_completion_for using assert_bash_exec
  * test: Add ability to selectively ignore diffs in environment
  * test: Fixture reorganization
  * test: Pass through $HOME and $DISPLAY to test bash
  * test: Log pexpect interaction to $BASHCOMP_TEST_LOGFILE if set
  * test: Rename BASHCOMP_* test env variables to BASHCOMP_TEST_*
  * test: Add python3 test case
  * test: Add class level skipif based on bash exec result
  * test: Include command name in test class name, use numbered test
    method names
  * test: Fix some regressions introduced in recent test conversions
  * test: Add support for running test case in a specified dir
  * test: Add support for skipping individual tests based on shell
    command status
  * test: Make test base work with Python 3.3+
  * test: Add some iperf, iperf3 and xmodmap test cases
  * xmodmap: Use _parse_help instead of hardcoded option list
  * iperf: Improve client/server specific option parsing
  * iperf: Install for iperf3 too
  * iperf: Add g/G to --format completions
  * xmodmap: Use _parse_help instead of hardcoded option list
  * iperf: Improve client/server specific option parsing
  * iperf: Install for iperf3 too
  * iperf: Add g/G to --format completions
  * test: Use /root/.local/bin/pytest on ubuntu14 by default
  * test: Add generated test files to t/Makefile.am automatically
  * test: Add new test files to EXTRA_DIST
  * test: Use /root/.local/bin/pytest on centos6 by default
  * test: Use make pytest docker executable env-configurable, default
    pytest-3
  * test: Update generate for pytest+pexpect
  * test: Convert majority of test cases to pytest+pexpect
  * tox: Fall back to --listenvs for env list if --listenvs-all fails
  * git-post-commit: Avoid some error trash when HEAD is not a
    symbolic ref
  * test: Add pylint-3 test case
  * test: Limit number of pylint option completions
  * pydoc, pylint: Determine python2/3 based on command basename only
  * pylint: Bring -f/--format arg completion up to date with pylint
    1.9.2
  * pylint: Implement comma separated --confidence arg completion
  * test: Fix buffer size option listing in run --help
  * test: Bump expect's match_max to 20000 by default
  * test: Run docker tests with --verbose
  * _services: Try systemctl list-unit-files if systemctl list-units
    fails
  * extra/git-post-commit.sh: Add git post-commit Docker Hub trigger
    hook
  * gpgv: New completion
  * pydoc, pylint: Skip module completion if current looks like a path
  * travis: Run ubuntu14/bsd with no network
  * travis: Split long lines in script
  * test: Limit number of wget option completions to avoid unresolved
    result
  * test: Mark flake8 untested if it seems broken
  * pylint: Option arg completion improvements
  * tshark: Get available interfaces from -D output
  * ngrep: Add "any" to -d arg completions
  * fio: New completion
  * test: Fix iwspy test case
  * uscan: Use _parse_help instead of hardcoded option list
  * urlsnarf: Add -p arg completion
  * tracepath: Add -m and -p arg non-completions
  * tracepath: Actually use our separate completion instead of
    _known_hosts
  * test: Skip jq option completion test if its --help doesn't list
    them
  * xdg-settings: Make help parsing work on BSD
  * test: Support running with local BSD binaries, do it w/ ubuntu14
    in CI
  * jq, sqlite3: Protect against negative array subscripts
  * sudo: Improve long option arg handling
  * sysctl: Recognize --pattern/-r and --load options
  * test: Add sysctl option parsing test case
  * sudo: Parse options from help/usage output, add some long option
    support
  * strace: Use _parse_help instead of hardcoded option list
  * sshow: Add -p arg completion
  * sqlite3: Add some option arg (non-)completions
  * tune2fs: Update -o/-O argument lists
  * jq: New completion
  * reportbug: Run _parse_help and apt-cache more selectively
  * querybts: Use _parse_help, not hardcoded option list, misc
    improvements
  * pyvenv: Support versioned 3.6-3.8 executables
  * passwd: Try _parse_help before _parse_usage to parse options
  * profile.d: Avoid tested variable values being confused as [ ]
    operators
  * cryptsetup: Add some option arg (non-)completions
  * cryptsetup, nc, sh: Skip option args when counting arguments
  * modinfo: Fall back to _parse_usage if _parse_help yields no
    results
  * mysql, mysqladmin: Complete --ssl-{ca,cert,key} option arg
  * mysqladmin: Reuse --default-character-set completion from mysql
  * modinfo: Use _parse_help instead of hardcoded option list
  * minicom: Use _parse_help instead of hardcoded option list
  * mplayer: Associate with *.S[3T]M, *.med, *.MED
  * completions/Makefile.am: Use install-data-hook, not install-data-
    local
  * ifup etc: Add option and option argument completion
  * _count_args: Add support for not counting specified option args
  * ifquery: New ifup alias completion
  * ngrep, tshark: Complete on *.pcapng too
  * rpm: Complete --licensefiles with -q
  * pytest: Rename from py.test to follow upstream recommended name
  * README: Add instructions for overriding completions system wide
  * README: Note $BASH_COMPLETION_USER_DIR
  * test: Mark psql etc test cases untested if --help doesn't work
  * aclocal, automake: Support versioned 1.16 executables
  * __load_completion: Avoid bad array subscript on "commands" ending
    with slash
  * lzma: Use _parse_help instead of hardcoded option list
  * test: Run perlcritic and flake8 on perl and python helpers in
    Travis
  * build: Improve cleanup of test/log and test/tmp dirs
  * pkg-config: Complete on *.pc files
  * build: Use AC_PROG_SED to locate sed
  * build: Do cmake, pc, and profile variable replacements in Makefile
  * README: Add Q/A on overriding a completion, modernize local
    install answer
  * json_xs: New completion
  * chmod: New completion
  * iperf, nc: Include IPv6 addresses in bind address completions
  * links: Major rework, parse options from --help, add option arg
    completion
  * _ip_addresses: Add option to complete all/v4/v6 addresses, add
    unit test
  * wget: Remove nonexistent arg to _ip_addresses
  * _filedir: Drop unnecessary evals
  * iconv: Split charset completion to _iconv_charsets, add test case
  * links: Install completion for links2 too
  * xgamma: Comment spelling fix
  * lftp: handle -s
  * test: Skip scrub -p test when its --help doesn't list available
    patterns
  * ecryptfs-migrate-home: New completion
  * scrub: New completion
  * ether-wake: Install for etherwake as well
  * *: Support completing arg of last bundled short option
  * dselect: Parse options with _parse_help
  * dhclient: Add some option arg (non-)completions
  * dhclient: Parse options with _parse_usage
  * chage, chpasswd: Add -R/--root arg completion
  * reportbug: Add bunch of option arg (non-)completions
  * .dir-locals.el: Set -O extglob for flycheck bash checks
  * mount, umount: Deprecate on Linux in favor of util-linux >= 2.28
    ones
  * _known_hosts_real: Reimplement known hosts file parsing in pure
    bash
  * test: Add comment line to fixtures/_known_hosts_real/known_hosts
  * ssh: Complete all *File option args with _filedir
  * README: Point Debian and openSUSE badges towards unstable and
    Tumbleweed
  * README: Link to various distro packages
  * apt-get: Add -h/-v/-o non-completions
  * apt-get: Sync option list with apt 1.5.1
  * apt-get: Simplify -t and friends completion, support Ubuntu
  * apt-get: Add indextargets to list of suggested commands
  * apt-get: Complete install package=versions
  * ssh: Sync config option lists with OpenSSH 7.5p1, add some value
    completions
  * ssh: Sync query type list with OpenSSH 7.5p1
  * ssh: Order various switch cases closer to alphabetical
  * completions/Makefile: Fix check-local in VPATH builds

  [ dmerge ]
  * _filedir: Refactor to remove heredoc-dependent loop

  [ marxin ]
  * gccgo: Add as a GCC completion target (#227)

  [ ovf ]
  * xrandr: match the output name exactly for --mode

 -- Ville Skyttä <ville.skytta@iki.fi>  Sat, 27 Apr 2019 11:50:12 +0300
2021-03-10 16:35:53 +00:00
nia
5f60228967 fish: Update to 3.2.0
fish 3.2.0 (released March 1, 2021)
===================================

Notable improvements and fixes
------------------------------

-  **Undo and redo support** for the command-line editor and pager search (:issue:`1367`). By default, undo is bound to Control+Z, and redo to Alt+/.
-  **Builtins can now output before all data is read**. For example, ``string replace`` no longer has to read all of stdin before it can begin to output.
   This makes it usable also for pipes where the previous command hasn't finished yet, like::

    # Show all dmesg lines related to "usb"
    dmesg -w | string match '*usb*'

-  **Prompts will now be truncated** instead of replaced with ``"> "`` if they are wider than the terminal (:issue:`904`).
   For example::

     ~/dev/build/fish-shell-git/src/fish-shell/build (makepkg)>

   will turn into::

     …h-shell/build (makepkg)>

   It is still possible to react to the ``COLUMNS`` variable inside the prompt to implement smarter behavior.
-  **fish completes ambiguous completions** after pressing :kbd:`Tab` even when they
   have a common prefix, without the user having to press :kbd:`Tab` again
   (:issue:`6924`).
-  fish is less aggressive about resetting terminal modes, such as flow control, after every command.
   Although flow control remains off by default, enterprising users can now enable it with
   ``stty`` (:issue:`2315`, :issue:`7704`).
-  A new **"fish_add_path" helper function to add paths to $PATH** without producing duplicates,
   to be used interactively or in ``config.fish`` (:issue:`6960`, :issue:`7028`).
   For example::

     fish_add_path /opt/mycoolthing/bin

   will add /opt/mycoolthing/bin to the beginning of $fish_user_path without creating duplicates,
   so it can be called safely from config.fish or interactively, and the path will just be there, once.
-  **Better errors with "test"** (:issue:`6030`)::

    > test 1 = 2 and echo true or false
    test: Expected a combining operator like '-a' at index 4
    1 = 2 and echo true or echo false
          ^

   This includes numbering the index from 1 instead of 0, like fish lists.
-  **A new theme for the documentation and Web-based configuration** (:issue:`6500`, :issue:`7371`, :issue:`7523`), matching the design on fishshell.com.
-  ``fish --no-execute`` **will no longer complain about unknown commands**
   or non-matching wildcards, as these could be defined differently at
   runtime (especially for functions). This makes it usable as a static syntax checker (:issue:`977`).
-  ``string match --regex`` now integrates **named PCRE2 capture groups as fish variables**, allowing variables to be set directly from ``string match`` (:issue:`7459`). To support this functionality, ``string`` is now a reserved word and can no longer be wrapped in a function.
-  Globs and other **expansions are limited to 512,288 results** (:issue:`7226`). Because operating systems limit the number of arguments to commands, larger values are unlikely to work anyway, and this helps to avoid hangs.
-  A new **"fish for bash users" documentation page** gives a quick overview of the scripting differences between bash and fish (:issue:`2382`), and the completion tutorial has also been moved out into its own document (:issue:`6709`).

Syntax changes and new commands
-------------------------------

-  Range limits in index range expansions like ``$x[$start..$end]`` may be omitted: ``$start`` and ``$end`` default to 1 and -1 (the last item) respectively (:issue:`6574`)::

     echo $var[1..]
     echo $var[..-1]
     echo $var[..]

   All print the full list ``$var``.
-  When globbing, a segment which is exactly ``**`` may now match zero directories. For example ``**/foo`` may match ``foo`` in the current directory (:issue:`7222`).

Scripting improvements
----------------------

-  The ``type``, ``_`` (gettext), ``.`` (source) and ``:`` (no-op) functions
   are now implemented builtins for performance purposes (:issue:`7342`, :issue:`7036`, :issue:`6854`).
-  ``set`` and backgrounded jobs no longer overwrite ``$pipestatus`` (:issue:`6820`), improving its use in command substitutions (:issue:`6998`).
-  Computed ("electric") variables such as ``status`` are now only global in scope, so ``set -Uq status`` returns false (:issue:`7032`).
-  The output for ``set --show`` has been shortened, only mentioning the scopes in which a variable exists (:issue:`6944`).
   In addition, it now shows if a variable is a path variable.
-  A new variable, ``fish_kill_signal``, is set to the signal that terminated the last foreground job, or ``0`` if the job exited normally (:issue:`6824`, :issue:`6822`).
-  A new subcommand, ``string pad``, allows extending strings to a given width (:issue:`7340`, :issue:`7102`).
-  ``string sub`` has a new ``--end`` option to specify the end index of
   a substring (:issue:`6765`, :issue:`5974`).
-  ``string split`` has a new ``--fields`` option to specify fields to
   output, similar to ``cut -f`` (:issue:`6770`).
-  ``string trim`` now also trims vertical tabs by default (:issue:`6795`).
-  ``string replace`` no longer prints an error if a capturing group wasn't matched, instead treating it as empty (:issue:`7343`).
-  ``string`` subcommands now quit early when used with ``--quiet`` (:issue:`7495`).
-  ``string repeat`` now handles multiple arguments, repeating each one (:issue:`5988`).
-  ``printf`` no longer prints an error if not given an argument (not
   even a format string).
-  The ``true`` and ``false`` builtins ignore any arguments, like other shells (:issue:`7030`).
-  ``fish_indent`` now removes unnecessary quotes in simple cases (:issue:`6722`)
   and gained a ``--check`` option to just check if a file is indented correctly (:issue:`7251`).
-  ``fish_indent`` indents continuation lines that follow a line ending in a backslash, ``|``, ``&&`` or ``||``.
-  ``pushd`` only adds a directory to the stack if changing to it was successful (:issue:`6947`).
-  A new ``fish_job_summary`` function is called whenever a
   background job stops or ends, or any job terminates from a signal (:issue:`6959`, :issue:`2727`, :issue:`4319`).
   The default behaviour can now be customized by redefining it.
-  ``status`` gained new ``dirname`` and ``basename`` convenience subcommands
   to get just the directory to the running script or the name of it,
   to simplify common tasks such as running ``(dirname (status filename))`` (:issue:`7076`, :issue:`1818`).
-  Broken pipelines are now handled more smoothly; in particular, bad redirection mid-pipeline
   results in the job continuing to run but with the broken file descriptor replaced with a closed
   file descriptor. This allows better error recovery and is more in line with other shells'
   behaviour (:issue:`7038`).
-  ``jobs --quiet PID`` no longer prints "no suitable job" if the job for PID does not exist (eg because it has finished) (:issue:`6809`, :issue:`6812`).
-  ``jobs`` now shows continued child processes correctly (:issue:`6818`)
-  ``disown`` should no longer create zombie processes when job control is off, such as in ``config.fish`` (:issue:`7183`).
-  ``command``, ``jobs`` and ``type`` builtins support ``--query`` as the long form of ``-q``, matching other builtins.
   The long form ``--quiet`` is deprecated (:issue:`7276`).
-  ``argparse`` no longer requires a short flag letter for long-only options (:issue:`7585`)
   and only prints a backtrace with invalid options to argparse itself (:issue:`6703`).
-  ``argparse`` now passes the validation variables (e.g. ``$_flag_value``) as local-exported variables,
   avoiding the need for ``--no-scope-shadowing`` in validation functions.
-  ``complete`` takes the first argument as the name of the command if the ``--command``/``-c`` option is not used,
   so ``complete git`` is treated like ``complete --command git``,
   and it can show the loaded completions for specific commands with ``complete COMMANDNAME`` (:issue:`7321`).
-  ``set_color -b`` (without an argument) no longer prints an error message, matching other invalid invocations of this command (:issue:`7154`).
-  ``exec`` no longer produces a syntax error when the command cannot be found (:issue:`6098`).
-  ``set --erase`` and ``abbr --erase`` can now erase multiple things in one go, matching ``functions --erase`` (:issue:`7377`).
-  ``abbr --erase`` no longer prints errors when used with no arguments or on an unset abbreviation (:issue:`7376`, :issue:`7732`).
-  ``test -t``, for testing whether file descriptors are connected to a terminal, works for file descriptors 0, 1, and 2 (:issue:`4766`).
   It can still return incorrect results in other cases (:issue:`1228`).
-  Trying to execute scripts with Windows line endings (CRLF) produces a sensible error (:issue:`2783`).
-  Trying to execute commands with arguments that exceed the operating system limit now produces a specific error (:issue:`6800`).
-  An ``alias`` that delegates to a command with the same name no longer triggers an error about recursive completion (:issue:`7389`).
-  ``math`` now has a ``--base`` option to output the result in hexadecimal or octal (:issue:`7496`) and produces more specific error messages (:issue:`7508`).
-  ``math`` learned bitwise functions ``bitand``, ``bitor`` and ``bitxor``, used like ``math "bitand(0xFE, 5)"`` (:issue:`7281`).
-  ``math`` learned tau for those who don't like typing "2 * pi".
-  Failed redirections will now set ``$status`` (:issue:`7540`).
-  fish sets exit status in a more consistent manner after errors, including invalid expansions like ``$foo[``.
-  Using ``read --silent`` while fish is in private mode was adding these potentially-sensitive entries to the history; this has been fixed (:issue:`7230`).
-  ``read`` can now read interactively from other files, and can be used to read from the terminal via ``read </dev/tty`` (if the operating system provides ``/dev/tty``) (:issue:`7358`).
-  A new ``fish_status_to_signal`` function for transforming exit statuses to signal names has been added (:issue:`7597`, :issue:`7595`).
-  The fallback ``realpath`` builtin supports the ``-s``/``--no-symlinks`` option, like GNU realpath (:issue:`7574`).
-  ``functions`` and ``type`` now explain when a function was defined via ``source`` instead of just saying ``Defined in -``.
-  Significant performance improvements when globbing, appending to variables or in ``math``.
-  ``echo`` no longer interprets options at the beginning of an argument (eg ``echo "-n foo"``) (:issue:`7614`).
-  fish now finds user configuration even if the ``HOME`` environment variable is not set (:issue:`7620`).
-  fish no longer crashes when started from a Windows-style working directory (eg ``F:\path``) (:issue:`7636`).
-  ``fish -c`` now reads the remaining arguments into ``$argv`` (:issue:`2314`).
-  The ``pwd`` command supports the long options ``--logical`` and ``--physical``, matching other implementations (:issue:`6787`).
-  ``fish --profile`` now only starts profiling after fish is ready to execute commands (all configuration is completed). There is a new ``--profile-startup`` option that only profiles the startup and configuration process (:issue:`7648`).
-  Builtins return a maximum exit status of 255, rather than potentially overflowing. In particular, this affects ``exit``, ``return``, ``functions --query``, and ``set --query`` (:issue:`7698`, :issue:`7702`).
- It is no longer an error to run builtin with closed stdin. For example ``count <&-`` now prints 0, instead of failing.
- Blocks, functions, and builtins no longer permit redirecting to file descriptors other than 0 (standard input), 1 (standard output) and 2 (standard error). For example, ``echo hello >&5`` is now an error. This prevents corruption of internal state (#3303).

Interactive improvements
------------------------

-  fish will now always attempt to become process group leader in interactive mode (:issue:`7060`). This helps avoid hangs in certain circumstances, and allows tmux's current directory introspection to work (:issue:`5699`).
-  The interactive reader now allows ending a line in a logical operators (``&&`` and ``||``) instead of complaining about a missing command. (This was already syntactically valid, but interactive sessions didn't know about it yet).
-  The prompt is reprinted after a background job exits (:issue:`1018`).
-  fish no longer inserts a space after a completion ending in ``.``, ``,`` or ``-`` is accepted, improving completions for tools that provide dynamic completions (:issue:`6928`).
-  If a filename is invalid when first pressing :kbd:`Tab`, but becomes valid, it will be completed properly on the next attempt (:issue:`6863`).
- ``help string match/replace/<subcommand>`` will show the help for string subcommands (:issue:`6786`).
-  ``fish_key_reader`` sets the exit status to 0 when used with ``--help`` or ``--version`` (:issue:`6964`).
-  ``fish_key_reader`` and ``fish_indent`` send output from ``--version`` to standard output, matching other fish binaries (:issue:`6964`).
-  A new variable ``$status_generation`` is incremented only when the previous command produces an exit status (:issue:`6815`). This can be used, for example, to check whether a failure status is a holdover due to a background job, or actually produced by the last run command.
-  ``fish_greeting`` is now a function that reads a variable of the same name, and defaults to setting it globally.
   This removes a universal variable by default and helps with updating the greeting.
   However, to disable the greeting it is now necessary to explicitly specify universal scope (``set -U fish_greeting``) or to disable it in config.fish (:issue:`7265`).
-  Events are properly emitted after a job is cancelled (:issue:`2356`).
-  ``fish_preexec`` and ``fish_postexec`` events are no longer triggered for empty commands (:issue:`4829`, :issue:`7085`).
-  Functions triggered by the ``fish_exit`` event are correctly run when the terminal is closed or the shell receives SIGHUP (:issue:`7014`).
-  The ``fish_prompt`` event no longer fires when ``read`` is used. If
   you need a function to run any time ``read`` is invoked by a script,
   use the new ``fish_read`` event instead (:issue:`7039`).
-  A new ``fish_posterror`` event is emitted when attempting to execute a command with syntax errors (:issue:`6880`, :issue:`6816`).
-  The debugging system has now fully switched from the old numbered level to the new named category system introduced in 3.1. A number of new debugging categories have been added, including ``config``, ``path``, ``reader`` and ``screen`` (:issue:`6511`). See the output of ``fish --print-debug-categories`` for the full list.
-  The warning about read-only filesystems has been moved to a new "warning-path" debug category
   and can be disabled by setting a debug category of ``-warning-path`` (:issue:`6630`)::

     fish --debug=-warning-path

-  The enabled debug categories are now printed on shell startup (:issue:`7007`).
-  The ``-o`` short option to fish, for ``--debug-output``, works correctly instead of producing an
   invalid option error (:issue:`7254`).
-  fish's debugging can now also be enabled via ``FISH_DEBUG`` and ``FISH_DEBUG_OUTPUT`` environment variables.
   This helps with debugging when no commandline options can be passed, like when fish is called in a shebang (:issue:`7359`).
-  Abbreviations are now expanded after all command terminators (eg ``;`` or ``|``), not just space,
   as in fish 2.7.1 and before (:issue:`6970`), and after closing a command substitution (:issue:`6658`).
-  The history file is now created with user-private permissions,
   matching other shells (:issue:`6926`). The directory containing the history
   file was already private, so there should not have been any private data
   revealed.
-  The output of ``time`` is now properly aligned in all cases (:issue:`6726`, :issue:`6714`) and no longer depends on locale (:issue:`6757`).
-  The command-not-found handling has been simplified.
   When it can't find a command, fish now just executes a function called ``fish_command_not_found``
   instead of firing an event, making it easier to replace and reason about.
   Previously-defined ``__fish_command_not_found_handler`` functions with an appropriate event listener will still work (:issue:`7293`).
-  :kbd:`Control-C` handling has been reimplemented in C++ and is therefore quicker (:issue:`5259`), no longer occasionally prints an "unknown command" error (:issue:`7145`) or overwrites multiline prompts (:issue:`3537`).
-  :kbd:`Control-C` no longer kills background jobs for which job control is
   disabled, matching POSIX semantics (:issue:`6828`, :issue:`6861`).
-  Autosuggestions work properly after :kbd:`Control-C` cancels the current commmand line (:issue:`6937`).
-  History search is now case-insensitive unless the search string contains an uppercase character (:issue:`7273`).
-  ``fish_update_completions`` gained a new ``--keep`` option, which improves speed by skipping completions that already exist (:issue:`6775`, :issue:`6796`).
-  Aliases containing an embedded backslash appear properly in the output of ``alias`` (:issue:`6910`).
-  ``open`` no longer hangs indefinitely on certain systems, as a bug in ``xdg-open`` has been worked around (:issue:`7215`).
-  Long command lines no longer add a blank line after execution (:issue:`6826`) and behave better with :kbd:`Backspace` (:issue:`6951`).
-  ``functions -t`` works like the long option ``--handlers-type``, as documented, instead of producing an error (:issue:`6985`).
-  History search now flashes when it found no more results (:issue:`7362`)
-  fish now creates the path in the environment variable ``XDG_RUNTIME_DIR`` if it does not exist, before using it for runtime data storage (:issue:`7335`).
-  ``set_color --print-colors`` now also respects the bold, dim, underline, reverse, italic and background modifiers, to better show their effect (:issue:`7314`).
-  The fish Web configuration tool (``fish_config``) shows prompts correctly on Termux for Android (:issue:`7298`) and detects Windows Services for Linux 2 properly (:issue:`7027`). It no longer shows the ``history`` variable as it may be too large (one can use the History tab instead). It also starts the browser in another thread, avoiding hangs in some circumstances, especially with Firefox's Developer Edition (:issue:`7158`). Finally, a bug in the Source Code Pro font may cause browsers to hang, so this font is no longer chosen by default (:issue:`7714`).
-  ``funcsave`` gained a new ``--directory`` option to specify the location of the saved function (:issue:`7041`).
-  ``help`` works properly on MSYS2 (:issue:`7113`) and only uses ``cmd.exe`` if running on WSL (:issue:`6797`).
-  Resuming a piped job by its number, like ``fg %1``, works correctly (:issue:`7406`). Resumed jobs show the correct title in the terminal emulator (:issue:`7444`).
-  Commands run from key bindings now use the same TTY modes as normal commands (:issue:`7483`).
-  Autosuggestions from history are now case-sensitive (:issue:`3978`).
-  ``$status`` from completion scripts is no longer passed outside the completion, which keeps the status display in the prompt as the last command's status (:issue:`7555`).
-  Updated localisations for pt_BR (:issue:`7480`).
-  ``fish_trace`` output now starts with ``->`` (like ``fish --profile``), making the depth more visible (:issue:`7538`).
-  Resizing the terminal window no longer produces a corrupted prompt (:issue:`6532`, :issue:`7404`).
-  ``functions`` produces an error rather than crashing on certain invalid arguments (:issue:`7515`).
-  A crash in completions with inline variable assignment (eg ``A= b``) has been fixed (:issue:`7344`).
-  ``fish_private_mode`` may now be changed dynamically using ``set`` (:issue:`7589`), and history is kept in memory in private mode (but not stored permanently) (:issue:`7590`).
-  Commands with leading spaces may be retrieved from history with up-arrow until a new command is run, matching zsh's ``HIST_IGNORE_SPACE`` (:issue:`1383`).
-  Importing bash history or reporting errors with recursive globs (``**``) no longer hangs (:issue:`7407`, :issue:`7497`).
-  ``bind`` now shows ``\x7f`` for the del key instead of a literal DEL character (:issue:`7631`)
-  Paths containing variables or tilde expansion are only suggested when they are still valid (:issue:`7582`).
-  Syntax highlighting can now color a command as invalid even if executed quickly (:issue:`5912`).
-  Redirection targets are no longer highlighted as error if they contain variables which will likely be defined by the current commandline (:issue:`6654`).
-  fish is now more resilient against broken terminal modes (:issue:`7133`, :issue:`4873`).
-  fish handles being in control of the TTY without owning its own process group better, avoiding some hangs in special configurations (:issue:`7388`).
-  Keywords can now be colored differently by setting the ``fish_color_keyword`` variable (``fish_color_command`` is used as a fallback) (:issue:`7678`).
-  Just like ``fish_indent``, the interactive reader will indent continuation lines that follow a line ending in a backslash, ``|``, ``&&`` or ``||`` (:issue:`7694`).
-  Commands with a trailing escaped space are saved in history correctly (:issue:`7661`).
-  ``fish_prompt`` no longer mangles Unicode characters in the private-use range U+F600-U+F700. (:issue:`7723`).
-  The universal variable file, ``fish_variables``, can be made a symbolic link without it being overwritten (:issue:`7466`).
-  fish is now more resilient against ``mktemp`` failing (:issue:`7482`).


New or improved bindings
^^^^^^^^^^^^^^^^^^^^^^^^

-  As mentioned above, new special input functions ``undo`` (:kbd:`Control+\_` or :kbd:`Control+Z`) and ``redo`` (:kbd:`Alt-/`) can be used to revert changes to the command line or the pager search field (:issue:`6570`).
-  :kbd:`Control-Z` is now available for binding (:issue:`7152`).
-  Additionally, using the ``cancel`` special input function (bound to :kbd:`Escape` by default) right after fish picked an unambiguous completion will undo that (:issue:`7433`).
- ``fish_clipboard_paste`` (:kbd:`Control+V`) trims indentation from multiline commands, because fish already indents (:issue:`7662`).
-  Vi mode bindings now support ``dh``, ``dl``, ``c0``, ``cf``, ``ct``, ``cF``, ``cT``, ``ch``, ``cl``, ``y0``, ``ci``, ``ca``, ``yi``, ``ya``, ``di``, ``da``, ``d;``, ``d,``, ``o``, ``O`` and Control+left/right keys to navigate by word (:issue:`6648`, :issue:`6755`, :issue:`6769`, :issue:`7442`, :issue:`7516`).
-  Vi mode bindings support :kbd:`~` (tilde) to toggle the case of the selected character (:issue:`6908`).
-  Functions ``up-or-search`` and ``down-or-search`` (:kbd:`Up` and :kbd:`Down`) can cross empty lines, and don't activate search mode if the search fails, which makes them easier to use to move between lines in some situations.
-  If history search fails to find a match, the cursor is no longer moved. This is useful when accidentally starting a history search on a multi-line commandline.
-  The special input function ``beginning-of-history`` (:kbd:`Page Up`) now moves to the oldest search instead of the youngest - that's ``end-of-history`` (:kbd:`Page Down`).
-  A new special input function ``forward-single-char`` moves one character to the right, and if an autosuggestion is available, only take a single character from it (:issue:`7217`, :issue:`4984`).
-  Special input functions can now be joined with ``or`` as a modifier (adding to ``and``), though only some commands set an exit status (:issue:`7217`). This includes ``suppress-autosuggestion`` to reflect whether an autosuggestion was suppressed (:issue:`1419`)
-  A new function ``__fish_preview_current_file``, bound to :kbd:`Alt+O`, opens the
   current file at the cursor in a pager (:issue:`6838`, :issue:`6855`).
-  ``edit_command_buffer`` (:kbd:`Alt-E` and :kbd:`Alt-V`) passes the cursor position
   to the external editor if the editor is recognized (:issue:`6138`, :issue:`6954`).
-  ``__fish_prepend_sudo`` (:kbd:`Alt-S`) now toggles a ``sudo`` prefix (:issue:`7012`) and avoids shifting the cursor (:issue:`6542`).
-  ``__fish_prepend_sudo`` (:kbd:`Alt-S`) now uses the previous commandline if the current one is empty,
   to simplify rerunning the previous command with ``sudo`` (:issue:`7079`).
-  ``__fish_toggle_comment_commandline`` (:kbd:`Alt-#`) now uncomments and presents the last comment
   from history if the commandline is empty (:issue:`7137`).
-  ``__fish_whatis_current_token`` (:kbd:`Alt-W`) prints descriptions for functions and builtins (:issue:`7191`, :issue:`2083`).
-  The definition of "word" and "bigword" for movements was refined, fixing (eg) vi mode's behavior with :kbd:`e` on the second-to-last char, and bigword's behavior with single-character words and non-blank non-graphical characters (:issue:`7353`, :issue:`7354`, :issue:`4025`, :issue:`7328`, :issue:`7325`)
-  fish's clipboard bindings now also support Windows Subsystem for Linux via PowerShell and clip.exe (:issue:`7455`, :issue:`7458`) and will properly copy newlines in multi-line commands.
-  Using the ``*-jump`` special input functions before typing anything else no longer crashes fish.
-  Completing variable overrides (``foo=bar``) could replace the entire thing with just the completion in some circumstances. This has been fixed (:issue:`7398`).

Improved prompts
^^^^^^^^^^^^^^^^

-  The default and example prompts print the correct exit status for
   commands prefixed with ``not`` (:issue:`6566`).
-  git prompts include all untracked files in the repository, not just those in the current
   directory (:issue:`6086`).
-  The git prompts correctly show stash states (:issue:`6876`, :issue:`7136`) and clean states (:issue:`7471`).
-  The Mercurial prompt correctly shows untracked status (:issue:`6906`), and by default only shows the branch for performance reasons.
   A new variable ``$fish_prompt_hg_show_informative_status`` can be set to enable more information.
-  The ``fish_vcs_prompt`` passes its arguments to the various VCS prompts that it calls (:issue:`7033`).
-  The Subversion prompt was broken in a number of ways in 3.1.0 and has been restored (:issue:`6715`, :issue:`7278`).
-  A new helper function ``fish_is_root_user`` simplifies checking for superuser privilege (:issue:`7031`, :issue:`7123`).
-  New colorschemes - ``ayu Light``, ``ayu Dark`` and ``ayu Mirage`` (:issue:`7596`).
-  Bugs related to multiline prompts, including repainting (:issue:`5860`) or navigating directory history (:issue:`3550`) leading to graphical glitches have been fixed.
-  The ``nim`` prompt now handles vi mode better (:issue:`6802`)

Improved terminal support
^^^^^^^^^^^^^^^^^^^^^^^^^

-  A new variable, ``fish_vi_force_cursor``, can be set to force ``fish_vi_cursor`` to attempt changing the cursor
   shape in vi mode, regardless of terminal (:issue:`6968`). The ``fish_vi_cursor`` option ``--force-iterm`` has been deprecated.
-  ``diff`` will now colourize output, if supported (:issue:`7308`).
-  Autosuggestions appear when the cursor passes the right prompt (:issue:`6948`) or wraps to the next line (:issue:`7213`).
-  The cursor shape in Vi mode changes properly in Windows Terminal (:issue:`6999`, :issue:`6478`).
-  The spurious warning about terminal size in small terminals has been removed (:issue:`6980`).
-  Dynamic titles are now enabled in Alacritty (:issue:`7073`) and emacs' vterm (:issue:`7122`).
-  Current working directory updates are enabled in foot (:issue:`7099`) and WezTerm (:issue:`7649`).
-  The width computation for certain emoji agrees better with terminals (especially flags). (:issue:`7237`).
-  Long command lines are wrapped in all cases, instead of sometimes being put on a new line (:issue:`5118`).
-  The pager is properly rendered with long command lines selected (:issue:`2557`).
-  Sessions with right prompts can be resized correctly in terminals that handle reflow, like GNOME Terminal (and other VTE-based terminals), upcoming Konsole releases and Alacritty. This detection can be overridden with the new ``fish_handle_reflow`` variable (:issue:`7491`).
-  fish now sets terminal modes sooner, which stops output from appearing before the greeting and prompt are ready (:issue:`7489`).
-  Better detection of new Konsole versions for true color support and cursor shape changing.
-  fish no longer attempts to modify the terminal size via ``TIOCSWINSZ``, improving compatibility with Kitty (:issue:`6994`).

Completions
^^^^^^^^^^^

-  Added completions for

   -  ``7z``, ``7za`` and ``7zr`` (:issue:`7220`)
   -  ``alias`` (:issue:`7035`)
   -  ``alternatives`` (:issue:`7616`)
   -  ``apk`` (:issue:`7108`)
   -  ``asciidoctor`` (:issue:`7000`)
   -  ``avifdec`` and ``avifenc`` (:issue:`7674`)
   -  ``bluetoothctl`` (:issue:`7438`)
   -  ``cjxl`` and ``djxl`` (:issue:`7673`)
   -  ``cmark`` (:issue:`7000`)
   -  ``create_ap`` (:issue:`7096`)
   -  ``deno`` (:issue:`7138`)
   -  ``dhclient`` (:issue:`6684`)
   -  Postgres-related commands ``dropdb``, ``createdb``, ``pg_restore``, ``pg_dump`` and
      ``pg_dumpall`` (:issue:`6620`)
   -  ``dotnet`` (:issue:`7558`)
   -  ``downgrade`` (:issue:`6751`)
   -  ``gapplication``, ``gdbus``, ``gio`` and ``gresource`` (:issue:`7300`)
   -  ``gh`` (:issue:`7112`)
   -  ``gitk``
   -  ``groups`` (:issue:`6889`)
   -  ``hashcat`` (:issue:`7746`)
   -  ``hikari`` (:issue:`7083`)
   -  ``icdiff`` (:issue:`7503`)
   -  ``imv`` (:issue:`6675`)
   -  ``john`` (:issue:`7746`)
   -  ``julia`` (:issue:`7468`)
   -  ``k3d`` (:issue:`7202`)
   -  ``ldapsearch`` (:issue:`7578`)
   -  ``lightdm`` and ``dm-tool`` (:issue:`7624`)
   -  ``losetup`` (:issue:`7621`)
   -  ``micro`` (:issue:`7339`)
   -  ``mpc`` (:issue:`7169`)
   -  Metasploit's ``msfconsole``, ``msfdb`` and ``msfvenom`` (:issue:`6930`)
   -  ``mtr`` (:issue:`7638`)
   -  ``mysql`` (:issue:`6819`)
   -  ``ncat``, ``nc.openbsd``, ``nc.traditional`` and ``nmap`` (:issue:`6873`)
   -  ``openssl`` (:issue:`6845`)
   -  ``prime-run`` (:issue:`7241`)
   -  ``ps2pdf{12,13,14,wr}`` (:issue:`6673`)
   -  ``pyenv`` (:issue:`6551`)
   -  ``rst2html``, ``rst2html4``, ``rst2html5``, ``rst2latex``,
      ``rst2man``, ``rst2odt``, ``rst2pseudoxml``, ``rst2s5``,
      ``rst2xetex``, ``rst2xml`` and ``rstpep2html`` (:issue:`7019`)
   -  ``spago`` (:issue:`7381`)
   -  ``sphinx-apidoc``, ``sphinx-autogen``, ``sphinx-build`` and
      ``sphinx-quickstart`` (:issue:`7000`)
   -  ``strace`` (:issue:`6656`)
   -  systemd's ``bootctl``, ``coredumpctl``, ``hostnamectl`` (:issue:`7428`), ``homectl`` (:issue:`7435`), ``networkctl`` (:issue:`7668`) and ``userdbctl`` (:issue:`7667`)
   -  ``tcpdump`` (:issue:`6690`)
   -  ``tig``
   -  ``traceroute`` and ``tracepath`` (:issue:`6803`)
   -  ``windscribe`` (:issue:`6788`)
   -  ``wireshark``, ``tshark``, and ``dumpcap``
   -  ``xbps-*`` (:issue:`7239`)
   -  ``xxhsum``, ``xxh32sum``, ``xxh64sum`` and ``xxh128sum`` (:issue:`7103`)
   -  ``yadm`` (:issue:`7100`)
   -  ``zopfli`` and ``zopflipng`` (:issue:`6872`)

-  Lots of improvements to completions, including:

   -  ``git`` completions can complete the right and left parts of a commit range like ``from..to`` or ``left...right``.
   -  Completion scripts for custom Git subcommands like ``git-xyz`` are now loaded with Git completions. The completions can now be defined directly on the subcommand (using ``complete git-xyz``), and completion for ``git xyz`` will work. (:issue:`7075`, :issue:`7652`, :issue:`4358`)
   -  ``make`` completions no longer second-guess make's file detection, fixing target completion in some cases (:issue:`7535`).
   -  Command completions now correctly print the description even if the command was fully matched (like in ``ls<TAB>``).
   -  ``set`` completions no longer hide variables starting with ``__``, they are sorted last instead.

-  Improvements to the manual page completion generator (:issue:`7086`, :issue:`6879`, :issue:`7187`).
-  Significant performance improvements to completion of the available commands (:issue:`7153`), especially on macOS Big Sur where there was a significant regression (:issue:`7365`, :issue:`7511`).
-  Suffix completion using ``__fish_complete_suffix`` uses the same fuzzy matching logic as normal file completion, and completes any file but sorts files with matching suffix first (:issue:`7040`, :issue:`7547`). Previously, it only completed files with matching suffix.

For distributors
----------------

-  fish has a new interactive test driver based on pexpect, removing the optional dependency on expect (and adding an optional dependency on pexpect) (:issue:`5451`, :issue:`6825`).
-  The CHANGELOG was moved to restructured text, allowing it to be included in the documentation (:issue:`7057`).
-  fish handles ncurses installed in a non-standard prefix better (:issue:`6600`, :issue:`7219`), and uses variadic tparm on NetBSD curses (:issue:`6626`).
-  The Web-based configuration tool no longer uses an obsolete Angular version (:issue:`7147`).
-  The fish project has adopted the Contributor Covenant code of conduct (:issue:`7151`).

Deprecations and removed features
---------------------------------

-  The ``fish_color_match`` variable is no longer used. (Previously this controlled the color of matching quotes and parens when using ``read``).
-  fish 3.2.0 will be the last release in which the redirection to standard error with the ``^`` character is enabled.
   The ``stderr-nocaret`` feature flag will be changed to "on" in future releases.
-  ``string`` is now a reserved word and cannot be used for function names (see above).
-  ``fish_vi_cursor``'s option ``--force-iterm`` has been deprecated (see above).
-  ``command``, ``jobs`` and ``type`` long-form option ``--quiet`` is deprecated in favor of ``--query`` (see above).
-  The ``fish_command_not_found`` event is no longer emitted, instead there is a function of that name.
   By default it will call a previously-defined ``__fish_command_not_found_handler``. To emit the event manually use ``emit fish_command_not_found``.
-  The ``fish_prompt`` event no longer fires when ``read`` is used. If
   you need a function to run any time ``read`` is invoked by a script,
   use the new ``fish_read`` event instead (:issue:`7039`).
-  To disable the greeting message permanently it is no longer enough to just run ``set fish_greeting`` interactively as it is
   no longer implicitly a universal variable. Use ``set -U fish_greeting`` or disable it in config.fish with ``set -g fish_greeting``.
-  The long-deprecated and non-functional ``-m``/``--read-mode`` options to ``read`` were removed in 3.1b1. Using the short form, or a never-implemented ``-B`` option, no longer crashes fish (:issue:`7659`).
-  With the addition of new categories for debug options, the old numbered debugging levels have been removed.

For distributors and developers
-------------------------------

-  fish source tarballs are now distributed using the XZ compression
   method (:issue:`5460`).
-  The fish source tarball contains an example FreeDesktop entry and icon.
-  The CMake variable ``MAC_CODESIGN_ID`` can now be set to "off" to disable code-signing (:issue:`6952`, :issue:`6792`).
-  Building on on macOS earlier than 10.13.6 succeeds, instead of failing on code-signing (:issue:`6791`).
-  The pkg-config file now uses variables to ensure paths used are portable across prefixes.
-  The default values for the ``extra_completionsdir``, ``extra_functionsdir``
   and ``extra_confdir`` options now use the installation prefix rather than ``/usr/local`` (:issue:`6778`).
-  A new CMake variable ``FISH_USE_SYSTEM_PCRE2`` controls whether fish
   builds with the system-installed PCRE2, or the version it bundles. By
   default it prefers the system library if available, unless Mac
   codesigning is enabled (:issue:`6952`).
-  Running the full interactive test suite now requires Python 3.5+ and the pexpect package (:issue:`6825`); the expect package is no longer required.
-  Support for Python 2 in fish's tools (``fish_config`` and the manual page completion generator) is no longer guaranteed. Please use Python 3.5 or later (:issue:`6537`).
-  The Web-based configuration tool is compatible with Python 3.10  (:issue:`7600`) and no longer requires Python's distutils package (:issue:`7514`).
-  fish 3.2 is the last release to support Red Hat Enterprise Linux & CentOS version 6.

--------------
2021-03-05 08:47:29 +00:00
wiz
74ffb8b551 bash: update to 5.1.4.
That is, 5.1 with the four post-release patches available so far.

This is a terse description of the new features added to bash-5.1 since
the release of bash-5.0.  As always, the manual page (doc/bash.1) is
the place to look for complete descriptions.

1. New Features in Bash

a. `bind -x' now supports different bindings for different editing modes and
   keymaps.

b. Bash attempts to optimize the number of times it forks when executing
   commands in subshells and from `bash -c'.

c. Here documents and here strings now use pipes for the expanded document if
   it's smaller than the pipe buffer size, reverting to temporary files if it's
   larger.

d. There are new loadable builtins: mktemp, accept, mkfifo, csv, cut/lcut

e. In posix mode, `trap -p' now displays signals whose disposition is SIG_DFL
   and those that were SIG_IGN when the shell starts.

f. The shell now expands the history number (e.g., in PS1) even if it is not
   currently saving commands to the history list.

g. `read -e' may now be used with arbitrary file descriptors (`read -u N').

h. The `select' builtin now runs traps if its internal call to the read builtin
   is interrupted by a signal.

i. SRANDOM: a new variable that expands to a 32-bit random number that is not
   produced by an LCRNG, and uses getrandom/getentropy, falling back to
   /dev/urandom or arc4random if available. There is a fallback generator if
   none of these are available.

j. shell-transpose-words: a new bindable readline command that uses the same
   definition of word as shell-forward-word, etc.

k. The shell now adds default bindings for shell-forward-word,
   shell-backward-word, shell-transpose-words, and shell-kill-word.

l. Bash now allows ARGV0 appearing in the initial shell environment to set $0.

m. If `unset' is executed without option arguments, bash tries to unset a shell
   function if a name argument cannot be a shell variable name because it's not
   an identifier.

n. The `test -N' operator uses nanosecond timestamp granularity if it's
   available.

o. Bash posix mode now treats assignment statements preceding shell function
   definitions the same as in its default mode, since POSIX has changed and
   no longer requires those assignments to persist after the function returns
   (POSIX interp 654).

p. BASH_REMATCH is no longer readonly.

q. wait: has a new -p VARNAME option, which stores the PID returned by `wait -n'
   or `wait' without arguments.

r. Sorting the results of pathname expansion now uses byte-by-byte comparisons
   if two strings collate equally to impose a total order; the result of a
   POSIX interpretation.

s. Bash now allows SIGINT trap handlers to execute recursively.

t. Bash now saves and restores state around setting and unsetting posix mode,
   instead of having unsetting posix mode set a known state.

u. Process substitution is now available in posix mode.

v. READLINE_MARK: a new variable available while executing commands bound with
   `bind -x', contains the value of the mark.

w. Bash removes SIGCHLD from the set of blocked signals if it's blocked at shell
   startup.

x. `test -v N' can now test whether or not positional parameter N is set.

y. `local' now honors the `-p' option to display all local variables at the
    current context.

z. The `@a' variable transformation now prints attributes for unset array
   variables.

aa. The `@A' variable transformation now prints a declare command that sets a
    variable's attributes if the variable has attributes but is unset.

bb. `declare' and `local' now have a -I option that inherits attributes and
    value from a variable with the same name at a previous scope.

cc. When run from a -c command, `jobs' now reports the status of completed jobs.

dd. New `U', `u', and `L' parameter transformations to convert to uppercase,
    convert first character to uppercase, and convert to lowercase,
    respectively.

ee. PROMPT_COMMAND: can now be an  array variable, each element of which can
    contain a command to be executed like a string PROMPT_COMMAND variable.

ff. `ulimit' has a -R option to report and set the RLIMIT_RTTIME resource.

gg. Associative arrays may be assigned using a list of key-value pairs within
    a compound assignment. Compound assignments where the words are not of
    the form [key]=value are assumed to be key-value assignments. A missing or
    empty key is an error; a missing value is treated as NULL. Assignments may
    not mix the two forms.

hh. New `K' parameter transformation to display associative arrays as key-
    value pairs.

ii. Writing history to syslog now handles messages longer than the syslog max
    length by writing multiple messages with a sequence number.

jj. SECONDS and RANDOM may now be assigned using arithmetic expressions, since
    they are nominally integer variables. LINENO is not an integer variable.

kk. Bash temporarily suppresses the verbose option when running the DEBUG trap
    while running a command from the `fc' builtin.

ll. `wait -n' now accepts a list of job specifications as arguments and will
    wait for the first one in the list to change state.

mm. The associative array implementation can now dynamically increase the
    size of the hash table based on insertion patterns.

nn. HISTFILE is now readonly in a restricted shell.

oo. The bash malloc now returns memory that is 16-byte aligned on 64-bit
    systems.

pp. If the hash builtin is listing hashed filenames portably, don't print
   anything if the table is empty.

qq. GLOBIGNORE now ignores `.' and `..' as a terminal pathname component.

rr. Bash attempts to optimize away forks in the last command in a function body
    under appropriate circumstances.

ss. The globbing code now uses fnmatch(3) to check collation elements (if
    available) even in cases without multibyte characters.

tt. The `fg' and `bg' builtins now return an error in a command substitution
    when asked to restart a job inherited from the parent shell.

uu. The shell now attempts to unlink all FIFOs on exit, whether a consuming
    process has finished with them or not.

vv. There is a new contributed loadable builtin: asort.

2. New Features in Readline

a. If a second consecutive completion attempt produces matches where the first
   did not, treat it as a new completion attempt and insert a match as
   appropriate.

b. Bracketed paste mode works in more places: incremental search strings, vi
   overstrike mode, character search, and reading numeric arguments.

c. Readline automatically switches to horizontal scrolling if the terminal has
   only one line.

d. Unbinding all key sequences bound to a particular readline function now
   descends into keymaps for multi-key sequences.

e. rl-clear-display: new bindable command that clears the screen and, if
   possible, the scrollback buffer (bound to emacs mode M-C-l by default).

f. New active mark and face feature: when enabled, it will highlight the text
   inserted by a bracketed paste (the `active region') and the text found by
   incremental and non-incremental history searches. This is tied to bracketed
   paste and can be disabled by turning off bracketed paste.

g. Readline sets the mark in several additional commands.

h. Bracketed paste mode is enabled by default.

i. Readline tries to take advantage of the more regular structure of UTF-8
   characters to identify the beginning and end of characters when moving
   through the line buffer.

j. The bindable operate-and-get-next command (and its default bindings) are
   now part of readline instead of a bash-specific addition.

k. The signal cleanup code now blocks SIGINT while processing after a SIGINT.
2021-01-04 10:39:23 +00:00
ryoon
36094f9597 zsh: Do not hardcode /usr/pkg/pkgdb
Bump PKGREVISION.
TODO: _bsd_pkg should be usable for non-BSD platforms.
2020-12-25 21:47:47 +00:00
nia
f6dd9d2f87 Revbump packages with a runtime Python dep but no version prefix.
For the Python 3.8 default switch.
2020-12-04 20:44:57 +00:00
ryoon
1729053da1 zsh: Follow pkgdb migration to fix pkg_info(1) suggestion on NetBSD
Bump PKGREVISION.
2020-12-04 15:23:02 +00:00
schmonz
b317ae3075 Update to 6.8.1. From the changelog:
- Fix build on musl-libc platforms (#49)
- Default CFLAGS of -g -O2 if user didn't specify any
- Fix a bug on Linux systems (#48)
- Add an OKSH_VERSION variable that gives the user the oksh version
  (KSH_VERSION and SH_VERSION are still their original values)
- Default to ST_MTIM when using --no-thanks
- Allow some code to be commented out when not compiling with curses
2020-11-29 19:31:43 +00:00
micha
1303928ca8 pbosh: Update to 20201125
Changelog from AN-2020-11-04:
- Makefile system: include/schily/nlsdefs.h no longer by default defines
  the macro __() because this is in conflict with definitions that are
  present in the system include files from newer HP-UX versions.

  Thanks to Rudi Blom for reporting.

- Bourne Shell: If a background job did finish during an implicit wait
  for a foreground job, the exit code for the background job was lost.

  This was caused by a forgotten call to statjob(jp, &si, 0, 0) in
  the function waitjob();

  Thanks to Koichi Nakashima for reporting.

- Bourne Shell: The changes from 2020-10-09 to keep the exit code from
  jobs like "(sleep 10; exit 17)&" in the job list, caused a command like

      cat /etc/termcap |more

  to stop after the first page of output because "more" died from trying
  to read the answer for continuing the output as it was not in the
  current foreground process group from the tty. This was the result of
  a forgotten call to monitor = ismonitor(xflags); in xec.c

- Bourne Shell: The changes from 2020-10-09 to keep the exit code from
  jobs like "(sleep 10; exit 17)&" could cause some wait commands to hang
  infinitely because the job list had an endless loop. The new code
  avoids to create the endless loop in the job list.

  Thanks to Koichi Nakashima for reporting.

- Bourne Shell: The changes for jobcontrol in schily-2020-10-09 could.
  cause bosh to dump core with the builtin fg(1) command because "thisjob".
  was a NULL pointer.

  We add a new lastthisjob variable to work around this problem.

  Thanks for Noci Sonack for reporting.

- bsh/Bourne Shell: str2sig() has been enhanced to support e.g.
  RTMIN+20 or RTMAX-20 as alias on platforms with 30 RT signals.

  Note that this currently only works on non-POSIX platforms like Linux
  where our private implementation is used. On Solaris, this would need
  to wait until compatibility to POSIX issue 8 has been implemented
  in the libc from Solaris.


Changelog from AN-2020-11-25:
- Makefile System: Added support for MacOS on arm64

  Thanks to a hint from Ryan Schmidt from macports

  Note that due to outstanding replies to recent changes in configure,
  it could up to now not be verified that all configure tests now work in
  a way that results in correct overall results. See below for an in
  depth report on the changes.

- Makefile System: autoconf (config.guess & config.sub) now supports
  the new arm64 Apple systems.

  Thanks to Ryan Schmidt from macports for provinding the needed uname(1)
  output.

- Makefile System: Added a new shell script "autoconf/uname" that helps
  to create shell scrips that allow to emulate an alien host system in
  order to test the correct behavior of configure.guess and configure.sub
  on the main development platform.

  This helps to adapt configure.guess and configure.sub to new platforms
  in the future.

- Makefile System: The new clang compiler as published with the upcomming
  ARM macs has been preconfigured with

      -Werror -Wimplicit-function-declaration

  as the default behavior and thus is in conflict with the existing base
  assumption of the autoconf system that minimalistic C-code used for
  compile/link allows to check for the existence of a specific function
  in libc without a need to know which system #include file is used to
  define a prototype for that function.

  This clang version, as a result of this default, behaves like a C++
  compiler and aborts if a function is used with no previous function
  prototype. This caused most of the existing autoconf test to fail with
  error messages about missing prototypes.

  We implemented a workaround using these methods for the identified
  problems:

  - Most of the exit() calls in the various main() functions have
    been replaced by return() to avoid a need to
    #include <stdlib.h> in special since these test may be the
    case for layered tests that #include files from the higher
    level parts.

  - Many autoconf tests programs now #include more system include
    files, e.g. stdlib.h and unistd.h to avoid missing prototype
    errors. This cannot reliably be done in tests that are used as
    a base for higher level tests where the high level test
    #includes own system include files, since older platforms do
    not support to #include the same file twice.

    So this is tricky...

  - A test for a Linux glibc bug caused by incorect #pragma weak
    usage inside glibc that prevents one or more functions from
    ecvt()/fcvt()/gcvt() from being usable outside glibc now uses
    hand-written prototypes for some of the libc interface
    functions in order to avoid using the system includes. If we
    did not do that, we could not use ecvt()/fcvt()/gcvt() on
    MacOS anymore.

  Thanks to Ryan Schmidt from macports for reporting and for the given
  help that was needed for remote debugging.

  Please send the needed feedback on whether the current state of the
  configure script results on correct autoconf results on the M1 Macs.
2020-11-25 16:00:09 +00:00
micha
d04833ae16 bosh: Update to 20201125
Changelog from AN-2020-11-04:
- Makefile system: include/schily/nlsdefs.h no longer by default defines
  the macro __() because this is in conflict with definitions that are
  present in the system include files from newer HP-UX versions.

  Thanks to Rudi Blom for reporting.

- Bourne Shell: If a background job did finish during an implicit wait
  for a foreground job, the exit code for the background job was lost.

  This was caused by a forgotten call to statjob(jp, &si, 0, 0) in
  the function waitjob();

  Thanks to Koichi Nakashima for reporting.

- Bourne Shell: The changes from 2020-10-09 to keep the exit code from
  jobs like "(sleep 10; exit 17)&" in the job list, caused a command like

      cat /etc/termcap |more

  to stop after the first page of output because "more" died from trying
  to read the answer for continuing the output as it was not in the
  current foreground process group from the tty. This was the result of
  a forgotten call to monitor = ismonitor(xflags); in xec.c

- Bourne Shell: The changes from 2020-10-09 to keep the exit code from
  jobs like "(sleep 10; exit 17)&" could cause some wait commands to hang
  infinitely because the job list had an endless loop. The new code
  avoids to create the endless loop in the job list.

  Thanks to Koichi Nakashima for reporting.

- Bourne Shell: The changes for jobcontrol in schily-2020-10-09 could.
  cause bosh to dump core with the builtin fg(1) command because "thisjob".
  was a NULL pointer.

  We add a new lastthisjob variable to work around this problem.

  Thanks for Noci Sonack for reporting.

- bsh/Bourne Shell: str2sig() has been enhanced to support e.g.
  RTMIN+20 or RTMAX-20 as alias on platforms with 30 RT signals.

  Note that this currently only works on non-POSIX platforms like Linux
  where our private implementation is used. On Solaris, this would need
  to wait until compatibility to POSIX issue 8 has been implemented
  in the libc from Solaris.


Changelog from AN-2020-11-25:
- Makefile System: Added support for MacOS on arm64

  Thanks to a hint from Ryan Schmidt from macports

  Note that due to outstanding replies to recent changes in configure,
  it could up to now not be verified that all configure tests now work in
  a way that results in correct overall results. See below for an in
  depth report on the changes.

- Makefile System: autoconf (config.guess & config.sub) now supports
  the new arm64 Apple systems.

  Thanks to Ryan Schmidt from macports for provinding the needed uname(1)
  output.

- Makefile System: Added a new shell script "autoconf/uname" that helps
  to create shell scrips that allow to emulate an alien host system in
  order to test the correct behavior of configure.guess and configure.sub
  on the main development platform.

  This helps to adapt configure.guess and configure.sub to new platforms
  in the future.

- Makefile System: The new clang compiler as published with the upcomming
  ARM macs has been preconfigured with

      -Werror -Wimplicit-function-declaration

  as the default behavior and thus is in conflict with the existing base
  assumption of the autoconf system that minimalistic C-code used for
  compile/link allows to check for the existence of a specific function
  in libc without a need to know which system #include file is used to
  define a prototype for that function.

  This clang version, as a result of this default, behaves like a C++
  compiler and aborts if a function is used with no previous function
  prototype. This caused most of the existing autoconf test to fail with
  error messages about missing prototypes.

  We implemented a workaround using these methods for the identified
  problems:

  - Most of the exit() calls in the various main() functions have
    been replaced by return() to avoid a need to
    #include <stdlib.h> in special since these test may be the
    case for layered tests that #include files from the higher
    level parts.

  - Many autoconf tests programs now #include more system include
    files, e.g. stdlib.h and unistd.h to avoid missing prototype
    errors. This cannot reliably be done in tests that are used as
    a base for higher level tests where the high level test
    #includes own system include files, since older platforms do
    not support to #include the same file twice.

    So this is tricky...

  - A test for a Linux glibc bug caused by incorect #pragma weak
    usage inside glibc that prevents one or more functions from
    ecvt()/fcvt()/gcvt() from being usable outside glibc now uses
    hand-written prototypes for some of the libc interface
    functions in order to avoid using the system includes. If we
    did not do that, we could not use ecvt()/fcvt()/gcvt() on
    MacOS anymore.

  Thanks to Ryan Schmidt from macports for reporting and for the given
  help that was needed for remote debugging.

  Please send the needed feedback on whether the current state of the
  configure script results on correct autoconf results on the M1 Macs.
2020-11-25 15:52:06 +00:00
schmonz
615ce6851e Update to 6.7.1. From the git log:
- Solaris has a function named sig2str. Rename ours oksh_sig2str.
- Pull in latest upstream code, which is #43 from Michael Forney.
- Make BINDIR and MANDIR actually depend on PREFIX.
- Variables have $'s.
- Older Linux has clock_gettime in librt; check for that.
- configure: improve clock_gettime diagnostic messages.
- HP-UX support.
- Add --enable-lto for those who want link-time optimization.
- Update to latest OpenBSD code.
- Make cross compiling a real possibility, with instructions.
- Fix typo.
- For loop initial declarations is a better C99 check for older gcc.
- Update from OpenBSD.
- Separate out compilation and linking in configure tests.
- Only add -std=gnu99 if using --no-thanks.
- If using --no-thanks and you didn't specify the environment
- --no-thanks isn't just for cross compiling
- Default to ST_MTIM when using --no-thanks
2020-10-26 10:21:47 +00:00
schmonz
f674b99a82 Use archive.org for HOMEPAGE. 2020-10-26 10:10:54 +00:00
micha
1cf93ddddf shells/pbosh: Update to 20201009
New features with AN-2020-09-04:
- autoconf: congig.guess: FreeBSD on 64 bit ARM returns arm64 from
  uname -m; this was previously not supported and rejected by config.sub.
  We now convert "arm64" into "aarch64" in config.guess to get the usual
  expected results.

- Makefile system: RULES/rules.env The environment variables FIGNORE,
  LD_LIBRARY_PATH LD_LIBRARY_PATH_32 and LD_LIBRARY_PATH_64 are now
  unexported from the enviroment.

  In special FIGNORE is dangerous, as it is frequently used by bash
  users but tells ksh93 to modify it's behavior with "echo *" and
  this may cause strange things with our makefiles in case that
  /bin/sh is ksh92. This applies e.g. to Oracle Solaris 11 and
  OpenSolaris.

- Bourne Shell: added $(RM) -f $(DEST_DIR)$(INSBASE)/xpg4/bin/bosh
  to the Makefile in the commands before creating the symlink
  xpg4/bin/bosh to bosh to permit to call "make install" more than
  once without causing an error.

- Bourne Shell: version.h now contains a new version date.

New features with AN-2020-10-09:
- autoconf: Added support for newer HP-UX versions on Itanium.

  Thanks to Rudi Blom for reporting and making a change proposal.

- Bourne Shell: The "wait" builtin is now POSIX compliant and returns 127
  in $? in case that a process id to be waited for does not exist.

- Bourne Shell: The exit code retrieved by $/ no longer is masked by 0xFF
  when this code originates from a wait(1) call.

  Thanks to Koichi Nakashima for reporting

- Bourne Shell: The man page has been enhanced for a better description
  of the exit code constraitns.

  Thanks to Koichi Nakashima for reporting

- Bourne Shell: The exit code from background jobs is now kept until
  the builtin wait(1) is called.

  Note that this introduces the need to call "wait" from time to time
  in order to free shell job management resources.

  Thanks to Koichi Nakashima for reporting

- Bourne Shell: The changes to keep exit codes for background jobs
  caused problems that triggered a SIGSEGV in the shell with jobs like:

      (sleep 10; exit 17)&

  This needed a restructuring in the job management implementation.

- Bourne Shell: Since the next POSIX standard will make it optional
  whether sig2str() and str2sig() deal with entries for "EXIT" / 0,
  we enhanced the trap2str() and str2trap() interfaces to handle
  "EXIT" / 0 and now call these functions before sig2str() and
  str2sig().

- Bourne Shell: a new version date has been created.
2020-10-23 16:28:56 +00:00
micha
268a79c88e shells/bosh: Update to 20201009
New features with AN-2020-09-04:
- autoconf: congig.guess: FreeBSD on 64 bit ARM returns arm64 from
  uname -m; this was previously not supported and rejected by config.sub.
  We now convert "arm64" into "aarch64" in config.guess to get the usual
  expected results.

- Makefile system: RULES/rules.env The environment variables FIGNORE,
  LD_LIBRARY_PATH LD_LIBRARY_PATH_32 and LD_LIBRARY_PATH_64 are now
  unexported from the enviroment.

  In special FIGNORE is dangerous, as it is frequently used by bash
  users but tells ksh93 to modify it's behavior with "echo *" and
  this may cause strange things with our makefiles in case that
  /bin/sh is ksh92. This applies e.g. to Oracle Solaris 11 and
  OpenSolaris.

- Bourne Shell: added $(RM) -f $(DEST_DIR)$(INSBASE)/xpg4/bin/bosh
  to the Makefile in the commands before creating the symlink
  xpg4/bin/bosh to bosh to permit to call "make install" more than
  once without causing an error.

- Bourne Shell: version.h now contains a new version date.

New features with AN-2020-10-09:
- autoconf: Added support for newer HP-UX versions on Itanium.

  Thanks to Rudi Blom for reporting and making a change proposal.

- Bourne Shell: The "wait" builtin is now POSIX compliant and returns 127
  in $? in case that a process id to be waited for does not exist.

- Bourne Shell: The exit code retrieved by $/ no longer is masked by 0xFF
  when this code originates from a wait(1) call.

  Thanks to Koichi Nakashima for reporting

- Bourne Shell: The man page has been enhanced for a better description
  of the exit code constraitns.

  Thanks to Koichi Nakashima for reporting

- Bourne Shell: The exit code from background jobs is now kept until
  the builtin wait(1) is called.

  Note that this introduces the need to call "wait" from time to time
  in order to free shell job management resources.

  Thanks to Koichi Nakashima for reporting

- Bourne Shell: The changes to keep exit codes for background jobs
  caused problems that triggered a SIGSEGV in the shell with jobs like:

      (sleep 10; exit 17)&

  This needed a restructuring in the job management implementation.

- Bourne Shell: Since the next POSIX standard will make it optional
  whether sig2str() and str2sig() deal with entries for "EXIT" / 0,
  we enhanced the trap2str() and str2trap() interfaces to handle
  "EXIT" / 0 and now call these functions before sig2str() and
  str2sig().

- Bourne Shell: a new version date has been created.
2020-10-23 16:26:35 +00:00
gutteridge
576a0917f5 shellcheck: add $HOMEPAGE 2020-10-14 00:23:34 +00:00
jperkin
861be94cde shells: Add shellcheck. 2020-10-13 11:17:14 +00:00
jperkin
c68f1b81ee shellcheck: Import version 0.7.1.
ShellCheck is a GPLv3 tool that gives warnings and suggestions for
bash/sh shell scripts.

The goals of ShellCheck are:

* To point out and clarify typical beginner's syntax issues that cause
  a shell to give cryptic error messages.

* To point out and clarify typical intermediate level semantic problems
  that cause a shell to behave strangely and counter-intuitively.

* To point out subtle caveats, corner cases and pitfalls that may cause
  an advanced user's otherwise working script to fail under future
  circumstances.
2020-10-13 11:16:19 +00:00
micha
83a3971c2a shells/pbosh: Specify minimum required version of smake tool dependency
This is required because devel/smake/Makefile.common must be recent enough.
2020-09-28 10:40:25 +00:00
micha
8fbfb32dc1 shells/bosh: Specify minimum required version of smake tool dependency
This is required because devel/smake/Makefile.common must be recent enough.
2020-09-28 10:39:31 +00:00
wiz
d107fc9693 *: use MASTER_SITE_PERL_CPAN 2020-09-08 13:16:33 +00:00
kim
b3f2f0abe1 Use http with ftp.funet.fi 2020-09-02 22:16:48 +00:00
wiz
00da7815c0 *: bump PKGREVISION for perl-5.32. 2020-08-31 18:06:29 +00:00
micha
819ee923dc shells/pbosh: Update to 20200812
New features with AN-2020-07-18:
- Bourne Shell: A new symlink from /opt/schily/xpg4/bin/bosh to
  /opt/schily/xpg4/bin/sh is created when "smake install" is called.
  This helps people to call "bosh" in strict POSIX mode using the
  command line name "bosh" by putting /opt/schily/xpg4/bin in PATH
  before /opt/schily/bin, where the bosh implements better backwards
  cmpatibility to the Bourne Shell by default than a strictly POSIX
  compliant bosh would do. /opt/schily/xpg4/bin/bosh behaves the same
  as "/opt/schily/bin/bosh -o posix".

  Thanks to  Koichi Nakashima for reporting.


New features with AN-2020-08-12:
- autoconf: added a new test for the existence of <sys/auxv.h>

- autoconf: added new tests for Linux getauxval() and FreeBSD elf_aux_info()

- libschily: getexecpath.c now uses getauxval() on Linux and elf_aux_info()
  on FreeBSD. This was needed since readlink("/proc/curproc/file") on
  FreeBSD returns random values for hardlinked files, making it impossible
  to use the result in order to find out which behavior variant of a
  fat binary is requested.

- Bourne Shell: Several #ifdef SIG* have been added to make it compile
  on older UNIX versions.

  Thanks to a hint from Albert Wik.
2020-08-26 14:22:36 +00:00
micha
2d079fe3f2 shells/bosh: Update to 20200812
New features with AN-2020-07-18:
- Bourne Shell: A new symlink from /opt/schily/xpg4/bin/bosh to
  /opt/schily/xpg4/bin/sh is created when "smake install" is called.
  This helps people to call "bosh" in strict POSIX mode using the
  command line name "bosh" by putting /opt/schily/xpg4/bin in PATH
  before /opt/schily/bin, where the bosh implements better backwards
  cmpatibility to the Bourne Shell by default than a strictly POSIX
  compliant bosh would do. /opt/schily/xpg4/bin/bosh behaves the same
  as "/opt/schily/bin/bosh -o posix".

  Thanks to  Koichi Nakashima for reporting.


New features with AN-2020-08-12:
- autoconf: added a new test for the existence of <sys/auxv.h>

- autoconf: added new tests for Linux getauxval() and FreeBSD elf_aux_info()

- libschily: getexecpath.c now uses getauxval() on Linux and elf_aux_info()
  on FreeBSD. This was needed since readlink("/proc/curproc/file") on
  FreeBSD returns random values for hardlinked files, making it impossible
  to use the result in order to find out which behavior variant of a
  fat binary is requested.

- Bourne Shell: Several #ifdef SIG* have been added to make it compile
  on older UNIX versions.

  Thanks to a hint from Albert Wik.
2020-08-26 14:11:03 +00:00
leot
953ab724e1 *: revbump after fontconfig bl3 changes (libuuid removal) 2020-08-17 20:19:01 +00:00
tnn
744356551b mksh: add a CHECK_PORTABILITY_SKIP with a comment 2020-08-03 15:33:45 +00:00
tnn
207edad9ac undo previous. Apparently one doesn't patch this in the normal way. 2020-08-03 15:16:04 +00:00
tnn
711c487d90 mksh: remove double brackets 2020-08-03 15:13:55 +00:00
micha
2460e370bd shells/pbosh: Update to 20200701
Take maintainership.

Changelog from AN-2020-07-01:
- Bourne Shell: A command like

      bosh -c 'var=$({ echo value >&3; } 3>&1); echo $var'

  Did not print "value" as expected, but rather bosh: 3: bad file number

  This is related to the fact that curly brackets do not have an
  own binary node type in the parsed output and the recursive parser
  from the $(cmd) execution needs to reconstruct the text form
  of a command tree. As a result, the command has been translated
  into:

      bosh -c 'var=$( echo value >&3 3>&1); echo $var'

  and this caused the observed problem.

  Note that this basic problem may not be finally fixed, so please
  report in case that other commands with curly brackets together
  with $(cmd) cause problems.

  Thanks to Koichi Nakashima for reporting.
2020-07-17 11:34:59 +00:00
micha
d0a8919951 shells/bosh: Update to 20200701
Take maintainership.

Changelog from AN-2020-07-01:
- Bourne Shell: A command like

      bosh -c 'var=$({ echo value >&3; } 3>&1); echo $var'

  Did not print "value" as expected, but rather bosh: 3: bad file number

  This is related to the fact that curly brackets do not have an
  own binary node type in the parsed output and the recursive parser
  from the $(cmd) execution needs to reconstruct the text form
  of a command tree. As a result, the command has been translated
  into:

      bosh -c 'var=$( echo value >&3 3>&1); echo $var'

  and this caused the observed problem.

  Note that this basic problem may not be finally fixed, so please
  report in case that other commands with curly brackets together
  with $(cmd) cause problems.

  Thanks to Koichi Nakashima for reporting.

- Bourne Shell: Added a unit test for the bug above.
2020-07-17 11:25:35 +00:00
christos
45ea2b1e53 fix static build on NetBSD 2020-07-14 21:48:29 +00:00
kre
5a071fd8d7 Add bash patch bash50-018 -- updates bash to 5.0.18(1)-release
This fixes:
  In certain cases, bash does not perform quoted null removal on patterns
  that are used as part of word expansions such as ${parameter##pattern}, so
  empty patterns are treated as non-empty
2020-07-10 20:40:26 +00:00
jperkin
71585d26c8 mksh: Don't set PKG_SHELL when used for bootstrap.
This can cause circular problems where the +INSTALL script requires the shell
itself, but also avoids issues trying to add to /etc/shells during bootstrap
where it may not be appropriate, or done outside of the context of where the
bootstrap tarball will finally be installed.

Users who use mksh as a bootstrap shell can simply add to /etc/shells manually
after installing or extracting the bootstrap as required.

While here remove unnecessary extra indents.
2020-07-10 11:24:24 +00:00
mrg
5f030732fa define SYSMALLOC on netbsd. fixes standalone-tcsh link, which pulled
in libc malloc as well as tcsh malloc, and failed.

ok christos@
2020-07-08 04:06:48 +00:00
nia
96a72329ae fish: Pull in libatomic with gcc for e.g. powerpc 2020-07-07 09:00:34 +00:00
jperkin
58b578bfb0 mksh: Import unpacked mksh-59b sources.
Two patches have been applied on top, both of which are stored in the
patches directory as manual-Build.sh and manual-funcs.c, to fix issues
on Darwin and SunOS that will be included in the next mksh release.  The
binary mksh.ico file has been manually removed.

This paves the way for  mksh to be used as an alternate bootstrap shell
instead of shells/pdksh, which has been unmaintained for many years and
has some known issues.

Initial bulk build results on Darwin and SunOS look good, and having a
maintained shell which focuses on portability and speed should provide
us with a better long-term option for systems which require a bootstrap
shell.
2020-07-06 10:11:34 +00:00