summaryrefslogtreecommitdiff
path: root/bash_completion
diff options
context:
space:
mode:
authorVille Skyttä <ville.skytta@iki.fi>2009-12-11 00:14:54 +0200
committerVille Skyttä <ville.skytta@iki.fi>2009-12-11 00:14:54 +0200
commit8f68300a0d97e9e9b3d2cd8740519d2e29233754 (patch)
tree3ae6c97d3dc628de28799a818c9fe91dfd189b46 /bash_completion
parentb8ffa2dc48f55a411a5fcd5d92c85ca73da976de (diff)
downloadbash-completion-8f68300a0d97e9e9b3d2cd8740519d2e29233754.tar.gz
Add wordbreak filtering to _count_args.
Diffstat (limited to 'bash_completion')
-rw-r--r--bash_completion13
1 files changed, 7 insertions, 6 deletions
diff --git a/bash_completion b/bash_completion
index 7e3403c3..55c8919f 100644
--- a/bash_completion
+++ b/bash_completion
@@ -728,15 +728,16 @@ _realcommand() {
# This function counts the number of args
-#
+# @param $1 chars Characters out of $COMP_WORDBREAKS which should
+# NOT be considered word breaks. See __reassemble_comp_words_by_ref.
_count_args()
{
- local i
+ local i cword words
+ __reassemble_comp_words_by_ref "$1" words cword
+
args=1
- for (( i=1; i < COMP_CWORD; i++ )); do
- if [[ "${COMP_WORDS[i]}" != -* ]]; then
- args=$(($args+1))
- fi
+ for i in "${words[@]:1:cword-1}"; do
+ [[ "$i" != -* ]] && args=$(($args+1))
done
}