From e3da8edf5e56ef4044da76ac2991aff0dedc33f5 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Mattias=20Engdeg=C3=A5rd?= Date: Wed, 25 Oct 2023 12:14:57 +0200 Subject: [PATCH] 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). --- lisp/progmodes/gud.el | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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. -- 2.39.2