Package: bash-completion / 1:2.1-4.3

07-dpkg_support_raw-extract_vextract.patch Patch series | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
From: Uwe Storbeck <uwe@ibr.ch>
Subject: support more options for dpkg-deb
Origin: vendor, https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=698977
Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=698977
Forwarded: no

---
 completions/dpkg |   44 +++++++++++++++++++++++++++++++++++++++++---
 1 file changed, 41 insertions(+), 3 deletions(-)

--- bash-completion.orig/completions/dpkg
+++ bash-completion/completions/dpkg
@@ -32,7 +32,7 @@ _comp_dpkg_purgeable_packages()
 }
 }
 
-# Debian dpkg(8) completion
+# Debian dpkg(1) completion
 #
 _dpkg()
 {
@@ -54,7 +54,7 @@ _dpkg()
     case $prev in
         -c|-i|-A|-I|-f|-e|-x|-X|-W|--install|--unpack|--record-avail| \
         --contents|--info|--fsys-tarfile|--field|--control|--extract| \
-        --show)
+        --vextract|--show)
             _filedir '?(u|d)deb'
             return 0
             ;;
@@ -85,7 +85,45 @@ _dpkg()
     COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) )
     [[ $COMPREPLY == *= ]] && compopt -o nospace
 } &&
-complete -F _dpkg dpkg dpkg-deb dpkg-query
+complete -F _dpkg dpkg dpkg-query
+
+# Debian dpkg-deb(1) completion
+#
+_dpkg_deb()
+{
+    local cur prev words cword split
+    _init_completion -s || return
+
+    _expand || return 0
+
+    local i=$cword
+
+    # find the last option flag
+    if [[ $cur != -* ]]; then
+        while [[ $prev != -* && $i -ne 1 ]]; do
+            i=$((i-1))
+            prev=${words[i-1]}
+        done
+    fi
+
+    case $prev in
+        -c|-I|-W|-f|-e|-x|-X|-R|--contents|--info|--show|--field|--control| \
+        --extract|--vextract|--raw-extract|--fsys-tarfile)
+            _filedir '?(u|d)deb'
+            return 0
+            ;;
+        -b|--build)
+            _filedir -d
+            return 0
+            ;;
+    esac
+
+    $split && return
+
+    COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) )
+    [[ $COMPREPLY == *= ]] && compopt -o nospace
+} &&
+complete -F _dpkg_deb dpkg-deb
 
 # Debian GNU dpkg-reconfigure(8) completion
 #