acroreadでzshの補完に失敗

ubuntu dapperのaptで入るacroread

ichii386@bigbird% apt-show-versions -p adobereader-jpn
adobereader-jpn/dapper uptodate 7.0.8-1ubuntu0ja1

で、zshで補完しようとすると

ichii386@bigbird% acroread[tab]
_acroread:13: そのようなファイルやディレクトリはありません:

そうですか。

/usr/share/zsh/4.2.5/functions/Completion/X/_acroread に1行patch。

--- _acroread.orig      2006-10-19 16:41:09.000000000 +0900
+++ _acroread   2006-10-19 16:41:02.000000000 +0900
@@ -4,7 +4,8 @@

 # Try extracting the version number directly from the executable.
 # (This will fail if the executable is a wrapper script for acroread.)
-local ver=${${${(f)"$(<$commands[$words[1]])"}:#^ver=*}##ver=}
+#local ver=${${${(f)"$(<$commands[$words[1]])"}:#^ver=*}##ver=}
+local ver="$($words[1] -version)"
 [[ -n $ver ]] && _acroread_version=$ver

 if (( ! $+_acroread_version )); then

adobeのサイトとか、debian.fam.cxで拾えるacroreadだと /usr/bin/acroread (symlink, 実体の中身は#!/bin/sh) に

ver=7.0.5

という行があってそれを拾ってます。

ubuntuだと/usr/bin/acroreadはsymlinkではなくwrapper scriptになってて見つからず、

$commands[$words[1]]

も空っぽになっちゃうのが原因。ふつうに

% acroread -version

の結果を使うように変更しました。

[追記] って_acroreadのコメントにwrapperで失敗するって書いてあるじゃん! つーかせっかくversion number取得用のオプション用意されたんだから、まずはそれ使ってみればいいのに。