Commit Diff


commit - 97217d57091c4a13a330ba8e01ad3ec9924aa958
commit + e0d6077a7ad1031111d79bf441dc4e7e513aed66
blob - 8846519910c56eb524814bcba737a5615402c19a
blob + 5f35413923eedee78275f9a9896c64493ea0871a
--- README.md
+++ 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
blob - ff36965fa2a816de06d63f4dba5f4bcf9e080463
blob + b1f450df140b3c753594f2bbd6b58443228c153e
--- config.h
+++ 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
blob - 3b95ebcc9fb98079f6ff0a4c8707be3fc34b7c4d
blob + 2d8241f6a11e82af163b358372d5febe1c6c1441
--- rover.1
+++ 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
blob - 5aad957df549807821297f1d8b7219169ce628d9
blob + 7a47eead56977d5168d7ceb4eb54a4a73acaa54b
--- rover.c
+++ 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