summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFlorian Pritz <bluewind@xssn.at>2010-08-16 23:01:00 +0200
committerFlorian Pritz <bluewind@xssn.at>2010-08-16 23:01:00 +0200
commitf220a7df9bc9b607415b7975fce94517b035fc08 (patch)
treed366e4196b790ac4006792a32ce02b5b91289e3e
parent81323da4d1b434e3d0351f878f7eabc2563d3044 (diff)
downloadaur-packages-f220a7df9bc9b607415b7975fce94517b035fc08.tar.gz
aur-packages-f220a7df9bc9b607415b7975fce94517b035fc08.tar.xz
update
Signed-off-by: Florian Pritz <bluewind@xssn.at>
-rw-r--r--blazeblogger-git/PKGBUILD2
-rw-r--r--spampd/PKGBUILD8
-rw-r--r--spampd/rc-config2
-rwxr-xr-xspampd/rc-script8
-rw-r--r--todotxt/PKGBUILD6
-rw-r--r--vim/PKGBUILD242
-rw-r--r--vim/gvim.desktop42
-rw-r--r--vim/gvim.install13
-rw-r--r--vim/pythoncomplete.vim625
-rw-r--r--vim/vimrc2
-rw-r--r--vim/xz.patch193
-rw-r--r--weechat-git/PKGBUILD2
12 files changed, 1067 insertions, 78 deletions
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 <bluewind@xssn.at>
# Contributor: Abakus <java5@arcor.de>
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 <flo@xssn.at>
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 <jan.steffens@gmail.com>
# Maintainer: tobias [ tobias at archlinux org ]
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
-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 <aaronmgriffin@gmail.com>
+" 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<c-x,c-o>"
+" 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("<amatch>"))
+ au BufReadCmd *.tar.bz2 call tar#Browse(expand("<amatch>"))
+ au BufReadCmd *.tar.Z call tar#Browse(expand("<amatch>"))
++ au BufReadCmd *.tar.lzma call tar#Browse(expand("<amatch>"))
++ au BufReadCmd *.tar.xz call tar#Browse(expand("<amatch>"))
+ au BufReadCmd *.tgz call tar#Browse(expand("<amatch>"))
+- au BufReadCmd *.tar.lzma call tar#Browse(expand("<amatch>"))
+ augroup END
+ com! -nargs=? -complete=file Vimuntar call tar#Vimuntar(<q-args>)
+
+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,<f-args>)
+ com! -na=0 VimballList call vimball#Vimball(0)
+ com! -na=* -complete=dir RmVimball call vimball#SaveSettings()|call vimball#RmVimball(<f-args>)|call vimball#RestoreSettings()
+-au SourceCmd *.vba.gz,*.vba.bz2,*.vba.zip call vimball#Decompress(expand("<amatch>"))|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("<amatch>"))|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 <amon at faumrahrer dot de>
pkgname=weechat-git
-pkgver=20100107
+pkgver=20100804
pkgrel=1
pkgdesc="Fast, light & extensible IRC client (curses UI)"
arch=('i686' 'x86_64')