: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?
;; 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))
-
-
\f
;;; Keymap stuff:
;;; end file-format stuff
+\f
+;;; 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)))
+
\f
;;; Core code:
(and cell
(switch-to-buffer (car cell))
(goto-char (cdr cell))
- (progn (run-hooks 'bookmark-jump-hook) t)
+ (progn (run-hooks 'bookmark-after-jump-hook) t)
(if bookmark-automatically-show-annotations
;; if there is an annotation for this bookmark,
;; show it in a buffer.
(prog1
(insert (bookmark-location bookmark)) ; *Return this line*
(if (and (display-color-p) (display-mouse-p))
- (add-text-properties start
- (save-excursion (re-search-backward
- "[^ \t]")
+ (add-text-properties
+ start
+ (save-excursion (re-search-backward
+ "[^ \t]")
(1+ (point)))
- '(mouse-face highlight
- help-echo "mouse-2: go to this bookmark"))))))
+ '(mouse-face highlight
+ follow-link t
+ help-echo "mouse-2: go to this bookmark in other window"))))))
;;;###autoload
(defalias 'bookmark-locate 'bookmark-insert-location)
(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
(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)
(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))
(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)))
(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)
(let ((start (point)))
(insert (bookmark-name-from-full-record full-record))
(if (and (display-color-p) (display-mouse-p))
- (add-text-properties start
- (save-excursion (re-search-backward
- "[^ \t]")
- (1+ (point)))
- '(mouse-face highlight
- help-echo "mouse-2: go to this bookmark")))
+ (add-text-properties
+ start
+ (save-excursion (re-search-backward
+ "[^ \t]")
+ (1+ (point)))
+ '(mouse-face highlight
+ follow-link t
+ help-echo "mouse-2: go to this bookmark in other window")))
(insert "\n")
)))
bookmark-alist))
(let ((start (point)))
(insert (car bookmark-bmenu-hidden-bookmarks))
(if (and (display-color-p) (display-mouse-p))
- (add-text-properties start
- (save-excursion (re-search-backward
- "[^ \t]")
- (1+ (point)))
- '(mouse-face highlight
- help-echo
- "mouse-2: go to this bookmark"))))
+ (add-text-properties
+ start
+ (save-excursion (re-search-backward
+ "[^ \t]")
+ (1+ (point)))
+ '(mouse-face highlight
+ follow-link t
+ help-echo
+ "mouse-2: go to this bookmark in other window"))))
(setq bookmark-bmenu-hidden-bookmarks
(cdr bookmark-bmenu-hidden-bookmarks))
(forward-line 1))))))))
(interactive)
(if (bookmark-bmenu-check-position)
(let ((bmrk (bookmark-bmenu-bookmark)))
- (message (bookmark-location bmrk)))))
+ (message "%s" (bookmark-location bmrk)))))
(defun bookmark-bmenu-relocate ()
"Change the file path of the bookmark on the current line,