diff options
author | Ville Skyttä <ville.skytta@iki.fi> | 2011-12-14 21:54:49 +0200 |
---|---|---|
committer | Ville Skyttä <ville.skytta@iki.fi> | 2011-12-14 21:54:49 +0200 |
commit | a229ea46e701af1c8d55ae44bb61b025af00ec1e (patch) | |
tree | 6622002bb3e35a293aba12564ba86495d324d15e | |
parent | 2c4d20a02e3193470440b75032a8baf32a8a8a62 (diff) | |
download | bash-completion-a229ea46e701af1c8d55ae44bb61b025af00ec1e.tar.gz |
_parse_help, _parse_usage: More command arg sanitization.
http://thread.gmane.org/gmane.comp.shells.bash.completion.devel/3620
-rw-r--r-- | bash_completion | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/bash_completion b/bash_completion index ebebb8e0..84e43517 100644 --- a/bash_completion +++ b/bash_completion @@ -750,9 +750,12 @@ __parse_options() # _parse_help() { - eval local cmd=$1 + eval local cmd=$( quote "$1" ) local line - { case $cmd in -) cat ;; *) "$cmd" ${2:---help} 2>&1 ;; esac } \ + { case $cmd in + -) cat ;; + *) "$( dequote "$cmd" )" ${2:---help} 2>&1 ;; + esac } \ | while read -r line; do [[ $line == *([ $'\t'])-* ]] || continue @@ -772,9 +775,12 @@ _parse_help() # _parse_usage() { - eval local cmd=$1 + eval local cmd=$( quote "$1" ) local line match option i char - { case $cmd in -) cat ;; *) "$cmd" ${2:---usage} 2>&1 ;; esac } \ + { case $cmd in + -) cat ;; + *) "$( dequote "$cmd" )" ${2:---usage} 2>&1 ;; + esac } \ | while read -r line; do while [[ $line =~ \[[[:space:]]*(-[^]]+)[[:space:]]*\] ]]; do |