emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/lisp/savehist.el,v [EMACS_22_BASE]


From: Richard M. Stallman
Subject: [Emacs-diffs] Changes to emacs/lisp/savehist.el,v [EMACS_22_BASE]
Date: Wed, 24 Oct 2007 08:14:11 +0000

CVSROOT:        /cvsroot/emacs
Module name:    emacs
Branch:         EMACS_22_BASE
Changes by:     Richard M. Stallman <rms>       07/10/24 08:14:11

Index: savehist.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/savehist.el,v
retrieving revision 1.19.2.1
retrieving revision 1.19.2.2
diff -u -b -r1.19.2.1 -r1.19.2.2
--- savehist.el 25 Jul 2007 04:47:04 -0000      1.19.2.1
+++ savehist.el 24 Oct 2007 08:14:11 -0000      1.19.2.2
@@ -309,10 +309,40 @@
        (insert ?\n)
        (dolist (symbol savehist-minibuffer-history-variables)
          (when (boundp symbol)
-           (let ((value (savehist-trim-history (symbol-value symbol))))
-             (when value               ; don't save empty histories
-               (prin1 `(setq ,symbol ',value) (current-buffer))
-               (insert ?\n))))))
+           (let ((value (savehist-trim-history (symbol-value symbol)))
+                 excess-space)
+             (when value               ; Don't save empty histories.
+               (insert "(setq ")
+               (prin1 symbol (current-buffer))
+               (insert " '(")
+               ;; We will print an extra space before the first element.
+               ;; Record where that is.
+               (setq excess-space (point))
+               ;; Print elements of VALUE one by one, carefully.
+               (dolist (elt value)
+                 (let ((start (point)))
+                   (insert " ")
+                   (prin1 elt (current-buffer))
+                   ;; Try to read the element we just printed.
+                   (condition-case nil
+                       (save-excursion
+                         (goto-char start)
+                         (read (current-buffer)))
+                     (error
+                      ;; If reading it gets an error, comment it out.
+                      (goto-char start)
+                      (insert "\n")
+                      (while (not (eobp))
+                        (insert ";;; ")
+                        (forward-line 1))
+                      (insert "\n")))
+                   (goto-char (point-max))))
+               ;; Delete the extra space before the first element.
+               (save-excursion
+                 (goto-char excess-space)
+                 (if (eq (following-char) ?\s)
+                     (delete-region (point) (1+ (point)))))
+               (insert "))\n"))))))
       ;; Save the additional variables.
       (dolist (symbol savehist-additional-variables)
        (when (boundp symbol)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]