[EMAIL PROTECTED] (Jason F. McBrayer) writes:

> Bastien <[EMAIL PROTECTED]> writes:
>
>> Anyway, i think gnus-registry comes in handy here.
>
> It looks like that may indeed be the way forward, if it will let you
> follow a link by message-id rather than group.  I'm not clear on the
> specifics of how you'd set it up, though.

Not fully tested yet, but this patch is a first attempt to implement
this.

It uses message-id instead of message number to store Gnus links. If
gnus-registry is on, it fetches location of the article depending on
gnus-registry-alist.  It's compatible with old Gnus links.

The problem is gnus-registry-alist can be huge, and access to article
might be somewhat slow.

--- org.el.orig	2007-07-13 15:10:47.000000000 +0200
+++ org.el	2007-07-18 13:48:38.000000000 +0200
@@ -10509,7 +10509,7 @@
 		   (format "http://groups.google.com/groups?as_umsgid=%s";
 			   (org-fixup-message-id-for-http message-id))))
 	  (setq link (org-make-link "gnus:" group
-				    "#" (number-to-string article))))))
+				    "#" (org-remove-angle-brackets message-id))))))
 
      ((eq major-mode 'w3-mode)
       (setq cpltxt (url-view-url t)
@@ -11444,8 +11444,14 @@
   (funcall (cdr (assq 'gnus org-link-frame-setup)))
   (if gnus-other-frame-object (select-frame gnus-other-frame-object))
   (cond ((and group article)
+	 (if (string-match "@" article)
+	     (when (boundp 'gnus-registry-alist)
+	       (gnus-registry-initialize)
+	       (setq group (caddr (assoc (concat "<" article ">")
+					 gnus-registry-alist))))
+	   (setq article (string-to-number article)))
 	 (gnus-group-read-group 1 nil group)
-	 (gnus-summary-goto-article (string-to-number article) nil t))
+	 (gnus-summary-goto-article article nil t))
 	(group (gnus-group-jump-to-group group))))
 
 (defun org-follow-vm-link (&optional folder article readonly)
Let me know if this is convenient.

-- 
Bastien
_______________________________________________
Emacs-orgmode mailing list
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode

Reply via email to