Commit graph

1746 commits

Author SHA1 Message Date
Arun Prakash Jana ab0ab2b5f4
Use a meaningful macro 2021-09-04 07:21:59 +05:30
Daniel Eklöf 0556ac14ec
[draft] signal CWD change to terminal via OSC-7 (#1148)
* Signal CWD change to terminal via OSC-7

Closes #1147

* Make OSC-7 emission gated by NOX11

* Use newpath variable in gethostname()

Use dynamic memory for hostname
2021-08-30 20:14:05 +05:30
Arun Prakash Jana c974690482
Fix build break 2021-08-25 20:14:55 +05:30
Arun Prakash Jana 742759f32d Exports special variables before running plugins 2021-08-25 16:32:45 +05:30
Arun Prakash Jana 55fc0c500b
Retain original context hovered file when selecting from plugin dir 2021-08-25 01:32:40 +05:30
Arun Prakash Jana a62dbf093a
Fix NULL file name handling 2021-08-25 00:47:52 +05:30
Arun Prakash Jana 900513710f
More special variables at prompt/shell
$dN: directory path open in context N
$fN: file path hovered in context N
2021-08-24 23:34:40 +05:30
Arun Prakash Jana 6243de06f4
Update help page logo 2021-08-23 11:02:53 +05:30
Arun Prakash Jana e11cbc289a
Add a cool ASCII art to help screen 2021-08-23 04:38:54 +05:30
elder-n00b e4813f06c1
MacOSX legacy (#1138)
* Branched v4.2
Added workaround for Mac OS X < 10.12.0
(Only tested on 10.11.6, lower versions may need more workaround)

* Added *.dSYM to .gitignore

* Added comments for the macosx detection in Makefile

* Fixed indentation, formatting and missing newline at eof

* Moved includes inside include guard

Co-authored-by: elder-n00b <elder-n00b@yandex.com>
2021-08-22 12:17:27 +05:30
Arun Prakash Jana 6c5eab5e55 Jump back last dir from plugin dir with - 2021-08-19 08:45:07 +05:30
luukvbaal ad6b6bd3df
Icon changes .iconlookup (#1136) 2021-08-18 23:16:29 +05:30
CantoroMC a65055fc32
change and add some icons-nerdfont (#1135) 2021-08-18 19:23:53 +05:30
CantoroMC 43da9a9c46
icon for zsh, nix, and matlab files(nerdfonts), lua color to lua file (#1132)
* icon for nix and matlab files(nerdfonts), lua color to lua file

* Update .iconlookup

* Update icons-nerdfont.h

* Update icons.h

Co-authored-by: luukvbaal <31730729+luukvbaal@users.noreply.github.com>
2021-08-17 20:41:42 +02:00
Arun Prakash Jana 78ea6702f7
Key B to add bookmarks on the fly 2021-08-17 20:53:54 +05:30
Arun Prakash Jana 983d689a05
Disable auto-marking 2021-08-17 15:06:09 +05:30
0xACE 9d4330e382
Decide string length at compile time (#1130)
I run into many premature optimizations in our codebase which are
unnecessary.

In this particular case `strlen()` is optimized at compile time even at
`-O0` with `gcc`.

I would value higher code quality than dealing with these things in our
future endeavours. If this is accepted I may supply some more
readability patches.
2021-08-17 10:26:33 +05:30
Arun Prakash Jana 86648ab391
Fix length 2021-08-17 01:03:28 +05:30
Arun Prakash Jana 46294e9f3d
Add bookmarks directory support 2021-08-16 20:16:56 +05:30
Arun Prakash Jana 943a7c13ac
Fix broken statusbar when symlink name exceeds max cols 2021-08-15 22:07:18 +05:30
Arun Prakash Jana 7cbc79a5fc
Remove repetitive code 2021-08-14 19:27:24 +05:30
Arun Prakash Jana e4c1abb6b8
Save full filter in session to restore correctly 2021-08-12 23:15:15 +05:30
Arun Prakash Jana bf2b8d8c84
Decouple statusbar redraw 2021-08-12 22:09:06 +05:30
Arun Prakash Jana fc00faf7d0
Do not modify $PWD 2021-08-12 10:46:12 +05:30
Arun Prakash Jana 42061b0399
Fail operations if selection file is empty 2021-08-12 00:20:13 +05:30
Arun Prakash Jana 06e2676421
Sync operation on selection among nnn instances 2021-08-11 21:53:42 +05:30
Arun Prakash Jana 97ac88dec2
Try to get current dir from PWD first 2021-08-10 22:34:18 +05:30
Arun Prakash Jana e146ad0d7a
Use a different function 2021-08-10 07:06:20 +05:30
Arun Prakash Jana 59d90aa2ce
Do not resolve symlinks in argument PATH 2021-08-10 06:48:21 +05:30
Arun Prakash Jana 1df63a78e4
Do not resolve symlinks in bookmarks 2021-08-09 01:13:54 +05:30
Arun Prakash Jana 49ee5b21e7
Do not end selection mode before prompt/shell 2021-08-08 20:15:20 +05:30
Arun Prakash Jana 62a0486480 Do not end selection mode before invoking plugin 2021-08-08 18:31:29 +05:30
Arun Prakash Jana 7d17cf3f63
List open locations from active contexts in help 2021-08-07 23:55:51 +05:30
Arun Prakash Jana 87380732dc
make option O_MATCHFLTR to disable filters without match 2021-08-05 22:15:02 +05:30
Arun Prakash Jana b54f771a44
Fix #1117: Revert "Ignore filter key if no results"
This reverts commit 3ef50f06f8.
2021-07-29 03:34:06 +05:30
Arun Prakash Jana 88e38f1efc
Eliminate redundant stat() 2021-07-27 23:04:23 +05:30
Arun Prakash Jana 6ba0a8357f
redraw() is heavy and distracting 2021-07-26 06:19:56 +05:30
Arun Prakash Jana 8cebc69e71
Fix build break 2021-07-25 07:20:43 +05:30
Arun Prakash Jana f6856f61f7
Allow specifying output file in NNN_TMPFILE for cd on quit 2021-07-25 07:03:09 +05:30
Arun Prakash Jana f1dbb9622d Open controlling terminal only as stdin 2021-07-24 22:22:17 +05:30
Arun Prakash Jana d80fdf335b
Check if file is already selected before appending in picker mode 2021-07-24 01:51:20 +05:30
Arun Prakash Jana e2545f9596
Truncate output file before writing in picker mode 2021-07-24 01:25:28 +05:30
Arun Prakash Jana 25fab4cb2e
Open controlling terminal for input when run in a script 2021-07-23 23:46:20 +05:30
Arun Prakash Jana bc5b39d54c
Prepare for release v4.2 Mojito 2021-07-21 17:45:39 +05:30
Arun Prakash Jana 3f07a8ca76
Press TAB to insert current file name at prompt 2021-07-21 11:24:46 +05:30
Arun Prakash Jana 7b31a356d2
Minor update 2021-07-20 23:31:40 +05:30
Arun Prakash Jana 9972c4bdb0
Fix #1110: sanitize path from plugin 2021-07-19 03:57:53 +05:30
Arun Prakash Jana c470143113
Clear filter early before running plugin 2021-07-19 01:52:44 +05:30
Arun Prakash Jana 3b5800fc7a
Selection-specific scratch buffer 2021-07-18 11:45:50 +05:30
Arun Prakash Jana 29a7a25445
Free allocated memory 2021-07-18 02:51:09 +05:30
Arun Prakash Jana 1e182a1fe5
Remember the last command executed at prompt 2021-07-17 16:30:45 +05:30
Arun Prakash Jana f7aa4ed324
Add macro for prompt 2021-07-17 13:09:33 +05:30
Arun Prakash Jana 0ef34a930c
Use a simpler macro 2021-07-17 13:05:37 +05:30
Arun Prakash Jana 07b627a725
Fix unused variable warning 2021-07-17 04:46:35 +05:30
Arun Prakash Jana a911b3044a
Code reformat 2021-07-16 21:19:17 +05:30
Arun Prakash Jana 26f44f0dfc
Fix selection in / 2021-07-16 11:09:20 +05:30
Arun Prakash Jana fa0f9ddc93
Remove from selection when hovered entry is deleted 2021-07-16 04:44:01 +05:30
Arun Prakash Jana 3ef50f06f8
Ignore filter key if no results 2021-07-16 02:22:01 +05:30
Arun Prakash Jana d40dbfd69a
Do not apply filter if directory is empty 2021-07-16 01:54:15 +05:30
Arun Prakash Jana 8af773eb0d
Allocate PATH_MAX aligned memory size 2021-07-16 01:19:09 +05:30
Arun Prakash Jana 8ad807d4a9
Optimize repeat copy of same prefix 2021-07-15 23:43:07 +05:30
Arun Prakash Jana 4ec87e3021
Optimize bulk selection 2021-07-15 21:21:54 +05:30
Arun Prakash Jana 0159c08602
Invert optimization: allocate in a go 2021-07-15 18:59:00 +05:30
Arun Prakash Jana 064f5ea998
Show msg for both invert and select all 2021-07-15 11:45:32 +05:30
Arun Prakash Jana 9526fb7612
Optimize invert further 2021-07-15 02:06:11 +05:30
Arun Prakash Jana 61d8a29d84
In-place invert optimization 2021-07-14 21:04:02 +05:30
Arun Prakash Jana b3ef30a8ba
Update add to and invert selection logic 2021-07-13 21:46:18 +05:30
Arun Prakash Jana 96f2dfa8a5
Scan for selection status on redraw() 2021-07-13 01:30:23 +05:30
Arun Prakash Jana 60f310160a
Remove redundant macro 2021-07-12 02:54:00 +05:30
Arun Prakash Jana baca4693ec
Remove redundant prompt 2021-07-12 01:22:39 +05:30
KlzXS b5d1a1b036
Use selbufpos instead of selbuflen 2021-07-11 20:16:28 +02:00
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
Arun Prakash Jana d9db6b045c
Fix #1102: suppress clang unused variable warnings 2021-07-10 02:08:48 +05:30
Arun Prakash Jana 5f5ee10e94
Fix #1101: confirm trashing files 2021-07-09 21:00:46 +05:30
Arun Prakash Jana facdc5fdeb
Fix #1098: clear selmode on last deselect 2021-07-06 23:25:49 +05:30
Luuk van Baal 36ddbac10a Move ajust cols and no else braces 2021-07-03 00:50:51 +02:00
Arun Prakash Jana d4a4c72e00
Fix off_t to uint_t comparison warning
The man page says:

"blkcnt_t and off_t shall be signed integer types."

https://man7.org/linux/man-pages/man0/sys_types.h.0p.html
2021-07-02 20:34:02 +05:30
Piña Colada ce8b9fdb2f
Merge pull request #1088 from 1bman/1bman-patch-1
fix icons.h typo
2021-06-30 19:51:50 +05:30
1bman 99bd80137d
fix icons.h typo
fixed some typo
2021-06-30 14:25:01 +05:30
KlzXS c39e54b288
Fix debug line number 2021-06-29 19:49:59 +02:00
Arun Prakash Jana 1729a10ef4
Try to unmount hovered local dir 2021-06-28 00:16:32 +05:30
Arun Prakash Jana 96fb61a6a2
Reformat help 2021-06-27 21:26:37 +05:30
Arun Prakash Jana 04a806dc09
Reformat help 2021-06-27 20:53:13 +05:30
Arun Prakash Jana d1df9343c6
Remove redundant param 2021-06-23 23:42:10 +05:30
Arun Prakash Jana e7f73d95ce
Fix memory leak 2021-06-22 20:51:23 +05:30
Arun Prakash Jana eae60c3048
Simplify mkpath() 2021-06-22 20:27:07 +05:30
Arun Prakash Jana 7ce5bbcdf7
Break long macros 2021-06-20 22:16:09 +05:30
Arun Prakash Jana 94c399e2cf
One notify FIFO mode at a time 2021-06-20 21:42:44 +05:30
Arun Prakash Jana 983babc5f6
Improve alignment 2021-06-20 20:48:06 +05:30
Arun Prakash Jana c597f3be9b
Add range check 2021-06-20 19:20:10 +05:30
Arun Prakash Jana 0e8819fea8
Fix alignments 2021-06-20 15:45:03 +05:30
Arun Prakash Jana 556941c2b2
Alphabetically order internal states 2021-06-20 14:23:13 +05:30
Arun Prakash Jana 4f297fa147
Shared previewer and explorer 2021-06-20 13:58:33 +05:30
Arun Prakash Jana 9f86015c16
Print version to stdout 2021-06-20 10:25:40 +05:30
Arun Prakash Jana c0ed6d1d04
Fix compilation error when FIFO is disabled 2021-06-19 21:04:21 +05:30
Arun Prakash Jana b626cfa00f
Use macro in all places 2021-06-19 20:36:16 +05:30
Arun Prakash Jana 3e91c2c977
Use easily identifiable type 2021-06-19 18:39:35 +05:30
Arun Prakash Jana 8f3785f2e5
Restore statusbar after unmounting remote/archive 2021-06-19 17:23:28 +05:30
Arun Prakash Jana d5359f0455
Fix created archive not highlighted 2021-06-19 15:16:24 +05:30
Arun Prakash Jana 17bb0cfb52
Default to CWD for atool 2021-06-19 14:31:04 +05:30
Arun Prakash Jana e8f0c53287
Do not open current dir in nez context when extracting archive 2021-06-19 13:00:50 +05:30
Arun Prakash Jana 96cbb4ff84
Fix #1076: show file name in archive extract prompt 2021-06-19 11:21:42 +05:30
Arun Prakash Jana 35aa864554
Fix returns 2021-06-19 01:48:14 +05:30
Arun Prakash Jana 825effb264
Fix broken window due to double spawn 2021-06-18 20:44:44 +05:30
Michael Lan b2e7f7794c
Refactor fifo code and add explorer (#1075)
* Refactor fifo code and add explorer

* add explorer option and flag

* notify explorer fifo on selection

* close explorer fifo file descriptor

* Try to create explorer fifo if doesn't exist

This doesn't quite work

* Allow uncreated fifos

* delete persistence fifo on cleanup

with correct formatting

Co-authored-by: luukvbaal <31730729+luukvbaal@users.noreply.github.com>

* Work correctly with NOFIFO

* Refactor variable names

* fix

* Use -X flag for explorer mode

* Update manpage with explorer mode

Co-authored-by: luukvbaal <31730729+luukvbaal@users.noreply.github.com>
2021-06-18 05:38:28 +05:30
Arun Prakash Jana 640a56e1cc
sigwinch test 2021-06-18 04:36:28 +05:30
Arun Prakash Jana 239c7e7970 Revert "Remove redundant old state handlers"
This reverts commit 1590103ab7.
2021-06-17 00:31:26 +05:30
Arun Prakash Jana 1590103ab7
Remove redundant old state handlers 2021-06-16 00:17:01 +05:30
Arun Prakash Jana 3db1dfd17f
Get rid of file stream functions 2021-06-15 20:52:59 +05:30
Arun Prakash Jana 0884ad4af9
Code reformat, use basic IO functions 2021-06-15 20:18:19 +05:30
Arun Prakash Jana 745a30ccb5
Use raw functions instead of file functions 2021-06-15 15:28:53 +05:30
Arun Prakash Jana a007fe8493
Fix #1072: use internal tmp file to page output 2021-06-15 14:38:08 +05:30
Arun Prakash Jana 4c66a8c0c3
Remove redundant newline 2021-06-14 22:12:55 +05:30
Arun Prakash Jana 3834d75d77
Extract archive to, mount remove/archive in smart context 2021-06-14 00:16:49 +05:30
Arun Prakash Jana e256353fbf
Support archive "extract to..." 2021-06-13 14:38:37 +05:30
Arun Prakash Jana 06c5b17c02
Config NNN_HELP to show output of a program on top of help page 2021-06-13 01:22:36 +05:30
Arun Prakash Jana f4f6919c02
Fix #1067: handle SIGWINCH the ncurses way
Ref: https://invisible-island.net/ncurses/ncurses-intro.html#xterm
2021-06-13 00:16:43 +05:30
Anna Arad 4f977ff269
Add force-tty capability to spawn and set pagers to it (#1070)
Co-authored-by: Anna Arad <annagram@shards.me>
2021-06-12 23:02:48 +05:30
Arun Prakash Jana 0dd76e7aec
Drop unreliable popen() call [e.g. fails if filename has "] 2021-06-12 22:44:15 +05:30
Arun Prakash Jana 69926a8eff
Simplify show_stats() 2021-06-12 21:33:26 +05:30
Arun Prakash Jana 9a124ae935
Initialize local array to NULL 2021-06-12 19:41:34 +05:30
Arun Prakash Jana 145ca91df2
Attempt to fix #1067: hook into ncurses to resize on KEY_RESIZE 2021-06-12 16:59:19 +05:30
Arun Prakash Jana e537c22281
Use standard descriptor names 2021-06-11 23:35:57 +05:30
Arun Prakash Jana cbbac4728b
Checkpatch fixes 2021-06-10 00:31:17 +05:30
Arun Prakash Jana 54b2eb51d5
Use static global 2021-06-08 20:50:09 +05:30
Arun Prakash Jana 15eed29227
NNN_PLUG: use | to page run-and-exit cmd output 2021-06-06 21:51:30 +05:30
Arun Prakash Jana f24b82a750
NNN_PLUG: use & as run-gui-cmd-as-plugin symbol (earlier |) 2021-06-06 18:48:14 +05:30
Arun Prakash Jana 9de941306c
NNN_PLUG: use ! as run-cmd-as-plugin symbol (earlier _) 2021-06-06 18:37:49 +05:30
Arun Prakash Jana 5a6df62b1c
Prepare for release v4.1.1 Sake 2021-06-03 22:36:19 +05:30
luukvbaal c205177ac6
Update gitstatus patch (#1048) 2021-06-03 17:07:07 +02:00
Arun Prakash Jana f27e93fba0
Fix #1041 2021-06-03 03:15:09 +05:30
Arun Prakash Jana ccce80a1e9
Remove _Atomic usage 2021-06-02 21:53:29 +05:30
Arun Prakash Jana bf673744fb
Prepare for release v4.1 Sake
Sake - https://en.wikipedia.org/wiki/Sake
2021-06-02 10:44:41 +05:30
Luuk van Baal 40031b81ae Unicode arrows for O_ICONS/NERD 2021-05-31 18:41:05 +02:00
Arun Prakash Jana c54ba35ce0
Get rid of getchar() 2021-05-29 15:15:27 +05:30
Arun Prakash Jana 4ea0d70217
Alt+Esc to quit context from filter prompt 2021-05-29 13:16:19 +05:30
Arun Prakash Jana 46e1d6bdda
Remove ntfw-specific code 2021-05-29 12:51:57 +05:30
Arun Prakash Jana 6bb6ddfe8a
Fix condition 2021-05-29 03:40:00 +05:30
Arun Prakash Jana f6b14f6505
Restore hovered file name on select and run plugin 2021-05-28 23:31:20 +05:30
Arun Prakash Jana 462531b8c7
Plugin fzdirs: fuzzy search multiple directories 2021-05-28 19:17:08 +05:30
Arun Prakash Jana 831287c92e
Show number of files selected in local buffer, if any
Even if selection mode is not on, it helps to show
number of files currently selected in local buffer.
Say, after running a plugin selection mode goes off.
However, if the plugin doesn't clear the selection
buffer, the files still remain selected in buffer.
2021-05-27 23:47:59 +05:30
Arun Prakash Jana a8c52134f6 Attempt to create a new context with Shift-TAB, else reverse cycle 2021-05-27 18:12:35 +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 025b570e05
Fix du calculation 2021-05-26 03:16:01 +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 fdeba8a87e
Dynamic view update in disk usage mode 2021-05-24 02:56:12 +05:30
Arun Prakash Jana 88f71ff35d
Suppress session open failure msg in picker mode 2021-05-21 08:05:44 +05:30
Arun Prakash Jana 54d760b9f5
Fix #1023: support named persistent settions 2021-05-20 09:56:55 +05:30
Arun Prakash Jana 2bd72d1b29
Remove pickraw, fix selection not picked on Q 2021-05-18 08:25:23 +05:30
Arun Prakash Jana edab98ab6d Fix opener key for archive 2021-05-18 07:58:11 +05:30