Subject: bug#66738: 30.0.50; Gud LLDB regressions

From: Gerd Möllmann <[email-masked]>
Date: Wed, 25 Oct 2023 06:24:11 +0200

This is with b36e2b1772680b8fce067c6ea2cdf582af982aaa on master.

1. M-x lldb RET leads to errors. *Messages* contains:

error in process filter: gud-marker-filter: Text is read-only
error in process filter: Text is read-only

This seems to come from this code snippet in gud-lldb-marker-filter:

  (let ((bol (pos-bol)))
    (when (> (point) bol)
      ;; Move the current line to the string, so that control sequences
      ;; can delete parts of it.
      (setq string (concat (buffer-substring-no-properties bol (point))
                           string))
      (delete-region bol (point))))

The comment sounds like this code is making wrong assumptions about what
the process buffer contains when it runs. I think this can also be seen
when binding inhibit-read-only around the delete-region. Anyway, I don't
really know what it assumes.

(I'd also find it "cleaner" if the code handling the control sequences
could be moved to a function of its own.)

2. Nitpick: when extracting the file name in the filter function, with

             (group (+ (not (in "\n\r"))))    ; 3: file

this means that file names cannot contain LF and CR, which they actually
can. I guess the only thing a file name definitely cannot contain is
'/'. Don't care about Windows, TBH :-).