summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Davison <davison@stats.ox.ac.uk>2010-08-05 13:45:13 -0400
committerDan Davison <davison@stats.ox.ac.uk>2010-08-05 13:45:13 -0400
commit9330ad5b8106f0c6c0810c993db2f0def1741f63 (patch)
treed316b9a067b39620afbc5c5de3ea2eabe64d2dc4
parent2935464811e4a511a0e552816aa3f001b5013423 (diff)
downloadorg-mode-9330ad5b8106f0c6c0810c993db2f0def1741f63.tar.gz
babel: single function to execute executable babel elements
* ob.el (org-babel-execute-src-block-maybe): remove check for `org-babel-no-eval-on-ctrl-c-ctrl-c'; this is done in the new function `org-babel-execute-safely-maybe' (org-babel-execute-maybe): new function to execute src blocks or lob/call lines. (org-babel-execute-safely-maybe): new function to execute src blocks or lob/call lines via C-c C-c (org-ctrl-c-ctrl-c-hook): remove `org-babel-execute-src-block-maybe' and add `org-babel-execute-safely-maybe'. * ob-lob.el (org-ctrl-c-ctrl-c-hook): remove `org-babel-lob-execute-maybe' * ob-keys.el (org-babel-key-bindings): New function `org-babel-execute-maybe' is bound to C-c C-v e and C-c C-v C-e
-rw-r--r--lisp/ob-keys.el4
-rw-r--r--lisp/ob-lob.el2
-rw-r--r--lisp/ob.el22
3 files changed, 18 insertions, 10 deletions
diff --git a/lisp/ob-keys.el b/lisp/ob-keys.el
index 837db24..e9ba3d9 100644
--- a/lisp/ob-keys.el
+++ b/lisp/ob-keys.el
@@ -52,8 +52,8 @@ functions which are assigned key bindings, and see
("\C-p" . org-babel-previous-src-block)
("n" . org-babel-next-src-block)
("\C-n" . org-babel-next-src-block)
- ("e" . org-babel-execute-src-block)
- ("\C-e" . org-babel-execute-src-block)
+ ("e" . org-babel-execute-maybe)
+ ("\C-e" . org-babel-execute-maybe)
("o" . org-babel-open-src-block-result)
("\C-o" . org-babel-open-src-block-result)
("\C-v" . org-babel-expand-src-block)
diff --git a/lisp/ob-lob.el b/lisp/ob-lob.el
index f0f9438..8c207f7 100644
--- a/lisp/ob-lob.el
+++ b/lisp/ob-lob.el
@@ -77,8 +77,6 @@ if so then run the appropriate source block from the Library."
(let ((info (org-babel-lob-get-info)))
(if (nth 0 info) (progn (org-babel-lob-execute info) t) nil)))
-(add-hook 'org-ctrl-c-ctrl-c-hook 'org-babel-lob-execute-maybe)
-
;;;###autoload
(defun org-babel-lob-get-info ()
"Return a Library of Babel function call as a string.
diff --git a/lisp/ob.el b/lisp/ob.el
index 0c12949..ffb0aab 100644
--- a/lisp/ob.el
+++ b/lisp/ob.el
@@ -195,17 +195,26 @@ of potentially harmful code."
(error "evaluation aborted"))))
;;;###autoload
+(defun org-babel-execute-safely-maybe ()
+ (unless org-babel-no-eval-on-ctrl-c-ctrl-c
+ (org-babel-execute-maybe)))
+
+(add-hook 'org-ctrl-c-ctrl-c-hook 'org-babel-execute-safely-maybe)
+
+;;;###autoload
+(defun org-babel-execute-maybe ()
+ (interactive)
+ (or (org-babel-execute-src-block-maybe)
+ (org-babel-lob-execute-maybe)))
+
(defun org-babel-execute-src-block-maybe ()
"Conditionally execute a source block.
Detect if this is context for a Babel src-block and if so
then run `org-babel-execute-src-block'."
(interactive)
- (if (not org-babel-no-eval-on-ctrl-c-ctrl-c)
- (let ((info (org-babel-get-src-block-info)))
- (if info
- (progn (org-babel-execute-src-block current-prefix-arg info) t) nil))
- nil))
-(add-hook 'org-ctrl-c-ctrl-c-hook 'org-babel-execute-src-block-maybe)
+ (let ((info (org-babel-get-src-block-info)))
+ (if info
+ (progn (org-babel-execute-src-block current-prefix-arg info) t) nil)))
;;;###autoload
(defun org-babel-expand-src-block-maybe ()
@@ -298,6 +307,7 @@ can not be resolved.")
;;; functions
(defvar call-process-region)
;;;###autoload
+
(defun org-babel-execute-src-block (&optional arg info params)
"Execute the current source code block.
Insert the results of execution into the buffer. Source code