X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/8b1b64617b37243f75c4052653761d2e2a3943f3..5e2fd70ae44c72f41bf2aa2badc9ceb3b6e64d95:/lisp/bookmark.el diff --git a/lisp/bookmark.el b/lisp/bookmark.el index 75228288ff..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 @@ -198,6 +198,13 @@ following in your `.emacs' file: :group 'bookmark) +(defface bookmark-menu-heading + '((t (:inherit font-lock-type-face))) + "Face used to highlight the heading in bookmark menu buffers." + :group 'bookmark + :version "22.1") + + ;;; No user-serviceable parts beyond this point. ;; Is it XEmacs? @@ -211,12 +218,6 @@ following in your `.emacs' file: ;; suggested for lucid compatibility by david hughes: (or (fboundp 'frame-height) (defalias 'frame-height 'screen-height)) -;; This variable is probably obsolete now... -(or (boundp 'baud-rate) - ;; some random value higher than 9600 - (setq baud-rate 19200)) - - ;;; Keymap stuff: @@ -715,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: @@ -1349,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 @@ -1367,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) @@ -1437,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)) @@ -1461,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))) @@ -1555,6 +1562,8 @@ deletion, or > if it is flagged for displaying." (let ((inhibit-read-only t)) (erase-buffer) (insert "% Bookmark\n- --------\n") + (add-text-properties (point-min) (point) + '(font-lock-face bookmark-menu-heading)) (bookmark-maybe-sort-alist) (mapcar (lambda (full-record)