zsh-workers
 help / color / mirror / code / Atom feed
* PATCH: _dpkg improvements
@ 2000-06-04 18:27 Clint Adams
  0 siblings, 0 replies; 2+ messages in thread
From: Clint Adams @ 2000-06-04 18:27 UTC (permalink / raw)
  To: zsh-workers

Since -l, -L, -s, -S, -r, -P, -i, and their long equivalents
can take multiple arguments, and are mutually exclusive,
this makes completion for dpkg a bit more logical, though zsh
will still complete invalid options.

Index: Completion/Debian/_dpkg
===================================================================
RCS file: /cvsroot/zsh/zsh/Completion/Debian/_dpkg,v
retrieving revision 1.3
diff -u -r1.3 _dpkg
--- Completion/Debian/_dpkg	2000/04/05 11:28:09	1.3
+++ Completion/Debian/_dpkg	2000/06/04 18:16:26
@@ -1,6 +1,10 @@
 #compdef dpkg dpkg-deb
 
-_dpkg_deb_args=('(--build)-b[build archive]:directory:_files -/' \
+local _dpkg_deb_actions _dpkg_common_actions _dpkg_actions _dpkg_options
+local curcontext="$curcontext" state line expl ret
+typeset -A opt_args
+
+_dpkg_deb_actions=('(--build)-b[build archive]:directory:_files -/' \
            '(-b)--build:directory:_files -/' \
            '(--contents)-c[list contents]:Debian package:_files -g \*.deb' \
            '(-c)--contents:Debian package:_files -g \*.deb' \
@@ -16,45 +20,46 @@
            '(-X)--vextract[extract and list]:Debian package:_files -g \*.deb' \
            '--fsys-tarfile[output fs tarfile]:Debian package:_files -g \*.deb')
 
-_dpkg_common_args=('--help[show help]' \
+_dpkg_common_actions=('--help[show help]' \
            '--version[show version]' \
-           '--licence[show licensing]')
+           '(--license)--licence[show licencing]' \
+           '(--licence)--license[show licensing]')
 
-case "${words[1]:t}" in
-dpkg)
-_arguments -s '(--install)-i[install packages]:Debian package:_files -g \*.deb' \
-           '(-i)--install:Debian package:_files -g \*.deb' \
+_dpkg_actions=('(--install)-i[install packages]:*:Debian packages:->install' \
+           '(-i)--install:*:Debian packages:->install' \
            '--unpack[unpack package]:Debian package:_files -g \*.deb' \
-           '(--record-avail)-A[record available]:package file:_files' \
-           '(-A)--record-avail:package file:_files' \
            '--configure:package:_deb_packages installed' \
-           '(--remove)-r[remove package]:package:_deb_packages installed' \
-           '(-r)--remove:package:_deb_packages installed' \
-           '(--purge)-P[purge package]:package:_deb_packages installed' \
-           '(-P)--purge:package:_deb_packages installed' \
-           '--get-selections[get selections]:pattern:' \
-           '--set-selections[set selections]' \
+           '(--remove)-r[remove package]:*:package:->remove' \
+           '(-r)--remove:*:package:->remove' \
+           '(--purge)-P[purge package]:*:package:->purge' \
+           '(-P)--purge:*:package:->purge' \
+           '(--print-avail)-p[display available details]:packages:_deb_packages avail' \
+           '(-p)--print-avail:packages:_deb_packages avail' \
            '--update-avail[update available]:package file:_files' \
            '--merge-avail[merge available]:package file:_files' \
-           '--clear-avail[clear available]' \
+           '(--record-avail)-A[record available]:package file:_files' \
+           '(-A)--record-avail:package file:_files' \
            '--forget-old-unavail[forget uninstalled unavailable]' \
-           '(--status)-s[display package status]:packages:_deb_packages installed' \
-           '(-s)--status:packages:_deb_packages installed' \
-           '(--print-avail)-p[display available details]:packages:_deb_packages avail' \
-           '(-p)--print-avail:packages:_deb_packages avail' \
-           '(--listfiles)-L[list owned files]:packages:_deb_packages installed' \
-           '(-L)--listfiles:packages:_deb_packages installed' \
-           '(--list)-l[list packages]:packages:_deb_packages avail' \
-           '(-l)--list:packages:_deb_packages avail' \
-           '(--search)-S[search for file owner]:pattern:_files' \
-           '(-S)--search:pattern:_files' \
+           '--clear-avail[clear available]' \
+           '(--list)-l[list packages]:*:packages:->list' \
+           '(-l)--list:*:packages:->list' \
+           '(--status)-s[display package status]:*:packages:->status' \
+           '(-s)--status:*:packages:->status' \
            '(--audit)-C[check for broken pkgs]' \
            '(-C)--audit' \
-           '--abort-after[abort after errors]:number of errors:' \
+           '--get-selections[get selections]:pattern:' \
+           '--set-selections[set selections]' \
+	   '--yet-to-unpack[list uninstalled]' \
+           '(--listfiles)-L[list owned files]:*:packages:->listfiles' \
+           '(-L)--listfiles:*:packages:->listfiles' \
+           '(--search)-S[search for file owner]:*:pattern:->search' \
+           '(-S)--search:*:pattern:->search' \
            '--print-architecture[print target architecture]' \
            '--print-gnu-build-architecture[print GNU version of target architecture]' \
            '--print-installation-architecture[print host architecture]' \
-           '--compare-versions[compare version numbers]:expression:' \
+           '--compare-versions[compare version numbers]:expression:')
+
+_dpkg_options=('--abort-after[abort after errors]:number of errors:' \
            '--admindir=[data directory]:directory:_files -/' \
            '--root=[alternative root]:root:_files -/' \
            '--instdir=[change inst root but not data dir]:_files -/' \
@@ -72,15 +77,38 @@
            '-D+[debug options]:debug options:(h 1 2 3)' \
            '--debug=[debug options]:debug options:(help 1 2 3)' \
            '--ignore-depends=[ignore depends involving package]:package:_deb_packages avail' \
-           --{force,refuse,no-force}'--[forcing options]:what:(auto-select downgrade configure-any hold bad-path not-root overwrite overwrite-diverted depends-version depends confnew confold confdef confmiss conflicts architecture overwrite-dir remove-reinstreq remove-essential)' \
-           "$_dpkg_deb_args[@]" \
-           "$_dpkg_common_args[@]"
+           --{force,refuse,no-force}'--[forcing options]:what:(auto-select downgrade configure-any hold bad-path not-root overwrite overwrite-diverted depends-version depends confnew confold confdef confmiss conflicts architecture overwrite-dir remove-reinstreq remove-essential)')
+
+case "${words[1]:t}" in
+dpkg)
+_arguments -C -s "$_dpkg_actions[@]" \
+           "$_dpkg_deb_actions[@]" \
+           "$_dpkg_common_actions[@]" \
+           "$_dpkg_options[@]"
 ;;
 
 dpkg-deb)
-_arguments "$_dpkg_deb_args[@]" \
-           "$_dpkg_common_args[@]"
+_arguments "$_dpkg_deb_actions[@]" \
+           "$_dpkg_common_actions[@]"
 
 ;;
 
+esac
+
+case "$state" in
+  install)
+        _funcall ret _dpkg_$state && return ret
+        _arguments -C -s "$_dpkg_options[@]" \
+	   '*:Debian package:_files -g \*.deb'
+;;
+  remove|purge|status|listfiles)
+        _funcall ret _dpkg_$state && return ret
+  	_arguments -C -s "$_dpkg_options[@]" \
+	   '*:package:_deb_packages installed'
+;;
+  list)
+        _funcall ret _dpkg_$state && return ret
+        _arguments -C -s "$_dpkg_options[@]" \
+           '*:packages:_deb_packages avail' \
+;;
 esac


^ permalink raw reply	[flat|nested] 2+ messages in thread

* PATCH: _dpkg improvements
@ 2000-06-13 17:34 Clint Adams
  0 siblings, 0 replies; 2+ messages in thread
From: Clint Adams @ 2000-06-13 17:34 UTC (permalink / raw)
  To: zsh-workers

This adds -A "-*" to something very similar to what I posted before.

Index: Completion/Debian/_dpkg
===================================================================
RCS file: /cvsroot/zsh/zsh/Completion/Debian/_dpkg,v
retrieving revision 1.4
diff -u -r1.4 _dpkg
--- Completion/Debian/_dpkg	2000/06/04 18:32:19	1.4
+++ Completion/Debian/_dpkg	2000/06/13 17:29:28
@@ -1,7 +1,8 @@
 #compdef dpkg dpkg-deb
 
 local _dpkg_deb_actions _dpkg_common_actions _dpkg_actions _dpkg_options
-local curcontext="$curcontext" state line expl ret
+local _dpkg_options_recursive
+local curcontext="$curcontext" context state line expl ret
 typeset -A opt_args
 
 _dpkg_deb_actions=('(--build)-b[build archive]:directory:_files -/' \
@@ -28,7 +29,7 @@
 _dpkg_actions=('(--install)-i[install packages]:*:Debian packages:->install' \
            '(-i)--install:*:Debian packages:->install' \
            '--unpack[unpack package]:Debian package:_files -g \*.deb' \
-           '--configure:package:_deb_packages installed' \
+           '--configure:*:package:->configure' \
            '(--remove)-r[remove package]:*:package:->remove' \
            '(-r)--remove:*:package:->remove' \
            '(--purge)-P[purge package]:*:package:->purge' \
@@ -37,8 +38,8 @@
            '(-p)--print-avail:packages:_deb_packages avail' \
            '--update-avail[update available]:package file:_files' \
            '--merge-avail[merge available]:package file:_files' \
-           '(--record-avail)-A[record available]:package file:_files' \
-           '(-A)--record-avail:package file:_files' \
+           '(--record-avail)-A[record available]:*:package files:->record_avail' \
+           '(-A)--record-avail:*:package files:->record_avail' \
            '--forget-old-unavail[forget uninstalled unavailable]' \
            '--clear-avail[clear available]' \
            '(--list)-l[list packages]:*:packages:->list' \
@@ -57,7 +58,7 @@
            '--print-architecture[print target architecture]' \
            '--print-gnu-build-architecture[print GNU version of target architecture]' \
            '--print-installation-architecture[print host architecture]' \
-           '--compare-versions[compare version numbers]:expression:')
+           '--compare-versions[compare version numbers]:*:expression:->compare_versions')
 
 _dpkg_options=('--abort-after[abort after errors]:number of errors:' \
            '--admindir=[data directory]:directory:_files -/' \
@@ -79,12 +80,15 @@
            '--ignore-depends=[ignore depends involving package]:package:_deb_packages avail' \
            --{force,refuse,no-force}'--[forcing options]:what:(auto-select downgrade configure-any hold bad-path not-root overwrite overwrite-diverted depends-version depends confnew confold confdef confmiss conflicts architecture overwrite-dir remove-reinstreq remove-essential)')
 
+_dpkg_options_recursive=('(--recursive)-R[recursive]' '(-R)--recursive')
+
 case "${words[1]:t}" in
 dpkg)
 _arguments -C -s "$_dpkg_actions[@]" \
            "$_dpkg_deb_actions[@]" \
            "$_dpkg_common_actions[@]" \
-           "$_dpkg_options[@]"
+           "$_dpkg_options[@]" \
+	   "$_dpkg_options_recursive[@]"
 ;;
 
 dpkg-deb)
@@ -96,19 +100,39 @@
 esac
 
 case "$state" in
-  install)
+  install|record_avail)
         _funcall ret _dpkg_$state && return ret
-        _arguments -C -s "$_dpkg_options[@]" \
-	   '*:Debian package:_files -g \*.deb'
-;;
+        _arguments -C -A "-*" -s "$_dpkg_options[@]" \
+	   - recur \
+	   '(--recursive)-R[recursive]' \
+	   '(-R)--recursive' \
+	   ':directory:_files -/' \
+	   - nonrecur \
+	   ':Debian package:_files -g \*.deb'
+  ;;
   remove|purge|status|listfiles)
         _funcall ret _dpkg_$state && return ret
-  	_arguments -C -s "$_dpkg_options[@]" \
+  	_arguments -C -A "-*" -s "$_dpkg_options[@]" \
 	   '*:package:_deb_packages installed'
-;;
+  ;;
   list)
         _funcall ret _dpkg_$state && return ret
-        _arguments -C -s "$_dpkg_options[@]" \
-           '*:packages:_deb_packages avail' \
-;;
+        _arguments -C -A "-*" -s "$_dpkg_options[@]" \
+           '*:packages:_deb_packages avail'
+  ;;
+  compare_versions)
+        _funcall ret _dpkg_$state && return ret
+        _arguments -C -A "-*" -s "$_dpkg_options[@]" \
+	'2:version A:' \
+	'3:operator:(lt le eq ne ge gt lt-nl le-nl ge-nl gt-nl)' \
+	'4:version B:'
+  ;;
+  configure)
+        _funcall ret _dpkg_$state && return ret
+        _arguments -C -A "-*" -s '--configure' \
+	   "$_dpkg_options[@]" \
+	'(--pending)-a[pending packages]' \
+	'(-a)--pending' \
+	'*:package:_deb_packages installed'
+  ;;
 esac


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2000-06-13 18:50 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2000-06-04 18:27 PATCH: _dpkg improvements Clint Adams
2000-06-13 17:34 Clint Adams

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).