From edde3c5afc1d617cd4261c7c502739cc50a5b1a4 Mon Sep 17 00:00:00 2001 From: Peng Wu Date: Fri, 5 Jun 2015 13:05:59 +0800 Subject: fixes ZhuyinEditor::updateZhuyin --- src/ZYZZhuyinEditor.cc | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/ZYZZhuyinEditor.cc b/src/ZYZZhuyinEditor.cc index affb948..a0f004c 100644 --- a/src/ZYZZhuyinEditor.cc +++ b/src/ZYZZhuyinEditor.cc @@ -26,6 +26,7 @@ #include "ZYZhuyinProperties.h" #include "ZYTradSimpConverter.h" #include "ZYEnhancedText.h" +#include "ZYSymbols.h" using namespace ZY; @@ -82,9 +83,25 @@ ZhuyinEditor::updateZhuyin (void) get_phonetic_section (enhanced_text, start_pos, end_pos, section); zhuyin_instance_t * instance = m_instances[index]; - zhuyin_parse_more_chewings (instance, section.c_str ()); + size_t len = zhuyin_parse_more_chewings + (instance, section.c_str ()); zhuyin_guess_sentence (instance); + /* check whether the last character is space, + if not part of parsed chewing input, + turn the space into symbol. */ + if (end_pos == m_text.size () && + ' ' == section[section.size () - 1] && + section.size () > len) { + size_t length = get_enhanced_text_length (m_text); + erase_input_sequence (m_text, length - 1, 1); + insert_symbol (m_text, length - 1, BUILTIN_SYMBOL_TYPE, + "", " "); + /* as we changed the last space character, + reached the end of user input, exit the loop. */ + break; + } + ++index; } -- cgit