Browse Source

Fix only the last file path is copied to selection buffer

master
Arun Prakash Jana 5 years ago
parent
commit
3b2b6f2b46
No known key found for this signature in database GPG Key ID: A75979F35C080412
1 changed files with 7 additions and 1 deletions
  1. +7
    -1
      src/nnn.c

+ 7
- 1
src/nnn.c 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;


Loading…
Cancel
Save