]> git.pld-linux.org Git - packages/X11.git/blobdiff - X11-xfs.patch
- patches modified for new snap of X11 (DEVEL branch)
[packages/X11.git] / X11-xfs.patch
diff --git a/X11-xfs.patch b/X11-xfs.patch
new file mode 100644 (file)
index 0000000..2e090df
--- /dev/null
@@ -0,0 +1,221 @@
+diff -urN xc.orig/programs/xfs/difs/charinfo.c xc/programs/xfs/difs/charinfo.c
+--- xc.orig/programs/xfs/difs/charinfo.c       2004-08-08 14:23:00.000000000 +0200
++++ xc/programs/xfs/difs/charinfo.c    2004-08-08 14:42:16.342943816 +0200
+@@ -499,6 +499,8 @@
+ #define LSBBitLeft(b,c)       ((b) >> (c))
+ #define LSBBitRight(b,c)      ((b) << (c))
++      if (srcp) {
++        
+       if (dst_off == src_off)
+       {
+           if (srcbpr == dstbpr && src_left_bytes == dst_left_bytes)
+@@ -580,6 +582,7 @@
+               srcp += src_extra;
+           }
+       }
++      }
+       /* skip the amount we just filled in */
+       gd += l->length;
+     }
+diff -urN xc.orig/programs/xfs/difs/fonts.c xc/programs/xfs/difs/fonts.c
+--- xc.orig/programs/xfs/difs/fonts.c  2004-08-08 14:23:00.000000000 +0200
++++ xc/programs/xfs/difs/fonts.c       2004-08-08 14:41:58.277690152 +0200
+@@ -114,6 +114,113 @@
+ }
+ /*
++ * xf86GetPathElem --
++ *      Extract a single element from the font path string starting at
++ *      pnt.  The font path element will be returned, and pnt will be
++ *      updated to point to the start of the next element, or set to
++ *      NULL if there are no more.
++ */
++char *
++xf86GetPathElem(pnt)
++     char **pnt;
++{
++  char *p1;
++ 
++  p1 = *pnt;
++  *pnt = index(*pnt, ',');
++  if (*pnt != NULL) {
++    **pnt = '\0';
++    *pnt += 1;
++  }
++  return(p1);
++}
++
++/*
++ * xf86ValidateFontPath --
++ *      Validates the user-specified font path.  Each element that
++ *      begins with a '/' is checked to make sure the directory exists.
++ *      If the directory exists, the existence of a file named 'fonts.dir'
++ *      is checked.  If either check fails, an error is printed and the
++ *      element is removed from the font path.
++ */
++#define DIR_FILE "/fonts.dir"
++#define CHECK_TYPE(mode, type) ((S_IFMT & (mode)) == (type))
++static char *
++xf86ValidateFontPath(path)
++     char *path;
++{
++  char *tmp_path, *out_pnt, *path_elem, *next, *p1, *dir_elem;
++  struct stat stat_buf;
++  int flag;
++  int dirlen;
++ 
++  tmp_path = (char *)calloc(1,strlen(path)+1);
++  out_pnt = tmp_path;
++  path_elem = NULL;
++  next = path;
++  while (next != NULL) {
++    path_elem = xf86GetPathElem(&next);
++#ifndef __EMX__
++    if (*path_elem == '/') {
++      dir_elem = (char *)calloc(1, strlen(path_elem) + 1);
++      if ((p1 = strchr(path_elem, ':')) != 0)
++#else
++    /* OS/2 must prepend X11ROOT */
++    if (*path_elem == '/') {
++      path_elem = (char*)__XOS2RedirRoot(path_elem);
++      dir_elem = (char*)calloc(1, strlen(path_elem) + 1);
++      if (p1 = strchr(path_elem+2, ':'))
++#endif
++        dirlen = p1 - path_elem;
++      else
++        dirlen = strlen(path_elem);
++      strncpy(dir_elem, path_elem, dirlen);
++      dir_elem[dirlen] = '\0';
++      flag = stat(dir_elem, &stat_buf);
++      if (flag == 0)
++        if (!CHECK_TYPE(stat_buf.st_mode, S_IFDIR))
++          flag = -1;
++      if (flag != 0) {
++      printf("warning!\n");
++      ErrorF("Warning: The directory \"%s\" does not exist.\n", dir_elem);
++      ErrorF("         Entry deleted from font path.\n");
++        continue;
++      }
++      else {
++        p1 = (char *)malloc(strlen(dir_elem)+strlen(DIR_FILE)+1);
++        strcpy(p1, dir_elem);
++        strcat(p1, DIR_FILE);
++        flag = stat(p1, &stat_buf);
++        if (flag == 0)
++          if (!CHECK_TYPE(stat_buf.st_mode, S_IFREG))
++            flag = -1;
++#ifndef __EMX__
++        free(p1);
++#endif
++        if (flag != 0) {
++        ErrorF("Warning: 'fonts.dir' not found (or not valid) in \"%s\".\n",
++                 dir_elem);
++          ErrorF("          Entry deleted from font path.\n");
++          ErrorF("          (Run 'mkfontdir' on \"%s\").\n", dir_elem);
++          continue;
++        }
++      }
++      free(dir_elem);
++    }
++ 
++    /*
++     * Either an OK directory, or a font server name.  So add it to
++     * the path.
++     */
++    if (out_pnt != tmp_path)
++      *out_pnt++ = ',';
++    strcat(out_pnt, path_elem);
++    out_pnt += strlen(path_elem);
++  }
++  return(tmp_path);
++}
++
++/*
+  * note that the font wakeup queue is not refcounted.  this is because
+  * an fpe needs to be added when it's inited, and removed when it's finally
+  * freed, in order to handle any data that isn't requested, like FS events.
+@@ -754,8 +861,12 @@
+                *end,
+                *p;
+     int         err;
++    char       *fixedpath;
++
++    fixedpath = xf86ValidateFontPath(str);
+-    len = strlen(str) + 1;
++    len = strlen(fixedpath) + 1;
++    str = fixedpath;
+     paths = p = (char *) ALLOCATE_LOCAL(len);
+     npaths = 0;
+@@ -775,6 +886,7 @@
+     err = set_font_path_elements(npaths, paths, badpath);
++    free(fixedpath);
+     DEALLOCATE_LOCAL(paths);
+     return err;
+diff -urN xc.orig/programs/xfs/difs/main.c xc/programs/xfs/difs/main.c
+--- xc.orig/programs/xfs/difs/main.c   2004-08-08 14:23:00.000000000 +0200
++++ xc/programs/xfs/difs/main.c        2004-08-08 14:42:22.082071336 +0200
+@@ -63,6 +63,7 @@
+ #include      "dispatch.h"
+ #include      "extentst.h"
+ #include      "difs.h"
++#include      "debug.h"
+ char       *ConnectionInfo;
+ int         ConnInfoLen;
+@@ -78,6 +79,7 @@
+ static Bool create_connection_block(void);
+ char       *configfilename;
++int      debug_level; 
+ extern Bool drone_server;
+ extern OldListenRec *OldListen;
+@@ -89,6 +91,7 @@
+     int         i, oldumask;
+     argcGlobal = argc;
++    debug_level = 0;
+     argvGlobal = argv;
+     configfilename = DEFAULT_CONFIG_FILE;
+diff -urN xc.orig/programs/xfs/include/debug.h xc/programs/xfs/include/debug.h
+--- xc.orig/programs/xfs/include/debug.h       1970-01-01 01:00:00.000000000 +0100
++++ xc/programs/xfs/include/debug.h    2004-08-08 14:42:22.082071336 +0200
+@@ -0,0 +1 @@
++/* debug.h */
+\ Brak znaku nowej linii na koƱcu pliku
+diff -urN xc.orig/programs/xfs/os/utils.c xc/programs/xfs/os/utils.c
+--- xc.orig/programs/xfs/os/utils.c    2004-08-08 14:23:00.000000000 +0200
++++ xc/programs/xfs/os/utils.c 2004-08-08 14:42:22.084071032 +0200
+@@ -93,6 +93,7 @@
+ #include <stdlib.h>
+ extern char *configfilename;
++extern int  debug_level;
+ static Bool dropPriv = FALSE; /* whether or not to drop root privileges */
+ #ifdef DEFAULT_DAEMON
+ static Bool becomeDaemon = TRUE; /* whether to become a daemon or not */
+@@ -219,7 +220,7 @@
+ static void
+ usage(void)
+ {
+-    fprintf(stderr, "usage: %s [-config config_file] [-port tcp_port] [-droppriv] [-daemon] [-nodaemon] [-user user_name] [-ls listen_socket]\n",
++    fprintf(stderr, "usage: %s [-config config_file] [-port tcp_port] [-droppriv] [-daemon] [-nodaemon] [-user user_name] [-ls listen_socket] [-d debug_level]\n",
+           progname);
+     exit(1);
+ }
+@@ -333,6 +334,8 @@
+               ProcessLSoption (argv[++i]);
+           else
+               usage();
++      } else if (!strcmp(argv[i], "-d") || !strcmp(argv[i], "--debug")) {
++              debug_level = atoi(argv[++i]);
+       } else if (!strcmp(argv[i], "-droppriv")) {
+               dropPriv = TRUE;
+       } else if (!strcmp(argv[i], "-daemon")) {
This page took 0.042517 seconds and 4 git commands to generate.