(goto-char (point-max))
(insert "\n\n")
(forward-char -1))
+ (save-excursion
+ (goto-char (point-max))
+ (skip-chars-backward " \n\t\f")
+ (when (bobp)
+ (insert ";;; -*- mode: emacs-lisp; lexical-binding:t -*-\n")))
(insert ";;; Mode settings stored by Calc on " (current-time-string) "\n")
- (let ((list calc-mode-var-list))
- (while list
- (let* ((v (car (car list)))
- (def (nth 1 (car list)))
- (val (car vals)))
- (or (equal val def)
- (progn
- (insert "(setq " (symbol-name v) " ")
- (if (and (or (listp val)
- (symbolp val))
- (not (memq val '(nil t))))
- (insert "'"))
- (insert (prin1-to-string val) ")\n"))))
- (setq list (cdr list)
- vals (cdr vals))))
+ (pcase-dolist (`(,v ,def) calc-mode-var-list)
+ (let* ((val (pop vals)))
+ (or (equal val def)
+ (pp `(setq ,v ,(macroexp-quote val)) (current-buffer)))))
(run-hooks 'calc-mode-save-hook)
(insert ";;; End of mode settings\n")
(save-buffer)