components/libxslt/patches/04-libxslt-Fix-portability-to-upcoming-libxml2-2.9.0.patch
branchs11u1-sru
changeset 2471 b1f0e4a84df6
equal deleted inserted replaced
2469:0b02cc321ac6 2471:b1f0e4a84df6
       
     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