diff options
| author | Xinglu Chen <public@yoctocell.xyz> | 2021-06-21 14:03:32 +0200 | 
|---|---|---|
| committer | Xinglu Chen <public@yoctocell.xyz> | 2021-06-21 14:23:28 +0200 | 
| commit | 8641ee5ffe2466e9d89bc51944ad314fbdd66491 (patch) | |
| tree | bff6c9b7cf538165f06074f8222bf6bb14ea4012 | |
| parent | a141b208ab4484c26ef7d6690c9b9b8da4f32920 (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.el | 17 | 
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)))  | 
