From 0fd5156fdff9e8b597f77260fd1ba8f3d1c8c729 Mon Sep 17 00:00:00 2001 From: Paul Ackersviller Date: Thu, 26 Apr 2007 04:02:13 +0000 Subject: Merge workers/{22386, 23203} for version detection. --- Completion/X/Command/_acroread | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) (limited to 'Completion/X') diff --git a/Completion/X/Command/_acroread b/Completion/X/Command/_acroread index afcd3188c..51d64a475 100644 --- a/Completion/X/Command/_acroread +++ b/Completion/X/Command/_acroread @@ -1,15 +1,29 @@ #compdef acroread local curcontext="$curcontext" state line +local cmdfile -# 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=} -[[ -n $ver ]] && _acroread_version=$ver +if [[ -z $_acroread_version ]]; then + _acroread_version="$($words[1] -version 2>/dev/null)" +fi + +if [[ -z $_acroread_version ]]; then + if [[ $words[1] = */* && -x $words[1] ]]; then + cmdfile=$words[1] + elif [[ -x $commands[$words[1]] ]]; then + cmdfile=$commands[$words[1]] + fi + + # Try extracting the version number directly from the executable. + # (This will fail if the executable is a wrapper script for acroread.) + _acroread_version=${${(M)${(f)"$(<$cmdfile)"}:#ver=*}##ver=} -if (( ! $+_acroread_version )); then - local acropath=${${(s. .)${${(f)"$($words[1] -help 2>&1)"}[1]}}[2]} - _acroread_version=${${${(f)"$(<$acropath)"}:#^ver=*}##ver=} + if [[ -z $_acroread_version ]]; then + local acropath=${${(s. .)${${(f)"$($words[1] -help 2>&1)"}[1]}}[2]} + if [[ -r $acropath ]]; then + _acroread_version=${${(M)${(f)"$(<$acropath)"}:#ver=*}##ver=} + fi + fi fi if [[ $_acroread_version == 7.* ]]; then -- cgit 1.4.1