Really fix broken option length check

Commit 7b4cb1320928bdea2360cf36fc45c83700052d43 matched the
string passed in, but that doesn't work for postfix values
appended.

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
diff --git a/parse.c b/parse.c
index e03592d..d806161 100644
--- a/parse.c
+++ b/parse.c
@@ -278,6 +278,17 @@
 	return 1;
 }
 
+static int opt_len(const char *str)
+{
+	char *postfix;
+
+	postfix = strchr(str, ':');
+	if (!postfix)
+		return strlen(str);
+
+	return (int)(postfix - str);
+}
+
 #define val_store(ptr, val, off, or, data)		\
 	do {						\
 		ptr = td_var((data), (off));		\
@@ -320,7 +331,7 @@
 			if (!vp->ival || vp->ival[0] == '\0')
 				continue;
 			all_skipped = 0;
-			if (!strncmp(vp->ival, ptr, strlen(ptr))) {
+			if (!strncmp(vp->ival, ptr, opt_len(ptr))) {
 				ret = 0;
 				if (o->roff1) {
 					if (vp->or)