Grab all Python process output before inferior-python-mode hooks.

* lisp/progmodes/python.el (inferior-python-mode): Call
accept-process-output and sit-for to ensure all output for process
has been received before running hooks.
(python-shell-internal-get-or-create-process): Cleanup
accept-process-output and sit-for calls.
This commit is contained in:
Fabián Ezequiel Gallina 2014-07-27 23:47:29 -03:00
parent 168f8e732d
commit f5bed1021b
2 changed files with 14 additions and 8 deletions

View file

@ -1,3 +1,12 @@
2014-07-28 Fabián Ezequiel Gallina <fgallina@gnu.org>
Grab all Python process output before inferior-python-mode hooks.
* progmodes/python.el (inferior-python-mode): Call
accept-process-output and sit-for to ensure all output for process
has been received before running hooks.
(python-shell-internal-get-or-create-process): Cleanup
accept-process-output and sit-for calls.
2014-07-28 Fabián Ezequiel Gallina <fgallina@gnu.org>
More robust shell startup and code setup.

View file

@ -2361,7 +2361,10 @@ variable.
(make-local-variable 'python-shell-internal-last-output)
(when python-shell-font-lock-enable
(python-shell-font-lock-turn-on))
(compilation-shell-minor-mode 1))
(compilation-shell-minor-mode 1)
;; Ensure all the output is accepted before running any hooks.
(accept-process-output (get-buffer-process (current-buffer)))
(sit-for 0.1 t))
(defun python-shell-make-comint (cmd proc-name &optional pop internal)
"Create a Python shell comint buffer.
@ -2499,13 +2502,7 @@ there for compatibility with CEDET.")
(proc-buffer-name (format " *%s*" proc-name)))
(when (not (process-live-p proc-name))
(run-python-internal)
(setq python-shell-internal-buffer proc-buffer-name)
;; XXX: Why is this `sit-for' needed?
;; `python-shell-make-comint' calls `accept-process-output'
;; already but it is not helping to get proper output on
;; 'gnu/linux when the internal shell process is not running and
;; a call to `python-shell-internal-send-string' is issued.
(sit-for 0.1 t))
(setq python-shell-internal-buffer proc-buffer-name))
(get-buffer-process proc-buffer-name)))
(define-obsolete-function-alias