rpms/libchewing/F-10 import.log, 1.11, 1.12 libchewing-0.3.2.phraseChoiceRearward.patch, 1.1, 1.2 libchewing.spec, 1.31, 1.32
Ding-Yi Chen
dchen at fedoraproject.org
Fri Jun 26 06:14:45 UTC 2009
- Previous message (by thread): rpms/libchewing/F-11 import.log, 1.11, 1.12 libchewing-0.3.2.phraseChoiceRearward.patch, 1.1, 1.2 libchewing.spec, 1.33, 1.34
- Next message (by thread): rpms/monotorrent/devel import.log, 1.6, 1.7 monotorrent.spec, 1.10, 1.11
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: dchen
Update of /cvs/pkgs/rpms/libchewing/F-10
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv16417/F-10
Modified Files:
import.log libchewing-0.3.2.phraseChoiceRearward.patch
libchewing.spec
Log Message:
Revised Revise phraseChoiceRearward.patch so the cursor wont move to left when pressing down key.
Index: import.log
===================================================================
RCS file: /cvs/pkgs/rpms/libchewing/F-10/import.log,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -p -r1.11 -r1.12
--- import.log 20 May 2009 07:17:03 -0000 1.11
+++ import.log 26 Jun 2009 06:14:14 -0000 1.12
@@ -9,3 +9,4 @@ libchewing-0_3_2-6_fc10:F-10:libchewing-
libchewing-0_3_2-8_fc10:F-10:libchewing-0.3.2-8.fc10.src.rpm:1240375899
libchewing-0_3_2-9_fc11:F-10:libchewing-0.3.2-9.fc11.src.rpm:1242720193
libchewing-0_3_2-10_fc11:F-10:libchewing-0.3.2-10.fc11.src.rpm:1242803706
+libchewing-0_3_2-11_fc11:F-10:libchewing-0.3.2-11.fc11.src.rpm:1245996821
libchewing-0.3.2.phraseChoiceRearward.patch:
Index: libchewing-0.3.2.phraseChoiceRearward.patch
===================================================================
RCS file: /cvs/pkgs/rpms/libchewing/F-10/libchewing-0.3.2.phraseChoiceRearward.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -p -r1.1 -r1.2
--- libchewing-0.3.2.phraseChoiceRearward.patch 20 May 2009 07:17:04 -0000 1.1
+++ libchewing-0.3.2.phraseChoiceRearward.patch 26 Jun 2009 06:14:14 -0000 1.2
@@ -1,66 +1,516 @@
diff -up ./src/chewingio.c.phraseChoiceRearward ./src/chewingio.c
--- ./src/chewingio.c.phraseChoiceRearward 2008-12-02 00:29:20.000000000 +1000
-+++ ./src/chewingio.c 2009-05-18 18:02:15.000000000 +1000
++++ ./src/chewingio.c 2009-06-26 15:58:08.000000000 +1000
+@@ -75,14 +75,14 @@ CHEWING_API int chewing_KBStr2Num( char
+ return KB_DEFAULT;
+ }
+
+-#ifdef ENABLE_DEBUG
++#ifdef ENABLE_DEBUG
+ static void TerminateDebug()
+ {
+ DEBUG_OUT( "DEBUG: logging service is about to terminate.\n" );
+ if ( fp_g ) {
+ fclose( fp_g );
+ }
+-}
++}
+ #endif
+
+ int addTerminateService( void (*callback)() )
+@@ -103,7 +103,7 @@ int addTerminateService( void (*callback
+ CHEWING_API ChewingContext *chewing_new()
+ {
+ ChewingContext *ctx;
+-
++
+ ChewingData *internal_data = ALC( ChewingData, 1 );
+ ChewingOutput *internal_output = ALC( ChewingOutput, 1 );
+ ctx = ALC( ChewingContext, 1 );
+@@ -159,7 +159,7 @@ CHEWING_API int chewing_Init(
+ dbg_path = FAILSAFE_OUTPUT;
+ fp_g = fopen( dbg_path, "w+" );
+ if ( ! fp_g ) {
+- fprintf( stderr,
++ fprintf( stderr,
+ "Failed to record debug message in file.\n"
+ "--> Output to stderr\n" );
+ }
+@@ -237,14 +237,14 @@ CHEWING_API void chewing_Terminate()
+ if ( TerminateServices[ i ] ) {
+ #ifdef ENABLE_DEBUG
+ /* Can't output to debug file because it's about to close */
+- fprintf( stderr,
++ fprintf( stderr,
+ EMPHASIZE( "Terminating service #%d / %d" ) ".\n",
+ i, countTerminateService );
+ #endif
+ (*TerminateServices[ i ])();
+ }
+ }
+-
++
+ /* XXX: should check if the services are really completed. */
+ bTerminateCompleted = 1;
+ return;
+@@ -403,7 +403,7 @@ CHEWING_API void chewing_set_ChiEngMode(
+ ctx->data->bChiSym = ( mode == CHINESE_MODE ? 1 : 0 );
+ }
+
+-CHEWING_API int chewing_get_ChiEngMode( ChewingContext *ctx )
++CHEWING_API int chewing_get_ChiEngMode( ChewingContext *ctx )
+ {
+ return ctx->data->bChiSym;
+ }
+@@ -413,7 +413,7 @@ CHEWING_API void chewing_set_ShapeMode(
+ ctx->data->bFullShape = (mode == FULLSHAPE_MODE ? 1 : 0);
+ }
+
+-CHEWING_API int chewing_get_ShapeMode( ChewingContext *ctx )
++CHEWING_API int chewing_get_ShapeMode( ChewingContext *ctx )
+ {
+ return ctx->data->bFullShape;
+ }
+@@ -435,7 +435,7 @@ static int DoSelect( ChewingData *pgdata
+ if ( pgdata->choiceInfo.isSymbol ) {
+ SymbolChoice( pgdata, num );
+ }
+- else {
++ else {
+ /* change the select interval & selectStr & nSelect */
+ AddSelect( pgdata, num );
+ /* second, call choice module */
+@@ -489,7 +489,7 @@ CHEWING_API int chewing_handle_Space( Ch
+ pgdata->chiSymbolBufLen = 0;
+ pgdata->chiSymbolCursor = 0;
+ keystrokeRtn = KEYSTROKE_COMMIT;
+- }
++ }
+ else if ( pgdata->bChiSym != CHINESE_MODE ) {
+ /* see if buffer contains nothing */
+ if ( pgdata->chiSymbolBufLen == 0 ) {
+@@ -507,11 +507,11 @@ CHEWING_API int chewing_handle_Space( Ch
+ if ( rtn == SYMBOL_KEY_ERROR ) {
+ keystrokeRtn = KEYSTROKE_IGNORE;
+ /*
+- * If the key is not a printable symbol,
++ * If the key is not a printable symbol,
+ * then it's wrong to commit it.
+ */
+ bQuickCommit = 0;
+- }
++ }
+ else {
+ keystrokeRtn = KEYSTROKE_ABSORB;
+ }
+@@ -524,9 +524,9 @@ CHEWING_API int chewing_handle_Space( Ch
+ /* Quick commit */
+ else {
+ DEBUG_OUT(
+- "\t\tQuick commit buf[0]=%c\n",
++ "\t\tQuick commit buf[0]=%c\n",
+ pgdata->chiSymbolBuf[ 0 ].s[ 0 ] );
+- pgo->commitStr[ 0 ] = pgdata->chiSymbolBuf[ 0 ];
++ pgo->commitStr[ 0 ] = pgdata->chiSymbolBuf[ 0 ];
+ pgo->nCommitStr = 1;
+ pgdata->chiSymbolBufLen = 0;
+ pgdata->chiSymbolCursor = 0;
+@@ -643,7 +643,7 @@ CHEWING_API int chewing_handle_Enter( Ch
+ keystrokeRtn = KEYSTROKE_COMMIT;
+ WriteChiSymbolToBuf( pgo->commitStr, nCommitStr, pgdata );
+ AutoLearnPhrase( pgdata );
+- CleanAllBuf( pgdata );
++ CleanAllBuf( pgdata );
+ pgo->nCommitStr = nCommitStr;
+ }
+
+@@ -664,12 +664,12 @@ CHEWING_API int chewing_handle_Del( Chew
+ }
+
+ if ( ! pgdata->bSelect ) {
+- if (
+- ! ZuinIsEntering( &( pgdata->zuinData ) ) &&
++ if (
++ ! ZuinIsEntering( &( pgdata->zuinData ) ) &&
+ pgdata->chiSymbolCursor < pgdata->chiSymbolBufLen ) {
+ ChewingKillChar(
+- pgdata,
+- pgdata->chiSymbolCursor,
++ pgdata,
++ pgdata->chiSymbolCursor,
+ NONDECREASE_CURSOR );
+ }
+ CallPhrasing( pgdata );
+@@ -696,7 +696,7 @@ CHEWING_API int chewing_handle_Backspace
+ }
+ else if ( pgdata->chiSymbolCursor > 0 ) {
+ ChewingKillChar(
+- pgdata,
++ pgdata,
+ pgdata->chiSymbolCursor - 1,
+ DECREASE_CURSOR );
+ }
@@ -740,6 +740,7 @@ CHEWING_API int chewing_handle_Down( Che
int toSelect = 0;
int keystrokeRtn = KEYSTROKE_ABSORB;
int key_buf_cursor;
-+ static int cursor_last=-1;
++ static int cursor_orig=-1;
CheckAndResetRange( pgdata );
-@@ -757,9 +758,15 @@ CHEWING_API int chewing_handle_Down( Che
+@@ -757,12 +758,21 @@ CHEWING_API int chewing_handle_Down( Che
if ( toSelect ) {
if( ! pgdata->bSelect ) {
-+ cursor_last=pgdata->chiSymbolCursor;
++ cursor_orig=pgdata->chiSymbolCursor;
ChoiceFirstAvail( pgdata );
}
else {
+ if ( pgdata->config.bPhraseChoiceRearward ){
-+ int avail_willbe=(pgdata->availInfo.currentAvail>0)?
++ int avail_willbe=(pgdata->availInfo.currentAvail>0)?
+ pgdata->availInfo.currentAvail-1: pgdata->availInfo.nAvail - 1;
-+ pgdata->chiSymbolCursor=cursor_last -pgdata->availInfo.avail[avail_willbe].len;
++ pgdata->chiSymbolCursor=cursor_orig - pgdata->availInfo.avail[avail_willbe].len;
++ if (chewing_buffer_Len(ctx)>cursor_orig){
++ pgdata->chiSymbolCursor++;
++ }
+ }
ChoiceNextAvail( pgdata );
}
- }
+- }
++ }
+ else if ( pgdata->symbolKeyBuf[ key_buf_cursor ] ) {
+ /* Open Symbol Choice List */
+ if ( ! pgdata->choiceInfo.isSymbol )
+@@ -782,11 +792,11 @@ CHEWING_API int chewing_handle_ShiftLeft
+
+ if ( ! ChewingIsEntering( pgdata ) ) {
+ keystrokeRtn = KEYSTROKE_IGNORE;
+- }
++ }
+ if ( ! pgdata->bSelect ) {
+ /* PointEnd locates (-9, +9) */
+- if (
+- ! ZuinIsEntering( &( pgdata->zuinData ) ) &&
++ if (
++ ! ZuinIsEntering( &( pgdata->zuinData ) ) &&
+ pgdata->chiSymbolCursor > 0 &&
+ pgdata->PointEnd > -9 ) {
+ if ( pgdata->PointStart == -1 )
+@@ -797,7 +807,7 @@ CHEWING_API int chewing_handle_ShiftLeft
+ pgdata->PointEnd--;
+ }
+ if ( pgdata->PointEnd == 0 )
+- pgdata->PointStart = -1;
++ pgdata->PointStart = -1;
+ }
+ }
+
+@@ -822,8 +832,8 @@ CHEWING_API int chewing_handle_Left( Che
+ pgdata->choiceInfo.pageNo = pgdata->choiceInfo.nPage - 1;
+ }
+ else {
+- if (
+- ! ZuinIsEntering( &( pgdata->zuinData ) ) &&
++ if (
++ ! ZuinIsEntering( &( pgdata->zuinData ) ) &&
+ pgdata->chiSymbolCursor > 0 ) {
+ CheckAndResetRange( pgdata );
+ pgdata->chiSymbolCursor--;
+@@ -842,13 +852,13 @@ CHEWING_API int chewing_handle_ShiftRigh
+
+ if ( ! ChewingIsEntering( pgdata ) ) {
+ keystrokeRtn = KEYSTROKE_IGNORE;
+- }
++ }
+
+ if ( ! pgdata->bSelect ) {
+ /* PointEnd locates (-9, +9) */
+- if (
+- ! ZuinIsEntering( &( pgdata->zuinData ) ) &&
+- pgdata->chiSymbolCursor < pgdata->chiSymbolBufLen &&
++ if (
++ ! ZuinIsEntering( &( pgdata->zuinData ) ) &&
++ pgdata->chiSymbolCursor < pgdata->chiSymbolBufLen &&
+ pgdata->PointEnd < 9 ) {
+ if ( pgdata->PointStart == -1 )
+ pgdata->PointStart = pgdata->chiSymbolCursor;
+@@ -858,7 +868,7 @@ CHEWING_API int chewing_handle_ShiftRigh
+ }
+ pgdata->chiSymbolCursor++;
+ if ( pgdata->PointEnd == 0 )
+- pgdata->PointStart = -1;
++ pgdata->PointStart = -1;
+ }
+ }
+
+@@ -883,9 +893,9 @@ CHEWING_API int chewing_handle_Right( Ch
+ pgdata->choiceInfo.pageNo = 0;
+ }
+ else {
+- if (
+- ! ZuinIsEntering( &( pgdata->zuinData ) ) &&
+- pgdata->chiSymbolCursor < pgdata->chiSymbolBufLen ) {
++ if (
++ ! ZuinIsEntering( &( pgdata->zuinData ) ) &&
++ pgdata->chiSymbolCursor < pgdata->chiSymbolBufLen ) {
+ CheckAndResetRange( pgdata );
+ pgdata->chiSymbolCursor++;
+ }
+@@ -974,11 +984,11 @@ CHEWING_API int chewing_handle_Home( Che
+
+ CheckAndResetRange( pgdata );
+
+- if ( ! ChewingIsEntering( pgdata ) ) {
++ if ( ! ChewingIsEntering( pgdata ) ) {
+ keystrokeRtn = KEYSTROKE_IGNORE;
+- }
++ }
+ else if ( ! pgdata->bSelect ) {
+- pgdata->chiSymbolCursor = 0;
++ pgdata->chiSymbolCursor = 0;
+ }
+ MakeOutputWithRtn( pgo, pgdata, keystrokeRtn );
+ return 0;
+@@ -993,12 +1003,12 @@ CHEWING_API int chewing_handle_End( Chew
+ CheckAndResetRange( pgdata );
+
+ if ( ! ChewingIsEntering( pgdata ) ) {
+- keystrokeRtn = KEYSTROKE_IGNORE;
+- }
++ keystrokeRtn = KEYSTROKE_IGNORE;
++ }
+ else if ( ! pgdata->bSelect ) {
+- pgdata->chiSymbolCursor = pgdata->chiSymbolBufLen;
+- }
+- MakeOutputWithRtn( pgo, pgdata, keystrokeRtn );
++ pgdata->chiSymbolCursor = pgdata->chiSymbolBufLen;
++ }
++ MakeOutputWithRtn( pgo, pgdata, keystrokeRtn );
+ return 0;
+ }
+
+@@ -1013,9 +1023,9 @@ CHEWING_API int chewing_handle_PageUp( C
+ if ( ! ChewingIsEntering( pgdata ) ) {
+ keystrokeRtn = KEYSTROKE_IGNORE;
+ }
+- else if ( ! pgdata->bSelect ) {
++ else if ( ! pgdata->bSelect ) {
+ pgdata->chiSymbolCursor = pgdata->chiSymbolBufLen;
+- }
++ }
+ MakeOutputWithRtn( pgo, pgdata, keystrokeRtn );
+ return 0;
+ }
+@@ -1031,9 +1041,9 @@ CHEWING_API int chewing_handle_PageDown(
+ if ( ! ChewingIsEntering( pgdata ) ) {
+ keystrokeRtn = KEYSTROKE_IGNORE;
+ }
+- else if ( ! pgdata->bSelect ) {
++ else if ( ! pgdata->bSelect ) {
+ pgdata->chiSymbolCursor = pgdata->chiSymbolBufLen;
+- }
++ }
+ MakeOutputWithRtn( pgo, pgdata, keystrokeRtn );
+ return 0;
+ }
+@@ -1107,7 +1117,7 @@ CHEWING_API int chewing_handle_Default(
+ DoSelect( pgdata, num );
+ goto End_keyproc;
+ }
+-
++
+ /* Otherwise, use 'j' and 'k' for paging in selection mode */
+ DEBUG_OUT(
+ "\t\tchecking paging key, got '%c'\n",
+@@ -1163,10 +1173,10 @@ CHEWING_API int chewing_handle_Default(
+ rtn = ZuinPhoInput( &( pgdata->zuinData ), key );
+ DEBUG_OUT(
+ "\t\tChinese mode key, "
+- "ZuinPhoInput return value = %d\n",
++ "ZuinPhoInput return value = %d\n",
+ rtn );
+ DEBUG_FLUSH;
+-
++
+ if ( rtn == ZUIN_KEY_ERROR )
+ rtn = SpecialSymbolInput( key, pgdata );
+ switch ( rtn ) {
+@@ -1182,14 +1192,14 @@ CHEWING_API int chewing_handle_Default(
+ case ZUIN_KEY_ERROR:
+ case ZUIN_IGNORE:
+ DEBUG_OUT(
+- "\t\tbefore isupper(key),key=%d\n",
++ "\t\tbefore isupper(key),key=%d\n",
+ key );
+ /* change upper case into lower case */
+- if ( isupper( key ) )
++ if ( isupper( key ) )
+ key = tolower( key );
+
+ DEBUG_OUT(
+- "\t\tafter isupper(key),key=%d\n",
++ "\t\tafter isupper(key),key=%d\n",
+ key );
+
+ /* see if buffer contains nothing */
+@@ -1207,7 +1217,7 @@ CHEWING_API int chewing_handle_Default(
+ if ( rtn == SYMBOL_KEY_ERROR ) {
+ keystrokeRtn = KEYSTROKE_IGNORE;
+ /*
+- * If the key is not a printable symbol,
++ * If the key is not a printable symbol,
+ * then it's wrong to commit it.
+ */
+ bQuickCommit = 0;
+@@ -1248,9 +1258,9 @@ End_keyproc:
+ /* Quick commit */
+ else {
+ DEBUG_OUT(
+- "\t\tQuick commit buf[0]=%c\n",
++ "\t\tQuick commit buf[0]=%c\n",
+ pgdata->chiSymbolBuf[ 0 ].s[ 0 ] );
+- pgo->commitStr[ 0 ] = pgdata->chiSymbolBuf[ 0 ];
++ pgo->commitStr[ 0 ] = pgdata->chiSymbolBuf[ 0 ];
+ pgo->nCommitStr = 1;
+ pgdata->chiSymbolBufLen = 0;
+ pgdata->chiSymbolCursor = 0;
+@@ -1309,12 +1319,12 @@ CHEWING_API int chewing_handle_CtrlNum(
+
+ cursor = PhoneSeqCursor( pgdata );
+ if ( ! pgdata->config.bAddPhraseForward ) {
+- if (
+- newPhraseLen >= 1 &&
++ if (
++ newPhraseLen >= 1 &&
+ cursor + newPhraseLen - 1 <= pgdata->nPhoneSeq ) {
+- if ( NoSymbolBetween(
+- pgdata,
+- cursor,
++ if ( NoSymbolBetween(
++ pgdata,
++ cursor,
+ cursor + newPhraseLen - 1 ) ) {
+ /* Manually add phrase to the user phrase database. */
+ memcpy( addPhoneSeq,
+@@ -1328,10 +1338,10 @@ CHEWING_API int chewing_handle_CtrlNum(
+
+
+ phraseState = UserUpdatePhrase( addPhoneSeq, addWordSeq );
+- SetUpdatePhraseMsg(
+- pgdata,
+- addWordSeq,
+- newPhraseLen,
++ SetUpdatePhraseMsg(
++ pgdata,
++ addWordSeq,
++ newPhraseLen,
+ phraseState );
+
+ /* Clear the breakpoint between the New Phrase */
+@@ -1341,11 +1351,11 @@ CHEWING_API int chewing_handle_CtrlNum(
+ }
+ }
+ else {
+- if (
+- newPhraseLen >= 1 &&
++ if (
++ newPhraseLen >= 1 &&
+ cursor - newPhraseLen >= 0 ) {
+- if ( NoSymbolBetween( pgdata,
+- cursor,
++ if ( NoSymbolBetween( pgdata,
++ cursor,
+ cursor - newPhraseLen ) ) {
+ /* Manually add phrase to the user phrase database. */
+ memcpy( addPhoneSeq,
+@@ -1358,10 +1368,10 @@ CHEWING_API int chewing_handle_CtrlNum(
+ newPhraseLen, 1);
+
+ phraseState = UserUpdatePhrase( addPhoneSeq, addWordSeq );
+- SetUpdatePhraseMsg(
+- pgdata,
+- addWordSeq,
+- newPhraseLen,
++ SetUpdatePhraseMsg(
++ pgdata,
++ addWordSeq,
++ newPhraseLen,
+ phraseState );
+
+ /* Clear the breakpoint between the New Phrase */
+@@ -1414,10 +1424,10 @@ CHEWING_API int chewing_handle_Numlock(
+ ChewingOutput *pgo = ctx->output;
+ int rtn, QuickCommit = 0;
+ int keystrokeRtn = KEYSTROKE_ABSORB;
+-
++
+ if ( ! pgdata->bSelect ) {
+ /* If we're not selecting words, we should send out numeric
+- * characters at once.
++ * characters at once.
+ */
+ if ( pgdata->chiSymbolBufLen == 0 ) {
+ QuickCommit = 1;
+@@ -1428,7 +1438,7 @@ CHEWING_API int chewing_handle_Numlock(
+ keystrokeRtn = KEYSTROKE_IGNORE ;
+ }
+ else if ( QuickCommit ) {
+- pgo->commitStr[ 0 ] = pgdata->chiSymbolBuf[ 0 ];
++ pgo->commitStr[ 0 ] = pgdata->chiSymbolBuf[ 0 ];
+ pgo->nCommitStr = 1;
+ pgdata->chiSymbolBufLen = 0;
+ pgdata->chiSymbolCursor = 0;
+@@ -1443,7 +1453,7 @@ CHEWING_API int chewing_handle_Numlock(
+ else {
+ /* Otherwise, if we are selecting words, we use numeric keys
+ * as selkey
+- * and submit the words.
++ * and submit the words.
+ */
+ int num = -1;
+ if ( key > '0' && key < '9' )
diff -up ./src/choice.c.phraseChoiceRearward ./src/choice.c
--- ./src/choice.c.phraseChoiceRearward 2008-12-02 00:29:20.000000000 +1000
-+++ ./src/choice.c 2009-05-18 17:56:32.000000000 +1000
-@@ -73,20 +73,42 @@ static void ChangeSelectIntervalAndBreak
++++ ./src/choice.c 2009-06-26 15:59:23.000000000 +1000
+@@ -71,22 +71,44 @@ static void ChangeSelectIntervalAndBreak
+ }
+
/** @brief Loading all possible phrases after the cursor from long to short into AvailInfo structure.*/
- static void SetAvailInfo(
- AvailInfo *pai, const uint16 phoneSeq[],
+-static void SetAvailInfo(
+- AvailInfo *pai, const uint16 phoneSeq[],
- int nPhoneSeq, int begin, const int bSymbolArrBrkpt[] )
++static void SetAvailInfo(
++ AvailInfo *pai, const uint16 phoneSeq[],
+ int nPhoneSeq, int begin, const int bSymbolArrBrkpt[],
-+ ChewingData *pgdata)
++ ChewingData *pgdata,int end)
{
- int end, pho_id;
+- int end, pho_id;
++ int pho_id;
int diff;
uint16 userPhoneSeq[ MAX_PHONE_SEQ_LEN ];
pai->nAvail = 0;
-+
+
+- for ( end = begin; end < nPhoneSeq; end++ ) {
+- diff = end - begin;
+- if ( diff > 0 && bSymbolArrBrkpt[ end ] )
+- break;
+ int i,head,head_tmp;
+ if ( pgdata->config.bPhraseChoiceRearward ){
-+ for (i=nPhoneSeq-1;i>=begin;i--){
++ for (i=end;i>=begin;i--){
+ head=i;
+ if(bSymbolArrBrkpt[i])
+ break;
+ }
-+ head_tmp=nPhoneSeq-1;
++ head_tmp=end;
+ }else{
+ head_tmp=head=begin;
+ }
-- for ( end = begin; end < nPhoneSeq; end++ ) {
-- diff = end - begin;
-- if ( diff > 0 && bSymbolArrBrkpt[ end ] )
-- break;
+- pho_id = TreeFindPhrase( begin, end, phoneSeq );
+ int tail,tail_tmp;
+ if ( pgdata->config.bPhraseChoiceRearward ){
-+ tail_tmp=tail=nPhoneSeq-1;
++ tail_tmp=tail=end;
+ }else{
+ for (i=begin;i<nPhoneSeq;i++){
+ if(bSymbolArrBrkpt[i])
@@ -69,20 +519,21 @@ diff -up ./src/choice.c.phraseChoiceRear
+ }
+ tail_tmp=begin;
+ }
-
-- pho_id = TreeFindPhrase( begin, end, phoneSeq );
++
+ while(head<=head_tmp && tail_tmp>=tail){
+ diff = tail_tmp - head_tmp;
+ pho_id = TreeFindPhrase( head_tmp, tail_tmp, phoneSeq );
if ( pho_id != -1 ) {
/* save it! */
pai->avail[ pai->nAvail ].len = diff + 1;
-@@ -96,7 +118,7 @@ static void SetAvailInfo(
+@@ -95,8 +117,8 @@ static void SetAvailInfo(
+ }
else {
memcpy(
- userPhoneSeq,
+- userPhoneSeq,
- &phoneSeq[ begin ],
-+ &phoneSeq[ head_tmp ],
++ userPhoneSeq,
++ &phoneSeq[ head_tmp ],
sizeof( uint16 ) * ( diff + 1 ) ) ;
userPhoneSeq[ diff + 1 ] = 0;
if ( UserGetPhraseFirst( userPhoneSeq ) ) {
@@ -90,7 +541,7 @@ diff -up ./src/choice.c.phraseChoiceRear
pai->avail[ pai->nAvail ].id = -1;
}
}
-+
++
+ if ( pgdata->config.bPhraseChoiceRearward ){
+ head_tmp--;
+ }else{
@@ -99,13 +550,164 @@ diff -up ./src/choice.c.phraseChoiceRear
}
}
-@@ -229,7 +257,8 @@ int ChoiceFirstAvail( ChewingData *pgdat
- pgdata->phoneSeq,
+@@ -118,7 +146,7 @@ static int ChoiceTheSame( ChoiceInfo *pc
+ int i;
+
+ for ( i = 0; i < pci->nTotalChoice; i++ )
+- if ( ! memcmp( pci->totalChoiceStr[ i ], str, len ) )
++ if ( ! memcmp( pci->totalChoiceStr[ i ], str, len ) )
+ return 1;
+ return 0;
+ }
+@@ -138,7 +166,7 @@ static void SetChoiceInfo(
+ int len;
+ UserPhraseData *pUserPhraseData;
+ uint16 userPhoneSeq[ MAX_PHONE_SEQ_LEN ];
+-
++
+ /* Clears previous candidates. */
+ memset( pci->totalChoiceStr, '\0', sizeof(char) * MAX_CHOICE * MAX_PHRASE_LEN * MAX_UTF8_SIZE + 1);
+
+@@ -150,9 +178,9 @@ static void SetChoiceInfo(
+ if ( len == 1 ) { /* single character */
+ GetCharFirst( &tempWord, phoneSeq[ cursor ] );
+ do {
+- if ( ChoiceTheSame( pci, tempWord.word, ueBytesFromChar( tempWord.word[0] ) * sizeof( char ) ) )
++ if ( ChoiceTheSame( pci, tempWord.word, ueBytesFromChar( tempWord.word[0] ) * sizeof( char ) ) )
+ continue;
+- memcpy(
++ memcpy(
+ pci->totalChoiceStr[ pci->nTotalChoice ],
+ tempWord.word, ueBytesFromChar( tempWord.word[0] ) * sizeof( char ) );
+ assert(pci->nTotalChoice <= MAX_CHOICE);
+@@ -165,9 +193,9 @@ static void SetChoiceInfo(
+ if ( pai->avail[ pai->currentAvail ].id != -1 ) {
+ GetPhraseFirst( &tempPhrase, pai->avail[ pai->currentAvail ].id );
+ do {
+- if ( ChoiceTheSame(
+- pci,
+- tempPhrase.phrase,
++ if ( ChoiceTheSame(
++ pci,
++ tempPhrase.phrase,
+ len * ueBytesFromChar( tempPhrase.phrase[0] ) * sizeof( char ) ) ) {
+ continue;
+ }
+@@ -183,9 +211,9 @@ static void SetChoiceInfo(
+ if ( pUserPhraseData ) {
+ do {
+ /* check if the phrase is already in the choice list */
+- if ( ChoiceTheSame(
+- pci,
+- pUserPhraseData->wordSeq,
++ if ( ChoiceTheSame(
++ pci,
++ pUserPhraseData->wordSeq,
+ len * ueBytesFromChar( pUserPhraseData->wordSeq[0] ) * sizeof( char ) ) )
+ continue;
+ /* otherwise store it */
+@@ -194,7 +222,7 @@ static void SetChoiceInfo(
+ pUserPhraseData->wordSeq,
+ len, 1);
+ pci->nTotalChoice++;
+- } while( ( pUserPhraseData =
++ } while( ( pUserPhraseData =
+ UserGetPhraseNext( userPhoneSeq ) ) != NULL );
+ }
+
+@@ -215,7 +243,9 @@ int ChoiceFirstAvail( ChewingData *pgdat
+ pgdata->choiceInfo.oldChiSymbolCursor = pgdata->chiSymbolCursor;
+
+ /* see if there is some word in the cursor position */
++ int end=pgdata->chiSymbolCursor;
+ if ( pgdata->chiSymbolBufLen == pgdata->chiSymbolCursor ) {
++ end--;
+ if ( pgdata->config.bPhraseChoiceRearward )
+ pgdata->chiSymbolCursor = pgdata->preferInterval[ pgdata->nPrefer - 1 ].from + CountSymbols( pgdata, pgdata->chiSymbolBufLen );
+ else
+@@ -224,22 +254,23 @@ int ChoiceFirstAvail( ChewingData *pgdat
+
+ pgdata->bSelect = 1;
+
+- SetAvailInfo(
+- &( pgdata->availInfo ),
+- pgdata->phoneSeq,
++ SetAvailInfo(
++ &( pgdata->availInfo ),
++ pgdata->phoneSeq,
pgdata->nPhoneSeq,
PhoneSeqCursor( pgdata ),
- pgdata->bSymbolArrBrkpt );
+ pgdata->bSymbolArrBrkpt,
-+ pgdata);
++ pgdata,end);
if ( ! pgdata->availInfo.nAvail )
return ChoiceEndChoice( pgdata );
+
+ pgdata->availInfo.currentAvail = pgdata->availInfo.nAvail - 1;
+ SetChoiceInfo(
+- &( pgdata->choiceInfo ),
+- &( pgdata->availInfo ),
+- pgdata->phoneSeq,
+- PhoneSeqCursor( pgdata ),
++ &( pgdata->choiceInfo ),
++ &( pgdata->availInfo ),
++ pgdata->phoneSeq,
++ PhoneSeqCursor( pgdata ),
+ pgdata->config.candPerPage );
+ return 0;
+ }
+@@ -249,24 +280,24 @@ int ChoicePrevAvail( ChewingData *pgdata
+ if (pgdata->choiceInfo.isSymbol) return 0;
+ if ( ++( pgdata->availInfo.currentAvail ) >= pgdata->availInfo.nAvail )
+ pgdata->availInfo.currentAvail = 0;
+- SetChoiceInfo(
+- &( pgdata->choiceInfo ),
+- &( pgdata->availInfo ),
+- pgdata->phoneSeq,
++ SetChoiceInfo(
++ &( pgdata->choiceInfo ),
++ &( pgdata->availInfo ),
++ pgdata->phoneSeq,
+ PhoneSeqCursor( pgdata ),
+ pgdata->config.candPerPage );
+ return 0;
+ }
+
+ /** @brief Return the next phrase not longer than the previous phrase. */
+-int ChoiceNextAvail( ChewingData *pgdata )
++int ChoiceNextAvail( ChewingData *pgdata )
+ {
+ if (pgdata->choiceInfo.isSymbol) return 0;
+ if ( --( pgdata->availInfo.currentAvail ) < 0 )
+ pgdata->availInfo.currentAvail = pgdata->availInfo.nAvail - 1;
+ SetChoiceInfo(
+- &( pgdata->choiceInfo ),
+- &( pgdata->availInfo ),
++ &( pgdata->choiceInfo ),
++ &( pgdata->availInfo ),
+ pgdata->phoneSeq,
+ PhoneSeqCursor( pgdata ),
+ pgdata->config.candPerPage );
+@@ -292,17 +323,17 @@ static void ChangeUserData( ChewingData
+ uint16 userPhoneSeq[ MAX_PHONE_SEQ_LEN ];
+ int len;
+
+- len = ueStrLen( pgdata->choiceInfo.totalChoiceStr[ selectNo ] );
++ len = ueStrLen( pgdata->choiceInfo.totalChoiceStr[ selectNo ] );
+ memcpy(
+- userPhoneSeq,
+- &( pgdata->phoneSeq[ PhoneSeqCursor( pgdata ) ] ),
++ userPhoneSeq,
++ &( pgdata->phoneSeq[ PhoneSeqCursor( pgdata ) ] ),
+ len * sizeof( uint16 ) );
+ userPhoneSeq[ len ] = 0;
+ UserUpdatePhrase( userPhoneSeq, pgdata->choiceInfo.totalChoiceStr[ selectNo ] );
+ }
+
+ /** @brief commit the selected phrase. */
+-int ChoiceSelect( ChewingData *pgdata, int selectNo )
++int ChoiceSelect( ChewingData *pgdata, int selectNo )
+ {
+ ChoiceInfo *pci = &( pgdata->choiceInfo );
+ AvailInfo *pai = &( pgdata->availInfo );
Index: libchewing.spec
===================================================================
RCS file: /cvs/pkgs/rpms/libchewing/F-10/libchewing.spec,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -p -r1.31 -r1.32
--- libchewing.spec 20 May 2009 07:17:04 -0000 1.31
+++ libchewing.spec 26 Jun 2009 06:14:14 -0000 1.32
@@ -1,7 +1,7 @@
Name: libchewing
Version: 0.3.2
-Release: 10%{?dist}
+Release: 11%{?dist}
Summary: Intelligent phonetic input method library for Traditional Chinese
Group: System Environment/Libraries
@@ -98,8 +98,13 @@ rm -rf $RPM_BUILD_ROOT
%{_libdir}/*.so
%changelog
+* Fri Jun 26 2009 Ding-Yi Chen <dchen at redhat dot com> - 0.3.2-11
+- Revise phraseChoiceRearward.patch so the cursor won't move to left
+ when repeatly press down key.
+
* Wed May 20 2009 Ding-Yi Chen <dchen at redhat dot com> - 0.3.2-10
-- Need autoreconf to make changes in Makefile.am effective.
+- Need autoreconf and BuildRequires: pkgconfig to make changes in
+ Makefile.am effective, thus actually fix [Bug 477960] libchewing multilib conflict.
* Mon May 18 2009 Ding-Yi Chen <dchen at redhat dot com> - 0.3.2-9
- Possible Fix of Bug 501220 - RFE: edit last preedit character from end of line
- Previous message (by thread): rpms/libchewing/F-11 import.log, 1.11, 1.12 libchewing-0.3.2.phraseChoiceRearward.patch, 1.1, 1.2 libchewing.spec, 1.33, 1.34
- Next message (by thread): rpms/monotorrent/devel import.log, 1.6, 1.7 monotorrent.spec, 1.10, 1.11
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the fedora-extras-commits
mailing list