]> code.delx.au - gnu-emacs/commitdiff
Grab all Python process output before inferior-python-mode hooks.
authorFabián Ezequiel Gallina <fgallina@gnu.org>
Mon, 28 Jul 2014 02:47:29 +0000 (23:47 -0300)
committerFabián Ezequiel Gallina <fgallina@gnu.org>
Mon, 28 Jul 2014 02:47:29 +0000 (23:47 -0300)
* 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.

lisp/ChangeLog
lisp/progmodes/python.el

index cda49f48dcc59a1e908def4328a094cde905a8ed..0fc4f7c1bfc37a42e22115bacffc7c882ba6ca4d 100644 (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.
index 433dbc1dafd24f428068e8bb43ea8198d4364c2e..a3e100f057848af2662601605b00d3a3679b981b 100644 (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