Releases


2.13.0	2024-04-03

Features

- curl: Complete protocols for --proto-default
- ip: Add completion for netconf subcommand
- ip: Complete commands for netns exec
- ip: Complete help for unknown subcommands
- ip: Complete ip link property
- ip: Complete link types for address show
- ip: Complete neigh show and flush
- ip: Complete stats subcommand
- ip: Create function to get link types
- rg: add fallback 3rd party completion loader
- xmllint,xmlwf: also suggest *.rss files

Bug Fixes

- available_interfaces: fix regression of unwanted trailing colons
- ip: Complete addrlabel add/del properties
- ip: Complete ip delete with type correctly
- ip: Complete more variations of subcommands
- ip: Complete netns attach subcommand
- ip: Complete only relevant addrlabel subcmds
- ip: Keep completing after -netns name
- ip: Quote all instantiation of ip as "$1"
- ip: Quote network namespace names
- Makefile: include api-and-naming.md in dist


2.12.0	2024-02-21

Features

- _comp_backup_glob: add `ucf` generated backup files
- _comp_backup_glob: require dash in dpkg backup files
- _comp_compgen_{filedir,set}: define exit status
- _comp_compgen_commands: align return value with other compgens
- _comp_compgen_commands: auto set `-o filenames` when appropriate
- _comp_compgen_commands: include dirs
- _comp_compgen_known_hosts: return 2 on usage error
- _comp_compgen: support `-i cmd` and `-x cmd`
- _comp_compgen: support `-U var` to unlocal var
- _comp_compgen: support option -C
- _comp_expand_glob: fail when no paths are generated
- _comp_get_fist_arg: support "-o GLOB" to skip optargs
- _ip_addresses: auto ltrim colon completions when appropriate
- add _comp_compgen_split
- add `_comp_locate_first_arg`
- airflow: add fallback 3rd party completion loader
- ansible*: add fallback 3rd party completion loader
- apt-get: prefer `apt-cache` in same dir as command
- b2sum: new completion
- bash_completion: add function _comp_compgen_ltrim_colon
- black,blackd: add fallback 3rd party completion loader
- carton: support exec command completions
- chezmoi: add 3rd-party completion loader (cobra)
- conda: add 3rd-party completion loader (argcomplete)
- crc: add 3rd-party completion loader (cobra)
- cz: add fallback 3rd party completion loader
- dot: support filename extension .gv
- dprint: add fallback 3rd party completion loader
- eog: add missing extension .heif
- eog: associate with `*.avif` and `*.webp` ([#1005](https://github.com/scop/bash-completion/issues/1005))
- eog: associate with `*.heic` and `*.jxl`
- eog: associate with `*.pbm` ([#1006](https://github.com/scop/bash-completion/issues/1006))
- feh: associate with y4m and heic/heif/avif
- feh: deassociate with avci/avcs
- flask: add fallback 3rd party completion loader
- hash: new completion ([#1013](https://github.com/scop/bash-completion/issues/1013))
- httpx: add fallback 3rd party completion loader
- ip: Add completion for monitor subcommand
- jungle: add fallback 3rd-party completion loader
- keyring: add fallback 3rd party completion loader
- kontena: add fallback 3rd-party completion loader
- lefthook: add fallback 3rd party completion loader
- mailman: prefer `list_lists` in same dir as command
- mysql: prefer `mysqlshow` from same dir
- no empty command completion if `no_empty_cmd_completion` is on
- npm: add fallback 3rd-party completion loader
- nvm: add fallback 3rd-party completion loader
- oc: add 3rd-party completion loader (cobra)
- pip{,3}: add fallback 3rd-party completion loader
- pipenv: add fallback 3rd party completion loader ([#1020](https://github.com/scop/bash-completion/issues/1020))
- pytest: complete new --import-mode value ([#1021](https://github.com/scop/bash-completion/issues/1021))
- rtx: add fallback 3rd party completion loader
- scp,sftp: prefer `ssh` from same dir to resolve options etc
- ssh-copy-id,ssh-keygen: prefer `ssh` from same dir
- ssh-inscribe: add fallback 3rd party completion loader
- ssh: complete RequiredRSASize ([#1064](https://github.com/scop/bash-completion/issues/1064))
- tkn-pac: add 3rd-party completion loader (cobra)
- tkn: add 3rd-party completion loader (cobra)
- xrandr: comma separated `--setmonitor` third argument

Bug Fixes

- __load_completion: quoted compspec for variants ([#1008](https://github.com/scop/bash-completion/issues/1008))
- _cd_devices: `/dev/cdc-*` CDC device false positives
- _comp__init_set_up_service_completions: work around failglob
- _comp_{first_arg,count_args}: count - as argument
- _comp_{first_arg,count_args}: count any arguments after --
- _comp_command_offset: Support complete -C
- _comp_compgen_fstypes: avoid unexpected expansions
- _comp_compgen_help: allow dots to connect names in longopt
- _comp_compgen_known_hosts: work around bash-4.2 nounset
- _comp_compgen_split: work around nounset
- _comp_compgen_term: replace completions by default
- _comp_compgen_usergroup: avoid directly overwriting COMPREPLY
- _comp_compgen: do not inherit -a for explicitly specified var
- _comp_compgen: explicitly exclude `cur` from the target variable
- _comp_count_args: check optarg correctly
- _comp_count_args: exclude &lt;&gt;& from wordbreaks as _comp_initialize
- _comp_count_args: ignore empty $3
- _comp_count_args: perform optarg check also on $3
- _comp_count_args: skip reassembling cword and words
- _comp_delimited: treat delimiter as a fixed string
- _comp_deprecate_func: argument order in usage error message
- _comp_get_words: empty prev if unavailable (localvar_inherit)
- _comp_initialize: fix completions of redirections without space
- _comp_initialize: protect against "localvar_inherit"
- _comp_split,_comp_compgen: strip periods from error message
- _comp_split: update error message for the correct options
- _comp_sysvdirs: work around nounset
- _filedir_xspec: clean up unused variable `tmp`
- _get_cword_at_cursor,cvs: quote array length
- _get_first_arg: remove invalid doccomment
- _known_hosts: use array for `options` (work around SC2178,SC2179)
- _mock,rpm: avoid icase flag `s/reg/rep/i` of GNU sed
- _service: quote word
- _slackpkg: do not scan after cword
- 7z: remove redundant `printf '%s\n' "..."`
- ant: work around custom IFS
- apt-cache: check all the words
- aptitude: do not use non-POSIX BRE \w
- aspell: use `_comp_expand_glob` against unexpected splitting
- bash_completion: remove some unnecessary `-a` to `_comp_compgen`
- bts: update functions to generators and fix variable conflicts
- carton: remove a branch never happening
- chgrp: fix typo `_comp_compgen{d  =&gt; _}filedir` ([#1063](https://github.com/scop/bash-completion/issues/1063))
- compat: find compat dir for prefix-install
- completions/*: quote array assignments properly
- completions/*: scan until cword instead of ${#words[@]}-1
- completions/*: work around localvar_inherit
- curl,koji: use _comp_compgen_help
- curl,qemu: avoid using POSIX character classes for mawk
- curl: colon handling for IPv6 address completions
- cvs,mutt,pkg_delete: quote prefix to remove for literal matching
- cvs: avoid variable conflicts
- dict: nounset error when host/port not set
- dict: protect splitting from custom IFS
- dict: work around bash-4.2 array nounset
- dict: work around bash-4.3 ${v+"$@"} with custom IFS
- dmypy: protect against "localvar_inherit"
- dpkg-source: filter completions by `cur`
- filedir: work around bash-4.2 `compgen -f -- "''"`
- fix problems with `set -o nounset`
- gdb: fix regression that fails to generate command names
- gdb: remove duplicate candidates
- gdb: use POSIX-compatible find expression
- gdb: work around bash 4.4 ${v+"$@"}
- get_words: work around bash-4.3 connected ${v+"$@"}
- getent: check noargopts
- getent: work around localvar_inherit
- gzip,isort: fix typo `_comp_com{gp =&gt; pg}en`
- iperf,puppet: use \{m,n\} instead of \? and \+ for POSIX sed
- iperf: work around failglob with backslash in bash-5.0
- ip: Remove non-existent route completion
- isql: work around nounset
- java,kldload: use `_comp_compgen` for filename-based mod names
- java: localize `cur`
- kcov,povray: quote array expansions to avoid extra processing
- kldload,mplayer,mutt: work around nounset
- kldunload: remove unused -X option
- known_hosts_real: match `*.pub` instead of `*pub`
- known_hosts_real: use `_comp_expand_glob` to avoid failglob
- known_hosts_real: work around nounset
- lilo,rpcdebug,slapt-{get,src}: work around nounset
- lvm: replace array slices with existing utility
- lvm: update call to sub-command
- make: handle multiple short options in skipping arguments
- make: typo fix in a code comment
- mdadm,update-alternatives: fix leak variable
- medusa: filter completions by the current word `cur`
- mr: avoid ${var/pat/$'...'} for compat42 in bash &gt;= 4.3
- mr: exactly match command names
- mutt: avoid unexpected word splitting
- mutt: fix use of regex in the glob context
- mutt: rewrite ${cur/#!/X} to X${cur:1} against patsub_replacement
- mutt: use _comp_dequote for safe eval
- openssl: avoid variable conflicts
- openssl: fix variable `i` leak
- perl: fix ineffective condition in an awk script
- perl: helper call regression from 01611dd3d
- pgrep: do not rely on uncontrolled IFS
- portinstall: use awk and _comp_compgen to filter completions
- povray,sbopkg: check filetype
- povray: process each element against patsub_replacement
- povray: quote an argument properly
- ps,ss: avoid extra expansions by -W "$(...)" in _comp_delimited
- pydoc: specify -a to _comp_compgen_filedir
- pytest: do not filter underscores from parsed option arg choices
- python: avoid variable conflicts
- python: complete filenames for script arguments ([#1018](https://github.com/scop/bash-completion/issues/1018))
- python: complete micropython and pyston script args consistently
- qdbus: remove cur and all the rest arguments
- replace \s with [[:space:]] for POSIX sed/awk
- ri: avoid interference on existing COMPREPLY
- ri: fix wrongly quoted options to compgen
- ri: properly split methods
- ri: split classes using `_comp_split`
- ri: work around localvar_inherit
- sbopkg: add `;` mandatory before `}` in POSIX sed
- sbopkg: work around nounset
- scp: `nounset` mode error on unknown suboption, bash 4.2
- ssh-copy-id: call ssh, not -copy-id for suboption completion check
- ssh-keygen: call ssh, not -keygen to resolve supported protocols
- ssh-keygen: first arg to ssh query for protocol versions
- ssh: avoid variable conflicts
- ssh: fix wrong quoting inside compgen -W
- ssh: remove -a of generators
- ssh: remove unnecessary -a to _comp_compgen
- ssh: resolve relative ssh_config Include correctly
- ssh: use `_comp_compgen` for `_comp_xfunc_ssh_identityfile`
- ssh: work around bash-4.2 nounset
- ssh: work around bash-4.2 nounset
- sudo: use $1 (sudo) as $root_command
- svcadm: fix ineffective IFS for splitting
- svcadm: use the first matching name as command
- sysbench: fix extraction of test-name option
- timeout: always treat word after duration as command
- tipc: remove filtered-out elements
- update-alternatives: quote dirname
- update-alternatives: suppress error for non-existent directory
- update-alternatives: work around localvar_inherit
- upgradepkg: use `_comp_compgen` for `_comp_cmd_upgradepkg`
- use _comp_compgen_split to avoid extra expansions by -W "$(...)"
- use `_comp_compgen_split` to split and filter words
- use `_comp_compgen_split` while keeping filtering by $cur
- use `_comp_compgen` for word list
- use `_comp_split` while keeping filtering by $cur
- use compgen -P prefix -W '"${arr[@]}"' against patsub_replacement
- use XPG4 awk in Solaris
- wol: filter IP addresses by `cur`
- wtf: quote array assignment
- xfreerdp: support the new form of the option /list:kbd
- xfunc ssh identityfile: localize change to cur

Performance Improvements

- _comp_count_args: skip reinitializing cword and words
- mutt: return earlier on empty `cur`
- portinstall: return earlier for -lLo and non-existent file
- vncviewer: set nocasematch inside subshell


2.11		2020-07-25

- lilo: add -B and -E completions
- lilo: honor -C when completing labels
- lilo: don't complete on commented out labels
- test/dnssec-keygen: allow more alternatives in algorithm completion
- test/wol: don't fail MAC test if test system has /etc/ethers entries
- : complete commands when prefixed with a backslash
- ipcalc: new completion
- README.md: add introduction
- chromium-browser, firefox: complete on *.txt (#379)
- test/ipcalc: fix tests with busybox ipcalc
- lilo: work around shellcheck false positive
- test: port remaining finger, sftp, ssh, and xhost cases to pytest+pexpect
- test: port some scp test cases to pytest+pexpect
- test: fix spurious hosts fixture failure without avahi-browse installed
- test: remove some no longer needed tcl/expect code
- test: port some _known_hosts_real unit tests to pytest+pexpect
- test: host helper lint and usage fixes
- cryptsetup: add luksChangeKey arg completion (#380)
- tsig-keygen: new completion
- test/upgradepkg: port remaining test case to pytest+pexpect
- test/tsig-keygen: require command for test_options
- test/chown,sudo: parametrize special case test, improve xfail targeting
- test: remove some no longer needed old test suite code
- test/cd: convert remaining test case to pytest+pexpect
- test/cd: make dir_at_point produce better debuggable failures
- nmap: parse options from -h output
- nmap: handle options split on equals sign
- openssl: support getting digest list from more recent openssl versions
- openssl: parse available options from $command -help
- openssl: complete -writerand with filenames
- totem: reuse kaffeine completions (#372)
- test/cd: remove unused import
- test/totem: add basic test case
- extra/make-changelog: run through black
- : python type hint fixes and improvements
- test: drop redundant black args from docker runs
- pre-commit: add config with black, flake8, and mypy
- test: install black for Python 3.6 too
- test: add flake8-bugbear
- test: add isort to pre-commit, run it
- test: shellcheck tweaks
- test: run pre-commit in tools container
- jarsigner: complete on *.apk too (#386)
- python: support executables with minor version (#389)
- _known_hosts_real: check that ruptime is present before calling (#390)
- ip: improve completion of route subcommands (#326)
- test: fix CompletionResult.__eq__ UnboundLocalError
- copyright: add 2020
- printenv: new completion
- _xinetd_services: look up from $BASHCOMP_XINETDDIR, add some unit tests
- test: ignore flake8 messages that are in black's domain
- test: move shellcheck to pre-commit
- test: move perltidy to pre-commit, run with --converge
- test: require openssl command for option argument tests
- git: trigger docker rebuild on pre-commit config change
- test: split dependencies requiring Python 3.6.1+ to requirements-dev.txt
- test: upgrade mypy to 0.770
- printenv: indentation fixes
- test/printenv: require command for arg completion test
- test/ldd: xfail if --help is not implemented
- test/python: add testcase for submodule completion
- pre-commit: run most python checks on helpers/python too
- lintian: complete paths for Ubuntu's .ddeb and Debian's buildinfo files (#397)
- ip: add support for netns (#391)
- apt-get etc: use _apt_cache_packages from apt-cache
- : whitespace tweaks
- : argument interaction improvements
- test/aptitude: add some test cases
- aptitude: parse options list from --help, hardcode less
- aptitude: add some option arg (non)completions
- crontab, wodim: silence shellcheck SC2191 and SC2192
- bash_completion: address shellcheck SC2220
- : address shellcheck SC2221 and SC2222
- smartctl: hush shellcheck SC2054 false positives
- mplayer: address shellcheck SC1078 false positive
- java, pkgadd, sysbench: address shellcheck SC2124
- chronyc, wvdial: address shellcheck SC2178
- pkgadd: indentation fix
- sysbench: add --test= deprecation TODO
- protoc: complete all --*_out without more specific handling with dirs
- test: don't run shellcheck on completions/.gitignore
- _known_hosts_real, op: address shellcheck SC2184
- test/aptitude: require command where necessary
- test/printenv: xfail if --help doesn't contain options (e.g. busybox)
- insmod, modinfo, modprobe: support xz compressed modules (#401)
- test: upgrade shellcheck to 0.7.1
- quote_readline: fix $ret leak
- info, java: address shellcheck SC2153
- man, perl, route, tipc: address shellcheck SC2053
- tipc: comment grammar and spelling fixes
- renice: address shellcheck SC2254
- test/run: address shellcheck SC2164
- _upvar, _upvars, _variables, rpm: address shellcheck SC1083
- mutt: address shellcheck SC2088
- ssh: add new -Q completions in OpenSSH 8.2p1 (#400)
- cvs, modprobe, sh: address shellcheck SC2209
- rpm, ssh, umount.linux: address shellcheck SC2120
- _filedir_xspec: address shellcheck SC2140
- scp: address shellcheck SC2089 and SC2090
- java, pkgadd, sysbench: address shellchec SC2124
- test/lib/library.sh: address shellcheck SC2125
- : address shellcheck SC2046
- test: bump shellcheck severity to warning + some disables
- test: tolerate duplicates from compgen actions
- test/xfreerdp: skip xfreerdp kbd test if kbd-list returns empty
- test: make it possible to not care whether command did output or not
- test: run skipif and xfail commands without caring if they output or not
- pgrep, pkill: add --ns and --nslist arg completions
- pytest: complete test classes
- pytest: add some option arg (non-)completions
- test/cd: fix test_dir_at_point for setups that repeat "trailer"
- test: generalize complete at point test
- test/alias: port remaining test case to pytest+pexpect
- nmap: fix option parsing with BSD sed
- carton: fix command parsing with BSD sed
- _filedir*: update link to bug-bash discussion on -X (#404)
- openssl: update -starttls completions (#403)
- : replace various conditional expressions with arithmetic evaluation
- bash_completion, invoke-rc.d, svcadm: trivial cleanups
- : enable and address shellcheck SC2053
- ssh-keygen: -s and -n completion improvements
- : array subscript cleanups
- doc: recommend arithmetic evaluation
- test: remove shellcheck severity filter, add explicit disables instead
- test: enable parallel pre-commit shellcheck
- __reassemble_comp_words_by_ref, java: address and work around shellcheck SC2102
- : more arithmetic evaluation cleanups, thanks to shellcheck SC2004
- bash_completion, java, tipc: for loop whitespace consistency tweaks
- pytest: address shellcheck SC2002
- wget: address shellcheck SC2116
- mutt: address shellchec SC2236
- scp: work around shellcheck SC1003
- ssh, xsltproc: address shellcheck SC2006
- test: make at-point completion tests easier
- doc: add loop variable naming guideline
- apt-cache: fix command mode handling
- crontab: fix loop over already given args
- : various loop iteration improvements
- : remove some unused variables, thanks to shellcheck SC2034
- test: add perlcritic to pre-commit, run on all perl
- test: run pre-commit on host instead of docker
- make: add bmake alias
- test/make: mark more cases as requiring command
- test: run lint tests on Travis in a quickish separate first stage
- test: add script to maintain list of executables for full test coverage
- extra: trigger docker builds only on test-cmd-list.txt changes
- find: fix -exec etc argument and its completion
- reportbug, scp, sftp, svn: use compgen -c instead of _command
- _command: improve commentary
- ssh-keygen: option and arg completion updates for new versions
- ssh-keygen: add -b arg completions according to specified -t
- ssh-keygen: -O arg updates and improvements
- README: clarify loading automatically on demand
- pre-commit, *.md: add markdownlint, address findings
- : doc and comment link updates
- pre-commit: use local perlcritic hook
- editorconfig: apply yaml settings to .yaml too
- test: add note about unescaped assert_complete single return values
- test: port most umount test cases to pytest+pexpect
- Source user completion only if it's a file (#409)
- test: prefix fake test commands with underscore
- nmap: simplify help scraping a bit, don't try to emit unnecessary newlines
- test: upgrade markdownlint to 0.23.0
- test: fix incorrect fixtures/shared/default xfails/expectations
- pre-commit etc: add shfmt
- : run all shell code through shfmt -s
- travis: use golang 1.14 for shfmt
- apt-get: complete build-dep with dirs
- secret-tool: new completion
- test/umount: convert remaining test case to pytest+pexpect
- test/scp: port remaining test case to pytest+pexpect
- test/secret-tool: add to test command list
- test/slapt-get: convert remaining test case to pytest+pexpect
- apt-cache: avoid nonzero exit code from _apt_cache_packages
- _xfunc: simplify
- test/slapt-src: convert remaining test case to pytest+pexpect
- test: drop some no longer needed old test suite code
- lftp: use "bookmark list" command to list bookmarks
- test: run pytest --verbose in docker
- test/_get_comp_words_by_ref: convert remaining test cases to pytest+pexpect
- test/__expand_tilde_by_ref: port remaining test cases to pytest+pexpect
- test/_filedir: port more test cases to pytest+pexpect
- test: drop not needed sudo on Travis
- test: run all Travis jobs on dist: bionic
- test/_filedir: port remaining test cases to pytest+pexpect
- test: drop some no longer needed old test suite code
- test/_expand: port remaining test cases to pytest+pexpect
- test/_filedir: fix shutil.rmtree on Python < 3.6
- test: replace some echos with printfs
- test/_get_cword: port remaining test case to pytest+pexpect
- test/_known_hosts_real: port more test cases to pytest+pexpect
- test: remove more no longer needed old test suite code
- test/_known_hosts_real: port remaining test cases to pytest+pexpect
- test: remove old test suite code no longer used \o/
- test: remove unused run-shellcheck, shellcheck is in pre-commit now
- test: shfmt bashrc
- test: sync shfmt and shellcheck configs
- test: upgrade pre-commit to 2.4.0+, drop shfmt kludge
- test: pre-commit config cleanups, ordering
- test: upgrade flake8 to 3.8.1
- test/irb: xfail options test if --help is not available
- : use $ifs for storing/restoring $IFS
- test: try harder to restore environment and cwd on failures
- : use more arithmetic evaluation
- test: upgrade markdownlint-cli to 0.23.1
- dpkg-deb: fix --show/-W completion
- test: add some dpkg-query test cases
- dpkg-deb: add --raw-extract and -X arg completions
- test: mark known non-ASCII issues with test suite as xfail
- test/mr: handle missing "clean" with skipif
- mr: avoid herestrings, simplify command parsing
- _bashcomp_try_faketty: new function to try running command with a fake tty
- postfix: try to arrange a fake tty so we can tickle the usage message out
- 7z: fix -o/-w attached arg completion
- __reassemble_comp_words_by_ref: avoid triggering nounset on indirect references
- bash_completion: line wrapping tweaks, NFC
- test/unit: include test_unit_known_hosts_real.py in dist
- test/unit: sort files included in dist
- : avoid more errors in nounset mode
- test/inputrc: comment and whitespace tweaks
- : avoid more errors in nounset mode
- : avoid more errors in nounset mode
- : avoid more errors in nounset mode
- : mark nounset mode as supported, issues with it are bugs now
- test: skip various tests if we don't get a useful usage message
- test/runLint: warn about [ ] instead of [[ ]] use
- modprobe, tshark, _included_ssh_config_files: use [[ ]] instead of [ ]
- scp, sftp, ssh: fix completion on options bundled with -4/-6
- _pids, _pgids, _pnames: improve shfmt formatting
- _filedir: avoid unbound variable error on Ubuntu 14 and 16
- ip: add more completions for ip-rule
- ip: style fixes similar to ip-netns
- ip: route shfmt, arithmetic evaluation
- ip: complete route add table arg
- _init_completion: fix unassigned redirect completion in nounset mode
- : drop support for bash 4.1
- test: enable shellcheck SC2035
- qemu, sbopkg: avoid unintentional globbing on option arg completions
- qemu: add -machine arg completion
- : avoid more errors in nounset mode
- _command_offset, route: cleanups
- cfrun: fix $hostfile leak
- : avoid more errors in nounset mode
- bash_completion: fix array set checks with empty elements in them
- _known_hosts: avoid errors in nounset mode and no arguments
- pytest: add test class method completion
- README: document GNU make build requirement
- java, make: avoid errors in nounset mode on Ubuntu 14 and 16
- man, mutt: avoid errors in nounset mode on Ubuntu 14 and 16
- pytest: fix test class method completion with BSD awk
- gcc: avoid errors in nounset mode
- bash_completion: trivial cleanups
- test/_known_hosts_real: tolerate duplicates
- test/_known_hosts_real: reset COMP_KNOWN_HOSTS_WITH_HOSTFILE between tests
- test/_known_hosts_real: don't modify class scoped base expected list
- test: upgrade mypy to 0.780
- test: regex escape our magic mark for completeness
- test/lspci: skip -A arg test if lspci fails -A help, e.g. busybox lspci
- .gitignore: clean up some no longer needed ignores
- test/dpkg-query: mark as xfail on non-Debian based systems
- test: simplify completion parsing
- test: partial hostname completion fixes
- test/slapt-src: single expected result handling fixes
- test/xhost: multiple expected result handling fixes
- test: upgrade flake8 to 3.8.3
- _known_hosts_real: fix # handling in ssh configs
- _known_hosts_real: fix completion of Host entries after a wildcard etc
- test: upgrade perltidy to 20200619
- test: upgrade mypy to 0.781
- CONTRIBUTING.md: add posix and nounset mode item
- test: upgrade mypy to 0.782
- test/_known_hosts_real: add explicit no globbing test case
- test/shfmt: upgrade to 3.1.2, reformat with it
- _known_hosts_real: prevent unwanted pathname expansion on host entries
- _included_ssh_config_files: support globs
- _longopt: exclude too many dashes, allow underscores, require ends with alnum
- _known_hosts_real: avoid errors in nounset mode on Ubuntu 14 and 16
- test: upgrade markdownlint-cli to 0.23.2
- __get_cword_at_cursor_by_ref: fix regression on bash 4.2
- pytest: complete async test class methods
- test/inputrc: comment typo fix
- test/inputrc: do not set print-completions-horizontally
- unzip, zipinfo: complete *.aar (#428)
- pre-commit: update shellcheck-py URL
- pre-commit: upgrade isort to 5.0.7
- _known_hosts_real: exclude Host negations
- test/ant: gitignore all target cache files
- pre-commit: add pyupgrade, run it
- pre-commit: upgrade pyupgrade to 2.7.2
- pre-commit: upgrade isort to 5.1.4
- _xinetd_services: avoid nounset error on bash 4.2
- test/ant: avoid complete-ant-cmd.pl interference with ANT_ARGS
- test/tshark: fix multiple -O completion with no http2 support
- test/xfreerdp: skip --help failure cases
- tshark: complete -r arg with all filenames (#422)
- pytest: rewrite in bash, support toplevel funcs, avoid nondef ones and classes
- pre-commit: anchor exclude patterns
- extra/make-changelog: check and output usage message


2.10		2019-12-05

- README: link to cygwin package
- README: use light gray badges for unknown versions
- test_rpm2tgz: Fix expected output
- test_chromium_browser: Skip test_2 if 'chromium-browser --help' fails
- tar: add missing bsdtar, gtar, and star symlinks
- build: simplify symlink setup
- build: really reset return value before completions check
- build: makefile whitespace tweaks
- test: bashrc comment and whitespace tweaks
- test: more thorough system location interference avoidance
- test: set up BASH_COMPLETION_COMPAT_DIR in bashrc (only)
- test: reformat test_chromium_browser.py source
- pkg_delete: don't limit to FreeBSD
- tar: simplify locating tarball from command line
- test_arp: Skip if ARP tables are empty
- test: generalize check whether we're being run in a container
- test_feh, test_makepkg: invoke grep as "command grep"
- test_getconf: skip if -a doesn't output any POSIX_V*
- test_iconv: skip option completion if --help fails
- test_iconv: add basic file completion test
- iconv: weed out ... from encoding completions
- test: add Alpine Linux container, allow failures for now
- test: support xfail in our markers like skipif, use it a lot
- test: expect failures for various completions without useful --help
- test_lsusb: xfail with unparseable --help
- test_wget: test --s instead of --h
- timeout: fallback to _parse_usage from _parse_help
- test_ifup: accept short option completions too
- test: use one Dockerfile for all dists
- test: run our docker script in test containers by default
- _pnames: adapt for busybox ps, rewrite in pure bash
- test: disallow Alpine failure on Travis
- iconv, lz4, tipc, xsltproc: replace some seds with compgen -X
- test: port compgen and quote tests to pytest+pexpect
- test: port _variables unit tests to pytest+pexpect
- README: add some badges, tweak existing
- test: convert finger partial test case to pytest+pexpect
- test: convert bunch of _filedir unit tests to pytest+pexpect
- test: flake8 fix
- test: convert more _filedir unit tests to pytest+pexpect
- test: add basic autossh test
- chsh, pwck: try _parse_help before _parse_usage
- test: add bunch of basic _parse_usage use test cases
- cal: try _parse_help before _parse_usage
- postfix: option completion is expected to fail at the moment
- badblocks: fix $i leak
- .gitignore: add configure.lineno
- test: add bunch of basic _parse_help use test cases
- test: add more basic _parse_help use test cases
- test: xfail getent and pwdx option completions with unparseable --help
- test: zopflipng flake8 fix
- test: enforce minimum pytest version
- build: make pytest executable configurable, look for pytest-3 too
- test_pwdx: xfail more unparseable help cases
- test: xfail unparseable mock and munin-node-configure --help cases
- pgrep: fix fallback to _parse_usage
- test: don't try to install black on Python < 3.6
- test_wsimport: xfail options test on unparseable -help
- man: fall back to _parse_usage for _parse_help
- test: add basic tox fixture
- tox: do simple parse on tox.ini if --listenvs* yields nothing
- README: badge title tweaks
- influx: new completion
- test: source our profile.d test env script in docker
- chromium-browser: add --proxy-server arg completion
- README: drop distro badges, link to Repology instead
- ip: invoke the tool as $1
- test: fix required pytest version
- test: register our pytest markers to hush warnings from 4.5+
- gssdp-discover: new completion
- tox: complete defaults after a --
- tox: include -- in option completions
- test: drop sourcing our no longer existing profile.d script
- test: don't expect a .tox dir in fixture
- test: expect failures for bc without --help useful with _longopt
- test: skip gssdp-discover --message-type when option not available
- xvfb-run: new completion
- test: avoid gnome-mplayer core dump on Ubuntu 14
- test: remove unnecessary returns after pytest.skip
- test: fix acroread fixture dir
- test: installpkg test fixes
- java: make jar/zip listing work with unzip
- test: use sh +* as ccache command test case
- test: avoid some sed -r/-E runLint false positives
- ipv6calc: parse help instead of hardcoding option list
- lvm pv*, vg*: parse help instead of hardcoding option list
- test: portinstall/upgrade test case and setup fixes
- pkgutil: fix $i leak
- pkg-get: fix $i leak
- chromium-browser: Add support for .mhtml files
- _terms: combine and simplify somewhat
- _terms: search directly from various terminfo dirs
- test: mark sbcl-mt xfail due to whitespace split issues
- test: explodepkg and upgradepkg test fixes
- test: always run tests which don't require tested command
- test: add bunch of basic option parsing test cases
- test: don't sort expected completion lists under the hood
- test: hush flake8-bugbear B010
- test: ignore _makepkg_bootstrap in makepkg test env
- test: xfail MAC address completion without networking
- travis: pass NETWORK as env var, so we can actually use it
- test: fix retrieving command to test from request
- gprof: _parse_usage, drop hardcoded option list
- lintian-info: _parse_help, add more option arg (non)completions
- screen, smartctl, update-alternatives: _parse_help, drop hardcoded option list
- sysctl: invoke completed sysctl instead of one from path to get variables
- test: mark more tests that parse command output as requiring command
- test: add require_longopt xfail helper, use it
- dmypy: new completion
- travis: generate dist tarball on alpine
- wine: install for wine-development and wine-stable too
- perltidy: associate *.t (#338)
- travis: test with Debian 10
- ssh: option and argument completion updates (#332)
- java: don't assume jar is installed
- _sysvdirs: always return 0
- test: xfail locale-gen option completion if --help is not available
- valgrind: look tool names from lib/*-linux-gnu dirs too
- test: adjust java expectations based on whether jars can be listed
- op: direct command parsing stderr to /dev/null
- ri: hush some warnings
- carton: new completion
- CONTRIBUTING: disable e-mail bug gateway due to spam
- apt-get: fix pkg version completion if it contains a colon (#351)
- _variables: add TERM and LC_* completion (#353)
- cppcheck: Add new standards to --std option. (#356)
- test: mark dcop and mr testcases requiring the cmd as such
- makepkg: fix option completion
- .gitignore: mypy cache
- test: add minimal mypy config
- test: python typing fixes
- test: fix cpio users test in presence of usernames with whitespace
- shellcheck: add some option arg (non)completions
- test: shellcheck config cleanups
- bash_completion.sh: shellcheck SC2086 fixes
- _filedir: remove unused $x
- _filedir: avoid duplicate dirs internally, and a compgen -d call for files
- curl: make @filename completion do the right thing with dirs
- pkg-config: generate Name from autotools PACKAGE
- unzip, zipinfo: complete *.aab (#340)
- pkg-config: Relative paths
- autotools: Replace pkgdatadir with datadir
- cppcheck: Remove deprecated option 'posix'  for '--std='
- perl: fix completion with space between option and argument
- perl: indentation fixes
- test: add some trivial perl -E/-e cases
- screen: complete first arg with serial devices
- screen: add //telnet completion
- screen: add serial device basic arg (non)completion
- update-rc.d: remove dead code
- update-rc.d: indentation fix
- ssh, scp, sftp, ssh-copy-id, curl: improve identity file completion
- unrar: complete on *.exe (#337)
- gcc: support new --completion option (#222)
- test: bump black to >=19.10b0


2.9		2019-04-27

- completions/Makefile: Fix check-local in VPATH builds
- ssh: Order various switch cases closer to alphabetical
- ssh: Sync query type list with OpenSSH 7.5p1
- ssh: Sync config option lists with OpenSSH 7.5p1, add some value completions
- apt-get: Complete install package=versions
- apt-get: Add indextargets to list of suggested commands
- apt-get: Simplify -t and friends completion, support Ubuntu
- apt-get: Sync option list with apt 1.5.1
- apt-get: Add -h/-v/-o non-completions
- dpkg-source: Add --before-build --after-build --commit, and --print-format
- README: Link to various distro packages
- README: Point Debian and openSUSE badges towards unstable and Tumbleweed
- ssh: Complete all *File option args with _filedir
- test: Add comment line to fixtures/_known_hosts_real/known_hosts
- _known_hosts_real: Reimplement known hosts file parsing in pure bash
- mount, umount: Deprecate on Linux in favor of util-linux >= 2.28 ones
- .dir-locals.el: Set -O extglob for flycheck bash checks
- reportbug: Add bunch of option arg (non-)completions
- a*,ccze,curl,wget: Support completing arg of last bundled short option
- b*: Support completing arg of last bundled short option
- cvs: Add completion for the log command
- chage, chpasswd: Add -R/--root arg completion
- dhclient: Parse options with _parse_usage
- dhclient: Add some option arg (non-)completions
- dselect: Parse options with _parse_help
- c*, d*: Support completing arg of last bundled short option
- ether-wake: Install for etherwake as well
- e*: Support completing arg of last bundled short option
- f*: Support completing arg of last bundled short option
- g*: Support completing arg of last bundled short option
- scrub: New completion
- ecryptfs-migrate-home: New completion
- h*: Support completing arg of last bundled short option
- i*: Support completing arg of last bundled short option
- test: Skip scrub -p test when its --help doesn't list available patterns
- lftp: Support completing arg of last bundled short option, handle -s
- xgamma: Comment spelling fix
- links: Install completion for links2 too
- iconv: Split charset completion to _iconv_charsets, add test case
- _filedir: Refactor to remove heredoc-dependent loop
- _filedir: Drop unnecessary evals
- wget: Remove nonexistent arg to _ip_addresses
- _ip_addresses: Add option to complete all/v4/v6 addresses, add unit test
- links: Major rework, parse options from --help, add option arg completion
- iperf, nc: Include IPv6 addresses in bind address completions
- chmod: New completion
- json_xs: New completion
- README: Add Q/A on overriding a completion, modernize local install answer
- build: Do cmake, pc, and profile variable replacements in Makefile
- build: Use AC_PROG_SED to locate sed
- pkg-config: Complete on *.pc files
- build: Improve cleanup of test/log and test/tmp dirs
- test: Run perlcritic and flake8 on perl and python helpers in Travis
- lzma: Use _parse_help instead of hardcoded option list
- [jkl]*: Support completing arg of last bundled short option
- __load_completion: Avoid bad array subscript on "commands" ending with slash
- aclocal, automake: Support versioned 1.16 executables
- test: Mark psql etc test cases untested if --help doesn't work
- _xspecs: Declare as global on bash >= 4.2
- README: Note $BASH_COMPLETION_USER_DIR
- README: Add instructions for overriding completions system wide
- pytest: Rename from py.test to follow upstream recommended name
- rpm: Complete --licensefiles with -q
- ngrep, tshark: Complete on *.pcapng too
- ifquery: New ifup alias completion
- _count_args: Add support for not counting specified option args
- ifup etc: Add option and option argument completion
- ssh, scp, sftp: Support completing arg of last bundled short option
- completions/Makefile.am: Use install-data-hook, not install-data-local
- mplayer: Add common supported module music formats
- mplayer: Associate with *.S[3T]M, *.med, *.MED
- minicom: Use _parse_help instead of hardcoded option list
- modinfo: Use _parse_help instead of hardcoded option list
- m*: Support completing arg of last bundled short option
- mysqladmin: Reuse --default-character-set completion from mysql
- mysql, mysqladmin: Complete --ssl-{ca,cert,key} option arg
- modinfo: Fall back to _parse_usage if _parse_help yields no results
- cryptsetup, nc, sh: Skip option args when counting arguments
- cryptsetup: Add some option arg (non-)completions
- n*: Support completing arg of last bundled short option
- profile.d: Avoid tested variable values being confused as [ ] operators
- passwd: Try _parse_help before _parse_usage to parse options
- [op]*: Support completing arg of last bundled short option
- pyvenv: Support versioned 3.6-3.8 executables
- querybts: Use _parse_help, not hardcoded option list, misc improvements
- reportbug: Run _parse_help and apt-cache more selectively
- [qr]*: Support completing arg of last bundled short option
- jq: New completion
- tune2fs: Update -o/-O argument lists
- sqlite3: Add some option arg (non-)completions
- sshow: Add -p arg completion
- strace: Use _parse_help instead of hardcoded option list
- sudo: Parse options from help/usage output, add some long option support
- test: Add sysctl option parsing test case
- sysctl: Recognize --pattern/-r and --load options
- sudo: Improve long option arg handling
- s*: Support completing arg of last bundled short option
- jq, sqlite3: Protect against negative array subscripts
- test: Support running with local BSD binaries, do it w/ ubuntu14 in CI
- xdg-settings: Make help parsing work on BSD
- test: Skip jq option completion test if its --help doesn't list them
- tracepath: Actually use our separate completion instead of _known_hosts
- tracepath: Add -m and -p arg non-completions
- urlsnarf: Add -p arg completion
- uscan: Use _parse_help instead of hardcoded option list
- [tu]*: Support completing arg of last bundled short option
- test: Fix iwspy test case
- [vwx]*: Support completing arg of last bundled short option
- fio: New completion
- ngrep: Add "any" to -d arg completions
- tshark: Get available interfaces from -D output
- pylint: Option arg completion improvements
- mplayer: Associate with *.w64
- test: Mark flake8 untested if it seems broken
- test: Limit number of wget option completions to avoid unresolved result
- travis: Split long lines in script
- travis: Run ubuntu14/bsd with no network
- pydoc, pylint: Skip module completion if current looks like a path
- gpgv: New completion
- extra/git-post-commit.sh: Add git post-commit Docker Hub trigger hook
- _services: Try systemctl list-unit-files if systemctl list-units fails
- test: Run docker tests with --verbose
- test: Bump expect's match_max to 20000 by default
- test: Fix buffer size option listing in run --help
- pylint: Implement comma separated --confidence arg completion
- pylint: Bring -f/--format arg completion up to date with pylint 1.9.2
- pydoc, pylint: Determine python2/3 based on command basename only
- test: Limit number of pylint option completions
- test: Add pylint-3 test case
- git-post-commit: Avoid some error trash when HEAD is not a symbolic ref
- tox: Fall back to --listenvs for env list if --listenvs-all fails
- test: Start converting test suite to pytest+pexpect
- test: Update generate for pytest+pexpect
- test: Convert first bunch of completions to pytest+pexpect
- test: Don't include our magic mark in completions
- test: Fix completion list when there's one completion
- test: Convert remaining simple x* to pytest+pexpect
- test: Improve generate to handle basic args and problematic chars
- test: Convert trivial [u-z]* test cases to pytest+pexpect
- test: Add some additional simple completion test cases
- test: Use make pytest docker executable env-configurable, default pytest-3
- test: Use /root/.local/bin/pytest on centos6 by default
- test: Convert trivial t* test cases to pytest+pexpect
- test: Convert trivial s* test cases to pytest+pexpect
- test: Add new test files to EXTRA_DIST
- test: Add generated test files to t/Makefile.am automatically
- test: Convert trivial [qr]* test cases to pytest+pexpect
- test: Use /root/.local/bin/pytest on ubuntu14 by default
- test: Convert trivial o* test cases to pytest+pexpect
- test: Bulk convert lots of trivial test cases to pytest+pexpect
- test: Bulk convert some more trivial test cases to pytest+pexpect
- test: Make "generate" do the right thing with more partial args
- test: Convert some more trivial test cases to pytest+pexpect
- test: Convert some more trivial test cases to pytest+pexpect
- test: Convert some more trivial test cases to pytest+pexpect
- test: Convert some more trivial test cases to pytest+pexpect
- test: Treat non-dash args better in generate
- iperf: Add g/G to --format completions
- iperf: Install for iperf3 too
- iperf: Improve client/server specific option parsing
- xmodmap: Use _parse_help instead of hardcoded option list
- iperf: Add g/G to --format completions
- iperf: Install for iperf3 too
- iperf: Improve client/server specific option parsing
- xmodmap: Use _parse_help instead of hardcoded option list
- test: Add some iperf, iperf3 and xmodmap test cases
- test: Make test base work with Python 3.3+
- test: Add support for pytest pre-test commands
- test: Convert some more test cases to pytest+pexpect
- test: Add support for skipping individual tests based on shell command status
- test: Convert some more test cases to pytest+pexpect
- test: .gitignore pytestdebug.log
- test: Convert some more test cases to pytest+pexpect
- test: Add support for running test case in a specified dir
- test: Convert some more test cases to pytest+pexpect
- test: Fix some regressions introduced in recent test conversions
- test: Convert some more test cases to pytest+pexpect
- test: Convert some more test cases to pytest+pexpect
- test: Convert some more test cases to pytest+pexpect
- test: Include command name in test class name, use numbered test method names
- test: Convert some more test cases to pytest+pexpect
- test: Add class level skipif based on bash exec result
- test: Add python3 test case
- test: Convert some more test cases to pytest+pexpect
- test: Rename BASHCOMP_* test env variables to BASHCOMP_TEST_*
- test: Log pexpect interaction to $BASHCOMP_TEST_LOGFILE if set
- test: Pass through $HOME and $DISPLAY to test bash
- test: Fixture reorganization
- test: Add ability to selectively ignore diffs in environment
- test: Implement load_completion_for using assert_bash_exec
- test: Convert some more test cases to pytest+pexpect
- test: Replace + with Plus in test class names
- test: Mark xfreerdp as expected failure for now
- test: Convert some more test cases to pytest+pexpect
- test: chdir to fixtures dir in Python as well
- test: Allow __load_completion to fail
- test: Sort completion results in Python for ease of use in Python tests
- test: Convert some more test cases to pytest+pexpect
- test: Use more conventional Python file names for tests
- test: Add support for per-test env modifications
- test: Don't require complete marker on test methods
- test: Fix jq and scrub skipif commands
- test: Convert some more test cases to pytest+pexpect
- test: Misc test suite fixes
- test: Convert some more test cases to pytest+pexpect
- test: Convert some more test cases to pytest+pexpect
- test: Misc test suite fixes
- test: Convert some more test cases to pytest+pexpect
- test: Support setting cmd=None to require no command, for unit tests
- test: Convert some more test cases to pytest+pexpect
- test: Convert some more test cases to pytest+pexpect
- test: Use test_unit_* prefix for unit tests, to avoid name clashes
- test: Convert some more test cases to pytest+pexpect
- test: Misc test suite fixes
- test: Convert some more test cases to pytest+pexpect
- test: Misc test suite fixes
- test: Convert some more test cases to pytest+pexpect
- test: Convert some more test cases to pytest+pexpect
- gccgo: Add as a GCC completion target (#227)
- gcc: Add g++, gcc, gccgo, and gfortran *-7 aliases
- __load_completion: Avoid unnecessary lookups from nonexistent dirs
- unzip, zipinfo: Associate with *.whl
- test: Misc test suite fixes
- test: Make case specific env entries shell code, not escaped
- test: Convert some more test cases to pytest+pexpect
- test: Pylint fixes
- test: Remove kill, killall remnants
- test: Mark MANPATH without leading/trailing colons test an xfail on CI CentOS 6
- nc: Add some more option (non-)completions
- test: Convert some more test cases to pytest+pexpect
- test: Pylint fixes
- test: Convert some more test cases to pytest+pexpect
- test: Convert some more test cases to pytest+pexpect
- test: Convert some more test cases to pytest+pexpect
- firefox etc: New non-xspec completion
- chromium-browser, google-chrome*: New non-xspec completion
- test: Convert some more test cases to pytest+pexpect
- doc: Start documenting new pytest+pexpect tests
- mplayer etc: Complete on *.crdownload partial downloads in addition to *.part
- freeciv-gtk2: Install for freeciv and freeciv-gtk3, rename to freeciv
- freeciv: Option and arg completion updates
- isort: New completion
- gnome-screenshot: New completion
- perlcritic: New completion
- gcc: Add g++, gcc, gccgo, and gfortran *-[568] aliases
- test: Remove leftover completion/ls.exp
- tshark: update -T and -t completions
- tshark: prevent a single-character file from breaking -G completion
- tshark: support .gz and .cap files for -r expansion
- xmllint: Improve --encode, --pretty, and --xpath arg (non-)completions
- chromium-browser: consider chrome and chromium as aliases
- conftest: fix RemovedInPytest4Warning due to use of node.get_marker
- doc: Some pytest install clarifications
- test: fix flake8 complaints about unused imports
- test: fix misinterpretation of completion output in tests
- okular: Added support for xz-compressed files.
- hunspell: New completion
- op: New completion
- mypy: New completion
- test: Convert remaining perl test cases to pytest+pexpect
- 7z: add .msi support
- test: Convert more tar test cases to pytest+pexpect
- dpkg: List held packages (#250)
- makepkg: Use _parse_help instead of hardcoding option list
- test: Allow unknowns options in makepkg option completion
- makepkg: Don't apply to other than Slackware makepkg
- locale-gen: New completion
- test: Convert cancel test case to pytest+pexpect
- cancel: Add some option arg (non-)completions
- cancel: Split long line
- test: Convert portinstall test case to pytest+pexpect (untested)
- tar: Support completions for zstd compression extensions (#255)
- tar: Clean up some redundant code
- ssh-copy-id: Add -i and -o arg (non-)completions
- test suite: Ignore _scp_path_esc in env for ssh-copy-id
- grpck: Add --root/-R arg completion
- grpck: Parse options with _parse_help, falling back to _parse_usage
- test: Add requirements.txt for installing dependencies
- doc: Some test dependency doc updates
- _filedir_xspec: Fallback to suggesting all files if requested (#260)
- doc: Update docs on generating simple tests
- test: Expect failure in gkrellm if there's no X display
- arp: New completion, somewhat incomplete
- test: Be more consistent with "CI" env var examination and xfails
- unzip, zipinfo: Associate with *.xar (eXist-db application package) (#257)
- test: Fix arp CI (non)expectations, remove redundant test case
- tcpdump: Various option and their arg completion updates
- doc: Note email issues gateway
- Travis: Remove unused PYTEST env var
- pydocstyle: New completion
- test: Fix _count_args test_7 to test intended case
- _count_args: Add 3rd arg for treating option-like things as args
- chmod: Fix file completion after modes starting with a dash
- .gitignore: Add pytestdebug.log
- sysctl: Treat -f as alias for -p/--load
- xrandr: match the output name exactly for --mode
- chmod: Fix "-" completion
- _xspecs: Simplify bash version check
- test: Remove some no longer used old test suite code
- tshark: Support preferences (-o) completion with memoization
- tshark: fix completion of -Xlua_script option
- test/t: Avoid trailing backslash in Makefile.am's to appease automake
- build: Include test/t in dist tarball
- test: Clean up and docker-ignore __pycache__ dirs
- test: Skip ifup options test if it doesn't grok --help, not in CI
- test: Mark some xfails based on if in docker instead of in CI
- inotifywait: New completion
- _ip_addresses: Avoid completing ipv4 ones with -6
- test: Convert _ip_addresses unit tests to pytest+pexpect, extend some
- inotifywait: Avoid some false positive event names
- inotifywait: Fix -e completion with BSD sed
- inotifywatch: New completion, common with inotifywait
- man: Fix completion when failglob option is enabled (#225)
- test: Add pre_cmds support for completion fixture
- test: Add man failglob test case
- test: Rename completion.line to .output
- test: Match Python's default locale unaware sort in bash setup
- test: Refactor/improve completion results checking
- __parse_options: Avoid non-zero exit status
- test: Convert remaining _parse_help unit test to pytest+pexpect
- ifstat: New completion
- test: Fix test generation wrt results checking improvements
- iperf, iperf3: Add some option arg (non-)completions
- test: Convert remaining man test case to pytest+pexpect
- ifstat: Make work with iproute2 version
- test: Remove unnecessary autouse=True from fixtures
- .gitignore: Add .python-version (for pyenv)
- test: Clean up man tmp dir
- test: Remove unnecessary ri xfail
- jsonschema: New completion
- xfreerdp: Update for more modern xfreerdp
- adb: Deprecate in favor of one shipped with the Android SDK
- test: Convert remaining tar test cases to pytest+pexpect
- test: Fix declare test case with bash 5.0
- test: Expect failure for chown all users test as non-root
- xm: Deprecate completion for obsolete command (#284)
- ssh: support RemoteCommand and SyslogFacility options
- test: sort t/Makefile.am EXTRA_DIST in C locale
- test: rewrite "generate" in Python, fix trailing backslash in EXTRA_DIST
- xfreerdp: reinstate support for old versions with dash option syntax
- test: remove no longer needed completion/*.exp
- test: avoid interrupting magic mark output
- test: Increase expect pty to 160 columns
- pytest: complete pytest-xdist --dist, --numprocesses, and --rsyncdir
- post-commit: trigger on test/requirements.txt too
- test: add dependency on pytest-xdist
- extra: add git pre-push hook for triggering Docker Hub builds
- test: use pytest-xdist
- python: make warning action list reusable
- pytest: complete --pythonwarnings/-W arg
- copyright: add 2019
- _longopt: don't complete --no-* with file/dirname arg
- nsupdate: new completion
- _longopt: pick first long option on a line, not last
- _longopt: simplify regex, use printf instead of echo, drop unnecessary sort
- test: add some _longopt unit tests
- test: include test_unit_longopt.py in dist
- modprobe: append = to module parameter completions
- dnssec-keygen: new completion
- shellcheck: new completion
- ulimit: new completion
- ulimit: improvements when -a is specified
- ping, tracepath: parse options primarily with _parse_help
- modprobe: module parameter boolean values
- bzip2: recognize *.tbz2 as bzipped
- : remove spaces immediately within $()
- : remove whitespace after redirections
- msynctool: code cleanups
- : spelling fixes
- svn, svk, wget: use _iconv_charsets
- : make _parse_usage fallbacks more concise
- valgrind: look up tools from libexec dirs too
- .dir-locals.el: use flycheck-sh-bash-args
- : format Python code with black
- : format Perl code with perltidy
- test: check for perltidy errors and warnings
- test/tools: run all tools, don't stop at first failure
- : arithmetic expression related cleanups
- test/tools: fix exit status incrementation
- gdb: relax core filename pattern
- _parse_help: look for long options somewhat more eagerly
- test: add some gdb non-core files
- test: port some more ssh test case to pytest+pexpect
- ssh: don't offer protocol v1 specific options if it's not supported
- : whitespace tweaks
- various: apply file vs dir special cases also when invoked with full path
- phing: don't complete -l with files
- phing: fix getting just a tab for options on CentOS 6
- : add missing "ex: filetype=sh"
- _upvar: delete, unused
- Revert "_upvar: delete, unused"
- _upvar: deprecate in favor of _upvars
- : error output consistency, use bash_completion prefix
- : more arithmetic expression consistency
- tshark: ignore stderr when parsing -G, -L, and -h output
- test: improve tshark -O arg completion test
- tshark: speed up tshark -O completion
- apt-cache: protect showsrc against regex specials
- test: adjust _get_comp_words_by_ref test to changed error output
- synclient: remove unused local variable "split"
- mypy, mysql, xmms: don't complete unknown split long option args
- apt-get: protect source against regex specials
- AUTHORS: remove unrelated project association from my entry
- test: shorten long gdb test core file name so tar doesn't croak on it
- iptables: improve existing table arg parsing
- test: add script to run shellcheck, run it in Travis, allowing failure for now
- ebtables: improve existing table arg parsing
- test: add invoke-rc.d test case for not repeating already given options
- _included_ssh_config_files: doc grammar fixes
- _included_ssh_config_files: store found included files in an array
- : shellcheck error fixes
- test: add make -C test case
- make: quote eval array definitions to work around shellcheck SC1036 bug
- ri: shellcheck error fixes
- travis: fail on shellcheck errors
- travis: don't fail DIST != tools
- travis: run shellcheck on bash_completion.sh.in too
- tar, valgrind: avoid some herestrings
- test: make runLint search for herestrings
- test: move default shell option from run-shellcheck to .shellcheckrc
- shellcheck: disable bunch of warnings when in "-S warning" mode
- arp, ccze, ifstat, inotifywait, makepkg: invoke sed with "command"
- __parse_options, 7z: avoid herestrings
- CONTRIBUTING: note runLint and run-shellcheck
- CONTRIBUTING: add upstream vs bash-completion considerations
- doc/testing: remove lots of legacy info, add some new
- xvnc4viewer: code cleanups
- ssh: fix suboption completion with combined -*o
- ssh: make option completion case insensitive
- ssh: make -o protocol completion less hardcoded
- 7z: add some TODO notes on parsing "i" output for extensions
- : avoid shellcheck SC1010
- : avoid shellcheck SC1007
- dist: include various *.in explicitly
- test: use parallel make in docker test
- test: use $(RM)
- test: group dejagnu related stuff in one place in Makefile
- test: run pytest tests with make check
- test: run distcheck in docker, ditto test suite driven by it
- test: add fixtures/make/extra_makefile to CLEANFILES
- travis: reindent with 2 spaces by usual convention
- travis: deploy release dist tarball to github


2.8		2018-03-17

- test suite: Limit number of screen -T completion matches
- test suite: Support overriding default match buffer size (#141)
- lftp: Support ~/.local/... bookmark location (#144)
- test suite: Limit amount of output from process name completion
- ktutil: Don't leak i and command environment variables
- test suite: Add bunch of missing basic test cases
- uscan: Don't leak cword and words environment variables
- xm: Don't leak args and commands environment variables
- test suite: Enable wine in ubuntu14
- test suite: Install aptitude in ubuntu14 container
- aptitude-curses: Use aptitude completion
- groupdel: Parse and handle long options
- curl: Fix -x etc option argument hostname completion
- : Protect _known_hosts_real from user input treated as options
- aptitude: Add keep to commands list (Debian: #867587)
- test suite: Add basic hid2hci and munin-node-configure test cases
- test suite: Add info and pinfo option test cases
- test suite: Limit amount of info and pinfo test output
- : Protect shopt reset from non-default $IFS
- alias: Fix completion followed by = (#146)
- oggdec: New completion
- Add support for .lzo extension (--lzop) to tar (#155)
- Add support for .lz4 extension to file-roller (#158)
- lsusb: New completion
- lspci: New completion
- test suite: Skip fedoradev GPG checks at least for now
- test suite: Drop no longer needed fedoradev /usr/bin/which workaround
- vpnc: Improve config completions
- vpnc: Add some option argument (non)completions
- iptables: Parse options from --help output
- iptables: Avoid stderr trashing when invoked as non-root
- iptables: Use invoked command instead of hardcoded "iptables"
- README.md: Whitespace cleanup
- ebtables: new completion (#150)
- test: Use prebuilt docker hub bash-completion images
- rfkill: Rename to _rfkill to avoid conflict with util-linux >= 2.31
- test suite: man cleanup
- test suite: Make man test subject names less generic
- test suite: Add bunch of man and MANPATH test cases
- man: Don't use $MANPATH directly (#161)
- unzip, zipinfo: Associate *.gar (#165)
- pylint: Install for pylint-2 and pylint-3 too
- pylint: Invoke python3 to search for modules if command contains 3
- tox: New completion (#163)
- tox: Avoid stderr spewage when -e invoked without tox.ini
- tox: Include ALL in -e completions
- tox: Remove spurious executable bits
- xdg-settings: New completion
- test: run bash with --norc to avoid system bashrc
- test: Add some comments regarding bash init in library.exp
- test: Remove things moved to library.exp from bashrc
- Whitespace
- test: Add files to test older ri with
- ri: Fix integrated ri 1.8 class completion
- apt-get: Complete *.deb on install if argument contains a slash
- reportbug: Add -A/--attach arg completion
- reportbug: Don't hardcode option lists, split option args at =
- ssh-keygen: Add -E arg completion
- xdg-mime: New completion
- test: dpkg,ls,_tilde: Skip gracefully if no uniq user for completion is found
- test: Ignore duplicates in find_unique_completion_pair list
- ssh: Declare $prefix closer to use
- ssh: Add -J/ProxyJump completion
- _known_hosts_real: Document -a better
- nproc: New completion
- getconf: New completion
- pv: New completion
- cryptsetup: Update option lists
- dpkg: Add -V/--verify arg completion
- lowriter,localc etc: Use corresponding oo* completions
- perltidy: New completion
- flake8: Various option arg completion improvements
- pycodestyle: New completion
- travis: Don't build local docker images, use vskytta/bash-completion ones
- test: Work around broken centos/fedora postfix config in non-IPv6 setup
- test: Add "postconf -" test case
- Revert "travis: Don't build local docker images, use vskytta/bash-completion ones"
- test: Try to skip postconf variable test on broken postfix configs altogether
- test/docker: Tweak work dir, add bash as default cmd
- python: Support completing dotted module hierarchies
- lsscsi: New completion
- radvdump: New completion
- java: Complete *.war
- ssh,ssh-add,ssh-keygen: Complete pkcs11 options with *.so
- kldunload: Show modules with digits
- kldunload: Increase robustness of compgen filters (#185)
- _known_hosts_real: Add option to filter IPv4 and IPv6 addresses
- ping*,ssh,scp,sftp,tracepath6: Filter IPv4/IPv6 literal addresses
- geoiplookup: New completion
- xdg-mime,xdg-settings: Fix inclusion in tarball
- tox: Complete comma separated -e arguments
- mplayer: Disable user config when parsing options
- test suite: Some more mplayer and mencoder coverage
- : Comma separated opt arg completion improvements
- xine etc, ogg123, mplayer -audiofile: Associate with *.oga
- dpkg: Fix man page section in comment
- dpkg: Complete --vextract on deb files
- dpkg-query: Fix -W/--show completion
- ccze: New completion
- make: Pass script to sed as parameter instead of using process substitution
- openssl: Add completion for the genpkey, pkey, pkeyparam, and pkeyutl commands
- _avaiable_interfaces: Get rid of eval
- __load_completion: Code cleanup
- __load_completion: Load "xspec" completions dynamically too
- mkdir: Complete on files in addition to dirs
- mkdir: Complete files without appending space
- Bump copyright years to -2018
- __expand_tilde_by_ref: Eval tilde expansion only, simplify
- dd: Omit space only when offering one completion ending with =
- dd, find, gcc: Remove unnecessary tilde expansion
- test: Add assert_complete_homedir, use in dpkg and ls
- bzip2, gzip, and other compressors: Use _tilde instead of _expand
- test: Add some _expand unit tests
- _expand: Reuse __expand_tilde_by_ref and _tilde logic, clean up
- info, man, rsync: Defer _expand invocation
- test/unit: Whitespace tweaks
- test: Fix getting username in non-login shells
- make-changelog.py: Use python3


2.7		2017-07-01

- pdfunite: New *.pdf completion
- test suite: Fix __expand_tilde_by_ref test expectation output
- Makefile: update default compatdir (#132)
- pyflakes: Remove redundant xspec completion
- test suite: Generalize xspec completion install check
- Make user completion file configurable, disable in tests


2.6		2017-06-27

- xine etc: Associate *.webm and *.weba (#112)
- mplayer: Associate *.weba (#112)
- xine etc: Associate uppercase *.WM[AV]
- Add missing sidedoor to .gitignore (#114)
- Bump copyright years
- eog: Associate with *.j2c and *.jpg2
- xv: Associate with *.j2c, *.j2k, *.jp2, *.jpf, and *.jpg2 (Debian: #859774)
- Travis: Switch tests to docker, update to Ubuntu 14
- test suite: Add WIP Fedora dev config
- synclient, udevadm: Avoid use of posix char classes for awk
- ssh-keygen: Make option parsing work with OpenSSH < 7
- (docker): Run completion tests with xvfb-run, e.g. for gkrellm
- tshark -G: Avoid stderr noise when running as superuser
- (test suite): Fix mmsitepass completion test
- mr: Avoid stderr trash and test suite failure if man is N/A
- (docker): Pull in missing fedoradev xvfb-run which dependency
- (test suite): Don't assume lists set up in newlist test cases
- (test suite): Delete trailing whitespace
- newlist: Parse options from --help, add some arg non-completions
- (test suite): Don't assume mounted filesystems in quota* tests
- (test suite): Make chkconfig test behave better in container
- (test suite): Unsupport various kill, renice cases if ps is N/A
- (test suite): Fix tar test case for ones having --owner-map
- (test suite): curl has lots of options, add more test prefix
- (test suite): Fix perl -d* test cases with no Devel::* installed
- (test suite): Ensure /usr/(local/)games is in $PATH
- (test suite): Add bunch of packages to ubuntu14 container
- (test suite): Add our ./configure to PATH to test it, test opts
- (test suite): Add basic hping3 test case
- (test suite): Test lsof on ubuntu14
- unshunt: Parse options from --help
- (test suite): Install jshint to ubuntu14 container with npm
- (test suite): Add mailman bin dir to PATH for some mailman tools
- (test suite): Install jshint globally in ubuntu14
- alpine: Parse opts from -h output, add some opt arg completions
- (test suite): Add basic alpine test case
- (test suite): Fix alias and cd cursor position tests
- (test suite): Add unrar to ubuntu14 container
- (test suite): Install some things N/A in ubuntu14 to fedoradev
- (test suite): Avoid interference from user and system dirs (#87)
- (test suite): Accept non-whitespace single word in assert_complete_any
- (test suite): Load tested completions dynamically
- arch: Parse options from --help
- (test suite): Add mailman bin dir to PATH for arch test
- (test suite): Ignore runtime loaded env function changes
- (test suite): Add basic CentOS 6 container for bash 4.1 coverage
- Don't offer * as configured interface when there are none
- (test suite): Don't assume configured interfaces in CI setups
- (test suite): Simplify renice test, fix with only one completion
- (test suite): Fix CentOS 6 tcllib setup
- (test suite): Info test needs docs, don't exclude from CentOS
- (test suite): Add our own dummy ri test fixture
- ri: Add option and arg completions
- Don't define BASH_COMPLETION_COMPAT_DIR
- oowriter: Associate with *.pdf
- py.test: New completion
- _configured_interfaces: Parse from /etc/network/interfaces.d/* on Debian
- (test suite): Don't insist on loading all completions dynamically
- (test suite): Set dcop result to untested if dcop server is not running
- man: Don't check OSTYPE or GNU userland, just enable on all systems
- _user_at_host: Append @ suffix to username part completions
- _user_at_host: Set nospace only when completing username part
- bind: Add option and argument (non-)completions
- xine etc: Fix *.m4a association
- mplayer, xine, etc: Associate *.mp4a and *.mp4v
- mplayer: Remove duplicate *.m4a and *.m4v associations
- Revert "(test suite): Fix alias and cd cursor position tests"
- (test suite): Set TERM to dumb, not dummy
- (test suite): Test screen -T completions
- gm: New completion, commands only for now
- openssl: Add sha2 commands
- openssl: Parse available digests from dgst -h
- python: Fix traceback avoidance on module completion error
- test suite: Add Python module completion test case
- micropython: New completion, aliased from python
- python: Split module completion to separate helper
- test suite: Improve ls home dir test descriptions
- dpkg: Fix dpkg -i home dir completion
- test suite: Cosmetic tweaks
- test suite: Mark dpkg -L test case untested if no packages installed
- tar: Comment spelling fixes
- test suite: If colon trim doesn't do anything, trim as usual
- test suite: Ignore env var pulled in by use of scp in tests
- test suite: Fix ifdown and ifup CI test skipping
- test suite: Skip an expected make test case failure in centos6 CI
- Expose version in BASH_COMPLETION_VERSINFO, use it in profile.d script
- test suite: Mark expected centos6 CI _filedir failures as such


2.5		2017-02-04

- : Whitespace fixes
- Travis: zopfli is AWOL?
- make: Declare _make_target_extract_script like other functions
- : Move indentation settings to .editorconfig
- CONTRIBUTING: Reorder sections
- .ipa is just a zip file and we should let unzip handle it (#71)
- deja-dup: New completion
- perl: Remove full path to cat in PERLDOC_PAGER call
- mr: New completion
- travis: Add mr
- dd: Sync completions with coreutils 8.24
- mplayer: Associate with *.mjpg, *.mjpeg (Debian: #837779)
- ssh-keygen: support ed25519 keys (#79)
- ssh-keygen: Parse switches with _parse_usage, not _parse_help
- Add support for Include in ssh config (#70) (#80)
- ant: parse targets in imported buildfiles (#84)
- mr: Disable "clean" test case, command N/A before mr 1.20141023
- Support for python gui source files (#91)
- ip: Recognize address in addition to addr
- ip: Recognize a as alias for address and l for link
- Add sidedoor to _ssh() completion (#106)
- (test suite): Avoid loading user's ~/.bash_completion, fixes #87
- test/config/*: Delete trailing whitespace
- travis: Skip bluez and nis for now due to post-install script issues
- Fix bug in 'make' completion when using BSD sed (#108)
- ccache: fix completing compiler's flags
- Add more tests for ccache
- javac: Complete -cp like -classpath
- test suite: Add java/javac non-completion fixture
- Minor edits to README.md (mostly formatting) (#110)


2.4		2016-08-12

- tipc: add tipc completions
- CONTRIBUTING: Highlight request for test cases
- test suite: Add function and declare test cases
- mpv: Don't install symlink for it, fixes #24
- aclocal: Install completion for 1.14 and 1.15, fixes #25
- Better handling of typeset/declare
- Add tests for declare/typeset
- Support completing array variables and expansions
- tipc: add test framework
- tipc: merge functions into main
- tipc: use bash here string instead of echo
- tipc: remove unnecessary function _tipc_get_val()
- tipc: add command prefix to link sed
- The BitKeeper completion used the wrong set of commands
- man: Prioritize MANPATH, simplify, add fallback e.g. for busybox, fixes #28
- cppcheck: Complete filenames too for --platform
- tipc: use cur variable for flag completion
- tipc: readd call to complete command
- Use shell globbing instead of ls to source files in compat dir
- aspell, minicom, mysql: Replace use of ls with printf
- rpm: Fix --whatenhances arg completion
- make: Avoid a grep
- vncviewer: Cleanup shopt use, drop an eval
- aptitude: List packages using _apt_cache_packages, fixes #33
- tar: silence --version's stderr output
- test suite: Add bashcomp_bash env var for better control on tested bash
- Travis: First steps toward testing with OS X
- chroot: New (generic long options) completion, see #38
- pyvenv: New completion
- abook: Parse long options from command including full path
- test suite: Add basic pushd test case
- pushd: Use _cd completion for CDPATH support, closes #38
- Support pod document files for perldoc (#39)
- perl: Remove some duplicated code
- test suite: Add perldoc module+pod completion test case
- mysql: Avoid --default-character-set error with failglob, fixes #46
- tipc: remove unnecessary return values
- tipc: make loop variables local
- tipc: use double brackets in if conditions
- apache2ctl, aspell, make: Don't hardcode completion generator command
- python: Support -Q and -W arg completion without space
- xetex, xelatex, luatex, lualatex: Associate with tex files
- CONTRIBUTING: Note patch preferences if not using GitHub pull requests
- (test suite): Remove test/fixtures/_filedir/a"b from git, create on the fly
- (test suite): Remove Bash::Completion.3pm.gz from git, create on the fly
- (test suite): Fix fallout from fec077d555f112b9f455c45860f90a3b47392fcf
- tipc: suppress tipc error messages
- tipc: handle complete words without trailing space
- tipc: fix missing last char in link name completion
- tipc: Indentation fix
- tipc: Invoke ls with "command"
- (test suite): Pass assert_complete_any for exact/only given arg completed
- Travis: Install more packages for more test coverage
- hcitool,svcadm,tar: Spelling fixes
- pypy3: Alias to python
- pypy*: Add basic --jit arg completion
- : Remove redundant return 0's
- : Trivial cleanups
- pkg-get,pkgrm: Drop unnecessary _have calls
- jarsigner: Add some option arg (non)completions
- pkg-get: Don't use hyphens in function names
- lrzip: Add -m arg noncompletion
- javadoc: Add bunch of option arg (non)completions
- rpm: Offer --filetriggers with -q


2.3		2016-03-28

- lvm: fix all commands that should get all PVs
- lvm: pvcreate should be able to use all block devcices
- CONTRIBUTING.md: Ask for test cases
- make check: Test syntax of all completion files
- travis: configure and run completions syntax check
- Completion for python zip archives
- unzip, zipinfo: Complete on *.pyz
- test suite: Add some python test cases
- python: Complete all files only if -c is before current word
- python: Don't offer options after -c
- python: Complete all files also after -m
- python: Simplify code
- tar: Don't write to /tmp/jetel
- test suite: Add tar xvf filename test case
- tar: Fix GNU tar help output parsing regex, fixes #15
- tar: Remove unused variable
- tar: Detect GNU/other from --version only once per session
- test suite: Fix tar failure caused by previous tar change
- test suite: Tolerate "See 'man feh'" feh --help output
- test suite: Don't insist on property completions if synclient -l fails
- test suite: Fix abook test case
- : Use [:blank:] instead of $'\t ' tricks where appropriate, fixes #19
- gnokii: Use <<< instead of echo + pipe
- make: Use <<< instead of printf + pipe


2.2		2016-03-03

- feh: Add new sort type
- kcov: Add new sort types, complete --replace-src-path arguments
- Add config for cmake to bash-completion.
- _mac_addresses: Use explicit C locale for ifconfig (Debian: #704832).
- aclocal, automake: Install for *-1.10, *-1.12, and *-1.13 too.
- cvs rm: Don't filter existing files with -f (RedHat: #949479).
- Use == instead of =.
- nmcli completion was integrated upstream
- Revert "nmcli completion was integrated upstream"
- nmcli: Deprecate our completion, upstream has one in 0.9.8.0.
- sh: Complete script arguments with all filenames (Alioth: #314226).
- cvs: Fix checkout -j non-completion.
- Clean up/compact various globs.
- wget: Stop completing after --help/--version.
- wget: Drop incorrect -nv arg completion.
- wget: Add --accept-regex/--reject-regex/--regex-type arg (non)completions.
- perl*: Fix handling of relative paths in @INC.
- perl: Fix -dt: completion.
- hcitool, rfcomm, ciptool, hciconfig: Don't leak $args.
- 7z: New completion.
- file-roller: Reuse unzip's xspec.
- 2to3: New completion.
- perl: -d/-dt option argument is optional (Alioth: #314242)
- dpkg: Suppress unwanted error messages (Debian: #706502)
- cppcheck: Add new --enable option argument and --library argument completion
- export, _variables: Do TZ= completion (Redhat: #994646).
- Cosmetics.
- make: Use only posix basic regexps with sed (Alioth: #314345)
- _longopt: Run commands in C locale.
- aptitude: safe-upgrade accepts package name as parameters (Alioth: #313638, Debian: 673235)
- bzip2, gzip, lzma: Cleanups.
- zopfli: New completion.
- make: Fix basic regex for portability (Alioth: #314345)
- _known_hosts_real: Pre-expand \t instead of relying on sed supporting it (Alioth: #314393).
- dict: Trivial regex cleanup.
- abook, kldunload: Pre-expand \t instead of relying on sed supporting it.
- cc, c++: Install minimal completion for non-gcc ones (Alioth: #314417).
- cc, c++: Check path to binary when finding out if it's gcc (Alioth: #314417).
- f77, f95: Use the same completion as for g77, g95 if they are links to gfortran
- 7z: Improve completion
- mplayer: -dvd-devices takes dvd devices, dirs and .iso files as argument
- _known_hosts_real: Exclude %h HostName entries (RedHat: #1015935).
- timeout: New completion.
- complete on freerdp-specific known hosts list
- bts: New completion, thanks to Federico Ceratto.
- appdata-validate: New completion.
- uscan: New completion, thanks to Federico Ceratto
- Refactor bts and uscan, since they use common functions
- wtf: Hush stderr when db file doesn't exist.
- wtf: Don't offer -f if it was already specified.
- wtf: Look for acronym db from /usr/share/games/bsdgames/acronyms too.
- (testsuite): Limit wtf completions to A* to keep expect happier.
- cppcheck: Include - in --file-list completions.
- optipng: New completion.
- lz4: New completion.
- (testsuite) Check for grep and ls invoked without "command", see README
- lintian: Replace some grep+cuts with awk
- gcc, lintian, make, pkgadd, slackpkg: grep -> "command grep" (Debian: #734095)
- aptitude, dpkg: Replace some grep+cuts with awk
- ip: Add some addr, addrlabel, and route arg completions
- jpegoptim: New completion
- Bump copyright years to 2014.
- ssh-keygen: New completion
- portsnap: New completion.
- freebsd-update: New completion.
- testsuite: Add basic tests for portsnap and freebsd-update
- hwclock,ionice,rtcwake: Deprecate in favor of util-linux ones (Debian: #737672)
- _*: Install our deprecated completions too, try loading them secondarily
- testsuite: Add basic test cases for deprecated completions
- testsuite: Add basic newgrp test case
- cal,chfn,chsh,dmesg,eject,hexdump,look,newgrp,renice,runuser,su,write: Deprecate on Linux in favor of util-linux ones (Debian: #737672)
- pyflakes: New completion
- flake8: New completion
- ri: Fix colon handling in class completion.
- ri: Fix class completion with ri >= 3.
- (testsuite) Avoid complete-ant-cmd.pl errors with our build.xml
- FAQ: Clarify that we mean the bash man page for M-/
- profile.d: Don't return from a sourced script (Debian: #741657)
- man: Use -w instead of --path
- xrandr: Add (some) --setprovider* arg completion support
- xrandr: Use the invoked command internally, not hardcoded "xrandr"
- qemu: Apply completion to qemu-kvm/-system-i386/-system-x86_64 too
- qemu: Fix -balloon arg completion
- pngfix: New completion
- gdb: support --args style completion (Alioth: #314664)
- eog: Complete on *.pgm (RedHat: #1090481)
- nslookup: complete on hosts (Alioth: #314673)
- hostname: New completion
- pypy: New completion identical to python (Alioth: #314501)
- Use more straightforward way to check bash version
- dpkg: Add support in dpkg completion for .ddeb (LP: #568404)
- make: completion shouldn't be confused by the output of $(info confuse: make)
- Puppet: use puppet terminology
- Puppet: puppet -* doesn't imply 'puppet apply'
- Puppet: puppet parser support
- Puppet: agent: update options list, accordind to 'puppet help agent'
- Puppet: apply: update options list, accordind to 'puppet help apply'
- Puppet: cert: update options list, accordind to 'puppet help cert'
- Puppet: describe: update options list, accordind to 'puppet help describe'
- puppet: Exit early on -h|-V|--version in addition to --help
- puppet: Parse most subcommand options from "help subcommand" output
- puppet: Recognize some short options
- (testsuite) Add puppet subcommand option test case
- mpv: New completion alias + adjustments for mplayer (Debian: #749115)
- _services: README in sysv init dir is not a service
- __reassemble_comp_words_by_ref: Make work with failglob on (Alioth: #312741)
- psql: Tell psql to not load .psqlrc as it may change output format (Alioth: #314636)
- Quote unset array element to avoid globbing interference (Alioth: #314708)
- Various mostly array element unsetting fixes under failglob
- ssh-add, ssh-keygen: -? needs to be quoted under failglob (Alioth: #314709)
- Quote _filedir arguments when appropriate to prevent failglob failures
- slapt-src: split options from their arguments
- slapt-{get,src}: Fix issue with sed not being able to handle some characters
- gendiff: Quoting suffix pattern to avoid triggering failglob
- sbopkg, slapt-{get,src}: expand tilde in config file name
- slapt-src: Handle --config=FILE option properly
- _filedir_xspec: Fix with failglob on
- lvm: _lvm_count_args parameter must be quoted in order to failglob not to complain
- (testsuite) Add vgcreate test case for _lvm_count_args with failglob on
- _lvm: using a single-pattern case and invoking function according to words[1]
- umount: Fix mount points escaping/unescaping with Bash-4.3
- (testsuite): move testing of _linux_fstab() to umount.exp
- _parse_help: Fix failglob failures (Alioth: #314707)
- modprobe: fix params with multi-line descriptions
- modprobe: Try parsing help before using hardcoding option list
- ssh-add, ssh-keygen: -? needs to be quoted under failglob (take 2) (Alioth: #314709)
- isql: Fix failglob failure
- Added test/site.{bak,exp} to .gitignore
- adb: New completion
- (testsuite) Use 'set' command posix behaviour when saving env (Alioth: #314720)
- (testsuite) Save shell variables when saving env (Alioth: #314720)
- xz: Complete -T/--threads argument
- xmllint, xmlwf, xsltproc: Complete on *.dbk and *.docbook (Alioth: #314770)
- xsltproc. TODO fix for previous commit
- python(3): Add -X argument non-completion
- 7z, adb: Trivial cleanups
- ant: Don't offer more completions after options that exit
- (testsuite) Add ant -f <buildfile> test case
- ant: Support buildfile set in $ANT_ARGS (Alioth: #314735)
- mplayer, *xine: Complete on *.mts (Debian: #759219)
- rpmbuild: Complete *.spec on --clean (RedHat: #1132959)
- rpmbuild: Complete *.spec on --nobuild
- Comment update
- _completion_loader: Set empty command to _EmptycmD_ for cross version compat
- _init_completion: Handle cword < 0 (LP: #1289597)
- pigz, unpigz: Handle *.zz
- Protect various compgen invocations from -* leakage (Debian: #766163)
- (testsuite) Add cd in dir without subdirs or CDPATH test case
- _pnames: Add -s for producing (possibly) truncated names (RedHat: #744406)
- Actually install the lz4 completion
- _completion_loader: Protect compgen from -* leakage (Debian: #769399)
- gphoto2: Fix split argument handing, and colon treatment in --port args
- : Invoke command to be completed, not its basename
- gphoto2: Replace tail with awk
- ccache: Add -o/--set-config arg name completion
- chrome, firefox etc: Complete on *.pdf
- strings: Fix -T/--target arg completion with non-English locale
- upstart support for service completion
- (testsuite): Add mcrypt -a and -m argument completion tests
- mcrypt: Simplify -m arg completion
- tshark: Simplify cut usage
- createdb, dropdb: Drop -o default, it does not appear to do anything good here
- createuser: New completion
- dropuser: New completion
- profile.d: Avoid some warnings from shells in "nounset" mode (Debian: #776160)
- cppcheck: Option argument (non-)completion update
- reptyr: Rename file to _reptyr to avoid conflict with upstreamed completion
- tune2fs: Add missing return in -M arg completion
- synclient: New completion
- Drop reference to no longer used sysconf_DATA
- README: Add autotools and cmake tips
- README: Add cmake usage example
- README: Don't hardcode /etc in cmake fallback dir
- Revert "README: Don't hardcode /etc in cmake fallback dir"
- Load user completions from $BASH_COMPLETION_USER_DIR/completions
- 2015
- _filedir: Fix overquoted argument to compgen -d (RedHat: #1171396)
- _filedir: Remove unused variable
- make: Add __BASH_MAKE_COMPLETION__ variable
- _filedir: Avoid some unnecessary work with -d
- gnokii: New completion
- gnokii: Various minor and cosmetic fixes
- (testsuite): Add basic gnokii test case
- gnokii: Drop dead code
- gnokii: Fix completions of options that are prefixes for others
- gnokii: Include and install it
- make: Fix detection of intermediate targets where make has changed its database whitespace
- jshint: New completion
- tar: rework the completion completely
- bsdtar, tar: Remove symlinks from git, have make create them
- (testsuite) Add required "empty" dir for tar
- tar: Style tweaks
- tar: Plug $line var leak
- eog: Complete on *.ppm (RedHat: #1090481)
- Document how to avoid command_not_found_handler interference
- sysctl: Try parsing options from help before usage
- sysctl: Return early on --help, --version
- ssh: Add -Q argument completion
- ssh: Query ciphers and macs from ssh before hardcoded fallback
- ssh: Complete HostbasedKeyTypes,HostKeyAlgorithms,KexAlgorithms values
- checksec: New completion
- pdftotext: New completion
- pgrep, pidof, pkill, pwdx, vmstat: Add support for procps-ng
- __get_cword: avoid $index < 0 (Alioth: #315107)
- rpm: Add --whatenhances/recommends/suggests/supplements and --recommends/supplements completions
- modplug*: Associate *.oct and *.okt
- __load_completion: New function, use in _completion_loader and _xfunc
- mpv: Remove mplayer-aliased completion
- make: Offer hidden targets when it is clear that the user is trying to complete one of them
- ssh-copy-id: Offer only *.pub to -i
- sftp: Add -l arg non-completion
- scp, sftp: Fix querying ssh options
- scp, sftp: Complete -S on commands
- (testsuite) Ignore files generated by complete-ant-cmd.pl
- make: Don't pick up variables when makefile is reloaded
- Load completions also from $XDG_DATA_DIRS (RedHat: #1264094)
- chronyc: Add -6 option
- chronyc: Add missing subcommands
- chronyc: Update help text parsing
- chronyc: Wrap long lines
- chronyc: Parse command args from help output
- ssh: Avoid completing commands before hostname
- cppcheck: Add native to --platform completions
- minicom: Recognize user ~/.minirc.* as config files
- test suite: Fix ssh-copy-id test on old setups with no identities
- test suite: Expect failure in modinfo/modprobe if there are no modules
- Set up Travis
- test suite: Output tool log on failure in CI
- test suite: Make apt-get test less sensitive to available commands
- travis: Avoid Travis default ri, use distro one instead
- README: Update POSIX spec link
- Update URLs and various instructions to GitHub
- aclocal, automake: Install for versioned 1.14 and 1.15 executables
- build system: Switch to xz compressed tarball
- Drop references to bash-completion-devel@lists.alioth.debian.org
- README: Convert to markdown
- README: Split contributing to separate CONTRIBUTING doc
- Use command built-in to run sed to avoid any custom aliases
- test suite: Fix ssh partial hostname completion test
- travis: Run tests with --all to get some more useful output
- travis: Install more packages for [0-9][ab]* test coverage
- test suite: Use unsupported instead of xfail for modinfo/modprobe cases
- test suite: Mark unsupported look test case as such, not unresolved
- travis: Add note about (currently) N/A packages
- travis: Install more packages for c* test coverage
- travis: Install more packages for [de]* test coverage
- Modify all usages of 'sed' to be run with command bash builtin
- lint: Check for sed without "command"
- gnokii, minicom: Use grep through "command"
- mysql, puppet: sed portability fixes
- mysql: Fix --default-character-set completion with mariadb
- travis: Install more packages for [fg]* test coverage
- travis: Install more packages for [hi]* test coverage
- Update copyright year
- indent: Remove generic long option completion
- Don't complete hostnames found after Hostname in ~/.ssh/config
- travis: Install more packages for [jkl]* test coverage
- travis: Install more packages for m* test coverage
- travis: Install more packages for [op]* test coverage
- travis: Install more packages for [qr]* test coverage
- travis: Install more packages for [stuvw]* test coverage
- travis: Install more packages for [xyz]* test coverage
- Remove various comments related to bash versions we don't support
- ssh: Extract duplicate code to _ssh_configfile
- xmllint, xmlwf, xsltproc: Complete on Mallard *.page files
- README: Expand troubleshooting section somewhat
- README.md: Not need for autoreconf, fixes #11
- zopflipng: New completion
- README.md: Markdown tweaks
- README.md: More markdown tweaks
- make-changelog.py: Make work with Python 3
- make-changelog.py: flake8 fixes
- make-changelog.py: Fix footer line output
- make-changelog.py: Set myself in footer
- README.md: Note autoreconf need only in unprepared tarball


2.1		2013-04-05

- eog: New completion.
- wsimport: New completion.
- kcov: Add new sort types (introduced in kcov-9).
- kcov: Complete arguments of --limits option.
- Add .msi completion for Wine
- ssh: Add -O argument completion (Debian: #680652).
- Add more complete OpenDocument support to unzip completion.
- Add support for OOXML document format extensions to unzip completion.
- Fine tune previous commit.
- wine: Fix extension glob to work on its own.
- man: Add support for .lz man pages (RedHat: #839310).
- man: Trivial cleanups.
- clzip, pdlzip, plzip: New lzip alias completions.
- lzip: Do not append space after equal sign in long options.
- mussh: New completion.
- mount.linux: Add some new mount options intoduced in Linux 3.5
- mount.linux: Clean up mount options, remove duplicates.
- Remove trailing whitespace
- Remove more whitespace
- Trim trailing whitespace.
- slackpkg, slapt-get: Update the list of package sets.
- colormake: New make alias completion (LP: #743208, Debian: #682557).
- Ignore colormake symlink.
- opera: Handle options.
- mount.linux: Add options completion for davfs.
- evince: Evince supports opening .pdf.xz files (Alioth: #313739).
- Fix __reassemble_comp_words_by_ref for $COMP_CWORD == ${#COMP_WORDS[@]}
- valgrind: Add --soname-synonyms option arguments completion.
- eject: New completion.
- fusermount: Complete curlftpfs-mounts for "fusermount -u" (Debian: #685377)
- gphoto2: new completion
- nmcli: new completion
- cppcheck: Add new standards to --std option.
- make: convert make completion to use smarter parser
- Fixed tilde expanding in _filedir_xspec
- make: Do not append space if target is a filepath.
- tar: Fix detection if the $prev is a tar file.
- _parse_help, _parse_usage: Run commands in C locale.
- testsuite/_filedir: Remove the cruft from the a\$b->h unit test (Alioth: #313480)
- make: incremental completion for make with compact display
- make: Convert internal variable names to lowercase, indentation fix.
- lvm volumes: Complete on /dev/mapper/* (RedHat: #851787).
- tar: Don't take -I to mean bzip2.
- feh: Add new options introduced in feh-2.7.
- wget: New completion.
- wget: Fix completion of multiple tags for --{follow,ignore}-tags.
- useradd: Fix -k, -K, and --home-dir argument completions.
- useradd, usermod: Support comma separated -G/--groups arg completion.
- wget: Use == instead of =.
- cppcheck: Add --language/-x argument completion.
- new completion: svcadm
- new completion: pkg-get
- new completion: pkgadd
- new completion: pkgrm
- new completion: pkgutil
- better entry
- fix perms
- zathura: Add simple completion for zathura document viewer.
- gpg, mplayer: Restore correct options.
- lvm: Fix typo in option name: s/continguous/contiguous/.
- mplayer: Add -subcp argument completion.
- mplayer: Add some new option argument completions.
- mplayer: Cleanup.
- mplayer: Add opus to the list of supported formats.
- completions/Makefile.am: symlinks depends on $(DATA) to avoid race conditions
- _command_offset: Restore compopts properly (Alioth: #313890)
- Update copyright year and release number.
- _known_hosts_real: Filter ruptime stdout error spewage (Alioth: #313893).
- lv{create,resize,extend}, vg{create,reduce,extend,split}: Fix variable leaks.
- man: Fix -P/--pager full path arg completion.
- tcpdump: Fix -z full path arg completion.
- valgrind: Fix full path <command> arg completion.
- vgcreate: Add missing symlink.
- lvm: Take option args into account when counting args (RedHat: #860510).
- lvm: Add _lvm prefix to helper functions.
- mount: Fix parsing /etc/fstab on *BSD.
- feh: Fix list of background styles.
- mount.linux: Add options completion for nfs.
- mount.linux: Add some new mount options intoduced in Linux 3.7
- chronyc: New completion.
- scp: Treat strings with slash before colon or starting with [.~] as local.
- useradd,userdel,usermod: Add -R/--root arg completion.
- userdel: Add -h/--help non-completion.
- luseradd,lusermod,luserdel: New completions.
- man: Don't expand man page extensions too early.
- ssh: Add some -o and related arg completions.
- fix interface completion
- add -p option completion
- nc: New completion.
- tar: Simplify bzip patterns.
- tar: Recognize taz and tb2 as compressed tarballs.
- ncftp: Add option completion.
- Avoid sourcing dirs in completion loader to avoid fd leaks (RedHat: #903540).
- Brown paper bag fix for the previous commit.
- modprobe: Don't suggest installing already installed modules.
- ngrep: New completion.
- tshark: New completion.
- _mac_addresses: Fix with net-tools' ifconfig that outputs ether, not HWaddr.
- _mac_addresses: Try ARP cache with "ip neigh" if arp is not available.
- wol: Try "ip addr" before ifconfig for finding out broadcast addresses.
- _mac_addresses: Try local interfaces with "ip link" if ifconfig is N/A.
- _ip_addresses: Try with "ip addr" if ifconfig is not available.
- _available_interfaces: Without -a, try with "ip link" if ifconfig is N/A.
- dnsspoof,filesnarf,macof,sshow,tcpkill,tcpnice,urlsnarf: Fix -i completion.
- arpspoof,dsniff,ether-wake,nmap: Offer active interfaces only.
- modinfo: Use ,, for lowercasing instead of tr in a subshell.
- pydoc: New completion.
- pyflakes: New completion.
- python, pydoc: Add module completion.
- pydoc: Complete on keywords and topics.
- pylint: New completion.
- xrandr: Don't leak $i when completing --mode.
- xrandr: Cleanups.
- xrandr: Avoid --mode completion error when --output is not given.
- xrandr --mode: Clean up one awk call.
- xrandr: Use _parse_help.
- xrandr: Add bunch of option arg non-completions.
- vipw: Add -R/--root arg completion.
- host: Complete with known hosts.
- groupmems: Add -R/--root arg completion.
- acpi,chpasswd,dmesg,gkrellm,groupmems,hwclock,lastlog,pwd,vipw: Complete options even without "-" given.
- ip: Remove some stale TODOs.
- ip: Improve addr show and link show completions.
- _available_interfaces: Try with "ip link" if ifconfig is N/A also with -a.
- make: Don't leak $mode.
- (testsuite) Fix pwd unit test.
- make: Make work in POSIX mode.
- (testsuite) Make pydoc test more likely to work with our limited expect buffer size.
- cpio: Cleanups.
- cpio: Recognize pass thru when -p is bundled w/other options (RedHat: #912113).
- vpnc: Use _parse_help instead of hardcoding options, add basic test case.
- vpnc: Add bunch of option arg (non)completions.
- genisoimage: Use _parse_help instead of hardcoding options, add basic test case.
- : Line continuation, whitespace, and compgen -W ... -- "$cur" quoting cleanups.
- file-roller: New completion.
- strings: New completion.
- ss: New completion.
- hexdump: New completion.
- xxd: New completion.
- hexdump: Actually install for hd as well.
- udevadm: Deprecate ours, one is shipped in systemd >= 196 (RedHat: #919246).
- Fix __ltrim_colon_completions() fail on parameter (\$1) containing a glob.
- interdiff: New completion.
- koji: Complete on build targets when --target is given to wait-repo.
- lua: New completion.
- luac: New completion.
- pkg-config: Try to complete --variable= if package name is already given.
- tar: Fix completing files inside *.tlz when J is explicitly given.
- tar: Support *.tar.lz (Debian: #703599).
- patch: New full featured completion.
- unzip/zipinfo: Associate with more StarOffice extensions.
- jar: Reuse unzip's xspec (RedHat: #928253).
- cppcheck: Complete --include= with filenames.
- Fix helper script to create changelogs
- Releasing 2.1


2.0		2012-06-17

- sudo: Handle options (Alioth: #311414).
- sudo: Fix option list parsing
- sudoedit: New completion.
- ssh-add: New completion.
- pwd: New completion.
- _command_offset: Properly quote arguments of eval (Alioth: #313499).
- Fix completion loading when a symlink is sourced, thanks to Jonathan Nieder
- Revert "Fix completion loading when a symlink is sourced, thanks to Jonathan Nieder"
- mount.linux: Add some new mount options intoduced in Linux 3.0-3.2
- _modules: Ignore error messages.
- modprobe, modinfo, insmod: Move modprobe and modinfo completions to their own files.
- sbopkg: Use _parse_help.
- sbopkg, slackpkg, slapt-{get,src}: Use shorter form of the check if file exists.
- rmmod: Add option completions.
- testsuite/generate: Generate less linefeeds.
- insmod: Install for insmod.static too.
- mplayer: Add -monitoraspect arg completion.
- mplayer: Add generic handling of options that take arguments.
- Workaround bash bug that fails to complete <, >
- testsuite: Fix spurious modinfo and modprobe test failures on systems that have /lib and /lib64 dirs.
- _filedir: Properly quote paths to avoid unexpected expansion.
- Properly declare 'symlinks' dependencies
- pigz: Add -p/--processes arg completion.
- apt-get: add 'changelog' to completed commands
- Really complete 'changelog'
- su: Add linux-specific completion
- testsuite: Add basic su test case.
- su: Fix long option handling.
- su: Add --session-command arg completion.
- su: Complete -s/--shell with shells instead of all files.
- vmstat: New completion.
- lyx: Remove simple completion, upstream has more complete one (Debian: #662203)
- insmod, modprobe: Don't hardcode path to modinfo (Alioth: #313569)
- man: --path option is supported on Darwin (Alioth: #313584)
- man: Move variable declaration to the right place.
- testsuite/generate: Tweak linefeeds.
- acpi: New completion.
- hwclock: New completion.
- feh: Update option argument completions.
- fbi, feh: Complete more supported file formats.
- fbgs: Add new options introduced in fbida-2.09.
- cppcheck: Complete new --relative-paths option arguments
- ri: Rename ri_get_methods helper to add leading underscore
- _expand: Suppress unwanted bash error messages (Alioth: #313497)
- make: Add generic variable completion.
- man: Recognize 3gl as man page filename extension -- at least Mesa uses it.
- _realcommand: Try greadlink before readlink (Alioth: #313659).
- Comment spelling fix.
- Spelling fix.
- qiv: Add *.svg.
- xmllint: Add *.svgz.
- add xz compression extension for kernel modules
- autotools: Use MKDIR_P instead of mkdir_p (Alioth: #313671).
- lbzip2: Add -n argument completion.
- _tilde*: Escape tilde in [[ $1 == \~* ]] tests (RedHat: #817902).
- scp: Recognise symlinks to directories as directories (Debian: #666055).

