Function: calc-replace-selections
calc-replace-selections is an autoloaded and byte-compiled function
defined in calc-sel.el.gz.
Signature
(calc-replace-selections N VALS M)
Source Code
;; Defined in /usr/src/emacs/lisp/calc/calc-sel.el.gz
(defun calc-replace-selections (n vals m)
(if (calc-top-selected n m)
(let ((num (length vals)))
(calc-preserve-point)
(cond
((= n num)
(let* ((old (calc-top-list n m 'entry))
(new nil)
(sel nil)
val)
(while old
(if (nth 2 (car old))
(setq val (calc-encase-atoms (car vals))
new (cons (calc-replace-sub-formula (car (car old))
(nth 2 (car old))
val)
new)
sel (cons val sel))
(setq new (cons (car vals) new)
sel (cons nil sel)))
(setq vals (cdr vals)
old (cdr old)))
(calc-pop-stack n m t)
(calc-push-list (nreverse new)
m (and calc-keep-selection (nreverse sel)))))
((= num 1)
(let* ((old (calc-top-list n m 'entry))
more)
(while (and old (not (nth 2 (car old))))
(setq old (cdr old)))
(setq more old)
(while (and (setq more (cdr more)) (not (nth 2 (car more)))))
(and more
(calc-sel-error))
(calc-pop-stack n m t)
(if old
(let ((val (calc-encase-atoms (car vals))))
(calc-push-list (list (calc-replace-sub-formula
(car (car old))
(nth 2 (car old))
val))
m (and calc-keep-selection (list val))))
(calc-push-list vals))))
(t (calc-sel-error))))
(calc-pop-stack n m t)
(calc-push-list vals m)))