r1240 - in /trunk/packages/vim-scripts: autoload/deb.vim debian/changelog debian/vim-scripts.status html/index.html html/plugin_debPlugin.vim.html

jamessan at users.alioth.debian.org jamessan at users.alioth.debian.org
Tue Apr 8 20:08:25 UTC 2008


Author: jamessan
Date: Tue Apr  8 20:08:25 2008
New Revision: 1240

URL: http://svn.debian.org/wsvn/pkg-vim/?sc=1&rev=1240
Log:
Update debPlugin

Modified:
    trunk/packages/vim-scripts/autoload/deb.vim
    trunk/packages/vim-scripts/debian/changelog
    trunk/packages/vim-scripts/debian/vim-scripts.status
    trunk/packages/vim-scripts/html/index.html
    trunk/packages/vim-scripts/html/plugin_debPlugin.vim.html

Modified: trunk/packages/vim-scripts/autoload/deb.vim
URL: http://svn.debian.org/wsvn/pkg-vim/trunk/packages/vim-scripts/autoload/deb.vim?rev=1240&op=diff
==============================================================================
--- trunk/packages/vim-scripts/autoload/deb.vim (original)
+++ trunk/packages/vim-scripts/autoload/deb.vim Tue Apr  8 20:08:25 2008
@@ -1,7 +1,7 @@
 " Vim autoload file for browsing debian package.
-" copyright (C) 2007, arno renevier <arenevier at fdn.fr>
+" copyright (C) 2007-2008, arno renevier <arenevier at fdn.fr>
 " Distributed under the GNU General Public License (version 2 or above)
-" Last Change: 2007 december 21
+" Last Change: 2008 april 1
 " 
 " Inspired by autoload/tar.vim by Charles E Campbell
 "
@@ -13,7 +13,237 @@
 if &cp || exists("g:loaded_deb") || v:version < 700
     finish
 endif
-let g:loaded_deb= "v1.3"
+let g:loaded_deb= "v1.4"
+
+fun! deb#read(debfile, member)
+
+    " checks if ar and tar are installed
+    if !s:hascmd("ar") || !s:hascmd("tar")
+        return
+    endif
+
+    let l:target = a:member
+
+    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"
+        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.lzma"
+        if !s:hascmd("lzma")
+            return
+        endif
+        let l:unpcmp = "lzma -d | tar xfO "
+    elseif l:archmember == "data.tar"
+        let l:unpcmp = "tar xfO "
+    endif
+
+    if a:member =~ '^\* ' " information control file
+        let l:archmember = "control.tar.gz"
+        let l:target = substitute(l:target, "^\* ", "", "")
+        let l:unpcmp = "tar zxfO "
+    elseif a:member =~ ' -> ' " symbolic link
+        let l:target = split(a:member,' -> ')[0]
+        let l:linkname = split(a:member,' -> ')[1]
+
+        if l:linkname =~ "^\/" " direct symlink: path is already absolute
+            let l:target = ".".l:linkname
+
+        else 
+        " transform relative path to absolute path
+
+            " first, get basename for target
+            let l:target = substitute(l:target, "\/[^/]*$", "", "")
+
+            " while it begins with ../
+            while l:linkname =~ "^\.\.\/" 
+
+                " removes one level of ../ in linkname
+                let l:linkname = substitute(l:linkname, "^\.\.\/", "", "")
+
+                " go one directory up in target
+                let l:target = substitute(l:target, "\/[^/]*$", "", "")
+            endwhile
+
+            let l:target = l:target."/".l:linkname
+        endif
+    endif
+    
+    " we may preprocess some files (such as man pages, or changelogs)
+    let l:preproccmd = ""
+        
+    "
+    " unzip man pages
+    "
+    if l:target =~ "\.\/usr\/share\/man\/.*\.gz$"
+        
+        " try to fail gracefully if a command is not available
+        if !s:hascmd("gzip")
+            return
+        elseif !s:hascmd("nroff") 
+            let l:preproccmd = "| gzip -cd"
+        elseif !s:hascmd("col")
+            let l:preproccmd = "| gzip -cd | nroff -mandoc"
+        else
+            let l:preproccmd = "| gzip -cd | nroff -mandoc | col -b"
+        endif
+    
+    "
+    " unzip other .gz files
+    "
+    elseif l:target =~ '.*\.gz$'
+        if !s:hascmd("gzip")
+            return
+        endif
+        let l:preproccmd = "| gzip -cd"
+    endif
+
+    " read content
+    exe "silent r! ar p " . s:QuoteFile(a:debfile) . " " . s:QuoteFile(l:archmember) . " | " . l:unpcmp . " - " . s:QuoteFile(l:target) . l:preproccmd
+    " error will be treated in calling function
+    if v:shell_error != 0
+        return
+    endif
+
+    exe "file deb:".l:target
+
+    0d
+
+    setlocal nomodifiable nomodified readonly
+
+endfun
+
+fun! deb#browse(file)
+
+    " checks if necessary utils are installed
+    if !s:hascmd("dpkg") || !s:hascmd("ar") || !s:hascmd("tar")
+        return
+    endif
+
+    " checks if file is readable
+    if !filereadable(a:file)
+        return
+    endif
+    if a:file =~ "'"
+        echohl WarningMsg | echo "***error*** (deb#Browse) filename cannot contain quote character (" . a:file . ")"
+        return
+    endif
+
+    let keepmagic = &magic
+    set magic
+
+    " set filetype to "deb"
+    set ft=deb
+
+    setlocal modifiable noreadonly
+
+    " set header
+    exe "$put ='".'\"'." deb.vim version ".g:loaded_deb."'"
+    exe "$put ='".'\"'." Browsing debian package ".a:file."'"
+    $put=''
+
+    " package info
+    "exe "silent read! dpkg -I ".a:file
+    "$put=''
+
+    " display information control files
+    let l:infopos = line(".")
+    exe "silent read! ar p " . s:QuoteFile(a:file) . " control.tar.gz | tar zt"
+
+    $put=''
+
+    " display data files
+    let l:listpos = line(".")
+    exe "silent read! dpkg -c ". s:QuoteFile(a:file)
+
+    " format information control list
+    " removes '* ./' line
+    exe (l:infopos + 1). 'd'
+    " add a star before each line
+    exe "silent " . (l:infopos + 1). ',' . (l:listpos - 2) . 's/^/\* /'
+    
+    " format data list
+    exe "silent " . l:listpos . ',$s/^.*\s\(\.\/\(\S\|\).*\)$/\1/'
+    
+    if v:shell_error != 0
+        echohl WarningMsg | echo "***warning*** (deb#Browse) error when listing content of " . a:file
+        let &magic = keepmagic
+        return
+    endif
+
+    0d
+
+    setlocal nomodifiable readonly
+    noremap <silent> <buffer> <cr> :call <SID>DebBrowseSelect()<cr>
+    let &magic = keepmagic
+
+endfun
+
+fun! s:DebBrowseSelect()
+    let l:fname= getline(".")
+
+    " sanity check
+    if (l:fname !~ '^\.\/') && (l:fname !~ '^\* \.\/')
+        return
+    endif
+    if l:fname =~ "'"
+        echohl WarningMsg | echo "***error*** (DebBrowseSelect) filename cannot contain quote character (" . l:fname . ")"
+        return
+    endif
+
+    " do nothing on directories
+    " TODO: find a way to detect symlinks to directories, to be able not to
+    " open them
+    if (l:fname =~ '\/$')
+        return
+    endif
+
+    " need to get it now since a new window will open
+    let l:curfile= expand("%")
+   
+    " open new window
+    new
+    wincmd _
+
+    call deb#read(l:curfile, l:fname)
+
+    if v:shell_error != 0
+        echohl WarningMsg | echo "***warning*** (DebBrowseSelect) error when reading " . l:fname
+        return
+    endif
+
+    filetype detect
+
+    " zipped files, are unziped in deb#read, but filetype may not
+    " automatically work.
+    if l:fname =~ "\.\/usr\/share\/man\/.*\.gz$"
+        set filetype=man
+    elseif l:fname =~ "\.\/usr\/share\/doc\/.*\/changelog.Debian.gz$"
+        set filetype=debchangelog
+    endif
+
+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"]
+        " [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
+endfun
+
+fun s:QuoteFile(file)
+    " we need to escape %, #, <, and >
+    " see :help cmdline-specialk
+    return "'" .  substitute(a:file, '\([%#<>]\)', '\\\1', 'g') . "'"
+endfun
 
 " return 1 if cmd exists
 " display error message and return 0 otherwise
@@ -26,190 +256,3 @@
     else
 endfu
 
-fun! deb#read(debfile, member)
-
-    " checks if ar and tar are installed
-    if !s:hascmd("ar") || !s:hascmd("tar")
-        return
-    endif
-
-    let l:archmember = "data.tar.gz" " default archive member to extract
-    let l:target = a:member
-
-
-    if a:member =~ '^\* ' " information control file
-        let l:archmember = "control.tar.gz"
-        let l:target = substitute(l:target, "^\* ", "", "")
-
-    elseif a:member =~ ' -> ' " symbolic link
-        let l:target = split(a:member,' -> ')[0]
-        let l:linkname = split(a:member,' -> ')[1]
-
-        if l:linkname =~ "^\/" " direct symlink: path is already absolute
-            let l:target = ".".l:linkname
-
-        else 
-        " transform relative path to absolute path
-
-            " first, get basename for target
-            let l:target = substitute(l:target, "\/[^/]*$", "", "")
-
-            " while it begins with ../
-            while l:linkname =~ "^\.\.\/" 
-
-                " removes one level of ../ in linkname
-                let l:linkname = substitute(l:linkname, "^\.\.\/", "", "")
-
-                " go one directory up in target
-                let l:target = substitute(l:target, "\/[^/]*$", "", "")
-            endwhile
-
-            let l:target = l:target."/".l:linkname
-        endif
-    endif
-    
-    let l:gunzip_cmd = ""
-        
-    "
-    " unzip man pages
-    "
-    if l:target =~ "\.\/usr\/share\/man\/.*\.gz$"
-        
-        " try to fail gracefully if a command is not available
-        if !s:hascmd("gzip")
-            return
-        elseif !s:hascmd("nroff") 
-            let l:gunzip_cmd = "| gzip -cd"
-        elseif !s:hascmd("col")
-            let l:gunzip_cmd = "| gzip -cd | nroff -mandoc"
-        else
-            let l:gunzip_cmd = "| gzip -cd | nroff -mandoc | col -b"
-        endif
-    
-    "
-    " unzip other .gz files
-    "
-    elseif l:target =~ '.*\.gz$'
-        if !s:hascmd("gzip")
-            return
-        endif
-        let l:gunzip_cmd = "| gzip -cd"
-    endif
-
-    " read content
-    exe "silent r! ar p " . "'" . a:debfile . "'" . " " . l:archmember . " | tar zxfO - '" . l:target . "'" . l:gunzip_cmd
-    " error will be treated in calling function
-    if v:shell_error != 0
-        return
-    endif
-
-    exe "file deb:".l:target
-
-    0d
-
-    setlocal nomodifiable nomodified readonly
-
-endfun
-
-fun! deb#browse(file)
-
-    " checks if necessary utils are installed
-    if !s:hascmd("dpkg") || !s:hascmd("ar") || !s:hascmd("tar")
-        return
-    endif
-
-    " checks if file is readable
-    if !filereadable(a:file)
-        return
-    endif
-
-    let keepmagic = &magic
-    set magic
-
-    " set filetype to "deb"
-    set ft=deb
-
-    setlocal modifiable noreadonly
-
-    " set header
-    exe "$put ='".'\"'." deb.vim version ".g:loaded_deb."'"
-    exe "$put ='".'\"'." Browsing debian package ".a:file."'"
-    $put=''
-
-    " package info
-    "exe "silent read! dpkg -I ".a:file
-    "$put=''
-
-    " display information control files
-    let l:infopos = line(".")
-    exe "silent read! ar p '" . a:file . "' control.tar.gz | tar zt"
-
-    $put=''
-
-    " display data files
-    let l:listpos = line(".")
-    exe "silent read! dpkg -c ".a:file
-
-    " format information control list
-    " removes '* ./' line
-    exe (l:infopos + 1). 'd'
-    " add a star before each line
-    exe "silent " . (l:infopos + 1). ',' . (l:listpos - 2) . 's/^/\* /'
-    
-    " format data list
-    exe "silent " . l:listpos . ',$s/^.*\s\(\.\/\(\S\|\).*\)$/\1/'
-    
-    if v:shell_error != 0
-        echohl WarningMsg | echo "***warning*** (deb#Browse) error when listing content of " . a:file
-        let &magic = keepmagic
-        return
-    endif
-
-    0d
-
-    setlocal nomodifiable readonly
-    noremap <silent> <buffer> <cr> :call <SID>DebBrowseSelect()<cr>
-    let &magic = keepmagic
-
-endfun
-
-fun! s:DebBrowseSelect()
-    let l:fname= getline(".")
-
-    " sanity check
-    if (l:fname !~ '^\.\/') && (l:fname !~ '^\* \.\/')
-        return
-    endif
-
-    " do nothing on directories
-    " TODO: find a way to detect symlinks to directories, to be able not to
-    " open them
-    if (l:fname =~ '\/$')
-        return
-    endif
-
-    " need to get it now since a new window will open
-    let l:curfile= expand("%")
-   
-    " open new window
-    new
-    wincmd _
-
-    call deb#read(l:curfile, l:fname)
-
-    if v:shell_error != 0
-        echohl WarningMsg | echo "***warning*** (DebBrowseSelect) error when reading " . l:fname
-        return
-    endif
-
-    filetype detect
-
-    " zipped files, are unziped in deb#read, but filetype may not
-    " automatically work.
-    if l:fname =~ "\.\/usr\/share\/man\/.*\.gz$"
-        set filetype=man
-    elseif l:fname =~ "\.\/usr\/share\/doc\/.*\/changelog.Debian.gz$"
-        set filetype=debchangelog
-    endif
-
-endfun

Modified: trunk/packages/vim-scripts/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-vim/trunk/packages/vim-scripts/debian/changelog?rev=1240&op=diff
==============================================================================
--- trunk/packages/vim-scripts/debian/changelog (original)
+++ trunk/packages/vim-scripts/debian/changelog Tue Apr  8 20:08:25 2008
@@ -7,9 +7,10 @@
       being run in other buffers.  Thanks to Marvin Renich for the patch fix.
       (Closes: #465330)
   * Updated addons:
-    - xmledit, surround
+    - xmledit, surround, debPlugin
   * New addons:
     - DetectIndent: Automatically detect indent settings (Closes: #471890)
+  * 
 
  -- James Vega <jamessan at debian.org>  Tue, 05 Feb 2008 17:06:54 -0500
 

Modified: trunk/packages/vim-scripts/debian/vim-scripts.status
URL: http://svn.debian.org/wsvn/pkg-vim/trunk/packages/vim-scripts/debian/vim-scripts.status?rev=1240&op=diff
==============================================================================
--- trunk/packages/vim-scripts/debian/vim-scripts.status (original)
+++ trunk/packages/vim-scripts/debian/vim-scripts.status Tue Apr  8 20:08:25 2008
@@ -354,7 +354,7 @@
 license:     GNU GPL, see /usr/share/common-licenses/GPL-2
 extras:      autoload/deb.vim syntax/deb.vim
 disabledby:  let loaded_debPlugin = 1
-version:     1.3
+version:     v1.4
 
 script_name: indent/python.vim
 addon:       python-indent

Modified: trunk/packages/vim-scripts/html/index.html
URL: http://svn.debian.org/wsvn/pkg-vim/trunk/packages/vim-scripts/html/index.html?rev=1240&op=diff
==============================================================================
--- trunk/packages/vim-scripts/html/index.html (original)
+++ trunk/packages/vim-scripts/html/index.html Tue Apr  8 20:08:25 2008
@@ -49,7 +49,7 @@
    <li><a href="syntax_mkd.vim.html">syntax/mkd.vim.html</a></li>
   </ul>
   <p>
-  Page generated on Tue, 08 Apr 2008 16:01:24 -0400
+  Page generated on Tue, 08 Apr 2008 16:07:28 -0400
 .
   </p>
  </body>

Modified: trunk/packages/vim-scripts/html/plugin_debPlugin.vim.html
URL: http://svn.debian.org/wsvn/pkg-vim/trunk/packages/vim-scripts/html/plugin_debPlugin.vim.html?rev=1240&op=diff
==============================================================================
--- trunk/packages/vim-scripts/html/plugin_debPlugin.vim.html (original)
+++ trunk/packages/vim-scripts/html/plugin_debPlugin.vim.html Tue Apr  8 20:08:25 2008
@@ -153,8 +153,8 @@
 <tr>
   <td class="lightbg"><b>&nbsp;script karma&nbsp;</b></td>
   <td>
-    Rating <b>6/3</b>,
-    Downloaded by 126  </td>
+    Rating <b>7/4</b>,
+    Downloaded by 267  </td>
 </tr>
 </table>
 <p>
@@ -204,6 +204,22 @@
     <th valign="top">release notes</th>
 </tr>
 <tr>
+        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=8517">deb.zip</a></td>
+    <td class="rowodd" valign="top" nowrap><b>v1.4</b></td>
+    <td class="rowodd" valign="top" nowrap><i>2008-04-02</i></td>
+    <td class="rowodd" valign="top" nowrap>7.0</td>
+    <td class="rowodd" valign="top"><i><a href="/account/profile.php?user_id=12828">arno. </a></i></td>
+    <td class="rowodd" valign="top" width="2000">fixes: could not open files with # or % in file name
<br>
<br>add support for data.tar.bz2, data.tar.lzma and data.tar</td>
+</tr>
+<tr>
+        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=8078">deb.zip</a></td>
+    <td class="roweven" valign="top" nowrap><b>1.3</b></td>
+    <td class="roweven" valign="top" nowrap><i>2007-12-21</i></td>
+    <td class="roweven" valign="top" nowrap>7.0</td>
+    <td class="roweven" valign="top"><i><a href="/account/profile.php?user_id=12828">arno. </a></i></td>
+    <td class="roweven" valign="top" width="2000">format man pages</td>
+</tr>
+<tr>
         <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=8032">deb.zip</a></td>
     <td class="rowodd" valign="top" nowrap><b>1.2</b></td>
     <td class="rowodd" valign="top" nowrap><i>2007-12-07</i></td>
@@ -271,8 +287,7 @@
           </td>
 
     <td align="right" valign="top">
-      	<a href="http://www.webconceptgroup.net"><img src="/images/logo_sponsor_wcg.jpg" width="131" height="30" border="0" alt="Sponsored by Web Concept Group Inc."></a>
-	<a href="http://sourceforge.net"><img src="http://sflogo.sourceforge.net/sflogo.php?group_id=8&type=1" width="88" height="31" border="0" alt="SourceForge.net Logo" /></a>
+      		<a href="http://sourceforge.net" rel="nofollow"><img src="http://sflogo.sourceforge.net/sflogo.php?group_id=8&type=1" width="88" height="31" border="0" alt="SourceForge.net Logo" /></a>
     </td>
 
     <td><img src="/images/spacer.gif" width="5" height="1" alt=""></td>




More information about the pkg-vim-maintainers mailing list