From cebe0bec72df8c07dab367e2df500d2fd1a8aae3 Mon Sep 17 00:00:00 2001 From: Eric Schulte Date: Thu, 15 Sep 2011 16:00:10 -0600 Subject: [PATCH] customizable processing of Org-mode text used as comments in tangled source-code files * lisp/ob-tangle.el (org-babel-process-comment-text): Customizable function to process comment text. (org-babel-tangle-collect-blocks): Make use of new customizable processing function. (org-babel-spec-to-string): Call customizable function rather than `org-babel-trim'. --- lisp/ob-tangle.el | 41 +++++++++++++++++++++++++---------------- 1 files changed, 25 insertions(+), 16 deletions(-) diff --git a/lisp/ob-tangle.el b/lisp/ob-tangle.el index d1e26c0..10fc120 100644 --- a/lisp/ob-tangle.el +++ b/lisp/ob-tangle.el @@ -95,6 +95,14 @@ controlled by the :comments header argument." :group 'org-babel :type 'string) +(defcustom org-babel-process-comment-text #'org-babel-trim + "Function called to process raw Org-mode text collected to be +inserted as comments in tangled source-code files. The function +should take a single string argument and return a string +result. The default value is `org-babel-trim'." + :group 'org-babel + :type 'function) + (defun org-babel-find-file-noselect-refresh (file) "Find file ensuring that the latest changes on disk are represented in the file." @@ -345,16 +353,18 @@ code blocks by language." (when (or (string= "both" (cdr (assoc :comments params))) (string= "org" (cdr (assoc :comments params)))) ;; from the previous heading or code-block end - (buffer-substring - (max (condition-case nil - (save-excursion - (org-back-to-heading t) (point)) - (error 0)) - (save-excursion - (re-search-backward - org-babel-src-block-regexp nil t) - (match-end 0))) - (point)))) + (funcall + org-babel-process-comment-text + (buffer-substring + (max (condition-case nil + (save-excursion + (org-back-to-heading t) (point)) + (error 0)) + (save-excursion + (re-search-backward + org-babel-src-block-regexp nil t) + (match-end 0))) + (point))))) by-lang) ;; add the spec for this block to blocks under it's language (setq by-lang (cdr (assoc src-lang blocks))) @@ -396,12 +406,11 @@ form (eval el)))) '(start-line file link source-name)))) (flet ((insert-comment (text) - (let ((text (org-babel-trim text))) - (when (and comments (not (string= comments "no")) - (> (length text) 0)) - (when padline (insert "\n")) - (comment-region (point) (progn (insert text) (point))) - (end-of-line nil) (insert "\n"))))) + (when (and comments (not (string= comments "no")) + (> (length text) 0)) + (when padline (insert "\n")) + (comment-region (point) (progn (insert text) (point))) + (end-of-line nil) (insert "\n")))) (when comment (insert-comment comment)) (when link-p (insert-comment -- 1.7.4.1