Browse Source

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

* lisp/ob-sh.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 10 năm trước cách đây
mục cha
commit
98afe0046f
1 tập tin đã thay đổi với 7 bổ sung1 xóa
  1. 7 1
      lisp/ob-sh.el

+ 7 - 1
lisp/ob-sh.el

@@ -123,7 +123,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-marker 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.")