Control: tags 756417 + pending

Dear maintainer,

since deBPlugin is no longer able to handle control.tar members modern debs,
I've prepared an NMU for vim-scripts (versioned as 20130814+nmu1) and uploaded
it to DELAYED/7. Please feel free to tell me if I should delay it longer.

Cheers
-- 
Sebastian Ramacher
diff -Nru vim-scripts-20130814/debian/changelog vim-scripts-20130814+nmu1/debian/changelog
--- vim-scripts-20130814/debian/changelog	2013-08-15 05:58:11.000000000 +0200
+++ vim-scripts-20130814+nmu1/debian/changelog	2018-08-04 18:03:04.000000000 +0200
@@ -1,3 +1,11 @@
+vim-scripts (20130814+nmu1) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * debPlugin: Add support for compressed control members. Thanks to Guillem
+    Jover. (Closes: #756417)
+
+ -- Sebastian Ramacher <sramac...@debian.org>  Sat, 04 Aug 2018 18:03:04 +0200
+
 vim-scripts (20130814) unstable; urgency=low
 
   * Updated addons:
diff -Nru vim-scripts-20130814/debian/patches/deb.vim-xz.diff vim-scripts-20130814+nmu1/debian/patches/deb.vim-xz.diff
--- vim-scripts-20130814/debian/patches/deb.vim-xz.diff	2013-08-15 05:58:11.000000000 +0200
+++ vim-scripts-20130814+nmu1/debian/patches/deb.vim-xz.diff	2018-08-04 18:01:07.000000000 +0200
@@ -2,24 +2,98 @@
 Author: Jakub Wilk <jw...@debian.org>
 Bug-Debian: http://bugs.debian.org/644172
 
-diff --git a/autoload/deb.vim b/autoload/deb.vim
+---
+ autoload/deb.vim |   41 +++++++++++++++++++++++++++++++++++------
+ 1 file changed, 35 insertions(+), 6 deletions(-)
+
 --- a/autoload/deb.vim
 +++ b/autoload/deb.vim
-@@ -32,6 +32,8 @@
+@@ -26,12 +26,14 @@
+ 
+     let l:archmember = s:dataFileName(a:debfile) " default archive member to extract
+     if l:archmember == ""
+-        echohl WarningMsg | echo "***error*** (deb#read) no valid data file found in debian archive"
++        echohl WarningMsg | echo "***error*** (deb#read) no valid data member found in debian archive"
+         return
+     elseif l:archmember == "data.tar.gz"
          let l:unpcmp = "tar zxfO "
      elseif l:archmember == "data.tar.bz2"
          let l:unpcmp = "tar jxfO "
 +    elseif l:archmember == "data.tar.xz"
-+	let l:unpcmp = "tar JxfO "
++        let l:unpcmp = "tar JxfO "
      elseif l:archmember == "data.tar.lzma"
          if !s:hascmd("lzma")
              return
-@@ -230,7 +232,7 @@
+@@ -42,9 +44,18 @@
+     endif
+ 
+     if a:member =~ '^\* ' " information control file
+-        let l:archmember = "control.tar.gz"
+         let l:target = substitute(l:target, "^\* ", "", "")
+-        let l:unpcmp = "tar zxfO "
++        let l:archmember = s:controlFileName(a:debfile)
++        if l:archmember == ""
++            echohl WarningMsg | echo "***error*** (deb#read) no valid control member found in debian archive"
++            return
++        elseif l:archmember == "control.tar.gz"
++            let l:unpcmp = "tar zxfO "
++        elseif l:archmember == "control.tar.xz"
++            let l:unpcmp = "tar JxfO "
++        elseif l:archmember == "control.tar"
++            let l:unpcmp = "tar xfO "
++        endif
+     elseif a:member =~ ' -> ' " symbolic link
+         let l:target = split(a:member,' -> ')[0]
+         let l:linkname = split(a:member,' -> ')[1]
+@@ -151,7 +162,19 @@
+ 
+     " display information control files
+     let l:infopos = line(".")
+-    exe "silent read! ar p " . s:QuoteFile(a:file) . " control.tar.gz | tar zt"
++    let l:ctrlmember = s:controlFileName(a:file)
++    if l:ctrlmember == ""
++       echohl WarningMsg | echo "***error*** (deb#Browser) no valid control member found in debian archive"
++       return
++    elseif l:ctrlmember == "control.tar.gz"
++        let l:unpcmp = "tar zt "
++    elseif l:ctrlmember == "control.tar.xz"
++        let l:unpcmp = "tar Jt "
++    elseif l:ctrlmember == "control.tar"
++        let l:unpcmp = "tar t "
++    endif
++
++    exe "silent read! ar p " . s:QuoteFile(a:file) . " " . l:ctrlmember . " | " . l:unpcmp
+ 
+     $put=''
+ 
+@@ -227,16 +250,28 @@
+ 
+ endfun
+ 
++" return control file name for debian package. This can be either control.tar,
++" control.tar.gz or control.tar.xz
++fun s:controlFileName(deb)
++    return s:findFileName(a:deb, ["control.tar.gz", "control.tar.xz", "control.tar"])
++endfun
++
  " return data file name for debian package. This can be either data.tar.gz,
  " data.tar.bz2 or data.tar.lzma
  fun s:dataFileName(deb)
 -    for fn in ["data.tar.gz", "data.tar.bz2", "data.tar.lzma", "data.tar"]
-+    for fn in ["data.tar.gz", "data.tar.bz2", "data.tar.lzma", "data.tar.xz", "data.tar"]
++    return s:findFileName(a:deb, ["data.tar.gz", "data.tar.bz2", "data.tar.lzma", "data.tar.xz", "data.tar"])
++endfun
++
++" return a file name for debian package. This will be the first match from
++" the files passed as arguments.
++fun s:findFileName(deb, list)
++    for fn in a:list
          " [0:-2] is to remove trailing null character from command output
          if (system("ar t " . "'" . a:deb . "'" . " " . fn))[0:-2] == fn
              return fn
+         endif
+     endfor
+-    return "" " no debian data format in this archive
++    return "" " cannot find file in this debian archive
+ endfun
+ 
+ fun s:QuoteFile(file)

Attachment: signature.asc
Description: PGP signature

Reply via email to