aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2009-11-18 17:14:07 +0200
committerSergey Poznyakoff <gray@gnu.org.ua>2009-11-18 17:14:07 +0200
commit05c40bae066c4621a483b521144aca14ec5d222a (patch)
tree2d79f43acc99d11f4ca0e655706f6afd0e472d1a
parentb1f6f2326b6cb1e65be78e1e8c19906b3a835dfc (diff)
downloadmailfromd-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.c9
-rw-r--r--mfd/mailfromd.h3
-rw-r--r--mfd/main.c2
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 */
diff --git a/mfd/main.c b/mfd/main.c
index 4e0a6685..9536c313 100644
--- a/mfd/main.c
+++ b/mfd/main.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);

Return to:

Send suggestions and report system problems to the System administrator.