From 600286b62724829e10fce1df1b014f392e44f4aa Mon Sep 17 00:00:00 2001 From: Arun Prakash Jana Date: Wed, 10 Feb 2021 04:48:11 +0530 Subject: [PATCH] Always prefer selection over current file If you have selected some files, you intend to work on them. Also, this prompt expects c / s which should cancel the next prompt in the delete workflow. Rest of the three workflows are non-fatal. Benefits of removing this option: - code reduction - one less step in the relevant workflows (more than one prompt feels dragged) This prompt shows in the following workflows: - delete: users have explicitly requested to prefer sel over current - batch rename: key ^R renames a single file - archive: in most of the cases the user would want to archive the selection - create sym/hard link: not a frequently used workflow (in general) --- misc/auto-completion/bash/nnn-completion.bash | 1 - misc/auto-completion/fish/nnn.fish | 1 - misc/auto-completion/zsh/_nnn | 1 - nnn.1 | 4 --- src/nnn.c | 27 ++++--------------- 5 files changed, 5 insertions(+), 29 deletions(-) diff --git a/misc/auto-completion/bash/nnn-completion.bash b/misc/auto-completion/bash/nnn-completion.bash index cb2b6f28..88401248 100644 --- a/misc/auto-completion/bash/nnn-completion.bash +++ b/misc/auto-completion/bash/nnn-completion.bash @@ -39,7 +39,6 @@ _nnn () -S -t -T - -u -U -V -w diff --git a/misc/auto-completion/fish/nnn.fish b/misc/auto-completion/fish/nnn.fish index fdd27f89..f3093e6c 100644 --- a/misc/auto-completion/fish/nnn.fish +++ b/misc/auto-completion/fish/nnn.fish @@ -38,7 +38,6 @@ complete -c nnn -s s -r -d 'load session by name' -x -a '@\t"last session" (ls $ complete -c nnn -s S -d 'persistent session' complete -c nnn -s t -r -d 'timeout in seconds to lock' complete -c nnn -s T -r -d 'a d e r s t v' -complete -c nnn -s u -d 'use selection (no prompt)' complete -c nnn -s U -d 'show user and group' complete -c nnn -s V -d 'show program version and exit' complete -c nnn -s w -d 'hardware cursor mode' diff --git a/misc/auto-completion/zsh/_nnn b/misc/auto-completion/zsh/_nnn index 9a33020c..44341fe2 100644 --- a/misc/auto-completion/zsh/_nnn +++ b/misc/auto-completion/zsh/_nnn @@ -36,7 +36,6 @@ args=( '(-S)-S[persistent session]' '(-t)-t[timeout to lock]:seconds' '(-T)-T[a d e r s t v]:key' - '(-u)-u[use selection (no prompt)]' '(-U)-U[show user and group]' '(-V)-V[show program version and exit]' '(-w)-C[hardware cursor mode]' diff --git a/nnn.1 b/nnn.1 index 1a752fa7..e07709be 100644 --- a/nnn.1 +++ b/nnn.1 @@ -32,7 +32,6 @@ .Op Ar -S .Op Ar -t secs .Op Ar -T key -.Op Ar -u .Op Ar -U .Op Ar -V .Op Ar -w @@ -145,9 +144,6 @@ supports the following options: sort order keys: 'a'u / 'd'u / 'e'xtension / 'r'everse / 's'ize / 't'ime / 'v'ersion .Pp -.Fl u - use selection if available, don't prompt to choose between selection and hovered entry -.Pp .Fl U show user and group names in status bar .Pp diff --git a/src/nnn.c b/src/nnn.c index 8edb2a2a..e4f78df3 100644 --- a/src/nnn.c +++ b/src/nnn.c @@ -294,8 +294,7 @@ typedef struct { uint_t reserved1 : 1; /* The following settings are global */ uint_t curctx : 3; /* Current context number */ - uint_t prefersel : 1; /* Prefer selection over current, if exists */ - uint_t reserved2 : 1; + uint_t reserved2 : 2; uint_t nonavopen : 1; /* Open file on right arrow or `l` */ uint_t autoselect : 1; /* Auto-select dir in type-to-nav mode */ uint_t cursormode : 1; /* Move hardware cursor with selection */ @@ -372,7 +371,6 @@ static settings cfg = { 0, /* version */ 0, /* reserved1 */ 0, /* curctx */ - 0, /* prefersel */ 0, /* reserved2 */ 0, /* nonavopen */ 1, /* autoselect */ @@ -525,7 +523,7 @@ static char * const utils[] = { #define MSG_FAILED 5 #define MSG_SSN_NAME 6 #define MSG_CP_MV_AS 7 -#define MSG_CUR_SEL_OPTS 8 +#define MSG_NOCHNAGE 8 #define MSG_FORCE_RM 9 #define MSG_LIMIT 10 #define MSG_NEW_OPTS 11 @@ -558,9 +556,8 @@ static char * const utils[] = { #define MSG_LAZY 38 #define MSG_FIRST 39 #define MSG_RM_TMP 40 -#define MSG_NOCHNAGE 41 #ifndef DIR_LIMITED_SELECTION -#define MSG_DIR_CHANGED 42 /* Must be the last entry */ +#define MSG_DIR_CHANGED 41 /* Must be the last entry */ #endif static const char * const messages[] = { @@ -572,7 +569,7 @@ static const char * const messages[] = { "failed!", "session name: ", "'c'p / 'm'v as?", - "'c'urrent / 's'el?", + "unchanged", "rm -rf %s file%s? [Esc cancels]", "limit exceeded", "'f'ile / 'd'ir / 's'ym / 'h'ard?", @@ -605,7 +602,6 @@ static const char * const messages[] = { "unmount failed! try lazy?", "first file (\')/char?", "remove tmp file?", - "unchanged", #ifndef DIR_LIMITED_SELECTION "dir changed, range sel off", /* Must be the last entry */ #endif @@ -1223,15 +1219,6 @@ static int get_input(const char *prompt) static int get_cur_or_sel(void) { - if (selbufpos && ndents) { - if (cfg.prefersel) - return 's'; - - int choice = get_input(messages[MSG_CUR_SEL_OPTS]); - - return ((choice == 'c' || choice == 's') ? choice : 0); - } - if (selbufpos) return 's'; @@ -7428,7 +7415,6 @@ static void usage(void) #endif " -t secs timeout to lock\n" " -T key sort order [a/d/e/r/s/t/v]\n" - " -u use selection (no prompt)\n" #ifndef NOUG " -U show user and group\n" #endif @@ -7585,7 +7571,7 @@ int main(int argc, char *argv[]) while ((opt = (env_opts_id > 0 ? env_opts[--env_opts_id] - : getopt(argc, argv, "aAb:cCdDeEfFgHJKl:nop:P:QrRs:St:T:uUVwxh"))) != -1) { + : getopt(argc, argv, "aAb:cCdDeEfFgHJKl:nop:P:QrRs:St:T:UVwxh"))) != -1) { switch (opt) { #ifndef NOFIFO case 'a': @@ -7701,9 +7687,6 @@ int main(int argc, char *argv[]) if (env_opts_id < 0) sort = (uchar_t)optarg[0]; break; - case 'u': - cfg.prefersel = 1; - break; case 'U': g_state.uidgid = 1; break;