Browse Source

Merge branch 'origin-maint'

Eric Schulte 13 years ago
parent
commit
2395c3eff1
4 changed files with 26 additions and 16 deletions
  1. 14 5
      doc/org.texi
  2. 9 9
      lisp/ob.el
  3. 1 0
      testing/examples/babel.org
  4. 2 2
      testing/lisp/test-ob.el

+ 14 - 5
doc/org.texi

@@ -708,6 +708,7 @@ Specific header arguments
 * session::                     Preserve the state of code evaluation
 * session::                     Preserve the state of code evaluation
 * noweb::                       Toggle expansion of noweb references
 * noweb::                       Toggle expansion of noweb references
 * noweb-ref::                   Specify block's noweb reference resolution target
 * noweb-ref::                   Specify block's noweb reference resolution target
+* noweb-sep::                   String used to separate noweb references
 * cache::                       Avoid re-evaluating unchanged code blocks
 * cache::                       Avoid re-evaluating unchanged code blocks
 * sep::                         Delimiter for writing tabular results outside Org
 * sep::                         Delimiter for writing tabular results outside Org
 * hlines::                      Handle horizontal lines in tables
 * hlines::                      Handle horizontal lines in tables
@@ -13017,6 +13018,7 @@ argument in lowercase letters.  The following header arguments are defined:
 * session::                     Preserve the state of code evaluation
 * session::                     Preserve the state of code evaluation
 * noweb::                       Toggle expansion of noweb references
 * noweb::                       Toggle expansion of noweb references
 * noweb-ref::                   Specify block's noweb reference resolution target
 * noweb-ref::                   Specify block's noweb reference resolution target
+* noweb-sep::                   String used to separate noweb references
 * cache::                       Avoid re-evaluating unchanged code blocks
 * cache::                       Avoid re-evaluating unchanged code blocks
 * sep::                         Delimiter for writing tabular results outside Org
 * sep::                         Delimiter for writing tabular results outside Org
 * hlines::                      Handle horizontal lines in tables
 * hlines::                      Handle horizontal lines in tables
@@ -13640,7 +13642,7 @@ Note that noweb replacement text that does not contain any newlines will not
 be affected by this change, so it is still possible to use inline noweb
 be affected by this change, so it is still possible to use inline noweb
 references.
 references.
 
 
-@node noweb-ref, cache, noweb, Specific header arguments
+@node noweb-ref, noweb-sep, noweb, Specific header arguments
 @subsubsection @code{:noweb-ref}
 @subsubsection @code{:noweb-ref}
 When expanding ``noweb'' style references the bodies of all code block with
 When expanding ``noweb'' style references the bodies of all code block with
 @emph{either} a block name matching the reference name @emph{or} a
 @emph{either} a block name matching the reference name @emph{or} a
@@ -13684,11 +13686,18 @@ inheritance}).}.
  #+END_SRC
  #+END_SRC
 @end example
 @end example
 
 
-The @code{org-babel-noweb-separator} variable holds the string used to
-separate accumulate noweb references like those above.  By default this
-variable holds a newline.
+The @code{:noweb-sep} (see @ref{noweb-sep}) header argument holds the string
+used to separate accumulate noweb references like those above.  By default a
+newline is used.
 
 
-@node cache, sep, noweb-ref, Specific header arguments
+@node noweb-sep, cache, noweb-ref, Specific header arguments
+@subsubsection @code{:noweb-sep}
+
+The @code{:noweb-sep} header argument holds the string used to separate
+accumulate noweb references (see @ref{noweb-ref}).  By default a newline is
+used.
+
+@node cache, sep, noweb-sep, Specific header arguments
 @subsubsection @code{:cache}
 @subsubsection @code{:cache}
 
 
 The @code{:cache} header argument controls the use of in-buffer caching of
 The @code{:cache} header argument controls the use of in-buffer caching of

+ 9 - 9
lisp/ob.el

@@ -120,11 +120,6 @@ be used."
   :group 'org-babel
   :group 'org-babel
   :type 'string)
   :type 'string)
 
 
-(defcustom org-babel-noweb-separator "\n"
-  "String used to separate accumulated noweb references."
-  :group 'org-babel
-  :type 'string)
-
 (defvar org-babel-src-name-regexp
 (defvar org-babel-src-name-regexp
   "^[ \t]*#\\+name:[ \t]*"
   "^[ \t]*#\\+name:[ \t]*"
   "Regular expression used to match a source name line.")
   "Regular expression used to match a source name line.")
@@ -388,6 +383,7 @@ then run `org-babel-pop-to-session'."
     (noeval)
     (noeval)
     (noweb	. ((yes no tangle)))
     (noweb	. ((yes no tangle)))
     (noweb-ref	. :any)
     (noweb-ref	. :any)
+    (noweb-sep  . :any)
     (padline	. ((yes no)))
     (padline	. ((yes no)))
     (results	. ((file list vector table scalar verbatim)
     (results	. ((file list vector table scalar verbatim)
 		    (raw org html latex code pp wrap)
 		    (raw org html latex code pp wrap)
@@ -2204,6 +2200,8 @@ block but are passed literally to the \"example-block\"."
 			  (while (re-search-forward rx nil t)
 			  (while (re-search-forward rx nil t)
 			    (let* ((i (org-babel-get-src-block-info 'light))
 			    (let* ((i (org-babel-get-src-block-info 'light))
 				   (body (org-babel-expand-noweb-references i))
 				   (body (org-babel-expand-noweb-references i))
+				   (sep (or (cdr (assoc :noweb-sep (nth 2 i)))
+					    "\n"))
 				   (full (if comment
 				   (full (if comment
 					     ((lambda (cs)
 					     ((lambda (cs)
 						(concat (c-wrap (car cs)) "\n"
 						(concat (c-wrap (car cs)) "\n"
@@ -2211,13 +2209,15 @@ block but are passed literally to the \"example-block\"."
 							(c-wrap (cadr cs))))
 							(c-wrap (cadr cs))))
 					      (org-babel-tangle-comment-links i))
 					      (org-babel-tangle-comment-links i))
 					   body)))
 					   body)))
-			      (setq expansion (cons full expansion))))
+			      (setq expansion (cons sep (cons full expansion)))))
 			(org-babel-map-src-blocks nil
 			(org-babel-map-src-blocks nil
 			  (let ((i (org-babel-get-src-block-info 'light)))
 			  (let ((i (org-babel-get-src-block-info 'light)))
 			    (when (equal (or (cdr (assoc :noweb-ref (nth 2 i)))
 			    (when (equal (or (cdr (assoc :noweb-ref (nth 2 i)))
 					     (nth 4 i))
 					     (nth 4 i))
 					 source-name)
 					 source-name)
 			      (let* ((body (org-babel-expand-noweb-references i))
 			      (let* ((body (org-babel-expand-noweb-references i))
+				     (sep (or (cdr (assoc :noweb-sep (nth 2 i)))
+					      "\n"))
 				     (full (if comment
 				     (full (if comment
 					       ((lambda (cs)
 					       ((lambda (cs)
 						  (concat (c-wrap (car cs)) "\n"
 						  (concat (c-wrap (car cs)) "\n"
@@ -2225,9 +2225,9 @@ block but are passed literally to the \"example-block\"."
 							  (c-wrap (cadr cs))))
 							  (c-wrap (cadr cs))))
 						(org-babel-tangle-comment-links i))
 						(org-babel-tangle-comment-links i))
 					     body)))
 					     body)))
-				(setq expansion (cons full expansion))))))))
-		    (mapconcat #'identity (nreverse expansion)
-			       org-babel-noweb-separator))
+				(setq expansion
+				      (cons sep (cons full expansion)))))))))
+		    (mapconcat #'identity (nreverse (cdr expansion)) ""))
 		  ;; possibly raise an error if named block doesn't exist
 		  ;; possibly raise an error if named block doesn't exist
 		  (if (member lang org-babel-noweb-error-langs)
 		  (if (member lang org-babel-noweb-error-langs)
 		      (error "%s" (concat
 		      (error "%s" (concat

+ 1 - 0
testing/examples/babel.org

@@ -217,6 +217,7 @@ src_sh{echo 3} Here is one at the beginning of a line.
 * using the =:noweb-ref= header argument
 * using the =:noweb-ref= header argument
   :PROPERTIES:
   :PROPERTIES:
   :ID:       54d68d4b-1544-4745-85ab-4f03b3cbd8a0
   :ID:       54d68d4b-1544-4745-85ab-4f03b3cbd8a0
+  :noweb-sep: ""
   :END:
   :END:
 
 
 #+begin_src sh :tangle yes :noweb yes :shebang #!/bin/sh
 #+begin_src sh :tangle yes :noweb yes :shebang #!/bin/sh

+ 2 - 2
testing/lisp/test-ob.el

@@ -644,11 +644,11 @@ on two lines
 #+end_src
 #+end_src
 
 
 #+name: foo
 #+name: foo
-#+begin_src sh
+#+begin_src sh :noweb-sep \"\"
   bar
   bar
 #+end_src
 #+end_src
 
 
-#+begin_src sh :noweb-ref foo
+#+begin_src sh :noweb-ref foo :noweb-sep \"\"
   baz
   baz
 #+end_src"
 #+end_src"
     (should (string= (org-babel-expand-noweb-references) "barbaz"))))
     (should (string= (org-babel-expand-noweb-references) "barbaz"))))