|
Server : Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.8e-fips-rhel5 DAV/2 PHP/5.2.17 System : Linux localhost 2.6.18-419.el5 #1 SMP Fri Feb 24 22:47:42 UTC 2017 x86_64 User : nobody ( 99) PHP Version : 5.2.17 Disable Function : NONE Directory : /usr/share/devhelp/books/dbus/api/ |
Upload File : |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>D-Bus: DBusString class</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="pages.html"><span>Related Pages</span></a></li>
</ul></div>
<h1>DBusString class<br>
<small>
[<a class="el" href="group__DBusInternals.html">D-Bus secret internal implementation details</a>]</small>
</h1><a class="el" href="structDBusString.html">DBusString</a> data structure for safer string handling.
<a href="#_details">More...</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g4661e2b10dd3da080564b1191acb7619"></a><!-- doxytag: member="DBusString::ASSIGN_2_OCTETS" ref="g4661e2b10dd3da080564b1191acb7619" args="(p, octets)" -->
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#g4661e2b10dd3da080564b1191acb7619">ASSIGN_2_OCTETS</a>(p, octets) *((<a class="el" href="group__DBusTypes.html#g8132d71032da957f08ce4e0ec87f2063">dbus_uint16_t</a>*)(p)) = *((<a class="el" href="group__DBusTypes.html#g8132d71032da957f08ce4e0ec87f2063">dbus_uint16_t</a>*)(octets));</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">assign 2 bytes from one string to another <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ge777c8fb39aef558604506d645af6420"></a><!-- doxytag: member="DBusString::ASSIGN_4_OCTETS" ref="ge777c8fb39aef558604506d645af6420" args="(p, octets)" -->
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#ge777c8fb39aef558604506d645af6420">ASSIGN_4_OCTETS</a>(p, octets) *((<a class="el" href="group__DBusTypes.html#gf513803b030613a669cc7ef199f90a8b">dbus_uint32_t</a>*)(p)) = *((<a class="el" href="group__DBusTypes.html#gf513803b030613a669cc7ef199f90a8b">dbus_uint32_t</a>*)(octets));</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">assign 4 bytes from one string to another <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gd13077c6ef8f8b764611ef5ad23b4b8b"></a><!-- doxytag: member="DBusString::ASSIGN_8_OCTETS" ref="gd13077c6ef8f8b764611ef5ad23b4b8b" args="(p, octets)" -->
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#gd13077c6ef8f8b764611ef5ad23b4b8b">ASSIGN_8_OCTETS</a>(p, octets) *((<a class="el" href="group__DBusTypes.html#g0a7c275002dbafa34536a76db079a950">dbus_uint64_t</a>*)(p)) = *((<a class="el" href="group__DBusTypes.html#g0a7c275002dbafa34536a76db079a950">dbus_uint64_t</a>*)(octets));</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">assign 8 bytes from one string to another <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#gacbbd102b66aa34dd13f792e7f08c205">DBUS_STRING_COPY_PREAMBLE</a>(source, start, dest, insert_at)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Checks assertions for two strings we're copying a segment between, and declares real_source/real_dest variables. <a href="#gacbbd102b66aa34dd13f792e7f08c205"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#g30614080229a4fb63460ffdc8ab484fb">UTF8_COMPUTE</a>(Char, Mask, Len)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">computes length and mask of a unicode character <a href="#g30614080229a4fb63460ffdc8ab484fb"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#g9691ff5386e218870299de1d9e77ceea">UTF8_LENGTH</a>(Char)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">computes length of a unicode character in UTF-8 <a href="#g9691ff5386e218870299de1d9e77ceea"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#gb5b4b316a69f78611a14e6b1fd091992">UTF8_GET</a>(Result, Chars, Count, Mask, Len)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Gets a UTF-8 value. <a href="#gb5b4b316a69f78611a14e6b1fd091992"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#g25f0a93fc023fa0eec07ac1e32011e89">UNICODE_VALID</a>(Char)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Check whether a unicode char is in a valid range. <a href="#g25f0a93fc023fa0eec07ac1e32011e89"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#g4701fa3fabccad3ba64b7bf17c4ae14c">_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"> </td><td class="mdescRight">Returns whether a string ends with the given suffix. <a href="#g4701fa3fabccad3ba64b7bf17c4ae14c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#g89d458f4f530ee82dbb45f9dcbc9c637">_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"> </td><td class="mdescRight">Find the given byte scanning backward from the given start. <a href="#g89d458f4f530ee82dbb45f9dcbc9c637"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#g569b784beea1b4fa98f05d27e6dd0e72">_dbus_string_init_preallocated</a> (<a class="el" href="structDBusString.html">DBusString</a> *str, int allocate_size)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Initializes a string that can be up to the given allocation size before it has to realloc. <a href="#g569b784beea1b4fa98f05d27e6dd0e72"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#g348252317f7bb8ac43529972945830ae">_dbus_string_init</a> (<a class="el" href="structDBusString.html">DBusString</a> *str)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Initializes a string. <a href="#g348252317f7bb8ac43529972945830ae"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#g374640ddfa2f0b27a8356e2379ba8043">_dbus_string_init_const</a> (<a class="el" href="structDBusString.html">DBusString</a> *str, const char *value)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Initializes a constant string. <a href="#g374640ddfa2f0b27a8356e2379ba8043"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#g6792a5c1725faa9d635d95f7a3b5bfae">_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"> </td><td class="mdescRight">Initializes a constant string with a length. <a href="#g6792a5c1725faa9d635d95f7a3b5bfae"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#g781ca91acda49a834dce7d0ed0eef212">_dbus_string_free</a> (<a class="el" href="structDBusString.html">DBusString</a> *str)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Frees a string created by <a class="el" href="group__DBusString.html#g348252317f7bb8ac43529972945830ae">_dbus_string_init()</a>. <a href="#g781ca91acda49a834dce7d0ed0eef212"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#g7a73fb373398606e6e1d0a86c4587a3c">_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"> </td><td class="mdescRight">Gets a sub-portion of the raw character buffer from the string. <a href="#g7a73fb373398606e6e1d0a86c4587a3c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#ga0964d662ad17c58eb044c1b153017a6">_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"> </td><td class="mdescRight">Inserts a number of bytes of a given value at the given position. <a href="#ga0964d662ad17c58eb044c1b153017a6"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#gb0770800dce6df97e5d246105a44e7b4">_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"> </td><td class="mdescRight">Inserts a single byte at the given position. <a href="#gb0770800dce6df97e5d246105a44e7b4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#g556cc30c3ab032dbc63e217119f0d1f5">_dbus_string_steal_data</a> (<a class="el" href="structDBusString.html">DBusString</a> *str, char **data_return)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Like _dbus_string_get_data(), but removes the gotten data from the original string. <a href="#g556cc30c3ab032dbc63e217119f0d1f5"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#g7e509d4f959d19d96f83250e62287b06">_dbus_string_copy_data</a> (const <a class="el" href="structDBusString.html">DBusString</a> *str, char **data_return)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Copies the data from the string into a char*. <a href="#g7e509d4f959d19d96f83250e62287b06"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#gf97b18e419678dbf967d9b9ad1112ca6">_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"> </td><td class="mdescRight">Copies the contents of a <a class="el" href="structDBusString.html">DBusString</a> into a different buffer. <a href="#gf97b18e419678dbf967d9b9ad1112ca6"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#g8f13997d90ceed2f437706e6b7804d9b">_dbus_string_lengthen</a> (<a class="el" href="structDBusString.html">DBusString</a> *str, int additional_length)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Makes a string longer by the given number of bytes. <a href="#g8f13997d90ceed2f437706e6b7804d9b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#g7af1cbfa905f26d972ab644d890548b8">_dbus_string_shorten</a> (<a class="el" href="structDBusString.html">DBusString</a> *str, int length_to_remove)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Makes a string shorter by the given number of bytes. <a href="#g7af1cbfa905f26d972ab644d890548b8"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#g08c423b93c28dd746dcb93e0461ab95c">_dbus_string_set_length</a> (<a class="el" href="structDBusString.html">DBusString</a> *str, int length)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the length of a string. <a href="#g08c423b93c28dd746dcb93e0461ab95c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#geadfb67c4e796131610499c91d0d7813">_dbus_string_align_length</a> (<a class="el" href="structDBusString.html">DBusString</a> *str, int alignment)</td></tr>
<tr><td class="mdescLeft"> </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="#geadfb67c4e796131610499c91d0d7813"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#g4764e75c464356408fc1a12df93177c1">_dbus_string_alloc_space</a> (<a class="el" href="structDBusString.html">DBusString</a> *str, int extra_bytes)</td></tr>
<tr><td class="mdescLeft"> </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="#g4764e75c464356408fc1a12df93177c1"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#g100c5ce0696822c5a4cfbdfaba674d96">_dbus_string_append</a> (<a class="el" href="structDBusString.html">DBusString</a> *str, const char *buffer)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Appends a nul-terminated C-style string to a <a class="el" href="structDBusString.html">DBusString</a>. <a href="#g100c5ce0696822c5a4cfbdfaba674d96"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#gc33cd9f66e1dc665f92f0478b3170e23">_dbus_string_insert_2_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"> </td><td class="mdescRight">Inserts 2 bytes aligned on a 2 byte boundary with any alignment padding initialized to 0. <a href="#gc33cd9f66e1dc665f92f0478b3170e23"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#gdd296cf1e6af18cb5bec438e9d353b4e">_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"> </td><td class="mdescRight">Inserts 4 bytes aligned on a 4 byte boundary with any alignment padding initialized to 0. <a href="#gdd296cf1e6af18cb5bec438e9d353b4e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#g108d7d64fb88fffca31e33181cefa232">_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"> </td><td class="mdescRight">Inserts 8 bytes aligned on an 8 byte boundary with any alignment padding initialized to 0. <a href="#g108d7d64fb88fffca31e33181cefa232"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#g267217e412c74c74dc3a3e412da5c600">_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"> </td><td class="mdescRight">Inserts padding at *insert_at such to align it to the given boundary. <a href="#g267217e412c74c74dc3a3e412da5c600"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#g8d794f292831d1a7edeb971b13a2c641">_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"> </td><td class="mdescRight">Appends a printf-style formatted string to the <a class="el" href="structDBusString.html">DBusString</a>. <a href="#g8d794f292831d1a7edeb971b13a2c641"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#gb0078cf7e0e5bd784ec6d6e0cc3923a2">_dbus_string_append_printf</a> (<a class="el" href="structDBusString.html">DBusString</a> *str, const char *format,...)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Appends a printf-style formatted string to the <a class="el" href="structDBusString.html">DBusString</a>. <a href="#gb0078cf7e0e5bd784ec6d6e0cc3923a2"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#g724656b7091b910965bd1af42d0b7bab">_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"> </td><td class="mdescRight">Appends block of bytes with the given length to a <a class="el" href="structDBusString.html">DBusString</a>. <a href="#g724656b7091b910965bd1af42d0b7bab"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#ga6ecf36e70263659f921a4ef0335db12">_dbus_string_append_byte</a> (<a class="el" href="structDBusString.html">DBusString</a> *str, unsigned char byte)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Appends a single byte to the string, returning <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if not enough memory. <a href="#ga6ecf36e70263659f921a4ef0335db12"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#g7e0e164ad5bb094e5ccad9edc7ae4235">_dbus_string_delete</a> (<a class="el" href="structDBusString.html">DBusString</a> *str, int start, int len)</td></tr>
<tr><td class="mdescLeft"> </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="#g7e0e164ad5bb094e5ccad9edc7ae4235"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#gd379fce8d4ef4f7e28f81f50b46ee4c9">_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"> </td><td class="mdescRight">Moves the end of one string into another string. <a href="#gd379fce8d4ef4f7e28f81f50b46ee4c9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#g3c10f0d1bcaa3b450025b9c6a8b901d7">_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"> </td><td class="mdescRight">Like <a class="el" href="group__DBusString.html#gd379fce8d4ef4f7e28f81f50b46ee4c9">_dbus_string_move()</a>, but does not delete the section of the source string that's copied to the dest string. <a href="#g3c10f0d1bcaa3b450025b9c6a8b901d7"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#gb8e2dcb2dc71bf225da0827c6086a727">_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"> </td><td class="mdescRight">Like <a class="el" href="group__DBusString.html#gd379fce8d4ef4f7e28f81f50b46ee4c9">_dbus_string_move()</a>, but can move a segment from the middle of the source string. <a href="#gb8e2dcb2dc71bf225da0827c6086a727"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#gf5f13bc7ac7a623516930d26ae2589bf">_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"> </td><td class="mdescRight">Like <a class="el" href="group__DBusString.html#g3c10f0d1bcaa3b450025b9c6a8b901d7">_dbus_string_copy()</a>, but can copy a segment from the middle of the source string. <a href="#gf5f13bc7ac7a623516930d26ae2589bf"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#gfe7921a92467cdefaa0a7829d6cf260b">_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"> </td><td class="mdescRight">Replaces a segment of dest string with a segment of source string. <a href="#gfe7921a92467cdefaa0a7829d6cf260b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#g5fe47873b2838339107c3e1f03d1a703">_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"> </td><td class="mdescRight">Finds the given substring in the string, returning <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> and filling in the byte index where the substring was found, if it was found. <a href="#g5fe47873b2838339107c3e1f03d1a703"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#g3c98d1913e3ba4deb8eda60b2e262fdb">_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"> </td><td class="mdescRight">Finds end of line ("\r\n" or "\n") in the string, returning <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> and filling in the byte index where the eol string was found, if it was found. <a href="#g3c98d1913e3ba4deb8eda60b2e262fdb"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#gf2281731c3119f946726680242a5ae02">_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"> </td><td class="mdescRight">Finds the given substring in the string, up to a certain position, returning <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> and filling in the byte index where the substring was found, if it was found. <a href="#gf2281731c3119f946726680242a5ae02"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#g677ddb4246c7e7f67ed3145dc3c1c96b">_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"> </td><td class="mdescRight">Finds a blank (space or tab) in the string. <a href="#g677ddb4246c7e7f67ed3145dc3c1c96b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#g5698b163289be0066cf10c0f1caf877a">_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"> </td><td class="mdescRight">Skips blanks from start, storing the first non-blank in *end (blank is space or tab). <a href="#g5698b163289be0066cf10c0f1caf877a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#g8600259d71a4adc14ab4558a9d2a0f7d">_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"> </td><td class="mdescRight">Skips whitespace from start, storing the first non-whitespace in *end. <a href="#g8600259d71a4adc14ab4558a9d2a0f7d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#g578bb88acec5520825f2ba792cad7938">_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"> </td><td class="mdescRight">Skips whitespace from end, storing the start index of the trailing whitespace in *start. <a href="#g578bb88acec5520825f2ba792cad7938"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#g8b7fc22e6738173e1b2cef4b91b9c3c1">_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"> </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="#g8b7fc22e6738173e1b2cef4b91b9c3c1"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#ga92c6ab2c5e24cbefef0a3f3fc76f98b">_dbus_string_chop_white</a> (<a class="el" href="structDBusString.html">DBusString</a> *str)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Deletes leading and trailing whitespace. <a href="#ga92c6ab2c5e24cbefef0a3f3fc76f98b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#gd79c34af55b58f0e8b81ecf11b8694bb">_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"> </td><td class="mdescRight">Tests two <a class="el" href="structDBusString.html">DBusString</a> for equality. <a href="#gd79c34af55b58f0e8b81ecf11b8694bb"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#g2095c2a797ae245521a7588b32279110">_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"> </td><td class="mdescRight">Tests two sub-parts of two <a class="el" href="structDBusString.html">DBusString</a> for equality. <a href="#g2095c2a797ae245521a7588b32279110"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#g84f39f1bf398697920637d2982248c72">_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"> </td><td class="mdescRight">Checks whether a string is equal to a C string. <a href="#g84f39f1bf398697920637d2982248c72"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#gc3b78e2cb63fb37fbff8d7e647ddfa5a">_dbus_string_append_byte_as_hex</a> (<a class="el" href="structDBusString.html">DBusString</a> *str, int byte)</td></tr>
<tr><td class="mdescLeft"> </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="#gc3b78e2cb63fb37fbff8d7e647ddfa5a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#gabb4873f436e015944a33cd1e3815cc9">_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"> </td><td class="mdescRight">Encodes a string in hex, the way MD5 and SHA-1 are usually encoded. <a href="#gabb4873f436e015944a33cd1e3815cc9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#g0a8c20d855f9ddc05718b9e2ac0e33d8">_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"> </td><td class="mdescRight">Decodes a string from hex encoding. <a href="#g0a8c20d855f9ddc05718b9e2ac0e33d8"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#ga4324cd667e21beb31a5481cb0c12b6d">_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"> </td><td class="mdescRight">Checks that the given range of the string is valid ASCII with no nul bytes. <a href="#ga4324cd667e21beb31a5481cb0c12b6d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#g65f0f04b7c9371406fc87343f691e8da">_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"> </td><td class="mdescRight">Checks that the given range of the string is valid UTF-8. <a href="#g65f0f04b7c9371406fc87343f691e8da"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#g199d0fc00ee3cd0300a1b3870d7986a3">_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"> </td><td class="mdescRight">Checks that the given range of the string is all nul bytes. <a href="#g199d0fc00ee3cd0300a1b3870d7986a3"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#g9385fd0de31b3f5f4f8baa96bad3fac6">_dbus_string_zero</a> (<a class="el" href="structDBusString.html">DBusString</a> *str)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Clears all allocated bytes in the string to zero. <a href="#g9385fd0de31b3f5f4f8baa96bad3fac6"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#gfa79c1113fa75419dcc5ee4290e06608">_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"> </td><td class="mdescRight">Get the directory name from a complete filename. <a href="#gfa79c1113fa75419dcc5ee4290e06608"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#g41141ca36c361f92b6029530ff83fa66">_dbus_string_append_int</a> (<a class="el" href="structDBusString.html">DBusString</a> *str, long value)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Appends an integer to a <a class="el" href="structDBusString.html">DBusString</a>. <a href="#g41141ca36c361f92b6029530ff83fa66"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#ga63064881001085159c78204f70acde8">_dbus_string_append_uint</a> (<a class="el" href="structDBusString.html">DBusString</a> *str, unsigned long value)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Appends an unsigned integer to a <a class="el" href="structDBusString.html">DBusString</a>. <a href="#ga63064881001085159c78204f70acde8"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#g93e22894a5e2e0d65c179c7d36a8b1c8">_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"> </td><td class="mdescRight">Parses an integer contained in a <a class="el" href="structDBusString.html">DBusString</a>. <a href="#g93e22894a5e2e0d65c179c7d36a8b1c8"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusString.html#g84cc8d08bb48b7915d673f7cc7886f97">_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"> </td><td class="mdescRight">Parses an unsigned integer contained in a <a class="el" href="structDBusString.html">DBusString</a>. <a href="#g84cc8d08bb48b7915d673f7cc7886f97"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
<a class="el" href="structDBusString.html">DBusString</a> data structure for safer string handling.
<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>
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#g8f13997d90ceed2f437706e6b7804d9b">_dbus_string_lengthen()</a> method checks for overflow, and for max length being exceeded.<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 compact><dt><b><a class="el" href="todo.html#_todo000047">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" name="gacbbd102b66aa34dd13f792e7f08c205"></a><!-- doxytag: member="dbus-string.c::DBUS_STRING_COPY_PREAMBLE" ref="gacbbd102b66aa34dd13f792e7f08c205" args="(source, start, dest, insert_at)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DBUS_STRING_COPY_PREAMBLE </td>
<td>(</td>
<td class="paramtype">source, <tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">start, <tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">dest, <tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">insert_at </td>
<td class="paramname"> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<b>Value:</b><div class="fragment"><pre class="fragment"><a class="code" href="structDBusRealString.html">DBusRealString</a> *real_source = (<a class="code" href="structDBusRealString.html">DBusRealString</a>*) source; \
<a class="code" href="structDBusRealString.html">DBusRealString</a> *real_dest = (<a class="code" href="structDBusRealString.html">DBusRealString</a>*) dest; \
<a class="code" href="group__DBusInternalsUtils.html#g129c6c03f011cdc171934d5d386cc797">_dbus_assert</a> ((source) != (dest)); \
<a class="code" href="group__DBusStringInternals.html#g862cb88a139179981e1fcd5643165b56">DBUS_GENERIC_STRING_PREAMBLE</a> (real_source); \
<a class="code" href="group__DBusStringInternals.html#g862cb88a139179981e1fcd5643165b56">DBUS_GENERIC_STRING_PREAMBLE</a> (real_dest); \
<a class="code" href="group__DBusInternalsUtils.html#g129c6c03f011cdc171934d5d386cc797">_dbus_assert</a> (!real_dest-><a class="code" href="structDBusRealString.html#79675cfbe443cc779e3c668fbcb99578">constant</a>); \
<a class="code" href="group__DBusInternalsUtils.html#g129c6c03f011cdc171934d5d386cc797">_dbus_assert</a> (!real_dest-><a class="code" href="structDBusRealString.html#865d892d7cacedd598b828c15c5815c5">locked</a>); \
<a class="code" href="group__DBusInternalsUtils.html#g129c6c03f011cdc171934d5d386cc797">_dbus_assert</a> ((start) >= 0); \
<a class="code" href="group__DBusInternalsUtils.html#g129c6c03f011cdc171934d5d386cc797">_dbus_assert</a> ((start) <= real_source-><a class="code" href="structDBusRealString.html#ed6f543f7b748c4f5cf92b9aedd5f68d">len</a>); \
<a class="code" href="group__DBusInternalsUtils.html#g129c6c03f011cdc171934d5d386cc797">_dbus_assert</a> ((insert_at) >= 0); \
<a class="code" href="group__DBusInternalsUtils.html#g129c6c03f011cdc171934d5d386cc797">_dbus_assert</a> ((insert_at) <= real_dest-><a class="code" href="structDBusRealString.html#ed6f543f7b748c4f5cf92b9aedd5f68d">len</a>)
</pre></div>Checks assertions for two strings we're copying a segment between, and declares real_source/real_dest variables.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>source</em> </td><td>the source string </td></tr>
<tr><td valign="top"></td><td valign="top"><em>start</em> </td><td>the starting offset </td></tr>
<tr><td valign="top"></td><td valign="top"><em>dest</em> </td><td>the dest string </td></tr>
<tr><td valign="top"></td><td valign="top"><em>insert_at</em> </td><td>where the copied segment is inserted </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l01424">1424</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.
<p>
Referenced by <a class="el" href="dbus-string_8c-source.html#l01472">_dbus_string_copy()</a>, <a class="el" href="dbus-string_8c-source.html#l01567">_dbus_string_copy_len()</a>, <a class="el" href="dbus-string_8c-source.html#l01500">_dbus_string_move_len()</a>, and <a class="el" href="dbus-string_8c-source.html#l01605">_dbus_string_replace_len()</a>.
</div>
</div><p>
<a class="anchor" name="g25f0a93fc023fa0eec07ac1e32011e89"></a><!-- doxytag: member="dbus-string.c::UNICODE_VALID" ref="g25f0a93fc023fa0eec07ac1e32011e89" args="(Char)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define UNICODE_VALID </td>
<td>(</td>
<td class="paramtype">Char </td>
<td class="paramname"> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<b>Value:</b><div class="fragment"><pre class="fragment">((Char) < 0x110000 && \
(((Char) & 0xFFFFF800) != 0xD800) && \
((Char) < 0xFDD0 || (Char) > 0xFDEF) && \
((Char) & 0xFFFF) != 0xFFFF)
</pre></div>Check whether a unicode char is in a valid range.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>Char</em> </td><td>the character </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l01713">1713</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.
<p>
Referenced by <a class="el" href="dbus-string_8c-source.html#l02676">_dbus_string_validate_utf8()</a>.
</div>
</div><p>
<a class="anchor" name="g30614080229a4fb63460ffdc8ab484fb"></a><!-- doxytag: member="dbus-string.c::UTF8_COMPUTE" ref="g30614080229a4fb63460ffdc8ab484fb" args="(Char, Mask, Len)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define UTF8_COMPUTE </td>
<td>(</td>
<td class="paramtype">Char, <tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">Mask, <tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">Len </td>
<td class="paramname"> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
computes length and mask of a unicode character
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>Char</em> </td><td>the char </td></tr>
<tr><td valign="top"></td><td valign="top"><em>Mask</em> </td><td>the mask variable to assign to </td></tr>
<tr><td valign="top"></td><td valign="top"><em>Len</em> </td><td>the length variable to assign to </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l01638">1638</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.
<p>
Referenced by <a class="el" href="dbus-string_8c-source.html#l02676">_dbus_string_validate_utf8()</a>.
</div>
</div><p>
<a class="anchor" name="gb5b4b316a69f78611a14e6b1fd091992"></a><!-- doxytag: member="dbus-string.c::UTF8_GET" ref="gb5b4b316a69f78611a14e6b1fd091992" args="(Result, Chars, Count, Mask, Len)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define UTF8_GET </td>
<td>(</td>
<td class="paramtype">Result, <tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">Chars, <tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">Count, <tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">Mask, <tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">Len </td>
<td class="paramname"> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<b>Value:</b><div class="fragment"><pre class="fragment">(Result) = (Chars)[0] & (Mask); \
<span class="keywordflow">for</span> ((Count) = 1; (Count) < (Len); ++(Count)) \
{ \
<span class="keywordflow">if</span> (((Chars)[(Count)] & 0xc0) != 0x80) \
{ \
(Result) = -1; \
<span class="keywordflow">break</span>; \
} \
(Result) <<= 6; \
(Result) |= ((Chars)[(Count)] & 0x3f); \
}
</pre></div>Gets a UTF-8 value.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>Result</em> </td><td>variable for extracted unicode char. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>Chars</em> </td><td>the bytes to decode </td></tr>
<tr><td valign="top"></td><td valign="top"><em>Count</em> </td><td>counter variable </td></tr>
<tr><td valign="top"></td><td valign="top"><em>Mask</em> </td><td>mask for this char </td></tr>
<tr><td valign="top"></td><td valign="top"><em>Len</em> </td><td>length for this char in bytes </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l01695">1695</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.
<p>
Referenced by <a class="el" href="dbus-string_8c-source.html#l02676">_dbus_string_validate_utf8()</a>.
</div>
</div><p>
<a class="anchor" name="g9691ff5386e218870299de1d9e77ceea"></a><!-- doxytag: member="dbus-string.c::UTF8_LENGTH" ref="g9691ff5386e218870299de1d9e77ceea" args="(Char)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define UTF8_LENGTH </td>
<td>(</td>
<td class="paramtype">Char </td>
<td class="paramname"> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<b>Value:</b><div class="fragment"><pre class="fragment">((Char) < 0x80 ? 1 : \
((Char) < 0x800 ? 2 : \
((Char) < 0x10000 ? 3 : \
((Char) < 0x200000 ? 4 : \
((Char) < 0x4000000 ? 5 : 6)))))
</pre></div>computes length of a unicode character in UTF-8
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>Char</em> </td><td>the char </td></tr>
</table>
</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>
Referenced by <a class="el" href="dbus-string_8c-source.html#l02676">_dbus_string_validate_utf8()</a>.
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="geadfb67c4e796131610499c91d0d7813"></a><!-- doxytag: member="dbus-string.c::_dbus_string_align_length" ref="geadfb67c4e796131610499c91d0d7813" 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#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_string_align_length </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>str</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>alignment</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></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 compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>str</em> </td><td>a string </td></tr>
<tr><td valign="top"></td><td valign="top"><em>alignment</em> </td><td>the alignment </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if no memory </dd></dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l00935">935</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.
</div>
</div><p>
<a class="anchor" name="g4764e75c464356408fc1a12df93177c1"></a><!-- doxytag: member="dbus-string.c::_dbus_string_alloc_space" ref="g4764e75c464356408fc1a12df93177c1" 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#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_string_alloc_space </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>str</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>extra_bytes</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></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 compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>str</em> </td><td>a string </td></tr>
<tr><td valign="top"></td><td valign="top"><em>extra_bytes</em> </td><td>bytes to alloc </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if no memory </dd></dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l00951">951</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.
<p>
References <a class="el" href="dbus-string_8c-source.html#l00812">_dbus_string_lengthen()</a>, <a class="el" href="dbus-string_8c-source.html#l00832">_dbus_string_shorten()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
<p>
Referenced by <a class="el" href="dbus-marshal-recursive_8c-source.html#l02293">_dbus_type_writer_write_basic()</a>.
</div>
</div><p>
<a class="anchor" name="g100c5ce0696822c5a4cfbdfaba674d96"></a><!-- doxytag: member="dbus-string.c::_dbus_string_append" ref="g100c5ce0696822c5a4cfbdfaba674d96" 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#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_string_append </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>str</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>buffer</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></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 compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>str</em> </td><td>the <a class="el" href="structDBusString.html">DBusString</a> </td></tr>
<tr><td valign="top"></td><td valign="top"><em>buffer</em> </td><td>the nul-terminated characters to append </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if not enough memory. </dd></dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l00987">987</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-string-private_8h-source.html#l00086">DBUS_STRING_PREAMBLE</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-string-private_8h-source.html#l00049">DBusRealString::max_length</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
<p>
Referenced by <a class="el" href="dbus-sysdeps-unix_8c-source.html#l03171">_dbus_append_keyring_directory_for_credentials()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l03139">_dbus_append_session_config_file()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l03127">_dbus_append_system_config_file()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00074">_dbus_become_daemon()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00678">_dbus_directory_get_next_file()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02983">_dbus_get_standard_session_servicedirs()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l03072">_dbus_get_standard_system_servicedirs()</a>, <a class="el" href="dbus-userdb_8c-source.html#l00446">_dbus_homedir_from_uid()</a>, <a class="el" href="dbus-userdb_8c-source.html#l00407">_dbus_homedir_from_username()</a>, <a class="el" href="dbus-userdb-util_8c-source.html#l00043">_dbus_is_console_user()</a>, <a class="el" href="dbus-keyring_8c-source.html#l00713">_dbus_keyring_new_for_credentials()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l00854">_dbus_listen_tcp_socket()</a>, <a class="el" href="dbus-server-unix_8c-source.html#l00052">_dbus_server_listen_platform_specific()</a>, <a class="el" href="dbus-server-unix_8c-source.html#l00167">_dbus_server_new_for_domain_socket()</a>, <a class="el" href="dbus-server-socket_8c-source.html#l00369">_dbus_server_new_for_tcp_socket()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00985">_dbus_string_get_dirname()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02057">_dbus_string_save_to_file()</a>, <a class="el" href="dbus-transport-unix_8c-source.html#l00053">_dbus_transport_new_for_domain_socket()</a>, <a class="el" href="dbus-transport-socket_8c-source.html#l01216">_dbus_transport_new_for_tcp_socket()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00482">_dbus_user_at_console()</a>, and <a class="el" href="dbus-errors_8c-source.html#l00326">dbus_set_error()</a>.
</div>
</div><p>
<a class="anchor" name="ga6ecf36e70263659f921a4ef0335db12"></a><!-- doxytag: member="dbus-string.c::_dbus_string_append_byte" ref="ga6ecf36e70263659f921a4ef0335db12" 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#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_string_append_byte </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>str</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned char </td>
<td class="paramname"> <em>byte</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Appends a single byte to the string, returning <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if not enough memory.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>str</em> </td><td>the string </td></tr>
<tr><td valign="top"></td><td valign="top"><em>byte</em> </td><td>the byte to append </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> on success </dd></dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l01273">1273</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.
<p>
References <a class="el" href="dbus-string-private_8h-source.html#l00086">DBUS_STRING_PREAMBLE</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-string-private_8h-source.html#l00047">DBusRealString::len</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
<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#l02331">_dbus_concat_dir_and_file()</a>, <a class="el" href="dbus-string_8c-source.html#l02408">_dbus_string_append_byte_as_hex()</a>, and <a class="el" href="dbus-string_8c-source.html#l02492">_dbus_string_hex_decode()</a>.
</div>
</div><p>
<a class="anchor" name="gc3b78e2cb63fb37fbff8d7e647ddfa5a"></a><!-- doxytag: member="dbus-string.c::_dbus_string_append_byte_as_hex" ref="gc3b78e2cb63fb37fbff8d7e647ddfa5a" args="(DBusString *str, int byte)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_string_append_byte_as_hex </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>str</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>byte</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></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 compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>str</em> </td><td>the string </td></tr>
<tr><td valign="top"></td><td valign="top"><em>byte</em> </td><td>the byte </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if no memory </dd></dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l02408">2408</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.
<p>
References <a class="el" href="dbus-string_8c-source.html#l01273">_dbus_string_append_byte()</a>, <a class="el" href="dbus-string_8c-source.html#l00854">_dbus_string_set_length()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
<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#l02442">_dbus_string_hex_encode()</a>.
</div>
</div><p>
<a class="anchor" name="g41141ca36c361f92b6029530ff83fa66"></a><!-- doxytag: member="dbus-sysdeps.c::_dbus_string_append_int" ref="g41141ca36c361f92b6029530ff83fa66" 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#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_string_append_int </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>str</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">long </td>
<td class="paramname"> <em>value</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Appends an integer to a <a class="el" href="structDBusString.html">DBusString</a>.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>str</em> </td><td>the string </td></tr>
<tr><td valign="top"></td><td valign="top"><em>value</em> </td><td>the integer value </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">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>
References <a class="el" href="dbus-string_8c-source.html#l00457">_dbus_string_get_data_len()</a>, <a class="el" href="dbus-string_8c-source.html#l00812">_dbus_string_lengthen()</a>, <a class="el" href="dbus-string_8c-source.html#l00832">_dbus_string_shorten()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
<p>
Referenced by <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00074">_dbus_become_daemon()</a>.
</div>
</div><p>
<a class="anchor" name="g724656b7091b910965bd1af42d0b7bab"></a><!-- doxytag: member="dbus-string.c::_dbus_string_append_len" ref="g724656b7091b910965bd1af42d0b7bab" 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#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_string_append_len </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>str</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>len</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></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 compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>str</em> </td><td>the <a class="el" href="structDBusString.html">DBusString</a> </td></tr>
<tr><td valign="top"></td><td valign="top"><em>buffer</em> </td><td>the bytes to append </td></tr>
<tr><td valign="top"></td><td valign="top"><em>len</em> </td><td>the number of bytes to append </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if not enough memory. </dd></dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l01253">1253</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-string-private_8h-source.html#l00086">DBUS_STRING_PREAMBLE</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
<p>
Referenced by <a class="el" href="dbus-sha_8c-source.html#l00455">_dbus_sha_final()</a>, <a class="el" href="dbus-message_8c-source.html#l03979">dbus_message_demarshal()</a>, <a class="el" href="dbus-message_8c-source.html#l01898">dbus_message_iter_get_signature()</a>, and <a class="el" href="dbus-signature_8c-source.html#l00110">dbus_signature_iter_get_signature()</a>.
</div>
</div><p>
<a class="anchor" name="gb0078cf7e0e5bd784ec6d6e0cc3923a2"></a><!-- doxytag: member="dbus-string.c::_dbus_string_append_printf" ref="gb0078cf7e0e5bd784ec6d6e0cc3923a2" 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#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_string_append_printf </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>str</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>format</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"> </td>
<td class="paramname"> <em>...</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></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 compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>str</em> </td><td>the string </td></tr>
<tr><td valign="top"></td><td valign="top"><em>format</em> </td><td>printf format </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if no memory </dd></dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l01230">1230</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.
<p>
References <a class="el" href="dbus-string_8c-source.html#l01192">_dbus_string_append_printf_valist()</a>.
<p>
Referenced by <a class="el" href="dbus-connection_8c-source.html#l04220">dbus_connection_dispatch()</a>.
</div>
</div><p>
<a class="anchor" name="g8d794f292831d1a7edeb971b13a2c641"></a><!-- doxytag: member="dbus-string.c::_dbus_string_append_printf_valist" ref="g8d794f292831d1a7edeb971b13a2c641" 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#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_string_append_printf_valist </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>str</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>format</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">va_list </td>
<td class="paramname"> <em>args</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></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 compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>str</em> </td><td>the string </td></tr>
<tr><td valign="top"></td><td valign="top"><em>format</em> </td><td>printf format </td></tr>
<tr><td valign="top"></td><td valign="top"><em>args</em> </td><td>variable argument list </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if no memory </dd></dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l01192">1192</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.
<p>
References <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02696">_dbus_printf_string_upper_bound()</a>, <a class="el" href="dbus-string_8c-source.html#l00812">_dbus_string_lengthen()</a>, <a class="el" href="dbus-string-private_8h-source.html#l00086">DBUS_STRING_PREAMBLE</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-string-private_8h-source.html#l00047">DBusRealString::len</a>, <a class="el" href="dbus-string-private_8h-source.html#l00046">DBusRealString::str</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
<p>
Referenced by <a class="el" href="dbus-string_8c-source.html#l01230">_dbus_string_append_printf()</a>, <a class="el" href="dbus-message_8c-source.html#l01268">dbus_message_new_error_printf()</a>, and <a class="el" href="dbus-errors_8c-source.html#l00326">dbus_set_error()</a>.
</div>
</div><p>
<a class="anchor" name="ga63064881001085159c78204f70acde8"></a><!-- doxytag: member="dbus-sysdeps.c::_dbus_string_append_uint" ref="ga63064881001085159c78204f70acde8" 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#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_string_append_uint </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>str</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned long </td>
<td class="paramname"> <em>value</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Appends an unsigned integer to a <a class="el" href="structDBusString.html">DBusString</a>.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>str</em> </td><td>the string </td></tr>
<tr><td valign="top"></td><td valign="top"><em>value</em> </td><td>the integer value </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if not enough memory or other failure. </dd></dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l00425">425</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.
<p>
References <a class="el" href="dbus-string_8c-source.html#l00457">_dbus_string_get_data_len()</a>, <a class="el" href="dbus-string_8c-source.html#l00812">_dbus_string_lengthen()</a>, <a class="el" href="dbus-string_8c-source.html#l00832">_dbus_string_shorten()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
<p>
Referenced by <a class="el" href="dbus-sysdeps-unix_8c-source.html#l01664">_dbus_append_user_from_current_process()</a>.
</div>
</div><p>
<a class="anchor" name="ga92c6ab2c5e24cbefef0a3f3fc76f98b"></a><!-- doxytag: member="dbus-string.c::_dbus_string_chop_white" ref="ga92c6ab2c5e24cbefef0a3f3fc76f98b" args="(DBusString *str)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void _dbus_string_chop_white </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>str</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Deletes leading and trailing whitespace.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>str</em> </td><td>the string </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l02168">2168</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.
<p>
References <a class="el" href="dbus-string_8c-source.html#l01382">_dbus_string_delete()</a>, <a class="el" href="dbus-string_8c-source.html#l00854">_dbus_string_set_length()</a>, <a class="el" href="dbus-string_8c-source.html#l02016">_dbus_string_skip_white()</a>, and <a class="el" href="dbus-string_8c-source.html#l02049">_dbus_string_skip_white_reverse()</a>.
<p>
Referenced by <a class="el" href="dbus-sysdeps_8c-source.html#l00259">_dbus_split_paths_and_append()</a>.
</div>
</div><p>
<a class="anchor" name="g3c10f0d1bcaa3b450025b9c6a8b901d7"></a><!-- doxytag: member="dbus-string.c::_dbus_string_copy" ref="g3c10f0d1bcaa3b450025b9c6a8b901d7" 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#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_string_copy </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>source</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </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> * </td>
<td class="paramname"> <em>dest</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>insert_at</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Like <a class="el" href="group__DBusString.html#gd379fce8d4ef4f7e28f81f50b46ee4c9">_dbus_string_move()</a>, but does not delete the section of the source string that's copied to the dest string.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>source</em> </td><td>the source string </td></tr>
<tr><td valign="top"></td><td valign="top"><em>start</em> </td><td>where to start copying the source string </td></tr>
<tr><td valign="top"></td><td valign="top"><em>dest</em> </td><td>the destination string </td></tr>
<tr><td valign="top"></td><td valign="top"><em>insert_at</em> </td><td>where to place the copied part of source string </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if not enough memory </dd></dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l01472">1472</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.
<p>
References <a class="el" href="dbus-string_8c-source.html#l01424">DBUS_STRING_COPY_PREAMBLE</a>.
<p>
Referenced by <a class="el" href="dbus-sysdeps-unix_8c-source.html#l03171">_dbus_append_keyring_directory_for_credentials()</a>, <a class="el" href="dbus-auth_8c-source.html#l02580">_dbus_auth_decode_data()</a>, <a class="el" href="dbus-auth_8c-source.html#l02517">_dbus_auth_encode_data()</a>, <a class="el" href="dbus-auth_8c-source.html#l02144">_dbus_auth_server_new()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02331">_dbus_concat_dir_and_file()</a>, <a class="el" href="dbus-marshal-header_8c-source.html#l00477">_dbus_header_copy()</a>, <a class="el" href="dbus-keyring_8c-source.html#l00713">_dbus_keyring_new_for_credentials()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02057">_dbus_string_save_to_file()</a>, <a class="el" href="dbus-message_8c-source.html#l01311">dbus_message_copy()</a>, and <a class="el" href="dbus-message_8c-source.html#l03932">dbus_message_marshal()</a>.
</div>
</div><p>
<a class="anchor" name="g7e509d4f959d19d96f83250e62287b06"></a><!-- doxytag: member="dbus-string.c::_dbus_string_copy_data" ref="g7e509d4f959d19d96f83250e62287b06" 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#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_string_copy_data </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>str</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char ** </td>
<td class="paramname"> <em>data_return</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Copies the data from the string into a char*.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>str</em> </td><td>the string </td></tr>
<tr><td valign="top"></td><td valign="top"><em>data_return</em> </td><td>place to return the data </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> on success, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> on no memory </dd></dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l00697">697</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-string-private_8h-source.html#l00107">DBUS_CONST_STRING_PREAMBLE</a>, <a class="el" href="dbus-memory_8c-source.html#l00440">dbus_malloc()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-string-private_8h-source.html#l00047">DBusRealString::len</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="dbus-string-private_8h-source.html#l00046">DBusRealString::str</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
<p>
Referenced by <a class="el" href="dbus-sysdeps_8c-source.html#l00259">_dbus_split_paths_and_append()</a>, <a class="el" href="dbus-transport_8c-source.html#l00093">_dbus_transport_init_base()</a>, and <a class="el" href="dbus-server_8c-source.html#l00824">dbus_server_get_id()</a>.
</div>
</div><p>
<a class="anchor" name="gf5f13bc7ac7a623516930d26ae2589bf"></a><!-- doxytag: member="dbus-string.c::_dbus_string_copy_len" ref="gf5f13bc7ac7a623516930d26ae2589bf" 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#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_string_copy_len </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>source</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>start</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </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> * </td>
<td class="paramname"> <em>dest</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>insert_at</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Like <a class="el" href="group__DBusString.html#g3c10f0d1bcaa3b450025b9c6a8b901d7">_dbus_string_copy()</a>, but can copy a segment from the middle of the source string.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>source</em> </td><td>the source string </td></tr>
<tr><td valign="top"></td><td valign="top"><em>start</em> </td><td>where to start copying the source string </td></tr>
<tr><td valign="top"></td><td valign="top"><em>len</em> </td><td>length of segment to copy </td></tr>
<tr><td valign="top"></td><td valign="top"><em>dest</em> </td><td>the destination string </td></tr>
<tr><td valign="top"></td><td valign="top"><em>insert_at</em> </td><td>where to place the copied segment of source string </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if not enough memory </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>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, and <a class="el" href="dbus-string_8c-source.html#l01424">DBUS_STRING_COPY_PREAMBLE</a>.
<p>
Referenced by <a class="el" href="dbus-marshal-header_8c-source.html#l00948">_dbus_header_load()</a>, <a class="el" href="dbus-sysdeps_8c-source.html#l00259">_dbus_split_paths_and_append()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00985">_dbus_string_get_dirname()</a>, and <a class="el" href="dbus-address_8c-source.html#l00363">dbus_parse_address()</a>.
</div>
</div><p>
<a class="anchor" name="gf97b18e419678dbf967d9b9ad1112ca6"></a><!-- doxytag: member="dbus-string.c::_dbus_string_copy_to_buffer" ref="gf97b18e419678dbf967d9b9ad1112ca6" args="(const DBusString *str, char *buffer, int avail_len)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void _dbus_string_copy_to_buffer </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>str</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char * </td>
<td class="paramname"> <em>buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>avail_len</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></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>
The resulting buffer will be nul-terminated.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>str</em> </td><td>a string </td></tr>
<tr><td valign="top"></td><td valign="top"><em>buffer</em> </td><td>a C buffer to copy data to </td></tr>
<tr><td valign="top"></td><td valign="top"><em>avail_len</em> </td><td>maximum length of C buffer </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l00721">721</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-string-private_8h-source.html#l00107">DBUS_CONST_STRING_PREAMBLE</a>, <a class="el" href="dbus-string-private_8h-source.html#l00047">DBusRealString::len</a>, and <a class="el" href="dbus-string-private_8h-source.html#l00046">DBusRealString::str</a>.
<p>
Referenced by <a class="el" href="dbus-sysdeps_8c-source.html#l00828">_dbus_generate_random_bytes_buffer()</a>.
</div>
</div><p>
<a class="anchor" name="g7e0e164ad5bb094e5ccad9edc7ae4235"></a><!-- doxytag: member="dbus-string.c::_dbus_string_delete" ref="g7e0e164ad5bb094e5ccad9edc7ae4235" args="(DBusString *str, int start, int len)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void _dbus_string_delete </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>str</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>start</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>len</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></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>
(Hint: to clear an entire string, setting length to 0 with <a class="el" href="group__DBusString.html#g08c423b93c28dd746dcb93e0461ab95c">_dbus_string_set_length()</a> is easier.)<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>str</em> </td><td>the <a class="el" href="structDBusString.html">DBusString</a> </td></tr>
<tr><td valign="top"></td><td valign="top"><em>start</em> </td><td>where to start deleting </td></tr>
<tr><td valign="top"></td><td valign="top"><em>len</em> </td><td>the number of bytes to delete </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l01382">1382</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, and <a class="el" href="dbus-string-private_8h-source.html#l00086">DBUS_STRING_PREAMBLE</a>.
<p>
Referenced by <a class="el" href="dbus-auth_8c-source.html#l02397">_dbus_auth_bytes_sent()</a>, <a class="el" href="dbus-marshal-header_8c-source.html#l00514">_dbus_header_create()</a>, <a class="el" href="dbus-string_8c-source.html#l02168">_dbus_string_chop_white()</a>, and <a class="el" href="dbus-marshal-recursive_8c-source.html#l02659">_dbus_type_writer_write_reader_partial()</a>.
</div>
</div><p>
<a class="anchor" name="g4701fa3fabccad3ba64b7bf17c4ae14c"></a><!-- doxytag: member="dbus-string-util.c::_dbus_string_ends_with_c_str" ref="g4701fa3fabccad3ba64b7bf17c4ae14c" 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#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_string_ends_with_c_str </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>a</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>c_str</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Returns whether a string ends with the given suffix.
<p>
<dl compact><dt><b><a class="el" href="todo.html#_todo000046">Todo:</a></b></dt><dd>memcmp might make this faster.</dd></dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>a</em> </td><td>the string </td></tr>
<tr><td valign="top"></td><td valign="top"><em>c_str</em> </td><td>the C-style string </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">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#l00045">45</a> of file <a class="el" href="dbus-string-util_8c-source.html">dbus-string-util.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-string-private_8h-source.html#l00078">DBUS_GENERIC_STRING_PREAMBLE</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
</div>
</div><p>
<a class="anchor" name="gd79c34af55b58f0e8b81ecf11b8694bb"></a><!-- doxytag: member="dbus-string.c::_dbus_string_equal" ref="gd79c34af55b58f0e8b81ecf11b8694bb" 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#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_string_equal </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> * </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> * </td>
<td class="paramname"> <em>b</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Tests two <a class="el" href="structDBusString.html">DBusString</a> for equality.
<p>
<dl compact><dt><b><a class="el" href="todo.html#_todo000052">Todo:</a></b></dt><dd>memcmp is probably faster</dd></dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>a</em> </td><td>first string </td></tr>
<tr><td valign="top"></td><td valign="top"><em>b</em> </td><td>second string </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if equal </dd></dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l02192">2192</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.
<p>
References <a class="el" href="dbus-string-private_8h-source.html#l00078">DBUS_GENERIC_STRING_PREAMBLE</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-string-private_8h-source.html#l00047">DBusRealString::len</a>, <a class="el" href="dbus-string-private_8h-source.html#l00046">DBusRealString::str</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
<p>
Referenced by <a class="el" href="dbus-errors_8c-source.html#l00274">dbus_error_has_name()</a>.
</div>
</div><p>
<a class="anchor" name="g84f39f1bf398697920637d2982248c72"></a><!-- doxytag: member="dbus-string.c::_dbus_string_equal_c_str" ref="g84f39f1bf398697920637d2982248c72" 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#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_string_equal_c_str </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>a</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>c_str</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Checks whether a string is equal to a C string.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>a</em> </td><td>the string </td></tr>
<tr><td valign="top"></td><td valign="top"><em>c_str</em> </td><td>the C string </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if equal </dd></dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l02333">2333</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-string-private_8h-source.html#l00078">DBUS_GENERIC_STRING_PREAMBLE</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
<p>
Referenced by <a class="el" href="dbus-address_8c-source.html#l00244">dbus_address_entry_get_value()</a>.
</div>
</div><p>
<a class="anchor" name="g2095c2a797ae245521a7588b32279110"></a><!-- doxytag: member="dbus-string.c::_dbus_string_equal_substring" ref="g2095c2a797ae245521a7588b32279110" 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#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_string_equal_substring </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>a</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>a_start</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </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> * </td>
<td class="paramname"> <em>b</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>b_start</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></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>
The specified range of the first string must exist; the specified start position of the second string must exist.<p>
<dl compact><dt><b><a class="el" href="todo.html#_todo000053">Todo:</a></b></dt><dd>write a unit test</dd></dl>
<dl compact><dt><b><a class="el" href="todo.html#_todo000053">Todo:</a></b></dt><dd>memcmp is probably faster</dd></dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>a</em> </td><td>first string </td></tr>
<tr><td valign="top"></td><td valign="top"><em>a_start</em> </td><td>where to start substring in first string </td></tr>
<tr><td valign="top"></td><td valign="top"><em>a_len</em> </td><td>length of substring in first string </td></tr>
<tr><td valign="top"></td><td valign="top"><em>b</em> </td><td>second string </td></tr>
<tr><td valign="top"></td><td valign="top"><em>b_start</em> </td><td>where to start substring in second string </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if the two substrings are equal </dd></dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l02285">2285</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-string-private_8h-source.html#l00078">DBUS_GENERIC_STRING_PREAMBLE</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-string-private_8h-source.html#l00047">DBusRealString::len</a>, <a class="el" href="dbus-string-private_8h-source.html#l00046">DBusRealString::str</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
</div>
</div><p>
<a class="anchor" name="g5fe47873b2838339107c3e1f03d1a703"></a><!-- doxytag: member="dbus-string.c::_dbus_string_find" ref="g5fe47873b2838339107c3e1f03d1a703" 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#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_string_find </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>str</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>start</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>substr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int * </td>
<td class="paramname"> <em>found</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Finds the given substring in the string, returning <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> and filling in the byte index where the substring was found, if it was found.
<p>
Returns <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if the substring wasn't found. Sets *start to the length of the string if the substring is not found.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>str</em> </td><td>the string </td></tr>
<tr><td valign="top"></td><td valign="top"><em>start</em> </td><td>where to start looking </td></tr>
<tr><td valign="top"></td><td valign="top"><em>substr</em> </td><td>the substring </td></tr>
<tr><td valign="top"></td><td valign="top"><em>found</em> </td><td>return location for where it was found, or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if found </dd></dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l01783">1783</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.
<p>
References <a class="el" href="dbus-string_8c-source.html#l01876">_dbus_string_find_to()</a>.
<p>
Referenced by <a class="el" href="dbus-keyring_8c-source.html#l00850">_dbus_keyring_validate_context()</a>, <a class="el" href="dbus-sysdeps_8c-source.html#l00259">_dbus_split_paths_and_append()</a>, and <a class="el" href="dbus-address_8c-source.html#l00363">dbus_parse_address()</a>.
</div>
</div><p>
<a class="anchor" name="g677ddb4246c7e7f67ed3145dc3c1c96b"></a><!-- doxytag: member="dbus-string.c::_dbus_string_find_blank" ref="g677ddb4246c7e7f67ed3145dc3c1c96b" 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#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_string_find_blank </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>str</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>start</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int * </td>
<td class="paramname"> <em>found</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Finds a blank (space or tab) in the string.
<p>
Returns <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if found, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> otherwise. If a blank is not found sets *found to the length of the string.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>str</em> </td><td>the string </td></tr>
<tr><td valign="top"></td><td valign="top"><em>start</em> </td><td>byte index to start looking </td></tr>
<tr><td valign="top"></td><td valign="top"><em>found</em> </td><td>place to store the location of the first blank </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if a blank was found </dd></dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l01944">1944</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-string-private_8h-source.html#l00107">DBUS_CONST_STRING_PREAMBLE</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-string-private_8h-source.html#l00047">DBusRealString::len</a>, <a class="el" href="dbus-string-private_8h-source.html#l00046">DBusRealString::str</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
<p>
Referenced by <a class="el" href="dbus-keyring_8c-source.html#l00850">_dbus_keyring_validate_context()</a>.
</div>
</div><p>
<a class="anchor" name="g89d458f4f530ee82dbb45f9dcbc9c637"></a><!-- doxytag: member="dbus-string-util.c::_dbus_string_find_byte_backward" ref="g89d458f4f530ee82dbb45f9dcbc9c637" 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#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_string_find_byte_backward </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>str</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>start</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned char </td>
<td class="paramname"> <em>byte</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int * </td>
<td class="paramname"> <em>found</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Find the given byte scanning backward from the given start.
<p>
Sets *found to -1 if the byte is not found.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>str</em> </td><td>the string </td></tr>
<tr><td valign="top"></td><td valign="top"><em>start</em> </td><td>the place to start scanning (will not find the byte at this point) </td></tr>
<tr><td valign="top"></td><td valign="top"><em>byte</em> </td><td>the byte to find </td></tr>
<tr><td valign="top"></td><td valign="top"><em>found</em> </td><td>return location for where it was found </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if found </dd></dl>
<p>
Definition at line <a class="el" href="dbus-string-util_8c-source.html#l00089">89</a> of file <a class="el" href="dbus-string-util_8c-source.html">dbus-string-util.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-string-private_8h-source.html#l00107">DBUS_CONST_STRING_PREAMBLE</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
<p>
Referenced by <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00985">_dbus_string_get_dirname()</a>.
</div>
</div><p>
<a class="anchor" name="g3c98d1913e3ba4deb8eda60b2e262fdb"></a><!-- doxytag: member="dbus-string.c::_dbus_string_find_eol" ref="g3c98d1913e3ba4deb8eda60b2e262fdb" 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#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_string_find_eol </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>str</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>start</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int * </td>
<td class="paramname"> <em>found</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int * </td>
<td class="paramname"> <em>found_len</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></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#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> and filling in the byte index where the eol string was found, if it was found.
<p>
Returns <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if eol wasn't found.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>str</em> </td><td>the string </td></tr>
<tr><td valign="top"></td><td valign="top"><em>start</em> </td><td>where to start looking </td></tr>
<tr><td valign="top"></td><td valign="top"><em>found</em> </td><td>return location for where eol was found or string length otherwise </td></tr>
<tr><td valign="top"></td><td valign="top"><em>found_len</em> </td><td>return length of found eol string or zero otherwise </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if found </dd></dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l01806">1806</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-string-private_8h-source.html#l00107">DBUS_CONST_STRING_PREAMBLE</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-string-private_8h-source.html#l00047">DBusRealString::len</a>, <a class="el" href="dbus-string-private_8h-source.html#l00046">DBusRealString::str</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
<p>
Referenced by <a class="el" href="dbus-string_8c-source.html#l02088">_dbus_string_pop_line()</a>.
</div>
</div><p>
<a class="anchor" name="gf2281731c3119f946726680242a5ae02"></a><!-- doxytag: member="dbus-string.c::_dbus_string_find_to" ref="gf2281731c3119f946726680242a5ae02" 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#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_string_find_to </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>str</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>start</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>end</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>substr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int * </td>
<td class="paramname"> <em>found</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></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#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> and filling in the byte index where the substring was found, if it was found.
<p>
Returns <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if the substring wasn't found. Sets *start to the length of the string if the substring is not found.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>str</em> </td><td>the string </td></tr>
<tr><td valign="top"></td><td valign="top"><em>start</em> </td><td>where to start looking </td></tr>
<tr><td valign="top"></td><td valign="top"><em>end</em> </td><td>where to stop looking </td></tr>
<tr><td valign="top"></td><td valign="top"><em>substr</em> </td><td>the substring </td></tr>
<tr><td valign="top"></td><td valign="top"><em>found</em> </td><td>return location for where it was found, or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if found </dd></dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l01876">1876</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-string-private_8h-source.html#l00107">DBUS_CONST_STRING_PREAMBLE</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="dbus-string-private_8h-source.html#l00046">DBusRealString::str</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
<p>
Referenced by <a class="el" href="dbus-string_8c-source.html#l01783">_dbus_string_find()</a>, and <a class="el" href="dbus-address_8c-source.html#l00363">dbus_parse_address()</a>.
</div>
</div><p>
<a class="anchor" name="g781ca91acda49a834dce7d0ed0eef212"></a><!-- doxytag: member="dbus-string.c::_dbus_string_free" ref="g781ca91acda49a834dce7d0ed0eef212" args="(DBusString *str)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void _dbus_string_free </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>str</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Frees a string created by <a class="el" href="group__DBusString.html#g348252317f7bb8ac43529972945830ae">_dbus_string_init()</a>.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>str</em> </td><td>memory where the string is stored. </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l00262">262</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.
<p>
References <a class="el" href="dbus-memory_8c-source.html#l00617">dbus_free()</a>, <a class="el" href="dbus-string-private_8h-source.html#l00078">DBUS_GENERIC_STRING_PREAMBLE</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
<p>
Referenced by <a class="el" href="dbus-sysdeps-unix_8c-source.html#l03171">_dbus_append_keyring_directory_for_credentials()</a>, <a class="el" href="dbus-auth_8c-source.html#l02190">_dbus_auth_client_new()</a>, <a class="el" href="dbus-auth_8c-source.html#l02144">_dbus_auth_server_new()</a>, <a class="el" href="dbus-auth_8c-source.html#l02243">_dbus_auth_unref()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00074">_dbus_become_daemon()</a>, <a class="el" href="dbus-sysdeps_8c-source.html#l00828">_dbus_generate_random_bytes_buffer()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02754">_dbus_get_autolaunch_address()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02983">_dbus_get_standard_session_servicedirs()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l03072">_dbus_get_standard_system_servicedirs()</a>, <a class="el" href="dbus-marshal-header_8c-source.html#l00477">_dbus_header_copy()</a>, <a class="el" href="dbus-marshal-header_8c-source.html#l00463">_dbus_header_free()</a>, <a class="el" href="dbus-userdb-util_8c-source.html#l00043">_dbus_is_console_user()</a>, <a class="el" href="dbus-keyring_8c-source.html#l00713">_dbus_keyring_new_for_credentials()</a>, <a class="el" href="dbus-keyring_8c-source.html#l00685">_dbus_keyring_unref()</a>, <a class="el" href="dbus-message_8c-source.html#l03354">_dbus_message_loader_unref()</a>, <a class="el" href="dbus-server_8c-source.html#l00168">_dbus_server_finalize_base()</a>, <a class="el" href="dbus-server_8c-source.html#l00096">_dbus_server_init_base()</a>, <a class="el" href="dbus-server-unix_8c-source.html#l00052">_dbus_server_listen_platform_specific()</a>, <a class="el" href="dbus-server-unix_8c-source.html#l00167">_dbus_server_new_for_domain_socket()</a>, <a class="el" href="dbus-server-socket_8c-source.html#l00369">_dbus_server_new_for_tcp_socket()</a>, <a class="el" href="dbus-sha_8c-source.html#l00482">_dbus_sha_compute()</a>, <a class="el" href="dbus-sysdeps_8c-source.html#l00259">_dbus_split_paths_and_append()</a>, <a class="el" href="dbus-string_8c-source.html#l02492">_dbus_string_hex_decode()</a>, <a class="el" href="dbus-string_8c-source.html#l02442">_dbus_string_hex_encode()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02057">_dbus_string_save_to_file()</a>, <a class="el" href="dbus-transport-unix_8c-source.html#l00053">_dbus_transport_new_for_domain_socket()</a>, <a class="el" href="dbus-transport-socket_8c-source.html#l01148">_dbus_transport_new_for_socket()</a>, <a class="el" href="dbus-transport-socket_8c-source.html#l01216">_dbus_transport_new_for_tcp_socket()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00482">_dbus_user_at_console()</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#l04220">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#l01311">dbus_message_copy()</a>, <a class="el" href="dbus-message_8c-source.html#l01898">dbus_message_iter_get_signature()</a>, <a class="el" href="dbus-message_8c-source.html#l03932">dbus_message_marshal()</a>, <a class="el" href="dbus-message_8c-source.html#l01268">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#l00326">dbus_set_error()</a>, and <a class="el" href="dbus-signature_8c-source.html#l00110">dbus_signature_iter_get_signature()</a>.
</div>
</div><p>
<a class="anchor" name="g7a73fb373398606e6e1d0a86c4587a3c"></a><!-- doxytag: member="dbus-string.c::_dbus_string_get_data_len" ref="g7a73fb373398606e6e1d0a86c4587a3c" args="(DBusString *str, int start, int len)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">char* _dbus_string_get_data_len </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>str</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>start</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>len</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Gets a sub-portion of the raw character buffer from the string.
<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 compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>str</em> </td><td>the string </td></tr>
<tr><td valign="top"></td><td valign="top"><em>start</em> </td><td>byte offset to return </td></tr>
<tr><td valign="top"></td><td valign="top"><em>len</em> </td><td>length of segment to return </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the string data </dd></dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l00457">457</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-string-private_8h-source.html#l00086">DBUS_STRING_PREAMBLE</a>, and <a class="el" href="dbus-string-private_8h-source.html#l00046">DBusRealString::str</a>.
<p>
Referenced by <a class="el" href="dbus-marshal-header_8c-source.html#l01423">_dbus_header_toggle_flag()</a>, <a class="el" href="dbus-marshal-byteswap_8c-source.html#l00220">_dbus_marshal_byteswap()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l00270">_dbus_read()</a>, <a class="el" href="dbus-sysdeps_8c-source.html#l00387">_dbus_string_append_int()</a>, and <a class="el" href="dbus-sysdeps_8c-source.html#l00425">_dbus_string_append_uint()</a>.
</div>
</div><p>
<a class="anchor" name="gfa79c1113fa75419dcc5ee4290e06608"></a><!-- doxytag: member="dbus-sysdeps-util-unix.c::_dbus_string_get_dirname" ref="gfa79c1113fa75419dcc5ee4290e06608" 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#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_string_get_dirname </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> * </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> * </td>
<td class="paramname"> <em>dirname</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Get the directory name from a complete filename.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>filename</em> </td><td>the filename </td></tr>
<tr><td valign="top"></td><td valign="top"><em>dirname</em> </td><td>string to append directory name to </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if no memory </dd></dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00985">985</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c-source.html">dbus-sysdeps-util-unix.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-string_8c-source.html#l00987">_dbus_string_append()</a>, <a class="el" href="dbus-string_8c-source.html#l01567">_dbus_string_copy_len()</a>, <a class="el" href="dbus-string-util_8c-source.html#l00089">_dbus_string_find_byte_backward()</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
</div>
</div><p>
<a class="anchor" name="g0a8c20d855f9ddc05718b9e2ac0e33d8"></a><!-- doxytag: member="dbus-string.c::_dbus_string_hex_decode" ref="g0a8c20d855f9ddc05718b9e2ac0e33d8" 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#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_string_hex_decode </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>source</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>start</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int * </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> * </td>
<td class="paramname"> <em>dest</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>insert_at</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Decodes a string from hex encoding.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>source</em> </td><td>the string to decode </td></tr>
<tr><td valign="top"></td><td valign="top"><em>start</em> </td><td>byte index to start decode </td></tr>
<tr><td valign="top"></td><td valign="top"><em>end_return</em> </td><td>return location of the end of the hex data, or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> </td></tr>
<tr><td valign="top"></td><td valign="top"><em>dest</em> </td><td>string where decoded data should be placed </td></tr>
<tr><td valign="top"></td><td valign="top"><em>insert_at</em> </td><td>where to place decoded data </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if decoding was successful, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if no memory. </dd></dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l02492">2492</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-string_8c-source.html#l01273">_dbus_string_append_byte()</a>, <a class="el" href="dbus-string_8c-source.html#l00262">_dbus_string_free()</a>, <a class="el" href="dbus-string_8c-source.html#l00175">_dbus_string_init()</a>, <a class="el" href="dbus-string_8c-source.html#l01448">_dbus_string_move()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
</div>
</div><p>
<a class="anchor" name="gabb4873f436e015944a33cd1e3815cc9"></a><!-- doxytag: member="dbus-string.c::_dbus_string_hex_encode" ref="gabb4873f436e015944a33cd1e3815cc9" 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#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_string_hex_encode </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>source</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </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> * </td>
<td class="paramname"> <em>dest</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>insert_at</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Encodes a string in hex, the way MD5 and SHA-1 are usually encoded.
<p>
(Each byte is two hex digits.)<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>source</em> </td><td>the string to encode </td></tr>
<tr><td valign="top"></td><td valign="top"><em>start</em> </td><td>byte index to start encoding </td></tr>
<tr><td valign="top"></td><td valign="top"><em>dest</em> </td><td>string where encoded data should be placed </td></tr>
<tr><td valign="top"></td><td valign="top"><em>insert_at</em> </td><td>where to place encoded data </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if encoding was successful, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if no memory etc. </dd></dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l02442">2442</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-string_8c-source.html#l02408">_dbus_string_append_byte_as_hex()</a>, <a class="el" href="dbus-string_8c-source.html#l00262">_dbus_string_free()</a>, <a class="el" href="dbus-string_8c-source.html#l00175">_dbus_string_init()</a>, <a class="el" href="dbus-string_8c-source.html#l01448">_dbus_string_move()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
<p>
Referenced by <a class="el" href="dbus-keyring_8c-source.html#l01004">_dbus_keyring_get_hex_key()</a>, <a class="el" href="dbus-sha_8c-source.html#l00482">_dbus_sha_compute()</a>, and <a class="el" href="dbus-internals_8c-source.html#l00529">_dbus_uuid_encode()</a>.
</div>
</div><p>
<a class="anchor" name="g348252317f7bb8ac43529972945830ae"></a><!-- doxytag: member="dbus-string.c::_dbus_string_init" ref="g348252317f7bb8ac43529972945830ae" args="(DBusString *str)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_string_init </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>str</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Initializes a string.
<p>
The string starts life with zero length. The string must eventually be freed with <a class="el" href="group__DBusString.html#g781ca91acda49a834dce7d0ed0eef212">_dbus_string_free()</a>.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>str</em> </td><td>memory to hold the string </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> on success, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">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>
References <a class="el" href="dbus-string_8c-source.html#l00131">_dbus_string_init_preallocated()</a>.
<p>
Referenced by <a class="el" href="dbus-sysdeps-unix_8c-source.html#l03171">_dbus_append_keyring_directory_for_credentials()</a>, <a class="el" href="dbus-auth_8c-source.html#l02190">_dbus_auth_client_new()</a>, <a class="el" href="dbus-auth_8c-source.html#l02144">_dbus_auth_server_new()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00074">_dbus_become_daemon()</a>, <a class="el" href="dbus-sysdeps_8c-source.html#l00828">_dbus_generate_random_bytes_buffer()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02754">_dbus_get_autolaunch_address()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02983">_dbus_get_standard_session_servicedirs()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l03072">_dbus_get_standard_system_servicedirs()</a>, <a class="el" href="dbus-userdb-util_8c-source.html#l00043">_dbus_is_console_user()</a>, <a class="el" href="dbus-keyring_8c-source.html#l00713">_dbus_keyring_new_for_credentials()</a>, <a class="el" href="dbus-message_8c-source.html#l03304">_dbus_message_loader_new()</a>, <a class="el" href="dbus-server_8c-source.html#l00096">_dbus_server_init_base()</a>, <a class="el" href="dbus-server-unix_8c-source.html#l00052">_dbus_server_listen_platform_specific()</a>, <a class="el" href="dbus-server-unix_8c-source.html#l00167">_dbus_server_new_for_domain_socket()</a>, <a class="el" href="dbus-server-socket_8c-source.html#l00369">_dbus_server_new_for_tcp_socket()</a>, <a class="el" href="dbus-sha_8c-source.html#l00482">_dbus_sha_compute()</a>, <a class="el" href="dbus-sysdeps_8c-source.html#l00259">_dbus_split_paths_and_append()</a>, <a class="el" href="dbus-string_8c-source.html#l02492">_dbus_string_hex_decode()</a>, <a class="el" href="dbus-string_8c-source.html#l02442">_dbus_string_hex_encode()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02057">_dbus_string_save_to_file()</a>, <a class="el" href="dbus-string_8c-source.html#l00608">_dbus_string_steal_data()</a>, <a class="el" href="dbus-transport-unix_8c-source.html#l00053">_dbus_transport_new_for_domain_socket()</a>, <a class="el" href="dbus-transport-socket_8c-source.html#l01148">_dbus_transport_new_for_socket()</a>, <a class="el" href="dbus-transport-socket_8c-source.html#l01216">_dbus_transport_new_for_tcp_socket()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00482">_dbus_user_at_console()</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#l04220">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#l01898">dbus_message_iter_get_signature()</a>, <a class="el" href="dbus-message_8c-source.html#l03932">dbus_message_marshal()</a>, <a class="el" href="dbus-message_8c-source.html#l01268">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#l00326">dbus_set_error()</a>, and <a class="el" href="dbus-signature_8c-source.html#l00110">dbus_signature_iter_get_signature()</a>.
</div>
</div><p>
<a class="anchor" name="g374640ddfa2f0b27a8356e2379ba8043"></a><!-- doxytag: member="dbus-string.c::_dbus_string_init_const" ref="g374640ddfa2f0b27a8356e2379ba8043" args="(DBusString *str, const char *value)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void _dbus_string_init_const </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>str</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>value</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Initializes a constant string.
<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#g781ca91acda49a834dce7d0ed0eef212">_dbus_string_free()</a> on a const string. The string has a length limit of MAXINT - 8.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>str</em> </td><td>memory to use for the string </td></tr>
<tr><td valign="top"></td><td valign="top"><em>value</em> </td><td>a string to be stored in str (not copied!!!) </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l00209">209</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-string_8c-source.html#l00229">_dbus_string_init_const_len()</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
<p>
Referenced by <a class="el" href="dbus-sysdeps-unix_8c-source.html#l03171">_dbus_append_keyring_directory_for_credentials()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00275">_dbus_change_to_daemon_user()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02983">_dbus_get_standard_session_servicedirs()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02952">_dbus_read_local_machine_uuid()</a>, <a class="el" href="dbus-server-unix_8c-source.html#l00167">_dbus_server_new_for_domain_socket()</a>, <a class="el" href="dbus-server-socket_8c-source.html#l00369">_dbus_server_new_for_tcp_socket()</a>, <a class="el" href="dbus-sysdeps_8c-source.html#l00259">_dbus_split_paths_and_append()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00258">_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#l00274">dbus_error_has_name()</a>, <a class="el" href="dbus-uuidgen_8c-source.html#l00076">dbus_internal_do_not_use_get_uuid()</a>, <a class="el" href="dbus-message_8c-source.html#l02336">dbus_message_iter_open_container()</a>, <a class="el" href="dbus-address_8c-source.html#l00363">dbus_parse_address()</a>, and <a class="el" href="dbus-signature_8c-source.html#l00231">dbus_signature_validate()</a>.
</div>
</div><p>
<a class="anchor" name="g6792a5c1725faa9d635d95f7a3b5bfae"></a><!-- doxytag: member="dbus-string.c::_dbus_string_init_const_len" ref="g6792a5c1725faa9d635d95f7a3b5bfae" args="(DBusString *str, const char *value, int len)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void _dbus_string_init_const_len </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>str</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>value</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>len</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Initializes a constant string with a length.
<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#g781ca91acda49a834dce7d0ed0eef212">_dbus_string_free()</a> on a const string.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>str</em> </td><td>memory to use for the string </td></tr>
<tr><td valign="top"></td><td valign="top"><em>value</em> </td><td>a string to be stored in str (not copied!!!) </td></tr>
<tr><td valign="top"></td><td valign="top"><em>len</em> </td><td>the length to use </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l00229">229</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-string-private_8h-source.html#l00071">_DBUS_STRING_MAX_MAX_LENGTH</a>, <a class="el" href="dbus-string-private_8h-source.html#l00053">DBusRealString::align_offset</a>, <a class="el" href="dbus-string-private_8h-source.html#l00048">DBusRealString::allocated</a>, <a class="el" href="dbus-string-private_8h-source.html#l00050">DBusRealString::constant</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-string-private_8h-source.html#l00052">DBusRealString::invalid</a>, <a class="el" href="dbus-string-private_8h-source.html#l00047">DBusRealString::len</a>, <a class="el" href="dbus-string-private_8h-source.html#l00051">DBusRealString::locked</a>, <a class="el" href="dbus-string-private_8h-source.html#l00049">DBusRealString::max_length</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="dbus-string-private_8h-source.html#l00046">DBusRealString::str</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
<p>
Referenced by <a class="el" href="dbus-string_8c-source.html#l00209">_dbus_string_init_const()</a>, and <a class="el" href="dbus-internals_8c-source.html#l00529">_dbus_uuid_encode()</a>.
</div>
</div><p>
<a class="anchor" name="g569b784beea1b4fa98f05d27e6dd0e72"></a><!-- doxytag: member="dbus-string.c::_dbus_string_init_preallocated" ref="g569b784beea1b4fa98f05d27e6dd0e72" 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#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_string_init_preallocated </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>str</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>allocate_size</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></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>
The string starts life with zero length. The string must eventually be freed with <a class="el" href="group__DBusString.html#g781ca91acda49a834dce7d0ed0eef212">_dbus_string_free()</a>.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>str</em> </td><td>memory to hold the string </td></tr>
<tr><td valign="top"></td><td valign="top"><em>allocate_size</em> </td><td>amount to preallocate </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> on success, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if no memory </dd></dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l00131">131</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-string-private_8h-source.html#l00071">_DBUS_STRING_MAX_MAX_LENGTH</a>, <a class="el" href="dbus-string-private_8h-source.html#l00053">DBusRealString::align_offset</a>, <a class="el" href="dbus-string-private_8h-source.html#l00048">DBusRealString::allocated</a>, <a class="el" href="dbus-string-private_8h-source.html#l00050">DBusRealString::constant</a>, <a class="el" href="dbus-memory_8c-source.html#l00440">dbus_malloc()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-string-private_8h-source.html#l00052">DBusRealString::invalid</a>, <a class="el" href="dbus-string-private_8h-source.html#l00047">DBusRealString::len</a>, <a class="el" href="dbus-string-private_8h-source.html#l00051">DBusRealString::locked</a>, <a class="el" href="dbus-string-private_8h-source.html#l00049">DBusRealString::max_length</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="dbus-string-private_8h-source.html#l00046">DBusRealString::str</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
<p>
Referenced by <a class="el" href="dbus-marshal-header_8c-source.html#l00477">_dbus_header_copy()</a>, <a class="el" href="dbus-marshal-header_8c-source.html#l00446">_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#l01311">dbus_message_copy()</a>.
</div>
</div><p>
<a class="anchor" name="gc33cd9f66e1dc665f92f0478b3170e23"></a><!-- doxytag: member="dbus-string.c::_dbus_string_insert_2_aligned" ref="gc33cd9f66e1dc665f92f0478b3170e23" 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#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_string_insert_2_aligned </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>str</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>insert_at</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const unsigned char </td>
<td class="paramname"> <em>octets</em>[4]</td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></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 compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>str</em> </td><td>the <a class="el" href="structDBusString.html">DBusString</a> </td></tr>
<tr><td valign="top"></td><td valign="top"><em>insert_at</em> </td><td>where to insert </td></tr>
<tr><td valign="top"></td><td valign="top"><em>octets</em> </td><td>2 bytes to insert </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if not enough memory. </dd></dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l01092">1092</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.
<p>
References <a class="el" href="dbus-string_8c-source.html#l01003">ASSIGN_2_OCTETS</a>, <a class="el" href="dbus-string-private_8h-source.html#l00086">DBUS_STRING_PREAMBLE</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-string-private_8h-source.html#l00046">DBusRealString::str</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
</div>
</div><p>
<a class="anchor" name="gdd296cf1e6af18cb5bec438e9d353b4e"></a><!-- doxytag: member="dbus-string.c::_dbus_string_insert_4_aligned" ref="gdd296cf1e6af18cb5bec438e9d353b4e" 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#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_string_insert_4_aligned </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>str</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>insert_at</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const unsigned char </td>
<td class="paramname"> <em>octets</em>[4]</td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></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 compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>str</em> </td><td>the <a class="el" href="structDBusString.html">DBusString</a> </td></tr>
<tr><td valign="top"></td><td valign="top"><em>insert_at</em> </td><td>where to insert </td></tr>
<tr><td valign="top"></td><td valign="top"><em>octets</em> </td><td>4 bytes to insert </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if not enough memory. </dd></dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l01116">1116</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.
<p>
References <a class="el" href="dbus-string_8c-source.html#l01007">ASSIGN_4_OCTETS</a>, <a class="el" href="dbus-string-private_8h-source.html#l00086">DBUS_STRING_PREAMBLE</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-string-private_8h-source.html#l00046">DBusRealString::str</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
</div>
</div><p>
<a class="anchor" name="g108d7d64fb88fffca31e33181cefa232"></a><!-- doxytag: member="dbus-string.c::_dbus_string_insert_8_aligned" ref="g108d7d64fb88fffca31e33181cefa232" 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#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_string_insert_8_aligned </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>str</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>insert_at</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const unsigned char </td>
<td class="paramname"> <em>octets</em>[8]</td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></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 compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>str</em> </td><td>the <a class="el" href="structDBusString.html">DBusString</a> </td></tr>
<tr><td valign="top"></td><td valign="top"><em>insert_at</em> </td><td>where to insert </td></tr>
<tr><td valign="top"></td><td valign="top"><em>octets</em> </td><td>8 bytes to insert </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if not enough memory. </dd></dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l01140">1140</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-string_8c-source.html#l01012">ASSIGN_8_OCTETS</a>, <a class="el" href="dbus-string-private_8h-source.html#l00086">DBUS_STRING_PREAMBLE</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-string-private_8h-source.html#l00046">DBusRealString::str</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
</div>
</div><p>
<a class="anchor" name="g267217e412c74c74dc3a3e412da5c600"></a><!-- doxytag: member="dbus-string.c::_dbus_string_insert_alignment" ref="g267217e412c74c74dc3a3e412da5c600" 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#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_string_insert_alignment </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>str</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int * </td>
<td class="paramname"> <em>insert_at</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>alignment</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Inserts padding at *insert_at such to align it to the given boundary.
<p>
Initializes the padding to nul bytes. Sets *insert_at to the aligned position.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>str</em> </td><td>the <a class="el" href="structDBusString.html">DBusString</a> </td></tr>
<tr><td valign="top"></td><td valign="top"><em>insert_at</em> </td><td>location to be aligned </td></tr>
<tr><td valign="top"></td><td valign="top"><em>alignment</em> </td><td>alignment boundary (1, 2, 4, or 8) </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if not enough memory. </dd></dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l01168">1168</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-string-private_8h-source.html#l00086">DBUS_STRING_PREAMBLE</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
</div>
</div><p>
<a class="anchor" name="gb0770800dce6df97e5d246105a44e7b4"></a><!-- doxytag: member="dbus-string.c::_dbus_string_insert_byte" ref="gb0770800dce6df97e5d246105a44e7b4" 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#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_string_insert_byte </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>str</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>i</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned char </td>
<td class="paramname"> <em>byte</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Inserts a single byte at the given position.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>str</em> </td><td>the string </td></tr>
<tr><td valign="top"></td><td valign="top"><em>i</em> </td><td>the position </td></tr>
<tr><td valign="top"></td><td valign="top"><em>byte</em> </td><td>the value to insert </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> on success </dd></dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l00581">581</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-string-private_8h-source.html#l00086">DBUS_STRING_PREAMBLE</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-string-private_8h-source.html#l00046">DBusRealString::str</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
<p>
Referenced by <a class="el" href="dbus-marshal-basic_8c-source.html#l00793">_dbus_marshal_write_basic()</a>.
</div>
</div><p>
<a class="anchor" name="ga0964d662ad17c58eb044c1b153017a6"></a><!-- doxytag: member="dbus-string.c::_dbus_string_insert_bytes" ref="ga0964d662ad17c58eb044c1b153017a6" 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#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_string_insert_bytes </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>str</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>i</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>n_bytes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned char </td>
<td class="paramname"> <em>byte</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Inserts a number of bytes of a given value at the given position.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>str</em> </td><td>the string </td></tr>
<tr><td valign="top"></td><td valign="top"><em>i</em> </td><td>the position </td></tr>
<tr><td valign="top"></td><td valign="top"><em>n_bytes</em> </td><td>number of bytes </td></tr>
<tr><td valign="top"></td><td valign="top"><em>byte</em> </td><td>the value to insert </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> on success </dd></dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l00551">551</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-string-private_8h-source.html#l00086">DBUS_STRING_PREAMBLE</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-string-private_8h-source.html#l00046">DBusRealString::str</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
</div>
</div><p>
<a class="anchor" name="g8f13997d90ceed2f437706e6b7804d9b"></a><!-- doxytag: member="dbus-string.c::_dbus_string_lengthen" ref="g8f13997d90ceed2f437706e6b7804d9b" 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#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_string_lengthen </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>str</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>additional_length</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Makes a string longer by the given number of bytes.
<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 compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>str</em> </td><td>a string </td></tr>
<tr><td valign="top"></td><td valign="top"><em>additional_length</em> </td><td>length to add to the string. </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> on success. </dd></dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l00812">812</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-string-private_8h-source.html#l00086">DBUS_STRING_PREAMBLE</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-string-private_8h-source.html#l00047">DBusRealString::len</a>, and <a class="el" href="dbus-string-private_8h-source.html#l00049">DBusRealString::max_length</a>.
<p>
Referenced by <a class="el" href="dbus-sysdeps-unix_8c-source.html#l00270">_dbus_read()</a>, <a class="el" href="dbus-string_8c-source.html#l00951">_dbus_string_alloc_space()</a>, <a class="el" href="dbus-sysdeps_8c-source.html#l00387">_dbus_string_append_int()</a>, <a class="el" href="dbus-string_8c-source.html#l01192">_dbus_string_append_printf_valist()</a>, and <a class="el" href="dbus-sysdeps_8c-source.html#l00425">_dbus_string_append_uint()</a>.
</div>
</div><p>
<a class="anchor" name="gd379fce8d4ef4f7e28f81f50b46ee4c9"></a><!-- doxytag: member="dbus-string.c::_dbus_string_move" ref="gd379fce8d4ef4f7e28f81f50b46ee4c9" 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#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_string_move </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>source</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </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> * </td>
<td class="paramname"> <em>dest</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>insert_at</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Moves the end of one string into another string.
<p>
Both strings must be initialized, valid strings.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>source</em> </td><td>the source string </td></tr>
<tr><td valign="top"></td><td valign="top"><em>start</em> </td><td>where to chop off the source string </td></tr>
<tr><td valign="top"></td><td valign="top"><em>dest</em> </td><td>the destination string </td></tr>
<tr><td valign="top"></td><td valign="top"><em>insert_at</em> </td><td>where to move the chopped-off part of source string </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if not enough memory </dd></dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l01448">1448</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-string_8c-source.html#l01500">_dbus_string_move_len()</a>, and <a class="el" href="dbus-string-private_8h-source.html#l00047">DBusRealString::len</a>.
<p>
Referenced by <a class="el" href="dbus-string_8c-source.html#l02492">_dbus_string_hex_decode()</a>, and <a class="el" href="dbus-string_8c-source.html#l02442">_dbus_string_hex_encode()</a>.
</div>
</div><p>
<a class="anchor" name="gb8e2dcb2dc71bf225da0827c6086a727"></a><!-- doxytag: member="dbus-string.c::_dbus_string_move_len" ref="gb8e2dcb2dc71bf225da0827c6086a727" 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#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_string_move_len </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>source</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>start</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </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> * </td>
<td class="paramname"> <em>dest</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>insert_at</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Like <a class="el" href="group__DBusString.html#gd379fce8d4ef4f7e28f81f50b46ee4c9">_dbus_string_move()</a>, but can move a segment from the middle of the source string.
<p>
<dl compact><dt><b><a class="el" href="todo.html#_todo000048">Todo:</a></b></dt><dd>this doesn't do anything with max_length field. we should probably just kill the max_length field though.</dd></dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>source</em> </td><td>the source string </td></tr>
<tr><td valign="top"></td><td valign="top"><em>start</em> </td><td>first byte of source string to move </td></tr>
<tr><td valign="top"></td><td valign="top"><em>len</em> </td><td>length of segment to move </td></tr>
<tr><td valign="top"></td><td valign="top"><em>dest</em> </td><td>the destination string </td></tr>
<tr><td valign="top"></td><td valign="top"><em>insert_at</em> </td><td>where to move the bytes from the source string </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if not enough memory </dd></dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l01500">1500</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-string_8c-source.html#l01424">DBUS_STRING_COPY_PREAMBLE</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
<p>
Referenced by <a class="el" href="dbus-string_8c-source.html#l01448">_dbus_string_move()</a>, and <a class="el" href="dbus-string_8c-source.html#l02088">_dbus_string_pop_line()</a>.
</div>
</div><p>
<a class="anchor" name="g93e22894a5e2e0d65c179c7d36a8b1c8"></a><!-- doxytag: member="dbus-sysdeps.c::_dbus_string_parse_int" ref="g93e22894a5e2e0d65c179c7d36a8b1c8" 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#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_string_parse_int </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>str</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>start</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">long * </td>
<td class="paramname"> <em>value_return</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int * </td>
<td class="paramname"> <em>end_return</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Parses an integer contained in a <a class="el" href="structDBusString.html">DBusString</a>.
<p>
Either return parameter may be <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">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#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>str</em> </td><td>the string </td></tr>
<tr><td valign="top"></td><td valign="top"><em>start</em> </td><td>the byte index of the start of the integer </td></tr>
<tr><td valign="top"></td><td valign="top"><em>value_return</em> </td><td>return location of the integer value or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> </td></tr>
<tr><td valign="top"></td><td valign="top"><em>end_return</em> </td><td>return location of the end of the integer, or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> on success </dd></dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l00507">507</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.
<p>
References <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
<p>
Referenced by <a class="el" href="dbus-sysdeps-unix_8c-source.html#l01709">_dbus_parse_uid()</a>.
</div>
</div><p>
<a class="anchor" name="g84cc8d08bb48b7915d673f7cc7886f97"></a><!-- doxytag: member="dbus-sysdeps.c::_dbus_string_parse_uint" ref="g84cc8d08bb48b7915d673f7cc7886f97" 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#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_string_parse_uint </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>str</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>start</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned long * </td>
<td class="paramname"> <em>value_return</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int * </td>
<td class="paramname"> <em>end_return</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Parses an unsigned integer contained in a <a class="el" href="structDBusString.html">DBusString</a>.
<p>
Either return parameter may be <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">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#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>str</em> </td><td>the string </td></tr>
<tr><td valign="top"></td><td valign="top"><em>start</em> </td><td>the byte index of the start of the integer </td></tr>
<tr><td valign="top"></td><td valign="top"><em>value_return</em> </td><td>return location of the integer value or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> </td></tr>
<tr><td valign="top"></td><td valign="top"><em>end_return</em> </td><td>return location of the end of the integer, or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> on success </dd></dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l00546">546</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.
<p>
References <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
<p>
Referenced by <a class="el" href="dbus-userdb_8c-source.html#l00102">_dbus_is_a_number()</a>.
</div>
</div><p>
<a class="anchor" name="g8b7fc22e6738173e1b2cef4b91b9c3c1"></a><!-- doxytag: member="dbus-string.c::_dbus_string_pop_line" ref="g8b7fc22e6738173e1b2cef4b91b9c3c1" 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#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_string_pop_line </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> * </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> * </td>
<td class="paramname"> <em>dest</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></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>
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 compact><dt><b><a class="el" href="todo.html#_todo000051">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_BUILD_TESTS</dd></dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>source</em> </td><td>the source string </td></tr>
<tr><td valign="top"></td><td valign="top"><em>dest</em> </td><td>the destination string (contents are replaced) </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">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#l02088">2088</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-internals_8h-source.html#l00121">_dbus_assert_not_reached</a>, <a class="el" href="dbus-string_8c-source.html#l01806">_dbus_string_find_eol()</a>, <a class="el" href="dbus-string_8c-source.html#l01500">_dbus_string_move_len()</a>, <a class="el" href="dbus-string_8c-source.html#l00854">_dbus_string_set_length()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
</div>
</div><p>
<a class="anchor" name="gfe7921a92467cdefaa0a7829d6cf260b"></a><!-- doxytag: member="dbus-string.c::_dbus_string_replace_len" ref="gfe7921a92467cdefaa0a7829d6cf260b" 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#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_string_replace_len </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>source</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>start</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </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> * </td>
<td class="paramname"> <em>dest</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>replace_at</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>replace_len</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Replaces a segment of dest string with a segment of source string.
<p>
<dl compact><dt><b><a class="el" href="todo.html#_todo000049">Todo:</a></b></dt><dd>optimize the case where the two lengths are the same, and avoid memmoving the data in the trailing part of the string twice.</dd></dl>
<dl compact><dt><b><a class="el" href="todo.html#_todo000049">Todo:</a></b></dt><dd>avoid inserting the source into dest, then deleting the replaced chunk of dest (which creates a potentially large intermediate string). Instead, extend the replaced chunk of dest with padding to the same size as the source chunk, then copy in the source bytes.</dd></dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>source</em> </td><td>the source string </td></tr>
<tr><td valign="top"></td><td valign="top"><em>start</em> </td><td>where to start copying the source string </td></tr>
<tr><td valign="top"></td><td valign="top"><em>len</em> </td><td>length of segment to copy </td></tr>
<tr><td valign="top"></td><td valign="top"><em>dest</em> </td><td>the destination string </td></tr>
<tr><td valign="top"></td><td valign="top"><em>replace_at</em> </td><td>start of segment of dest string to replace </td></tr>
<tr><td valign="top"></td><td valign="top"><em>replace_len</em> </td><td>length of segment of dest string to replace </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if not enough memory </dd></dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l01605">1605</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-string_8c-source.html#l01424">DBUS_STRING_COPY_PREAMBLE</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
<p>
Referenced by <a class="el" href="dbus-auth_8c-source.html#l02673">_dbus_auth_set_context()</a>.
</div>
</div><p>
<a class="anchor" name="g08c423b93c28dd746dcb93e0461ab95c"></a><!-- doxytag: member="dbus-string.c::_dbus_string_set_length" ref="g08c423b93c28dd746dcb93e0461ab95c" 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#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_string_set_length </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>str</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>length</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Sets the length of a string.
<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#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>. Newly-added bytes are not initialized, as with <a class="el" href="group__DBusString.html#g8f13997d90ceed2f437706e6b7804d9b">_dbus_string_lengthen()</a>.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>str</em> </td><td>a string </td></tr>
<tr><td valign="top"></td><td valign="top"><em>length</em> </td><td>new length of the string. </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> on failure. </dd></dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l00854">854</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, and <a class="el" href="dbus-string-private_8h-source.html#l00086">DBUS_STRING_PREAMBLE</a>.
<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#l03171">_dbus_append_keyring_directory_for_credentials()</a>, <a class="el" href="dbus-auth_8c-source.html#l02473">_dbus_auth_delete_unused_bytes()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00678">_dbus_directory_get_next_file()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l01949">_dbus_file_get_contents()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02424">_dbus_generate_random_bytes()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02754">_dbus_get_autolaunch_address()</a>, <a class="el" href="dbus-marshal-header_8c-source.html#l00948">_dbus_header_load()</a>, <a class="el" href="dbus-marshal-header_8c-source.html#l00426">_dbus_header_reinit()</a>, <a class="el" href="dbus-message_8c-source.html#l03304">_dbus_message_loader_new()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l00270">_dbus_read()</a>, <a class="el" href="dbus-string_8c-source.html#l02408">_dbus_string_append_byte_as_hex()</a>, <a class="el" href="dbus-string_8c-source.html#l02168">_dbus_string_chop_white()</a>, and <a class="el" href="dbus-string_8c-source.html#l02088">_dbus_string_pop_line()</a>.
</div>
</div><p>
<a class="anchor" name="g7af1cbfa905f26d972ab644d890548b8"></a><!-- doxytag: member="dbus-string.c::_dbus_string_shorten" ref="g7af1cbfa905f26d972ab644d890548b8" args="(DBusString *str, int length_to_remove)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void _dbus_string_shorten </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>str</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>length_to_remove</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Makes a string shorter by the given number of bytes.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>str</em> </td><td>a string </td></tr>
<tr><td valign="top"></td><td valign="top"><em>length_to_remove</em> </td><td>length to remove from the string. </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l00832">832</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-string-private_8h-source.html#l00086">DBUS_STRING_PREAMBLE</a>, and <a class="el" href="dbus-string-private_8h-source.html#l00047">DBusRealString::len</a>.
<p>
Referenced by <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02331">_dbus_concat_dir_and_file()</a>, <a class="el" href="dbus-string_8c-source.html#l00951">_dbus_string_alloc_space()</a>, <a class="el" href="dbus-sysdeps_8c-source.html#l00387">_dbus_string_append_int()</a>, and <a class="el" href="dbus-sysdeps_8c-source.html#l00425">_dbus_string_append_uint()</a>.
</div>
</div><p>
<a class="anchor" name="g5698b163289be0066cf10c0f1caf877a"></a><!-- doxytag: member="dbus-string.c::_dbus_string_skip_blank" ref="g5698b163289be0066cf10c0f1caf877a" args="(const DBusString *str, int start, int *end)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void _dbus_string_skip_blank </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>str</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>start</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int * </td>
<td class="paramname"> <em>end</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></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 compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>str</em> </td><td>the string </td></tr>
<tr><td valign="top"></td><td valign="top"><em>start</em> </td><td>where to start </td></tr>
<tr><td valign="top"></td><td valign="top"><em>end</em> </td><td>where to store the first non-blank byte index </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l01982">1982</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-string-private_8h-source.html#l00107">DBUS_CONST_STRING_PREAMBLE</a>, <a class="el" href="dbus-string-private_8h-source.html#l00114">DBUS_IS_ASCII_BLANK</a>, <a class="el" href="dbus-string-private_8h-source.html#l00120">DBUS_IS_ASCII_WHITE</a>, <a class="el" href="dbus-string-private_8h-source.html#l00047">DBusRealString::len</a>, and <a class="el" href="dbus-string-private_8h-source.html#l00046">DBusRealString::str</a>.
</div>
</div><p>
<a class="anchor" name="g8600259d71a4adc14ab4558a9d2a0f7d"></a><!-- doxytag: member="dbus-string.c::_dbus_string_skip_white" ref="g8600259d71a4adc14ab4558a9d2a0f7d" args="(const DBusString *str, int start, int *end)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void _dbus_string_skip_white </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>str</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>start</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int * </td>
<td class="paramname"> <em>end</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Skips whitespace from start, storing the first non-whitespace in *end.
<p>
(whitespace is space, tab, newline, CR).<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>str</em> </td><td>the string </td></tr>
<tr><td valign="top"></td><td valign="top"><em>start</em> </td><td>where to start </td></tr>
<tr><td valign="top"></td><td valign="top"><em>end</em> </td><td>where to store the first non-whitespace byte index </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l02016">2016</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-string-private_8h-source.html#l00107">DBUS_CONST_STRING_PREAMBLE</a>, <a class="el" href="dbus-string-private_8h-source.html#l00120">DBUS_IS_ASCII_WHITE</a>, <a class="el" href="dbus-string-private_8h-source.html#l00047">DBusRealString::len</a>, and <a class="el" href="dbus-string-private_8h-source.html#l00046">DBusRealString::str</a>.
<p>
Referenced by <a class="el" href="dbus-string_8c-source.html#l02168">_dbus_string_chop_white()</a>.
</div>
</div><p>
<a class="anchor" name="g578bb88acec5520825f2ba792cad7938"></a><!-- doxytag: member="dbus-string.c::_dbus_string_skip_white_reverse" ref="g578bb88acec5520825f2ba792cad7938" args="(const DBusString *str, int end, int *start)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void _dbus_string_skip_white_reverse </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>str</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>end</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int * </td>
<td class="paramname"> <em>start</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Skips whitespace from end, storing the start index of the trailing whitespace in *start.
<p>
(whitespace is space, tab, newline, CR).<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>str</em> </td><td>the string </td></tr>
<tr><td valign="top"></td><td valign="top"><em>end</em> </td><td>where to start scanning backward </td></tr>
<tr><td valign="top"></td><td valign="top"><em>start</em> </td><td>where to store the start of whitespace chars </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l02049">2049</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-string-private_8h-source.html#l00107">DBUS_CONST_STRING_PREAMBLE</a>, <a class="el" href="dbus-string-private_8h-source.html#l00120">DBUS_IS_ASCII_WHITE</a>, and <a class="el" href="dbus-string-private_8h-source.html#l00046">DBusRealString::str</a>.
<p>
Referenced by <a class="el" href="dbus-string_8c-source.html#l02168">_dbus_string_chop_white()</a>.
</div>
</div><p>
<a class="anchor" name="g556cc30c3ab032dbc63e217119f0d1f5"></a><!-- doxytag: member="dbus-string.c::_dbus_string_steal_data" ref="g556cc30c3ab032dbc63e217119f0d1f5" 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#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_string_steal_data </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>str</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char ** </td>
<td class="paramname"> <em>data_return</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Like _dbus_string_get_data(), but removes the gotten data from the original string.
<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#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>str</em> </td><td>the string </td></tr>
<tr><td valign="top"></td><td valign="top"><em>data_return</em> </td><td>location to return the buffer </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> on success </dd></dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l00608">608</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-string_8c-source.html#l00175">_dbus_string_init()</a>, <a class="el" href="dbus-string-private_8h-source.html#l00086">DBUS_STRING_PREAMBLE</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-string-private_8h-source.html#l00049">DBusRealString::max_length</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="dbus-string-private_8h-source.html#l00046">DBusRealString::str</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
<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#l01898">dbus_message_iter_get_signature()</a>, <a class="el" href="dbus-message_8c-source.html#l03932">dbus_message_marshal()</a>, <a class="el" href="dbus-errors_8c-source.html#l00326">dbus_set_error()</a>, and <a class="el" href="dbus-signature_8c-source.html#l00110">dbus_signature_iter_get_signature()</a>.
</div>
</div><p>
<a class="anchor" name="ga4324cd667e21beb31a5481cb0c12b6d"></a><!-- doxytag: member="dbus-string.c::_dbus_string_validate_ascii" ref="ga4324cd667e21beb31a5481cb0c12b6d" 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#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_string_validate_ascii </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>str</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>start</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>len</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Checks that the given range of the string is valid ASCII with no nul bytes.
<p>
If the given range is not entirely contained in the string, returns <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>.<p>
<dl compact><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 compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>str</em> </td><td>the string </td></tr>
<tr><td valign="top"></td><td valign="top"><em>start</em> </td><td>first byte index to check </td></tr>
<tr><td valign="top"></td><td valign="top"><em>len</em> </td><td>number of bytes to check </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">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#l02633">2633</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-string-private_8h-source.html#l00107">DBUS_CONST_STRING_PREAMBLE</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-string-private_8h-source.html#l00047">DBusRealString::len</a>, <a class="el" href="dbus-string-private_8h-source.html#l00046">DBusRealString::str</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
<p>
Referenced by <a class="el" href="dbus-sysdeps_8c-source.html#l00860">_dbus_generate_random_ascii()</a>, and <a class="el" href="dbus-keyring_8c-source.html#l00850">_dbus_keyring_validate_context()</a>.
</div>
</div><p>
<a class="anchor" name="g199d0fc00ee3cd0300a1b3870d7986a3"></a><!-- doxytag: member="dbus-string.c::_dbus_string_validate_nul" ref="g199d0fc00ee3cd0300a1b3870d7986a3" 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#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_string_validate_nul </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>str</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>start</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>len</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Checks that the given range of the string is all nul bytes.
<p>
If the given range is not entirely contained in the string, returns <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>.<p>
<dl compact><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 compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>str</em> </td><td>the string </td></tr>
<tr><td valign="top"></td><td valign="top"><em>start</em> </td><td>first byte index to check </td></tr>
<tr><td valign="top"></td><td valign="top"><em>len</em> </td><td>number of bytes to check </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">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#l02774">2774</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-string-private_8h-source.html#l00107">DBUS_CONST_STRING_PREAMBLE</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-string-private_8h-source.html#l00047">DBusRealString::len</a>, <a class="el" href="dbus-string-private_8h-source.html#l00046">DBusRealString::str</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
<p>
Referenced by <a class="el" href="dbus-marshal-header_8c-source.html#l00948">_dbus_header_load()</a>.
</div>
</div><p>
<a class="anchor" name="g65f0f04b7c9371406fc87343f691e8da"></a><!-- doxytag: member="dbus-string.c::_dbus_string_validate_utf8" ref="g65f0f04b7c9371406fc87343f691e8da" 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#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_string_validate_utf8 </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>str</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>start</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>len</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Checks that the given range of the string is valid UTF-8.
<p>
If the given range is not entirely contained in the string, returns <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>. If the string contains any nul bytes in the given range, returns <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>. If the start and start+len are not on character boundaries, returns <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>.<p>
<dl compact><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 compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>str</em> </td><td>the string </td></tr>
<tr><td valign="top"></td><td valign="top"><em>start</em> </td><td>first byte index to check </td></tr>
<tr><td valign="top"></td><td valign="top"><em>len</em> </td><td>number of bytes to check </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">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#l02676">2676</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-string-private_8h-source.html#l00107">DBUS_CONST_STRING_PREAMBLE</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-string-private_8h-source.html#l00047">DBusRealString::len</a>, <a class="el" href="dbus-string-private_8h-source.html#l00046">DBusRealString::str</a>, <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>, <a class="el" href="dbus-string_8c-source.html#l01713">UNICODE_VALID</a>, <a class="el" href="dbus-string_8c-source.html#l01638">UTF8_COMPUTE</a>, <a class="el" href="dbus-string_8c-source.html#l01695">UTF8_GET</a>, and <a class="el" href="dbus-string_8c-source.html#l01679">UTF8_LENGTH</a>.
</div>
</div><p>
<a class="anchor" name="g9385fd0de31b3f5f4f8baa96bad3fac6"></a><!-- doxytag: member="dbus-string.c::_dbus_string_zero" ref="g9385fd0de31b3f5f4f8baa96bad3fac6" args="(DBusString *str)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void _dbus_string_zero </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>str</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Clears all allocated bytes in the string to zero.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>str</em> </td><td>the string </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l02806">2806</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.
<p>
References <a class="el" href="dbus-string-private_8h-source.html#l00053">DBusRealString::align_offset</a>, <a class="el" href="dbus-string-private_8h-source.html#l00048">DBusRealString::allocated</a>, <a class="el" href="dbus-string-private_8h-source.html#l00086">DBUS_STRING_PREAMBLE</a>, and <a class="el" href="dbus-string-private_8h-source.html#l00046">DBusRealString::str</a>.
</div>
</div><p>
<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 14 22:26:14 2009 for D-Bus by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
</body>
</html>