Function: calc-declare-variable
calc-declare-variable is an autoloaded, interactive and byte-compiled
function defined in calc-store.el.gz.
Signature
(calc-declare-variable &optional VAR)
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/calc/calc-store.el.gz
(defun calc-declare-variable (&optional var)
(interactive)
(calc-wrapper
(or var (setq var (calc-read-var-name "Declare: " 0)))
(or var (setq var 'var-All))
(let* (dp decl row rp) ;; def
(or (and (calc-var-value 'var-Decls)
(eq (car-safe var-Decls) 'vec))
(setq var-Decls (list 'vec)))
(setq dp var-Decls)
(while (and (setq dp (cdr dp))
(or (not (eq (car-safe (car dp)) 'vec))
(/= (length (car dp)) 3)
(progn
(setq row (nth 1 (car dp))
rp row)
(if (eq (car-safe row) 'vec)
(progn
(while
(and (setq rp (cdr rp))
(or (not (eq (car-safe (car rp)) 'var))
(not (eq (nth 2 (car rp)) var)))))
(setq rp (car rp)))
(if (or (not (eq (car-safe row) 'var))
(not (eq (nth 2 row) var)))
(setq rp nil)))
(not rp)))))
(calc-unread-command ?\C-a)
(setq decl (read-string (format "Declare: %s to be: " (calc-var-name var))
(and rp
(math-format-flat-expr (nth 2 (car dp)) 0))))
(setq decl (and (string-match "[^ \t]" decl)
(math-read-exprs decl)))
(if (eq (car-safe decl) 'error)
(error "Bad format in declaration: %s" (nth 2 decl)))
(if (cdr decl)
(setq decl (cons 'vec decl))
(setq decl (car decl)))
(and (eq (car-safe decl) 'vec)
(= (length decl) 2)
(setq decl (nth 1 decl)))
(calc-record (append '(vec) (list (math-build-var-name var))
(and decl (list decl)))
"decl")
(setq var-Decls (copy-sequence var-Decls))
(if (eq (car-safe row) 'vec)
(progn
(setcdr row (delq rp (cdr row)))
(or (cdr row)
(setq var-Decls (delq (car dp) var-Decls))))
(setq var-Decls (delq (car dp) var-Decls)))
(if decl
(progn
(setq dp (and (not (eq var 'var-All)) var-Decls))
(while (and (setq dp (cdr dp))
(or (not (eq (car-safe (car dp)) 'vec))
(/= (length (car dp)) 3)
(not (equal (nth 2 (car dp)) decl)))))
(if dp
(setcar (cdr (car dp))
(append (if (eq (car-safe (nth 1 (car dp))) 'vec)
(nth 1 (car dp))
(list 'vec (nth 1 (car dp))))
(list (math-build-var-name var))))
(setq var-Decls (append var-Decls
(list (list 'vec
(math-build-var-name var)
decl)))))))
(calc-refresh-evaltos 'var-Decls))))