X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/37789292971ec72b1a13b3f55fb027a13d374a78..5e2fd70ae44c72f41bf2aa2badc9ceb3b6e64d95:/lisp/bookmark.el diff --git a/lisp/bookmark.el b/lisp/bookmark.el index 86fa6e489f..104a9c6512 100644 --- a/lisp/bookmark.el +++ b/lisp/bookmark.el @@ -1,7 +1,7 @@ ;;; bookmark.el --- set bookmarks, maybe annotate them, jump to them later ;; Copyright (C) 1993, 1994, 1995, 1996, 1997, 2001, 2002, 2003, -;; 2004, 2005 Free Software Foundation, Inc. +;; 2004, 2005, 2006 Free Software Foundation, Inc. ;; Author: Karl Fogel ;; Maintainer: Karl Fogel @@ -716,6 +716,14 @@ This expects to be called from `point-min' in a bookmark file." ;;; end file-format stuff + +;;; Generic helpers. + +(defun bookmark-maybe-message (fmt &rest args) + "Apply `message' to FMT and ARGS, but only if the display is fast enough." + (if (>= baud-rate 9600) + (apply 'message fmt args))) + ;;; Core code: @@ -1350,14 +1358,12 @@ for a file, defaulting to the file defined by variable (defun bookmark-write-file (file) (save-excursion (save-window-excursion - (if (>= baud-rate 9600) - (message "Saving bookmarks to file %s..." file)) - (set-buffer (let ((enable-local-variables nil)) - (find-file-noselect file))) + (bookmark-maybe-message "Saving bookmarks to file %s..." file) + (set-buffer (get-buffer-create " *Bookmarks*")) (goto-char (point-min)) + (delete-region (point-min) (point-max)) (let ((print-length nil) (print-level nil)) - (delete-region (point-min) (point-max)) (bookmark-insert-file-format-version-stamp) (pp bookmark-alist (current-buffer)) (let ((version-control @@ -1368,11 +1374,11 @@ for a file, defaulting to the file defined by variable (t t)))) (condition-case nil - (write-file file) + (write-region (point-min) (point-max) file) (file-error (message "Can't write %s" file))) (kill-buffer (current-buffer)) - (if (>= baud-rate 9600) - (message "Saving bookmarks to file %s...done" file))))))) + (bookmark-maybe-message + "Saving bookmarks to file %s...done" file)))))) (defun bookmark-import-new-list (new-list) @@ -1438,8 +1444,8 @@ method buffers use to resolve name collisions." (if (file-readable-p file) (save-excursion (save-window-excursion - (if (and (null no-msg) (>= baud-rate 9600)) - (message "Loading bookmarks from %s..." file)) + (if (null no-msg) + (bookmark-maybe-message "Loading bookmarks from %s..." file)) (set-buffer (let ((enable-local-variables nil)) (find-file-noselect file))) (goto-char (point-min)) @@ -1462,8 +1468,8 @@ method buffers use to resolve name collisions." (bookmark-bmenu-surreptitiously-rebuild-list)) (error "Invalid bookmark list in %s" file))) (kill-buffer (current-buffer))) - (if (and (null no-msg) (>= baud-rate 9600)) - (message "Loading bookmarks from %s...done" file))) + (if (null no-msg) + (bookmark-maybe-message "Loading bookmarks from %s...done" file))) (error "Cannot read bookmark file %s" file)))