From: yamaoka Date: Thu, 3 Mar 2005 22:03:28 +0000 (+0000) Subject: Synch to No Gnus 200503031800. X-Git-Tag: t-gnus-6_17_4-quimby-~537 X-Git-Url: http://git.chise.org/gitweb/?a=commitdiff_plain;h=b50da765b3098369bffbe146bb4c5c1cf1f7e9c6;p=elisp%2Fgnus.git- Synch to No Gnus 200503031800. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 7d68c7b..9fb61bf 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,37 @@ +2005-03-03 Teodor Zlatanov + + * gnus-sum.el (gnus-summary-move-article): pass move-is-internal + parameter to invoked gnus-request-move-article; remove the + redundant gnus-sum-hint-move-is-internal variable; apply the marks + all at once instead of once per article + (gnus-summary-remove-process-mark): accept a list of articles as + well as a single article for processing + + * gnus-int.el (gnus-request-move-article): add move-is-internal parameter + + * nnml.el (nnml-request-move-article): add move-is-internal parameter + + * nnmh.el (nnmh-request-move-article): add move-is-internal parameter + + * nnmbox.el (nnmbox-request-move-article): add move-is-internal parameter + + * nnmaildir.el (nnmaildir-request-move-article): add move-is-internal parameter + + * nnimap.el (nnimap-request-move-article): add move-is-internal + parameter and remove the gnus-sum-hint-move-is-internal variable + + * nnfolder.el (nnfolder-request-move-article): add move-is-internal parameter + + * nndraft.el (nndraft-request-move-article): add move-is-internal parameter + + * nndiary.el (nndiary-request-move-article): add move-is-internal parameter + + * nndb.el (nndb-request-move-article): add move-is-internal parameter + + * nnbabyl.el (nnbabyl-request-move-article): add move-is-internal parameter + + * nnagent.el (nnagent-request-move-article): add move-is-internal parameter + 2005-03-01 Stefan Monnier * gnus-sum.el (gnus-summary-exit): Undo last change and fix it in diff --git a/lisp/gnus-int.el b/lisp/gnus-int.el index 120d556..f6cc6c8 100644 --- a/lisp/gnus-int.el +++ b/lisp/gnus-int.el @@ -563,12 +563,12 @@ If GROUP is nil, all groups on GNUS-COMMAND-METHOD are scanned." not-deleted)) (defun gnus-request-move-article (article group server accept-function - &optional last) + &optional last move-is-internal) (let* ((gnus-command-method (gnus-find-method-for-group group)) (result (funcall (gnus-get-function gnus-command-method 'request-move-article) article (gnus-group-real-name group) - (nth 1 gnus-command-method) accept-function last))) + (nth 1 gnus-command-method) accept-function last move-is-internal))) (when (and result gnus-agent (gnus-agent-method-p gnus-command-method)) (gnus-agent-unfetch-articles group (list article))) diff --git a/lisp/gnus-sum.el b/lisp/gnus-sum.el index 79dc604..ad0d5bf 100644 --- a/lisp/gnus-sum.el +++ b/lisp/gnus-sum.el @@ -9187,7 +9187,7 @@ ACTION can be either `move' (the default), `crosspost' or `copy'." (crosspost "Crosspost" "Crossposting"))) (copy-buf (save-excursion (nnheader-set-temp-buffer " *copy article*"))) - art-group to-method new-xref article to-groups) + art-group to-method new-xref article to-groups articles-to-update-marks) (unless (assq action names) (error "Unknown action %s" action)) ;; Read the newsgroup name. @@ -9236,7 +9236,7 @@ ACTION can be either `move' (the default), `crosspost' or `copy'." gnus-newsgroup-name)) (to-method (gnus-find-method-for-group to-newsgroup)) - (gnus-sum-hint-move-is-internal (gnus-method-equal from-method to-method))) + (move-is-internal (gnus-method-equal from-method to-method))) (gnus-request-move-article article ; Article to move gnus-newsgroup-name ; From newsgroup @@ -9245,7 +9245,8 @@ ACTION can be either `move' (the default), `crosspost' or `copy'." (list 'gnus-request-accept-article to-newsgroup (list 'quote select-method) (not articles) t) ; Accept form - (not articles)))) ; Only save nov last time + (not articles) ; Only save nov last time + move-is-internal))) ; is this move internal? ;; Copy the article. ((eq action 'copy) (save-excursion @@ -9399,17 +9400,19 @@ ACTION can be either `move' (the default), `crosspost' or `copy'." ;;;!!!Why is this necessary? (set-buffer gnus-summary-buffer) - + (gnus-summary-goto-subject article) (when (eq action 'move) (gnus-summary-mark-article article gnus-canceled-mark)))) - (gnus-summary-remove-process-mark article)) + (push article articles-to-update-marks)) + + (apply 'gnus-summary-remove-process-mark articles-to-update-marks) ;; Re-activate all groups that have been moved to. (save-excursion (set-buffer gnus-group-buffer) (let ((gnus-group-marked to-groups)) (gnus-group-get-new-news-this-group nil t))) - + (gnus-kill-buffer copy-buf) (gnus-summary-position-point) (gnus-set-mode-line 'summary))) @@ -10050,13 +10053,14 @@ the actual number of articles marked is returned." (gnus-summary-goto-subject article) (gnus-summary-update-secondary-mark article))) -(defun gnus-summary-remove-process-mark (article) - "Remove the process mark from ARTICLE and update the summary line." - (setq gnus-newsgroup-processable (delq article gnus-newsgroup-processable)) - (when (gnus-summary-goto-subject article) - (gnus-summary-show-thread) - (gnus-summary-goto-subject article) - (gnus-summary-update-secondary-mark article))) +(defun gnus-summary-remove-process-mark (&rest articles) + "Remove the process mark from ARTICLES and update the summary line." + (dolist (article articles) + (setq gnus-newsgroup-processable (delq article gnus-newsgroup-processable)) + (when (gnus-summary-goto-subject article) + (gnus-summary-show-thread) + (gnus-summary-goto-subject article) + (gnus-summary-update-secondary-mark article)))) (defun gnus-summary-set-saved-mark (article) "Set the process mark on ARTICLE and update the summary line." diff --git a/lisp/nnagent.el b/lisp/nnagent.el index 0bb32ec..11c7fb2 100644 --- a/lisp/nnagent.el +++ b/lisp/nnagent.el @@ -214,10 +214,10 @@ (list (nnagent-server server)))) (deffoo nnagent-request-move-article - (article group server accept-form &optional last) + (article group server accept-form &optional last move-is-internal) (nnoo-parent-function 'nnagent 'nnml-request-move-article (list article group (nnagent-server server) - accept-form last))) + accept-form last move-is-internal))) (deffoo nnagent-request-rename-group (group new-name &optional server) (nnoo-parent-function 'nnagent 'nnml-request-rename-group diff --git a/lisp/nnbabyl.el b/lisp/nnbabyl.el index 400cb85..da4cb9b 100644 --- a/lisp/nnbabyl.el +++ b/lisp/nnbabyl.el @@ -306,7 +306,7 @@ (nconc rest articles)))) (deffoo nnbabyl-request-move-article - (article group server accept-form &optional last) + (article group server accept-form &optional last move-is-internal) (let ((buf (get-buffer-create " *nnbabyl move*")) result) (and diff --git a/lisp/nndb.el b/lisp/nndb.el index 35b29a5..dd477a3 100644 --- a/lisp/nndb.el +++ b/lisp/nndb.el @@ -246,7 +246,7 @@ expiry mechanism." (nndb-request-expire-articles-local articles group server force))) (deffoo nndb-request-move-article - (article group server accept-form &optional last) + (article group server accept-form &optional last move-is-internal) "Move ARTICLE (a number) from GROUP on SERVER. Evals ACCEPT-FORM in current buffer, where the article is. Optional LAST is ignored." diff --git a/lisp/nndiary.el b/lisp/nndiary.el index b351442..bf433ad 100644 --- a/lisp/nndiary.el +++ b/lisp/nndiary.el @@ -724,7 +724,7 @@ all. This may very well take some time.") (nconc rest articles))) (deffoo nndiary-request-move-article - (article group server accept-form &optional last) + (article group server accept-form &optional last move-is-internal) (let ((buf (get-buffer-create " *nndiary move*")) result) (nndiary-possibly-change-directory group server) diff --git a/lisp/nndraft.el b/lisp/nndraft.el index 0f978cb..4e3eb9c 100644 --- a/lisp/nndraft.el +++ b/lisp/nndraft.el @@ -196,8 +196,8 @@ 'nnmh-request-group (list group server dont-check))) -(deffoo nndraft-request-move-article (article group server - accept-form &optional last) +(deffoo nndraft-request-move-article (article group server accept-form + &optional last move-is-internal) (nndraft-possibly-change-group group) (let ((buf (get-buffer-create " *nndraft move*")) result) diff --git a/lisp/nnfolder.el b/lisp/nnfolder.el index 6f363b2..ddddba6 100644 --- a/lisp/nnfolder.el +++ b/lisp/nnfolder.el @@ -468,8 +468,8 @@ the group. Then the marks file will be regenerated properly by Gnus.") (nnfolder-save-active nnfolder-group-alist nnfolder-active-file) (gnus-sorted-difference articles (nreverse deleted-articles))))) -(deffoo nnfolder-request-move-article (article group server - accept-form &optional last) +(deffoo nnfolder-request-move-article (article group server accept-form + &optional last move-is-internal) (save-excursion (let ((buf (get-buffer-create " *nnfolder move*")) result) diff --git a/lisp/nnimap.el b/lisp/nnimap.el index 6f79f95..0811bc3 100644 --- a/lisp/nnimap.el +++ b/lisp/nnimap.el @@ -1504,8 +1504,8 @@ function is generally only called when Gnus is shutting down." ;; return articles not deleted articles) -(deffoo nnimap-request-move-article (article group server - accept-form &optional last) +(deffoo nnimap-request-move-article (article group server accept-form + &optional last move-is-internal) (when (nnimap-possibly-change-server server) (save-excursion (let ((buf (get-buffer-create " *nnimap move*")) @@ -1513,12 +1513,12 @@ function is generally only called when Gnus is shutting down." (nnimap-current-move-group group) (nnimap-current-move-server nnimap-current-server) result) - (gnus-message 9 "nnimap-request-move-article: this is an %s move" - (if gnus-sum-hint-move-is-internal + (gnus-message 10 "nnimap-request-move-article: this is an %s move" + (if move-is-internal "internal" "external")) ;; request the article only when the move is NOT internal - (and (or gnus-sum-hint-move-is-internal + (and (or move-is-internal (nnimap-request-article article group server)) (save-excursion (set-buffer buf) diff --git a/lisp/nnmaildir.el b/lisp/nnmaildir.el index 337fb38..416fe27 100644 --- a/lisp/nnmaildir.el +++ b/lisp/nnmaildir.el @@ -1305,7 +1305,7 @@ by nnmaildir-request-article.") t))) (defun nnmaildir-request-move-article (article gname server accept-form - &optional last) + &optional last move-is-internal) (let ((group (nnmaildir--prepare server gname)) pgname suffix result nnmaildir--file deactivate-mark) (catch 'return diff --git a/lisp/nnmbox.el b/lisp/nnmbox.el index c3a5931..de520b3 100644 --- a/lisp/nnmbox.el +++ b/lisp/nnmbox.el @@ -285,7 +285,7 @@ (nconc rest articles)))) (deffoo nnmbox-request-move-article - (article group server accept-form &optional last) + (article group server accept-form &optional last move-is-internal) (let ((buf (get-buffer-create " *nnmbox move*")) result) (and diff --git a/lisp/nnmh.el b/lisp/nnmh.el index f630e0c..81d547b 100644 --- a/lisp/nnmh.el +++ b/lisp/nnmh.el @@ -290,8 +290,8 @@ as unread by Gnus.") (deffoo nnmh-close-group (group &optional server) t) -(deffoo nnmh-request-move-article (article group server - accept-form &optional last) +(deffoo nnmh-request-move-article (article group server accept-form + &optional last move-is-internal) (let ((buf (get-buffer-create " *nnmh move*")) result) (and diff --git a/lisp/nnml.el b/lisp/nnml.el index 712afa0..02c3d35 100644 --- a/lisp/nnml.el +++ b/lisp/nnml.el @@ -336,7 +336,7 @@ marks file will be regenerated properly by Gnus.") (nconc rest articles))) (deffoo nnml-request-move-article - (article group server accept-form &optional last) + (article group server accept-form &optional last move-is-internal) (let ((buf (get-buffer-create " *nnml move*")) result) (nnml-possibly-change-directory group server)