Function: calc-pop-stack
calc-pop-stack is a byte-compiled function defined in calc.el.gz.
Signature
(calc-pop-stack &optional N M SEL-OK)
Source Code
;; Defined in /usr/src/emacs/lisp/calc/calc.el.gz
(defun calc-pop-stack (&optional n m sel-ok) ; pop N objs at level M of stack.
(or n (setq n 1))
(or m (setq m 1))
(or calc-keep-args-flag
(let ((mm (+ m calc-stack-top)))
(if (and calc-any-selections (not sel-ok)
(calc-top-selected n m))
(calc-sel-error))
(if calc-executing-macro
(calc-pop-stack-in-macro n mm)
(calc-record-undo (list 'pop mm (calc-top-list n m 'full)))
(save-excursion
(calc-select-buffer)
(let ((buffer-read-only nil))
(if (> mm 1)
(progn
(calc-cursor-stack-index (1- m))
(let ((bot (point)))
(calc-cursor-stack-index (+ n m -1))
(delete-region (point) bot))
(setcdr (nthcdr (- mm 2) calc-stack)
(nthcdr (+ n mm -1) calc-stack)))
(calc-cursor-stack-index n)
(setq calc-stack (nthcdr n calc-stack))
(delete-region (point) (point-max))))
(calc-set-command-flag 'renum-stack))))))