about summary refs log tree commit diff
diff options
context:
space:
mode:
authorOliver Kiddle <opk@users.sourceforge.net>2004-01-15 17:00:20 +0000
committerOliver Kiddle <opk@users.sourceforge.net>2004-01-15 17:00:20 +0000
commita06990cc45a47439b1527b7ced8b8aec44e65b10 (patch)
tree1ad18de2cfcf29df5750d2ab7bc64bce1009725c
parente51abdc7f4ff9088add35ab744e2e9a696d3ea16 (diff)
downloadzsh-a06990cc45a47439b1527b7ced8b8aec44e65b10.tar.gz
zsh-a06990cc45a47439b1527b7ced8b8aec44e65b10.tar.xz
zsh-a06990cc45a47439b1527b7ced8b8aec44e65b10.zip
19378: new update-rc.d completion avoid picking up README file as a service
-rw-r--r--ChangeLog4
-rw-r--r--Completion/Debian/Command/.distfiles1
-rw-r--r--Completion/Debian/Command/_update-rc.d28
-rw-r--r--Completion/Unix/Type/_services2
4 files changed, 34 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index c6fd6c10a..21dea7d74 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2004-01-15  Oliver Kiddle  <opk@zsh.org>
 
+	* 19378: Completion/Debian/Command/_update-rc.d,
+	Completion/Unix/Type/_services: complete for update-rc.d and avoid
+	picking up README files as services
+
 	* 19377 based on 19375 (Laurent Rineau):
 	Completion/Unix/Type/_email_addresses: handle better
 	situation where MH is not installed
diff --git a/Completion/Debian/Command/.distfiles b/Completion/Debian/Command/.distfiles
index bed75015a..5a4a6ce87 100644
--- a/Completion/Debian/Command/.distfiles
+++ b/Completion/Debian/Command/.distfiles
@@ -5,4 +5,5 @@ _bts	_bug
 _debchange _dpkg       _dpkg_source  _dput  _dupload
 _update-alternatives   _make-kpkg    _debfoster
 _auto-apt _debsign
+_update-rc.d
 '
diff --git a/Completion/Debian/Command/_update-rc.d b/Completion/Debian/Command/_update-rc.d
new file mode 100644
index 000000000..68b81dc72
--- /dev/null
+++ b/Completion/Debian/Command/_update-rc.d
@@ -0,0 +1,28 @@
+#compdef update-rc.d
+
+local curcontext="$curcontext" state line expl
+
+_arguments -C \
+  '-n[show actions without performing them]' \
+  '-f[force removal of symlinks]' \
+  '1:service:_services' \
+  '2:command:(remove defaults start stop)' \
+  '*::args:->args' && return
+
+case $words[2] in
+  defaults)
+    _message -e number 'sequence number'
+  ;;
+  remove)
+    _message 'no more arguments'
+  ;;
+  st*)
+    case ${words[CURRENT-1]} in
+      .) _wanted commands expl commands compadd start stop && return ;;
+      start|stop) _message -e number 'sequence number' ;;
+      *) _message -e runlevels run\ level ;;
+    esac
+  ;;
+esac
+
+return 1
diff --git a/Completion/Unix/Type/_services b/Completion/Unix/Type/_services
index 670aed05b..8e682bd52 100644
--- a/Completion/Unix/Type/_services
+++ b/Completion/Unix/Type/_services
@@ -8,7 +8,7 @@ if chkconfig --list > /dev/null 2>&1; then
   inits=( ${${${alls[1,(r)xinetd based*]}[1,-2]}/%[[:space:]]*/} )
   xinetds=( ${${${${alls[(r)xinetd based*,-1]}[2,-1]}/#[[:space:]]#}/%:*} )
 else
-  inits=( /etc/init.d/*(:t) )
+  inits=( /etc/init.d/*(-*:t) )
 fi
 
 _tags init xinetd