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));