Thread (2 messages) 2 messages, 2 authors, 2020-11-30

Re: [PATCHv2] imap-send: parse default git config

From: Junio C Hamano <hidden>
Date: 2020-11-30 23:34:45

Nicolas Morey-Chaisemartin [off-list ref] writes:
quoted hunk ↗ jump to hunk
git imap-send does not parse the default git config settings and thus ignore
core.askpass value.
Rewrite config parsing to support core settings.

Reported-by: Philippe Blain <redacted>
Signed-off-by: Nicolas Morey-Chaisemartin <redacted>
---
 imap-send.c | 52 ++++++++++++++++++++++++++++++----------------------
 1 file changed, 30 insertions(+), 22 deletions(-)
diff --git a/imap-send.c b/imap-send.c
index 5764dd812ca7..fa1921734671 100644
--- a/imap-send.c
+++ b/imap-send.c
@@ -84,17 +84,17 @@ static int nfvasprintf(char **strp, const char *fmt, va_list ap)
 }
   struct imap_server_conf {
-	char *name;
-	char *tunnel;
-	char *host;
+	const char *name;
+	const char *tunnel;
+	const char *host;
 	int port;
-	char *folder;
-	char *user;
-	char *pass;
+	const char *folder;
+	const char *user;
+	const char *pass;
 	int use_ssl;
 	int ssl_verify;
 	int use_html;
-	char *auth_method;
+	const char *auth_method;
Nice to see these tightened up, I guess.
quoted hunk ↗ jump to hunk
@@ -955,7 +955,7 @@ static void server_fill_credential(struct imap_server_conf *srvc, struct credent
 		srvc->pass = xstrdup(cred->password);
 }
 -static struct imap_store *imap_open_store(struct imap_server_conf
 *srvc, char *folder)
+static struct imap_store *imap_open_store(struct imap_server_conf *srvc, const char *folder)
Sorry but it appears that

    Content-Type: text/plain; charset=windows-1252; format=flowed

munged the message into an unusable shape (the "flowed" part is what
makes it unusable), so it cannot be applied X-<.
quoted hunk ↗ jump to hunk
 {
 	struct credential cred = CREDENTIAL_INIT;
 	struct imap_store *ctx;
@@ -1338,15 +1338,26 @@ static int split_msg(struct strbuf *all_msgs, struct strbuf *msg, int *ofs)
 	return 1;
 }
 -static void git_imap_config(void)
+static int git_imap_config(const char *var, const char *val, void *cb)
 {
-	const char *val = NULL;
 -	git_config_get_bool("imap.sslverify", &server.ssl_verify);
-	git_config_get_bool("imap.preformattedhtml", &server.use_html);
-	git_config_get_string("imap.folder", &server.folder);
-
-	if (!git_config_get_value("imap.host", &val)) {
+	if(!strcmp("imap.sslverify", var))
+		server.ssl_verify = git_config_bool(var, val);
+	else if(!strcmp("imap.preformattedhtml", var))
+		server.use_html = git_config_bool(var, val);
Style: a SP between "if" and "(".
+	else if(!strcmp("imap.folder", var))
+		return git_config_string(&server.folder, var, val);
Other than that, the patch looks quite straight-forward.

Thanks.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help