summaryrefslogtreecommitdiff
path: root/shells
AgeCommit message (Collapse)AuthorFilesLines
2021-06-16bash: Add --enable-function-import.jperkin1-14/+14
This is required to make 'export -f' work, which is enabled by default on other OS I checked. While here sort the list of enabled options so that it's easier to compare against the list of available options, as there are still a number that we do not enable, and remove the bogus comment. Bump PKGREVISION.
2021-06-12dash: update to 0.5.11.4. enable libedit support.nia2-7/+10
Andrej Shadura (1): builtin: Default to mktemp, not tempfile Antonio Ospite (6): eval: make traps work when "set -e" is enabled shell: Update configure.ac with suggestions from autoupdate shell: Enable automake silent rules eval: Silence compiler warning about missing parentheses shell: Fix clang warnings about "string plus integer" output: Fix clang warnings about GNU old-style field designator Denys Vlasenko (3): jobs: Rename DOWAIT_NORMAL to DOWAIT_NONBLOCK var: Remove poplocalvars() always-zero argument, make it static expand: Remove unused expandmeta() flag parameter Fangrui Song (1): shell: delete AC_PROG_YACC Gerrit Pape (2): eval: Report I/O error on stdout main: Print \n upon EOF (CTRL-D) when run interactively Herbert Xu (57): exec: Return 126 on most errors in shellexec main: Only set savestatus in exitcmd mkinit: Split reset into exitreset and reset jobs: Only clear gotsigchld when waiting for everything parser: Save/restore here-documents in command substitution var: Set IFS to fixed value at start time output: Fix fmtstr return value jobs: Replace some uses of fmtstr with stpcpy/stpncpy memalloc: Add growstackto helper exec: Do not allocate stack string in padvance builtin: Mark more regular built-ins exec: Stricter pathopt parsing exec: Never rehash regular built-ins eval: Add assignment built-in support again eval: Fail immediately with redirections errors for simple command eval: Replace with listsetvar with mklocal/setvareq eval: Add vfork support builtin: Use test_access from NetBSD when faccessat is unavailable expand: Use HOME in tilde expansion when it is empty expand: Merge syntax/quotes in memtodest with flags expand: Fix skipping of command substitution when trimming in evalvar expand: Do not reprocess data when expanding words eval: Always set localvar_stop memalloc: Avoid looping in growstackto expand: Ensure result is escaped in cvtnum expand: Fix multiple issues with EXP_DISCARD in evalvar eval: Use the correct expansion mode for fd redirection expand: Eat closing brace for length parameter expansion parser: Do not push token back before parseheredoc eval: Use sh_warnx instead of warnx system: Disable glibc warning on sigsetmask eval: avoid leaking memory associated with redirections eval: Only restore exit status on exit/return redir: Handle nested exec within REALLY_CLOSED redirection options: Do not set commandname in procargs expand: Fix double-decrement in argstr eval: Reset handler when entering a subshell parser: Fix old-style command substitution here-document crash parser: Only accept single-digit parameter expansion outside of braces redir: Clear saved redirections in subshell builtin: Fix seconds part of times(1) jobs: Fix infinite loop in waitproc parser: Fix handling of empty aliases parser: Catch errors in expandstr parser: Fix alias expansion after heredoc or newlines shell: Always use explicit large file API parser: Save and restore heredoclist in expandstr parser: Fix double-backslash nl in old-style command sub Release 0.5.11. jobs: Fix waitcmd busy loop Release 0.5.11.1. shell: Group readdir64/dirent64 with open64 Release 0.5.11.2. jobs: Only block in waitcmd on first run Release 0.5.11.3. eval: Do not cache value of eflag in evaltree Release 0.5.11.4. Jeroen Roovers (1): input: Fix compiling against libedit with -fno-common Martijn Dekker (1): shell: update .gitignore Martin Michlmayr (1): shell: Fix typos Michael Greenberg (1): shell: mktokens relative TMPDIR Nikolai Merinov (1): expand: Fix trailing newlines processing in backquote expanding Peter Korsgaard (1): shell: Don't include config.h for native helpers esr@thyrsus.com (1): man: Problems in dash.1, sh.1, sh.distrib.1
2021-06-10zsh-autosuggestions: update to 0.7.0.wiz2-7/+7
## v0.7.0 - Enable asynchronous mode by default (#498) - No longer wrap user widgets starting with `autosuggest-` prefix (#496) - Fix a bug wrapping widgets that modify the buffer (#541)
2021-06-10xonsh: py-prompt_toolkit has movedadam1-2/+2
2021-05-24*: recursive bump for perl 5.34wiz5-8/+10
2021-05-17Add a patch, obtained from upstream, which fixes a bug with "wait -n pid"kre3-2/+26
if that wait is interrupted by a trapped signal. A later wait for the same pid would return status 127 (process not found) even though the process was still running (and still in bash's jobs table). This was a bug introduced in bash 5.1 (does not occur in 5.0 or earlier). This patch should be removed when bash is next updated (to 5.2 or beyond) (the change will be in the bash codebase) or if a patch is released from upstream to fix this problem. PGKREVISION++ { This change is not significant enough to warrant an entry in doc/CHANGES. }
2021-05-05Update shells/bash to 5.1 patch 8.kre2-4/+20
The new patches: Patch 5: Fix memory leaks when using assigning arrays using ... Patch 6: Use correct process group for command substitution processes Patch 7: Fix readline version checking in inputrc files Patch 8: Clean up FIFOs used for process substitutions properly
2021-05-03*: Bump PKGREVISION for ghc-9.0.1pho1-1/+2
2021-05-01Update to 6.9. From the changelog:schmonz2-7/+7
- This is oksh-6.9, matching ksh(1) from OpenBSD 6.9 with portability additions. From the OpenBSD 6.9 changelog: - Fixed ksh(1) redrawing of a multiline PS1 prompt in vi mode and added support for ^R (redraw) in insert mode.
2021-04-26shells/pbosh: Update to 20210421micha2-8/+8
Changelog from AN-2021-01-05: - Bourne Shell: When we introduced ${.sh.path} in February 2020, we did use the "new" and POSIX-only function realpath() that is not present on e.g. Ultrix. We now use abspath() from libschily if realpath() is missing. Note that abspath() is better than realpath(), as it supports path names longer than PATH_MAX, but since ${.sh.path} is only used to return the absolute pathname for the current shell binary, this is not a problem and on the other side, we can avoid linking against libschily this way, so shell scripting with lazy linking is faster since less libraries need to be linked at startup. Changelog from AN-2021-04-21: - Bourne Shell: gmatch.c: The new version no longer aborts with an illegal multi byte sequence as "no match". As a result, the "*" now again matches any filename - even if the filename contains an illegal multi-byte sequence. This is a problem that did not exist on the original Bourne Shell from Solaris that used gmatch() from the AT&T libgen, but since we added our private portable gmatch.c. to get better portability. Thanks to Stephane Chazelas for reporting the problem related to multi-byte to wide character conversion and illegal multi byte sequences in the case statement and filesystem globbing. - Bourne Shell: word.c::readwc() no longer uses prwc() but rather a loop on the original multi-byte stream to print the "set -v" output. This permits to output the original input data in any case instead of stumbling over illegal multi-byte sequences. Thanks to Stephane Chazelas for reporting the general problem with input byte sequences that cause an EILSEQ error. - Bourne Shell: struct fileblk now remembers lastwc and the related input string as fileblk->mbs[] in order to avoid incorrect conversions via wctomb() in case that the input wide char was a result from an EILSEQ conversion and thus has no related multi byte string. An important visible result of that change is that input read by the builtin command read(1) correctly forwards input that caused an EILSEQ error. It could not be verified whether this covers all possible similar cases, but it is at least very close to a completely correct solution. Thanks to Stephane Chazelas for reporting the general problem with input byte sequences that cause an EILSEQ error. - Bourne Shell: xec.c: Cstyle changes - Bourne Shell: the Copyright messages now mention 2021
2021-04-26shells/bosh: Update to 20210421micha2-8/+8
Changelog from AN-2021-01-05: - Bourne Shell: When we introduced ${.sh.path} in February 2020, we did use the "new" and POSIX-only function realpath() that is not present on e.g. Ultrix. We now use abspath() from libschily if realpath() is missing. Note that abspath() is better than realpath(), as it supports path names longer than PATH_MAX, but since ${.sh.path} is only used to return the absolute pathname for the current shell binary, this is not a problem and on the other side, we can avoid linking against libschily this way, so shell scripting with lazy linking is faster since less libraries need to be linked at startup. Changelog from AN-2021-04-21: - Bourne Shell: gmatch.c: The new version no longer aborts with an illegal multi byte sequence as "no match". As a result, the "*" now again matches any filename - even if the filename contains an illegal multi-byte sequence. This is a problem that did not exist on the original Bourne Shell from Solaris that used gmatch() from the AT&T libgen, but since we added our private portable gmatch.c. to get better portability. Thanks to Stephane Chazelas for reporting the problem related to multi-byte to wide character conversion and illegal multi byte sequences in the case statement and filesystem globbing. - Bourne Shell: word.c::readwc() no longer uses prwc() but rather a loop on the original multi-byte stream to print the "set -v" output. This permits to output the original input data in any case instead of stumbling over illegal multi-byte sequences. Thanks to Stephane Chazelas for reporting the general problem with input byte sequences that cause an EILSEQ error. - Bourne Shell: struct fileblk now remembers lastwc and the related input string as fileblk->mbs[] in order to avoid incorrect conversions via wctomb() in case that the input wide char was a result from an EILSEQ conversion and thus has no related multi byte string. An important visible result of that change is that input read by the builtin command read(1) correctly forwards input that caused an EILSEQ error. It could not be verified whether this covers all possible similar cases, but it is at least very close to a completely correct solution. Thanks to Stephane Chazelas for reporting the general problem with input byte sequences that cause an EILSEQ error. - Bourne Shell: xec.c: Cstyle changes - Bourne Shell: the Copyright messages now mention 2021
2021-04-24Update to ShellCheck-0.7.2pho3-9/+140
No change logs are provided by the upstream.
2021-04-23bash: add sbin to default PATHnia1-2/+3
2021-04-08fish: update to 3.2.2nia2-7/+7
fish 3.2.2 (released April 7, 2021) ==================================== This release of fish fixes a number of additional issues identified in the fish 3.2 series: - The command-not-found handler used suggestions from ``pacman`` on Arch Linux, but this caused major slowdowns on some systems and has been disabled (:issue:`7841`). - fish will no longer hang on exit if another process is in the foreground on macOS (:issue:`7901`). - Certain programs (such as ``lazygit``) could create situations where fish would not receive keystrokes correctly, but it is now more robust in these situations (:issue:`7853`). - Arguments longer than 1024 characters no longer trigger excessive CPU usage on macOS (:issue:`7837`). - fish builds correctly on macOS when using new versions of Xcode (:issue:`7838`). - Completions for ``aura`` (:issue:`7865`) and ``tshark`` (:issue:`7858`) should no longer produce errors. - Background jobs no longer interfere with syntax highlighting (a regression introduced in fish 3.2.1, :issue:`7842`). If you are upgrading from version 3.1.2 or before, please also review the release notes for 3.2.1 and 3.2.0 (included below).
2021-03-19fish: Update to 3.2.1nia4-26/+9
fish 3.2.1 (released March 18, 2021) ==================================== This release of fish fixes the following problems identified in fish 3.2.0: - Commands in key bindings are run with fish's internal terminal modes, instead of the terminal modes typically used for commands. This fixes a bug introduced in 3.2.0, where text would unexpectedly appear on the terminal, especially when pasting (:issue:`7770`). - Prompts which use the internal ``__fish_print_pipestatus`` function will display correctly rather than carrying certain modifiers (such as bold) further than intended (:issue:`7771`). - Redirections to internal file descriptors is allowed again, reversing the changes in 3.2.0. This fixes a problem with Midnight Commander (:issue:`7769`). - Universal variables should be fully reliable regardless of operating system again (:issue:`7774`). - ``fish_git_prompt`` no longer causes screen flickering in certain terminals (:issue:`7775`). - ``fish_add_path`` manipulates the ``fish_user_paths`` variable correctly when moving multiple paths (:issue:`7776`). - Pasting with a multi-line command no longer causes a ``__fish_tokenizer_state`` error (:issue:`7782`). - ``psub`` inside event handlers cleans up temporary files properly (:issue:`7792`). - Event handlers declared with ``--on-job-exit $fish_pid`` no longer run constantly (:issue:`7721`), although these functions should use ``--on-event fish_exit`` instead. - Changing terminal modes inside ``config.fish`` works (:issue:`7783`). - ``set_color --print-colors`` no longer prints all colors in bold (:issue:`7805`) - Completing commands starting with a ``-`` no longer prints an error (:issue:`7809`). - Running ``fish_command_not_found`` directly no longer produces an error on macOS or other OSes which do not have a handler available (:issue:`7777`). - The new ``type`` builtin now has the (deprecated) ``--quiet`` long form of ``-q`` (:issue:`7766`). It also includes some small enhancements: - ``help`` and ``fish_config`` work correctly when fish is running in a Chrome OS Crostini Linux VM (:issue:`7789`). - The history file can be made a symbolic link without it being overwritten (:issue:`7754`), matching a similar improvement for the universal variable file in 3.2.0. - An unhelpful error ("access: No error"), seen on Cygwin, is no longer produced (:issue:`7785`). - Improvements to the ``rsync`` completions (:issue:`7763`), some completion descriptions (:issue:`7788`), and completions that use IP address (:issue:`7787`). - Improvements to the appearance of ``fish_config`` (:issue:`7811`). If you are upgrading from version 3.1.2 or before, please also review the release notes for 3.2.0 (included below).
2021-03-10bash-completion: Update to version 2.11.jperkin5-35/+119
pkgsrc changes: * Stop pretending that share/bash-completion.d is supported, it isn't. Packages that are installing files there should install them into share/bash-completion/completions instead. * Stop installing profile.d script, only really makes sense under /etc, and it wasn't correctly handled as a configuration file anyway. bash-completion (2.11) [ Alexander Meshcheryakov ] * _known_hosts_real: check that ruptime is present before calling (#390) [ Andrew Gaul ] * totem: reuse kaffeine completions (#372) [ Damien Nadé ] * __reassemble_comp_words_by_ref: avoid triggering nounset on indirect references [ Felix Lechner ] * lintian: complete paths for Ubuntu's .ddeb and Debian's buildinfo files (#397) [ Felix Yan ] * ip: complete route add table arg * ip: style fixes similar to ip-netns * ip: add more completions for ip-rule * ip: add support for netns (#391) * ip: improve completion of route subcommands (#326) [ Hans-Christoph Steiner ] * unzip, zipinfo: complete *.aar (#428) [ Jakub Jelen ] * ssh: add new -Q completions in OpenSSH 8.2p1 (#400) [ Kevin Locke ] * python: support executables with minor version (#389) [ Michal Suchánek ] * insmod, modinfo, modprobe: support xz compressed modules (#401) [ Phan Duc Nhat Minh ] * tshark: complete -r arg with all filenames (#422) [ Sebastian Jakubiak ] * openssl: update -starttls completions (#403) * _filedir*: update link to bug-bash discussion on -X (#404) * test/python: add testcase for submodule completion [ Ville Skyttä ] * Release 2.11 * extra/make-changelog: check and output usage message * pre-commit: anchor exclude patterns * pytest: rewrite in bash, support toplevel funcs, avoid nondef ones and classes * test/xfreerdp: skip --help failure cases * test/tshark: fix multiple -O completion with no http2 support * test/ant: avoid complete-ant-cmd.pl interference with ANT_ARGS * _xinetd_services: avoid nounset error on bash 4.2 * pre-commit: upgrade isort to 5.1.4 * pre-commit: upgrade pyupgrade to 2.7.2 * pre-commit: add pyupgrade, run it * test/ant: gitignore all target cache files * _known_hosts_real: exclude Host negations * pre-commit: upgrade isort to 5.0.7 * pre-commit: update shellcheck-py URL * test/inputrc: do not set print-completions-horizontally * test/inputrc: comment typo fix * pytest: complete async test class methods * __get_cword_at_cursor_by_ref: fix regression on bash 4.2 * test: upgrade markdownlint-cli to 0.23.2 * _known_hosts_real: avoid errors in nounset mode on Ubuntu 14 and 16 * _longopt: exclude too many dashes, allow underscores, require ends with alnum * _included_ssh_config_files: support globs * _known_hosts_real: prevent unwanted pathname expansion on host entries * test/shfmt: upgrade to 3.1.2, reformat with it * test/_known_hosts_real: add explicit no globbing test case * test: upgrade mypy to 0.782 * CONTRIBUTING.md: add posix and nounset mode item * test: upgrade mypy to 0.781 * test: upgrade perltidy to 20200619 * _known_hosts_real: fix completion of Host entries after a wildcard etc * _known_hosts_real: fix # handling in ssh configs * test: upgrade flake8 to 3.8.3 * test/xhost: multiple expected result handling fixes * test/slapt-src: single expected result handling fixes * test: partial hostname completion fixes * test: simplify completion parsing * test/dpkg-query: mark as xfail on non-Debian based systems * .gitignore: clean up some no longer needed ignores * test/lspci: skip -A arg test if lspci fails -A help, e.g. busybox lspci * test: regex escape our magic mark for completeness * test: upgrade mypy to 0.780 * test/_known_hosts_real: don't modify class scoped base expected list * test/_known_hosts_real: reset COMP_KNOWN_HOSTS_WITH_HOSTFILE between tests * test/_known_hosts_real: tolerate duplicates * bash_completion: trivial cleanups * gcc: avoid errors in nounset mode * pytest: fix test class method completion with BSD awk * man, mutt: avoid errors in nounset mode on Ubuntu 14 and 16 * java, make: avoid errors in nounset mode on Ubuntu 14 and 16 * README: document GNU make build requirement * pytest: add test class method completion * _known_hosts: avoid errors in nounset mode and no arguments * bash_completion: fix array set checks with empty elements in them * *: avoid more errors in nounset mode * cfrun: fix $hostfile leak * _command_offset, route: cleanups * *: avoid more errors in nounset mode * qemu: add -machine arg completion * qemu, sbopkg: avoid unintentional globbing on option arg completions * test: enable shellcheck SC2035 * *: drop support for bash 4.1 * _init_completion: fix unassigned redirect completion in nounset mode * ip: route shfmt, arithmetic evaluation * _filedir: avoid unbound variable error on Ubuntu 14 and 16 * _pids, _pgids, _pnames: improve shfmt formatting * scp, sftp, ssh: fix completion on options bundled with -4/-6 * modprobe, tshark, _included_ssh_config_files: use [[ ]] instead of [ ] * test/runLint: warn about [ ] instead of [[ ]] use * test: skip various tests if we don't get a useful usage message * *: mark nounset mode as supported, issues with it are bugs now * *: avoid more errors in nounset mode * *: avoid more errors in nounset mode * *: avoid more errors in nounset mode * test/inputrc: comment and whitespace tweaks * *: avoid more errors in nounset mode * test/unit: sort files included in dist * test/unit: include test_unit_known_hosts_real.py in dist * bash_completion: line wrapping tweaks, NFC * 7z: fix -o/-w attached arg completion * postfix: try to arrange a fake tty so we can tickle the usage message out * _bashcomp_try_faketty: new function to try running command with a fake tty * mr: avoid herestrings, simplify command parsing * test/mr: handle missing "clean" with skipif * test: mark known non-ASCII issues with test suite as xfail * dpkg-deb: add --raw-extract and -X arg completions * test: add some dpkg-query test cases * dpkg-deb: fix --show/-W completion * test: upgrade markdownlint-cli to 0.23.1 * *: use more arithmetic evaluation * test: try harder to restore environment and cwd on failures * *: use $ifs for storing/restoring $IFS * test/irb: xfail options test if --help is not available * test: upgrade flake8 to 3.8.1 * test: pre-commit config cleanups, ordering * test: upgrade pre-commit to 2.4.0+, drop shfmt kludge * test: sync shfmt and shellcheck configs * test: shfmt bashrc * test: remove unused run-shellcheck, shellcheck is in pre-commit now * test: remove old test suite code no longer used \o/ * test/_known_hosts_real: port remaining test cases to pytest+pexpect * test: remove more no longer needed old test suite code * test/_known_hosts_real: port more test cases to pytest+pexpect * test/_get_cword: port remaining test case to pytest+pexpect * test: replace some echos with printfs * test/_filedir: fix shutil.rmtree on Python < 3.6 * test/_expand: port remaining test cases to pytest+pexpect * test: drop some no longer needed old test suite code * test/_filedir: port remaining test cases to pytest+pexpect * test: run all Travis jobs on dist: bionic * test: drop not needed sudo on Travis * test/_filedir: port more test cases to pytest+pexpect * test/__expand_tilde_by_ref: port remaining test cases to pytest+pexpect * test/_get_comp_words_by_ref: convert remaining test cases to pytest+pexpect * test: run pytest --verbose in docker * lftp: use "bookmark list" command to list bookmarks * test: drop some no longer needed old test suite code * test/slapt-src: convert remaining test case to pytest+pexpect * _xfunc: simplify * apt-cache: avoid nonzero exit code from _apt_cache_packages * test/slapt-get: convert remaining test case to pytest+pexpect * test/secret-tool: add to test command list * test/scp: port remaining test case to pytest+pexpect * test/umount: convert remaining test case to pytest+pexpect * secret-tool: new completion * apt-get: complete build-dep with dirs * travis: use golang 1.14 for shfmt * *: run all shell code through shfmt -s * pre-commit etc: add shfmt * test: fix incorrect fixtures/shared/default xfails/expectations * test: upgrade markdownlint to 0.23.0 * nmap: simplify help scraping a bit, don't try to emit unnecessary newlines * test: prefix fake test commands with underscore * test: port most umount test cases to pytest+pexpect * test: add note about unescaped assert_complete single return values * editorconfig: apply yaml settings to .yaml too * pre-commit: use local perlcritic hook * *: doc and comment link updates * pre-commit, *.md: add markdownlint, address findings * README: clarify loading automatically on demand * ssh-keygen: -O arg updates and improvements * ssh-keygen: add -b arg completions according to specified -t * ssh-keygen: option and arg completion updates for new versions * _command: improve commentary * reportbug, scp, sftp, svn: use compgen -c instead of _command * find: fix -exec etc argument and its completion * extra: trigger docker builds only on test-cmd-list.txt changes * test: add script to maintain list of executables for full test coverage * test: run lint tests on Travis in a quickish separate first stage * test/make: mark more cases as requiring command * make: add bmake alias * test: run pre-commit on host instead of docker * test: add perlcritic to pre-commit, run on all perl * *: remove some unused variables, thanks to shellcheck SC2034 * *: various loop iteration improvements * crontab: fix loop over already given args * apt-cache: fix command mode handling * doc: add loop variable naming guideline * test: make at-point completion tests easier * ssh, xsltproc: address shellcheck SC2006 * scp: work around shellcheck SC1003 * mutt: address shellchec SC2236 * wget: address shellcheck SC2116 * pytest: address shellcheck SC2002 * bash_completion, java, tipc: for loop whitespace consistency tweaks * *: more arithmetic evaluation cleanups, thanks to shellcheck SC2004 * __reassemble_comp_words_by_ref, java: address and work around shellcheck SC2102 * test: enable parallel pre-commit shellcheck * test: remove shellcheck severity filter, add explicit disables instead * doc: recommend arithmetic evaluation * *: array subscript cleanups * ssh-keygen: -s and -n completion improvements * *: enable and address shellcheck SC2053 * bash_completion, invoke-rc.d, svcadm: trivial cleanups * *: replace various conditional expressions with arithmetic evaluation * carton: fix command parsing with BSD sed * nmap: fix option parsing with BSD sed * test/alias: port remaining test case to pytest+pexpect * test: generalize complete at point test * test/cd: fix test_dir_at_point for setups that repeat "trailer" * pytest: add some option arg (non-)completions * pytest: complete test classes * pgrep, pkill: add --ns and --nslist arg completions * test: run skipif and xfail commands without caring if they output or not * test: make it possible to not care whether command did output or not * test/xfreerdp: skip xfreerdp kbd test if kbd-list returns empty * test: tolerate duplicates from compgen actions * test: bump shellcheck severity to warning + some disables * *: address shellcheck SC2046 * test/lib/library.sh: address shellcheck SC2125 * java, pkgadd, sysbench: address shellchec SC2124 * scp: address shellcheck SC2089 and SC2090 * _filedir_xspec: address shellcheck SC2140 * rpm, ssh, umount.linux: address shellcheck SC2120 * cvs, modprobe, sh: address shellcheck SC2209 * mutt: address shellcheck SC2088 * _upvar, _upvars, _variables, rpm: address shellcheck SC1083 * test/run: address shellcheck SC2164 * renice: address shellcheck SC2254 * tipc: comment grammar and spelling fixes * man, perl, route, tipc: address shellcheck SC2053 * info, java: address shellcheck SC2153 * quote_readline: fix $ret leak * test: upgrade shellcheck to 0.7.1 * test/printenv: xfail if --help doesn't contain options (e.g. busybox) * test/aptitude: require command where necessary * _known_hosts_real, op: address shellcheck SC2184 * test: don't run shellcheck on completions/.gitignore * protoc: complete all --*_out without more specific handling with dirs * sysbench: add --test= deprecation TODO * pkgadd: indentation fix * chronyc, wvdial: address shellcheck SC2178 * java, pkgadd, sysbench: address shellcheck SC2124 * mplayer: address shellcheck SC1078 false positive * smartctl: hush shellcheck SC2054 false positives * *: address shellcheck SC2221 and SC2222 * bash_completion: address shellcheck SC2220 * crontab, wodim: silence shellcheck SC2191 and SC2192 * aptitude: add some option arg (non)completions * aptitude: parse options list from --help, hardcode less * test/aptitude: add some test cases * *: argument interation improvements * *: whitespace tweaks * apt-get etc: use _apt_cache_packages from apt-cache * pre-commit: run most python checks on helpers/python too * test/ldd: xfail if --help is not implemented * test/printenv: require command for arg completion test * printenv: indentation fixes * test: upgrade mypy to 0.770 * test: split dependencies requiring Python 3.6.1+ to requirements- dev.txt * git: trigger docker rebuild on pre-commit config change * test: require openssl command for option argument tests * test: move perltidy to pre-commit, run with --converge * test: move shellcheck to pre-commit * test: ignore flake8 messages that are in black's domain * _xinetd_services: look up from $BASHCOMP_XINETDDIR, add some unit tests * printenv: new completion * copyright: add 2020 * test: fix CompletionResult.__eq__ UnboundLocalError * test: run pre-commit in tools container * test: shellcheck tweaks * test: add isort to pre-commit, run it * test: add flake8-bugbear * test: install black for Python 3.6 too * pre-commit: add config with black, flake8, and mypy * test: drop redundant black args from docker runs * *: python type hint fixes and improvements * extra/make-changelog: run through black * test/totem: add basic test case * test/cd: remove unused import * openssl: complete -writerand with filenames * openssl: parse available options from $command -help * openssl: support getting digest list from more recent openssl versions * nmap: handle options split on equals sign * nmap: parse options from -h output * test/cd: make dir_at_point produce better debuggable failures * test/cd: convert remaining test case to pytest+pexpect * test: remove some no longer needed old test suite code * test/chown,sudo: parametrize special case test, improve xfail targeting * test/tsig-keygen: require command for test_options * test/upgradepkg: port remaining test case to pytest+pexpect * tsig-keygen: new completion * test: host helper lint and usage fixes * test: port some _known_hosts_real unit tests to pytest+pexpect * test: remove some no longer needed tcl/expect code * test: fix spurious hosts fixture failure without avahi-browse installed * test: port some scp test cases to pytest+pexpect * test: port remaining finger, sftp, ssh, and xhost cases to pytest+pexpect * lilo: work around shellcheck false positive * test/ipcalc: fix tests with busybox ipcalc * chromium-browser, firefox: complete on *.txt (#379) * README.md: add introduction * ipcalc: new completion * *: complete commands when prefixed with a backslash * test/wol: don't fail MAC test if test system has /etc/ethers entries * test/dnssec-keygen: allow more alternatives in algorithm completion * lilo: don't complete on commented out labels * lilo: honor -C when completing labels * lilo: add -B and -E completions [ beantaxi ] * Source user completion only if it's a file (#409) [ hugoziviani ] * jarsigner: complete on *.apk too (#386) * cryptsetup: add luksChangeKey arg completion (#380) -- Ville Skyttä <ville.skytta@iki.fi> Sat, 25 Jul 2020 11:25:09 +0300 bash-completion (2.10) [ Felix Lechner ] * perltidy: associate *.t (#338) [ Gabriel F. T. Gomes ] * perl: fix completion with space between option and argument [ Grisha Levit ] * _variables: add TERM and LC_* completion (#353) [ Iñigo Martínez ] * autotools: Replace pkgdatadir with datadir * pkg-config: Relative paths * pkg-config: generate Name from autotools PACKAGE [ Jakub Jelen ] * ssh: option and argument completion updates (#332) [ Michał Górny ] * test_arp: Skip if ARP tables are empty * test_chromium_browser: Skip test_2 if 'chromium-browser --help' fails * test_rpm2tgz: Fix expected output [ Sebastian ] * cppcheck: Add new standards to --std option. (#356) [ Tomasz N ] * apt-get: fix pkg version completion if it contains a colon (#351) [ Ville Skyttä ] * test: bump black to >=19.10b0 * ssh, scp, sftp, ssh-copy-id, curl: improve identity file completion * update-rc.d: indentation fix * update-rc.d: remove dead code * screen: add serial device basic arg (non)completion * screen: add //telnet completion * test: add some trivial perl -E/-e cases * perl: indentation fixes * curl: make @filename completion do the right thing with dirs * _filedir: avoid duplicate dirs internally, and a compgen -d call for files * _filedir: remove unused $x * bash_completion.sh: shellcheck SC2086 fixes * test: shellcheck config cleanups * shellcheck: add some option arg (non)completions * test: fix cpio users test in presence of usernames with whitespace * test: python typing fixes * test: add minimal mypy config * .gitignore: mypy cache * makepkg: fix option completion * test: mark dcop and mr testcases requiring the cmd as such * CONTRIBUTING: disable e-mail bug gateway due to spam * carton: new completion * op: direct command parsing stderr to /dev/null * test: adjust java expectations based on whether jars can be listed * valgrind: look tool names from lib/*-linux-gnu dirs too * test: xfail locale-gen option completion if --help is not available * _sysvdirs: always return 0 * java: don't assume jar is installed * travis: test with Debian 10 * wine: install for wine-development and wine-stable too * travis: generate dist tarball on alpine * dmypy: new completion * test: add require_longopt xfail helper, use it * test: mark more tests that parse command output as requiring command * sysctl: invoke completed sysctl instead of one from path to get variables * screen, smartctl, update-alternatives: _parse_help, drop hardcoded option list * lintian-info: _parse_help, add more option arg (non)completions * gprof: _parse_usage, drop hardcoded option list * test: fix retrieving command to test from request * travis: pass NETWORK as env var, so we can actually use it * test: xfail MAC address completion without networking * test: ignore _makepkg_bootstrap in makepkg test env * test: hush flake8-bugbear B010 * test: don't sort expected completion lists under the hood * test: add bunch of basic option parsing test cases * test: always run tests which don't require tested command * test: explodepkg and upgradepkg test fixes * test: mark sbcl-mt xfail due to whitespace split issues * _terms: search directly from various terminfo dirs * _terms: combine and simplify somewhat * pkg-get: fix $i leak * pkgutil: fix $i leak * test: portinstall/upgrade test case and setup fixes * lvm pv*, vg*: parse help instead of hardcoding option list * ipv6calc: parse help instead of hardcoding option list * test: avoid some sed -r/-E runLint false positives * test: use sh +* as ccache command test case * java: make jar/zip listing work with unzip * test: installpkg test fixes * test: fix acroread fixture dir * test: remove unnecessary returns after pytest.skip * test: avoid gnome-mplayer core dump on Ubuntu 14 * xvfb-run: new completion * test: skip gssdp-discover --message-type when option not available * test: expect failures for bc without --help useful with _longopt * test: don't expect a .tox dir in fixture * test: drop sourcing our no longer existing profile.d script * tox: include -- in option completions * tox: complete defaults after a -- * gssdp-discover: new completion * test: register our pytest markers to hush warnings from 4.5+ * test: fix required pytest version * ip: invoke the tool as $1 * README: drop distro badges, link to Repology instead * chromium-browser: add --proxy-server arg completion * test: source our profile.d test env script in docker * influx: new completion * README: badge title tweaks * tox: do simple parse on tox.ini if --listenvs* yields nothing * test: add basic tox fixture * man: fall back to _parse_usage for _parse_help * test_wsimport: xfail options test on unparseable -help * test: don't try to install black on Python < 3.6 * pgrep: fix fallback to _parse_usage * test: xfail unparseable mock and munin-node-configure --help cases * test_pwdx: xfail more unparseable help cases * build: make pytest executable configurable, look for pytest-3 too * test: enforce minimum pytest version * test: zopflipng flake8 fix * test: xfail getent and pwdx option completions with unparseable --help * test: add more basic _parse_help use test cases * test: add bunch of basic _parse_help use test cases * .gitignore: add configure.lineno * badblocks: fix $i leak * postfix: option completion is expected to fail at the moment * cal: try _parse_help before _parse_usage * test: add bunch of basic _parse_usage use test cases * chsh, pwck: try _parse_help before _parse_usage * test: add basic autossh test * test: convert more _filedir unit tests to pytest+pexpect * test: flake8 fix * test: convert bunch of _filedir unit tests to pytest+pexpect * test: convert finger partial test case to pytest+pexpect * README: add some badges, tweak existing * test: port _variables unit tests to pytest+pexpect * test: port compgen and quote tests to pytest+pexpect * iconv, lz4, tipc, xsltproc: replace some seds with compgen -X * test: disallow Alpine failure on Travis * _pnames: adapt for busybox ps, rewrite in pure bash * test: run our docker script in test containers by default * test: use one Dockerfile for all dists * test_ifup: accept short option completions too * timeout: fallback to _parse_usage from _parse_help * test_wget: test --s instead of --h * test_lsusb: xfail with unparseable --help * test: expect failures for various completions without useful --help * test: support xfail in our markers like skipif, use it a lot * test: add Alpine Linux container, allow failures for now * iconv: weed out ... from encoding completions * test_iconv: add basic file completion test * test_iconv: skip option completion if --help fails * test_getconf: skip if -a doesn't output any POSIX_V* * test_feh, test_makepkg: invoke grep as "command grep" * test: generalize check whether we're being run in a container * tar: simplify locating tarball from command line * pkg_delete: don't limit to FreeBSD * test: reformat test_chromium_browser.py source * test: set up BASH_COMPLETION_COMPAT_DIR in bashrc (only) * test: more thorough system location interference avoidance * test: bashrc comment and whitespace tweaks * build: makefile whitespace tweaks * build: really reset return value before completions check * build: simplify symlink setup * tar: add missing bsdtar, gtar, and star symlinks * README: use light gray badges for unknown versions * README: link to cygwin package [ Wolf ] * ri: hush some warnings [ andreabravetti ] * unrar: complete on *.exe (#337) [ ezr ] * chromium-browser: Add support for .mhtml files [ jerkey ] * screen: complete first arg with serial devices [ marxin ] * gcc: support new --completion option (#222) [ pcc ] * unzip, zipinfo: complete *.aab (#340) [ versat ] * cppcheck: Remove deprecated option 'posix' for '--std=' -- Ville Skyttä <ville.skytta@iki.fi> Thu, 05 Dec 2019 17:04:26 +0200 bash-completion (2.9) [ Antonio Terceiro ] * dpkg-source: Add --before-build --after-build --commit, and --print-format [ Gabriel F. T. Gomes ] * xm: Deprecate completion for obsolete command (#284) * _filedir_xspec: Fallback to suggesting all files if requested (#260) * tar: Support completions for zstd compression extensions (#255) * dpkg: List held packages (#250) * cvs: Add completion for the log command [ Guillaume Mella ] * unzip, zipinfo: Associate with *.xar (eXist-db application package) (#257) [ Igor Susman ] * mplayer: Associate with *.w64 [ Jaak Ristioja ] * okular: Added support for xz-compressed files. [ John Swinbank ] * _xspecs: Declare as global on bash >= 4.2 [ Kevin Locke ] * test: Increase expect pty to 160 columns * test: avoid interrupting magic mark output [ Per Lundberg ] * 7z: add .msi support [ Peter Wu ] * tshark: speed up tshark -O completion * tshark: fix completion of -Xlua_script option * tshark: Support preferences (-o) completion with memoization * test: fix misinterpretation of completion output in tests * test: fix flake8 complaints about unused imports * conftest: fix RemovedInPytest4Warning due to use of node.get_marker * chromium-browser: consider chrome and chromium as aliases * tshark: support .gz and .cap files for -r expansion * tshark: prevent a single-character file from breaking -G completion * tshark: update -T and -t completions [ Russell Davis ] * man: Fix completion when failglob option is enabled (#225) [ Timo Taipalus ] * mplayer: Add common supported module music formats [ Tomasz N ] * _longopt: pick first long option on a line, not last [ Ville Skyttä ] * *: avoid shellcheck SC1007 and SC1010 * 7z: add some TODO notes on parsing "i" output for extensions * ssh: make -o protocol completion less hardcoded * ssh: make option completion case insensitive * ssh: fix suboption completion with combined -*o * xvnc4viewer: code cleanups * doc/testing: remove lots of legacy info, add some new * CONTRIBUTING: add upstream vs bash-completion considerations * CONTRIBUTING: note runLint and run-shellcheck * __parse_options, 7z: avoid herestrings * arp, ccze, ifstat, inotifywait, makepkg: invoke sed with "command" * shellcheck: disable bunch of warnings when in "-S warning" mode * test: move default shell option from run-shellcheck to .shellcheckrc * test: make runLint search for herestrings * tar, valgrind: avoid some herestrings * travis: run shellcheck on bash_completion.sh.in too * travis: fail on shellcheck errors * make: quote eval array definitions to work around shellcheck SC1036 bug * test: add make -C test case * *: shellcheck error fixes * _included_ssh_config_files: store found included files in an array * _included_ssh_config_files: doc grammar fixes * test: add invoke-rc.d test case for not repeating already given options * ebtables: improve existing table arg parsing * test: add script to run shellcheck, run it in Travis, allowing failure for now * iptables: improve existing table arg parsing * test: shorten long gdb test core file name so tar doesn't croak on it * AUTHORS: remove unrelated project association from my entry * apt-get: protect source against regex specials * mypy, mysql, xmms: don't complete unknown split long option args * synclient: remove unused local variable "split" * test: adjust _get_comp_words_by_ref test to changed error output * apt-cache: protect showsrc against regex specials * test: improve tshark -O arg completion test * tshark: ignore stderr when parsing -G, -L, and -h output * *: error output consistency, use bash_completion prefix * _upvar: deprecate in favor of _upvars * *: add missing "ex: filetype=sh" * phing: fix getting just a tab for options on CentOS 6 * phing: don't complete -l with files * various: apply file vs dir special cases also when invoked with full path * *: whitespace tweaks * ssh: don't offer protocol v1 specific options if it's not supported * test: add some gdb non-core files * _parse_help: look for long options somewhat more eagerly * gdb: relax core filename pattern * test/tools: fix exit status incrementation * *: arithmetic expression related cleanups * test/tools: run all tools, don't stop at first failure * test: check for perltidy errors and warnings * *: format Perl code with perltidy * *: format Python code with black * .dir-locals.el: use flycheck-sh-bash-args * valgrind: look up tools from libexec dirs too * *: make _parse_usage fallbacks more concise * svn, svk, wget: use _iconv_charsets * *: spelling fixes * msynctool: code cleanups * *: remove whitespace after redirections * *: remove spaces immediately within $() * bzip2: recognize *.tbz2 as bzipped * modprobe: module parameter boolean values * ping, tracepath: parse options primarily with _parse_help * ulimit: new completion * shellcheck: new completion * dnssec-keygen: new completion * modprobe: append = to module parameter completions * test: include test_unit_longopt.py in dist * test: add some _longopt unit tests * _longopt: simplify regex, use printf instead of echo, drop unnecessary sort * nsupdate: new completion * _longopt: don't complete --no-* with file/dirname arg * copyright: add 2019 * pytest: complete --pythonwarnings/-W arg * python: make warning action list reusable * test: use pytest-xdist * extra: add git pre-push hook for triggering Docker Hub builds * post-commit: trigger on test/requirements.txt too * pytest: complete pytest-xdist --dist, --numprocesses, and --rsyncdir * test: remove no longer needed completion/*.exp * xfreerdp: reinstate support for old versions with dash option syntax * test: rewrite "generate" in Python, fix trailing backslash in EXTRA_DIST * test: sort t/Makefile.am EXTRA_DIST in C locale * ssh: support RemoteCommand and SyslogFacility options * test: Expect failure for chown all users test as non-root * test: Fix declare test case with bash 5.0 * adb: Deprecate in favor of one shipped with the Android SDK * xfreerdp: Update for more modern xfreerdp * jsonschema: New completion * test: Remove unnecessary ri xfail * test: Clean up man tmp dir * .gitignore: Add .python-version (for pyenv) * test: Remove unnecessary autouse=True from fixtures * ifstat: Make work with iproute2 version * iperf, iperf3: Add some option arg (non-)completions * test: Fix test generation wrt results checking improvements * ifstat: New completion * __parse_options: Avoid non-zero exit status * test: Refactor/improve completion results checking * test: Match Python's default locale unaware sort in bash setup * test: Rename completion.line to .output * test: Add man failglob test case * test: Add pre_cmds support for completion fixture * inotifywatch: New completion, common with inotifywait * inotifywait: Fix -e completion with BSD sed * inotifywait: Avoid some false positive event names * test: extend _ip_addresses unit tests some * _ip_addresses: Avoid completing ipv4 ones with -6 * inotifywait: New completion * test: Mark some xfails based on if in docker instead of in CI * test: Skip ifup options test if it doesn't grok --help, not in CI * test: Clean up and docker-ignore __pycache__ dirs * build: Include test/t in dist tarball * test/t: Avoid trailing backslash in Makefile.am's to appease automake * test: Remove some no longer used old test suite code * _xspecs: Simplify bash version check * chmod: Fix "-" completion * sysctl: Treat -f as alias for -p/--load * .gitignore: Add pytestdebug.log * chmod: Fix file completion after modes starting with a dash * _count_args: Add 3rd arg for treating option-like things as args * test: Fix _count_args test_7 to test intended case * pydocstyle: New completion * Travis: Remove unused PYTEST env var * doc: Note email issues gateway * tcpdump: Various option and their arg completion updates * test: Fix arp CI (non)expectations, remove redundant test case * test: Be more consistent with "CI" env var examination and xfails * arp: New completion, somewhat incomplete * test: Expect failure in gkrellm if there's no X display * doc: Update docs on generating simple tests * doc: Some test dependency doc updates * test: Add requirements.txt for installing dependencies * grpck: Parse options with _parse_help, falling back to _parse_usage * grpck: Add --root/-R arg completion * test suite: Ignore _scp_path_esc in env for ssh-copy-id * ssh-copy-id: Add -i and -o arg (non-)completions * tar: Clean up some redundant code * cancel: Split long line * cancel: Add some option arg (non-)completions * locale-gen: New completion * makepkg: Don't apply to other than Slackware makepkg * test: Allow unknowns options in makepkg option completion * makepkg: Use _parse_help instead of hardcoding option list * mypy: New completion * op: New completion * hunspell: New completion * xmllint: Improve --encode, --pretty, and --xpath arg (non-)completions * test: Remove leftover completion/ls.exp * gcc: Add g++, gcc, gccgo, and gfortran *-[568] aliases * perlcritic: New completion * gnome-screenshot: New completion * isort: New completion * freeciv: Option and arg completion updates * freeciv-gtk2: Install for freeciv and freeciv-gtk3, rename to freeciv * mplayer etc: Complete on *.crdownload partial downloads in addition to *.part * chromium-browser, google-chrome*: New non-xspec completion * firefox etc: New non-xspec completion * Merge branch 'master' into wip-pexpect * nc: Add some more option (non-)completions * test: Mark MANPATH without leading/trailing colons test an xfail on CI CentOS 6 * test: Remove kill, killall remnants * test: Make case specific env entries shell code, not escaped * Merge branch 'master' into wip-pexpect * unzip, zipinfo: Associate with *.whl * __load_completion: Avoid unnecessary lookups from nonexistent dirs * Merge branch 'master' into wip-pexpect * gcc: Add g++, gcc, gccgo, and gfortran *-7 aliases * test: Use test_unit_* prefix for unit tests, to avoid name clashes * test: Support setting cmd=None to require no command, for unit tests * test: Misc test suite fixes * test: Fix jq and scrub skipif commands * test: Don't require complete marker on test methods * test: Add support for per-test env modifications * test: Use more conventional Python file names for tests * test: Sort completion results in Python for ease of use in Python tests * test: Allow __load_completion to fail * test: chdir to fixtures dir in Python as well * test: Mark xfreerdp as expected failure for now * test: Replace + with Plus in test class names * test: Implement load_completion_for using assert_bash_exec * test: Add ability to selectively ignore diffs in environment * test: Fixture reorganization * test: Pass through $HOME and $DISPLAY to test bash * test: Log pexpect interaction to $BASHCOMP_TEST_LOGFILE if set * test: Rename BASHCOMP_* test env variables to BASHCOMP_TEST_* * test: Add python3 test case * test: Add class level skipif based on bash exec result * test: Include command name in test class name, use numbered test method names * test: Fix some regressions introduced in recent test conversions * test: Add support for running test case in a specified dir * test: Add support for skipping individual tests based on shell command status * test: Make test base work with Python 3.3+ * test: Add some iperf, iperf3 and xmodmap test cases * xmodmap: Use _parse_help instead of hardcoded option list * iperf: Improve client/server specific option parsing * iperf: Install for iperf3 too * iperf: Add g/G to --format completions * xmodmap: Use _parse_help instead of hardcoded option list * iperf: Improve client/server specific option parsing * iperf: Install for iperf3 too * iperf: Add g/G to --format completions * test: Use /root/.local/bin/pytest on ubuntu14 by default * test: Add generated test files to t/Makefile.am automatically * test: Add new test files to EXTRA_DIST * test: Use /root/.local/bin/pytest on centos6 by default * test: Use make pytest docker executable env-configurable, default pytest-3 * test: Update generate for pytest+pexpect * test: Convert majority of test cases to pytest+pexpect * tox: Fall back to --listenvs for env list if --listenvs-all fails * git-post-commit: Avoid some error trash when HEAD is not a symbolic ref * test: Add pylint-3 test case * test: Limit number of pylint option completions * pydoc, pylint: Determine python2/3 based on command basename only * pylint: Bring -f/--format arg completion up to date with pylint 1.9.2 * pylint: Implement comma separated --confidence arg completion * test: Fix buffer size option listing in run --help * test: Bump expect's match_max to 20000 by default * test: Run docker tests with --verbose * _services: Try systemctl list-unit-files if systemctl list-units fails * extra/git-post-commit.sh: Add git post-commit Docker Hub trigger hook * gpgv: New completion * pydoc, pylint: Skip module completion if current looks like a path * travis: Run ubuntu14/bsd with no network * travis: Split long lines in script * test: Limit number of wget option completions to avoid unresolved result * test: Mark flake8 untested if it seems broken * pylint: Option arg completion improvements * tshark: Get available interfaces from -D output * ngrep: Add "any" to -d arg completions * fio: New completion * test: Fix iwspy test case * uscan: Use _parse_help instead of hardcoded option list * urlsnarf: Add -p arg completion * tracepath: Add -m and -p arg non-completions * tracepath: Actually use our separate completion instead of _known_hosts * test: Skip jq option completion test if its --help doesn't list them * xdg-settings: Make help parsing work on BSD * test: Support running with local BSD binaries, do it w/ ubuntu14 in CI * jq, sqlite3: Protect against negative array subscripts * sudo: Improve long option arg handling * sysctl: Recognize --pattern/-r and --load options * test: Add sysctl option parsing test case * sudo: Parse options from help/usage output, add some long option support * strace: Use _parse_help instead of hardcoded option list * sshow: Add -p arg completion * sqlite3: Add some option arg (non-)completions * tune2fs: Update -o/-O argument lists * jq: New completion * reportbug: Run _parse_help and apt-cache more selectively * querybts: Use _parse_help, not hardcoded option list, misc improvements * pyvenv: Support versioned 3.6-3.8 executables * passwd: Try _parse_help before _parse_usage to parse options * profile.d: Avoid tested variable values being confused as [ ] operators * cryptsetup: Add some option arg (non-)completions * cryptsetup, nc, sh: Skip option args when counting arguments * modinfo: Fall back to _parse_usage if _parse_help yields no results * mysql, mysqladmin: Complete --ssl-{ca,cert,key} option arg * mysqladmin: Reuse --default-character-set completion from mysql * modinfo: Use _parse_help instead of hardcoded option list * minicom: Use _parse_help instead of hardcoded option list * mplayer: Associate with *.S[3T]M, *.med, *.MED * completions/Makefile.am: Use install-data-hook, not install-data- local * ifup etc: Add option and option argument completion * _count_args: Add support for not counting specified option args * ifquery: New ifup alias completion * ngrep, tshark: Complete on *.pcapng too * rpm: Complete --licensefiles with -q * pytest: Rename from py.test to follow upstream recommended name * README: Add instructions for overriding completions system wide * README: Note $BASH_COMPLETION_USER_DIR * test: Mark psql etc test cases untested if --help doesn't work * aclocal, automake: Support versioned 1.16 executables * __load_completion: Avoid bad array subscript on "commands" ending with slash * lzma: Use _parse_help instead of hardcoded option list * test: Run perlcritic and flake8 on perl and python helpers in Travis * build: Improve cleanup of test/log and test/tmp dirs * pkg-config: Complete on *.pc files * build: Use AC_PROG_SED to locate sed * build: Do cmake, pc, and profile variable replacements in Makefile * README: Add Q/A on overriding a completion, modernize local install answer * json_xs: New completion * chmod: New completion * iperf, nc: Include IPv6 addresses in bind address completions * links: Major rework, parse options from --help, add option arg completion * _ip_addresses: Add option to complete all/v4/v6 addresses, add unit test * wget: Remove nonexistent arg to _ip_addresses * _filedir: Drop unnecessary evals * iconv: Split charset completion to _iconv_charsets, add test case * links: Install completion for links2 too * xgamma: Comment spelling fix * lftp: handle -s * test: Skip scrub -p test when its --help doesn't list available patterns * ecryptfs-migrate-home: New completion * scrub: New completion * ether-wake: Install for etherwake as well * *: Support completing arg of last bundled short option * dselect: Parse options with _parse_help * dhclient: Add some option arg (non-)completions * dhclient: Parse options with _parse_usage * chage, chpasswd: Add -R/--root arg completion * reportbug: Add bunch of option arg (non-)completions * .dir-locals.el: Set -O extglob for flycheck bash checks * mount, umount: Deprecate on Linux in favor of util-linux >= 2.28 ones * _known_hosts_real: Reimplement known hosts file parsing in pure bash * test: Add comment line to fixtures/_known_hosts_real/known_hosts * ssh: Complete all *File option args with _filedir * README: Point Debian and openSUSE badges towards unstable and Tumbleweed * README: Link to various distro packages * apt-get: Add -h/-v/-o non-completions * apt-get: Sync option list with apt 1.5.1 * apt-get: Simplify -t and friends completion, support Ubuntu * apt-get: Add indextargets to list of suggested commands * apt-get: Complete install package=versions * ssh: Sync config option lists with OpenSSH 7.5p1, add some value completions * ssh: Sync query type list with OpenSSH 7.5p1 * ssh: Order various switch cases closer to alphabetical * completions/Makefile: Fix check-local in VPATH builds [ dmerge ] * _filedir: Refactor to remove heredoc-dependent loop [ marxin ] * gccgo: Add as a GCC completion target (#227) [ ovf ] * xrandr: match the output name exactly for --mode -- Ville Skyttä <ville.skytta@iki.fi> Sat, 27 Apr 2019 11:50:12 +0300
2021-03-05fish: Update to 3.2.0nia11-306/+248
fish 3.2.0 (released March 1, 2021) =================================== Notable improvements and fixes ------------------------------ - **Undo and redo support** for the command-line editor and pager search (:issue:`1367`). By default, undo is bound to Control+Z, and redo to Alt+/. - **Builtins can now output before all data is read**. For example, ``string replace`` no longer has to read all of stdin before it can begin to output. This makes it usable also for pipes where the previous command hasn't finished yet, like:: # Show all dmesg lines related to "usb" dmesg -w | string match '*usb*' - **Prompts will now be truncated** instead of replaced with ``"> "`` if they are wider than the terminal (:issue:`904`). For example:: ~/dev/build/fish-shell-git/src/fish-shell/build (makepkg)> will turn into:: …h-shell/build (makepkg)> It is still possible to react to the ``COLUMNS`` variable inside the prompt to implement smarter behavior. - **fish completes ambiguous completions** after pressing :kbd:`Tab` even when they have a common prefix, without the user having to press :kbd:`Tab` again (:issue:`6924`). - fish is less aggressive about resetting terminal modes, such as flow control, after every command. Although flow control remains off by default, enterprising users can now enable it with ``stty`` (:issue:`2315`, :issue:`7704`). - A new **"fish_add_path" helper function to add paths to $PATH** without producing duplicates, to be used interactively or in ``config.fish`` (:issue:`6960`, :issue:`7028`). For example:: fish_add_path /opt/mycoolthing/bin will add /opt/mycoolthing/bin to the beginning of $fish_user_path without creating duplicates, so it can be called safely from config.fish or interactively, and the path will just be there, once. - **Better errors with "test"** (:issue:`6030`):: > test 1 = 2 and echo true or false test: Expected a combining operator like '-a' at index 4 1 = 2 and echo true or echo false ^ This includes numbering the index from 1 instead of 0, like fish lists. - **A new theme for the documentation and Web-based configuration** (:issue:`6500`, :issue:`7371`, :issue:`7523`), matching the design on fishshell.com. - ``fish --no-execute`` **will no longer complain about unknown commands** or non-matching wildcards, as these could be defined differently at runtime (especially for functions). This makes it usable as a static syntax checker (:issue:`977`). - ``string match --regex`` now integrates **named PCRE2 capture groups as fish variables**, allowing variables to be set directly from ``string match`` (:issue:`7459`). To support this functionality, ``string`` is now a reserved word and can no longer be wrapped in a function. - Globs and other **expansions are limited to 512,288 results** (:issue:`7226`). Because operating systems limit the number of arguments to commands, larger values are unlikely to work anyway, and this helps to avoid hangs. - A new **"fish for bash users" documentation page** gives a quick overview of the scripting differences between bash and fish (:issue:`2382`), and the completion tutorial has also been moved out into its own document (:issue:`6709`). Syntax changes and new commands ------------------------------- - Range limits in index range expansions like ``$x[$start..$end]`` may be omitted: ``$start`` and ``$end`` default to 1 and -1 (the last item) respectively (:issue:`6574`):: echo $var[1..] echo $var[..-1] echo $var[..] All print the full list ``$var``. - When globbing, a segment which is exactly ``**`` may now match zero directories. For example ``**/foo`` may match ``foo`` in the current directory (:issue:`7222`). Scripting improvements ---------------------- - The ``type``, ``_`` (gettext), ``.`` (source) and ``:`` (no-op) functions are now implemented builtins for performance purposes (:issue:`7342`, :issue:`7036`, :issue:`6854`). - ``set`` and backgrounded jobs no longer overwrite ``$pipestatus`` (:issue:`6820`), improving its use in command substitutions (:issue:`6998`). - Computed ("electric") variables such as ``status`` are now only global in scope, so ``set -Uq status`` returns false (:issue:`7032`). - The output for ``set --show`` has been shortened, only mentioning the scopes in which a variable exists (:issue:`6944`). In addition, it now shows if a variable is a path variable. - A new variable, ``fish_kill_signal``, is set to the signal that terminated the last foreground job, or ``0`` if the job exited normally (:issue:`6824`, :issue:`6822`). - A new subcommand, ``string pad``, allows extending strings to a given width (:issue:`7340`, :issue:`7102`). - ``string sub`` has a new ``--end`` option to specify the end index of a substring (:issue:`6765`, :issue:`5974`). - ``string split`` has a new ``--fields`` option to specify fields to output, similar to ``cut -f`` (:issue:`6770`). - ``string trim`` now also trims vertical tabs by default (:issue:`6795`). - ``string replace`` no longer prints an error if a capturing group wasn't matched, instead treating it as empty (:issue:`7343`). - ``string`` subcommands now quit early when used with ``--quiet`` (:issue:`7495`). - ``string repeat`` now handles multiple arguments, repeating each one (:issue:`5988`). - ``printf`` no longer prints an error if not given an argument (not even a format string). - The ``true`` and ``false`` builtins ignore any arguments, like other shells (:issue:`7030`). - ``fish_indent`` now removes unnecessary quotes in simple cases (:issue:`6722`) and gained a ``--check`` option to just check if a file is indented correctly (:issue:`7251`). - ``fish_indent`` indents continuation lines that follow a line ending in a backslash, ``|``, ``&&`` or ``||``. - ``pushd`` only adds a directory to the stack if changing to it was successful (:issue:`6947`). - A new ``fish_job_summary`` function is called whenever a background job stops or ends, or any job terminates from a signal (:issue:`6959`, :issue:`2727`, :issue:`4319`). The default behaviour can now be customized by redefining it. - ``status`` gained new ``dirname`` and ``basename`` convenience subcommands to get just the directory to the running script or the name of it, to simplify common tasks such as running ``(dirname (status filename))`` (:issue:`7076`, :issue:`1818`). - Broken pipelines are now handled more smoothly; in particular, bad redirection mid-pipeline results in the job continuing to run but with the broken file descriptor replaced with a closed file descriptor. This allows better error recovery and is more in line with other shells' behaviour (:issue:`7038`). - ``jobs --quiet PID`` no longer prints "no suitable job" if the job for PID does not exist (eg because it has finished) (:issue:`6809`, :issue:`6812`). - ``jobs`` now shows continued child processes correctly (:issue:`6818`) - ``disown`` should no longer create zombie processes when job control is off, such as in ``config.fish`` (:issue:`7183`). - ``command``, ``jobs`` and ``type`` builtins support ``--query`` as the long form of ``-q``, matching other builtins. The long form ``--quiet`` is deprecated (:issue:`7276`). - ``argparse`` no longer requires a short flag letter for long-only options (:issue:`7585`) and only prints a backtrace with invalid options to argparse itself (:issue:`6703`). - ``argparse`` now passes the validation variables (e.g. ``$_flag_value``) as local-exported variables, avoiding the need for ``--no-scope-shadowing`` in validation functions. - ``complete`` takes the first argument as the name of the command if the ``--command``/``-c`` option is not used, so ``complete git`` is treated like ``complete --command git``, and it can show the loaded completions for specific commands with ``complete COMMANDNAME`` (:issue:`7321`). - ``set_color -b`` (without an argument) no longer prints an error message, matching other invalid invocations of this command (:issue:`7154`). - ``exec`` no longer produces a syntax error when the command cannot be found (:issue:`6098`). - ``set --erase`` and ``abbr --erase`` can now erase multiple things in one go, matching ``functions --erase`` (:issue:`7377`). - ``abbr --erase`` no longer prints errors when used with no arguments or on an unset abbreviation (:issue:`7376`, :issue:`7732`). - ``test -t``, for testing whether file descriptors are connected to a terminal, works for file descriptors 0, 1, and 2 (:issue:`4766`). It can still return incorrect results in other cases (:issue:`1228`). - Trying to execute scripts with Windows line endings (CRLF) produces a sensible error (:issue:`2783`). - Trying to execute commands with arguments that exceed the operating system limit now produces a specific error (:issue:`6800`). - An ``alias`` that delegates to a command with the same name no longer triggers an error about recursive completion (:issue:`7389`). - ``math`` now has a ``--base`` option to output the result in hexadecimal or octal (:issue:`7496`) and produces more specific error messages (:issue:`7508`). - ``math`` learned bitwise functions ``bitand``, ``bitor`` and ``bitxor``, used like ``math "bitand(0xFE, 5)"`` (:issue:`7281`). - ``math`` learned tau for those who don't like typing "2 * pi". - Failed redirections will now set ``$status`` (:issue:`7540`). - fish sets exit status in a more consistent manner after errors, including invalid expansions like ``$foo[``. - Using ``read --silent`` while fish is in private mode was adding these potentially-sensitive entries to the history; this has been fixed (:issue:`7230`). - ``read`` can now read interactively from other files, and can be used to read from the terminal via ``read </dev/tty`` (if the operating system provides ``/dev/tty``) (:issue:`7358`). - A new ``fish_status_to_signal`` function for transforming exit statuses to signal names has been added (:issue:`7597`, :issue:`7595`). - The fallback ``realpath`` builtin supports the ``-s``/``--no-symlinks`` option, like GNU realpath (:issue:`7574`). - ``functions`` and ``type`` now explain when a function was defined via ``source`` instead of just saying ``Defined in -``. - Significant performance improvements when globbing, appending to variables or in ``math``. - ``echo`` no longer interprets options at the beginning of an argument (eg ``echo "-n foo"``) (:issue:`7614`). - fish now finds user configuration even if the ``HOME`` environment variable is not set (:issue:`7620`). - fish no longer crashes when started from a Windows-style working directory (eg ``F:\path``) (:issue:`7636`). - ``fish -c`` now reads the remaining arguments into ``$argv`` (:issue:`2314`). - The ``pwd`` command supports the long options ``--logical`` and ``--physical``, matching other implementations (:issue:`6787`). - ``fish --profile`` now only starts profiling after fish is ready to execute commands (all configuration is completed). There is a new ``--profile-startup`` option that only profiles the startup and configuration process (:issue:`7648`). - Builtins return a maximum exit status of 255, rather than potentially overflowing. In particular, this affects ``exit``, ``return``, ``functions --query``, and ``set --query`` (:issue:`7698`, :issue:`7702`). - It is no longer an error to run builtin with closed stdin. For example ``count <&-`` now prints 0, instead of failing. - Blocks, functions, and builtins no longer permit redirecting to file descriptors other than 0 (standard input), 1 (standard output) and 2 (standard error). For example, ``echo hello >&5`` is now an error. This prevents corruption of internal state (#3303). Interactive improvements ------------------------ - fish will now always attempt to become process group leader in interactive mode (:issue:`7060`). This helps avoid hangs in certain circumstances, and allows tmux's current directory introspection to work (:issue:`5699`). - The interactive reader now allows ending a line in a logical operators (``&&`` and ``||``) instead of complaining about a missing command. (This was already syntactically valid, but interactive sessions didn't know about it yet). - The prompt is reprinted after a background job exits (:issue:`1018`). - fish no longer inserts a space after a completion ending in ``.``, ``,`` or ``-`` is accepted, improving completions for tools that provide dynamic completions (:issue:`6928`). - If a filename is invalid when first pressing :kbd:`Tab`, but becomes valid, it will be completed properly on the next attempt (:issue:`6863`). - ``help string match/replace/<subcommand>`` will show the help for string subcommands (:issue:`6786`). - ``fish_key_reader`` sets the exit status to 0 when used with ``--help`` or ``--version`` (:issue:`6964`). - ``fish_key_reader`` and ``fish_indent`` send output from ``--version`` to standard output, matching other fish binaries (:issue:`6964`). - A new variable ``$status_generation`` is incremented only when the previous command produces an exit status (:issue:`6815`). This can be used, for example, to check whether a failure status is a holdover due to a background job, or actually produced by the last run command. - ``fish_greeting`` is now a function that reads a variable of the same name, and defaults to setting it globally. This removes a universal variable by default and helps with updating the greeting. However, to disable the greeting it is now necessary to explicitly specify universal scope (``set -U fish_greeting``) or to disable it in config.fish (:issue:`7265`). - Events are properly emitted after a job is cancelled (:issue:`2356`). - ``fish_preexec`` and ``fish_postexec`` events are no longer triggered for empty commands (:issue:`4829`, :issue:`7085`). - Functions triggered by the ``fish_exit`` event are correctly run when the terminal is closed or the shell receives SIGHUP (:issue:`7014`). - The ``fish_prompt`` event no longer fires when ``read`` is used. If you need a function to run any time ``read`` is invoked by a script, use the new ``fish_read`` event instead (:issue:`7039`). - A new ``fish_posterror`` event is emitted when attempting to execute a command with syntax errors (:issue:`6880`, :issue:`6816`). - The debugging system has now fully switched from the old numbered level to the new named category system introduced in 3.1. A number of new debugging categories have been added, including ``config``, ``path``, ``reader`` and ``screen`` (:issue:`6511`). See the output of ``fish --print-debug-categories`` for the full list. - The warning about read-only filesystems has been moved to a new "warning-path" debug category and can be disabled by setting a debug category of ``-warning-path`` (:issue:`6630`):: fish --debug=-warning-path - The enabled debug categories are now printed on shell startup (:issue:`7007`). - The ``-o`` short option to fish, for ``--debug-output``, works correctly instead of producing an invalid option error (:issue:`7254`). - fish's debugging can now also be enabled via ``FISH_DEBUG`` and ``FISH_DEBUG_OUTPUT`` environment variables. This helps with debugging when no commandline options can be passed, like when fish is called in a shebang (:issue:`7359`). - Abbreviations are now expanded after all command terminators (eg ``;`` or ``|``), not just space, as in fish 2.7.1 and before (:issue:`6970`), and after closing a command substitution (:issue:`6658`). - The history file is now created with user-private permissions, matching other shells (:issue:`6926`). The directory containing the history file was already private, so there should not have been any private data revealed. - The output of ``time`` is now properly aligned in all cases (:issue:`6726`, :issue:`6714`) and no longer depends on locale (:issue:`6757`). - The command-not-found handling has been simplified. When it can't find a command, fish now just executes a function called ``fish_command_not_found`` instead of firing an event, making it easier to replace and reason about. Previously-defined ``__fish_command_not_found_handler`` functions with an appropriate event listener will still work (:issue:`7293`). - :kbd:`Control-C` handling has been reimplemented in C++ and is therefore quicker (:issue:`5259`), no longer occasionally prints an "unknown command" error (:issue:`7145`) or overwrites multiline prompts (:issue:`3537`). - :kbd:`Control-C` no longer kills background jobs for which job control is disabled, matching POSIX semantics (:issue:`6828`, :issue:`6861`). - Autosuggestions work properly after :kbd:`Control-C` cancels the current commmand line (:issue:`6937`). - History search is now case-insensitive unless the search string contains an uppercase character (:issue:`7273`). - ``fish_update_completions`` gained a new ``--keep`` option, which improves speed by skipping completions that already exist (:issue:`6775`, :issue:`6796`). - Aliases containing an embedded backslash appear properly in the output of ``alias`` (:issue:`6910`). - ``open`` no longer hangs indefinitely on certain systems, as a bug in ``xdg-open`` has been worked around (:issue:`7215`). - Long command lines no longer add a blank line after execution (:issue:`6826`) and behave better with :kbd:`Backspace` (:issue:`6951`). - ``functions -t`` works like the long option ``--handlers-type``, as documented, instead of producing an error (:issue:`6985`). - History search now flashes when it found no more results (:issue:`7362`) - fish now creates the path in the environment variable ``XDG_RUNTIME_DIR`` if it does not exist, before using it for runtime data storage (:issue:`7335`). - ``set_color --print-colors`` now also respects the bold, dim, underline, reverse, italic and background modifiers, to better show their effect (:issue:`7314`). - The fish Web configuration tool (``fish_config``) shows prompts correctly on Termux for Android (:issue:`7298`) and detects Windows Services for Linux 2 properly (:issue:`7027`). It no longer shows the ``history`` variable as it may be too large (one can use the History tab instead). It also starts the browser in another thread, avoiding hangs in some circumstances, especially with Firefox's Developer Edition (:issue:`7158`). Finally, a bug in the Source Code Pro font may cause browsers to hang, so this font is no longer chosen by default (:issue:`7714`). - ``funcsave`` gained a new ``--directory`` option to specify the location of the saved function (:issue:`7041`). - ``help`` works properly on MSYS2 (:issue:`7113`) and only uses ``cmd.exe`` if running on WSL (:issue:`6797`). - Resuming a piped job by its number, like ``fg %1``, works correctly (:issue:`7406`). Resumed jobs show the correct title in the terminal emulator (:issue:`7444`). - Commands run from key bindings now use the same TTY modes as normal commands (:issue:`7483`). - Autosuggestions from history are now case-sensitive (:issue:`3978`). - ``$status`` from completion scripts is no longer passed outside the completion, which keeps the status display in the prompt as the last command's status (:issue:`7555`). - Updated localisations for pt_BR (:issue:`7480`). - ``fish_trace`` output now starts with ``->`` (like ``fish --profile``), making the depth more visible (:issue:`7538`). - Resizing the terminal window no longer produces a corrupted prompt (:issue:`6532`, :issue:`7404`). - ``functions`` produces an error rather than crashing on certain invalid arguments (:issue:`7515`). - A crash in completions with inline variable assignment (eg ``A= b``) has been fixed (:issue:`7344`). - ``fish_private_mode`` may now be changed dynamically using ``set`` (:issue:`7589`), and history is kept in memory in private mode (but not stored permanently) (:issue:`7590`). - Commands with leading spaces may be retrieved from history with up-arrow until a new command is run, matching zsh's ``HIST_IGNORE_SPACE`` (:issue:`1383`). - Importing bash history or reporting errors with recursive globs (``**``) no longer hangs (:issue:`7407`, :issue:`7497`). - ``bind`` now shows ``\x7f`` for the del key instead of a literal DEL character (:issue:`7631`) - Paths containing variables or tilde expansion are only suggested when they are still valid (:issue:`7582`). - Syntax highlighting can now color a command as invalid even if executed quickly (:issue:`5912`). - Redirection targets are no longer highlighted as error if they contain variables which will likely be defined by the current commandline (:issue:`6654`). - fish is now more resilient against broken terminal modes (:issue:`7133`, :issue:`4873`). - fish handles being in control of the TTY without owning its own process group better, avoiding some hangs in special configurations (:issue:`7388`). - Keywords can now be colored differently by setting the ``fish_color_keyword`` variable (``fish_color_command`` is used as a fallback) (:issue:`7678`). - Just like ``fish_indent``, the interactive reader will indent continuation lines that follow a line ending in a backslash, ``|``, ``&&`` or ``||`` (:issue:`7694`). - Commands with a trailing escaped space are saved in history correctly (:issue:`7661`). - ``fish_prompt`` no longer mangles Unicode characters in the private-use range U+F600-U+F700. (:issue:`7723`). - The universal variable file, ``fish_variables``, can be made a symbolic link without it being overwritten (:issue:`7466`). - fish is now more resilient against ``mktemp`` failing (:issue:`7482`). New or improved bindings ^^^^^^^^^^^^^^^^^^^^^^^^ - As mentioned above, new special input functions ``undo`` (:kbd:`Control+\_` or :kbd:`Control+Z`) and ``redo`` (:kbd:`Alt-/`) can be used to revert changes to the command line or the pager search field (:issue:`6570`). - :kbd:`Control-Z` is now available for binding (:issue:`7152`). - Additionally, using the ``cancel`` special input function (bound to :kbd:`Escape` by default) right after fish picked an unambiguous completion will undo that (:issue:`7433`). - ``fish_clipboard_paste`` (:kbd:`Control+V`) trims indentation from multiline commands, because fish already indents (:issue:`7662`). - Vi mode bindings now support ``dh``, ``dl``, ``c0``, ``cf``, ``ct``, ``cF``, ``cT``, ``ch``, ``cl``, ``y0``, ``ci``, ``ca``, ``yi``, ``ya``, ``di``, ``da``, ``d;``, ``d,``, ``o``, ``O`` and Control+left/right keys to navigate by word (:issue:`6648`, :issue:`6755`, :issue:`6769`, :issue:`7442`, :issue:`7516`). - Vi mode bindings support :kbd:`~` (tilde) to toggle the case of the selected character (:issue:`6908`). - Functions ``up-or-search`` and ``down-or-search`` (:kbd:`Up` and :kbd:`Down`) can cross empty lines, and don't activate search mode if the search fails, which makes them easier to use to move between lines in some situations. - If history search fails to find a match, the cursor is no longer moved. This is useful when accidentally starting a history search on a multi-line commandline. - The special input function ``beginning-of-history`` (:kbd:`Page Up`) now moves to the oldest search instead of the youngest - that's ``end-of-history`` (:kbd:`Page Down`). - A new special input function ``forward-single-char`` moves one character to the right, and if an autosuggestion is available, only take a single character from it (:issue:`7217`, :issue:`4984`). - Special input functions can now be joined with ``or`` as a modifier (adding to ``and``), though only some commands set an exit status (:issue:`7217`). This includes ``suppress-autosuggestion`` to reflect whether an autosuggestion was suppressed (:issue:`1419`) - A new function ``__fish_preview_current_file``, bound to :kbd:`Alt+O`, opens the current file at the cursor in a pager (:issue:`6838`, :issue:`6855`). - ``edit_command_buffer`` (:kbd:`Alt-E` and :kbd:`Alt-V`) passes the cursor position to the external editor if the editor is recognized (:issue:`6138`, :issue:`6954`). - ``__fish_prepend_sudo`` (:kbd:`Alt-S`) now toggles a ``sudo`` prefix (:issue:`7012`) and avoids shifting the cursor (:issue:`6542`). - ``__fish_prepend_sudo`` (:kbd:`Alt-S`) now uses the previous commandline if the current one is empty, to simplify rerunning the previous command with ``sudo`` (:issue:`7079`). - ``__fish_toggle_comment_commandline`` (:kbd:`Alt-#`) now uncomments and presents the last comment from history if the commandline is empty (:issue:`7137`). - ``__fish_whatis_current_token`` (:kbd:`Alt-W`) prints descriptions for functions and builtins (:issue:`7191`, :issue:`2083`). - The definition of "word" and "bigword" for movements was refined, fixing (eg) vi mode's behavior with :kbd:`e` on the second-to-last char, and bigword's behavior with single-character words and non-blank non-graphical characters (:issue:`7353`, :issue:`7354`, :issue:`4025`, :issue:`7328`, :issue:`7325`) - fish's clipboard bindings now also support Windows Subsystem for Linux via PowerShell and clip.exe (:issue:`7455`, :issue:`7458`) and will properly copy newlines in multi-line commands. - Using the ``*-jump`` special input functions before typing anything else no longer crashes fish. - Completing variable overrides (``foo=bar``) could replace the entire thing with just the completion in some circumstances. This has been fixed (:issue:`7398`). Improved prompts ^^^^^^^^^^^^^^^^ - The default and example prompts print the correct exit status for commands prefixed with ``not`` (:issue:`6566`). - git prompts include all untracked files in the repository, not just those in the current directory (:issue:`6086`). - The git prompts correctly show stash states (:issue:`6876`, :issue:`7136`) and clean states (:issue:`7471`). - The Mercurial prompt correctly shows untracked status (:issue:`6906`), and by default only shows the branch for performance reasons. A new variable ``$fish_prompt_hg_show_informative_status`` can be set to enable more information. - The ``fish_vcs_prompt`` passes its arguments to the various VCS prompts that it calls (:issue:`7033`). - The Subversion prompt was broken in a number of ways in 3.1.0 and has been restored (:issue:`6715`, :issue:`7278`). - A new helper function ``fish_is_root_user`` simplifies checking for superuser privilege (:issue:`7031`, :issue:`7123`). - New colorschemes - ``ayu Light``, ``ayu Dark`` and ``ayu Mirage`` (:issue:`7596`). - Bugs related to multiline prompts, including repainting (:issue:`5860`) or navigating directory history (:issue:`3550`) leading to graphical glitches have been fixed. - The ``nim`` prompt now handles vi mode better (:issue:`6802`) Improved terminal support ^^^^^^^^^^^^^^^^^^^^^^^^^ - A new variable, ``fish_vi_force_cursor``, can be set to force ``fish_vi_cursor`` to attempt changing the cursor shape in vi mode, regardless of terminal (:issue:`6968`). The ``fish_vi_cursor`` option ``--force-iterm`` has been deprecated. - ``diff`` will now colourize output, if supported (:issue:`7308`). - Autosuggestions appear when the cursor passes the right prompt (:issue:`6948`) or wraps to the next line (:issue:`7213`). - The cursor shape in Vi mode changes properly in Windows Terminal (:issue:`6999`, :issue:`6478`). - The spurious warning about terminal size in small terminals has been removed (:issue:`6980`). - Dynamic titles are now enabled in Alacritty (:issue:`7073`) and emacs' vterm (:issue:`7122`). - Current working directory updates are enabled in foot (:issue:`7099`) and WezTerm (:issue:`7649`). - The width computation for certain emoji agrees better with terminals (especially flags). (:issue:`7237`). - Long command lines are wrapped in all cases, instead of sometimes being put on a new line (:issue:`5118`). - The pager is properly rendered with long command lines selected (:issue:`2557`). - Sessions with right prompts can be resized correctly in terminals that handle reflow, like GNOME Terminal (and other VTE-based terminals), upcoming Konsole releases and Alacritty. This detection can be overridden with the new ``fish_handle_reflow`` variable (:issue:`7491`). - fish now sets terminal modes sooner, which stops output from appearing before the greeting and prompt are ready (:issue:`7489`). - Better detection of new Konsole versions for true color support and cursor shape changing. - fish no longer attempts to modify the terminal size via ``TIOCSWINSZ``, improving compatibility with Kitty (:issue:`6994`). Completions ^^^^^^^^^^^ - Added completions for - ``7z``, ``7za`` and ``7zr`` (:issue:`7220`) - ``alias`` (:issue:`7035`) - ``alternatives`` (:issue:`7616`) - ``apk`` (:issue:`7108`) - ``asciidoctor`` (:issue:`7000`) - ``avifdec`` and ``avifenc`` (:issue:`7674`) - ``bluetoothctl`` (:issue:`7438`) - ``cjxl`` and ``djxl`` (:issue:`7673`) - ``cmark`` (:issue:`7000`) - ``create_ap`` (:issue:`7096`) - ``deno`` (:issue:`7138`) - ``dhclient`` (:issue:`6684`) - Postgres-related commands ``dropdb``, ``createdb``, ``pg_restore``, ``pg_dump`` and ``pg_dumpall`` (:issue:`6620`) - ``dotnet`` (:issue:`7558`) - ``downgrade`` (:issue:`6751`) - ``gapplication``, ``gdbus``, ``gio`` and ``gresource`` (:issue:`7300`) - ``gh`` (:issue:`7112`) - ``gitk`` - ``groups`` (:issue:`6889`) - ``hashcat`` (:issue:`7746`) - ``hikari`` (:issue:`7083`) - ``icdiff`` (:issue:`7503`) - ``imv`` (:issue:`6675`) - ``john`` (:issue:`7746`) - ``julia`` (:issue:`7468`) - ``k3d`` (:issue:`7202`) - ``ldapsearch`` (:issue:`7578`) - ``lightdm`` and ``dm-tool`` (:issue:`7624`) - ``losetup`` (:issue:`7621`) - ``micro`` (:issue:`7339`) - ``mpc`` (:issue:`7169`) - Metasploit's ``msfconsole``, ``msfdb`` and ``msfvenom`` (:issue:`6930`) - ``mtr`` (:issue:`7638`) - ``mysql`` (:issue:`6819`) - ``ncat``, ``nc.openbsd``, ``nc.traditional`` and ``nmap`` (:issue:`6873`) - ``openssl`` (:issue:`6845`) - ``prime-run`` (:issue:`7241`) - ``ps2pdf{12,13,14,wr}`` (:issue:`6673`) - ``pyenv`` (:issue:`6551`) - ``rst2html``, ``rst2html4``, ``rst2html5``, ``rst2latex``, ``rst2man``, ``rst2odt``, ``rst2pseudoxml``, ``rst2s5``, ``rst2xetex``, ``rst2xml`` and ``rstpep2html`` (:issue:`7019`) - ``spago`` (:issue:`7381`) - ``sphinx-apidoc``, ``sphinx-autogen``, ``sphinx-build`` and ``sphinx-quickstart`` (:issue:`7000`) - ``strace`` (:issue:`6656`) - systemd's ``bootctl``, ``coredumpctl``, ``hostnamectl`` (:issue:`7428`), ``homectl`` (:issue:`7435`), ``networkctl`` (:issue:`7668`) and ``userdbctl`` (:issue:`7667`) - ``tcpdump`` (:issue:`6690`) - ``tig`` - ``traceroute`` and ``tracepath`` (:issue:`6803`) - ``windscribe`` (:issue:`6788`) - ``wireshark``, ``tshark``, and ``dumpcap`` - ``xbps-*`` (:issue:`7239`) - ``xxhsum``, ``xxh32sum``, ``xxh64sum`` and ``xxh128sum`` (:issue:`7103`) - ``yadm`` (:issue:`7100`) - ``zopfli`` and ``zopflipng`` (:issue:`6872`) - Lots of improvements to completions, including: - ``git`` completions can complete the right and left parts of a commit range like ``from..to`` or ``left...right``. - Completion scripts for custom Git subcommands like ``git-xyz`` are now loaded with Git completions. The completions can now be defined directly on the subcommand (using ``complete git-xyz``), and completion for ``git xyz`` will work. (:issue:`7075`, :issue:`7652`, :issue:`4358`) - ``make`` completions no longer second-guess make's file detection, fixing target completion in some cases (:issue:`7535`). - Command completions now correctly print the description even if the command was fully matched (like in ``ls<TAB>``). - ``set`` completions no longer hide variables starting with ``__``, they are sorted last instead. - Improvements to the manual page completion generator (:issue:`7086`, :issue:`6879`, :issue:`7187`). - Significant performance improvements to completion of the available commands (:issue:`7153`), especially on macOS Big Sur where there was a significant regression (:issue:`7365`, :issue:`7511`). - Suffix completion using ``__fish_complete_suffix`` uses the same fuzzy matching logic as normal file completion, and completes any file but sorts files with matching suffix first (:issue:`7040`, :issue:`7547`). Previously, it only completed files with matching suffix. For distributors ---------------- - fish has a new interactive test driver based on pexpect, removing the optional dependency on expect (and adding an optional dependency on pexpect) (:issue:`5451`, :issue:`6825`). - The CHANGELOG was moved to restructured text, allowing it to be included in the documentation (:issue:`7057`). - fish handles ncurses installed in a non-standard prefix better (:issue:`6600`, :issue:`7219`), and uses variadic tparm on NetBSD curses (:issue:`6626`). - The Web-based configuration tool no longer uses an obsolete Angular version (:issue:`7147`). - The fish project has adopted the Contributor Covenant code of conduct (:issue:`7151`). Deprecations and removed features --------------------------------- - The ``fish_color_match`` variable is no longer used. (Previously this controlled the color of matching quotes and parens when using ``read``). - fish 3.2.0 will be the last release in which the redirection to standard error with the ``^`` character is enabled. The ``stderr-nocaret`` feature flag will be changed to "on" in future releases. - ``string`` is now a reserved word and cannot be used for function names (see above). - ``fish_vi_cursor``'s option ``--force-iterm`` has been deprecated (see above). - ``command``, ``jobs`` and ``type`` long-form option ``--quiet`` is deprecated in favor of ``--query`` (see above). - The ``fish_command_not_found`` event is no longer emitted, instead there is a function of that name. By default it will call a previously-defined ``__fish_command_not_found_handler``. To emit the event manually use ``emit fish_command_not_found``. - The ``fish_prompt`` event no longer fires when ``read`` is used. If you need a function to run any time ``read`` is invoked by a script, use the new ``fish_read`` event instead (:issue:`7039`). - To disable the greeting message permanently it is no longer enough to just run ``set fish_greeting`` interactively as it is no longer implicitly a universal variable. Use ``set -U fish_greeting`` or disable it in config.fish with ``set -g fish_greeting``. - The long-deprecated and non-functional ``-m``/``--read-mode`` options to ``read`` were removed in 3.1b1. Using the short form, or a never-implemented ``-B`` option, no longer crashes fish (:issue:`7659`). - With the addition of new categories for debug options, the old numbered debugging levels have been removed. For distributors and developers ------------------------------- - fish source tarballs are now distributed using the XZ compression method (:issue:`5460`). - The fish source tarball contains an example FreeDesktop entry and icon. - The CMake variable ``MAC_CODESIGN_ID`` can now be set to "off" to disable code-signing (:issue:`6952`, :issue:`6792`). - Building on on macOS earlier than 10.13.6 succeeds, instead of failing on code-signing (:issue:`6791`). - The pkg-config file now uses variables to ensure paths used are portable across prefixes. - The default values for the ``extra_completionsdir``, ``extra_functionsdir`` and ``extra_confdir`` options now use the installation prefix rather than ``/usr/local`` (:issue:`6778`). - A new CMake variable ``FISH_USE_SYSTEM_PCRE2`` controls whether fish builds with the system-installed PCRE2, or the version it bundles. By default it prefers the system library if available, unless Mac codesigning is enabled (:issue:`6952`). - Running the full interactive test suite now requires Python 3.5+ and the pexpect package (:issue:`6825`); the expect package is no longer required. - Support for Python 2 in fish's tools (``fish_config`` and the manual page completion generator) is no longer guaranteed. Please use Python 3.5 or later (:issue:`6537`). - The Web-based configuration tool is compatible with Python 3.10 (:issue:`7600`) and no longer requires Python's distutils package (:issue:`7514`). - fish 3.2 is the last release to support Red Hat Enterprise Linux & CentOS version 6. --------------
2021-01-04bash: update to 5.1.4.wiz8-152/+48
That is, 5.1 with the four post-release patches available so far. This is a terse description of the new features added to bash-5.1 since the release of bash-5.0. As always, the manual page (doc/bash.1) is the place to look for complete descriptions. 1. New Features in Bash a. `bind -x' now supports different bindings for different editing modes and keymaps. b. Bash attempts to optimize the number of times it forks when executing commands in subshells and from `bash -c'. c. Here documents and here strings now use pipes for the expanded document if it's smaller than the pipe buffer size, reverting to temporary files if it's larger. d. There are new loadable builtins: mktemp, accept, mkfifo, csv, cut/lcut e. In posix mode, `trap -p' now displays signals whose disposition is SIG_DFL and those that were SIG_IGN when the shell starts. f. The shell now expands the history number (e.g., in PS1) even if it is not currently saving commands to the history list. g. `read -e' may now be used with arbitrary file descriptors (`read -u N'). h. The `select' builtin now runs traps if its internal call to the read builtin is interrupted by a signal. i. SRANDOM: a new variable that expands to a 32-bit random number that is not produced by an LCRNG, and uses getrandom/getentropy, falling back to /dev/urandom or arc4random if available. There is a fallback generator if none of these are available. j. shell-transpose-words: a new bindable readline command that uses the same definition of word as shell-forward-word, etc. k. The shell now adds default bindings for shell-forward-word, shell-backward-word, shell-transpose-words, and shell-kill-word. l. Bash now allows ARGV0 appearing in the initial shell environment to set $0. m. If `unset' is executed without option arguments, bash tries to unset a shell function if a name argument cannot be a shell variable name because it's not an identifier. n. The `test -N' operator uses nanosecond timestamp granularity if it's available. o. Bash posix mode now treats assignment statements preceding shell function definitions the same as in its default mode, since POSIX has changed and no longer requires those assignments to persist after the function returns (POSIX interp 654). p. BASH_REMATCH is no longer readonly. q. wait: has a new -p VARNAME option, which stores the PID returned by `wait -n' or `wait' without arguments. r. Sorting the results of pathname expansion now uses byte-by-byte comparisons if two strings collate equally to impose a total order; the result of a POSIX interpretation. s. Bash now allows SIGINT trap handlers to execute recursively. t. Bash now saves and restores state around setting and unsetting posix mode, instead of having unsetting posix mode set a known state. u. Process substitution is now available in posix mode. v. READLINE_MARK: a new variable available while executing commands bound with `bind -x', contains the value of the mark. w. Bash removes SIGCHLD from the set of blocked signals if it's blocked at shell startup. x. `test -v N' can now test whether or not positional parameter N is set. y. `local' now honors the `-p' option to display all local variables at the current context. z. The `@a' variable transformation now prints attributes for unset array variables. aa. The `@A' variable transformation now prints a declare command that sets a variable's attributes if the variable has attributes but is unset. bb. `declare' and `local' now have a -I option that inherits attributes and value from a variable with the same name at a previous scope. cc. When run from a -c command, `jobs' now reports the status of completed jobs. dd. New `U', `u', and `L' parameter transformations to convert to uppercase, convert first character to uppercase, and convert to lowercase, respectively. ee. PROMPT_COMMAND: can now be an array variable, each element of which can contain a command to be executed like a string PROMPT_COMMAND variable. ff. `ulimit' has a -R option to report and set the RLIMIT_RTTIME resource. gg. Associative arrays may be assigned using a list of key-value pairs within a compound assignment. Compound assignments where the words are not of the form [key]=value are assumed to be key-value assignments. A missing or empty key is an error; a missing value is treated as NULL. Assignments may not mix the two forms. hh. New `K' parameter transformation to display associative arrays as key- value pairs. ii. Writing history to syslog now handles messages longer than the syslog max length by writing multiple messages with a sequence number. jj. SECONDS and RANDOM may now be assigned using arithmetic expressions, since they are nominally integer variables. LINENO is not an integer variable. kk. Bash temporarily suppresses the verbose option when running the DEBUG trap while running a command from the `fc' builtin. ll. `wait -n' now accepts a list of job specifications as arguments and will wait for the first one in the list to change state. mm. The associative array implementation can now dynamically increase the size of the hash table based on insertion patterns. nn. HISTFILE is now readonly in a restricted shell. oo. The bash malloc now returns memory that is 16-byte aligned on 64-bit systems. pp. If the hash builtin is listing hashed filenames portably, don't print anything if the table is empty. qq. GLOBIGNORE now ignores `.' and `..' as a terminal pathname component. rr. Bash attempts to optimize away forks in the last command in a function body under appropriate circumstances. ss. The globbing code now uses fnmatch(3) to check collation elements (if available) even in cases without multibyte characters. tt. The `fg' and `bg' builtins now return an error in a command substitution when asked to restart a job inherited from the parent shell. uu. The shell now attempts to unlink all FIFOs on exit, whether a consuming process has finished with them or not. vv. There is a new contributed loadable builtin: asort. 2. New Features in Readline a. If a second consecutive completion attempt produces matches where the first did not, treat it as a new completion attempt and insert a match as appropriate. b. Bracketed paste mode works in more places: incremental search strings, vi overstrike mode, character search, and reading numeric arguments. c. Readline automatically switches to horizontal scrolling if the terminal has only one line. d. Unbinding all key sequences bound to a particular readline function now descends into keymaps for multi-key sequences. e. rl-clear-display: new bindable command that clears the screen and, if possible, the scrollback buffer (bound to emacs mode M-C-l by default). f. New active mark and face feature: when enabled, it will highlight the text inserted by a bracketed paste (the `active region') and the text found by incremental and non-incremental history searches. This is tied to bracketed paste and can be disabled by turning off bracketed paste. g. Readline sets the mark in several additional commands. h. Bracketed paste mode is enabled by default. i. Readline tries to take advantage of the more regular structure of UTF-8 characters to identify the beginning and end of characters when moving through the line buffer. j. The bindable operate-and-get-next command (and its default bindings) are now part of readline instead of a bash-specific addition. k. The signal cleanup code now blocks SIGINT while processing after a SIGINT.
2020-12-25zsh: Do not hardcode /usr/pkg/pkgdbryoon3-6/+12
Bump PKGREVISION. TODO: _bsd_pkg should be usable for non-BSD platforms.
2020-12-04Revbump packages with a runtime Python dep but no version prefix.nia4-8/+8
For the Python 3.8 default switch.
2020-12-04zsh: Follow pkgdb migration to fix pkg_info(1) suggestion on NetBSDryoon3-2/+27
Bump PKGREVISION.
2020-11-29Update to 6.8.1. From the changelog:schmonz2-7/+7
- Fix build on musl-libc platforms (#49) - Default CFLAGS of -g -O2 if user didn't specify any - Fix a bug on Linux systems (#48) - Add an OKSH_VERSION variable that gives the user the oksh version (KSH_VERSION and SH_VERSION are still their original values) - Default to ST_MTIM when using --no-thanks - Allow some code to be commented out when not compiling with curses
2020-11-25pbosh: Update to 20201125micha2-8/+8
Changelog from AN-2020-11-04: - Makefile system: include/schily/nlsdefs.h no longer by default defines the macro __() because this is in conflict with definitions that are present in the system include files from newer HP-UX versions. Thanks to Rudi Blom for reporting. - Bourne Shell: If a background job did finish during an implicit wait for a foreground job, the exit code for the background job was lost. This was caused by a forgotten call to statjob(jp, &si, 0, 0) in the function waitjob(); Thanks to Koichi Nakashima for reporting. - Bourne Shell: The changes from 2020-10-09 to keep the exit code from jobs like "(sleep 10; exit 17)&" in the job list, caused a command like cat /etc/termcap |more to stop after the first page of output because "more" died from trying to read the answer for continuing the output as it was not in the current foreground process group from the tty. This was the result of a forgotten call to monitor = ismonitor(xflags); in xec.c - Bourne Shell: The changes from 2020-10-09 to keep the exit code from jobs like "(sleep 10; exit 17)&" could cause some wait commands to hang infinitely because the job list had an endless loop. The new code avoids to create the endless loop in the job list. Thanks to Koichi Nakashima for reporting. - Bourne Shell: The changes for jobcontrol in schily-2020-10-09 could. cause bosh to dump core with the builtin fg(1) command because "thisjob". was a NULL pointer. We add a new lastthisjob variable to work around this problem. Thanks for Noci Sonack for reporting. - bsh/Bourne Shell: str2sig() has been enhanced to support e.g. RTMIN+20 or RTMAX-20 as alias on platforms with 30 RT signals. Note that this currently only works on non-POSIX platforms like Linux where our private implementation is used. On Solaris, this would need to wait until compatibility to POSIX issue 8 has been implemented in the libc from Solaris. Changelog from AN-2020-11-25: - Makefile System: Added support for MacOS on arm64 Thanks to a hint from Ryan Schmidt from macports Note that due to outstanding replies to recent changes in configure, it could up to now not be verified that all configure tests now work in a way that results in correct overall results. See below for an in depth report on the changes. - Makefile System: autoconf (config.guess & config.sub) now supports the new arm64 Apple systems. Thanks to Ryan Schmidt from macports for provinding the needed uname(1) output. - Makefile System: Added a new shell script "autoconf/uname" that helps to create shell scrips that allow to emulate an alien host system in order to test the correct behavior of configure.guess and configure.sub on the main development platform. This helps to adapt configure.guess and configure.sub to new platforms in the future. - Makefile System: The new clang compiler as published with the upcomming ARM macs has been preconfigured with -Werror -Wimplicit-function-declaration as the default behavior and thus is in conflict with the existing base assumption of the autoconf system that minimalistic C-code used for compile/link allows to check for the existence of a specific function in libc without a need to know which system #include file is used to define a prototype for that function. This clang version, as a result of this default, behaves like a C++ compiler and aborts if a function is used with no previous function prototype. This caused most of the existing autoconf test to fail with error messages about missing prototypes. We implemented a workaround using these methods for the identified problems: - Most of the exit() calls in the various main() functions have been replaced by return() to avoid a need to #include <stdlib.h> in special since these test may be the case for layered tests that #include files from the higher level parts. - Many autoconf tests programs now #include more system include files, e.g. stdlib.h and unistd.h to avoid missing prototype errors. This cannot reliably be done in tests that are used as a base for higher level tests where the high level test #includes own system include files, since older platforms do not support to #include the same file twice. So this is tricky... - A test for a Linux glibc bug caused by incorect #pragma weak usage inside glibc that prevents one or more functions from ecvt()/fcvt()/gcvt() from being usable outside glibc now uses hand-written prototypes for some of the libc interface functions in order to avoid using the system includes. If we did not do that, we could not use ecvt()/fcvt()/gcvt() on MacOS anymore. Thanks to Ryan Schmidt from macports for reporting and for the given help that was needed for remote debugging. Please send the needed feedback on whether the current state of the configure script results on correct autoconf results on the M1 Macs.
2020-11-25bosh: Update to 20201125micha2-8/+8
Changelog from AN-2020-11-04: - Makefile system: include/schily/nlsdefs.h no longer by default defines the macro __() because this is in conflict with definitions that are present in the system include files from newer HP-UX versions. Thanks to Rudi Blom for reporting. - Bourne Shell: If a background job did finish during an implicit wait for a foreground job, the exit code for the background job was lost. This was caused by a forgotten call to statjob(jp, &si, 0, 0) in the function waitjob(); Thanks to Koichi Nakashima for reporting. - Bourne Shell: The changes from 2020-10-09 to keep the exit code from jobs like "(sleep 10; exit 17)&" in the job list, caused a command like cat /etc/termcap |more to stop after the first page of output because "more" died from trying to read the answer for continuing the output as it was not in the current foreground process group from the tty. This was the result of a forgotten call to monitor = ismonitor(xflags); in xec.c - Bourne Shell: The changes from 2020-10-09 to keep the exit code from jobs like "(sleep 10; exit 17)&" could cause some wait commands to hang infinitely because the job list had an endless loop. The new code avoids to create the endless loop in the job list. Thanks to Koichi Nakashima for reporting. - Bourne Shell: The changes for jobcontrol in schily-2020-10-09 could. cause bosh to dump core with the builtin fg(1) command because "thisjob". was a NULL pointer. We add a new lastthisjob variable to work around this problem. Thanks for Noci Sonack for reporting. - bsh/Bourne Shell: str2sig() has been enhanced to support e.g. RTMIN+20 or RTMAX-20 as alias on platforms with 30 RT signals. Note that this currently only works on non-POSIX platforms like Linux where our private implementation is used. On Solaris, this would need to wait until compatibility to POSIX issue 8 has been implemented in the libc from Solaris. Changelog from AN-2020-11-25: - Makefile System: Added support for MacOS on arm64 Thanks to a hint from Ryan Schmidt from macports Note that due to outstanding replies to recent changes in configure, it could up to now not be verified that all configure tests now work in a way that results in correct overall results. See below for an in depth report on the changes. - Makefile System: autoconf (config.guess & config.sub) now supports the new arm64 Apple systems. Thanks to Ryan Schmidt from macports for provinding the needed uname(1) output. - Makefile System: Added a new shell script "autoconf/uname" that helps to create shell scrips that allow to emulate an alien host system in order to test the correct behavior of configure.guess and configure.sub on the main development platform. This helps to adapt configure.guess and configure.sub to new platforms in the future. - Makefile System: The new clang compiler as published with the upcomming ARM macs has been preconfigured with -Werror -Wimplicit-function-declaration as the default behavior and thus is in conflict with the existing base assumption of the autoconf system that minimalistic C-code used for compile/link allows to check for the existence of a specific function in libc without a need to know which system #include file is used to define a prototype for that function. This clang version, as a result of this default, behaves like a C++ compiler and aborts if a function is used with no previous function prototype. This caused most of the existing autoconf test to fail with error messages about missing prototypes. We implemented a workaround using these methods for the identified problems: - Most of the exit() calls in the various main() functions have been replaced by return() to avoid a need to #include <stdlib.h> in special since these test may be the case for layered tests that #include files from the higher level parts. - Many autoconf tests programs now #include more system include files, e.g. stdlib.h and unistd.h to avoid missing prototype errors. This cannot reliably be done in tests that are used as a base for higher level tests where the high level test #includes own system include files, since older platforms do not support to #include the same file twice. So this is tricky... - A test for a Linux glibc bug caused by incorect #pragma weak usage inside glibc that prevents one or more functions from ecvt()/fcvt()/gcvt() from being usable outside glibc now uses hand-written prototypes for some of the libc interface functions in order to avoid using the system includes. If we did not do that, we could not use ecvt()/fcvt()/gcvt() on MacOS anymore. Thanks to Ryan Schmidt from macports for reporting and for the given help that was needed for remote debugging. Please send the needed feedback on whether the current state of the configure script results on correct autoconf results on the M1 Macs.
2020-10-26Update to 6.7.1. From the git log:schmonz2-12/+7
- Solaris has a function named sig2str. Rename ours oksh_sig2str. - Pull in latest upstream code, which is #43 from Michael Forney. - Make BINDIR and MANDIR actually depend on PREFIX. - Variables have $'s. - Older Linux has clock_gettime in librt; check for that. - configure: improve clock_gettime diagnostic messages. - HP-UX support. - Add --enable-lto for those who want link-time optimization. - Update to latest OpenBSD code. - Make cross compiling a real possibility, with instructions. - Fix typo. - For loop initial declarations is a better C99 check for older gcc. - Update from OpenBSD. - Separate out compilation and linking in configure tests. - Only add -std=gnu99 if using --no-thanks. - If using --no-thanks and you didn't specify the environment - --no-thanks isn't just for cross compiling - Default to ST_MTIM when using --no-thanks
2020-10-26Use archive.org for HOMEPAGE.schmonz1-2/+2
2020-10-23shells/pbosh: Update to 20201009micha2-8/+8
New features with AN-2020-09-04: - autoconf: congig.guess: FreeBSD on 64 bit ARM returns arm64 from uname -m; this was previously not supported and rejected by config.sub. We now convert "arm64" into "aarch64" in config.guess to get the usual expected results. - Makefile system: RULES/rules.env The environment variables FIGNORE, LD_LIBRARY_PATH LD_LIBRARY_PATH_32 and LD_LIBRARY_PATH_64 are now unexported from the enviroment. In special FIGNORE is dangerous, as it is frequently used by bash users but tells ksh93 to modify it's behavior with "echo *" and this may cause strange things with our makefiles in case that /bin/sh is ksh92. This applies e.g. to Oracle Solaris 11 and OpenSolaris. - Bourne Shell: added $(RM) -f $(DEST_DIR)$(INSBASE)/xpg4/bin/bosh to the Makefile in the commands before creating the symlink xpg4/bin/bosh to bosh to permit to call "make install" more than once without causing an error. - Bourne Shell: version.h now contains a new version date. New features with AN-2020-10-09: - autoconf: Added support for newer HP-UX versions on Itanium. Thanks to Rudi Blom for reporting and making a change proposal. - Bourne Shell: The "wait" builtin is now POSIX compliant and returns 127 in $? in case that a process id to be waited for does not exist. - Bourne Shell: The exit code retrieved by $/ no longer is masked by 0xFF when this code originates from a wait(1) call. Thanks to Koichi Nakashima for reporting - Bourne Shell: The man page has been enhanced for a better description of the exit code constraitns. Thanks to Koichi Nakashima for reporting - Bourne Shell: The exit code from background jobs is now kept until the builtin wait(1) is called. Note that this introduces the need to call "wait" from time to time in order to free shell job management resources. Thanks to Koichi Nakashima for reporting - Bourne Shell: The changes to keep exit codes for background jobs caused problems that triggered a SIGSEGV in the shell with jobs like: (sleep 10; exit 17)& This needed a restructuring in the job management implementation. - Bourne Shell: Since the next POSIX standard will make it optional whether sig2str() and str2sig() deal with entries for "EXIT" / 0, we enhanced the trap2str() and str2trap() interfaces to handle "EXIT" / 0 and now call these functions before sig2str() and str2sig(). - Bourne Shell: a new version date has been created.
2020-10-23shells/bosh: Update to 20201009micha2-8/+8
New features with AN-2020-09-04: - autoconf: congig.guess: FreeBSD on 64 bit ARM returns arm64 from uname -m; this was previously not supported and rejected by config.sub. We now convert "arm64" into "aarch64" in config.guess to get the usual expected results. - Makefile system: RULES/rules.env The environment variables FIGNORE, LD_LIBRARY_PATH LD_LIBRARY_PATH_32 and LD_LIBRARY_PATH_64 are now unexported from the enviroment. In special FIGNORE is dangerous, as it is frequently used by bash users but tells ksh93 to modify it's behavior with "echo *" and this may cause strange things with our makefiles in case that /bin/sh is ksh92. This applies e.g. to Oracle Solaris 11 and OpenSolaris. - Bourne Shell: added $(RM) -f $(DEST_DIR)$(INSBASE)/xpg4/bin/bosh to the Makefile in the commands before creating the symlink xpg4/bin/bosh to bosh to permit to call "make install" more than once without causing an error. - Bourne Shell: version.h now contains a new version date. New features with AN-2020-10-09: - autoconf: Added support for newer HP-UX versions on Itanium. Thanks to Rudi Blom for reporting and making a change proposal. - Bourne Shell: The "wait" builtin is now POSIX compliant and returns 127 in $? in case that a process id to be waited for does not exist. - Bourne Shell: The exit code retrieved by $/ no longer is masked by 0xFF when this code originates from a wait(1) call. Thanks to Koichi Nakashima for reporting - Bourne Shell: The man page has been enhanced for a better description of the exit code constraitns. Thanks to Koichi Nakashima for reporting - Bourne Shell: The exit code from background jobs is now kept until the builtin wait(1) is called. Note that this introduces the need to call "wait" from time to time in order to free shell job management resources. Thanks to Koichi Nakashima for reporting - Bourne Shell: The changes to keep exit codes for background jobs caused problems that triggered a SIGSEGV in the shell with jobs like: (sleep 10; exit 17)& This needed a restructuring in the job management implementation. - Bourne Shell: Since the next POSIX standard will make it optional whether sig2str() and str2sig() deal with entries for "EXIT" / 0, we enhanced the trap2str() and str2trap() interfaces to handle "EXIT" / 0 and now call these functions before sig2str() and str2sig(). - Bourne Shell: a new version date has been created.
2020-10-14shellcheck: add $HOMEPAGEgutteridge1-1/+2
2020-10-13shells: Add shellcheck.jperkin1-1/+2
2020-10-13shellcheck: Import version 0.7.1.jperkin3-0/+38
ShellCheck is a GPLv3 tool that gives warnings and suggestions for bash/sh shell scripts. The goals of ShellCheck are: * To point out and clarify typical beginner's syntax issues that cause a shell to give cryptic error messages. * To point out and clarify typical intermediate level semantic problems that cause a shell to behave strangely and counter-intuitively. * To point out subtle caveats, corner cases and pitfalls that may cause an advanced user's otherwise working script to fail under future circumstances.
2020-09-28shells/pbosh: Specify minimum required version of smake tool dependencymicha1-2/+2
This is required because devel/smake/Makefile.common must be recent enough.
2020-09-28shells/bosh: Specify minimum required version of smake tool dependencymicha1-2/+2
This is required because devel/smake/Makefile.common must be recent enough.
2020-09-08*: use MASTER_SITE_PERL_CPANwiz1-2/+2
2020-09-02Use http with ftp.funet.fikim1-2/+2
2020-08-31*: bump PKGREVISION for perl-5.32.wiz3-5/+6
2020-08-26shells/pbosh: Update to 20200812micha2-8/+8
New features with AN-2020-07-18: - Bourne Shell: A new symlink from /opt/schily/xpg4/bin/bosh to /opt/schily/xpg4/bin/sh is created when "smake install" is called. This helps people to call "bosh" in strict POSIX mode using the command line name "bosh" by putting /opt/schily/xpg4/bin in PATH before /opt/schily/bin, where the bosh implements better backwards cmpatibility to the Bourne Shell by default than a strictly POSIX compliant bosh would do. /opt/schily/xpg4/bin/bosh behaves the same as "/opt/schily/bin/bosh -o posix". Thanks to Koichi Nakashima for reporting. New features with AN-2020-08-12: - autoconf: added a new test for the existence of <sys/auxv.h> - autoconf: added new tests for Linux getauxval() and FreeBSD elf_aux_info() - libschily: getexecpath.c now uses getauxval() on Linux and elf_aux_info() on FreeBSD. This was needed since readlink("/proc/curproc/file") on FreeBSD returns random values for hardlinked files, making it impossible to use the result in order to find out which behavior variant of a fat binary is requested. - Bourne Shell: Several #ifdef SIG* have been added to make it compile on older UNIX versions. Thanks to a hint from Albert Wik.
2020-08-26shells/bosh: Update to 20200812micha2-8/+8
New features with AN-2020-07-18: - Bourne Shell: A new symlink from /opt/schily/xpg4/bin/bosh to /opt/schily/xpg4/bin/sh is created when "smake install" is called. This helps people to call "bosh" in strict POSIX mode using the command line name "bosh" by putting /opt/schily/xpg4/bin in PATH before /opt/schily/bin, where the bosh implements better backwards cmpatibility to the Bourne Shell by default than a strictly POSIX compliant bosh would do. /opt/schily/xpg4/bin/bosh behaves the same as "/opt/schily/bin/bosh -o posix". Thanks to Koichi Nakashima for reporting. New features with AN-2020-08-12: - autoconf: added a new test for the existence of <sys/auxv.h> - autoconf: added new tests for Linux getauxval() and FreeBSD elf_aux_info() - libschily: getexecpath.c now uses getauxval() on Linux and elf_aux_info() on FreeBSD. This was needed since readlink("/proc/curproc/file") on FreeBSD returns random values for hardlinked files, making it impossible to use the result in order to find out which behavior variant of a fat binary is requested. - Bourne Shell: Several #ifdef SIG* have been added to make it compile on older UNIX versions. Thanks to a hint from Albert Wik.
2020-08-17*: revbump after fontconfig bl3 changes (libuuid removal)leot1-2/+2
2020-08-03mksh: add a CHECK_PORTABILITY_SKIP with a commenttnn1-1/+5
2020-08-03undo previous. Apparently one doesn't patch this in the normal way.tnn1-42/+0
2020-08-03mksh: remove double bracketstnn1-0/+42
2020-07-17shells/pbosh: Update to 20200701micha2-9/+9
Take maintainership. Changelog from AN-2020-07-01: - Bourne Shell: A command like bosh -c 'var=$({ echo value >&3; } 3>&1); echo $var' Did not print "value" as expected, but rather bosh: 3: bad file number This is related to the fact that curly brackets do not have an own binary node type in the parsed output and the recursive parser from the $(cmd) execution needs to reconstruct the text form of a command tree. As a result, the command has been translated into: bosh -c 'var=$( echo value >&3 3>&1); echo $var' and this caused the observed problem. Note that this basic problem may not be finally fixed, so please report in case that other commands with curly brackets together with $(cmd) cause problems. Thanks to Koichi Nakashima for reporting.
2020-07-17shells/bosh: Update to 20200701micha2-9/+9
Take maintainership. Changelog from AN-2020-07-01: - Bourne Shell: A command like bosh -c 'var=$({ echo value >&3; } 3>&1); echo $var' Did not print "value" as expected, but rather bosh: 3: bad file number This is related to the fact that curly brackets do not have an own binary node type in the parsed output and the recursive parser from the $(cmd) execution needs to reconstruct the text form of a command tree. As a result, the command has been translated into: bosh -c 'var=$( echo value >&3 3>&1); echo $var' and this caused the observed problem. Note that this basic problem may not be finally fixed, so please report in case that other commands with curly brackets together with $(cmd) cause problems. Thanks to Koichi Nakashima for reporting. - Bourne Shell: Added a unit test for the bug above.
2020-07-14fix static build on NetBSDchristos2-1/+22
2020-07-10Add bash patch bash50-018 -- updates bash to 5.0.18(1)-releasekre2-4/+8
This fixes: In certain cases, bash does not perform quoted null removal on patterns that are used as part of word expansions such as ${parameter##pattern}, so empty patterns are treated as non-empty
2020-07-10mksh: Don't set PKG_SHELL when used for bootstrap.jperkin1-16/+26
This can cause circular problems where the +INSTALL script requires the shell itself, but also avoids issues trying to add to /etc/shells during bootstrap where it may not be appropriate, or done outside of the context of where the bootstrap tarball will finally be installed. Users who use mksh as a bootstrap shell can simply add to /etc/shells manually after installing or extracting the bootstrap as required. While here remove unnecessary extra indents.
2020-07-08define SYSMALLOC on netbsd. fixes standalone-tcsh link, which pulledmrg2-6/+16
in libc malloc as well as tcsh malloc, and failed. ok christos@
2020-07-07fish: Pull in libatomic with gcc for e.g. powerpcnia1-1/+4
2020-07-06mksh: Import unpacked mksh-59b sources.jperkin37-17/+62413
Two patches have been applied on top, both of which are stored in the patches directory as manual-Build.sh and manual-funcs.c, to fix issues on Darwin and SunOS that will be included in the next mksh release. The binary mksh.ico file has been manually removed. This paves the way for mksh to be used as an alternate bootstrap shell instead of shells/pdksh, which has been unmaintained for many years and has some known issues. Initial bulk build results on Darwin and SunOS look good, and having a maintained shell which focuses on portability and speed should provide us with a better long-term option for systems which require a bootstrap shell.