diff --git a/src/others/ime/lv_ime_pinyin.c b/src/others/ime/lv_ime_pinyin.c index b763be443..8382269b7 100644 --- a/src/others/ime/lv_ime_pinyin.c +++ b/src/others/ime/lv_ime_pinyin.c @@ -707,7 +707,8 @@ static void lv_ime_pinyin_kb_event(lv_event_t * e) } else if((pinyin_ime->mode == LV_IME_PINYIN_MODE_K26) && ((txt[0] >= 'a' && txt[0] <= 'z') || (txt[0] >= 'A' && txt[0] <= 'Z'))) { - lv_strcat(pinyin_ime->input_char, txt); + uint16_t len = lv_strlen(pinyin_ime->input_char); + lv_snprintf(pinyin_ime->input_char + len, sizeof(pinyin_ime->input_char) - len, "%s", txt); pinyin_input_proc(obj); pinyin_ime->ta_count++; }