ob: unnamed variables are assigned in order

* lisp/ob.el (org-babel-merge-params): If variables are not named they
  are assigned in order.
This commit is contained in:
Eric Schulte 2011-06-25 14:11:53 -07:00
parent 4127e53cda
commit 1b95d2e9ce
1 changed files with 14 additions and 9 deletions

View File

@ -1716,6 +1716,7 @@ parameters when merging lists."
("output" "value"))) ("output" "value")))
(exports-exclusive-groups (exports-exclusive-groups
'(("code" "results" "both" "none"))) '(("code" "results" "both" "none")))
(variable-index 0)
params results exports tangle noweb cache vars shebang comments padline) params results exports tangle noweb cache vars shebang comments padline)
(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
@ -1747,7 +1748,7 @@ parameters when merging lists."
(and (string-match "^\\([^= \f\t\n\r\v]+\\)[ \t]*=" (and (string-match "^\\([^= \f\t\n\r\v]+\\)[ \t]*="
(cdr pair)) (cdr pair))
(intern (match-string 1 (cdr pair))))))) (intern (match-string 1 (cdr pair)))))))
(when name (if name
(setq vars (setq vars
(cons (cons name pair) (cons (cons name pair)
(if (member name (mapcar #'car vars)) (if (member name (mapcar #'car vars))
@ -1755,7 +1756,11 @@ parameters when merging lists."
(mapcar (mapcar
(lambda (p) (unless (equal (car p) name) p)) (lambda (p) (unless (equal (car p) name) p))
vars)) vars))
vars)))))) vars)))
;; 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))))))
(:results (:results
(setq results (e-merge results-exclusive-groups (setq results (e-merge results-exclusive-groups
results results