diagnostics: fix for reserved-word changes in zsh 5.1

Reference:
https://github.com/zsh-users/zsh/blob/zsh-5.1.1/NEWS#L20-L32
This commit is contained in:
Andrew Janke 2015-10-08 22:31:39 -04:00
parent f3fa41834d
commit d15521d09d
1 changed files with 24 additions and 6 deletions

View File

@ -52,6 +52,9 @@
# * Consider whether to move default output file location to TMPDIR. More robust
# but less user friendly.
#
autoload -Uz is-at-least
function omz_diagnostic_dump() {
emulate -L zsh
@ -247,7 +250,7 @@ function _omz_diag_dump_one_big_text() {
function _omz_diag_dump_check_core_commands() {
builtin echo "Core command check:"
local redefined name builtins externals
local redefined name builtins externals reserved_words
redefined=()
# All the zsh non-module builtin commands
# These are taken from the zsh reference manual for 5.0.2
@ -255,17 +258,32 @@ function _omz_diag_dump_check_core_commands() {
# (For back-compatibility, if any of these are newish, they should be removed,
# or at least made conditional on the version of the current running zsh.)
# "history" is also excluded because OMZ is known to redefine that
reserved_words=( do done esac then elif else fi for case if while function
repeat time until select coproc nocorrect foreach end '!' '[[' '{' '}'
)
builtins=( alias autoload bg bindkey break builtin bye cd chdir command
comparguments compcall compctl compdescribe compfiles compgroups compquote comptags
comptry compvalues continue declare dirs disable disown echo echotc echoti emulate
enable eval exec exit export false fc fg float functions getln getopts hash
integer jobs kill let limit local log logout noglob popd print printf
pushd pushln pwd r read readonly rehash return sched set setopt shift
source suspend test times trap true ttyctl type typeset ulimit umask unalias
comptry compvalues continue dirs disable disown echo echotc echoti emulate
enable eval exec exit false fc fg functions getln getopts hash
jobs kill let limit log logout noglob popd print printf
pushd pushln pwd r read rehash return sched set setopt shift
source suspend test times trap true ttyctl type ulimit umask unalias
unfunction unhash unlimit unset unsetopt vared wait whence where which zcompile
zle zmodload zparseopts zregexparse zstyle )
if is-at-least 5.1; then
reserved_word+=( declare export integer float local readonly typeset )
else
builtins+=( declare export integer float local readonly typeset )
fi
builtins_fatal=( builtin command local )
externals=( zsh )
for name in $reserved_words; do
if [[ $(builtin whence -w $name) != "$name: reserved" ]]; then
builtin echo "reserved word '$name' has been redefined"
builtin which $name
redefined+=$name
fi
done
for name in $builtins; do
if [[ $(builtin whence -w $name) != "$name: builtin" ]]; then
builtin echo "builtin '$name' has been redefined"