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取得用のオプション用意されたんだから、まずはそれ使ってみればいいのに。