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.