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