From: Mattias EngdegÄrd <mattiase@acm.org>
Date: Wed, 25 Oct 2023 10:14:57 +0000 (+0200)
Subject: LLDB support: cope with inserted text being write-protected
X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=e3da8edf5e56ef4044da76ac2991aff0dedc33f5;p=emacs.git

LLDB support: cope with inserted text being write-protected

* lisp/progmodes/gud.el (gud-lldb-marker-filter):
Force deletion of the part of the buffer being moved back into
filtering again (bug#66738).
---

diff --git a/lisp/progmodes/gud.el b/lisp/progmodes/gud.el
index 8692a6be023..70af736372e 100644
--- a/lisp/progmodes/gud.el
+++ b/lisp/progmodes/gud.el
@@ -3905,7 +3905,8 @@ so they have been disabled."))
       ;; can delete parts of it.
       (setq string (concat (buffer-substring-no-properties bol (point))
                            string))
-      (delete-region bol (point))))
+      (let ((inhibit-read-only t))
+        (delete-region bol (point)))))
   (let ((ofs 0))
     (while (string-match (rx (group (* (not (in "\e\n"))))  ; preceding chars
                              "\e["                          ; CSI
@@ -3926,12 +3927,13 @@ so they have been disabled."))
                             0)))
                 ;; Erase in display (ED): no further action.
                 prefix-end)))
+        ;; Delete the control sequence and possibly part of the preceding chars.
         (setq string (concat (substring string 0 keep-end)
                              (substring string end)))
         (setq ofs start))))
   string)
 
-;; According to SBCommanInterpreter.cpp, the return value of
+;; According to SBCommandInterpreter.cpp, the return value of
 ;; HandleCompletions is as follows:
 ;;
 ;; Index 1 to the end contain all the completions.