Today, we're releasing 0.39 of Nu. This release is a bugfix release of 0.38.
What's New:
-History file is now removed when the history is cleared (fdncred)
-HTML selector has a regression fixed (lucassmmg)
-Unused dependencies were removed (lucassmmg)
-Updated clippy warnings were fixed (jt)
Engine-q progress
You'll notice that this release is pretty light, only a set of fixes on 0.38.
his is because our energy is now largely focused on engine-q.
We're excited to get this in front of you.
Just to tease a little of what will be possible, this week we added support for
processing streams in parallel in engine-q using a new par-each command.
We'll talk more about this as it develops.
- Use old conversion of clock_gettime on macOS prior to 10.12
- Manpage tweak: shell scripts should use getopts instead of getopt
- In addition to 2-byte and 3-byte UTF-8 sequences, correctly identify
all 4-byte UTF-8 sequences
- Do not permit an empty list between "while" and "do"
Today, we're releasing 0.38 of Nu. This release includes polish to the user
interface, improvements to how columns are passed, lots of bug fixes, and
updates on the upcoming engine.
What's New
-Quickly jump to a shell (tw4452852)
If you've used shells, you've no doubt used the n and p commands to quickly jump
between them. This can be a big time saver when you're working in multiple
directories.
In this release, we've added a g command that helps you quickly jump to a
particular shell. This helps in the cases where you end up with more than two
shells open and you already know what shell you want to jump to.
Additional improvements
-Improvements in updated table cell values
-update cells command now can take a list of columns
-You can now also pass a list of columns to select
-Improvements in how html table scraping works and also
-Fix to compiling on nightly
-Removed unused deps
-Completions now can complete inside of an argument
-We now expand tilde when reading plugin directories
-We also turn off ansi colors when not in a TTY
-Fixed some of the wasm deps
-Fixed a leak of a let-binding
-Use SIMD-enabled compiler flags
-Updated polars dependency to 0.16
-Updates to how path join works
-Moved nu-path tests into integration tests
-New support for converting to column paths
-Cleanup fixes to make tests more resilient
-Internal improvement to make working with spans easier
-Fix to gitpod
-Fix to big int handling in to
-Fixed a typo
-Fixed some typos in the tutor
-Removed the experimental scrolling support as it had broken
v0.57.0 (2021-08-26)
Bug Fixes
-clippy: fix new clippy lints (#2939)
-git_status: show working tree status if index status is present (#2973)
-init: remove quotes in bash init (#2893)
-jobs: Add the symbol and number thresholds respecting the threshold option
(#2908)
-print-config: fix battery module and add missing modules (#2930)
-rlang: module not working on MacOs (#2880)
-windows: avoid inadvertly running exes from cwd (#2885)
Code Refactoring
-allow passing OsStr as-is to exec_cmd (#2997)
Docs
-Fix typo (#2900)
-update git_commit default format (#2898)
-Add italic to Advanced Config styles (#2943)
-fix shlvl module's symbol (#2911)
-fix typo for python in README.md (#2909)
-add the terminator to the tip in env variable
-i18n: new Crowdin updates (#2884)
-preset: add Hide Runtime Versions preset (#2854)
-preset: prevent cutting of the time (#2870)
Features
-add support for xonsh (#2807)
-explain: quote module values (#2931)
-git_status: dont render module output if not in git repository (#2897)
-git_status: added symbol for local repos up-to-date with remote. (#2945)
-kubernetes: implements regex matching for context aliases (#2883)
-package: Add ability to format the version (#2959)
-package: Support package version from setup.cfg (python). (#2890)
-status: Add pipestatus display in status module (#2481)
v0.58.0 (2021-09-21)
Features
-Add a fill module to pad out the line (#3029)
-Add support for RPROMPT (right prompt) (#3026)
-cobol: added COBOL module (#2994)
-git_metrics: Git metrics show only nonzero diffs (#2887)
-print-config: list expanded $all variable (#2932)
Bug Fixes
-config: inherit stdin/stdout/stderr instead of piping to fix editor invocation
(#3032)
-package: Ignore setup.cfg attr: and file: (#3054)
-print-config: add missing format_right to FullConfig (#3063)
-status: Showing exit code 0 with pipelines (#3028)
-zsh: always escape percent character (#3058)
-zsh init script: avoid adding preexec commands twice (#3049)
Docs
-Correct the "VLang" configuration example (#3019)
-Add missing modules to $all in config docs (#3075)
-fix grammar in config README (#3069)
-add Brazilian Portuguese translations to the docs and website (#3009)
-chglog: Change release page title order (#3038) (#3045)
-config: change spelling of some words (#2855)
-i18n: new Crowdin updates (#3008)
-i18n: new Crowdin updates (#3012)
-i18n: new Crowdin updates (#2985)
-modules: add missing module descriptions (#3081)
Code Refactoring
-install.sh to improve usage and install instructions (#3025)
-simplify iterator usage (#3017)
Today, we're releasing 0.37 of Nu. This release adds a new find function,
improvements to the current engine, and updates on the upcoming engine.
What's New
finding data in tables
In 0.37, you now have access to a new find command, which can help you quickly
look for data across all columns in a table.
You can still reach your system's find command using ^ by typing ^find.
Additional improvements
-fdncred added more support for ansi art, and more chars
-aminya removed shelling out in some cases where it's not needed
-jt made sys/ps/fetch/post core commands, moving them from plugins to internal
commands. This allows for future capability to have nushell download its own
extensions.
-andrasio began adding support for creating errors inside of nushell code,
extended tags to support basic command reflection
-lily-mara added into filesize
-tw4452852 added support to append when calling save
-Pantoshire improved errors when bash-style alias was mistakingly used
-tranzystorek-io did a lot of general code improvements
-kubouch did some fixes to paths and the source command
-elferherrera updated the prompt environment variable to PROMPT_COMMAND to show
that it is nushell code that gets run
Changelog from AN-2021-07-29:
- Bourne Shell: "cd -" now prints the new directory. POSIX requires this.
Thanks to a report from Robert Elz.
- Bourne Shell: "make install" now works wit SuPro Make as well.
Previously, the target /opt/schily/xpg4/bin/bosh (a symlink) was not
installed because of a missing rule that caused SuPro Make to complain.
about a target with no existing rule to make.
- Bourne Shell: z/OS only supports the minimum fields from struct rusage
that are required by POSIX. We need the same hack as for HAIKU to
be able to compile.
Thanks to a report from Matthew R. Wilson
- Bourne Shell: z/OS does not #define MAXPATHLEN, so we #define it
to be 1024 by default
Thanks to a report from Matthew R. Wilson
Changelog from AN-2021-07-29:
- Bourne Shell: "cd -" now prints the new directory. POSIX requires this.
Thanks to a report from Robert Elz.
- Bourne Shell: "make install" now works wit SuPro Make as well.
Previously, the target /opt/schily/xpg4/bin/bosh (a symlink) was not
installed because of a missing rule that caused SuPro Make to complain.
about a target with no existing rule to make.
- Bourne Shell: z/OS only supports the minimum fields from struct rusage
that are required by POSIX. We need the same hack as for HAIKU to
be able to compile.
Thanks to a report from Matthew R. Wilson
- Bourne Shell: z/OS does not #define MAXPATHLEN, so we #define it
to be 1024 by default
Thanks to a report from Matthew R. Wilson
-Add the -s parameter to submit package to winget in pipeline (#3767)
-corrected position of dataframes (#3776)
-fixed show_hints option to allow hints to be turned off (#3780)
-Updated polars version for faster CSV reader (#3781)
-Fix docs for the config variable completion_type (#3804)
-bat theme wasn't getting set properly (#3807)
-Dataframe Shape command (#3805)
-Support other variables than PATH in pathvar (2nd attempt) (#3828)
-change describe so it doesn't output colored strings (#3832)
-Read from standard input in rm (#3763)
-use chrono_humanize for datetime formatting (#3834)
-All is a DataFrame (#3812)
-Add sha256 to the hash command (#3836)
-added the ability to compare time units like 1hr < 2hr (#3845)
-Update implementing_a_command.md (#3848)
-Improve md5 and sha256 code (#3841)
-Fix clippy lint and disable broken lint (#3865)
-document compiling without openssl (#3862)
-Add named positionals to all (#3863)
-add performance metrics for measuring startup time (#3854)
-fix interpolated strings when using unicode (#3866)
-Support equals sign in shorthand environment variable values (#3869)
-simple contains arguments (#3874)
-Better representation in nested dataframes (#3875)
Releases of bash since then have correctly resolved the issue, and this
undocumented and non-standard option just results in software being broken out
of the box with a configuration different to other OS. Bump PKGREVISION.
Hello, and welcome to the Nushell project. The goal of this project is to take
the Unix philosophy of shells, where pipes connect simple commands together, and
bring it to the modern style of development.
Nu takes cues from a lot of familiar territory: traditional shells like bash,
advanced shells like PowerShell, functional programming, systems programming,
and more. But rather than trying to be the jack of all trades, Nu focuses its
energy on doing a few things well:
-Create a flexible cross-platform shell with a modern feel
-Allow you to mix and match commandline applications with a shell that
understands the structure of your data
-Have the level of UX polish that modern CLI apps provide
The easiest way to see what Nu can do is to start with some examples, so let's
dive in, https://www.nushell.sh/book/
While here fix a C++ <version> build issue seen on macOS.
fish 3.3.1 (released July 6, 2021)
==================================
This release of fish fixes the following problems identified in fish 3.3.0:
- The prompt and command line are redrawn correctly in response to universal
variable changes (:issue:`8088`).
- A superfluous error that was produced when setting the ``PATH`` or ``CDPATH``
environment variables to include colon-delimited components that do not exist
was removed (:issue:`8095`).
- The Vi mode indicator in the prompt is repainted correctly after
:kbd:`Ctrl-C` cancels the current command (:issue:`8103`).
- fish builds correctly on platforms that do not have a ``spawn.h`` header,
such as old versions of OS X (:issue:`8097`).
A number of improvements to the documentation, and fixes for completions, are
included as well.
If you are upgrading from version 3.2.2 or before, please also review the
release notes for 3.3.0 (included below).
fish 3.3.0 (released June 28, 2021)
===================================
Notable improvements and fixes
------------------------------
- ``fish_config`` gained a ``prompt`` subcommand to show and pick from the
sample prompts directly in the terminal, instead of having to open a
webbrowser. For example ``fish_config prompt choose default`` loads the
default prompt in the current session (:issue:`7958`).
- The documentation has been reorganized to be easier to understand
(:issue:`7773`).
Deprecations and removed features
---------------------------------
- The ``$fish_history`` value "default" is no longer special. It used to be
treated the same as "fish" (:issue:`7650`).
- Redirection to standard error with the ``^`` character has been disabled by
default. It can be turned back on using the ``stderr-nocaret`` feature flag,
but will eventually be disabled completely (:issue:`7105`).
- Specifying an initial tab to ``fish_config`` now only works with
``fish_config browse`` (e.g. ``fish_config browse variables``), otherwise it
would interfere with the new ``prompt`` subcommand (see below)
(:issue:`7958`).
Scripting improvements
----------------------
- ``math`` gained new functions ``log2`` (like the documentation claimed),
``max`` and ``min`` (:issue:`7856`). ``math`` functions can be used without
the parentheses (eg ``math sin 2 + 6``), and functions have the lowest
precedence in the order of operations (:issue:`7877`).
- Shebang (``#!``) lines are no longer required within shell scripts, improving
support for scripts with concatenated binary contents. If a file fails to
execute and passes a (rudimentary) binary safety check, fish will re-invoke
it using ``/bin/sh`` (:issue:`7802`).
- Exit codes are better aligned with bash. A failed execution now reports
``$status`` of 127 if the file is not found, and 126 if it is not executable.
- ``echo`` no longer writes its output one byte at a time, improving
performance and allowing use with Linux's special API files (``/proc``,
``/sys`` and such) (:issue:`7836`).
- fish should now better handle ``cd`` on filesystems with broken ``stat(3)``
responses (:issue:`7577`).
- Builtins now properly report a ``$status`` of 1 upon unsuccessful writes
(:issue:`7857`).
- ``string match`` with unmatched capture groups and without the ``--all`` flag
now sets an empty variable instead of a variable containing the empty string.
It also correctly imports the first match if multiple arguments are provided,
matching the documentation. (:issue:`7938`).
- fish produces more specific errors when a command in a command substitution
wasn't found or is not allowed. This now prints something like "Unknown
command" instead of "Unknown error while evaluating command substitution".
- ``fish_indent`` allows inline variable assignments (``FOO=BAR command``) to
use line continuation, instead of joining them into one line (:issue:`7955`).
- fish gained a ``--no-config`` option to disable configuration files. This
applies to user-specific and the systemwide ``config.fish`` (typically in
``/etc/fish/config.fish``), and configuration snippets (typically in
``conf.d`` directories). It also disables universal variables, history, and
loading of functions from system or user configuration directories
(:issue:`7921`, :issue:`1256`).
- When universal variables are unavailable for some reason, setting a universal
variable now sets a global variable instead (:issue:`7921`).
- ``$last_pid`` now contains the process ID of the last process in the
pipeline, allowing it to be used in scripts (:issue:`5036`, :issue:`5832`,
:issue:`7721`). Previously, this value contained the process group ID, but in
scripts this was the same as the running fish's process ID.
- ``process-exit`` event handlers now receive the same value as ``$status`` in
all cases, instead of receiving -1 when the exit was due to a signal.
- ``process-exit`` event handlers for PID 0 also received ``JOB_EXIT`` events;
this has been fixed.
- ``job-exit`` event handlers may now be created with any of the PIDs from the
job. The handler is passed the last PID in the job as its second argument,
instead of the process group.
- Trying to set an empty variable name with ``set`` no longer works (these
variables could not be used in expansions anyway).
- ``fish_add_path`` handles an undefined ``PATH`` environment variable
correctly (:issue:`8082`).
Interactive improvements
-------------------------
- Commands entered before the previous command finishes will now be properly
syntax highlighted.
- fish now automatically creates ``config.fish`` and the configuration
directories in ``$XDG_CONFIG_HOME/fish`` (by default ``~/.config/fish``) if
they do not already exist (:issue:`7402`).
- ``$SHLVL`` is no longer incremented in non-interactive shells. This means it
won't be set to values larger than 1 just because your environment happens to
run some scripts in $SHELL in its startup path (:issue:`7864`).
- fish no longer rings the bell when flashing the command line. The flashing
should already be enough notification and the bell can be annoying
(:issue:`7875`).
- ``fish --help`` is more helpful if the documentation isn't installed
(:issue:`7824`).
- ``funced`` won't include an entry on where a function is defined, thanks to
the new ``functions --no-details`` option (:issue:`7879`).
- A new variable, ``fish_killring``, containing entries from the killring, is
now available (:issue:`7445`).
- ``fish --private`` prints a note on private mode on startup even if
``$fish_greeting`` is an empty list (:issue:`7974`).
- fish no longer attempts to lock history or universal variable files on remote
filesystems, including NFS and Samba mounts. In rare cases, updates to these
files may be dropped if separate fish instances modify them simultaneously.
(:issue:`7968`).
- ``wait`` and ``on-process-exit`` work correctly with jobs that have already
exited (:issue:`7210`).
- ``__fish_print_help`` (used for ``--help`` output for fish's builtins) now
respects the ``LESS`` environment variable, and if not set, uses better
default pager settings (:issue:`7997`).
- Errors from ``alias`` are now printed to standard error, matching other
builtins and functions (:issue:`7925`).
- ``ls`` output is colorized on OpenBSD if colorls utility is installed
(:issue:`8035`)
- The default pager color looks better in terminals with light backgrounds
(:issue:`3412`).
- Further robustness improvements to the bash history import (:issue:`7874`).
- fish now tries to find a Unicode-aware locale for encoding (``LC_CTYPE``) if
started without any locale information, improving the display of emoji and
other non-ASCII text on misconfigured systems (:issue:`8031`). To allow a C
locale, set the variable ``fish_allow_singlebyte_locale`` to 1.
- The Web-based configuration and documentation now feature a dark mode if the
browser requests it (:issue:`8043`).
- Color variables can now also be given like ``--background red`` and ``-b
red``, not just ``--background=red`` (:issue:`8053`).
- ``exit`` run within ``fish_prompt`` now exits properly (:issue:`8033`).
- When attempting to execute the unsupported POSIX-style brace command group
(``{ ... }``) fish will suggest its equivalent ``begin; ...; end`` commands
(:issue:`6415`).
New or improved bindings
^^^^^^^^^^^^^^^^^^^^^^^^
- Pasting in Vi mode puts text in the right place in normal mode
(:issue:`7847`).
- Vi mode's :kbd:`u` is bound to ``undo`` instead of
``history-search-backward``, following GNU readline's behavior. Similarly,
:kbd:`Control-R` is bound to ``redo`` instead of ``history-search-backward``,
following Vim (:issue:`7908`).
- :kbd:`s` in Vi visual mode now does the same thing as :kbd:`c`
(:issue:`8039`).
- The binding for :kbd:`"*y` now uses ``fish_clipboard_copy``, allowing it to
support more than just ``xsel``.
- The :kbd:`Control-Space` binding can be correctly customised (:issue:`7922`).
- ``exit`` works correctly in bindings (:issue:`7967`).
- The :kbd:`F1` binding, which opens the manual page for the current command,
now works around a bug in certain ``less`` versions that fail to clear the
screen (:issue:`7863`).
- The binding for :kbd:`Alt-S` now toggles whether ``sudo`` is prepended, even
when it took the commandline from history instead of only adding it.
- The new functions ``fish_commandline_prepend`` and
``fish_commandline_append`` allow toggling the presence of a prefix/suffix on
the current commandline. (:issue:`7905`).
- ``backward-kill-path-component`` :kbd:`Control-W`) no longer erases parts of
two tokens when the cursor is positioned immediately after ``/``.
(:issue:`6258`).
Improved prompts
^^^^^^^^^^^^^^^^
- The default Vi mode prompt now uses foreground instead of background colors,
making it less obtrusive (:issue:`7880`).
- Performance of the "informative" git prompt is improved somewhat
(:issue:`7871`). This is still slower than the non-informative version by its
very nature. In particular it is IO-bound, so it will be very slow on slow
disks or network mounts.
- The sample prompts were updated. Some duplicated prompts, like the various
classic variants, or less useful ones, like the "justadollar" prompt were
removed, some prompts were cleaned up, and in some cases renamed. A new
"simple" and "disco" prompt were added (:issue:`7884`, :issue:`7897`,
:issue:`7930`). The new prompts will only take effect when selected and
existing installed prompts will remain unchanged.
- A new ``prompt_login`` helper function to describe the kind of "login" (user,
host and chroot status) for use in prompts. This replaces the old "debian
chroot" prompt and has been added to the default and terlar prompts
(:issue:`7932`).
- The Web-based configuration's prompt picker now shows and installs right
prompts (:issue:`7930`).
- The git prompt now has the same symbol order in normal and "informative"
mode, and it's customizable via ``$__fish_git_prompt_status_order``
(:issue:`7926`).
Completions
^^^^^^^^^^^
- Added completions for:
- ``firewall-cmd`` (:issue:`7900`)
- ``sv`` (:issue:`8069`)
- Improvements to plenty of completions!
- Commands that wrap ``cd`` (using ``complete --wraps cd``) get the same
completions as ``cd`` (:issue:`4693`).
- The ``--force-files`` option to ``complete`` works for bare arguments, not
just options (:issue:`7920`).
- Completion descriptions for functions don't include the function definition,
making them more concise (:issue:`7911`).
- The ``kill`` completions no longer error on MSYS2 (:issue:`8046`).
- Completion scripts are now loaded when calling a command via a relative path
(like ``./git``) (:issue:`6001`, :issue:`7992`).
- When there are multiple completion candidates, fish inserts their shared
prefix. This prefix was computed in a case-insensitive way, resulting in
wrong case in the completion pager. This was fixed by only inserting prefixes
with matching case (:issue:`7744`).
Improved terminal support
^^^^^^^^^^^^^^^^^^^^^^^^^
- fish no longer tries to detect a missing new line during startup, preventing
an erroneous ``⏎`` from appearing if the terminal is resized at the wrong
time, which can happen in tiling window managers (:issue:`7893`).
- fish behaves better when it disagrees with the terminal on the width of
characters. In particular, staircase effects with right prompts should be
gone in most cases (:issue:`8011`).
- If the prompt takes up the entire line, the last character should no longer
be chopped off in certain terminals (:issue:`8002`).
- fish's reflow handling has been disabled by default for kitty
(:issue:`7961`).
- The default prompt no longer produces errors when used with a dumb terminal
(:issue:`7904`).
- Terminal size variables are updated for window size change signal handlers
(``SIGWINCH``).
- Pasting within a multi-line command using a terminal that supports bracketed
paste works correctly, instead of producing an error (:issue:`7782`).
- ``set_color`` produces an error when used with invalid arguments, rather than
empty output which interacts badly with Cartesian product expansion.
For distributors
----------------
- fish runs correctly on platforms without the ``O_CLOEXEC`` flag for
``open(2)`` (:issue:`8023`).
Packaged in wip by mjturner
Elvish is a friendly interactive shell and an expressive programming language.
Despite its pre-1.0 status, it is already suitable for most daily interactive
use.
v0.56.0 (2021-07-13)
Bug Fixes:
-clippy: fix additional clippy lints in tests (#2813)
-dotnet: make default format consistent with other modules (#2853)
-git_status: Fix when the worktree != root dir (#2831)
-init: improve starship path escaping (#2848)
-nu: use correct session key variable name (#2874)
-pwsh: replace Get-Error with $error[0] (#2873)
-rust: support for rust-toolchain.toml (#2775)
Build:
-bump mockall from 0.10.1 to 0.10.2 (#2878)
-bump unicode-segmentation from 1.7.1 to 1.8.0 (#2844)
-bump mockall from 0.10.0 to 0.10.1 (#2845)
-bump indexmap from 1.6.2 to 1.7.0 (#2839)
-bump mockall from 0.9.1 to 0.10.0 (#2838)
-bump shadow-rs from 0.6.1 to 0.6.2 (#2832)
-bump shadow-rs from 0.5.25 to 0.6.1 (#2822)
Chore:
-release: v0.56.0 Code Refactoring
git_commit: small refactor to remove duplicate code (#2752)
Docs:
-i18n: new Crowdin updates (#2879)
-i18n: New Crowdin updates (#2834)
-nu: specify how to get nushell config path (#2856)
Features:
-Add the git_metrics module (#2827)
-add support for nu shell (#2847)
-treat empty string as none when formating (#2738)
-docker_context: Use DOCKER_HOST and DOCKER_CONTEXT enviroment variables (#2782)
-env_var: allow multiple instances (#2797)
Performance Improvements:
-Improve custom config OS (#2843)
-Style
-enforce ALL_MODULES ordering in test (#2837)
-fix name of battery info provider implementation (#2836)
Test:
-battery: add battery tests (#2795)
Packaged in wip by mjturner
The minimal, blazing-fast, and infinitely customizable prompt for any
shell.
Features:
o Fast: it's fast - really really fast!
o Customizable: configure every aspect of your prompt.
o Universal: works on any shell, on any operating system.
o Intelligent: shows relevant information at a glance.
o Feature rich: support for all your favorite tools.
o Easy: quick to install - start using it in minutes.
The following shells are currently supported:
o Bash
o Elvish
o Fish
o Ion
o Powershell
o Tcsh
o Zsh
Changelog from AN-2021-05-19:
- Bourne Shell: the fc(1) builtin now handles "fc -l -0" the same
way as ksh does and refers to the current command. Before only
"fc -l -1" did work to select the previous command.
Together with the "ERR" trap fix, this permits to install a
"command not found" handler in the shell that could explain users
how to install a missing command.
This "missing command" handler could be implemented via:
trap 'show-info-message-for-missing-command $(fc -l -0)' ERR
Changelog from AN-2021-06-07:
- Bourne Shell: the man page now uses a correct notation for "[]" for
the arguments of the builtin "dosh" that has been introduced in May
2012.
Changelog from AN-2021-05-19:
- Bourne Shell: the fc(1) builtin now handles "fc -l -0" the same
way as ksh does and refers to the current command. Before only
"fc -l -1" did work to select the previous command.
Together with the "ERR" trap fix, this permits to install a
"command not found" handler in the shell that could explain users
how to install a missing command.
This "missing command" handler could be implemented via:
trap 'show-info-message-for-missing-command $(fc -l -0)' ERR
Changelog from AN-2021-06-07:
- Bourne Shell: the man page now uses a correct notation for "[]" for
the arguments of the builtin "dosh" that has been introduced in May
2012.
This is required to make 'export -f' work, which is enabled by default on
other OS I checked. While here sort the list of enabled options so that
it's easier to compare against the list of available options, as there are
still a number that we do not enable, and remove the bogus comment.
Bump PKGREVISION.
Andrej Shadura (1):
builtin: Default to mktemp, not tempfile
Antonio Ospite (6):
eval: make traps work when "set -e" is enabled
shell: Update configure.ac with suggestions from autoupdate
shell: Enable automake silent rules
eval: Silence compiler warning about missing parentheses
shell: Fix clang warnings about "string plus integer"
output: Fix clang warnings about GNU old-style field designator
Denys Vlasenko (3):
jobs: Rename DOWAIT_NORMAL to DOWAIT_NONBLOCK
var: Remove poplocalvars() always-zero argument, make it static
expand: Remove unused expandmeta() flag parameter
Fangrui Song (1):
shell: delete AC_PROG_YACC
Gerrit Pape (2):
eval: Report I/O error on stdout
main: Print \n upon EOF (CTRL-D) when run interactively
Herbert Xu (57):
exec: Return 126 on most errors in shellexec
main: Only set savestatus in exitcmd
mkinit: Split reset into exitreset and reset
jobs: Only clear gotsigchld when waiting for everything
parser: Save/restore here-documents in command substitution
var: Set IFS to fixed value at start time
output: Fix fmtstr return value
jobs: Replace some uses of fmtstr with stpcpy/stpncpy
memalloc: Add growstackto helper
exec: Do not allocate stack string in padvance
builtin: Mark more regular built-ins
exec: Stricter pathopt parsing
exec: Never rehash regular built-ins
eval: Add assignment built-in support again
eval: Fail immediately with redirections errors for simple command
eval: Replace with listsetvar with mklocal/setvareq
eval: Add vfork support
builtin: Use test_access from NetBSD when faccessat is unavailable
expand: Use HOME in tilde expansion when it is empty
expand: Merge syntax/quotes in memtodest with flags
expand: Fix skipping of command substitution when trimming in evalvar
expand: Do not reprocess data when expanding words
eval: Always set localvar_stop
memalloc: Avoid looping in growstackto
expand: Ensure result is escaped in cvtnum
expand: Fix multiple issues with EXP_DISCARD in evalvar
eval: Use the correct expansion mode for fd redirection
expand: Eat closing brace for length parameter expansion
parser: Do not push token back before parseheredoc
eval: Use sh_warnx instead of warnx
system: Disable glibc warning on sigsetmask
eval: avoid leaking memory associated with redirections
eval: Only restore exit status on exit/return
redir: Handle nested exec within REALLY_CLOSED redirection
options: Do not set commandname in procargs
expand: Fix double-decrement in argstr
eval: Reset handler when entering a subshell
parser: Fix old-style command substitution here-document crash
parser: Only accept single-digit parameter expansion outside of braces
redir: Clear saved redirections in subshell
builtin: Fix seconds part of times(1)
jobs: Fix infinite loop in waitproc
parser: Fix handling of empty aliases
parser: Catch errors in expandstr
parser: Fix alias expansion after heredoc or newlines
shell: Always use explicit large file API
parser: Save and restore heredoclist in expandstr
parser: Fix double-backslash nl in old-style command sub
Release 0.5.11.
jobs: Fix waitcmd busy loop
Release 0.5.11.1.
shell: Group readdir64/dirent64 with open64
Release 0.5.11.2.
jobs: Only block in waitcmd on first run
Release 0.5.11.3.
eval: Do not cache value of eflag in evaltree
Release 0.5.11.4.
Jeroen Roovers (1):
input: Fix compiling against libedit with -fno-common
Martijn Dekker (1):
shell: update .gitignore
Martin Michlmayr (1):
shell: Fix typos
Michael Greenberg (1):
shell: mktokens relative TMPDIR
Nikolai Merinov (1):
expand: Fix trailing newlines processing in backquote expanding
Peter Korsgaard (1):
shell: Don't include config.h for native helpers
esr@thyrsus.com (1):
man: Problems in dash.1, sh.1, sh.distrib.1
## v0.7.0
- Enable asynchronous mode by default (#498)
- No longer wrap user widgets starting with `autosuggest-` prefix (#496)
- Fix a bug wrapping widgets that modify the buffer (#541)
if that wait is interrupted by a trapped signal. A later wait for the
same pid would return status 127 (process not found) even though the
process was still running (and still in bash's jobs table).
This was a bug introduced in bash 5.1 (does not occur in 5.0 or earlier).
This patch should be removed when bash is next updated (to 5.2 or beyond)
(the change will be in the bash codebase) or if a patch is released from
upstream to fix this problem.
PGKREVISION++
{ This change is not significant enough to warrant an entry in doc/CHANGES. }
The new patches:
Patch 5: Fix memory leaks when using assigning arrays using ...
Patch 6: Use correct process group for command substitution processes
Patch 7: Fix readline version checking in inputrc files
Patch 8: Clean up FIFOs used for process substitutions properly
- This is oksh-6.9, matching ksh(1) from OpenBSD 6.9 with portability
additions.
From the OpenBSD 6.9 changelog:
- Fixed ksh(1) redrawing of a multiline PS1 prompt in vi mode and added
support for ^R (redraw) in insert mode.
Changelog from AN-2021-01-05:
- Bourne Shell: When we introduced ${.sh.path} in February 2020, we did
use the "new" and POSIX-only function realpath() that is not present
on e.g. Ultrix. We now use abspath() from libschily if realpath() is
missing.
Note that abspath() is better than realpath(), as it supports path
names longer than PATH_MAX, but since ${.sh.path} is only used to
return the absolute pathname for the current shell binary, this is
not a problem and on the other side, we can avoid linking against
libschily this way, so shell scripting with lazy linking is faster
since less libraries need to be linked at startup.
Changelog from AN-2021-04-21:
- Bourne Shell: gmatch.c: The new version no longer aborts with an
illegal multi byte sequence as "no match". As a result, the "*"
now again matches any filename - even if the filename contains an
illegal multi-byte sequence. This is a problem that did not exist
on the original Bourne Shell from Solaris that used gmatch() from
the AT&T libgen, but since we added our private portable gmatch.c.
to get better portability.
Thanks to Stephane Chazelas for reporting the problem related to
multi-byte to wide character conversion and illegal multi byte
sequences in the case statement and filesystem globbing.
- Bourne Shell: word.c::readwc() no longer uses prwc() but rather
a loop on the original multi-byte stream to print the "set -v"
output. This permits to output the original input data in any
case instead of stumbling over illegal multi-byte sequences.
Thanks to Stephane Chazelas for reporting the general problem
with input byte sequences that cause an EILSEQ error.
- Bourne Shell: struct fileblk now remembers lastwc and the related
input string as fileblk->mbs[] in order to avoid incorrect
conversions via wctomb() in case that the input wide char was a
result from an EILSEQ conversion and thus has no related multi
byte string.
An important visible result of that change is that input read
by the builtin command read(1) correctly forwards input that
caused an EILSEQ error.
It could not be verified whether this covers all possible similar
cases, but it is at least very close to a completely correct
solution.
Thanks to Stephane Chazelas for reporting the general problem
with input byte sequences that cause an EILSEQ error.
- Bourne Shell: xec.c: Cstyle changes
- Bourne Shell: the Copyright messages now mention 2021
Changelog from AN-2021-01-05:
- Bourne Shell: When we introduced ${.sh.path} in February 2020, we did
use the "new" and POSIX-only function realpath() that is not present
on e.g. Ultrix. We now use abspath() from libschily if realpath() is
missing.
Note that abspath() is better than realpath(), as it supports path
names longer than PATH_MAX, but since ${.sh.path} is only used to
return the absolute pathname for the current shell binary, this is
not a problem and on the other side, we can avoid linking against
libschily this way, so shell scripting with lazy linking is faster
since less libraries need to be linked at startup.
Changelog from AN-2021-04-21:
- Bourne Shell: gmatch.c: The new version no longer aborts with an
illegal multi byte sequence as "no match". As a result, the "*"
now again matches any filename - even if the filename contains an
illegal multi-byte sequence. This is a problem that did not exist
on the original Bourne Shell from Solaris that used gmatch() from
the AT&T libgen, but since we added our private portable gmatch.c.
to get better portability.
Thanks to Stephane Chazelas for reporting the problem related to
multi-byte to wide character conversion and illegal multi byte
sequences in the case statement and filesystem globbing.
- Bourne Shell: word.c::readwc() no longer uses prwc() but rather
a loop on the original multi-byte stream to print the "set -v"
output. This permits to output the original input data in any
case instead of stumbling over illegal multi-byte sequences.
Thanks to Stephane Chazelas for reporting the general problem
with input byte sequences that cause an EILSEQ error.
- Bourne Shell: struct fileblk now remembers lastwc and the related
input string as fileblk->mbs[] in order to avoid incorrect
conversions via wctomb() in case that the input wide char was a
result from an EILSEQ conversion and thus has no related multi
byte string.
An important visible result of that change is that input read
by the builtin command read(1) correctly forwards input that
caused an EILSEQ error.
It could not be verified whether this covers all possible similar
cases, but it is at least very close to a completely correct
solution.
Thanks to Stephane Chazelas for reporting the general problem
with input byte sequences that cause an EILSEQ error.
- Bourne Shell: xec.c: Cstyle changes
- Bourne Shell: the Copyright messages now mention 2021