From 7d0ff465220bec224c1f0c1163e6b4a88e1fb4c6 Mon Sep 17 00:00:00 2001 From: Case Duckworth Date: Fri, 19 Aug 2022 13:39:13 -0500 Subject: bleh --- lisp/+tab-bar.el | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'lisp/+tab-bar.el') diff --git a/lisp/+tab-bar.el b/lisp/+tab-bar.el index 7ff991c..6c9debd 100644 --- a/lisp/+tab-bar.el +++ b/lisp/+tab-bar.el @@ -32,6 +32,19 @@ "Hide the `tracking-mode' information when clocked in." :type 'boolean) +(defun format-mode-line-unescaping (construct) + "Return a mode-line construct as a string, but unescape `%'s." + (format-mode-line + (cond ((listp construct) + (cl-loop for item in construct + collect (cond ((stringp item) + (string-replace "%" "%%" item)) + ((and (listp item) (eq :propertize (car item))) + (format-mode-line-unescaping item)) + (t item)))) + ((stringp construct) (string-replace "%" "%%" construct)) + (t construct)))) + (defun +tab-bar-tracking-mode () "Display `tracking-mode-line-buffers' in the tab-bar." ;; TODO: write something to convert a mode-line construct to a tab-bar @@ -45,7 +58,7 @@ as item = (nth i tracking-mode-line-buffers) collect (append (list (intern (format "tracking-mode-line-%s" i)) 'menu-item - (string-trim (format-mode-line item))) + (string-trim (format-mode-line-unescaping item))) (if-let ((keymap (plist-get item 'keymap))) (list (alist-get 'down-mouse-1 (cdadr keymap))) (list #'ignore)) -- cgit 1.4.1-21-gabe81