Commit 648db50d authored by Richard M. Stallman's avatar Richard M. Stallman
Browse files

(savehist-save): Omit unreadable elements.

parent 8ed7fe5c
2007-10-24 Richard Stallman <>
* savehist.el (savehist-save): Omit unreadable elements.
* loadhist.el (unload-function-defs-list): Renamed from
(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 <>
* bs.el (bs-select, bs-select-other-window): Fix typos in docstrings.
......@@ -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)))
(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
(goto-char start)
(read (current-buffer)))
;; 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.
(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)
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment