+2002-11-26 Kevin Ryde <user42@zip.com.au>
+
+ * gnus-art.el (gnus-mime-copy-part): Look for filename
+ parameter under content-disposition, not content-type.
+
+ * gnus-sum.el (gnus-summary-find-uncancelled): New function.
+ (gnus-summary-reselect-current-group): Use it.
+
2002-11-26 ShengHuo ZHU <zsh@cs.rochester.edu>
* gnus-agent.el (gnus-agent-uncached-articles): if
(file-name-nondirectory
(or
(mail-content-type-get (mm-handle-type handle) 'name)
- (mail-content-type-get (mm-handle-type handle)
+ (mail-content-type-get (mm-handle-disposition handle)
'filename)
"*decoded*"))))
(buffer (and base (generate-new-buffer base))))
(> (prefix-numeric-value arg) 0)))
(redraw-display))
+(defun gnus-summary-find-uncancelled ()
+ "Return the number of an uncancelled article.
+The current article is considered, then following articles, then previous
+articles. If all articles are cancelled then return a dummy 0."
+ (let (found)
+ (dolist (rev '(nil t))
+ (unless found ; don't demand the reverse list if we don't need it
+ (let ((data (gnus-data-find-list
+ (gnus-summary-article-number) (gnus-data-list rev))))
+ (while (and data (not found))
+ (if (not (eq gnus-canceled-mark (gnus-data-mark (car data))))
+ (setq found (gnus-data-number (car data))))
+ (setq data (cdr data))))))
+ (or found 0)))
+
(defun gnus-summary-reselect-current-group (&optional all rescan)
"Exit and then reselect the current newsgroup.
The prefix argument ALL means to select all articles."
(interactive "P")
(when (gnus-ephemeral-group-p gnus-newsgroup-name)
(error "Ephemeral groups can't be reselected"))
- (let ((current-subject (gnus-summary-article-number))
+ (let ((current-subject (gnus-summary-find-uncancelled))
(group gnus-newsgroup-name))
(setq gnus-newsgroup-begin nil)
(gnus-summary-exit)