aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGergely Nagy <algernon@madhouse-project.org>2016-08-13 11:11:22 +0200
committerGergely Nagy <algernon@madhouse-project.org>2016-08-15 10:08:53 +0200
commit0b6861827faea747345ea38202d64c8004ab128c (patch)
tree8791abe3dec280fbbf6a6be30d461bc1ada25110
parentfa06a163607e8c6c4bd0968c2de96a9a298b777c (diff)
downloadqmk_firmware-0b6861827faea747345ea38202d64c8004ab128c.tar.gz
qmk_firmware-0b6861827faea747345ea38202d64c8004ab128c.zip
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>
-rw-r--r--quantum/process_keycode/process_unicode.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/quantum/process_keycode/process_unicode.c b/quantum/process_keycode/process_unicode.c
index 8a6509300..851a96eaa 100644
--- a/quantum/process_keycode/process_unicode.c
+++ b/quantum/process_keycode/process_unicode.c
@@ -110,7 +110,15 @@ void qk_ucis_symbol_fallback (void) {
110bool process_record_ucis (uint16_t keycode, keyrecord_t *record) { 110bool process_record_ucis (uint16_t keycode, keyrecord_t *record) {
111 uint8_t i; 111 uint8_t i;
112 112
113 if (!qk_ucis_state.in_progress || !record->event.pressed) 113 if (!qk_ucis_state.in_progress)
114 return true;
115
116 if (qk_ucis_state.count >= UCIS_MAX_SYMBOL_LENGTH &&
117 !(keycode == KC_BSPC || keycode == KC_ESC || keycode == KC_SPC || keycode == KC_ENT)) {
118 return false;
119 }
120
121 if (!record->event.pressed)
114 return true; 122 return true;
115 123
116 qk_ucis_state.codes[qk_ucis_state.count] = keycode; 124 qk_ucis_state.codes[qk_ucis_state.count] = keycode;