summaryrefslogtreecommitdiff
path: root/lisp/gnus
diff options
context:
space:
mode:
authorƁukasz Stelmach <stlman@poczta.fm>2021-06-19 15:07:13 +0200
committerLars Ingebrigtsen <larsi@gnus.org>2021-06-19 15:07:13 +0200
commit989de3b824e5d999c2b63f3067f2628da6034d8c (patch)
tree5cf4e4565de609d5fbb0ae8ebf47655187ee308c /lisp/gnus
parent6ea7e338466056c10402005a2c2425dfd3c76299 (diff)
downloademacs-989de3b824e5d999c2b63f3067f2628da6034d8c.tar.gz
emacs-989de3b824e5d999c2b63f3067f2628da6034d8c.tar.bz2
emacs-989de3b824e5d999c2b63f3067f2628da6034d8c.zip
Allow `message-replace-header' to take a list of AFTERs
* lisp/gnus/message.el (message-replace-header): Facilitate capability of message-position-on-field to accept multiple headers as AFTERS argument and make possible to mimic behavioir of message-goto-* functions with message-replace-header in case the header does not exist (bug#49070).
Diffstat (limited to 'lisp/gnus')
-rw-r--r--lisp/gnus/message.el11
1 files changed, 7 insertions, 4 deletions
diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el
index 02db38725a9..0c027ca2905 100644
--- a/lisp/gnus/message.el
+++ b/lisp/gnus/message.el
@@ -8722,16 +8722,19 @@ Header and body are separated by `mail-header-separator'."
(defun message-replace-header (header new-value &optional after force)
"Remove HEADER and insert the NEW-VALUE.
-If AFTER, insert after this header. If FORCE, insert new field
-even if NEW-VALUE is empty."
+If AFTER, insert after this header. AFTER may be a list of
+headers. If FORCE, insert new field even if NEW-VALUE is empty."
;; Similar to `nnheader-replace-header' but for message buffers.
(save-excursion
(save-restriction
(message-narrow-to-headers)
(message-remove-header header))
(when (or force (> (length new-value) 0))
- (if after
- (message-position-on-field header after)
+ (when after
+ (if (listp after)
+ (apply #'message-position-on-field
+ (append (list header) after))
+ (message-position-on-field header after))
(message-position-on-field header))
(insert new-value))))