]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix LLDB prompt in Gud when attached
authorGerd Möllmann <gerd@gnu.org>
Mon, 23 Oct 2023 05:27:04 +0000 (07:27 +0200)
committerGerd Möllmann <gerd@gnu.org>
Mon, 23 Oct 2023 05:27:04 +0000 (07:27 +0200)
* lisp/progmodes/gud.el (gud-lldb-marker-filter): Fix the prompt by
replacing multiple spaces with one.

lisp/progmodes/gud.el

index 02a1597340b717543ced63817d0eb24c3ee760dd..d3064b6116c5d8c2e2029b97f6f019d3ef202684 100644 (file)
@@ -3886,7 +3886,13 @@ so they have been disabled."))
                    string)
      (setq gud-last-last-frame nil)
      (setq gud-overlay-arrow-position nil)))
-  string)
+  ;; While being attached to a process, LLDB emits control sequences,
+  ;; even if TERM is "dumb".  This is the case in at least LLDB
+  ;; version 14 to 17.  The control sequences are filtered out by
+  ;; Emacs after this process filter runs, but LLDB also prints an
+  ;; extra space after the prompt, which we fix here.
+  (replace-regexp-in-string (rx "(lldb)" (group (1+ blank)) "\e[8")
+                            " " string nil nil 1))
 
 ;; According to SBCommanInterpreter.cpp, the return value of
 ;; HandleCompletions is as follows: