Jelajahi Sumber

ob: ensure that un-named variables are assigned correctly

* lisp/ob.el (org-babel-merge-params): Do not reverse variable order,
  and be sure to increment variable index as appropriate.
Eric Schulte 14 tahun lalu
induk
melakukan
9e686bd681
1 mengubah file dengan 14 tambahan dan 10 penghapusan
  1. 14 10
      lisp/ob.el

+ 14 - 10
lisp/ob.el

@@ -1750,17 +1750,21 @@ parameters when merging lists."
 				  (intern (match-string 1 (cdr pair)))))))
 		 (if name
 		     (setq vars
-			   (cons (cons name pair)
-				 (if (member name (mapcar #'car vars))
-				     (delq nil
-					   (mapcar
-					    (lambda (p) (unless (equal (car p) name) p))
-					    vars))
-				   vars)))
+			   (append
+			    (if (member name (mapcar #'car vars))
+				(delq nil
+				      (mapcar
+				       (lambda (p)
+					 (unless (equal (car p) name) p))
+				       vars))
+			      vars)
+			    (list (cons name pair))))
 		   ;; if no name is given, then assign to variables in order
-		   (setf (cddr (nth variable-index vars))
-			 (concat (symbol-name (car (nth variable-index vars)))
-				 "=" (cdr pair))))))
+		   (prog1 (setf (cddr (nth variable-index vars))
+				(concat (symbol-name
+					 (car (nth variable-index vars)))
+					"=" (cdr pair)))
+		     (incf variable-index)))))
 	      (:results
 	       (setq results (e-merge results-exclusive-groups
 				      results