Red Hat Bugzilla – Bug 199353
scim-chewing hangs for commit > 6 characters
Last modified: 2014-03-25 20:53:36 EDT
Description of problem:
Tested with non-shared Input mode, scim backend and PinYinKeyboard(romaised),
noticed that it is not possible to remove any characters in the preedit buffer.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1.set up SCIM as mentioned in the desc
2.activate IME, in gedit
3.enter hongmao (redhat)
preedit buffer move forward 1 SPACE and preedit buffer becomes uneditable
remove one char in the buffer
Created attachment 135189 [details]
this patch avoid strcpy() copying an over-length string (8 chars)to the
destination (6 chars).
the preedit buffer will be cleared if length of the input key set is longer
than 6 characters.
And this is consistent with the behaviour of 0.2?
Jserv mentioned some patch was committed to svn related to this
I think but I didn't find it yet.
It hangs, that's why preedit is no longer editable. Changing the summary.
In communication with upstream.
Submitted bug to upstream:
Created attachment 135528 [details]
Uses strncpy instead of strcpy. It just copies first 6 characters and ignores
Crashing avoided for stablity, but still need a better fix.
BTW, the display of preedit buffer was not getting longer than 8 character
length. On the background, preedit buffer was actually storing user inputs
(able to test by input 10 characters at a row and press backspaces 3 times).
Built and pending for QC.
Until upstream adopted this fix in their next release or provided a better
solution, this package should has a higher stability from crashing.
Verified in latest FC6:
# rpm -q scim-chewing
after step 3.enter hongmao (redhat), enter Space, preedit buffer get cleared,
At this stage, chewing is not able to break input into two or more words.
i.e. it will not recognise 'hongmao' as 'hong' and 'mao', it will just recognise
that as 'hongmao' which is probably no match.
All user could do at this stage is type 'hong' "space" 'mao' "space" which will
show phrase (combination of more than 1 characters) if the table consist that.
FYI, user need to press "enter" to commit after phrase found.
scim-chewing doesn't not hang for commit > 6 character after the fix.
It is the usual behavior since chewing still hasn't able to deal with cutting
'hongmao' into 'hong' and 'mao' and do matching. Verified and closed.