# Changelog


2.18.0		2026-07-05

This release comes with notable changes to the directories used for
looking up and sourcing completion recipes and helpers, allowing for
more flexibility and customization and fewer conflicts between things
shipping with bash-completion and third party/upstream/origin packages.
Files that come with bash-completion itself are located in directories
reserved for that use, their names ending with `-core` and
`-fallback`. Packages should continue install their files in the same
`completions` and `helpers` dirs like before; these directories
precede the bash-completion "core" ones in lookup order.
new concept of `startup` dirs has been introduced. Files from these
directories are sourced eagerly on bash-completion startup. This
replaces and allows for more flexibility than using the deprecated
`/etc/bash_completion.d` directory for this purpose.
See README.md for more information.

Features

- _comp__init: source system startup files earlier
- _comp_compgen_filedir: automatically add `-f` on _comp_compgen `-C` or `-P`
- _comp_compgen_filedir: support "filedir -X"
- _comp_compgen_sysv_services: factorize SysV service generation
- aclocal,automake: support versioned 1.17 executables
- aclocal,automake: support versioned 1.18 executables
- apt-*: update known options up to apt 3.2.0
- apt-cache: update known options up to apt 3.2.0
- apt-get: update known options up to apt 3.2.0
- apt-mark: update known options up to apt 3.2.0
- curlie: alias to curl
- curl: more option argument (non-)completions
- doas: add new completion
- doas: generate completions as if we're root
- helium: alias to chromium-browser
- inotifywait2: generate exclude filenames prefixed by `@`
- inotifywait: generate exclude filenames prefixed by @
- ip: Check /usr/share config path
- jq: --rawfile arg (non-)completion
- ogg123: associate opus extension
- pydoc: support versioned 3.13..15 executables
- python,pyvenv: support versioned 3.14 and .15 executables
- ssh-keygen: -M arg completion
- ssh-keygen: -Z argument completion
- ssh-keygen: update -t arg completions
- ssh-keygen: update -Y arg completions
- ssh: do not complete -P arg (tag)
- ssh: include proxy in -O arg completions
- ssh: more option arg (non-)completions
- sudo-rs,sudo.ws: alias to sudo
- sudo: more option argument (non-)completions
- support the "startup{,-core}" directory
- tmux: complete src/target session arguments
- tmux: complete target-session arguments
- xrdb: misc improvements

Bug Fixes

- _comp_compgen_services: fix no completions without sysvdir
- _comp_compgen_services: skip service status marks
- _comp_compgen_sysv_services: do not generate names in subdirs
- _comp_compgen: clear the variable when no completions are generated
- _comp_complete_service: fix init-script-action parsing
- _comp_complete_user_at_host: care about $cur starting with "-"
- _comp_load: deprecate unsuffixed "completions/&lt;cmd&gt;" w/o ".bash"
- _comp_load: drop support for "_&lt;cmd&gt;"
- _known_hosts: fix spacing of an error message
- _known_hosts: work around custom IFS
- _variable_assignments: exclude invalid timezones for "TZ"
- add compatibility wrapper for tail
- alternatives: work around localvar_inherit
- apt-get,ebtables,iptables,mplayer,service: avoid | and \| in sed
- apt-get,gpg{,2},ipmitool,screen: avoid \t, \r, \w in POSIX sed
- ccache: fix a wrong AWK condition
- cd: Complete from . on empty CDPATH entry
- cd: fix cdable_vars overwritten by another generator
- cd: work around bash-4.2 nounset
- compatdir: shadow compat files of the same name
- completion load precedence more
- export: complete options not at $1
- export: suffix "=" only when unique and already complete
- export: work around custom IFS
- fbgs,fbi: add mandatory semicolons before "}" in POSIX sed
- fix non-POSIX sed expressions
- gnokii: use double \\ in [...] for POSIX.1-2024 recommendation
- inotifywait: add `-t` in `noargopts`
- interdiff: move to fallback for the upstream completion
- invoke-rc.d: avoid using non-POSIX \| in sed
- invoke-rc.d: fix a bug of generating existing words
- ipstables,ebtables: fix filtering of chain names
- iscsiadm: separate merged options (--logoutall--show → --logoutall --show)
- jq: --indent arg range
- jq: missing hyphen in --monochrome-output
- lilo,mutt: remove unnecessary escaping \" in sed regexp
- lintian: fix variable leaks
- lintian: use compgen -X instead of sed with non-POSIX \&lt;\&gt;
- load from more new style completion dirs
- miscellaneous fixes after separation of directories
- nsupdate: fix typo "_comp_com{tp =&gt; pg}en"
- pkg-get: avoid double expansions
- pkg-get: do not check the command name as arguments
- pkg-get: localize variable "file" properly
- pkg-get: work around localvar_inherit
- pkg-get: work around nounset
- povray: work around bash-4.3 nounset
- shellcheck: avoid non-POSIX \> in sed regular expressions
- tox: move completion to fallback directory
- tshark: rename "_cmp_cmd_tshark__{ =&gt; mut_}{prefs,protocols}"
- update-rc.d: fix the usage of the X optarg
- xrandr: remove wrong \ from character range

Performance Improvements

- _comp_compgen_filedir_xspec: avoid double negation `!(!(...))`
- filedir_xspec: avoid double negation !(!(...)) in extglob
- nmcli: reduce uses of the "tail" command
- povray: use glob matching instead of grep


2.17.0		2025-10-31


Features

- _comp_backup_glob: add zsync .zs-old
- _comp_compgen_help: enhance for smartctl
- _comp_compgen: support `-P prefix` with adjusted `cur`
- _comp_compgen: support `-P prefix` with auto-adjusted `cur`
- _filedir: add `-f` to manually suffix / to directory names
- _filedir: add tests with `_comp_compgen -C`
- *sum: handle more common checksum filenames
- aptitude: update sub-commands
- associate .ogx and .oga with relevant programs
- brave: alias to chromium
- bsdtar: support .apk, .ipa and .hap
- coreutils: update for newer GNU coreutils
- curl: Complete IP addresses for --interface
- free: new completion
- fsnotifywait,fsnotifywatch: new, alias to inotifywait
- nload: new completion
- openssl: Complete encryption algos for `enc`
- openssl: show only standard commands
- pytest: complete --asyncio-mode arg
- pytest: complete --record-mode arg
- smartctl: update for smartmontools 7.5
- tmux: add a new completion
- unzip,zipinfo: Android split APK .apkm .apks .xapk
- unzip,zipinfo: generate *.crx (Google Chrome Extension archives)
- unzip,zipinfo: recognize HarmonyOS .hap
- wget: ipv6 addresses for --bind-address

Bug Fixes

- _comp_command_offset: work around nounset
- _comp_compgen: go to the original directory on compgen failure
- _comp_compgen: go to the original directory on compgen failure
- _comp_dequote: set the literal value to REPLY as a fallback
- _filedir: always set compopt -o filenames to quote special chars
- _filedir: apply trailing slashes with `-f`
- _umount,feh,sbopkg: check diretory name for "_comp_compgen -C"
- _umount,feh,sbopkg: check diretory name for `_comp_compgen -C`
- add miscellaneous fixes before implementing `_comp_compgen -P`
- brctl: fix quoting of the command name
- cd: fix the pattern matching
- cd: generate only cdable_vars containing valid directory paths
- cd: generate only cdable_vars containing valid directory paths
- convert: Try calling magick, for IM7
- convert: Try calling magick, for IM7
- feh: fix "nounset" error
- firefox: do not split longopt argument
- interfaces: trim [@link](https://github.com/link) from completions
- ip: Don't offer neighbour, only neighbor
- java,rsync,scp: handle quoted space in filepaths properly
- java,rsync,ssh: complete syntactically incomplete cur
- java,rsync,ssh: complete syntactically incomplete cur
- make,tshark: work around localvar_inherit
- make: work around custom IFS
- mdtool: fix usage of `compgen -G`
- mdtool: use `-f -X '!pat'` instead of `-G pat`
- openssl: Make command extraction from help portable for BSD sed.
- patch, truncate: Get help correctly on macos
- patch, truncate: Try getting help BSD style
- rcs: avoid unexpected pathname expansion
- rsync,scp: remove file-type marks from "ls -F" properly
- rsync,ssh,sshfs: do not generate regular files *'\' as dirs
- rsync,ssh,sshfs: do not generate regular files *'\' as dirs
- rsync: Try getting rsync arguments BSD style
- rsync: Try getting rsync arguments BSD style
- scp: fix a bug that `-F<prefix>[TAB]` did not complete at all
- scp: work around incomplete triple backslashes for remote paths
- ssh: consider the "door" indicator in "ls -F" on Solaris
- sshfs: work around bash-4.3 nounset
- ssh: work around localvar_inherit
- strings: work around nounset
- test/t/conftest.py: include the output of pwd to the env check
- tmux: fix usage parsing with git master tmux
- xfreerdp: Always try /list:kbd first
- xfreerdp: try `--list-kbd` as last resort
- xfreerdp: try `--list-kbd` as last resort

Performance Improvements

- _comp_delimited: add "$prefix" only when it is non-empty
- tar: cache the parse result of GNU tar help
- tar: parse the GNU tar help on initialization


2.16.0		2024-12-25


Features


Bug Fixes

- mfiutil: more link and style issues


2.15.0		2024-11-24


Features

- _comp_abspath: handle ".."
- _comp_compgen_filedir,_comp_compgen_filedir_xspec: don’t suggest . and ..
- associate unzip and friends with *.vsix
- curl: Complete "%", "-" for --trace[-ascii]
- curl: Complete files for --json, --write-out
- curl: Complete stdin "-" in file locations
- fprintd-*: new completions
- iftop: -G, -s, -L, and -o arg (non-)completions
- ip: complete ip ntable show
- java: enable .java filename completion for java command ([959ce82](https://github.com/scop/bash-completion/commit/959ce82920bf20329a4586a325dd4579f8d5b822)), closes [#1196](https://github.com/scop/bash-completion/issues/1196)
- openssl: Stop having subcommands hardcoded
- python,pyvenv: versioned 3.13 executable support
- set: more featureful completion
- slabtop: new completion
- tar: use long option compression options
- wine: complete with `*.bat` and `*.cmd`
- xv: associate with *.webp and *.pnm
- xxd: add -n, -o, and -R arg (non-)completions

Bug Fixes

- _comp_compgen: use `compgen -V array_name` in `bash &gt;= 5.3`
- _comp_expand_glob: set LC_COLLATE for the sorting order
- _comp_expand_glob: work around GLOBSORT in Bash 5.3
- compatdir: use _comp_expand_glob for the correct order
- curl: Complete all and category for --help
- dpkg: Add missing short option -R
- rsync,ssh: do not overescape spaces in remote filenames
- source files using absolute paths for absolute BASH_SOURCE
- tar: Complete added files with long opts
- update-alternatives: fix the "--help" parsing


2.14.0		2024-05-09


Features

- cryptsetup: complete --header with filenames
- env: complete commands and variable assignments
- env: treat `-*` as the command name after `-` and `--`
- env: treat `-*` as the command name after assignments
- ip: Complete 'route get' options
- ip: Complete addr add/change/replace options
- ip: Complete ip route list options
- ip: Complete link afstats command
- ip: Complete neigh add, del, change, replace
- ip: Complete route save/showdump
- iperf: --tos/-S argument completion
- ssh-copy-id: (non-)complete args to `-t` and `-F`
- ssh-keygen: complete -r/-Y specific -O args
- ssh-keyscan: complete -O argument

Bug Fixes

- _comp_{compgen,xfunc}: use `declare -F --` for arbitrary funcs
- _comp_{load,realcommand}: handle option-like command name
- available_interfaces: strip only trailing colon from entries
- bash_completion,conftest: use `complete -p --` for arbitrary cmds
- fio: engines completion
- ip: Complete link change as well as set
- ip: Don't stop at proxy and nomaster in neigh
- scp remote_files: do not filter generated paths with "$cur"
- scp remote_files: localize variable `cur`
- ssh-keygen: handling of bundled short options
- ssh-keygen: make work with custom IFS
- ssh-keygen: suggest -O arg completions depending on mode
- use -- to pass arbitrary cmdnames to `_comp_load`
- use `pathcmd=$(type -P -- "$1")` for arbitrary cmds


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
- 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`
- apt-get: prefer `apt-cache` in same dir as command
- b2sum: new completion
- bash_completion: add function _comp_compgen_ltrim_colon
- carton: support exec command completions
- dot: support filename extension .gv
- eog: add missing extension .heif
- eog: associate with `*.avif` and `*.webp`
- eog: associate with `*.heic` and `*.jxl`
- eog: associate with `*.pbm`
- feh: associate with y4m and heic/heif/avif
- feh: deassociate with avci/avcs
- hash: new completion
- ip: Add completion for monitor subcommand
- 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
- pytest: complete new --import-mode value
- scp,sftp: prefer `ssh` from same dir to resolve options etc
- ssh-copy-id,ssh-keygen: prefer `ssh` from same dir
- ssh: complete RequiredRSASize
- xrandr: comma separated `--setmonitor` third argument

Bug Fixes

- __load_completion: quoted compspec for variants
- _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`
- 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
- 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
- : complete commands when prefixed with a backslash
- ipcalc: new completion
- README.md: add introduction
- chromium-browser, firefox: complete on *.txt
- 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: 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
- tsig-keygen: new completion
- test/tsig-keygen: require command for test_options
- test/chown,sudo: parametrize special case test, improve xfail targeting
- 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
- test/cd: remove unused import
- extra/make-changelog: run through black
- : python type hint fixes and improvements
- test: drop redundant black args from docker runs
- test: install black for Python 3.6 too
- test: add flake8-bugbear
- test: shellcheck tweaks
- jarsigner: complete on *.apk too
- python: support executables with minor version
- _known_hosts_real: check that ruptime is present before calling
- ip: improve completion of route subcommands
- 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: require openssl command for option argument tests
- test: split dependencies requiring Python 3.6.1+ to requirements-dev.txt
- 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
- lintian: complete paths for Ubuntu's .ddeb and Debian's buildinfo files
- ip: add support for netns
- apt-get etc: use _apt_cache_packages from apt-cache
- : whitespace tweaks
- : argument interaction improvements
- 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
- 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
- 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: 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: add some option arg (non-)completions
- test/cd: fix test_dir_at_point for setups that repeat "trailer"
- test: generalize complete at point test
- nmap: fix option parsing with BSD sed
- carton: fix command parsing with BSD sed
- _filedir*: update link to bug-bash discussion on -X
- openssl: update -starttls completions
- : 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
- __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
- make: add bmake alias
- test/make: mark more cases as requiring command
- test: run lint tests on Travis in a quickish separate first stage
- 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
- : doc and comment link updates
- editorconfig: apply yaml settings to .yaml too
- test: add note about unescaped assert_complete single return values
- Source user completion only if it's a file
- nmap: simplify help scraping a bit, don't try to emit unnecessary newlines
- test: fix incorrect fixtures/shared/default xfails/expectations
- : run all shell code through shfmt -s
- apt-get: complete build-dep with dirs
- secret-tool: new completion
- apt-cache: avoid nonzero exit code from _apt_cache_packages
- _xfunc: simplify
- lftp: use "bookmark list" command to list bookmarks
- test: run pytest --verbose in docker
- test: drop not needed sudo on Travis
- test: run all Travis jobs on dist: bionic
- test/_filedir: fix shutil.rmtree on Python < 3.6
- test: replace some echos with printfs
- test: shfmt bashrc
- test: sync shfmt and shellcheck configs
- : use $ifs for storing/restoring $IFS
- test: try harder to restore environment and cwd on failures
- : use more arithmetic evaluation
- dpkg-deb: fix --show/-W completion
- dpkg-deb: add --raw-extract and -X arg completions
- 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
- 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
- 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: regex escape our magic mark for completeness
- .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
- _known_hosts_real: fix # handling in ssh configs
- _known_hosts_real: fix completion of Host entries after a wildcard etc
- CONTRIBUTING.md: add posix and nounset mode item
- _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
- __get_cword_at_cursor_by_ref: fix regression on bash 4.2
- test/inputrc: comment typo fix
- test/inputrc: do not set print-completions-horizontally
- unzip, zipinfo: complete *.aar
- _known_hosts_real: exclude Host negations
- test/ant: gitignore all target cache files
- _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
- pytest: rewrite in bash, support toplevel funcs, avoid nondef ones and classes
- 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
- timeout: fallback to _parse_usage from _parse_help
- test_ifup: accept short option completions too
- test: use one Dockerfile for all dists
- _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 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
- 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: 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
- 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
- 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
- java: make jar/zip listing work with unzip
- 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
- 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: always run tests which don't require tested command
- test: don't sort expected completion lists under the hood
- test: hush flake8-bugbear B010
- test: xfail MAC address completion without networking
- 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
- wine: install for wine-development and wine-stable too
- perltidy: associate *.t
- ssh: option and argument completion updates
- 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
- _variables: add TERM and LC_* completion
- cppcheck: Add new standards to --std option.
- 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
- 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
- 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
- gcc: support new --completion option
- 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
- lftp: Support completing arg of last bundled short option, handle -s
- xgamma: Comment spelling fix
- links: Install completion for links2 too
- _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
- _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
- 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
- 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
- [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
- 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
- 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: 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: Use make pytest docker executable env-configurable, default pytest-3
- test: Use /root/.local/bin/pytest on centos6 by default
- test: Use /root/.local/bin/pytest on ubuntu14 by default
- test: Make "generate" do the right thing with more partial args
- 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 support for pytest pre-test commands
- test: Add support for skipping individual tests based on shell command status
- test: .gitignore pytestdebug.log
- test: Add class level skipif based on bash exec result
- test: Log pexpect interaction to $BASHCOMP_TEST_LOGFILE if set
- test: Fixture reorganization
- test: Add ability to selectively ignore diffs in environment
- test: Implement load_completion_for using assert_bash_exec
- test: Mark xfreerdp as expected failure for now
- 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: Use more conventional Python file names for tests
- test: Add support for per-test env modifications
- test: Fix jq and scrub skipif commands
- test: Support setting cmd=None to require no command, for unit tests
- test: Use test_unit_* prefix for unit tests, to avoid name clashes
- gccgo: Add as a GCC completion target
- gcc: Add g++, gcc, gccgo, and gfortran *-7 aliases
- __load_completion: Avoid unnecessary lookups from nonexistent dirs
- unzip, zipinfo: Associate with *.whl
- test: Make case specific env entries shell code, not escaped
- test: Pylint fixes
- test: Remove kill, killall remnants
- nc: Add some more option (non-)completions
- test: Pylint fixes
- firefox etc: New non-xspec completion
- chromium-browser, google-chrome*: New non-xspec completion
- 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
- 7z: add .msi support
- dpkg: List held packages
- 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
- cancel: Add some option arg (non-)completions
- cancel: Split long line
- tar: Support completions for zstd compression extensions
- tar: Clean up some redundant code
- ssh-copy-id: Add -i and -o arg (non-)completions
- grpck: Add --root/-R arg completion
- grpck: Parse options with _parse_help, falling back to _parse_usage
- test: Add requirements.txt for installing dependencies
- _filedir_xspec: Fallback to suggesting all files if requested
- 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)
- tcpdump: Various option and their arg completion updates
- doc: Note email issues gateway
- Travis: Remove unused PYTEST env var
- pydocstyle: New completion
- _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
- 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: 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
- test: Add pre_cmds support for completion fixture
- 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
- ifstat: New completion
- iperf, iperf3: Add some option arg (non-)completions
- 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
- xm: Deprecate completion for obsolete command
- 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
- 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
- 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
- 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
- _included_ssh_config_files: doc grammar fixes
- _included_ssh_config_files: store found included files in an array
- : shellcheck error fixes
- make: quote eval array definitions to work around shellcheck SC1036 bug
- ri: shellcheck error fixes
- 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: add fixtures/make/extra_makefile to CLEANFILES


2.8		2018-03-17

- lftp: Support ~/.local/... bookmark location
- ktutil: Don't leak i and command environment variables
- uscan: Don't leak cword and words environment variables
- xm: Don't leak args and commands environment variables
- 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
- : Protect shopt reset from non-default $IFS
- alias: Fix completion followed by =
- oggdec: New completion
- Add support for .lzo extension (--lzop) to tar
- Add support for .lz4 extension to file-roller
- lsusb: New completion
- lspci: New completion
- 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
- test: Use prebuilt docker hub bash-completion images
- rfkill: Rename to _rfkill to avoid conflict with util-linux >= 2.31
- man: Don't use $MANPATH directly
- unzip, zipinfo: Associate *.gar
- pylint: Install for pylint-2 and pylint-3 too
- pylint: Invoke python3 to search for modules if command contains 3
- tox: New completion
- 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
- 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
- test: Work around broken centos/fedora postfix config in non-IPv6 setup
- Revert "travis: Don't build local docker images, use vskytta/bash-completion ones"
- 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
- _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
- : 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
- Makefile: update default compatdir
- pyflakes: Remove redundant xspec completion
- Make user completion file configurable, disable in tests


2.6		2017-06-27

- xine etc: Associate *.webm and *.weba
- mplayer: Associate *.weba
- xine etc: Associate uppercase *.WM[AV]
- Add missing sidedoor to .gitignore
- Bump copyright years
- eog: Associate with *.j2c and *.jpg2
- xv: Associate with *.j2c, *.j2k, *.jp2, *.jpf, and *.jpg2
- Travis: Switch tests to docker, update to Ubuntu 14
- 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
- (docker): Pull in missing fedoradev xvfb-run which dependency
- newlist: Parse options from --help, add some arg non-completions
- unshunt: Parse options from --help
- alpine: Parse opts from -h output, add some opt arg completions
- arch: Parse options from --help
- Don't offer * as configured interface when there are none
- 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
- 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
- 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
- micropython: New completion, aliased from python
- python: Split module completion to separate helper
- dpkg: Fix dpkg -i home dir completion
- tar: Comment spelling fixes
- Expose version in BASH_COMPLETION_VERSINFO, use it in profile.d script


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
- deja-dup: New completion
- perl: Remove full path to cat in PERLDOC_PAGER call
- mr: New completion
- dd: Sync completions with coreutils 8.24
- mplayer: Associate with *.mjpg, *.mjpeg
- ssh-keygen: support ed25519 keys
- ssh-keygen: Parse switches with _parse_usage, not _parse_help
- Add support for Include in ssh config (#70)
- ant: parse targets in imported buildfiles
- Support for python gui source files
- ip: Recognize address in addition to addr
- ip: Recognize a as alias for address and l for link
- Add sidedoor to _ssh() completion
- test/config/*: Delete trailing whitespace
- Fix bug in 'make' completion when using BSD sed
- ccache: fix completing compiler's flags
- Add more tests for ccache
- javac: Complete -cp like -classpath
- Minor edits to README.md (mostly formatting)


2.4		2016-08-12

- tipc: add tipc completions
- 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: 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
- 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
- pushd: Use _cd completion for CDPATH support, closes #38
- Support pod document files for perldoc
- perl: Remove some duplicated code
- 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
- 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"
- 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
- make check: Test syntax of all completion files
- Completion for python zip archives
- unzip, zipinfo: Complete on *.pyz
- 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
- tar: Fix GNU tar help output parsing regex, fixes #15
- tar: Remove unused variable
- tar: Detect GNU/other from --version only once per session
- : 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.
- aclocal, automake: Install for *-1.10, *-1.12, and *-1.13 too.
- cvs rm: Don't filter existing files with -f.
- 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.
- 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.
- 7z: New completion.
- file-roller: Reuse unzip's xspec.
- 2to3: New completion.
- perl: -d/-dt option argument is optional
- dpkg: Suppress unwanted error messages
- cppcheck: Add new --enable option argument and --library argument completion
- export, _variables: Do TZ= completion.
- Cosmetics.
- make: Use only posix basic regexps with sed
- _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
- _known_hosts_real: Pre-expand \t instead of relying on sed supporting it.
- 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.
- cc, c++: Check path to binary when finding out if it's gcc.
- 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.
- 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.
- cppcheck: Include - in --file-list completions.
- optipng: New completion.
- lz4: New completion.
- lintian: Replace some grep+cuts with awk
- gcc, lintian, make, pkgadd, slackpkg: grep -> "command grep"
- 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.
- hwclock,ionice,rtcwake: Deprecate in favor of util-linux ones
- _*: Install our deprecated completions too, try loading them secondarily
- cal,chfn,chsh,dmesg,eject,hexdump,look,newgrp,renice,runuser,su,write: Deprecate on Linux in favor of util-linux ones
- pyflakes: New completion
- flake8: New completion
- ri: Fix colon handling in class completion.
- ri: Fix class completion with ri >= 3.
- FAQ: Clarify that we mean the bash man page for M-/
- profile.d: Don't return from a sourced script
- 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
- eog: Complete on *.pgm
- nslookup: complete on hosts
- hostname: New completion
- pypy: New completion identical to python
- Use more straightforward way to check bash version
- dpkg: Add support in dpkg completion for .ddeb
- 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
- mpv: New completion alias + adjustments for mplayer
- _services: README in sysv init dir is not a service
- __reassemble_comp_words_by_ref: Make work with failglob on
- psql: Tell psql to not load .psqlrc as it may change output format
- Quote unset array element to avoid globbing interference
- Various mostly array element unsetting fixes under failglob
- ssh-add, ssh-keygen: -? needs to be quoted under failglob
- 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
- _lvm: using a single-pattern case and invoking function according to words[1]
- umount: Fix mount points escaping/unescaping with Bash-4.3
- _parse_help: Fix failglob failures
- 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
- isql: Fix failglob failure
- Added test/site.{bak,exp} to .gitignore
- adb: New completion
- xz: Complete -T/--threads argument
- xmllint, xmlwf, xsltproc: Complete on *.dbk and *.docbook
- 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
- ant: Support buildfile set in $ANT_ARGS
- mplayer, *xine: Complete on *.mts
- rpmbuild: Complete *.spec on --clean
- rpmbuild: Complete *.spec on --nobuild
- Comment update
- _completion_loader: Set empty command to _EmptycmD_ for cross version compat
- _init_completion: Handle cword < 0
- pigz, unpigz: Handle *.zz
- Protect various compgen invocations from -* leakage
- _pnames: Add -s for producing
- Actually install the lz4 completion
- _completion_loader: Protect compgen from -* leakage
- 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
- 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
- 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
- _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
- 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
- tar: Style tweaks
- tar: Plug $line var leak
- eog: Complete on *.ppm
- 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: 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
- 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
- make: Don't pick up variables when makefile is reloaded
- Load completions also from $XDG_DATA_DIRS
- 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
- Set up Travis
- 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
- 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
- Update copyright year
- indent: Remove generic long option completion
- Don't complete hostnames found after Hostname in ~/.ssh/config
- 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.
- 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.
- 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.
- 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"
- 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.
- make: incremental completion for make with compact display
- make: Convert internal variable names to lowercase, indentation fix.
- lvm volumes: Complete on /dev/mapper/*.
- 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
- Update copyright year and release number.
- _known_hosts_real: Filter ruptime stdout error spewage.
- 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.
- 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.
- 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.
- make: Make work in POSIX mode.
- cpio: Cleanups.
- cpio: Recognize pass thru when -p is bundled w/other options.
- vpnc: Add bunch of option arg (non)completions.
- : 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.
- 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.
- patch: New full featured completion.
- unzip/zipinfo: Associate with more StarOffice extensions.
- jar: Reuse unzip's xspec.
- cppcheck: Complete --include= with filenames.
- Fix helper script to create changelogs
- Releasing 2.1


2.0		2012-06-17

- sudo: Handle options.
- sudo: Fix option list parsing
- sudoedit: New completion.
- ssh-add: New completion.
- pwd: New completion.
- _command_offset: Properly quote arguments of eval.
- 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.
- 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 <, >
- _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
- 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
- insmod, modprobe: Don't hardcode path to modinfo
- man: --path option is supported on Darwin
- man: Move variable declaration to the right place.
- 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
- make: Add generic variable completion.
- man: Recognize 3gl as man page filename extension -- at least Mesa uses it.
- _realcommand: Try greadlink before readlink.
- 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.
- lbzip2: Add -n argument completion.
- _tilde*: Escape tilde in [[ $1 == \~* ]] tests.
- scp: Recognise symlinks to directories as directories.
