Bug 199353

Summary: scim-chewing hangs for commit > 6 characters
Product: [Fedora] Fedora Reporter: Lawrence Lim <llim>
Component: scim-chewingAssignee: Caius Chance <K9>
Status: CLOSED RAWHIDE QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: eng-i18n-bugs, tools-bugs
Target Milestone: ---Keywords: i18n
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2006-09-29 07:46:02 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 167798    
Attachments:
Description Flags
proposed patch
none
proposed patch none

Description Lawrence Lim 2006-07-19 02:18:01 UTC
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):
scim-chewing-0.3.1-2

How reproducible:
Always

Steps to Reproduce:
1.set up SCIM as mentioned in the desc
2.activate IME, in gedit
3.enter hongmao (redhat)
4.enter Space
5.enter BackSpace
  
Actual results:
preedit buffer move forward 1 SPACE and preedit buffer becomes uneditable

Expected results:
remove one char in the buffer

Additional info:

Comment 2 Caius Chance 2006-08-30 07:00:42 UTC
Created attachment 135189 [details]
proposed patch

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.

Comment 3 Jens Petersen 2006-08-30 09:39:46 UTC
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.

Comment 4 Leon Ho 2006-08-31 12:20:07 UTC
It hangs, that's why preedit is no longer editable. Changing the summary. 

Comment 6 Caius Chance 2006-09-04 05:30:13 UTC
In communication with upstream.

Comment 7 Caius Chance 2006-09-05 06:26:11 UTC
Submitted bug to upstream:

http://rt.openfoundry.org/Foundry/Project/Tracker/Display.html?Queue=271&id=23428

Comment 8 Caius Chance 2006-09-05 06:31:51 UTC
Created attachment 135528 [details]
proposed patch

Uses strncpy instead of strcpy. It just copies first 6 characters and ignores
the remaining.

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).

Comment 9 Caius Chance 2006-09-06 01:16:25 UTC
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.

Comment 10 Xiaohong Wang 2006-09-29 06:14:10 UTC
Verified in latest FC6:
# rpm -q scim-chewing
scim-chewing-0.3.1-6.fc6

after step 3.enter hongmao (redhat), enter Space, preedit buffer get cleared,
nothing displays

Comment 11 Caius Chance 2006-09-29 07:32:04 UTC
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.

Comment 12 Xiaohong Wang 2006-09-29 07:46:02 UTC
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.