From a229ea46e701af1c8d55ae44bb61b025af00ec1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20Skytt=C3=A4?= Date: Wed, 14 Dec 2011 21:54:49 +0200 Subject: _parse_help, _parse_usage: More command arg sanitization. http://thread.gmane.org/gmane.comp.shells.bash.completion.devel/3620 --- bash_completion | 14 ++++++++++---- 1 file 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 -- cgit v1.2.1