head 1.5; access; symbols pkgsrc-2026Q1:1.4.0.2 pkgsrc-2026Q1-base:1.4 pkgsrc-2025Q4:1.3.0.2 pkgsrc-2025Q4-base:1.3 pkgsrc-2025Q3:1.2.0.28 pkgsrc-2025Q3-base:1.2 pkgsrc-2025Q2:1.2.0.26 pkgsrc-2025Q2-base:1.2 pkgsrc-2025Q1:1.2.0.24 pkgsrc-2025Q1-base:1.2 pkgsrc-2024Q4:1.2.0.22 pkgsrc-2024Q4-base:1.2 pkgsrc-2024Q3:1.2.0.20 pkgsrc-2024Q3-base:1.2 pkgsrc-2024Q2:1.2.0.18 pkgsrc-2024Q2-base:1.2 pkgsrc-2024Q1:1.2.0.16 pkgsrc-2024Q1-base:1.2 pkgsrc-2023Q4:1.2.0.14 pkgsrc-2023Q4-base:1.2 pkgsrc-2023Q3:1.2.0.12 pkgsrc-2023Q3-base:1.2 pkgsrc-2023Q2:1.2.0.10 pkgsrc-2023Q2-base:1.2 pkgsrc-2023Q1:1.2.0.8 pkgsrc-2023Q1-base:1.2 pkgsrc-2022Q4:1.2.0.6 pkgsrc-2022Q4-base:1.2 pkgsrc-2022Q3:1.2.0.4 pkgsrc-2022Q3-base:1.2 pkgsrc-2022Q2:1.2.0.2 pkgsrc-2022Q2-base:1.2 pkgsrc-2022Q1:1.1.0.10 pkgsrc-2022Q1-base:1.1 pkgsrc-2021Q4:1.1.0.8 pkgsrc-2021Q4-base:1.1 pkgsrc-2021Q3:1.1.0.6 pkgsrc-2021Q3-base:1.1 pkgsrc-2021Q2:1.1.0.4 pkgsrc-2021Q2-base:1.1 pkgsrc-2021Q1:1.1.0.2 pkgsrc-2021Q1-base:1.1; locks; strict; comment @# @; 1.5 date 2026.05.10.18.46.49; author vins; state Exp; branches; next 1.4; commitid YcE2S7s3CEQxCiFG; 1.4 date 2025.12.31.00.47.58; author ktnb; state Exp; branches; next 1.3; commitid Gi5BaEnFQOVFPuoG; 1.3 date 2025.12.13.17.47.21; author vins; state Exp; branches; next 1.2; commitid hU6mC5k41kKP2hmG; 1.2 date 2022.04.21.11.24.52; author jperkin; state Exp; branches; next 1.1; commitid KQgq0i8vvZJtK3BD; 1.1 date 2021.03.05.08.47.29; author nia; state Exp; branches; next ; commitid Vq4BrCztKWXy76KC; desc @@ 1.5 log @shells/fish: update to 4.7.1 # pkgsrc changes Illumos support has been upstreamed (yes!), hence most patches have been dropped. # upstream changes (since 4.3.2) fish 4.7.1 (released May 08, 2026) ================================== This release fixes a regression in 4.7.0 that caused the web config (``fish_config``) to fail to start (:issue:`12717`). fish 4.7.0 (released May 05, 2026) ================================== Deprecations and removed features --------------------------------- - The default theme (i.e. the ``fish_color_*`` variables) is no longer set in non-interactive shells. Interactive improvements ------------------------ - :doc:`prompt_pwd ` now strips control characters. - Repaint events (as triggered by changes to color variables or by event handlers running ``commandline -f repaint``) no longer reset the completion pager and other transient UI states (:issue:`12683`). - :envvar:`fish_color_valid_path` now respects background and underline colors (:issue:`12622`). - :doc:`funced ` will no longer lose work if there are parse errors multiple times without new changes to the file. - Fixed a case where directory completions were sorted in a surprising order (:issue:`12695`). - When at the command token, the :kbd:`alt-o` binding will now open read-only files too (:issue:`12671`). - Private mode in-memory history (``set fish_history``) is no longer shared with :doc:`builtin read ` (:issue:`12662`). Other improvements ------------------ - History is no longer corrupted with NUL bytes when fish receives SIGTERM or SIGHUP (:issue:`10300`). - :doc:`fish_update_completions ` now handles groff ``\X'...'`` device control escapes, fixing completion generation for man pages produced by help2man 1.50 and later (such as coreutils 9.10). - Removing history entries via the :doc:`web-based config ` is more intuitive. - If :envvar:`XDG_DATA_DIRS` is empty, the default value is assumed, which means that fish will now also use configuration from paths like ``$PREFIX/share/fish/vendor_completions.d`` (:issue:`11349`). - Some internal file descriptors were moved to number 10 or higher, to reduce risk of clashes with those used by the user in scripts. - The wording of error messages has been made consistent, especially for builtin subcommands (:issue:`12556`). For distributors and developers ------------------------------- - When the default global config directory (``$PREFIX/etc/fish``) exists but has been overridden via ``-DCMAKE_INSTALL_SYSCONFDIR``, fish will now respect that override (:issue:`10748`). - ``build_tools/update_translations.fish`` has been replaced by ``cargo xtask gettext {check,new,update}`` (:issue:`12676`). - ``cargo xtask shellcheck`` to lint shell-scripts. Regression fixes: ----------------- - (from 4.6) Vi mode ``dl`` (:issue:`12461`). - (from 4.6) Backspace after newline (:issue:`12583`). - (from 4.3.3) Long options were spuriously completed after typing short options (85e76ba3561). - (from 3.2) ``nosuchcommand || echo hello`` executes the right hand side again (:issue:`12654`). fish 4.6.0 (released March 28, 2026) ==================================== Notable improvements and fixes ------------------------------ - New Spanish translations (:issue:`12489`). - New Japanese translations (:issue:`12499`). Deprecations and removed features --------------------------------- - The default width for emoji is switched from 1 to 2, improving the experience for users connecting to old systems from modern desktops. Users of old desktops who notice that lines containing emoji are misaligned can set ``$fish_emoji_width`` back to 1 (:issue:`12562`). Interactive improvements ------------------------ - The tab completion pager now left-justifies the description of each column (:issue:`12546`). - fish now supports the ``SHELL_PROMPT_PREFIX``, ``SHELL_PROMPT_SUFFIX``, and ``SHELL_WELCOME`` environment variables. The prefix and suffix are automatically prepended and appended to the left prompt, and the welcome message is displayed on startup after the greeting. These variables are set by systemd's ``run0`` for example (:issue:`10924`). Improved terminal support ------------------------- - ``set_color`` is able to turn off italics, reverse mode, strikethrough and underline individually (e.g. ``--italics=off``). - ``set_color`` learned the foreground (``--foreground`` or ``-f``) and reset (``--reset``) options. - An error caused by slow terminal responses at macOS startup has been addressed (:issue:`12571`). Other improvements ------------------ - Signals like ``SIGWINCH`` (as sent on terminal resize) no longer interrupt builtin output (:issue:`12496`). - For compatibility with Bash, fish now accepts ``|&`` as alternate spelling of ``&|``, for piping both standard output and standard error (:issue:`11516`). - ``fish_indent`` now preserves comments and newlines immediately preceding a brace block (``{ }``) (:issue:`12505`). - A crash when suspending certain pipelines with :kbd:`ctrl-z` has been fixed (:issue:`12301`). For distributors and developers ------------------------------- - ``cargo xtask`` subcommands no longer panic on test failures. Regression fixes: ----------------- - (from 4.5.0) Intermediate ``⏎`` artifact when redrawing prompt (:issue:`12476`). - (from 4.4.0) ``history`` honors explicitly specified ``--color=`` again (:issue:`12512`). - (from 4.4.0) Vi mode ``dl`` and ``dh`` (:issue:`12461`). - (from 4.3.0) Error completing of commands starting with ``-`` (:issue:`12522`). fish 4.5.0 (released February 17, 2026) ======================================= This is mostly a patch release for Vi mode regressions in 4.4.0 but other minor behavior changes are included as well. Interactive improvements ------------------------ - :kbd:`ctrl-l` no longer cancels history search (:issue:`12436`). - History search cursor positioning now works correctly with characters of arbitrary width. Deprecations and removed features --------------------------------- - fish no longer reads the terminfo database to alter behaviour based on the :envvar:`TERM` environment variable, and does not depend on ncurses or terminfo. The ``ignore-terminfo`` feature flag, introduced and enabled by default in fish 4.1, is now permanently enabled. fish may no longer work correctly on Data General Dasher D220 and Wyse WY-350 terminals, but should continue to work on all known terminal emulators released in the 21st century. Regression fixes: ----------------- - (from 4.4.0) Vi mode ``d,f`` key binding did not work (:issue:`12417`). - (from 4.4.0) Vi mode ``c,w`` key binding wrongly deleted trailing spaces (:issue:`12443`). - (from 4.4.0) Vi mode crash on ``c,i,w`` after accepting autosuggestion (:issue:`12430`). - (from 4.4.0) ``fish_vi_key_bindings`` called with a mode argument produced an error (:issue:`12413`). - (from 4.0.0) Build on Illumos (:issue:`12410`). fish 4.4.0 (released February 03, 2026) ======================================= Deprecations and removed features --------------------------------- - The default fossil prompt has been disabled (:issue:`12342`). Interactive improvements ------------------------ - The ``bind`` builtin lists mappings from all modes if ``--mode`` is not provided (:issue:`12214`). - Line-wise autosuggestions that don't start a command are no longer shown (739b82c34db, 58e7a50de8a). - Builtin ``history`` now assumes that :envvar:`PAGER` supports ANSI color sequences. - fish now clears the terminal's ``FLUSHO`` flag when acquiring control of the terminal, to fix an issue caused by pressing :kbd:`ctrl-o` on macOS (:issue:`12304`). New or improved bindings ------------------------ - Vi mode word movements (``w``, ``W``, ``e``, and ``E``) are now largely in line with Vim. The only exception is that underscores are treated as word separators (:issue:`12269`). - New special input functions to support these movements: ``forward-word-vi``, ``kill-word-vi``, ``forward-bigword-vi``, ``kill-bigword-vi``, ``forward-word-end``, ``backward-word-end``, ``forward-bigword-end``, ``backward-bigword-end``, ``kill-a-word``, ``kill-inner-word``, ``kill-a-bigword``, and ``kill-inner-bigword``. - Vi mode key bindings now support counts for movement and deletion commands (e.g. `d3w` or `3l`), via a new operator mode (:issue:`2192`). - New ``catppuccin-*`` color themes. Improved terminal support ------------------------- - ``set_color`` learned the strikethrough (``--strikethrough`` or ``-s``) modifier. For distributors and developers ------------------------------- - The CMake option ``WITH_GETTEXT`` has been renamed to ``WITH_MESSAGE_LOCALIZATION``, to reflect that it toggles localization independently of the backend used in the implementation. - New ``cargo xtask`` commands can replace some CMake workflows. Regression fixes: ----------------- - (from 4.1.0) Crash when autosuggesting Unicode characters with nontrivial lowercase mapping (:issue:`12326`, 78f4541116e). - (from 4.3.0) Glitch on ``read --prompt-str ""`` (:issue:`12296`). fish 4.3.3 (released January 07, 2026) ====================================== This release fixes the following problems identified in fish 4.3.0: - Selecting a completion could insert only part of the token (:issue:`12249`). - Glitch with soft-wrapped autosuggestions and :doc:`fish_right_prompt ` (:issue:`12255`). - Spurious echo in tmux when typing a command really fast (:issue:`12261`). - ``tomorrow`` theme always using the light variant (:issue:`12266`). - ``fish_config theme choose`` sometimes not shadowing themes set by e.g. webconfig (:issue:`12278`). - The sample prompts and themes are correctly installed (:issue:`12241`). - Last line of command output could be hidden when missing newline (:issue:`12246`). Other improvements include: - The ``abbr``, ``bind``, ``complete``, ``functions``, ``history`` and ``type`` commands now support a ``--color`` option to control syntax highlighting in their output. Valid values are ``auto`` (default), ``always``, or ``never``. - Existing file paths in redirection targets such as ``> file.txt`` are now highlighted using :envvar:`fish_color_valid_path`, indicating that ``file.txt`` will be clobbered (:issue:`12260`). @ text @$NetBSD: patch-cmake_Install.cmake,v 1.4 2025/12/31 00:47:58 ktnb Exp $ Use pkgsrc defaults. --- cmake/Install.cmake.orig 2026-05-07 16:02:14.000000000 +0000 +++ cmake/Install.cmake @@@@ -4,11 +4,14 @@@@ set(prefix ${CMAKE_INSTALL_PREFIX}) set(bindir ${CMAKE_INSTALL_BINDIR}) set(sysconfdir ${CMAKE_INSTALL_SYSCONFDIR}) set(mandir ${CMAKE_INSTALL_MANDIR}) +set(libdir ${CMAKE_INSTALL_LIBDIR}) + set(datadir ${CMAKE_INSTALL_FULL_DATADIR}) file(RELATIVE_PATH rel_datadir ${CMAKE_INSTALL_PREFIX} ${datadir}) set(docdir ${CMAKE_INSTALL_DOCDIR}) +set(egdir "${datadir}/examples") set(rel_completionsdir "fish/vendor_completions.d") set(rel_functionsdir "fish/vendor_functions.d") @@@@ -101,7 +104,7 @@@@ install(CODE "file(CREATE_LINK ${abs_bin fish_create_dirs(${sysconfdir}/fish/conf.d ${sysconfdir}/fish/completions ${sysconfdir}/fish/functions) -install(FILES etc/config.fish DESTINATION ${sysconfdir}/fish/) +install(FILES etc/config.fish DESTINATION ${egdir}/fish/) fish_create_dirs( ${rel_datadir}/fish ${rel_datadir}/fish/completions @@@@ -142,7 +145,7 @@@@ add_custom_target(build_fish_pc ALL DEPE install( FILES ${CMAKE_CURRENT_BINARY_DIR}/fish.pc - DESTINATION ${rel_datadir}/pkgconfig + DESTINATION ${libdir}/pkgconfig ) install( @ 1.4 log @fish: update to 4.3.2 Packaging update: - requires py-sphinx to make man pages now - upstream fixed two patches! 4.3.2: Some other bugs 4.3.1: Fixes possible crash after expanding an abbreviation 4.3.0: Deprecations and removed features - fish no longer sets universal variables by default, which simplifies configuration. Specifically, the fish_color_*, fish_pager_color_* and fish_key_bindings variables are now set in the global scope by default. - fish_config theme choose now clears only color variables that were set by earlier invocations of a fish_config theme choose command (which is how fish’s default theme is set). Scripting improvements - New status language command allows showing and modifying language settings for fish messages without having to modify environment variables. Interactive improvements - When typing immediately after starting fish, the first prompt is now rendered correctly. - Completion accuracy was improved for file paths containing = or : - Prefix-matching completions are now shown even if they don’t match the case typed by the user - Autosuggestions now also show soft-wrapped portions New or improved bindings - ctrl-w (backward-kill-path-component) also deletes escaped spaces - New special input functions backward-path-component, forward-path-component and kill-path-component Improved terminal support - Themes can now be made color-theme-aware by including both [light] and [dark] sections in the theme file - The working directory is now reported on every fresh prompt (via OSC 7), fixing scenarios where a child process (like ssh) left behind a stale working directory - OSC 133 prompt markers now also mark the prompt end, which improves shell integration with terminals like iTerm2 - Operating-system-specific key bindings are now decided based on the terminal’s host OS. - Focus reporting is enabled unconditionally, not just inside tmux @ text @d1 1 a1 1 $NetBSD: patch-cmake_Install.cmake,v 1.3 2025/12/13 17:47:21 vins Exp $ d5 1 a5 1 --- cmake/Install.cmake.orig 2025-12-28 15:54:44.000000000 +0000 d22 1 a22 1 @@@@ -88,7 +91,7 @@@@ install(CODE "file(CREATE_LINK ${abs_bin d29 9 a37 17 fish_create_dirs(${rel_datadir}/fish ${rel_datadir}/fish/completions ${rel_datadir}/fish/functions @@@@ -108,7 +111,7 @@@@ install(FILES share/config.fish fish_create_dirs(${rel_datadir}/fish/vendor_completions.d ${rel_datadir}/fish/vendor_functions.d ${rel_datadir}/fish/vendor_conf.d) -fish_try_create_dirs(${rel_datadir}/pkgconfig) +fish_try_create_dirs(${libdir}/pkgconfig) configure_file(fish.pc.in fish.pc.noversion @@ONLY) add_custom_command(OUTPUT fish.pc @@@@ -121,7 +124,7 @@@@ add_custom_command(OUTPUT fish.pc add_custom_target(build_fish_pc ALL DEPENDS fish.pc) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/fish.pc - DESTINATION ${rel_datadir}/pkgconfig) + DESTINATION ${libdir}/pkgconfig) d39 1 a39 2 install(DIRECTORY share/completions/ DESTINATION ${rel_datadir}/fish/completions @ 1.3 log @shells/fish: update to 4.2.1 using shells/fish4 @ text @d1 1 a1 1 $NetBSD: patch-cmake_Install.cmake,v 1.1 2025/11/02 18:44:07 vins Exp $ d5 1 a5 1 --- cmake/Install.cmake.orig 2025-11-01 23:44:37.984452608 +0000 d7 1 a7 1 @@@@ -6,11 +6,14 @@@@ set(prefix ${CMAKE_INSTALL_PREFIX}) d22 1 a22 1 @@@@ -82,7 +85,7 @@@@ install(PROGRAMS ${PROGRAMS} d30 2 a31 2 ${rel_datadir}/fish/functions ${rel_datadir}/fish/groff @@@@ -102,7 +105,7 @@@@ install(FILES share/config.fish d40 1 a40 1 @@@@ -115,7 +118,7 @@@@ add_custom_command(OUTPUT fish.pc @ 1.2 log @fish: Fix PLIST issues on macOS. @ text @d1 1 a1 1 $NetBSD: patch-cmake_Install.cmake,v 1.1 2021/03/05 08:47:29 nia Exp $ d3 1 a3 3 pkgsrc-ifying: Install config files to examples rather than etc. Install desktop files on macOS regardless to simplify PLIST. d5 1 a5 1 --- cmake/Install.cmake.orig 2022-03-25 16:22:53.000000000 +0000 d7 6 a12 3 @@@@ -81,9 +81,9 @@@@ install(TARGETS ${PROGRAMS} GROUP_EXECUTE WORLD_READ WORLD_EXECUTE DESTINATION ${bindir}) d14 12 a25 2 -fish_create_dirs(${sysconfdir}/fish/conf.d ${sysconfdir}/fish/completions - ${sysconfdir}/fish/functions) d27 1 a27 3 +fish_create_dirs(${rel_datadir}/examples/fish/conf.d ${rel_datadir}/examples/fish/completions + ${rel_datadir}/examples/fish/functions) +install(FILES etc/config.fish DESTINATION ${rel_datadir}/examples/fish/) d31 18 a48 9 @@@@ -170,7 +170,7 @@@@ if(GETTEXT_FOUND) endforeach() endif() -if (NOT APPLE) +if (1) install(FILES fish.desktop DESTINATION ${rel_datadir}/applications) install(FILES ${SPHINX_SRC_DIR}/python_docs_theme/static/fish.png DESTINATION ${rel_datadir}/pixmaps) endif() @ 1.1 log @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 &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/`` 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``). - ``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. -------------- @ text @d1 1 a1 1 $NetBSD$ d5 1 d7 1 a7 1 --- cmake/Install.cmake.orig 2021-03-01 12:47:02.000000000 +0000 d22 9 @