summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2024-04-05 13:14:33 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2024-04-05 13:17:07 +1000
commit3ea9f4f769fecbbc8c5210c5833ad83ab8d9e97e (patch)
treeaff1865d14d93ff3af0fb2d564f93156d101eaeb
parent9afd55ada5d7a3c1d3ed23ff8451629a1d989a7f (diff)
Revert "imDefLkup: Commit first info in XimCommitInfo"
This commit causes a regression, see #205, #206, #207, #208. This reverts commit 041b5291f0956c5cda5054be2981c0d02b009a4c.
-rw-r--r--modules/im/ximcp/imDefLkup.c60
1 files 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);