Mercurial > emacs
changeset 110699:295298da2c13
Add lisp/gnus/nnregistry.el.
author | Katsumi Yamaoka <yamaoka@jpl.org> |
---|---|
date | Sat, 02 Oct 2010 10:35:45 +0000 |
parents | 74bad2d7bddd |
children | 9dcb17ed6ae2 |
files | lisp/gnus/nnregistry.el |
diffstat | 1 files changed, 65 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /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 <ludo@gnu.org> +;; 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 <http://www.gnu.org/licenses/>. + +;;; 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