mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-10-29 05:21:00 +01:00
zsh-users/12008: Assert zsh emulation to avoid setopt problems; don't try
to run precmd or preexec if they don't exist.
This commit is contained in:
parent
84a0da6af9
commit
9b33f07e10
1 changed files with 5 additions and 2 deletions
|
|
@ -39,6 +39,7 @@ promptinit () {
|
|||
}
|
||||
|
||||
prompt_preview_safely() {
|
||||
emulate -L zsh
|
||||
print $reset_color
|
||||
if [[ -z "$prompt_themes[(r)$1]" ]]; then
|
||||
print "Unknown theme: $1"
|
||||
|
|
@ -165,6 +166,7 @@ Use prompt -h <theme> for help on specific themes.'
|
|||
}
|
||||
|
||||
prompt () {
|
||||
emulate -L zsh
|
||||
local prompt_opts
|
||||
|
||||
set_prompt "$@"
|
||||
|
|
@ -176,6 +178,7 @@ prompt () {
|
|||
}
|
||||
|
||||
prompt_preview_theme () {
|
||||
emulate -L zsh
|
||||
local -a psv; psv=($psvar); local -a +h psvar; psvar=($psv) # Ick
|
||||
local +h PS1=$PS1 PS2=$PS2 PS3=$PS3 PS4=$PS4 RPS1=$RPS1
|
||||
trap "${$(functions precmd):-:} ; ${$(functions preexec):-:}" 0
|
||||
|
|
@ -184,10 +187,10 @@ prompt_preview_theme () {
|
|||
(( $#* > 1 )) && print -n " with parameters \`$*[2,-1]'"
|
||||
print ":"
|
||||
prompt_${1}_setup "$@[2,-1]"
|
||||
precmd
|
||||
typeset +f precmd >&- && precmd
|
||||
[[ -o promptcr ]] && print -n $'\r'; :
|
||||
print -P "${PS1}command arg1 arg2 ... argn"
|
||||
preexec
|
||||
typeset +f preexec >&- && preexec
|
||||
}
|
||||
|
||||
[[ -o kshautoload ]] || promptinit "$@"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue