Fix only the last file path is copied to selection buffer

This commit is contained in:
Arun Prakash Jana 2019-12-06 22:24:35 +05:30
parent 9b384799b7
commit 3b2b6f2b46
No known key found for this signature in database
GPG key ID: A75979F35C080412

View file

@ -306,7 +306,7 @@ static int ndents, cur, curscroll, total_dents = ENTRY_INCR;
static int xlines, xcols;
static int nselected;
static uint idle;
static uint idletimeout, selbufpos, selbuflen;
static uint idletimeout, selbufpos, lastappendpos, selbuflen;
static char *bmstr;
static char *pluginstr;
static char *opener;
@ -1007,6 +1007,8 @@ static void startselection(void)
writesel(NULL, 0);
selbufpos = 0;
}
lastappendpos = 0;
}
}
@ -4834,9 +4836,11 @@ nochange:
/* Write the path to selection file to avoid flush */
if (!(dents[cur].flags & FILE_SELECTED)) {
utmp = selbufpos;
selbufpos = lastappendpos;
appendfpath(newpath, mkpath(path, dents[cur].name, newpath));
writesel(pselbuf, selbufpos - 1); /* Truncate NULL from end */
spawn(copier, NULL, NULL, NULL, F_NOTRACE);
lastappendpos = selbufpos;
selbufpos = utmp;
}
@ -4901,6 +4905,7 @@ nochange:
/* Remember current selection buffer position */
utmp = selbufpos;
selbufpos = lastappendpos;
for (r = selstartid; r <= selendid; ++r)
if (!(dents[r].flags & FILE_SELECTED)) {
@ -4915,6 +4920,7 @@ nochange:
writesel(pselbuf, selbufpos - 1); /* Truncate NULL from end */
spawn(copier, NULL, NULL, NULL, F_NOTRACE);
/* Restore current selection buffer position */
lastappendpos = selbufpos;
selbufpos = utmp;
}
continue;