From f196ed01763aa9fe16d1bd724d00ca44fda01d49 Mon Sep 17 00:00:00 2001 From: Rick Harris Date: Tue, 7 Jan 2014 01:40:03 -0600 Subject: [PATCH] Fix tab-completion of --flags under OS X --flags were not tab-completing under OS X. This was due to the whitespace collapsing regular expression using the '+' token (meaning one-or-more), which isn't supported in OS X's version of sed. Using the more portable ' *' instead of '[ ]+' fixes this. Additional cleanups * Remove unecessary embedding of tabs in the file (nova bash-complete doesn't emit tabs, so the regular expressions don't have to handle them) * Restore logic to exclude -h from tab-completion (was lost in last tab-completion cleanup) * Add similar exclude logic for -i Fixes bug 1266667 Change-Id: I7e1fe8382d9b5295d0bbc1cde2b89550d5a4e21c --- tools/nova.bash_completion | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tools/nova.bash_completion b/tools/nova.bash_completion index fefa79831..3c58d3493 100644 --- a/tools/nova.bash_completion +++ b/tools/nova.bash_completion @@ -9,10 +9,10 @@ _nova() prev="${COMP_WORDS[COMP_CWORD-1]}" if [ "x$_nova_opts" == "x" ] ; then - nbc="`nova bash-completion | sed -e "s/[ ]+/ /"`" - _nova_opts="`echo "$nbc" | sed -e "s/--[a-z0-9_-]*//g" -e "s/[ ]+/ /g"`" - _nova_flags="`echo " $nbc" | sed -e "s/ [^-][^-][a-z0-9_-]*//g" -e "s/[ ]+/ /g"`" - _nova_opts_exp="`echo "$_nova_opts" | sed -e "s/[ ]/|/g"`" + nbc="`nova bash-completion | sed -e "s/ *-h */ /" -e "s/ *-i */ /"`" + _nova_opts="`echo "$nbc" | sed -e "s/--[a-z0-9_-]*//g" -e "s/ */ /g"`" + _nova_flags="`echo " $nbc" | sed -e "s/ [^-][^-][a-z0-9_-]*//g" -e "s/ */ /g"`" + _nova_opts_exp="`echo "$_nova_opts" | tr ' ' '|'`" fi if [[ " ${COMP_WORDS[@]} " =~ " "($_nova_opts_exp)" " && "$prev" != "help" ]] ; then