qmk/qmk_firmware

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

Open

#21.128 aberto em 4 de jun. de 2023

Ver no GitHub
 (2 comments) (0 reactions) (0 assignees)C (43.867 forks)batch import
bughelp wanted

Métricas do repositório

Stars
 (20.368 stars)
Métricas de merge de PR
 (Mesclagem média 20d 9h) (27 fundiu PRs em 30d)

Description

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

Guia do colaborador