- (let (group article num cwin swin cur)
- (with-temp-buffer
- (mime-insert-entity-content entity)
- (setq group (or (cdr (assq 'group situation))
- (completing-read "Group: "
- gnus-active-hashtb
- nil
- (gnus-read-active-file-p)
- gnus-newsgroup-name))
- article (gnus-request-accept-article group)))
- (when (and (consp article)
- (numberp (setq article (cdr article))))
- (setq num (1+ (or (cdr (assq 'number situation)) 0))
- cwin (get-buffer-window (current-buffer) t))
- (save-window-excursion
- (if (setq swin (get-buffer-window gnus-summary-buffer t))
- (select-window swin)
- (set-buffer gnus-summary-buffer))
- (setq cur gnus-current-article)
- (forward-line num)
- (let (gnus-show-threads)
- (gnus-summary-goto-subject article t))
- (gnus-summary-clear-mark-forward 1)
- (gnus-summary-goto-subject cur))
- (when (and cwin (window-frame cwin))
- (select-frame (window-frame cwin)))
- (when (boundp 'mime-acting-situation-to-override)
- (set-alist 'mime-acting-situation-to-override
- 'group
- group)
- (set-alist 'mime-acting-situation-to-override
- 'after-method
- `(progn
- (save-current-buffer
- (set-buffer gnus-group-buffer)
- (gnus-activate-group ,group))
- (gnus-summary-goto-article ,cur
- gnus-show-all-headers)))
- (set-alist 'mime-acting-situation-to-override
- 'number num)))))
+ "Burst a forwarded article."
+ (save-excursion
+ (set-buffer gnus-summary-buffer)
+ (let* ((group (completing-read "Group: " gnus-active-hashtb nil t
+ gnus-newsgroup-name 'gnus-group-history))
+ (gnus-group-marked (list group))
+ article info)
+ (with-temp-buffer
+ (mime-insert-entity-content entity)
+ (setq article (gnus-request-accept-article group)))
+ (when (and (consp article)
+ (numberp (setq article (cdr article))))
+ (setq info (gnus-get-info group))
+ (gnus-info-set-read info
+ (gnus-remove-from-range (gnus-info-read info)
+ (list article)))
+ (when (string-equal group gnus-newsgroup-name)
+ (forward-line 1)
+ (let (gnus-show-threads)
+ (gnus-summary-goto-subject article t))
+ (gnus-summary-clear-mark-forward 1))
+ (set-buffer gnus-group-buffer)
+ (gnus-group-get-new-news-this-group nil t)))))