This commit is contained in:
Arun Prakash Jana 2019-12-14 23:28:13 +05:30
parent d58ab38c52
commit 208a6605f5
No known key found for this signature in database
GPG key ID: A75979F35C080412
5 changed files with 18 additions and 5 deletions

View file

@ -25,6 +25,7 @@ _nnn ()
-n -n
-o -o
-p -p
-Q
-r -r
-R -R
-S -S

View file

@ -24,6 +24,7 @@ complete -c nnn -s K -d 'detect key collision'
complete -c nnn -s n -d 'use version compare to sort files' complete -c nnn -s n -d 'use version compare to sort files'
complete -c nnn -s o -d 'open files only on Enter' complete -c nnn -s o -d 'open files only on Enter'
complete -c nnn -s p -r -d 'copy selection to file' -a '-\tstdout' complete -c nnn -s p -r -d 'copy selection to file' -a '-\tstdout'
complete -c nnn -s Q -d 'disable quit confirmation'
complete -c nnn -s r -d 'show cp, mv progress (Linux-only)' complete -c nnn -s r -d 'show cp, mv progress (Linux-only)'
complete -c nnn -s R -d 'disable rollover at edges' complete -c nnn -s R -d 'disable rollover at edges'
complete -c nnn -s S -d 'start in disk usage analyzer mode' complete -c nnn -s S -d 'start in disk usage analyzer mode'

View file

@ -22,6 +22,7 @@ args=(
'(-n)-n[use version compare to sort files]' '(-n)-n[use version compare to sort files]'
'(-o)-o[open files only on Enter]' '(-o)-o[open files only on Enter]'
'(-p)-p[copy selection to file]:file name' '(-p)-p[copy selection to file]:file name'
'(-Q)-Q[disable quit confirmation]'
'(-r)-r[show cp, mv progress (Linux-only)]' '(-r)-r[show cp, mv progress (Linux-only)]'
'(-R)-R[disable rollover at edges]' '(-R)-R[disable rollover at edges]'
'(-S)-S[start in disk usage analyzer mode]' '(-S)-S[start in disk usage analyzer mode]'

4
nnn.1
View file

@ -18,6 +18,7 @@
.Op Ar -K .Op Ar -K
.Op Ar -n .Op Ar -n
.Op Ar -p file .Op Ar -p file
.Op Ar -Q
.Op Ar -r .Op Ar -r
.Op Ar -R .Op Ar -R
.Op Ar -S .Op Ar -S
@ -82,6 +83,9 @@ supports the following options:
.Fl "p file" .Fl "p file"
copy (or \fIpick\fR) selection to file, or stdout if file='-' copy (or \fIpick\fR) selection to file, or stdout if file='-'
.Pp .Pp
.Fl Q
disable confirmation when quitting program with multiple active contexts
.Pp
.Fl r .Fl r
show cp, mv progress (Linux-only, needs advcpmv; '^T' shows the progress on BSD/macOS) show cp, mv progress (Linux-only, needs advcpmv; '^T' shows the progress on BSD/macOS)
.Pp .Pp

View file

@ -227,8 +227,9 @@ typedef struct {
uint selmode : 1; /* Set when selecting files */ uint selmode : 1; /* Set when selecting files */
uint showdetail : 1; /* Clear to show fewer file info */ uint showdetail : 1; /* Clear to show fewer file info */
uint ctxactive : 1; /* Context active or not */ uint ctxactive : 1; /* Context active or not */
uint reserved : 3; uint reserved : 2;
/* The following settings are global */ /* The following settings are global */
uint forcequit : 1; /* Do not confirm when quitting program */
uint curctx : 2; /* Current context number */ uint curctx : 2; /* Current context number */
uint dircolor : 1; /* Current status of dir color */ uint dircolor : 1; /* Current status of dir color */
uint picker : 1; /* Write selection to user-specified file */ uint picker : 1; /* Write selection to user-specified file */
@ -281,6 +282,7 @@ static settings cfg = {
0, /* showdetail */ 0, /* showdetail */
1, /* ctxactive */ 1, /* ctxactive */
0, /* reserved */ 0, /* reserved */
0, /* forcequit */
0, /* curctx */ 0, /* curctx */
0, /* dircolor */ 0, /* dircolor */
0, /* picker */ 0, /* picker */
@ -5348,7 +5350,7 @@ nochange:
setdirwatch(); setdirwatch();
goto begin; goto begin;
} }
} else { } else if (!cfg.forcequit) {
for (r = 0; r < CTX_MAX; ++r) for (r = 0; r < CTX_MAX; ++r)
if (r != cfg.curctx && g_ctx[r].c_cfg.ctxactive) { if (r != cfg.curctx && g_ctx[r].c_cfg.ctxactive) {
r = get_input(messages[MSG_QUIT_ALL]); r = get_input(messages[MSG_QUIT_ALL]);
@ -5430,10 +5432,11 @@ static void usage(void)
" -n version sort\n" " -n version sort\n"
" -o open files on Enter\n" " -o open files on Enter\n"
" -p file selection file [stdout if '-']\n" " -p file selection file [stdout if '-']\n"
" -Q no quit confirmation\n"
" -r use advcpmv patched cp, mv\n" " -r use advcpmv patched cp, mv\n"
" -R disable rollover at edges\n" " -R no rollover at edges\n"
" -S du mode\n" " -S du mode\n"
" -t disable dir auto-select\n" " -t no dir auto-select\n"
" -v show version\n" " -v show version\n"
" -x notis, sel to system clipboard\n" " -x notis, sel to system clipboard\n"
" -h show help\n\n" " -h show help\n\n"
@ -5578,7 +5581,7 @@ int main(int argc, char *argv[])
bool progress = FALSE; bool progress = FALSE;
#endif #endif
while ((opt = getopt(argc, argv, "HSKiab:cde:Egnop:rRtvxh")) != -1) { while ((opt = getopt(argc, argv, "HSKiab:cde:Egnop:QrRtvxh")) != -1) {
switch (opt) { switch (opt) {
case 'S': case 'S':
cfg.blkorder = 1; cfg.blkorder = 1;
@ -5636,6 +5639,9 @@ int main(int argc, char *argv[])
unlink(g_selpath); unlink(g_selpath);
} }
break; break;
case 'Q':
cfg.forcequit = 1;
break;
case 'r': case 'r':
#ifdef __linux__ #ifdef __linux__
progress = TRUE; progress = TRUE;