summary refs log tree commit diff
diff options
context:
space:
mode:
authorBart Schaefer <schaefer@ipost.com>2022-03-29 13:18:49 -0700
committerBart Schaefer <schaefer@ipost.com>2022-03-29 13:18:49 -0700
commit53d6b47d92bccb3e34ebad1becf84b097a3bc525 (patch)
tree03dae62b9a20cacfe15a308913b7e923c3544a9e
parentbf3ae15f469508b014df8cbade3ecc9b1f718c9b (diff)
downloadzsh-53d6b47d92bccb3e34ebad1becf84b097a3bc525.tar.gz
zsh-53d6b47d92bccb3e34ebad1becf84b097a3bc525.tar.xz
zsh-53d6b47d92bccb3e34ebad1becf84b097a3bc525.zip
49917: change sense of "Ignore insecure ..." answer and use "autoload -r"
-rw-r--r--ChangeLog6
-rw-r--r--Completion/compinit18
-rw-r--r--Doc/Zsh/compsys.yo2
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  <schaefer@zsh.org>
+
+	* 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  <takimoto-j@kba.biglobe.ne.jp>
 
 	* 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