Browse Source

imap-send.c: replace `git_config()` with `git_config_get_*()` family

Use `git_config_get_*()` family instead of `git_config()` to take advantage of
the config-set API which provides a cleaner control flow.

Signed-off-by: Tanay Abhra <tanayabh@gmail.com>
Reviewed-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Tanay Abhra 11 years ago committed by Junio C Hamano
parent
commit
ef7e1d0cda
  1. 60
      imap-send.c

60
imap-send.c

@ -1326,43 +1326,35 @@ static int split_msg(struct strbuf *all_msgs, struct strbuf *msg, int *ofs) @@ -1326,43 +1326,35 @@ static int split_msg(struct strbuf *all_msgs, struct strbuf *msg, int *ofs)

static char *imap_folder;

static int git_imap_config(const char *key, const char *val, void *cb)
static void git_imap_config(void)
{
if (!skip_prefix(key, "imap.", &key))
return 0;
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", &imap_folder);

/* check booleans first, and barf on others */
if (!strcmp("sslverify", key))
server.ssl_verify = git_config_bool(key, val);
else if (!strcmp("preformattedhtml", key))
server.use_html = git_config_bool(key, val);
else if (!val)
return config_error_nonbool(key);

if (!strcmp("folder", key)) {
imap_folder = xstrdup(val);
} else if (!strcmp("host", key)) {
if (starts_with(val, "imap:"))
val += 5;
else if (starts_with(val, "imaps:")) {
val += 6;
server.use_ssl = 1;
if (!git_config_get_value("imap.host", &val)) {
if (!val) {
git_die_config("imap.host", "Missing value for 'imap.host'");
} else {
if (starts_with(val, "imap:"))
val += 5;
else if (starts_with(val, "imaps:")) {
val += 6;
server.use_ssl = 1;
}
if (starts_with(val, "//"))
val += 2;
server.host = xstrdup(val);
}
if (starts_with(val, "//"))
val += 2;
server.host = xstrdup(val);
} else if (!strcmp("user", key))
server.user = xstrdup(val);
else if (!strcmp("pass", key))
server.pass = xstrdup(val);
else if (!strcmp("port", key))
server.port = git_config_int(key, val);
else if (!strcmp("tunnel", key))
server.tunnel = xstrdup(val);
else if (!strcmp("authmethod", key))
server.auth_method = xstrdup(val);
}

return 0;
git_config_get_string("imap.user", &server.user);
git_config_get_string("imap.pass", &server.pass);
git_config_get_int("imap.port", &server.port);
git_config_get_string("imap.tunnel", &server.tunnel);
git_config_get_string("imap.authmethod", &server.auth_method);
}

int main(int argc, char **argv)
@ -1383,7 +1375,7 @@ int main(int argc, char **argv) @@ -1383,7 +1375,7 @@ int main(int argc, char **argv)
usage(imap_send_usage);

setup_git_directory_gently(&nongit_ok);
git_config(git_imap_config, NULL);
git_imap_config();

if (!server.port)
server.port = server.use_ssl ? 993 : 143;

Loading…
Cancel
Save