login

<     >

2014-11-14 17:45:46 (UTC-02:00)

Marcel Rodrigues <marcelgmr@gmail.com>

Check if directory already exists.

diff --git a/rover.c b/rover.c
index 1eff6e3..dfe226f 100644
--- a/rover.c
+++ b/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);