From f4c80a78ce0e5648334fc43e5c93a068ed3ec5be Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Thu, 9 Feb 2017 14:05:57 +0100 Subject: 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 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 Reviewed-by: Adam Jackson --- nx-X11/programs/Xserver/Xext/Imakefile | 2 +- nx-X11/programs/Xserver/Xext/xf86bigfont.c | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) (limited to 'nx-X11/programs/Xserver/Xext') 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 +#ifdef HAS_XFONT2 +# include +#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; } -- cgit v1.2.3