Radish alpha
H
HardenedBSD Package Manager
Radicle
Git (anonymous pull)
Log in to clone via SSH
Remove some strlen()
jlaffaye committed 15 years ago
commit 6d03f3f249984c433408e80631e1975d610f4b6c
parent 9471b3521b2f2dd32323f8f8c8f55e78cdcb08ce
1 file changed +10 -8
modified pkg/main.c
@@ -32,26 +32,28 @@ main(int argc, char **argv)
	int i;
	struct commands *command = NULL;
	int ambiguous = 0;
+
	size_t len;

	if (argc < 2)
		usage();

+
	len = strlen(argv[1]);
	for (i = 0; cmd[i].name != NULL; i++) {
-
		if (strlen(cmd[i].name) < strlen(argv[1]))
-
			continue;
-

-
		if (strncmp(argv[1], cmd[i].name, strlen(argv[1])) == 0) {
+
		if (strncmp(argv[1], cmd[i].name, len) == 0) {
			/* if we have the exact cmd */
-

-
			if (strlen(argv[1]) == strlen(cmd[i].name)) {
+
			if (len == sizeof(cmd[i].name) - 1) {
				command = &cmd[i];
				ambiguous = 0;
				break;
			}

-
			if (command != NULL) {
+
			/*
+
			 * we already found a partial match so `argv[1]' is
+
			 * an ambigous shortcut
+
			 */
+
			if (command != NULL)
				ambiguous = 1;
-
			}
+

			command = &cmd[i];
		}
	}