From d179f9c2529e9e3152bcf5ac6e8be491dfce2260 Mon Sep 17 00:00:00 2001 From: Xinglu Chen Date: Thu, 28 Jan 2021 20:41:52 +0100 Subject: Add `git-email-get-address-function' variable MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This makes it possible for users to use their own function to get the “to” address. This could also be used for integration with piem.el. * doc/git-email.org (Sending email): Add bullet point. * git-email.el (git-email-get-to-address-function): Add variable. (git-email--get-to-address): Add function. (git-email--compose-email): Call the relevant function. --- git-email.el | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) (limited to 'git-email.el') 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 -- cgit v1.2.3