From dc1f0233440606a9b175b5f2871a098c24af5c74 Mon Sep 17 00:00:00 2001 From: romkatv Date: Wed, 6 May 2020 23:13:56 +0200 Subject: [PATCH] work around more zsh bugs w.r.t. local traps --- internal/p10k.zsh | 2 +- powerlevel10k.zsh-theme | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/internal/p10k.zsh b/internal/p10k.zsh index d82be693..5cc3195e 100644 --- a/internal/p10k.zsh +++ b/internal/p10k.zsh @@ -6428,7 +6428,7 @@ _p9k_precmd() { __p9k_new_status=$? __p9k_new_pipestatus=($pipestatus) - trap "" INT + trap ":" INT [[ -o ksh_arrays ]] && __p9k_ksh_arrays=1 || __p9k_ksh_arrays=0 [[ -o sh_glob ]] && __p9k_sh_glob=1 || __p9k_sh_glob=0 diff --git a/powerlevel10k.zsh-theme b/powerlevel10k.zsh-theme index efe1567f..4ab56335 100644 --- a/powerlevel10k.zsh-theme +++ b/powerlevel10k.zsh-theme @@ -19,9 +19,11 @@ (( $+__p9k_root_dir )) || typeset -gr __p9k_root_dir=${POWERLEVEL9K_INSTALLATION_DIR:-${${(%):-%x}:A:h}} (( $+__p9k_intro )) || { - # Note: leading spaces before `local` are important. Otherwise Antigen will remove `local` (!!!). + # Leading spaces before `local` are important. Otherwise Antigen will remove `local` (!!!). + # __p9k_trapint is to work around bugs in zsh: https://www.zsh.org/mla/workers/2020/msg00612.html. + # Likewise for `trap ":"` instead of the plain `trap ""`. typeset -gr __p9k_intro_base='emulate -L zsh -o no_hist_expand -o extended_glob -o no_prompt_bang -o prompt_percent -o no_prompt_subst -o no_aliases -o no_bg_nice -o typeset_silent - trap "" INT + trap ":" INT trap "trap ${(q)__p9k_trapint:--} INT" EXIT local -a match mbegin mend local -i MBEGIN MEND OPTIND