|
1 Taken as it's from: |
|
2 |
|
3 http://git.gnome.org/browse/libxslt/commit/?id=1d62941e10c7419bf2341dbbb17d2ba6a73ed4ae |
|
4 |
|
5 From 1d62941e10c7419bf2341dbbb17d2ba6a73ed4ae Mon Sep 17 00:00:00 2001 |
|
6 From: Daniel Veillard <[email protected]> |
|
7 Date: Wed, 08 Aug 2012 06:21:51 +0000 |
|
8 Subject: Fix portability to upcoming libxml2-2.9.0 |
|
9 |
|
10 A few place where an output buffer was accessed directly or as |
|
11 an xmlBuf |
|
12 --- |
|
13 diff --git a/libxslt/xsltutils.c b/libxslt/xsltutils.c |
|
14 index 44e80a7..7a4caf0 100644 |
|
15 --- a/libxslt/xsltutils.c |
|
16 +++ b/libxslt/xsltutils.c |
|
17 @@ -1538,9 +1538,11 @@ xsltSaveResultTo(xmlOutputBufferPtr buf, xmlDocPtr result, |
|
18 |
|
19 if (omitXmlDecl != 1) { |
|
20 xmlOutputBufferWriteString(buf, "<?xml version="); |
|
21 - if (result->version != NULL) |
|
22 - xmlBufferWriteQuotedString(buf->buffer, result->version); |
|
23 - else |
|
24 + if (result->version != NULL) { |
|
25 + xmlOutputBufferWriteString(buf, "\""); |
|
26 + xmlOutputBufferWriteString(buf, (const char *)result->version); |
|
27 + xmlOutputBufferWriteString(buf, "\""); |
|
28 + } else |
|
29 xmlOutputBufferWriteString(buf, "\"1.0\""); |
|
30 if (encoding == NULL) { |
|
31 if (result->encoding != NULL) |
|
32 @@ -1552,7 +1554,9 @@ xsltSaveResultTo(xmlOutputBufferPtr buf, xmlDocPtr result, |
|
33 } |
|
34 if (encoding != NULL) { |
|
35 xmlOutputBufferWriteString(buf, " encoding="); |
|
36 - xmlBufferWriteQuotedString(buf->buffer, (xmlChar *) encoding); |
|
37 + xmlOutputBufferWriteString(buf, "\""); |
|
38 + xmlOutputBufferWriteString(buf, (const char *) encoding); |
|
39 + xmlOutputBufferWriteString(buf, "\""); |
|
40 } |
|
41 switch (standalone) { |
|
42 case 0: |
|
43 @@ -1755,6 +1759,15 @@ xsltSaveResultToString(xmlChar **doc_txt_ptr, int * doc_txt_len, |
|
44 if (buf == NULL) |
|
45 return(-1); |
|
46 xsltSaveResultTo(buf, result, style); |
|
47 +#ifdef LIBXML2_NEW_BUFFER |
|
48 + if (buf->conv != NULL) { |
|
49 + *doc_txt_len = xmlBufUse(buf->conv); |
|
50 + *doc_txt_ptr = xmlStrndup(xmlBufContent(buf->conv), *doc_txt_len); |
|
51 + } else { |
|
52 + *doc_txt_len = xmlBufUse(buf->buffer); |
|
53 + *doc_txt_ptr = xmlStrndup(xmlBufContent(buf->buffer), *doc_txt_len); |
|
54 + } |
|
55 +#else |
|
56 if (buf->conv != NULL) { |
|
57 *doc_txt_len = buf->conv->use; |
|
58 *doc_txt_ptr = xmlStrndup(buf->conv->content, *doc_txt_len); |
|
59 @@ -1762,6 +1775,7 @@ xsltSaveResultToString(xmlChar **doc_txt_ptr, int * doc_txt_len, |
|
60 *doc_txt_len = buf->buffer->use; |
|
61 *doc_txt_ptr = xmlStrndup(buf->buffer->content, *doc_txt_len); |
|
62 } |
|
63 +#endif |
|
64 (void)xmlOutputBufferClose(buf); |
|
65 return 0; |
|
66 } |
|
67 -- |
|
68 cgit v0.9.0.2 |