emacs-diffs
[Top][All Lists]
Advanced

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

emacs-27 17fa17b: Save bookmarks by using `write-file' (bug#12507)


From: Karl Fogel
Subject: emacs-27 17fa17b: Save bookmarks by using `write-file' (bug#12507)
Date: Sat, 28 Nov 2020 19:17:55 -0500 (EST)

branch: emacs-27
commit 17fa17be3d93fc10f6ca91d738d5056b1b9f1f1e
Author: Karl Fogel <kfogel@red-bean.com>
Commit: Karl Fogel <kfogel@red-bean.com>

    Save bookmarks by using `write-file' (bug#12507)
    
    Go back to using `write-file' to save bookmarks, instead of using
    `write-region'.  This means numbered backups of the bookmark file may
    get made again, depending on the value of `bookmark-version-control'.
    
    Thanks especially to Drew Adams and Eli Zaretskii for their
    persistence in tracking down information relevant to this change.
---
 lisp/bookmark.el | 27 ++++++++++++++++++++++++++-
 1 file changed, 26 insertions(+), 1 deletion(-)

diff --git a/lisp/bookmark.el b/lisp/bookmark.el
index e69d9f5..4766f61 100644
--- a/lisp/bookmark.el
+++ b/lisp/bookmark.el
@@ -1475,7 +1475,32 @@ for a file, defaulting to the file defined by variable
                ((eq 'nospecial bookmark-version-control) version-control)
                (t t))))
          (condition-case nil
-             (write-region (point-min) (point-max) file)
+              ;; There was a stretch of time (about 15 years) when we
+              ;; used `write-region' below instead of `write-file',
+              ;; before going back to `write-file' again.  So if you're
+              ;; considering changing it to `write-region', please see
+              ;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=12507.
+              ;; That bug tells the story of how we first started using
+              ;; `write-region' in 2005...
+              ;;
+              ;;   commit a506054af7cd86a63fda996056c09310966f32ef
+              ;;   Author:     Karl Fogel <kfogel@red-bean.com>
+              ;;   AuthorDate: Sat Nov 12 20:30:22 2005 +0000
+              ;;
+              ;;       (bookmark-write-file): Don't visit the
+              ;;       destination file, just write the data to it
+              ;;       using write-region.  This is similar to
+              ;;       2005-05-29T08:36:26Z!rms@gnu.org of saveplace.el,
+              ;;       but with an additional change to avoid visiting
+              ;;       the  file in the first place.
+              ;;
+              ;; ...and of how further inquiry led us to investigate (in
+              ;; 2012 and then again in 2020) and eventually decide that
+              ;; matching the saveplace.el change doesn't make sense for
+              ;; bookmark.el.  Therefore we reverted to `write-file',
+              ;; which means numbered backups may now be created,
+              ;; depending on `bookmark-version-control' as per above.
+             (write-file file)
            (file-error (message "Can't write %s" file)))
          (setq bookmark-file-coding-system coding-system-for-write)
          (kill-buffer (current-buffer))



reply via email to

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