Commit Graph

140 Commits

Author SHA1 Message Date
c9b003735d
Fix OpenBSD build
All checks were successful
Arch Linux AUR Success
Alpine 3.20 Success
OpenBSD 7.5 Success
2024-12-21 07:59:44 +01:00
52a28f01c8
Add support for BSD derivatives, fix macOS
All checks were successful
Alpine 3.20 Success
Arch Linux AUR Success
2024-12-21 07:37:06 +01:00
3607757554
Improve filename passing
All checks were successful
Alpine 3.19 Success
Arch Linux AUR Success
c9662f1 forgot about internal helpers.

Moreover, it is annoying to see the -- in shell history
for every single external helper call.
2024-04-17 02:00:10 +02:00
9ce6f47716
Use more precise filesizes
Some checks failed
Arch Linux AUR Scripts failed
The behaviour differs from GNU `ls -lh` in that we use binary units,
meaning we get 1023 before 1.0K rather than 999 before 1.0K,
which is nonetheless still four characters wide.
2024-04-07 16:00:21 +02:00
c9662f1a7b
Fix passing filenames starting with -
We don't want to pass them as program options.
2024-01-20 08:33:17 +01:00
9427df62e7
Fix code formatting, bump copyright years 2023-06-12 14:00:58 +02:00
4d6999c415
Do not beep on window resizes 2023-06-11 21:11:20 +02:00
30ed61fdd2
Implement ^W in the editor 2023-06-11 21:05:55 +02:00
2df916c9b3
Support wildcards in interactive search
The previous search for the longest match is functionally
duplicated by typing individual characters on the input line,
and wildcards can be escaped, so there shouldn't be regressions
in terms of capability.
2022-09-03 12:17:02 +02:00
24401825b4
Add a missing case break 2022-01-08 11:23:36 +01:00
2bfb490798
Add and bind an action to center the cursor
"z" stands for VIM's "zz".
2022-01-08 11:17:24 +01:00
338d00d605
Do not crash on opendir() failures
Show an error message, and a way out.
2021-11-09 07:52:48 +01:00
015652e379
Fix build with recent ncurses
Easily gained, easily lost.  No more ^S binding.
2021-11-09 07:45:20 +01:00
e423a3a1b1
Add clang-format configuration, clean up 2021-11-05 21:34:05 +01:00
916f354c9b
Move the cursor to just created directories 2021-10-30 12:32:40 +02:00
050f875c47
Clean up 2021-10-30 12:13:45 +02:00
aeffe40efc
Bind ^S to search, as in Emacs, with a trick
We heavily depend on ncurses anyway, so no worries about portability.
2021-10-18 11:23:17 +02:00
536aa57761
Slightly optimize very large directories
Cumulatively 10% of user time, give or take.

These are mainly pointless multibyte to wide string conversions.

The hit to source code readibility is minimal.
2021-10-05 21:01:32 +02:00
0d10ae06e6
Measured stat performance, io_uring not worth it
Large directories are slow for different reasons.
2021-10-05 19:18:15 +02:00
e1b0831854
Don't reload on sort changes
It is unexpected behaviour, and likes to take too long.
2021-09-26 09:38:16 +02:00
4e93dfbb8d
Add a comment about libacl
So that I don't repeat my actions in the future.
2021-09-26 09:19:54 +02:00
8a6bb54eb5
Ignore empty XDG_CONFIG_DIRS
As the specification says we should.  GLib does this as well.

It is still possible to achieve an empty set by using ":",
which are two non-absolute paths that should be ignored.
GLib doesn't implement this.  Thus, we're now better than GLib.
2021-09-26 08:59:57 +02:00
7de8c84e8f
Fix a signedness compiler warning 2021-07-19 09:12:17 +02:00
e17c5e2083
Bind F6 to a rename prompt
Mostly just so that the F7 binding isn't completely alone.

Since Shift-F6 isn't something we can just bind to, use a prefill.
2021-07-17 14:47:50 +02:00
9bd3739122
Bind F7 to an mkdir prompt
This might have needed more thought, but we'll see.
2021-07-17 14:41:57 +02:00
ec1f1031cc
Implement search iteration
The interactive search now has its own keymap, overriding "input".

Closes #5
2021-07-17 14:19:37 +02:00
bc99b3dd48
Add a right-side prompt to the search 2021-07-17 13:04:42 +02:00
e948741864
Enable pushing the search in a certain direction
We want to make it possible to iterate all current matches.
2021-07-17 08:49:54 +02:00
0adbac2066
Make search() return the number of matches 2021-07-17 07:54:03 +02:00
2238db5a4e
Make removing characters invoke g.editor_on_change 2021-07-17 07:24:16 +02:00
98612f5492
Improve C-char parsing
I was hoping that a superoptimiser would help me find a miraculous
branchless equation to cover it, but in the end the branching
doesn't hurt at all in our case.

It's more readable than `(((char >> 2) - 0x38) & 0x60) ^ char`
or `(char ^ 0x40) & (((char >> 1) ^ 0x20) | 0x5f)`.
2021-07-09 05:16:37 +02:00
fdb338fe12
Allow binding to custom key sequences
And document this feature in the manual page.
2021-07-07 21:21:32 +02:00
07ef834a1e
Include a header required for kill()
Yet, this program remains fairly unportable.
2020-10-29 03:24:37 +01:00
0c1a8d9902
Implement the --version option
Since we have a version number at all, even if it's meaningless.
2020-10-26 19:07:47 +01:00
c88566e7bb
Bind F1 to show the help 2020-10-25 08:19:49 +01:00
39c840cd74
Mark a minor issue for later resolution 2020-10-24 19:28:11 +02:00
c503954f44
Cleanup
The wchar_t variant of compute_width() is no longer needed.

So all in all the better help has saved code.
2020-10-23 07:53:37 +02:00
77973fc026
Group help message by action
Considerably more useful and concise.
2020-10-23 03:51:26 +02:00
61be9528e4
Bind M-Up to the "parent" action
Taken from Windows Explorer, which previously used Backspace.

We might want to use h/l for parent/choose by default.
2020-10-23 03:38:47 +02:00
2313485970
Bind C-d in the editor
We do get these as a key, after all.

Closes #4
2020-10-23 01:37:14 +02:00
20c883fb8a
Implement C-v in the editor
Not completely happy with the explicit `halfdelay (1)`.

Updates #4
2020-10-23 01:37:07 +02:00
bbf97f6d3d
Implement C-u C-k in the editor
Updates #4
2020-10-23 01:21:25 +02:00
706795c85c
Cleanup 2020-10-22 00:51:57 +02:00
e8eaa2366a
Implement Delete in the editor
Not caring about C-d right now, we might have to convince the tty
to send it to us--I'm not sure if it does, or returns EOF.

Updates #4
2020-10-22 00:06:41 +02:00
12d8f6a931
Implement C-a C-e C-b C-f in the editor
Updates #4
2020-10-21 23:57:16 +02:00
5d0c105b10
Make backspace erase combining characters
They might not be even printed correctly, though.

Updates #4
2020-10-21 23:56:51 +02:00
33a8e26efc
Track cursor position in the editor
Updates #4
2020-10-21 23:55:01 +02:00
a0eacf4607
Add an installation script
Copying snippets from the README was uncomfortable and laborious,
and wasted a lot of space in the document, especially after
the recent additions.

Closes #3
2020-10-21 08:26:42 +02:00
63e7895905
Let the caller decide how to launch helpers
In the end, we don't need to impose any policy on it,
and it removes a level of quoting, as well as an `eval`.
2020-10-08 19:50:04 +02:00
6aa4bd2ff5
When resuming a child, resume the whole group
SIGTSTP is sent to the entire foreground process group,
so do the some with our SIGCONT.

Debian's default sh (dash) doesn't replace itself with
the command, even if it's the last one in the -c option.

Of course, we do not need to use /bin/sh for the helpers
at all, though it doesn't cost us much.  We could also
issue an explicit `exec`.
2020-10-08 19:49:07 +02:00