driver: Stop requiring function_argzero.

Instead, use the %N prompt expando, as suggested by Bart in users/21637.

Avoid the `print -P %N` syntax to save a fork on Cygwin, at the expense
of not supporting zsh's from 2001 through c. 2004 vintages.

Fixes #338.
This commit is contained in:
Daniel Shahaf 2016-06-10 15:09:45 +00:00
parent d9e07b5082
commit 750aebc553
2 changed files with 4 additions and 7 deletions

View file

@ -1 +1,2 @@
0=${(%):-%N}
source ${0:A:h}/zsh-syntax-highlighting.zsh

View file

@ -28,7 +28,9 @@
# -------------------------------------------------------------------------------------------------
if [[ -o function_argzero ]]; then
# Set $0 to the expected value, regardless of functionargzero.
0=${(%):-%N}
if true; then
# $0 is reliable
ZSH_HIGHLIGHT_VERSION=$(<"${0:A:h}"/.version)
ZSH_HIGHLIGHT_REVISION=$(<"${0:A:h}"/.revision-hash)
@ -38,12 +40,6 @@ if [[ -o function_argzero ]]; then
# the valid value (via `git rev-parse HEAD`, as Makefile does) might be costly, so:
ZSH_HIGHLIGHT_REVISION=HEAD
fi
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 note it's not available in older zsh
echo "zsh-syntax-highlighting: error: not compatible with NO_FUNCTION_ARGZERO" >&2
return 1
fi
# -------------------------------------------------------------------------------------------------