JezK
Edit File: a00545.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="X-UA-Compatible" content="IE=11"/> <meta name="generator" content="Doxygen 1.9.4"/> <meta name="viewport" content="width=device-width, initial-scale=1"/> <title>FreeTDS API: Dynamic string functions</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="dynsections.js"></script> <link href="search/search.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="search/searchdata.js"></script> <script type="text/javascript" src="search/search.js"></script> <link href="doxygen.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="top"><!-- do not remove this div, it is closed by doxygen! --> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr id="projectrow"> <td id="projectalign"> <div id="projectname">FreeTDS API </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.9.4 --> <script type="text/javascript"> /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */ var searchBox = new SearchBox("searchBox", "search",'Search','.html'); /* @license-end */ </script> <script type="text/javascript" src="menudata.js"></script> <script type="text/javascript" src="menu.js"></script> <script type="text/javascript"> /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */ $(function() { initMenu('',true,false,'search.php','Search'); $(document).ready(function() { init_search(); }); }); /* @license-end */ </script> <div id="main-nav"></div> </div><!-- top --> <!-- window showing the filter options --> <div id="MSearchSelectWindow" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" onkeydown="return searchBox.OnSearchSelectKey(event)"> </div> <!-- iframe showing the search results (closed by default) --> <div id="MSearchResultsWindow"> <iframe src="javascript:void(0)" frameborder="0" name="MSearchResults" id="MSearchResults"> </iframe> </div> <div class="header"> <div class="summary"> <a href="#nested-classes">Classes</a> | <a href="#define-members">Macros</a> | <a href="#typedef-members">Typedefs</a> | <a href="#func-members">Functions</a> | <a href="#var-members">Variables</a> </div> <div class="headertitle"><div class="title">Dynamic string functions<div class="ingroups"><a class="el" href="a00546.html">LibTDS API</a></div></div></div> </div><!--header--> <div class="contents"> <p>Handle dynamic string. <a href="#details">More...</a></p> <div class="dynheader"> Collaboration diagram for Dynamic string functions:</div> <div class="dyncontent"> <div class="center"><!-- SVG 0 --> </div> </div> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a> Classes</h2></td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="a01258.html">tds_dstr</a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Structure to hold a string. <a href="a01258.html#details">More...</a><br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a> Macros</h2></td></tr> <tr class="memitem:ga581a03a4de6c926c57b4a75a11214df4"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00545.html#ga581a03a4de6c926c57b4a75a11214df4">DSTR_INITIALIZER</a>   ((struct <a class="el" href="a01258.html">tds_dstr</a>*) &<a class="el" href="a00545.html#ga676fd3c5c489584d09c89d66c7a0af2d">tds_str_empty</a>)</td></tr> <tr class="memdesc:ga581a03a4de6c926c57b4a75a11214df4"><td class="mdescLeft"> </td><td class="mdescRight">Initializer, used to initialize string like in the following example. <a href="a00545.html#ga581a03a4de6c926c57b4a75a11214df4">More...</a><br /></td></tr> <tr class="separator:ga581a03a4de6c926c57b4a75a11214df4"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga42d67780bd4fd442915780d4815fc743"><td class="memItemLeft" align="right" valign="top"><a id="ga42d67780bd4fd442915780d4815fc743" name="ga42d67780bd4fd442915780d4815fc743"></a> #define </td><td class="memItemRight" valign="bottom"><b>tds_dstr_empty</b>(s)    <a class="el" href="a00545.html#gaccd1c1c8ff938813578123963212388c">tds_dstr_free</a>(s)</td></tr> <tr class="memdesc:ga42d67780bd4fd442915780d4815fc743"><td class="mdescLeft"> </td><td class="mdescRight">Make a string empty. <br /></td></tr> <tr class="separator:ga42d67780bd4fd442915780d4815fc743"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="typedef-members" name="typedef-members"></a> Typedefs</h2></td></tr> <tr class="memitem:gafddddf5bd7ad223cadee3d3bdc899954"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="a01258.html">tds_dstr</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00545.html#gafddddf5bd7ad223cadee3d3bdc899954">DSTR</a></td></tr> <tr class="memdesc:gafddddf5bd7ad223cadee3d3bdc899954"><td class="mdescLeft"> </td><td class="mdescRight">Structure to hold a string. <a href="a00545.html#gafddddf5bd7ad223cadee3d3bdc899954">More...</a><br /></td></tr> <tr class="separator:gafddddf5bd7ad223cadee3d3bdc899954"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a> Functions</h2></td></tr> <tr class="memitem:ga6aa14b8b717b51afcfb65bd55143689d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00545.html#gafddddf5bd7ad223cadee3d3bdc899954">DSTR</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00545.html#ga6aa14b8b717b51afcfb65bd55143689d">tds_dstr_alloc</a> (<a class="el" href="a00545.html#gafddddf5bd7ad223cadee3d3bdc899954">DSTR</a> *s, size_t length)</td></tr> <tr class="memdesc:ga6aa14b8b717b51afcfb65bd55143689d"><td class="mdescLeft"> </td><td class="mdescRight">allocate space for length char <a href="a00545.html#ga6aa14b8b717b51afcfb65bd55143689d">More...</a><br /></td></tr> <tr class="separator:ga6aa14b8b717b51afcfb65bd55143689d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gae092e53680d954bcf4f19334987d43c7"><td class="memItemLeft" align="right" valign="top">static char * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00545.html#gae092e53680d954bcf4f19334987d43c7">tds_dstr_buf</a> (<a class="el" href="a00545.html#gafddddf5bd7ad223cadee3d3bdc899954">DSTR</a> *s)</td></tr> <tr class="memdesc:gae092e53680d954bcf4f19334987d43c7"><td class="mdescLeft"> </td><td class="mdescRight">Returns a buffer to edit the string. <a href="a00545.html#gae092e53680d954bcf4f19334987d43c7">More...</a><br /></td></tr> <tr class="separator:gae092e53680d954bcf4f19334987d43c7"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gad96366d9fa93bfc283cef1299fbe97ab"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00545.html#gafddddf5bd7ad223cadee3d3bdc899954">DSTR</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00545.html#gad96366d9fa93bfc283cef1299fbe97ab">tds_dstr_copy</a> (<a class="el" href="a00545.html#gafddddf5bd7ad223cadee3d3bdc899954">DSTR</a> *s, const char *src)</td></tr> <tr class="memdesc:gad96366d9fa93bfc283cef1299fbe97ab"><td class="mdescLeft"> </td><td class="mdescRight">copy a string from another <a href="a00545.html#gad96366d9fa93bfc283cef1299fbe97ab">More...</a><br /></td></tr> <tr class="separator:gad96366d9fa93bfc283cef1299fbe97ab"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga656718f240d7403f986ae887d84a6ca1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00545.html#gafddddf5bd7ad223cadee3d3bdc899954">DSTR</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00545.html#ga656718f240d7403f986ae887d84a6ca1">tds_dstr_copyn</a> (<a class="el" href="a00545.html#gafddddf5bd7ad223cadee3d3bdc899954">DSTR</a> *s, const char *src, size_t length)</td></tr> <tr class="memdesc:ga656718f240d7403f986ae887d84a6ca1"><td class="mdescLeft"> </td><td class="mdescRight">Set string to a given buffer of characters. <a href="a00545.html#ga656718f240d7403f986ae887d84a6ca1">More...</a><br /></td></tr> <tr class="separator:ga656718f240d7403f986ae887d84a6ca1"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gac536f0e4d77d3cff5702719362ec1766"><td class="memItemLeft" align="right" valign="top"><a id="gac536f0e4d77d3cff5702719362ec1766" name="gac536f0e4d77d3cff5702719362ec1766"></a> static const char * </td><td class="memItemRight" valign="bottom"><b>tds_dstr_cstr</b> (const <a class="el" href="a00545.html#gafddddf5bd7ad223cadee3d3bdc899954">DSTR</a> *s)</td></tr> <tr class="memdesc:gac536f0e4d77d3cff5702719362ec1766"><td class="mdescLeft"> </td><td class="mdescRight">Returns a C version (NUL terminated string) of dstr. <br /></td></tr> <tr class="separator:gac536f0e4d77d3cff5702719362ec1766"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga4e6d9fa6f9b9551a5a3390e10a5322e6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00545.html#gafddddf5bd7ad223cadee3d3bdc899954">DSTR</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00545.html#ga4e6d9fa6f9b9551a5a3390e10a5322e6">tds_dstr_dup</a> (<a class="el" href="a00545.html#gafddddf5bd7ad223cadee3d3bdc899954">DSTR</a> *s, const <a class="el" href="a00545.html#gafddddf5bd7ad223cadee3d3bdc899954">DSTR</a> *src)</td></tr> <tr class="memdesc:ga4e6d9fa6f9b9551a5a3390e10a5322e6"><td class="mdescLeft"> </td><td class="mdescRight">Duplicate a string from another dynamic string. <a href="a00545.html#ga4e6d9fa6f9b9551a5a3390e10a5322e6">More...</a><br /></td></tr> <tr class="separator:ga4e6d9fa6f9b9551a5a3390e10a5322e6"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaccd1c1c8ff938813578123963212388c"><td class="memItemLeft" align="right" valign="top"><a id="gaccd1c1c8ff938813578123963212388c" name="gaccd1c1c8ff938813578123963212388c"></a> void </td><td class="memItemRight" valign="bottom"><b>tds_dstr_free</b> (<a class="el" href="a00545.html#gafddddf5bd7ad223cadee3d3bdc899954">DSTR</a> *s)</td></tr> <tr class="memdesc:gaccd1c1c8ff938813578123963212388c"><td class="mdescLeft"> </td><td class="mdescRight">free string <br /></td></tr> <tr class="separator:gaccd1c1c8ff938813578123963212388c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga6c0aba5c6da921898768e7f6cf177ca7"><td class="memItemLeft" align="right" valign="top"><a id="ga6c0aba5c6da921898768e7f6cf177ca7" name="ga6c0aba5c6da921898768e7f6cf177ca7"></a> static void </td><td class="memItemRight" valign="bottom"><b>tds_dstr_init</b> (<a class="el" href="a00545.html#gafddddf5bd7ad223cadee3d3bdc899954">DSTR</a> *s)</td></tr> <tr class="memdesc:ga6c0aba5c6da921898768e7f6cf177ca7"><td class="mdescLeft"> </td><td class="mdescRight">init a string with empty <br /></td></tr> <tr class="separator:ga6c0aba5c6da921898768e7f6cf177ca7"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga197c6af67f2e7469d06c2aa055917b1e"><td class="memItemLeft" align="right" valign="top"><a id="ga197c6af67f2e7469d06c2aa055917b1e" name="ga197c6af67f2e7469d06c2aa055917b1e"></a> static int </td><td class="memItemRight" valign="bottom"><b>tds_dstr_isempty</b> (const <a class="el" href="a00545.html#gafddddf5bd7ad223cadee3d3bdc899954">DSTR</a> *s)</td></tr> <tr class="memdesc:ga197c6af67f2e7469d06c2aa055917b1e"><td class="mdescLeft"> </td><td class="mdescRight">test if string is empty <br /></td></tr> <tr class="separator:ga197c6af67f2e7469d06c2aa055917b1e"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga396f139e4f886ac1b224a735138e73dd"><td class="memItemLeft" align="right" valign="top"><a id="ga396f139e4f886ac1b224a735138e73dd" name="ga396f139e4f886ac1b224a735138e73dd"></a> static size_t </td><td class="memItemRight" valign="bottom"><b>tds_dstr_len</b> (const <a class="el" href="a00545.html#gafddddf5bd7ad223cadee3d3bdc899954">DSTR</a> *s)</td></tr> <tr class="memdesc:ga396f139e4f886ac1b224a735138e73dd"><td class="mdescLeft"> </td><td class="mdescRight">Returns the length of the string in bytes. <br /></td></tr> <tr class="separator:ga396f139e4f886ac1b224a735138e73dd"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gab78cc59b110df2817b00f9bed74c6ff1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00545.html#gafddddf5bd7ad223cadee3d3bdc899954">DSTR</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00545.html#gab78cc59b110df2817b00f9bed74c6ff1">tds_dstr_set</a> (<a class="el" href="a00545.html#gafddddf5bd7ad223cadee3d3bdc899954">DSTR</a> *s, char *src)</td></tr> <tr class="memdesc:gab78cc59b110df2817b00f9bed74c6ff1"><td class="mdescLeft"> </td><td class="mdescRight">set a string from another buffer. <a href="a00545.html#gab78cc59b110df2817b00f9bed74c6ff1">More...</a><br /></td></tr> <tr class="separator:gab78cc59b110df2817b00f9bed74c6ff1"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga0cd7863ba7c2d2da4a193234472a3d14"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00545.html#gafddddf5bd7ad223cadee3d3bdc899954">DSTR</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00545.html#ga0cd7863ba7c2d2da4a193234472a3d14">tds_dstr_setlen</a> (<a class="el" href="a00545.html#gafddddf5bd7ad223cadee3d3bdc899954">DSTR</a> *s, size_t length)</td></tr> <tr class="memdesc:ga0cd7863ba7c2d2da4a193234472a3d14"><td class="mdescLeft"> </td><td class="mdescRight">limit length of string, MUST be <= current length <a href="a00545.html#ga0cd7863ba7c2d2da4a193234472a3d14">More...</a><br /></td></tr> <tr class="separator:ga0cd7863ba7c2d2da4a193234472a3d14"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga339ba30216e2bd5bd076aa9dcd26f3c4"><td class="memItemLeft" align="right" valign="top"><a id="ga339ba30216e2bd5bd076aa9dcd26f3c4" name="ga339ba30216e2bd5bd076aa9dcd26f3c4"></a> void </td><td class="memItemRight" valign="bottom"><b>tds_dstr_zero</b> (<a class="el" href="a00545.html#gafddddf5bd7ad223cadee3d3bdc899954">DSTR</a> *s)</td></tr> <tr class="memdesc:ga339ba30216e2bd5bd076aa9dcd26f3c4"><td class="mdescLeft"> </td><td class="mdescRight">clear all string filling with zeroes (mainly for security reason) <br /></td></tr> <tr class="separator:ga339ba30216e2bd5bd076aa9dcd26f3c4"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="var-members" name="var-members"></a> Variables</h2></td></tr> <tr class="memitem:ga676fd3c5c489584d09c89d66c7a0af2d"><td class="memItemLeft" align="right" valign="top"><a id="ga676fd3c5c489584d09c89d66c7a0af2d" name="ga676fd3c5c489584d09c89d66c7a0af2d"></a> const struct <a class="el" href="a01258.html">tds_dstr</a> </td><td class="memItemRight" valign="bottom"><b>tds_str_empty</b></td></tr> <tr class="memdesc:ga676fd3c5c489584d09c89d66c7a0af2d"><td class="mdescLeft"> </td><td class="mdescRight">Internal representation for an empty string. <br /></td></tr> <tr class="separator:ga676fd3c5c489584d09c89d66c7a0af2d"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <p >Handle dynamic string. </p> <p >In this string are always valid (you don't have NULL pointer, only empty strings) </p> <h2 class="groupheader">Macro Definition Documentation</h2> <a id="ga581a03a4de6c926c57b4a75a11214df4" name="ga581a03a4de6c926c57b4a75a11214df4"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga581a03a4de6c926c57b4a75a11214df4">◆ </a></span>DSTR_INITIALIZER</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define DSTR_INITIALIZER   ((struct <a class="el" href="a01258.html">tds_dstr</a>*) &<a class="el" href="a00545.html#ga676fd3c5c489584d09c89d66c7a0af2d">tds_str_empty</a>)</td> </tr> </table> </div><div class="memdoc"> <p>Initializer, used to initialize string like in the following example. </p> <div class="fragment"><div class="line"><a class="code hl_struct" href="a01258.html">DSTR</a> s = <a class="code hl_define" href="a00545.html#ga581a03a4de6c926c57b4a75a11214df4">DSTR_INITIALIZER</a>;</div> <div class="ttc" id="aa00545_html_ga581a03a4de6c926c57b4a75a11214df4"><div class="ttname"><a href="a00545.html#ga581a03a4de6c926c57b4a75a11214df4">DSTR_INITIALIZER</a></div><div class="ttdeci">#define DSTR_INITIALIZER</div><div class="ttdoc">Initializer, used to initialize string like in the following example.</div><div class="ttdef"><b>Definition:</b> string.h:49</div></div> <div class="ttc" id="aa01258_html"><div class="ttname"><a href="a01258.html">tds_dstr</a></div><div class="ttdoc">Structure to hold a string.</div><div class="ttdef"><b>Definition:</b> string.h:36</div></div> </div><!-- fragment --> </div> </div> <h2 class="groupheader">Typedef Documentation</h2> <a id="gafddddf5bd7ad223cadee3d3bdc899954" name="gafddddf5bd7ad223cadee3d3bdc899954"></a> <h2 class="memtitle"><span class="permalink"><a href="#gafddddf5bd7ad223cadee3d3bdc899954">◆ </a></span>DSTR</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef struct <a class="el" href="a01258.html">tds_dstr</a> * <a class="el" href="a00545.html#gafddddf5bd7ad223cadee3d3bdc899954">DSTR</a></td> </tr> </table> </div><div class="memdoc"> <p>Structure to hold a string. </p> <p >Use tds_dstr_* functions/macros, do not access members directly. There should be always a buffer. </p> </div> </div> <h2 class="groupheader">Function Documentation</h2> <a id="ga6aa14b8b717b51afcfb65bd55143689d" name="ga6aa14b8b717b51afcfb65bd55143689d"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga6aa14b8b717b51afcfb65bd55143689d">◆ </a></span>tds_dstr_alloc()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a00545.html#gafddddf5bd7ad223cadee3d3bdc899954">DSTR</a> * tds_dstr_alloc </td> <td>(</td> <td class="paramtype"><a class="el" href="a00545.html#gafddddf5bd7ad223cadee3d3bdc899954">DSTR</a> * </td> <td class="paramname"><em>s</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"><em>length</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>allocate space for length char </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">s</td><td>dynamic string </td></tr> <tr><td class="paramname">length</td><td>new length </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>string allocated or NULL on memory error </dd></dl> </div> </div> <a id="gae092e53680d954bcf4f19334987d43c7" name="gae092e53680d954bcf4f19334987d43c7"></a> <h2 class="memtitle"><span class="permalink"><a href="#gae092e53680d954bcf4f19334987d43c7">◆ </a></span>tds_dstr_buf()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">static char * tds_dstr_buf </td> <td>(</td> <td class="paramtype"><a class="el" href="a00545.html#gafddddf5bd7ad223cadee3d3bdc899954">DSTR</a> * </td> <td class="paramname"><em>s</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Returns a buffer to edit the string. </p> <p >Be careful to avoid buffer overflows and remember to set the correct length at the end of the editing if changed. </p> </div> </div> <a id="gad96366d9fa93bfc283cef1299fbe97ab" name="gad96366d9fa93bfc283cef1299fbe97ab"></a> <h2 class="memtitle"><span class="permalink"><a href="#gad96366d9fa93bfc283cef1299fbe97ab">◆ </a></span>tds_dstr_copy()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a00545.html#gafddddf5bd7ad223cadee3d3bdc899954">DSTR</a> * tds_dstr_copy </td> <td>(</td> <td class="paramtype"><a class="el" href="a00545.html#gafddddf5bd7ad223cadee3d3bdc899954">DSTR</a> * </td> <td class="paramname"><em>s</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>src</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>copy a string from another </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">s</td><td>dynamic string </td></tr> <tr><td class="paramname">src</td><td>source buffer </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>string copied or NULL on memory error </dd></dl> <div class="dynheader"> Here is the call graph for this function:</div> <div class="dyncontent"> <div class="center"><!-- SVG 1 --> </div> </div> <div class="dynheader"> Here is the caller graph for this function:</div> <div class="dyncontent"> <div class="center"><!-- SVG 2 --> </div> </div> </div> </div> <a id="ga656718f240d7403f986ae887d84a6ca1" name="ga656718f240d7403f986ae887d84a6ca1"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga656718f240d7403f986ae887d84a6ca1">◆ </a></span>tds_dstr_copyn()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a00545.html#gafddddf5bd7ad223cadee3d3bdc899954">DSTR</a> * tds_dstr_copyn </td> <td>(</td> <td class="paramtype"><a class="el" href="a00545.html#gafddddf5bd7ad223cadee3d3bdc899954">DSTR</a> * </td> <td class="paramname"><em>s</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>src</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"><em>length</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Set string to a given buffer of characters. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">s</td><td>dynamic string </td></tr> <tr><td class="paramname">src</td><td>source buffer </td></tr> <tr><td class="paramname">length</td><td>length of source buffer </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>string copied or NULL on memory error </dd></dl> <div class="dynheader"> Here is the caller graph for this function:</div> <div class="dyncontent"> <div class="center"><!-- SVG 3 --> </div> </div> </div> </div> <a id="ga4e6d9fa6f9b9551a5a3390e10a5322e6" name="ga4e6d9fa6f9b9551a5a3390e10a5322e6"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga4e6d9fa6f9b9551a5a3390e10a5322e6">◆ </a></span>tds_dstr_dup()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a00545.html#gafddddf5bd7ad223cadee3d3bdc899954">DSTR</a> * tds_dstr_dup </td> <td>(</td> <td class="paramtype"><a class="el" href="a00545.html#gafddddf5bd7ad223cadee3d3bdc899954">DSTR</a> * </td> <td class="paramname"><em>s</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="a00545.html#gafddddf5bd7ad223cadee3d3bdc899954">DSTR</a> * </td> <td class="paramname"><em>src</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Duplicate a string from another dynamic string. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">s</td><td>output string </td></tr> <tr><td class="paramname">src</td><td>source string to copy </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>string copied or NULL on memory error </dd></dl> <div class="dynheader"> Here is the call graph for this function:</div> <div class="dyncontent"> <div class="center"><!-- SVG 4 --> </div> </div> </div> </div> <a id="gab78cc59b110df2817b00f9bed74c6ff1" name="gab78cc59b110df2817b00f9bed74c6ff1"></a> <h2 class="memtitle"><span class="permalink"><a href="#gab78cc59b110df2817b00f9bed74c6ff1">◆ </a></span>tds_dstr_set()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a00545.html#gafddddf5bd7ad223cadee3d3bdc899954">DSTR</a> * tds_dstr_set </td> <td>(</td> <td class="paramtype"><a class="el" href="a00545.html#gafddddf5bd7ad223cadee3d3bdc899954">DSTR</a> * </td> <td class="paramname"><em>s</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char * </td> <td class="paramname"><em>src</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>set a string from another buffer. </p> <p >The string will use the supplied buffer (it not copy the string), so it should be a pointer returned by malloc. </p><dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">s</td><td>dynamic string </td></tr> <tr><td class="paramname">src</td><td>source buffer </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>string copied or NULL on memory error </dd></dl> <div class="dynheader"> Here is the call graph for this function:</div> <div class="dyncontent"> <div class="center"><!-- SVG 5 --> </div> </div> </div> </div> <a id="ga0cd7863ba7c2d2da4a193234472a3d14" name="ga0cd7863ba7c2d2da4a193234472a3d14"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga0cd7863ba7c2d2da4a193234472a3d14">◆ </a></span>tds_dstr_setlen()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a00545.html#gafddddf5bd7ad223cadee3d3bdc899954">DSTR</a> * tds_dstr_setlen </td> <td>(</td> <td class="paramtype"><a class="el" href="a00545.html#gafddddf5bd7ad223cadee3d3bdc899954">DSTR</a> * </td> <td class="paramname"><em>s</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"><em>length</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>limit length of string, MUST be <= current length </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">s</td><td>dynamic string </td></tr> <tr><td class="paramname">length</td><td>new length </td></tr> </table> </dd> </dl> </div> </div> </div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4 </small></address> </body> </html>