Merge branch 'master' of git+ssh://repo.or.cz/srv/git/org-mode
This commit is contained in:
commit
1886c46d9d
|
@ -888,10 +888,14 @@ parameters when merging lists."
|
|||
"This function expands Noweb style references in the body of
|
||||
the current source-code block. For example the following
|
||||
reference would be replaced with the body of the source-code
|
||||
block named 'example-block' (assuming the '#' character starts a
|
||||
comment) .
|
||||
block named 'example-block'.
|
||||
|
||||
# <<example-block>>
|
||||
<<example-block>>
|
||||
|
||||
Note that any text preceding the <<foo>> construct on a line will
|
||||
be interposed between the lines of the replacement text. So for
|
||||
example if <<foo>> is placed behind a comment, then the entire
|
||||
replacement text will also be commented.
|
||||
|
||||
This function must be called from inside of the buffer containing
|
||||
the source-code block which holds BODY.
|
||||
|
@ -899,21 +903,22 @@ the source-code block which holds BODY.
|
|||
In addition the following syntax can be used to insert the
|
||||
results of evaluating the source-code block named 'example-block'.
|
||||
|
||||
# <<example-block()>>
|
||||
<<example-block()>>
|
||||
|
||||
Any optional arguments can be passed to example-block by placing
|
||||
the arguments inside the parenthesis following the convention
|
||||
defined by `org-babel-lob'. For example
|
||||
|
||||
# <<example-block(a=9)>>
|
||||
<<example-block(a=9)>>
|
||||
|
||||
would set the value of argument \"a\" equal to \"9\". Note that
|
||||
these arguments are not evaluated in the current source-code block but are passed literally to the \"example-block\"."
|
||||
these arguments are not evaluated in the current source-code
|
||||
block but are passed literally to the \"example-block\"."
|
||||
(let* ((parent-buffer (or parent-buffer (current-buffer)))
|
||||
(info (or info (org-babel-get-src-block-info)))
|
||||
(lang (first info))
|
||||
(body (second info))
|
||||
(new-body "") index source-name evaluate)
|
||||
(new-body "") index source-name evaluate prefix)
|
||||
(flet ((nb-add (text)
|
||||
(setq new-body (concat new-body text))))
|
||||
(with-temp-buffer
|
||||
|
@ -926,6 +931,10 @@ these arguments are not evaluated in the current source-code block but are passe
|
|||
(while (and (re-search-forward "<<\\(.+?\\)>>" nil t))
|
||||
(save-match-data (setf source-name (match-string 1)))
|
||||
(save-match-data (setq evaluate (string-match "\(.*\)" source-name)))
|
||||
(save-match-data
|
||||
(setq prefix (buffer-substring (match-beginning 0)
|
||||
(save-excursion
|
||||
(move-beginning-of-line 1) (point)))))
|
||||
;; add interval to new-body (removing noweb reference)
|
||||
(goto-char (match-beginning 0))
|
||||
(nb-add (buffer-substring index (point)))
|
||||
|
@ -933,22 +942,26 @@ these arguments are not evaluated in the current source-code block but are passe
|
|||
(setq index (point))
|
||||
(nb-add (save-excursion
|
||||
(set-buffer parent-buffer)
|
||||
(if evaluate
|
||||
(let ((raw (org-babel-ref-resolve-reference
|
||||
source-name nil)))
|
||||
(if (stringp raw) raw (format "%S" raw)))
|
||||
(let ((point (org-babel-find-named-block source-name)))
|
||||
(if point
|
||||
(save-excursion
|
||||
(goto-char point)
|
||||
(org-babel-trim (org-babel-expand-noweb-references
|
||||
(org-babel-get-src-block-info))))
|
||||
;; optionally raise an error if named source-block doesn't exist
|
||||
(if (member lang org-babel-noweb-error-langs)
|
||||
(error
|
||||
"<<%s>> could not be resolved (see `org-babel-noweb-error-langs')"
|
||||
source-name)
|
||||
"")))))))
|
||||
(mapconcat ;; interpose `prefix' between every line
|
||||
#'identity
|
||||
(split-string
|
||||
(if evaluate
|
||||
(let ((raw (org-babel-ref-resolve-reference
|
||||
source-name nil)))
|
||||
(if (stringp raw) raw (format "%S" raw)))
|
||||
(let ((point (org-babel-find-named-block source-name)))
|
||||
(if point
|
||||
(save-excursion
|
||||
(goto-char point)
|
||||
(org-babel-trim (org-babel-expand-noweb-references
|
||||
(org-babel-get-src-block-info))))
|
||||
;; optionally raise an error if named
|
||||
;; source-block doesn't exist
|
||||
(if (member lang org-babel-noweb-error-langs)
|
||||
(error
|
||||
"<<%s>> could not be resolved (see `org-babel-noweb-error-langs')"
|
||||
source-name)
|
||||
"")))) "[\n\r]") (concat "\n" prefix)))))
|
||||
(nb-add (buffer-substring index (point-max)))))
|
||||
new-body))
|
||||
|
||||
|
|
Loading…
Reference in New Issue