aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXinglu Chen <public@yoctocell.xyz>2021-06-21 14:03:32 +0200
committerXinglu Chen <public@yoctocell.xyz>2021-06-21 14:23:28 +0200
commit8641ee5ffe2466e9d89bc51944ad314fbdd66491 (patch)
treebff6c9b7cf538165f06074f8222bf6bb14ea4012
parenta141b208ab4484c26ef7d6690c9b9b8da4f32920 (diff)
git-email: Support appending to header.
Sometimes it is useful to append something to the value of a header instead of overwriting it. For example, one might have already Cc’d someone, but now wants to Cc yet another person, by appending, they don’t have to re-write the Email address of the first person they Cc’d. * git-email.el (git-email--rewrite-header-in-buffer): Add ‘append’ argument. (git-email-rewrite-header): Add optional prefix argument ‘append’. Signed-off-by: Xinglu Chen <public@yoctocell.xyz>
-rw-r--r--git-email.el17
1 files changed, 12 insertions, 5 deletions
diff --git a/git-email.el b/git-email.el
index 17e3e0e..485d433 100644
--- a/git-email.el
+++ b/git-email.el
@@ -459,36 +459,43 @@ default behavior is to delete them after sending the message."
(funcall git-email-send-email-function))
buffers)))
-(defun git-email--rewrite-header-in-buffer (buffer header value)
+(defun git-email--rewrite-header-in-buffer (buffer header value append)
(switch-to-buffer buffer)
(save-excursion
(goto-char (point-min))
(let* ((case-fold-search t))
(if (re-search-forward (concat "^" (capitalize header) ":") nil t)
(progn
- (delete-region (point) (point-at-eol))
+ (unless append
+ (delete-region (point) (point-at-eol)))
+ (goto-char (point-at-eol))
(insert " " value))
(progn
(re-search-forward "^Subject: .*$")
(insert "\n" (concat (capitalize header) ": " value)))))))
;;;###autoload
-(defun git-email-rewrite-header (header value)
+(defun git-email-rewrite-header (header value &optional append)
"Re-write the value of HEADER to VALUE, if HEADER doesn't exist
yet, just set it to VALUE.
+With prefix argument APPEND, append the VALUE to HEADER instead
+of overwriting it.
+
This is mainly useful if you forgot to Cc someone when using
`git-email-format-patch', or if you are waiting for Debbugs to
give you an address to send your patches to."
(interactive
(list (completing-read "Header to re-write: "
git-email-headers)
- (read-from-minibuffer "Set header to: ")))
+ (read-from-minibuffer "Set header to: ")
+ current-prefix-arg))
(let ((buffers (message-buffers))
(start-buffer (current-buffer)))
(save-excursion
(mapc (lambda (buffer)
- (git-email--rewrite-header-in-buffer buffer header value))
+ (git-email--rewrite-header-in-buffer
+ buffer header value append))
buffers))
(switch-to-buffer start-buffer)))