You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
asterisk/main/minimime/mm-docs/html/group__util.html

281 lines
13 KiB

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>MiniMIME: General purpose utility functions</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.1 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
</ul></div>
<h1>General purpose utility functions</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Utility functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g35c4383ff0dee2de18985e6edfed1ae6"></a><!-- doxytag: member="util::xfree" ref="g35c4383ff0dee2de18985e6edfed1ae6" args="(void *)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><b>xfree</b> (void *)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g2961ae74e91b0b28acdf9822438a581c"></a><!-- doxytag: member="util::xstrdup" ref="g2961ae74e91b0b28acdf9822438a581c" args="(const char *)" -->
char *&nbsp;</td><td class="memItemRight" valign="bottom"><b>xstrdup</b> (const char *)</td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#g2ff4ef58da7e543466e75f20f2a2d8b7">xmalloc</a> (size_t size)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#ge14637b4672461f1f0bee822406d68dc">xrealloc</a> (void *p, size_t size)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#gf0f89a29a634f6f1f833abb1e214a6b1">mm_unquote</a> (const char *string)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#g49c016ff4cfd02f1b019c4dce5aac357">mm_uncomment</a> (const char *string)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#g3ae25483c8a42f6562f2a916a511228f">xstrsep</a> (char **stringp, const char *delim)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#gf62be7dd21e545f8db72f3c9e3b6a3c3">mm_stripchars</a> (char *input, char *strip)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__util.html#g0747d4b4e33644263e6d73d2d8d4818b">mm_addchars</a> (char *input, char *add, u_int16_t linelength)</td></tr>
</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g0747d4b4e33644263e6d73d2d8d4818b"></a><!-- doxytag: member="mm_util.c::mm_addchars" ref="g0747d4b4e33644263e6d73d2d8d4818b" args="(char *input, char *add, u_int16_t linelength)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">char* mm_addchars </td>
<td>(</td>
<td class="paramtype">char *&nbsp;</td>
<td class="paramname"> <em>input</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char *&nbsp;</td>
<td class="paramname"> <em>add</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u_int16_t&nbsp;</td>
<td class="paramname"> <em>linelength</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Adds characters to a string at given positions<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>input</em>&nbsp;</td><td>The string to which to add characters </td></tr>
<tr><td valign="top"></td><td valign="top"><em>add</em>&nbsp;</td><td>The character string to add </td></tr>
<tr><td valign="top"></td><td valign="top"><em>linelength</em>&nbsp;</td><td>The position where to add the character </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>A copy of the string with characters added</dd></dl>
This function adds the characters add at each linelength positions and returns this new string.
</div>
</div><p>
<a class="anchor" name="gf62be7dd21e545f8db72f3c9e3b6a3c3"></a><!-- doxytag: member="mm_util.c::mm_stripchars" ref="gf62be7dd21e545f8db72f3c9e3b6a3c3" args="(char *input, char *strip)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">char* mm_stripchars </td>
<td>(</td>
<td class="paramtype">char *&nbsp;</td>
<td class="paramname"> <em>input</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char *&nbsp;</td>
<td class="paramname"> <em>strip</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Strips a given character set from a string<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>input</em>&nbsp;</td><td>The string which to strip </td></tr>
<tr><td valign="top"></td><td valign="top"><em>strip</em>&nbsp;</td><td>The character set to strip off </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>A copy of the original string with all chars stripped </dd></dl>
</div>
</div><p>
<a class="anchor" name="g49c016ff4cfd02f1b019c4dce5aac357"></a><!-- doxytag: member="mm_util.c::mm_uncomment" ref="g49c016ff4cfd02f1b019c4dce5aac357" args="(const char *string)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">char* mm_uncomment </td>
<td>(</td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>string</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Removes MIME comments from a string<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>string</em>&nbsp;</td><td>The string to uncomment </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>A pointer to the uncommented string or NULL on error. Sets mm_errno.</dd></dl>
This function removes MIME comments from a string (included in parantheses). It returns a pointer to a newly allocated memory region in which the uncommented string is stored. The returned string needs to be freed when it's not used anymore.
</div>
</div><p>
<a class="anchor" name="gf0f89a29a634f6f1f833abb1e214a6b1"></a><!-- doxytag: member="mm_util.c::mm_unquote" ref="gf0f89a29a634f6f1f833abb1e214a6b1" args="(const char *string)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">char* mm_unquote </td>
<td>(</td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>string</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Unquotes a string<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>string</em>&nbsp;</td><td>The quoted string to unquote </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>A pointer to the unquoted string</dd></dl>
This function unquotes a string. That is, it returns a pointer to a newly allocated memory region in which the unquoted string is stored. Only leading and trailing double-qoutes are removed. The string needs to be freed when it is not needed anymore.
</div>
</div><p>
<a class="anchor" name="g2ff4ef58da7e543466e75f20f2a2d8b7"></a><!-- doxytag: member="mm_util.c::xmalloc" ref="g2ff4ef58da7e543466e75f20f2a2d8b7" args="(size_t size)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void* xmalloc </td>
<td>(</td>
<td class="paramtype">size_t&nbsp;</td>
<td class="paramname"> <em>size</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Allocates a block of memory<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>The size of the memory region to allocate </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>A pointer to the allocated memory region</dd></dl>
<a class="el" href="group__util.html#g2ff4ef58da7e543466e75f20f2a2d8b7">xmalloc()</a> calls abort() if either the size argument is negative or the requested memory amount could not be allocated via an assert() call.
</div>
</div><p>
<a class="anchor" name="ge14637b4672461f1f0bee822406d68dc"></a><!-- doxytag: member="mm_util.c::xrealloc" ref="ge14637b4672461f1f0bee822406d68dc" args="(void *p, size_t size)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void* xrealloc </td>
<td>(</td>
<td class="paramtype">void *&nbsp;</td>
<td class="paramname"> <em>p</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&nbsp;</td>
<td class="paramname"> <em>size</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
realloc() wrapper<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>p</em>&nbsp;</td><td>Pointer to a memory region which should be reallocated </td></tr>
<tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>The new size of the memory region </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>A pointer to the reallocated memory region</dd></dl>
<a class="el" href="group__util.html#ge14637b4672461f1f0bee822406d68dc">xrealloc()</a> is a wrapper around realloc() which calls abort() if either the size argument is negative or the requested memory amount could not be allocated.
</div>
</div><p>
<a class="anchor" name="g3ae25483c8a42f6562f2a916a511228f"></a><!-- doxytag: member="mm_util.c::xstrsep" ref="g3ae25483c8a42f6562f2a916a511228f" args="(char **stringp, const char *delim)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">char* xstrsep </td>
<td>(</td>
<td class="paramtype">char **&nbsp;</td>
<td class="paramname"> <em>stringp</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>delim</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
separate strings<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>stringp</em>&nbsp;</td><td>A pointer to the string being splitted </td></tr>
<tr><td valign="top"></td><td valign="top"><em>delim</em>&nbsp;</td><td>The delimeter string</td></tr>
</table>
</dl>
This function works similar to strsep(), with the difference that delim is treated as a whole.
</div>
</div><p>
<hr size="1"><address style="align: right;"><small>Generated on Thu Mar 29 17:59:09 2007 for MiniMIME by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
</body>
</html>