snix/users/sterni/acme/plan9port/latin1-increase-compose-capacity.patch
sterni 9743fbf6b7 feat(sterni/acme/plan9port): allow entering BQN chars via compose
plan9port completely ignores XCompose because it has its own compose
mechanism (which is mapped to the same key). The sequences are defined
in /lib/keyboard and need to be compiled in.

Support for the BQN unicode characters is achieved by generating the
necessary lines for /lib/keyboard from the .inputrc (for GNU readline)
that is part of mlochbaum/BQN (simply because that file is somewhat
parseable and stores the sequences in ASCII, contrary to .XCompose).
This is implemented by a small BQN script which is executed in
postPatch.

All usual sequences are supported except those that map to the second
ASCII character of the sequence. These exist to keep certain characters
typeable in other input system. Thanks to the explicit compose key,
Plan 9 doesn't have this problem.

Change-Id: I590c03fd69a2aae3cbbbd39ebcbce6cec0418b50
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13034
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
Autosubmit: sterni <sternenseemann@systemli.org>
2025-01-21 20:19:56 +00:00

16 lines
646 B
Diff

All BQN character compose sequence use the same leading character (\). Since there
are about 80 of them, the standard lookup table size is not enough.
diff --git a/src/cmd/devdraw/latin1.c b/src/cmd/devdraw/latin1.c
index 87c0be45..c8e79e33 100644
--- a/src/cmd/devdraw/latin1.c
+++ b/src/cmd/devdraw/latin1.c
@@ -10,7 +10,7 @@ static struct cvlist
{
char *ld; /* must be seen before using this conversion */
char *si; /* options for last input characters */
- Rune so[60]; /* the corresponding Rune for each si entry */
+ Rune so[100]; /* the corresponding Rune for each si entry */
} latintab[] = {
#include "latin1.h"
0, 0, { 0 }