login

<     >

2015-05-26 21:34:59 (UTC-03:00)

Marcel Rodrigues <marcelgmr@gmail.com>

Add 'x' to delete selected entry.

diff --git a/README.md b/README.md
index 8846519..5f35413 100644
--- a/README.md
+++ b/README.md
@@ -43,6 +43,7 @@ Quick Start
    f/d/s - toggle file/directory/hidden listing
      n/N - create new file/directory
        r - rename selected file or directory
+       x - delete selected file or (empty) directory
        m - toggle mark on the selected entry
        M - toggle mark on all visible entries
        a - mark all visible entries

diff --git a/config.h b/config.h
index ff36965..b1f450d 100644
--- a/config.h
+++ b/config.h
@@ -22,12 +22,13 @@
 #define RVK_NEW_FILE    "n"
 #define RVK_NEW_DIR     "N"
 #define RVK_RENAME      "r"
+#define RVK_DELETE      "x"
 #define RVK_TG_MARK     "m"
 #define RVK_INVMARK     "M"
 #define RVK_MARKALL     "a"
-#define RVK_DELETE      "X"
-#define RVK_COPY        "C"
-#define RVK_MOVE        "V"
+#define RVK_MARK_DELETE "X"
+#define RVK_MARK_COPY   "C"
+#define RVK_MARK_MOVE   "V"
 
 /* Colors available: DEFAULT, RED, GREEN, YELLOW, BLUE, CYAN, MAGENTA, WHITE. */
 #define RVC_CWD         GREEN

diff --git a/rover.1 b/rover.1
index 3b95ebc..2d8241f 100644
--- a/rover.1
+++ b/rover.1
@@ -105,6 +105,9 @@ Create new file/directory.
 .B r
 Rename selected file or directory.
 .TP
+.B x
+Delete selected file or (empty) directory.
+.TP
 .B m
 Toggle mark on the selected entry.
 .TP

diff --git a/rover.c b/rover.c
index 5aad957..7a47eea 100644
--- a/rover.c
+++ b/rover.c
@@ -1020,6 +1020,19 @@ main(int argc, char *argv[])
                 } else
                     message("File already exists.", RED);
             }
+        } else if (!strcmp(key, RVK_DELETE)) {
+            if (rover.nfiles) {
+                message("Delete selected entry? (Y to confirm)", YELLOW);
+                if (getch() == 'Y') {
+                    const char *name = ENAME(ESEL);
+                    int ret = ISDIR(name) ? deldir(name) : delfile(name);
+                    reload();
+                    if (ret)
+                        message("Could not delete entry.", RED);
+                } else
+                    clear_message();
+            } else
+                  message("No entry selected for deletion.", RED);
         } else if (!strcmp(key, RVK_TG_MARK)) {
             if (MARKED(ESEL))
                 del_mark(&rover.marks, ENAME(ESEL));
@@ -1044,7 +1057,7 @@ main(int argc, char *argv[])
                     MARKED(i) = 1;
                 }
             update_view();
-        } else if (!strcmp(key, RVK_DELETE)) {
+        } else if (!strcmp(key, RVK_MARK_DELETE)) {
             if (rover.marks.nentries) {
                 message("Delete marked entries? (Y to confirm)", YELLOW);
                 if (getch() == 'Y')
@@ -1053,12 +1066,12 @@ main(int argc, char *argv[])
                     clear_message();
             } else
                 message("No entries marked for deletion.", RED);
-        } else if (!strcmp(key, RVK_COPY)) {
+        } else if (!strcmp(key, RVK_MARK_COPY)) {
             if (rover.marks.nentries)
                 process_marked(adddir, cpyfile, NULL);
             else
                 message("No entries marked for copying.", RED);
-        } else if (!strcmp(key, RVK_MOVE)) {
+        } else if (!strcmp(key, RVK_MARK_MOVE)) {
             if (rover.marks.nentries)
                 process_marked(adddir, movfile, deldir);
             else