emacs-devel
[Top][All Lists]
Advanced

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

Re: bookmark.el and lisp/gnus/gnus-bookmark.el


From: Bastien
Subject: Re: bookmark.el and lisp/gnus/gnus-bookmark.el
Date: Thu, 06 Mar 2008 19:51:59 +0000
User-agent: Gnus/5.110007 (No Gnus v0.7) Emacs/23.0.60 (gnu/linux)

Stefan Monnier <address@hidden> writes:

>> Does anyone know why we have both 'bookmark.el' and 'gnus-bookmark.el'?
>> The latter says:
>
>>   ;; This file implements real bookmarks for Gnus, closely following the way
>>   ;; `bookmark.el' handles bookmarks.  Most of the code comes from
>>   ;; `bookmark.el'.
>
>> I'm not sure why GNUS bookmarks should live in a separate space from
>> other bookmarks, and my feeling is that they ought to be unified --
>> that is, the gnus-bookmark.el functionality absorbed into bookmark.el,
>> with compatibility shims to transfer people's ~/.gnus.bmk file
>> contents to ~/.emacs.bmk.  (Of course, I really mean whatever the
>> values of `gnus-bookmark-default-file' and `bookmark-default-file'
>> are, respectively.)
>
>> Thoughts?
>
> Indeed, it seems worthwhile to merge them, tho I've never used
> gnus-bookmarks.  Bastien?

Two answers: yes gnus-bookmarks.el should stored Gnus bookmarks in
~/.emacs.bmk (as every mode should do), but no we can't get rid of
gnus-bookmarks.el because it adds some keybindings to Gnus.

I think we should continue and generalize the work done by Tassilo.

He added the buffer-local variable `bookmark-make-cell-function', which
lets you define a handler for a mode: when setting a bookmark, a handler
is added to the record and jumping to the bookmark will use this handler
instead of `bookmark-jump' (see `bookmark-jump-internal'.)

This is all good, but it only works for buffer visiting files and
Info-mode. 


What would be great would be to change `bookmark-set' like this:

- run every function in `bookmark-set-functions' until one returns
  something useful (those functions returning something similar to
  ` bookmark-buffer-file-name');

- if nil, then fall back on `bookmark-buffer-file-name' and return 
  an error if this is nil.


If we go for this, then gnus-bookmarks.el would do this:

- add a function to `bookmark-set-functions', so that it return a
  sensible value (instead of the buffer-file-name)

- locally set `bookmark-make-cell-function' to define the right handler
  (which should select a group/article in Gnus)


I think this way let's people easily define man-bmk.el, or mew-bmk.el or
whatever.  

What you think?

-- 
Bastien




reply via email to

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