[pacman-dev] [PATCH] bash-completion: use POSIX character classes in regular expressions
bash uses POSIX extended regular expressions via regex(3), which does not guarantee support for shorthand character classes. Although glibc supports it, msys2-runtime does not. Make sure the completion script works (hopefully) everywhere by being more portable. Fixes: https://github.com/msys2/MSYS2-packages/pull/1549 Original-patch-by: plotasse <platos@protonmail.ch> Signed-off-by: Eli Schwartz <eschwartz@archlinux.org> --- scripts/completion/bash_completion.in | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/completion/bash_completion.in b/scripts/completion/bash_completion.in index a1ab9fec..915004e2 100644 --- a/scripts/completion/bash_completion.in +++ b/scripts/completion/bash_completion.in @@ -24,7 +24,7 @@ _arch_ptr2comp() { } _arch_incomp() { - local r="\s-(-${1#* }\s|\w*${1% *})"; [[ $COMP_LINE =~ $r ]] + local r="[[:space:]]-(-${1#* }[[:space:]]|[[:alnum:]_]*${1% *})"; [[ $COMP_LINE =~ $r ]] } _pacman_keyids() { @@ -77,7 +77,7 @@ _makepkg() { _init_completion || return if [[ $prev = @(-p|--config) ]]; then compopt -o default - elif [[ ! $prev =~ ^-(-(config|help|key|version)$|\w*[Vh]) ]]; then + elif [[ ! $prev =~ ^-(-(config|help|key|version)$|[[:alnum:]_]*[Vh]) ]]; then opts=('allsource asdeps check clean cleanbuild config force geninteg help holdver ignorearch install key log needed noarchive nobuild nocheck nocolor noconfirm nodeps noextract noprepare noprogressbar nosign @@ -127,7 +127,7 @@ _pacman() { if [[ $? != 0 ]]; then _arch_ptr2comp core - elif [[ ! $prev =~ ^-\w*[Vbhr] && + elif [[ ! $prev =~ ^-[[:alnum:]_]*[Vbhr] && ! $prev = --@(cachedir|color|config|dbpath|help|hookdir|gpgdir|logfile|root|version) ]] then [[ $cur = -* ]] && _arch_ptr2comp ${o#* } common || -- 2.22.0
participants (1)
-
Eli Schwartz