* Add persistsel
* Fix Makefile spacing
* Update Haiku Makefile
* Do a double pass on inversion
* Split single and double pass for easier testing
Removed lastappendpos
Eliminate suffix matches
* Check if dir is in selection before searching for files
Fix double pass
* Switch to mainline
Optimize memory moving
Handle large selection in invertsel()
Going forward with 2pass
* Update Makefiles
* Fix style
* Move forward declarations
* Remove edit selection in inversion
Replace buf with g_buf to fix CI
Fix CI
* Style changes
* Comment the code
* Style fixes
* Fix infinite loop
* Fix crash on empty invert
* Fix off-by-one-in-two-places
Off-by-twice?
* Adopt changes from master
* Only check directory if entry in it is selected
* Better organization
* Wrong variable
* Tiny optimizations
* Style fixes and updated man page
* Update man page
* Remember where we found directory path in selection
Add in progress message on invert
Implements pthreads based du using FTS. Currently 4 threads are used.
NFTW is dropped as there is no way to pass any custom values to fn().
FTS does not require any per entry function callback.
The performance numbers are best with FTS:
./nnn-fts -T d / 5.29s user 0.94s system 116% cpu 5.335 total
1/21 du:102.402G free:8.476G files:397644 101132550144B
./nnn-ftw -T d / 5.52s user 0.94s system 116% cpu 5.534 total
1/21 du:102.400G free:8.474G files:397653 101133148160B
./nnn-4.0 -T d / 0.20s user 2.27s system 24% cpu 10.241 total
1/21 du:102.400G free:8.475G files:397654 101133299712B
* Add support for Alexey Tourbin's QSORT code
See https://github.com/svpv/qsort
* Add benchmark scripts and compilation mode
Compile with `make O_BENCHMARK=1`, and run benchmarks with e.g.:
./misc/test/benchmark.sh ./nnn '/' '/usr/bin' '/usr/lib' > benchdata
You can then plot basic violin graphs with:
./misc/test/plot-bench.py benchdata
* Update style, doc, haiku support, fix lint
* Add icons
* Fix build break
* Fix icon position in detailed mode
* Various fixes
* Provision for icon specific colors
No icons with oldcolor. Small optimizatons
* Update Makefiles
Small refinement for other matching
* Add an option to print hovered files to a FIFO
This adds an env variable, `NNN_FIFO`, that can be set to a path that
`nnn` will open/create as a FIFO, and where every hovered file's path is
printed. This allows creating external perview/quick open plugins, ...
It can be compiled out with the make variable `O_NOFIFO`.
* Check filename ptr instead of full path (for FIFO)
* Add documentation to use NNN_FIFO in plugins
* Fix path sent to FIFO in empty dirs
* Don't pack sources (github does it better), sign sources
* Make CircleCI generate the same git archive as Github, return make dist
* Revert make clean too
* Upload signature to Github release
* Read Github token from an env variable