Commit graph

1233 commits

Author SHA1 Message Date
nia
30e3ce2b11 shells: Replace RMD160 checksums with BLAKE2s checksums
All checksums have been double-checked against existing RMD160 and
SHA512 hashes
2021-10-26 11:18:36 +00:00
pin
283f002524 shells/nushell: fix PLIST 2021-10-14 16:49:59 +00:00
schmonz
02f54def7b Update to 7.0. From the changelog:
- Use old conversion of clock_gettime on macOS prior to 10.12
- Manpage tweak: shell scripts should use getopts instead of getopt
- In addition to 2-byte and 3-byte UTF-8 sequences, correctly identify
  all 4-byte UTF-8 sequences
- Do not permit an empty list between "while" and "do"
2021-10-10 11:27:35 +00:00
bsiegert
a235babfa8 Revbump all Go packages after go117 update 2021-10-08 18:55:02 +00:00
pin
9b6ebe9707 shells/nushell: remove leftover 2021-10-08 08:24:13 +00:00
pin
1a61af1b6f shells/nushell: remove arch restriction 2021-10-07 15:54:23 +00:00
nia
a7811ee9af shells: Remove SHA1 hashes for distfiles 2021-10-07 14:56:09 +00:00
pin
bff761d493 shells/nushell: update to 0.38.0
Today, we're releasing 0.38 of Nu. This release includes polish to the user
interface, improvements to how columns are passed, lots of bug fixes, and
updates on the upcoming engine.

What's New
-Quickly jump to a shell (tw4452852)
If you've used shells, you've no doubt used the n and p commands to quickly jump
between them. This can be a big time saver when you're working in multiple
directories.

In this release, we've added a g command that helps you quickly jump to a
particular shell. This helps in the cases where you end up with more than two
shells open and you already know what shell you want to jump to.

Additional improvements
-Improvements in updated table cell values
-update cells command now can take a list of columns
-You can now also pass a list of columns to select
-Improvements in how html table scraping works and also
-Fix to compiling on nightly
-Removed unused deps
-Completions now can complete inside of an argument
-We now expand tilde when reading plugin directories
-We also turn off ansi colors when not in a TTY
-Fixed some of the wasm deps
-Fixed a leak of a let-binding
-Use SIMD-enabled compiler flags
-Updated polars dependency to 0.16
-Updates to how path join works
-Moved nu-path tests into integration tests
-New support for converting to column paths
-Cleanup fixes to make tests more resilient
-Internal improvement to make working with spans easier
-Fix to gitpod
-Fix to big int handling in to
-Fixed a typo
-Fixed some typos in the tutor
-Removed the experimental scrolling support as it had broken
2021-10-07 11:48:48 +00:00
pin
95e931108d shells/starship: update to 0.58.0
v0.57.0 (2021-08-26)

Bug Fixes
-clippy: fix new clippy lints (#2939)
-git_status: show working tree status if index status is present (#2973)
-init: remove quotes in bash init (#2893)
-jobs: Add the symbol and number thresholds respecting the threshold option
(#2908)
-print-config: fix battery module and add missing modules (#2930)
-rlang: module not working on MacOs (#2880)
-windows: avoid inadvertly running exes from cwd (#2885)

Code Refactoring
-allow passing OsStr as-is to exec_cmd (#2997)

Docs
-Fix typo (#2900)
-update git_commit default format (#2898)
-Add italic to Advanced Config styles (#2943)
-fix shlvl module's symbol (#2911)
-fix typo for python in README.md (#2909)
-add the terminator to the tip in env variable
-i18n: new Crowdin updates (#2884)
-preset: add Hide Runtime Versions preset (#2854)
-preset: prevent cutting of the time (#2870)

Features
-add support for xonsh (#2807)
-explain: quote module values (#2931)
-git_status: dont render module output if not in git repository (#2897)
-git_status: added symbol for local repos up-to-date with remote. (#2945)
-kubernetes: implements regex matching for context aliases (#2883)
-package: Add ability to format the version (#2959)
-package: Support package version from setup.cfg (python). (#2890)
-status: Add pipestatus display in status module (#2481)

v0.58.0 (2021-09-21)

Features
-Add a fill module to pad out the line (#3029)
-Add support for RPROMPT (right prompt) (#3026)
-cobol: added COBOL module (#2994)
-git_metrics: Git metrics show only nonzero diffs (#2887)
-print-config: list expanded $all variable (#2932)

Bug Fixes
-config: inherit stdin/stdout/stderr instead of piping to fix editor invocation
(#3032)
-package: Ignore setup.cfg attr: and file: (#3054)
-print-config: add missing format_right to FullConfig (#3063)
-status: Showing exit code 0 with pipelines (#3028)
-zsh: always escape percent character (#3058)
-zsh init script: avoid adding preexec commands twice (#3049)

Docs
-Correct the "VLang" configuration example (#3019)
-Add missing modules to $all in config docs (#3075)
-fix grammar in config README (#3069)
-add Brazilian Portuguese translations to the docs and website (#3009)
-chglog: Change release page title order (#3038) (#3045)
-config: change spelling of some words (#2855)
-i18n: new Crowdin updates (#3008)
-i18n: new Crowdin updates (#3012)
-i18n: new Crowdin updates (#2985)
-modules: add missing module descriptions (#3081)

Code Refactoring
-install.sh to improve usage and install instructions (#3025)
-simplify iterator usage (#3017)
2021-09-30 09:57:43 +00:00
pin
9558a0f40a shells/nushell: enable nu_plugin_textview
This is the last plugin belonging to core.
I'll keep testing the other plugins after the freeze.
2021-09-24 10:32:43 +00:00
pin
c2840210b8 shells/nushell: enable nu_plugin_inc 2021-09-23 10:15:28 +00:00
pin
05231cfb7d shells/nushell: enable nu_plugin_tree 2021-09-21 10:47:28 +00:00
bsiegert
a7061b5550 Revbump all Go packages after go117 update 2021-09-17 13:52:45 +00:00
pin
005ef4f1a6 shells/nushell: update to 0.37.0
Today, we're releasing 0.37 of Nu. This release adds a new find function,
improvements to the current engine, and updates on the upcoming engine.

What's New
finding data in tables

In 0.37, you now have access to a new find command, which can help you quickly
look for data across all columns in a table.
You can still reach your system's find command using ^ by typing ^find.

Additional improvements
-fdncred added more support for ansi art, and more chars
-aminya removed shelling out in some cases where it's not needed
-jt made sys/ps/fetch/post core commands, moving them from plugins to internal
commands. This allows for future capability to have nushell download its own
extensions.
-andrasio began adding support for creating errors inside of nushell code,
extended tags to support basic command reflection
-lily-mara added into filesize
-tw4452852 added support to append when calling save
-Pantoshire improved errors when bash-style alias was mistakingly used
-tranzystorek-io did a lot of general code improvements
-kubouch did some fixes to paths and the source command
-elferherrera updated the prompt environment variable to PROMPT_COMMAND to show
that it is nushell code that gets run
2021-09-15 13:39:28 +00:00
nia
ac18c16662 xonsh: Update to 0.10.1
Seems to help with Python 3.9 problems seen on pkgsrc-users
2021-09-09 11:38:04 +00:00
pin
7bd9ed4539 shells/nushell: update to 0.36.0
-This release fixes some long-standing issues with history, improves the help
system, improves dataframes, and much more.
2021-09-03 10:29:52 +00:00
bsiegert
d4cc5d621c elvish: update to 0.16.1.
- go 1.17 fixes
2021-08-23 13:15:06 +00:00
tnn
2e64bcc3cb evish: comment out GO_VERSION_DEFAULT
go 1.15 is gone. Package probably needs update.
2021-08-23 07:55:07 +00:00
bsiegert
624af70d8a Revbump all Go packages after go116 update 2021-08-11 19:35:03 +00:00
micha
4cc81c4b9d shells/pbosh: Update to 20210729
Changelog from AN-2021-07-29:
- Bourne Shell: "cd -" now prints the new directory. POSIX requires this.

  Thanks to a report from Robert Elz.

- Bourne Shell: "make install" now works wit SuPro Make as well.
  Previously, the target /opt/schily/xpg4/bin/bosh (a symlink) was not
  installed because of a missing rule that caused SuPro Make to complain.
  about a target with no existing rule to make.

- Bourne Shell: z/OS only supports the minimum fields from struct rusage
  that are required by POSIX. We need the same hack as for HAIKU to
  be able to compile.

  Thanks to a report from Matthew R. Wilson

- Bourne Shell: z/OS does not #define MAXPATHLEN, so we #define it
  to be 1024 by default

  Thanks to a report from Matthew R. Wilson
2021-08-06 10:24:18 +00:00
micha
e409d790c3 shells/bosh: Update to 20210729
Changelog from AN-2021-07-29:
- Bourne Shell: "cd -" now prints the new directory. POSIX requires this.

  Thanks to a report from Robert Elz.

- Bourne Shell: "make install" now works wit SuPro Make as well.
  Previously, the target /opt/schily/xpg4/bin/bosh (a symlink) was not
  installed because of a missing rule that caused SuPro Make to complain.
  about a target with no existing rule to make.

- Bourne Shell: z/OS only supports the minimum fields from struct rusage
  that are required by POSIX. We need the same hack as for HAIKU to
  be able to compile.

  Thanks to a report from Matthew R. Wilson

- Bourne Shell: z/OS does not #define MAXPATHLEN, so we #define it
  to be 1024 by default

  Thanks to a report from Matthew R. Wilson
2021-08-06 10:15:41 +00:00
pin
eddf6ae85e shells/nushell: update to 0.35.0
-Add the -s parameter to submit package to winget in pipeline (#3767)
-corrected position of dataframes (#3776)
-fixed show_hints option to allow hints to be turned off (#3780)
-Updated polars version for faster CSV reader (#3781)
-Fix docs for the config variable completion_type (#3804)
-bat theme wasn't getting set properly (#3807)
-Dataframe Shape command (#3805)
-Support other variables than PATH in pathvar (2nd attempt) (#3828)
-change describe so it doesn't output colored strings (#3832)
-Read from standard input in rm (#3763)
-use chrono_humanize for datetime formatting (#3834)
-All is a DataFrame (#3812)
-Add sha256 to the hash command (#3836)
-added the ability to compare time units like 1hr < 2hr (#3845)
-Update implementing_a_command.md (#3848)
-Improve md5 and sha256 code (#3841)
-Fix clippy lint and disable broken lint (#3865)
-document compiling without openssl (#3862)
-Add named positionals to all (#3863)
-add performance metrics for measuring startup time (#3854)
-fix interpolated strings when using unicode (#3866)
-Support equals sign in shorthand environment variable values (#3869)
-simple contains arguments (#3874)
-Better representation in nested dataframes (#3875)
2021-08-03 17:57:35 +00:00
pin
40d6c26e84 shells/nushell: simplify Makefile 2021-08-02 15:20:33 +00:00
tnn
ab9578d7c4 g/c RUSTFLAGS from individual package Makefiles. Handled by cargo.mk. 2021-07-22 16:16:35 +00:00
jperkin
beb8ef2dd4 bash: Remove attempted workaround for Shellshock.
Releases of bash since then have correctly resolved the issue, and this
undocumented and non-standard option just results in software being broken out
of the box with a configuration different to other OS.  Bump PKGREVISION.
2021-07-21 10:24:16 +00:00
pin
36caf8d26e Add nushell 2021-07-19 15:27:00 +00:00
pin
24bb16126a shells/nushell: import package
Hello, and welcome to the Nushell project. The goal of this project is to take
the Unix philosophy of shells, where pipes connect simple commands together, and
bring it to the modern style of development.

Nu takes cues from a lot of familiar territory: traditional shells like bash,
advanced shells like PowerShell, functional programming, systems programming,
and more. But rather than trying to be the jack of all trades, Nu focuses its
energy on doing a few things well:
-Create a flexible cross-platform shell with a modern feel
-Allow you to mix and match commandline applications with a shell that
understands the structure of your data
-Have the level of UX polish that modern CLI apps provide

The easiest way to see what Nu can do is to start with some examples, so let's
dive in, https://www.nushell.sh/book/
2021-07-19 15:26:20 +00:00
jperkin
91a1a20ac2 fish: Update to 3.3.1.
While here fix a C++ <version> build issue seen on macOS.

fish 3.3.1 (released July 6, 2021)
==================================

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

- The prompt and command line are redrawn correctly in response to universal
  variable changes (:issue:`8088`).
- A superfluous error that was produced when setting the ``PATH`` or ``CDPATH``
  environment variables to include colon-delimited components that do not exist
  was removed (:issue:`8095`).
- The Vi mode indicator in the prompt is repainted correctly after
  :kbd:`Ctrl-C` cancels the current command (:issue:`8103`).
- fish builds correctly on platforms that do not have a ``spawn.h`` header,
  such as old versions of OS X (:issue:`8097`).

A number of improvements to the documentation, and fixes for completions, are
included as well.

If you are upgrading from version 3.2.2 or before, please also review the
release notes for 3.3.0 (included below).

fish 3.3.0 (released June 28, 2021)
===================================

Notable improvements and fixes
------------------------------
- ``fish_config`` gained a ``prompt`` subcommand to show and pick from the
  sample prompts directly in the terminal, instead of having to open a
  webbrowser. For example ``fish_config prompt choose default`` loads the
  default prompt in the current session (:issue:`7958`).
- The documentation has been reorganized to be easier to understand
  (:issue:`7773`).

Deprecations and removed features
---------------------------------
- The ``$fish_history`` value "default" is no longer special. It used to be
  treated the same as "fish" (:issue:`7650`).
- Redirection to standard error with the ``^`` character has been disabled by
  default. It can be turned back on using the ``stderr-nocaret`` feature flag,
  but will eventually be disabled completely (:issue:`7105`).
- Specifying an initial tab to ``fish_config`` now only works with
  ``fish_config browse`` (e.g. ``fish_config browse variables``), otherwise it
  would interfere with the new ``prompt`` subcommand (see below)
  (:issue:`7958`).

Scripting improvements
----------------------
- ``math`` gained new functions ``log2`` (like the documentation claimed),
  ``max`` and ``min`` (:issue:`7856`). ``math`` functions can be used without
  the parentheses (eg ``math sin 2 + 6``), and functions have the lowest
  precedence in the order of operations (:issue:`7877`).
- Shebang (``#!``) lines are no longer required within shell scripts, improving
  support for scripts with concatenated binary contents. If a file fails to
  execute and passes a (rudimentary) binary safety check, fish will re-invoke
  it using ``/bin/sh`` (:issue:`7802`).
- Exit codes are better aligned with bash. A failed execution now reports
  ``$status`` of 127 if the file is not found, and 126 if it is not executable.
- ``echo`` no longer writes its output one byte at a time, improving
  performance and allowing use with Linux's special API files (``/proc``,
  ``/sys`` and such) (:issue:`7836`).
- fish should now better handle ``cd`` on filesystems with broken ``stat(3)``
  responses (:issue:`7577`).
- Builtins now properly report a ``$status`` of 1 upon unsuccessful writes
  (:issue:`7857`).
- ``string match`` with unmatched capture groups and without the ``--all`` flag
  now sets an empty variable instead of a variable containing the empty string.
  It also correctly imports the first match if multiple arguments are provided,
  matching the documentation. (:issue:`7938`).
- fish produces more specific errors when a command in a command substitution
  wasn't found or is not allowed. This now prints something like "Unknown
  command" instead of "Unknown error while evaluating command substitution".
- ``fish_indent`` allows inline variable assignments (``FOO=BAR command``) to
  use line continuation, instead of joining them into one line (:issue:`7955`).
- fish gained a ``--no-config`` option to disable configuration files. This
  applies to user-specific and the systemwide ``config.fish`` (typically in
  ``/etc/fish/config.fish``), and configuration snippets (typically in
  ``conf.d`` directories). It also disables universal variables, history, and
  loading of functions from system or user configuration directories
  (:issue:`7921`, :issue:`1256`).
- When universal variables are unavailable for some reason, setting a universal
  variable now sets a global variable instead (:issue:`7921`).
- ``$last_pid`` now contains the process ID of the last process in the
  pipeline, allowing it to be used in scripts (:issue:`5036`, :issue:`5832`,
  :issue:`7721`). Previously, this value contained the process group ID, but in
  scripts this was the same as the running fish's process ID.
- ``process-exit`` event handlers now receive the same value as ``$status`` in
  all cases, instead of receiving -1 when the exit was due to a signal.
- ``process-exit`` event handlers for PID 0 also received ``JOB_EXIT`` events;
  this has been fixed.
- ``job-exit`` event handlers may now be created with any of the PIDs from the
  job. The handler is passed the last PID in the job as its second argument,
  instead of the process group.
- Trying to set an empty variable name with ``set`` no longer works (these
  variables could not be used in expansions anyway).
- ``fish_add_path`` handles an undefined ``PATH`` environment variable
  correctly (:issue:`8082`).

Interactive improvements
-------------------------
- Commands entered before the previous command finishes will now be properly
  syntax highlighted.
- fish now automatically creates ``config.fish`` and the configuration
  directories in ``$XDG_CONFIG_HOME/fish`` (by default ``~/.config/fish``) if
  they do not already exist (:issue:`7402`).
- ``$SHLVL`` is no longer incremented in non-interactive shells. This means it
  won't be set to values larger than 1 just because your environment happens to
  run some scripts in $SHELL in its startup path (:issue:`7864`).
- fish no longer rings the bell when flashing the command line. The flashing
  should already be enough notification and the bell can be annoying
  (:issue:`7875`).
- ``fish --help`` is more helpful if the documentation isn't installed
  (:issue:`7824`).
- ``funced`` won't include an entry on where a function is defined, thanks to
  the new ``functions --no-details`` option (:issue:`7879`).
- A new variable, ``fish_killring``, containing entries from the killring, is
  now available (:issue:`7445`).
- ``fish --private`` prints a note on private mode on startup even if
  ``$fish_greeting`` is an empty list (:issue:`7974`).
- fish no longer attempts to lock history or universal variable files on remote
  filesystems, including NFS and Samba mounts. In rare cases, updates to these
  files may be dropped if separate fish instances modify them simultaneously.
  (:issue:`7968`).
- ``wait`` and ``on-process-exit`` work correctly with jobs that have already
  exited (:issue:`7210`).
- ``__fish_print_help`` (used for ``--help`` output for fish's builtins) now
  respects the ``LESS`` environment variable, and if not set, uses better
  default pager settings (:issue:`7997`).
- Errors from ``alias`` are now printed to standard error, matching other
  builtins and functions (:issue:`7925`).
- ``ls`` output is colorized on OpenBSD if colorls utility is installed
  (:issue:`8035`)
- The default pager color looks better in terminals with light backgrounds
  (:issue:`3412`).
- Further robustness improvements to the bash history import (:issue:`7874`).
- fish now tries to find a Unicode-aware locale for encoding (``LC_CTYPE``) if
  started without any locale information, improving the display of emoji and
  other non-ASCII text on misconfigured systems (:issue:`8031`). To allow a C
  locale, set the variable ``fish_allow_singlebyte_locale`` to 1.
- The Web-based configuration and documentation now feature a dark mode if the
  browser requests it (:issue:`8043`).
- Color variables can now also be given like ``--background red`` and ``-b
  red``, not just ``--background=red`` (:issue:`8053`).
- ``exit`` run within ``fish_prompt`` now exits properly (:issue:`8033`).
- When attempting to execute the unsupported POSIX-style brace command group
  (``{ ... }``) fish will suggest its equivalent ``begin; ...; end`` commands
  (:issue:`6415`).

New or improved bindings
^^^^^^^^^^^^^^^^^^^^^^^^
- Pasting in Vi mode puts text in the right place in normal mode
  (:issue:`7847`).
- Vi mode's :kbd:`u` is bound to ``undo`` instead of
  ``history-search-backward``, following GNU readline's behavior. Similarly,
  :kbd:`Control-R` is bound to ``redo`` instead of ``history-search-backward``,
  following Vim (:issue:`7908`).
- :kbd:`s` in Vi visual mode now does the same thing as :kbd:`c`
  (:issue:`8039`).
- The binding for :kbd:`"*y` now uses ``fish_clipboard_copy``, allowing it to
  support more than just ``xsel``.
- The :kbd:`Control-Space` binding can be correctly customised (:issue:`7922`).
- ``exit`` works correctly in bindings (:issue:`7967`).
- The :kbd:`F1` binding, which opens the manual page for the current command,
  now works around a bug in certain ``less`` versions that fail to clear the
  screen (:issue:`7863`).
- The binding for :kbd:`Alt-S` now toggles whether ``sudo`` is prepended, even
  when it took the commandline from history instead of only adding it.
- The new functions ``fish_commandline_prepend`` and
  ``fish_commandline_append`` allow toggling the presence of a prefix/suffix on
  the current commandline. (:issue:`7905`).
- ``backward-kill-path-component`` :kbd:`Control-W`) no longer erases parts of
  two tokens when the cursor is positioned immediately after ``/``.
  (:issue:`6258`).

Improved prompts
^^^^^^^^^^^^^^^^
- The default Vi mode prompt now uses foreground instead of background colors,
  making it less obtrusive (:issue:`7880`).
- Performance of the "informative" git prompt is improved somewhat
  (:issue:`7871`). This is still slower than the non-informative version by its
  very nature. In particular it is IO-bound, so it will be very slow on slow
  disks or network mounts.
- The sample prompts were updated. Some duplicated prompts, like the various
  classic variants, or less useful ones, like the "justadollar" prompt were
  removed, some prompts were cleaned up, and in some cases renamed. A new
  "simple" and "disco" prompt were added (:issue:`7884`, :issue:`7897`,
  :issue:`7930`). The new prompts will only take effect when selected and
  existing installed prompts will remain unchanged.
- A new ``prompt_login`` helper function to describe the kind of "login" (user,
  host and chroot status) for use in prompts. This replaces the old "debian
  chroot" prompt and has been added to the default and terlar prompts
  (:issue:`7932`).
- The Web-based configuration's prompt picker now shows and installs right
  prompts (:issue:`7930`).
- The git prompt now has the same symbol order in normal and "informative"
  mode, and it's customizable via ``$__fish_git_prompt_status_order``
  (:issue:`7926`).

Completions
^^^^^^^^^^^
- Added completions for:

  - ``firewall-cmd`` (:issue:`7900`)
  - ``sv`` (:issue:`8069`)

- Improvements to plenty of completions!
- Commands that wrap ``cd`` (using ``complete --wraps cd``) get the same
  completions as ``cd`` (:issue:`4693`).
- The ``--force-files`` option to ``complete`` works for bare arguments, not
  just options (:issue:`7920`).
- Completion descriptions for functions don't include the function definition,
  making them more concise (:issue:`7911`).
- The ``kill`` completions no longer error on MSYS2 (:issue:`8046`).
- Completion scripts are now loaded when calling a command via a relative path
  (like ``./git``) (:issue:`6001`, :issue:`7992`).
- When there are multiple completion candidates, fish inserts their shared
  prefix. This prefix was computed in a case-insensitive way, resulting in
  wrong case in the completion pager. This was fixed by only inserting prefixes
  with matching case (:issue:`7744`).

Improved terminal support
^^^^^^^^^^^^^^^^^^^^^^^^^
- fish no longer tries to detect a missing new line during startup, preventing
  an erroneous ``⏎`` from appearing if the terminal is resized at the wrong
  time, which can happen in tiling window managers (:issue:`7893`).
- fish behaves better when it disagrees with the terminal on the width of
  characters. In particular, staircase effects with right prompts should be
  gone in most cases (:issue:`8011`).
- If the prompt takes up the entire line, the last character should no longer
  be chopped off in certain terminals (:issue:`8002`).
- fish's reflow handling has been disabled by default for kitty
  (:issue:`7961`).
- The default prompt no longer produces errors when used with a dumb terminal
  (:issue:`7904`).
- Terminal size variables are updated for window size change signal handlers
  (``SIGWINCH``).
- Pasting within a multi-line command using a terminal that supports bracketed
  paste works correctly, instead of producing an error (:issue:`7782`).
- ``set_color`` produces an error when used with invalid arguments, rather than
  empty output which interacts badly with Cartesian product expansion.

For distributors
----------------
- fish runs correctly on platforms without the ``O_CLOEXEC`` flag for
  ``open(2)`` (:issue:`8023`).
2021-07-16 08:50:50 +00:00
pin
863f446c7e Add elvish 2021-07-14 20:52:07 +00:00
pin
e8a3e89090 shells/elvish: import package
Packaged in wip by mjturner

Elvish is a friendly interactive shell and an expressive programming language.
Despite its pre-1.0 status, it is already suitable for most daily interactive
use.
2021-07-14 20:51:27 +00:00
pin
c55a9691c2 shells/starship: update to 0.56.0
v0.56.0 (2021-07-13)

Bug Fixes:
-clippy: fix additional clippy lints in tests (#2813)
-dotnet: make default format consistent with other modules (#2853)
-git_status: Fix when the worktree != root dir (#2831)
-init: improve starship path escaping (#2848)
-nu: use correct session key variable name (#2874)
-pwsh: replace Get-Error with $error[0] (#2873)
-rust: support for rust-toolchain.toml (#2775)

Build:
-bump mockall from 0.10.1 to 0.10.2 (#2878)
-bump unicode-segmentation from 1.7.1 to 1.8.0 (#2844)
-bump mockall from 0.10.0 to 0.10.1 (#2845)
-bump indexmap from 1.6.2 to 1.7.0 (#2839)
-bump mockall from 0.9.1 to 0.10.0 (#2838)
-bump shadow-rs from 0.6.1 to 0.6.2 (#2832)
-bump shadow-rs from 0.5.25 to 0.6.1 (#2822)

Chore:
-release: v0.56.0 Code Refactoring
git_commit: small refactor to remove duplicate code (#2752)

Docs:
-i18n: new Crowdin updates (#2879)
-i18n: New Crowdin updates (#2834)
-nu: specify how to get nushell config path (#2856)

Features:
-Add the git_metrics module (#2827)
-add support for nu shell (#2847)
-treat empty string as none when formating (#2738)
-docker_context: Use DOCKER_HOST and DOCKER_CONTEXT enviroment variables (#2782)
-env_var: allow multiple instances (#2797)

Performance Improvements:
-Improve custom config OS (#2843)
-Style
-enforce ALL_MODULES ordering in test (#2837)
-fix name of battery info provider implementation (#2836)

Test:
-battery: add battery tests (#2795)
2021-07-14 20:44:47 +00:00
pin
589667cad5 Add starship 2021-07-09 18:52:15 +00:00
pin
a48fb7fc3f shells/starship: import package
Packaged in wip by mjturner

The minimal, blazing-fast, and infinitely customizable prompt for any
shell.

Features:
o Fast: it's fast - really really fast!
o Customizable: configure every aspect of your prompt.
o Universal: works on any shell, on any operating system.
o Intelligent: shows relevant information at a glance.
o Feature rich: support for all your favorite tools.
o Easy: quick to install - start using it in minutes.

The following shells are currently supported:
o Bash
o Elvish
o Fish
o Ion
o Powershell
o Tcsh
o Zsh
2021-07-09 18:51:23 +00:00
nia
c562656c5f eltclsh: Avoid infinite loop in build, PR pkg/56259 2021-06-27 05:56:02 +00:00
micha
c6896f7f49 shells/pbosh: Update to 20210607
Changelog from AN-2021-05-19:
- Bourne Shell: the fc(1) builtin now handles "fc -l -0" the same
  way as ksh does and refers to the current command. Before only
  "fc -l -1" did work to select the previous command.

  Together with the "ERR" trap fix, this permits to install a
  "command not found" handler in the shell that could explain users
  how to install a missing command.

  This "missing command" handler could be implemented via:

    trap 'show-info-message-for-missing-command $(fc -l -0)' ERR

Changelog from AN-2021-06-07:
- Bourne Shell: the man page now uses a correct notation for "[]" for
  the arguments of the builtin "dosh" that has been introduced in May
  2012.
2021-06-25 11:01:09 +00:00
micha
2403f35bbf shells/bosh: Update to 20210607
Changelog from AN-2021-05-19:
- Bourne Shell: the fc(1) builtin now handles "fc -l -0" the same
  way as ksh does and refers to the current command. Before only
  "fc -l -1" did work to select the previous command.

  Together with the "ERR" trap fix, this permits to install a
  "command not found" handler in the shell that could explain users
  how to install a missing command.

  This "missing command" handler could be implemented via:

    trap 'show-info-message-for-missing-command $(fc -l -0)' ERR

Changelog from AN-2021-06-07:
- Bourne Shell: the man page now uses a correct notation for "[]" for
  the arguments of the builtin "dosh" that has been introduced in May
  2012.
2021-06-25 10:56:30 +00:00
schmonz
c32a19dddf Check a little harder for stat64. Fixes the build on my M1 with
Big Sur 11.4.
2021-06-22 15:16:59 +00:00
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
js
0139a54b3b Fix shells/fish on macOS 2020-06-14 22:52:10 +00:00
maya
edead0af9f oksh: avoid undefined symbol clock_gettime on Debian 6.
Will be fixed in new version of oksh.

PR pkg/55343
2020-06-05 20:23:03 +00:00
micha
aca54fef59 shells/pbosh: Update to 2020-05-25
- Use OS specific helper code from devel/smake/Makefile.common

Changes from AN-2020-05-25:
-       libmdgest: Added a "defined(_M_ARM)" check for MSVC byte order
        definitions (byte_order.h).

        Thanks to "Excalibur" for reporting.

-       Bourne Shell: The support for the OLDPWD environment has been moved
        from DO_SYSPUSHD to DO_POSIX_CD and as a result, the minimal POSIX
        compile variant "pbosh" now supports "$OLDPWD" and "cd -".

        This was based on a bug in the POSIX standard that did not include
        OLDPWD in the overview of shell environment variables. See
        https://www.austingroupbugs.net/view.php?id=1343

        Thanks to Koichi Nakashima for reporting
2020-06-05 17:26:43 +00:00
micha
1c0d4b0625 shells/bosh: Update to 2020-05-25
- Use OS specific helper code from devel/smake/Makefile.common

Changes from AN-2020-05-25:
-       libmdgest: Added a "defined(_M_ARM)" check for MSVC byte order
        definitions (byte_order.h).

        Thanks to "Excalibur" for reporting.

-       Bourne Shell: The unit tests for the ERR trap did not work on NetBSD
        because /bin/false does not exists on NetBSD. We now first check
        for /bin/false and /usr/bin/false and use what's available.

        Thanks to Michael Bäuerle from pkgsrc for reporting.
2020-06-05 17:20:52 +00:00
rillig
a2052155ad shells/zsh: ignore [[ in shell program 2020-05-31 09:25:51 +00:00
rillig
4f4f64fdce mark packages that fail with -Werror=char-subscripts
These packages are susceptible to bugs when confronted with non-ASCII
characters.

See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94182.

It takes some time to analyze and fix these individually, therefore they
are only marked as "needs work".
2020-05-20 06:09:03 +00:00
nia
6fe99c7937 mksh: Update to 59b
R59b is a must-have bugfix upgrade for R59 (not R58):

    [tg] Handle other tmux $TERM types, pointed out by multi via IRC
    [tg] Fix typo in FAQ
    [tg] y='a\*b'; [[ $x = $y ]] regression (Martijn Dekker) fix
    [l0kod] Defuse CLIP OS O_MAYEXEC support (cf. LWN)
    [tg] Make set +o output a command to restore the currently set and (new!) cleared options, keep a reset state per session (experimental)
    [tg] Correct documentation and code regarding to argv[0] parsing: first ‘-’ for login shells, then ‘r’ case-insensitively for restricted shell, then “sh”*, again case-insensitively, for BINSH_* modes; add tests
    [tg] On OS/2, allow case-insensitive name for direct builtin call
    [tg] Always skip startup files if direct builtin call
    [tg] Avoid some sometimes-redundant startup codepaths

R59 has some major fixes, also introducing breaking changes:

    [tg] Repair out-of-tree builds (noticed by rsc)
    [tg] Work around a glibc on Hurd issue in testsuite
    [komh] OS/2 filesystem mtime granularity is two seconds (as in FAT)
    [tg] Replace while with goto: Coverity was confused
    [tg] Fix invocation of some builtins when external utility absent
    [komh] Improve automatic executable suffix for test builtin
    [tg] Style code, refactor, clean up, optimise
    [tg] Use cached egid in test builtin
    [tg] Make bind builtin output reentry-safe; safety fixes
    [tg] If basename(argv[0]) after leading dash removal begins with an ‘r’ enable restricted shell flag; reported by pmjdebruijn via IRC
    [tg] Fix code example in manpage for how tab completion escapes
    [tg] Match full extglob pattern RHS of [[ string comparison like ksh93
    [tg] Implement which with -a in dot.mkshrc
    [tg] Remove global builtin (use typeset -g)
    [tg] alias, command, whence: Print alias names quoted
    [tg] Implement a new quote-region (Esc+Q) editing command
    [tg] Document all built-in aliases (requested by msiism via IRC) and those aliases and functions shipped in dot.mkshrc; completely overhaul builtin and reserved word documentation, for consistency
    [tg] The manual page now features properly spaced em dashes ☻
    [tg] Document that test x = y doesn’t extglob, only [[ x = y ]] does

R58 contains a lot of fixes and improvements:

    [lintian] hyphen-used-as-minus-sign (on jessie, not later, ‽‽‽)
    [tg] Fix system info gcc dump{machine,version} shell escaping level
    [tg] Document KSH_VERSIONNAME_VENDOR_EXT in Build.sh
    [tg] Be more explicit about the LTO bug exposed by check.t
    [Todd C. Miller] Add -x (file locks) and AIX-specific -r ulimits
    [tg] Handle Midipix as test environment and fix some warnings
    [tg] Fix some Build.sh issues as Mirtoconf is now used by MirCPIO and MagicPoint
    [komh] Improve CRLF to LF conversion
    [komh] Ensure ECHO mode is enabled at startup so read has local echo
    [komh] Let check.pl retain the PERLIO env variable
    [komh] Unbreak nounset-1 test on systems with drive letters
    [komh, tg] Make ulimit-3 test work without |& (that is, incomplete ports, i.e. those with -DMKSH_NOPROSPECTOFWORK)
    [tg] Disable xxx-stat-1 test for now, fails when run as root
    [tg] Drop Build.sh flags -c combine, -c lto
    [Martijn Dekker] Exit 126 on execve(2) failure, not 1 (e.g. E2BIG)
    [tg] Behave set and export/readonly-on-read-only-variables when run with command and command dot, bugreports by Martijn Dekker
    [tg] dot.mkshrc: simplify; enhance (un)setting locale example
    [tg, selk] Catch build errors earlier
    [tg] Add -fno-lto (if GCC is detected) to CFLAGS and LDFLAGS
    [tg] Limit HISTSIZE to 65535, as long pre-announced
    [tg] Unbreak testsuite selftest-tty-absent for lksh
    [tg] Begin work on support for neatcc (needs neatcc to evolve first)
    [tg] Fix possibly not enough aligned access in struct job
    [tg] Support going full setugid by running “set -p” once interactive
    [tg] Document another (arcane, almost nowhere needed) definition
    [tg] Improve code legibility and testsuite reliability and maintenance
    [tg] Speed up trivial += cases (LP#1855167)
    [tg] Some further code and memory optimisation and test coverage
    [tg] Document that += is always string append (LP#1857702)
    [tg] Fix “set -e appears active within eval but isn’t” reported by Martijn Dekker and another bug related to using set ±e inside eval
    [tg] Handle parameter assignment in front of invocations of POSIX-style functions like ksh-style ones and external utilities; cf. Debian #935115
    [tg] Fix bad memory access for invalid syntax (LP#1857828, LP#1857826)
    [Brian Callahan] Update MALLOC_OPTIONS-using testcase for newer OpenBSD
    [tg] Support lacc as compiler (just detecting, no change), thanks Brian
    [tg] Share __IDSTRING with jupp
    [tg] Update string comparison/pattern documentation
    [tg, veedeeh] Document vi command line editing mode state better
    [tg] Add FAQ2HTML.sh to convert mksh.faq to local valid XHTML+CSS
    [tg] Correct backslash expansion documentation; caveat re. 16-bit UCS
    [tg] Fix extra empty field on IFS-NWS trim expansion (Martijn Dekker)
    [tg] Improve code performance, quality, robustness and correctness
    [tg] Allow ${x:n} where n is an identifier (veedeeh)
    [tg] Permit ‘+’ in alias names, but not leading (Aleksey Cheusov)
    [tg] Fix here strings for $@ (LP#1857195), reported by jvdh
    [multiplexd] Add vi mode PgDn, similar to PgUp doing history search
    [tg] Build.sh fixup unreliable test -n/-z
    [multiplexd] Correct documentation of vi mode @c
    [tg] Update to UCD 13.0.0
    [tg] Use nanoseconds in test -nt / -ot (LP#1855325)
2020-05-19 15:20:07 +00:00
nia
bb41d982ea fish: Update to 3.1.2
# fish 3.1.2 (released April 29, 2020)

This release of fish fixes a major issue discovered in fish 3.1.1:

- Commands such as `fzf` and `enhancd`, when used with `eval`, would hang. `eval` buffered output too aggressively, which has been fixed (#6955).

If you are upgrading from version 3.0.0 or before, please also review the release notes for 3.1.1, 3.1.0 and 3.1b1 (included below).

---

# fish 3.1.1 (released April 27, 2020)

This release of fish fixes a number of major issues discovered in fish 3.1.0.

- Commands which involve `. ( ... | psub)` now work correctly, as a bug in the `function --on-job-exit` option has been fixed (#6613).
- Conflicts between upstream packages for ripgrep and bat, and the fish packages, have been resolved (#5822).
- Starting fish in a directory without read access, such as via `su`, no longer crashes (#6597).
- Glob ordering changes which were introduced in 3.1.0 have been reverted, returning the order of globs to the previous state (#6593).
- Redirections using the deprecated caret syntax to a file descriptor (eg `^&2`) work correctly (#6591).
- Redirections that append to a file descriptor (eg `2>>&1`) work correctly (#6614).
- Building fish on macOS (#6602) or with new versions of GCC (#6604, #6609) is now successful.
- `time` is now correctly listed in the output of `builtin -n`, and `time --help` works correctly (#6598).
- Exported universal variables now update properly (#6612).
- `status current-command` gives the expected output when used with an environment override - that is, `F=B status current-command` returns `status` instead of `F=B` (#6635).
- `test` no longer crashes when used with "`nan`" or "`inf`" arguments, erroring out instead (#6655).
- Copying from the end of the command line no longer crashes fish (#6680).
- `read` no longer removes multiple separators when splitting a variable into a list, restoring the previous behaviour from fish 3.0 and before (#6650).
- Functions using `--on-job-exit` and `--on-process-exit` work reliably again (#6679).
- Functions using `--on-signal INT` work reliably in interactive sessions, as they did in fish 2.7 and before (#6649). These handlers have never worked in non-interactive sessions, and making them work is an ongoing process.
- Functions using `--on-variable` work reliably with variables which are set implicitly (rather than with `set`), such as "`fish_bind_mode`" and "`PWD`" (#6653).
- 256 colors are properly enabled under certain conditions that were incorrectly detected in fish 3.1.0 (`$TERM` begins with xterm, does not include "`256color`", and `$TERM_PROGRAM` is not set) (#6701).
- The Mercurial (`hg`) prompt no longer produces an error when the current working directory is removed (#6699). Also, for performance reasons it shows only basic information by default; to restore the detailed status, set `$fish_prompt_hg_show_informative_status`.
- The VCS prompt, `fish_vcs_prompt`, no longer displays Subversion (`svn`) status by default, due to the potential slowness of this operation (#6681).
- Pasting of commands has been sped up (#6713).
- Using extended Unicode characters, such as emoji, in a non-Unicode capable locale (such as the `C` or `POSIX` locale) no longer renders all output blank (#6736).
- `help` prefers to use `xdg-open`, avoiding the use of `open` on Debian systems where this command is actually `openvt` (#6739).
- Command lines starting with a space, which are not saved in history, now do not get autosuggestions. This fixes an issue with Midnight Commander integration (#6763), but may be changed in a future version.
- Copying to the clipboard no longer inserts a newline at the end of the content, matching fish 2.7 and earlier (#6927).
- `fzf` in complex pipes no longer hangs. More generally, code run as part of command substitutions or `eval` will no longer have separate process groups. (#6624, #6806).

This release also includes:
- a number of changes to improve macOS compatibility with code signing and notarization;
- a number of improvements to completions; and
- a number of content and formatting improvements to the documentation.

If you are upgrading from version 3.0.0 or before, please also review the release notes for 3.1.0 and 3.1b1 (included below).

## Errata for fish 3.1

A new builtin, `time`, was introduced in the fish 3.1 releases. This builtin is a reserved word (like `test`, `function`, and others) because of the way it is implemented, and functions can no longer be named `time`. This was not clear in the fish 3.1b1 changelog.
2020-05-17 14:25:47 +00:00
micha
d6b6c66f71 pbosh: Update to 2020-05-11
tbl of NetBSD does not work, install man page with unprocessed tables as
workaround.

Changes from AN-2020-03-11:
-	configure: The autoconfiguration now has an enhanced test for waitid()
	that was needed since Mac OS is still not POSIX compliant and returns 0
	instead of the signal number for a process that has been killed by a
	signal. MacOS did pass the POSIX certification as a result of a missing
	test for that problem.

	Since every vertified OS needs to run an annual refresh the
	certification with recent versions of the test, I guess that
	Mac OS (Catalina updates) may become more compliant witin a year.

-	psmake: The portable bootstrap compile environment for smake missed
	a symlink for unsetenv.c to libschily since the related code has been
	moved to libschily in 2018. This prevented compilation on IRIX.

	Thanks to Kazuo Kuroi for reporting

-	libshedit: mystdio.h now calls #undef sprintf and #undef snprintf
	before redefining the names. This avoids clang warnings on MacOS.

-	Bourne Shell: set -m now works in scripts as well. Before, bosh did
	never call startjobs() when the shell startup was done with a shell
	script.

-	Bourne Shell: The shell now supports the alternate ;& switch
	command limiter in addition to ;; where ;& implements a fallthrough
	to the next command list regardless on thether there is a match or not.

-	Bourne Shell: The file xec.c has been reindented for the "case" support
	code in the interpreter. The indentation is now one tab less so code
	becomes more readable.

-	ved/bsh/bosh: map.c now includes better command for the routines that
	implement fallback to some basic mapping when no user defined mapping
	has been set up.

Changes from AN-2020-03-27:
-	Bourne Shell: The case statement now supports the alternate end case
	symbol ";;&" that has been introduced by bash. If ";;&" is used instead
	of ";;", the next pattern list is evaluated and if there is a match,
	the related command list is executed.

Changes from AN-2020-04-18:
-	Bourne Shell: IRIX has ls(1) installed as /sbin/ls and this caused
	some of our unit tests to fail. We now only check for "bin/ls" and
	no longer for "/bin/ls" in "type" return messages.

-	Bourne Shell/bsh: signames.c has been modified to work correctly if the
	number of statically defined realtime signals is odd. This applies to
	NetBSD and caused the shells to miss RTMIN+15 on NetBSD.

	Thanks to Robert Elz for reporting

-	Bourne Shell: A new trap code "ERR" as been introduced. This is modeled
	after a feature from ksh88. "trap cmd ERR" causes "cmd" to be called
	whenever a command causes a non-zero exit code. The "cmd" is not called
	in case that with "set -e" the shell would not exit.

	This is not required by POSIX but helpful.

-	Bourne Shell: A new set of unit tests for the ERR trap has been added.

-	Bourne Shell: An attempt to fix the POSIX behavior for set -e from
	October 2018 has been identified to be wrong. If we kept that change,
	a list with "set -e; ..." and a failing command would not exit as
	expected.

-	Bourne Shell: A new piece of code has been added to handle set -e
	for function calls.

-	Bourne Shell: The man page now better explains the behavior, if in
	set -e mode.

-	Bourne Shell: print.c::prs_cntl() could cause a buffer overflow with
	"unprintable" multi byte UNICODE characters that are printed as list
	of octal escape sequences. the buffer overflow happened because there
	was only redzone space for one such octal escape sequence.

	Thanks to Heiko Eißfeldt for reporting

Changes from AN-2020-05-11:
-	Makefile system: A new version of the BSD make (bmake) program fixed
	a bug in pattern macro substitution, so we are now able to detect
	BSD make and to read BSD make program specific rules.

	This could in theory allow us to support BSD make in the future,
	but...

	Note that we on the other side discovered a new bug with pattern
	macro substitution in bsd make: The substitution:

		$(FOO:%=bar/%)

	is replaced by "bar/" with an empty "FOO", but of course, with an
	empty FOO, the substitution should be empty as well.

	This second bug (above) was fixed on May 6th, but we do not yet have
	all needed make rules and we do not know whether other bugs may still
	prevent the usability of BSD make. Supporting BSD make will be hard
	as BSD make does not support pattern matching default rules and this
	is important for placing the .o files into a sub-directory.

	Also note that the portable program source for "bmake" from "pkgsrc"
	is 2 years old and thus currently cannot be supported at all. If
	you like to experiment on your own, you need to get this version:

		http://crufty.net/help/sjg/bmake.html

	see

		http://www.crufty.net/ftp/pub/sjg/bmake.tar.gz

	and replace the newer files from the netbsd.org CVS tree by hand in
	order to fix the first and second mentioned pattern macro substitution
	bug.

-	Makefile system: RULES/MKLINKS was enhanced to create a new symlink
	RULES/r-bsdmake.tag that points to RULES/r-make.tag

-	Makefile system: The archive makefiles.tar.bz2 has been added to the
	schilytools tree to allow easy reuse of the makefile system for own
	projects.

-	Bourne Shell: The unit tests for the new ERR trap did not work on
	Solaris because /bin/false on Solaris causes an exit code of 255.
	We now only check for an exit code != 0.

-	Bourne Shell: Some of the unit tests for the trap command are now only
	run in case that the SUT is "bosh".

-	Bourne Shell: set -- now checks the '\0' character at the end of
	the string "--". This fixes strange behavior with argument strings that
	start with "--".

-	Bourne Shell: Added a new flag XEC_INFUNC to the xflag parameter to mark
	the fact when inside a function.

-	Bourne Shell: set -e no longer causes commands with nonzero exit code
	to abort inside a function in case that the return code of that function
	is evaluated by e.g. an "if" statement.

	Thanks to Koichi Nakashima for reporting

-	Bourne Shell: A unit test for the above bug has been added.

-	Bourne Shell: $- may no longer be partially wrong (and miss the state
	of the -e flag).

	Thanks to Koichi Nakashima for reporting

-	Bourne Shell: under some rare conditions, the syntax tree -> cmdline
	converter could omit a command delimiter. This was the result of the
	fact that a helper variable "didnl" (used for codeoutput beautifying)
	was not reset in func.c and thus could cause

		printf a ; printf b

	to print "aprintf b" instead of "ab"

	Thanks to Koichi Nakashima for reporting

-	Bourne Shell: A unit test for the above bug has been added.

-	Bourne Shell: A command like:

		command | while read name; do loopcmd; done

	did stop after the first loop because "read" did then read from stdin
	instead of using the pipe file descriptor. This happened only of
	"loopcmd" was not a shell builtin.

	Thanks to Koichi Nakashima for reporting

-	Bourne Shell: A unit test for the above bug has been added.

-	Bourne Shell: When we added support for ${var+value with spaces}
	4 years ago, we forgot to enhance the lexer the same way for things
	like "${var+value with spaces}" and "${var+"value with spaces"}".
	This has been forgotten, because a different part of the lexer is
	used to parse that kind of quoted strings. The lexer now supports
	looking for closing '}' in quoted text as well.

	Thanks to Koichi Nakashima for reporting

-	Bourne Shell: A unit test for the above bug has been added.

-	Bourne Shell: The expression "${var1#"$var2"}" has been introduced by
	ksh88 with strange rules for the way the double quotes past # are
	handled. We now support them....

	Thanks to Koichi Nakashima for reporting

-	Bourne Shell: A unit test for the above bug has been added.

-	Bourne Shell: Some unit tests from "mksh" (that previously have been
	disabled) have been enabled, since the two changes above now make
	the Bourne Shell behave like "mksh" for these 6 additional tests.
2020-05-12 09:06:39 +00:00
micha
d7ed420ba9 bosh: Update to 20200511
Fixed path of true and false utilities for testsuite.
tbl of NetBSD does not work, install man page with unprocessed tables as
workaround.

Changes from AN-2020-03-11:
-	configure: The autoconfiguration now has an enhanced test for waitid()
	that was needed since Mac OS is still not POSIX compliant and returns 0
	instead of the signal number for a process that has been killed by a
	signal. MacOS did pass the POSIX certification as a result of a missing
	test for that problem.

	Since every vertified OS needs to run an annual refresh the
	certification with recent versions of the test, I guess that
	Mac OS (Catalina updates) may become more compliant witin a year.

-	psmake: The portable bootstrap compile environment for smake missed
	a symlink for unsetenv.c to libschily since the related code has been
	moved to libschily in 2018. This prevented compilation on IRIX.

	Thanks to Kazuo Kuroi for reporting

-	libshedit: mystdio.h now calls #undef sprintf and #undef snprintf
	before redefining the names. This avoids clang warnings on MacOS.

-	Bourne Shell: set -m now works in scripts as well. Before, bosh did
	never call startjobs() when the shell startup was done with a shell
	script.

-	Bourne Shell: The shell now supports the alternate ;& switch
	command limiter in addition to ;; where ;& implements a fallthrough
	to the next command list regardless on thether there is a match or not.

-	Bourne Shell: The file xec.c has been reindented for the "case" support
	code in the interpreter. The indentation is now one tab less so code
	becomes more readable.

-	ved/bsh/bosh: map.c now includes better command for the routines that
	implement fallback to some basic mapping when no user defined mapping
	has been set up.

Changes from AN-2020-03-27:
-	Bourne Shell: The case statement now supports the alternate end case
	symbol ";;&" that has been introduced by bash. If ";;&" is used instead
	of ";;", the next pattern list is evaluated and if there is a match,
	the related command list is executed.

Changes from AN-2020-04-18:
-	Bourne Shell: IRIX has ls(1) installed as /sbin/ls and this caused
	some of our unit tests to fail. We now only check for "bin/ls" and
	no longer for "/bin/ls" in "type" return messages.

-	Bourne Shell/bsh: signames.c has been modified to work correctly if the
	number of statically defined realtime signals is odd. This applies to
	NetBSD and caused the shells to miss RTMIN+15 on NetBSD.

	Thanks to Robert Elz for reporting

-	Bourne Shell: A new trap code "ERR" as been introduced. This is modeled
	after a feature from ksh88. "trap cmd ERR" causes "cmd" to be called
	whenever a command causes a non-zero exit code. The "cmd" is not called
	in case that with "set -e" the shell would not exit.

	This is not required by POSIX but helpful.

-	Bourne Shell: A new set of unit tests for the ERR trap has been added.

-	Bourne Shell: An attempt to fix the POSIX behavior for set -e from
	October 2018 has been identified to be wrong. If we kept that change,
	a list with "set -e; ..." and a failing command would not exit as
	expected.

-	Bourne Shell: A new piece of code has been added to handle set -e
	for function calls.

-	Bourne Shell: The man page now better explains the behavior, if in
	set -e mode.

-	Bourne Shell: print.c::prs_cntl() could cause a buffer overflow with
	"unprintable" multi byte UNICODE characters that are printed as list
	of octal escape sequences. the buffer overflow happened because there
	was only redzone space for one such octal escape sequence.

	Thanks to Heiko Eißfeldt for reporting

Changes from AN-2020-05-11:
-	Makefile system: A new version of the BSD make (bmake) program fixed
	a bug in pattern macro substitution, so we are now able to detect
	BSD make and to read BSD make program specific rules.

	This could in theory allow us to support BSD make in the future,
	but...

	Note that we on the other side discovered a new bug with pattern
	macro substitution in bsd make: The substitution:

		$(FOO:%=bar/%)

	is replaced by "bar/" with an empty "FOO", but of course, with an
	empty FOO, the substitution should be empty as well.

	This second bug (above) was fixed on May 6th, but we do not yet have
	all needed make rules and we do not know whether other bugs may still
	prevent the usability of BSD make. Supporting BSD make will be hard
	as BSD make does not support pattern matching default rules and this
	is important for placing the .o files into a sub-directory.

	Also note that the portable program source for "bmake" from "pkgsrc"
	is 2 years old and thus currently cannot be supported at all. If
	you like to experiment on your own, you need to get this version:

		http://crufty.net/help/sjg/bmake.html

	see

		http://www.crufty.net/ftp/pub/sjg/bmake.tar.gz

	and replace the newer files from the netbsd.org CVS tree by hand in
	order to fix the first and second mentioned pattern macro substitution
	bug.

-	Makefile system: RULES/MKLINKS was enhanced to create a new symlink
	RULES/r-bsdmake.tag that points to RULES/r-make.tag

-	Makefile system: The archive makefiles.tar.bz2 has been added to the
	schilytools tree to allow easy reuse of the makefile system for own
	projects.

-	Bourne Shell: The unit tests for the new ERR trap did not work on
	Solaris because /bin/false on Solaris causes an exit code of 255.
	We now only check for an exit code != 0.

-	Bourne Shell: Some of the unit tests for the trap command are now only
	run in case that the SUT is "bosh".

-	Bourne Shell: set -- now checks the '\0' character at the end of
	the string "--". This fixes strange behavior with argument strings that
	start with "--".

-	Bourne Shell: Added a new flag XEC_INFUNC to the xflag parameter to mark
	the fact when inside a function.

-	Bourne Shell: set -e no longer causes commands with nonzero exit code
	to abort inside a function in case that the return code of that function
	is evaluated by e.g. an "if" statement.

	Thanks to Koichi Nakashima for reporting

-	Bourne Shell: A unit test for the above bug has been added.

-	Bourne Shell: $- may no longer be partially wrong (and miss the state
	of the -e flag).

	Thanks to Koichi Nakashima for reporting

-	Bourne Shell: under some rare conditions, the syntax tree -> cmdline
	converter could omit a command delimiter. This was the result of the
	fact that a helper variable "didnl" (used for codeoutput beautifying)
	was not reset in func.c and thus could cause

		printf a ; printf b

	to print "aprintf b" instead of "ab"

	Thanks to Koichi Nakashima for reporting

-	Bourne Shell: A unit test for the above bug has been added.

-	Bourne Shell: A command like:

		command | while read name; do loopcmd; done

	did stop after the first loop because "read" did then read from stdin
	instead of using the pipe file descriptor. This happened only of
	"loopcmd" was not a shell builtin.

	Thanks to Koichi Nakashima for reporting

-	Bourne Shell: A unit test for the above bug has been added.

-	Bourne Shell: When we added support for ${var+value with spaces}
	4 years ago, we forgot to enhance the lexer the same way for things
	like "${var+value with spaces}" and "${var+"value with spaces"}".
	This has been forgotten, because a different part of the lexer is
	used to parse that kind of quoted strings. The lexer now supports
	looking for closing '}' in quoted text as well.

	Thanks to Koichi Nakashima for reporting

-	Bourne Shell: A unit test for the above bug has been added.

-	Bourne Shell: The expression "${var1#"$var2"}" has been introduced by
	ksh88 with strange rules for the way the double quotes past # are
	handled. We now support them....

	Thanks to Koichi Nakashima for reporting

-	Bourne Shell: A unit test for the above bug has been added.

-	Bourne Shell: Some unit tests from "mksh" (that previously have been
	disabled) have been enabled, since the two changes above now make
	the Bourne Shell behave like "mksh" for these 6 additional tests.
2020-05-11 16:52:07 +00:00
fcambus
b0066f092b oksh: update to 6.7.
No ChangeLog available.
2020-05-09 21:58:20 +00:00
rillig
4d552bdd94 shells/bash-completion: remove no-op SUBST block
The README file has been renamed to README.md.
Since it is not installed anyway, there's no need to patch it.
If this need should ever arise again, the other paths in that file
should be patched as well.
2020-05-01 19:59:48 +00:00
nikita
2ee2d68559 adjust maintainer to my new login 2020-04-28 11:46:27 +00:00