forked from extern/ohmyzsh
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:
parent
f3fa41834d
commit
d15521d09d
@ -52,6 +52,9 @@
|
|||||||
# * Consider whether to move default output file location to TMPDIR. More robust
|
# * Consider whether to move default output file location to TMPDIR. More robust
|
||||||
# but less user friendly.
|
# but less user friendly.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
autoload -Uz is-at-least
|
||||||
|
|
||||||
function omz_diagnostic_dump() {
|
function omz_diagnostic_dump() {
|
||||||
emulate -L zsh
|
emulate -L zsh
|
||||||
|
|
||||||
@ -247,7 +250,7 @@ function _omz_diag_dump_one_big_text() {
|
|||||||
|
|
||||||
function _omz_diag_dump_check_core_commands() {
|
function _omz_diag_dump_check_core_commands() {
|
||||||
builtin echo "Core command check:"
|
builtin echo "Core command check:"
|
||||||
local redefined name builtins externals
|
local redefined name builtins externals reserved_words
|
||||||
redefined=()
|
redefined=()
|
||||||
# All the zsh non-module builtin commands
|
# All the zsh non-module builtin commands
|
||||||
# These are taken from the zsh reference manual for 5.0.2
|
# 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,
|
# (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.)
|
# or at least made conditional on the version of the current running zsh.)
|
||||||
# "history" is also excluded because OMZ is known to redefine that
|
# "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
|
builtins=( alias autoload bg bindkey break builtin bye cd chdir command
|
||||||
comparguments compcall compctl compdescribe compfiles compgroups compquote comptags
|
comparguments compcall compctl compdescribe compfiles compgroups compquote comptags
|
||||||
comptry compvalues continue declare dirs disable disown echo echotc echoti emulate
|
comptry compvalues continue dirs disable disown echo echotc echoti emulate
|
||||||
enable eval exec exit export false fc fg float functions getln getopts hash
|
enable eval exec exit false fc fg functions getln getopts hash
|
||||||
integer jobs kill let limit local log logout noglob popd print printf
|
jobs kill let limit log logout noglob popd print printf
|
||||||
pushd pushln pwd r read readonly rehash return sched set setopt shift
|
pushd pushln pwd r read rehash return sched set setopt shift
|
||||||
source suspend test times trap true ttyctl type typeset ulimit umask unalias
|
source suspend test times trap true ttyctl type ulimit umask unalias
|
||||||
unfunction unhash unlimit unset unsetopt vared wait whence where which zcompile
|
unfunction unhash unlimit unset unsetopt vared wait whence where which zcompile
|
||||||
zle zmodload zparseopts zregexparse zstyle )
|
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 )
|
builtins_fatal=( builtin command local )
|
||||||
externals=( zsh )
|
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
|
for name in $builtins; do
|
||||||
if [[ $(builtin whence -w $name) != "$name: builtin" ]]; then
|
if [[ $(builtin whence -w $name) != "$name: builtin" ]]; then
|
||||||
builtin echo "builtin '$name' has been redefined"
|
builtin echo "builtin '$name' has been redefined"
|
||||||
|
Loading…
Reference in New Issue
Block a user