From 9f33d6567bf835c84b717f3c3251ef576e61b065 Mon Sep 17 00:00:00 2001 From: romkatv Date: Fri, 15 May 2020 06:59:29 +0200 Subject: [PATCH] work around bugs in zsh that break vim shell; see #717 --- internal/p10k.zsh | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/internal/p10k.zsh b/internal/p10k.zsh index 2153309c..11433d8d 100644 --- a/internal/p10k.zsh +++ b/internal/p10k.zsh @@ -5577,7 +5577,7 @@ _p9k_set_instant_prompt() { [[ -n $RPROMPT ]] || unset RPROMPT } -typeset -gri __p9k_instant_prompt_version=23 +typeset -gri __p9k_instant_prompt_version=24 _p9k_dump_instant_prompt() { local user=${(%):-%n} @@ -5629,7 +5629,7 @@ _p9k_dump_instant_prompt() { __p9k_instant_prompt_sourced=0 return 1 fi - zmodload zsh/langinfo + zmodload zsh/langinfo zsh/terminfo zsh/system || return if [[ $langinfo[CODESET] != (utf|UTF)(-|)8 ]]; then local loc_cmd=$commands[locale] [[ -z $loc_cmd ]] && loc_cmd='${(q)commands[locale]}' @@ -5641,7 +5641,6 @@ _p9k_dump_instant_prompt() { fi fi fi - zmodload zsh/terminfo (( $+terminfo[cuu] && $+terminfo[cuf] && $+terminfo[ed] && $+terminfo[sc] && $+terminfo[rc] )) || return local pwd=${(%):-%/} local prompt_file=$prompt_dir/prompt-${#pwd} @@ -5657,8 +5656,8 @@ _p9k_dump_instant_prompt() { else >&$fd print -r -- ' typeset -gx P9K_TTY=old - zmodload -F zsh/stat b:zstat - zmodload zsh/datetime + zmodload -F zsh/stat b:zstat || return + zmodload zsh/datetime || return local -a stat if zstat -A stat +ctime -- $TTY 2>/dev/null && (( EPOCHREALTIME - stat[1] < '$_POWERLEVEL9K_NEW_TTY_MAX_AGE_SECONDS' )); then @@ -5784,11 +5783,10 @@ _p9k_dump_instant_prompt() { fi >&$fd print -r -- ' if (( LINES == '$bad_lines' && COLUMNS == '$bad_columns' )); then - zmodload -F zsh/stat b:zstat - zmodload zsh/datetime + zmodload -F zsh/stat b:zstat || return + zmodload zsh/datetime || return local -a tty_ctime if ! zstat -A tty_ctime +ctime -- $TTY 2>/dev/null || (( tty_ctime[1] + 2 > EPOCHREALTIME )); then - zmodload zsh/datetime local -F deadline=$((EPOCHREALTIME+0.025)) local tty_size while true; do @@ -5854,8 +5852,10 @@ _p9k_dump_instant_prompt() { typeset -g __p9k_instant_prompt_output=${TMPDIR:-/tmp}/p10k-instant-prompt-output-${(%):-%n}-$$ { echo -n > $__p9k_instant_prompt_output } || return print -rn -- "$out" || return - exec {__p9k_fd_0}<&0 {__p9k_fd_1}>&1 {__p9k_fd_2}>&2 0$__p9k_instant_prompt_output - exec 2>&1 + local fd_null + sysopen -ru fd_null /dev/null || return + exec {__p9k_fd_0}<&0 {__p9k_fd_1}>&1 {__p9k_fd_2}>&2 0<&$fd_null 1>$__p9k_instant_prompt_output + exec 2>&1 {fd_null}>&- typeset -gi __p9k_instant_prompt_active=1 typeset -g __p9k_instant_prompt_dump_file=${XDG_CACHE_HOME:-~/.cache}/p10k-dump-${(%):-%n}.zsh if source $__p9k_instant_prompt_dump_file 2>/dev/null && (( $+functions[_p9k_preinit] )); then @@ -5878,7 +5878,7 @@ _p9k_dump_instant_prompt() { local -i fill=$((COLUMNS > _p9k__ret ? COLUMNS - _p9k__ret : 0)) echo -nE - "${(%):-%b%k%f%s%u$mark${(pl.$fill.. .)}$cr%b%k%f%s%u%E}" fi - zmodload -F zsh/files b:zf_rm + zmodload -F zsh/files b:zf_rm || return local user=${(%):-%n} local root_dir=${__p9k_instant_prompt_dump_file:h} zf_rm -f -- $__p9k_instant_prompt_output $__p9k_instant_prompt_dump_file{,.zwc} $root_dir/p10k-instant-prompt-$user.zsh{,.zwc} $root_dir/p10k-$user/prompt-*(N) 2>/dev/null @@ -6212,7 +6212,7 @@ function _p9k_on_expand() { if (( ! _p9k__expanded )); then if _p9k_should_dump; then - exec {_p9k__state_dump_fd}