Version 3.6.0.4, tag libreoffice-3.6.0.4
[LibreOffice.git] / libxml2 / libxml2-long-path.patch
blobc27dbe1ec280ff0a08fe4923b1ca340602f4f0c0
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);
7 - /* sanitize filename starting with // so it can be used as URI */
8 +#if defined(_WIN32)
9 + //We must not change the backslashes to slashes if the the path starts with
10 + // \\?\
11 + //Those paths can be up to 32k characters long.
12 + len = xmlStrlen(path);
13 + if ((len > 3) && (path[0] == '\\') && (path[1] == '\\') && (path[2] == '?') && (path[3] == '\\') )
14 + return xmlStrdup((const xmlChar *) path);
15 +#endif
17 + /* sanitize filename starting with // so it can be used as URI */
18 if ((path[0] == '/') && (path[1] == '/') && (path[2] != '/'))
19 path++;
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 @@
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;
32 if (xmlWrapStat(path, &stat_buffer) == -1)
33 return 0;
34 #else