Sophie

Sophie

distrib > Mandriva > 2007.0 > x86_64 > media > main-release > by-pkgid > 926d2d1e3111287cee1b0a4fad4fb4f6 > files > 206

lib64dbus-1_3-devel-0.92-6mdv2007.0.x86_64.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>string class</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.2.15 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="modules.html">Modules</a> &nbsp; <a class="qindex" href="annotated.html">Data Structures</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Data Fields</a> &nbsp; <a class="qindex" href="pages.html">Related Pages</a> &nbsp; </center>
<hr><h1>string class<br>
<small>
[<a class="el" href="group__DBusInternals.html">D-BUS internal implementation details</a>]</small>
</h1>DBusString data structure. 
<a href="#_details">More...</a><table border=0 cellpadding=0 cellspacing=0>
<tr><td colspan=2><br><h2>Defines</h2></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a83">DBUS_STRING_COPY_PREAMBLE</a>(source, start, dest, insert_at)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Checks assertions for two strings we're copying a segment between, and declares real_source/real_dest variables.</em> <a href="#a83">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a84">UTF8_COMPUTE</a>(Char, Mask, Len)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>computes length and mask of a unicode character.</em> <a href="#a84">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a85">UTF8_LENGTH</a>(Char)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>computes length of a unicode character in UTF-8.</em> <a href="#a85">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a86">UTF8_GET</a>(Result, Chars, Count, Mask, Len)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Gets a UTF-8 value.</em> <a href="#a86">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a87">UNICODE_VALID</a>(Char)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Check whether a unicode char is in a valid range.</em> <a href="#a87">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a88">VALID_INITIAL_NAME_CHARACTER</a>(c)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Determine wether the given charater is valid as the first charater in a name.</em> <a href="#a88">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a89">VALID_NAME_CHARACTER</a>(c)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Determine wether the given charater is valid as a second or later character in a nam.</em> <a href="#a89">More...</a><em></em></font><br><br></td></tr>
<tr><td colspan=2><br><h2>Functions</h2></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a2">_dbus_string_init_preallocated</a> (DBusString *str, int allocate_size)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Initializes a string that can be up to the given allocation size before it has to realloc.</em> <a href="#a2">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a3">_dbus_string_init</a> (DBusString *str)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Initializes a string.</em> <a href="#a3">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a5">_dbus_string_init_const</a> (DBusString *str, const char *value)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Initializes a constant string.</em> <a href="#a5">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a6">_dbus_string_init_const_len</a> (DBusString *str, const char *value, int len)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Initializes a constant string with a length.</em> <a href="#a6">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a7">_dbus_string_free</a> (DBusString *str)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Frees a string created by <a class="el" href="group__DBusString.html#a3">_dbus_string_init</a>().</em> <a href="#a7">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a8">_dbus_string_lock</a> (DBusString *str)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Locks a string such that any attempts to change the string will result in aborting the program.</em> <a href="#a8">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>char *&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a12">_dbus_string_get_data</a> (DBusString *str)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Gets the raw character buffer from the string.</em> <a href="#a12">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>const char *&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a13">_dbus_string_get_const_data</a> (const DBusString *str)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Gets the raw character buffer from a const string.</em> <a href="#a13">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>char *&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a14">_dbus_string_get_data_len</a> (DBusString *str, int start, int len)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Gets a sub-portion of the raw character buffer from the string.</em> <a href="#a14">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>const char *&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a15">_dbus_string_get_const_data_len</a> (const DBusString *str, int start, int len)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>const version of <a class="el" href="group__DBusString.html#a14">_dbus_string_get_data_len</a>().</em> <a href="#a15">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a16">_dbus_string_set_byte</a> (DBusString *str, int i, unsigned char byte)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Sets the value of the byte at the given position.</em> <a href="#a16">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>unsigned char&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a17">_dbus_string_get_byte</a> (const DBusString *str, int start)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Gets the byte at the given position.</em> <a href="#a17">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a18">_dbus_string_insert_bytes</a> (DBusString *str, int i, int n_bytes, unsigned char byte)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Inserts a number of bytes of a given value at the given position.</em> <a href="#a18">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a19">_dbus_string_steal_data</a> (DBusString *str, char **data_return)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Like <a class="el" href="group__DBusString.html#a12">_dbus_string_get_data</a>(), but removes the gotten data from the original string.</em> <a href="#a19">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a20">_dbus_string_steal_data_len</a> (DBusString *str, char **data_return, int start, int len)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Like <a class="el" href="group__DBusString.html#a14">_dbus_string_get_data_len</a>(), but removes the gotten data from the original string.</em> <a href="#a20">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a21">_dbus_string_copy_data</a> (const DBusString *str, char **data_return)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Copies the data from the string into a char*.</em> <a href="#a21">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a22">_dbus_string_copy_data_len</a> (const DBusString *str, char **data_return, int start, int len)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Copies a segment of the string into a char*.</em> <a href="#a22">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a23">_dbus_string_get_length</a> (const DBusString *str)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Gets the length of a string (not including nul termination).</em> <a href="#a23">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a24">_dbus_string_lengthen</a> (DBusString *str, int additional_length)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Makes a string longer by the given number of bytes.</em> <a href="#a24">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a25">_dbus_string_shorten</a> (DBusString *str, int length_to_remove)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Makes a string shorter by the given number of bytes.</em> <a href="#a25">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a26">_dbus_string_set_length</a> (DBusString *str, int length)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Sets the length of a string.</em> <a href="#a26">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a28">_dbus_string_align_length</a> (DBusString *str, int alignment)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Align the length of a string to a specific alignment (typically 4 or 8) by appending nul bytes to the string.</em> <a href="#a28">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a30">_dbus_string_append</a> (DBusString *str, const char *buffer)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Appends a nul-terminated C-style string to a DBusString.</em> <a href="#a30">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a31">_dbus_string_append_4_aligned</a> (DBusString *str, const unsigned char octets[4])</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Appends 4 bytes aligned on a 4 byte boundary with any alignment padding initialized to 0.</em> <a href="#a31">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a32">_dbus_string_append_8_aligned</a> (DBusString *str, const unsigned char octets[8])</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Appends 8 bytes aligned on an 8 byte boundary with any alignment padding initialized to 0.</em> <a href="#a32">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a33">_dbus_string_append_printf_valist</a> (DBusString *str, const char *format, va_list args)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Appends a printf-style formatted string to the DBusString.</em> <a href="#a33">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a34">_dbus_string_append_printf</a> (DBusString *str, const char *format,...)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Appends a printf-style formatted string to the DBusString.</em> <a href="#a34">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a35">_dbus_string_append_len</a> (DBusString *str, const char *buffer, int len)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Appends block of bytes with the given length to a DBusString.</em> <a href="#a35">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a36">_dbus_string_append_byte</a> (DBusString *str, unsigned char byte)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Appends a single byte to the string, returning <a class="el" href="group__DBusMacros.html#a3">FALSE</a> if not enough memory.</em> <a href="#a36">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a37">_dbus_string_append_unichar</a> (DBusString *str, dbus_unichar_t ch)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Appends a single Unicode character, encoding the character in UTF-8 format.</em> <a href="#a37">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a39">_dbus_string_delete</a> (DBusString *str, int start, int len)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Deletes a segment of a DBusString with length len starting at start.</em> <a href="#a39">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a41">_dbus_string_move</a> (DBusString *source, int start, DBusString *dest, int insert_at)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Moves the end of one string into another string.</em> <a href="#a41">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a42">_dbus_string_copy</a> (const DBusString *source, int start, DBusString *dest, int insert_at)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Like <a class="el" href="group__DBusString.html#a41">_dbus_string_move</a>(), but does not delete the section of the source string that's copied to the dest string.</em> <a href="#a42">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a43">_dbus_string_move_len</a> (DBusString *source, int start, int len, DBusString *dest, int insert_at)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Like <a class="el" href="group__DBusString.html#a41">_dbus_string_move</a>(), but can move a segment from the middle of the source string.</em> <a href="#a43">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a44">_dbus_string_copy_len</a> (const DBusString *source, int start, int len, DBusString *dest, int insert_at)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Like <a class="el" href="group__DBusString.html#a42">_dbus_string_copy</a>(), but can copy a segment from the middle of the source string.</em> <a href="#a44">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a45">_dbus_string_replace_len</a> (const DBusString *source, int start, int len, DBusString *dest, int replace_at, int replace_len)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Replaces a segment of dest string with a segment of source string.</em> <a href="#a45">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a46">_dbus_string_get_unichar</a> (const DBusString *str, int start, dbus_unichar_t *ch_return, int *end_return)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Gets a unicode character from a UTF-8 string.</em> <a href="#a46">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a47">_dbus_string_find</a> (const DBusString *str, int start, const char *substr, int *found)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Finds the given substring in the string, returning <a class="el" href="group__DBusMacros.html#a2">TRUE</a> and filling in the byte index where the substring was found, if it was found.</em> <a href="#a47">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a48">_dbus_string_find_to</a> (const DBusString *str, int start, int end, const char *substr, int *found)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Finds the given substring in the string, up to a certain position, returning <a class="el" href="group__DBusMacros.html#a2">TRUE</a> and filling in the byte index where the substring was found, if it was found.</em> <a href="#a48">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a49">_dbus_string_find_byte_backward</a> (const DBusString *str, int start, unsigned char byte, int *found)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Find the given byte scanning backward from the given start.</em> <a href="#a49">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a50">_dbus_string_find_blank</a> (const DBusString *str, int start, int *found)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Finds a blank (space or tab) in the string.</em> <a href="#a50">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a51">_dbus_string_skip_blank</a> (const DBusString *str, int start, int *end)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Skips blanks from start, storing the first non-blank in *end (blank is space or tab).</em> <a href="#a51">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a52">_dbus_string_skip_white</a> (const DBusString *str, int start, int *end)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Skips whitespace from start, storing the first non-whitespace in *end.</em> <a href="#a52">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a53">_dbus_string_pop_line</a> (DBusString *source, DBusString *dest)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Assigns a newline-terminated or \r\n-terminated line from the front of the string to the given dest string.</em> <a href="#a53">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a54">_dbus_string_delete_first_word</a> (DBusString *str)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Deletes up to and including the first blank space in the string.</em> <a href="#a54">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a55">_dbus_string_delete_leading_blanks</a> (DBusString *str)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Deletes any leading blanks in the string.</em> <a href="#a55">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a56">_dbus_string_equal</a> (const DBusString *a, const DBusString *b)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Tests two DBusString for equality.</em> <a href="#a56">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a57">_dbus_string_equal_len</a> (const DBusString *a, const DBusString *b, int len)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Tests two DBusString for equality up to the given length.</em> <a href="#a57">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a58">_dbus_string_equal_c_str</a> (const DBusString *a, const char *c_str)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Checks whether a string is equal to a C string.</em> <a href="#a58">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a59">_dbus_string_starts_with_c_str</a> (const DBusString *a, const char *c_str)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Checks whether a string starts with the given C string.</em> <a href="#a59">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a60">_dbus_string_ends_with_c_str</a> (const DBusString *a, const char *c_str)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Returns whether a string ends with the given suffix.</em> <a href="#a60">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a61">_dbus_string_hex_encode</a> (const DBusString *source, int start, DBusString *dest, int insert_at)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Encodes a string in hex, the way MD5 and SHA-1 are usually encoded.</em> <a href="#a61">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a62">_dbus_string_hex_decode</a> (const DBusString *source, int start, int *end_return, DBusString *dest, int insert_at)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Decodes a string from hex encoding.</em> <a href="#a62">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a63">_dbus_string_validate_ascii</a> (const DBusString *str, int start, int len)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Checks that the given range of the string is valid ASCII with no nul bytes.</em> <a href="#a63">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a64">_dbus_string_validate_utf8</a> (const DBusString *str, int start, int len)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Checks that the given range of the string is valid UTF-8.</em> <a href="#a64">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a65">_dbus_string_validate_nul</a> (const DBusString *str, int start, int len)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Checks that the given range of the string is all nul bytes.</em> <a href="#a65">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a66">_dbus_string_validate_path</a> (const DBusString *str, int start, int len)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Checks that the given range of the string is a valid object path name in the D-BUS protocol.</em> <a href="#a66">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a67">_dbus_string_validate_interface</a> (const DBusString *str, int start, int len)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Checks that the given range of the string is a valid interface name in the D-BUS protocol.</em> <a href="#a67">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a68">_dbus_string_validate_member</a> (const DBusString *str, int start, int len)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Checks that the given range of the string is a valid member name in the D-BUS protocol.</em> <a href="#a68">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a69">_dbus_string_validate_error_name</a> (const DBusString *str, int start, int len)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Checks that the given range of the string is a valid error name in the D-BUS protocol.</em> <a href="#a69">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a71">_dbus_string_validate_service</a> (const DBusString *str, int start, int len)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Checks that the given range of the string is a valid service name in the D-BUS protocol.</em> <a href="#a71">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a72">_dbus_string_zero</a> (DBusString *str)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Clears all allocated bytes in the string to zero.</em> <a href="#a72">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a73">_dbus_string_append_int</a> (DBusString *str, long value)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Appends an integer to a DBusString.</em> <a href="#a73">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a74">_dbus_string_append_uint</a> (DBusString *str, unsigned long value)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Appends an unsigned integer to a DBusString.</em> <a href="#a74">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a75">_dbus_string_append_double</a> (DBusString *str, double value)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Appends a double to a DBusString.</em> <a href="#a75">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a76">_dbus_string_parse_int</a> (const DBusString *str, int start, long *value_return, int *end_return)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Parses an integer contained in a DBusString.</em> <a href="#a76">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a77">_dbus_string_parse_uint</a> (const DBusString *str, int start, unsigned long *value_return, int *end_return)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Parses an unsigned integer contained in a DBusString.</em> <a href="#a77">More...</a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a>&nbsp;</td><td valign=bottom><a class="el" href="group__DBusString.html#a82">_dbus_string_parse_double</a> (const DBusString *str, int start, double *value, int *end_return)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Parses a floating point number contained in a DBusString.</em> <a href="#a82">More...</a><em></em></font><br><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
DBusString data structure.
<p>

<p>
 Types and functions related to DBusString. DBusString 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 DBusString 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#a24">_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" <hr><h2>Define Documentation</h2>
<a name="a83" doxytag="dbus-string.c::DBUS_STRING_COPY_PREAMBLE"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> #define DBUS_STRING_COPY_PREAMBLE</td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">source,         <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>start,         <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>dest,         <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>insert_at&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
<b>Value:</b><div class="fragment"><pre><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;                   \
  _dbus_assert ((source) != (dest));                                    \
  DBUS_GENERIC_STRING_PREAMBLE (real_source);                           \
  DBUS_GENERIC_STRING_PREAMBLE (real_dest);                             \
  _dbus_assert (!real_dest-&gt;<a class="code" href="structDBusRealString.html#m4">constant</a>);                                  \
  _dbus_assert (!real_dest-&gt;<a class="code" href="structDBusRealString.html#m5">locked</a>);                                    \
  _dbus_assert ((start) &gt;= 0);                                          \
  _dbus_assert ((start) &lt;= real_source-&gt;<a class="code" href="structDBusRealString.html#m1">len</a>);                           \
  _dbus_assert ((insert_at) &gt;= 0);                                      \
  _dbus_assert ((insert_at) &lt;= real_dest-&gt;<a class="code" href="structDBusRealString.html#m1">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><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>source</em>&nbsp;</td><td>
the source string </td></tr>
<tr><td valign=top><em>start</em>&nbsp;</td><td>
the starting offset </td></tr>
<tr><td valign=top><em>dest</em>&nbsp;</td><td>
the dest string </td></tr>
<tr><td valign=top><em>insert_at</em>&nbsp;</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#l01243">1243</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.    </td>
  </tr>
</table>
<a name="a87" doxytag="dbus-string.c::UNICODE_VALID"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> #define UNICODE_VALID</td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">Char&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
<b>Value:</b><div class="fragment"><pre>((Char) &lt; 0x110000 &amp;&amp;                     \
     (((Char) &amp; 0xFFFFF800) != 0xD800) &amp;&amp;     \
     ((Char) &lt; 0xFDD0 || (Char) &gt; 0xFDEF) &amp;&amp;  \
     ((Char) &amp; 0xFFFF) != 0xFFFF)</pre></div>Check whether a unicode char is in a valid range.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>Char</em>&nbsp;</td><td>
the character </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l01529">1529</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.    </td>
  </tr>
</table>
<a name="a84" doxytag="dbus-string.c::UTF8_COMPUTE"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> #define UTF8_COMPUTE</td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">Char,         <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>Mask,         <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>Len&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
computes length and mask of a unicode character.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>Char</em>&nbsp;</td><td>
the char </td></tr>
<tr><td valign=top><em>Mask</em>&nbsp;</td><td>
the mask variable to assign to </td></tr>
<tr><td valign=top><em>Len</em>&nbsp;</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#l01457">1457</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.    </td>
  </tr>
</table>
<a name="a86" doxytag="dbus-string.c::UTF8_GET"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> #define UTF8_GET</td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">Result,         <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>Chars,         <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>Count,         <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>Mask,         <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>Len&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
<b>Value:</b><div class="fragment"><pre>(Result) = (Chars)[0] &amp; (Mask);                                       \
  <font class="keywordflow">for</font> ((Count) = 1; (Count) &lt; (Len); ++(Count))                               \
    {                                                                         \
      <font class="keywordflow">if</font> (((Chars)[(Count)] &amp; 0xc0) != 0x80)                                  \
        {                                                                     \
          (Result) = -1;                                                      \
          <font class="keywordflow">break</font>;                                                              \
        }                                                                     \
      (Result) &lt;&lt;= 6;                                                         \
      (Result) |= ((Chars)[(Count)] &amp; 0x3f);                                  \
    }</pre></div>Gets a UTF-8 value.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>Result</em>&nbsp;</td><td>
variable for extracted unicode char. </td></tr>
<tr><td valign=top><em>Chars</em>&nbsp;</td><td>
the bytes to decode </td></tr>
<tr><td valign=top><em>Count</em>&nbsp;</td><td>
counter variable </td></tr>
<tr><td valign=top><em>Mask</em>&nbsp;</td><td>
mask for this char </td></tr>
<tr><td valign=top><em>Len</em>&nbsp;</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#l01511">1511</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.    </td>
  </tr>
</table>
<a name="a85" doxytag="dbus-string.c::UTF8_LENGTH"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> #define UTF8_LENGTH</td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">Char&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
<b>Value:</b><div class="fragment"><pre>((Char) &lt; 0x80 ? 1 :                 \
   ((Char) &lt; 0x800 ? 2 :               \
    ((Char) &lt; 0x10000 ? 3 :            \
     ((Char) &lt; 0x200000 ? 4 :          \
      ((Char) &lt; 0x4000000 ? 5 : 6)))))</pre></div>computes length of a unicode character in UTF-8.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>Char</em>&nbsp;</td><td>
the char </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l01495">1495</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.    </td>
  </tr>
</table>
<a name="a88" doxytag="dbus-string.c::VALID_INITIAL_NAME_CHARACTER"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> #define VALID_INITIAL_NAME_CHARACTER</td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">c&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
<b>Value:</b><div class="fragment"><pre>( ((c) &gt;= <font class="charliteral">'A'</font> &amp;&amp; (c) &lt;= <font class="charliteral">'Z'</font>) ||               \
    ((c) &gt;= <font class="charliteral">'a'</font> &amp;&amp; (c) &lt;= <font class="charliteral">'z'</font>) ||               \
    ((c) == <font class="charliteral">'_'</font>) )</pre></div>Determine wether the given charater is valid as the first charater in a name.
<p>

<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l02558">2558</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.    </td>
  </tr>
</table>
<a name="a89" doxytag="dbus-string.c::VALID_NAME_CHARACTER"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> #define VALID_NAME_CHARACTER</td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">c&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
<b>Value:</b><div class="fragment"><pre>( ((c) &gt;= <font class="charliteral">'0'</font> &amp;&amp; (c) &lt;= <font class="charliteral">'9'</font>) ||               \
    ((c) &gt;= <font class="charliteral">'A'</font> &amp;&amp; (c) &lt;= <font class="charliteral">'Z'</font>) ||               \
    ((c) &gt;= <font class="charliteral">'a'</font> &amp;&amp; (c) &lt;= <font class="charliteral">'z'</font>) ||               \
    ((c) == <font class="charliteral">'_'</font>) )</pre></div>Determine wether the given charater is valid as a second or later character in a nam.
<p>

<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l02567">2567</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.    </td>
  </tr>
</table>
<hr><h2>Function Documentation</h2>
<a name="a28" doxytag="dbus-string.c::_dbus_string_align_length"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_string_align_length </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>str</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>alignment</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<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><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>str</em>&nbsp;</td><td>
a string </td></tr>
<tr><td valign=top><em>alignment</em>&nbsp;</td><td>
the alignment </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a3">FALSE</a> if no memory </dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l00887">887</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.    </td>
  </tr>
</table>
<a name="a30" doxytag="dbus-string.c::_dbus_string_append"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_string_append </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>str</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>buffer</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<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><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>str</em>&nbsp;</td><td>
the <a class="el" href="structDBusString.html">DBusString</a> </td></tr>
<tr><td valign=top><em>buffer</em>&nbsp;</td><td>
the nul-terminated characters to append </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a3">FALSE</a> if not enough memory. </dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l00919">919</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#l00049">DBusRealString::max_length</a>.    </td>
  </tr>
</table>
<a name="a31" doxytag="dbus-string.c::_dbus_string_append_4_aligned"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_string_append_4_aligned </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>str</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const unsigned char&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>octets</em>[4]</td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Appends 4 bytes aligned on a 4 byte boundary with any alignment padding initialized to 0.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>str</em>&nbsp;</td><td>
the <a class="el" href="structDBusString.html">DBusString</a> </td></tr>
<tr><td valign=top><em>octets</em>&nbsp;</td><td>
4 bytes to append </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a3">FALSE</a> if not enough memory. </dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l00943">943</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#l00047">DBusRealString::len</a>, and <a class="el" href="dbus-string-private_8h-source.html#l00046">DBusRealString::str</a>.    </td>
  </tr>
</table>
<a name="a32" doxytag="dbus-string.c::_dbus_string_append_8_aligned"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_string_append_8_aligned </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>str</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const unsigned char&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>octets</em>[8]</td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Appends 8 bytes aligned on an 8 byte boundary with any alignment padding initialized to 0.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>str</em>&nbsp;</td><td>
the <a class="el" href="structDBusString.html">DBusString</a> </td></tr>
<tr><td valign=top><em>octets</em>&nbsp;</td><td>
4 bytes to append </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a3">FALSE</a> if not enough memory. </dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l00967">967</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#l00047">DBusRealString::len</a>, and <a class="el" href="dbus-string-private_8h-source.html#l00046">DBusRealString::str</a>.    </td>
  </tr>
</table>
<a name="a36" doxytag="dbus-string.c::_dbus_string_append_byte"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_string_append_byte </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>str</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>unsigned char&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>byte</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Appends a single byte to the string, returning <a class="el" href="group__DBusMacros.html#a3">FALSE</a> if not enough memory.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>str</em>&nbsp;</td><td>
the string </td></tr>
<tr><td valign=top><em>byte</em>&nbsp;</td><td>
the byte to append </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> on success </dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l01094">1094</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#l00047">DBusRealString::len</a>, and <a class="el" href="dbus-string-private_8h-source.html#l00046">DBusRealString::str</a>.    </td>
  </tr>
</table>
<a name="a75" doxytag="dbus-string.h::_dbus_string_append_double"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_string_append_double </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>str</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>double&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>value</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Appends a double to a <a class="el" href="structDBusString.html">DBusString</a>.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>str</em>&nbsp;</td><td>
the string </td></tr>
<tr><td valign=top><em>value</em>&nbsp;</td><td>
the floating point value </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a3">FALSE</a> if not enough memory or other failure. </dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l01059">1059</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.    </td>
  </tr>
</table>
<a name="a73" doxytag="dbus-string.h::_dbus_string_append_int"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_string_append_int </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>str</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>long&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>value</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Appends an integer to a <a class="el" href="structDBusString.html">DBusString</a>.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>str</em>&nbsp;</td><td>
the string </td></tr>
<tr><td valign=top><em>value</em>&nbsp;</td><td>
the integer value </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a3">FALSE</a> if not enough memory or other failure. </dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l00983">983</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.    </td>
  </tr>
</table>
<a name="a35" doxytag="dbus-string.c::_dbus_string_append_len"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_string_append_len </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>str</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>buffer</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>len</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<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><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>str</em>&nbsp;</td><td>
the <a class="el" href="structDBusString.html">DBusString</a> </td></tr>
<tr><td valign=top><em>buffer</em>&nbsp;</td><td>
the bytes to append </td></tr>
<tr><td valign=top><em>len</em>&nbsp;</td><td>
the number of bytes to append </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a3">FALSE</a> if not enough memory. </dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l01074">1074</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.    </td>
  </tr>
</table>
<a name="a34" doxytag="dbus-string.c::_dbus_string_append_printf"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_string_append_printf </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>str</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>format</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>...&nbsp;</td>
          <td class="mdname" nowrap>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Appends a printf-style formatted string to the DBusString.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>str</em>&nbsp;</td><td>
the string </td></tr>
<tr><td valign=top><em>format</em>&nbsp;</td><td>
printf format </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a3">FALSE</a> if no memory </dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l01051">1051</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.    </td>
  </tr>
</table>
<a name="a33" doxytag="dbus-string.c::_dbus_string_append_printf_valist"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_string_append_printf_valist </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>str</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>format</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>va_list&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>args</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Appends a printf-style formatted string to the DBusString.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>str</em>&nbsp;</td><td>
the string </td></tr>
<tr><td valign=top><em>format</em>&nbsp;</td><td>
printf format </td></tr>
<tr><td valign=top><em>args</em>&nbsp;</td><td>
variable argument list </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a3">FALSE</a> if no memory </dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l01012">1012</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#l00047">DBusRealString::len</a>, and <a class="el" href="dbus-string-private_8h-source.html#l00046">DBusRealString::str</a>.    </td>
  </tr>
</table>
<a name="a74" doxytag="dbus-string.h::_dbus_string_append_uint"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_string_append_uint </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>str</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>unsigned long&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>value</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Appends an unsigned integer to a <a class="el" href="structDBusString.html">DBusString</a>.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>str</em>&nbsp;</td><td>
the string </td></tr>
<tr><td valign=top><em>value</em>&nbsp;</td><td>
the integer value </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a3">FALSE</a> if not enough memory or other failure. </dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l01021">1021</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.    </td>
  </tr>
</table>
<a name="a37" doxytag="dbus-string.c::_dbus_string_append_unichar"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_string_append_unichar </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>str</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>dbus_unichar_t&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>ch</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Appends a single Unicode character, encoding the character in UTF-8 format.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>str</em>&nbsp;</td><td>
the string </td></tr>
<tr><td valign=top><em>ch</em>&nbsp;</td><td>
the Unicode character </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l01115">1115</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#l00047">DBusRealString::len</a>, <a class="el" href="dbus-string-private_8h-source.html#l00049">DBusRealString::max_length</a>, and <a class="el" href="dbus-string-private_8h-source.html#l00046">DBusRealString::str</a>.    </td>
  </tr>
</table>
<a name="a42" doxytag="dbus-string.c::_dbus_string_copy"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_string_copy </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>source</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>start</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>dest</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>insert_at</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Like <a class="el" href="group__DBusString.html#a41">_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><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>source</em>&nbsp;</td><td>
the source string </td></tr>
<tr><td valign=top><em>start</em>&nbsp;</td><td>
where to start copying the source string </td></tr>
<tr><td valign=top><em>dest</em>&nbsp;</td><td>
the destination string </td></tr>
<tr><td valign=top><em>insert_at</em>&nbsp;</td><td>
where to place the copied part of source string </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a3">FALSE</a> if not enough memory </dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l01291">1291</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.    </td>
  </tr>
</table>
<a name="a21" doxytag="dbus-string.c::_dbus_string_copy_data"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_string_copy_data </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>str</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>char **&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>data_return</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Copies the data from the string into a char*.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>str</em>&nbsp;</td><td>
the string </td></tr>
<tr><td valign=top><em>data_return</em>&nbsp;</td><td>
place to return the data </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> on success, <a class="el" href="group__DBusMacros.html#a3">FALSE</a> on no memory </dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l00699">699</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.    </td>
  </tr>
</table>
<a name="a22" doxytag="dbus-string.c::_dbus_string_copy_data_len"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_string_copy_data_len </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>str</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>char **&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>data_return</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>start</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>len</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Copies a segment of the string into a char*.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>str</em>&nbsp;</td><td>
the string </td></tr>
<tr><td valign=top><em>data_return</em>&nbsp;</td><td>
place to return the data </td></tr>
<tr><td valign=top><em>start</em>&nbsp;</td><td>
start index </td></tr>
<tr><td valign=top><em>len</em>&nbsp;</td><td>
length to copy </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a3">FALSE</a> if no memory </dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l00724">724</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.    </td>
  </tr>
</table>
<a name="a44" doxytag="dbus-string.c::_dbus_string_copy_len"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_string_copy_len </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>source</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>start</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>len</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>dest</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>insert_at</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Like <a class="el" href="group__DBusString.html#a42">_dbus_string_copy</a>(), but can copy a segment from the middle of the source string.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>source</em>&nbsp;</td><td>
the source string </td></tr>
<tr><td valign=top><em>start</em>&nbsp;</td><td>
where to start copying the source string </td></tr>
<tr><td valign=top><em>len</em>&nbsp;</td><td>
length of segment to copy </td></tr>
<tr><td valign=top><em>dest</em>&nbsp;</td><td>
the destination string </td></tr>
<tr><td valign=top><em>insert_at</em>&nbsp;</td><td>
where to place the copied segment of source string </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a3">FALSE</a> if not enough memory </dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l01386">1386</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.    </td>
  </tr>
</table>
<a name="a39" doxytag="dbus-string.c::_dbus_string_delete"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void _dbus_string_delete </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>str</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>start</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>len</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<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#a26">_dbus_string_set_length</a>() is easier.)<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>str</em>&nbsp;</td><td>
the <a class="el" href="structDBusString.html">DBusString</a> </td></tr>
<tr><td valign=top><em>start</em>&nbsp;</td><td>
where to start deleting </td></tr>
<tr><td valign=top><em>len</em>&nbsp;</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#l01201">1201</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.    </td>
  </tr>
</table>
<a name="a54" doxytag="dbus-string.c::_dbus_string_delete_first_word"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void _dbus_string_delete_first_word </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>str</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Deletes up to and including the first blank space in the string.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>str</em>&nbsp;</td><td>
the string </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l01904">1904</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.    </td>
  </tr>
</table>
<a name="a55" doxytag="dbus-string.c::_dbus_string_delete_leading_blanks"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void _dbus_string_delete_leading_blanks </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>str</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Deletes any leading blanks in the string.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>str</em>&nbsp;</td><td>
the string </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l01920">1920</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.    </td>
  </tr>
</table>
<a name="a60" doxytag="dbus-string.c::_dbus_string_ends_with_c_str"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_string_ends_with_c_str </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>a</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>c_str</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Returns whether a string ends with the given suffix.
<p>

<p>
<dl compact><dt><b>
<a class="el" href="todo.html#_todo000053">Todo: </a></b><dd>
memcmp might make this faster.</dl><dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>a</em>&nbsp;</td><td>
the string </td></tr>
<tr><td valign=top><em>c_str</em>&nbsp;</td><td>
the C-style string </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> if the string ends with the suffix </dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l02095">2095</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#l00047">DBusRealString::len</a>, and <a class="el" href="dbus-string-private_8h-source.html#l00046">DBusRealString::str</a>.    </td>
  </tr>
</table>
<a name="a56" doxytag="dbus-string.c::_dbus_string_equal"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_string_equal </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>a</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>b</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Tests two <a class="el" href="structDBusString.html">DBusString</a> for equality.
<p>

<p>
<dl compact><dt><b>
<a class="el" href="todo.html#_todo000051">Todo: </a></b><dd>
memcmp is probably faster</dl><dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>a</em>&nbsp;</td><td>
first string </td></tr>
<tr><td valign=top><em>b</em>&nbsp;</td><td>
second string </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> if equal </dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l01940">1940</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#l00047">DBusRealString::len</a>, and <a class="el" href="dbus-string-private_8h-source.html#l00046">DBusRealString::str</a>.    </td>
  </tr>
</table>
<a name="a58" doxytag="dbus-string.c::_dbus_string_equal_c_str"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_string_equal_c_str </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>a</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>c_str</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Checks whether a string is equal to a C string.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>a</em>&nbsp;</td><td>
the string </td></tr>
<tr><td valign=top><em>c_str</em>&nbsp;</td><td>
the C string </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> if equal </dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l02021">2021</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#l00047">DBusRealString::len</a>, and <a class="el" href="dbus-string-private_8h-source.html#l00046">DBusRealString::str</a>.    </td>
  </tr>
</table>
<a name="a57" doxytag="dbus-string.c::_dbus_string_equal_len"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_string_equal_len </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>a</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>b</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>len</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Tests two <a class="el" href="structDBusString.html">DBusString</a> for equality up to the given length.
<p>

<p>
<dl compact><dt><b>
<a class="el" href="todo.html#_todo000052">Todo: </a></b><dd>
write a unit test 
<p>
memcmp is probably faster</dl>
<p>

<p>
 <dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>a</em>&nbsp;</td><td>
first string </td></tr>
<tr><td valign=top><em>b</em>&nbsp;</td><td>
second string </td></tr>
<tr><td valign=top><em>len</em>&nbsp;</td><td>
the lengh </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> if equal for the given number of bytes </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-string-private_8h-source.html#l00047">DBusRealString::len</a>, and <a class="el" href="dbus-string-private_8h-source.html#l00046">DBusRealString::str</a>.    </td>
  </tr>
</table>
<a name="a47" doxytag="dbus-string.c::_dbus_string_find"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_string_find </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>str</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>start</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>substr</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>found</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Finds the given substring in the string, returning <a class="el" href="group__DBusMacros.html#a2">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#a3">FALSE</a> if the substring wasn't found. Sets *start to the length of the string if the substring is not found.<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>str</em>&nbsp;</td><td>
the string </td></tr>
<tr><td valign=top><em>start</em>&nbsp;</td><td>
where to start looking </td></tr>
<tr><td valign=top><em>substr</em>&nbsp;</td><td>
the substring </td></tr>
<tr><td valign=top><em>found</em>&nbsp;</td><td>
return location for where it was found, or <a class="el" href="group__DBusMacros.html#a4">NULL</a> </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> if found </dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l01597">1597</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.    </td>
  </tr>
</table>
<a name="a50" doxytag="dbus-string.c::_dbus_string_find_blank"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_string_find_blank </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>str</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>start</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>found</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Finds a blank (space or tab) in the string.
<p>
Returns <a class="el" href="group__DBusMacros.html#a2">TRUE</a> if found, <a class="el" href="group__DBusMacros.html#a3">FALSE</a> otherwise. If a blank is not found sets *found to the length of the string.<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>str</em>&nbsp;</td><td>
the string </td></tr>
<tr><td valign=top><em>start</em>&nbsp;</td><td>
byte index to start looking </td></tr>
<tr><td valign=top><em>found</em>&nbsp;</td><td>
place to store the location of the first blank </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> if a blank was found </dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l01729">1729</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#l00047">DBusRealString::len</a>, and <a class="el" href="dbus-string-private_8h-source.html#l00046">DBusRealString::str</a>.    </td>
  </tr>
</table>
<a name="a49" doxytag="dbus-string.c::_dbus_string_find_byte_backward"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_string_find_byte_backward </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>str</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>start</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>unsigned char&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>byte</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>found</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Find the given byte scanning backward from the given start.
<p>
Sets *found to -1 if the byte is not found.<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>str</em>&nbsp;</td><td>
the string </td></tr>
<tr><td valign=top><em>start</em>&nbsp;</td><td>
the place to start scanning (will not find the byte at this point) </td></tr>
<tr><td valign=top><em>byte</em>&nbsp;</td><td>
the byte to find </td></tr>
<tr><td valign=top><em>found</em>&nbsp;</td><td>
return location for where it was found </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> if found </dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l01692">1692</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#l00046">DBusRealString::str</a>.    </td>
  </tr>
</table>
<a name="a48" doxytag="dbus-string.c::_dbus_string_find_to"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_string_find_to </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>str</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>start</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>end</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>substr</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>found</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Finds the given substring in the string, up to a certain position, returning <a class="el" href="group__DBusMacros.html#a2">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#a3">FALSE</a> if the substring wasn't found. Sets *start to the length of the string if the substring is not found.<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>str</em>&nbsp;</td><td>
the string </td></tr>
<tr><td valign=top><em>start</em>&nbsp;</td><td>
where to start looking </td></tr>
<tr><td valign=top><em>end</em>&nbsp;</td><td>
where to stop looking </td></tr>
<tr><td valign=top><em>substr</em>&nbsp;</td><td>
the substring </td></tr>
<tr><td valign=top><em>found</em>&nbsp;</td><td>
return location for where it was found, or <a class="el" href="group__DBusMacros.html#a4">NULL</a> </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> if found </dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l01624">1624</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#l00046">DBusRealString::str</a>.    </td>
  </tr>
</table>
<a name="a7" doxytag="dbus-string.c::_dbus_string_free"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void _dbus_string_free </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>str</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Frees a string created by <a class="el" href="group__DBusString.html#a3">_dbus_string_init</a>().
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>str</em>&nbsp;</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#l00312">312</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#l00050">DBusRealString::constant</a>, <a class="el" href="dbus-string-private_8h-source.html#l00052">DBusRealString::invalid</a>, and <a class="el" href="dbus-string-private_8h-source.html#l00046">DBusRealString::str</a>.    </td>
  </tr>
</table>
<a name="a17" doxytag="dbus-string.c::_dbus_string_get_byte"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> unsigned char _dbus_string_get_byte </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>str</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>start</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Gets the byte at the given position.
<p>
It is allowed to ask for the nul byte at the end of the string.<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>str</em>&nbsp;</td><td>
the string </td></tr>
<tr><td valign=top><em>start</em>&nbsp;</td><td>
the position </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
the byte at that position </dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l00558">558</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.    </td>
  </tr>
</table>
<a name="a13" doxytag="dbus-string.c::_dbus_string_get_const_data"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> const char* _dbus_string_get_const_data </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>str</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Gets the raw character buffer from a const string.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>str</em>&nbsp;</td><td>
the string </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
the string data </dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l00473">473</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.    </td>
  </tr>
</table>
<a name="a15" doxytag="dbus-string.c::_dbus_string_get_const_data_len"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> const char* _dbus_string_get_const_data_len </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>str</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>start</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>len</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
const version of <a class="el" href="group__DBusString.html#a14">_dbus_string_get_data_len</a>().
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>str</em>&nbsp;</td><td>
the string </td></tr>
<tr><td valign=top><em>start</em>&nbsp;</td><td>
byte offset to return </td></tr>
<tr><td valign=top><em>len</em>&nbsp;</td><td>
length of segment to return </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
the string data </dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l00516">516</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.    </td>
  </tr>
</table>
<a name="a12" doxytag="dbus-string.c::_dbus_string_get_data"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> char* _dbus_string_get_data </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>str</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Gets the raw character buffer from the string.
<p>
The returned buffer will be nul-terminated, but note that strings may contain binary data so there may be extra nul characters prior to the termination. This function should be little-used, extend <a class="el" href="structDBusString.html">DBusString</a> or add stuff to dbus-sysdeps.c instead. It's an error to use this function on a const string.<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>str</em>&nbsp;</td><td>
the string </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
the data </dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l00459">459</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.    </td>
  </tr>
</table>
<a name="a14" doxytag="dbus-string.c::_dbus_string_get_data_len"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> char* _dbus_string_get_data_len </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>str</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>start</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>len</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<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.<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>str</em>&nbsp;</td><td>
the string </td></tr>
<tr><td valign=top><em>start</em>&nbsp;</td><td>
byte offset to return </td></tr>
<tr><td valign=top><em>len</em>&nbsp;</td><td>
length of segment to return </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
the string data </dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l00494">494</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.    </td>
  </tr>
</table>
<a name="a23" doxytag="dbus-string.c::_dbus_string_get_length"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int _dbus_string_get_length </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>str</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Gets the length of a string (not including nul termination).
<p>
<dl compact><dt><b>
Returns: </b><dd>
the length. </dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l00765">765</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.    </td>
  </tr>
</table>
<a name="a46" doxytag="dbus-string.c::_dbus_string_get_unichar"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void _dbus_string_get_unichar </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>str</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>start</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>dbus_unichar_t *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>ch_return</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>end_return</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Gets a unicode character from a UTF-8 string.
<p>
Does no validation; you must verify that the string is valid UTF-8 in advance and must pass in the start of a character.<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>str</em>&nbsp;</td><td>
the string </td></tr>
<tr><td valign=top><em>start</em>&nbsp;</td><td>
the start of the UTF-8 character. </td></tr>
<tr><td valign=top><em>ch_return</em>&nbsp;</td><td>
location to return the character </td></tr>
<tr><td valign=top><em>end_return</em>&nbsp;</td><td>
location to return the byte index of next character </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l01546">1546</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#l00047">DBusRealString::len</a>, and <a class="el" href="dbus-string-private_8h-source.html#l00046">DBusRealString::str</a>.    </td>
  </tr>
</table>
<a name="a62" doxytag="dbus-string.c::_dbus_string_hex_decode"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_string_hex_decode </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>source</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>start</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>end_return</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>dest</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>insert_at</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Decodes a string from hex encoding.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>source</em>&nbsp;</td><td>
the string to decode </td></tr>
<tr><td valign=top><em>start</em>&nbsp;</td><td>
byte index to start decode </td></tr>
<tr><td valign=top><em>end_return</em>&nbsp;</td><td>
return location of the end of the hex data, or <a class="el" href="group__DBusMacros.html#a4">NULL</a> </td></tr>
<tr><td valign=top><em>dest</em>&nbsp;</td><td>
string where decoded data should be placed </td></tr>
<tr><td valign=top><em>insert_at</em>&nbsp;</td><td>
where to place decoded data </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> if decoding was successful, <a class="el" href="group__DBusMacros.html#a3">FALSE</a> if no memory. </dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l02198">2198</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.    </td>
  </tr>
</table>
<a name="a61" doxytag="dbus-string.c::_dbus_string_hex_encode"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_string_hex_encode </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>source</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>start</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>dest</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>insert_at</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Encodes a string in hex, the way MD5 and SHA-1 are usually encoded.
<p>
(Each byte is two hex digits.)<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>source</em>&nbsp;</td><td>
the string to encode </td></tr>
<tr><td valign=top><em>start</em>&nbsp;</td><td>
byte index to start encoding </td></tr>
<tr><td valign=top><em>dest</em>&nbsp;</td><td>
string where encoded data should be placed </td></tr>
<tr><td valign=top><em>insert_at</em>&nbsp;</td><td>
where to place encoded data </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> if encoding was successful, <a class="el" href="group__DBusMacros.html#a3">FALSE</a> if no memory etc. </dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l02139">2139</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.    </td>
  </tr>
</table>
<a name="a3" doxytag="dbus-string.c::_dbus_string_init"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_string_init </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>str</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<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#a7">_dbus_string_free</a>().<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>str</em>&nbsp;</td><td>
memory to hold the string </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> on success, <a class="el" href="group__DBusMacros.html#a3">FALSE</a> if no memory </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>.    </td>
  </tr>
</table>
<a name="a5" doxytag="dbus-string.c::_dbus_string_init_const"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void _dbus_string_init_const </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>str</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>value</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<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#a7">_dbus_string_free</a>() on a const string. The string has a length limit of MAXINT - 8.<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>str</em>&nbsp;</td><td>
memory to use for the string </td></tr>
<tr><td valign=top><em>value</em>&nbsp;</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#l00261">261</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.    </td>
  </tr>
</table>
<a name="a6" doxytag="dbus-string.c::_dbus_string_init_const_len"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void _dbus_string_init_const_len </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>str</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>value</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>len</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<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#a7">_dbus_string_free</a>() on a const string.<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>str</em>&nbsp;</td><td>
memory to use for the string </td></tr>
<tr><td valign=top><em>value</em>&nbsp;</td><td>
a string to be stored in str (not copied!!!) </td></tr>
<tr><td valign=top><em>len</em>&nbsp;</td><td>
the length to use </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l00281">281</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#l00048">DBusRealString::allocated</a>, <a class="el" href="dbus-string-private_8h-source.html#l00050">DBusRealString::constant</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#l00049">DBusRealString::max_length</a>, and <a class="el" href="dbus-string-private_8h-source.html#l00046">DBusRealString::str</a>.    </td>
  </tr>
</table>
<a name="a2" doxytag="dbus-string.c::_dbus_string_init_preallocated"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_string_init_preallocated </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>str</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>allocate_size</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<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#a7">_dbus_string_free</a>().<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>str</em>&nbsp;</td><td>
memory to hold the string </td></tr>
<tr><td valign=top><em>allocate_size</em>&nbsp;</td><td>
amount to preallocate </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> on success, <a class="el" href="group__DBusMacros.html#a3">FALSE</a> if no memory </dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l00185">185</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#l00050">DBusRealString::constant</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>, and <a class="el" href="dbus-string-private_8h-source.html#l00046">DBusRealString::str</a>.    </td>
  </tr>
</table>
<a name="a18" doxytag="dbus-string.c::_dbus_string_insert_bytes"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_string_insert_bytes </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>str</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>i</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>n_bytes</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>unsigned char&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>byte</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Inserts a number of bytes of a given value at the given position.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>str</em>&nbsp;</td><td>
the string </td></tr>
<tr><td valign=top><em>i</em>&nbsp;</td><td>
the position </td></tr>
<tr><td valign=top><em>n_bytes</em>&nbsp;</td><td>
number of bytes </td></tr>
<tr><td valign=top><em>byte</em>&nbsp;</td><td>
the value to insert </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> on success </dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l00579">579</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.    </td>
  </tr>
</table>
<a name="a24" doxytag="dbus-string.c::_dbus_string_lengthen"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_string_lengthen </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>str</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>additional_length</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<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.<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>str</em>&nbsp;</td><td>
a string </td></tr>
<tr><td valign=top><em>additional_length</em>&nbsp;</td><td>
length to add to the string. </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> on success. </dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l00785">785</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.    </td>
  </tr>
</table>
<a name="a8" doxytag="dbus-string.c::_dbus_string_lock"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void _dbus_string_lock </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>str</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Locks a string such that any attempts to change the string will result in aborting the program.
<p>
Also, if the string is wasting a lot of memory (allocation is sufficiently larger than what the string is really using), <a class="el" href="group__DBusString.html#a8">_dbus_string_lock</a>() will realloc the string's data to "compact" it.<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>str</em>&nbsp;</td><td>
the string to lock. </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l00338">338</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.    </td>
  </tr>
</table>
<a name="a41" doxytag="dbus-string.c::_dbus_string_move"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_string_move </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>source</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>start</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>dest</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>insert_at</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Moves the end of one string into another string.
<p>
Both strings must be initialized, valid strings.<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>source</em>&nbsp;</td><td>
the source string </td></tr>
<tr><td valign=top><em>start</em>&nbsp;</td><td>
where to chop off the source string </td></tr>
<tr><td valign=top><em>dest</em>&nbsp;</td><td>
the destination string </td></tr>
<tr><td valign=top><em>insert_at</em>&nbsp;</td><td>
where to move the chopped-off part of source string </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a3">FALSE</a> if not enough memory </dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l01267">1267</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#l00047">DBusRealString::len</a>.    </td>
  </tr>
</table>
<a name="a43" doxytag="dbus-string.c::_dbus_string_move_len"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_string_move_len </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>source</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>start</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>len</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>dest</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>insert_at</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Like <a class="el" href="group__DBusString.html#a41">_dbus_string_move</a>(), but can move a segment from the middle of the source string.
<p>

<p>
<dl compact><dt><b>
<a class="el" href="todo.html#_todo000048">Todo: </a></b><dd>
this doesn't do anything with max_length field. we should probably just kill the max_length field though.</dl><dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>source</em>&nbsp;</td><td>
the source string </td></tr>
<tr><td valign=top><em>start</em>&nbsp;</td><td>
first byte of source string to move </td></tr>
<tr><td valign=top><em>len</em>&nbsp;</td><td>
length of segment to move </td></tr>
<tr><td valign=top><em>dest</em>&nbsp;</td><td>
the destination string </td></tr>
<tr><td valign=top><em>insert_at</em>&nbsp;</td><td>
where to move the bytes from the source string </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a3">FALSE</a> if not enough memory </dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l01319">1319</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.    </td>
  </tr>
</table>
<a name="a82" doxytag="dbus-string.h::_dbus_string_parse_double"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_string_parse_double </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>str</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>start</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>double *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>value_return</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>end_return</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Parses a floating point number contained in a <a class="el" href="structDBusString.html">DBusString</a>.
<p>
Either return parameter may be <a class="el" href="group__DBusMacros.html#a4">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#a3">FALSE</a>.<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>str</em>&nbsp;</td><td>
the string </td></tr>
<tr><td valign=top><em>start</em>&nbsp;</td><td>
the byte index of the start of the float </td></tr>
<tr><td valign=top><em>value_return</em>&nbsp;</td><td>
return location of the float value or <a class="el" href="group__DBusMacros.html#a4">NULL</a> </td></tr>
<tr><td valign=top><em>end_return</em>&nbsp;</td><td>
return location of the end of the float, or <a class="el" href="group__DBusMacros.html#a4">NULL</a> </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> on success </dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l01338">1338</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.    </td>
  </tr>
</table>
<a name="a76" doxytag="dbus-string.h::_dbus_string_parse_int"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_string_parse_int </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>str</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>start</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>long *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>value_return</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>end_return</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<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#a4">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#a3">FALSE</a>.<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>str</em>&nbsp;</td><td>
the string </td></tr>
<tr><td valign=top><em>start</em>&nbsp;</td><td>
the byte index of the start of the integer </td></tr>
<tr><td valign=top><em>value_return</em>&nbsp;</td><td>
return location of the integer value or <a class="el" href="group__DBusMacros.html#a4">NULL</a> </td></tr>
<tr><td valign=top><em>end_return</em>&nbsp;</td><td>
return location of the end of the integer, or <a class="el" href="group__DBusMacros.html#a4">NULL</a> </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> on success </dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l01101">1101</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.    </td>
  </tr>
</table>
<a name="a77" doxytag="dbus-string.h::_dbus_string_parse_uint"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_string_parse_uint </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>str</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>start</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>unsigned long *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>value_return</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>end_return</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<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#a4">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#a3">FALSE</a>.<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>str</em>&nbsp;</td><td>
the string </td></tr>
<tr><td valign=top><em>start</em>&nbsp;</td><td>
the byte index of the start of the integer </td></tr>
<tr><td valign=top><em>value_return</em>&nbsp;</td><td>
return location of the integer value or <a class="el" href="group__DBusMacros.html#a4">NULL</a> </td></tr>
<tr><td valign=top><em>end_return</em>&nbsp;</td><td>
return location of the end of the integer, or <a class="el" href="group__DBusMacros.html#a4">NULL</a> </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> on success </dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l01142">1142</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.    </td>
  </tr>
</table>
<a name="a53" doxytag="dbus-string.c::_dbus_string_pop_line"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_string_pop_line </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>source</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>dest</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<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>

<p>
<dl compact><dt><b>
<a class="el" href="todo.html#_todo000050">Todo: </a></b><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</dl><dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>source</em>&nbsp;</td><td>
the source string </td></tr>
<tr><td valign=top><em>dest</em>&nbsp;</td><td>
the destination string (contents are replaced) </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a3">FALSE</a> if no memory, or source has length 0 </dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l01846">1846</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.    </td>
  </tr>
</table>
<a name="a45" doxytag="dbus-string.c::_dbus_string_replace_len"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_string_replace_len </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>source</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>start</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>len</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>dest</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>replace_at</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>replace_len</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Replaces a segment of dest string with a segment of source string.
<p>

<p>
<dl compact><dt><b>
<a class="el" href="todo.html#_todo000049">Todo: </a></b><dd>
optimize the case where the two lengths are the same, and avoid memmoving the data in the trailing part of the string twice. 
<p>
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.</dl>
<p>

<p>
 <dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>source</em>&nbsp;</td><td>
the source string </td></tr>
<tr><td valign=top><em>start</em>&nbsp;</td><td>
where to start copying the source string </td></tr>
<tr><td valign=top><em>len</em>&nbsp;</td><td>
length of segment to copy </td></tr>
<tr><td valign=top><em>dest</em>&nbsp;</td><td>
the destination string </td></tr>
<tr><td valign=top><em>replace_at</em>&nbsp;</td><td>
start of segment of dest string to replace </td></tr>
<tr><td valign=top><em>replace_len</em>&nbsp;</td><td>
length of segment of dest string to replace </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a3">FALSE</a> if not enough memory </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>.    </td>
  </tr>
</table>
<a name="a16" doxytag="dbus-string.c::_dbus_string_set_byte"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void _dbus_string_set_byte </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>str</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>i</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>unsigned char&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>byte</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Sets the value of the byte at the given position.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>str</em>&nbsp;</td><td>
the string </td></tr>
<tr><td valign=top><em>i</em>&nbsp;</td><td>
the position </td></tr>
<tr><td valign=top><em>byte</em>&nbsp;</td><td>
the new value </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l00537">537</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.    </td>
  </tr>
</table>
<a name="a26" doxytag="dbus-string.c::_dbus_string_set_length"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_string_set_length </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>str</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>length</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<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#a3">FALSE</a>. Newly-added bytes are not initialized, as with <a class="el" href="group__DBusString.html#a24">_dbus_string_lengthen</a>().<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>str</em>&nbsp;</td><td>
a string </td></tr>
<tr><td valign=top><em>length</em>&nbsp;</td><td>
new length of the string. </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a3">FALSE</a> on failure. </dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l00827">827</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.    </td>
  </tr>
</table>
<a name="a25" doxytag="dbus-string.c::_dbus_string_shorten"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void _dbus_string_shorten </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>str</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>length_to_remove</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Makes a string shorter by the given number of bytes.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>str</em>&nbsp;</td><td>
a string </td></tr>
<tr><td valign=top><em>length_to_remove</em>&nbsp;</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#l00805">805</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.    </td>
  </tr>
</table>
<a name="a51" doxytag="dbus-string.c::_dbus_string_skip_blank"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void _dbus_string_skip_blank </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>str</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>start</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>end</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Skips blanks from start, storing the first non-blank in *end (blank is space or tab).
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>str</em>&nbsp;</td><td>
the string </td></tr>
<tr><td valign=top><em>start</em>&nbsp;</td><td>
where to start </td></tr>
<tr><td valign=top><em>end</em>&nbsp;</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#l01767">1767</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#l00047">DBusRealString::len</a>, and <a class="el" href="dbus-string-private_8h-source.html#l00046">DBusRealString::str</a>.    </td>
  </tr>
</table>
<a name="a52" doxytag="dbus-string.c::_dbus_string_skip_white"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void _dbus_string_skip_white </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>str</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>start</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>end</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Skips whitespace from start, storing the first non-whitespace in *end.
<p>
(whitespace is space, tab, newline, CR).<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>str</em>&nbsp;</td><td>
the string </td></tr>
<tr><td valign=top><em>start</em>&nbsp;</td><td>
where to start </td></tr>
<tr><td valign=top><em>end</em>&nbsp;</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#l01802">1802</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#l00047">DBusRealString::len</a>, and <a class="el" href="dbus-string-private_8h-source.html#l00046">DBusRealString::str</a>.    </td>
  </tr>
</table>
<a name="a59" doxytag="dbus-string.c::_dbus_string_starts_with_c_str"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_string_starts_with_c_str </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>a</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>c_str</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Checks whether a string starts with the given C string.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>a</em>&nbsp;</td><td>
the string </td></tr>
<tr><td valign=top><em>c_str</em>&nbsp;</td><td>
the C string </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> if string starts with it </dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l02057">2057</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#l00047">DBusRealString::len</a>, and <a class="el" href="dbus-string-private_8h-source.html#l00046">DBusRealString::str</a>.    </td>
  </tr>
</table>
<a name="a19" doxytag="dbus-string.c::_dbus_string_steal_data"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_string_steal_data </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>str</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>char **&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>data_return</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Like <a class="el" href="group__DBusString.html#a12">_dbus_string_get_data</a>(), 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#a3">FALSE</a>.<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>str</em>&nbsp;</td><td>
the string </td></tr>
<tr><td valign=top><em>data_return</em>&nbsp;</td><td>
location to return the buffer </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> on success </dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l00611">611</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.    </td>
  </tr>
</table>
<a name="a20" doxytag="dbus-string.c::_dbus_string_steal_data_len"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_string_steal_data_len </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>str</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>char **&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>data_return</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>start</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>len</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Like <a class="el" href="group__DBusString.html#a14">_dbus_string_get_data_len</a>(), 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#a3">FALSE</a>. The returned string is nul-terminated and has length len.
<p>

<p>
<dl compact><dt><b>
<a class="el" href="todo.html#_todo000047">Todo: </a></b><dd>
this function is broken because on failure it may corrupt the source string.</dl><dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>str</em>&nbsp;</td><td>
the string </td></tr>
<tr><td valign=top><em>data_return</em>&nbsp;</td><td>
location to return the buffer </td></tr>
<tr><td valign=top><em>start</em>&nbsp;</td><td>
the start of segment to steal </td></tr>
<tr><td valign=top><em>len</em>&nbsp;</td><td>
the length of segment to steal </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> on success </dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l00655">655</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.    </td>
  </tr>
</table>
<a name="a63" doxytag="dbus-string.c::_dbus_string_validate_ascii"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_string_validate_ascii </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>str</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>start</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>len</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<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#a3">FALSE</a>.
<p>

<p>
<dl compact><dt><b>
<a class="el" href="todo.html#_todo000054">Todo: </a></b><dd>
this is inconsistent with most of <a class="el" href="structDBusString.html">DBusString</a> in that it allows a start,len range that isn't in the string.</dl><dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>str</em>&nbsp;</td><td>
the string </td></tr>
<tr><td valign=top><em>start</em>&nbsp;</td><td>
first byte index to check </td></tr>
<tr><td valign=top><em>len</em>&nbsp;</td><td>
number of bytes to check </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> if the byte range exists and is all valid ASCII </dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l02339">2339</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#l00047">DBusRealString::len</a>, and <a class="el" href="dbus-string-private_8h-source.html#l00046">DBusRealString::str</a>.    </td>
  </tr>
</table>
<a name="a69" doxytag="dbus-string.c::_dbus_string_validate_error_name"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_string_validate_error_name </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>str</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>start</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>len</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Checks that the given range of the string is a valid error name in the D-BUS protocol.
<p>
This includes a length restriction, etc., see the specification.
<p>

<p>
<dl compact><dt><b>
<a class="el" href="todo.html#_todo000060">Todo: </a></b><dd>
this is inconsistent with most of <a class="el" href="structDBusString.html">DBusString</a> in that it allows a start,len range that isn't in the string.</dl><dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>str</em>&nbsp;</td><td>
the string </td></tr>
<tr><td valign=top><em>start</em>&nbsp;</td><td>
first byte index to check </td></tr>
<tr><td valign=top><em>len</em>&nbsp;</td><td>
number of bytes to check </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> if the byte range exists and is a valid name </dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l02726">2726</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.    </td>
  </tr>
</table>
<a name="a67" doxytag="dbus-string.c::_dbus_string_validate_interface"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_string_validate_interface </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>str</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>start</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>len</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Checks that the given range of the string is a valid interface name in the D-BUS protocol.
<p>
This includes a length restriction and an ASCII subset, see the specification.
<p>

<p>
<dl compact><dt><b>
<a class="el" href="todo.html#_todo000058">Todo: </a></b><dd>
this is inconsistent with most of <a class="el" href="structDBusString.html">DBusString</a> in that it allows a start,len range that isn't in the string.</dl><dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>str</em>&nbsp;</td><td>
the string </td></tr>
<tr><td valign=top><em>start</em>&nbsp;</td><td>
first byte index to check </td></tr>
<tr><td valign=top><em>len</em>&nbsp;</td><td>
number of bytes to check </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> if the byte range exists and is a valid name </dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l02587">2587</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#l00047">DBusRealString::len</a>, and <a class="el" href="dbus-string-private_8h-source.html#l00046">DBusRealString::str</a>.    </td>
  </tr>
</table>
<a name="a68" doxytag="dbus-string.c::_dbus_string_validate_member"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_string_validate_member </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>str</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>start</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>len</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Checks that the given range of the string is a valid member name in the D-BUS protocol.
<p>
This includes a length restriction, etc., see the specification.
<p>

<p>
<dl compact><dt><b>
<a class="el" href="todo.html#_todo000059">Todo: </a></b><dd>
this is inconsistent with most of <a class="el" href="structDBusString.html">DBusString</a> in that it allows a start,len range that isn't in the string.</dl><dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>str</em>&nbsp;</td><td>
the string </td></tr>
<tr><td valign=top><em>start</em>&nbsp;</td><td>
first byte index to check </td></tr>
<tr><td valign=top><em>len</em>&nbsp;</td><td>
number of bytes to check </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> if the byte range exists and is a valid name </dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l02664">2664</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#l00047">DBusRealString::len</a>, and <a class="el" href="dbus-string-private_8h-source.html#l00046">DBusRealString::str</a>.    </td>
  </tr>
</table>
<a name="a65" doxytag="dbus-string.c::_dbus_string_validate_nul"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_string_validate_nul </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>str</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>start</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>len</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<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#a3">FALSE</a>.
<p>

<p>
<dl compact><dt><b>
<a class="el" href="todo.html#_todo000056">Todo: </a></b><dd>
this is inconsistent with most of <a class="el" href="structDBusString.html">DBusString</a> in that it allows a start,len range that isn't in the string.</dl><dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>str</em>&nbsp;</td><td>
the string </td></tr>
<tr><td valign=top><em>start</em>&nbsp;</td><td>
first byte index to check </td></tr>
<tr><td valign=top><em>len</em>&nbsp;</td><td>
number of bytes to check </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> if the byte range exists and is all nul bytes </dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l02460">2460</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#l00047">DBusRealString::len</a>, and <a class="el" href="dbus-string-private_8h-source.html#l00046">DBusRealString::str</a>.    </td>
  </tr>
</table>
<a name="a66" doxytag="dbus-string.c::_dbus_string_validate_path"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_string_validate_path </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>str</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>start</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>len</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Checks that the given range of the string is a valid object path name in the D-BUS protocol.
<p>
This includes a length restriction, etc., see the specification. It does not validate UTF-8, that has to be done separately for now.
<p>

<p>
<dl compact><dt><b>
<a class="el" href="todo.html#_todo000057">Todo: </a></b><dd>
this is inconsistent with most of <a class="el" href="structDBusString.html">DBusString</a> in that it allows a start,len range that isn't in the string. 
<p>
change spec to disallow more things, such as spaces in the path name</dl>
<p>

<p>
 <dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>str</em>&nbsp;</td><td>
the string </td></tr>
<tr><td valign=top><em>start</em>&nbsp;</td><td>
first byte index to check </td></tr>
<tr><td valign=top><em>len</em>&nbsp;</td><td>
number of bytes to check </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> if the byte range exists and is a valid name </dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l02504">2504</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#l00047">DBusRealString::len</a>, and <a class="el" href="dbus-string-private_8h-source.html#l00046">DBusRealString::str</a>.    </td>
  </tr>
</table>
<a name="a71" doxytag="dbus-string.c::_dbus_string_validate_service"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_string_validate_service </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>str</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>start</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>len</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Checks that the given range of the string is a valid service name in the D-BUS protocol.
<p>
This includes a length restriction, etc., see the specification.
<p>

<p>
<dl compact><dt><b>
<a class="el" href="todo.html#_todo000061">Todo: </a></b><dd>
this is inconsistent with most of <a class="el" href="structDBusString.html">DBusString</a> in that it allows a start,len range that isn't in the string.</dl><dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>str</em>&nbsp;</td><td>
the string </td></tr>
<tr><td valign=top><em>start</em>&nbsp;</td><td>
first byte index to check </td></tr>
<tr><td valign=top><em>len</em>&nbsp;</td><td>
number of bytes to check </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> if the byte range exists and is a valid name </dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l02797">2797</a> of file <a class="el" href="dbus-string_8c-source.html">dbus-string.c</a>.    </td>
  </tr>
</table>
<a name="a64" doxytag="dbus-string.c::_dbus_string_validate_utf8"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="group__DBusTypes.html#a2">dbus_bool_t</a> _dbus_string_validate_utf8 </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>str</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>start</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>len</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<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#a3">FALSE</a>. If the string contains any nul bytes in the given range, returns <a class="el" href="group__DBusMacros.html#a3">FALSE</a>. If the start and start+len are not on character boundaries, returns <a class="el" href="group__DBusMacros.html#a3">FALSE</a>.
<p>

<p>
<dl compact><dt><b>
<a class="el" href="todo.html#_todo000055">Todo: </a></b><dd>
this is inconsistent with most of <a class="el" href="structDBusString.html">DBusString</a> in that it allows a start,len range that isn't in the string.</dl><dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>str</em>&nbsp;</td><td>
the string </td></tr>
<tr><td valign=top><em>start</em>&nbsp;</td><td>
first byte index to check </td></tr>
<tr><td valign=top><em>len</em>&nbsp;</td><td>
number of bytes to check </td></tr>
</table>
</dl><dl compact><dt><b>
Returns: </b><dd>
<a class="el" href="group__DBusMacros.html#a2">TRUE</a> if the byte range exists and is all valid UTF-8 </dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l02383">2383</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#l00047">DBusRealString::len</a>, and <a class="el" href="dbus-string-private_8h-source.html#l00046">DBusRealString::str</a>.    </td>
  </tr>
</table>
<a name="a72" doxytag="dbus-string.c::_dbus_string_zero"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void _dbus_string_zero </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="structDBusString.html">DBusString</a> *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>str</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Clears all allocated bytes in the string to zero.
<p>
<dl compact><dt><b>
Parameters: </b><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>str</em>&nbsp;</td><td>
the string </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-string_8c-source.html#l02815">2815</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>, and <a class="el" href="dbus-string-private_8h-source.html#l00046">DBusRealString::str</a>.    </td>
  </tr>
</table>
<hr><address align="right"><small>Generated on Wed Jun 9 05:01:28 2004 for D-BUS by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border=0 
width=110 height=53></a>1.2.15 </small></address>
</body>
</html>