mirror of
https://github.com/jarun/nnn.git
synced 2024-11-28 05:41:31 +00:00
Fix #976: check external selection in 'c'urrent / 's'el prompt
This commit is contained in:
parent
7a7fd5fcab
commit
163102e8ae
22
src/nnn.c
22
src/nnn.c
|
@ -1258,10 +1258,21 @@ static int get_input(const char *prompt)
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool isselfileempty(void)
|
||||||
|
{
|
||||||
|
struct stat sb;
|
||||||
|
|
||||||
|
return (stat(selpath, &sb) == -1) || (!sb.st_size);
|
||||||
|
}
|
||||||
|
|
||||||
static int get_cur_or_sel(void)
|
static int get_cur_or_sel(void)
|
||||||
{
|
{
|
||||||
if (selbufpos && ndents) {
|
/* Check both local buffer and selection file for external selection */
|
||||||
if (cfg.prefersel)
|
if ((selbufpos || !isselfileempty()) && ndents) {
|
||||||
|
/* If selection is preferred and we have a local selection, return selection.
|
||||||
|
* Always show the prompt in case of an external selection.
|
||||||
|
*/
|
||||||
|
if (cfg.prefersel && selbufpos)
|
||||||
return 's';
|
return 's';
|
||||||
|
|
||||||
int choice = get_input(messages[MSG_CUR_SEL_OPTS]);
|
int choice = get_input(messages[MSG_CUR_SEL_OPTS]);
|
||||||
|
@ -1379,13 +1390,6 @@ static size_t seltofile(int fd, uint_t *pcount)
|
||||||
return pos;
|
return pos;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool isselfileempty(void)
|
|
||||||
{
|
|
||||||
struct stat sb;
|
|
||||||
|
|
||||||
return (stat(selpath, &sb) == -1) || (!sb.st_size);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* List selection from selection file (another instance) */
|
/* List selection from selection file (another instance) */
|
||||||
static bool listselfile(void)
|
static bool listselfile(void)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue