From f220a7df9bc9b607415b7975fce94517b035fc08 Mon Sep 17 00:00:00 2001 From: Florian Pritz Date: Mon, 16 Aug 2010 23:01:00 +0200 Subject: update Signed-off-by: Florian Pritz --- blazeblogger-git/PKGBUILD | 2 +- spampd/PKGBUILD | 8 +- spampd/rc-config | 2 +- spampd/rc-script | 8 +- todotxt/PKGBUILD | 6 +- vim/PKGBUILD | 242 +++++++++++++----- vim/gvim.desktop | 42 ++++ vim/gvim.install | 13 + vim/pythoncomplete.vim | 625 ++++++++++++++++++++++++++++++++++++++++++++++ vim/vimrc | 2 +- vim/xz.patch | 193 ++++++++++++++ weechat-git/PKGBUILD | 2 +- 12 files changed, 1067 insertions(+), 78 deletions(-) create mode 100644 vim/gvim.desktop create mode 100644 vim/gvim.install create mode 100644 vim/pythoncomplete.vim create mode 100644 vim/xz.patch diff --git a/blazeblogger-git/PKGBUILD b/blazeblogger-git/PKGBUILD index 62a9034..06ceb0e 100644 --- a/blazeblogger-git/PKGBUILD +++ b/blazeblogger-git/PKGBUILD @@ -1,7 +1,7 @@ # Contributor: Florian Pritz # Contributor: Abakus pkgname=blazeblogger-git -pkgver=20100328 +pkgver=20100628 pkgrel=1 pkgdesc="is a simple-to-use but capable CMS for the command line" arch=('any') diff --git a/spampd/PKGBUILD b/spampd/PKGBUILD index f9c7abd..9a60407 100644 --- a/spampd/PKGBUILD +++ b/spampd/PKGBUILD @@ -1,7 +1,7 @@ # Contributor: Florian "Bluewind" Pritz pkgname=spampd pkgver=2.30 -pkgrel=2 +pkgrel=3 pkgdesc="Spamassassin Proxy Daemon" arch=('any') url="http://www.worlddesign.com/index.cfm/rd/mta/spampd.htm" @@ -11,9 +11,6 @@ backup=(etc/conf.d/spampd) install=spampd.install source=("http://www.worlddesign.com/Content/rd/mta/$pkgname/$pkgname-$pkgver.tar.gz" rc-script rc-config) -md5sums=('742c6f2cb75db54e59d044a8ee40445f' - '769f8a73765a0e7d235c9909aeb7ede9' - '637c2d93f76ba90d217e2418af64c9ec') build() { cd "$srcdir/$pkgname-$pkgver" @@ -27,3 +24,6 @@ build() { } # vim:set ts=2 sw=2 et: +md5sums=('742c6f2cb75db54e59d044a8ee40445f' + 'da17b3904a63252931cfb5f02e6a089f' + 'f452cf5046abc218bffb1e951485d8f0') diff --git a/spampd/rc-config b/spampd/rc-config index 61d9b57..f80d59c 100644 --- a/spampd/rc-config +++ b/spampd/rc-config @@ -1,2 +1,2 @@ # for information see manpage or spampd --help -ARGS="--port=10025 --relayhost=127.0.0.1:10026 --tagall --rh --user spampd" +ARGS="--port=10025 --relayhost=127.0.0.1:10026 --tagall --rh --user spampd --group spampd --pid=/home/spampd/spampd.pid" diff --git a/spampd/rc-script b/spampd/rc-script index 364e064..7c4b059 100755 --- a/spampd/rc-script +++ b/spampd/rc-script @@ -4,11 +4,9 @@ . /etc/rc.d/functions . /etc/conf.d/spampd -PID=$(cat /var/run/spampd.pid) - start() { stat_busy "Starting Spampd" - /usr/bin/spampd $ARGS + su -l spampd -c "/usr/bin/spampd $ARGS" if [ $? -gt 0 ]; then stat_fail else @@ -19,11 +17,11 @@ start() { stop() { stat_busy "Stopping Spampd" - kill $PID + kill $(cat /home/spampd/spampd.pid) if [ $? -gt 0 ]; then stat_fail else - rm_daemon postfix + rm_daemon spampd stat_done fi } diff --git a/todotxt/PKGBUILD b/todotxt/PKGBUILD index 6ad0720..e377300 100644 --- a/todotxt/PKGBUILD +++ b/todotxt/PKGBUILD @@ -4,15 +4,15 @@ pkgname=todotxt _pkgname=todo.txt_cli -pkgver=2.4 +pkgver=2.6 pkgrel=1 pkgdesc="lifehacker.com's todo.sh script for maintaining a todo.txt file" url="http://ginatrapani.github.com/todo.txt-cli/" depends=('bash') install=$pkgname.install source=(http://cloud.github.com/downloads/ginatrapani/todo.txt-cli/$_pkgname-$pkgver.tar.gz) -md5sums=('74a9fa7d9c4270b6d1439ff3eee59774') -arch=('i686' 'x86_64') +md5sums=('1395ed8cdce96ef630c25522a7a11998') +arch=('any') license="GPL" build() { diff --git a/vim/PKGBUILD b/vim/PKGBUILD index 746c917..716a50a 100644 --- a/vim/PKGBUILD +++ b/vim/PKGBUILD @@ -1,77 +1,195 @@ -# $Id: PKGBUILD 68412 2010-02-12 20:04:30Z dgriffiths $ +# Contributor: Jan "heftig" Steffens # Maintainer: tobias [ tobias at archlinux org ] +# Maintainer: Daniel J Griffiths -pkgname=vim -_srcver=7.2 -_patchlevel=359 -pkgver=${_srcver}.${_patchlevel} +pkgbase=vim +pkgname=(vim gvim vim-runtime) +pkgver=7.2 +__hgrev=e12b9d992389 pkgrel=1 -pkgdesc='Vi Improved, a highly configurable, improved version of the vi text editor' -arch=(i686 x86_64) +arch=('i686' 'x86_64') license=('custom:vim') url="http://www.vim.org" -depends=('gpm' 'coreutils' 'perl') -makedepends=('wget' 'sed' 'grep' 'gettext') -backup=(etc/vimrc) -install=${pkgname}.install -# we need the extra-stuff to get all patches applied smoothly -source=(ftp://ftp.vim.org/pub/vim/unix/vim-${_srcver}.tar.bz2 \ - ftp://ftp.vim.org/pub/vim/extra/vim-${_srcver}-extra.tar.gz \ - ftp://ftp.vim.org/pub/vim/extra/vim-${_srcver}-lang.tar.gz \ - fetch_patches.sh fetch_runtime.sh vimrc archlinux.vim) -md5sums=('f0901284b338e448bfd79ccca0041254' '35e04482f07c57221c9a751aaa3b8dac' \ - 'd8884786979e0e520c112faf2e176f05' '6d7e8d7868e8bfaa9a5880cd9c439320' \ - '45c1c3c6aff7de0d8fc2a9d8cd5cec7d' '3f42c68545b5b1afb2e9a5b2731ef063' \ - '10353a61aadc3f276692d0e17db1478e') - -build() -{ - _versiondir="vim"$(echo ${_srcver} | sed "s/\.//") - # pull in patches from vim.org (or the src cache alternatively) - . ${srcdir}/fetch_patches.sh - . ${srcdir}/fetch_runtime.sh - get_patches || return 1 - - cd ${srcdir}/${_versiondir} - sed -i 's|^.*\(#define SYS_.*VIMRC_FILE.*"\) .*$|\1|' src/feature.h - sed -i 's|^.*\(#define VIMRC_FILE.*"\) .*$|\1|' src/feature.h - # build party - ./configure --prefix=/usr --localstatedir=/var/lib/vim --mandir=/usr/share/man \ - --with-compiledby=ArchLinux --with-features=big \ - --enable-gpm --enable-acl --with-x=no --disable-gui \ - --enable-multibyte --enable-cscope \ - --enable-perlinterp - #--with-global-runtime=/usr/share/vim --with-vim-name=vim \ +makedepends=('gpm' 'perl' 'python' 'ruby' 'libxt' 'desktop-file-utils' 'gtk2' + 'gettext' 'pkgconfig' 'mercurial' 'rsync' 'sed') +options=(force) +source=(pythoncomplete.vim::http://www.vim.org/scripts/download_script.php\?src_id=10872 + vimrc archlinux.vim gvim.desktop xz.patch) +md5sums=('6e7adfbd5d26c1d161030ec203a7f243' 'e57777374891063b9ca48a1fe392ac05' + '10353a61aadc3f276692d0e17db1478e' '2be104c0372dd6dae19cb7968c03cd4f' + '634bea72f47b608634419724a12b2505') + +__hgroot='http://vim.googlecode.com/hg/' +__hgrepo='vim' +__hgbranch='default' + +_versiondir="vim${pkgver//./}" + +##### Build ##### + +build() { + cd ${srcdir} + + msg2 'Checking out source from Mercurial...' + + if [[ -d ${__hgrepo} ]]; then + cd ${__hgrepo} + hg pull -b ${__hgbranch}|| warning 'hg pull failed!' + hg update -r ${__hgrev} || return 1 + else + hg clone -b ${__hgbranch} -u ${__hgrev} "${__hgroot}${__hgrepo}" ${__hgrepo} || return 1 + cd ${__hgrepo} + fi + + if (( $(hg id -n) < $(hg id -nr ${__hgbranch}) )); then + warning 'You are not building the latest revision!' + warning "Consider updating __hgrev to $(hg id -r ${__hgbranch})." + sleep 10 + fi + + cd .. + rm -rf vim-build gvim-build + rsync -a --exclude='.hg/' ${__hgrepo}/ vim-build || return 1 + + msg2 'Patching...' + + # define the place for the global (g)vimrc file (set to /etc/vimrc) + sed -i 's|^.*\(#define SYS_.*VIMRC_FILE.*"\) .*$|\1|' \ + vim-build/src/feature.h || return 1 + sed -i 's|^.*\(#define VIMRC_FILE.*"\) .*$|\1|' \ + vim-build/src/feature.h || return 1 + + msg2 'Building...' + + cp -a vim-build gvim-build || return 1 + + cd ${srcdir}/vim-build + + ./configure --prefix=/usr --localstatedir=/var/lib/vim \ + --mandir=/usr/share/man --with-compiledby=ArchLinux \ + --with-features=big --enable-gpm --enable-acl --with-x=no \ + --disable-gui --enable-multibyte --enable-cscope \ + --disable-netbeans --enable-perlinterp --disable-pythoninterp \ + --disable-rubyinterp || return 1 + + make || return 1 + + cd ${srcdir}/gvim-build + + ./configure --prefix=/usr --localstatedir=/var/lib/vim \ + --mandir=/usr/share/man --with-compiledby=ArchLinux \ + --with-features=big --enable-gpm --enable-acl --with-x=yes \ + --enable-gui=gtk2 --enable-multibyte --enable-cscope \ + --enable-netbeans --enable-perlinterp --enable-pythoninterp \ + --enable-rubyinterp || return 1 + make || return 1 - make VIMRCLOC=/etc DESTDIR=${pkgdir} install - cd ${pkgdir}/usr/bin - rm ex view # provided by (n)vi in core - mv vim vim-normal # we create a vim-symlink on post_install - ln -sf vim-normal vim - # ... make g* related symlinks point directly to the actual binary - ln -sf vim-normal rview - ln -sf vim-normal rvim - ln -sf vim-normal vimdiff +} + +##### Packaging ##### + +package_vim() { + pkgdesc='Vi Improved, a highly configurable, improved version of the vi text editor' + depends=("vim-runtime=${pkgver}-${pkgrel}" 'gpm' 'perl') + conflicts=('gvim') + + cd ${srcdir}/vim-build + make -j1 VIMRCLOC=/etc DESTDIR=${pkgdir} install || return 1 + + # provided by (n)vi in core + rm ${pkgdir}/usr/bin/{ex,view} # delete some manpages - find ${pkgdir}/usr/share/man -type d -name 'man1' 2> /dev/null | \ - while read mandir; do - cd ${mandir} - rm -f ex.1 view.1 # provided by (n)vi - rm -f evim.1 # this does not make sense in the console version + find ${pkgdir}/usr/share/man -type d -name 'man1' 2>/dev/null | \ + while read _mandir; do + cd ${_mandir} + rm -f ex.1 view.1 # provided by (n)vi + rm -f evim.1 # this does not make sense if we have no GUI done + # Runtime provided by runtime package + rm -r ${pkgdir}/usr/share/vim + + # license + install -dm755 ${pkgdir}/usr/share/licenses/vim + ln -s /usr/share/vim/${_versiondir}/doc/uganda.txt \ + ${pkgdir}/usr/share/licenses/vim/license.txt +} + +package_gvim() { + pkgdesc='Vi Improved, a highly configurable, improved version of the vi text editor (with advanced features, such as a GUI)' + depends=("vim-runtime=${pkgver}-${pkgrel}" 'gpm' 'perl' 'python' 'ruby' 'libxt' + 'desktop-file-utils' 'gtk2') + provides=("vim=${pkgver}-${pkgrel}") + conflicts=('vim') + install=gvim.install + + cd ${srcdir}/gvim-build + make -j1 VIMRCLOC=/etc DESTDIR=${pkgdir} install || return 1 + + # provided by (n)vi in core + rm ${pkgdir}/usr/bin/{ex,view} + + # delete some manpages + find ${pkgdir}/usr/share/man -type d -name 'man1' 2>/dev/null | \ + while read _mandir; do + cd ${_mandir} + rm -f ex.1 view.1 # provided by (n)vi + done + + # Move the runtime for later packaging + mv ${pkgdir}/usr/share/vim ${srcdir}/runtime-install + + # freedesktop links + install -Dm644 ${srcdir}/gvim.desktop \ + ${pkgdir}/usr/share/applications/gvim.desktop + install -Dm644 runtime/vim48x48.png ${pkgdir}/usr/share/pixmaps/gvim.png + + # license + install -dm755 ${pkgdir}/usr/share/licenses/gvim + ln -s /usr/share/vim/${_versiondir}/doc/uganda.txt \ + ${pkgdir}/usr/share/licenses/gvim/license.txt +} + +package_vim-runtime() { + pkgdesc='Runtime for vim and gvim' + backup=(etc/vimrc) + + # Install the runtime split from gvim + install -dm755 ${pkgdir}/usr/share + mv ${srcdir}/runtime-install ${pkgdir}/usr/share/vim + + # Don't forget logtalk.dict + install -Dm644 ${srcdir}/gvim-build/runtime/ftplugin/logtalk.dict \ + ${pkgdir}/usr/share/vim/${_versiondir}/ftplugin/logtalk.dict || return 1 + # fix FS#17216 sed -i 's|messages,/var|messages,/var/log/messages.log,/var|' \ ${pkgdir}/usr/share/vim/vim72/filetype.vim - _runtimedir="${pkgdir}/usr/share/vim/${_versiondir}/" - update_runtime - cd ${srcdir}/${_versiondir} - install -Dm644 ${srcdir}/vimrc ${pkgdir}/etc/vimrc - install -Dm644 ${srcdir}/archlinux.vim \ - ${pkgdir}/usr/share/vim/vimfiles/archlinux.vim - install -dm755 ${pkgdir}/usr/share/licenses/vim - cd ${pkgdir}/usr/share/licenses/vim - ln -s ../../vim/${_versiondir}/doc/uganda.txt license.txt + # patch filetype.vim for better handling of pacman related files + sed -i "s/rpmsave/pacsave/;s/rpmnew/pacnew/;s/,\*\.ebuild/\0,PKGBUILD*,*.install/" \ + ${pkgdir}/usr/share/vim/vim72/filetype.vim + sed -i "/find the end/,+3{s/changelog_date_entry_search/changelog_date_end_entry_search/}" \ + ${pkgdir}/usr/share/vim/vim72/ftplugin/changelog.vim + + # patch runtime for better support of .*.xz files + cd ${pkgdir}/usr/share/vim + patch -p0 < ${srcdir}/xz.patch || return 1 + + # make Aaron happy + install -Dm644 ${srcdir}/pythoncomplete.vim \ + ${pkgdir}/usr/share/vim/vim72/autoload/pythoncomplete.vim + + # rc files + install -Dm644 ${srcdir}/vimrc ${pkgdir}/etc/vimrc + install -Dm644 ${srcdir}/archlinux.vim \ + ${pkgdir}/usr/share/vim/vimfiles/archlinux.vim + + # license + install -dm755 ${pkgdir}/usr/share/licenses/vim-runtime + ln -s /usr/share/vim/${_versiondir}/doc/uganda.txt \ + ${pkgdir}/usr/share/licenses/vim-runtime/license.txt } + +# vim:set sw=2 sts=2 et: diff --git a/vim/gvim.desktop b/vim/gvim.desktop new file mode 100644 index 0000000..8c99660 --- /dev/null +++ b/vim/gvim.desktop @@ -0,0 +1,42 @@ +[Desktop Entry] +Encoding=UTF-8 +Version=1.0 +Name=gVim +Name[eo]=VIM-fasado +Name[sv]=gVim +Name[xx]=xx +Comment=GTK2 enhanced vim text editor +Comment[ar]=محرر نصوص +Comment[bg]=Текст Редактор +Comment[de]=Texteditor +Comment[el]=Διορθωτής Κειμένου +Comment[eo]=Tekstredaktilo +Comment[et]=Tekstiredaktor +Comment[eu]=Testu Editorea +Comment[fi]=Tekstieditori +Comment[he]=עורך טקסט +Comment[is]=Textaritill +Comment[ja]=テキストエディタ +Comment[lt]=Teksto redaktorius +Comment[mt]=Editur tat-test +Comment[pt_BR]=Editor de Texto +Comment[ro]=Editor de text +Comment[ru]=редактор +Comment[sk]=Textový editor +Comment[sl]=Urejevalnik besedil +Comment[ta]=¯¨Ã ¦¾¡ÌôÀ¡Ç÷ +Comment[tr]=Metin Düzenleyici +Comment[uk]=Редактор текстів +Comment[vi]=Trình soạn văn bản +Comment[xx]=xx +Comment[zh_CN]=文本编辑器 +Comment[zh_TW]=文字編輯器 +GenericName=Text Editor +Type=Application +TryExec=gvim +Exec=gvim +Icon=gvim +Terminal=false +X-MultipleArgs=false +Categories=GTK;Application;Utility;TextEditor; +MimeType=application/mathml+xml;application/xhtml+xml;application/x-perl;application/x-python;application/x-shellscript;audio/x-mpegurl;audio/x-scpls;image/svg+xml;message/news;message/rfc822;text/calendar;text/css;text/english;text/html;text/mrml;text/plain;text/rdf;text/rss;text/rtf;text/sgml;text/vnd.wap.wml;text/x-adasrc;text/x-bibtex;text/x-chdr;text/x-c++hdr;text/x-csrc;text/x-c++src;text/x-c;text/x-objc;text/x-csv;text/x-diff;text/x-java;text/x-katefilelist;text/x-latex;text/x-log;text/x-lyx;text/x-makefile;text/xmcd;text/xml;text/x-moc;text/x-mswinurl;text/x-objcsrc;text/x-pascal;text/x-perl;text/x-php;text/x-php-source;text/x-python;text/x-tcl;text/x-tex;text/x-vcalendar;text/x-vcard;text/x-xslfo;text/x-xslt; diff --git a/vim/gvim.install b/vim/gvim.install new file mode 100644 index 0000000..0a8d3b0 --- /dev/null +++ b/vim/gvim.install @@ -0,0 +1,13 @@ +post_install() { + echo -n "Updating desktop and mime database..." + update-desktop-database -q + echo "done." +} + +post_upgrade() { + post_install $1 +} + +post_remove() { + post_install $1 +} diff --git a/vim/pythoncomplete.vim b/vim/pythoncomplete.vim new file mode 100644 index 0000000..57add71 --- /dev/null +++ b/vim/pythoncomplete.vim @@ -0,0 +1,625 @@ +"pythoncomplete.vim - Omni Completion for python +" Maintainer: Aaron Griffin +" Version: 0.9 +" Last Updated: 18 Jun 2009 +" +" Changes +" TODO: +" 'info' item output can use some formatting work +" Add an "unsafe eval" mode, to allow for return type evaluation +" Complete basic syntax along with import statements +" i.e. "import url" +" Continue parsing on invalid line?? +" +" v 0.9 +" * Fixed docstring parsing for classes and functions +" * Fixed parsing of *args and **kwargs type arguments +" * Better function param parsing to handle things like tuples and +" lambda defaults args +" +" v 0.8 +" * Fixed an issue where the FIRST assignment was always used instead of +" using a subsequent assignment for a variable +" * Fixed a scoping issue when working inside a parameterless function +" +" +" v 0.7 +" * Fixed function list sorting (_ and __ at the bottom) +" * Removed newline removal from docs. It appears vim handles these better in +" recent patches +" +" v 0.6: +" * Fixed argument completion +" * Removed the 'kind' completions, as they are better indicated +" with real syntax +" * Added tuple assignment parsing (whoops, that was forgotten) +" * Fixed import handling when flattening scope +" +" v 0.5: +" Yeah, I skipped a version number - 0.4 was never public. +" It was a bugfix version on top of 0.3. This is a complete +" rewrite. +" + +if !has('python') + echo "Error: Required vim compiled with +python" + finish +endif + +function! pythoncomplete#Complete(findstart, base) + "findstart = 1 when we need to get the text length + if a:findstart == 1 + let line = getline('.') + let idx = col('.') + while idx > 0 + let idx -= 1 + let c = line[idx] + if c =~ '\w' + continue + elseif ! c =~ '\.' + let idx = -1 + break + else + break + endif + endwhile + + return idx + "findstart = 0 when we need to return the list of completions + else + "vim no longer moves the cursor upon completion... fix that + let line = getline('.') + let idx = col('.') + let cword = '' + while idx > 0 + let idx -= 1 + let c = line[idx] + if c =~ '\w' || c =~ '\.' + let cword = c . cword + continue + elseif strlen(cword) > 0 || idx == 0 + break + endif + endwhile + execute "python vimcomplete('" . cword . "', '" . a:base . "')" + return g:pythoncomplete_completions + endif +endfunction + +function! s:DefPython() +python << PYTHONEOF +import sys, tokenize, cStringIO, types +from token import NAME, DEDENT, NEWLINE, STRING + +debugstmts=[] +def dbg(s): debugstmts.append(s) +def showdbg(): + for d in debugstmts: print "DBG: %s " % d + +def vimcomplete(context,match): + global debugstmts + debugstmts = [] + try: + import vim + def complsort(x,y): + try: + xa = x['abbr'] + ya = y['abbr'] + if xa[0] == '_': + if xa[1] == '_' and ya[0:2] == '__': + return xa > ya + elif ya[0:2] == '__': + return -1 + elif y[0] == '_': + return xa > ya + else: + return 1 + elif ya[0] == '_': + return -1 + else: + return xa > ya + except: + return 0 + cmpl = Completer() + cmpl.evalsource('\n'.join(vim.current.buffer),vim.eval("line('.')")) + all = cmpl.get_completions(context,match) + all.sort(complsort) + dictstr = '[' + # have to do this for double quoting + for cmpl in all: + dictstr += '{' + for x in cmpl: dictstr += '"%s":"%s",' % (x,cmpl[x]) + dictstr += '"icase":0},' + if dictstr[-1] == ',': dictstr = dictstr[:-1] + dictstr += ']' + #dbg("dict: %s" % dictstr) + vim.command("silent let g:pythoncomplete_completions = %s" % dictstr) + #dbg("Completion dict:\n%s" % all) + except vim.error: + dbg("VIM Error: %s" % vim.error) + +class Completer(object): + def __init__(self): + self.compldict = {} + self.parser = PyParser() + + def evalsource(self,text,line=0): + sc = self.parser.parse(text,line) + src = sc.get_code() + dbg("source: %s" % src) + try: exec(src) in self.compldict + except: dbg("parser: %s, %s" % (sys.exc_info()[0],sys.exc_info()[1])) + for l in sc.locals: + try: exec(l) in self.compldict + except: dbg("locals: %s, %s [%s]" % (sys.exc_info()[0],sys.exc_info()[1],l)) + + def _cleanstr(self,doc): + return doc.replace('"',' ').replace("'",' ') + + def get_arguments(self,func_obj): + def _ctor(obj): + try: return class_ob.__init__.im_func + except AttributeError: + for base in class_ob.__bases__: + rc = _find_constructor(base) + if rc is not None: return rc + return None + + arg_offset = 1 + if type(func_obj) == types.ClassType: func_obj = _ctor(func_obj) + elif type(func_obj) == types.MethodType: func_obj = func_obj.im_func + else: arg_offset = 0 + + arg_text='' + if type(func_obj) in [types.FunctionType, types.LambdaType]: + try: + cd = func_obj.func_code + real_args = cd.co_varnames[arg_offset:cd.co_argcount] + defaults = func_obj.func_defaults or '' + defaults = map(lambda name: "=%s" % name, defaults) + defaults = [""] * (len(real_args)-len(defaults)) + defaults + items = map(lambda a,d: a+d, real_args, defaults) + if func_obj.func_code.co_flags & 0x4: + items.append("...") + if func_obj.func_code.co_flags & 0x8: + items.append("***") + arg_text = (','.join(items)) + ')' + + except: + dbg("arg completion: %s: %s" % (sys.exc_info()[0],sys.exc_info()[1])) + pass + if len(arg_text) == 0: + # The doc string sometimes contains the function signature + # this works for alot of C modules that are part of the + # standard library + doc = func_obj.__doc__ + if doc: + doc = doc.lstrip() + pos = doc.find('\n') + if pos > 0: + sigline = doc[:pos] + lidx = sigline.find('(') + ridx = sigline.find(')') + if lidx > 0 and ridx > 0: + arg_text = sigline[lidx+1:ridx] + ')' + if len(arg_text) == 0: arg_text = ')' + return arg_text + + def get_completions(self,context,match): + dbg("get_completions('%s','%s')" % (context,match)) + stmt = '' + if context: stmt += str(context) + if match: stmt += str(match) + try: + result = None + all = {} + ridx = stmt.rfind('.') + if len(stmt) > 0 and stmt[-1] == '(': + result = eval(_sanitize(stmt[:-1]), self.compldict) + doc = result.__doc__ + if doc is None: doc = '' + args = self.get_arguments(result) + return [{'word':self._cleanstr(args),'info':self._cleanstr(doc)}] + elif ridx == -1: + match = stmt + all = self.compldict + else: + match = stmt[ridx+1:] + stmt = _sanitize(stmt[:ridx]) + result = eval(stmt, self.compldict) + all = dir(result) + + dbg("completing: stmt:%s" % stmt) + completions = [] + + try: maindoc = result.__doc__ + except: maindoc = ' ' + if maindoc is None: maindoc = ' ' + for m in all: + if m == "_PyCmplNoType": continue #this is internal + try: + dbg('possible completion: %s' % m) + if m.find(match) == 0: + if result is None: inst = all[m] + else: inst = getattr(result,m) + try: doc = inst.__doc__ + except: doc = maindoc + typestr = str(inst) + if doc is None or doc == '': doc = maindoc + + wrd = m[len(match):] + c = {'word':wrd, 'abbr':m, 'info':self._cleanstr(doc)} + if "function" in typestr: + c['word'] += '(' + c['abbr'] += '(' + self._cleanstr(self.get_arguments(inst)) + elif "method" in typestr: + c['word'] += '(' + c['abbr'] += '(' + self._cleanstr(self.get_arguments(inst)) + elif "module" in typestr: + c['word'] += '.' + elif "class" in typestr: + c['word'] += '(' + c['abbr'] += '(' + completions.append(c) + except: + i = sys.exc_info() + dbg("inner completion: %s,%s [stmt='%s']" % (i[0],i[1],stmt)) + return completions + except: + i = sys.exc_info() + dbg("completion: %s,%s [stmt='%s']" % (i[0],i[1],stmt)) + return [] + +class Scope(object): + def __init__(self,name,indent,docstr=''): + self.subscopes = [] + self.docstr = docstr + self.locals = [] + self.parent = None + self.name = name + self.indent = indent + + def add(self,sub): + #print 'push scope: [%s@%s]' % (sub.name,sub.indent) + sub.parent = self + self.subscopes.append(sub) + return sub + + def doc(self,str): + """ Clean up a docstring """ + d = str.replace('\n',' ') + d = d.replace('\t',' ') + while d.find(' ') > -1: d = d.replace(' ',' ') + while d[0] in '"\'\t ': d = d[1:] + while d[-1] in '"\'\t ': d = d[:-1] + dbg("Scope(%s)::docstr = %s" % (self,d)) + self.docstr = d + + def local(self,loc): + self._checkexisting(loc) + self.locals.append(loc) + + def copy_decl(self,indent=0): + """ Copy a scope's declaration only, at the specified indent level - not local variables """ + return Scope(self.name,indent,self.docstr) + + def _checkexisting(self,test): + "Convienance function... keep out duplicates" + if test.find('=') > -1: + var = test.split('=')[0].strip() + for l in self.locals: + if l.find('=') > -1 and var == l.split('=')[0].strip(): + self.locals.remove(l) + + def get_code(self): + str = "" + if len(self.docstr) > 0: str += '"""'+self.docstr+'"""\n' + for l in self.locals: + if l.startswith('import'): str += l+'\n' + str += 'class _PyCmplNoType:\n def __getattr__(self,name):\n return None\n' + for sub in self.subscopes: + str += sub.get_code() + for l in self.locals: + if not l.startswith('import'): str += l+'\n' + + return str + + def pop(self,indent): + #print 'pop scope: [%s] to [%s]' % (self.indent,indent) + outer = self + while outer.parent != None and outer.indent >= indent: + outer = outer.parent + return outer + + def currentindent(self): + #print 'parse current indent: %s' % self.indent + return ' '*self.indent + + def childindent(self): + #print 'parse child indent: [%s]' % (self.indent+1) + return ' '*(self.indent+1) + +class Class(Scope): + def __init__(self, name, supers, indent, docstr=''): + Scope.__init__(self,name,indent, docstr) + self.supers = supers + def copy_decl(self,indent=0): + c = Class(self.name,self.supers,indent, self.docstr) + for s in self.subscopes: + c.add(s.copy_decl(indent+1)) + return c + def get_code(self): + str = '%sclass %s' % (self.currentindent(),self.name) + if len(self.supers) > 0: str += '(%s)' % ','.join(self.supers) + str += ':\n' + if len(self.docstr) > 0: str += self.childindent()+'"""'+self.docstr+'"""\n' + if len(self.subscopes) > 0: + for s in self.subscopes: str += s.get_code() + else: + str += '%spass\n' % self.childindent() + return str + + +class Function(Scope): + def __init__(self, name, params, indent, docstr=''): + Scope.__init__(self,name,indent, docstr) + self.params = params + def copy_decl(self,indent=0): + return Function(self.name,self.params,indent, self.docstr) + def get_code(self): + str = "%sdef %s(%s):\n" % \ + (self.currentindent(),self.name,','.join(self.params)) + if len(self.docstr) > 0: str += self.childindent()+'"""'+self.docstr+'"""\n' + str += "%spass\n" % self.childindent() + return str + +class PyParser: + def __init__(self): + self.top = Scope('global',0) + self.scope = self.top + + def _parsedotname(self,pre=None): + #returns (dottedname, nexttoken) + name = [] + if pre is None: + tokentype, token, indent = self.next() + if tokentype != NAME and token != '*': + return ('', token) + else: token = pre + name.append(token) + while True: + tokentype, token, indent = self.next() + if token != '.': break + tokentype, token, indent = self.next() + if tokentype != NAME: break + name.append(token) + return (".".join(name), token) + + def _parseimportlist(self): + imports = [] + while True: + name, token = self._parsedotname() + if not name: break + name2 = '' + if token == 'as': name2, token = self._parsedotname() + imports.append((name, name2)) + while token != "," and "\n" not in token: + tokentype, token, indent = self.next() + if token != ",": break + return imports + + def _parenparse(self): + name = '' + names = [] + level = 1 + while True: + tokentype, token, indent = self.next() + if token in (')', ',') and level == 1: + if '=' not in name: name = name.replace(' ', '') + names.append(name.strip()) + name = '' + if token == '(': + level += 1 + name += "(" + elif token == ')': + level -= 1 + if level == 0: break + else: name += ")" + elif token == ',' and level == 1: + pass + else: + name += "%s " % str(token) + return names + + def _parsefunction(self,indent): + self.scope=self.scope.pop(indent) + tokentype, fname, ind = self.next() + if tokentype != NAME: return None + + tokentype, open, ind = self.next() + if open != '(': return None + params=self._parenparse() + + tokentype, colon, ind = self.next() + if colon != ':': return None + + return Function(fname,params,indent) + + def _parseclass(self,indent): + self.scope=self.scope.pop(indent) + tokentype, cname, ind = self.next() + if tokentype != NAME: return None + + super = [] + tokentype, next, ind = self.next() + if next == '(': + super=self._parenparse() + elif next != ':': return None + + return Class(cname,super,indent) + + def _parseassignment(self): + assign='' + tokentype, token, indent = self.next() + if tokentype == tokenize.STRING or token == 'str': + return '""' + elif token == '(' or token == 'tuple': + return '()' + elif token == '[' or token == 'list': + return '[]' + elif token == '{' or token == 'dict': + return '{}' + elif tokentype == tokenize.NUMBER: + return '0' + elif token == 'open' or token == 'file': + return 'file' + elif token == 'None': + return '_PyCmplNoType()' + elif token == 'type': + return 'type(_PyCmplNoType)' #only for method resolution + else: + assign += token + level = 0 + while True: + tokentype, token, indent = self.next() + if token in ('(','{','['): + level += 1 + elif token in (']','}',')'): + level -= 1 + if level == 0: break + elif level == 0: + if token in (';','\n'): break + assign += token + return "%s" % assign + + def next(self): + type, token, (lineno, indent), end, self.parserline = self.gen.next() + if lineno == self.curline: + #print 'line found [%s] scope=%s' % (line.replace('\n',''),self.scope.name) + self.currentscope = self.scope + return (type, token, indent) + + def _adjustvisibility(self): + newscope = Scope('result',0) + scp = self.currentscope + while scp != None: + if type(scp) == Function: + slice = 0 + #Handle 'self' params + if scp.parent != None and type(scp.parent) == Class: + slice = 1 + newscope.local('%s = %s' % (scp.params[0],scp.parent.name)) + for p in scp.params[slice:]: + i = p.find('=') + if len(p) == 0: continue + pvar = '' + ptype = '' + if i == -1: + pvar = p + ptype = '_PyCmplNoType()' + else: + pvar = p[:i] + ptype = _sanitize(p[i+1:]) + if pvar.startswith('**'): + pvar = pvar[2:] + ptype = '{}' + elif pvar.startswith('*'): + pvar = pvar[1:] + ptype = '[]' + + newscope.local('%s = %s' % (pvar,ptype)) + + for s in scp.subscopes: + ns = s.copy_decl(0) + newscope.add(ns) + for l in scp.locals: newscope.local(l) + scp = scp.parent + + self.currentscope = newscope + return self.currentscope + + #p.parse(vim.current.buffer[:],vim.eval("line('.')")) + def parse(self,text,curline=0): + self.curline = int(curline) + buf = cStringIO.StringIO(''.join(text) + '\n') + self.gen = tokenize.generate_tokens(buf.readline) + self.currentscope = self.scope + + try: + freshscope=True + while True: + tokentype, token, indent = self.next() + #dbg( 'main: token=[%s] indent=[%s]' % (token,indent)) + + if tokentype == DEDENT or token == "pass": + self.scope = self.scope.pop(indent) + elif token == 'def': + func = self._parsefunction(indent) + if func is None: + print "function: syntax error..." + continue + dbg("new scope: function") + freshscope = True + self.scope = self.scope.add(func) + elif token == 'class': + cls = self._parseclass(indent) + if cls is None: + print "class: syntax error..." + continue + freshscope = True + dbg("new scope: class") + self.scope = self.scope.add(cls) + + elif token == 'import': + imports = self._parseimportlist() + for mod, alias in imports: + loc = "import %s" % mod + if len(alias) > 0: loc += " as %s" % alias + self.scope.local(loc) + freshscope = False + elif token == 'from': + mod, token = self._parsedotname() + if not mod or token != "import": + print "from: syntax error..." + continue + names = self._parseimportlist() + for name, alias in names: + loc = "from %s import %s" % (mod,name) + if len(alias) > 0: loc += " as %s" % alias + self.scope.local(loc) + freshscope = False + elif tokentype == STRING: + if freshscope: self.scope.doc(token) + elif tokentype == NAME: + name,token = self._parsedotname(token) + if token == '=': + stmt = self._parseassignment() + dbg("parseassignment: %s = %s" % (name, stmt)) + if stmt != None: + self.scope.local("%s = %s" % (name,stmt)) + freshscope = False + except StopIteration: #thrown on EOF + pass + except: + dbg("parse error: %s, %s @ %s" % + (sys.exc_info()[0], sys.exc_info()[1], self.parserline)) + return self._adjustvisibility() + +def _sanitize(str): + val = '' + level = 0 + for c in str: + if c in ('(','{','['): + level += 1 + elif c in (']','}',')'): + level -= 1 + elif level == 0: + val += c + return val + +sys.path.extend(['.','..']) +PYTHONEOF +endfunction + +call s:DefPython() +" vim: set et ts=4: diff --git a/vim/vimrc b/vim/vimrc index f292bd5..92d3ff9 100644 --- a/vim/vimrc +++ b/vim/vimrc @@ -7,7 +7,7 @@ " 'compatible' option. " This line should not be removed as it ensures that various options are -" properly set to work with the Vim-related packages available in Debian. +" properly set to work with the Vim-related packages. runtime! archlinux.vim " If you prefer the old-style vim functionalty, add 'runtime! vimrc_example.vim' diff --git a/vim/xz.patch b/vim/xz.patch new file mode 100644 index 0000000..0ee9b2a --- /dev/null +++ b/vim/xz.patch @@ -0,0 +1,193 @@ +diff -uNr vim72/autoload/getscript.vim vim72-xz/autoload/getscript.vim +--- vim72/autoload/getscript.vim 2010-05-16 22:33:59.000000000 +0200 ++++ vim72-xz/autoload/getscript.vim 2010-05-16 22:41:34.930283754 +0200 +@@ -557,6 +557,11 @@ + exe "silent !gunzip ".shellescape(sname) + let sname= substitute(sname,'\.gz$','','') + " call Decho("decompress: new sname<".sname."> after gunzip") ++ elseif sname =~ '\.xz$' ++" call Decho("decompress: attempt to unxz ".sname) ++ exe "silent !unxz ".shellescape(sname) ++ let sname= substitute(sname,'\.xz$','','') ++" call Decho("decompress: new sname<".sname."> after unxz") + else + " call Decho("no decompression needed") + endif +diff -uNr vim72/autoload/netrw.vim vim72-xz/autoload/netrw.vim +--- vim72/autoload/netrw.vim 2010-05-16 22:33:59.000000000 +0200 ++++ vim72-xz/autoload/netrw.vim 2010-05-16 22:40:28.007276216 +0200 +@@ -163,7 +163,7 @@ + endif + " Default values - d-g ---------- {{{3 + call s:NetrwInit("g:netrw_dirhist_cnt" , 0) +-call s:NetrwInit("g:netrw_decompress" , '{ ".gz" : "gunzip", ".bz2" : "bunzip2", ".zip" : "unzip", ".tar" : "tar -xf"}') ++call s:NetrwInit("g:netrw_decompress" , '{ ".gz" : "gunzip", ".bz2" : "bunzip2", ".xz" : "unxz", ".zip" : "unzip", ".tar" : "tar -xf" }') + call s:NetrwInit("g:netrw_dirhistmax" , 10) + call s:NetrwInit("g:netrw_fastbrowse" , 1) + call s:NetrwInit("g:netrw_ftp_browse_reject", '^total\s\+\d\+$\|^Trying\s\+\d\+.*$\|^KERBEROS_V\d rejected\|^Security extensions not\|No such file\|: connect to address [0-9a-fA-F:]*: No route to host$') +@@ -920,7 +920,7 @@ + unlet b:netrw_method + unlet b:netrw_fname + endif +- if s:FileReadable(tmpfile) && tmpfile !~ '.tar.bz2$' && tmpfile !~ '.tar.gz$' && tmpfile !~ '.zip' && tmpfile !~ '.tar' && readcmd != 't' ++ if s:FileReadable(tmpfile) && tmpfile !~ '.tar.xz$' && tmpfile !~ '.tar.bz2$' && tmpfile !~ '.tar.gz$' && tmpfile !~ '.zip' && tmpfile !~ '.tar' && readcmd != 't' + " call Decho("cleanup by deleting tmpfile<".tmpfile.">") + call s:NetrwDelete(tmpfile) + endif +@@ -1387,6 +1387,9 @@ + elseif rfile =~ '\.tar\.bz2' + " call Decho("handling remote bz2-compressed tar file") + call tar#Browse(tfile) ++ elseif rfile =~ '\.tar\.xz' ++" call Decho("handling remote xz-compressed tar file") ++ call tar#Browse(tfile) + else + " call Decho("edit temporary file") + e! +@@ -2312,7 +2315,7 @@ + exe "sil! keepalt file ".fnameescape(s:method."://".s:user.s:machine."/".s:path) + exe "sil keepalt doau BufReadPre ".fnameescape(s:fname) + silent call netrw#NetRead(2,s:method."://".s:user.s:machine."/".s:path) +- if s:path !~ '.tar.bz2$' && s:path !~ '.tar.gz' ++ if s:path !~ '.tar.xz' && s:path !~ '.tar.bz2$' && s:path !~ '.tar.gz' + " netrw.vim and tar.vim have already handled decompression of the tarball; avoiding gzip.vim error + exe "sil keepalt doau BufReadPost ".fnameescape(s:fname) + endif +@@ -4390,7 +4393,7 @@ + " using g:netrw_compress_suffix to know which to + " do. By default: + " g:netrw_compress = "gzip" +-" g:netrw_decompress = { ".gz" : "gunzip" , ".bz2" : "bunzip2" , ".zip" : "unzip" , ".tar" : "tar -xf"} ++" g:netrw_decompress = { ".gz" : "gunzip" , ".bz2" : "bunzip2" , ".xz" : "unxz", ".zip" : "unzip" , ".tar" : "tar -xf"} + fun! s:NetrwMarkFileCompress(islocal) + " call Dfunc("s:NetrwMarkFileCompress(islocal=".a:islocal.")") + let svpos = netrw#NetrwSavePosn() +@@ -7868,7 +7871,7 @@ + if a:fname != "" + if a:fname =~ '\.[^./]\+$' + " call Decho("using fname<".a:fname.">'s suffix") +- if a:fname =~ '.tar.gz' || a:fname =~ '.tar.bz2' ++ if a:fname =~ '.tar.gz' || a:fname =~ '.tar.bz2' || a:fname =~ '.tar.xz' + let suffix = ".tar".substitute(a:fname,'^.*\(\.[^./]\+\)$','\1','e') + else + let suffix = substitute(a:fname,'^.*\(\.[^./]\+\)$','\1','e') +diff -uNr vim72/autoload/tar.vim vim72-xz/autoload/tar.vim +--- vim72/autoload/tar.vim 2010-05-16 22:33:59.000000000 +0200 ++++ vim72-xz/autoload/tar.vim 2010-05-16 22:43:47.552260967 +0200 +@@ -164,6 +164,9 @@ + elseif tarfile =~# '\.lzma$' + " call Decho("3: exe silent r! lzma -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ") + exe "silent r! lzma -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - " ++ elseif tarfile =~# '\.xz$' ++" call Decho("3: exe silent r! xz -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ") ++ exe "silent r! xz -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - " + else + if tarfile =~ '^\s*-' + " A file name starting with a dash is taken as an option. Prepend ./ to avoid that. +@@ -265,10 +268,13 @@ + elseif fname =~ '\.lzma$' && executable("lzcat") + let decmp= "|lzcat" + let doro = 1 ++ elseif fname =~ '\.xz$' && executable("xzcat") ++ let decmp= "|xzcat" ++ let doro = 1 + else + let decmp="" + let doro = 0 +- if fname =~ '\.bz2$\|\.gz$\|\.lzma$\|\.zip$\|\.Z$' ++ if fname =~ '\.bz2$\|\.gz$\|\.lzma$\|\.xz$\|\.zip$\|\.Z$' + setlocal bin + endif + endif +@@ -290,6 +296,9 @@ + elseif tarfile =~# '\.lzma$' + " call Decho("7: exe silent r! lzma -d -c ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp) + exe "silent r! lzma -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp ++ elseif tarfile =~# '\.xz$' ++" call Decho("7: exe silent r! xz -d -c ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp) ++ exe "silent r! xz -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp + else + if tarfile =~ '^\s*-' + " A file name starting with a dash is taken as an option. Prepend ./ to avoid that. +@@ -393,6 +402,11 @@ + let tarfile = substitute(tarfile,'\.lzma','','e') + let compress= "lzma -- ".shellescape(tarfile,0) + " call Decho("compress<".compress.">") ++ elseif tarfile =~# '\.xz' ++ call system("xz -d -- ".shellescape(tarfile,0)) ++ let tarfile = substitute(tarfile,'\.xz','','e') ++ let compress= "xz -- ".shellescape(tarfile,0) ++" call Decho("compress<".compress.">") + elseif tarfile =~# '\.tgz' + call system("gzip -d -- ".shellescape(tarfile,0)) + let tarfile = substitute(tarfile,'\.tgz','.tar','e') +diff -uNr vim72/autoload/vimball.vim vim72-xz/autoload/vimball.vim +--- vim72/autoload/vimball.vim 2010-05-16 22:33:59.000000000 +0200 ++++ vim72-xz/autoload/vimball.vim 2010-05-16 22:45:32.614510143 +0200 +@@ -505,6 +505,26 @@ + exe "e ".escape(fname,' \') + if a:0 == 0| call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") | endif + ++ elseif expand("%") =~ '.*\.xz' && executable("unxz") ++ " handle *.xz with unxz ++ silent exe "!unxz ".shellescape(a:fname) ++ if v:shell_error != 0 ++ call vimball#ShowMesg(s:WARNING,"(vimball#Decompress) unxz may have failed with <".a:fname.">") ++ endif ++ let fname= substitute(a:fname,'\.xz$','','') ++ exe "e ".escape(fname,' \') ++ if a:0 == 0| call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") | endif ++ ++ elseif expand("%") =~ '.*\.xz' && executable("xz") ++ " handle *.xz with xz -d ++ silent exe "!xz -d ".shellescape(a:fname) ++ if v:shell_error != 0 ++ call vimball#ShowMesg(s:WARNING,'(vimball#Decompress) "xz -d" may have failed with <'.a:fname.">") ++ endif ++ let fname= substitute(a:fname,'\.xz$','','') ++ exe "e ".escape(fname,' \') ++ if a:0 == 0| call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") | endif ++ + elseif expand("%") =~ '.*\.zip' && executable("unzip") + " handle *.zip with unzip + silent exe "!unzip ".shellescape(a:fname) +diff -uNr vim72/filetype.vim vim72-xz/filetype.vim +--- vim72/filetype.vim 2010-05-16 22:34:09.000000000 +0200 ++++ vim72-xz/filetype.vim 2010-05-16 22:47:29.343285870 +0200 +@@ -37,7 +37,7 @@ + " Pattern used to match file names which should not be inspected. + " Currently finds compressed files. + if !exists("g:ft_ignore_pat") +- let g:ft_ignore_pat = '\.\(Z\|gz\|bz2\|zip\|tgz\)$' ++ let g:ft_ignore_pat = '\.\(Z\|gz\|bz2\|xz\|zip\|tgz\)$' + endif + + " Function used for patterns that end in a star: don't set the filetype if the +diff -uNr vim72/plugin/tarPlugin.vim vim72-xz/plugin/tarPlugin.vim +--- vim72/plugin/tarPlugin.vim 2010-05-16 22:33:59.000000000 +0200 ++++ vim72-xz/plugin/tarPlugin.vim 2010-05-16 22:46:39.220270785 +0200 +@@ -39,8 +39,9 @@ + au BufReadCmd *.lrp call tar#Browse(expand("")) + au BufReadCmd *.tar.bz2 call tar#Browse(expand("")) + au BufReadCmd *.tar.Z call tar#Browse(expand("")) ++ au BufReadCmd *.tar.lzma call tar#Browse(expand("")) ++ au BufReadCmd *.tar.xz call tar#Browse(expand("")) + au BufReadCmd *.tgz call tar#Browse(expand("")) +- au BufReadCmd *.tar.lzma call tar#Browse(expand("")) + augroup END + com! -nargs=? -complete=file Vimuntar call tar#Vimuntar() + +diff -uNr vim72/plugin/vimballPlugin.vim vim72-xz/plugin/vimballPlugin.vim +--- vim72/plugin/vimballPlugin.vim 2010-05-16 22:33:59.000000000 +0200 ++++ vim72-xz/plugin/vimballPlugin.vim 2010-05-16 22:47:07.425260844 +0200 +@@ -26,8 +26,8 @@ + com! -na=? -complete=dir UseVimball call vimball#Vimball(1,) + com! -na=0 VimballList call vimball#Vimball(0) + com! -na=* -complete=dir RmVimball call vimball#SaveSettings()|call vimball#RmVimball()|call vimball#RestoreSettings() +-au SourceCmd *.vba.gz,*.vba.bz2,*.vba.zip call vimball#Decompress(expand(""))|call vimball#Vimball(1) +-au BufEnter *.vba,*.vba.gz,*.vba.bz2,*.vba.zip setlocal bt=nofile fmr=[[[,]]] fdm=marker|if &ff != 'unix'| setlocal ma ff=unix noma |endif|call vimball#ShowMesg(0,"Source this file to extract it! (:so %)") ++au SourceCmd *.vba.gz,*.vba.bz2,*.vba.xz,*.vba.zip call vimball#Decompress(expand(""))|call vimball#Vimball(1) ++au BufEnter *.vba,*.vba.gz,*.vba.bz2,*.vba.xz,*.vba.zip setlocal bt=nofile fmr=[[[,]]] fdm=marker|if &ff != 'unix'| setlocal ma ff=unix noma |endif|call vimball#ShowMesg(0,"Source this file to extract it! (:so %)") + + " ===================================================================== + " Restoration And Modelines: {{{1 diff --git a/weechat-git/PKGBUILD b/weechat-git/PKGBUILD index 2f94f79..dc724fa 100644 --- a/weechat-git/PKGBUILD +++ b/weechat-git/PKGBUILD @@ -2,7 +2,7 @@ # Contributor: Tim Zebulla pkgname=weechat-git -pkgver=20100107 +pkgver=20100804 pkgrel=1 pkgdesc="Fast, light & extensible IRC client (curses UI)" arch=('i686' 'x86_64') -- cgit v1.2.3-24-g4f1b