diff options
author | Ville Skyttä <ville.skytta@iki.fi> | 2011-07-08 00:34:57 +0300 |
---|---|---|
committer | Ville Skyttä <ville.skytta@iki.fi> | 2011-07-08 00:34:57 +0300 |
commit | 525d6e77ba1fe30e58761cee6aa1b88978a8f77d (patch) | |
tree | 6cbe3830226760c689ebf1807b4501d791ce40a5 | |
parent | d552dac063c73686dc8ba3c63999859dcb2c844a (diff) | |
download | bash-completion-525d6e77ba1fe30e58761cee6aa1b88978a8f77d.tar.gz |
Provide profile.d hook for per user disabling of bash_completion (Debian: #593835).
-rw-r--r-- | README | 8 | ||||
-rw-r--r-- | bash_completion.sh.in | 2 |
2 files changed, 10 insertions, 0 deletions
@@ -29,6 +29,14 @@ mechanism, i.e. does not automatically source shell scripts in it, you can source the $sysconfdir/profile.d/bash_completion.sh script in /etc/bashrc or ~/.bashrc. +The profile.d script provides a configuration file hook that can be +used to prevent loading bash_completion on per user basis when it's +installed system wide. To do this, turn off programmable completion +with "shopt -u progcomp" in $XDG_CONFIG_HOME/bash_completion +(~/.config/bash_completion if $XDG_CONFIG_HOME is not set), and turn +it back on for example in ~/.bashrc if you want to use programmable +completion for other purposes. + If you're using MacOS X, /etc/bashrc is apparently not sourced at all. In that case, you can put the bash_completion file in /sw/etc and add the following code to ~/.bash_profile: diff --git a/bash_completion.sh.in b/bash_completion.sh.in index a24f850b..2fb74625 100644 --- a/bash_completion.sh.in +++ b/bash_completion.sh.in @@ -4,6 +4,8 @@ # Check for recent enough version of bash. bash=${BASH_VERSION%.*}; bmajor=${bash%.*}; bminor=${bash#*.} if [ $bmajor -gt 4 ] || [ $bmajor -eq 4 -a $bminor -ge 1 ]; then + [ -r "${XDG_CONFIG_HOME:-$HOME/.config}/bash_completion" ] && \ + . "${XDG_CONFIG_HOME:-$HOME/.config}/bash_completion" if shopt -q progcomp && [ -r @pkgdatadir@/bash_completion ]; then # Source completion code. . @pkgdatadir@/bash_completion |