qmk/qmk_firmware

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

Open

#21,128 建立於 2023年6月4日

在 GitHub 查看
 (2 留言) (0 反應) (0 負責人)C (43,867 fork)batch import
bughelp wanted

倉庫指標

Star
 (20,368 star)
PR 合併指標
 (平均合併 20天 9小時) (30 天內合併 27 個 PR)

描述

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

貢獻者指南