diff options
-rw-r--r-- | doc/git-email.org | 5 | ||||
-rw-r--r-- | git-email.el | 20 |
2 files changed, 22 insertions, 3 deletions
diff --git a/doc/git-email.org b/doc/git-email.org index 8a8c343..84b1d23 100644 --- a/doc/git-email.org +++ b/doc/git-email.org @@ -94,6 +94,11 @@ You can see all the customizable variables running =M-x customize-group= - =git-email-get-files-functions= is a list of functions to run to get a list of patches to send. The default, there is already support for dired, ibuffer and vc-dir. + +- =git-email-get-to-address-function= is a function that returns the + “to” address for a message. The default function runs =git config + --list= to get the address, this will not work unless you are in a + git repository. ** Format patches - =git-email-format-patch-default-args= is a string of arguments to give diff --git a/git-email.el b/git-email.el index 7ed4e43..2c90fd3 100644 --- a/git-email.el +++ b/git-email.el @@ -82,6 +82,12 @@ not set, the 'to' address will be empty." :type '(list symbol) :group 'git-email) +(defcustom git-email-get-to-address-function + 'git-email--get-to-address + "Function to run to get the \“to\" address of a message." + :type 'symbol + :group 'git-email) + (defcustom git-email-format-patch-default-args "" "Default arguments to give to 'git format-patch'." :type 'string @@ -230,6 +236,15 @@ If the header is not found, return an empty string." "Remove HEADER if it is the subject." (not (string-equal (symbol-name (car header)) "subject"))) +(defun git-email--get-to-address () + "Get the \"to\" address of the message. + +This runs \“git config --list\" in the current directory +so might not always work." + (substring + (shell-command-to-string "git config --list | grep sendemail.to") + 13 -1)) ; Remove newline + (defun git-email--compose-email (patch-file) "Given a PATCH-FILE, compose an email. Extracts the relevant headers and the diff from the PATCH-FILE and inserts @@ -240,12 +255,11 @@ them into the message buffer." (lambda (header) (not (string-equal (car (cdr header)) ""))) headers)) + (sendemail-to (funcall git-email-get-to-address-function)) ;; Get 'to' address from git. - (sendemail-to - (shell-command-to-string "git config --list | grep sendemail.to")) (to (if (string-equal sendemail-to "") "*** TO ADDRESS HERE ***" - (substring sendemail-to 13 -1))) ; Remove newline + sendemail-to)) (diff (git-email--extract-diff patch-file))) (funcall git-email-compose-email-function to ;; Remove 'subject' header, otherwise two subject headers will be |