Commit Diff


commit - bdb195d03d2b78f6f18de4b69de12fd3556b64f2
commit + e444d3b10c1abc84f59eea171cfdb637d9891c0b
blob - 1eff6e3f51be0e78f3e048397e013a519cbca917
blob + dfe226f422b44d25456a909671aac60441471631
--- rover.c
+++ rover.c
@@ -808,11 +808,14 @@ main(int argc, char *argv[])
             update_input(prompt, DEFAULT);
             while (igetstr(INPUT, INPUTSZ)) {
                 ok = 1;
-                for (i = 0; i < rover.nfiles; i++)
-                    if (!strcmp(FNAME(i), INPUT)) {
+                for (i = 0; i < rover.nfiles; i++) {
+                    int n = strlen(FNAME(i));
+                    if (FNAME(i)[n - 1] == '/') n--;
+                    if (!strncmp(FNAME(i), INPUT, n)) {
                         ok = 0;
                         break;
                     }
+                }
                 update_input(prompt, ok ? GREEN : RED);
             }
             mvhline(LINES - 1, 0, ' ', STATUSPOS);
@@ -829,11 +832,14 @@ main(int argc, char *argv[])
             update_input(prompt, DEFAULT);
             while (igetstr(INPUT, INPUTSZ)) {
                 ok = 1;
-                for (i = 0; i < rover.nfiles; i++)
-                    if (!strcmp(FNAME(i), INPUT)) {
+                for (i = 0; i < rover.nfiles; i++) {
+                    int n = strlen(FNAME(i));
+                    if (FNAME(i)[n - 1] == '/') n--;
+                    if (!strncmp(FNAME(i), INPUT, n)) {
                         ok = 0;
                         break;
                     }
+                }
                 update_input(prompt, ok ? GREEN : RED);
             }
             mvhline(LINES - 1, 0, ' ', STATUSPOS);
@@ -850,11 +856,14 @@ main(int argc, char *argv[])
             update_input(prompt, DEFAULT);
             while (igetstr(INPUT, INPUTSZ)) {
                 ok = 1;
-                for (i = 0; i < rover.nfiles; i++)
-                    if (!strcmp(FNAME(i), INPUT)) {
+                for (i = 0; i < rover.nfiles; i++) {
+                    int n = strlen(FNAME(i));
+                    if (FNAME(i)[n - 1] == '/') n--;
+                    if (!strncmp(FNAME(i), INPUT, n)) {
                         ok = 0;
                         break;
                     }
+                }
                 update_input(prompt, ok ? GREEN : RED);
             }
             mvhline(LINES - 1, 0, ' ', STATUSPOS);