From 44765e0bcb8d3f1ee3eb55286e33ad17b8c72a5e Mon Sep 17 00:00:00 2001 From: Jan Katins Date: Sun, 1 May 2022 22:29:55 +0200 Subject: [PATCH] fix: Don't error if $OPTS is not yet defined in .zinit-compinit call This codepath was triggered when deleting the whole `~/.zinit/plugins` dir: during recreation in `.zinit-prepare-home`, `.zinit-compinit &> /dev/null` would be called and the sourcing of `zinit.zsh` would error out with ``` +.zinit-compinit:2> [[.zinit-compinit:2: bad math expression: operand expected at `/Users/jan...' -n '' ]] ``` As the error was redirected to `/dev/null`, this never showed up. Any zinit install call during that session would not run any hooks as they were not yet registered. The next session would then be fine because the plugins dir would exist. --- zinit-install.zsh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/zinit-install.zsh b/zinit-install.zsh index 31bf680ae..e87c344e4 100644 --- a/zinit-install.zsh +++ b/zinit-install.zsh @@ -601,7 +601,8 @@ builtin source "${ZINIT[BIN_DIR]}/zinit-side.zsh" || { # # No arguments. .zinit-compinit() { - [[ -n ${OPTS[opt_-p,--parallel]} && $1 != 1 ]] && return + # This might be called during sourcing when setting up the plugins dir, so check that OPTS is actually existing + [[ -n $OPTS && -n ${OPTS[opt_-p,--parallel]} && $1 != 1 ]] && return emulate -LR zsh builtin setopt nullglob extendedglob warncreateglobal typesetsilent