Function: calc-read-var-name

calc-read-var-name is an autoloaded and byte-compiled function defined in calc-store.el.gz.

Signature

(calc-read-var-name PROMPT &optional STORE-OPERS)

Source Code

;; Defined in /usr/src/emacs/lisp/calc/calc-store.el.gz
(defun calc-read-var-name (prompt &optional store-opers)
  (setq calc-given-value nil
	calc-aborted-prefix nil)
  (let* ((calc-store-opers store-opers)
         (var (concat
              "var-"
              (minibuffer-with-setup-hook
                  (lambda ()
                    (setq-local minibuffer-completion-table
                                (mapcar (lambda (x) (substring x 4))
                                        (all-completions "var-" obarray)))
                    (setq-local minibuffer-completion-predicate
                                (lambda (x)
                                  (boundp (intern (concat "var-" x)))))
                    (setq-local minibuffer-completion-confirm t))
                (read-from-minibuffer
                 prompt nil calc-var-name-map nil
                 'calc-read-var-name-history)))))
    (setq calc-aborted-prefix "")
    (and (not (equal var "var-"))
	 (if (string-match "\\`\\([-a-zA-Zα-ωΑ-Ω0-9]+\\) *:?=" var)
	     (if (null calc-given-value-flag)
		 (error "Assignment is not allowed in this command")
	       (let ((svar (intern (substring var 0 (match-end 1)))))
		 (setq calc-given-value-flag 0
		       calc-given-value (math-read-expr
					 (substring var (match-end 0))))
		 (if (eq (car-safe calc-given-value) 'error)
		     (error "Bad format: %s" (nth 2 calc-given-value)))
		 (setq calc-given-value (math-evaluate-expr calc-given-value))
		 svar))
	   (intern var)))))