]> git.eshelyaron.com Git - emacs.git/commitdiff
comint-fl: Prevent fontification of output as input
authorMiha Rihtaršič <miha@kamnitnik.top>
Fri, 30 Sep 2022 18:07:03 +0000 (20:07 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Fri, 30 Sep 2022 19:15:06 +0000 (21:15 +0200)
* lisp/comint.el (comint-output-filter): Inhibit jit-lock
fontification of inserted process output before marking it with the
'output' filed property (bug#58169).

lisp/comint.el

index e7d2136c8418bd49d3e929ec3331e59f91d48ae5..15c9388ea4f340218929be10bcf60dcd9a1404df 100644 (file)
@@ -2150,24 +2150,26 @@ Make backspaces delete the previous character."
            ;; insert-before-markers is a bad thing. XXX
            ;; Luckily we don't have to use it any more, we use
            ;; window-point-insertion-type instead.
-           (insert string)
+           (make-local-variable 'jit-lock-mode)
+           (let ((jit-lock-mode nil))
+             (insert string)
 
-           ;; Advance process-mark
-           (set-marker (process-mark process) (point))
+             ;; Advance process-mark
+             (set-marker (process-mark process) (point))
 
-           (unless comint-inhibit-carriage-motion
+             (unless comint-inhibit-carriage-motion
              ;; Interpret any carriage motion characters (newline, backspace)
              (comint-carriage-motion comint-last-output-start (point)))
 
-           ;; Run these hooks with point where the user had it.
-           (goto-char saved-point)
-           (run-hook-with-args 'comint-output-filter-functions string)
-           (set-marker saved-point (point))
+             ;; Run these hooks with point where the user had it.
+             (goto-char saved-point)
+             (run-hook-with-args 'comint-output-filter-functions string)
+             (set-marker saved-point (point))
 
-           (goto-char (process-mark process)) ; In case a filter moved it.
+             (goto-char (process-mark process)) ; In case a filter moved it.
 
-           (unless comint-use-prompt-regexp
-              (comint--mark-as-output comint-last-output-start (point)))
+             (unless comint-use-prompt-regexp
+                (comint--mark-as-output comint-last-output-start (point))))
 
            ;; Highlight the prompt, where we define `prompt' to mean
            ;; the most recent output that doesn't end with a newline.