Browse Source

ob-shell: compatibility fix for "Marker does not point anywhere" errors in Emacs 23

* lisp/ob-shell.el (org-babel-sh-initiate-session): After initiating a
  session, initialize the marker `comint-last-output-start' since it
  is going to be used by the ANSI color filter without further checks
  in Emacs 23 and throws an error.
Achim Gratz 11 năm trước cách đây
mục cha
commit
7d8523d9d1
1 tập tin đã thay đổi với 7 bổ sung1 xóa
  1. 7 1
      lisp/ob-shell.el

+ 7 - 1
lisp/ob-shell.el

@@ -175,7 +175,13 @@ Emacs-lisp table, otherwise return the results as a string."
   (when (and session (not (string= session "none")))
     (save-window-excursion
       (or (org-babel-comint-buffer-livep session)
-          (progn (shell session) (get-buffer (current-buffer)))))))
+          (progn
+	    (shell session)
+	    ; Needed for Emacs 23 since the marker is initially
+	    ; undefined and the filter functions try to use it without
+	    ; checking.
+	    (set-mark comint-last-output-start (point))
+	    (get-buffer (current-buffer)))))))
 
 (defvar org-babel-sh-eoe-indicator "echo 'org_babel_sh_eoe'"
   "String to indicate that evaluation has completed.")