Browse Source

ob-tangle.el (org-babel-tangle-collect-blocks): Bugfix: remove code references from blocks

* ob-tangle.el (org-babel-tangle-collect-blocks): Bugfix:
remove code references from blocks.

Thanks a lot to Michael Alan Dorman for reporting this.
Bastien Guerry 12 years ago
parent
commit
fa3385e68b
1 changed files with 9 additions and 0 deletions
  1. 9 0
      lisp/ob-tangle.el

+ 9 - 0
lisp/ob-tangle.el

@@ -371,6 +371,10 @@ code blocks by language."
           (unless (and language (not (string= language src-lang)))
 	    (let* ((info (org-babel-get-src-block-info))
 		   (params (nth 2 info))
+		   (extra (nth 3 info))
+		   (cref-fmt (or (and (string-match "-l \"\\(.+\\)\"" extra)
+				      (match-string 1 extra))
+				 org-coderef-label-format))
 		   (link ((lambda (link)
 			    (and (string-match org-bracket-link-regexp link)
 				 (match-string 1 link)))
@@ -388,6 +392,11 @@ code blocks by language."
 		    ((lambda (body) ;; run the tangle-body-hook
 		       (with-temp-buffer
 			 (insert body)
+			 (when (string-match "-r" extra)
+			   (goto-char (point-min))
+			   (while (re-search-forward
+				   (replace-regexp-in-string "%s" ".+" cref-fmt) nil t)
+			     (replace-match "")))
 			 (run-hooks 'org-babel-tangle-body-hook)
 			 (buffer-string)))
 		     ((lambda (body) ;; expand the body in language specific manner