Browse Source

Use Babel cache when exporting src blocks

* lisp/ob-core.el (org-babel-process-params): Normalize return value.
* testing/lisp/test-ob.el (test-ob/process-params-no-duplicates): Fix
  test.
Nicolas Goaziou 9 years ago
parent
commit
1d781b3365
2 changed files with 18 additions and 16 deletions
  1. 7 6
      lisp/ob-core.el
  2. 11 10
      testing/lisp/test-ob.el

+ 7 - 6
lisp/ob-core.el

@@ -1538,11 +1538,12 @@ shown below.
 			    (cdr (assoc :colnames params))
 			    (cdr (assoc :rownames params)))))
 	 (raw-result (or (cdr (assoc :results params)) ""))
-	 (result-params (append
-			 (split-string (if (stringp raw-result)
-					   raw-result
-					 (eval raw-result)))
-			 (cdr (assoc :result-params params)))))
+	 (result-params (delete-dups
+			 (append
+			  (split-string (if (stringp raw-result)
+					    raw-result
+					  (eval raw-result)))
+			  (cdr (assoc :result-params params))))))
     (append
      (mapcar (lambda (var) (cons :var var)) (car vars-and-names))
      (list
@@ -1556,7 +1557,7 @@ shown below.
 				(t 'value))))
      (cl-remove-if
       (lambda (x) (memq (car x) '(:colname-names :rowname-names :result-params
-						 :result-type :var)))
+					    :result-type :var)))
       params))))
 
 ;; row and column names

+ 11 - 10
testing/lisp/test-ob.el

@@ -1444,16 +1444,17 @@ echo \"$data\"
 		 (org-babel-script-escape "\"foo\\\\\\\"bar\""))))
 
 (ert-deftest test-ob/process-params-no-duplicates ()
-    (should (equal (org-babel-process-params '((:colname-names . 1)
-                                               (:rowname-names . 1)
-                                               (:result-params . 1)
-                                               (:result-type . 1)
-                                               (:var . "\"foo\"")))
-                   '((:var)
-		     (:colname-names . 1)
-		     (:rowname-names . 1)
-		     (:result-params . 1)
-		     (:result-type . value)))))
+  (should
+   (equal (org-babel-process-params '((:colname-names)
+				      (:rowname-names)
+				      (:result-params)
+				      (:result-type)
+				      (:var . "\"foo\"")))
+	  '((:var)
+	    (:colname-names)
+	    (:rowname-names)
+	    (:result-params)
+	    (:result-type . value)))))
 
 (defun org-test-babel-confirm-evaluate (eval-value)
   (org-test-with-temp-text (format "#+begin_src emacs-lisp :eval %s