Skip to content

Commit

Permalink
fix(init): exit gracefully if on non-zsh emulation mode (ohmyzsh#11874)
Browse files Browse the repository at this point in the history
  • Loading branch information
mcornella authored Sep 4, 2023
1 parent 1abc1d9 commit 30f0d59
Showing 1 changed file with 18 additions and 9 deletions.
27 changes: 18 additions & 9 deletions oh-my-zsh.sh
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
# ANSI formatting function (\033[<code>m)
# 0: reset, 1: bold, 4: underline, 22: no bold, 24: no underline, 31: red, 33: yellow
omz_f() {
[ $# -gt 0 ] || return
IFS=";" printf "\033[%sm" $*
}
# If stdout is not a terminal ignore all formatting
[ -t 1 ] || omz_f() { :; }

# Protect against non-zsh execution of Oh My Zsh (use POSIX syntax here)
[ -n "$ZSH_VERSION" ] || {
# ANSI formatting function (\033[<code>m)
# 0: reset, 1: bold, 4: underline, 22: no bold, 24: no underline, 31: red, 33: yellow
omz_f() {
[ $# -gt 0 ] || return
IFS=";" printf "\033[%sm" $*
}
# If stdout is not a terminal ignore all formatting
[ -t 1 ] || omz_f() { :; }

omz_ptree() {
# Get process tree of the current process
pid=$$; pids="$pid"
Expand Down Expand Up @@ -38,6 +38,15 @@
return 1
}

# Check if in emulation mode, if so early return
# https://github.com/ohmyzsh/ohmyzsh/issues/11686
[[ "$(emulate)" = zsh ]] || {
printf "$(omz_f 1 31)Error:$(omz_f 22) Oh My Zsh can't be loaded in \`$(emulate)\` emulation mode.$(omz_f 0)\n" >&2
return 1
}

unset -f omz_f

# If ZSH is not defined, use the current script's directory.
[[ -z "$ZSH" ]] && export ZSH="${${(%):-%x}:a:h}"

Expand Down

0 comments on commit 30f0d59

Please sign in to comment.