diff options
authorNicolas Goaziou <>2013-10-20 11:14:23 (GMT)
committer Nicolas Goaziou <>2013-10-20 11:38:30 (GMT)
commite9647da10186c698379a01e6aeb2e77f03331829 (patch)
parent35842c7362452135050291e6d68177ccbf723c70 (diff)
org-element: Do not retrieve Babel related info
* lisp/org-element.el (org-element-babel-call-parser, org-element-inline-babel-call-parser): Do not call `org-babel-lob-get-info' since it is out of parser's scope. (org-element-babel-call-interpreter, org-element-inline-babel-call-interpreter): Apply changes to parsers.
1 files changed, 15 insertions, 29 deletions
diff --git a/lisp/org-element.el b/lisp/org-element.el
index 1fc26f7..ed1f515 100644
--- a/lisp/org-element.el
+++ b/lisp/org-element.el
@@ -1492,14 +1492,15 @@ keyword and CDR is a plist of affiliated keywords along with
their value.
Return a list whose CAR is `babel-call' and CDR is a plist
-containing `:begin', `:end', `:info', `:post-blank' and
+containing `:begin', `:end', `:value', `:post-blank' and
`:post-affiliated' as keywords."
- (let ((case-fold-search t)
- (info (progn (looking-at org-babel-block-lob-one-liner-regexp)
- (org-babel-lob-get-info)))
- (begin (car affiliated))
+ (let ((begin (car affiliated))
(post-affiliated (point))
+ (value (progn (let ((case-fold-search t))
+ (re-search-forward "call:[ \t]*" nil t))
+ (buffer-substring-no-properties (point)
+ (line-end-position))))
(pos-before-blank (progn (forward-line) (point)))
(end (progn (skip-chars-forward " \r\t\n" limit)
(skip-chars-backward " \t")
@@ -1508,7 +1509,7 @@ containing `:begin', `:end', `:info', `:post-blank' and
(list :begin begin
:end end
- :info info
+ :value value
:post-blank (count-lines pos-before-blank end)
:post-affiliated post-affiliated)
(cdr affiliated))))))
@@ -1516,14 +1517,7 @@ containing `:begin', `:end', `:info', `:post-blank' and
(defun org-element-babel-call-interpreter (babel-call contents)
"Interpret BABEL-CALL element as Org syntax.
CONTENTS is nil."
- (let* ((babel-info (org-element-property :info babel-call))
- (main (car babel-info))
- (post-options (nth 1 babel-info)))
- (concat "#+CALL: "
- (if (not (string-match "\\[\\(\\[.*?\\]\\)\\]" main)) main
- ;; Remove redundant square brackets.
- (replace-match (match-string 1 main) nil nil main))
- (and post-options (format "[%s]" post-options)))))
+ (concat "#+CALL: " (org-element-property :value babel-call)))
;;;; Clock
@@ -2862,36 +2856,28 @@ CDR is beginning position."
"Parse inline babel call at point.
Return a list whose CAR is `inline-babel-call' and CDR a plist
-with `:begin', `:end', `:info' and `:post-blank' as keywords.
+with `:begin', `:end', `:value' and `:post-blank' as keywords.
Assume point is at the beginning of the babel call."
(unless (bolp) (backward-char))
- (looking-at org-babel-inline-lob-one-liner-regexp)
- (let ((info (save-match-data (org-babel-lob-get-info)))
- (begin (match-end 1))
+ (let ((case-fold-search t))
+ (looking-at org-babel-inline-lob-one-liner-regexp))
+ (let ((begin (match-end 1))
+ (value (buffer-substring-no-properties (match-end 1) (match-end 0)))
(post-blank (progn (goto-char (match-end 0))
(skip-chars-forward " \t")))
(end (point)))
(list 'inline-babel-call
(list :begin begin
:end end
- :info info
+ :value value
:post-blank post-blank)))))
(defun org-element-inline-babel-call-interpreter (inline-babel-call contents)
"Interpret INLINE-BABEL-CALL object as Org syntax.
CONTENTS is nil."
- (let* ((babel-info (org-element-property :info inline-babel-call))
- (main-source (car babel-info))
- (post-options (nth 1 babel-info)))
- (concat "call_"
- (if (string-match "\\[\\(\\[.*?\\]\\)\\]" main-source)
- ;; Remove redundant square brackets.
- (replace-match
- (match-string 1 main-source) nil nil main-source)
- main-source)
- (and post-options (format "[%s]" post-options)))))
+ (org-element-property :value inline-babel-call))
(defun org-element-inline-babel-call-successor ()
"Search for the next inline-babel-call object.