Browse Source

babel: fix header arg duplication

* lisp/ob-core.el (org-babel-process-params): Make idempotent.
* testing/lisp/test-ob.el (ob/process-params-no-duplicates): New test.
Aaron Ecay 9 years ago
parent
commit
54d3032cdc
2 changed files with 16 additions and 1 deletions
  1. 4 1
      lisp/ob-core.el
  2. 12 0
      testing/lisp/test-ob.el

+ 4 - 1
lisp/ob-core.el

@@ -1597,7 +1597,10 @@ shown below.
       (cons :result-type  (cond ((member "output" result-params) 'output)
 				((member "value" result-params) 'value)
 				(t 'value))))
-     (org-babel-get-header params :var 'other))))
+     (org-remove-if
+      (lambda (x) (memq (car x) '(:colname-names :rowname-names :result-params
+						 :result-type :var)))
+      params))))
 
 ;; row and column names
 (defun org-babel-del-hlines (table)

+ 12 - 0
testing/lisp/test-ob.el

@@ -1477,6 +1477,18 @@ echo \"$data\"
   (should (equal "foo\\\"bar"
 		 (org-babel-script-escape "\"foo\\\\\\\"bar\""))))
 
+(ert-deftest 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)))))
+
 (provide 'test-ob)
 
 ;;; test-ob ends here