From e9647da10186c698379a01e6aeb2e77f03331829 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Sun, 20 Oct 2013 13:14:23 +0200 Subject: [PATCH] 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. --- lisp/org-element.el | 44 +++++++++++++++----------------------------- 1 file changed, 15 insertions(+), 29 deletions(-) diff --git a/lisp/org-element.el b/lisp/org-element.el index 1fc26f7ca..ed1f5159b 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." (save-excursion - (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 (nconc (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." (save-excursion (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. -- 2.11.4.GIT