|
@@ -2269,7 +2269,8 @@ parameters when merging lists."
|
|
|
new-params))
|
|
|
result-params)
|
|
|
output)))
|
|
|
- params results exports tangle noweb cache vars shebang comments padline)
|
|
|
+ params results exports tangle noweb cache vars shebang comments padline
|
|
|
+ clearnames)
|
|
|
|
|
|
(mapc
|
|
|
(lambda (plist)
|
|
@@ -2286,21 +2287,25 @@ parameters when merging lists."
|
|
|
(setq vars
|
|
|
(append
|
|
|
(if (member name (mapcar #'car vars))
|
|
|
- (delq nil
|
|
|
- (mapcar
|
|
|
- (lambda (p)
|
|
|
- (unless (equal (car p) name) p))
|
|
|
- vars))
|
|
|
+ (progn
|
|
|
+ (push name clearnames)
|
|
|
+ (delq nil
|
|
|
+ (mapcar
|
|
|
+ (lambda (p)
|
|
|
+ (unless (equal (car p) name) p))
|
|
|
+ vars)))
|
|
|
vars)
|
|
|
(list (cons name pair))))
|
|
|
;; if no name is given and we already have named variables
|
|
|
;; then assign to named variables in order
|
|
|
(if (and vars (nth variable-index vars))
|
|
|
- (prog1 (setf (cddr (nth variable-index vars))
|
|
|
- (concat (symbol-name
|
|
|
- (car (nth variable-index vars)))
|
|
|
- "=" (cdr pair)))
|
|
|
- (incf variable-index))
|
|
|
+ (let ((name (car (nth variable-index vars))))
|
|
|
+ (push name clearnames) ; clear out colnames
|
|
|
+ ; and rownames
|
|
|
+ ; for replace vars
|
|
|
+ (prog1 (setf (cddr (nth variable-index vars))
|
|
|
+ (concat (symbol-name name) "=" (cdr pair)))
|
|
|
+ (incf variable-index)))
|
|
|
(error "Variable \"%s\" must be assigned a default value"
|
|
|
(cdr pair))))))
|
|
|
(:results
|
|
@@ -2347,6 +2352,19 @@ parameters when merging lists."
|
|
|
plists)
|
|
|
(setq vars (reverse vars))
|
|
|
(while vars (setq params (cons (cons :var (cddr (pop vars))) params)))
|
|
|
+ ;; clear out col-names and row-names for replaced variables
|
|
|
+ (mapc
|
|
|
+ (lambda (name)
|
|
|
+ (mapc
|
|
|
+ (lambda (param)
|
|
|
+ (setf (cdr (assoc param params))
|
|
|
+ (remove-if (lambda (pair) (equal (car pair) name))
|
|
|
+ (cdr (assoc param params))))
|
|
|
+ (setf params (remove-if (lambda (pair) (and (equal (car pair) param)
|
|
|
+ (null (cdr pair))))
|
|
|
+ params)))
|
|
|
+ (list :colname-names :rowname-names)))
|
|
|
+ clearnames)
|
|
|
(mapc
|
|
|
(lambda (hd)
|
|
|
(let ((key (intern (concat ":" (symbol-name hd))))
|