Commit 6b958814 authored by Gnus developers's avatar Gnus developers Committed by Katsumi Yamaoka

nnimap.el (nnimap-request-accept-article): Get the Message-ID without the \r.

nnimap.el (nnimap-find-article-by-message-id): Use EXAMINE instead of SELECT to get the message-id.
gnus-art.el, gnus.el, nnimap.el: Fix up make-obsolete-variable declarations throughout.
gnus.texi (Mail Source Specifiers): Remove webmail.el mentions.
mail-source.el: Removed webmail support.
nntp.el (nntp-server-list-active-group): Document.
gnus.texi (NNTP): Document nntp-server-list-active-group.
gnus.texi (Customizing the IMAP Connection): Remove extra quote.
nnimap.el (nnimap-find-article-by-message-id): Really return the article number.
nnimap.el: Add nnimap-split-fancy.
netrc.el (netrc-credentials, netrc-machine): Return the value of the "default" entry.
nnimap.el: Use tls.el exclusively, and not starttls.el at all.
nnimap.el (nnimap-wait-for-connection): Accept the moronic openssl s_client -starttls output, too.
nnrss.el (nnrss-use-local): Add documentation.
message.el (message-ignored-supersedes-headers): Strip Injection-* headers before superseding.
nnimap.el (nnimap-open-connection): Reinstate the auto-upgrade from unencrypted to STARTTLS, if possible.
nnir.el: Use the server names without suffixes.
gnus-sum.el (gnus-summary-show-thread): Skip past invisible text when expanding threads.
gnus-registry.el: Don't follow nnmairix references.  Install the nnregistry refer method.
gnus.texi (Spam Package Configuration Examples, SpamOracle): Remove nnimap-split-rule from examples.
parent 55e572ef
2010-09-30 Teodor Zlatanov <tzz@lifelogs.com>
* gnus.texi (Spam Package Configuration Examples, SpamOracle): Remove
nnimap-split-rule from examples.
2010-09-30 Lars Magne Ingebrigtsen <larsi@gnus.org>
* gnus.texi (Mail Source Specifiers): Remove webmail.el mentions.
(NNTP): Document nntp-server-list-active-group. Suggested by Barry
Fishman.
(Client-Side IMAP Splitting): Add nnimap-split-fancy.
2010-09-30 Julien Danjou <julien@danjou.info>
* gnus.texi (Gravatars): Fix documentation about
gnu-gravatar-properties.
2010-09-29 Daiki Ueno <ueno@unixuser.org>
* epa.texi (Bug Reports): New section.
......@@ -6,6 +23,16 @@
* Makefile.in (top_srcdir): Remove unused variable.
2010-09-29 Lars Magne Ingebrigtsen <larsi@gnus.org>
* gnus.texi (Using IMAP): Remove the @acronyms from the headings.
(Client-Side IMAP Splitting): Document 'default.
2010-09-27 Lars Magne Ingebrigtsen <larsi@gnus.org>
* gnus.texi (Customizing the IMAP Connection): Document
nnimap-fetch-partial-articles.
2010-09-26 Lars Magne Ingebrigtsen <larsi@gnus.org>
* gnus-news.texi: Mention nnimap-inbox.
......
......@@ -14394,6 +14394,12 @@ inhibit Gnus to add a @code{Message-ID} header, you could say:
Note that not all servers support the recommended ID. This works for
INN versions 2.3.0 and later, for instance.
@item nntp-server-list-active-group
If @code{nil}, then always use @samp{GROUP} instead of @samp{LIST
ACTIVE}. This is usually slower, but on misconfigured servers that
don't update their active files often, this can help.
@end table
@menu
......@@ -14836,7 +14842,7 @@ Here's an example method that's more complex:
(nnimap-inbox "INBOX")
(nnimap-split-methods default)
(nnimap-expunge t)
(nnimap-stream 'ssl)
(nnimap-stream ssl)
(nnir-search-engine imap)
(nnimap-expunge-inbox t))
@end example
......@@ -14906,6 +14912,9 @@ Uses the same syntax as @code{nnmail-split-methods} (@pxref{Splitting
Mail}), except the symbol @code{default}, which means that it should
use the value of the @code{nnmail-split-methods} variable.
@item nnimap-split-fancy
Uses the same syntax as @code{nnmail-split-fancy}.
@end table
......@@ -15559,45 +15568,6 @@ An example @acronym{IMAP} mail source:
:fetchflag "\\Seen")
@end lisp
@item webmail
Get mail from a webmail server, such as @uref{http://www.hotmail.com/},
@uref{http://webmail.netscape.com/}, @uref{http://www.netaddress.com/},
@uref{http://mail.yahoo.com/}.
NOTE: Webmail largely depends on cookies. A "one-line-cookie" patch is
required for url "4.0pre.46".
WARNING: Mails may be lost. NO WARRANTY.
Keywords:
@table @code
@item :subtype
The type of the webmail server. The default is @code{hotmail}. The
alternatives are @code{netscape}, @code{netaddress}, @code{my-deja}.
@item :user
The user name to give to the webmail server. The default is the login
name.
@item :password
The password to give to the webmail server. If not specified, the user is
prompted.
@item :dontexpunge
If non-@code{nil}, only fetch unread articles and don't move them to
trash folder after finishing the fetch.
@end table
An example webmail source:
@lisp
(webmail :subtype 'hotmail
:user "user-name"
:password "secret")
@end lisp
@item group
Get the actual mail source from the @code{mail-source} group parameter,
@xref{Group Parameters}.
......@@ -24196,8 +24166,8 @@ From Ted Zlatanov <tzz@@lifelogs.com>.
spam-move-spam-nonspam-groups-only nil
spam-mark-only-unseen-as-spam t
spam-mark-ham-unread-before-move-from-spam-group t
nnimap-split-rule 'nnimap-split-fancy
;; @r{understand what this does before you copy it to your own setup!}
;; @r{for nnimap you'll probably want to set nnimap-split-methods, see the manual}
nnimap-split-fancy '(|
;; @r{trace references to parents and put in their group}
(: gnus-registry-split-fancy-with-parent)
......@@ -24919,8 +24889,8 @@ messages stay in @samp{INBOX}:
@example
(setq spam-use-spamoracle t
spam-split-group "Junk"
;; @r{for nnimap you'll probably want to set nnimap-split-methods, see the manual}
nnimap-split-inbox '("INBOX")
nnimap-split-rule 'nnimap-split-fancy
nnimap-split-fancy '(| (: spam-split) "INBOX"))
@end example
......@@ -26239,7 +26209,7 @@ wrong show.
Masanobu @sc{Umeda}---the writer of the original @sc{gnus}.
@item
Shenghuo Zhu---uudecode.el, mm-uu.el, rfc1843.el, webmail.el,
Shenghuo Zhu---uudecode.el, mm-uu.el, rfc1843.el,
nnwarchive and many, many other things connected with @acronym{MIME} and
other types of en/decoding, as well as general bug fixing, new
functionality and stuff.
2010-09-30 Lars Magne Ingebrigtsen <larsi@gnus.org>
* tls.el (tls-starttls-switches): New variable.
(tls-find-starttls-argument): Use it.
(open-tls-stream): Ditto.
1 * netrc.el (netrc-credentials): Return the value of the "default"
entry.
(netrc-machine): Ditto.
2010-09-30 Eli Zaretskii <eliz@gnu.org>
* vc/vc-hooks.el (vc-default-mode-line-string): Doc fix.
......
2010-09-30 Teodor Zlatanov <tzz@lifelogs.com>
* gnus-registry.el (gnus-registry-install-nnregistry): New function to
install the nnregistry refer method.
(gnus-registry-install-hooks): Use it.
(gnus-registry-unfollowed-groups): Add nnmairix to the default
unfollowed groups.
2010-09-30 Jose A. Ortega Ruiz <jao@gnu.org> (tiny change)
* gnus-sum.el (gnus-summary-show-thread): Skip past invisible text when
expanding threads.
2010-09-30 Lars Magne Ingebrigtsen <larsi@gnus.org>
* nnir.el: Use the server names without suffixes (bug #7009).
* nnimap.el (nnimap-open-connection): Reinstate the auto-upgrade from
unencrypted to STARTTLS, if possible.
2010-09-30 Teemu Likonen <tlikonen@iki.fi> (tiny change)
* message.el (message-ignored-supersedes-headers): Strip Injection-*
headers before superseding.
2010-09-30 Lars Magne Ingebrigtsen <larsi@gnus.org>
* nnrss.el (nnrss-use-local): Add documentation.
* nnimap.el (nnimap-extend-tls-programs): New function.
(nnimap-open-connection): Use tls.el exclusively, and not starttls.el.
(nnimap-wait-for-connection): Accept the greeting from the stupid
output from openssl s_client -starttls, too.
* nnimap.el (nnimap-find-article-by-message-id): Really return the
article number.
(nnimap-split-fancy): New variable.
(nnimap-split-incoming-mail): Use it.
* nntp.el (nntp-server-list-active-group): Document.
* nnimap.el (nnimap-find-article-by-message-id): Use EXAMINE instead of
SELECT to get the message-id.
* mail-source.el (mail-sources): Removed webmail support.
(defvar): Ditto.
(mail-source-fetcher-alist): Ditto.
(mail-source-fetch-webmail): Removed.
* webmail.el: Removed -- doesn't seem relevant any more.
* gnus.el: Fix up make-obsolete-variable declarations throughout.
* nnimap.el (nnimap-request-accept-article): Get the Message-ID without
the \r.
2010-09-30 Julien Danjou <julien@danjou.info>
* gnus-agent.el (gnus-agent-add-group): Fix call to
......@@ -44,11 +100,13 @@
(nnimap-request-accept-article): Add \r\n to the lines to make this
work with Cyrus.
* nnregistry.el: Added.
* nndraft.el (nndraft-request-expire-articles): Use the group name
instead if "nndraft". Fix found by Nils Ackermann.
2010-09-29 Ludovic Courtes <ludo@gnu.org>
* nnregistry.el: Added.
2010-09-29 Stefan Monnier <monnier@iro.umontreal.ca>
* nnmail.el (group, group-art-list, group-art):
......
......@@ -725,7 +725,7 @@ Each element is a regular expression."
:group 'gnus-article-various)
(make-obsolete-variable 'gnus-article-hide-pgp-hook nil
"Gnus 5.10 (Emacs-22.1)")
"Gnus 5.10 (Emacs 22.1)")
(defface gnus-button
'((t (:weight bold)))
......@@ -1412,7 +1412,7 @@ predicate. See Info node `(gnus)Customizing Articles'."
:type gnus-article-treat-custom)
(make-obsolete-variable 'gnus-treat-display-xface
'gnus-treat-display-x-face "22.1")
'gnus-treat-display-x-face "Emacs 22.1")
(defcustom gnus-treat-display-x-face
(and (not noninteractive)
......
......@@ -122,12 +122,14 @@ display."
:type 'symbol)
(defcustom gnus-registry-unfollowed-groups
'("delayed$" "drafts$" "queue$" "INBOX$")
'("delayed$" "drafts$" "queue$" "INBOX$" "^nnmairix:")
"List of groups that gnus-registry-split-fancy-with-parent won't return.
The group names are matched, they don't have to be fully
qualified. This parameter tells the Registry 'never split a
message into a group that matches one of these, regardless of
references.'"
references.'
nnmairix groups are specifically excluded because they are ephemeral."
:group 'gnus-registry
:type '(repeat regexp))
......@@ -1127,6 +1129,7 @@ Returns the first place where the trail finds a group name."
(setq gnus-registry-install t) ; in case it was 'ask or nil
(gnus-registry-install-hooks)
(gnus-registry-install-shortcuts)
(gnus-registry-install-nnregistry)
(gnus-registry-read))
;;;###autoload
......@@ -1143,6 +1146,19 @@ Returns the first place where the trail finds a group name."
(add-hook 'gnus-summary-prepare-hook 'gnus-registry-register-message-ids))
;;;###autoload
(defun gnus-registry-install-nnregistry ()
"Install the nnregistry refer method in `gnus-refer-article-method'."
(interactive)
(when (featurep 'nnregistry)
(setq gnus-refer-article-method
(delete-dups
(append
(if (listp gnus-refer-article-method)
gnus-refer-article-method
(list gnus-refer-article-method))
(list 'nnregistry))))))
(defun gnus-registry-unload-hook ()
"Uninstall the registry hooks."
(interactive)
......
......@@ -11327,15 +11327,19 @@ For compatibility with XEmacs."
(gnus-remove-overlays (point-min) (point-max) 'invisible 'gnus-sum)
(gnus-summary-position-point))
(defsubst gnus-summary--inv (p)
(and (eq (get-char-property p 'invisible) 'gnus-sum) p))
(defun gnus-summary-show-thread ()
"Show thread subtrees.
Returns nil if no thread was there to be shown."
(interactive)
(let* ((orig (point))
(end (point-at-eol))
(end (or (gnus-summary--inv end) (gnus-summary--inv (1- end))))
;; Leave point at bol
(beg (progn (beginning-of-line) (if (bobp) (point) (1- (point)))))
(eoi (when (eq (get-char-property end 'invisible) 'gnus-sum)
(eoi (when end
(if (fboundp 'next-single-char-property-change)
(or (next-single-char-property-change end 'invisible)
(point-max))
......
......@@ -1427,7 +1427,7 @@ no need to set this variable."
:group 'gnus-message
:type '(choice (const :tag "default" nil)
string))
(make-obsolete-variable 'gnus-local-domain nil "24.1")
(make-obsolete-variable 'gnus-local-domain nil "Emacs 24.1")
(defvar gnus-local-organization nil
"String with a description of what organization (if any) the user belongs to.
......
......@@ -217,34 +217,6 @@ See Info node `(gnus)Mail Source Specifiers'."
(const :format ""
:value :dontexpunge)
(boolean :tag "Dontexpunge"))
(group :inline t
(const :format "" :value :plugged)
(boolean :tag "Plugged"))))
(cons :tag "Webmail server"
(const :format "" webmail)
(checklist :tag "Options" :greedy t
(group :inline t
(const :format "" :value :subtype)
;; Should be generated from
;; `webmail-type-definition', but we
;; can't require webmail without W3.
(choice :tag "Subtype"
:value hotmail
(const hotmail)
(const yahoo)
(const netaddress)
(const netscape)
(const my-deja)))
(group :inline t
(const :format "" :value :user)
(string :tag "User"))
(group :inline t
(const :format "" :value :password)
(string :tag "Password"))
(group :inline t
(const :format ""
:value :dontexpunge)
(boolean :tag "Dontexpunge"))
(group :inline t
(const :format "" :value :plugged)
(boolean :tag "Plugged"))))))))
......@@ -387,13 +359,7 @@ Common keywords should be listed here.")
(:prescript)
(:prescript-delay)
(:postscript)
(:dontexpunge))
(webmail
(:subtype hotmail)
(:user (or (user-login-name) (getenv "LOGNAME") (getenv "USER")))
(:password)
(:dontexpunge)
(:authentication password)))
(:dontexpunge)))
"Mapping from keywords to default values.
All keywords that can be used must be listed here."))
......@@ -402,8 +368,7 @@ All keywords that can be used must be listed here."))
(directory mail-source-fetch-directory)
(pop mail-source-fetch-pop)
(maildir mail-source-fetch-maildir)
(imap mail-source-fetch-imap)
(webmail mail-source-fetch-webmail))
(imap mail-source-fetch-imap))
"A mapping from source type to fetcher function.")
(defvar mail-source-password-cache nil)
......@@ -1138,30 +1103,6 @@ This only works when `display-time' is enabled."
?s server ?P port ?u user))
found)))
(autoload 'webmail-fetch "webmail")
(defun mail-source-fetch-webmail (source callback)
"Fetch for webmail source."
(mail-source-bind (webmail source)
(let ((mail-source-string (format "webmail:%s:%s" subtype user))
(webmail-newmail-only dontexpunge)
(webmail-move-to-trash-can (not dontexpunge)))
(when (eq authentication 'password)
(setq password
(or password
(cdr (assoc (format "webmail:%s:%s" subtype user)
mail-source-password-cache))
(read-passwd
(format "Password for %s at %s: " user subtype))))
(when (and password
(not (assoc (format "webmail:%s:%s" subtype user)
mail-source-password-cache)))
(push (cons (format "webmail:%s:%s" subtype user) password)
mail-source-password-cache)))
(webmail-fetch mail-source-crash-box subtype user password)
(mail-source-callback callback (symbol-name subtype))
(mail-source-delete-crash-box))))
(provide 'mail-source)
;;; mail-source.el ends here
......@@ -283,7 +283,7 @@ This is a list of regexps and regexp matches."
:link '(custom-manual "(message)Mail Headers")
:type 'regexp)
(defcustom message-ignored-supersedes-headers "^Path:\\|^Date\\|^NNTP-Posting-Host:\\|^Xref:\\|^Lines:\\|^Received:\\|^X-From-Line:\\|^X-Trace:\\|^X-ID:\\|^X-Complaints-To:\\|Return-Path:\\|^Supersedes:\\|^NNTP-Posting-Date:\\|^X-Trace:\\|^X-Complaints-To:\\|^Cancel-Lock:\\|^Cancel-Key:\\|^X-Hashcash:\\|^X-Payment:\\|^Approved:"
(defcustom message-ignored-supersedes-headers "^Path:\\|^Date\\|^NNTP-Posting-Host:\\|^Xref:\\|^Lines:\\|^Received:\\|^X-From-Line:\\|^X-Trace:\\|^X-ID:\\|^X-Complaints-To:\\|Return-Path:\\|^Supersedes:\\|^NNTP-Posting-Date:\\|^X-Trace:\\|^X-Complaints-To:\\|^Cancel-Lock:\\|^Cancel-Key:\\|^X-Hashcash:\\|^X-Payment:\\|^Approved:\\|^Injection-Date:\\|^Injection-Info:"
"*Header lines matching this regexp will be deleted before posting.
It's best to delete old Path and Date headers before posting to avoid
any confusion."
......
......@@ -38,6 +38,7 @@
(require 'nnoo)
(require 'netrc)
(require 'utf7)
(require 'tls)
(require 'parse-time)
(autoload 'auth-source-forget-user-or-password "auth-source")
......@@ -70,8 +71,11 @@ Values are `ssl', `network', `starttls' or `shell'.")
"How mail is split.
Uses the same syntax as nnmail-split-methods")
(defvoo nnimap-split-fancy nil
"Uses the same syntax as nnmail-split-fancy.")
(make-obsolete-variable 'nnimap-split-rule "see `nnimap-split-methods'"
"Gnus 5.13")
"Emacs 24.1")
(defvoo nnimap-authenticator nil
"How nnimap authenticate itself to the server.
......@@ -306,9 +310,11 @@ textual parts.")
(setq port (or nnimap-server-port "imap")))
'("imap"))
((eq nnimap-stream 'starttls)
(starttls-open-stream
"*nnimap*" (current-buffer) nnimap-address
(setq port (or nnimap-server-port "imap")))
(let ((tls-program (nnimap-extend-tls-programs)))
(open-tls-stream
"*nnimap*" (current-buffer) nnimap-address
(setq port (or nnimap-server-port "imap"))
'starttls))
'("imap"))
((eq nnimap-stream 'ssl)
(open-tls-stream
......@@ -342,11 +348,23 @@ textual parts.")
#'upcase
(nnimap-find-parameter
"CAPABILITY" (cdr (nnimap-command "CAPABILITY")))))
(when (eq nnimap-stream 'starttls)
(nnimap-command "STARTTLS")
(starttls-negotiate (nnimap-process nnimap-object)))
(when nnimap-server-port
(push (format "%s" nnimap-server-port) ports))
;; If this is a STARTTLS-capable server, then sever the
;; connection and start a STARTTLS connection instead.
(when (and (eq nnimap-stream 'network)
(member "STARTTLS" (nnimap-capabilities nnimap-object)))
(let ((nnimap-stream 'starttls))
(let ((tls-process
(nnimap-open-connection buffer)))
;; If the STARTTLS connection was successful, we
;; kill our first non-encrypted connection. If it
;; wasn't successful, we just use our unencrypted
;; connection.
(when (memq (process-status tls-process) '(open run))
(delete-process (nnimap-process nnimap-object))
(kill-buffer (current-buffer))
(return tls-process)))))
(unless (equal connection-result "PREAUTH")
(if (not (setq credentials
(if (eq nnimap-authenticator 'anonymous)
......@@ -378,7 +396,16 @@ textual parts.")
(when nnimap-object
(when (member "QRESYNC" (nnimap-capabilities nnimap-object))
(nnimap-command "ENABLE QRESYNC"))
t)))))))
(nnimap-process nnimap-object))))))))
(defun nnimap-extend-tls-programs ()
(let ((programs tls-program)
result)
(unless (consp programs)
(setq programs (list programs)))
(dolist (program programs)
(push (concat program " " "%s") result))
(nreverse result)))
(defun nnimap-find-parameter (parameter elems)
(let (result)
......@@ -729,16 +756,20 @@ textual parts.")
(defun nnimap-find-article-by-message-id (group message-id)
(when (nnimap-possibly-change-group group nil)
(with-current-buffer (nnimap-buffer)
(let ((result
(nnimap-command "UID SEARCH HEADER Message-Id %S" message-id))
article)
(when (car result)
;; Select the last instance of the message in the group.
(and (setq article
(car (last (assoc "SEARCH" (cdr result)))))
(string-to-number article)))))))
(with-current-buffer (nnimap-buffer)
(erase-buffer)
(setf (nnimap-group nnimap-object) nil)
(nnimap-send-command "EXAMINE %S" (utf7-encode group t))
(let ((sequence
(nnimap-send-command "UID SEARCH HEADER Message-Id %S" message-id))
article result)
(setq result (nnimap-wait-for-response sequence))
(when (and result
(car (setq result (nnimap-parse-response))))
;; Select the last instance of the message in the group.
(and (setq article
(car (last (assoc "SEARCH" (cdr result)))))
(string-to-number article))))))
(defun nnimap-delete-article (articles)
(with-current-buffer (nnimap-buffer)
......@@ -796,10 +827,10 @@ textual parts.")
(deffoo nnimap-request-accept-article (group &optional server last)
(when (nnimap-possibly-change-group nil server)
(nnmail-check-syntax)
(nnimap-add-cr)
(let ((message (buffer-string))
(message-id (message-field-value "message-id"))
sequence)
(let ((message-id (message-field-value "message-id"))
sequence message)
(nnimap-add-cr)
(setq message (buffer-string))
(with-current-buffer (nnimap-buffer)
(setq sequence (nnimap-send-command
"APPEND %S {%d}" (utf7-encode group t)
......@@ -1183,11 +1214,11 @@ textual parts.")
(goto-char (point-min))
(while (and (memq (process-status process)
'(open run))
(not (re-search-forward "^\\* .*\n" nil t)))
(not (re-search-forward "^[*.] .*\n" nil t)))
(nnheader-accept-process-output process)
(goto-char (point-min)))
(forward-line -1)
(and (looking-at "\\* \\([A-Z0-9]+\\)")
(and (looking-at "[*.] \\([A-Z0-9]+\\)")
(match-string 1))))
(defun nnimap-wait-for-response (sequence &optional messagep)
......@@ -1299,6 +1330,8 @@ textual parts.")
(nnmail-split-methods (if (eq nnimap-split-methods 'default)
nnmail-split-methods
nnimap-split-methods))
(nnmail-split-fancy (or nnimap-split-fancy
nnmail-split-fancy))
(nnmail-inhibit-default-split-group t)
(groups (nnimap-get-groups))
new-articles)
......
......@@ -881,7 +881,9 @@ ready to be added to the list of search results."
(when (file-readable-p (concat prefix dirnam article))
;; remove trailing slash and, for nnmaildir, cur/new/tmp
(setq dirnam
(substring dirnam 0 (if (string= server "nnmaildir:") -5 -1)))
(substring dirnam 0
(if (string= (gnus-group-server server) "nnmaildir")
-5 -1)))
;; Set group to dirnam without any leading dots or slashes,
;; and with all subsequent slashes replaced by dots
......@@ -890,7 +892,7 @@ ready to be added to the list of search results."
"[/\\]" "." t)))
(vector (nnir-group-full-name group server)
(if (string= server "nnmaildir:")
(if (string= (gnus-group-server server) "nnmaildir")
(nnmaildir-base-name-to-article-number
(substring article 0 (string-match ":" article))
group nil)
......@@ -1200,7 +1202,7 @@ Windows NT 4.0."
;; is sufficient. Note that we can't only use the value of
;; nnml-use-compressed-files because old articles might have been
;; saved with a different value.
(article-pattern (if (string= server "nnmaildir:")
(article-pattern (if (string= (gnus-group-server server) "nnmaildir")
":[0-9]+"
"^[0-9]+\\(\\.[a-z0-9]+\\)?$"))
score artno dirnam filenam)
......@@ -1450,7 +1452,7 @@ Tested with Namazu 2.0.6 on a GNU/Linux system."
(when group
(error "The Namazu backend cannot search specific groups"))
(save-excursion
(let ((article-pattern (if (string= server "nnmaildir:")
(let ((article-pattern (if (string= (gnus-group-server server) "nnmaildir")
":[0-9]+"
"^[0-9]+$"))
artlist
......
......@@ -77,7 +77,8 @@ this variable to the list of fields to be ignored.")
(defvar nnrss-group-alist '()
"List of RSS addresses.")
(defvar nnrss-use-local nil)
(defvar nnrss-use-local nil
"If non-nil nnrss will read the feeds from local files in nnrss-directory.")
(defvar nnrss-description-field 'X-Gnus-Description
"Field name used for DESCRIPTION.
......
......@@ -267,6 +267,11 @@ NOTE: This variable is never seen to work in Emacs 20 and XEmacs 21.")
"*Hook run just before posting an article. It is supposed to be used
to insert Cancel-Lock headers.")
(defvoo nntp-server-list-active-group 'try
"If nil, then always use GROUP instead of LIST ACTIVE.
This is usually slower, but on misconfigured servers that don't
update their active files often, this can help.")
;;; Internal variables.
(defvar nntp-record-commands nil
......@@ -296,7 +301,6 @@ to insert Cancel-Lock headers.")
(defvoo nntp-inhibit-output nil)
(defvoo nntp-server-xover 'try)
(defvoo nntp-server-list-active-group 'try)
(defvar nntp-async-timer nil)
(defvar nntp-async-process-list nil)
......
This diff is collapsed.
......@@ -131,19 +131,23 @@ Entries without port tokens default to DEFAULTPORT."
;; No machine name matches, so we look for default entries.
(while rest
(when (assoc "default" (car rest))
(push (car rest) result))
(let ((elem (car rest)))
(setq elem (delete (assoc "default" elem) elem))
(push elem result)))
(pop rest)))
(when result
(setq result (nreverse result))
(while (and result
(not (netrc-port-equal
(or port defaultport "nntp")
;; when port is not given in the netrc file,
;; it should mean "any port"
(or (netrc-get (car result) "port")
defaultport port))))
(pop result))
(car result))))
(if (not port)