aboutsummaryrefslogtreecommitdiff
path: root/nx-X11/programs/Xserver/Xext
diff options
context:
space:
mode:
authorMike Gabriel <mike.gabriel@das-netzwerkteam.de>2017-02-09 14:05:57 +0100
committerMike Gabriel <mike.gabriel@das-netzwerkteam.de>2017-04-10 16:09:20 +0200
commitf4c80a78ce0e5648334fc43e5c93a068ed3ec5be (patch)
tree109fac35d5025730fc3bbce7b135118b233878e5 /nx-X11/programs/Xserver/Xext
parentf743f9f743362c891f049a514cdcf3d39546194b (diff)
downloadnx-libs-f4c80a78ce0e5648334fc43e5c93a068ed3ec5be.tar.gz
nx-libs-f4c80a78ce0e5648334fc43e5c93a068ed3ec5be.tar.bz2
nx-libs-f4c80a78ce0e5648334fc43e5c93a068ed3ec5be.zip
Xserver: Support building against libXfont2 (v2) API and old libXfont(1) API alike.
Fixes ArcticaProject/nx-libs#296. Inspired by the following X.org commit. Other than X.org, we will continue support for building nx-libs against libXfont1 for a while. commit 05a793f5b3c40747d5a92a076def7f4fb673c7e7 Author: Keith Packard <keithp@keithp.com> Date: Tue Sep 1 18:50:55 2015 -0700 dix: Switch to the libXfont2 API (v2) This new libXfont API eliminates exposing internal X server symbols to the font library, replacing those with a struct full of the entire API needed to use that library. v2: Use libXfont2 instead of libXfont_2 Signed-off-by: Keith Packard <keithp@keithp.com> Reviewed-by: Adam Jackson <ajax@redhat.com>
Diffstat (limited to 'nx-X11/programs/Xserver/Xext')
-rw-r--r--nx-X11/programs/Xserver/Xext/Imakefile2
-rw-r--r--nx-X11/programs/Xserver/Xext/xf86bigfont.c12
2 files changed, 13 insertions, 1 deletions
diff --git a/nx-X11/programs/Xserver/Xext/Imakefile b/nx-X11/programs/Xserver/Xext/Imakefile
index becc7b66e..44a0f068a 100644
--- a/nx-X11/programs/Xserver/Xext/Imakefile
+++ b/nx-X11/programs/Xserver/Xext/Imakefile
@@ -119,7 +119,7 @@ LintLibraryTarget(ext,$(SRCS))
NormalLintTarget($(SRCS))
#if BuildXF86BigfontExt
-SpecialCObjectRule(xf86bigfont,$(ICONFIGFILES),$(SHM_DEFINES))
+SpecialCObjectRule(xf86bigfont,$(ICONFIGFILES),$(SHM_DEFINES) $(FONT_DEFINES))
#endif
#if BuildXCSecurity
SpecialCObjectRule(security,$(ICONFIGFILES),$(POLICYFILEDEF))
diff --git a/nx-X11/programs/Xserver/Xext/xf86bigfont.c b/nx-X11/programs/Xserver/Xext/xf86bigfont.c
index 4c8f02c2c..d8cae74ef 100644
--- a/nx-X11/programs/Xserver/Xext/xf86bigfont.c
+++ b/nx-X11/programs/Xserver/Xext/xf86bigfont.c
@@ -75,6 +75,10 @@
#define _XF86BIGFONT_SERVER_
#include <nx-X11/extensions/xf86bigfproto.h>
+#ifdef HAS_XFONT2
+# include <X11/fonts/libxfont2.h>
+#endif /* HAS_XFONT2 */
+
static void XF86BigfontResetProc(
ExtensionEntry * /* extEntry */
);
@@ -186,7 +190,11 @@ XFree86BigfontExtensionInit()
+ (unsigned int) (65536.0/(RAND_MAX+1.0) * rand());
/* fprintf(stderr, "signature = 0x%08X\n", signature); */
+#ifdef HAS_XFONT2
+ FontShmdescIndex = xfont2_allocate_font_private_index();
+#else
FontShmdescIndex = AllocateFontPrivateIndex();
+#endif /* HAS_XFONT2 */
#if !defined(CSRG_BASED) && !defined(__CYGWIN__)
pagesize = SHMLBA;
@@ -526,7 +534,11 @@ ProcXF86BigfontQueryFont(
#ifdef HAS_SHM
if (pDesc && !badSysCall) {
*(CARD32 *)(pCI + nCharInfos) = signature;
+#ifdef HAS_XFONT2
+ if (!xfont2_font_set_private(pFont, FontShmdescIndex, pDesc)) {
+#else
if (!FontSetPrivate(pFont, FontShmdescIndex, pDesc)) {
+#endif /* HAS_XFONT2 */
shmdealloc(pDesc);
return BadAlloc;
}