qmk/qmk_firmware

[Bug] UCIS_SYM() - incorrect handling of names containing numbers

Open

#21.128 geöffnet am 4. Juni 2023

Auf GitHub ansehen
 (2 Kommentare) (0 Reaktionen) (0 zugewiesene Personen)C (43.867 Forks)batch import
bughelp wanted

Repository-Metriken

Stars
 (20.368 Stars)
PR-Merge-Metriken
 (Durchschn. Merge 20T 9h) (27 gemergte PRs in 30 T)

Beschreibung

Describe the Bug

With UCIS_ENABLE = yes in rules.mk when defining a symbol whose name contains a number ([0-9]), the symbol name is never matched.

Example:

const ucis_symbol_t ucis_symbol_table[] = UCIS_TABLE(
    UCIS_SYM("poop",    0x1F4A9), // 💩
    UCIS_SYM("grin",    0x1F600), // 😀
    UCIS_SYM("grin2",   0x1F601), // 😁
);

void ucis_symbol_fallback(void) {
    send_unicode_string("💩");
}
  • ⌨ grin -> 😀
  • ⌨ grin2 -> 💩 (expected 😁)

Suggestion: Fix the line in process_ucis.c:41 in function is_uni_seq(char *seq) since the ASCII code '0' comes before '9' (asciitable.com):

Fix:

if ('0' <= seq[i] && seq[i] <= '9') {

Keyboard Used

Keychron Q6

Link to product page (if applicable)

Operating System

Linux

qmk doctor Output

No response

Is AutoHotKey / Karabiner installed

  • AutoHotKey (Windows)
  • Karabiner (macOS)

Other keyboard-related software installed

Additional Context

No response

Contributor Guide