From: Arun Prakash Jana <engineerarun@gmail.com> Date: Thu, 12 Dec 2019 19:06:30 +0000 (+0530) Subject: Sync file paths correctly for clipboard copy X-Git-Tag: v2.9~173 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=5a46b8fb25b0f4f073920ca2b82ad96828475a99;p=nnn.git Sync file paths correctly for clipboard copy --- diff --git a/src/nnn.c b/src/nnn.c index 2ad8f274..6fdae5a3 100644 --- a/src/nnn.c +++ b/src/nnn.c @@ -4864,26 +4864,34 @@ nochange: if (rangesel) rangesel = FALSE; - /* Write the path to selection file to avoid flush */ - if (!(dents[cur].flags & FILE_SELECTED)) { + /* Toggle selection status */ + dents[cur].flags ^= FILE_SELECTED; + + if (dents[cur].flags & FILE_SELECTED) { + ++nselected; utmp = selbufpos; selbufpos = lastappendpos; appendfpath(newpath, mkpath(path, dents[cur].name, newpath)); writesel(pselbuf, selbufpos - 1); /* Truncate NULL from end */ - if (cfg.x11) - plugscript(utils[UTIL_CBCP], newpath, F_NOWAIT | F_NOTRACE); lastappendpos = selbufpos; selbufpos = utmp; + } else { + --nselected; + if (nselected) { + utmp = selbufpos; + updateselbuf(path, newpath); + writesel(pselbuf, selbufpos - 1); /* Truncate NULL from end */ + lastappendpos = selbufpos; + selbufpos = utmp; + } else + writesel(NULL, 0); } - /* Toggle selection status */ - dents[cur].flags ^= FILE_SELECTED; - (dents[cur].flags & FILE_SELECTED) ? ++nselected : --nselected; + if (cfg.x11) + plugscript(utils[UTIL_CBCP], newpath, F_NOWAIT | F_NOTRACE); - if (!nselected) { - writesel(NULL, 0); + if (!nselected) unlink(g_selpath); - } /* move cursor to the next entry if this is not the last entry */ if (!cfg.picker && cur != ndents - 1)