summaryrefslogtreecommitdiffstats
path: root/contrib/bash_completion
diff options
context:
space:
mode:
authorAndres P <aepd87@gmail.com>2010-06-22 04:30:44 +0200
committerAllan McRae <allan@archlinux.org>2010-06-23 05:32:21 +0200
commit6f4f9c1b66ed859b3679d70e15c003ab4907b823 (patch)
tree883df5af577c55aea58ec2ccddda467db16fbaa6 /contrib/bash_completion
parent07a9effdd06345d09f09cdc92e23c937d8fa94b5 (diff)
downloadpacman-6f4f9c1b66ed859b3679d70e15c003ab4907b823.tar.gz
pacman-6f4f9c1b66ed859b3679d70e15c003ab4907b823.tar.xz
bash_completion: fix bash 3.2 incompatibility
To avoid errors with bash 3.2, compopt will be skipped if it's not a shell builtin. compopt is needed to not append slashes to package names that coincide with directories in PWD. This is currently not possible to fix in bash versions that do not support compopt, so these users will have to bear that regression. Signed-off-by: Andres P <aepd87@gmail.com> Signed-off-by: Allan McRae <allan@archlinux.org>
Diffstat (limited to 'contrib/bash_completion')
-rw-r--r--contrib/bash_completion17
1 files changed, 12 insertions, 5 deletions
diff --git a/contrib/bash_completion b/contrib/bash_completion
index 2713ba4d..1ec2cd53 100644
--- a/contrib/bash_completion
+++ b/contrib/bash_completion
@@ -52,10 +52,6 @@ _pacman_pkg() {
)"
}
-_pacman_file() {
- compopt -o filenames; _filedir 'pkg.tar.*'
-}
-
_pacman() {
local common core cur database prev query remove sync upgrade o
COMPREPLY=()
@@ -102,7 +98,18 @@ _pacman() {
true
}
+if [[ $(type -t compopt) = "builtin" ]]; then
+ _pacman_file() {
+ compopt -o filenames; _filedir 'pkg.tar.*'
+ }
+ complete -F _pacman -o default pacman
+else
+ _pacman_file() {
+ _filedir 'pkg.tar.*'
+ }
+ complete -F _pacman -o filenames -o default pacman
+fi
+
complete -F _makepkg -o default makepkg
-complete -F _pacman -o default pacman
# ex:et ts=2 sw=2 ft=sh