diff options
author | leycec <leycec@gmail.com> | 2015-05-12 19:27:51 -0400 |
---|---|---|
committer | leycec <leycec@gmail.com> | 2015-07-20 00:56:02 -0400 |
commit | cb55161470e051e520bad388c20e32d43cfca973 (patch) | |
tree | c7361bac86353d03509b052625c0a140a8ac5ec2 | |
parent | dcb175d4309a41723ebeb561a8089115d9e7126b (diff) | |
download | zsh-cb55161470e051e520bad388c20e32d43cfca973.tar.gz zsh-cb55161470e051e520bad388c20e32d43cfca973.tar.bz2 zsh-cb55161470e051e520bad388c20e32d43cfca973.zip |
Completion insecurities handled on startup.
Completion-dependent directories with insecure permissions or ownership (e.g.,
group or other writability) are now detected, reported, and sanitized on OMZ
startup rather than unsafely ignored -- which resulted in effectively empty
completion caches and obscure compdef() errors resembling
"compdef: unknown command or service: git".
This fixes long-standing issues #630, #3356, and #3455 and related Babun issues
159, 281, and 322 -- and probably numerous other duplicates.
-rw-r--r-- | oh-my-zsh.sh | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/oh-my-zsh.sh b/oh-my-zsh.sh index ec64c240f..9dde78caa 100644 --- a/oh-my-zsh.sh +++ b/oh-my-zsh.sh @@ -8,6 +8,9 @@ fi # add a function path fpath=($ZSH/functions $ZSH/completions $fpath) +# Load all stock functions (from $fpath files) called below. +autoload -U compaudit compinit + # Set ZSH_CUSTOM to the path where your custom config files # and plugins exists, or else we will use the default custom/ if [[ -z "$ZSH_CUSTOM" ]]; then @@ -64,9 +67,14 @@ if [ -z "$ZSH_COMPDUMP" ]; then ZSH_COMPDUMP="${ZDOTDIR:-${HOME}}/.zcompdump-${SHORT_HOST}-${ZSH_VERSION}" fi -# Load and run compinit -autoload -U compinit -compinit -i -d "${ZSH_COMPDUMP}" +# If completion insecurities exist, warn the user without enabling completions. +if ! compaudit &>/dev/null; then + # This function resides in the "lib/compfix.zsh" script sourced above. + handle_completion_insecurities +# Else, enable and cache completions to the desired file. +else + compinit -d "${ZSH_COMPDUMP}" +fi # Load all of the plugins that were defined in ~/.zshrc for plugin ($plugins); do |