Thread (33 messages) flat view 33 messages, 2 authors, 2016-06-15

Re: [PATCH 17/18] revert: Introduce --continue to continue the operation

From: Christian Couder <hidden>
Date: 2016-06-15 22:51:43

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.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help