Function: calc-delete-selection
calc-delete-selection is an autoloaded and byte-compiled function
defined in calc-sel.el.gz.
Signature
(calc-delete-selection N)
Source Code
;; Defined in /usr/src/emacs/lisp/calc/calc-sel.el.gz
(defun calc-delete-selection (n)
(let ((entry (calc-top n 'entry)))
(if (nth 2 entry)
(if (eq (nth 2 entry) (car entry))
(progn
(calc-pop-stack 1 n t)
(calc-push-list '(0) n))
(let ((parent (calc-find-parent-formula (car entry) (nth 2 entry)))
(repl nil))
(calc-preserve-point)
(calc-pop-stack 1 n t)
(cond ((or (memq (car parent) '(* / %))
(and (eq (car parent) '^)
(eq (nth 2 parent) (nth 2 entry))))
(setq repl 1))
((memq (car parent) '(vec calcFunc-min calcFunc-max)))
((and (assq (car parent) calc-tweak-eqn-table)
(= (length parent) 3))
(setq repl 'del))
(t
(setq repl 0)))
(cond
((eq repl 'del)
(calc-push-list (list
(calc-normalize
(calc-replace-sub-formula
(car entry)
parent
(if (eq (nth 2 entry) (nth 1 parent))
(nth 2 parent)
(nth 1 parent)))))
n))
(repl
(calc-push-list (list
(calc-normalize
(calc-replace-sub-formula (car entry)
(nth 2 entry)
repl)))
n))
(t
(calc-push-list (list
(calc-normalize
(calc-replace-sub-formula (car entry)
parent
(delq (nth 2 entry)
(copy-sequence
parent)))))
n)))))
(calc-pop-stack 1 n t))))