309 |
(defun calc-settings-file-name (name &optional arg) |
(defun calc-settings-file-name (name &optional arg) |
310 |
(interactive |
(interactive |
311 |
(list (read-file-name (format "Settings file name (normally %s): " |
(list (read-file-name (format "Settings file name (normally %s): " |
312 |
(abbreviate-file-name (or user-init-file |
(abbreviate-file-name calc-settings-file))) |
|
"~/.emacs")))) |
|
313 |
current-prefix-arg)) |
current-prefix-arg)) |
314 |
(calc-wrapper |
(calc-wrapper |
315 |
(setq arg (if arg (prefix-numeric-value arg) 0)) |
(setq arg (if arg (prefix-numeric-value arg) 0)) |
316 |
(if (equal name "") |
(if (string-equal (file-name-nondirectory name) "") |
317 |
(message "Calc settings file is \"%s\"" calc-settings-file) |
(message "Calc settings file is \"%s\"" calc-settings-file) |
318 |
(if (< (math-abs arg) 2) |
(if (< (math-abs arg) 2) |
319 |
(let ((list calc-mode-var-list)) |
(let ((list calc-mode-var-list)) |
320 |
(while list |
(while list |
321 |
(set (car (car list)) (nth 1 (car list))) |
(set (car (car list)) (nth 1 (car list))) |
322 |
(setq list (cdr list))))) |
(setq list (cdr list))))) |
|
;; FIXME: we should use ~/.calc or so in order to avoid |
|
|
;; reexecuting ~/.emacs (it's not always idempotent) -cgw 2001.11.12 |
|
323 |
(setq calc-settings-file name) |
(setq calc-settings-file name) |
324 |
(or (and |
(or (and |
325 |
calc-settings-file |
calc-settings-file |
326 |
(string-match "\\.emacs" calc-settings-file) |
(equal user-init-file calc-settings-file) |
327 |
(> arg 0)) |
(> arg 0)) |
328 |
(< arg 0) |
(< arg 0) |
329 |
(load name t) |
(load name t) |
330 |
(message "New file"))))) |
(message "New file"))))) |