Re: [PATCHv2] imap-send: parse default git config
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Nov 30, 2020, 23:33 UTC
- Message-ID
- <xmqqk0u2to79.fsf@gitster.c.googlers.com>
- In-Reply-To
- <1c3954a4-a8c7-d134-1a4a-aee8c3b4ef24@suse.com>
Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com> writes:
Show 35 quoted lines
> 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@gmail.com>
> Signed-off-by: Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
> ---
> 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.
Show 6 quoted lines
> @@ -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-<.
Show 19 quoted lines
> {
> 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.