[xml] [Patch] fix xmllint for win32



Hi,

To use xmllint on windows I had to do some small changes (see attached
patch)

But I'm still having problems when I define $SGML_CATALOG_FILES with
native path separators:

set $SGML_CATALOG_FILES=e:/kde/kdelibs/kdoctools/customization/catalog

works fine, but

set $SGML_CATALOG_FILES=e:\kde\kdelibs\kdoctools\customization\catalog

does not work correct. The referenced file 'dtd/kdex.dtd' (which is
located in e:\kde\kdelibs\kdoctools\customization\dtd\kdex.dtd) could
not be found.
Can you give me a hint where I can take a look to fix this issue?

Thx,
Christian Ehrlicher
diff -u libxml2-2.6.27/catalog.c libxml2-2.6.27-orig/catalog.c
--- libxml2-2.6.27/catalog.c    2007-01-27 20:32:34.000000000 +0100
+++ libxml2-2.6.27-orig/catalog.c       2006-03-09 17:10:42.000000000 +0100
@@ -3218,11 +3218,7 @@
        while (xmlIsBlank_ch(*cur)) cur++;
        if (*cur != 0) {
            paths = cur;
-#ifdef _WIN32
-           while ((*cur != 0) && (*cur != ';') && (!xmlIsBlank_ch(*cur)))
-#else
            while ((*cur != 0) && (*cur != ':') && (!xmlIsBlank_ch(*cur)))
-#endif
                cur++;
            path = xmlStrndup((const xmlChar *)paths, cur - paths);
            if (path != NULL) {
diff -u libxml2-2.6.27/uri.c libxml2-2.6.27-orig/uri.c
--- libxml2-2.6.27/uri.c        2007-01-27 19:13:12.000000000 +0100
+++ libxml2-2.6.27-orig/uri.c   2006-10-10 14:18:22.000000000 +0200
@@ -435,10 +435,7 @@
                if ((IS_UNRESERVED(*(p))) || ((*(p) == '/')) ||
                     ((*(p) == ';')) || ((*(p) == '@')) || ((*(p) == '&')) ||
                    ((*(p) == '=')) || ((*(p) == '+')) || ((*(p) == '$')) ||
-#ifdef _WIN32
-                    ((*(p) == ':')) ||
-#endif
-                    ((*(p) == ',')))
+                   ((*(p) == ',')))
                    ret[len++] = *p++;
                else {
                    int val = *(unsigned char *)p++;
diff -u libxml2-2.6.27/xmllint.c libxml2-2.6.27-orig/xmllint.c
--- libxml2-2.6.27/xmllint.c    2007-01-27 20:31:18.000000000 +0100
+++ libxml2-2.6.27-orig/xmllint.c       2006-10-18 23:21:50.000000000 +0200
@@ -209,11 +209,6 @@
  *                                                                     *
  ************************************************************************/
 #define MAX_PATHS 64
-#ifdef _WIN32
-# define PATH_SEPARATOR ';'
-#else
-# define PATH_SEPARATOR ':'
-#endif
 static xmlChar *paths[MAX_PATHS + 1];
 static int nbpaths = 0;
 static int load_trace = 0;
@@ -230,10 +225,10 @@
            return;
        }
        cur = path;
-        while ((*cur == ' ') || (*cur == PATH_SEPARATOR))
+       while ((*cur == ' ') || (*cur == ':'))
            cur++;
        path = cur;
-       while ((*cur != 0) && (*cur != ' ') && (*cur != PATH_SEPARATOR))
+       while ((*cur != 0) && (*cur != ' ') && (*cur != ':'))
            cur++;
        if (cur != path) {
            paths[nbpaths] = xmlStrndup(path, cur - path);

Attachment: signature.asc
Description: OpenPGP digital signature



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]