From 7bff1c4974d5d9a1e84c2ad1c640e141e247ad13 Mon Sep 17 00:00:00 2001 From: Illia Ostapyshyn Date: Thu, 14 Sep 2023 20:39:10 +0600 Subject: [PATCH] * eat.el (eat-mode): Escape '%' character in title --- eat.el | 9 +++++---- integration/zsh | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/eat.el b/eat.el index bdf296d..cf7ff84 100644 --- a/eat.el +++ b/eat.el @@ -6253,10 +6253,11 @@ mouse-3: Switch to char mode" '(" " (:propertize (:eval - (when (and eat--terminal - (not (string-empty-p (eat-term-title - eat--terminal)))) - (format "(%s)" (eat-term-title eat--terminal)))) + (when-let* (((eat--terminal)) + (title (eat-term-title eat--terminal)) + ((not (string-empty-p title)))) + (format "(%s)" (string-replace "%" "%%" + title)))) help-echo "Title")))))) (eat-emacs-mode) ;; Make sure glyphless character don't display a huge box glyph, diff --git a/integration/zsh b/integration/zsh index 1fb4d79..66ea0e6 100644 --- a/integration/zsh +++ b/integration/zsh @@ -30,7 +30,7 @@ __eat_precmd () { "$(printf "%s" "$PWD" | base64)" # Update title. # "${PWD/$HOME/'~'}" converts "/home/akib/org/" to "~/org/". - # The next one is substituted with '$', or '#' if we're "root". + # The next one is substituted with '%', or '#' if we're "root". printf '\e]2;%s@%s:%s%s\e\\' "$USER" "$HOST" "${PWD/$HOME/~}" \ "$(test $UID -eq 0 && echo '#' || echo '%')" }