]> git.eshelyaron.com Git - emacs.git/commitdiff
Allow `message-replace-header' to take a list of AFTERs
authorŁukasz Stelmach <stlman@poczta.fm>
Sat, 19 Jun 2021 13:07:13 +0000 (15:07 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Sat, 19 Jun 2021 13:07:13 +0000 (15:07 +0200)
* 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).

lisp/gnus/message.el

index 02db38725a901bf82375fb763ad8ca06a999aa98..0c027ca2905e8d7e435696f3a3dba2ee900cc7ef 100644 (file)
@@ -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))))