summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew G Cohen <cohen@andy.bu.edu>2024-04-27 09:10:44 +0800
committerAndrew G Cohen <cohen@andy.bu.edu>2024-05-10 08:25:48 +0800
commite29eb0e0f18d7b1e4724c1bb26ff9718fe08548b (patch)
tree424f5d9343065b7a27ba80dcde8e2edbf368cec7
parent1b8613063cf6a3b9a1f484e1179877e36ba4b5e0 (diff)
downloademacs-e29eb0e0f18d7b1e4724c1bb26ff9718fe08548b.tar.gz
Find correct parent for articles in gnus
* lisp/gnus/gnus-sum.el (gnus-summary-refer-parent-article): When an article's headers have been altered, use the altered headers to find the parent.
-rw-r--r--lisp/gnus/gnus-sum.el10
1 files changed, 6 insertions, 4 deletions
diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el
index dc66e1375ab..d4895f3c5f8 100644
--- a/lisp/gnus/gnus-sum.el
+++ b/lisp/gnus/gnus-sum.el
@@ -8939,7 +8939,8 @@ The difference between N and the number of articles fetched is returned."
(while (and (> n 0)
(not error))
(setq header (gnus-summary-article-header))
- (if (and (eq (mail-header-number header)
+ (if (and (null gnus-alter-header-function)
+ (eq (mail-header-number header)
(cdr gnus-article-current))
(equal gnus-newsgroup-name
(car gnus-article-current)))
@@ -8947,7 +8948,8 @@ The difference between N and the number of articles fetched is returned."
;; displayed article, then we take a look at the actual
;; References header, since this is slightly more
;; reliable than the References field we got from the
- ;; server.
+ ;; server. But if we altered the header, we should prefer
+ ;; the version from the header vector.
(with-current-buffer gnus-original-article-buffer
(nnheader-narrow-to-headers)
(unless (setq ref (message-fetch-field "references"))
@@ -8955,8 +8957,8 @@ The difference between N and the number of articles fetched is returned."
(setq ref (gnus-extract-message-id-from-in-reply-to ref))))
(widen))
(setq ref
- ;; It's not the current article, so we take a bet on
- ;; the value we got from the server.
+ ;; It's not the current article, or we altered the header,
+ ;; so we use whats in the header vector.
(mail-header-references header)))
(if (and ref
(not (equal ref "")))