From a886f6eedeafbe06c6de0cf68fbd0f81655af597 Mon Sep 17 00:00:00 2001 From: Jules Aguillon Date: Sun, 9 Jun 2024 10:35:38 +0200 Subject: [PATCH] compose: Fix misbehaving due to encoding errors Encoding errors in the compose data compiler due to: - 'UTF-16' adds a BOM, use 'UTF-16-LE' instead - 'str.encode' returns a byte array, use 'array' to have a 16-bit char array. --- srcs/compose/compile.py | 39 ++++++++++++++++------- srcs/juloo.keyboard2/ComposeKey.java | 10 +++--- srcs/juloo.keyboard2/ComposeKeyData.java | Bin 81388 -> 73274 bytes 3 files changed, 32 insertions(+), 17 deletions(-) diff --git a/srcs/compose/compile.py b/srcs/compose/compile.py index aa3b7f8..14dc410 100644 --- a/srcs/compose/compile.py +++ b/srcs/compose/compile.py @@ -1,4 +1,5 @@ import textwrap, sys, re, string, json, os +from array import array # Parse symbol names from keysymdef.h. Many compose sequences in # en_US_UTF_8_Compose.pre reference theses. For example, all the sequences on @@ -41,16 +42,21 @@ def parse_sequences_file_xkb(fname): return def_, result char_names = { **xkb_char_extra_names } # Interpret character names of the form "U0000" or using [char_names]. - def parse_seq_char(c): - uchar, named_char = c + def parse_seq_char(sc): + uchar, named_char = sc if uchar != "": - return chr(int(uchar, 16)) - # else is a named char - if len(named_char) == 1: - return named_char - if not named_char in char_names: - raise Exception("Unknown char: " + named_char) - return char_names[named_char] + c = chr(int(uchar, 16)) + elif len(named_char) == 1: + c = named_char + else: + if not named_char in char_names: + raise Exception("Unknown char: " + named_char) + c = char_names[named_char] + # The state machine can't represent sequence characters that do not fit + # in a 16-bit char. + if len(c) > 1 or ord(c[0]) > 65535: + raise Exception("Char out of range: " + r) + return c # Interpret the left hand side of a sequence. def parse_seq_chars(def_): return list(map(parse_seq_char, re.findall(char_re, def_))) @@ -138,9 +144,9 @@ def make_automata(tree_root): # There are two encoding for leafs: character final state for 15-bit # characters and string final state for the rest. if len(c) > 1 or ord(c[0]) > 32767: # String final state - cb = c.encode("UTF-16") - states.append((-1, len(cb) + 1)) - for c in cb: + javachars = array('H', c.encode("UTF-16-LE")) + states.append((-1, len(javachars) + 1)) + for c in javachars: states.append((c, 0)) else: # Character final state states.append((c, 1)) @@ -152,6 +158,14 @@ def make_automata(tree_root): add_tree(tree_root) return states +# Debug +def print_automata(automata): + i = 0 + for (s, e) in automata: + s = "%#06x" % s if isinstance(s, int) else '"%s"' % str(s) + print("%3d %8s %d" % (i, s, e), file=sys.stderr) + i += 1 + def batched(ar, n): i = 0 while i + n < len(ar): @@ -213,3 +227,4 @@ for fname in sys.argv[1:]: automata = make_automata(trie) gen_java(automata) print("Compiled %d sequences into %d states. Dropped %d sequences." % (total_sequences, len(automata), dropped_sequences), file=sys.stderr) +# print_automata(automata) diff --git a/srcs/juloo.keyboard2/ComposeKey.java b/srcs/juloo.keyboard2/ComposeKey.java index 328bb83..9272bd0 100644 --- a/srcs/juloo.keyboard2/ComposeKey.java +++ b/srcs/juloo.keyboard2/ComposeKey.java @@ -36,17 +36,17 @@ public final class ComposeKey if (next < 0) return null; next = edges[next]; - char next_header = states[next]; + int next_header = states[next]; if (next_header == 0) // Enter a new intermediate state. return KeyValue.makeComposePending(String.valueOf(c), next, 0); - else if (next_header > 0) // Character final state. - return KeyValue.makeCharKey(next_header); - else // next_header is < 0, string final state. + else if (next_header == 0xFFFF) // String final state { int next_length = edges[next]; return KeyValue.makeStringKey( - new String(states, next + 1, next + next_length)); + new String(states, next + 1, next_length - 1)); } + else // Character final state. + return KeyValue.makeCharKey((char)next_header); } /** The state machine is comprised of two arrays. diff --git a/srcs/juloo.keyboard2/ComposeKeyData.java b/srcs/juloo.keyboard2/ComposeKeyData.java index fbb7ab3daedc26445acb7f5cb2bf0b0fe14755a5..9bb420a9cf522c5333bd322b51edbce3cf29fbb6 100644 GIT binary patch literal 73274 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 J_W!>2{{cFy30(jH literal 81388 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�Q=gPMCXKdB`b7kB6Go{h{ys~T!woSGM_2UXW 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