emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* [PATCH] ob.el Adhere to current :padline header during noweb dereferencing.
@ 2012-01-23 20:07 tom
  0 siblings, 0 replies; only message in thread
From: tom @ 2012-01-23 20:07 UTC (permalink / raw)
  To: emacs-orgmode

At the moment using the :noweb-ref: property approach on subtrees results in the tangled code beeing broken
because the newlines before the #+end_src line are excluded from the output. This patch uses :padline
to check if a newline should be added. The default being yes, tangling with subtree mangling now produces correct
results; code depending on the (errorneous?) behaviour would be broken though.
---
 lisp/ob.el |    9 ++++++---
 1 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/lisp/ob.el b/lisp/ob.el
index 47be708..398a997 100644
--- a/lisp/ob.el
+++ b/lisp/ob.el
@@ -2211,13 +2211,16 @@ block but are passed literally to the \"example-block\"."
 					     (nth 4 i))
 					 source-name)
 			      (let* ((body (org-babel-expand-noweb-references i))
-				     (full (if comment
+					 (padded (if (not (string= "no" (cdr (assoc :padline (nth 2 i)))))
+								(concat body "\n") 
+								body ))
+					 (full (if comment
 					       ((lambda (cs)
 						  (concat (c-wrap (car cs)) "\n"
-							  body "\n"
+							  padded "\n"
 							  (c-wrap (cadr cs))))
 						(org-babel-tangle-comment-links i))
-					     body)))
+					     padded)))
 				(setq expansion (concat expansion full))))))))
 		    expansion)
 		  ;; possibly raise an error if named block doesn't exist
-- 
1.7.5.4

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2012-01-23 20:07 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-01-23 20:07 [PATCH] ob.el Adhere to current :padline header during noweb dereferencing tom

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).