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