Browse Source

Merge branch 'master' of git+ssh://repo.or.cz/srv/git/org-mode

Carsten Dominik 15 years ago
parent
commit
7400f2e9e8
1 changed files with 14 additions and 9 deletions
  1. 14 9
      contrib/babel/lisp/org-babel.el

+ 14 - 9
contrib/babel/lisp/org-babel.el

@@ -80,7 +80,7 @@ then run `org-babel-pop-to-session'."
 (add-hook 'org-metadown-hook 'org-babel-pop-to-session-maybe)
 (add-hook 'org-metadown-hook 'org-babel-pop-to-session-maybe)
 
 
 (defvar org-babel-default-header-args
 (defvar org-babel-default-header-args
-  '((:session . "none") (:results . "replace") (:exports . "code") (:nocache))
+  '((:session . "none") (:results . "replace") (:exports . "code") (:nocache) (:noweb . "no"))
   "Default arguments to use when evaluating a source block.")
   "Default arguments to use when evaluating a source block.")
 
 
 (defvar org-babel-default-inline-header-args
 (defvar org-babel-default-inline-header-args
@@ -198,7 +198,8 @@ block."
          (new-hash (unless (assoc :nocache params) (org-babel-sha1-hash info)))
          (new-hash (unless (assoc :nocache params) (org-babel-sha1-hash info)))
          (old-hash (org-babel-result-hash info))
          (old-hash (org-babel-result-hash info))
          (body (setf (second info)
          (body (setf (second info)
-		     (if (assoc :noweb params)
+		     (if (and (cdr (assoc :noweb params))
+                              (string= "yes" (cdr (assoc :noweb params))))
 			 (org-babel-expand-noweb-references info) (second info))))
 			 (org-babel-expand-noweb-references info) (second info))))
          (result-params (split-string (or (cdr (assoc :results params)) "")))
          (result-params (split-string (or (cdr (assoc :results params)) "")))
          (result-type (cond ((member "output" result-params) 'output)
          (result-type (cond ((member "output" result-params) 'output)
@@ -739,7 +740,7 @@ code ---- the results are extracted in the syntax of the source
 			     (if (and (listp (car result))
 			     (if (and (listp (car result))
                                       (listp (cdr (car result))))
                                       (listp (cdr (car result))))
 				 result (list result))
 				 result (list result))
-			     '(:fmt (lambda (cell) (format "%S" cell)))) "\n"))
+			     '(:fmt (lambda (cell) (format "%s" cell)))) "\n"))
 	    (forward-line -1) (org-cycle))
 	    (forward-line -1) (org-cycle))
 	   ((member "file" result-params)
 	   ((member "file" result-params)
 	    (insert result))
 	    (insert result))
@@ -830,7 +831,7 @@ parameters when merging lists."
 	   ("output" "value")))
 	   ("output" "value")))
 	(exports-exclusive-groups
 	(exports-exclusive-groups
 	 '(("code" "results" "both" "none")))
 	 '(("code" "results" "both" "none")))
-	params results exports tangle cache vars var ref)
+	params results exports tangle noweb cache vars var ref)
     (flet ((e-merge (exclusive-groups &rest result-params)
     (flet ((e-merge (exclusive-groups &rest result-params)
                     ;; maintain exclusivity of mutually exclusive parameters
                     ;; maintain exclusivity of mutually exclusive parameters
                     (let (output)
                     (let (output)
@@ -870,7 +871,10 @@ parameters when merging lists."
                                                 exports (split-string (cdr pair)))))
                                                 exports (split-string (cdr pair)))))
                         (:tangle
                         (:tangle
                          (setq tangle (e-merge '(("yes" "no"))
                          (setq tangle (e-merge '(("yes" "no"))
-                                               tangle (split-string (cdr pair)))))
+                                               tangle (split-string (or (cdr pair) "")))))
+                        (:noweb
+                         (setq noweb (e-merge '(("yes" "no"))
+                                               noweb (split-string (or (cdr pair) "")))))
                         (:cache (setq cache t)) (:nocache (setq cache nil))
                         (:cache (setq cache t)) (:nocache (setq cache nil))
                         (t ;; replace: this covers e.g. :session
                         (t ;; replace: this covers e.g. :session
                          (setq params (cons pair (assq-delete-all (car pair) params))))))
                          (setq params (cons pair (assq-delete-all (car pair) params))))))
@@ -879,10 +883,11 @@ parameters when merging lists."
     (setq vars (mapcar (lambda (pair) (format "%s=%s" (car pair) (cdr pair))) vars))
     (setq vars (mapcar (lambda (pair) (format "%s=%s" (car pair) (cdr pair))) vars))
     (while vars (setq params (cons (cons :var (pop vars)) params)))
     (while vars (setq params (cons (cons :var (pop vars)) params)))
     (cons (if cache (list :cache) (list :nocache))
     (cons (if cache (list :cache) (list :nocache))
-          (cons (cons :tangle (mapconcat 'identity tangle " "))
-                (cons (cons :exports (mapconcat 'identity exports " "))
-                      (cons (cons :results (mapconcat 'identity results " "))
-                            params))))))
+          (cons (cons :noweb (mapconcat 'identity noweb " "))
+                (cons (cons :tangle (mapconcat 'identity tangle " "))
+                      (cons (cons :exports (mapconcat 'identity exports " "))
+                            (cons (cons :results (mapconcat 'identity results " "))
+                                  params)))))))
 
 
 (defun org-babel-expand-noweb-references (&optional info parent-buffer)
 (defun org-babel-expand-noweb-references (&optional info parent-buffer)
   "This function expands Noweb style references in the body of
   "This function expands Noweb style references in the body of