One notify FIFO mode at a time

This commit is contained in:
Arun Prakash Jana 2021-06-20 21:41:16 +05:30
parent d9f988e7ed
commit 94c399e2cf
No known key found for this signature in database
GPG key ID: A75979F35C080412
2 changed files with 13 additions and 12 deletions

2
nnn.1
View file

@ -76,7 +76,7 @@ supports the following options:
.Pp .Pp
.Fl "F val" .Fl "F val"
fifo notification mode fifo notification mode
0: notify as previewer, 1: notify as explorer, 2: both 0: notify as previewer, 1: notify as explorer
.Pp .Pp
.Fl g .Fl g
use regex filters instead of substring match use regex filters instead of substring match

View file

@ -326,7 +326,7 @@ typedef struct {
uint_t dircolor : 1; /* Current status of dir color */ uint_t dircolor : 1; /* Current status of dir color */
uint_t dirctx : 1; /* Show dirs in context color */ uint_t dirctx : 1; /* Show dirs in context color */
uint_t duinit : 1; /* Initialize disk usage */ uint_t duinit : 1; /* Initialize disk usage */
uint_t fifobits : 2; /* FIFO notify mode: b00: previewer, b01: explorer, b10: both */ uint_t fifomode : 1; /* FIFO notify mode: 0: preview, 1: explore */
uint_t forcequit : 1; /* Do not prompt on quit */ uint_t forcequit : 1; /* Do not prompt on quit */
uint_t initfile : 1; /* Positional arg is a file */ uint_t initfile : 1; /* Positional arg is a file */
uint_t interrupt : 1; /* Program received an interrupt */ uint_t interrupt : 1; /* Program received an interrupt */
@ -343,7 +343,7 @@ typedef struct {
uint_t stayonsel : 1; /* Disable auto-proceed on select */ uint_t stayonsel : 1; /* Disable auto-proceed on select */
uint_t trash : 2; /* Use trash to delete files 1: trash-cli, 2: gio trash */ uint_t trash : 2; /* Use trash to delete files 1: trash-cli, 2: gio trash */
uint_t uidgid : 1; /* Show owner and group info */ uint_t uidgid : 1; /* Show owner and group info */
uint_t reserved : 6; /* Adjust when adding/removing a field */ uint_t reserved : 7; /* Adjust when adding/removing a field */
} runstate; } runstate;
/* Contexts or workspaces */ /* Contexts or workspaces */
@ -2760,7 +2760,7 @@ try_quit:
c = CONTROL('Q'); c = CONTROL('Q');
} else { } else {
#ifndef NOFIFO #ifndef NOFIFO
if (!(g_state.fifobits & 1)) if (!g_state.fifomode)
notify_fifo(TRUE); /* Send hovered path to NNN_FIFO */ notify_fifo(TRUE); /* Send hovered path to NNN_FIFO */
#endif #endif
escaped = TRUE; escaped = TRUE;
@ -5481,7 +5481,7 @@ static void move_cursor(int target, int ignore_scrolloff)
curscroll = MAX(curscroll, MAX(cur - (onscreen - 1), 0)); curscroll = MAX(curscroll, MAX(cur - (onscreen - 1), 0));
#ifndef NOFIFO #ifndef NOFIFO
if (!(g_state.fifobits & 1)) if (!g_state.fifomode)
notify_fifo(FALSE); /* Send hovered path to NNN_FIFO */ notify_fifo(FALSE); /* Send hovered path to NNN_FIFO */
#endif #endif
} }
@ -6347,7 +6347,7 @@ nochange:
if (r != cur) if (r != cur)
move_cursor(r, 1); move_cursor(r, 1);
#ifndef NOFIFO #ifndef NOFIFO
else if ((event.bstate == BUTTON1_PRESSED) && !(g_state.fifobits & 1)) else if ((event.bstate == BUTTON1_PRESSED) && !g_state.fifomode)
notify_fifo(TRUE); /* Send clicked path to NNN_FIFO */ notify_fifo(TRUE); /* Send clicked path to NNN_FIFO */
#endif #endif
/* Handle right click selection */ /* Handle right click selection */
@ -6421,13 +6421,13 @@ nochange:
goto nochange; goto nochange;
} }
#ifndef NOFIFO #ifndef NOFIFO
if (g_state.fifobits && sel == SEL_OPEN) { if (g_state.fifomode && (sel == SEL_OPEN)) {
notify_fifo(TRUE); /* Send opened path to NNN_FIFO */ notify_fifo(TRUE); /* Send opened path to NNN_FIFO */
goto nochange; goto nochange;
} }
#endif #endif
/* If opened as vim plugin and Enter/^M pressed, pick */ /* If opened as vim plugin and Enter/^M pressed, pick */
if (g_state.picker && sel == SEL_OPEN) { if (g_state.picker && (sel == SEL_OPEN)) {
appendfpath(newpath, mkpath(path, pent->name, newpath)); appendfpath(newpath, mkpath(path, pent->name, newpath));
writesel(pselbuf, selbufpos - 1); writesel(pselbuf, selbufpos - 1);
return EXIT_SUCCESS; return EXIT_SUCCESS;
@ -7635,7 +7635,7 @@ static void usage(void)
" -f use readline history file\n" " -f use readline history file\n"
#endif #endif
#ifndef NOFIFO #ifndef NOFIFO
" -F val fifo mode [0:preview 1:explore 2:both]\n" " -F val fifo mode [0:preview 1:explore]\n"
#endif #endif
" -g regex filters\n" " -g regex filters\n"
" -H show hidden files\n" " -H show hidden files\n"
@ -7861,9 +7861,9 @@ int main(int argc, char *argv[])
case 'F': case 'F':
if (env_opts_id < 0) { if (env_opts_id < 0) {
fd = atoi(optarg); fd = atoi(optarg);
if ((fd < 0) || (fd > 2)) if ((fd < 0) || (fd > 1))
return EXIT_FAILURE; return EXIT_FAILURE;
g_state.fifobits = fd; g_state.fifomode = fd;
} }
break; break;
#endif #endif
@ -8269,6 +8269,7 @@ int main(int argc, char *argv[])
#endif #endif
#ifndef NOFIFO #ifndef NOFIFO
if (!g_state.fifomode)
notify_fifo(FALSE); notify_fifo(FALSE);
if (fifofd != -1) if (fifofd != -1)
close(fifofd); close(fifofd);