#define MSG_BOOKMARK_KEYS 36
#define MSG_INVALID_REG 37
#define MSG_ORDER 38
+#define MSG_EDIT_SEL 39
static const char * const messages[] = {
"no traversal",
"bookmark keys:",
"invalid regex",
"toggle 'a'u / 'd'u / 'e'xtn / 'r'everse / 's'ize / 't'ime / 'v'ersion?",
+ "edit sel?",
};
/* Supported configuration environment variables */
"cP Copy sel here%-11ca Select all\n"
"cV Move sel here%-10c^V Copy/move sel as\n"
"cX Delete sel%-13c^X Delete entry\n"
- "cy List sel%-15c^Y Edit sel\n"
- "9o ^T Order toggle%-0c\n"
+ "9o ^T Order toggle%-11c^Y List, edit sel\n"
"1MISC\n"
"9! ^] Shell%-16c; ^F Fire plugin\n"
"c] Cmd prompt%-13c^P Pick plugin\n"
plugscript(utils[UTIL_CBCP], newpath, F_NOWAIT | F_NOTRACE);
continue;
case SEL_SELLIST:
- if (listselbuf() || listselfile()) {
- if (cfg.filtermode)
- presel = FILTER;
- break;
+ if (!listselbuf() && !listselfile()) {
+ printwait(messages[MSG_0_SELECTED], &presel);
+ goto nochange;
}
- printwait(messages[MSG_0_SELECTED], &presel);
- goto nochange;
- case SEL_SELEDIT:
+
+ r = get_input(messages[MSG_EDIT_SEL]);
+ if (r != 'y' && r != 'Y') {
+ cfg.filtermode ? presel = FILTER : statusbar(path);
+ goto nochange;
+ }
+
r = editselection();
- if (r <= 0) {
- const char *msg
- = (!r ? messages[MSG_0_SELECTED] : messages[MSG_FAILED]);
- printwait(msg, &presel);
+ if (r <= 0) { /* Cannot be equal to 0 though as listing guards */
+ printwait(messages[MSG_FAILED], &presel);
goto nochange;
- } else if (cfg.x11)
+ }
+
+ if (cfg.x11)
plugscript(utils[UTIL_CBCP], newpath, F_NOWAIT | F_NOTRACE);
- break;
+
+ cfg.filtermode ? presel = FILTER : statusbar(path);
+ goto nochange;
case SEL_CP: // fallthrough
case SEL_MV: // fallthrough
case SEL_CPMVAS: // fallthrough
SEL_SELMUL,
SEL_SELALL,
SEL_SELLIST,
- SEL_SELEDIT,
SEL_CP,
SEL_MV,
SEL_CPMVAS,
{ CONTROL('K'), SEL_SELMUL },
/* Select all files in current dir */
{ 'a', SEL_SELALL },
- /* Show list of copied files */
+ /* List, edit selection */
{ 'y', SEL_SELLIST },
- /* Edit selection buffer */
- { CONTROL('Y'), SEL_SELEDIT },
/* Copy from selection buffer */
{ 'P', SEL_CP },
/* Move from selection buffer */