@@ -84,17 +84,17 @@ static int nfvasprintf(char **strp, const char *fmt, va_list ap)
84
84
}
85
85
86
86
struct imap_server_conf {
87
- char * name ;
88
- char * tunnel ;
89
- char * host ;
87
+ const char * name ;
88
+ const char * tunnel ;
89
+ const char * host ;
90
90
int port ;
91
- char * folder ;
92
- char * user ;
93
- char * pass ;
91
+ const char * folder ;
92
+ const char * user ;
93
+ const char * pass ;
94
94
int use_ssl ;
95
95
int ssl_verify ;
96
96
int use_html ;
97
- char * auth_method ;
97
+ const char * auth_method ;
98
98
};
99
99
100
100
static struct imap_server_conf server = {
@@ -955,7 +955,7 @@ static void server_fill_credential(struct imap_server_conf *srvc, struct credent
955
955
srvc -> pass = xstrdup (cred -> password );
956
956
}
957
957
958
- static struct imap_store * imap_open_store (struct imap_server_conf * srvc , char * folder )
958
+ static struct imap_store * imap_open_store (struct imap_server_conf * srvc , const char * folder )
959
959
{
960
960
struct credential cred = CREDENTIAL_INIT ;
961
961
struct imap_store * ctx ;
@@ -1338,15 +1338,26 @@ static int split_msg(struct strbuf *all_msgs, struct strbuf *msg, int *ofs)
1338
1338
return 1 ;
1339
1339
}
1340
1340
1341
- static void git_imap_config (void )
1341
+ static int git_imap_config (const char * var , const char * val , void * cb )
1342
1342
{
1343
- const char * val = NULL ;
1344
1343
1345
- git_config_get_bool ("imap.sslverify" , & server .ssl_verify );
1346
- git_config_get_bool ("imap.preformattedhtml" , & server .use_html );
1347
- git_config_get_string ("imap.folder" , & server .folder );
1348
-
1349
- if (!git_config_get_value ("imap.host" , & val )) {
1344
+ if (!strcmp ("imap.sslverify" , var ))
1345
+ server .ssl_verify = git_config_bool (var , val );
1346
+ else if (!strcmp ("imap.preformattedhtml" , var ))
1347
+ server .use_html = git_config_bool (var , val );
1348
+ else if (!strcmp ("imap.folder" , var ))
1349
+ return git_config_string (& server .folder , var , val );
1350
+ else if (!strcmp ("imap.user" , var ))
1351
+ return git_config_string (& server .user , var , val );
1352
+ else if (!strcmp ("imap.pass" , var ))
1353
+ return git_config_string (& server .pass , var , val );
1354
+ else if (!strcmp ("imap.tunnel" , var ))
1355
+ return git_config_string (& server .tunnel , var , val );
1356
+ else if (!strcmp ("imap.authmethod" , var ))
1357
+ return git_config_string (& server .auth_method , var , val );
1358
+ else if (!strcmp ("imap.port" , var ))
1359
+ server .port = git_config_int (var , val );
1360
+ else if (!strcmp ("imap.host" , var )) {
1350
1361
if (!val ) {
1351
1362
git_die_config ("imap.host" , "Missing value for 'imap.host'" );
1352
1363
} else {
@@ -1360,13 +1371,10 @@ static void git_imap_config(void)
1360
1371
val += 2 ;
1361
1372
server .host = xstrdup (val );
1362
1373
}
1363
- }
1374
+ } else
1375
+ return git_default_config (var , val , cb );
1364
1376
1365
- git_config_get_string ("imap.user" , & server .user );
1366
- git_config_get_string ("imap.pass" , & server .pass );
1367
- git_config_get_int ("imap.port" , & server .port );
1368
- git_config_get_string ("imap.tunnel" , & server .tunnel );
1369
- git_config_get_string ("imap.authmethod" , & server .auth_method );
1377
+ return 0 ;
1370
1378
}
1371
1379
1372
1380
static int append_msgs_to_imap (struct imap_server_conf * server ,
@@ -1539,7 +1547,7 @@ int cmd_main(int argc, const char **argv)
1539
1547
int nongit_ok ;
1540
1548
1541
1549
setup_git_directory_gently (& nongit_ok );
1542
- git_imap_config ( );
1550
+ git_config ( git_imap_config , NULL );
1543
1551
1544
1552
argc = parse_options (argc , (const char * * )argv , "" , imap_send_options , imap_send_usage , 0 );
1545
1553
0 commit comments