diff options
Diffstat (limited to 'lisp/org/ob-screen.el')
-rw-r--r-- | lisp/org/ob-screen.el | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/lisp/org/ob-screen.el b/lisp/org/ob-screen.el index ad00ee070d4..8a11f7a3b6e 100644 --- a/lisp/org/ob-screen.el +++ b/lisp/org/ob-screen.el @@ -40,7 +40,8 @@ In case you want to use a different screen than one selected by your $PATH") (defvar org-babel-default-header-args:screen - '((:results . "silent") (:session . "default") (:cmd . "sh") (:terminal . "xterm")) + `((:results . "silent") (:session . "default") (:cmd . "sh") + (:terminal . "xterm") (:screenrc . ,null-device)) "Default arguments to use when running screen source blocks.") (defun org-babel-execute:screen (body params) @@ -59,11 +60,11 @@ In case you want to use a different screen than one selected by your $PATH") (let* ((session (cdr (assq :session params))) (cmd (cdr (assq :cmd params))) (terminal (cdr (assq :terminal params))) + (screenrc (cdr (assq :screenrc params))) (process-name (concat "org-babel: terminal (" session ")"))) (apply 'start-process process-name "*Messages*" terminal `("-T" ,(concat "org-babel: " session) "-e" ,org-babel-screen-location - "-c" "/dev/null" "-mS" ,(concat "org-babel-session-" session) - ,cmd)) + "-c" ,screenrc "-mS" ,session ,cmd)) ;; XXX: Is there a better way than the following? (while (not (org-babel-screen-session-socketname session)) ;; wait until screen session is available before returning @@ -97,9 +98,8 @@ In case you want to use a different screen than one selected by your $PATH") nil (mapcar (lambda (x) - (when (string-match - (concat "org-babel-session-" session) x) - x)) + (and (string-match-p (regexp-quote session) x) + x)) sockets))))) (when match-socket (car (split-string match-socket))))) @@ -108,6 +108,7 @@ In case you want to use a different screen than one selected by your $PATH") (let ((tmpfile (org-babel-temp-file "screen-"))) (with-temp-file tmpfile (insert body) + (insert "\n") ;; org-babel has superfluous spaces (goto-char (point-min)) @@ -126,7 +127,7 @@ The terminal should shortly flicker." ;; XXX: need to find a better way to do the following (while (not (file-readable-p tmpfile)) ;; do something, otherwise this will be optimized away - (format "org-babel-screen: File not readable yet.")) + (message "org-babel-screen: File not readable yet.")) (setq tmp-string (with-temp-buffer (insert-file-contents-literally tmpfile) (buffer-substring (point-min) (point-max)))) @@ -138,6 +139,4 @@ The terminal should shortly flicker." (provide 'ob-screen) - - ;;; ob-screen.el ends here |