Fix #976: check external selection in 'c'urrent / 's'el prompt

This commit is contained in:
Arun Prakash Jana 2021-04-28 11:42:57 +05:30
parent 7a7fd5fcab
commit 163102e8ae
No known key found for this signature in database
GPG Key ID: A75979F35C080412
1 changed files with 13 additions and 9 deletions

View File

@ -1258,10 +1258,21 @@ static int get_input(const char *prompt)
return r;
}
static bool isselfileempty(void)
{
struct stat sb;
return (stat(selpath, &sb) == -1) || (!sb.st_size);
}
static int get_cur_or_sel(void)
{
if (selbufpos && ndents) {
if (cfg.prefersel)
/* Check both local buffer and selection file for external selection */
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';
int choice = get_input(messages[MSG_CUR_SEL_OPTS]);
@ -1379,13 +1390,6 @@ static size_t seltofile(int fd, uint_t *pcount)
return pos;
}
static bool isselfileempty(void)
{
struct stat sb;
return (stat(selpath, &sb) == -1) || (!sb.st_size);
}
/* List selection from selection file (another instance) */
static bool listselfile(void)
{