From 9c56c624e98134e565c0b16da77a5d7bd71236f6 Mon Sep 17 00:00:00 2001 From: Daniel Shahaf Date: Thu, 1 Oct 2015 16:26:43 +0000 Subject: [PATCH] versionstamp: Handle NO_FUNCTION_ARGZERO. Sourcing zsh-syntax-highlighting.zsh without FUNCTION_ARGZERO doesn't work (for reasons unrelated to this branch), but now errors out gracefully. The failure mode before this branch was: zsh-syntax-highlighting: highlighters directory '/usr/local/bin/highlighters' not found. where /usr/local/bin is dirname() of the zsh binary. --- zsh-syntax-highlighting.zsh | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/zsh-syntax-highlighting.zsh b/zsh-syntax-highlighting.zsh index 3c3163d..a65b29f 100644 --- a/zsh-syntax-highlighting.zsh +++ b/zsh-syntax-highlighting.zsh @@ -29,7 +29,16 @@ # ------------------------------------------------------------------------------------------------- -ZSH_HIGHLIGHT_VERSION=$(<"$0:h"/.version) +if [[ -o function_argzero ]]; then + # $0 is reliable + ZSH_HIGHLIGHT_VERSION=$(<"$0:h"/.version) +else + # $0 is unreliable, so the call to _zsh_highlight_load_highlighters will fail. + # TODO: If 'zmodload zsh/parameter' is available, ${funcsourcetrace[1]%:*} might serve as a substitute? + # TODO: also check POSIX_ARGZERO, but not it's not available in older zsh + echo "zsh-syntax-highlighting: error: not compatible with FUNCTION_ARGZERO" >&2 + return 1 +fi # ------------------------------------------------------------------------------------------------- # Core highlighting update system