From 3ea9f4f769fecbbc8c5210c5833ad83ab8d9e97e Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Fri, 5 Apr 2024 13:14:33 +1000 Subject: Revert "imDefLkup: Commit first info in XimCommitInfo" This commit causes a regression, see #205, #206, #207, #208. This reverts commit 041b5291f0956c5cda5054be2981c0d02b009a4c. --- modules/im/ximcp/imDefLkup.c | 60 ++++++++------------------------------------ 1 file changed, 11 insertions(+), 49 deletions(-) diff --git a/modules/im/ximcp/imDefLkup.c b/modules/im/ximcp/imDefLkup.c index 6ffe6f48..5192e8c1 100644 --- a/modules/im/ximcp/imDefLkup.c +++ b/modules/im/ximcp/imDefLkup.c @@ -640,47 +640,22 @@ _XimRegCommitInfo( } static void -_XimUnregRealCommitInfo( - Xic ic, - Bool reverse) +_XimUnregCommitInfo( + Xic ic) { XimCommitInfo info; - XimCommitInfo prev_info = NULL; - info = ic->private.proto.commit_info; - while (reverse && info) { - if (!info->next) - break; - prev_info = info; - info = info->next; - } - if (!info) + if (!(info = ic->private.proto.commit_info)) return; + Xfree(info->string); Xfree(info->keysym); - if (prev_info) - prev_info->next = info->next; - else - ic->private.proto.commit_info = info->next; + ic->private.proto.commit_info = info->next; Xfree(info); return; } -static void -_XimUnregCommitInfo( - Xic ic) -{ - _XimUnregRealCommitInfo(ic, False); -} - -static void -_XimUnregFirstCommitInfo( - Xic ic) -{ - _XimUnregRealCommitInfo(ic, True); -} - void _XimFreeCommitInfo( Xic ic) @@ -690,19 +665,6 @@ _XimFreeCommitInfo( return; } -static XimCommitInfo -_XimFirstCommitInfo( - Xic ic) -{ - XimCommitInfo info = ic->private.proto.commit_info; - while (info) { - if (!info->next) - break; - info = info->next; - } - return info; -} - static Bool _XimProcKeySym( Xic ic, @@ -1097,7 +1059,7 @@ _XimProtoMbLookupString( state = &tmp_state; if ((ev->type == KeyPress) && (ev->keycode == 0)) { /* Filter function */ - if (!(info = _XimFirstCommitInfo(ic))) { + if (!(info = ic->private.proto.commit_info)) { *state = XLookupNone; return 0; } @@ -1113,7 +1075,7 @@ _XimProtoMbLookupString( else *state = XLookupKeySym; } - _XimUnregFirstCommitInfo(ic); + _XimUnregCommitInfo(ic); } else if (ev->type == KeyPress) { ret = _XimLookupMBText(ic, ev, buffer, bytes, keysym, NULL); @@ -1160,7 +1122,7 @@ _XimProtoWcLookupString( state = &tmp_state; if (ev->type == KeyPress && ev->keycode == 0) { /* Filter function */ - if (!(info = _XimFirstCommitInfo(ic))) { + if (!(info = ic->private.proto.commit_info)) { *state = XLookupNone; return 0; } @@ -1176,7 +1138,7 @@ _XimProtoWcLookupString( else *state = XLookupKeySym; } - _XimUnregFirstCommitInfo(ic); + _XimUnregCommitInfo(ic); } else if (ev->type == KeyPress) { ret = _XimLookupWCText(ic, ev, buffer, bytes, keysym, NULL); @@ -1223,7 +1185,7 @@ _XimProtoUtf8LookupString( state = &tmp_state; if (ev->type == KeyPress && ev->keycode == 0) { /* Filter function */ - if (!(info = _XimFirstCommitInfo(ic))) { + if (!(info = ic->private.proto.commit_info)) { *state = XLookupNone; return 0; } @@ -1239,7 +1201,7 @@ _XimProtoUtf8LookupString( else *state = XLookupKeySym; } - _XimUnregFirstCommitInfo(ic); + _XimUnregCommitInfo(ic); } else if (ev->type == KeyPress) { ret = _XimLookupUTF8Text(ic, ev, buffer, bytes, keysym, NULL); -- cgit v1.2.3