On Monday 01 August 2011 20:07:04 Ramkumar Ramachandra wrote:
+static void verify_opt_mutually_compatible(const char *me, ...)
+{
+ const char *opt1, *opt2;
+ va_list ap;
+ int set;
+
+ va_start(ap, me);
+ while ((opt1 = va_arg(ap, const char *))) {
+ set = va_arg(ap, int);
+ if (set)
+ break;
+ }
+ if (!opt1)
+ goto ok;
+ while ((opt2 = va_arg(ap, const char *))) {
+ set = va_arg(ap, int);
+ if (set) {
+ va_end(ap);
+ die(_("%s: %s cannot be used with %s"),
+ me, opt1, opt2);
+ }
+ }
+ok:
+ va_end(ap);
+}
I'd suggest something like this:
static void verify_opt_mutually_compatible(const char *me, ...)
{
const char *opt1, *opt2;
va_list ap;
va_start(ap, me);
while ((opt1 = va_arg(ap, const char *))) {
int set = va_arg(ap, int);
if (set)
break;
}
if (opt1) {
while ((opt2 = va_arg(ap, const char *))) {
int set = va_arg(ap, int);
if (set)
break;
}
}
va_end(ap);
if (opt1 && opt2)
die(_("%s: %s cannot be used with %s"), me, opt1, opt2);
}
Thanks,
Christian.