[PATCH 2/3] completion: add find_argument_and_value() function
- From
Stephen Boyd <bebarino@gmail.com>
- Date
- May 7, 2009, 06:18 UTC
- Message-ID
- <1241677093-29937-1-git-send-email-bebarino@gmail.com>
- In-Reply-To
- <1241676906-29783-1-git-send-email-bebarino@gmail.com>
Add a function to get arguments and their associated value. This is used by the config completion to find config file arguments.
Signed-off-by: Stephen Boyd <bebarino@gmail.com> ---
I'm not sure if this is correct. It works for the case I have, but others I'm not so sure. Let's just say I'm no bash expert.
contrib/completion/git-completion.bash | 25 +++++++++++++++++++++++++ 1 files changed, 25 insertions(+), 0 deletions(-)
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash index 72a16a1..f179cc8 100755 --- a/contrib/completion/git-completion.bash +++ b/contrib/completion/git-completion.bash @@ -618,6 +618,31 @@ __git_find_subcommand () done } +# __git_find_argument_and_value requires 1 argument +__git_find_argument_and_value () +{ + local word nextword argument c=1 + + while [ $c -lt $COMP_CWORD ]; do + word="${COMP_WORDS[c]}" + for argument in $1; do + if [ "${argument##--}" = "${word##--}" ]; then + nextword=${COMP_WORDS[$((c+1))]} + if [ "${nextword#-}" != "$nextword" ]; then + nextword= + fi + echo "$argument $nextword" + return + fi + if [ "${argument/=*/}" = "${word/=*/}" ]; then + echo "$word" + return + fi + done + c=$((++c)) + done +} + __git_has_doubledash () { local c=1
-- 1.6.3.rc4.29.g8146