New applet: sendmail
Tito
farmatito at tiscali.it
Sat Feb 2 20:37:48 UTC 2008
On Saturday 02 February 2008 21:06:52 Vladimir Dronnikov wrote:
> >
> > Hi,
> > maybe check the applet_name at startup and then
> >
> > if (applet_name[0] == 'f')
> > getopt32(.............................);
> > else
> > getopt32(.............................);
> >
> __________________
> Sure! But I meant the following:
> unsigned opts = getopt32(argv, common_options);
> ...
> if ( <sendmail> ) opts = getopt32(argv, sendmail_specific_options);
> else opts = getopt32(argv, fetchmail_specific_options);
I suspect this will cause evil results, i think it is better to isolate
the option parsing between fetchmail and sendmail.
Maybe it is possible to use a single getopt32 call tough....
char *opt_string;
if (sendmail) {
opt_complementary = "f:t::b::a::";
opt_string = "f:t:n::s:b:a:c:" USE_FEATURE_SENDMAIL_NETWORK("dw:h:p:U:P:");
} else {
opt_complementary = "whatever";
opt_string = "aqwerty";
}
opts = getopt32(argv,
opt_string,
&from, &recipients, ¬ify, &subject, &bodies, &attachments, &charset
USE_FEATURE_SENDMAIL_NETWORK(, &wsecs, &server, &port, &opt_user, &opt_pass)
);
but only if there are similar options that take arguments.
IMHO the best solution is to use two independent getopt32 calls.
Ciao,
Tito
> You see, if we launch, say, sendmail then the first call to getopt32
> would fail [showing bb_usage()] on any fetchmail_specific_options and
> even on sendmail_specific_options, since it is not aware of these
> specific options!
>
> So is there a way to tell getopt32 to not fail on unknown options?
>
> Thank you for reply
>
> --
> Vladimir
>
More information about the busybox
mailing list