comparison lisp/gnus/gnus-sum.el @ 42:8b8b7f3559a2 r19-15b104

Import from CVS: tag r19-15b104
author cvs
date Mon, 13 Aug 2007 08:54:51 +0200
parents 1a767b41a199
children 8d2a9b52c682
comparison
equal deleted inserted replaced
41:5d6df4963a99 42:8b8b7f3559a2
2260 (setq gnus-article-buffer article-buffer) 2260 (setq gnus-article-buffer article-buffer)
2261 (setq gnus-original-article-buffer original) 2261 (setq gnus-original-article-buffer original)
2262 (setq gnus-reffed-article-number reffed) 2262 (setq gnus-reffed-article-number reffed)
2263 (setq gnus-current-score-file score-file) 2263 (setq gnus-current-score-file score-file)
2264 ;; The article buffer also has local variables. 2264 ;; The article buffer also has local variables.
2265 (when (gnus-buffer-live-p gnus-article-buffer) 2265 (when (buffer-live-p gnus-article-buffer)
2266 (set-buffer gnus-article-buffer) 2266 (set-buffer gnus-article-buffer)
2267 (setq gnus-summary-buffer summary)))))) 2267 (setq gnus-summary-buffer summary))))))
2268 2268
2269 (defun gnus-summary-article-unread-p (article) 2269 (defun gnus-summary-article-unread-p (article)
2270 "Say whether ARTICLE is unread or not." 2270 "Say whether ARTICLE is unread or not."
3584 3584
3585 (defun gnus-select-newsgroup (group &optional read-all) 3585 (defun gnus-select-newsgroup (group &optional read-all)
3586 "Select newsgroup GROUP. 3586 "Select newsgroup GROUP.
3587 If READ-ALL is non-nil, all articles in the group are selected." 3587 If READ-ALL is non-nil, all articles in the group are selected."
3588 (let* ((entry (gnus-gethash group gnus-newsrc-hashtb)) 3588 (let* ((entry (gnus-gethash group gnus-newsrc-hashtb))
3589 ;;!!! Dirty hack; should be removed.
3590 (gnus-summary-ignore-duplicates
3591 (if (eq (car (gnus-find-method-for-group group)) 'nnvirtual)
3592 t
3593 gnus-summary-ignore-duplicates))
3589 (info (nth 2 entry)) 3594 (info (nth 2 entry))
3590 articles fetched-articles cached) 3595 articles fetched-articles cached)
3591 3596
3592 (unless (gnus-check-server 3597 (unless (gnus-check-server
3593 (setq gnus-current-select-method 3598 (setq gnus-current-select-method
4954 ((eq major-mode 'gnus-article-mode) 4959 ((eq major-mode 'gnus-article-mode)
4955 (save-excursion 4960 (save-excursion
4956 ;; The `gnus-summary-buffer' variable may point 4961 ;; The `gnus-summary-buffer' variable may point
4957 ;; to the old summary buffer when using a single 4962 ;; to the old summary buffer when using a single
4958 ;; article buffer. 4963 ;; article buffer.
4959 (unless (gnus-buffer-live-p gnus-summary-buffer) 4964 (unless (buffer-live-p gnus-summary-buffer)
4960 (set-buffer gnus-group-buffer)) 4965 (set-buffer gnus-group-buffer))
4961 (set-buffer gnus-summary-buffer) 4966 (set-buffer gnus-summary-buffer)
4962 (gnus-set-global-variables)))) 4967 (gnus-set-global-variables))))
4963 (if (or (eq (cdr quit-config) 'article) 4968 (if (or (eq (cdr quit-config) 'article)
4964 (eq (cdr quit-config) 'pick)) 4969 (eq (cdr quit-config) 'pick))
6178 (save-excursion 6183 (save-excursion
6179 (set-buffer gnus-summary-buffer) 6184 (set-buffer gnus-summary-buffer)
6180 gnus-current-article))) 6185 gnus-current-article)))
6181 (ogroup gnus-newsgroup-name) 6186 (ogroup gnus-newsgroup-name)
6182 (params (append (gnus-info-params (gnus-get-info ogroup)) 6187 (params (append (gnus-info-params (gnus-get-info ogroup))
6183 (list (cons 'to-group ogroup)))) 6188 (list (cons 'to-group ogroup))
6189 (list (cons 'save-article-group ogroup))))
6184 (case-fold-search t) 6190 (case-fold-search t)
6185 (buf (current-buffer)) 6191 (buf (current-buffer))
6186 dig) 6192 dig)
6187 (save-excursion 6193 (save-excursion
6188 (setq dig (nnheader-set-temp-buffer " *gnus digest buffer*")) 6194 (setq dig (nnheader-set-temp-buffer " *gnus digest buffer*"))
6665 " " new-xref)) 6671 " " new-xref))
6666 (save-excursion 6672 (save-excursion
6667 (set-buffer copy-buf) 6673 (set-buffer copy-buf)
6668 ;; First put the article in the destination group. 6674 ;; First put the article in the destination group.
6669 (gnus-request-article-this-buffer article gnus-newsgroup-name) 6675 (gnus-request-article-this-buffer article gnus-newsgroup-name)
6670 (setq art-group 6676 (when (consp (setq art-group
6671 (gnus-request-accept-article 6677 (gnus-request-accept-article
6672 to-newsgroup select-method (not articles))) 6678 to-newsgroup select-method (not articles))))
6673 (setq new-xref (concat new-xref " " (car art-group) 6679 (setq new-xref (concat new-xref " " (car art-group)
6674 ":" (cdr art-group))) 6680 ":" (cdr art-group)))
6675 ;; Now we have the new Xrefs header, so we insert 6681 ;; Now we have the new Xrefs header, so we insert
6676 ;; it and replace the new article. 6682 ;; it and replace the new article.
6677 (nnheader-replace-header "Xref" new-xref) 6683 (nnheader-replace-header "Xref" new-xref)
6678 (gnus-request-replace-article 6684 (gnus-request-replace-article
6679 (cdr art-group) to-newsgroup (current-buffer)) 6685 (cdr art-group) to-newsgroup (current-buffer))
6680 art-group))))) 6686 art-group))))))
6681 (if (not art-group) 6687 (cond
6682 (gnus-message 1 "Couldn't %s article %s" 6688 ((not art-group)
6683 (cadr (assq action names)) article) 6689 (gnus-message 1 "Couldn't %s article %s"
6690 (cadr (assq action names)) article))
6691 ((and (eq art-group 'junk)
6692 (eq action 'move))
6693 (gnus-summary-mark-article article gnus-canceled-mark)
6694 (gnus-message 4 "Deleted article %s" article))
6695 (t
6684 (let* ((entry 6696 (let* ((entry
6685 (or 6697 (or
6686 (gnus-gethash (car art-group) gnus-newsrc-hashtb) 6698 (gnus-gethash (car art-group) gnus-newsrc-hashtb)
6687 (gnus-gethash 6699 (gnus-gethash
6688 (gnus-group-prefixed-name 6700 (gnus-group-prefixed-name
6753 (gnus-request-replace-article 6765 (gnus-request-replace-article
6754 article gnus-newsgroup-name (current-buffer))))) 6766 article gnus-newsgroup-name (current-buffer)))))
6755 6767
6756 (gnus-summary-goto-subject article) 6768 (gnus-summary-goto-subject article)
6757 (when (eq action 'move) 6769 (when (eq action 'move)
6758 (gnus-summary-mark-article article gnus-canceled-mark))) 6770 (gnus-summary-mark-article article gnus-canceled-mark))))
6759 (gnus-summary-remove-process-mark article)) 6771 (gnus-summary-remove-process-mark article))
6760 ;; Re-activate all groups that have been moved to. 6772 ;; Re-activate all groups that have been moved to.
6761 (while to-groups 6773 (while to-groups
6762 (gnus-activate-group (pop to-groups))) 6774 (gnus-activate-group (pop to-groups)))
6763 6775
7066 (execute-kbd-macro (concat (this-command-keys) key)) 7078 (execute-kbd-macro (concat (this-command-keys) key))
7067 (gnus-article-edit-done)) 7079 (gnus-article-edit-done))
7068 7080
7069 ;;; Respooling 7081 ;;; Respooling
7070 7082
7071 (defun gnus-summary-respool-query () 7083 (defun gnus-summary-respool-query (&optional silent)
7072 "Query where the respool algorithm would put this article." 7084 "Query where the respool algorithm would put this article."
7073 (interactive) 7085 (interactive)
7074 (gnus-set-global-variables) 7086 (gnus-set-global-variables)
7075 (let (gnus-mark-article-hook) 7087 (let (gnus-mark-article-hook)
7076 (gnus-summary-select-article) 7088 (gnus-summary-select-article)
7077 (save-excursion 7089 (save-excursion
7078 (set-buffer gnus-original-article-buffer) 7090 (set-buffer gnus-original-article-buffer)
7079 (save-restriction 7091 (save-restriction
7080 (message-narrow-to-head) 7092 (message-narrow-to-head)
7081 (message "This message would go to %s" 7093 (let ((groups (nnmail-article-group 'identity)))
7082 (mapconcat 'car (nnmail-article-group 'identity) ", ")))))) 7094 (unless silent
7095 (if groups
7096 (message "This message would go to %s"
7097 (mapconcat 'car groups ", "))
7098 (message "This message would go to no groups"))
7099 groups))))))
7083 7100
7084 ;; Summary marking commands. 7101 ;; Summary marking commands.
7085 7102
7086 (defun gnus-summary-kill-same-subject-and-select (&optional unmark) 7103 (defun gnus-summary-kill-same-subject-and-select (&optional unmark)
7087 "Mark articles which has the same subject as read, and then select the next. 7104 "Mark articles which has the same subject as read, and then select the next.