Commit graph

162 commits

Author SHA1 Message Date
KlzXS c0dceb18c6
Persistent selection (#1086)
* 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
2021-07-10 07:30:02 +05:30
Luuk van Baal ddf845be88 Remove gitstatus libgit2 dependency 2021-07-06 02:01:19 +02:00
Arun Prakash Jana 2df1e64127
Post-release formalities 2021-06-03 22:54:12 +05:30
Arun Prakash Jana 29ef232301
Add Makefile target to compile nnn with musl libc 2021-06-03 04:34:44 +05:30
Arun Prakash Jana b52c09dd23
Move patches to top level 2021-06-02 12:25:31 +05:30
luukvbaal 93e7995ab5
Add user patch framework (#1037)
* Add user patch framework

* Add git status patch

* Add namefirst-gitstatus compatibility

* Add patch targets

* Fix gitstatus colors and patch order
2021-06-02 09:57:06 +05:30
luukvbaal 78b2170e03
Ignore NOLC when ICONS/NERD are set (#1027) 2021-05-26 23:47:38 +05:30
Arun Prakash Jana 284a3c4866
Multi-threaded FTS-based disk usage calculation
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
2021-05-26 22:28:38 +05:30
Arun Prakash Jana db8079f552
Make option O_NOLOC renamed to O_NOLC 2021-05-24 22:38:08 +05:30
Arun Prakash Jana d0b4508798
Change debug macro DBGMODE to DEBUG 2021-05-14 00:20:59 +05:30
Arun Prakash Jana 0691c4fb47
Reversed block for hovered entry in detail mode 2021-05-08 17:05:22 +05:30
Arun Prakash Jana 25157592df
make option NOX11: disable notis, sel to clipboard sync, xterm title 2021-04-17 13:08:34 +05:30
Arun Prakash Jana a1cb764943
make option O_CKBOARD for checker board indicator in detail mode 2021-04-09 12:05:03 +05:30
KlzXS 7310a9a773
Fix #835 2021-01-13 14:13:07 +00:00
Arun Prakash Jana 0bfc590f90
upx compress all static binaries before upload 2020-11-14 10:56:18 +05:30
Arun Prakash Jana 9f6808a35a
make target upx (https://upx.github.io/) 2020-11-02 00:02:47 +05:30
Arun Prakash Jana 0b31414c9a
make option O_NOUG to compile out user group info 2020-10-31 21:22:01 +05:30
Arun Prakash Jana 56757860d4
Generate static binaries with icon support 2020-10-20 17:59:39 +05:30
Arun Prakash Jana faddaa5c3a
make option O_NOSSN to compile out session 2020-09-20 12:13:00 +05:30
Dave Snider 1fc1b8be8b
Add nerdfont defs file and normalize vars (#722)
* Add nerdfont defs file and normalize vars

* some cleanup

* address feedback

* one more spacing issue

* address feedback
2020-09-14 22:09:52 +05:30
lvgx bcbe8080be
Add support for Alexey Tourbin's QSORT code (#708)
* 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
2020-08-21 08:15:45 +05:30
Arun Prakash Jana d86810a425
Minor reformat 2020-08-16 06:54:47 +05:30
KlzXS a85467d462
Icons (#697)
* 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
2020-08-16 06:30:58 +05:30
Arun Prakash Jana fbd5e77ec1
Initialize all make options 2020-08-14 00:02:54 +05:30
Arun Prakash Jana 42fd2a4d13
Program option to use older 2020-08-04 20:36:19 +05:30
Arun Prakash Jana ae961da157
Support file colors 2020-08-04 19:22:29 +05:30
Arun Prakash Jana 306af787ca
Add -Wshadow to CFLAGS and fixes 2020-06-22 09:17:59 +05:30
Arun Prakash Jana e3d90a98ce
Support make option O_CTX8 for 8 contexts
Note that this is not compatible with 4 contexts.
2020-05-30 07:01:34 +05:30
Arun Prakash Jana e688188fa6
x86-64 to x86_64 2020-05-26 06:21:01 +05:30
lvgx 86e579799b
Add an option to print hovered files to a FIFO (#548)
* 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
2020-05-04 09:35:13 +05:30
lvgx e68d0db949
Install logo to desktop icons (#542)
This shows the "n³" logo as  icon in application menus, when desktop file is
installed (using `install-desktop` make target).
2020-05-01 21:28:07 +05:30
Arun Prakash Jana 35c3497364
Use memccpy 2020-04-13 20:35:14 +05:30
lvgx 6e6d3cba0d
Add .desktop file for XDG compatible DEs (#501)
Install with `make install-desktop`
It now appears in application menus, search, etc. in XDG compatible
desktop environments (like GNOME, KDE, ...).
2020-04-01 02:29:21 +05:30
Arun Prakash Jana a4243edacc
make var O_NOBATCH to compile out native batch renamer 2020-03-30 22:09:39 +05:30
Arun Prakash Jana 3a9ddbd90f
Add batchrename to readme, minor Makefile change 2020-03-11 09:07:20 +05:30
Arun Prakash Jana e664b2d29f
Compile option O_NOMOUSE to disable mouse support 2020-02-14 08:21:30 +05:30
Arun Prakash Jana 4bd742dafb
Fix static package name in repo 2020-02-13 16:38:06 +05:30
Arun Prakash Jana 80545534a9
Fix #474: explicitly indicate gzip to tar 2020-02-13 15:18:56 +05:30
Arun Prakash Jana f6e7dbf6f9
Fix static file upload 2020-02-12 08:32:49 +05:30
Arun Prakash Jana c7e2dc0005
Upload static binary as package 2020-01-31 08:43:35 +05:30
Maxim Baz 6b093f213f
Compile static bin locally for release (#457) 2020-01-31 03:16:06 +05:30
Arun Prakash Jana cb6f30fed4
Remove redundant lib only for older GLIBC 2020-01-28 18:55:41 +05:30
Arun Prakash Jana 3fd9e6ace7
Add -DNORL when var O_STATIC is set 2020-01-25 23:44:28 +05:30
Arun Prakash Jana 1684d7b24e
Makefile option to compile with PCRE lib
Command: make O_PCRE=1 strip
2020-01-24 23:29:05 +05:30
Arun Prakash Jana d67ad84360
Add static compilation flag
make command:

make O_STATIC=1 O_NORL=1 strip
2020-01-23 22:22:07 +05:30
Arun Prakash Jana db647e7c4c On the fly dist generation 2019-12-30 01:37:01 +05:30
Arun Prakash Jana 26d49a16b3
Get version string from source 2019-12-29 23:43:09 +05:30
Arun Prakash Jana 7157644250
Fix #420: simplify bookmarking, retire lead key 2019-12-29 08:20:56 +05:30
Anna Arad fd9fcf741e Get nnn compile and run on Haiku (#403)
* Add support for Haiku OS

* Adjust DISTFILES and dist rule in haiku
2019-12-27 23:32:20 +05:30
Maxim Baz f0eba7d51b Improvements for distribution (#417)
* 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
2019-12-21 05:02:39 +05:30