The following commit has been merged in the master branch:
commit 10f2c7bea5dc67531d832965c8b575023c046267
Author: Ville Skyttä <[email protected]>
Date:   Wed Apr 15 11:32:49 2009 +0300

    Use _split_longopt in _make.

diff --git a/CHANGES b/CHANGES
index ad02cb1..215e646 100644
--- a/CHANGES
+++ b/CHANGES
@@ -35,7 +35,7 @@ bash-completion (1.x)
   * Add _split_longopt() helper for improved handling of long options that
     take arguments in both "--foo bar" and "--foo=bar" formats.
   * Use _split_longopt to improve and clean up aspell, chgrp, chown, chkconfig,
-    and generic long option completion.
+    make, and generic long option completion.
   * Add chown --from and --reference value completions.
   * Add chgrp --reference value completion.
   * Do not assume all --foo= options take filenames in generic long option
diff --git a/bash_completion b/bash_completion
index d89e2c6..99b88e0 100644
--- a/bash_completion
+++ b/bash_completion
@@ -2966,52 +2966,39 @@ _route()
 have make || have gmake || have gnumake || have pmake &&
 _make()
 {
-       local file makef makef_dir="." makef_inc cur prev i
+       local file makef makef_dir="." makef_inc cur prev i split=false
 
        COMPREPLY=()
        cur=`_get_cword`
        prev=${COMP_WORDS[COMP_CWORD-1]}
 
-       # --name value style option
+       _split_longopt && split=true
+
        case $prev in
-               -@(f|o|W))
+               -@(f|o|W|-?(make)file))
                        _filedir
                        return 0
                        ;;
-               -@(I|C))
+               -I|-C|--directory|--include-dir)
                        _filedir -d
                        return 0
                        ;;
        esac
 
-       # --name=value style option
-       if [[ "$cur" == *=* ]]; then
-               prev=${cur/=*/}
-               cur=${cur/*=/}
-               case "$prev" in
-                       --@(file|makefile))
-                               _filedir
-                               return 0
-                               ;;
-                       --@(directory|include-dir))
-                               _filedir -d
-                               return 0
-                               ;;
-               esac
-       fi
+       $split && return 0
 
        if [[ "$cur" == -* ]]; then
                COMPREPLY=( $( compgen -W '-b -m -B -C -d -e -f -h -i -I\
                        -j -l -k -n -o -p -q -r -R - s -S -t -v -w -W \
-                       --always-make --directory= --debug \
-                       --environment-overrides --file= --makefile= --help \
-                       --ignore-errors --include-dir= --jobs --load-average \
+                       --always-make --directory --debug \
+                       --environment-overrides --file --makefile --help \
+                       --ignore-errors --include-dir --jobs --load-average \
                        --max-load --keep-going --just-print --dry-run \
-                       --recon --old-file= --assume-old= --print-data-base \
+                       --recon --old-file --assume-old --print-data-base \
                        --question --no-builtin-rules --no-builtin-variables \
                        --silent --quiet --no-keep-goind --stop --touch \
                        --version --print-directory --no-print-directory \
-                       --what-if= --new-file= --assume-new= \
+                       --what-if --new-file --assume-new \
                        --warn-undefined-variables' -- $cur ) )
        else
                # before we check for makefiles, see if a path was specified

-- 
bash-completion

_______________________________________________
Bash-completion-commits mailing list
[email protected]
http://lists.alioth.debian.org/mailman/listinfo/bash-completion-commits

Reply via email to