From 9dfd4c6bd3140585392a428201088e9f019b0071 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Sun, 13 Apr 2025 10:33:47 -0400 Subject: [PATCH] (calc-save-modes): Add a `lexical-binding` cookie * lisp/calc/calc-mode.el (calc-save-modes): Add a `lexical-binding` cookie when it is safe. Use `pcase-dolist` and `pp`. --- lisp/calc/calc-mode.el | 24 +++++++++--------------- 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/lisp/calc/calc-mode.el b/lisp/calc/calc-mode.el index 1ca6bb7dca2..6f31d6af040 100644 --- a/lisp/calc/calc-mode.el +++ b/lisp/calc/calc-mode.el @@ -290,22 +290,16 @@ (goto-char (point-max)) (insert "\n\n") (forward-char -1)) + (save-excursion + (goto-char (point-max)) + (skip-chars-backward " \n\t ") + (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)