about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--Completion/Debian/Command/_make-kpkg16
2 files changed, 20 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 5bff35308..303c04413 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2007-02-22  Clint Adams  <clint@zsh.org>
+
+	* 23183: Completion/Debian/Command/_make-kpkg:
+	complete comma-separated list of directories/modules
+	for --added-modules.
+
 2007-02-18  Peter Stephenson  <p.w.stephenson@ntlworld.com>
 
 	* unposted: Src/utils.c: document some limitations of
diff --git a/Completion/Debian/Command/_make-kpkg b/Completion/Debian/Command/_make-kpkg
index 3fd08638d..8d5eff037 100644
--- a/Completion/Debian/Command/_make-kpkg
+++ b/Completion/Debian/Command/_make-kpkg
@@ -1,10 +1,13 @@
 #compdef make-kpkg
 
+local context state line
+typeset -A opt_args
+
 _arguments \
    '--help[display help message]' \
    '--revision[change Debian revision number]:number:' \
    '--append-to-version[specify additional kernel sub-version]:suffix:' \
-   '--added-modules[specify add-on modules]:module list:' \
+   '--added-modules[specify add-on modules]:module list:->addedmodules' \
    '--added-patches[specify additional patches]:patches list' \
    '--arch[specify architecture for cross-compilation]:architecture' \
    '--cross-compile[specify target string]:target' \
@@ -42,4 +45,13 @@ _arguments \
         configure\:"configure the kernel" \
         debian\:"creates the debian/ directory" \
         libc-kheaders\:"create the kernel headers package needed by libc" \
-        ))'
+        ))' && return 0
+
+case "$state" in
+  (addedmodules)
+    compset -P '*,'
+    _alternative \
+      'moddirs:module dirs:_files -/ -S ,' \
+      'modules:loc module dirs:_files -/ -W ${MODULE_LOC:-/usr/src/modules} -S ,'
+  ;;
+esac