From: Miha Rihtaršič Date: Fri, 30 Sep 2022 18:07:03 +0000 (+0200) Subject: comint-fl: Prevent fontification of output as input X-Git-Tag: emacs-29.0.90~1856^2~113 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=90744ff0be581b69cedea1194b7e78265bdb67a4;p=emacs.git comint-fl: Prevent fontification of output as input * lisp/comint.el (comint-output-filter): Inhibit jit-lock fontification of inserted process output before marking it with the 'output' filed property (bug#58169). --- diff --git a/lisp/comint.el b/lisp/comint.el index e7d2136c841..15c9388ea4f 100644 --- a/lisp/comint.el +++ b/lisp/comint.el @@ -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.