Pārlūkot izejas kodu

process_unicode: Handle too long UCIS symbol names

If the symbol name being entered is longer than the max, stop recording
it, and stop processing keycodes apart from the ones that can delete,
finish or cancel the sequence.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
Gergely Nagy 8 gadi atpakaļ
vecāks
revīzija
0b6861827f
1 mainītis faili ar 9 papildinājumiem un 1 dzēšanām
  1. 9 1
      quantum/process_keycode/process_unicode.c

+ 9 - 1
quantum/process_keycode/process_unicode.c

@@ -110,7 +110,15 @@ void qk_ucis_symbol_fallback (void) {
 bool process_record_ucis (uint16_t keycode, keyrecord_t *record) {
   uint8_t i;
 
-  if (!qk_ucis_state.in_progress || !record->event.pressed)
+  if (!qk_ucis_state.in_progress)
+    return true;
+
+  if (qk_ucis_state.count >= UCIS_MAX_SYMBOL_LENGTH &&
+      !(keycode == KC_BSPC || keycode == KC_ESC || keycode == KC_SPC || keycode == KC_ENT)) {
+    return false;
+  }
+
+  if (!record->event.pressed)
     return true;
 
   qk_ucis_state.codes[qk_ucis_state.count] = keycode;