From 53d6b47d92bccb3e34ebad1becf84b097a3bc525 Mon Sep 17 00:00:00 2001 From: Bart Schaefer Date: Tue, 29 Mar 2022 13:18:49 -0700 Subject: [PATCH] 49917: change sense of "Ignore insecure ..." answer and use "autoload -r" --- ChangeLog | 6 ++++++ Completion/compinit | 18 ++++++++---------- Doc/Zsh/compsys.yo | 2 +- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/ChangeLog b/ChangeLog index 161eb40cc..5053cb36c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2022-03-29 Bart Schaefer + + * 49917: Completion/compinit, Doc/Zsh/compsys.yo: change sense + of "Ignore insecure ..." answer to ignore the files rather than + ignore the problem. Use "autoload -r" for autoload paths. + 2022-03-29 Jun-ichi Takimoto * 49853 + 49882/49883: Src/subst.c, Test/D04parameter.ztst: make diff --git a/Completion/compinit b/Completion/compinit index 1f2e7c634..5cb527fac 100644 --- a/Completion/compinit +++ b/Completion/compinit @@ -329,7 +329,7 @@ compdef() { # and probably do autoloading. func="$1" - [[ -n "$autol" ]] && autoload -Uz "$func" + [[ -n "$autol" ]] && autoload -rUz "$func" shift case "$type" in @@ -451,7 +451,7 @@ typeset _i_wdirs _i_wfiles _i_wdirs=() _i_wfiles=() -autoload -Uz compaudit +autoload -RUz compaudit if [[ -n "$_i_check" ]]; then typeset _i_q if ! eval compaudit; then @@ -467,19 +467,17 @@ Ignore insecure $_i_q and continue [y] or abort compinit [n]? "; then return 1 fi - _i_wfiles=() - _i_wdirs=() - else - (( $#_i_wfiles )) && _i_files=( "${(@)_i_files:#(${(j:|:)_i_wfiles%.zwc})}" ) - (( $#_i_wdirs )) && _i_files=( "${(@)_i_files:#(${(j:|:)_i_wdirs%.zwc})/*}" ) fi + fpath=(${fpath:|_i_wdirs}) + (( $#_i_wfiles )) && _i_files=( "${(@)_i_files:#(${(j:|:)_i_wfiles%.zwc})}" ) + (( $#_i_wdirs )) && _i_files=( "${(@)_i_files:#(${(j:|:)_i_wdirs%.zwc})/*}" ) fi typeset -g _comp_secure=yes fi fi # Make sure compdump is available, even if we aren't going to use it. -autoload -Uz compdump compinstall +autoload -RUz compdump compinstall # If we have a dump file, load it. @@ -538,7 +536,7 @@ if [[ -z "$_i_done" ]]; then fi ;; (\#autoload) - autoload -Uz "$_i_line[@]" ${_i_name} + autoload -rUz "$_i_line[@]" ${_i_name} [[ "$_i_line" != \ # ]] && _compautos[${_i_name}]="$_i_line" ;; esac @@ -570,6 +568,6 @@ if [[ ${_i_line[2]} = expand-or-complete ]] && fi unfunction compinit compaudit -autoload -Uz compinit compaudit +autoload -RUz compinit compaudit return 0 diff --git a/Doc/Zsh/compsys.yo b/Doc/Zsh/compsys.yo index f85293ac7..b968f20dc 100644 --- a/Doc/Zsh/compsys.yo +++ b/Doc/Zsh/compsys.yo @@ -190,7 +190,7 @@ tt(compinit) will ask if the completion system should really be used. To avoid these tests and make all files found be used without asking, use the option tt(-u), and to make tt(compinit) silently ignore all insecure files and directories use the option tt(-i). This security check is skipped -entirely when the tt(-C) option is given. +entirely when the tt(-C) option is given, provided the dumpfile exists. findex(compaudit) The security check can be retried at any time by running the function