[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] /srv/bzr/emacs/trunk r101717: Merge changes made in Gnus t
From: |
Katsumi Yamaoka |
Subject: |
[Emacs-diffs] /srv/bzr/emacs/trunk r101717: Merge changes made in Gnus trunk. |
Date: |
Fri, 01 Oct 2010 23:08:25 +0000 |
User-agent: |
Bazaar (2.0.3) |
------------------------------------------------------------
revno: 101717
author: Gnus developers
committer: Katsumi Yamaoka <address@hidden>
branch nick: trunk
timestamp: Fri 2010-10-01 23:08:25 +0000
message:
Merge changes made in Gnus trunk.
gnus-registry.el: Fix and extend header docs. Move the nnregistry feature
check.
nnimap.el (nnimap-update-info): Ignore groups that have no UIDNEXT values.
nnimap.el: Implement nnimap-request-newgroups.
gnus-group.el (gnus-group-completing-read): Return the symbol name, not the
value from the collection.
nnimap.el: Don't error out on empty non-UIDNEXT groups.
nnmail.el (nnmail-article-group): Allow using the fancy split method directly.
gnus.el (gnus-continuum-version): Make inactive, since it doesn't really
message anything to the user.
gnus-msg.el (gnus-summary-resend-message): When resending, don't externalize
attachments.
gnus.el (gnus-large-newsgroup): Mention gnus-large-ephemeral-newsgroup.
gnus-sum.el (gnus-summary-scroll-up): Add more documentation.
message.el (message-shorten-references): Comment on the number "21".
mm-encode.el (mm-content-transfer-encoding-defaults): Try to make the
documentation clearer.
ChangeLog: jidanni -> Dan Jacobson.
nnmbox.el (nnmbox-read-mbox): Mark buffer for deletion on Gnus exit.
gnus-sum.el, gnus-win.el: Change the `h' command to only show the article
buffer.
gnus-art.el (gnus-summary-save-in-file, gnus-summary-save-in-rmail): Use
with-current-buffer instead of gnus-eval-in-buffer-window to avoid popping up
frames.
gnus-sum.el (gnus-summary-clear-local-variables): Removed.
gnus-async.el (gnus-async-delete-prefetched-entry): Remove from hash table,
too.
gnus-async.el: Try to keep the async hash table size reasonable.
nndoc.el (nndoc-type-alist): Do babyl before mime-parts.
gnus-start.el (gnus-check-bogus-newsgroups): Say how many groups we're being
queried about.
modified:
doc/misc/gnus.texi
lisp/gnus/ChangeLog
lisp/gnus/gnus-art.el
lisp/gnus/gnus-async.el
lisp/gnus/gnus-group.el
lisp/gnus/gnus-msg.el
lisp/gnus/gnus-registry.el
lisp/gnus/gnus-start.el
lisp/gnus/gnus-sum.el
lisp/gnus/gnus-win.el
lisp/gnus/gnus.el
lisp/gnus/mailcap.el
lisp/gnus/message.el
lisp/gnus/mm-encode.el
lisp/gnus/nndoc.el
lisp/gnus/nnimap.el
lisp/gnus/nnmail.el
lisp/gnus/nnmbox.el
=== modified file 'doc/misc/gnus.texi'
--- a/doc/misc/gnus.texi 2010-10-01 00:25:50 +0000
+++ b/doc/misc/gnus.texi 2010-10-01 23:08:25 +0000
@@ -9477,6 +9477,14 @@
corresponding regular expression in @code{gnus-article-banner-alist} is
used.
+For instance:
+
address@hidden
+(setq gnus-article-banner-alist
+ ((googleGroups .
+ "^\n*--~--~---------\\(.+\n\\)+")))
address@hidden lisp
+
Regardless of a group, you can hide things like advertisements only when
the sender of an article has a certain mail address specified in
@code{gnus-article-address-banner-alist}.
@@ -15102,6 +15110,9 @@
message. The function should return a list of group names that it
thinks should carry this mail message.
+This variable can also be a fancy split method. See @xref{Fancy Mail
+Splitting} for the syntax.
+
Note that the mail back ends are free to maul the poor, innocent,
incoming headers all they want to. They all add @code{Lines} headers;
some add @code{X-Gnus-Group} headers; most rename the Unix mbox
=== modified file 'lisp/gnus/ChangeLog'
--- a/lisp/gnus/ChangeLog 2010-10-01 13:33:03 +0000
+++ b/lisp/gnus/ChangeLog 2010-10-01 23:08:25 +0000
@@ -1,5 +1,83 @@
2010-10-01 Lars Magne Ingebrigtsen <address@hidden>
+ * gnus-start.el (gnus-check-bogus-newsgroups): Say how many groups
+ we're being queried about. Suggested by Dan Jacobson.
+
+ * nndoc.el (nndoc-type-alist): Do babyl before mime-parts. Suggested
+ by Jason Eisner.
+
+ * gnus-async.el (gnus-async-delete-prefetched-entry): Remove from hash
+ table, too. Suggested by Stefan Wiens.
+ (gnus-async-prefetched-article-entry): Use intern-soft to avoid growing
+ the table unnecessary. Suggested by Stefan Wiens.
+
+ * gnus-sum.el (gnus-summary-clear-local-variables): This is probably no
+ longer needed, and probably doesn't work either, as pointed out by
+ Stefan Wiens.
+ (gnus-summary-exit): Remove call to the clearing function.
+ (gnus-summary-exit-no-update): Ditto.
+
+ * gnus-art.el (gnus-summary-save-in-file): Use with-current-buffer
+ instead of gnus-eval-in-buffer-window to avoid popping up frames.
+ Reported by Stefan Monnier.
+ (gnus-summary-save-in-rmail): Ditto.
+
+ * gnus-sum.el (gnus-summary-select-article-buffer): Show only the
+ article buffer, instead of both the article buffer and the summary
+ buffer. Sort of suggested by Dan Jacobson.
+
+ * gnus-win.el (gnus-buffer-configuration): Add an only-article spec.
+
+ * nnmbox.el (nnmbox-read-mbox): Mark buffer for deletion on Gnus exit.
+ Suggested by Dan Jacobson.
+
+ * mm-encode.el (mm-content-transfer-encoding-defaults): Try to make the
+ documentation clearer.
+
+ * message.el (message-shorten-references): Comment on the number "21".
+ Suggested by Stefan Monnier.
+
+ * gnus-sum.el (gnus-summary-scroll-up): Add more documentation.
+ Suggested by Dan Jacobson.
+
+ * gnus.el (gnus-large-newsgroup): Mention
+ gnus-large-ephemeral-newsgroup. Suggested by Dan Jacobson.
+
+ * gnus-msg.el (gnus-summary-resend-message): When resending, don't
+ externalize attachments. Bug reported by Steve Wen.
+
+ * gnus.el (gnus-continuum-version): Make inactive, since it doesn't
+ really message anything to the user.
+
+ * nnmail.el (nnmail-article-group): Allow using the fancy split method
+ directly.
+
+ * nnimap.el (nnimap-request-group): Low higher than high to signal no
+ messages in empty groups.
+
+2010-10-01 Ted Zlatanov <address@hidden>
+
+ * nnimap.el (nnimap-request-group): Don't bug out when there's an empty
+ non-UIDNEXT group.
+
+2010-10-01 Lars Magne Ingebrigtsen <address@hidden>
+
+ * gnus-group.el (gnus-group-completing-read): Return the symbol name,
+ not the value from the collection.
+
+ * nnimap.el (nnimap-update-info): Ignore groups that have no UIDNEXT
+ values. This sometimes happens on some groups that have no info.
+ (nnimap-request-newgroups): New function.
+
+2010-10-01 Teodor Zlatanov <address@hidden>
+
+ * gnus-registry.el (gnus-registry-install-nnregistry): Move the feature
+ check into `gnus-registry-initialize'.
+ (gnus-registry-initialize): Ditto.
+ Fix and extend header docs.
+
+2010-10-01 Lars Magne Ingebrigtsen <address@hidden>
+
* gnus-html.el (gnus-html-prefetch-images): Adjust regexp to avoid
regexp backtrace overflows.
=== modified file 'lisp/gnus/gnus-art.el'
--- a/lisp/gnus/gnus-art.el 2010-10-01 00:25:50 +0000
+++ b/lisp/gnus/gnus-art.el 2010-10-01 23:08:25 +0000
@@ -3958,7 +3958,7 @@
"Save %s in rmail file" filename
gnus-rmail-save-name gnus-newsgroup-name
gnus-current-headers 'gnus-newsgroup-last-rmail))
- (gnus-eval-in-buffer-window gnus-save-article-buffer
+ (with-current-buffer gnus-save-article-buffer
(save-excursion
(save-restriction
(widen)
@@ -3976,7 +3976,7 @@
"Save %s in Unix mail file" filename
gnus-mail-save-name gnus-newsgroup-name
gnus-current-headers 'gnus-newsgroup-last-mail))
- (gnus-eval-in-buffer-window gnus-save-article-buffer
+ (with-current-buffer gnus-save-article-buffer
(save-excursion
(save-restriction
(widen)
@@ -3997,7 +3997,7 @@
"Save %s in file" filename
gnus-file-save-name gnus-newsgroup-name
gnus-current-headers 'gnus-newsgroup-last-file))
- (gnus-eval-in-buffer-window gnus-save-article-buffer
+ (with-current-buffer gnus-save-article-buffer
(save-excursion
(save-restriction
(widen)
@@ -4029,7 +4029,7 @@
"Save %s body in file" filename
gnus-file-save-name gnus-newsgroup-name
gnus-current-headers 'gnus-newsgroup-last-file))
- (gnus-eval-in-buffer-window gnus-save-article-buffer
+ (with-current-buffer gnus-save-article-buffer
(save-excursion
(save-restriction
(widen)
@@ -4108,7 +4108,7 @@
(if default
(setq command default)
(error "A command is required")))
- (gnus-eval-in-buffer-window save-buffer
+ (with-current-buffer save-buffer
(save-restriction
(widen)
(shell-command-on-region (point-min) (point-max) command nil)))
=== modified file 'lisp/gnus/gnus-async.el'
--- a/lisp/gnus/gnus-async.el 2010-09-18 10:02:19 +0000
+++ b/lisp/gnus/gnus-async.el 2010-10-01 23:08:25 +0000
@@ -316,7 +316,8 @@
(set-marker (caddr entry) nil))
(gnus-async-with-semaphore
(setq gnus-async-article-alist
- (delq entry gnus-async-article-alist))))
+ (delq entry gnus-async-article-alist))
+ (unintern (car entry) gnus-async-hashtb)))
(defun gnus-async-prefetch-remove-group (group)
"Remove all articles belonging to GROUP from the prefetch buffer."
@@ -332,8 +333,8 @@
"Return the entry for ARTICLE in GROUP if it has been prefetched."
(let ((entry (save-excursion
(gnus-async-set-buffer)
- (assq (intern (format "%s-%d" group article)
- gnus-async-hashtb)
+ (assq (intern-soft (format "%s-%d" group article)
+ gnus-async-hashtb)
gnus-async-article-alist))))
;; Perhaps something has emptied the buffer?
(if (and entry
=== modified file 'lisp/gnus/gnus-group.el'
--- a/lisp/gnus/gnus-group.el 2010-09-30 08:39:23 +0000
+++ b/lisp/gnus/gnus-group.el 2010-10-01 23:08:25 +0000
@@ -2170,21 +2170,21 @@
The arguments are the same as `completing-read' except that COLLECTION
and HIST default to `gnus-active-hashtb' and `gnus-group-history'
respectively if they are omitted."
- (let* ((choices (mapcar (lambda (symbol)
+ (let* ((collection (or collection (or gnus-active-hashtb [0])))
+ (choices (mapcar (lambda (symbol)
(let ((group (symbol-name symbol)))
(if (string-match "[^\000-\177]" group)
(gnus-group-decoded-name group)
group)))
- (remove-if-not
- 'symbolp
- (or collection (or gnus-active-hashtb [0])))))
+ (remove-if-not 'symbolp collection)))
(group
(gnus-completing-read (or prompt "Group") choices
require-match initial-input
(or hist 'gnus-group-history)
def)))
- (or (symbol-value (intern-soft group collection))
- (mm-encode-coding-string group (gnus-group-name-charset nil group)))))
+ (if (symbol-value (intern-soft group collection))
+ group
+ (mm-encode-coding-string group (gnus-group-name-charset nil group)))))
;;;###autoload
(defun gnus-fetch-group (group &optional articles)
=== modified file 'lisp/gnus/gnus-msg.el'
--- a/lisp/gnus/gnus-msg.el 2010-09-30 08:39:23 +0000
+++ b/lisp/gnus/gnus-msg.el 2010-10-01 23:08:25 +0000
@@ -1265,7 +1265,8 @@
(dolist (article (gnus-summary-work-articles n))
(gnus-summary-select-article nil nil nil article)
(with-current-buffer gnus-original-article-buffer
- (message-resend address))
+ (let ((gnus-gcc-externalize-attachments nil))
+ (message-resend address)))
(gnus-summary-mark-article-as-forwarded article)))
;; From: Matthieu Moy <address@hidden>
=== modified file 'lisp/gnus/gnus-registry.el'
--- a/lisp/gnus/gnus-registry.el 2010-10-01 00:25:50 +0000
+++ b/lisp/gnus/gnus-registry.el 2010-10-01 23:08:25 +0000
@@ -36,10 +36,12 @@
;; Put this in your startup file (~/.gnus.el for instance)
+;; (require 'nnregistry) ;; optional, or see below (automatically calls
`gnus-registry-install-nnregistry' when `gnus-registry-initialize' is called)
;; (setq gnus-registry-max-entries 2500
;; gnus-registry-use-long-group-names t)
;; (gnus-registry-initialize)
+;; (gnus-registry-install-nnregistry) ;; optional, or see above (loading
nnregistry makes it unnecessary)
;; Then use this in your fancy-split:
@@ -1129,7 +1131,8 @@
(setq gnus-registry-install t) ; in case it was 'ask or nil
(gnus-registry-install-hooks)
(gnus-registry-install-shortcuts)
- (gnus-registry-install-nnregistry)
+ (when (featurep 'nnregistry)
+ (gnus-registry-install-nnregistry))
(gnus-registry-read))
;;;###autoload
@@ -1150,14 +1153,13 @@
(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))))))
+ (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."
=== modified file 'lisp/gnus/gnus-start.el'
--- a/lisp/gnus/gnus-start.el 2010-09-26 04:03:19 +0000
+++ b/lisp/gnus/gnus-start.el 2010-10-01 23:08:25 +0000
@@ -1465,7 +1465,7 @@
(push group bogus)))
(if confirm
(map-y-or-n-p
- "Remove bogus group %s? "
+ (format "Remove bogus group %%s (of %d groups)? " (length bogus))
(lambda (group)
;; Remove all bogus subscribed groups by first killing them, and
;; then removing them from the list of killed groups.
=== modified file 'lisp/gnus/gnus-sum.el'
--- a/lisp/gnus/gnus-sum.el 2010-10-01 00:25:50 +0000
+++ b/lisp/gnus/gnus-sum.el 2010-10-01 23:08:25 +0000
@@ -3109,16 +3109,6 @@
;; Simple nil-valued local variable.
(set (make-local-variable local) nil)))))
-(defun gnus-summary-clear-local-variables ()
- (let ((locals gnus-summary-local-variables))
- (while locals
- (if (consp (car locals))
- (and (symbolp (caar locals))
- (set (caar locals) nil))
- (and (symbolp (car locals))
- (set (car locals) nil)))
- (setq locals (cdr locals)))))
-
;; Summary data functions.
(defmacro gnus-data-number (data)
@@ -6939,12 +6929,12 @@
;; Various summary commands
(defun gnus-summary-select-article-buffer ()
- "Reconfigure windows to show article buffer."
+ "Reconfigure windows to show the article buffer."
(interactive)
(if (not (gnus-buffer-live-p gnus-article-buffer))
(error "There is no article buffer for this summary buffer")
- (gnus-configure-windows 'article)
- (select-window (get-buffer-window gnus-article-buffer))))
+ (select-window (get-buffer-window gnus-article-buffer))
+ (gnus-configure-windows 'only-article t)))
(defun gnus-summary-universal-argument (arg)
"Perform any operation on all articles that are process/prefixed."
@@ -7129,13 +7119,6 @@
(progn
(gnus-deaden-summary)
(setq mode nil))
- ;; We set all buffer-local variables to nil. It is unclear why
- ;; this is needed, but if we don't, buffer-local variables are
- ;; not garbage-collected, it seems. This would the lead to en
- ;; ever-growing Emacs.
- (gnus-summary-clear-local-variables)
- (let ((gnus-summary-local-variables gnus-newsgroup-variables))
- (gnus-summary-clear-local-variables))
(when (get-buffer gnus-article-buffer)
(bury-buffer gnus-article-buffer))
;; Return to group mode buffer.
@@ -7194,9 +7177,6 @@
(if (not gnus-kill-summary-on-exit)
(gnus-deaden-summary)
(gnus-close-group group)
- (gnus-summary-clear-local-variables)
- (let ((gnus-summary-local-variables gnus-newsgroup-variables))
- (gnus-summary-clear-local-variables))
(gnus-kill-buffer gnus-summary-buffer))
(unless gnus-single-article-buffer
(setq gnus-article-current nil))
@@ -7844,7 +7824,8 @@
(defun gnus-summary-scroll-up (lines)
"Scroll up (or down) one line current article.
-Argument LINES specifies lines to be scrolled up (or down if negative)."
+Argument LINES specifies lines to be scrolled up (or down if negative).
+If no article is selected, then the current article will be selected first."
(interactive "p")
(gnus-configure-windows 'article)
(gnus-summary-show-thread)
@@ -7860,7 +7841,8 @@
(defun gnus-summary-scroll-down (lines)
"Scroll down (or up) one line current article.
-Argument LINES specifies lines to be scrolled down (or up if negative)."
+Argument LINES specifies lines to be scrolled down (or up if negative).
+If no article is selected, then the current article will be selected first."
(interactive "p")
(gnus-summary-scroll-up (- lines)))
=== modified file 'lisp/gnus/gnus-win.el'
--- a/lisp/gnus/gnus-win.el 2010-09-02 00:55:51 +0000
+++ b/lisp/gnus/gnus-win.el 2010-10-01 23:08:25 +0000
@@ -107,6 +107,9 @@
(vertical 1.0
(summary 0.25)
(faq 1.0 point)))
+ (only-article
+ (vertical 1.0
+ (article 1.0 point)))
(edit-article
(vertical 1.0
(article 1.0 point)))
=== modified file 'lisp/gnus/gnus.el'
--- a/lisp/gnus/gnus.el 2010-10-01 00:25:50 +0000
+++ b/lisp/gnus/gnus.el 2010-10-01 23:08:25 +0000
@@ -1491,7 +1491,9 @@
"*The number of articles which indicates a large newsgroup.
If the number of articles in a newsgroup is greater than this value,
confirmation is required for selecting the newsgroup.
-If it is nil, no confirmation is required."
+If it is nil, no confirmation is required.
+
+Also see `gnus-large-ephemeral-newsgroup'."
:group 'gnus-group-select
:type '(choice (const :tag "No limit" nil)
integer))
@@ -3206,7 +3208,6 @@
(defun gnus-continuum-version (&optional version)
"Return VERSION as a floating point number."
- (interactive)
(unless version
(setq version gnus-version))
(when (or (string-match "^\\([^ ]+\\)? ?Gnus v?\\([0-9.]+\\)$" version)
=== modified file 'lisp/gnus/mailcap.el'
--- a/lisp/gnus/mailcap.el 2010-09-22 06:01:22 +0000
+++ b/lisp/gnus/mailcap.el 2010-10-01 23:08:25 +0000
@@ -812,7 +812,10 @@
;;;
(defvar mailcap-mime-extensions
- '(("" . "text/plain")
+ '(("" . "text/plain")
+ (".1" . "text/plain") ;; Manual pages
+ (".3" . "text/plain")
+ (".8" . "text/plain")
(".abs" . "audio/x-mpeg")
(".aif" . "audio/aiff")
(".aifc" . "audio/aiff")
@@ -828,6 +831,7 @@
(".css" . "text/css")
(".dvi" . "application/x-dvi")
(".diff" . "text/x-patch")
+ (".dpatch". "test/x-patch")
(".el" . "application/emacs-lisp")
(".eps" . "application/postscript")
(".etx" . "text/x-setext")
@@ -869,6 +873,7 @@
(".pict" . "image/pict")
(".png" . "image/png")
(".pnm" . "image/x-portable-anymap")
+ (".pod" . "text/plain")
(".ppm" . "image/portable-pixmap")
(".ps" . "application/postscript")
(".qt" . "video/quicktime")
=== modified file 'lisp/gnus/message.el'
--- a/lisp/gnus/message.el 2010-10-01 00:25:50 +0000
+++ b/lisp/gnus/message.el 2010-10-01 23:08:25 +0000
@@ -6049,6 +6049,7 @@
When sending via news, also check that the REFERENCES are less
than 988 characters long, and if they are not, trim them until
they are."
+ ;; 21 is the number suggested by USEAGE.
(let ((maxcount 21)
(count 0)
(cut 2)
=== modified file 'lisp/gnus/mm-encode.el'
--- a/lisp/gnus/mm-encode.el 2010-09-02 00:55:51 +0000
+++ b/lisp/gnus/mm-encode.el 2010-10-01 23:08:25 +0000
@@ -42,15 +42,8 @@
If the encoding is `qp-or-base64', then either quoted-printable
or base64 will be used, depending on what is more efficient.
-`qp-or-base64' has another effect. It will fold long lines so that
-MIME parts may not be broken by MTA. So do `quoted-printable' and
-`base64'.
-
-Note: It affects body encoding only when a part is a raw forwarded
-message (which will be made by `gnus-summary-mail-forward' with the
-arg 2 for example) or is neither the text/* type nor the message/*
-type. Even though in those cases, you can use the `encoding' MML tag
-to specify encoding of non-ASCII MIME parts."
+This list is only consulted when encoding MIME parts in the
+bodies -- not for the regular non-MIME-ish messages."
:type '(repeat (list (regexp :tag "MIME type")
(choice :tag "encoding"
(const 7bit)
=== modified file 'lisp/gnus/nndoc.el'
--- a/lisp/gnus/nndoc.el 2010-09-30 08:39:23 +0000
+++ b/lisp/gnus/nndoc.el 2010-10-01 23:08:25 +0000
@@ -74,14 +74,14 @@
(mbox
(article-begin-function . nndoc-mbox-article-begin)
(body-end-function . nndoc-mbox-body-end))
- (mime-parts
- (generate-head-function . nndoc-generate-mime-parts-head)
- (article-transform-function . nndoc-transform-mime-parts))
(babyl
(article-begin . "\^_\^L *\n")
(body-end . "\^_")
(body-begin-function . nndoc-babyl-body-begin)
(head-begin-function . nndoc-babyl-head-begin))
+ (mime-parts
+ (generate-head-function . nndoc-generate-mime-parts-head)
+ (article-transform-function . nndoc-transform-mime-parts))
(exim-bounce
(article-begin . "^------ This is a copy of the message, including all
the headers. ------\n\n")
(body-end-function . nndoc-exim-bounce-body-end-function))
=== modified file 'lisp/gnus/nnimap.el'
--- a/lisp/gnus/nnimap.el 2010-10-01 12:56:44 +0000
+++ b/lisp/gnus/nnimap.el 2010-10-01 23:08:25 +0000
@@ -623,10 +623,11 @@
(nnimap-update-infos marks (list info)))
(goto-char (point-max))
(let ((uidnext (nth 5 (car marks))))
- (setq high (if uidnext
- (1- uidnext)
- (nth 3 (car marks)))
- low (or (nth 4 (car marks)) uidnext)))))
+ (setq high (or (if uidnext
+ (1- uidnext)
+ (nth 3 (car marks)))
+ 0)
+ low (or (nth 4 (car marks)) uidnext 1)))))
(erase-buffer)
(insert
(format
@@ -912,6 +913,16 @@
(or highest exists)))))))))
t))))
+(deffoo nnimap-request-newgroups (date &optional server)
+ (nnimap-possibly-change-group nil server)
+ (with-current-buffer nntp-server-buffer
+ (erase-buffer)
+ (dolist (group (with-current-buffer (nnimap-buffer)
+ (nnimap-get-groups)))
+ (unless (assoc group nnimap-current-infos)
+ ;; Insert dummy numbers here -- they don't matter.
+ (insert (format "%S 0 1 y\n" group))))))
+
(deffoo nnimap-retrieve-group-data-early (server infos)
(when (nnimap-possibly-change-group nil server)
(with-current-buffer (nnimap-buffer)
@@ -990,7 +1001,9 @@
(nnimap-update-info info (cdr (assoc group flags))))))
(defun nnimap-update-info (info marks)
- (when marks
+ (when (and marks
+ ;; Ignore groups with no UIDNEXT values.
+ (nth 4 marks))
(destructuring-bind (existing flags high low uidnext start-article
permanent-flags) marks
(let ((group (gnus-info-group info))
=== modified file 'lisp/gnus/nnmail.el'
--- a/lisp/gnus/nnmail.el 2010-09-29 13:38:27 +0000
+++ b/lisp/gnus/nnmail.el 2010-10-01 23:08:25 +0000
@@ -104,7 +104,9 @@
The last element should always have \"\" as the regexp.
-This variable can also have a function as its value."
+This variable can also have a function as its value, and it can
+also have a fancy split method as its value. See
+`nnmail-split-fancy' for an explanation of that syntax."
:group 'nnmail-split
:type '(choice (repeat :tag "Alist" (group (string :tag "Name")
(choice regexp function)))
@@ -1145,21 +1147,33 @@
(run-hooks 'nnmail-split-hook)
(when (setq nnmail-split-tracing trace)
(setq nnmail-split-trace nil))
- (if (and (symbolp nnmail-split-methods)
- (fboundp nnmail-split-methods))
- (let ((split
- (condition-case error-info
- ;; `nnmail-split-methods' is a function, so we
- ;; just call this function here and use the
- ;; result.
- (or (funcall nnmail-split-methods)
- (and (not nnmail-inhibit-default-split-group)
- '("bogus")))
- (error
- (nnheader-message
- 5 "Error in `nnmail-split-methods'; using `bogus' mail
group: %S" error-info)
- (sit-for 1)
- '("bogus")))))
+ (if (or (and (symbolp nnmail-split-methods)
+ (fboundp nnmail-split-methods))
+ (and (listp nnmail-split-methods)
+ ;; Not a regular split method, so it has to be a
+ ;; fancy one.
+ (not (let ((top-element (car-safe nnmail-split-methods)))
+ (and (= 2 (length top-element))
+ (stringp (nth 0 top-element))
+ (stringp (nth 1 top-element)))))))
+ (let* ((method-function
+ (if (and (symbolp nnmail-split-methods)
+ (fboundp nnmail-split-methods))
+ nnmail-split-methods
+ 'nnmail-split-fancy))
+ (split
+ (condition-case error-info
+ ;; `nnmail-split-methods' is a function, so we
+ ;; just call this function here and use the
+ ;; result.
+ (or (funcall method-function)
+ (and (not nnmail-inhibit-default-split-group)
+ '("bogus")))
+ (error
+ (nnheader-message
+ 5 "Error in `nnmail-split-methods'; using `bogus' mail
group: %S" error-info)
+ (sit-for 1)
+ '("bogus")))))
(setq split (mm-delete-duplicates split))
;; The article may be "cross-posted" to `junk'. What
;; to do? Just remove the `junk' spec. Don't really
=== modified file 'lisp/gnus/nnmbox.el'
--- a/lisp/gnus/nnmbox.el 2010-09-18 23:36:29 +0000
+++ b/lisp/gnus/nnmbox.el 2010-10-01 23:08:25 +0000
@@ -640,6 +640,7 @@
nnmbox-mbox-file t t))))
(mm-enable-multibyte)
(buffer-disable-undo)
+ (gnus-add-buffer)
;; Go through the group alist and compare against the mbox file.
(while alist
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] /srv/bzr/emacs/trunk r101717: Merge changes made in Gnus trunk.,
Katsumi Yamaoka <=