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)`.
For more info, see e.g.
https://github.com/asciidoc/asciidoc-py3/issues/137
I'll probably commit to mandoc here but scdoc is appealing.
Somewhat sadly, it explicitly suppresses sentence spacing
but I'm wondering whether it couldn't be reimplemented better,
in a more AsciiDoc-like fashion.
We can happily stick to POSIX and the usual variable names,
with the following exceptions:
- pkg-config(1) is used to find libraries and compile flags
- the new "static" target uses non-standard compiler
and linker flags, though it's not the default target
sdn is predestined for wild distribution,
even the dynamically linked libc is rather suboptimal.
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
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`.
And remove it from the "similar software" section.
Our relationship has progressed.
Other unusual shells I've checked before I gave up:
- nushell lacks the ability to bind keys to user functions
- yash can but is otherwise way too basic
zsh's antisocial behaviour was fairly promptly fixed (thanks to
Stephane Chazelas and his patience).
zle-line-init and zle-line-reset seem to be user-defined widgets
and the order inverted. Put zle-line-init before reset-prompt
because some people do weird things in there.
There's a slight issue with the inverted cell representing
the cursor standing out a bit too much amongst the rest of
the characters.
The resulting experience is a lot more consistent, though.
Since I'm already dealing with the fish shell.
All of our supported shells seem to handle cursor position
in Unicode (wide character) codepoints.
It was easiest and most straight-forward to pass the data
through yet-unused program arguments.
The cursor position is marked by a Unicode glyph equivalent
to ACS_DIAMOND, although ncurses doesn't get a chance
to make any ACS translation.
That is, if it's missing from our history.
This makes for a more consistent experience when traversing
the filesystem. Arguably, it's only good for when 'h' is
bound to the 'parent' action.
Also make sure that the offset and cursor are reset when
the path is changed.