login

<     >

2014-11-14 15:37:13 (UTC-02:00)

Marcel Rodrigues <marcelgmr@gmail.com>

Add rename support.

diff --git a/config.h b/config.h
index 48abfa8..7bf2807 100644
--- a/config.h
+++ b/config.h
@@ -18,6 +18,7 @@
 #define RVK_TG_HIDDEN   "s"
 #define RVK_NEW_FILE    "n"
 #define RVK_NEW_DIR     "N"
+#define RVK_RENAME      "r"
 #define RVK_TG_MARK     "m"
 #define RVK_INVMARK     "M"
 #define RVK_MARKALL     "a"

diff --git a/rover.c b/rover.c
index 28b7aae..1eff6e3 100644
--- a/rover.c
+++ b/rover.c
@@ -843,6 +843,27 @@ main(int argc, char *argv[])
             }
             cd(1);
         }
+        else if (!strcmp(key, RVK_RENAME)) {
+            int ok = 0;
+            char *prompt = "rename: ";
+            strcpy(INPUT, "");
+            update_input(prompt, DEFAULT);
+            while (igetstr(INPUT, INPUTSZ)) {
+                ok = 1;
+                for (i = 0; i < rover.nfiles; i++)
+                    if (!strcmp(FNAME(i), INPUT)) {
+                        ok = 0;
+                        break;
+                    }
+                update_input(prompt, ok ? GREEN : RED);
+            }
+            mvhline(LINES - 1, 0, ' ', STATUSPOS);
+            if (strlen(INPUT)) {
+                if (ok) rename(FNAME(FSEL), INPUT);
+                else message("File already exists.", RED);
+            }
+            cd(1);
+        }
         else if (!strcmp(key, RVK_TG_MARK)) {
             if (MARKED(FSEL))
                 del_mark(&rover.marks, FNAME(FSEL));