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