(savehist-save): Omit unreadable elements.

This commit is contained in:
Richard M. Stallman 2007-10-24 08:15:03 +00:00
parent 8ed7fe5cf4
commit 648db50dea
2 changed files with 47 additions and 4 deletions

View file

@ -1,3 +1,16 @@
2007-10-24 Richard Stallman <rms@gnu.org>
* savehist.el (savehist-save): Omit unreadable elements.
* loadhist.el (unload-function-defs-list): Renamed from
unload-function-features-list.
(unload-feature-special-hooks, unload-feature): Doc fixes.
* indent.el (indent-to-left-margin): If point's in the indentation,
move to the end of the indentation.
* cus-edit.el (customize-changed-options): Make arg optional.
2007-10-24 Juanma Barranquero <lekktu@gmail.com>
* bs.el (bs-select, bs-select-other-window): Fix typos in docstrings.

View file

@ -309,10 +309,40 @@ If AUTO-SAVE is non-nil, compare the saved contents to the one last saved,
(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)