[X2Go-Commits] [nx-libs] 07/219: Font.c: build the font paths at runtime

git-admin at x2go.org git-admin at x2go.org
Sat Sep 28 12:10:11 CEST 2019


This is an automated email from the git hooks/post-receive script.

x2go pushed a commit to branch 3.6.x
in repository nx-libs.

commit 8029141e772568872e668cfb1df9b5a7968d2236
Author: Ulrich Sibiller <uli42 at gmx.de>
Date:   Tue Apr 23 19:19:04 2019 +0200

    Font.c: build the font paths at runtime
    
    Drop the font path defines and build the path strings at runtime instead.
---
 nx-X11/programs/Xserver/hw/nxagent/Font.c | 67 ++++++++++++++++---------------
 1 file changed, 34 insertions(+), 33 deletions(-)

diff --git a/nx-X11/programs/Xserver/hw/nxagent/Font.c b/nx-X11/programs/Xserver/hw/nxagent/Font.c
index 23fcfe8d5..8c1cb7269 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Font.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/Font.c
@@ -76,21 +76,13 @@ is" without express or implied warranty.
 #define NXAGENT_ALTERNATE_FONT_DIR_2  "/usr/share/fonts/X11"
 #define NXAGENT_ALTERNATE_FONT_DIR_3  "/usr/X11R6/lib/X11/fonts"
 
-#define NXAGENT_DEFAULT_FONT_PATH  \
-"/usr/share/nx/fonts/Type1/,/usr/share/nx/fonts/75dpi/,\
-/usr/share/nx/fonts/100dpi/,/usr/share/nx/fonts/TTF/"
-
-#define NXAGENT_ALTERNATE_FONT_PATH  \
-"/usr/share/X11/fonts/Type1/,/usr/share/X11/fonts/75dpi/,\
-/usr/share/X11/fonts/100dpi/,/usr/share/X11/fonts/TTF/"
-
-#define NXAGENT_ALTERNATE_FONT_PATH_2  \
-"/usr/share/fonts/X11/Type1/,/usr/share/fonts/X11/75dpi/,\
-/usr/share/fonts/X11/100dpi/,/usr/share/fonts/X11/TTF/"
-
-#define NXAGENT_ALTERNATE_FONT_PATH_3  \
-"/usr/X11R6/lib/X11/fonts/Type1/,/usr/X11R6/lib/X11/fonts/75dpi/,\
-/usr/X11R6/lib/X11/fonts/100dpi/,/usr/X11R6/lib/X11/fonts/TTF/"
+const char * nxagentFontSubdirs[] = {
+  "Type1",
+  "75dpi",
+  "100dpi",
+  "TTF",
+  NULL
+};
 
 #undef NXAGENT_FONTCACHE_DEBUG
 #undef NXAGENT_RECONNECT_FONT_DEBUG
@@ -1439,10 +1431,9 @@ static Bool nxagentGetFontServerPath(char * fontServerPath, int size)
   return True;
 }
 
-void nxagentVerifySingleFontPath(char **dest, const char *fontDir, const char *fontPath)
+void nxagentVerifySingleFontPath(char **dest, const char *fontDir)
 {
   struct stat dirStat;
-  char * newdest = NULL;
 
   if (!dest || !*dest)
     return;
@@ -1455,22 +1446,32 @@ void nxagentVerifySingleFontPath(char **dest, const char *fontDir, const char *f
                 validateString(fontDir));
     #endif
 
-    if (**dest != '\0')
+    for (int i = 0; ; i++)
     {
-      newdest = realloc(*dest, strlen(*dest) + strlen(fontPath) + 2);
-      if (newdest == NULL)
+      char *tmppath = NULL;
+      int rc;
+
+      const char *subdir = nxagentFontSubdirs[i];
+
+      if (subdir == NULL)
         return;
-      strcat(newdest, ",");
-    }
-    else
-    {
-      newdest = realloc(*dest, strlen(*dest) + strlen(fontPath) + 1);
-      if (newdest == NULL)
+
+      if (**dest != '\0')
+      {
+        rc = asprintf(&tmppath, "%s,%s/%s", *dest, fontDir, subdir);
+      }
+      else
+      {
+        rc = asprintf(&tmppath, "%s/%s", fontDir, subdir);
+      }
+
+      if (rc == -1)
         return;
-    }
 
-    strcat(newdest, fontPath);
-    *dest = newdest;
+      free(*dest);
+      *dest = tmppath;
+      tmppath = NULL;
+    }
   }
 }
 
@@ -1496,10 +1497,10 @@ void nxagentVerifyDefaultFontPath(void)
     return;
   }
 
-  nxagentVerifySingleFontPath(&fontPath, NXAGENT_DEFAULT_FONT_DIR, NXAGENT_DEFAULT_FONT_PATH);
-  nxagentVerifySingleFontPath(&fontPath, NXAGENT_ALTERNATE_FONT_DIR, NXAGENT_ALTERNATE_FONT_PATH);
-  nxagentVerifySingleFontPath(&fontPath, NXAGENT_ALTERNATE_FONT_DIR_2, NXAGENT_ALTERNATE_FONT_PATH_2);
-  nxagentVerifySingleFontPath(&fontPath, NXAGENT_ALTERNATE_FONT_DIR_3, NXAGENT_ALTERNATE_FONT_PATH_3);
+  nxagentVerifySingleFontPath(&fontPath, NXAGENT_DEFAULT_FONT_DIR);
+  nxagentVerifySingleFontPath(&fontPath, NXAGENT_ALTERNATE_FONT_DIR);
+  nxagentVerifySingleFontPath(&fontPath, NXAGENT_ALTERNATE_FONT_DIR_2);
+  nxagentVerifySingleFontPath(&fontPath, NXAGENT_ALTERNATE_FONT_DIR_3);
 
   if (*fontPath == '\0') 
   {

--
Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/nx-libs.git


More information about the x2go-commits mailing list