summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2010-04-14 11:07:53 -0400
committerStefan Monnier <monnier@iro.umontreal.ca>2010-04-14 11:07:53 -0400
commitebb9641fb29728e9fbba70cb27f2d42679e32de7 (patch)
tree577b464e524ffe81d17774c387febee1ad57b66e
parent7b05466ff6721988517519081078b19fffeecd09 (diff)
downloademacs-ebb9641fb29728e9fbba70cb27f2d42679e32de7.tar.gz
Add a new field `location' to bookmarks for non-file bookmarks.
* bookmark.el (bookmark-location): Use the new field, if present. (bookmark-insert-location): Undo last change, not needed any more. * man.el (Man-bookmark-make-record): * woman.el (woman-bookmark-make-record): * gnus-sum.el (gnus-summary-bookmark-make-record): Add `location' field.
-rw-r--r--lisp/ChangeLog8
-rw-r--r--lisp/bookmark.el14
-rw-r--r--lisp/gnus/ChangeLog4
-rw-r--r--lisp/gnus/gnus-sum.el5
-rw-r--r--lisp/man.el5
-rw-r--r--lisp/woman.el1
6 files changed, 28 insertions, 9 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 89d56ffd323..b9e8ea511e6 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,11 @@
+2010-04-14 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ Add a new field `location' to bookmarks for non-file bookmarks.
+ * bookmark.el (bookmark-location): Use the new field, if present.
+ (bookmark-insert-location): Undo last change, not needed any more.
+ * man.el (Man-bookmark-make-record):
+ * woman.el (woman-bookmark-make-record): Add `location' field.
+
2010-04-14 Juri Linkov <juri@jurta.org>
* simple.el (scroll-error-top-bottom): New defcustom.
diff --git a/lisp/bookmark.el b/lisp/bookmark.el
index 12ac760580c..cfc7d7af5c8 100644
--- a/lisp/bookmark.el
+++ b/lisp/bookmark.el
@@ -1176,9 +1176,7 @@ minibuffer history list `bookmark-history'."
(or no-history (bookmark-maybe-historicize-string bookmark))
(let ((start (point)))
(prog1
- ;; FIXME: Each bookmark should come with a `location' method
- ;; rather than just say "-- no file --".
- (insert (or (bookmark-location bookmark) " -- no file --"))
+ (insert (bookmark-location bookmark))
(if (display-mouse-p)
(add-text-properties
start
@@ -1193,10 +1191,16 @@ minibuffer history list `bookmark-history'."
(defalias 'bookmark-locate 'bookmark-insert-location)
(defun bookmark-location (bookmark)
- "Return the name of the file associated with BOOKMARK, or nil if none.
+ "Return a description of the location of BOOKMARK.
BOOKMARK may be a bookmark name (a string) or a bookmark record."
(bookmark-maybe-load-default-file)
- (bookmark-get-filename bookmark))
+ ;; We could call the `handler' and ask for it to construct a description
+ ;; dynamically: it would open up several new possibilities, but it
+ ;; would have the major disadvantage of forcing to load each and
+ ;; every handler when the user calls bookmark-menu.
+ (or (bookmark-prop-get bookmark 'location)
+ (bookmark-get-filename bookmark)
+ "-- Unknown location --"))
;;;###autoload
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index 52de639c813..b0b3cd11b6a 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,7 @@
+2010-04-14 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * gnus-sum.el (gnus-summary-bookmark-make-record): Add `location' field.
+
2010-04-12 Stefan Monnier <monnier@iro.umontreal.ca>
* gnus-sum.el: Add bookmark declarations to silence the compiler.
diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el
index ba74e3baeb8..d8a36dd77db 100644
--- a/lisp/gnus/gnus-sum.el
+++ b/lisp/gnus/gnus-sum.el
@@ -12657,8 +12657,9 @@ If ALL is a number, fetch this number of articles."
(id (mail-header-id head)))
`(,subject
,@(bookmark-make-record-default 'point-only)
- (group . ,grp) (article . ,art)
- (message-id . ,id) (handler . gnus-summary-bookmark-jump))))
+ (location . ,(format "Gnus %s:%d:%s" grp art id))
+ (group . ,grp) (article . ,art)
+ (message-id . ,id) (handler . gnus-summary-bookmark-jump))))
;;;###autoload
(defun gnus-summary-bookmark-jump (bookmark)
diff --git a/lisp/man.el b/lisp/man.el
index 67bdcbea4e6..df5f4807cec 100644
--- a/lisp/man.el
+++ b/lisp/man.el
@@ -1689,8 +1689,9 @@ Uses `Man-name-local-regexp'."
"Make a bookmark entry for a Man buffer."
`(,(Man-default-bookmark-title)
,@(bookmark-make-record-default 'point-only)
- (man-args . ,Man-arguments)
- (handler . Man-bookmark-jump)))
+ (location . ,(concat "man " Man-arguments))
+ (man-args . ,Man-arguments)
+ (handler . Man-bookmark-jump)))
;;;###autoload
(defun Man-bookmark-jump (bookmark)
diff --git a/lisp/woman.el b/lisp/woman.el
index 603b7917064..fa7ea1836ae 100644
--- a/lisp/woman.el
+++ b/lisp/woman.el
@@ -4533,6 +4533,7 @@ logging the message."
"Make a bookmark entry for a Woman buffer."
`(,(Man-default-bookmark-title)
,@(bookmark-make-record-default 'point-only)
+ (location . ,(concat "woman " woman-last-file-name))
;; Use the same form as man's bookmarks, as much as possible.
(man-args . ,woman-last-file-name)
(handler . woman-bookmark-jump)))