diff options
author | Sergey Poznyakoff <gray@gnu.org> | 2017-06-15 22:09:30 +0300 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2017-06-16 09:50:36 +0300 |
commit | c1f2442cd53e43cf11cc8f5b649b454b3f2cb03f (patch) | |
tree | 6ef0b4a8d01cb81d8f4f1ae2757ad4047ebb03f5 /mh/mh_getopt.c | |
parent | 8b5715db380634336a231b0c8573c350992c8dce (diff) | |
parent | fe90e86dac8c9c91a35347ee5bb4513195263ee2 (diff) | |
download | mailutils-c1f2442cd53e43cf11cc8f5b649b454b3f2cb03f.tar.gz mailutils-c1f2442cd53e43cf11cc8f5b649b454b3f2cb03f.tar.bz2 |
Merge branch 'master' into locus
Diffstat (limited to 'mh/mh_getopt.c')
-rw-r--r-- | mh/mh_getopt.c | 44 |
1 files changed, 41 insertions, 3 deletions
diff --git a/mh/mh_getopt.c b/mh/mh_getopt.c index 65fe3e8c7..16a6e5c55 100644 --- a/mh/mh_getopt.c +++ b/mh/mh_getopt.c @@ -181,6 +181,35 @@ has_folder_option (struct mu_option *opt) +static void +opt_init (struct mu_parseopt *po, + struct mu_option **optv, struct mh_optinit *optinit) +{ + if (!optinit) + return; + for (; optinit->opt; optinit++) + { + size_t i; + for (i = 0; optv[i]; i++) + { + struct mu_option *opt; + for (opt = optv[i]; !MU_OPTION_IS_END (opt); opt++) + { + if (strcmp (opt->opt_long, optinit->opt) == 0) + { + char const *val = mh_global_profile_get (optinit->var, NULL); + if (val) + { + (opt->opt_set ? + opt->opt_set : mu_option_set_value) (po, opt, val); + } + break; + } + } + } + } +} + void -mh_getopt (int *pargc, char ***pargv, struct mu_option *options, - int mhflags, - char *argdoc, char *progdoc, char *extradoc) +mh_getopt_ext (int *pargc, char ***pargv, struct mu_option *options, + int mhflags, struct mh_optinit *optinit, + char *argdoc, char *progdoc, char *extradoc) { @@ -258,2 +287,3 @@ mh_getopt (int *pargc, char ***pargv, struct mu_option *options, optv[i] = NULL; + opt_init (&po, optv, optinit); @@ -287,2 +317,10 @@ mh_getopt (int *pargc, char ***pargv, struct mu_option *options, void +mh_getopt (int *pargc, char ***pargv, struct mu_option *options, + int mhflags, char *argdoc, char *progdoc, char *extradoc) +{ + mh_getopt_ext (pargc, pargv, options, mhflags, NULL, argdoc, progdoc, + extradoc); +} + +void mh_opt_notimpl (struct mu_parseopt *po, struct mu_option *opt, char const *arg) |