diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2009-11-18 17:14:07 +0200 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2009-11-18 17:14:07 +0200 |
commit | 05c40bae066c4621a483b521144aca14ec5d222a (patch) | |
tree | 2d79f43acc99d11f4ca0e655706f6afd0e472d1a | |
parent | b1f6f2326b6cb1e65be78e1e8c19906b3a835dfc (diff) | |
download | mailfromd-05c40bae066c4621a483b521144aca14ec5d222a.tar.gz mailfromd-05c40bae066c4621a483b521144aca14ec5d222a.tar.bz2 |
Fix configuration handling.
Partial port from mtax-cleanup c9f9835a1820fa85ae49f2f511ce793255618bcb
* mfd/appinit.c (mfd_app_init): Change signature.
Take two closures: one for argp and another for mfd_parse_config_files.
* mfd/mailfromd.h (mfd_app_init): Change signature.
* mfd/main.c (main): Update call to mfd_app_init. Make sure
to pass NULL as cfg_data, to not trigger a Mailutils bug.
-rw-r--r-- | mfd/appinit.c | 9 | ||||
-rw-r--r-- | mfd/mailfromd.h | 3 | ||||
-rw-r--r-- | mfd/main.c | 2 |
3 files changed, 8 insertions, 6 deletions
diff --git a/mfd/appinit.c b/mfd/appinit.c index 9c0dac93..f88724dd 100644 --- a/mfd/appinit.c +++ b/mfd/appinit.c @@ -118,7 +118,8 @@ mfd_parse_config_files (struct mu_cfg_param *param, void *target) int mfd_app_init (struct argp *myargp, const char **capa, struct mu_cfg_param *cfg_param, - int argc, char **argv, int flags, int *pindex, void *data) + int argc, char **argv, int flags, int *pindex, + void *opt_data, void *cfg_data) { int rc, i; struct argp *argp; @@ -136,7 +137,7 @@ mfd_app_init (struct argp *myargp, const char **capa, argp = mu_argp_build (myargp, &excapa); mu_cfg_tree_create (&mu_argp_tree); - rc = argp_parse (argp, argc, argv, flags, pindex, data); + rc = argp_parse (argp, argc, argv, flags, pindex, opt_data); mu_argp_done (argp); if (rc) return rc; @@ -171,14 +172,14 @@ mfd_app_init (struct argp *myargp, const char **capa, exit (0); } else - mfd_parse_config_files (cfg_param, data); + mfd_parse_config_files (cfg_param, cfg_data); if (mu_cfg_parser_verbose) cfgflags |= MU_PARSE_CONFIG_VERBOSE; if (mu_cfg_parser_verbose > 1) cfgflags |= MU_PARSE_CONFIG_DUMP; rc = mu_cfg_tree_reduce (mu_argp_tree, mu_program_name, cfg_param, - cfgflags, data); + cfgflags, cfg_data); if (mu_rcfile_lint) { diff --git a/mfd/mailfromd.h b/mfd/mailfromd.h index a5c483c8..8782a1da 100644 --- a/mfd/mailfromd.h +++ b/mfd/mailfromd.h @@ -1056,7 +1056,8 @@ extern char *mu_app_rcfile; int mfd_app_init (struct argp *myargp, const char **capa, struct mu_cfg_param *cfg_param, - int argc, char **argv, int flags, int *pindex, void *data); + int argc, char **argv, int flags, int *pindex, + void *opt_data, void *cfg_data); /* deprecation.c */ @@ -2410,7 +2410,7 @@ main(int argc, char **argv) mu_app_rcfile = DEFAULT_CONFIG_FILE; init_arguments(&args); rc = mfd_app_init(&argp, capa, mf_cfg_param, argc, argv, - argpflag(argc, argv), &index, &args); + argpflag(argc, argv), &index, &args, NULL); if (rc) exit(EX_CONFIG); flush_arguments(&args); |