Function: org-babel-map-inline-src-blocks

org-babel-map-inline-src-blocks is an autoloaded macro defined in ob-core.el.gz.

Signature

(org-babel-map-inline-src-blocks FILE &rest BODY)

Documentation

Evaluate BODY forms on each inline source block in FILE.

If FILE is nil evaluate BODY forms on source blocks in current buffer.

Source Code

;; Defined in /usr/src/emacs/lisp/org/ob-core.el.gz
;;;###autoload
(defmacro org-babel-map-inline-src-blocks (file &rest body)
  "Evaluate BODY forms on each inline source block in FILE.
If FILE is nil evaluate BODY forms on source blocks in current
buffer."
  (declare (indent 1) (debug (form body)))
  (org-with-gensyms (datum end point tempvar to-be-removed visitedp)
    `(let* ((case-fold-search t)
	    (,tempvar ,file)
	    (,visitedp (or (null ,tempvar)
			   (get-file-buffer (expand-file-name ,tempvar))))
	    (,point (point))
	    ,to-be-removed)
       (save-window-excursion
	 (when ,tempvar (find-file ,tempvar))
	 (setq ,to-be-removed (current-buffer))
	 (goto-char (point-min))
	 (while (re-search-forward "src_\\S-" nil t)
	   (let ((,datum (org-element-context)))
	     (when (org-element-type-p ,datum 'inline-src-block)
	       (goto-char (org-element-begin ,datum))
	       (let ((,end (copy-marker (org-element-end ,datum))))
		 ,@body
		 (goto-char ,end)
		 (set-marker ,end nil))))))
       (unless ,visitedp (kill-buffer ,to-be-removed))
       (goto-char ,point))))