From 852ee0e62e2434c4603e53a7b50d5547a5d5e062 Mon Sep 17 00:00:00 2001 From: Lars Magne Ingebrigtsen Date: Wed, 29 Sep 2010 16:40:33 +0200 Subject: [PATCH 1/1] =?utf8?q?Added=20nnregistry.el,=20from=20Ludovic=20Co?= =?utf8?q?urt=C3=A8s.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- lisp/ChangeLog | 2 ++ lisp/nnregistry.el | 65 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 lisp/nnregistry.el diff --git a/lisp/ChangeLog b/lisp/ChangeLog index f0ec65a25..6d00f81ef 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,7 @@ 2010-09-29 Lars Magne Ingebrigtsen + * nnregistry.el: Added. + * nndraft.el (nndraft-request-expire-articles): Use the group name instead if "nndraft". Fix found by Nils Ackermann. diff --git a/lisp/nnregistry.el b/lisp/nnregistry.el new file mode 100644 index 000000000..b2d805034 --- /dev/null +++ b/lisp/nnregistry.el @@ -0,0 +1,65 @@ +;;; nnregistry.el --- access to articles via Gnus' message-id registry +;;; -*- coding: utf-8 -*- + +;; Copyright (C) 2010 Free Software Foundation, Inc. + +;; Authors: Ludovic Courtès +;; Keywords: news, mail + +;; This file is part of GNU Emacs. + +;; GNU Emacs is free software: you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; GNU Emacs is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs. If not, see . + +;;; Commentary: + +;; This file provides the `nnregistry' Gnus back-end. It can be used +;; in `gnus-refer-article-method' to quickly search for a message by +;; id, regardless of the back-end that stores it. + +;;; Code: + +(require 'nnoo) +(require 'gnus-registry) +(require 'gnus-int) + +(nnoo-declare nnregistry) + +(deffoo nnregistry-server-opened (server) + (eq gnus-registry-install t)) + +(deffoo nnregistry-close-server (server) + t) + +(deffoo nnregistry-status-message (server) + nil) + +(deffoo nnregistry-open-server (server &optional defs) + (eq gnus-registry-install t)) + +(defvar nnregistry-within-nnregistry nil) + +(deffoo nnregistry-request-article (id &optional group server buffer) + (and (not nnregistry-within-nnregistry) + (let* ((nnregistry-within-nnregistry t) + (group (gnus-registry-fetch-group id)) + (gnus-override-method nil)) + (message "nnregistry: requesting article `%s' in group `%s'" + id group) + (and group + (gnus-check-group group) + (gnus-request-article id group buffer))))) + +(provide 'nnregistry) + +;;; nnregistry.el ends here -- 2.25.1