Browse Source

org-babel: make :file header arg imply :results file

Dan Davison 16 years ago
parent
commit
10ea3ad10b
1 changed files with 11 additions and 6 deletions
  1. 11 6
      contrib/babel/lisp/org-babel.el

+ 11 - 6
contrib/babel/lisp/org-babel.el

@@ -655,7 +655,11 @@ non-nil."
 elements of PLISTS override the values of previous element.  This
 elements of PLISTS override the values of previous element.  This
 takes into account some special considerations for certain
 takes into account some special considerations for certain
 parameters when merging lists."
 parameters when merging lists."
-  (let (params results exports tangle vars var ref)
+  (let ((results-exclusive-groups
+	 '(("file" "vector" "scalar" "raw" "org" "html" "latex")
+	   ("replace" "silent")
+	   ("output" "value")))
+	params results exports tangle 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)
@@ -682,11 +686,12 @@ parameters when merging lists."
                                  ref (match-string 2 (cdr pair))
                                  ref (match-string 2 (cdr pair))
                                  vars (cons (cons var ref) (assq-delete-all var vars)))))
                                  vars (cons (cons var ref) (assq-delete-all var vars)))))
                         (:results
                         (:results
-                         (setq results (e-merge
-                                        '(("file" "vector" "scalar" "raw" "org" "html" "latex")
-                                          ("replace" "silent")
-                                          ("output" "value"))
-                                        results (split-string (cdr pair)))))
+                         (setq results
+			       (e-merge results-exclusive-groups results (split-string (cdr pair)))))
+			(:file
+			 (when (cdr pair)
+			   (setq results (e-merge results-exclusive-groups results '("file")))
+			   (setq params (cons pair (assq-delete-all (car pair) params)))))
                         (:exports
                         (:exports
                          (setq exports (e-merge '(("code" "results" "both" "none"))
                          (setq exports (e-merge '(("code" "results" "both" "none"))
                                                 exports (split-string (cdr pair)))))
                                                 exports (split-string (cdr pair)))))