Current File : //usr/share/doc/dbus/api/group__DBusString.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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"/>
<title>D-Bus: DBusString class</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />



</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">D-Bus
   &#160;<span id="projectnumber">1.8.20</span>
   </div>
   
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.7.6.1 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#define-members">Defines</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">DBusString class</div>  </div>
<div class="ingroups"><a class="el" href="group__DBusInternals.html">D-Bus secret internal implementation details</a></div></div><!--header-->
<div class="contents">

<p><a class="el" href="structDBusString.html">DBusString</a> data structure for safer string handling.  
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="define-members"></a>
Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4661e2b10dd3da080564b1191acb7619"></a><!-- doxytag: member="DBusString::ASSIGN_2_OCTETS" ref="ga4661e2b10dd3da080564b1191acb7619" args="(p, octets)" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#ga4661e2b10dd3da080564b1191acb7619">ASSIGN_2_OCTETS</a>(p, octets)&#160;&#160;&#160;*((<a class="el" href="group__DBusTypes.html#ga8132d71032da957f08ce4e0ec87f2063">dbus_uint16_t</a>*)(p)) = *((<a class="el" href="group__DBusTypes.html#ga8132d71032da957f08ce4e0ec87f2063">dbus_uint16_t</a>*)(octets));</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">assign 2 bytes from one string to another <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae777c8fb39aef558604506d645af6420"></a><!-- doxytag: member="DBusString::ASSIGN_4_OCTETS" ref="gae777c8fb39aef558604506d645af6420" args="(p, octets)" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#gae777c8fb39aef558604506d645af6420">ASSIGN_4_OCTETS</a>(p, octets)&#160;&#160;&#160;*((<a class="el" href="group__DBusTypes.html#gaf513803b030613a669cc7ef199f90a8b">dbus_uint32_t</a>*)(p)) = *((<a class="el" href="group__DBusTypes.html#gaf513803b030613a669cc7ef199f90a8b">dbus_uint32_t</a>*)(octets));</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">assign 4 bytes from one string to another <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad13077c6ef8f8b764611ef5ad23b4b8b"></a><!-- doxytag: member="DBusString::ASSIGN_8_OCTETS" ref="gad13077c6ef8f8b764611ef5ad23b4b8b" args="(p, octets)" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#gad13077c6ef8f8b764611ef5ad23b4b8b">ASSIGN_8_OCTETS</a>(p, octets)&#160;&#160;&#160;*((<a class="el" href="group__DBusTypes.html#ga0a7c275002dbafa34536a76db079a950">dbus_uint64_t</a>*)(p)) = *((<a class="el" href="group__DBusTypes.html#ga0a7c275002dbafa34536a76db079a950">dbus_uint64_t</a>*)(octets));</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">assign 8 bytes from one string to another <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#gaacbbd102b66aa34dd13f792e7f08c205">DBUS_STRING_COPY_PREAMBLE</a>(source, start, dest, insert_at)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks assertions for two strings we're copying a segment between, and declares real_source/real_dest variables.  <a href="#gaacbbd102b66aa34dd13f792e7f08c205"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#ga30614080229a4fb63460ffdc8ab484fb">UTF8_COMPUTE</a>(Char, Mask, Len)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">computes length and mask of a unicode character  <a href="#ga30614080229a4fb63460ffdc8ab484fb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#ga9691ff5386e218870299de1d9e77ceea">UTF8_LENGTH</a>(Char)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">computes length of a unicode character in UTF-8  <a href="#ga9691ff5386e218870299de1d9e77ceea"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#gab5b4b316a69f78611a14e6b1fd091992">UTF8_GET</a>(Result, Chars, Count, Mask, Len)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets a UTF-8 value.  <a href="#gab5b4b316a69f78611a14e6b1fd091992"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#ga25f0a93fc023fa0eec07ac1e32011e89">UNICODE_VALID</a>(Char)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Check whether a Unicode (5.2) char is in a valid range.  <a href="#ga25f0a93fc023fa0eec07ac1e32011e89"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#ga4701fa3fabccad3ba64b7bf17c4ae14c">_dbus_string_ends_with_c_str</a> (const <a class="el" href="structDBusString.html">DBusString</a> *a, const char *c_str)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether a string ends with the given suffix.  <a href="#ga4701fa3fabccad3ba64b7bf17c4ae14c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#ga89d458f4f530ee82dbb45f9dcbc9c637">_dbus_string_find_byte_backward</a> (const <a class="el" href="structDBusString.html">DBusString</a> *str, int start, unsigned char byte, int *found)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Find the given byte scanning backward from the given start.  <a href="#ga89d458f4f530ee82dbb45f9dcbc9c637"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#ga569b784beea1b4fa98f05d27e6dd0e72">_dbus_string_init_preallocated</a> (<a class="el" href="structDBusString.html">DBusString</a> *str, int allocate_size)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a string that can be up to the given allocation size before it has to realloc.  <a href="#ga569b784beea1b4fa98f05d27e6dd0e72"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#ga348252317f7bb8ac43529972945830ae">_dbus_string_init</a> (<a class="el" href="structDBusString.html">DBusString</a> *str)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a string.  <a href="#ga348252317f7bb8ac43529972945830ae"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#ga374640ddfa2f0b27a8356e2379ba8043">_dbus_string_init_const</a> (<a class="el" href="structDBusString.html">DBusString</a> *str, const char *value)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a constant string.  <a href="#ga374640ddfa2f0b27a8356e2379ba8043"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#ga6792a5c1725faa9d635d95f7a3b5bfae">_dbus_string_init_const_len</a> (<a class="el" href="structDBusString.html">DBusString</a> *str, const char *value, int len)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a constant string with a length.  <a href="#ga6792a5c1725faa9d635d95f7a3b5bfae"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#ga781ca91acda49a834dce7d0ed0eef212">_dbus_string_free</a> (<a class="el" href="structDBusString.html">DBusString</a> *str)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Frees a string created by <a class="el" href="group__DBusString.html#ga348252317f7bb8ac43529972945830ae" title="Initializes a string.">_dbus_string_init()</a>.  <a href="#ga781ca91acda49a834dce7d0ed0eef212"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#gac49ec5782ca606029c096124b5e43ffc">_dbus_string_compact</a> (<a class="el" href="structDBusString.html">DBusString</a> *str, int max_waste)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Compacts the string to avoid wasted memory.  <a href="#gac49ec5782ca606029c096124b5e43ffc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#gaa9b5aa08d313048df72aa12bb4dc0cda">_dbus_string_get_data</a> (<a class="el" href="structDBusString.html">DBusString</a> *str)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the raw character buffer from the string.  <a href="#gaa9b5aa08d313048df72aa12bb4dc0cda"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#ga33e20241ae7d784624f97d89b1a0539e">_dbus_string_get_const_data</a> (const <a class="el" href="structDBusString.html">DBusString</a> *str)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the raw character buffer from a const string.  <a href="#ga33e20241ae7d784624f97d89b1a0539e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#ga7a73fb373398606e6e1d0a86c4587a3c">_dbus_string_get_data_len</a> (<a class="el" href="structDBusString.html">DBusString</a> *str, int start, int len)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets a sub-portion of the raw character buffer from the string.  <a href="#ga7a73fb373398606e6e1d0a86c4587a3c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#ga8c202a65e938f9bdb859fc6705a4f1bb">_dbus_string_get_const_data_len</a> (const <a class="el" href="structDBusString.html">DBusString</a> *str, int start, int len)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">const version of <a class="el" href="group__DBusString.html#ga7a73fb373398606e6e1d0a86c4587a3c" title="Gets a sub-portion of the raw character buffer from the string.">_dbus_string_get_data_len()</a>.  <a href="#ga8c202a65e938f9bdb859fc6705a4f1bb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#gab6c823e9406208363fcb5e96d580e738">_dbus_string_set_byte</a> (<a class="el" href="structDBusString.html">DBusString</a> *str, int i, unsigned char byte)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the value of the byte at the given position.  <a href="#gab6c823e9406208363fcb5e96d580e738"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#gac1cb7b207eac3c6527a5d42fbc5449b1">_dbus_string_get_byte</a> (const <a class="el" href="structDBusString.html">DBusString</a> *str, int start)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the byte at the given position.  <a href="#gac1cb7b207eac3c6527a5d42fbc5449b1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#gaa0964d662ad17c58eb044c1b153017a6">_dbus_string_insert_bytes</a> (<a class="el" href="structDBusString.html">DBusString</a> *str, int i, int n_bytes, unsigned char byte)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Inserts a number of bytes of a given value at the given position.  <a href="#gaa0964d662ad17c58eb044c1b153017a6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#gab0770800dce6df97e5d246105a44e7b4">_dbus_string_insert_byte</a> (<a class="el" href="structDBusString.html">DBusString</a> *str, int i, unsigned char byte)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Inserts a single byte at the given position.  <a href="#gab0770800dce6df97e5d246105a44e7b4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#ga556cc30c3ab032dbc63e217119f0d1f5">_dbus_string_steal_data</a> (<a class="el" href="structDBusString.html">DBusString</a> *str, char **data_return)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Like <a class="el" href="group__DBusString.html#gaa9b5aa08d313048df72aa12bb4dc0cda" title="Gets the raw character buffer from the string.">_dbus_string_get_data()</a>, but removes the gotten data from the original string.  <a href="#ga556cc30c3ab032dbc63e217119f0d1f5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#ga7e509d4f959d19d96f83250e62287b06">_dbus_string_copy_data</a> (const <a class="el" href="structDBusString.html">DBusString</a> *str, char **data_return)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Copies the data from the string into a char*.  <a href="#ga7e509d4f959d19d96f83250e62287b06"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#gaf97b18e419678dbf967d9b9ad1112ca6">_dbus_string_copy_to_buffer</a> (const <a class="el" href="structDBusString.html">DBusString</a> *str, char *buffer, int avail_len)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Copies the contents of a <a class="el" href="structDBusString.html">DBusString</a> into a different buffer.  <a href="#gaf97b18e419678dbf967d9b9ad1112ca6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#gac42891d26084a4da0f63038d93b63828">_dbus_string_copy_to_buffer_with_nul</a> (const <a class="el" href="structDBusString.html">DBusString</a> *str, char *buffer, int avail_len)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Copies the contents of a <a class="el" href="structDBusString.html">DBusString</a> into a different buffer.  <a href="#gac42891d26084a4da0f63038d93b63828"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#gaa5136e6fd2c5188f4b88de7863369c6d">_dbus_string_get_length</a> (const <a class="el" href="structDBusString.html">DBusString</a> *str)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the length of a string (not including nul termination).  <a href="#gaa5136e6fd2c5188f4b88de7863369c6d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#ga8f13997d90ceed2f437706e6b7804d9b">_dbus_string_lengthen</a> (<a class="el" href="structDBusString.html">DBusString</a> *str, int additional_length)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Makes a string longer by the given number of bytes.  <a href="#ga8f13997d90ceed2f437706e6b7804d9b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#ga7af1cbfa905f26d972ab644d890548b8">_dbus_string_shorten</a> (<a class="el" href="structDBusString.html">DBusString</a> *str, int length_to_remove)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Makes a string shorter by the given number of bytes.  <a href="#ga7af1cbfa905f26d972ab644d890548b8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#ga08c423b93c28dd746dcb93e0461ab95c">_dbus_string_set_length</a> (<a class="el" href="structDBusString.html">DBusString</a> *str, int length)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the length of a string.  <a href="#ga08c423b93c28dd746dcb93e0461ab95c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#gaeadfb67c4e796131610499c91d0d7813">_dbus_string_align_length</a> (<a class="el" href="structDBusString.html">DBusString</a> *str, int alignment)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Align the length of a string to a specific alignment (typically 4 or 8) by appending nul bytes to the string.  <a href="#gaeadfb67c4e796131610499c91d0d7813"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#ga4764e75c464356408fc1a12df93177c1">_dbus_string_alloc_space</a> (<a class="el" href="structDBusString.html">DBusString</a> *str, int extra_bytes)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Preallocate extra_bytes such that a future lengthening of the string by extra_bytes is guaranteed to succeed without an out of memory error.  <a href="#ga4764e75c464356408fc1a12df93177c1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#ga100c5ce0696822c5a4cfbdfaba674d96">_dbus_string_append</a> (<a class="el" href="structDBusString.html">DBusString</a> *str, const char *buffer)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Appends a nul-terminated C-style string to a <a class="el" href="structDBusString.html">DBusString</a>.  <a href="#ga100c5ce0696822c5a4cfbdfaba674d96"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#gae7770fdabda32f3e8d9dd50b083dbf1e">_dbus_string_insert_2_aligned</a> (<a class="el" href="structDBusString.html">DBusString</a> *str, int insert_at, const unsigned char octets[2])</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Inserts 2 bytes aligned on a 2 byte boundary with any alignment padding initialized to 0.  <a href="#gae7770fdabda32f3e8d9dd50b083dbf1e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#gadd296cf1e6af18cb5bec438e9d353b4e">_dbus_string_insert_4_aligned</a> (<a class="el" href="structDBusString.html">DBusString</a> *str, int insert_at, const unsigned char octets[4])</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Inserts 4 bytes aligned on a 4 byte boundary with any alignment padding initialized to 0.  <a href="#gadd296cf1e6af18cb5bec438e9d353b4e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#ga108d7d64fb88fffca31e33181cefa232">_dbus_string_insert_8_aligned</a> (<a class="el" href="structDBusString.html">DBusString</a> *str, int insert_at, const unsigned char octets[8])</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Inserts 8 bytes aligned on an 8 byte boundary with any alignment padding initialized to 0.  <a href="#ga108d7d64fb88fffca31e33181cefa232"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#ga267217e412c74c74dc3a3e412da5c600">_dbus_string_insert_alignment</a> (<a class="el" href="structDBusString.html">DBusString</a> *str, int *insert_at, int alignment)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Inserts padding at *insert_at such to align it to the given boundary.  <a href="#ga267217e412c74c74dc3a3e412da5c600"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#ga8d794f292831d1a7edeb971b13a2c641">_dbus_string_append_printf_valist</a> (<a class="el" href="structDBusString.html">DBusString</a> *str, const char *format, va_list args)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Appends a printf-style formatted string to the <a class="el" href="structDBusString.html">DBusString</a>.  <a href="#ga8d794f292831d1a7edeb971b13a2c641"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#gab0078cf7e0e5bd784ec6d6e0cc3923a2">_dbus_string_append_printf</a> (<a class="el" href="structDBusString.html">DBusString</a> *str, const char *format,...)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Appends a printf-style formatted string to the <a class="el" href="structDBusString.html">DBusString</a>.  <a href="#gab0078cf7e0e5bd784ec6d6e0cc3923a2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#ga724656b7091b910965bd1af42d0b7bab">_dbus_string_append_len</a> (<a class="el" href="structDBusString.html">DBusString</a> *str, const char *buffer, int len)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Appends block of bytes with the given length to a <a class="el" href="structDBusString.html">DBusString</a>.  <a href="#ga724656b7091b910965bd1af42d0b7bab"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#gaa6ecf36e70263659f921a4ef0335db12">_dbus_string_append_byte</a> (<a class="el" href="structDBusString.html">DBusString</a> *str, unsigned char byte)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Appends a single byte to the string, returning <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if not enough memory.  <a href="#gaa6ecf36e70263659f921a4ef0335db12"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#ga7e0e164ad5bb094e5ccad9edc7ae4235">_dbus_string_delete</a> (<a class="el" href="structDBusString.html">DBusString</a> *str, int start, int len)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Deletes a segment of a <a class="el" href="structDBusString.html">DBusString</a> with length len starting at start.  <a href="#ga7e0e164ad5bb094e5ccad9edc7ae4235"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#gad379fce8d4ef4f7e28f81f50b46ee4c9">_dbus_string_move</a> (<a class="el" href="structDBusString.html">DBusString</a> *source, int start, <a class="el" href="structDBusString.html">DBusString</a> *dest, int insert_at)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Moves the end of one string into another string.  <a href="#gad379fce8d4ef4f7e28f81f50b46ee4c9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#ga3c10f0d1bcaa3b450025b9c6a8b901d7">_dbus_string_copy</a> (const <a class="el" href="structDBusString.html">DBusString</a> *source, int start, <a class="el" href="structDBusString.html">DBusString</a> *dest, int insert_at)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Like <a class="el" href="group__DBusString.html#gad379fce8d4ef4f7e28f81f50b46ee4c9" title="Moves the end of one string into another string.">_dbus_string_move()</a>, but does not delete the section of the source string that's copied to the dest string.  <a href="#ga3c10f0d1bcaa3b450025b9c6a8b901d7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#gab8e2dcb2dc71bf225da0827c6086a727">_dbus_string_move_len</a> (<a class="el" href="structDBusString.html">DBusString</a> *source, int start, int len, <a class="el" href="structDBusString.html">DBusString</a> *dest, int insert_at)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Like <a class="el" href="group__DBusString.html#gad379fce8d4ef4f7e28f81f50b46ee4c9" title="Moves the end of one string into another string.">_dbus_string_move()</a>, but can move a segment from the middle of the source string.  <a href="#gab8e2dcb2dc71bf225da0827c6086a727"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#gaf5f13bc7ac7a623516930d26ae2589bf">_dbus_string_copy_len</a> (const <a class="el" href="structDBusString.html">DBusString</a> *source, int start, int len, <a class="el" href="structDBusString.html">DBusString</a> *dest, int insert_at)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Like <a class="el" href="group__DBusString.html#ga3c10f0d1bcaa3b450025b9c6a8b901d7" title="Like _dbus_string_move(), but does not delete the section of the source string that&#39;s copied to the d...">_dbus_string_copy()</a>, but can copy a segment from the middle of the source string.  <a href="#gaf5f13bc7ac7a623516930d26ae2589bf"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#gafe7921a92467cdefaa0a7829d6cf260b">_dbus_string_replace_len</a> (const <a class="el" href="structDBusString.html">DBusString</a> *source, int start, int len, <a class="el" href="structDBusString.html">DBusString</a> *dest, int replace_at, int replace_len)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Replaces a segment of dest string with a segment of source string.  <a href="#gafe7921a92467cdefaa0a7829d6cf260b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#ga5d293b49b6afbbd74069d0823acce6b5">_dbus_string_split_on_byte</a> (<a class="el" href="structDBusString.html">DBusString</a> *source, unsigned char byte, <a class="el" href="structDBusString.html">DBusString</a> *tail)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Looks for the first occurance of a byte, deletes that byte, and moves everything after the byte to the beginning of a separate string.  <a href="#ga5d293b49b6afbbd74069d0823acce6b5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#ga5fe47873b2838339107c3e1f03d1a703">_dbus_string_find</a> (const <a class="el" href="structDBusString.html">DBusString</a> *str, int start, const char *substr, int *found)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Finds the given substring in the string, returning <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> and filling in the byte index where the substring was found, if it was found.  <a href="#ga5fe47873b2838339107c3e1f03d1a703"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#ga3c98d1913e3ba4deb8eda60b2e262fdb">_dbus_string_find_eol</a> (const <a class="el" href="structDBusString.html">DBusString</a> *str, int start, int *found, int *found_len)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Finds end of line ("\r\n" or "\n") in the string, returning <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> and filling in the byte index where the eol string was found, if it was found.  <a href="#ga3c98d1913e3ba4deb8eda60b2e262fdb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#gaf2281731c3119f946726680242a5ae02">_dbus_string_find_to</a> (const <a class="el" href="structDBusString.html">DBusString</a> *str, int start, int end, const char *substr, int *found)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Finds the given substring in the string, up to a certain position, returning <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> and filling in the byte index where the substring was found, if it was found.  <a href="#gaf2281731c3119f946726680242a5ae02"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#ga677ddb4246c7e7f67ed3145dc3c1c96b">_dbus_string_find_blank</a> (const <a class="el" href="structDBusString.html">DBusString</a> *str, int start, int *found)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Finds a blank (space or tab) in the string.  <a href="#ga677ddb4246c7e7f67ed3145dc3c1c96b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#ga5698b163289be0066cf10c0f1caf877a">_dbus_string_skip_blank</a> (const <a class="el" href="structDBusString.html">DBusString</a> *str, int start, int *end)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Skips blanks from start, storing the first non-blank in *end (blank is space or tab).  <a href="#ga5698b163289be0066cf10c0f1caf877a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#ga8600259d71a4adc14ab4558a9d2a0f7d">_dbus_string_skip_white</a> (const <a class="el" href="structDBusString.html">DBusString</a> *str, int start, int *end)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Skips whitespace from start, storing the first non-whitespace in *end.  <a href="#ga8600259d71a4adc14ab4558a9d2a0f7d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#ga578bb88acec5520825f2ba792cad7938">_dbus_string_skip_white_reverse</a> (const <a class="el" href="structDBusString.html">DBusString</a> *str, int end, int *start)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Skips whitespace from end, storing the start index of the trailing whitespace in *start.  <a href="#ga578bb88acec5520825f2ba792cad7938"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#ga8b7fc22e6738173e1b2cef4b91b9c3c1">_dbus_string_pop_line</a> (<a class="el" href="structDBusString.html">DBusString</a> *source, <a class="el" href="structDBusString.html">DBusString</a> *dest)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Assigns a newline-terminated or \r\n-terminated line from the front of the string to the given dest string.  <a href="#ga8b7fc22e6738173e1b2cef4b91b9c3c1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#gaa92c6ab2c5e24cbefef0a3f3fc76f98b">_dbus_string_chop_white</a> (<a class="el" href="structDBusString.html">DBusString</a> *str)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Deletes leading and trailing whitespace.  <a href="#gaa92c6ab2c5e24cbefef0a3f3fc76f98b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#gad79c34af55b58f0e8b81ecf11b8694bb">_dbus_string_equal</a> (const <a class="el" href="structDBusString.html">DBusString</a> *a, const <a class="el" href="structDBusString.html">DBusString</a> *b)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests two <a class="el" href="structDBusString.html">DBusString</a> for equality.  <a href="#gad79c34af55b58f0e8b81ecf11b8694bb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#gacf39727ae9eb411b0c4cb3b891588fb0">_dbus_string_equal_len</a> (const <a class="el" href="structDBusString.html">DBusString</a> *a, const <a class="el" href="structDBusString.html">DBusString</a> *b, int len)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests two <a class="el" href="structDBusString.html">DBusString</a> for equality up to the given length.  <a href="#gacf39727ae9eb411b0c4cb3b891588fb0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#ga2095c2a797ae245521a7588b32279110">_dbus_string_equal_substring</a> (const <a class="el" href="structDBusString.html">DBusString</a> *a, int a_start, int a_len, const <a class="el" href="structDBusString.html">DBusString</a> *b, int b_start)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests two sub-parts of two <a class="el" href="structDBusString.html">DBusString</a> for equality.  <a href="#ga2095c2a797ae245521a7588b32279110"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#ga84f39f1bf398697920637d2982248c72">_dbus_string_equal_c_str</a> (const <a class="el" href="structDBusString.html">DBusString</a> *a, const char *c_str)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks whether a string is equal to a C string.  <a href="#ga84f39f1bf398697920637d2982248c72"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#ga4763d06a65cca36986bff030b404c90d">_dbus_string_starts_with_c_str</a> (const <a class="el" href="structDBusString.html">DBusString</a> *a, const char *c_str)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks whether a string starts with the given C string.  <a href="#ga4763d06a65cca36986bff030b404c90d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#gae99a331d4e5b7758652b78dc9c89de84">_dbus_string_append_byte_as_hex</a> (<a class="el" href="structDBusString.html">DBusString</a> *str, unsigned char byte)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Appends a two-character hex digit to a string, where the hex digit has the value of the given byte.  <a href="#gae99a331d4e5b7758652b78dc9c89de84"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#gaabb4873f436e015944a33cd1e3815cc9">_dbus_string_hex_encode</a> (const <a class="el" href="structDBusString.html">DBusString</a> *source, int start, <a class="el" href="structDBusString.html">DBusString</a> *dest, int insert_at)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Encodes a string in hex, the way MD5 and SHA-1 are usually encoded.  <a href="#gaabb4873f436e015944a33cd1e3815cc9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#ga0a8c20d855f9ddc05718b9e2ac0e33d8">_dbus_string_hex_decode</a> (const <a class="el" href="structDBusString.html">DBusString</a> *source, int start, int *end_return, <a class="el" href="structDBusString.html">DBusString</a> *dest, int insert_at)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Decodes a string from hex encoding.  <a href="#ga0a8c20d855f9ddc05718b9e2ac0e33d8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#gaa4324cd667e21beb31a5481cb0c12b6d">_dbus_string_validate_ascii</a> (const <a class="el" href="structDBusString.html">DBusString</a> *str, int start, int len)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks that the given range of the string is valid ASCII with no nul bytes.  <a href="#gaa4324cd667e21beb31a5481cb0c12b6d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#ga698f4b0299e6c6a707fd7e9c14915f00">_dbus_string_tolower_ascii</a> (const <a class="el" href="structDBusString.html">DBusString</a> *str, int start, int len)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts the given range of the string to lower case.  <a href="#ga698f4b0299e6c6a707fd7e9c14915f00"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#ga9c959f7d18ff21c5ae51846c6ba065f1">_dbus_string_toupper_ascii</a> (const <a class="el" href="structDBusString.html">DBusString</a> *str, int start, int len)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts the given range of the string to upper case.  <a href="#ga9c959f7d18ff21c5ae51846c6ba065f1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#ga65f0f04b7c9371406fc87343f691e8da">_dbus_string_validate_utf8</a> (const <a class="el" href="structDBusString.html">DBusString</a> *str, int start, int len)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks that the given range of the string is valid UTF-8.  <a href="#ga65f0f04b7c9371406fc87343f691e8da"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#ga199d0fc00ee3cd0300a1b3870d7986a3">_dbus_string_validate_nul</a> (const <a class="el" href="structDBusString.html">DBusString</a> *str, int start, int len)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks that the given range of the string is all nul bytes.  <a href="#ga199d0fc00ee3cd0300a1b3870d7986a3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#ga9385fd0de31b3f5f4f8baa96bad3fac6">_dbus_string_zero</a> (<a class="el" href="structDBusString.html">DBusString</a> *str)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Clears all allocated bytes in the string to zero.  <a href="#ga9385fd0de31b3f5f4f8baa96bad3fac6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#gafa79c1113fa75419dcc5ee4290e06608">_dbus_string_get_dirname</a> (const <a class="el" href="structDBusString.html">DBusString</a> *filename, <a class="el" href="structDBusString.html">DBusString</a> *dirname)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the directory name from a complete filename.  <a href="#gafa79c1113fa75419dcc5ee4290e06608"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#ga849177164bc5e73435104f57c631ed7e">_dbus_unix_user_is_process_owner</a> (<a class="el" href="group__DBusSysdeps.html#ga186e987b700f9ddc6cea8aa0db82b151">dbus_uid_t</a> uid)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks to see if the UNIX user ID matches the UID of the process.  <a href="#ga849177164bc5e73435104f57c631ed7e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#ga912d34a7e40b3a57864972e6d6ab65ba">_dbus_windows_user_is_process_owner</a> (const char *windows_sid)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks to see if the Windows user SID matches the owner of the process.  <a href="#ga912d34a7e40b3a57864972e6d6ab65ba"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#gaed2e025454364fbe31cd9b6538c9a936">_dbus_unix_user_is_at_console</a> (<a class="el" href="group__DBusSysdeps.html#ga186e987b700f9ddc6cea8aa0db82b151">dbus_uid_t</a> uid, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks to see if the UNIX user ID is at the console.  <a href="#gaed2e025454364fbe31cd9b6538c9a936"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#ga96da816095ec7fec07136a6019745bcb">_dbus_parse_unix_group_from_config</a> (const <a class="el" href="structDBusString.html">DBusString</a> *groupname, <a class="el" href="group__DBusSysdeps.html#ga2f5c2e418b81ec2a86594f56ec6d7627">dbus_gid_t</a> *gid_p)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Parse a UNIX group from the bus config file.  <a href="#ga96da816095ec7fec07136a6019745bcb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#ga437470fc327b0169fc14a0b66a6e5278">_dbus_parse_unix_user_from_config</a> (const <a class="el" href="structDBusString.html">DBusString</a> *username, <a class="el" href="group__DBusSysdeps.html#ga186e987b700f9ddc6cea8aa0db82b151">dbus_uid_t</a> *uid_p)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Parse a UNIX user from the bus config file.  <a href="#ga437470fc327b0169fc14a0b66a6e5278"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#ga79647ec21c7edccd1510808ea0ca3779">_dbus_unix_groups_from_uid</a> (<a class="el" href="group__DBusSysdeps.html#ga186e987b700f9ddc6cea8aa0db82b151">dbus_uid_t</a> uid, <a class="el" href="group__DBusSysdeps.html#ga2f5c2e418b81ec2a86594f56ec6d7627">dbus_gid_t</a> **group_ids, int *n_group_ids)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets all groups corresponding to the given UNIX user ID.  <a href="#ga79647ec21c7edccd1510808ea0ca3779"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#ga41141ca36c361f92b6029530ff83fa66">_dbus_string_append_int</a> (<a class="el" href="structDBusString.html">DBusString</a> *str, long value)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Appends an integer to a <a class="el" href="structDBusString.html">DBusString</a>.  <a href="#ga41141ca36c361f92b6029530ff83fa66"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#gaa63064881001085159c78204f70acde8">_dbus_string_append_uint</a> (<a class="el" href="structDBusString.html">DBusString</a> *str, unsigned long value)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Appends an unsigned integer to a <a class="el" href="structDBusString.html">DBusString</a>.  <a href="#gaa63064881001085159c78204f70acde8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#ga93e22894a5e2e0d65c179c7d36a8b1c8">_dbus_string_parse_int</a> (const <a class="el" href="structDBusString.html">DBusString</a> *str, int start, long *value_return, int *end_return)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Parses an integer contained in a <a class="el" href="structDBusString.html">DBusString</a>.  <a href="#ga93e22894a5e2e0d65c179c7d36a8b1c8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#ga84cc8d08bb48b7915d673f7cc7886f97">_dbus_string_parse_uint</a> (const <a class="el" href="structDBusString.html">DBusString</a> *str, int start, unsigned long *value_return, int *end_return)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Parses an unsigned integer contained in a <a class="el" href="structDBusString.html">DBusString</a>.  <a href="#ga84cc8d08bb48b7915d673f7cc7886f97"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<p><a class="el" href="structDBusString.html">DBusString</a> data structure for safer string handling. </p>
<p>Types and functions related to <a class="el" href="structDBusString.html">DBusString</a>. <a class="el" href="structDBusString.html">DBusString</a> is intended to be a string class that makes it hard to mess up security issues (and just in general harder to write buggy code). It should be used (or extended and then used) rather than the libc stuff in string.h. The string class is a bit inconvenient at spots because it handles out-of-memory failures and tries to be extra-robust.</p>
<p>A <a class="el" href="structDBusString.html">DBusString</a> has a maximum length set at initialization time; this can be used to ensure that a buffer doesn't get too big. The <a class="el" href="group__DBusString.html#ga8f13997d90ceed2f437706e6b7804d9b" title="Makes a string longer by the given number of bytes.">_dbus_string_lengthen()</a> method checks for overflow, and for max length being exceeded.</p>
<p>Try to avoid conversion to a plain C string, i.e. add methods on the string object instead, only convert to C string when passing things out to the public API. In particular, no sprintf, strcpy, strcat, any of that should be used. The GString feature of accepting negative numbers for "length of string" is also absent, because it could keep us from detecting bogus huge lengths. i.e. if we passed in some bogus huge length it would be taken to mean "current length of string" instead of "broken crack"</p>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000048">Todo:</a></b></dt><dd><a class="el" href="structDBusString.html">DBusString</a> needs a lot of cleaning up; some of the API is no longer used, and the API is pretty inconsistent. In particular all the "append" APIs, especially those involving alignment but probably lots of them, are no longer used by the marshaling code which always does "inserts" now. </dd></dl>
<hr/><h2>Define Documentation</h2>
<a class="anchor" id="gaacbbd102b66aa34dd13f792e7f08c205"></a><!-- doxytag: member="dbus&#45;string.c::DBUS_STRING_COPY_PREAMBLE" ref="gaacbbd102b66aa34dd13f792e7f08c205" args="(source, start, dest, insert_at)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define <a class="el" href="group__DBusString.html#gaacbbd102b66aa34dd13f792e7f08c205">DBUS_STRING_COPY_PREAMBLE</a></td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">source, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">start, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">dest, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">insert_at&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>Value:</b><div class="fragment"><pre class="fragment"><a class="code" href="structDBusRealString.html" title="Internals of DBusString.">DBusRealString</a> *real_source = (<a class="code" href="structDBusRealString.html" title="Internals of DBusString.">DBusRealString</a>*) source;               \
  DBusRealString *real_dest = (<a class="code" href="structDBusRealString.html" title="Internals of DBusString.">DBusRealString</a>*) dest;                   \
  _dbus_assert ((source) != (dest));                                    \
  DBUS_GENERIC_STRING_PREAMBLE (real_source);                           \
  DBUS_GENERIC_STRING_PREAMBLE (real_dest);                             \
  _dbus_assert (!real_dest-&gt;constant);                                  \
  _dbus_assert (!real_dest-&gt;locked);                                    \
  _dbus_assert ((start) &gt;= 0);                                          \
  _dbus_assert ((start) &lt;= real_source-&gt;<a class="code" href="structDBusRealString.html#aed6f543f7b748c4f5cf92b9aedd5f68d" title="Length without nul.">len</a>);                           \
  _dbus_assert ((insert_at) &gt;= 0);                                      \
  _dbus_assert ((insert_at) &lt;= real_dest-&gt;len)
</pre></div>
<p>Checks assertions for two strings we're copying a segment between, and declares real_source/real_dest variables. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">source</td><td>the source string </td></tr>
    <tr><td class="paramname">start</td><td>the starting offset </td></tr>
    <tr><td class="paramname">dest</td><td>the dest string </td></tr>
    <tr><td class="paramname">insert_at</td><td>where the copied segment is inserted </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l01217">1217</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>Referenced by <a class="el" href="dbus-string_8c_source.html#l01265">_dbus_string_copy()</a>, <a class="el" href="dbus-string_8c_source.html#l01357">_dbus_string_copy_len()</a>, <a class="el" href="dbus-string_8c_source.html#l01290">_dbus_string_move_len()</a>, and <a class="el" href="dbus-string_8c_source.html#l01386">_dbus_string_replace_len()</a>.</p>

</div>
</div>
<a class="anchor" id="ga25f0a93fc023fa0eec07ac1e32011e89"></a><!-- doxytag: member="dbus&#45;string.c::UNICODE_VALID" ref="ga25f0a93fc023fa0eec07ac1e32011e89" args="(Char)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define <a class="el" href="group__DBusString.html#ga25f0a93fc023fa0eec07ac1e32011e89">UNICODE_VALID</a></td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">Char</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>Value:</b><div class="fragment"><pre class="fragment">((Char) &lt; 0x110000 &amp;&amp;                     \
     (((Char) &amp; 0xFFFFF800) != 0xD800))
</pre></div>
<p>Check whether a Unicode (5.2) char is in a valid range. </p>
<p>The first check comes from the Unicode guarantee to never encode a point above 0x0010ffff, since UTF-16 couldn't represent it.</p>
<p>The second check covers surrogate pairs (category Cs).</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">Char</td><td>the character </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l01567">1567</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>Referenced by <a class="el" href="dbus-string_8c_source.html#l02537">_dbus_string_validate_utf8()</a>.</p>

</div>
</div>
<a class="anchor" id="ga30614080229a4fb63460ffdc8ab484fb"></a><!-- doxytag: member="dbus&#45;string.c::UTF8_COMPUTE" ref="ga30614080229a4fb63460ffdc8ab484fb" args="(Char, Mask, Len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define <a class="el" href="group__DBusString.html#ga30614080229a4fb63460ffdc8ab484fb">UTF8_COMPUTE</a></td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">Char, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">Mask, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">Len&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>computes length and mask of a unicode character </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">Char</td><td>the char </td></tr>
    <tr><td class="paramname">Mask</td><td>the mask variable to assign to </td></tr>
    <tr><td class="paramname">Len</td><td>the length variable to assign to </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l01487">1487</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>Referenced by <a class="el" href="dbus-string_8c_source.html#l02537">_dbus_string_validate_utf8()</a>.</p>

</div>
</div>
<a class="anchor" id="gab5b4b316a69f78611a14e6b1fd091992"></a><!-- doxytag: member="dbus&#45;string.c::UTF8_GET" ref="gab5b4b316a69f78611a14e6b1fd091992" args="(Result, Chars, Count, Mask, Len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define <a class="el" href="group__DBusString.html#gab5b4b316a69f78611a14e6b1fd091992">UTF8_GET</a></td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">Result, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">Chars, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">Count, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">Mask, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">Len&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>Value:</b><div class="fragment"><pre class="fragment">(Result) = (Chars)[0] &amp; (Mask);                                       \
  for ((Count) = 1; (Count) &lt; (Len); ++(Count))                               \
    {                                                                         \
      if (((Chars)[(Count)] &amp; 0xc0) != 0x80)                                  \
        {                                                                     \
          (Result) = -1;                                                      \
          break;                                                              \
        }                                                                     \
      (Result) &lt;&lt;= 6;                                                         \
      (Result) |= ((Chars)[(Count)] &amp; 0x3f);                                  \
    }
</pre></div>
<p>Gets a UTF-8 value. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">Result</td><td>variable for extracted unicode char. </td></tr>
    <tr><td class="paramname">Chars</td><td>the bytes to decode </td></tr>
    <tr><td class="paramname">Count</td><td>counter variable </td></tr>
    <tr><td class="paramname">Mask</td><td>mask for this char </td></tr>
    <tr><td class="paramname">Len</td><td>length for this char in bytes </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l01544">1544</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>Referenced by <a class="el" href="dbus-string_8c_source.html#l02537">_dbus_string_validate_utf8()</a>.</p>

</div>
</div>
<a class="anchor" id="ga9691ff5386e218870299de1d9e77ceea"></a><!-- doxytag: member="dbus&#45;string.c::UTF8_LENGTH" ref="ga9691ff5386e218870299de1d9e77ceea" args="(Char)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define <a class="el" href="group__DBusString.html#ga9691ff5386e218870299de1d9e77ceea">UTF8_LENGTH</a></td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">Char</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>Value:</b><div class="fragment"><pre class="fragment">((Char) &lt; 0x80 ? 1 :                 \
   ((Char) &lt; 0x800 ? 2 :               \
    ((Char) &lt; 0x10000 ? 3 :            \
     ((Char) &lt; 0x200000 ? 4 :          \
      ((Char) &lt; 0x4000000 ? 5 : 6)))))
</pre></div>
<p>computes length of a unicode character in UTF-8 </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">Char</td><td>the char </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l01528">1528</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>Referenced by <a class="el" href="dbus-string_8c_source.html#l02537">_dbus_string_validate_utf8()</a>.</p>

</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="ga96da816095ec7fec07136a6019745bcb"></a><!-- doxytag: member="dbus&#45;sysdeps&#45;util&#45;win.c::_dbus_parse_unix_group_from_config" ref="ga96da816095ec7fec07136a6019745bcb" args="(const DBusString *groupname, dbus_gid_t *gid_p)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusSysdeps.html#ga96da816095ec7fec07136a6019745bcb">_dbus_parse_unix_group_from_config</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>groupname</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__DBusSysdeps.html#ga2f5c2e418b81ec2a86594f56ec6d7627">dbus_gid_t</a> *&#160;</td>
          <td class="paramname"><em>gid_p</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Parse a UNIX group from the bus config file. </p>
<p>On Windows, this should simply always fail (just return <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a>).</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">groupname</td><td>the groupname text </td></tr>
    <tr><td class="paramname">gid_p</td><td>place to return the gid </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> on success </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-util-win_8c_source.html#l00842">842</a> of file <a class="el" href="dbus-sysdeps-util-win_8c_source.html">dbus-sysdeps-util-win.c</a>.</p>

<p>References <a class="el" href="dbus-userdb-util_8c_source.html#l00160">_dbus_get_group_id()</a>, and <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>.</p>

</div>
</div>
<a class="anchor" id="ga437470fc327b0169fc14a0b66a6e5278"></a><!-- doxytag: member="dbus&#45;sysdeps&#45;util&#45;win.c::_dbus_parse_unix_user_from_config" ref="ga437470fc327b0169fc14a0b66a6e5278" args="(const DBusString *username, dbus_uid_t *uid_p)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusSysdeps.html#ga437470fc327b0169fc14a0b66a6e5278">_dbus_parse_unix_user_from_config</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>username</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__DBusSysdeps.html#ga186e987b700f9ddc6cea8aa0db82b151">dbus_uid_t</a> *&#160;</td>
          <td class="paramname"><em>uid_p</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Parse a UNIX user from the bus config file. </p>
<p>On Windows, this should simply always fail (just return <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a>).</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">username</td><td>the username text </td></tr>
    <tr><td class="paramname">uid_p</td><td>place to return the uid </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> on success </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-util-win_8c_source.html#l00857">857</a> of file <a class="el" href="dbus-sysdeps-util-win_8c_source.html">dbus-sysdeps-util-win.c</a>.</p>

<p>References <a class="el" href="dbus-userdb-util_8c_source.html#l00146">_dbus_get_user_id()</a>, and <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>.</p>

</div>
</div>
<a class="anchor" id="gaeadfb67c4e796131610499c91d0d7813"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_align_length" ref="gaeadfb67c4e796131610499c91d0d7813" args="(DBusString *str, int alignment)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusString.html#gaeadfb67c4e796131610499c91d0d7813">_dbus_string_align_length</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>alignment</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Align the length of a string to a specific alignment (typically 4 or 8) by appending nul bytes to the string. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>a string </td></tr>
    <tr><td class="paramname">alignment</td><td>the alignment </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if no memory </dd></dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l00866">866</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

</div>
</div>
<a class="anchor" id="ga4764e75c464356408fc1a12df93177c1"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_alloc_space" ref="ga4764e75c464356408fc1a12df93177c1" args="(DBusString *str, int extra_bytes)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusString.html#ga4764e75c464356408fc1a12df93177c1">_dbus_string_alloc_space</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>extra_bytes</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Preallocate extra_bytes such that a future lengthening of the string by extra_bytes is guaranteed to succeed without an out of memory error. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>a string </td></tr>
    <tr><td class="paramname">extra_bytes</td><td>bytes to alloc </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if no memory </dd></dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l00882">882</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string_8c_source.html#l00743">_dbus_string_lengthen()</a>, <a class="el" href="dbus-string_8c_source.html#l00763">_dbus_string_shorten()</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

<p>Referenced by <a class="el" href="dbus-marshal-recursive_8c_source.html#l02311">_dbus_type_writer_write_basic()</a>.</p>

</div>
</div>
<a class="anchor" id="ga100c5ce0696822c5a4cfbdfaba674d96"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_append" ref="ga100c5ce0696822c5a4cfbdfaba674d96" args="(DBusString *str, const char *buffer)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusString.html#ga100c5ce0696822c5a4cfbdfaba674d96">_dbus_string_append</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>buffer</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Appends a nul-terminated C-style string to a <a class="el" href="structDBusString.html">DBusString</a>. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>the <a class="el" href="structDBusString.html">DBusString</a> </td></tr>
    <tr><td class="paramname">buffer</td><td>the nul-terminated characters to append </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if not enough memory. </dd></dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l00918">918</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string-private_8h_source.html#l00093">DBUS_STRING_PREAMBLE</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

<p>Referenced by <a class="el" href="dbus-sysdeps-unix_8c_source.html#l04035">_dbus_append_address_from_socket()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l03806">_dbus_append_keyring_directory_for_credentials()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l01470">_dbus_append_session_config_file()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l01458">_dbus_append_system_config_file()</a>, <a class="el" href="dbus-sysdeps-win_8c_source.html#l02114">_dbus_append_user_from_current_process()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l00825">_dbus_directory_get_next_file()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l01332">_dbus_get_standard_session_servicedirs()</a>, <a class="el" href="dbus-userdb_8c_source.html#l00461">_dbus_homedir_from_uid()</a>, <a class="el" href="dbus-userdb_8c_source.html#l00419">_dbus_homedir_from_username()</a>, <a class="el" href="dbus-userdb-util_8c_source.html#l00049">_dbus_is_console_user()</a>, <a class="el" href="dbus-keyring_8c_source.html#l00709">_dbus_keyring_new_for_credentials()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l01378">_dbus_listen_tcp_socket()</a>, <a class="el" href="dbus-server-unix_8c_source.html#l00054">_dbus_server_listen_platform_specific()</a>, <a class="el" href="dbus-server-unix_8c_source.html#l00237">_dbus_server_new_for_domain_socket()</a>, <a class="el" href="dbus-server-launchd_8c_source.html#l00065">_dbus_server_new_for_launchd()</a>, <a class="el" href="dbus-server-socket_8c_source.html#l00388">_dbus_server_new_for_tcp_socket()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l01155">_dbus_string_get_dirname()</a>, <a class="el" href="dbus-file-unix_8c_source.html#l00164">_dbus_string_save_to_file()</a>, <a class="el" href="dbus-transport-unix_8c_source.html#l00058">_dbus_transport_new_for_domain_socket()</a>, <a class="el" href="dbus-transport-socket_8c_source.html#l01331">_dbus_transport_new_for_tcp_socket()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l00644">_dbus_user_at_console()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l00240">_dbus_write_pid_to_file_and_pipe()</a>, and <a class="el" href="dbus-errors_8c_source.html#l00354">dbus_set_error()</a>.</p>

</div>
</div>
<a class="anchor" id="gaa6ecf36e70263659f921a4ef0335db12"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_append_byte" ref="gaa6ecf36e70263659f921a4ef0335db12" args="(DBusString *str, unsigned char byte)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusString.html#gaa6ecf36e70263659f921a4ef0335db12">_dbus_string_append_byte</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char&#160;</td>
          <td class="paramname"><em>byte</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Appends a single byte to the string, returning <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if not enough memory. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>the string </td></tr>
    <tr><td class="paramname">byte</td><td>the byte to append </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> on success </dd></dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l01139">1139</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string-private_8h_source.html#l00093">DBUS_STRING_PREAMBLE</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-string-private_8h_source.html#l00046">DBusRealString::len</a>, <a class="el" href="dbus-string-private_8h_source.html#l00045">DBusRealString::str</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

<p>Referenced by <a class="el" href="dbus-address_8c_source.html#l00104">_dbus_address_append_escaped()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02759">_dbus_concat_dir_and_file()</a>, <a class="el" href="dbus-string_8c_source.html#l02207">_dbus_string_append_byte_as_hex()</a>, <a class="el" href="dbus-string_8c_source.html#l02291">_dbus_string_hex_decode()</a>, and <a class="el" href="dbus-internals_8c_source.html#l00757">_dbus_write_uuid_file()</a>.</p>

</div>
</div>
<a class="anchor" id="gae99a331d4e5b7758652b78dc9c89de84"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_append_byte_as_hex" ref="gae99a331d4e5b7758652b78dc9c89de84" args="(DBusString *str, unsigned char byte)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusString.html#gae99a331d4e5b7758652b78dc9c89de84">_dbus_string_append_byte_as_hex</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char&#160;</td>
          <td class="paramname"><em>byte</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Appends a two-character hex digit to a string, where the hex digit has the value of the given byte. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>the string </td></tr>
    <tr><td class="paramname">byte</td><td>the byte </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if no memory </dd></dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l02207">2207</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string_8c_source.html#l01139">_dbus_string_append_byte()</a>, <a class="el" href="dbus-string_8c_source.html#l00722">_dbus_string_get_length()</a>, <a class="el" href="dbus-string_8c_source.html#l00785">_dbus_string_set_length()</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

<p>Referenced by <a class="el" href="dbus-address_8c_source.html#l00104">_dbus_address_append_escaped()</a>, and <a class="el" href="dbus-string_8c_source.html#l02241">_dbus_string_hex_encode()</a>.</p>

</div>
</div>
<a class="anchor" id="ga41141ca36c361f92b6029530ff83fa66"></a><!-- doxytag: member="dbus&#45;sysdeps.c::_dbus_string_append_int" ref="ga41141ca36c361f92b6029530ff83fa66" args="(DBusString *str, long value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusString.html#ga41141ca36c361f92b6029530ff83fa66">_dbus_string_append_int</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Appends an integer to a <a class="el" href="structDBusString.html">DBusString</a>. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>the string </td></tr>
    <tr><td class="paramname">value</td><td>the integer value </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if not enough memory or other failure. </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps_8c_source.html#l00349">349</a> of file <a class="el" href="dbus-sysdeps_8c_source.html">dbus-sysdeps.c</a>.</p>

<p>References <a class="el" href="dbus-string_8c_source.html#l00473">_dbus_string_get_data_len()</a>, <a class="el" href="dbus-string_8c_source.html#l00722">_dbus_string_get_length()</a>, <a class="el" href="dbus-string_8c_source.html#l00743">_dbus_string_lengthen()</a>, <a class="el" href="dbus-string_8c_source.html#l00763">_dbus_string_shorten()</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

<p>Referenced by <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l00240">_dbus_write_pid_to_file_and_pipe()</a>.</p>

</div>
</div>
<a class="anchor" id="ga724656b7091b910965bd1af42d0b7bab"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_append_len" ref="ga724656b7091b910965bd1af42d0b7bab" args="(DBusString *str, const char *buffer, int len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusString.html#ga724656b7091b910965bd1af42d0b7bab">_dbus_string_append_len</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Appends block of bytes with the given length to a <a class="el" href="structDBusString.html">DBusString</a>. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>the <a class="el" href="structDBusString.html">DBusString</a> </td></tr>
    <tr><td class="paramname">buffer</td><td>the bytes to append </td></tr>
    <tr><td class="paramname">len</td><td>the number of bytes to append </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if not enough memory. </dd></dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l01119">1119</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string-private_8h_source.html#l00093">DBUS_STRING_PREAMBLE</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

<p>Referenced by <a class="el" href="dbus-sha_8c_source.html#l00456">_dbus_sha_final()</a>, <a class="el" href="dbus-message_8c_source.html#l04783">dbus_message_demarshal()</a>, <a class="el" href="dbus-message_8c_source.html#l02220">dbus_message_iter_get_signature()</a>, and <a class="el" href="dbus-signature_8c_source.html#l00112">dbus_signature_iter_get_signature()</a>.</p>

</div>
</div>
<a class="anchor" id="gab0078cf7e0e5bd784ec6d6e0cc3923a2"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_append_printf" ref="gab0078cf7e0e5bd784ec6d6e0cc3923a2" args="(DBusString *str, const char *format,...)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusString.html#gab0078cf7e0e5bd784ec6d6e0cc3923a2">_dbus_string_append_printf</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>format</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>...</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Appends a printf-style formatted string to the <a class="el" href="structDBusString.html">DBusString</a>. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>the string </td></tr>
    <tr><td class="paramname">format</td><td>printf format </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if no memory </dd></dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l01096">1096</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string_8c_source.html#l01055">_dbus_string_append_printf_valist()</a>.</p>

<p>Referenced by <a class="el" href="dbus-sysdeps-unix_8c_source.html#l04035">_dbus_append_address_from_socket()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l01231">_dbus_command_for_pid()</a>, <a class="el" href="dbus-credentials_8c_source.html#l00514">_dbus_credentials_to_string_append()</a>, and <a class="el" href="dbus-connection_8c_source.html#l04549">dbus_connection_dispatch()</a>.</p>

</div>
</div>
<a class="anchor" id="ga8d794f292831d1a7edeb971b13a2c641"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_append_printf_valist" ref="ga8d794f292831d1a7edeb971b13a2c641" args="(DBusString *str, const char *format, va_list args)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusString.html#ga8d794f292831d1a7edeb971b13a2c641">_dbus_string_append_printf_valist</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>format</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">va_list&#160;</td>
          <td class="paramname"><em>args</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Appends a printf-style formatted string to the <a class="el" href="structDBusString.html">DBusString</a>. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>the string </td></tr>
    <tr><td class="paramname">format</td><td>printf format </td></tr>
    <tr><td class="paramname">args</td><td>variable argument list </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if no memory </dd></dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l01055">1055</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-sysdeps-unix_8c_source.html#l03184">_dbus_printf_string_upper_bound()</a>, <a class="el" href="dbus-string_8c_source.html#l00743">_dbus_string_lengthen()</a>, <a class="el" href="dbus-string-private_8h_source.html#l00093">DBUS_STRING_PREAMBLE</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-string-private_8h_source.html#l00046">DBusRealString::len</a>, <a class="el" href="dbus-string-private_8h_source.html#l00045">DBusRealString::str</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

<p>Referenced by <a class="el" href="dbus-string_8c_source.html#l01096">_dbus_string_append_printf()</a>, <a class="el" href="dbus-message_8c_source.html#l01542">dbus_message_new_error_printf()</a>, and <a class="el" href="dbus-errors_8c_source.html#l00354">dbus_set_error()</a>.</p>

</div>
</div>
<a class="anchor" id="gaa63064881001085159c78204f70acde8"></a><!-- doxytag: member="dbus&#45;sysdeps.c::_dbus_string_append_uint" ref="gaa63064881001085159c78204f70acde8" args="(DBusString *str, unsigned long value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusString.html#gaa63064881001085159c78204f70acde8">_dbus_string_append_uint</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned long&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Appends an unsigned integer to a <a class="el" href="structDBusString.html">DBusString</a>. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>the string </td></tr>
    <tr><td class="paramname">value</td><td>the integer value </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if not enough memory or other failure. </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps_8c_source.html#l00387">387</a> of file <a class="el" href="dbus-sysdeps_8c_source.html">dbus-sysdeps.c</a>.</p>

<p>References <a class="el" href="dbus-string_8c_source.html#l00473">_dbus_string_get_data_len()</a>, <a class="el" href="dbus-string_8c_source.html#l00722">_dbus_string_get_length()</a>, <a class="el" href="dbus-string_8c_source.html#l00743">_dbus_string_lengthen()</a>, <a class="el" href="dbus-string_8c_source.html#l00763">_dbus_string_shorten()</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

<p>Referenced by <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02399">_dbus_append_user_from_current_process()</a>.</p>

</div>
</div>
<a class="anchor" id="gaa92c6ab2c5e24cbefef0a3f3fc76f98b"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_chop_white" ref="gaa92c6ab2c5e24cbefef0a3f3fc76f98b" args="(DBusString *str)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group__DBusString.html#gaa92c6ab2c5e24cbefef0a3f3fc76f98b">_dbus_string_chop_white</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>str</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Deletes leading and trailing whitespace. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>the string </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l01971">1971</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string_8c_source.html#l01175">_dbus_string_delete()</a>, <a class="el" href="dbus-string_8c_source.html#l00722">_dbus_string_get_length()</a>, <a class="el" href="dbus-string_8c_source.html#l00785">_dbus_string_set_length()</a>, <a class="el" href="dbus-string_8c_source.html#l01819">_dbus_string_skip_white()</a>, and <a class="el" href="dbus-string_8c_source.html#l01852">_dbus_string_skip_white_reverse()</a>.</p>

<p>Referenced by <a class="el" href="dbus-sysdeps_8c_source.html#l00221">_dbus_split_paths_and_append()</a>.</p>

</div>
</div>
<a class="anchor" id="gac49ec5782ca606029c096124b5e43ffc"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_compact" ref="gac49ec5782ca606029c096124b5e43ffc" args="(DBusString *str, int max_waste)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusString.html#gac49ec5782ca606029c096124b5e43ffc">_dbus_string_compact</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>max_waste</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Compacts the string to avoid wasted memory. </p>
<p>Wasted memory is memory that is allocated but not actually required to store the current length of the string. The compact is only done if more than the given amount of memory is being wasted (otherwise the waste is ignored and the call does nothing).</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>the string </td></tr>
    <tr><td class="paramname">max_waste</td><td>the maximum amount of waste to ignore </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if the compact failed due to realloc failure </dd></dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l00372">372</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string-private_8h_source.html#l00093">DBUS_STRING_PREAMBLE</a>.</p>

</div>
</div>
<a class="anchor" id="ga3c10f0d1bcaa3b450025b9c6a8b901d7"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_copy" ref="ga3c10f0d1bcaa3b450025b9c6a8b901d7" args="(const DBusString *source, int start, DBusString *dest, int insert_at)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusString.html#ga3c10f0d1bcaa3b450025b9c6a8b901d7">_dbus_string_copy</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>source</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>start</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>insert_at</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Like <a class="el" href="group__DBusString.html#gad379fce8d4ef4f7e28f81f50b46ee4c9" title="Moves the end of one string into another string.">_dbus_string_move()</a>, but does not delete the section of the source string that's copied to the dest string. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">source</td><td>the source string </td></tr>
    <tr><td class="paramname">start</td><td>where to start copying the source string </td></tr>
    <tr><td class="paramname">dest</td><td>the destination string </td></tr>
    <tr><td class="paramname">insert_at</td><td>where to place the copied part of source string </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if not enough memory </dd></dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l01265">1265</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string_8c_source.html#l01217">DBUS_STRING_COPY_PREAMBLE</a>.</p>

<p>Referenced by <a class="el" href="dbus-sysdeps-unix_8c_source.html#l03806">_dbus_append_keyring_directory_for_credentials()</a>, <a class="el" href="dbus-auth_8c_source.html#l02681">_dbus_auth_decode_data()</a>, <a class="el" href="dbus-auth_8c_source.html#l02618">_dbus_auth_encode_data()</a>, <a class="el" href="dbus-auth_8c_source.html#l02247">_dbus_auth_server_new()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l01231">_dbus_command_for_pid()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02759">_dbus_concat_dir_and_file()</a>, <a class="el" href="dbus-marshal-header_8c_source.html#l00490">_dbus_header_copy()</a>, <a class="el" href="dbus-keyring_8c_source.html#l00709">_dbus_keyring_new_for_credentials()</a>, <a class="el" href="dbus-file-unix_8c_source.html#l00164">_dbus_string_save_to_file()</a>, <a class="el" href="dbus-message_8c_source.html#l01587">dbus_message_copy()</a>, and <a class="el" href="dbus-message_8c_source.html#l04721">dbus_message_marshal()</a>.</p>

</div>
</div>
<a class="anchor" id="ga7e509d4f959d19d96f83250e62287b06"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_copy_data" ref="ga7e509d4f959d19d96f83250e62287b06" args="(const DBusString *str, char **data_return)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusString.html#ga7e509d4f959d19d96f83250e62287b06">_dbus_string_copy_data</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char **&#160;</td>
          <td class="paramname"><em>data_return</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Copies the data from the string into a char*. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>the string </td></tr>
    <tr><td class="paramname">data_return</td><td>place to return the data </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> on success, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> on no memory </dd></dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l00655">655</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string-private_8h_source.html#l00114">DBUS_CONST_STRING_PREAMBLE</a>, <a class="el" href="dbus-memory_8c_source.html#l00461">dbus_malloc()</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-string-private_8h_source.html#l00046">DBusRealString::len</a>, <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="dbus-string-private_8h_source.html#l00045">DBusRealString::str</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

<p>Referenced by <a class="el" href="dbus-sysdeps_8c_source.html#l00221">_dbus_split_paths_and_append()</a>, <a class="el" href="dbus-transport_8c_source.html#l00102">_dbus_transport_init_base()</a>, and <a class="el" href="dbus-server_8c_source.html#l00854">dbus_server_get_id()</a>.</p>

</div>
</div>
<a class="anchor" id="gaf5f13bc7ac7a623516930d26ae2589bf"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_copy_len" ref="gaf5f13bc7ac7a623516930d26ae2589bf" args="(const DBusString *source, int start, int len, DBusString *dest, int insert_at)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusString.html#gaf5f13bc7ac7a623516930d26ae2589bf">_dbus_string_copy_len</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>source</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>start</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>insert_at</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Like <a class="el" href="group__DBusString.html#ga3c10f0d1bcaa3b450025b9c6a8b901d7" title="Like _dbus_string_move(), but does not delete the section of the source string that&#39;s copied to the d...">_dbus_string_copy()</a>, but can copy a segment from the middle of the source string. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">source</td><td>the source string </td></tr>
    <tr><td class="paramname">start</td><td>where to start copying the source string </td></tr>
    <tr><td class="paramname">len</td><td>length of segment to copy </td></tr>
    <tr><td class="paramname">dest</td><td>the destination string </td></tr>
    <tr><td class="paramname">insert_at</td><td>where to place the copied segment of source string </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if not enough memory </dd></dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l01357">1357</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string_8c_source.html#l01217">DBUS_STRING_COPY_PREAMBLE</a>.</p>

<p>Referenced by <a class="el" href="dbus-marshal-header_8c_source.html#l00970">_dbus_header_load()</a>, <a class="el" href="dbus-sysdeps_8c_source.html#l00221">_dbus_split_paths_and_append()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l01155">_dbus_string_get_dirname()</a>, and <a class="el" href="dbus-address_8c_source.html#l00363">dbus_parse_address()</a>.</p>

</div>
</div>
<a class="anchor" id="gaf97b18e419678dbf967d9b9ad1112ca6"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_copy_to_buffer" ref="gaf97b18e419678dbf967d9b9ad1112ca6" args="(const DBusString *str, char *buffer, int avail_len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group__DBusString.html#gaf97b18e419678dbf967d9b9ad1112ca6">_dbus_string_copy_to_buffer</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>avail_len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Copies the contents of a <a class="el" href="structDBusString.html">DBusString</a> into a different buffer. </p>
<p>It is a bug if avail_len is too short to hold the string contents. nul termination is not copied, just the supplied bytes.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>a string </td></tr>
    <tr><td class="paramname">buffer</td><td>a C buffer to copy data to </td></tr>
    <tr><td class="paramname">avail_len</td><td>maximum length of C buffer </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l00680">680</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string-private_8h_source.html#l00114">DBUS_CONST_STRING_PREAMBLE</a>, <a class="el" href="dbus-string-private_8h_source.html#l00046">DBusRealString::len</a>, and <a class="el" href="dbus-string-private_8h_source.html#l00045">DBusRealString::str</a>.</p>

<p>Referenced by <a class="el" href="dbus-sysdeps_8c_source.html#l00538">_dbus_generate_random_bytes_buffer()</a>.</p>

</div>
</div>
<a class="anchor" id="gac42891d26084a4da0f63038d93b63828"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_copy_to_buffer_with_nul" ref="gac42891d26084a4da0f63038d93b63828" args="(const DBusString *str, char *buffer, int avail_len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group__DBusString.html#gac42891d26084a4da0f63038d93b63828">_dbus_string_copy_to_buffer_with_nul</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>avail_len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Copies the contents of a <a class="el" href="structDBusString.html">DBusString</a> into a different buffer. </p>
<p>It is a bug if avail_len is too short to hold the string contents plus a nul byte.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>a string </td></tr>
    <tr><td class="paramname">buffer</td><td>a C buffer to copy data to </td></tr>
    <tr><td class="paramname">avail_len</td><td>maximum length of C buffer </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l00702">702</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string-private_8h_source.html#l00114">DBUS_CONST_STRING_PREAMBLE</a>, <a class="el" href="dbus-string-private_8h_source.html#l00046">DBusRealString::len</a>, and <a class="el" href="dbus-string-private_8h_source.html#l00045">DBusRealString::str</a>.</p>

</div>
</div>
<a class="anchor" id="ga7e0e164ad5bb094e5ccad9edc7ae4235"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_delete" ref="ga7e0e164ad5bb094e5ccad9edc7ae4235" args="(DBusString *str, int start, int len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group__DBusString.html#ga7e0e164ad5bb094e5ccad9edc7ae4235">_dbus_string_delete</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>start</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Deletes a segment of a <a class="el" href="structDBusString.html">DBusString</a> with length len starting at start. </p>
<p>(Hint: to clear an entire string, setting length to 0 with <a class="el" href="group__DBusString.html#ga08c423b93c28dd746dcb93e0461ab95c" title="Sets the length of a string.">_dbus_string_set_length()</a> is easier.)</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>the <a class="el" href="structDBusString.html">DBusString</a> </td></tr>
    <tr><td class="paramname">start</td><td>where to start deleting </td></tr>
    <tr><td class="paramname">len</td><td>the number of bytes to delete </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l01175">1175</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string-private_8h_source.html#l00093">DBUS_STRING_PREAMBLE</a>.</p>

<p>Referenced by <a class="el" href="dbus-auth_8c_source.html#l02500">_dbus_auth_bytes_sent()</a>, <a class="el" href="dbus-marshal-header_8c_source.html#l00528">_dbus_header_create()</a>, and <a class="el" href="dbus-string_8c_source.html#l01971">_dbus_string_chop_white()</a>.</p>

</div>
</div>
<a class="anchor" id="ga4701fa3fabccad3ba64b7bf17c4ae14c"></a><!-- doxytag: member="dbus&#45;string&#45;util.c::_dbus_string_ends_with_c_str" ref="ga4701fa3fabccad3ba64b7bf17c4ae14c" args="(const DBusString *a, const char *c_str)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusString.html#ga4701fa3fabccad3ba64b7bf17c4ae14c">_dbus_string_ends_with_c_str</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>c_str</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns whether a string ends with the given suffix. </p>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000047">Todo:</a></b></dt><dd>memcmp might make this faster.</dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">a</td><td>the string </td></tr>
    <tr><td class="paramname">c_str</td><td>the C-style string </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> if the string ends with the suffix </dd></dl>

<p>Definition at line <a class="el" href="dbus-string-util_8c_source.html#l00046">46</a> of file <a class="el" href="dbus-string-util_8c_source.html">dbus-string-util.c</a>.</p>

<p>References <a class="el" href="dbus-string-private_8h_source.html#l00076">DBUS_GENERIC_STRING_PREAMBLE</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-string-private_8h_source.html#l00046">DBusRealString::len</a>, <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="dbus-string-private_8h_source.html#l00045">DBusRealString::str</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

</div>
</div>
<a class="anchor" id="gad79c34af55b58f0e8b81ecf11b8694bb"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_equal" ref="gad79c34af55b58f0e8b81ecf11b8694bb" args="(const DBusString *a, const DBusString *b)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusString.html#gad79c34af55b58f0e8b81ecf11b8694bb">_dbus_string_equal</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>b</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Tests two <a class="el" href="structDBusString.html">DBusString</a> for equality. </p>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000050">Todo:</a></b></dt><dd>memcmp is probably faster</dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">a</td><td>first string </td></tr>
    <tr><td class="paramname">b</td><td>second string </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> if equal </dd></dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l01995">1995</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string-private_8h_source.html#l00076">DBUS_GENERIC_STRING_PREAMBLE</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-string-private_8h_source.html#l00046">DBusRealString::len</a>, <a class="el" href="dbus-string-private_8h_source.html#l00045">DBusRealString::str</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

<p>Referenced by <a class="el" href="dbus-errors_8c_source.html#l00302">dbus_error_has_name()</a>.</p>

</div>
</div>
<a class="anchor" id="ga84f39f1bf398697920637d2982248c72"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_equal_c_str" ref="ga84f39f1bf398697920637d2982248c72" args="(const DBusString *a, const char *c_str)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusString.html#ga84f39f1bf398697920637d2982248c72">_dbus_string_equal_c_str</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>c_str</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Checks whether a string is equal to a C string. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">a</td><td>the string </td></tr>
    <tr><td class="paramname">c_str</td><td>the C string </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> if equal </dd></dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l02134">2134</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string-private_8h_source.html#l00076">DBUS_GENERIC_STRING_PREAMBLE</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-string-private_8h_source.html#l00046">DBusRealString::len</a>, <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="dbus-string-private_8h_source.html#l00045">DBusRealString::str</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

<p>Referenced by <a class="el" href="dbus-address_8c_source.html#l00244">dbus_address_entry_get_value()</a>.</p>

</div>
</div>
<a class="anchor" id="gacf39727ae9eb411b0c4cb3b891588fb0"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_equal_len" ref="gacf39727ae9eb411b0c4cb3b891588fb0" args="(const DBusString *a, const DBusString *b, int len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusString.html#gacf39727ae9eb411b0c4cb3b891588fb0">_dbus_string_equal_len</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Tests two <a class="el" href="structDBusString.html">DBusString</a> for equality up to the given length. </p>
<p>The strings may be shorter than the given length.</p>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000051">Todo:</a></b></dt><dd>write a unit test</dd></dl>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000052">Todo:</a></b></dt><dd>memcmp is probably faster</dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">a</td><td>first string </td></tr>
    <tr><td class="paramname">b</td><td>second string </td></tr>
    <tr><td class="paramname">len</td><td>the maximum length to look at </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> if equal for the given number of bytes </dd></dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l02038">2038</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string-private_8h_source.html#l00076">DBUS_GENERIC_STRING_PREAMBLE</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-string-private_8h_source.html#l00046">DBusRealString::len</a>, <a class="el" href="dbus-string-private_8h_source.html#l00045">DBusRealString::str</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

</div>
</div>
<a class="anchor" id="ga2095c2a797ae245521a7588b32279110"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_equal_substring" ref="ga2095c2a797ae245521a7588b32279110" args="(const DBusString *a, int a_start, int a_len, const DBusString *b, int b_start)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusString.html#ga2095c2a797ae245521a7588b32279110">_dbus_string_equal_substring</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>a_start</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>a_len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>b_start</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Tests two sub-parts of two <a class="el" href="structDBusString.html">DBusString</a> for equality. </p>
<p>The specified range of the first string must exist; the specified start position of the second string must exist.</p>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000053">Todo:</a></b></dt><dd>write a unit test</dd></dl>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000054">Todo:</a></b></dt><dd>memcmp is probably faster</dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">a</td><td>first string </td></tr>
    <tr><td class="paramname">a_start</td><td>where to start substring in first string </td></tr>
    <tr><td class="paramname">a_len</td><td>length of substring in first string </td></tr>
    <tr><td class="paramname">b</td><td>second string </td></tr>
    <tr><td class="paramname">b_start</td><td>where to start substring in second string </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> if the two substrings are equal </dd></dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l02086">2086</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string-private_8h_source.html#l00076">DBUS_GENERIC_STRING_PREAMBLE</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-string-private_8h_source.html#l00046">DBusRealString::len</a>, <a class="el" href="dbus-string-private_8h_source.html#l00045">DBusRealString::str</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

</div>
</div>
<a class="anchor" id="ga5fe47873b2838339107c3e1f03d1a703"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_find" ref="ga5fe47873b2838339107c3e1f03d1a703" args="(const DBusString *str, int start, const char *substr, int *found)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusString.html#ga5fe47873b2838339107c3e1f03d1a703">_dbus_string_find</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>start</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>substr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>found</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Finds the given substring in the string, returning <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> and filling in the byte index where the substring was found, if it was found. </p>
<p>Returns <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if the substring wasn't found. Sets *start to the length of the string if the substring is not found.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>the string </td></tr>
    <tr><td class="paramname">start</td><td>where to start looking </td></tr>
    <tr><td class="paramname">substr</td><td>the substring </td></tr>
    <tr><td class="paramname">found</td><td>return location for where it was found, or <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> if found </dd></dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l01586">1586</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string_8c_source.html#l01679">_dbus_string_find_to()</a>.</p>

<p>Referenced by <a class="el" href="dbus-keyring_8c_source.html#l00847">_dbus_keyring_validate_context()</a>, <a class="el" href="dbus-sysdeps_8c_source.html#l00221">_dbus_split_paths_and_append()</a>, <a class="el" href="dbus-string_8c_source.html#l01449">_dbus_string_split_on_byte()</a>, and <a class="el" href="dbus-address_8c_source.html#l00363">dbus_parse_address()</a>.</p>

</div>
</div>
<a class="anchor" id="ga677ddb4246c7e7f67ed3145dc3c1c96b"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_find_blank" ref="ga677ddb4246c7e7f67ed3145dc3c1c96b" args="(const DBusString *str, int start, int *found)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusString.html#ga677ddb4246c7e7f67ed3145dc3c1c96b">_dbus_string_find_blank</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>start</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>found</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Finds a blank (space or tab) in the string. </p>
<p>Returns <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> if found, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> otherwise. If a blank is not found sets *found to the length of the string.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>the string </td></tr>
    <tr><td class="paramname">start</td><td>byte index to start looking </td></tr>
    <tr><td class="paramname">found</td><td>place to store the location of the first blank </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> if a blank was found </dd></dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l01747">1747</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string-private_8h_source.html#l00114">DBUS_CONST_STRING_PREAMBLE</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-string-private_8h_source.html#l00046">DBusRealString::len</a>, <a class="el" href="dbus-string-private_8h_source.html#l00045">DBusRealString::str</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

<p>Referenced by <a class="el" href="dbus-keyring_8c_source.html#l00847">_dbus_keyring_validate_context()</a>.</p>

</div>
</div>
<a class="anchor" id="ga89d458f4f530ee82dbb45f9dcbc9c637"></a><!-- doxytag: member="dbus&#45;string&#45;util.c::_dbus_string_find_byte_backward" ref="ga89d458f4f530ee82dbb45f9dcbc9c637" args="(const DBusString *str, int start, unsigned char byte, int *found)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusString.html#ga89d458f4f530ee82dbb45f9dcbc9c637">_dbus_string_find_byte_backward</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>start</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char&#160;</td>
          <td class="paramname"><em>byte</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>found</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Find the given byte scanning backward from the given start. </p>
<p>Sets *found to -1 if the byte is not found.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>the string </td></tr>
    <tr><td class="paramname">start</td><td>the place to start scanning (will not find the byte at this point) </td></tr>
    <tr><td class="paramname">byte</td><td>the byte to find </td></tr>
    <tr><td class="paramname">found</td><td>return location for where it was found </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> if found </dd></dl>

<p>Definition at line <a class="el" href="dbus-string-util_8c_source.html#l00090">90</a> of file <a class="el" href="dbus-string-util_8c_source.html">dbus-string-util.c</a>.</p>

<p>References <a class="el" href="dbus-string-private_8h_source.html#l00114">DBUS_CONST_STRING_PREAMBLE</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

<p>Referenced by <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l01155">_dbus_string_get_dirname()</a>.</p>

</div>
</div>
<a class="anchor" id="ga3c98d1913e3ba4deb8eda60b2e262fdb"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_find_eol" ref="ga3c98d1913e3ba4deb8eda60b2e262fdb" args="(const DBusString *str, int start, int *found, int *found_len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusString.html#ga3c98d1913e3ba4deb8eda60b2e262fdb">_dbus_string_find_eol</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>start</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>found</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>found_len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Finds end of line ("\r\n" or "\n") in the string, returning <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> and filling in the byte index where the eol string was found, if it was found. </p>
<p>Returns <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if eol wasn't found.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>the string </td></tr>
    <tr><td class="paramname">start</td><td>where to start looking </td></tr>
    <tr><td class="paramname">found</td><td>return location for where eol was found or string length otherwise </td></tr>
    <tr><td class="paramname">found_len</td><td>return length of found eol string or zero otherwise </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> if found </dd></dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l01609">1609</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string-private_8h_source.html#l00114">DBUS_CONST_STRING_PREAMBLE</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-string-private_8h_source.html#l00046">DBusRealString::len</a>, <a class="el" href="dbus-string-private_8h_source.html#l00045">DBusRealString::str</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

<p>Referenced by <a class="el" href="dbus-string_8c_source.html#l01891">_dbus_string_pop_line()</a>.</p>

</div>
</div>
<a class="anchor" id="gaf2281731c3119f946726680242a5ae02"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_find_to" ref="gaf2281731c3119f946726680242a5ae02" args="(const DBusString *str, int start, int end, const char *substr, int *found)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusString.html#gaf2281731c3119f946726680242a5ae02">_dbus_string_find_to</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>start</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>end</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>substr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>found</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Finds the given substring in the string, up to a certain position, returning <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> and filling in the byte index where the substring was found, if it was found. </p>
<p>Returns <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if the substring wasn't found. Sets *start to the length of the string if the substring is not found.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>the string </td></tr>
    <tr><td class="paramname">start</td><td>where to start looking </td></tr>
    <tr><td class="paramname">end</td><td>where to stop looking </td></tr>
    <tr><td class="paramname">substr</td><td>the substring </td></tr>
    <tr><td class="paramname">found</td><td>return location for where it was found, or <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> if found </dd></dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l01679">1679</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string-private_8h_source.html#l00114">DBUS_CONST_STRING_PREAMBLE</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="dbus-string-private_8h_source.html#l00045">DBusRealString::str</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

<p>Referenced by <a class="el" href="dbus-string_8c_source.html#l01586">_dbus_string_find()</a>, and <a class="el" href="dbus-address_8c_source.html#l00363">dbus_parse_address()</a>.</p>

</div>
</div>
<a class="anchor" id="ga781ca91acda49a834dce7d0ed0eef212"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_free" ref="ga781ca91acda49a834dce7d0ed0eef212" args="(DBusString *str)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group__DBusString.html#ga781ca91acda49a834dce7d0ed0eef212">_dbus_string_free</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>str</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Frees a string created by <a class="el" href="group__DBusString.html#ga348252317f7bb8ac43529972945830ae" title="Initializes a string.">_dbus_string_init()</a>. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>memory where the string is stored. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l00242">242</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string-private_8h_source.html#l00051">DBusRealString::align_offset</a>, <a class="el" href="dbus-string-private_8h_source.html#l00048">DBusRealString::constant</a>, <a class="el" href="dbus-memory_8c_source.html#l00701">dbus_free()</a>, <a class="el" href="dbus-string-private_8h_source.html#l00076">DBUS_GENERIC_STRING_PREAMBLE</a>, <a class="el" href="dbus-string-private_8h_source.html#l00050">DBusRealString::invalid</a>, <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="dbus-string-private_8h_source.html#l00045">DBusRealString::str</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

<p>Referenced by <a class="el" href="dbus-sysdeps-unix_8c_source.html#l03806">_dbus_append_keyring_directory_for_credentials()</a>, <a class="el" href="dbus-auth_8c_source.html#l02293">_dbus_auth_client_new()</a>, <a class="el" href="dbus-auth_8c_source.html#l02247">_dbus_auth_server_new()</a>, <a class="el" href="dbus-auth_8c_source.html#l02346">_dbus_auth_unref()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l01231">_dbus_command_for_pid()</a>, <a class="el" href="dbus-sysdeps_8c_source.html#l00538">_dbus_generate_random_bytes_buffer()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l03508">_dbus_get_autolaunch_address()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l01332">_dbus_get_standard_session_servicedirs()</a>, <a class="el" href="dbus-marshal-header_8c_source.html#l00490">_dbus_header_copy()</a>, <a class="el" href="dbus-marshal-header_8c_source.html#l00476">_dbus_header_free()</a>, <a class="el" href="dbus-userdb-util_8c_source.html#l00049">_dbus_is_console_user()</a>, <a class="el" href="dbus-keyring_8c_source.html#l00709">_dbus_keyring_new_for_credentials()</a>, <a class="el" href="dbus-keyring_8c_source.html#l00681">_dbus_keyring_unref()</a>, <a class="el" href="dbus-message_8c_source.html#l03925">_dbus_message_loader_unref()</a>, <a class="el" href="dbus-sysdeps-win_8c_source.html#l01947">_dbus_read_credentials_socket()</a>, <a class="el" href="dbus-server_8c_source.html#l00193">_dbus_server_finalize_base()</a>, <a class="el" href="dbus-server_8c_source.html#l00111">_dbus_server_init_base()</a>, <a class="el" href="dbus-server-unix_8c_source.html#l00054">_dbus_server_listen_platform_specific()</a>, <a class="el" href="dbus-server-unix_8c_source.html#l00237">_dbus_server_new_for_domain_socket()</a>, <a class="el" href="dbus-server-launchd_8c_source.html#l00065">_dbus_server_new_for_launchd()</a>, <a class="el" href="dbus-server-socket_8c_source.html#l00388">_dbus_server_new_for_tcp_socket()</a>, <a class="el" href="dbus-sha_8c_source.html#l00483">_dbus_sha_compute()</a>, <a class="el" href="dbus-sysdeps_8c_source.html#l00221">_dbus_split_paths_and_append()</a>, <a class="el" href="dbus-string_8c_source.html#l02291">_dbus_string_hex_decode()</a>, <a class="el" href="dbus-string_8c_source.html#l02241">_dbus_string_hex_encode()</a>, <a class="el" href="dbus-file-unix_8c_source.html#l00164">_dbus_string_save_to_file()</a>, <a class="el" href="dbus-transport-unix_8c_source.html#l00058">_dbus_transport_new_for_domain_socket()</a>, <a class="el" href="dbus-transport-socket_8c_source.html#l01256">_dbus_transport_new_for_socket()</a>, <a class="el" href="dbus-transport-socket_8c_source.html#l01331">_dbus_transport_new_for_tcp_socket()</a>, <a class="el" href="dbus-transport-unix_8c_source.html#l00225">_dbus_transport_open_platform_specific()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l00644">_dbus_user_at_console()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l00240">_dbus_write_pid_to_file_and_pipe()</a>, <a class="el" href="dbus-internals_8c_source.html#l00757">_dbus_write_uuid_file()</a>, <a class="el" href="dbus-address_8c_source.html#l00583">dbus_address_escape_value()</a>, <a class="el" href="dbus-address_8c_source.html#l00617">dbus_address_unescape_value()</a>, <a class="el" href="dbus-connection_8c_source.html#l04549">dbus_connection_dispatch()</a>, <a class="el" href="dbus-misc_8c_source.html#l00073">dbus_get_local_machine_id()</a>, <a class="el" href="dbus-message_8c_source.html#l01587">dbus_message_copy()</a>, <a class="el" href="dbus-message_8c_source.html#l04844">dbus_message_demarshal_bytes_needed()</a>, <a class="el" href="dbus-message_8c_source.html#l02220">dbus_message_iter_get_signature()</a>, <a class="el" href="dbus-message_8c_source.html#l04721">dbus_message_marshal()</a>, <a class="el" href="dbus-message_8c_source.html#l01542">dbus_message_new_error_printf()</a>, <a class="el" href="dbus-address_8c_source.html#l00363">dbus_parse_address()</a>, <a class="el" href="dbus-errors_8c_source.html#l00354">dbus_set_error()</a>, and <a class="el" href="dbus-signature_8c_source.html#l00112">dbus_signature_iter_get_signature()</a>.</p>

</div>
</div>
<a class="anchor" id="gac1cb7b207eac3c6527a5d42fbc5449b1"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_get_byte" ref="gac1cb7b207eac3c6527a5d42fbc5449b1" args="(const DBusString *str, int start)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned char <a class="el" href="group__DBusString.html#gac1cb7b207eac3c6527a5d42fbc5449b1">_dbus_string_get_byte</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>start</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Gets the byte at the given position. </p>
<p>It is allowed to ask for the nul byte at the end of the string.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>the string </td></tr>
    <tr><td class="paramname">start</td><td>the position </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the byte at that position </dd></dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l00545">545</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string-private_8h_source.html#l00114">DBUS_CONST_STRING_PREAMBLE</a>, and <a class="el" href="dbus-string-private_8h_source.html#l00045">DBusRealString::str</a>.</p>

<p>Referenced by <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02759">_dbus_concat_dir_and_file()</a>, <a class="el" href="dbus-marshal-basic_8c_source.html#l01416">_dbus_first_type_in_signature()</a>, <a class="el" href="dbus-sysdeps_8c_source.html#l00570">_dbus_generate_random_ascii()</a>, <a class="el" href="dbus-marshal-header_8c_source.html#l00174">_dbus_header_get_byte_order()</a>, <a class="el" href="dbus-marshal-header_8c_source.html#l00386">_dbus_header_get_message_type()</a>, <a class="el" href="dbus-marshal-header_8c_source.html#l00673">_dbus_header_have_message_untrusted()</a>, <a class="el" href="dbus-marshal-basic_8c_source.html#l00492">_dbus_marshal_read_basic()</a>, <a class="el" href="dbus-marshal-basic_8c_source.html#l01077">_dbus_marshal_skip_basic()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l00712">_dbus_path_is_absolute()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l01155">_dbus_string_get_dirname()</a>, and <a class="el" href="dbus-string_8c_source.html#l02291">_dbus_string_hex_decode()</a>.</p>

</div>
</div>
<a class="anchor" id="ga33e20241ae7d784624f97d89b1a0539e"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_get_const_data" ref="ga33e20241ae7d784624f97d89b1a0539e" args="(const DBusString *str)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* <a class="el" href="group__DBusString.html#ga33e20241ae7d784624f97d89b1a0539e">_dbus_string_get_const_data</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>str</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Gets the raw character buffer from a const string. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>the string </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the string data </dd></dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l00451">451</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string-private_8h_source.html#l00114">DBUS_CONST_STRING_PREAMBLE</a>, and <a class="el" href="dbus-string-private_8h_source.html#l00045">DBusRealString::str</a>.</p>

<p>Referenced by <a class="el" href="dbus-address_8c_source.html#l00104">_dbus_address_append_escaped()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l03806">_dbus_append_keyring_directory_for_credentials()</a>, <a class="el" href="dbus-auth_8c_source.html#l02500">_dbus_auth_bytes_sent()</a>, <a class="el" href="dbus-auth_8c_source.html#l02755">_dbus_auth_get_guid_from_server()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02023">_dbus_check_dir_is_private_to_user()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l01231">_dbus_command_for_pid()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02725">_dbus_create_directory()</a>, <a class="el" href="dbus-file-unix_8c_source.html#l00353">_dbus_create_file_exclusively()</a>, <a class="el" href="dbus-sysdeps-win_8c_source.html#l02060">_dbus_credentials_add_from_user()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l03906">_dbus_delete_directory()</a>, <a class="el" href="dbus-file-unix_8c_source.html#l00399">_dbus_delete_file()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l00777">_dbus_directory_open()</a>, <a class="el" href="dbus-file-unix_8c_source.html#l00055">_dbus_file_get_contents()</a>, <a class="el" href="dbus-sysdeps-win_8c_source.html#l03080">_dbus_get_autolaunch_address()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l01332">_dbus_get_standard_session_servicedirs()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l01378">_dbus_listen_tcp_socket()</a>, <a class="el" href="dbus-file-unix_8c_source.html#l00326">_dbus_make_file_world_readable()</a>, <a class="el" href="dbus-marshal-basic_8c_source.html#l00492">_dbus_marshal_read_basic()</a>, <a class="el" href="dbus-marshal-basic_8c_source.html#l00454">_dbus_marshal_read_uint32()</a>, <a class="el" href="dbus-server-unix_8c_source.html#l00054">_dbus_server_listen_platform_specific()</a>, <a class="el" href="dbus-server-socket_8c_source.html#l00388">_dbus_server_new_for_tcp_socket()</a>, <a class="el" href="dbus-sha_8c_source.html#l00432">_dbus_sha_update()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l00729">_dbus_stat()</a>, <a class="el" href="dbus-string_8c_source.html#l02291">_dbus_string_hex_decode()</a>, <a class="el" href="dbus-string_8c_source.html#l02241">_dbus_string_hex_encode()</a>, <a class="el" href="dbus-file-unix_8c_source.html#l00164">_dbus_string_save_to_file()</a>, <a class="el" href="dbus-transport-unix_8c_source.html#l00225">_dbus_transport_open_platform_specific()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l00644">_dbus_user_at_console()</a>, <a class="el" href="dbus-userdb_8c_source.html#l00128">_dbus_user_database_lookup()</a>, <a class="el" href="dbus-userdb-util_8c_source.html#l00246">_dbus_user_database_lookup_group()</a>, <a class="el" href="dbus-marshal-validate_8c_source.html#l00921">_dbus_validate_interface()</a>, <a class="el" href="dbus-marshal-validate_8c_source.html#l00997">_dbus_validate_member()</a>, <a class="el" href="dbus-marshal-validate_8c_source.html#l00785">_dbus_validate_path()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l00240">_dbus_write_pid_to_file_and_pipe()</a>, <a class="el" href="dbus-address_8c_source.html#l00227">dbus_address_entry_get_method()</a>, <a class="el" href="dbus-address_8c_source.html#l00244">dbus_address_entry_get_value()</a>, <a class="el" href="dbus-connection_8c_source.html#l04549">dbus_connection_dispatch()</a>, <a class="el" href="dbus-message_8c_source.html#l02220">dbus_message_iter_get_signature()</a>, and <a class="el" href="dbus-message_8c_source.html#l01542">dbus_message_new_error_printf()</a>.</p>

</div>
</div>
<a class="anchor" id="ga8c202a65e938f9bdb859fc6705a4f1bb"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_get_const_data_len" ref="ga8c202a65e938f9bdb859fc6705a4f1bb" args="(const DBusString *str, int start, int len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* <a class="el" href="group__DBusString.html#ga8c202a65e938f9bdb859fc6705a4f1bb">_dbus_string_get_const_data_len</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>start</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>const version of <a class="el" href="group__DBusString.html#ga7a73fb373398606e6e1d0a86c4587a3c" title="Gets a sub-portion of the raw character buffer from the string.">_dbus_string_get_data_len()</a>. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>the string </td></tr>
    <tr><td class="paramname">start</td><td>byte offset to return </td></tr>
    <tr><td class="paramname">len</td><td>length of segment to return </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the string data </dd></dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l00497">497</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string-private_8h_source.html#l00114">DBUS_CONST_STRING_PREAMBLE</a>, and <a class="el" href="dbus-string-private_8h_source.html#l00045">DBusRealString::str</a>.</p>

<p>Referenced by <a class="el" href="dbus-marshal-header_8c_source.html#l01479">_dbus_header_get_flag()</a>, <a class="el" href="dbus-sysdeps_8c_source.html#l00430">_dbus_string_parse_int()</a>, <a class="el" href="dbus-sysdeps_8c_source.html#l00469">_dbus_string_parse_uint()</a>, <a class="el" href="dbus-marshal-recursive_8c_source.html#l00733">_dbus_type_reader_init()</a>, <a class="el" href="dbus-marshal-recursive_8c_source.html#l00761">_dbus_type_reader_init_types_only()</a>, <a class="el" href="dbus-marshal-recursive_8c_source.html#l01054">_dbus_type_reader_next()</a>, <a class="el" href="dbus-marshal-recursive_8c_source.html#l00870">_dbus_type_reader_read_basic()</a>, <a class="el" href="dbus-marshal-recursive_8c_source.html#l00924">_dbus_type_reader_read_fixed_multi()</a>, <a class="el" href="dbus-marshal-recursive_8c_source.html#l00853">_dbus_type_reader_read_raw()</a>, <a class="el" href="dbus-marshal-recursive_8c_source.html#l00989">_dbus_type_reader_recurse()</a>, <a class="el" href="dbus-marshal-recursive_8c_source.html#l01363">_dbus_type_reader_set_basic()</a>, <a class="el" href="dbus-marshal-recursive_8c_source.html#l01493">_dbus_type_writer_init()</a>, <a class="el" href="dbus-marshal-recursive_8c_source.html#l02179">_dbus_type_writer_unrecurse()</a>, <a class="el" href="dbus-marshal-validate_8c_source.html#l00703">_dbus_validate_body_with_reason()</a>, <a class="el" href="dbus-marshal-validate_8c_source.html#l00051">_dbus_validate_signature_with_reason()</a>, <a class="el" href="dbus-marshal-basic_8c_source.html#l01360">_dbus_verbose_bytes_of_string()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l00686">_dbus_write()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l00236">_dbus_write_socket()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l00547">_dbus_write_socket_two()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l00732">_dbus_write_two()</a>, and <a class="el" href="dbus-message_8c_source.html#l03543">dbus_message_get_signature()</a>.</p>

</div>
</div>
<a class="anchor" id="gaa9b5aa08d313048df72aa12bb4dc0cda"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_get_data" ref="gaa9b5aa08d313048df72aa12bb4dc0cda" args="(DBusString *str)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* <a class="el" href="group__DBusString.html#gaa9b5aa08d313048df72aa12bb4dc0cda">_dbus_string_get_data</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>str</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Gets the raw character buffer from the string. </p>
<p>The returned buffer will be nul-terminated, but note that strings may contain binary data so there may be extra nul characters prior to the termination. This function should be little-used, extend <a class="el" href="structDBusString.html">DBusString</a> or add stuff to <a class="el" href="dbus-sysdeps_8c_source.html">dbus-sysdeps.c</a> instead. It's an error to use this function on a const string.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>the string </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the data </dd></dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l00434">434</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string-private_8h_source.html#l00093">DBUS_STRING_PREAMBLE</a>, and <a class="el" href="dbus-string-private_8h_source.html#l00045">DBusRealString::str</a>.</p>

<p>Referenced by <a class="el" href="dbus-sysdeps-unix_8c_source.html#l03508">_dbus_get_autolaunch_address()</a>.</p>

</div>
</div>
<a class="anchor" id="ga7a73fb373398606e6e1d0a86c4587a3c"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_get_data_len" ref="ga7a73fb373398606e6e1d0a86c4587a3c" args="(DBusString *str, int start, int len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* <a class="el" href="group__DBusString.html#ga7a73fb373398606e6e1d0a86c4587a3c">_dbus_string_get_data_len</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>start</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Gets a sub-portion of the raw character buffer from the string. </p>
<p>The "len" field is required simply for error checking, to be sure you don't try to use more string than exists. The nul termination of the returned buffer remains at the end of the entire string, not at start + len.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>the string </td></tr>
    <tr><td class="paramname">start</td><td>byte offset to return </td></tr>
    <tr><td class="paramname">len</td><td>length of segment to return </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the string data </dd></dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l00473">473</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string-private_8h_source.html#l00093">DBUS_STRING_PREAMBLE</a>, and <a class="el" href="dbus-string-private_8h_source.html#l00045">DBusRealString::str</a>.</p>

<p>Referenced by <a class="el" href="dbus-sysdeps-win_8c_source.html#l02256">_dbus_generate_random_bytes()</a>, <a class="el" href="dbus-marshal-header_8c_source.html#l01457">_dbus_header_toggle_flag()</a>, <a class="el" href="dbus-marshal-byteswap_8c_source.html#l00222">_dbus_marshal_byteswap()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l00626">_dbus_read()</a>, <a class="el" href="dbus-sysdeps-win_8c_source.html#l00379">_dbus_read_socket()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l00274">_dbus_read_socket_with_unix_fds()</a>, <a class="el" href="dbus-sysdeps_8c_source.html#l00349">_dbus_string_append_int()</a>, and <a class="el" href="dbus-sysdeps_8c_source.html#l00387">_dbus_string_append_uint()</a>.</p>

</div>
</div>
<a class="anchor" id="gafa79c1113fa75419dcc5ee4290e06608"></a><!-- doxytag: member="dbus&#45;sysdeps&#45;util&#45;unix.c::_dbus_string_get_dirname" ref="gafa79c1113fa75419dcc5ee4290e06608" args="(const DBusString *filename, DBusString *dirname)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusSysdeps.html#gafa79c1113fa75419dcc5ee4290e06608">_dbus_string_get_dirname</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>dirname</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the directory name from a complete filename. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">filename</td><td>the filename </td></tr>
    <tr><td class="paramname">dirname</td><td>string to append directory name to </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if no memory </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l01155">1155</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c_source.html">dbus-sysdeps-util-unix.c</a>.</p>

<p>References <a class="el" href="dbus-string_8c_source.html#l00918">_dbus_string_append()</a>, <a class="el" href="dbus-string_8c_source.html#l01357">_dbus_string_copy_len()</a>, <a class="el" href="dbus-string-util_8c_source.html#l00090">_dbus_string_find_byte_backward()</a>, <a class="el" href="dbus-string_8c_source.html#l00545">_dbus_string_get_byte()</a>, <a class="el" href="dbus-string_8c_source.html#l00722">_dbus_string_get_length()</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

</div>
</div>
<a class="anchor" id="gaa5136e6fd2c5188f4b88de7863369c6d"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_get_length" ref="gaa5136e6fd2c5188f4b88de7863369c6d" args="(const DBusString *str)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="group__DBusString.html#gaa5136e6fd2c5188f4b88de7863369c6d">_dbus_string_get_length</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>str</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Gets the length of a string (not including nul termination). </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>the length. </dd></dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l00722">722</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string-private_8h_source.html#l00114">DBUS_CONST_STRING_PREAMBLE</a>, and <a class="el" href="dbus-string-private_8h_source.html#l00046">DBusRealString::len</a>.</p>

<p>Referenced by <a class="el" href="dbus-address_8c_source.html#l00104">_dbus_address_append_escaped()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l03806">_dbus_append_keyring_directory_for_credentials()</a>, <a class="el" href="dbus-auth_8c_source.html#l02681">_dbus_auth_decode_data()</a>, <a class="el" href="dbus-auth_8c_source.html#l02431">_dbus_auth_do_work()</a>, <a class="el" href="dbus-auth_8c_source.html#l02618">_dbus_auth_encode_data()</a>, <a class="el" href="dbus-auth_8c_source.html#l02475">_dbus_auth_get_bytes_to_send()</a>, <a class="el" href="dbus-auth_8c_source.html#l02774">_dbus_auth_set_context()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l01231">_dbus_command_for_pid()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02759">_dbus_concat_dir_and_file()</a>, <a class="el" href="dbus-file-unix_8c_source.html#l00055">_dbus_file_get_contents()</a>, <a class="el" href="dbus-sysdeps_8c_source.html#l00570">_dbus_generate_random_ascii()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02852">_dbus_generate_random_bytes()</a>, <a class="el" href="dbus-marshal-header_8c_source.html#l00490">_dbus_header_copy()</a>, <a class="el" href="dbus-marshal-header_8c_source.html#l00528">_dbus_header_create()</a>, <a class="el" href="dbus-marshal-header_8c_source.html#l00174">_dbus_header_get_byte_order()</a>, <a class="el" href="dbus-marshal-header_8c_source.html#l00970">_dbus_header_load()</a>, <a class="el" href="dbus-userdb_8c_source.html#l00103">_dbus_is_a_number()</a>, <a class="el" href="dbus-keyring_8c_source.html#l01001">_dbus_keyring_get_hex_key()</a>, <a class="el" href="dbus-keyring_8c_source.html#l00847">_dbus_keyring_validate_context()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l01378">_dbus_listen_tcp_socket()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l03651">_dbus_lookup_launchd_socket()</a>, <a class="el" href="dbus-marshal-byteswap_8c_source.html#l00222">_dbus_marshal_byteswap()</a>, <a class="el" href="dbus-marshal-basic_8c_source.html#l00454">_dbus_marshal_read_uint32()</a>, <a class="el" href="dbus-message_8c_source.html#l00280">_dbus_message_add_counter_link()</a>, <a class="el" href="dbus-message_8c_source.html#l04302">_dbus_message_loader_queue_messages()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02453">_dbus_parse_uid()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l00712">_dbus_path_is_absolute()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l00626">_dbus_read()</a>, <a class="el" href="dbus-sysdeps-win_8c_source.html#l00379">_dbus_read_socket()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l00274">_dbus_read_socket_with_unix_fds()</a>, <a class="el" href="dbus-sha_8c_source.html#l00483">_dbus_sha_compute()</a>, <a class="el" href="dbus-sha_8c_source.html#l00432">_dbus_sha_update()</a>, <a class="el" href="dbus-sysdeps_8c_source.html#l00221">_dbus_split_paths_and_append()</a>, <a class="el" href="dbus-string_8c_source.html#l02207">_dbus_string_append_byte_as_hex()</a>, <a class="el" href="dbus-sysdeps_8c_source.html#l00349">_dbus_string_append_int()</a>, <a class="el" href="dbus-sysdeps_8c_source.html#l00387">_dbus_string_append_uint()</a>, <a class="el" href="dbus-string_8c_source.html#l01971">_dbus_string_chop_white()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l01155">_dbus_string_get_dirname()</a>, <a class="el" href="dbus-string_8c_source.html#l02291">_dbus_string_hex_decode()</a>, <a class="el" href="dbus-string_8c_source.html#l02241">_dbus_string_hex_encode()</a>, <a class="el" href="dbus-sysdeps_8c_source.html#l00430">_dbus_string_parse_int()</a>, <a class="el" href="dbus-sysdeps_8c_source.html#l00469">_dbus_string_parse_uint()</a>, <a class="el" href="dbus-string_8c_source.html#l01891">_dbus_string_pop_line()</a>, <a class="el" href="dbus-file-unix_8c_source.html#l00164">_dbus_string_save_to_file()</a>, <a class="el" href="dbus-string_8c_source.html#l01449">_dbus_string_split_on_byte()</a>, <a class="el" href="dbus-marshal-recursive_8c_source.html#l01363">_dbus_type_reader_set_basic()</a>, <a class="el" href="dbus-internals_8c_source.html#l00663">_dbus_uuid_encode()</a>, <a class="el" href="dbus-marshal-validate_8c_source.html#l00703">_dbus_validate_body_with_reason()</a>, <a class="el" href="dbus-marshal-validate_8c_source.html#l00921">_dbus_validate_interface()</a>, <a class="el" href="dbus-marshal-validate_8c_source.html#l00997">_dbus_validate_member()</a>, <a class="el" href="dbus-marshal-validate_8c_source.html#l00785">_dbus_validate_path()</a>, <a class="el" href="dbus-marshal-validate_8c_source.html#l01228">_dbus_validate_signature()</a>, <a class="el" href="dbus-marshal-basic_8c_source.html#l01360">_dbus_verbose_bytes_of_string()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l00240">_dbus_write_pid_to_file_and_pipe()</a>, <a class="el" href="dbus-address_8c_source.html#l00617">dbus_address_unescape_value()</a>, <a class="el" href="dbus-message_8c_source.html#l01587">dbus_message_copy()</a>, <a class="el" href="dbus-message_8c_source.html#l02421">dbus_message_iter_init_append()</a>, <a class="el" href="dbus-message_8c_source.html#l00384">dbus_message_lock()</a>, <a class="el" href="dbus-message_8c_source.html#l04721">dbus_message_marshal()</a>, <a class="el" href="dbus-address_8c_source.html#l00363">dbus_parse_address()</a>, <a class="el" href="dbus-signature_8c_source.html#l00233">dbus_signature_validate()</a>, <a class="el" href="dbus-syntax_8c_source.html#l00242">dbus_validate_bus_name()</a>, <a class="el" href="dbus-syntax_8c_source.html#l00195">dbus_validate_error_name()</a>, <a class="el" href="dbus-syntax_8c_source.html#l00101">dbus_validate_interface()</a>, <a class="el" href="dbus-syntax_8c_source.html#l00148">dbus_validate_member()</a>, <a class="el" href="dbus-syntax_8c_source.html#l00054">dbus_validate_path()</a>, and <a class="el" href="dbus-syntax_8c_source.html#l00289">dbus_validate_utf8()</a>.</p>

</div>
</div>
<a class="anchor" id="ga0a8c20d855f9ddc05718b9e2ac0e33d8"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_hex_decode" ref="ga0a8c20d855f9ddc05718b9e2ac0e33d8" args="(const DBusString *source, int start, int *end_return, DBusString *dest, int insert_at)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusString.html#ga0a8c20d855f9ddc05718b9e2ac0e33d8">_dbus_string_hex_decode</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>source</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>start</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>end_return</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>insert_at</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Decodes a string from hex encoding. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">source</td><td>the string to decode </td></tr>
    <tr><td class="paramname">start</td><td>byte index to start decode </td></tr>
    <tr><td class="paramname">end_return</td><td>return location of the end of the hex data, or <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> </td></tr>
    <tr><td class="paramname">dest</td><td>string where decoded data should be placed </td></tr>
    <tr><td class="paramname">insert_at</td><td>where to place decoded data </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> if decoding was successful, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if no memory. </dd></dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l02291">2291</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string_8c_source.html#l01139">_dbus_string_append_byte()</a>, <a class="el" href="dbus-string_8c_source.html#l00242">_dbus_string_free()</a>, <a class="el" href="dbus-string_8c_source.html#l00545">_dbus_string_get_byte()</a>, <a class="el" href="dbus-string_8c_source.html#l00451">_dbus_string_get_const_data()</a>, <a class="el" href="dbus-string_8c_source.html#l00722">_dbus_string_get_length()</a>, <a class="el" href="dbus-string_8c_source.html#l00175">_dbus_string_init()</a>, <a class="el" href="dbus-string_8c_source.html#l01241">_dbus_string_move()</a>, <a class="el" href="dbus-string_8c_source.html#l00521">_dbus_string_set_byte()</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

</div>
</div>
<a class="anchor" id="gaabb4873f436e015944a33cd1e3815cc9"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_hex_encode" ref="gaabb4873f436e015944a33cd1e3815cc9" args="(const DBusString *source, int start, DBusString *dest, int insert_at)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusString.html#gaabb4873f436e015944a33cd1e3815cc9">_dbus_string_hex_encode</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>source</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>start</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>insert_at</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Encodes a string in hex, the way MD5 and SHA-1 are usually encoded. </p>
<p>(Each byte is two hex digits.)</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">source</td><td>the string to encode </td></tr>
    <tr><td class="paramname">start</td><td>byte index to start encoding </td></tr>
    <tr><td class="paramname">dest</td><td>string where encoded data should be placed </td></tr>
    <tr><td class="paramname">insert_at</td><td>where to place encoded data </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> if encoding was successful, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if no memory etc. </dd></dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l02241">2241</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string_8c_source.html#l02207">_dbus_string_append_byte_as_hex()</a>, <a class="el" href="dbus-string_8c_source.html#l00242">_dbus_string_free()</a>, <a class="el" href="dbus-string_8c_source.html#l00451">_dbus_string_get_const_data()</a>, <a class="el" href="dbus-string_8c_source.html#l00722">_dbus_string_get_length()</a>, <a class="el" href="dbus-string_8c_source.html#l00175">_dbus_string_init()</a>, <a class="el" href="dbus-string_8c_source.html#l01241">_dbus_string_move()</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

<p>Referenced by <a class="el" href="dbus-keyring_8c_source.html#l01001">_dbus_keyring_get_hex_key()</a>, <a class="el" href="dbus-sha_8c_source.html#l00483">_dbus_sha_compute()</a>, and <a class="el" href="dbus-internals_8c_source.html#l00663">_dbus_uuid_encode()</a>.</p>

</div>
</div>
<a class="anchor" id="ga348252317f7bb8ac43529972945830ae"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_init" ref="ga348252317f7bb8ac43529972945830ae" args="(DBusString *str)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusString.html#ga348252317f7bb8ac43529972945830ae">_dbus_string_init</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>str</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Initializes a string. </p>
<p>The string starts life with zero length. The string must eventually be freed with <a class="el" href="group__DBusString.html#ga781ca91acda49a834dce7d0ed0eef212" title="Frees a string created by _dbus_string_init().">_dbus_string_free()</a>.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>memory to hold the string </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> on success, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if no memory </dd></dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l00175">175</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string_8c_source.html#l00132">_dbus_string_init_preallocated()</a>.</p>

<p>Referenced by <a class="el" href="dbus-sysdeps-unix_8c_source.html#l03806">_dbus_append_keyring_directory_for_credentials()</a>, <a class="el" href="dbus-auth_8c_source.html#l02293">_dbus_auth_client_new()</a>, <a class="el" href="dbus-auth_8c_source.html#l02247">_dbus_auth_server_new()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l01231">_dbus_command_for_pid()</a>, <a class="el" href="dbus-sysdeps_8c_source.html#l00538">_dbus_generate_random_bytes_buffer()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l03508">_dbus_get_autolaunch_address()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l01332">_dbus_get_standard_session_servicedirs()</a>, <a class="el" href="dbus-userdb-util_8c_source.html#l00049">_dbus_is_console_user()</a>, <a class="el" href="dbus-keyring_8c_source.html#l00709">_dbus_keyring_new_for_credentials()</a>, <a class="el" href="dbus-message_8c_source.html#l03863">_dbus_message_loader_new()</a>, <a class="el" href="dbus-sysdeps-win_8c_source.html#l01947">_dbus_read_credentials_socket()</a>, <a class="el" href="dbus-server_8c_source.html#l00111">_dbus_server_init_base()</a>, <a class="el" href="dbus-server-unix_8c_source.html#l00054">_dbus_server_listen_platform_specific()</a>, <a class="el" href="dbus-server-unix_8c_source.html#l00237">_dbus_server_new_for_domain_socket()</a>, <a class="el" href="dbus-server-launchd_8c_source.html#l00065">_dbus_server_new_for_launchd()</a>, <a class="el" href="dbus-server-socket_8c_source.html#l00388">_dbus_server_new_for_tcp_socket()</a>, <a class="el" href="dbus-sha_8c_source.html#l00483">_dbus_sha_compute()</a>, <a class="el" href="dbus-sysdeps_8c_source.html#l00221">_dbus_split_paths_and_append()</a>, <a class="el" href="dbus-string_8c_source.html#l02291">_dbus_string_hex_decode()</a>, <a class="el" href="dbus-string_8c_source.html#l02241">_dbus_string_hex_encode()</a>, <a class="el" href="dbus-file-unix_8c_source.html#l00164">_dbus_string_save_to_file()</a>, <a class="el" href="dbus-string_8c_source.html#l00624">_dbus_string_steal_data()</a>, <a class="el" href="dbus-transport-unix_8c_source.html#l00058">_dbus_transport_new_for_domain_socket()</a>, <a class="el" href="dbus-transport-socket_8c_source.html#l01256">_dbus_transport_new_for_socket()</a>, <a class="el" href="dbus-transport-socket_8c_source.html#l01331">_dbus_transport_new_for_tcp_socket()</a>, <a class="el" href="dbus-transport-unix_8c_source.html#l00225">_dbus_transport_open_platform_specific()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l00644">_dbus_user_at_console()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l00240">_dbus_write_pid_to_file_and_pipe()</a>, <a class="el" href="dbus-internals_8c_source.html#l00757">_dbus_write_uuid_file()</a>, <a class="el" href="dbus-address_8c_source.html#l00583">dbus_address_escape_value()</a>, <a class="el" href="dbus-address_8c_source.html#l00617">dbus_address_unescape_value()</a>, <a class="el" href="dbus-connection_8c_source.html#l04549">dbus_connection_dispatch()</a>, <a class="el" href="dbus-misc_8c_source.html#l00073">dbus_get_local_machine_id()</a>, <a class="el" href="dbus-message_8c_source.html#l02220">dbus_message_iter_get_signature()</a>, <a class="el" href="dbus-message_8c_source.html#l04721">dbus_message_marshal()</a>, <a class="el" href="dbus-message_8c_source.html#l01542">dbus_message_new_error_printf()</a>, <a class="el" href="dbus-address_8c_source.html#l00363">dbus_parse_address()</a>, <a class="el" href="dbus-errors_8c_source.html#l00354">dbus_set_error()</a>, and <a class="el" href="dbus-signature_8c_source.html#l00112">dbus_signature_iter_get_signature()</a>.</p>

</div>
</div>
<a class="anchor" id="ga374640ddfa2f0b27a8356e2379ba8043"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_init_const" ref="ga374640ddfa2f0b27a8356e2379ba8043" args="(DBusString *str, const char *value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group__DBusString.html#ga374640ddfa2f0b27a8356e2379ba8043">_dbus_string_init_const</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>value</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Initializes a constant string. </p>
<p>The value parameter is not copied (should be static), and the string may never be modified. It is safe but not necessary to call <a class="el" href="group__DBusString.html#ga781ca91acda49a834dce7d0ed0eef212" title="Frees a string created by _dbus_string_init().">_dbus_string_free()</a> on a const string. The string has a length limit of MAXINT - 8.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>memory to use for the string </td></tr>
    <tr><td class="paramname">value</td><td>a string to be stored in str (not copied!!!) </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l00190">190</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string_8c_source.html#l00210">_dbus_string_init_const_len()</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

<p>Referenced by <a class="el" href="dbus-sysdeps-unix_8c_source.html#l04035">_dbus_append_address_from_socket()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l03806">_dbus_append_keyring_directory_for_credentials()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l00334">_dbus_change_to_daemon_user()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l01332">_dbus_get_standard_session_servicedirs()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l01424">_dbus_get_standard_system_servicedirs()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l03604">_dbus_read_local_machine_uuid()</a>, <a class="el" href="dbus-server-unix_8c_source.html#l00237">_dbus_server_new_for_domain_socket()</a>, <a class="el" href="dbus-server-socket_8c_source.html#l00388">_dbus_server_new_for_tcp_socket()</a>, <a class="el" href="dbus-sysdeps_8c_source.html#l00221">_dbus_split_paths_and_append()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l00644">_dbus_user_at_console()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l00314">_dbus_verify_daemon_user()</a>, <a class="el" href="dbus-address_8c_source.html#l00583">dbus_address_escape_value()</a>, <a class="el" href="dbus-address_8c_source.html#l00617">dbus_address_unescape_value()</a>, <a class="el" href="dbus-errors_8c_source.html#l00302">dbus_error_has_name()</a>, <a class="el" href="dbus-uuidgen_8c_source.html#l00083">dbus_internal_do_not_use_get_uuid()</a>, <a class="el" href="dbus-message_8c_source.html#l02849">dbus_message_iter_open_container()</a>, <a class="el" href="dbus-address_8c_source.html#l00363">dbus_parse_address()</a>, <a class="el" href="dbus-signature_8c_source.html#l00233">dbus_signature_validate()</a>, <a class="el" href="dbus-syntax_8c_source.html#l00242">dbus_validate_bus_name()</a>, <a class="el" href="dbus-syntax_8c_source.html#l00195">dbus_validate_error_name()</a>, <a class="el" href="dbus-syntax_8c_source.html#l00101">dbus_validate_interface()</a>, <a class="el" href="dbus-syntax_8c_source.html#l00148">dbus_validate_member()</a>, <a class="el" href="dbus-syntax_8c_source.html#l00054">dbus_validate_path()</a>, and <a class="el" href="dbus-syntax_8c_source.html#l00289">dbus_validate_utf8()</a>.</p>

</div>
</div>
<a class="anchor" id="ga6792a5c1725faa9d635d95f7a3b5bfae"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_init_const_len" ref="ga6792a5c1725faa9d635d95f7a3b5bfae" args="(DBusString *str, const char *value, int len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group__DBusString.html#ga6792a5c1725faa9d635d95f7a3b5bfae">_dbus_string_init_const_len</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Initializes a constant string with a length. </p>
<p>The value parameter is not copied (should be static), and the string may never be modified. It is safe but not necessary to call <a class="el" href="group__DBusString.html#ga781ca91acda49a834dce7d0ed0eef212" title="Frees a string created by _dbus_string_init().">_dbus_string_free()</a> on a const string.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>memory to use for the string </td></tr>
    <tr><td class="paramname">value</td><td>a string to be stored in str (not copied!!!) </td></tr>
    <tr><td class="paramname">len</td><td>the length to use </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l00210">210</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string-private_8h_source.html#l00069">_DBUS_STRING_MAX_LENGTH</a>, <a class="el" href="dbus-string-private_8h_source.html#l00051">DBusRealString::align_offset</a>, <a class="el" href="dbus-string-private_8h_source.html#l00047">DBusRealString::allocated</a>, <a class="el" href="dbus-string-private_8h_source.html#l00048">DBusRealString::constant</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-string-private_8h_source.html#l00050">DBusRealString::invalid</a>, <a class="el" href="dbus-string-private_8h_source.html#l00046">DBusRealString::len</a>, <a class="el" href="dbus-string-private_8h_source.html#l00049">DBusRealString::locked</a>, <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="dbus-string-private_8h_source.html#l00045">DBusRealString::str</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

<p>Referenced by <a class="el" href="dbus-sysdeps-win_8c_source.html#l01870">_dbus_send_credentials_socket()</a>, <a class="el" href="dbus-string_8c_source.html#l00190">_dbus_string_init_const()</a>, <a class="el" href="dbus-internals_8c_source.html#l00663">_dbus_uuid_encode()</a>, and <a class="el" href="dbus-message_8c_source.html#l04844">dbus_message_demarshal_bytes_needed()</a>.</p>

</div>
</div>
<a class="anchor" id="ga569b784beea1b4fa98f05d27e6dd0e72"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_init_preallocated" ref="ga569b784beea1b4fa98f05d27e6dd0e72" args="(DBusString *str, int allocate_size)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusString.html#ga569b784beea1b4fa98f05d27e6dd0e72">_dbus_string_init_preallocated</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>allocate_size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Initializes a string that can be up to the given allocation size before it has to realloc. </p>
<p>The string starts life with zero length. The string must eventually be freed with <a class="el" href="group__DBusString.html#ga781ca91acda49a834dce7d0ed0eef212" title="Frees a string created by _dbus_string_init().">_dbus_string_free()</a>.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>memory to hold the string </td></tr>
    <tr><td class="paramname">allocate_size</td><td>amount to preallocate </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> on success, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if no memory </dd></dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l00132">132</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string-private_8h_source.html#l00051">DBusRealString::align_offset</a>, <a class="el" href="dbus-string-private_8h_source.html#l00047">DBusRealString::allocated</a>, <a class="el" href="dbus-string-private_8h_source.html#l00048">DBusRealString::constant</a>, <a class="el" href="dbus-memory_8c_source.html#l00461">dbus_malloc()</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-string-private_8h_source.html#l00050">DBusRealString::invalid</a>, <a class="el" href="dbus-string-private_8h_source.html#l00046">DBusRealString::len</a>, <a class="el" href="dbus-string-private_8h_source.html#l00049">DBusRealString::locked</a>, <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="dbus-string-private_8h_source.html#l00045">DBusRealString::str</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

<p>Referenced by <a class="el" href="dbus-marshal-header_8c_source.html#l00490">_dbus_header_copy()</a>, <a class="el" href="dbus-marshal-header_8c_source.html#l00460">_dbus_header_init()</a>, <a class="el" href="dbus-string_8c_source.html#l00175">_dbus_string_init()</a>, and <a class="el" href="dbus-message_8c_source.html#l01587">dbus_message_copy()</a>.</p>

</div>
</div>
<a class="anchor" id="gae7770fdabda32f3e8d9dd50b083dbf1e"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_insert_2_aligned" ref="gae7770fdabda32f3e8d9dd50b083dbf1e" args="(DBusString *str, int insert_at, const unsigned char octets[2])" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusString.html#gae7770fdabda32f3e8d9dd50b083dbf1e">_dbus_string_insert_2_aligned</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>insert_at</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const unsigned char&#160;</td>
          <td class="paramname"><em>octets</em>[2]&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Inserts 2 bytes aligned on a 2 byte boundary with any alignment padding initialized to 0. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>the <a class="el" href="structDBusString.html">DBusString</a> </td></tr>
    <tr><td class="paramname">insert_at</td><td>where to insert </td></tr>
    <tr><td class="paramname">octets</td><td>2 bytes to insert </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if not enough memory. </dd></dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l00955">955</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string_8c_source.html#l00934">ASSIGN_2_OCTETS</a>, <a class="el" href="dbus-string-private_8h_source.html#l00093">DBUS_STRING_PREAMBLE</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-string-private_8h_source.html#l00045">DBusRealString::str</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

</div>
</div>
<a class="anchor" id="gadd296cf1e6af18cb5bec438e9d353b4e"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_insert_4_aligned" ref="gadd296cf1e6af18cb5bec438e9d353b4e" args="(DBusString *str, int insert_at, const unsigned char octets[4])" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusString.html#gadd296cf1e6af18cb5bec438e9d353b4e">_dbus_string_insert_4_aligned</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>insert_at</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const unsigned char&#160;</td>
          <td class="paramname"><em>octets</em>[4]&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Inserts 4 bytes aligned on a 4 byte boundary with any alignment padding initialized to 0. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>the <a class="el" href="structDBusString.html">DBusString</a> </td></tr>
    <tr><td class="paramname">insert_at</td><td>where to insert </td></tr>
    <tr><td class="paramname">octets</td><td>4 bytes to insert </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if not enough memory. </dd></dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l00979">979</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string_8c_source.html#l00938">ASSIGN_4_OCTETS</a>, <a class="el" href="dbus-string-private_8h_source.html#l00093">DBUS_STRING_PREAMBLE</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-string-private_8h_source.html#l00045">DBusRealString::str</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

</div>
</div>
<a class="anchor" id="ga108d7d64fb88fffca31e33181cefa232"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_insert_8_aligned" ref="ga108d7d64fb88fffca31e33181cefa232" args="(DBusString *str, int insert_at, const unsigned char octets[8])" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusString.html#ga108d7d64fb88fffca31e33181cefa232">_dbus_string_insert_8_aligned</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>insert_at</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const unsigned char&#160;</td>
          <td class="paramname"><em>octets</em>[8]&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Inserts 8 bytes aligned on an 8 byte boundary with any alignment padding initialized to 0. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>the <a class="el" href="structDBusString.html">DBusString</a> </td></tr>
    <tr><td class="paramname">insert_at</td><td>where to insert </td></tr>
    <tr><td class="paramname">octets</td><td>8 bytes to insert </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if not enough memory. </dd></dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l01003">1003</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string_8c_source.html#l00942">ASSIGN_8_OCTETS</a>, <a class="el" href="dbus-string-private_8h_source.html#l00093">DBUS_STRING_PREAMBLE</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-string-private_8h_source.html#l00045">DBusRealString::str</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

</div>
</div>
<a class="anchor" id="ga267217e412c74c74dc3a3e412da5c600"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_insert_alignment" ref="ga267217e412c74c74dc3a3e412da5c600" args="(DBusString *str, int *insert_at, int alignment)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusString.html#ga267217e412c74c74dc3a3e412da5c600">_dbus_string_insert_alignment</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>insert_at</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>alignment</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Inserts padding at *insert_at such to align it to the given boundary. </p>
<p>Initializes the padding to nul bytes. Sets *insert_at to the aligned position.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>the <a class="el" href="structDBusString.html">DBusString</a> </td></tr>
    <tr><td class="paramname">insert_at</td><td>location to be aligned </td></tr>
    <tr><td class="paramname">alignment</td><td>alignment boundary (1, 2, 4, or 8) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if not enough memory. </dd></dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l01031">1031</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string-private_8h_source.html#l00093">DBUS_STRING_PREAMBLE</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

</div>
</div>
<a class="anchor" id="gab0770800dce6df97e5d246105a44e7b4"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_insert_byte" ref="gab0770800dce6df97e5d246105a44e7b4" args="(DBusString *str, int i, unsigned char byte)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusString.html#gab0770800dce6df97e5d246105a44e7b4">_dbus_string_insert_byte</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>i</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char&#160;</td>
          <td class="paramname"><em>byte</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Inserts a single byte at the given position. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>the string </td></tr>
    <tr><td class="paramname">i</td><td>the position </td></tr>
    <tr><td class="paramname">byte</td><td>the value to insert </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> on success </dd></dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l00597">597</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string-private_8h_source.html#l00093">DBUS_STRING_PREAMBLE</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-string-private_8h_source.html#l00045">DBusRealString::str</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

<p>Referenced by <a class="el" href="dbus-marshal-basic_8c_source.html#l00794">_dbus_marshal_write_basic()</a>.</p>

</div>
</div>
<a class="anchor" id="gaa0964d662ad17c58eb044c1b153017a6"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_insert_bytes" ref="gaa0964d662ad17c58eb044c1b153017a6" args="(DBusString *str, int i, int n_bytes, unsigned char byte)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusString.html#gaa0964d662ad17c58eb044c1b153017a6">_dbus_string_insert_bytes</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>i</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>n_bytes</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char&#160;</td>
          <td class="paramname"><em>byte</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Inserts a number of bytes of a given value at the given position. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>the string </td></tr>
    <tr><td class="paramname">i</td><td>the position </td></tr>
    <tr><td class="paramname">n_bytes</td><td>number of bytes </td></tr>
    <tr><td class="paramname">byte</td><td>the value to insert </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> on success </dd></dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l00567">567</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string-private_8h_source.html#l00093">DBUS_STRING_PREAMBLE</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-string-private_8h_source.html#l00045">DBusRealString::str</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

</div>
</div>
<a class="anchor" id="ga8f13997d90ceed2f437706e6b7804d9b"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_lengthen" ref="ga8f13997d90ceed2f437706e6b7804d9b" args="(DBusString *str, int additional_length)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusString.html#ga8f13997d90ceed2f437706e6b7804d9b">_dbus_string_lengthen</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>additional_length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Makes a string longer by the given number of bytes. </p>
<p>Checks whether adding additional_length to the current length would overflow an integer, and checks for exceeding a string's max length. The new bytes are not initialized, other than nul-terminating the end of the string. The uninitialized bytes may contain nul bytes or other junk.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>a string </td></tr>
    <tr><td class="paramname">additional_length</td><td>length to add to the string. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> on success. </dd></dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l00743">743</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string-private_8h_source.html#l00069">_DBUS_STRING_MAX_LENGTH</a>, <a class="el" href="dbus-string-private_8h_source.html#l00093">DBUS_STRING_PREAMBLE</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="dbus-string-private_8h_source.html#l00046">DBusRealString::len</a>.</p>

<p>Referenced by <a class="el" href="dbus-sysdeps-win_8c_source.html#l02256">_dbus_generate_random_bytes()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l00626">_dbus_read()</a>, <a class="el" href="dbus-sysdeps-win_8c_source.html#l00379">_dbus_read_socket()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l00274">_dbus_read_socket_with_unix_fds()</a>, <a class="el" href="dbus-string_8c_source.html#l00882">_dbus_string_alloc_space()</a>, <a class="el" href="dbus-sysdeps_8c_source.html#l00349">_dbus_string_append_int()</a>, <a class="el" href="dbus-string_8c_source.html#l01055">_dbus_string_append_printf_valist()</a>, and <a class="el" href="dbus-sysdeps_8c_source.html#l00387">_dbus_string_append_uint()</a>.</p>

</div>
</div>
<a class="anchor" id="gad379fce8d4ef4f7e28f81f50b46ee4c9"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_move" ref="gad379fce8d4ef4f7e28f81f50b46ee4c9" args="(DBusString *source, int start, DBusString *dest, int insert_at)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusString.html#gad379fce8d4ef4f7e28f81f50b46ee4c9">_dbus_string_move</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>source</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>start</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>insert_at</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Moves the end of one string into another string. </p>
<p>Both strings must be initialized, valid strings.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">source</td><td>the source string </td></tr>
    <tr><td class="paramname">start</td><td>where to chop off the source string </td></tr>
    <tr><td class="paramname">dest</td><td>the destination string </td></tr>
    <tr><td class="paramname">insert_at</td><td>where to move the chopped-off part of source string </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if not enough memory </dd></dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l01241">1241</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string_8c_source.html#l01290">_dbus_string_move_len()</a>, and <a class="el" href="dbus-string-private_8h_source.html#l00046">DBusRealString::len</a>.</p>

<p>Referenced by <a class="el" href="dbus-string_8c_source.html#l02291">_dbus_string_hex_decode()</a>, and <a class="el" href="dbus-string_8c_source.html#l02241">_dbus_string_hex_encode()</a>.</p>

</div>
</div>
<a class="anchor" id="gab8e2dcb2dc71bf225da0827c6086a727"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_move_len" ref="gab8e2dcb2dc71bf225da0827c6086a727" args="(DBusString *source, int start, int len, DBusString *dest, int insert_at)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusString.html#gab8e2dcb2dc71bf225da0827c6086a727">_dbus_string_move_len</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>source</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>start</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>insert_at</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Like <a class="el" href="group__DBusString.html#gad379fce8d4ef4f7e28f81f50b46ee4c9" title="Moves the end of one string into another string.">_dbus_string_move()</a>, but can move a segment from the middle of the source string. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">source</td><td>the source string </td></tr>
    <tr><td class="paramname">start</td><td>first byte of source string to move </td></tr>
    <tr><td class="paramname">len</td><td>length of segment to move </td></tr>
    <tr><td class="paramname">dest</td><td>the destination string </td></tr>
    <tr><td class="paramname">insert_at</td><td>where to move the bytes from the source string </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if not enough memory </dd></dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l01290">1290</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string_8c_source.html#l01217">DBUS_STRING_COPY_PREAMBLE</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

<p>Referenced by <a class="el" href="dbus-string_8c_source.html#l01241">_dbus_string_move()</a>, <a class="el" href="dbus-string_8c_source.html#l01891">_dbus_string_pop_line()</a>, and <a class="el" href="dbus-string_8c_source.html#l01449">_dbus_string_split_on_byte()</a>.</p>

</div>
</div>
<a class="anchor" id="ga93e22894a5e2e0d65c179c7d36a8b1c8"></a><!-- doxytag: member="dbus&#45;sysdeps.c::_dbus_string_parse_int" ref="ga93e22894a5e2e0d65c179c7d36a8b1c8" args="(const DBusString *str, int start, long *value_return, int *end_return)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusString.html#ga93e22894a5e2e0d65c179c7d36a8b1c8">_dbus_string_parse_int</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>start</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long *&#160;</td>
          <td class="paramname"><em>value_return</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>end_return</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Parses an integer contained in a <a class="el" href="structDBusString.html">DBusString</a>. </p>
<p>Either return parameter may be <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> if you aren't interested in it. The integer is parsed and stored in value_return. Return parameters are not initialized if the function returns <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a>.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>the string </td></tr>
    <tr><td class="paramname">start</td><td>the byte index of the start of the integer </td></tr>
    <tr><td class="paramname">value_return</td><td>return location of the integer value or <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> </td></tr>
    <tr><td class="paramname">end_return</td><td>return location of the end of the integer, or <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> on success </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps_8c_source.html#l00430">430</a> of file <a class="el" href="dbus-sysdeps_8c_source.html">dbus-sysdeps.c</a>.</p>

<p>References <a class="el" href="dbus-sysdeps_8c_source.html#l00710">_dbus_set_errno_to_zero()</a>, <a class="el" href="dbus-string_8c_source.html#l00497">_dbus_string_get_const_data_len()</a>, <a class="el" href="dbus-string_8c_source.html#l00722">_dbus_string_get_length()</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

<p>Referenced by <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02453">_dbus_parse_uid()</a>.</p>

</div>
</div>
<a class="anchor" id="ga84cc8d08bb48b7915d673f7cc7886f97"></a><!-- doxytag: member="dbus&#45;sysdeps.c::_dbus_string_parse_uint" ref="ga84cc8d08bb48b7915d673f7cc7886f97" args="(const DBusString *str, int start, unsigned long *value_return, int *end_return)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusString.html#ga84cc8d08bb48b7915d673f7cc7886f97">_dbus_string_parse_uint</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>start</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned long *&#160;</td>
          <td class="paramname"><em>value_return</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>end_return</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Parses an unsigned integer contained in a <a class="el" href="structDBusString.html">DBusString</a>. </p>
<p>Either return parameter may be <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> if you aren't interested in it. The integer is parsed and stored in value_return. Return parameters are not initialized if the function returns <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a>.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>the string </td></tr>
    <tr><td class="paramname">start</td><td>the byte index of the start of the integer </td></tr>
    <tr><td class="paramname">value_return</td><td>return location of the integer value or <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> </td></tr>
    <tr><td class="paramname">end_return</td><td>return location of the end of the integer, or <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> on success </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps_8c_source.html#l00469">469</a> of file <a class="el" href="dbus-sysdeps_8c_source.html">dbus-sysdeps.c</a>.</p>

<p>References <a class="el" href="dbus-sysdeps_8c_source.html#l00710">_dbus_set_errno_to_zero()</a>, <a class="el" href="dbus-string_8c_source.html#l00497">_dbus_string_get_const_data_len()</a>, <a class="el" href="dbus-string_8c_source.html#l00722">_dbus_string_get_length()</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

<p>Referenced by <a class="el" href="dbus-userdb_8c_source.html#l00103">_dbus_is_a_number()</a>.</p>

</div>
</div>
<a class="anchor" id="ga8b7fc22e6738173e1b2cef4b91b9c3c1"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_pop_line" ref="ga8b7fc22e6738173e1b2cef4b91b9c3c1" args="(DBusString *source, DBusString *dest)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusString.html#ga8b7fc22e6738173e1b2cef4b91b9c3c1">_dbus_string_pop_line</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>source</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>dest</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Assigns a newline-terminated or \r\n-terminated line from the front of the string to the given dest string. </p>
<p>The dest string's previous contents are deleted. If the source string contains no newline, moves the entire source string to the dest string.</p>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000049">Todo:</a></b></dt><dd>owen correctly notes that this is a stupid function (it was written purely for test code, e.g. dbus-message-builder.c). Probably should be enforced as test code only with ifdef DBUS_ENABLE_EMBEDDED_TESTS</dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">source</td><td>the source string </td></tr>
    <tr><td class="paramname">dest</td><td>the destination string (contents are replaced) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if no memory, or source has length 0 </dd></dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l01891">1891</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string_8c_source.html#l01609">_dbus_string_find_eol()</a>, <a class="el" href="dbus-string_8c_source.html#l00722">_dbus_string_get_length()</a>, <a class="el" href="dbus-string_8c_source.html#l01290">_dbus_string_move_len()</a>, <a class="el" href="dbus-string_8c_source.html#l00785">_dbus_string_set_length()</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

</div>
</div>
<a class="anchor" id="gafe7921a92467cdefaa0a7829d6cf260b"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_replace_len" ref="gafe7921a92467cdefaa0a7829d6cf260b" args="(const DBusString *source, int start, int len, DBusString *dest, int replace_at, int replace_len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusString.html#gafe7921a92467cdefaa0a7829d6cf260b">_dbus_string_replace_len</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>source</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>start</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>replace_at</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>replace_len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Replaces a segment of dest string with a segment of source string. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">source</td><td>the source string </td></tr>
    <tr><td class="paramname">start</td><td>where to start copying the source string </td></tr>
    <tr><td class="paramname">len</td><td>length of segment to copy </td></tr>
    <tr><td class="paramname">dest</td><td>the destination string </td></tr>
    <tr><td class="paramname">replace_at</td><td>start of segment of dest string to replace </td></tr>
    <tr><td class="paramname">replace_len</td><td>length of segment of dest string to replace </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if not enough memory </dd></dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l01386">1386</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string_8c_source.html#l01217">DBUS_STRING_COPY_PREAMBLE</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

<p>Referenced by <a class="el" href="dbus-auth_8c_source.html#l02774">_dbus_auth_set_context()</a>.</p>

</div>
</div>
<a class="anchor" id="gab6c823e9406208363fcb5e96d580e738"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_set_byte" ref="gab6c823e9406208363fcb5e96d580e738" args="(DBusString *str, int i, unsigned char byte)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group__DBusString.html#gab6c823e9406208363fcb5e96d580e738">_dbus_string_set_byte</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>i</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char&#160;</td>
          <td class="paramname"><em>byte</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sets the value of the byte at the given position. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>the string </td></tr>
    <tr><td class="paramname">i</td><td>the position </td></tr>
    <tr><td class="paramname">byte</td><td>the new value </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l00521">521</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string-private_8h_source.html#l00093">DBUS_STRING_PREAMBLE</a>, and <a class="el" href="dbus-string-private_8h_source.html#l00045">DBusRealString::str</a>.</p>

<p>Referenced by <a class="el" href="dbus-sysdeps_8c_source.html#l00570">_dbus_generate_random_ascii()</a>, <a class="el" href="dbus-marshal-header_8c_source.html#l01496">_dbus_header_byteswap()</a>, <a class="el" href="dbus-marshal-basic_8c_source.html#l00370">_dbus_marshal_set_basic()</a>, and <a class="el" href="dbus-string_8c_source.html#l02291">_dbus_string_hex_decode()</a>.</p>

</div>
</div>
<a class="anchor" id="ga08c423b93c28dd746dcb93e0461ab95c"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_set_length" ref="ga08c423b93c28dd746dcb93e0461ab95c" args="(DBusString *str, int length)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusString.html#ga08c423b93c28dd746dcb93e0461ab95c">_dbus_string_set_length</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sets the length of a string. </p>
<p>Can be used to truncate or lengthen the string. If the string is lengthened, the function may fail and return <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a>. Newly-added bytes are not initialized, as with <a class="el" href="group__DBusString.html#ga8f13997d90ceed2f437706e6b7804d9b" title="Makes a string longer by the given number of bytes.">_dbus_string_lengthen()</a>.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>a string </td></tr>
    <tr><td class="paramname">length</td><td>new length of the string. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> on failure. </dd></dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l00785">785</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string-private_8h_source.html#l00093">DBUS_STRING_PREAMBLE</a>.</p>

<p>Referenced by <a class="el" href="dbus-address_8c_source.html#l00104">_dbus_address_append_escaped()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l03806">_dbus_append_keyring_directory_for_credentials()</a>, <a class="el" href="dbus-auth_8c_source.html#l02574">_dbus_auth_delete_unused_bytes()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l00825">_dbus_directory_get_next_file()</a>, <a class="el" href="dbus-file-unix_8c_source.html#l00055">_dbus_file_get_contents()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02852">_dbus_generate_random_bytes()</a>, <a class="el" href="dbus-marshal-header_8c_source.html#l00970">_dbus_header_load()</a>, <a class="el" href="dbus-marshal-header_8c_source.html#l00443">_dbus_header_reinit()</a>, <a class="el" href="dbus-message_8c_source.html#l03863">_dbus_message_loader_new()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l00626">_dbus_read()</a>, <a class="el" href="dbus-sysdeps-win_8c_source.html#l00379">_dbus_read_socket()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l00274">_dbus_read_socket_with_unix_fds()</a>, <a class="el" href="dbus-string_8c_source.html#l02207">_dbus_string_append_byte_as_hex()</a>, <a class="el" href="dbus-string_8c_source.html#l01971">_dbus_string_chop_white()</a>, <a class="el" href="dbus-string_8c_source.html#l01891">_dbus_string_pop_line()</a>, and <a class="el" href="dbus-string_8c_source.html#l01449">_dbus_string_split_on_byte()</a>.</p>

</div>
</div>
<a class="anchor" id="ga7af1cbfa905f26d972ab644d890548b8"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_shorten" ref="ga7af1cbfa905f26d972ab644d890548b8" args="(DBusString *str, int length_to_remove)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group__DBusString.html#ga7af1cbfa905f26d972ab644d890548b8">_dbus_string_shorten</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>length_to_remove</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Makes a string shorter by the given number of bytes. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>a string </td></tr>
    <tr><td class="paramname">length_to_remove</td><td>length to remove from the string. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l00763">763</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string-private_8h_source.html#l00093">DBUS_STRING_PREAMBLE</a>, and <a class="el" href="dbus-string-private_8h_source.html#l00046">DBusRealString::len</a>.</p>

<p>Referenced by <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02759">_dbus_concat_dir_and_file()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l03651">_dbus_lookup_launchd_socket()</a>, <a class="el" href="dbus-string_8c_source.html#l00882">_dbus_string_alloc_space()</a>, <a class="el" href="dbus-sysdeps_8c_source.html#l00349">_dbus_string_append_int()</a>, and <a class="el" href="dbus-sysdeps_8c_source.html#l00387">_dbus_string_append_uint()</a>.</p>

</div>
</div>
<a class="anchor" id="ga5698b163289be0066cf10c0f1caf877a"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_skip_blank" ref="ga5698b163289be0066cf10c0f1caf877a" args="(const DBusString *str, int start, int *end)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group__DBusString.html#ga5698b163289be0066cf10c0f1caf877a">_dbus_string_skip_blank</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>start</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>end</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Skips blanks from start, storing the first non-blank in *end (blank is space or tab). </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>the string </td></tr>
    <tr><td class="paramname">start</td><td>where to start </td></tr>
    <tr><td class="paramname">end</td><td>where to store the first non-blank byte index </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l01785">1785</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string-private_8h_source.html#l00114">DBUS_CONST_STRING_PREAMBLE</a>, <a class="el" href="dbus-string-private_8h_source.html#l00121">DBUS_IS_ASCII_BLANK</a>, <a class="el" href="dbus-string-private_8h_source.html#l00127">DBUS_IS_ASCII_WHITE</a>, <a class="el" href="dbus-string-private_8h_source.html#l00046">DBusRealString::len</a>, and <a class="el" href="dbus-string-private_8h_source.html#l00045">DBusRealString::str</a>.</p>

</div>
</div>
<a class="anchor" id="ga8600259d71a4adc14ab4558a9d2a0f7d"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_skip_white" ref="ga8600259d71a4adc14ab4558a9d2a0f7d" args="(const DBusString *str, int start, int *end)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group__DBusString.html#ga8600259d71a4adc14ab4558a9d2a0f7d">_dbus_string_skip_white</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>start</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>end</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Skips whitespace from start, storing the first non-whitespace in *end. </p>
<p>(whitespace is space, tab, newline, CR).</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>the string </td></tr>
    <tr><td class="paramname">start</td><td>where to start </td></tr>
    <tr><td class="paramname">end</td><td>where to store the first non-whitespace byte index </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l01819">1819</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string-private_8h_source.html#l00114">DBUS_CONST_STRING_PREAMBLE</a>, <a class="el" href="dbus-string-private_8h_source.html#l00127">DBUS_IS_ASCII_WHITE</a>, <a class="el" href="dbus-string-private_8h_source.html#l00046">DBusRealString::len</a>, and <a class="el" href="dbus-string-private_8h_source.html#l00045">DBusRealString::str</a>.</p>

<p>Referenced by <a class="el" href="dbus-string_8c_source.html#l01971">_dbus_string_chop_white()</a>.</p>

</div>
</div>
<a class="anchor" id="ga578bb88acec5520825f2ba792cad7938"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_skip_white_reverse" ref="ga578bb88acec5520825f2ba792cad7938" args="(const DBusString *str, int end, int *start)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group__DBusString.html#ga578bb88acec5520825f2ba792cad7938">_dbus_string_skip_white_reverse</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>end</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>start</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Skips whitespace from end, storing the start index of the trailing whitespace in *start. </p>
<p>(whitespace is space, tab, newline, CR).</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>the string </td></tr>
    <tr><td class="paramname">end</td><td>where to start scanning backward </td></tr>
    <tr><td class="paramname">start</td><td>where to store the start of whitespace chars </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l01852">1852</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string-private_8h_source.html#l00114">DBUS_CONST_STRING_PREAMBLE</a>, <a class="el" href="dbus-string-private_8h_source.html#l00127">DBUS_IS_ASCII_WHITE</a>, and <a class="el" href="dbus-string-private_8h_source.html#l00045">DBusRealString::str</a>.</p>

<p>Referenced by <a class="el" href="dbus-string_8c_source.html#l01971">_dbus_string_chop_white()</a>.</p>

</div>
</div>
<a class="anchor" id="ga5d293b49b6afbbd74069d0823acce6b5"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_split_on_byte" ref="ga5d293b49b6afbbd74069d0823acce6b5" args="(DBusString *source, unsigned char byte, DBusString *tail)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusString.html#ga5d293b49b6afbbd74069d0823acce6b5">_dbus_string_split_on_byte</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>source</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char&#160;</td>
          <td class="paramname"><em>byte</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>tail</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Looks for the first occurance of a byte, deletes that byte, and moves everything after the byte to the beginning of a separate string. </p>
<p>Both strings must be initialized, valid strings.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">source</td><td>the source string </td></tr>
    <tr><td class="paramname">byte</td><td>the byte to remove and split the string at </td></tr>
    <tr><td class="paramname">tail</td><td>the split off string </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if not enough memory or if byte could not be found </dd></dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l01449">1449</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string_8c_source.html#l01586">_dbus_string_find()</a>, <a class="el" href="dbus-string_8c_source.html#l00722">_dbus_string_get_length()</a>, <a class="el" href="dbus-string_8c_source.html#l01290">_dbus_string_move_len()</a>, <a class="el" href="dbus-string_8c_source.html#l00785">_dbus_string_set_length()</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

</div>
</div>
<a class="anchor" id="ga4763d06a65cca36986bff030b404c90d"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_starts_with_c_str" ref="ga4763d06a65cca36986bff030b404c90d" args="(const DBusString *a, const char *c_str)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusString.html#ga4763d06a65cca36986bff030b404c90d">_dbus_string_starts_with_c_str</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>c_str</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Checks whether a string starts with the given C string. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">a</td><td>the string </td></tr>
    <tr><td class="paramname">c_str</td><td>the C string </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> if string starts with it </dd></dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l02170">2170</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string-private_8h_source.html#l00076">DBUS_GENERIC_STRING_PREAMBLE</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-string-private_8h_source.html#l00046">DBusRealString::len</a>, <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="dbus-string-private_8h_source.html#l00045">DBusRealString::str</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

</div>
</div>
<a class="anchor" id="ga556cc30c3ab032dbc63e217119f0d1f5"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_steal_data" ref="ga556cc30c3ab032dbc63e217119f0d1f5" args="(DBusString *str, char **data_return)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusString.html#ga556cc30c3ab032dbc63e217119f0d1f5">_dbus_string_steal_data</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char **&#160;</td>
          <td class="paramname"><em>data_return</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Like <a class="el" href="group__DBusString.html#gaa9b5aa08d313048df72aa12bb4dc0cda" title="Gets the raw character buffer from the string.">_dbus_string_get_data()</a>, but removes the gotten data from the original string. </p>
<p>The caller must free the data returned. This function may fail due to lack of memory, and return <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a>.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>the string </td></tr>
    <tr><td class="paramname">data_return</td><td>location to return the buffer </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> on success </dd></dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l00624">624</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string_8c_source.html#l00175">_dbus_string_init()</a>, <a class="el" href="dbus-string-private_8h_source.html#l00093">DBUS_STRING_PREAMBLE</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="dbus-string-private_8h_source.html#l00045">DBusRealString::str</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

<p>Referenced by <a class="el" href="dbus-address_8c_source.html#l00583">dbus_address_escape_value()</a>, <a class="el" href="dbus-address_8c_source.html#l00617">dbus_address_unescape_value()</a>, <a class="el" href="dbus-misc_8c_source.html#l00073">dbus_get_local_machine_id()</a>, <a class="el" href="dbus-message_8c_source.html#l02220">dbus_message_iter_get_signature()</a>, <a class="el" href="dbus-message_8c_source.html#l04721">dbus_message_marshal()</a>, <a class="el" href="dbus-errors_8c_source.html#l00354">dbus_set_error()</a>, and <a class="el" href="dbus-signature_8c_source.html#l00112">dbus_signature_iter_get_signature()</a>.</p>

</div>
</div>
<a class="anchor" id="ga698f4b0299e6c6a707fd7e9c14915f00"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_tolower_ascii" ref="ga698f4b0299e6c6a707fd7e9c14915f00" args="(const DBusString *str, int start, int len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group__DBusString.html#ga698f4b0299e6c6a707fd7e9c14915f00">_dbus_string_tolower_ascii</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>start</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Converts the given range of the string to lower case. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>the string </td></tr>
    <tr><td class="paramname">start</td><td>first byte index to convert </td></tr>
    <tr><td class="paramname">len</td><td>number of bytes to convert </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l02467">2467</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string-private_8h_source.html#l00093">DBUS_STRING_PREAMBLE</a>, and <a class="el" href="dbus-string-private_8h_source.html#l00045">DBusRealString::str</a>.</p>

</div>
</div>
<a class="anchor" id="ga9c959f7d18ff21c5ae51846c6ba065f1"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_toupper_ascii" ref="ga9c959f7d18ff21c5ae51846c6ba065f1" args="(const DBusString *str, int start, int len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group__DBusString.html#ga9c959f7d18ff21c5ae51846c6ba065f1">_dbus_string_toupper_ascii</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>start</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Converts the given range of the string to upper case. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>the string </td></tr>
    <tr><td class="paramname">start</td><td>first byte index to convert </td></tr>
    <tr><td class="paramname">len</td><td>number of bytes to convert </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l02498">2498</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string-private_8h_source.html#l00093">DBUS_STRING_PREAMBLE</a>, and <a class="el" href="dbus-string-private_8h_source.html#l00045">DBusRealString::str</a>.</p>

</div>
</div>
<a class="anchor" id="gaa4324cd667e21beb31a5481cb0c12b6d"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_validate_ascii" ref="gaa4324cd667e21beb31a5481cb0c12b6d" args="(const DBusString *str, int start, int len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusString.html#gaa4324cd667e21beb31a5481cb0c12b6d">_dbus_string_validate_ascii</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>start</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Checks that the given range of the string is valid ASCII with no nul bytes. </p>
<p>If the given range is not entirely contained in the string, returns <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a>.</p>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000055">Todo:</a></b></dt><dd>this is inconsistent with most of <a class="el" href="structDBusString.html">DBusString</a> in that it allows a start,len range that extends past the string end.</dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>the string </td></tr>
    <tr><td class="paramname">start</td><td>first byte index to check </td></tr>
    <tr><td class="paramname">len</td><td>number of bytes to check </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> if the byte range exists and is all valid ASCII </dd></dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l02432">2432</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string-private_8h_source.html#l00114">DBUS_CONST_STRING_PREAMBLE</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-string-private_8h_source.html#l00046">DBusRealString::len</a>, <a class="el" href="dbus-string-private_8h_source.html#l00045">DBusRealString::str</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

<p>Referenced by <a class="el" href="dbus-sysdeps_8c_source.html#l00570">_dbus_generate_random_ascii()</a>, and <a class="el" href="dbus-keyring_8c_source.html#l00847">_dbus_keyring_validate_context()</a>.</p>

</div>
</div>
<a class="anchor" id="ga199d0fc00ee3cd0300a1b3870d7986a3"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_validate_nul" ref="ga199d0fc00ee3cd0300a1b3870d7986a3" args="(const DBusString *str, int start, int len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusString.html#ga199d0fc00ee3cd0300a1b3870d7986a3">_dbus_string_validate_nul</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>start</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Checks that the given range of the string is all nul bytes. </p>
<p>If the given range is not entirely contained in the string, returns <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a>.</p>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000057">Todo:</a></b></dt><dd>this is inconsistent with most of <a class="el" href="structDBusString.html">DBusString</a> in that it allows a start,len range that extends past the string end.</dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>the string </td></tr>
    <tr><td class="paramname">start</td><td>first byte index to check </td></tr>
    <tr><td class="paramname">len</td><td>number of bytes to check </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> if the byte range exists and is all nul bytes </dd></dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l02635">2635</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string-private_8h_source.html#l00114">DBUS_CONST_STRING_PREAMBLE</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-string-private_8h_source.html#l00046">DBusRealString::len</a>, <a class="el" href="dbus-string-private_8h_source.html#l00045">DBusRealString::str</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

<p>Referenced by <a class="el" href="dbus-marshal-header_8c_source.html#l00970">_dbus_header_load()</a>.</p>

</div>
</div>
<a class="anchor" id="ga65f0f04b7c9371406fc87343f691e8da"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_validate_utf8" ref="ga65f0f04b7c9371406fc87343f691e8da" args="(const DBusString *str, int start, int len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusString.html#ga65f0f04b7c9371406fc87343f691e8da">_dbus_string_validate_utf8</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>start</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Checks that the given range of the string is valid UTF-8. </p>
<p>If the given range is not entirely contained in the string, returns <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a>. If the string contains any nul bytes in the given range, returns <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a>. If the start and start+len are not on character boundaries, returns <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a>.</p>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000056">Todo:</a></b></dt><dd>this is inconsistent with most of <a class="el" href="structDBusString.html">DBusString</a> in that it allows a start,len range that extends past the string end.</dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>the string </td></tr>
    <tr><td class="paramname">start</td><td>first byte index to check </td></tr>
    <tr><td class="paramname">len</td><td>number of bytes to check </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> if the byte range exists and is all valid UTF-8 </dd></dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l02537">2537</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string-private_8h_source.html#l00114">DBUS_CONST_STRING_PREAMBLE</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-string-private_8h_source.html#l00046">DBusRealString::len</a>, <a class="el" href="dbus-string-private_8h_source.html#l00045">DBusRealString::str</a>, <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>, <a class="el" href="dbus-string_8c_source.html#l01567">UNICODE_VALID</a>, <a class="el" href="dbus-string_8c_source.html#l01487">UTF8_COMPUTE</a>, <a class="el" href="dbus-string_8c_source.html#l01544">UTF8_GET</a>, and <a class="el" href="dbus-string_8c_source.html#l01528">UTF8_LENGTH</a>.</p>

<p>Referenced by <a class="el" href="dbus-syntax_8c_source.html#l00242">dbus_validate_bus_name()</a>, <a class="el" href="dbus-syntax_8c_source.html#l00195">dbus_validate_error_name()</a>, <a class="el" href="dbus-syntax_8c_source.html#l00101">dbus_validate_interface()</a>, <a class="el" href="dbus-syntax_8c_source.html#l00148">dbus_validate_member()</a>, <a class="el" href="dbus-syntax_8c_source.html#l00054">dbus_validate_path()</a>, and <a class="el" href="dbus-syntax_8c_source.html#l00289">dbus_validate_utf8()</a>.</p>

</div>
</div>
<a class="anchor" id="ga9385fd0de31b3f5f4f8baa96bad3fac6"></a><!-- doxytag: member="dbus&#45;string.c::_dbus_string_zero" ref="ga9385fd0de31b3f5f4f8baa96bad3fac6" args="(DBusString *str)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group__DBusString.html#ga9385fd0de31b3f5f4f8baa96bad3fac6">_dbus_string_zero</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>str</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Clears all allocated bytes in the string to zero. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>the string </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="dbus-string_8c_source.html#l02667">2667</a> of file <a class="el" href="dbus-string_8c_source.html">dbus-string.c</a>.</p>

<p>References <a class="el" href="dbus-string-private_8h_source.html#l00051">DBusRealString::align_offset</a>, <a class="el" href="dbus-string-private_8h_source.html#l00047">DBusRealString::allocated</a>, <a class="el" href="dbus-string-private_8h_source.html#l00093">DBUS_STRING_PREAMBLE</a>, and <a class="el" href="dbus-string-private_8h_source.html#l00045">DBusRealString::str</a>.</p>

</div>
</div>
<a class="anchor" id="ga79647ec21c7edccd1510808ea0ca3779"></a><!-- doxytag: member="dbus&#45;sysdeps&#45;util&#45;win.c::_dbus_unix_groups_from_uid" ref="ga79647ec21c7edccd1510808ea0ca3779" args="(dbus_uid_t uid, dbus_gid_t **group_ids, int *n_group_ids)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusSysdeps.html#ga79647ec21c7edccd1510808ea0ca3779">_dbus_unix_groups_from_uid</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__DBusSysdeps.html#ga186e987b700f9ddc6cea8aa0db82b151">dbus_uid_t</a>&#160;</td>
          <td class="paramname"><em>uid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__DBusSysdeps.html#ga2f5c2e418b81ec2a86594f56ec6d7627">dbus_gid_t</a> **&#160;</td>
          <td class="paramname"><em>group_ids</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>n_group_ids</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Gets all groups corresponding to the given UNIX user ID. </p>
<p>On UNIX, just calls <a class="el" href="group__DBusInternalsUtils.html#gae9408936869314101f8ea13dfa5ba968" title="Gets all groups corresponding to the given UID.">_dbus_groups_from_uid()</a>. On Windows, should always fail since we don't know any UNIX groups.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">uid</td><td>the UID </td></tr>
    <tr><td class="paramname">group_ids</td><td>return location for array of group IDs </td></tr>
    <tr><td class="paramname">n_group_ids</td><td>return location for length of returned array </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> if the UID existed and we got some credentials </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-util-win_8c_source.html#l00875">875</a> of file <a class="el" href="dbus-sysdeps-util-win_8c_source.html">dbus-sysdeps-util-win.c</a>.</p>

<p>References <a class="el" href="dbus-userdb-util_8c_source.html#l00388">_dbus_groups_from_uid()</a>, and <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>.</p>

</div>
</div>
<a class="anchor" id="gaed2e025454364fbe31cd9b6538c9a936"></a><!-- doxytag: member="dbus&#45;sysdeps&#45;util&#45;win.c::_dbus_unix_user_is_at_console" ref="gaed2e025454364fbe31cd9b6538c9a936" args="(dbus_uid_t uid, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusSysdeps.html#gaed2e025454364fbe31cd9b6538c9a936">_dbus_unix_user_is_at_console</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__DBusSysdeps.html#ga186e987b700f9ddc6cea8aa0db82b151">dbus_uid_t</a>&#160;</td>
          <td class="paramname"><em>uid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusError.html">DBusError</a> *&#160;</td>
          <td class="paramname"><em>error</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Checks to see if the UNIX user ID is at the console. </p>
<p>Should always fail on Windows (set the error to <a class="el" href="group__DBusProtocol.html#ga33122bcaf8f5896ec222c755b6effb40" title="Requested operation isn&#39;t supported (like ENOSYS on UNIX).">DBUS_ERROR_NOT_SUPPORTED</a>).</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">uid</td><td>UID of person to check </td></tr>
    <tr><td class="paramname">error</td><td>return location for errors </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> if the UID is the same as the console user and there are no errors </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-util-win_8c_source.html#l00824">824</a> of file <a class="el" href="dbus-sysdeps-util-win_8c_source.html">dbus-sysdeps-util-win.c</a>.</p>

<p>References <a class="el" href="dbus-userdb-util_8c_source.html#l00049">_dbus_is_console_user()</a>, <a class="el" href="dbus-protocol_8h_source.html#l00364">DBUS_ERROR_NOT_SUPPORTED</a>, <a class="el" href="dbus-errors_8c_source.html#l00354">dbus_set_error()</a>, and <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>.</p>

</div>
</div>
<a class="anchor" id="ga849177164bc5e73435104f57c631ed7e"></a><!-- doxytag: member="dbus&#45;sysdeps&#45;util&#45;win.c::_dbus_unix_user_is_process_owner" ref="ga849177164bc5e73435104f57c631ed7e" args="(dbus_uid_t uid)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusSysdeps.html#ga849177164bc5e73435104f57c631ed7e">_dbus_unix_user_is_process_owner</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__DBusSysdeps.html#ga186e987b700f9ddc6cea8aa0db82b151">dbus_uid_t</a>&#160;</td>
          <td class="paramname"><em>uid</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Checks to see if the UNIX user ID matches the UID of the process. </p>
<p>Should always return <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> on Windows.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">uid</td><td>the UNIX user ID </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> if this uid owns the process. </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-util-win_8c_source.html#l00800">800</a> of file <a class="el" href="dbus-sysdeps-util-win_8c_source.html">dbus-sysdeps-util-win.c</a>.</p>

<p>References <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02428">_dbus_geteuid()</a>, and <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>.</p>

</div>
</div>
<a class="anchor" id="ga912d34a7e40b3a57864972e6d6ab65ba"></a><!-- doxytag: member="dbus&#45;sysdeps&#45;util&#45;win.c::_dbus_windows_user_is_process_owner" ref="ga912d34a7e40b3a57864972e6d6ab65ba" args="(const char *windows_sid)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusSysdeps.html#ga912d34a7e40b3a57864972e6d6ab65ba">_dbus_windows_user_is_process_owner</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>windows_sid</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Checks to see if the Windows user SID matches the owner of the process. </p>
<p>Should always return <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> on UNIX.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">windows_sid</td><td>the Windows user SID </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> if this user owns the process. </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-util-win_8c_source.html#l00805">805</a> of file <a class="el" href="dbus-sysdeps-util-win_8c_source.html">dbus-sysdeps-util-win.c</a>.</p>

<p>References <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

</div>
</div>
</div><!-- contents -->


<hr class="footer"/><address class="footer"><small>
Generated on Thu Mar 3 2016 17:50:33 for D-Bus by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>

</body>
</html>