# HG changeset patch # User Katsumi Yamaoka # Date 1286015745 0 # Node ID 295298da2c1363928d343426f55e6124161f155b # Parent 74bad2d7bddde77df71998e324eb5046ba9a2b29 Add lisp/gnus/nnregistry.el. diff -r 74bad2d7bddd -r 295298da2c13 lisp/gnus/nnregistry.el --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lisp/gnus/nnregistry.el Sat Oct 02 10:35:45 2010 +0000 @@ -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