Nicolas Morey-Chaisemartin <nmoreychaisemartin@xxxxxxxx> writes: > 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 <levraiphilippeblain@xxxxxxxxx> > Signed-off-by: Nicolas Morey-Chaisemartin <nmoreychaisemartin@xxxxxxxx> > --- > 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. > @@ -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-<. > { > 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.