In set_refuse_options(): make sure we scan the whole list of options
and avoid complaining about a wild-card spec that actually matches
one or more options.
diff --git a/options.c b/options.c
index b0cf723..563f043 100644
--- a/options.c
+++ b/options.c
@@ -440,7 +440,7 @@
 {
 	struct poptOption *op;
 	char *cp, shortname[2];
-	int is_wild;
+	int is_wild, found_match;
 
 	shortname[1] = '\0';
 
@@ -454,20 +454,23 @@
 		if (strcmp(bp, "delete") == 0)
 			bp = "delete*";
 		is_wild = strpbrk(bp, "*?[") != NULL;
+		found_match = 0;
 		for (op = long_options; ; op++) {
-			if (!op->longName) {
-				rprintf(FLOG,
-				    "No match for refuse-options string \"%s\"\n",
-				    bp);
-				break;
-			}
 			*shortname = op->shortName;
-			if (wildmatch(bp, op->longName) || wildmatch(bp, shortname)) {
+			if (!op->longName && !*shortname)
+				break;
+			if ((op->longName && wildmatch(bp, op->longName))
+			    || (*shortname && wildmatch(bp, shortname))) {
 				op->val = (op - long_options) + OPT_REFUSED_BASE;
+				found_match = 1;
 				if (!is_wild)
 					break;
 			}
 		}
+		if (!found_match) {
+			rprintf(FLOG, "No match for refuse-options string \"%s\"\n",
+				bp);
+		}
 		if (!cp)
 			break;
 		*cp = ' ';