diff options
author | Ulrich Sibiller <uli42@gmx.de> | 2016-06-29 21:44:08 +0200 |
---|---|---|
committer | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2016-06-30 00:19:02 +0200 |
commit | bd2650ca0b17c8a8fc2bc278a998e10893d8147c (patch) | |
tree | 9b93ee34b76bd2e5eac7aabcb7217c6533cd1a78 | |
parent | 36d0fac779fcdece1d990c4f4e4a8590f319f2c7 (diff) | |
download | nx-libs-bd2650ca0b17c8a8fc2bc278a998e10893d8147c.tar.gz nx-libs-bd2650ca0b17c8a8fc2bc278a998e10893d8147c.tar.bz2 nx-libs-bd2650ca0b17c8a8fc2bc278a998e10893d8147c.zip |
Port _XEatDataWords
This required for successful linking of libXrender against libNX_X11.
Port from libXfixes commit b031e3b60fa1af9e49449f23d4a84395868be3ab We
need this here to enable linking of current libXrender against
libNX_X11 instead of the system's libX11
The original implementation of this function (libX11 commit
9f5d83706543696fc944c1835a403938c06f2cc5) uses xcb stuff which we do
not have in libNX_X11. So we take a workaround from another lib. This
workaround had been added temporarily to a couple of X extension libs,
see
e.g. https://lists.x.org/archives/xorg-devel/2013-July/036763.html.
-rw-r--r-- | nx-X11/lib/X11/XlibInt.c | 24 | ||||
-rw-r--r-- | nx-X11/lib/X11/Xlibint.h | 4 |
2 files changed, 28 insertions, 0 deletions
diff --git a/nx-X11/lib/X11/XlibInt.c b/nx-X11/lib/X11/XlibInt.c index 64028d723..175f5b92f 100644 --- a/nx-X11/lib/X11/XlibInt.c +++ b/nx-X11/lib/X11/XlibInt.c @@ -2751,6 +2751,30 @@ void _XEatData( #undef SCRATCHSIZE } +/* + Port from libXfixes commit + b031e3b60fa1af9e49449f23d4a84395868be3ab We need this here to + enable linking of current libXrender against libNX_X11 instead of + the system's libX11 + + The original implementation of this function (libX11 commit + 9f5d83706543696fc944c1835a403938c06f2cc5) uses xcb stuff which we + do not have in libNX_X11. So we take a workaround from another + lib. This workaround had been implemented temporarily in a couple + of X libs, see e.g. https://lists.x.org/archives/xorg-devel/2013-July/036763.html. +*/ +#include <X11/Xmd.h> /* for LONG64 on 64-bit platforms */ +#include <limits.h> + +void _XEatDataWords(Display *dpy, unsigned long n) +{ +#ifndef LONG64 + if (n >= (ULONG_MAX >> 2)) + _XIOError(dpy); +#endif + _XEatData (dpy, n << 2); +} + /* * _XEnq - Place event packets on the display's queue. diff --git a/nx-X11/lib/X11/Xlibint.h b/nx-X11/lib/X11/Xlibint.h index a359efca1..ca3d28004 100644 --- a/nx-X11/lib/X11/Xlibint.h +++ b/nx-X11/lib/X11/Xlibint.h @@ -879,6 +879,10 @@ extern void _XEatData( Display* /* dpy */, unsigned long /* n */ ); +extern void _XEatDataWords( + Display* /* dpy */, + unsigned long /* n */ +); extern char *_XAllocScratch( Display* /* dpy */, unsigned long /* nbytes */ |