Subject: CVS commit: pkgsrc/shells/fish
From: Wen Heping
Date: 2017-05-13 03:19:05
Message id: 20170513011905.D913BFBE4@cvs.NetBSD.org

Log Message:
Update to 2.5.0
Reviewed by:	joerg@

Upstream changes:
Release Notes for fish 2.5.0 (released February 3, 2017)

    The Home, End, Insert, Delete, Page Up and Page Down keys work in Vi-style \ 
key bindings (#3731).

Platform Changes
Starting with version 2.5, fish requires a more up-to-date version of C++, \ 
specifically C++11 (from 2011). This affects some older platforms:
Linux
For users building from source, GCC's g++ 4.8 or later, or LLVM's clang 3.3 or \ 
later, are known to work. Older platforms may require a newer compiler \ 
installed. Unfortunately, because of the complexity of the toolchain, binary \ 
packages are no longer published by the fish-shell developers for the following \ 
platforms:

    Red Hat Enterprise Linux and CentOS 5 & 6 for 64-bit builds
    Ubuntu 12.04 (EoLTS April 2017)
    Debian 7 (EoLTS May 2018)

Installing newer version of fish on these systems will require building from source.
OS X SnowLeopard
Starting with version 2.5, fish requires a C++11 standard library on OS X 10.6 \ 
("SnowLeopard"). If this library is not installed, you will see this \ 
error: dyld: Library not loaded: /usr/lib/libc++.1.dylib MacPorts is the easiest \ 
way to obtain this library. After installing the SnowLeopard MacPorts release \ 
from the install page, run: sudo port -v install libcxx Now fish should launch \ 
successfully. (Please open an issue if it does not.) This is only necessary on \ 
10.6. OS X 10.7 and later include the required library by default.
Other significant changes

    Attempting to exit with running processes in the background produces a \ 
warning, then signals them to terminate if a second attempt to exit is made. \ 
This brings the behaviour for running background processes into line with \ 
stopped processes. (#3497)
    random can now have start, stop and step values specified, or the new choice \ 
subcommand can be used to pick an argument from a list (#3619).
    A new key bindings preset, fish_hybrid_key_bindings, including all the \ 
Emacs-style and Vi-style bindings, which behaves like fish_vi_key_bindings in \ 
fish 2.3.0 (#3556).
    function now returns an error when called with invalid options, rather than \ 
defining the function anyway (#3574). This was a regression present in fish 2.3 \ 
and 2.4.0.
    fish no longer prints a warning when it identifies a running instance of an \ 
old version (2.1.0 and earlier). Changes to universal variables may not \ 
propagate between these old versions and 2.5b1.
    Improved compatiblity with Android (#3585), MSYS/mingw (#2360), Solaris \ 
(#3456, #3340)
    Like other shells, the test builting now returns an error for numeric \ 
operations on invalid integers (#3346, #3581).
    complete no longer recognises --authoritative and --unauthoritative options, \ 
and they are marked as obsolete.
    status accepts subcommands, and should be used like status is-interactive. \ 
The old options continue to be supported for the foreseeable future (#3526), \ 
although only one subcommand or option can be specified at a time.
    Selection mode (used with "begin-selection") no longer selects a \ 
character the cursor does not move over (#3684).
    List indexes are handled better, and a bit more liberally in some cases \ 
(echo $PATH[1 .. 3] is now valid) (#3579).
    The fish_mode_prompt function is now simply a stub around \ 
fish_default_mode_prompt, which allows the mode prompt to be included more \ 
easily in customised prompt functions (#3641).

Notable fixes and improvements

    alias, run without options or arguments, lists all defined aliases, and \ 
aliases now include a description in the function signature that identifies \ 
them.
    complete accepts empty strings as descriptions (#3557).
    command accepts -q/--quiet in combination with --search (#3591), providing a \ 
simple way of checking whether a command exists in scripts.
    Abbreviations can now be renamed with abbr --rename OLD_KEY NEW_KEY (#3610).
    The command synopses printed by --help options work better with copying and \ 
pasting (#2673).
    help launches the browser specified by the $fish_help_browser variable if it \ 
is set (#3131).
    History merging could lose items under certain circumstances and is now \ 
fixed (#3496).
    The $status variable is now set to 123 when a syntactically invalid command \ 
is entered (#3616).
    Exiting fish now signals all background processes to terminate, not just \ 
stopped jobs (#3497).
    A new prompt_hostname function which prints a hostname suitable for use in \ 
prompts (#3482).
    The __fish_man_page function (bound to Alt-h by default) now tries to \ 
recognize subcommands (e.g. git add will now open the "git-add" man \ 
page) (#3678).
    A new function edit_command_buffer (bound to Alt-e & Alt-v by default) \ 
to edit the command buffer in an external editor (#1215, #3627).
    set_color now supports italics (--italics), dim (--dim) and reverse \ 
(--reverse) modes (#3650).
    Filesystems with very slow locking (eg incorrectly-configured NFS) will no \ 
longer slow fish down (#685).
    Improved completions for apt (#3695), fusermount (#3642), make (#3628), \ 
netctl-auto (#3378), nmcli (#3648), pygmentize (#3378), and tar (#3719).
    Added completions for:
    VBoxHeadless (#3378)
    VBoxSDL (#3378)
    base64 (#3378)
    caffeinate (#3524)
    dconf (#3638)
    dig (#3495)
    dpkg-reconfigure (#3521 & #3522)
    feh (#3378)
    launchctl (#3682)
    lxc (#3554 & #3564),
    mddiagnose (#3524)
    mdfind (#3524)
    mdimport (#3524)
    mdls (#3524)
    mdutil (#3524)
    mkvextract (#3492)
    nvram (#3524)
    objdump (#3378)
    sysbench (#3491)
    tmutil (#3524)

Release Notes for fish 2.4.0 (released November 8, 2016)
Significant changes

    The clipboard integration has been revamped with explicit bindings. The \ 
killring commands no longer copy from, or paste to, the X11 clipboard - use the \ 
new copy (C-x) and paste (C-v) bindings instead. The clipboard is now available \ 
on OS X as well as systems using X11 (e.g. Linux). (#3061)
    history uses subcommands (history delete) rather than options (history \ 
--delete) for its actions (#3367). You can no longer specify multiple actions \ 
via flags (e.g., history --delete --save something).
    New history options have been added, including --max=n to limit the number \ 
of history entries, --show-time option to show timestamps (#3175, #3244), and \ 
--null to null terminate history entries in the search output.
    history search is now case-insensitive by default (which also affects \ 
history delete) (#3236).
    history delete now correctly handles multiline commands (#31).
    Vi-style bindings no longer include all of the default emacs-style bindings; \ 
instead, they share some definitions (#3068).
    If there is no locale set in the environment, various known system \ 
configuration files will be checked for a default. If no locale can be found, \ 
en_US-UTF.8 will be used (#277).
    A number followed by a caret (e.g. 5^) is no longer treated as a redirection \ 
(#1873).
    The $version special variable can be overwritten, so that it can be used for \ 
other purposes if required.

Notable fixes and improvements

    The fish_realpath builtin has been renamed to realpath and made compatible \ 
with GNU realpath when run without arguments (#3400). It is used only for \ 
systems without a realpath or grealpath utility (#3374).
    Improved color handling on terminals/consoles with 8-16 colors, particularly \ 
the use of bright named color (#3176, #3260).
    fish_indent can now read from files given as arguments, rather than just \ 
standard input (#3037).
    Fuzzy tab completions behave in a less surprising manner (#3090, #3211).
    jobs should only print its header line once (#3127).
    Wildcards in redirections are highlighted appropriately (#2789).
    Suggestions will be offered more often, like after removing characters (#3069).
    history --merge now correctly interleaves items in chronological order (#2312).
    Options for fish_indent have been aligned with the other binaries - in \ 
particular, -d now means --debug. The --dump option has been renamed to \ 
--dump-parse-tree (#3191).
    The display of bindings in the Web-based configuration has been greatly \ 
improved (#3325), as has the rendering of prompts (#2924).
    fish should no longer hang using 100% CPU in the C locale (#3214).
    A bug in FreeBSD 11 & 12, Dragonfly BSD & illumos prevented fish \ 
from working correctly on these platforms under UTF-8 locales; fish now avoids \ 
the buggy behaviour (#3050).
    Prompts which show git repository information (via __fish_git_prompt) are \ 
faster in large repositories (#3294) and slow filesystems (#3083).
    fish 2.3.0 reintroduced a problem where the greeting was printed even when \ 
using read; this has been corrected again (#3261).
    Vi mode changes the cursor depending on the current mode (#3215).
    Command lines with escaped space characters at the end tab-complete \ 
correctly (#2447).
    Added completions for:
        arcanist (#3256)
        connmanctl (#3419)
        figlet (#3378)
        mdbook (#3378)
        ninja (#3415)
        p4, the Perforce client (#3314)
        pygmentize (#3378)
        ranger (#3378)
    Improved completions for aura (#3297), abbr (#3267), brew (#3309), chown \ 
(#3380, #3383),cygport (#3392), git (#3274, #3226, #3225, #3094, #3087, #3035, \ 
#3021, #2982, #3230), kill & pkill (#3200), screen (#3271), wget (#3470), \ 
and xz (#3378).
    Distributors, packagers and developers will notice that the build process \ 
produces more succinct output by default; use make V=1 to get verbose output \ 
(#3248).
    Improved compatibility with minor platforms including musl (#2988), Cygwin \ 
(#2993), Android (#3441, #3442), Haiku (#3322) and Solaris.
    Automatic cursor changes are now only enabled on the subset of XTerm \ 
versions known to support them, resolving a problem where older versions printed \ 
garbage to the terminal before and after every prompt (#3499).
    Improved the title set in Apple Terminal.app.
    Added completions for defaults and improved completions for diskutil (#3478).

Release Notes for fish 2.3.1 (released July 3, 2016)
This is a functionality and bugfix release. This release does not contain all \ 
the changes to fish since the last release, but fixes a number of issues \ 
directly affecting users at present and includes a small number of new features.
Significant changes

    A new fish_key_reader binary for decoding interactive keypresses (#2991).
    fish_mode_prompt has been updated to reflect the changes in the way the Vi \ 
input mode is set up (#3067), making this more reliable.
    fish_config can now properly be launched from the OS X app bundle (#3140).

Notable fixes and improvements

    Extra lines were sometimes inserted into the output under Windows (Cygwin \ 
and Microsoft Windows Subsystem for Linux) due to TTY timestamps not being \ 
updated (#2859).
    The string builtin's match mode now handles the combination of -rnv (match, \ 
invert and count) correctly (#3098).
    Improvements to TTY special character handling (#3064), locale handling \ 
(#3124) and terminal environment variable handling (#3060).
    Work towards handling the terminal modes for external commands launched from \ 
initialisation files (#2980).
    Ease the upgrade path from fish 2.2.0 and before by warning users to restart \ 
fish if the string builtin is not available (#3057).
    type -a now syntax-colorizes function source output.
    Added completions for alsamixer, godoc, gofmt, goimports, gorename, lscpu, \ 
mkdir, modinfo, netctl-auto, poweroff, termite, udisksctl and xz (#3123).
    Improved completions for apt (#3097), aura (#3102),git (#3114), npm (#3158), \ 
string and suspend (#3154).

Release Notes for fish 2.3.0 (released May 20, 2016)
Significant Changes

    A new string builtin to handle… strings! This builtin will measure, \ 
split, search and replace text strings, including using regular expressions. It \ 
can also be used to turn lists into plain strings using join. string can be used \ 
in place of sed, grep, tr, cut, and awk in many situations. (#2296)
    After seeing an escape character wait up to 300ms for an additional \ 
character. This is consistent with readline (e.g. bash) and can be configured \ 
via the fish_escape_delay_ms variable. This allows using escape as the Meta \ 
modifier. (#1356)
    Add new directories for vendor functions and configuration snippets (#2498)
    A new fish_realpath builtin and associated function to allow the use of \ 
realpath even on those platforms that don't ship an appropriate command. (#2932)
    Alt-# toggles the current command line between commented and uncommented \ 
states, making it easy to save a command in history without executing it.
    The fish_vi_mode function is now deprecated in favour of fish_vi_key_bindings

Backward-incompatible changes

    Unmatched globs will now cause an error, except when used with for, set or \ 
count (#2719, #2394)
    and and or will now bind to the closest if or while, allowing compound \ 
conditions without begin and end (#1428)
    set -ql now searches up to function scope for variables (#2502)
    status -f will now behave the same when run as the main script or using \ 
source (#2643)
    source no longer puts the file name in $argv if no arguments are given (#139)

Other Notable Fixes and Improvements

    Fish no longer silences errors in config.fish (#2702)
    Move the history file to $XDG_DATA_HOME/fish (or ~/.local/share if it has \ 
not been set)
    Directory autosuggestions will now descend as far as possible if there is \ 
only one child directory (#2531)
    Add support for bright colors (#1464)
    Allow Ctrl-J (\cj) to be bound separately from Ctrl-M (\cm) (#217)
    psub now has a "-s"/"-suffix" option to name the \ 
temporary file with that suffix
    Enable 24-bit colors on select terminals (#2495)
    Support for SVN status in the prompt (#2582)
    Mercurial and SVN support have been added to the Classic + Git (now Classic \ 
+ VCS) prompt (via the new __fish_vcs_prompt function) (#2592)
    export now handles variables with a "=" in the value (#2403)
    Avoid confusing the terminal line driver with non-printing characters in \ 
fish_title(#2453)
    New completions for:
        alsactl
        Archlinux’s asp, makepkg
        Atom’s apm (#2390)
        entr - the "Event Notify Test Runner" (#2265)
        Fedora’s dnf (#2638)
        OSX diskutil (#2738)
        pkgng (#2395)
        pulseaudio’s pacmd and pactl
        rmmod (#3007)
        rust’s rustc and cargo (#2409)
        sysctl (#2214)
        systemd’s machinectl (#2158), busctl (#2144), systemd-nspawn, \ 
systemd-analyze, localectl, timedatectl
        and more
    Fish no longer has a function called sgrep, freeing it for user \ 
customization (#2245)
    A rewrite of the completions for cd, fixing a few bugs (#2299, #2300, #562)
    Linux VTs now run in a simplified mode to avoid issues (#2311)
    The vi-bindings now inherit from the emacs bindings
    Fish will also execute fish_user_key_bindings when in vi-mode
    funced will now also check $VISUAL (#2268)
    A new suspend function (#2269)
    Subcommand completion now works better with split /usr (#2141)
    The command-not-found-handler can now be overridden by defining a function \ 
called __fish_command_not_found_handler in config.fish (#2331)
    A few fixes to the Sorin theme
    PWD shortening in the prompt can now be configured via the \ 
fish_prompt_pwd_dir_length variable, set to the length per path component \ 
(#2473)
    fish now ships a skeleton file for /etc/fish/config.fish that only contains \ 
some documentation, the included code has been moved to the corresponding file \ 
in /usr (#2799)

Release Notes for fish 2.2.0 (released July 12, 2015)
Significant Changes

    Abbreviations: the new `abbr` command allows for interactively-expanded \ 
abbreviations, allowing quick access to frequently-used commands (#731).
    Vi mode: run `fish_vi_mode` to switch fish into the key bindings and prompt \ 
familiar to users of the Vi editor (#65).
    New inline and interactive pager, which will be familiar to users of zsh (#291).
    Underlying architectural changes: the `fishd` universal variable server has \ 
been removed as it was a source of many bugs and security problems. Notably, old \ 
fish sessions will not be able to communicate universal variable changes with \ 
new fish sessions. For best results, restart all running instances of `fish`.
    The web-based configuration tool has been redesigned, featuring a prompt \ 
theme chooser and other improvements.
    New German, Brazilian Portuguese, and Chinese translations.

Backward-incompatible changes
These are kept to a minimum, but either change undocumented features or are too \ 
hard to use in their existing forms. These changes may break existing scripts.

    `commandline` no longer interprets functions "in reverse", instead \ 
behaving as expected (#1567).
    The previously-undocumented `CMD_DURATION` variable is now set for all \ 
commands and contains the execution time of the last command in milliseconds \ 
(#1585). It is no longer exported to other commands (#1896).
    `if` / `else` conditional statements now return values consistent with the \ 
Single Unix Specification, like other shells (#1443).
    A new "top-level" local scope has been added, allowing local \ 
variables declared on the commandline to be visible to subsequent commands. \ 
(#206)

Other notable fixes and improvements

    New documentation design (#1662), which requires a Doxygen version 1.8.7 or \ 
newer to build.
    Fish now defines a default directory for other packages to provide \ 
completions. By default this is `/usr/share/fish/vendor-completions.d`; on \ 
systems with `pkgconfig` installed this path is discoverable with `pkg-config \ 
--variable completionsdir fish`.
    A new parser removes many bugs; all existing syntax should keep working.
    New `fish_preexec` and `fish_postexec` events are fired before and after job \ 
execution respectively (#1549).
    Unmatched wildcards no longer prevent a job from running. Wildcards used \ 
interactively will still print an error, but the job will proceed and the \ 
wildcard will expand to zero arguments (#1482).
    The `.` command is deprecated and the `source` command is preferred (#310).
    `bind` supports "bind modes", which allows bindings to be set for \ 
a particular named mode, to support the implementation of Vi mode.
    A new `export` alias, which behaves like other shells (#1833).
    `command` has a new `--search` option to print the name of the disk file \ 
that would be executed, like other shells' `command -v` (#1540).
    `commandline` has a new `--paging-mode` option to support the new pager.
    `complete` has a new `--wraps` option, which allows a command to \ 
(recursively) inherit the completions of a wrapped command (#393), and `complete \ 
-e` now correctly erases completions (#380).
    Completions are now generated from manual pages by default on the first run \ 
of fish (#997).
    `fish_indent` can now produce colorized (`--ansi`) and HTML (`--html`) \ 
output (#1827).
    `functions --erase` now prevents autoloaded functions from being reloaded in \ 
the current session.
    `history` has a new `--merge` option, to incorporate history from other \ 
sessions into the current session (#825).
    `jobs` returns 1 if there are no active jobs (#1484).
    `read` has several new options:
        `--array` to break input into an array (#1540)
        `--null` to break lines on NUL characters rather than newlines (#1694)
        `--nchars` to read a specific number of characters (#1616)
        `--right-prompt` to display a right-hand-side prompt during interactive \ 
read (#1698).
    `type` has a new `-q` option to suppress output (#1540 and, like other \ 
shells, `type -a` now prints all matches for a command (#261).
    Pressing F1 now shows the manual page for the current command (#1063).
    `fish_title` functions have access to the arguments of the currently running \ 
argument as `$argv[1]` (#1542).
    The OS command-not-found handler is used on Arch Linux (#1925), nixOS \ 
(#1852), openSUSE and Fedora (#1280).
    `Alt`+`.` searches backwards in the token history, mapping to the same \ 
behavior as inserting the last argument of the previous command, like other \ 
shells (#89).
    The `SHLVL` environment variable is incremented correctly (#1634 & #1693).
    Added completions for `adb` (#1165 & #1211), `apt` (#2018), `aura` \ 
(#1292), `composer` (#1607), `cygport` (#1841), `dropbox` (#1533), `elixir` \ 
(#1167), `fossil`, `heroku` (#1790), `iex` (#1167), `kitchen` (#2000), `nix` \ 
(#1167), `node`/`npm` (#1566), `opam` (#1615), `setfacl` (#1752), `tmuxinator` \ 
(#1863), and `yast2` (#1739).
    Improved completions for `brew` (#1090 & #1810), `bundler` (#1779), `cd` \ 
(#1135), `emerge` (#1840),`git` (#1680, #1834 & #1951), `man` (#960), \ 
`modprobe` (#1124), `pacman` (#1292), `rpm` (#1236), `rsync` (#1872), `scp` \ 
(#1145), `ssh` (#1234), `sshfs` (#1268), `systemctl` (#1462, #1950 & #1972), \ 
`tmux` (#1853), `vagrant` (#1748), `yum` (#1269), and `zypper` (#1787).

Files:
RevisionActionfile
1.8modifypkgsrc/shells/fish/Makefile
1.3modifypkgsrc/shells/fish/PLIST
1.6modifypkgsrc/shells/fish/distinfo
1.3modifypkgsrc/shells/fish/patches/patch-Makefile.in
1.4modifypkgsrc/shells/fish/patches/patch-configure
1.1addpkgsrc/shells/fish/patches/patch-src_builtin.cpp
1.1removepkgsrc/shells/fish/patches/patch-builtin.cpp
1.1removepkgsrc/shells/fish/patches/patch-common.cpp
1.1removepkgsrc/shells/fish/patches/patch-common.h
1.1removepkgsrc/shells/fish/patches/patch-env.cpp
1.1removepkgsrc/shells/fish/patches/patch-exec.cpp
1.1removepkgsrc/shells/fish/patches/patch-fallback.h
1.1removepkgsrc/shells/fish/patches/patch-history.cpp
1.1removepkgsrc/shells/fish/patches/patch-output.cpp
1.1removepkgsrc/shells/fish/patches/patch-output.h
1.1removepkgsrc/shells/fish/patches/patch-parser.cpp
1.1removepkgsrc/shells/fish/patches/patch-parser__keywords.cpp
1.2removepkgsrc/shells/fish/patches/patch-proc.h
1.2removepkgsrc/shells/fish/patches/patch-screen.cpp