| Joachim Lingner | 471f802 | 2011-02-24 15:28:48 +0100 | [diff] [blame] | 1 | --- misc/libxml2-2.7.6/uri.c 2009-10-02 17:28:55.000000000 +0200 |
| 2 | +++ misc/build/libxml2-2.7.6/uri.c 2011-02-24 13:47:19.349299000 +0100 |
| 3 | @@ -2479,7 +2479,16 @@ |
| 4 | if (path == NULL) |
| 5 | return(NULL); |
| 6 | |
| 7 | - /* sanitize filename starting with // so it can be used as URI */ |
| 8 | +#if defined(_WIN32) |
| Tor Lillqvist | 616c692 | 2013-02-22 09:48:17 +0200 | [diff] [blame] | 9 | + //We must not change the backslashes to slashes if the path starts with |
| Joachim Lingner | 471f802 | 2011-02-24 15:28:48 +0100 | [diff] [blame] | 10 | + // \\?\ |
| Jesús Corrius | 7be0cc2 | 2012-02-01 14:42:58 +0100 | [diff] [blame] | 11 | + //Those paths can be up to 32k characters long. |
| Joachim Lingner | 471f802 | 2011-02-24 15:28:48 +0100 | [diff] [blame] | 12 | + len = xmlStrlen(path); |
| 13 | + if ((len > 3) && (path[0] == '\\') && (path[1] == '\\') && (path[2] == '?') && (path[3] == '\\') ) |
| 14 | + return xmlStrdup((const xmlChar *) path); |
| 15 | +#endif |
| 16 | + |
| 17 | + /* sanitize filename starting with // so it can be used as URI */ |
| 18 | if ((path[0] == '/') && (path[1] == '/') && (path[2] != '/')) |
| 19 | path++; |
| 20 | |
| 21 | --- misc/libxml2-2.7.6/xmlIO.c 2009-09-24 17:32:00.000000000 +0200 |
| 22 | +++ misc/build/libxml2-2.7.6/xmlIO.c 2011-02-24 13:47:26.163762000 +0100 |
| 23 | @@ -772,6 +772,11 @@ |
| 24 | |
| 25 | #ifdef HAVE_STAT |
| 26 | #if defined(_WIN32) || defined (__DJGPP__) && !defined (__CYGWIN__) |
| 27 | + //On Windows stat and wstat do not work with long pathname, |
| 28 | + //which start with '\\?\' |
| 29 | + if ((xmlStrlen(path) > 3) && (path[0] == '\\') && (path[1] == '\\') && (path[2] == '?') && (path[3] == '\\') ) |
| 30 | + return 1; |
| 31 | + |
| 32 | if (xmlWrapStat(path, &stat_buffer) == -1) |
| 33 | return 0; |
| 34 | #else |