Function: calc-embedded-set-modes
calc-embedded-set-modes is a byte-compiled function defined in
calc-embed.el.gz.
Signature
(calc-embedded-set-modes GMODES MODES LOCAL-MODES &optional TEMP)
Source Code
;; Defined in /usr/src/emacs/lisp/calc/calc-embed.el.gz
(defun calc-embedded-set-modes (gmodes modes local-modes &optional temp)
(defvar the-language)
(defvar the-display-just)
(let ((the-language (calc-embedded-language))
(the-display-just (calc-embedded-justify))
(v gmodes)
(changed nil)
found value)
(while v
(or (symbolp (car v))
(and (setq found (assq (car (car v)) modes))
(not (eq (cdr found) 'default)))
(and (setq found (assq (car (car v)) local-modes))
(not (eq (cdr found) 'default)))
(progn
(if (eq (setq value (cdr (car v))) 'default)
(setq value (list (nth 1 (assq (car (car v)) calc-mode-var-list)))))
(equal (symbol-value (car (car v))) value))
(progn
(setq changed t)
(if temp (setq calc-embed-prev-modes
(cons (cons (car (car v))
(symbol-value (car (car v))))
calc-embed-prev-modes)))
(set (car (car v)) value)))
(setq v (cdr v)))
(setq v modes)
(while v
(or (and (setq found (assq (car (car v)) local-modes))
(not (eq (cdr found) 'default)))
(eq (setq value (cdr (car v))) 'default)
(equal (symbol-value (car (car v))) value)
(progn
(setq changed t)
(if temp (setq calc-embed-prev-modes (cons (cons (car (car v))
(symbol-value (car (car v))))
calc-embed-prev-modes)))
(set (car (car v)) value)))
(setq v (cdr v)))
(setq v local-modes)
(while v
(or (eq (setq value (cdr (car v))) 'default)
(equal (symbol-value (car (car v))) value)
(progn
(setq changed t)
(if temp (setq calc-embed-prev-modes (cons (cons (car (car v))
(symbol-value (car (car v))))
calc-embed-prev-modes)))
(set (car (car v)) value)))
(setq v (cdr v)))
(and changed (not (eq temp t))
(progn
(calc-embedded-set-justify the-display-just)
(calc-embedded-set-language the-language)))
(and changed (not temp)
(progn
(setq calc-full-float-format (list (if (eq (car calc-float-format)
'fix)
'float
(car calc-float-format))
0))
(calc-refresh)))
changed))