Current File : //usr/local/emps/share/doc/freetds/reference/a00566.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=9"/>
<meta name="generator" content="Doxygen 1.8.20"/>
<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 style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">FreeTDS API
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.20 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @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:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
$(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="a00567.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 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="a01283.html">tds_dstr</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Structure to hold a string. <a href="a01283.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 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="a00566.html#ga581a03a4de6c926c57b4a75a11214df4">DSTR_INITIALIZER</a>   ((struct <a class="el" href="a01283.html">tds_dstr</a>*) &<a class="el" href="a00566.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="a00566.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"></a>
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00566.html#ga42d67780bd4fd442915780d4815fc743">tds_dstr_empty</a>(s)    <a class="el" href="a00566.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 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="a01283.html">tds_dstr</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00566.html#gafddddf5bd7ad223cadee3d3bdc899954">DSTR</a></td></tr>
<tr class="memdesc:gafddddf5bd7ad223cadee3d3bdc899954"><td class="mdescLeft"> </td><td class="mdescRight">Structure to hold a string. <a href="a00566.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 name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga6aa14b8b717b51afcfb65bd55143689d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00566.html#gafddddf5bd7ad223cadee3d3bdc899954">DSTR</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00566.html#ga6aa14b8b717b51afcfb65bd55143689d">tds_dstr_alloc</a> (<a class="el" href="a00566.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="a00566.html#ga6aa14b8b717b51afcfb65bd55143689d">More...</a><br /></td></tr>
<tr class="separator:ga6aa14b8b717b51afcfb65bd55143689d"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga8fa35e3ff06ef0b7d0d642cf50282ab8"><td class="memItemLeft" align="right" valign="top">static char * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00566.html#ga8fa35e3ff06ef0b7d0d642cf50282ab8">tds_dstr_buf</a> (<a class="el" href="a00566.html#gafddddf5bd7ad223cadee3d3bdc899954">DSTR</a> *s)</td></tr>
<tr class="memdesc:ga8fa35e3ff06ef0b7d0d642cf50282ab8"><td class="mdescLeft"> </td><td class="mdescRight">Returns a buffer to edit the string. <a href="a00566.html#ga8fa35e3ff06ef0b7d0d642cf50282ab8">More...</a><br /></td></tr>
<tr class="separator:ga8fa35e3ff06ef0b7d0d642cf50282ab8"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gad96366d9fa93bfc283cef1299fbe97ab"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00566.html#gafddddf5bd7ad223cadee3d3bdc899954">DSTR</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00566.html#gad96366d9fa93bfc283cef1299fbe97ab">tds_dstr_copy</a> (<a class="el" href="a00566.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="a00566.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="a00566.html#gafddddf5bd7ad223cadee3d3bdc899954">DSTR</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00566.html#ga656718f240d7403f986ae887d84a6ca1">tds_dstr_copyn</a> (<a class="el" href="a00566.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="a00566.html#ga656718f240d7403f986ae887d84a6ca1">More...</a><br /></td></tr>
<tr class="separator:ga656718f240d7403f986ae887d84a6ca1"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga5f351a208e7aa13b4cc2d32cac8fc0fa"><td class="memItemLeft" align="right" valign="top"><a id="ga5f351a208e7aa13b4cc2d32cac8fc0fa"></a>
static const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00566.html#ga5f351a208e7aa13b4cc2d32cac8fc0fa">tds_dstr_cstr</a> (const <a class="el" href="a00566.html#gafddddf5bd7ad223cadee3d3bdc899954">DSTR</a> *s)</td></tr>
<tr class="memdesc:ga5f351a208e7aa13b4cc2d32cac8fc0fa"><td class="mdescLeft"> </td><td class="mdescRight">Returns a C version (NUL terminated string) of dstr. <br /></td></tr>
<tr class="separator:ga5f351a208e7aa13b4cc2d32cac8fc0fa"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga4e6d9fa6f9b9551a5a3390e10a5322e6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00566.html#gafddddf5bd7ad223cadee3d3bdc899954">DSTR</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00566.html#ga4e6d9fa6f9b9551a5a3390e10a5322e6">tds_dstr_dup</a> (<a class="el" href="a00566.html#gafddddf5bd7ad223cadee3d3bdc899954">DSTR</a> *s, const <a class="el" href="a00566.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="a00566.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"></a>
void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00566.html#gaccd1c1c8ff938813578123963212388c">tds_dstr_free</a> (<a class="el" href="a00566.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"></a>
static void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00566.html#ga6c0aba5c6da921898768e7f6cf177ca7">tds_dstr_init</a> (<a class="el" href="a00566.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"></a>
static int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00566.html#ga197c6af67f2e7469d06c2aa055917b1e">tds_dstr_isempty</a> (const <a class="el" href="a00566.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"></a>
static size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00566.html#ga396f139e4f886ac1b224a735138e73dd">tds_dstr_len</a> (const <a class="el" href="a00566.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="a00566.html#gafddddf5bd7ad223cadee3d3bdc899954">DSTR</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00566.html#gab78cc59b110df2817b00f9bed74c6ff1">tds_dstr_set</a> (<a class="el" href="a00566.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="a00566.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="a00566.html#gafddddf5bd7ad223cadee3d3bdc899954">DSTR</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00566.html#ga0cd7863ba7c2d2da4a193234472a3d14">tds_dstr_setlen</a> (<a class="el" href="a00566.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="a00566.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"></a>
void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00566.html#ga339ba30216e2bd5bd076aa9dcd26f3c4">tds_dstr_zero</a> (<a class="el" href="a00566.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 name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:ga676fd3c5c489584d09c89d66c7a0af2d"><td class="memItemLeft" align="right" valign="top"><a id="ga676fd3c5c489584d09c89d66c7a0af2d"></a>
const struct <a class="el" href="a01283.html">tds_dstr</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00566.html#ga676fd3c5c489584d09c89d66c7a0af2d">tds_str_empty</a></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"></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="a01283.html">tds_dstr</a>*) &<a class="el" href="a00566.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" href="a01283.html">DSTR</a> s = <a class="code" href="a00566.html#ga581a03a4de6c926c57b4a75a11214df4">DSTR_INITIALIZER</a>;</div>
</div><!-- fragment -->
</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a id="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="a01283.html">tds_dstr</a> * <a class="el" href="a00566.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"></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="a00566.html#gafddddf5bd7ad223cadee3d3bdc899954">DSTR</a> * tds_dstr_alloc </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00566.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="ga8fa35e3ff06ef0b7d0d642cf50282ab8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8fa35e3ff06ef0b7d0d642cf50282ab8">◆ </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="a00566.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"></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="a00566.html#gafddddf5bd7ad223cadee3d3bdc899954">DSTR</a> * tds_dstr_copy </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00566.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"></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="a00566.html#gafddddf5bd7ad223cadee3d3bdc899954">DSTR</a> * tds_dstr_copyn </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00566.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"></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="a00566.html#gafddddf5bd7ad223cadee3d3bdc899954">DSTR</a> * tds_dstr_dup </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00566.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="a00566.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"></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="a00566.html#gafddddf5bd7ad223cadee3d3bdc899954">DSTR</a> * tds_dstr_set </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00566.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"></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="a00566.html#gafddddf5bd7ad223cadee3d3bdc899954">DSTR</a> * tds_dstr_setlen </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a00566.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 -->
<div class="ttc" id="aa01283_html"><div class="ttname"><a href="a01283.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 class="ttc" id="aa00566_html_ga581a03a4de6c926c57b4a75a11214df4"><div class="ttname"><a href="a00566.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>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by <a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
</small></address>
</body>
</html>