Skip to content

Commit 44765e0

Browse files
committed
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.
1 parent 49af866 commit 44765e0

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

zinit-install.zsh

+2-1
Original file line numberDiff line numberDiff line change
@@ -601,7 +601,8 @@ builtin source "${ZINIT[BIN_DIR]}/zinit-side.zsh" || {
601601
#
602602
# No arguments.
603603
.zinit-compinit() {
604-
[[ -n ${OPTS[opt_-p,--parallel]} && $1 != 1 ]] && return
604+
# This might be called during sourcing when setting up the plugins dir, so check that OPTS is actually existing
605+
[[ -n $OPTS && -n ${OPTS[opt_-p,--parallel]} && $1 != 1 ]] && return
605606

606607
emulate -LR zsh
607608
builtin setopt nullglob extendedglob warncreateglobal typesetsilent

0 commit comments

Comments
 (0)