From 8641ee5ffe2466e9d89bc51944ad314fbdd66491 Mon Sep 17 00:00:00 2001 From: Xinglu Chen Date: Mon, 21 Jun 2021 14:03:32 +0200 Subject: git-email: Support appending to header. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- git-email.el | 17 ++++++++++++----- 1 file 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))) -- cgit v1.2.3