1 <refentry id="refbufdest"> 2 3 <refmeta> 4 <refentrytitle>ne_buffer_destroy</refentrytitle> 5 <manvolnum>3</manvolnum> 6 </refmeta> 7 8 <refnamediv> 9 <refname id="ne_buffer_destroy">ne_buffer_destroy</refname> 10 <refname id="ne_buffer_finish">ne_buffer_finish</refname> 11 <refpurpose>destroy a buffer object</refpurpose> 12 </refnamediv> 13 14 <refsynopsisdiv> 15 16 <funcsynopsis> 17 18 <funcsynopsisinfo>#include <ne_string.h></funcsynopsisinfo> 19 20 <funcprototype> 21 <funcdef>void <function>ne_buffer_destroy</function></funcdef> 22 <paramdef>ne_buffer *<parameter>buf</parameter></paramdef> 23 </funcprototype> 24 25 <funcprototype> 26 <funcdef>char *<function>ne_buffer_finish</function></funcdef> 27 <paramdef>ne_buffer *<parameter>buf</parameter></paramdef> 28 </funcprototype> 29 30 </funcsynopsis> 31 32 </refsynopsisdiv> 33 34 <refsect1> 35 <title>Description</title> 36 37 <para><function>ne_buffer_destroy</function> frees all memory 38associated with the buffer. <function>ne_buffer_finish</function> 39frees the buffer structure, but not the actual string stored in the 40buffer, which is returned and must be <function>free</function>()d by 41the caller.</para> 42 43 <para>Any use of the buffer object after calling either of these 44functions gives undefined behaviour.</para> 45 46 </refsect1> 47 48 <refsect1> 49 <title>Return value</title> 50 51 <para><function>ne_buffer_finish</function> returns the 52<function>malloc</function>-allocated string stored in the buffer.</para> 53 54 </refsect1> 55 56 <refsect1> 57 <title>Examples</title> 58 59 <para>An example use of <function>ne_buffer_finish</function>; 60the <function>duplicate</function> function returns a string made up of 61<parameter>n</parameter> copies of <parameter>str</parameter>:</para> 62 63 <programlisting>static char *duplicate(int n, const char *str) 64{ 65 ne_buffer *buf = ne_buffer_create(); 66 while (n--) { 67 ne_buffer_zappend(buf, str); 68 } 69 return ne_buffer_finish(buf); 70}</programlisting> 71 72 </refsect1> 73 74 <refsect1> 75 <title>See also</title> 76 77 <para><xref linkend="ne_buffer"/>, <xref linkend="ne_buffer_create"/>, 78<xref linkend="ne_buffer_zappend"/></para> 79 </refsect1> 80 81 </refentry> 82