Releases
2.12.0
2.12.0 (2024-02-21)
Features
_comp_backup_glob: add ucf
generated backup files (351be1c )
_comp_backup_glob: require dash in dpkg backup files (59a57f9 )
comp_compgen {filedir,set}: define exit status (7920c9d )
_comp_compgen_commands: align return value with other compgens (9d3362e )
_comp_compgen_commands: auto set -o filenames
when appropriate (4d4839e )
_comp_compgen_commands: include dirs (b9c7b5d )
_comp_compgen_known_hosts: return 2 on usage error (43bb8f0 )
_comp_compgen: support -i cmd
and -x cmd
(39cc200 )
_comp_compgen: support -U var
to unlocal var (b603535 )
_comp_compgen: support option -C (6b3dfa5 )
_comp_expand_glob: fail when no paths are generated (6b0a466 )
_comp_get_fist_arg: support "-o GLOB" to skip optargs (0f14cc0 )
_ip_addresses: auto ltrim colon completions when appropriate (ccdf953 )
add _comp_compgen_split (542bf73 )
add _comp_locate_first_arg
(0384bd5 )
airflow: add fallback 3rd party completion loader (bf5550b )
ansible : * add fallback 3rd party completion loader (5f8384e )
apt-get: prefer apt-cache
in same dir as command (a731bfd )
b2sum: new completion (cd985df )
bash_completion: add function _comp_compgen_ltrim_colon (ce5889b )
black,blackd: add fallback 3rd party completion loader (47a1f05 )
carton: support exec command completions (0eb3a21 )
chezmoi: add 3rd-party completion loader (cobra) (31baa69 )
conda: add 3rd-party completion loader (argcomplete) (c0f5ba2 )
crc: add 3rd-party completion loader (cobra) (f10866e )
cz: add fallback 3rd party completion loader (b7ba70e )
dot: support filename extension .gv (be0010e )
dprint: add fallback 3rd party completion loader (e201e0e )
eog: add missing extension .heif (9e4a48f )
eog: associate with *.avif
and *.webp
(#1005 ) (f1c04b8 )
eog: associate with *.heic
and *.jxl
(20c9cea )
eog: associate with *.pbm
(#1006 ) (5472cc1 )
feh: associate with y4m and heic/heif/avif (e252c73 )
feh: deassociate with avci/avcs (af46f34 )
flask: add fallback 3rd party completion loader (3e0d00d )
hash: new completion (#1013 ) (4d0bffb )
httpx: add fallback 3rd party completion loader (3f4861c )
ip: Add completion for monitor subcommand (fa696e6 )
jungle: add fallback 3rd-party completion loader (c69845a )
keyring: add fallback 3rd party completion loader (8082602 )
kontena: add fallback 3rd-party completion loader (5eef0ce )
lefthook: add fallback 3rd party completion loader (dc9650e )
mailman: prefer list_lists
in same dir as command (a46ccf1 )
mysql: prefer mysqlshow
from same dir (643886c )
no empty command completion if no_empty_cmd_completion
is on (faab292 )
npm: add fallback 3rd-party completion loader (f1c085c )
nvm: add fallback 3rd-party completion loader (dea7e1d )
oc: add 3rd-party completion loader (cobra) (26b5f09 )
pip{,3}: add fallback 3rd-party completion loader (e3cbfba )
pipenv: add fallback 3rd party completion loader (#1020 ) (6ecf5bd )
pytest: complete new --import-mode value (#1021 ) (2d636a3 )
rtx: add fallback 3rd party completion loader (0628e22 )
scp,sftp: prefer ssh
from same dir to resolve options etc (d55f5e6 )
ssh-copy-id,ssh-keygen: prefer ssh
from same dir (5c1d270 )
ssh-inscribe: add fallback 3rd party completion loader (7f2c197 )
ssh: complete RequiredRSASize (#1064 ) (de15205 )
tkn-pac: add 3rd-party completion loader (cobra) (d0f2604 )
tkn: add 3rd-party completion loader (cobra) (161fc5d )
xrandr: comma separated --setmonitor
third argument (8a76f3d )
Bug Fixes
__load_completion: quoted compspec for variants (#1008 ) (0a2443e )
_cd_devices: /dev/cdc-*
CDC device false positives (5250728 )
_comp__init_set_up_service_completions: work around failglob (2529d40 )
comp {first_arg,count_args}: count - as argument (e23a79e )
comp {first_arg,count_args}: count any arguments after -- (9bfd760 )
_comp_command_offset: Support complete -C (80450ca )
_comp_compgen_fstypes: avoid unexpected expansions (a856d81 )
_comp_compgen_help: allow dots to connect names in longopt (79dadfc )
_comp_compgen_known_hosts: work around bash-4.2 nounset (d2860cb )
_comp_compgen_split: work around nounset (f488f96 )
_comp_compgen_term: replace completions by default (d3696a3 )
_comp_compgen_usergroup: avoid directly overwriting COMPREPLY (d380498 )
_comp_compgen: do not inherit -a for explicitly specified var (3c20766 )
_comp_compgen: explicitly exclude cur
from the target variable (5fe98f3 )
_comp_count_args: check optarg correctly (874c503 )
_comp_count_args: exclude <>& from wordbreaks as _comp_initialize (521d2bb )
_comp_count_args: ignore empty $3 (76eea74 )
_comp_count_args: perform optarg check also on $3 (21d3122 )
_comp_count_args: skip reassembling cword and words (3127703 )
_comp_delimited: treat delimiter as a fixed string (571a0f7 )
_comp_deprecate_func: argument order in usage error message (597f62f )
_comp_get_words: empty prev if unavailable (localvar_inherit) (d8b8eef )
_comp_initialize: fix completions of redirections without space (da16bf6 )
_comp_initialize: protect against "localvar_inherit" (0cc8d83 )
_comp_split,_comp_compgen: strip periods from error message (b3b6a7c )
_comp_split: update error message for the correct options (3c4a89c )
_comp_sysvdirs: work around nounset (da26178 )
_filedir_xspec: clean up unused variable tmp
(67f1189 )
_get_cword_at_cursor,cvs: quote array length (201239c )
_get_first_arg: remove invalid doccomment (eb40f56 )
_known_hosts: use array for options
(work around SC2178,SC2179) (743d0a9 )
_mock,rpm: avoid icase flag s/reg/rep/i
of GNU sed (33c18ce )
_service: quote word (c2d7fb7 )
_slackpkg: do not scan after cword (ecd1384 )
7z: remove redundant printf '%s\n' "..."
(20c2e32 )
ant: work around custom IFS (584e567 )
apt-cache: check all the words (84cfeda )
aptitude: do not use non-POSIX BRE \w (cd8c870 )
aspell: use _comp_expand_glob
against unexpected splitting (58d5176 )
bash_completion: remove some unnecessary -a
to _comp_compgen
(636bb7c )
bts: update functions to generators and fix variable conflicts (7d2867c )
carton: remove a branch never happening (cd063f9 )
chgrp: fix typo _comp_compgen{d => _}filedir
(#1063 ) (4c98ce5 )
compat: find compat dir for prefix-install (b6d06bc )
completions/*: quote array assignments properly (848aa41 )
completions/*: scan until cword instead of ${#words[@]}-1 (17e0cc3 )
completions/*: work around localvar_inherit (e3a871d )
curl,koji: use _comp_compgen_help (f37f221 )
curl,qemu: avoid using POSIX character classes for mawk (d60c530 )
curl: colon handling for IPv6 address completions (8508d1d )
cvs,mutt,pkg_delete: quote prefix to remove for literal matching (533903e )
cvs: avoid variable conflicts (0d145c9 )
dict: nounset error when host/port not set (57191e2 )
dict: protect splitting from custom IFS (b31fe1e )
dict: work around bash-4.2 array nounset (d76dd9e )
dict: work around bash-4.3 ${v+"$ @"} with custom IFS (cc21298 )
dmypy: protect against "localvar_inherit" (768ce65 )
dpkg-source: filter completions by cur
(dbcef6e )
filedir: work around bash-4.2 compgen -f -- "''"
(c8bb123 )
fix problems with set -o nounset
(9c3e196 )
gdb: fix regression that fails to generate command names (ca8e240 )
gdb: remove duplicate candidates (532fc05 )
gdb: use POSIX-compatible find expression (73938cd )
gdb: work around bash 4.4 ${v+"$ @"} (41236da )
get_words: work around bash-4.3 connected ${v+"$ @"} (81affbd )
getent: check noargopts (6143f25 )
getent: work around localvar_inherit (a12f438 )
gzip,isort: fix typo _comp_com{gp => pg}en
(462feb3 )
iperf,puppet: use {m,n} instead of ? and + for POSIX sed (3f0322b )
iperf: work around failglob with backslash in bash-5.0 (979f04f )
ip: Remove non-existent route completion (3b9ce4d )
isql: work around nounset (cb7007a )
java,kldload: use _comp_compgen
for filename-based mod names (81adc6c )
java: localize cur
(ec0068d )
kcov,povray: quote array expansions to avoid extra processing (215edab )
kldload,mplayer,mutt: work around nounset (5330fbe )
kldunload: remove unused -X option (35017d2 )
known_hosts_real: match *.pub
instead of *pub
(470a644 )
known_hosts_real: use _comp_expand_glob
to avoid failglob (672215e )
known_hosts_real: work around nounset (07c619a )
lilo,rpcdebug,slapt-{get,src}: work around nounset (cfc3eda )
lvm: replace array slices with existing utility (ea49840 )
lvm: update call to sub-command (30494f7 )
make: handle multiple short options in skipping arguments (24c80c9 )
make: typo fix in a code comment (e72cc82 )
mdadm,update-alternatives: fix leak variable (14cd53b )
medusa: filter completions by the current word cur
(f3ae706 )
mr: avoid ${var/pat/$ '...'} for compat42 in bash >= 4.3 (b5ae5fa )
mr: exactly match command names (800b103 )
mutt: avoid unexpected word splitting (3183e67 )
mutt: fix use of regex in the glob context (63924e6 )
mutt: rewrite ${cur/#!/X} to X${cur:1} against patsub_replacement (6b8f82b )
mutt: use _comp_dequote for safe eval (f98379d )
openssl: avoid variable conflicts (a31906c )
openssl: fix variable i
leak (83844b7 )
perl: fix ineffective condition in an awk script (302dc52 )
perl: helper call regression from 01611dd (b85263a )
pgrep: do not rely on uncontrolled IFS (99e38b2 )
portinstall: use awk and _comp_compgen to filter completions (791f56c )
povray,sbopkg: check filetype (434eb08 )
povray: process each element against patsub_replacement (0afc2e4 )
povray: quote an argument properly (0a240bd )
ps,ss: avoid extra expansions by -W "$(...)" in _comp_delimited (cb347cb )
pydoc: specify -a to _comp_compgen_filedir (34a91e9 )
pytest: do not filter underscores from parsed option arg choices (ea13241 )
python: avoid variable conflicts (bef94c3 )
python: complete filenames for script arguments (#1018 ) (397a49d )
python: complete micropython and pyston script args consistently (5b60ccc )
qdbus: remove cur and all the rest arguments (531b751 )
replace \s with [[:space:]] for POSIX sed/awk (1989ba9 )
ri: avoid interference on existing COMPREPLY (0a9d931 )
ri: fix wrongly quoted options to compgen (5248bbf )
ri: properly split methods (910a5a0 )
ri: split classes using _comp_split
(c95baa1 )
ri: work around localvar_inherit (9d6ff68 )
sbopkg: add ;
mandatory before }
in POSIX sed (b286d53 )
sbopkg: work around nounset (9709bdf )
scp: nounset
mode error on unknown suboption, bash 4.2 (82ca8d9 )
ssh-copy-id: call ssh, not -copy-id for suboption completion check (473278f )
ssh-keygen: call ssh, not -keygen to resolve supported protocols (d569ea2 )
ssh-keygen: first arg to ssh query for protocol versions (8a0a71e )
ssh: avoid variable conflicts (f2df91d )
ssh: fix wrong quoting inside compgen -W (febb3b3 )
ssh: remove -a of generators (55c5c45 )
ssh: remove unnecessary -a to _comp_compgen (992f28e )
ssh: resolve relative ssh_config Include correctly (4ac86e8 )
ssh: use _comp_compgen
for _comp_xfunc_ssh_identityfile
(05e70ed )
ssh: work around bash-4.2 nounset (4447f83 )
ssh: work around bash-4.2 nounset (d0695d0 )
sudo: use $1 (sudo) as $root_command (329ca0e )
svcadm: fix ineffective IFS for splitting (1fd456e )
svcadm: use the first matching name as command (1870d5e )
sysbench: fix extraction of test-name option (cc246a1 )
timeout: always treat word after duration as command (0d0531b )
tipc: remove filtered-out elements (75b36b2 )
update-alternatives: quote dirname (1205ed1 )
update-alternatives: suppress error for non-existent directory (adbdab8 )
update-alternatives: work around localvar_inherit (1d9e19c )
upgradepkg: use _comp_compgen
for _comp_cmd_upgradepkg
(a0973d7 )
use _comp_compgen_split to avoid extra expansions by -W "$(...)" (49997d0 )
use _comp_compgen_split
to split and filter words (158b8ba )
use _comp_compgen_split
while keeping filtering by $cur (a00ee19 )
use _comp_compgen
for word list (83f033f )
use _comp_split
while keeping filtering by $cur (509e642 )
use compgen -P prefix -W '"${arr[@]}"' against patsub_replacement (45d036a )
use XPG4 awk in Solaris (cdd6da9 )
wol: filter IP addresses by cur
(c3505c5 )
wtf: quote array assignment (44c1d12 )
xfreerdp: support the new form of the option /list:kbd (d8cadfe )
xfunc ssh identityfile: localize change to cur (76b5726 )
Performance Improvements
_comp_count_args: skip reinitializing cword and words (29398ef )
mutt: return earlier on empty cur
(a244587 )
portinstall: return earlier for -lLo and non-existent file (395e463 )
vncviewer: set nocasematch inside subshell (5ed0020 )
You can’t perform that action at this time.