]> Sergey Matveev's repositories - nnn.git/commit
Support multiple file path copy
authorArun Prakash Jana <engineerarun@gmail.com>
Sat, 13 Jan 2018 20:13:30 +0000 (01:43 +0530)
committerArun Prakash Jana <engineerarun@gmail.com>
Sat, 13 Jan 2018 20:13:30 +0000 (01:43 +0530)
commita40d29ba9f5673523dfdf28e17d448a3cb8da1f8
tree4e4878b05aab4658c1aa0a1904ae281a67ec8772
parent48002508141f7b84b7fb5a881e7deb3c03fc4d3b
Support multiple file path copy

Design overview:

We are introducing multiple file path copy as a mode which can be toggled using
the keybind `^Y`. `^K` works as the individual entry selector. If the user wants
to select a range, (s)he can press `^Y` on the first entry and `^Y` on the last
entry.

We subscribe to notifications, so we need a fail-proof way to detect changes in
the directory contents. For example, if a file is deleted, it becomes difficult
to get the names of all the files in a range containing that file. If the file
is on a range boundary it would lead to wrong calculations. To handle this the
right way we use CRC8 checksum of all the visible entries in the directory. The
checksum is calculated based on the file information buffer. If the CRC changes
on a redraw(), we reset the multi-select mode.

New line (`\n`) works as the delimiter between file paths. Note that you may have
to disable IFS in the `NNN_COPIER` script to show file paths separated by spaces.
README.md
nnn.1
nnn.c
nnn.h
scripts/copier/copier.sh