From: memeplex Date: Tue, 15 Oct 2019 00:37:20 +0000 (-0300) Subject: Avoid extra lines in python-shell font lock buffer (Bug#33959) X-Git-Tag: emacs-27.0.90~910 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=ab6728787245e0d46bd8a8919e30c882f6011182;p=emacs.git Avoid extra lines in python-shell font lock buffer (Bug#33959) * lisp/progmodes/python.el (python-shell-font-lock-comint-output-filter-function): Avoid writing a newline to the font lock buffer when receiving an empty string. --- diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index b168b62c291..634c297957d 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -2600,18 +2600,19 @@ goes wrong and syntax highlighting in the shell gets messed up." (defun python-shell-font-lock-comint-output-filter-function (output) "Clean up the font-lock buffer after any OUTPUT." - (if (let ((output (ansi-color-filter-apply output))) - (and (python-shell-comint-end-of-output-p output) - ;; Assume "..." represents a continuation prompt. - (not (string-match "\\.\\.\\." output)))) - ;; If output ends with an initial (not continuation) input prompt - ;; then the font-lock buffer must be cleaned up. - (python-shell-font-lock-cleanup-buffer) - ;; Otherwise just add a newline. - (python-shell-font-lock-with-font-lock-buffer - (goto-char (point-max)) - (newline))) - output) + (unless (string= output "") ;; See Bug#33959. + (if (let ((output (ansi-color-filter-apply output))) + (and (python-shell-comint-end-of-output-p output) + ;; Assume "..." represents a continuation prompt. + (not (string-match "\\.\\.\\." output)))) + ;; If output ends with an initial (not continuation) input prompt + ;; then the font-lock buffer must be cleaned up. + (python-shell-font-lock-cleanup-buffer) + ;; Otherwise just add a newline. + (python-shell-font-lock-with-font-lock-buffer + (goto-char (point-max)) + (newline))) + output)) (defun python-shell-font-lock-post-command-hook () "Fontifies current line in shell buffer."