aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/NXdixfonts.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/nx-X11/programs/Xserver/hw/nxagent/NXdixfonts.c b/nx-X11/programs/Xserver/hw/nxagent/NXdixfonts.c
index 516b7eb02..547dac3f4 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/NXdixfonts.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/NXdixfonts.c
@@ -91,6 +91,13 @@ static Bool doListFontsAndAliases(ClientPtr client, LFclosurePtr c);
#undef TEST
#undef DEBUG
+/* This enables code that contains copies of code from libXfont.
+ * We copy+pasted the private _LFWIData type struct into this
+ * file. If this gets ever changed in libXfont, we must follow-up
+ * on that change here, too.
+ */
+#define NXAGENT_DANGEROUS_XFONT_LOOP_EXIT
+
#define NXFONTPATHLENGTH 1024
char _NXFontPath[NXFONTPATHLENGTH];
@@ -1199,7 +1206,7 @@ nxdoListFontsAndAliases(ClientPtr client, nxFsPtr fss)
if (err == Successful)
{
-#ifndef BREAK_XFONT_LOOP
+#ifndef NXAGENT_DANGEROUS_XFONT_LOOP_EXIT
if (tmp[0] != 0)
{
continue;
@@ -1214,7 +1221,7 @@ nxdoListFontsAndAliases(ClientPtr client, nxFsPtr fss)
tmp[c->savedNameLen >255 ? 255 : c->savedNameLen] = 0;
if (nxagentFontLookUp(tmp))
{
-#ifdef BREAK_XFONT_LOOP
+#ifdef NXAGENT_DANGEROUS_XFONT_LOOP_EXIT
break;
#else
continue;
@@ -1229,7 +1236,7 @@ nxdoListFontsAndAliases(ClientPtr client, nxFsPtr fss)
tmp[namelen > 255 ? 255 : namelen] = 0;
if (nxagentFontLookUp(tmp))
{
-#ifdef BREAK_XFONT_LOOP
+#ifdef NXAGENT_DANGEROUS_XFONT_LOOP_EXIT
break;
#else
continue;
@@ -1327,7 +1334,7 @@ nxdoListFontsAndAliases(ClientPtr client, nxFsPtr fss)
bail:
finish:
-#ifdef BREAK_XFONT_LOOP
+#ifdef NXAGENT_DANGEROUS_XFONT_LOOP_EXIT
/* if we allow above loop to be exited via break
we need to free the private xfont data somehow. */
if (c->current.list_started)