qmk / qmk_firmware

Open-source keyboard firmware for Atmel AVR and Arm USB families
https://qmk.fm
GNU General Public License v2.0
18.38k stars 39.59k forks source link

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

Open rubienr opened 1 year ago

rubienr commented 1 year ago

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("💩");
}

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

Other keyboard-related software installed

-

Additional Context

No response

rubienr commented 1 year ago

Can somebody confirm this is the correct way to fix the issue? I'd then prepare a PR.

rubienr commented 1 year ago

Probably related to https://github.com/qmk/qmk_firmware/pull/21659