Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
Patch 1: Expanding unset arrays in an arithmetic context can cause a
segmentation fault.
Patch 2: Starting bash with an invalid locale specification for
LC_ALL/LANG/LC_CTYPE can cause the shell to crash.
|
|
|
|
|
|
This is a terse description of the new features added to bash-5.2 since
the release of bash-5.1. As always, the manual page (doc/bash.1) is
the place to look for complete descriptions.
1. New Features in Bash
a. The bash malloc returns memory that is aligned on 16-byte boundaries.
b. There is a new internal timer framework used for read builtin timeouts.
c. Rewrote the command substitution parsing code to call the parser recursively
and rebuild the command string from the parsed command. This allows better
syntax checking and catches errors much earlier. Along with this, if
command substitution parsing completes with here-documents remaining to be
read, the shell prints a warning message and reads the here-document bodies
from the current input stream.
d. The `ulimit' builtin now treats an operand remaining after all of the options
and arguments are parsed as an argument to the last command specified by
an option. This is for POSIX compatibility.
e. Here-document parsing now handles $'...' and $"..." quoting when reading the
here-document body.
f. The `shell-expand-line' and `history-and-alias-expand-line' bindable readline
commands now understand $'...' and $"..." quoting.
g. There is a new `spell-correct-word' bindable readline command to perform
spelling correction on the current word.
h. The `unset' builtin now attempts to treat arguments as array subscripts
without parsing or expanding the subscript, even when `assoc_expand_once'
is not set.
i. There is a default value for $BASH_LOADABLES_PATH in config-top.h.
j. Associative array assignment and certain instances of referencing (e.g.,
`test -v' now allow `@' and `*' to be used as keys.
k. Bash attempts to expand indexed array subscripts only once when executing
shell constructs and word expansions.
l. The `unset' builtin allows a subscript of `@' or `*' to unset a key with
that value for associative arrays instead of unsetting the entire array
(which you can still do with `unset arrayname'). For indexed arrays, it
removes all elements of the array without unsetting it (like `A=()').
m. Additional builtins (printf/test/read/wait) do a better job of not
parsing array subscripts if array_expand_once is set.
n. New READLINE_ARGUMENT variable set to numeric argument for readline commands
defined using `bind -x'.
o. The new `varredir_close' shell option causes bash to automatically close
file descriptors opened with {var}<fn and other styles of varassign
redirection unless they're arguments to the `exec' builtin.
p. The `$0' special parameter is now set to the name of the script when running
any (non-interactive) startup files such as $BASH_ENV.
q. The `enable' builtin tries to load a loadable builtin using the default
search path if `enable name' (without any options) attempts to enable a
non-existent builtin.
r. The `printf' builtin has a new format specifier: %Q. This acts like %q but
applies any specified precision to the original unquoted argument, then
quotes and outputs the result.
s. The new `noexpand_translations' option controls whether or not the translated
output of $"..." is single-quoted.
t. There is a new parameter transformation operator: @k. This is like @K, but
expands the result to separate words after word splitting.
u. There is an alternate array implementation, selectable at `configure' time,
that optimizes access speed over memory use (use the new configure
--enable-alt-array-implementation option).
v. If an [N]<&WORD- or [N]>&WORD- redirection has WORD expand to the empty
string, treat the redirection as [N]<&- or [N]>&- and close file descriptor
N (default 0).
w. Invalid parameter transformation operators are now invalid word expansions,
and so cause fatal errors in non-interactive shells.
x. New shell option: patsub_replacement. When enabled, a `&' in the replacement
string of the pattern substitution expansion is replaced by the portion of
the string that matched the pattern. Backslash will escape the `&' and
insert a literal `&'.
y. `command -p' no longer looks in the hash table for the specified command.
z. The new `--enable-translatable-strings' option to `configure' allows $"..."
support to be compiled in or out.
aa. The new `globskipdots' shell option forces pathname expansion never to
return `.' or `..' unless explicitly matched. It is enabled by default.
bb. Array references using `@' and `*' that are the value of nameref variables
(declare -n ref='v[@]' ; echo $ref) no longer cause the shell to exit if
set -u is enabled and the array (v) is unset.
cc. There is a new bindable readline command name:
`vi-edit-and-execute-command'.
dd. In posix mode, the `printf' builtin checks for the `L' length modifier and
uses long double for floating point conversion specifiers if it's present,
double otherwise.
ee. The `globbing' completion code now takes the `globstar' option into account.
ff. `suspend -f' now forces the shell to suspend even if job control is not
currently enabled.
gg. Since there is no `declare -' equivalent of `local -', make sure to use
`local -' in the output of `local -p'.
|
|
Changelog from AN-2022-09-18:
With great sadness we report the death of schilytools main author and
long time maintainer Jörg Schilling (1955-03-27--2021-10-10). Jörg, we
miss you! After his passing, development has been picked up by a group
of volunteers who would like to keep the project alive and well. Our
goal is to carefully preserve the portability and compatibility of this
project while extending it to new platforms and implementing new tools
and features that fit the tool set.
As a part of the change in management, the schilytools project has moved
from Sourceforge to Codeberg.
- general: Explain how to contribute and update README
- general: Add list of contributors
- all: Misc spelling fixes
Submitted by Friedhelm Mehnert.
- all: Update E-Mail address and project URL in many places.
Jörg's old joerg@schily.net address is defunct and so is his
postal address. As a part of an ongoing documentation cleanup,
these addresses have been replaced by our new project pages in
many locations.
Submitted by Nico Sonack.
- man pages: work around buggy syntax highlighting by adding
\" " comments into various places.
Submitted by Nico Sonack.
- RULES: Fix build on macOS 12.4
- RULES: add i386-openbsd-clang.rul
This should permit compilation on modern OpenBSD using clang as
the system compiler.
- autoconf: Work around clang bug in #pragma weak detection.
A clang compiler bug causing a crash in the configure test for
#pragma weak has been worked around, permitting use of weak
symbols when compiling with clang.
- tests: fix arm64/aarch64 architecture confusion on OpenBSD
Submitted by Nico Sonack.
|
|
Changelog from AN-2022-09-18:
With great sadness we report the death of schilytools main author and
long time maintainer Jörg Schilling (1955-03-27--2021-10-10). Jörg, we
miss you! After his passing, development has been picked up by a group
of volunteers who would like to keep the project alive and well. Our
goal is to carefully preserve the portability and compatibility of this
project while extending it to new platforms and implementing new tools
and features that fit the tool set.
As a part of the change in management, the schilytools project has moved
from Sourceforge to Codeberg.
- general: Explain how to contribute and update README
- general: Add list of contributors
- all: Misc spelling fixes
Submitted by Friedhelm Mehnert.
- all: Update E-Mail address and project URL in many places.
Jörg's old joerg@schily.net address is defunct and so is his
postal address. As a part of an ongoing documentation cleanup,
these addresses have been replaced by our new project pages in
many locations.
Submitted by Nico Sonack.
- man pages: work around buggy syntax highlighting by adding
\" " comments into various places.
Submitted by Nico Sonack.
- RULES: Fix build on macOS 12.4
- RULES: add i386-openbsd-clang.rul
This should permit compilation on modern OpenBSD using clang as
the system compiler.
- autoconf: Work around clang bug in #pragma weak detection.
A clang compiler bug causing a crash in the configure test for
#pragma weak has been worked around, permitting use of weak
symbols when compiling with clang.
- tests: fix arm64/aarch64 architecture confusion on OpenBSD
Submitted by Nico Sonack.
|
|
Today, we're releasing version 0.69 of Nu.
Note: this release is officially 0.69.1 because of a last-minute issue that was
found and fixed.
As part of this release, we also publish a set of optional plugins you can
install and use with Nu.
Themes of this release
Finishing the rework of modules and environment (WindSoilder, kubouch)
If you followed the development since the last release, you might have noticed
we successfully applied "the method of dead ends" pioneered by Jára Cimrman
"Somebody had to probe this dead end of human knowledge and announce to the
world: Not this way, friends!"
In short, the source-env experiment did not work out as planned. We hoped to
allow to call source-env with dynamic paths which, however, proved unfeasible.
Therefore, in this release, we remove all notions of source-env from Nushell
and instead use will be used activate the module's environment.
Any call to use will run the module's export-env { ... } block (if there is one)
and keep its environment. A positive side of it is that one call of use is
enough to import both commands/aliases and the environment, there is no need to
call two separate commands as we planned for source-env.
We're also keeping the source command for now, as well as the current config
file format. One reason is that we want to first investigate whether it is
possible to export also regular variables from modules and whether we can use
the module keyword inside modules. However, the use of modules is still
preferred over source as it will become the default way in the future.
Upcoming virtualenv activation changes (kubouch)
To reflect the recent changes to the module environment, we are changing the
virtualenv integration to use overlays. This will come in effect as soon as
this PR
gets merged. In practice, this means that instead of source activate.nu, you'll
use overlay use activate.nu, deactivate will work the same.
Under the hood, calling overlay use activate.nu will activate the activate
overlay and deactivate is just an alias for calling overlay hide activate.
If you wish, you can manually name the overlay, for example overlay use
activate.nu as spam, but then you'd need to remove it with overlay hide spam
instead of deactivate.
Grammar Experiments (JT)
We've recently also started working on some improvements to Nushell's syntax.
While these aren't part of Nushell 0.69, you can try this experimental syntax
in our new grammar
repo. Some experiments we're looking into:
Traditional function definition syntax
def foo(x: int) { ... }
Traditional function call syntax
foo(3)
And much more. We're hoping to talk more about these experiments as they mature.
Breaking changes
We found a regression in the correctness of the -d and -t flags of touch.
To get the release out, we've removed these flags, but hope to replace them
with correct implementations in the future.
We also removed support for duration literals above weeks, including month,
year, and decade literals. These were found to be confusing as it's unclear
what a duration of a month is (30 days? 31 days?)
The str collect command is now str join.
Next Steps
We've been progressing with our design towards 0.80 as outlined in this Notion
page.
Some time was spent trying out possible new syntax directions but we were not
confident to release them yet. In the next release we'll see a removal of
features deprecated in this release and we'll continue to push ahead for
the 0.80.
|
|
|
|
Add cmake build dep, reported by wiz@
|
|
v1.10.3
Performance Improvements
- git_commit: only use exact match for tag by default
v1.10.2
Bug Fixes
- git: upgrade gitoxide to v0.21
v1.10.1
Bug Fixes
- Disable multithreading in jwalk (via gitoxide) as workaround for #4251
v1.10.0
Features
- add bun module
- Add starship preset command
- Add support for blink, hidden, and strikethrough styles
- Add the ability to have some file extensions prevent a module from
triggering #4043
- Enable transience for Cmd and PowerShell
- replace git2 with git-repository
- Add folder detection to the k8s module
- support cargo workspace versions
- Add pipestatus_segment_format option to status module
Bug Fixes
- support official AWS_SHARED_CREDENTIALS_FILE variable
- count time spent on custom on 'when' command failure
Performance Improvements
- pulumi: allow disabling upwards discovery #4159
- rust: avoid calling rustup in more conditions #4174
v1.9.1
Bug Fixes
- regenerate changelog
v1.9.0
Features
- add Raku module
- winget: Add support for winget package manager
Bug Fixes
- character: Standadise Vim config names
- install: Have fixed a spacing issue in output
v1.8.0
Features
- Add support for Daml
- kubernetes: add user alias
- release: add windows msi installers
Bug Fixes
- escape text segments in meta variables
- fish: add proper vi mode detection for fish shell
- install: ignore tarfile ownership values when installing as root
- nu: don't use cygpath for starship binary path in init
- some typos
|
|
This is the 0.68.1 release of Nushell. It is a bugfix release of 0.68.
This addresses a bug with blocks and source-env.
For convenience, we are providing full builds for Windows, Linux, and macOS.
These are the "all extra features" builds, so be sure you have the requirements
to enable all capabilities:
https://www.nushell.sh/book/installation.html#dependencies
With this release, we have also statically linked OpenSSL into the binary to
make it easier to use across a larger range of platforms. If you encounter any
issue with this, please let us know.
|
|
|
|
This is a huge jump over several releases and it's impossible to list changes.
Please visit https://www.nushell.sh/blog/ for the details of every release.
Be aware that there are lots of changes across all aspects of Nushell.
- There's a new engine, new line editor, and new commands.
- Configuration files will not work and have to be re-written.
- Previous scripts will need to be updated, and you'll need to learn some of
the new ways of doing things in Nushell to get back to the same level of
comfort.
- Several shell improvements and behavior changes.
- There's also a new plugin architecture and quite a number of breaking
changes after fixing design flaws, cleaned-up the design, and rethought how
commands should work.
- New additional startup file (env.nu) which, sets up the environment that
you'll run Nushell in. As a result, you're able to set up important
environment variables like $env.NU_LIB_DIRS before 'config.nu' begins to run.
- Deeper integration with SQLite, new completion logic, introduction of
overlays, hooks, lazy dataframes, input overloading, input/output type,
new variable naming convention ...
So, please do read about the changes before.
|
|
Submmited by Paolo Vincenzo Olivo through private e-mail.
This a stability update incorporating crucial bug fixes.
Changes since version 1.0.1:
# Release 1.0.3
This point release mainly fixes the following:
- A bug in history expansion (set -H) where any use of the history
comment character caused processing to be aborted as if it were an
invalid history expansion. Affected e.g. 'echo ${#v}'.
- A bug in command line options processing that caused short-form option
equivalents on some built-in commands to be ignored after one use,
e.g., the new read -a equivalent of read -A.
- Ksh freezing or using excessive memory if HISTSIZE is assigned a
pathologically large value.
- A bug that caused ksh in the vi editor mode to crash or produce
invalid completions if ESC = was used at the beginning of a line.
# Release 1.0.2
This release fixes the interactive shell crashing when one of the
predefined aliases (currently 'history' and 'r') is redefined, whether
from a profile/kshrc script or manually. This crash occurred in two
scenarios:
1. when redefining and then unsetting a predefined alias;
2. when redefining a predefined alias and then executing a shell script
that does not begin with a #! path.
|
|
fish 3.5.1 (released July 20, 2022)
===================================
This release of fish introduces the following small enhancements:
- Cursor shaping for Vi mode is enabled by default in tmux, and will be used if the outer terminal is capable (:issue:`8981`).
- ``printf`` returns a better error when used with arguments interpreted as octal numbers (:issue:`9035`).
- ``history merge`` when in private mode is now an error, rather than wiping out other sessions' history (:issue:`9050`).
- The error message when launching a command that is built for the wrong architecture on macOS is more helpful (:issue:`9052`).
- Added completions for:
- ``choose`` (:issue:`9065`)
- ``expect`` (:issue:`9060`)
- ``navi`` (:issue:`9064`)
- ``qdbus`` (:issue:`9031`)
- ``reflector`` (:issue:`9027`)
- Improvements to some completions.
This release also fixes a number of problems identified in fish 3.5.0.
- Completing ``git blame`` or ``git -C`` works correctly (:issue:`9053`).
- On terminals that emit a ``CSI u`` sequence for :kbd:`Shift-Space`, fish inserts a space instead of printing an error. (:issue:`9054`).
- ``status fish-path`` on Linux-based platforms could print the path with a " (deleted)" suffix (such as ``/usr/bin/fish (deleted)``), which is now removed (:issue:`9019`).
- Cancelling an initial command (from fish's ``--init-command`` option) with :kbd:`Control-C` no longer prevents configuration scripts from running (:issue:`9024`).
- The job summary contained extra blank lines if the prompt used multiple lines, which is now fixed (:issue:`9044`).
- Using special input functions in bindings, in combination with ``and``/``or`` conditionals, no longer crashes (:issue:`9051`).
|
|
for hs-aeson, hs-vector
|
|
fish 3.5.0 (released June 16, 2022)
===================================
Notable improvements and fixes
------------------------------
- A new ``path`` builtin command to filter and transform paths (:issue:`7659`, :issue:`8958`). For example, to list all the separate extensions used on files in /usr/share/man (after removing one extension, commonly a ".gz")::
path filter -f /usr/share/man/** | path change-extension '' | path extension | path sort -u
- Tab (or any key bound to ``complete``) now expands wildcards instead of invoking completions, if there is a wildcard in the path component under the cursor (:issue:`954`, :issue:`8593`).
- Scripts can now catch and handle the SIGINT and SIGTERM signals, either via ``function --on-signal`` or with ``trap`` (:issue:`6649`).
Deprecations and removed features
---------------------------------
- The ``stderr-nocaret`` feature flag, introduced in fish 3.0 and enabled by default in fish 3.1, has been made read-only.
That means it is no longer possible to disable it, and code supporting the ``^`` redirection has been removed (:issue:`8857`, :issue:`8865`).
To recap: fish used to support ``^`` to redirect stderr, so you could use commands like::
test "$foo" -gt 8 ^/dev/null
to ignore error messages. This made the ``^`` symbol require escaping and quoting, and was a bit of a weird shortcut considering ``2>`` already worked, which is only one character longer.
So the above can simply become::
test "$foo" -gt 8 2>/dev/null
- The following feature flags have been enabled by default:
- ``regex-easyesc``, which makes ``string replace -r`` not do a superfluous round of unescaping in the replacement expression.
That means e.g. to escape any "a" or "b" in an argument you can use ``string replace -ra '([ab])' '\\\\$1' foobar`` instead of needing 8 backslashes.
This only affects the *replacement* expression, not the *match* expression (the ``'([ab])'`` part in the example).
A survey of plugins on GitHub did not turn up any affected code, so we do not expect this to affect many users.
This flag was introduced in fish 3.1.
- ``ampersand-nobg-in-token``, which means that ``&`` will not create a background job if it occurs in the middle of a word. For example, ``echo foo&bar`` will print "foo&bar" instead of running ``echo foo`` in the background and then starting ``bar`` as a second job.
Reformatting with ``fish_indent`` would already introduce spaces, turning ``echo foo&bar`` into ``echo foo & bar``.
This flag was introduced in fish 3.4.
To turn off these flags, add ``no-regex-easyesc`` or ``no-ampersand-nobg-in-token`` to :envvar:`fish_features`` and restart fish::
set -Ua fish_features no-regex-easyesc
Like ``stderr-nocaret``, they will eventually be made read-only.
- Most ``string`` subcommands no longer append a newline to their input if the input didn't have one (:issue:`8473`, :issue:`3847`)
- Fish's escape sequence removal (like for ``string length --visible`` or to figure out how wide the prompt is) no longer has special support for non-standard color sequences like from Data General terminals, e.g. the Data General Dasher D220 from 1984. This removes a bunch of work in the common case, allowing ``string length --visible`` to be much faster with unknown escape sequences. We don't expect anyone to have ever used fish with such a terminal (:issue:`8769`).
- Code to upgrade universal variables from fish before 3.0 has been removed. Users who upgrade directly from fish versions 2.7.1 or before will have to set their universal variables & abbreviations again. (:issue:`8781`)
- The meaning of an empty color variable has changed (:issue:`8793`). Previously, when a variable was set but empty, it would be interpreted as the "normal" color. Now, empty color variables cause the same effect as unset variables - the general highlighting variable for that type is used instead. For example::
set -g fish_color_command blue
set -g fish_color_keyword
would previously make keywords "normal" (usually white in a dark terminal). Now it'll make them blue. To achieve the previous behavior, use the normal color explicitly: ``set -g fish_color_keyword normal``.
This makes it easier to make self-contained color schemes that don't accidentally use color that was set before.
``fish_config`` has been adjusted to set known color variables that a theme doesn't explicitly set to empty.
- ``eval`` is now a reserved keyword, so it can't be used as a function name. This follows ``set`` and ``read``, and is necessary because it can't be cleanly shadowed by a function - at the very least ``eval set -l argv foo`` breaks. Fish will ignore autoload files for it, so left over ``eval.fish`` from previous fish versions won't be loaded.
- The git prompt in informative mode now defaults to skipping counting untracked files, as this was extremely slow. To turn it on, set :envvar:`__fish_git_prompt_showuntrackedfiles` or set the git config value "bash.showuntrackedfiles" to ``true`` explicitly (which can be done for individual repositories). The "informative+vcs" sample prompt already skipped display of untracked files, but didn't do so in a way that skipped the computation, so it should be quite a bit faster in many cases (:issue:`8980`).
- The ``__terlar_git_prompt`` function, used by the "Terlar" sample prompt, has been rebuilt as a configuration of the normal ``fish_git_prompt`` to ease maintenance, improve performance and add features (like reading per-repo git configuration). Some slight changes remain; users who absolutely must have the same behavior are encouraged to copy the old function (:issue:`9011`, :issue:`7918`, :issue:`8979`).
Scripting improvements
----------------------
- Quoted command substitution that directly follow a variable expansion (like ``echo "$var$(echo x)"``) no longer affect the variable expansion (:issue:`8849`).
- Fish now correctly expands command substitutions that are preceded by an escaped dollar (like ``echo \$(echo)``). This regressed in version 3.4.0.
- ``math`` can now handle underscores (``_``) as visual separators in numbers (:issue:`8611`, :issue:`8496`)::
math 5 + 2_123_252
- ``math``'s ``min`` and ``max`` functions now take a variable number of arguments instead of always requiring 2 (:issue:`8644`, :issue:`8646`)::
> math min 8,2,4
2
- ``read`` is now faster as the last process in a pipeline (:issue:`8552`).
- ``string join`` gained a new ``--no-empty`` flag to skip empty arguments (:issue:`8774`, :issue:`8351`).
- ``read`` now only triggers the ``fish_read`` event, not the ``fish_prompt`` event (:issue:`8797`). It was supposed to work this way in fish 3.2.0 and later, but both events were emitted.
- The TTY modes are no longer restored when non-interactive shells exit. This fixes wrong tty modes in pipelines with interactive commands. (:issue:`8705`).
- Some functions shipped with fish printed error messages to standard output, but they now they rightly go to standard error (:issue:`8855`).
- ``jobs`` now correctly reports CPU usage as a percentage, instead of as a number of clock ticks (:issue:`8919`).
- ``process-exit`` events now fire when the process exits even if the job has not yet exited, fixing a regression in 3.4.1 (:issue:`8914`).
Interactive improvements
------------------------
- Fish now reports a special error if a command wasn't found and there is a non-executable file by that name in :envvar:`PATH` (:issue:`8804`).
- ``less`` and other interactive commands would occasionally be stopped when run in a pipeline with fish functions; this has been fixed (:issue:`8699`).
- Case-changing autosuggestions generated mid-token now correctly append only the suffix, instead of duplicating the token (:issue:`8820`).
- ``ulimit`` learned a number of new options for the resource limits available on Linux, FreeBSD ande NetBSD, and returns a specific warning if the limit specified is not available on the active operating system (:issue:`8823`, :issue:`8786`).
- The ``vared`` command can now successfully edit variables named "tmp" or "prompt" (:issue:`8836`, :issue:`8837`).
- ``time`` now emits an error if used after the first command in a pipeline (:issue:`8841`).
- ``fish_add_path`` now prints a message for skipped non-existent paths when using the ``-v`` flag (:issue:`8884`).
- Since fish 3.2.0, pressing :kbd:`Control-D` while a command is running would end up inserting a space into the next commandline, which has been fixed (:issue:`8871`).
- A bug that caused multi-line prompts to be moved down a line when pasting or switching modes has been fixed (:issue:`3481`).
- The Web-based configuration system no longer strips too many quotes in the abbreviation display (:issue:`8917`, :issue:`8918`).
- Fish started with ``--no-config`` will now use the default keybindings (:issue:`8493`)
- When fish inherits a :envvar:`USER` environment variable value that doesn't correspond to the current effective user ID, it will now correct it in all cases (:issue:`8879`, :issue:`8583`).
- Fish sets a new :envvar:`EUID`` variable containing the current effective user id (:issue:`8866`).
- ``history search`` no longer interprets the search term as an option (:issue:`8853`)
- The status message when a job terminates should no longer be erased by a multiline prompt (:issue:`8817`)
New or improved bindings
^^^^^^^^^^^^^^^^^^^^^^^^
- The :kbd:`Alt-S` binding will now insert ``doas`` instead of ``sudo`` if necessary (:issue:`8942`).
- The ``kill-whole-line`` special input function now kills the newline preceeding the last line. This makes ``dd`` in vi-mode clear the last line properly.
- The new ``kill-inner-line`` special input function kills the line without any newlines, allowing ``cc`` in vi-mode to clear the line while preserving newlines (:issue:`8983`).
- On terminals that emit special sequences for these combinations, :kbd:`Shift-Space` is bound like :kbd:`Space`, and :kbd:`Ctrl-Return` is bound like :kbd:`Return` (:issue:`8874`).
Improved prompts
^^^^^^^^^^^^^^^^
- A new ``Astronaut`` prompt (:issue:`8775`), a multi-line prompt using plain text reminiscent of the Starship.rs prompt.
Completions
^^^^^^^^^^^
- Added completions for:
- ``archlinux-java`` (:issue:`8911`)
- ``apk`` (:issue:`8951`)
- ``brightnessctl`` (:issue:`8758`)
- ``efibootmgr`` (:issue:`9010`)
- ``fastboot`` (:issue:`8904`)
- ``optimus-manager`` (:issue:`8913`)
- ``rclone`` (:issue:`8819`)
- ``sops`` (:issue:`8821`)
- ``tuned-adm`` (:issue:`8760`)
- ``wg-quick`` (:issue:`8687`)
- ``complete`` can now be given multiple ``--condition`` options. They will be attempted in the order they were given, and only if all succeed will the completion be made available (as if they were connected with ``&&``). This helps with caching - fish's complete system stores the return value of each condition as long as the commandline doesn't change, so this can reduce the number of conditions that need to be evaluated (:issue:`8536`, :issue:`8967`).
Improved terminal support
^^^^^^^^^^^^^^^^^^^^^^^^^
- Working directory reporting is enabled for kitty (:issue:`8806`).
- Changing the cursor shape is now enabled by default in iTerm2 (:issue:`3696`).
For distributors
----------------
- libatomic is now correctly detected as necessary when building on RISC-V (:issue:`8850`, :issue:`8851`).
- In some cases, the build process found the wrong libintl on macOS. This has been corrected (:issue:`5244`).
- The paths for completions, functions, and configuration snippets now include
subdirectories ``fish/vendor_completions.d``, ``fish/vendor_functions.d``, and
``fish/vendor_conf.d`` (respectively) within ``XDG_DATA_HOME`` (or ``~/.local/share``
if not defined) (:issue:`8887`, :issue:`7816`).
|
|
|
|
This is now handled centrally via OPSYS_EXPLICIT_LIBDEPS support in libiconv
and gettext-lib.
|
|
Submitted by Paolo Vincenzo Olivo on pkgsrc-users.
## ksh 93u+m/1.0.1
This is an urgent bugfix release that removes an incorrect exec
optimization that was capable of terminating the execution of scripts
prematurely in certain corner cases. It is known to make the build
scripts of GNU binutils produce corrupted results if ksh is used as
/bin/sh. See #507 for more information.
No other breakage resulting from this bug is known yet, but other
breakage probably exists. Every 1.0.0 user should update to 1.0.1 ASAP.
## ksh 93u+m/1.0.0
Roughly a thousand bugs have been fixed, including many serious/critical
bugs. See the NEWS file for more information, and the git commit log for
complete documentation of every fix. Incompatible changes have been
minimised, but not at the expense of fixing bugs. For a list of
potentially incompatible changes, see src/cmd/ksh93/COMPATIBILITY.
Though there was a "no new features, bugfixes only" policy, some new
features were found necessary, either to fix serious design flaws or to
complete functionality that was evidently intended, but not finished.
Below is a summary of these new features.
New command line editor features:
- The forward-delete and End keys are now handled as expected in the
emacs and vi built-in line editors.
- In the vi and emacs line editors, repeat counts can now also be used for
arrow keys and the forward-delete key, e.g., <ESC> 7 <left-arrow> works.
- Various keys on extended PC keyboards are now handled as expected in the
emacs and vi built-in line editors.
New shell language features:
- Pathname expansion (a.k.a. globbing) now never matches the special names
'.' (current directory) and '..' (parent directory). This change makes a
pattern like .* useful; it now matches all hidden files (dotfiles) in the
current directory, without the harmful inclusion of '.' and '..'.
- Tilde expansion can now be extended or modified by defining a .sh.tilde.get
or .sh.tilde.set discipline function. See the manual for details.
- The &>file redirection shorthand (for >file 2>&1) is now available for all
scripts and interactive sessions and not only for profile/login scripts.
- Arithmetic expressions in native ksh mode no longer interpret a number
with a leading zero as octal in any context. Use 8#octalnumber instead
(e.g. 8#400 == 256). Arithmetic expressions now also behave identically
within and outside ((...)) and $((...)). If the POSIX mode is turned on,
a leading zero now denotes an octal number in all arithmetic contexts.
New features in built-in commands:
- Usage error messages now show the --help/--man self-documentation options.
- Path-bound built-ins (such as /opt/ast/bin/cat) can now be executed by
invoking the canonical path, so the following will now work as expected:
$ /opt/ast/bin/cat --version
version cat (AT&T Research) 2012-05-31
- 'cd' now supports an -e option that, when combined with -P, verifies
that $PWD is correct after changing directories; this helps detect
access permission problems. See:
https://www.austingroupbugs.net/view.php?id=253
- 'command -x' now looks for external commands only, skipping built-ins.
In addition, its xargs-like functionality no longer freezes the shell on
Linux and macOS, making it effectively a new feature on these systems.
- 'printf' now supports a -v option as in bash. This assigns formatted
output directly to variables, which is very fast and will not strip
final newline (\n) characters.
- 'redirect' now checks if all arguments are valid redirections before
performing them. If an error occurs, it issues an error message instead
of terminating the shell.
- 'return', when used to return from a function, can now return any
status value in the 32-bit signed integer range, like on zsh. However,
due to a traditional Unix kernel limitation, $? is still trimmed to its
least significant 8 bits whenever a shell or subshell exits.
- 'suspend' now refuses to suspend a login shell, as there is probably no
parent shell to return to and the login session would freeze.
- 'test'/'[' now supports all the same operators as [[ (including =~,
\<, \>) except for the different 'and'/'or' operators. Note that
'test'/'[' remains deprecated due to its unfixable pitfalls;
[[ ... ]] is recommended instead.
- 'times' now gives high precision output in a POSIX compliant format.
- 'type'/'whence': Two bash-like flags were backported from ksh 93v-:
- 'whence -P/type -P' is an alias to the existing -p flag.
- 'whence -t/type -t' will print only the type of a command in a
simple format that is designed to be easy to use for scripts.
- 'typeset' has a new '-g' flag that forces variables to be created or
modified at the global scope regardless of context, as on bash 4.2+.
- 'typeset' now gives an informative error message if an incompatible
combination of options is given.
- 'ulimit': Added three options inspired by bash:
- 'ulimit -k' sets the maximum number of kqueues.
- 'ulimit -P' sets the maximum number of pseudo-terminals.
- 'ulimit -R' sets the maximum time in microseconds a real-time process
can run before blocking.
Note that not all operating systems support the limits set by these options.
- 'whence -v/-a' now reports the location of autoloadable functions.
New features in shell options:
- When the -b/--notify shell option is on and the vi or emacs/gmacs shell
line editor is in use, 'Done' and similar notifications from completed
background jobs are now inserted directly above the line you're typing,
without affecting your command line display.
- A new --functrace long-form shell option causes the -x/--xtrace option's
state and the DEBUG trap action to be inherited by function scopes instead
of being reset to default. Changes made to them within a function scope
still do not propagate back to the parent scope. Similarly, this option
also causes the DEBUG trap action to be inherited by subshells.
- A new --globcasedetect shell option is added on operating systems where
we can check for a case-insensitive file system (currently Linux, macOS,
QNX 7.0+, and Windows/Cygwin). When this option is turned on, pathname
expansion (globbing), as well as tab completion on interactive shells,
automatically become case-insensitive depending on the file system.
This is separately determined for each pathname component.
- Enhancement to -G/--globstar: symbolic links to directories are now
followed if they match a normal (non-**) glob pattern. For example, if
'/lnk' is a symlink to a directory, '/lnk/**' and '/l?k/**' now work as
you would expect.
- The new --histreedit and --histverify options modify history expansion
(--histexpand). If --histreedit is on and a history expansion fails, the
command line is reloaded into the next prompt's edit buffer, allowing
corrections. If --histverify is on, the results of a history expansion are
not immediately executed but instead loaded into the next prompt's edit
buffer, allowing further changes.
- A new --nobackslashctrl shell option disables the special escaping
behaviour of the backslash character in the emacs and vi built-in editors.
Particularly in the emacs editor, this makes it much easier to go back,
insert a forgotten backslash into a command, and then continue editing
without having your next arrow key replace your backslash with garbage.
- A new --posix shell option has been added to ksh 93u+m that makes the
ksh language more compatible with other shells by following the POSIX
standard more closely. See the manual page for details. It is enabled by
default if ksh is invoked as sh, otherwise it is disabled by default.
|
|
|
|
Packaged in wip by Paolo Vincenzo Olivo.
Etsh provides two ports of the original /bin/sh from Version 6 (V6) UNIX
(circa 1975).
Etsh(1) is an enhanced, backward-compatible port of the V6 Thompson shell.
Tsh(1) is an unenhanced port of the shell, and glob(1) is a port of its
global command. Together, tsh and glob provide a user interface which
is backward compatible with that provided by the V6 Thompson shell and
global command, but without the obvious enhancements found in etsh.
The original Thompson shell was principally written by Ken Thompson
of Bell Labs.
This package also includes the following shell utilities:
- if(1) - conditional command (ported from V6 UNIX)
- goto(1) - transfer command (ported from V6 UNIX)
- fd2(1) - redirect from/to file descriptor 2
|
|
|
|
It is already `c' by default.
No functional change.
|
|
Simplify distname handling and downgrade to 1.0.0beta.2 to match actual
upstream version.
|
|
|
|
Packaged in wip by Paolo Vincenzo Olivo.
Between 2017 and 2020 there was an ultimately unsuccessful attempt to breathe
new life into the KornShell by extensively refactoring the last unstable AST
beta version (93v-). While that ksh2020 effort is now abandoned and still has
many critical bugs, it also had a lot of bugs fixed. More importantly, the AST
issue tracker now contains a lot of documentation on how to fix those bugs,
which made it possible to backport many of them to the last stable release
instead. This ksh 93u+m reboot now incorporates many of these bugfixes, plus
patches from OpenSUSE, Red Hat, and Solaris, as well as many new fixes from the
community (1, 2). Though there are many bugs left to fix, we are confident at
this point that 93u+m is already the least buggy version of ksh93 ever
released. As of late 2021, distributions such as Debian and Slackware have
begun to package it as their default version of ksh93.
|
|
Our local patch for aczsh.m4, introduced to 5.0.2nb1:
http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/shells/zsh/Makefile#rev1.63
has been upstreamed. There is no longer a point to regen configure;
tiny patch to configure.ac can be directly applied to configure itself.
Bump revision.
|
|
|
|
|
|
|
|
1.7.1 (2022-05-24)
Features
go: check for go.work file to show Go module in prompt
hostname: add ssh_symbol for ssh connections
package: Extract package version from PEP 621 compliant pyproject.toml
rust: Display toolchain names
Bug Fixes
ci: Version bump and fix Crowdin Pretranslate
Do not panic in config if editor not found
module: list option not working
nu: use the most recent starship init
Use git2::Repository::open_ext() instead of discover()
1.7.0 (2022-05-24)
chore(master): release 1.7.0
|
|
v0.18.0
-All features deprecated in 0.17.0 have been removed.
-Within double quotes, \x followed by two hexadecimal digits and \ followed by
three octal digits now encode an individual byte, rather than a codepoint.
-Using a lone try without except or finally is now forbidden; this does not do
anything useful and is almost certainly an incorrect attempt to suppress an
exception.
Deprecated features will be removed in 0.19.0.
The following deprecated features trigger a warning whenever the code is parsed
or compiled, even if it is not executed:
-The legacy temporary assignment syntax (e.g. a=foo echo $a) is deprecated.
Use the new tmp command instead (e.g. tmp a = foo; echo $a).
-The clause to catch exceptions in the try special command is now spelt with
catch; the old keyword except is deprecated.
Notable bugfixes
-The output longer than terminal width is now shown fully on Windows Terminal.
-Changing directories in the navigation mode now correctly runs hooks and
updates $E:PWD.
Notable new features
-Elvish now ships a builtin language server that can be started with
elvish -lsp.
-A new flag: module for parsing command-line flags.
-A new tmp special command for doing temporary assignments.
-A new defer command to schedule a function to be run when the current closure
finishes execution.
-A new call command to call a command, using a list for and a map for options.
-A new $unix:rlimits variable allows manipulation of resource limits.
v0.17.0
Breaking changes
-Attempting to assign to a read-only variable (e.g. set nil = x) is now a
compile-time error rather than an exception.
Deprecated features - Deprecated features will be removed in 0.18.0.
The following deprecated features trigger a warning whenever the code is parsed
or compiled, even if it is not executed:
-The dir-history command is deprecated. Use store:dirs instead.
-The legacy assignment form is deprecated. Depending on whether the left-hand
variable already exists or not, use var or set instead. Use the upgrader to
migrate scripts.
-The lambda syntax that declares arguments and options within [] before { has
been deprecated. The new syntax now declares arguments and options within a
pair of |, after {. Use the upgrader to migrate scripts. See (#664).
-Use of the special namespace local: is deprecated.
-If you are using local: to reference variables (e.g. echo $local:x),
local: is never necessary in the first place since Elvish always resolves
local variables first, so just remove it.
-If you are using local: when assigning variables (e.g. local:x = foo),
local: makes sure that a new variable is created; use the var special
command instead.
-Use of the special namespace up: is deprecated.
-If you are using up: to access a non-shadowed variable in an outer scope,
up: is not necessary; just remove it.
-If you are using up: to access a shadowed variable in an outer scope, rename
the variables to have different names.
-Use of a leading empty namespace in a variable name (e.g. $:x) is deprecated.
Since $:x is always equivalent to $x anyway, just remove the : prefix.
Notable new features
New features in the language:
-A new special command pragma. The only supported pragma now is unknown
command; using pragma unknown command = disallow turns off the default
behavior of treating unknown commands as external commands.
-A new special command coalesce.
New features in the interactive editor:
-Editor modes now form a stack, instead of being mutually exclusive.
For example, it is now possible to start a minibuf mode within a completion
mode, and vice versa.
New features in the standard library:
-The store: module now exposes all functionalities of Elvish’s persistent store.
-New compare command to compare numbers, strings, and lists (#1347), in a
consistent way as the order builtin.
-The range command now supports counting down.
Performance improvements:
-The overhead of executing pipelines consisting of a single form (i.e. a simple
command with no pipes) has been reduced. A code chunk containing just nop
command now executes 4 times as fast as before. Thanks to kolbycrouch for
suggesting this optimization!
For changes between 0.16.1 and 0.17.0 check https://elv.sh/blog/
|
|
1.6.3 (2022-04-26)
Bug Fixes
git_branch: correct variable name for remote branch (#3897) (bd7957f)
schema: move config-schema into docs folder (#3878) (094f982)
Performance Improvements
package: only try to read files that exist (#3904) (2a650bf)
Reverts
schema: move config-schema back into .github folder (#3886) (9b2ce42)
|
|
Changelog:
5.9:
Changes since 5.8.1
-------------------
zsh 5.9 is dedicated to the memory of Sven Guckes, who was, amongst other
things, a long-time zsh advocate. For more information, see:
https://linuxnews.de/2022/02/sven-guckes-verstorben/
https://groups.google.com/g/vim_announce/c/MJBKVd-xrEE/m/joVNaDgAAgAJ
When unsetting a hash element, the string enclosed in square brackets is
interpreted literally after any normal command-line-argument expansions.
Thus
unset "hash[$key]"
first expands $key as usual for a double-quoted string, and then interprets
that result as the exact hash element to unset. This differs from previous
versions of the shell, which would also remove a leading backslash for an
unusual subset of characters in the expansion of $key. Note this also
means, for example, that now
unset 'hash[ab]cd]'
unsets the element with key "ab]cd" rather than silently doing nothing.
The function command learnt a -T option to declare a function and enable
tracing for it simultaneously.
The option SHORT_REPEAT was added to enable the short syntax of
SHORT_LOOPS for the repeat command only. It is disabled by default.
The _arguments function now supports NUL-delimiting optargs in the
opt_args array via the -0 option. Developers of completion functions
should find this easier to handle reliably than the default
colon-delimiting behaviour.
The zsh/system module's `zsystem flock` command learnt an -i option to
set the wait interval used with -t. Additionally, -t now supports
fractional seconds.
The option CLOBBER_EMPTY was added to enable the overwrite behaviour
of CLOBBER for empty files only. It is disabled by default.
A (-) expansion flag was added. It works like (n) but correctly sorts
negative numbers.
The (*) expansion flag enables EXTENDED_GLOB for pattern matching.
For example, ${(*)sample/(#b)*(pat)*/${match[1]}} uses backreferences
even if EXTENDED_GLOB is not otherwise set. However, this does not
descend into nested exapansions, and doubling as (**) does not disable
EXTENDED_GLOB.
The compinit function learnt a -w option to explain why compdump runs.
When run without the -i or -u options and compaudit discovers security
issues, answering "y" to the "Ignore insecure ..." prompt removes the
insecure elements (like the -i option) where previously it ignored the
result (thus formerly like the -u option). Further, removing those
elements includes dropping directories from the $fpath array.
The zsh/datetime module's strftime builtin learnt an -n option to omit
the trailing newline when printing a formatted time.
The XTRACE option is now disabled while running user-defined completion
widgets. This corresponds to long-standing behavior of other user ZLE
widgets. Use the _complete_debug widget to capture XTRACE output, or
use "functions -T" to enable tracing of specific completion functions.
The fc builtin learnt an -s option which is a POSIX equivalent to the
`fc -e-` method of re-executing a command without invoking an editor.
The option CASE_PATHS was added to control how NO_CASE_GLOB behaves.
NO_CASE_GLOB + NO_CASE_PATHS is equivalent to the current NO_CASE_GLOB
behaviour. NO_CASE_GLOB + CASE_PATHS treats only path components that
contain globbing characters as case-insensitive; this behaviour may
yield more predictable results on case-sensitive file systems.
NO_CASE_PATHS is the default.
With the new TYPESET_TO_UNSET option set, "typeset foo" leaves foo unset,
in contrast to the default behavior which assigns foo="". Any parameter
attributes such as numeric type, sorting, and padding are retained until
the parameter is explicitly unset or a conflicting value is assigned.
This is similar to default behavior of bash and ksh. This option is
disabled by default.
The compadd builtin's -D option can now be specified more than once.
The zsh/zutil module's zformat builtin learnt an -F option which behaves
like -f except that ternary expressions check for existence instead of
doing math evaluation.
The conventional syntax used to indicate units, ranges, and default values
in completion descriptions (e.g. `timeout (seconds) (0-60) [20]`) is now
recognised by the completion system itself. These components are parsed
out of the description and can be individually styled. A _numbers helper
function has been added to help function authors offer rich completion
for these values.
The log builtin, WATCH parameter, et al., have been broken out into a
separate module, zsh/watch. The module is enabled by default.
The zsh/watch module's WATCHFMT parameter now supports colours via the
%F and %K escapes.
The STTY parameter can now be set to an empty string before running a
command to automatically restore terminal settings after the command
finishes.
The "jobs" command and "$jobstates" and related parameters can report on
parent shell jobs even in subshells. This is a snapshot of the parent
state, frozen at the point the subshell started. However, if a subshell
starts its own background jobs, the parent state is discarded in order
to report on those new jobs.
|
|
Changes since 6.24.00:
3. V6.24.01 - 20220512
2. Fix quoting of ! characters in history recall (Kimmo Suominen)
1. Fix return status of which (Jamie Landeg-Jones)
|
|
|
|
|
|
1.6.2 (2022-04-15)
Bug Fixes
trigger another release
1.6.1 (2022-04-15)
Bug Fixes
fix release-please permissions
1.6.0 (2022-04-14)
Features
Add a module for C projects
allow printing config file schema
aws: add option to force AWS display
cmd_duration: make notify feature optional (compat with nix darwin)
spack: Add Spack module
username: Detect Admin access in Windows
Bug Fixes
bash: ensure checkwinsize is enabled for $COLUMNS
directory: enable repo_root_style when truncation_length is zero.
docker_context: ignore the "default" context
fish: allow generating session keys in older versions of fish
init: Change Elvish init to catch for 0.18
nu: Use = instead of space to pass command line parameters
nu: use shell-provided terminal width
|
|
v1.5.4
Features
-aws: Add profile aliases (#3699)
-buf: Add Buf module (#3661)
-git_branch: add 'ignore_branches' option (#3753)
-haskell: Add Haskell module (#3587)
-nodejs: check for .mts and .cts files (#3734)
Bug Fixes
-aws: accept sso credentials (#3718)
-aws: Make AWS_REGION orverrides AWS_DEFAULT_REGION (#3619) (#3733)
-docs: fix and cleanup VuePress config (#3738)
-init: Change Nushell init for nu 0.60 (#3773)
-status: Make status module work even when the status is 0 (#3750)
Docs
-fix typo in Elm config docs
-Fix entry for container config (#3783)
-add SWU banner to README
-Specify MSRV (#3742)
-preset: add Pastel Powerline preset (#3761)
v1.5.3
-chore(release): v1.5.3
v1.5.2
-chore(release): v1.5.2
|
|
|
|
fish 3.4.1
This release of fish fixes the following problems identified in fish 3.4.0:
* An error printed after upgrading, where old instances could pick up a newer
version of the fish_title function, has been fixed
* fish builds correctly on NetBSD and OpenIndiana.
* nextd-or-forward-word, bound to Alt-Right Arrow by default, was
inadvertently changed to move like forward-bigword. This has been corrected.
* funcsave -q and funcsave --quiet now work correctly.
* Issues with the csharp and nmcli completions were corrected.
If you are upgrading from version 3.3.1 or before, please also review the
release notes for 3.4.0 (included below).
fish 3.4.0
Notable improvements and fixes:
* fish's command substitution syntax has been extended: $(cmd) now has the
same meaning as (cmd) but it can be used inside double quotes, to prevent
line splitting of the results.
* Complementing the prompt command in 3.3.0, fish_config gained a theme
subcommand to show and pick from the sample themes (meaning color schemes)
directly in the terminal, instead of having to open a Web browser. For
example fish_config theme choose Nord loads the Nord theme in the current
session. The current theme can be saved with fish_config theme dump
, and custom themes can be added by saving them in ~/.config/fish/themes/.
* set and read learned a new option, --function, to set a variable in the
function?s top scope.
* string pad now excludes escape sequences like colors that fish knows about,
and a new --visible flag to string length makes it use that kind of visible
width.
* Performance improvements to globbing, especially on systems using glibc. In
some cases (large directories with files with many numbers in the names)
this almost halves the time taken to expand the glob.
* Autosuggestions can now be turned off by setting
$fish_autosuggestion_enabled to 0, and (almost) all highlighting can be
turned off by choosing the new ?None? theme. The exception is necessary
colors, like those which distinguish autosuggestions from the actual
command line.
* The fish_git_prompt function, which is included in the default prompts, now
overrides git to avoid running commands set by per-repository
configuration. This avoids a potential security issue in some
circumstances, and has been assigned CVE-2022-20001.
|
|
Bump PKGREVISION.
|
|
The new release of nushell, 0.60.0 has major breaking changes and currently
does not build on NetBSD.
Making it build again is over my head.
|
|
Newer versions require rust-1.59
|
|
|
|
|
|
Changelog:
Noteworthy changes in release 0.3.0 (2022-02-11)
================================================
New features
- Arithmetic expansion.
- Simple asynchronous commands.
- A language specification is now provided, allowing you to use the
evaluator from the Guile REPL by typing ",L sh".
- Redirects now honor the 'noclobber' option.
- The 'wait' built-in.
- The 'umask' built-in can now display the current umask.
Bug fixes
- An empty command will now reset the status.
- The 'read-sh' procedure now reads from 'current-input-port' by
default (before it used 'current-output-port').
Miscellaneous improvements
- Various performance improvements.
- Word expansion has been split into two steps, paving the way for a
compiler.
- Guile 3.0 is now explicitly supported.
|
|
Changes between 5.8 and 5.8.1
Incompatibilities
PROMPT_SUBST expansion is no longer performed on arguments to
prompt-expansion sequences such as %F.
Changes
CVE-2021-45444: Some prompt expansion sequences, such as %F,
support 'arguments' which are themselves expanded in case they
contain colour values, etc. This additional expansion would trigger
PROMPT_SUBST evaluation, if enabled. This could be abused to
execute code the user didn't expect. e.g., given a certain prompt
configuration, an attacker could trick a user into executing
arbitrary code by having them check out a Git branch with a
specially crafted name.
This is fixed in the shell itself by no longer performing
PROMPT_SUBST evaluation on these prompt-expansion arguments.
Users who are concerned about an exploit but unable to update their
binaries may apply the partial work-around described in the file
Etc/CVE-2021-45444-VCS_Info-workaround.patch included with the shell
source. [ Reported by RyotaK. Additional thanks to Marc Cornellà. ]
|