aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Monnier2025-04-13 10:33:47 -0400
committerStefan Monnier2025-04-13 10:33:47 -0400
commit9dfd4c6bd3140585392a428201088e9f019b0071 (patch)
treef1d0af91a0312e5eee65e4ac24be5e011b2c0834
parente0c7b6e31e8c03dd66a929742898f2d6e2628356 (diff)
downloademacs-9dfd4c6bd3140585392a428201088e9f019b0071.tar.gz
emacs-9dfd4c6bd3140585392a428201088e9f019b0071.zip
(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`.
-rw-r--r--lisp/calc/calc-mode.el24
1 files 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 @@
290 (goto-char (point-max)) 290 (goto-char (point-max))
291 (insert "\n\n") 291 (insert "\n\n")
292 (forward-char -1)) 292 (forward-char -1))
293 (save-excursion
294 (goto-char (point-max))
295 (skip-chars-backward " \n\t ")
296 (when (bobp)
297 (insert ";;; -*- mode: emacs-lisp; lexical-binding:t -*-\n")))
293 (insert ";;; Mode settings stored by Calc on " (current-time-string) "\n") 298 (insert ";;; Mode settings stored by Calc on " (current-time-string) "\n")
294 (let ((list calc-mode-var-list)) 299 (pcase-dolist (`(,v ,def) calc-mode-var-list)
295 (while list 300 (let* ((val (pop vals)))
296 (let* ((v (car (car list))) 301 (or (equal val def)
297 (def (nth 1 (car list))) 302 (pp `(setq ,v ,(macroexp-quote val)) (current-buffer)))))
298 (val (car vals)))
299 (or (equal val def)
300 (progn
301 (insert "(setq " (symbol-name v) " ")
302 (if (and (or (listp val)
303 (symbolp val))
304 (not (memq val '(nil t))))
305 (insert "'"))
306 (insert (prin1-to-string val) ")\n"))))
307 (setq list (cdr list)
308 vals (cdr vals))))
309 (run-hooks 'calc-mode-save-hook) 303 (run-hooks 'calc-mode-save-hook)
310 (insert ";;; End of mode settings\n") 304 (insert ";;; End of mode settings\n")
311 (save-buffer) 305 (save-buffer)