ACK :-)

Daniel

On Thu, Jul 11, 2019 at 08:00:39PM +0200, Jan Pokorný via xml wrote:
> At least when merely public API is to be leveraged, one cannot use
> xmlBufCreate function that would otherwise be a clear fit, and relying
> on some invariants wrt. how some other struct fields will get
> initialized along the construction/filling such parent struct and
> (ab)using that instead does not appear clever, either.
> 
> Hence, instruct people what's the Right Thing for the moment, that is,
> make them use xmlNodeDumpOutput instead (together with likewise public
> xmlAllocOutputBuffer).
> 
> Going forward, it's questionable what do with xmlBuf* family of
> functions that are once public, since they, for any practical purpose,
> cannot be used by the library clients (that's how I've run into this).
> 
> Signed-off-by: Jan Pokorný <jpoko...@redhat.com>
> ---
> 
> Hello Daniel, Nick, and others,
> 
> I've run into a source of frustration based on an unset advice
> in the documentation that I hope to remove with this change.
> Or did I overlook something?  Thanks for pulling otherwise!
> 
> (Indeed, there could be substantially bigger cut, like possibly
> retargeting xmlBufCreate as public, etc. but no wonders if there's
> not much will for that once the status quo lasted so long...)
> 
> -- Jan (Poki)
> 
>  doc/libxml2-api.xml  | 2 +-
>  doc/libxml2-refs.xml | 6 +++---
>  xmlsave.c            | 4 ++--
>  3 files changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/doc/libxml2-api.xml b/doc/libxml2-api.xml
> index 9cf6c72e..ccba52f2 100644
> --- a/doc/libxml2-api.xml
> +++ b/doc/libxml2-api.xml
> @@ -11778,7 +11778,7 @@ Could we use @subtypes for this?'/>
>      </function>
>      <function name='xmlNodeDump' file='tree' module='xmlsave'>
>        <cond>defined(LIBXML_OUTPUT_ENABLED)</cond>
> -      <info>Dump an XML node, recursive behaviour,children are printed too. 
> Note that @format = 1 provide node indenting only if xmlIndentTreeOutput = 1 
> or xmlKeepBlanksDefault(0) was called Since this is using xmlBuffer 
> structures it is limited to 2GB and somehow deprecated, use xmlBufNodeDump() 
> instead.</info>
> +      <info>Dump an XML node, recursive behaviour,children are printed too. 
> Note that @format = 1 provide node indenting only if xmlIndentTreeOutput = 1 
> or xmlKeepBlanksDefault(0) was called. Since this is using xmlBuffer 
> structures it is limited to 2GB and somehow deprecated, use 
> xmlNodeDumpOutput() instead.</info>
>        <return type='int' info='the number of bytes written to the buffer or 
> -1 in case of error'/>
>        <arg name='buf' type='xmlBufferPtr' info='the XML buffer output'/>
>        <arg name='doc' type='xmlDocPtr' info='the document'/>
> diff --git a/doc/libxml2-refs.xml b/doc/libxml2-refs.xml
> index 3fe0876f..3109bac4 100644
> --- a/doc/libxml2-refs.xml
> +++ b/doc/libxml2-refs.xml
> @@ -31120,9 +31120,6 @@
>          <word name='xmlAttributeTablePtr'>
>            <ref name='xmlCopyAttributeTable'/>
>          </word>
> -        <word name='xmlBufNodeDump'>
> -          <ref name='xmlNodeDump'/>
> -        </word>
>          <word name='xmlBufPtr'>
>            <ref name='xmlBufGetNodeContent'/>
>          </word>
> @@ -31493,6 +31490,9 @@
>            <ref name='xmlNewTextWriterPushParser'/>
>            <ref name='xmlNewTextWriterTree'/>
>          </word>
> +        <word name='xmlNodeDumpOutput'>
> +          <ref name='xmlNodeDump'/>
> +        </word>
>          <word name='xmlNodeListGetString'>
>            <ref name='xmlNodeListGetRawString'/>
>          </word>
> diff --git a/xmlsave.c b/xmlsave.c
> index f7173ebb..bf805330 100644
> --- a/xmlsave.c
> +++ b/xmlsave.c
> @@ -2186,9 +2186,9 @@ xmlAttrSerializeTxtContent(xmlBufferPtr buf, xmlDocPtr 
> doc,
>   *
>   * Dump an XML node, recursive behaviour,children are printed too.
>   * Note that @format = 1 provide node indenting only if xmlIndentTreeOutput 
> = 1
> - * or xmlKeepBlanksDefault(0) was called
> + * or xmlKeepBlanksDefault(0) was called.
>   * Since this is using xmlBuffer structures it is limited to 2GB and somehow
> - * deprecated, use xmlBufNodeDump() instead.
> + * deprecated, use xmlNodeDumpOutput() instead.
>   *
>   * Returns the number of bytes written to the buffer or -1 in case of error
>   */
> -- 
> 2.22.0
> 
> _______________________________________________
> xml mailing list, project page  http://xmlsoft.org/
> xml@gnome.org
> https://mail.gnome.org/mailman/listinfo/xml

-- 
Daniel Veillard      | Red Hat Developers Tools http://developer.redhat.com/
veill...@redhat.com  | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
http://veillard.com/ | virtualization library  http://libvirt.org/
_______________________________________________
xml mailing list, project page  http://xmlsoft.org/
xml@gnome.org
https://mail.gnome.org/mailman/listinfo/xml

Reply via email to