- Update to 1.8.9

* Fix regressions introduced in 1.8.8 (!245, !248) - this includes
    reverting for now the previous "Fix XIM input sometimes jumbled
    (#198, !236)"
- supersedes
  * U_0001-xlibi18n-restore-parse_line1-for-WIN32-builds.patch
  * U_0002-Revert-imDefLkup-Commit-first-info-in-XimCommitInfo.patch
  * U_0003-Revert-ximcp-Unmark-to-fabricate-key-events-with-XKe.patch

OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/libX11?expand=0&rev=116
This commit is contained in:
Stefan Dirsch 2024-04-06 03:12:34 +00:00 committed by Git OBS Bridge
parent 6586cebbd2
commit 7fd560466c
7 changed files with 16 additions and 400 deletions

View File

@ -1,62 +0,0 @@
From 9afd55ada5d7a3c1d3ed23ff8451629a1d989a7f Mon Sep 17 00:00:00 2001
From: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Mon, 25 Mar 2024 11:51:03 -0700
Subject: [PATCH 1/3] xlibi18n: restore parse_line1 for WIN32 builds
Accidentally removed by __UNIXOS2__ cleanup
Closes: #204
Fixes: 225a4bbb ("unifdef __UNIXOS2__")
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
---
src/xlibi18n/lcFile.c | 34 ++++++++++++++++++++++++++++++++++
1 file changed, 34 insertions(+)
diff --git a/src/xlibi18n/lcFile.c b/src/xlibi18n/lcFile.c
index 4e2b3212..b6cf93f2 100644
--- a/src/xlibi18n/lcFile.c
+++ b/src/xlibi18n/lcFile.c
@@ -88,6 +88,40 @@ parse_line(
return argc;
}
+#ifdef WIN32
+/* this is parse_line but skips drive letters at the beginning of the entry */
+static int
+parse_line1(
+ char *line,
+ char **argv,
+ int argsize)
+{
+ int argc = 0;
+ char *p = line;
+
+ while (argc < argsize) {
+ while (isspace(*p)) {
+ ++p;
+ }
+ if (*p == '\0') {
+ break;
+ }
+ argv[argc++] = p;
+ if (isalpha(*p) && p[1] == ':') {
+ p+= 2; /* skip drive letters */
+ }
+ while (*p != ':' && *p != '\n' && *p != '\0') {
+ ++p;
+ }
+ if (*p == '\0') {
+ break;
+ }
+ *p++ = '\0';
+ }
+
+ return argc;
+}
+#endif /* WIN32 */
/* Splits a colon separated list of directories, and returns the constituent
paths (without trailing slash). At most argsize constituents are stored
--
2.35.3

View File

@ -1,146 +0,0 @@
From 3ea9f4f769fecbbc8c5210c5833ad83ab8d9e97e Mon Sep 17 00:00:00 2001
From: Peter Hutterer <peter.hutterer@who-t.net>
Date: Fri, 5 Apr 2024 13:14:33 +1000
Subject: [PATCH 2/3] 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);
--
2.35.3

View File

@ -1,182 +0,0 @@
From 52a191ee096e93cf711f77b6a56c508b68afc0b6 Mon Sep 17 00:00:00 2001
From: Peter Hutterer <peter.hutterer@who-t.net>
Date: Fri, 5 Apr 2024 13:15:32 +1000
Subject: [PATCH 3/3] Revert "ximcp: Unmark to fabricate key events with
XKeyEvent serial"
This commit causes a regression, see #205, #206, #207, #208.
This reverts commit 024d229fdf88a7755577b01b46af6ef908d599e0.
---
modules/im/ximcp/imDefFlt.c | 8 ++---
modules/im/ximcp/imDefIm.c | 1 -
modules/im/ximcp/imDefLkup.c | 58 ++++--------------------------------
src/xlibi18n/XimintP.h | 17 -----------
4 files changed, 9 insertions(+), 75 deletions(-)
diff --git a/modules/im/ximcp/imDefFlt.c b/modules/im/ximcp/imDefFlt.c
index 834b9db4..44cc6884 100644
--- a/modules/im/ximcp/imDefFlt.c
+++ b/modules/im/ximcp/imDefFlt.c
@@ -142,9 +142,9 @@ _XimProtoKeypressFilter(
{
Xim im = (Xim)ic->core.im;
- if (_XimIsFabricatedSerial(im, ev->serial)) {
+ if (IS_FABRICATED(im)) {
_XimPendingFilter(ic);
- _XimUnfabricateSerial(im, ev->serial);
+ UNMARK_FABRICATED(im);
return NOTFILTERD;
}
@@ -203,9 +203,9 @@ _XimProtoKeyreleaseFilter(
{
Xim im = (Xim)ic->core.im;
- if (_XimIsFabricatedSerial(im, ev->serial)) {
+ if (IS_FABRICATED(im)) {
_XimPendingFilter(ic);
- _XimUnfabricateSerial(im, ev->serial);
+ UNMARK_FABRICATED(im);
return NOTFILTERD;
}
diff --git a/modules/im/ximcp/imDefIm.c b/modules/im/ximcp/imDefIm.c
index ac7f1195..fe4d18ba 100644
--- a/modules/im/ximcp/imDefIm.c
+++ b/modules/im/ximcp/imDefIm.c
@@ -430,7 +430,6 @@ _XimPreConnect(
return False;
im->private.proto.im_window = im_window;
- im->private.proto.fabricated_serial = 0;
return True;
}
diff --git a/modules/im/ximcp/imDefLkup.c b/modules/im/ximcp/imDefLkup.c
index 5192e8c1..dd1adf53 100644
--- a/modules/im/ximcp/imDefLkup.c
+++ b/modules/im/ximcp/imDefLkup.c
@@ -341,54 +341,6 @@ _XimForwardEvent(
return _XimForwardEventCore(ic, ev, sync);
}
-Bool
-_XimFabricateSerial(
- Xim im,
- unsigned long serial)
-{
- if (!serial)
- return False;
- if (serial == im->private.proto.fabricated_serial) {
- fprintf(stderr, "%s,%d: The key event is already fabricated.\n", __FILE__, __LINE__);
- return False;
- }
- if (im->private.proto.fabricated_serial)
- fprintf(stderr, "%s,%d: Tried to fabricate a wrong key event.\n", __FILE__, __LINE__);
-
- MARK_FABRICATED(im);
- im->private.proto.fabricated_serial = serial;
- return True;
-}
-
-Bool
-_XimUnfabricateSerial(
- Xim im,
- unsigned long serial)
-{
- if (!serial)
- return False;
- if (!im->private.proto.fabricated_serial) {
- fprintf(stderr, "%s,%d: The key event is already unfabricated.\n", __FILE__, __LINE__);
- return False;
- }
- if (serial != im->private.proto.fabricated_serial)
- fprintf(stderr, "%s,%d: Tried to unfabricate a wrong key event.\n", __FILE__, __LINE__);
-
- im->private.proto.fabricated_serial = 0;
- UNMARK_FABRICATED(im);
- return True;
-}
-
-Bool
-_XimIsFabricatedSerial(
- Xim im,
- unsigned long serial)
-{
- if (!serial)
- return False;
- return (serial == im->private.proto.fabricated_serial);
-}
-
static void
_XimProcEvent(
Display *d,
@@ -403,7 +355,7 @@ _XimProcEvent(
ev->xany.serial |= serial << 16;
ev->xany.send_event = False;
ev->xany.display = d;
- _XimFabricateSerial((Xim)ic->core.im, ev->xany.serial);
+ MARK_FABRICATED(ic->core.im);
return;
}
@@ -752,6 +704,10 @@ _XimCommitRecv(
(void)_XimRespSyncReply(ic, flag);
+ if (ic->private.proto.registed_filter_event
+ & (KEYPRESS_MASK | KEYRELEASE_MASK))
+ MARK_FABRICATED(im);
+
bzero(&ev, sizeof(ev)); /* uninitialized : found when running kterm under valgrind */
ev.type = KeyPress;
@@ -763,10 +719,6 @@ _XimCommitRecv(
ev.time = 0L;
ev.serial = LastKnownRequestProcessed(im->core.display);
-
- if (ic->private.proto.registed_filter_event
- & (KEYPRESS_MASK | KEYRELEASE_MASK))
- _XimFabricateSerial(im, ev.serial);
/* FIXME :
I wish there were COMMENTs (!) about the data passed around.
*/
diff --git a/src/xlibi18n/XimintP.h b/src/xlibi18n/XimintP.h
index 2a51e2ed..674da029 100644
--- a/src/xlibi18n/XimintP.h
+++ b/src/xlibi18n/XimintP.h
@@ -149,8 +149,6 @@ typedef struct _XimProtoPrivateRec {
XimTransRegDispatcher register_dispatcher;
XimTransCallDispatcher call_dispatcher;
XPointer spec;
-
- unsigned long fabricated_serial;
} XimProtoPrivateRec;
/*
@@ -309,19 +307,4 @@ typedef struct _XicProtoPrivateRec {
#define XIM_MAXIMNAMELEN 64
#define XIM_MAXLCNAMELEN 64
-Bool
-_XimFabricateSerial(
- Xim im,
- unsigned long serial);
-
-Bool
-_XimUnfabricateSerial(
- Xim im,
- unsigned long serial);
-
-Bool
-_XimIsFabricatedSerial(
- Xim im,
- unsigned long serial);
-
#endif /* _XIMINTP_H */
--
2.35.3

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:46afaebb2dd1a3a7348c0544a4b1c88c51de4bda885fde57d2cf98427ee5cbf6
size 1872808

3
libX11-1.8.9.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:779d8f111d144ef93e2daa5f23a762ce9555affc99592844e71c4243d3bd3262
size 1811900

View File

@ -1,3 +1,15 @@
-------------------------------------------------------------------
Sat Apr 6 03:06:49 UTC 2024 - Stefan Dirsch <sndirsch@suse.com>
- Update to 1.8.9
* Fix regressions introduced in 1.8.8 (!245, !248) - this includes
reverting for now the previous "Fix XIM input sometimes jumbled
(#198, !236)"
- supersedes
* U_0001-xlibi18n-restore-parse_line1-for-WIN32-builds.patch
* U_0002-Revert-imDefLkup-Commit-first-info-in-XimCommitInfo.patch
* U_0003-Revert-ximcp-Unmark-to-fabricate-key-events-with-XKe.patch
-------------------------------------------------------------------
Fri Apr 5 10:42:25 UTC 2024 - Stefan Dirsch <sndirsch@suse.com>

View File

@ -17,7 +17,7 @@
Name: libX11
Version: 1.8.8
Version: 1.8.9
Release: 0
Summary: Core X11 protocol client library
License: MIT
@ -32,9 +32,6 @@ Patch1: p_xlib_skip_ext_env.diff
# PATCH-FIX-UPSTREAM en-locales.diff fdo#48596 bnc#388711 -- Add missing data for more en locales
Patch2: en-locales.diff
Patch3: u_no-longer-crash-in-XVisualIDFromVisual.patch
Patch11: U_0001-xlibi18n-restore-parse_line1-for-WIN32-builds.patch
Patch12: U_0002-Revert-imDefLkup-Commit-first-info-in-XimCommitInfo.patch
Patch13: U_0003-Revert-ximcp-Unmark-to-fabricate-key-events-with-XKe.patch
BuildRequires: fdupes
BuildRequires: libtool
BuildRequires: pkgconfig
@ -124,9 +121,6 @@ test -f nls/ja.S90/XLC_LOCALE.pre && exit 1
%patch -P 1
%patch -P 2
%patch -P 3 -p1
%patch -P 11 -p1
%patch -P 12 -p1
%patch -P 13 -p1
%build
%configure \