diff options
author | Gnus developers <ding@gnus.org> | 2010-09-27 23:07:47 +0000 |
---|---|---|
committer | Katsumi Yamaoka <yamaoka@jpl.org> | 2010-09-27 23:07:47 +0000 |
commit | 9f2d52e714dfa161c9c9393075a3bcdf056a4ac8 (patch) | |
tree | 8649a201af266f32ee5d582c328cb20aef1b33cc /lisp/gnus/nnmairix.el | |
parent | 8ea189f7bfe01e5313e0b95078171718ea5e0d4f (diff) | |
download | emacs-9f2d52e714dfa161c9c9393075a3bcdf056a4ac8.tar.gz |
Merge changes made in Gnus trunk.
sieve-manage.el (sieve-manage-default-stream): Make default stream customizable.
nnimap.el (nnimap-request-accept-article): Send a "." at the end, which may or may not help.
nnimap.el (nnimap-open-connection): Have the `network' nnimap connection use STARTTLS opportunistically.
gnus-sum.el (gnus-summary-insert-new-articles): Copy the old-high watermark so that nothing alters it while scanning for new messages.
nnimap.el (nnimap-request-accept-article): Remove the "." at the end, since some servers don't like it.
nnimap.el (nnimap-open-connection): Forget credentials if the server says the password was wrong.
nnimap.el (nnimap-parse-line): Protect against invalid data.
gnus-art.el, gnus-sum.el, nnimap.el: Allow setting the partial fetch per server instead of globally.
message.el (message-cite-prefix-regexp): Revert last edit.
nnmairix.el: Make it work with latest changes in nnimap.
gnus-sum.el (gnus-summary-move-article): Don't alter gnus-newsgroup-active.
gnus-sum.el (gnus-summary-exit): Kill the article buffer later, so that you don't get flashes of other buffers.
nnimap.el: Fix up partial nnimap fetching.
gnus-sum.el: Rework the `/ N' based on the new gnus-newsgroup-highest variable.
Diffstat (limited to 'lisp/gnus/nnmairix.el')
-rw-r--r-- | lisp/gnus/nnmairix.el | 87 |
1 files changed, 49 insertions, 38 deletions
diff --git a/lisp/gnus/nnmairix.el b/lisp/gnus/nnmairix.el index f38ffd37e52..bca549a6832 100644 --- a/lisp/gnus/nnmairix.el +++ b/lisp/gnus/nnmairix.el @@ -562,9 +562,8 @@ Other back ends might or might not work.") "retrieve-headers" articles folder nnmairix-backend-server fetch-old)) (nnmairix-call-backend "retrieve-headers" articles folder nnmairix-backend-server fetch-old))) - (when (eq rval 'nov) - (nnmairix-replace-group-and-numbers articles folder group numcorr) - rval))) + (nnmairix-replace-group-and-numbers articles folder group numcorr rval) + rval)) (deffoo nnmairix-request-article (article &optional group server to-buffer) (when server (nnmairix-open-server server)) @@ -1413,43 +1412,55 @@ nnmairix with nnml backends." (setq cur lastplusone)) (setq lastplusone (1+ cur))))) -(defun nnmairix-replace-group-and-numbers (articles backendgroup mairixgroup numc) +(defun nnmairix-replace-group-and-numbers (articles backendgroup mairixgroup numc type) "Replace folder names in Xref header and correct article numbers. Do this for all ARTICLES on BACKENDGROUP. Replace using -MAIRIXGROUP. NUMC contains values for article number correction." - (let ((buf (get-buffer-create " *nnmairix buffer*")) - (corr (not (zerop numc))) - (name (buffer-name nntp-server-buffer)) - header cur xref) - (with-current-buffer buf - (erase-buffer) - (set-buffer nntp-server-buffer) - (goto-char (point-min)) - (nnheader-message 7 "nnmairix: Rewriting headers...") - (mapc - (lambda (article) - (when (or (looking-at (number-to-string article)) - (nnheader-find-nov-line article)) - (setq cur (nnheader-parse-nov)) - (when corr - (setq article (+ (mail-header-number cur) numc)) - (mail-header-set-number cur article)) - (setq xref (mail-header-xref cur)) - (when (and (stringp xref) - (string-match (format "[ \t]%s:[0-9]+" backendgroup) xref)) - (setq xref (replace-match (format " %s:%d" mairixgroup article) t nil xref)) - (mail-header-set-xref cur xref)) - (set-buffer buf) - (nnheader-insert-nov cur) - (set-buffer nntp-server-buffer) - (when (not (eobp)) - (forward-line 1)))) - articles) - (nnheader-message 7 "nnmairix: Rewriting headers... done") - (kill-buffer nntp-server-buffer) - (set-buffer buf) - (rename-buffer name) - (setq nntp-server-buffer buf)))) +MAIRIXGROUP. NUMC contains values for article number correction. +TYPE is either 'nov or 'headers." + (nnheader-message 7 "nnmairix: Rewriting headers...") + (cond + ((eq type 'nov) + (let ((buf (get-buffer-create " *nnmairix buffer*")) + (corr (not (zerop numc))) + (name (buffer-name nntp-server-buffer)) + header cur xref) + (with-current-buffer buf + (erase-buffer) + (set-buffer nntp-server-buffer) + (goto-char (point-min)) + (mapc + (lambda (article) + (when (or (looking-at (number-to-string article)) + (nnheader-find-nov-line article)) + (setq cur (nnheader-parse-nov)) + (when corr + (setq article (+ (mail-header-number cur) numc)) + (mail-header-set-number cur article)) + (setq xref (mail-header-xref cur)) + (when (and (stringp xref) + (string-match (format "[ \t]%s:[0-9]+" backendgroup) xref)) + (setq xref (replace-match (format " %s:%d" mairixgroup article) t nil xref)) + (mail-header-set-xref cur xref)) + (set-buffer buf) + (nnheader-insert-nov cur) + (set-buffer nntp-server-buffer) + (when (not (eobp)) + (forward-line 1)))) + articles) + (kill-buffer nntp-server-buffer) + (set-buffer buf) + (rename-buffer name) + (setq nntp-server-buffer buf)))) + ((and (eq type 'headers) + (not (zerop numc))) + (with-current-buffer nntp-server-buffer + (save-excursion + (goto-char (point-min)) + (while (re-search-forward "^[23][0-9]+ \\([0-9]+\\)" nil t) + (replace-match (number-to-string + (+ (string-to-number (match-string 1)) numc)) + t t nil 1)))))) + (nnheader-message 7 "nnmairix: Rewriting headers... done")) (defun nnmairix-backend-to-server (server) "Return nnmairix server most probably responsible for back end SERVER. |