Function: calc-tabular-command
calc-tabular-command is a byte-compiled function defined in
calcalg2.el.gz.
Signature
(calc-tabular-command FUNC PROMPT PREFIX ARG VARNAME LOWNAME HIGHNAME)
Source Code
;; Defined in /usr/src/emacs/lisp/calc/calcalg2.el.gz
(defun calc-tabular-command (func prompt prefix arg varname lowname highname)
(calc-slow-wrapper
(let (var (low nil) (high nil) (step nil) stepname stepnum (num 1) expr)
(if (consp arg)
(setq stepnum 1)
(setq stepnum 0))
(if (or (equal varname "") (equal varname "$") (null varname))
(setq high (calc-top-n (+ stepnum 1))
low (calc-top-n (+ stepnum 2))
var (calc-top-n (+ stepnum 3))
num (+ stepnum 4))
(setq var (if (stringp varname) (math-read-expr varname) varname))
(if (eq (car-safe var) 'error)
(error "Bad format in expression: %s" (nth 1 var)))
(or lowname
(setq lowname (read-string (concat prompt " variable: " varname
", from: "))))
(if (or (equal lowname "") (equal lowname "$"))
(setq high (calc-top-n (+ stepnum 1))
low (calc-top-n (+ stepnum 2))
num (+ stepnum 3))
(setq low (if (stringp lowname) (math-read-expr lowname) lowname))
(if (eq (car-safe low) 'error)
(error "Bad format in expression: %s" (nth 1 low)))
(or highname
(setq highname (read-string (concat prompt " variable: " varname
", from: " lowname
", to: "))))
(if (or (equal highname "") (equal highname "$"))
(setq high (calc-top-n (+ stepnum 1))
num (+ stepnum 2))
(setq high (if (stringp highname) (math-read-expr highname)
highname))
(if (eq (car-safe high) 'error)
(error "Bad format in expression: %s" (nth 1 high)))
(if (consp arg)
(progn
(setq stepname (read-string (concat prompt " variable: "
varname
", from: " lowname
", to: " highname
", step: ")))
(if (or (equal stepname "") (equal stepname "$"))
(setq step (calc-top-n 1)
num 2)
(setq step (math-read-expr stepname))
(if (eq (car-safe step) 'error)
(error "Bad format in expression: %s"
(nth 1 step)))))))))
(or step
(if (consp arg)
(setq step (calc-top-n 1))
(if arg
(setq step (prefix-numeric-value arg)))))
(setq expr (calc-top-n num))
(calc-enter-result num prefix (append (list func expr var low high)
(and step (list step)))))))