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> script karma </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