Skip to content

Commit

Permalink
Python shell: rearrange printing of newline before output
Browse files Browse the repository at this point in the history
* progmodes/python.el (python-shell-output-filter-in-progress)
(python-shell-output-filter-buffer): Move defvars to avoid compiler
warnings.
(python-shell-eval-setup-code): Don't print a newline in
__PYTHON_EL_eval.
(python-shell-send-string): Insert newline before output when
applicable (bug#50514).
  • Loading branch information
astoff authored and larsmagne committed Sep 15, 2021
1 parent 3c2753a commit 6cfc312
Showing 1 changed file with 8 additions and 4 deletions.
12 changes: 8 additions & 4 deletions lisp/progmodes/python.el
Expand Up @@ -2189,6 +2189,9 @@ virtualenv."
:type '(alist regexp)
:group 'python)

(defvar python-shell-output-filter-in-progress nil)
(defvar python-shell-output-filter-buffer nil)

(defmacro python-shell--add-to-path-with-priority (pathvar paths)
"Modify PATHVAR and ensure PATHS are added only once at beginning."
`(dolist (path (reverse ,paths))
Expand Down Expand Up @@ -2821,7 +2824,6 @@ def __PYTHON_EL_eval(source, filename):
from __builtin__ import compile, eval, globals
else:
from builtins import compile, eval, globals
sys.stdout.write('\\n')
try:
p, e = ast.parse(source, filename), None
except SyntaxError:
Expand Down Expand Up @@ -3162,6 +3164,11 @@ t when called interactively."
(python-shell--encode-string string)
(python-shell--encode-string (or (buffer-file-name)
"<string>")))))
(unless python-shell-output-filter-in-progress
(with-current-buffer (process-buffer process)
(save-excursion
(goto-char (process-mark process))
(insert-before-markers "\n"))))
(if (or (null (process-tty-name process))
(<= (string-bytes code)
(or (bound-and-true-p comint-max-line-length)
Expand All @@ -3172,9 +3179,6 @@ t when called interactively."
(file-name (or (buffer-file-name) temp-file-name)))
(python-shell-send-file file-name process temp-file-name t)))))

(defvar python-shell-output-filter-in-progress nil)
(defvar python-shell-output-filter-buffer nil)

(defun python-shell-output-filter (string)
"Filter used in `python-shell-send-string-no-output' to grab output.
STRING is the output received to this point from the process.
Expand Down

0 comments on commit 6cfc312

Please sign in to comment.