X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=lisp%2Fgnus-int.el;h=5231a58211a52e4f157085c6360fee2996439a8f;hb=032f633ef8fd34232bd3c24db295c75a2db21eba;hp=8143d0d01735cf6e10be8d59c02662b84f2d54ed;hpb=b1b63bafe13d7e6704c9bea3ef0f962e9e863ee5;p=elisp%2Fgnus.git- diff --git a/lisp/gnus-int.el b/lisp/gnus-int.el index 8143d0d..5231a58 100644 --- a/lisp/gnus-int.el +++ b/lisp/gnus-int.el @@ -1,7 +1,8 @@ ;;; gnus-int.el --- backend interface functions for Gnus -;; Copyright (C) 1996,97,98 Free Software Foundation, Inc. +;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen +;; MORIOKA Tomohiko ;; Keywords: news ;; This file is part of GNU Emacs. @@ -91,6 +92,7 @@ If CONFIRM is non-nil, the user will be asked for an NNTP server." ;; gnus-open-server-hook might have opened it (gnus-server-opened gnus-select-method) (gnus-open-server gnus-select-method) + gnus-batch-mode (gnus-y-or-n-p (format "%s (%s) open error: '%s'. Continue? " @@ -268,6 +270,14 @@ this group uses will be queried." (funcall (gnus-get-function gnus-command-method func) (gnus-group-real-name group) (nth 1 gnus-command-method))))) +(defun gnus-request-group-articles (group) + "Request a list of existing articles in GROUP." + (let ((gnus-command-method (gnus-find-method-for-group group)) + (func 'request-group-articles)) + (when (gnus-check-backend-function func group) + (funcall (gnus-get-function gnus-command-method func) + (gnus-group-real-name group) (nth 1 gnus-command-method))))) + (defun gnus-close-group (group) "Request the GROUP be closed." (let ((gnus-command-method (inline (gnus-find-method-for-group group)))) @@ -284,6 +294,43 @@ If FETCH-OLD, retrieve all headers (or some subset thereof) in the group." articles (gnus-group-real-name group) (nth 1 gnus-command-method) fetch-old)))) +(defun gnus-retrieve-parsed-headers (articles group &optional fetch-old + dependencies force-new) + "Request parsed-headers for ARTICLES in GROUP. +If FETCH-OLD, retrieve all headers (or some subset thereof) in the group." + (unless dependencies + (setq dependencies + (save-excursion + (set-buffer gnus-summary-buffer) + gnus-newsgroup-dependencies))) + (let ((gnus-command-method (gnus-find-method-for-group group)) + headers) + (if (and gnus-use-cache (numberp (car articles))) + (setq headers + (gnus-cache-retrieve-parsed-headers articles group fetch-old + dependencies force-new)) + (let ((func (gnus-get-function gnus-command-method + 'retrieve-parsed-headers 'no-error))) + (if func + (setq headers (funcall func articles dependencies + (gnus-group-real-name group) + (nth 1 gnus-command-method) fetch-old + force-new) + gnus-headers-retrieved-by (car headers) + headers (cdr headers)) + (setq gnus-headers-retrieved-by + (funcall + (gnus-get-function gnus-command-method 'retrieve-headers) + articles (gnus-group-real-name group) + (nth 1 gnus-command-method) fetch-old)) + ))) + (or headers + (if (eq gnus-headers-retrieved-by 'nov) + (gnus-get-newsgroup-headers-xover + articles nil dependencies gnus-newsgroup-name t) + (gnus-get-newsgroup-headers dependencies))) + )) + (defun gnus-retrieve-articles (articles group) "Request ARTICLES in GROUP." (let ((gnus-command-method (gnus-find-method-for-group group))) @@ -307,6 +354,16 @@ If FETCH-OLD, retrieve all headers (or some subset thereof) in the group." (funcall (gnus-get-function gnus-command-method 'request-type) (gnus-group-real-name group) article)))) +(defun gnus-request-set-mark (group action) + "Set marks on articles in the backend." + (let ((gnus-command-method (gnus-find-method-for-group group))) + (if (not (gnus-check-backend-function + 'request-set-mark (car gnus-command-method))) + action + (funcall (gnus-get-function gnus-command-method 'request-set-mark) + (gnus-group-real-name group) action + (nth 1 gnus-command-method))))) + (defun gnus-request-update-mark (group article mark) "Allow the backend to change the mark the user tries to put on an article." (let ((gnus-command-method (gnus-find-method-for-group group))) @@ -423,7 +480,8 @@ If GROUP is nil, all groups on GNUS-COMMAND-METHOD are scanned." article (gnus-group-real-name group) (nth 1 gnus-command-method) accept-function last))) -(defun gnus-request-accept-article (group &optional gnus-command-method last) +(defun gnus-request-accept-article (group &optional gnus-command-method last + no-encode) ;; Make sure there's a newline at the end of the article. (when (stringp gnus-command-method) (setq gnus-command-method (gnus-server-to-method gnus-command-method))) @@ -440,7 +498,7 @@ If GROUP is nil, all groups on GNUS-COMMAND-METHOD are scanned." (cadr gnus-command-method) last))) -(defun gnus-request-replace-article (article group buffer) +(defun gnus-request-replace-article (article group buffer &optional no-encode) (let ((func (car (gnus-group-name-to-method group)))) (funcall (intern (format "%s-request-replace-article" func)) article (gnus-group-real-name group) buffer)))