2.9.2
[platform/upstream/glib.git] / docs / reference / glib / tmpl / strings.sgml
index f621d18..8a35eeb 100644 (file)
@@ -6,12 +6,9 @@ text buffers which grow automatically as text is added.
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
-A #GString is similar to a standard C string, except that it grows
-automatically as text is appended or inserted.
-</para>
-<para>
-The space allocated for the string is always a power of two, so as the
-string grows it will occupy 2, 4, 8, 16, 32, 64, 128 etc. characters.
+A #GString is similar to a standard C string, except that it grows automatically
+as text is appended or inserted. Also, it stores the length of the string, so
+can be used for binary data with embedded nul bytes.
 </para>
 
 <!-- ##### SECTION See_Also ##### -->
@@ -19,22 +16,26 @@ string grows it will occupy 2, 4, 8, 16, 32, 64, 128 etc. characters.
 
 </para>
 
+<!-- ##### SECTION Stability_Level ##### -->
+
+
 <!-- ##### STRUCT GString ##### -->
 <para>
 The #GString struct contains the public fields of a #GString.
 The <structfield>str</structfield> field points to the character data.
 It may move as text is added.
 The <structfield>len</structfield> field contains the length of the string,
-not including the terminating null character.
+not including the terminating nul byte.
 </para>
 <para>
-The str field is zero-terminated and so can be used as an ordinary C
+The <structfield>str</structfield> field is nul-terminated and so can be used as an ordinary C
 string. But it may be moved when text is appended or inserted into the
 string.
 </para>
 
 @str: 
 @len: 
+@allocated_len: 
 
 <!-- ##### FUNCTION g_string_new ##### -->
 <para>
@@ -45,9 +46,20 @@ Creates a new #GString, initialized with the given string.
 @Returns: the new #GString.
 
 
+<!-- ##### FUNCTION g_string_new_len ##### -->
+<para>
+Creates a new #GString with @len bytes of the @init buffer.  Because a length is
+provided, @init need not be nul-terminated, and can contain embedded nul bytes.
+</para>
+
+@init: initial contents of string.
+@len: length of @init to use.
+@Returns: a new #GString.
+
+
 <!-- ##### FUNCTION g_string_sized_new ##### -->
 <para>
-Creates a new GString, with enough space for @dfl_size characters.
+Creates a new #GString, with enough space for @dfl_size bytes.
 This is useful if you are going to add a lot of text to the string and
 don't want it to be reallocated too often.
 </para>
@@ -58,40 +70,69 @@ don't want it to be reallocated too often.
 
 <!-- ##### FUNCTION g_string_assign ##### -->
 <para>
-Copies the characters from one #GString into another, destroying any previous
+Copies the bytes from a string into a #GString, destroying any previous
 contents. It is rather like the standard strcpy() function, except that
 you do not have to worry about having enough space to copy the string.
 </para>
 
-@lval: the destination #GString. Its current contents are destroyed.
-@rval: the source #GString.
+@string: the destination #GString. Its current contents are destroyed.
+@rval: the string to copy into @string
 @Returns: the destination #GString.
+<!-- # Unused Parameters # -->
+@val: the string to copy into @string.
 
 
-<!-- ##### FUNCTION g_string_sprintf ##### -->
+<!-- ##### MACRO g_string_sprintf ##### -->
 <para>
 Writes a formatted string into a #GString.
-This is similar to the standard <function>sprintf()</function> function,
-except that the GString buffer automatically expands to contain the results.
-The previous contents of the GString are destroyed.
+This is similar to the standard sprintf() function,
+except that the #GString buffer automatically expands to contain the results.
+The previous contents of the #GString are destroyed. 
 </para>
 
+@Deprecated: This function has been renamed to g_string_printf().
+<!-- # Unused Parameters # -->
 @string: a #GString.
-@format: the string format. See the <function>sprintf()</function>
-documentation.
+@format: the string format. See the sprintf() documentation.
 @Varargs: the parameters to insert into the format string.
 
 
-<!-- ##### FUNCTION g_string_sprintfa ##### -->
+<!-- ##### MACRO g_string_sprintfa ##### -->
 <para>
 Appends a formatted string onto the end of a #GString.
 This function is is similar to g_string_sprintf() except that
-the text is appended to the GString.
+the text is appended to the #GString. 
+</para>
+
+@Deprecated: This function has been renamed to g_string_append_printf().
+<!-- # Unused Parameters # -->
+@string: a #GString.
+@format: the string format. See the sprintf() documentation.
+@Varargs: the parameters to insert into the format string.
+
+
+<!-- ##### FUNCTION g_string_printf ##### -->
+<para>
+Writes a formatted string into a #GString.
+This is similar to the standard sprintf() function,
+except that the #GString buffer automatically expands to contain the results.
+The previous contents of the #GString are destroyed.
+</para>
+
+@string: a #GString.
+@format: the string format. See the printf() documentation.
+@Varargs: the parameters to insert into the format string.
+
+
+<!-- ##### FUNCTION g_string_append_printf ##### -->
+<para>
+Appends a formatted string onto the end of a #GString.
+This function is is similar to g_string_printf() except that
+the text is appended to the #GString.
 </para>
 
 @string: a #GString.
-@format: the string format. See the <function>sprintf()</function>
-documentation.
+@format: the string format. See the printf() documentation.
 @Varargs: the parameters to insert into the format string.
 
 
@@ -107,11 +148,33 @@ Adds a string onto the end of a #GString, expanding it if necessary.
 
 <!-- ##### FUNCTION g_string_append_c ##### -->
 <para>
-Adds a character onto the end of a #GString, expanding it if necessary.
+Adds a byte onto the end of a #GString, expanding it if necessary.
 </para>
 
 @string: a #GString.
-@c: the character to append onto the end of the #GString.
+@c: the byte to append onto the end of the #GString.
+@Returns: the #GString.
+
+
+<!-- ##### FUNCTION g_string_append_unichar ##### -->
+<para>
+
+</para>
+
+@string: 
+@wc: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_string_append_len ##### -->
+<para>
+Appends @len bytes of @val to @string. Because @len is provided, 
+@val may contain embedded nuls and need not be nul-terminated.
+</para>
+
+@string: a #GString.
+@val: bytes to append.
+@len: number of bytes of @val to use.
 @Returns: the #GString.
 
 
@@ -127,14 +190,36 @@ Adds a string on to the start of a #GString, expanding it if necessary.
 
 <!-- ##### FUNCTION g_string_prepend_c ##### -->
 <para>
-Adds a character onto the start of a #GString, expanding it if necessary.
+Adds a byte onto the start of a #GString, expanding it if necessary.
 </para>
 
 @string: a #GString.
-@c: the character to prepend on the start of the #GString.
+@c: the byte to prepend on the start of the #GString.
 @Returns: the #GString.
 
 
+<!-- ##### FUNCTION g_string_prepend_unichar ##### -->
+<para>
+
+</para>
+
+@string: 
+@wc: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_string_prepend_len ##### -->
+<para>
+Prepends @len bytes of @val to @string. Because @len is provided, 
+@val may contain embedded nuls and need not be nul-terminated.
+</para>
+
+@string: a #GString.
+@val: bytes to prepend.
+@len: number of bytes in @val to prepend.
+@Returns: the #GString passed in.
+
+
 <!-- ##### FUNCTION g_string_insert ##### -->
 <para>
 Inserts a copy of a string into a #GString, expanding it if necessary.
@@ -148,30 +233,55 @@ Inserts a copy of a string into a #GString, expanding it if necessary.
 
 <!-- ##### FUNCTION g_string_insert_c ##### -->
 <para>
-Inserts a character into a #GString, expanding it if necessary.
+Inserts a byte into a #GString, expanding it if necessary.
+</para>
+
+@string: a #GString.
+@pos: the position to insert the byte.
+@c: the byte to insert.
+@Returns: the #GString.
+
+
+<!-- ##### FUNCTION g_string_insert_unichar ##### -->
+<para>
+
+</para>
+
+@string: 
+@pos: 
+@wc: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_string_insert_len ##### -->
+<para>
+Inserts @len bytes of @val into @string at @pos.  Because @len is provided, @val
+ may contain embedded nuls and need not be nul-terminated. If @pos is -1, bytes are inserted at the end of the string.
 </para>
 
 @string: a #GString.
-@pos: the position to insert the character.
-@c: the character to insert.
+@pos: position in @string where insertion should happen, or -1 for at the end.
+@val: bytes to insert.
+@len: number of bytes of @val to insert.
 @Returns: the #GString.
 
 
 <!-- ##### FUNCTION g_string_erase ##### -->
 <para>
-Removes @len characters from a #GString, starting at position @pos.
+Removes @len bytes from a #GString, starting at position @pos.
 The rest of the #GString is shifted down to fill the gap.
 </para>
 
 @string: a #GString.
-@pos: the position of the characters to remove.
-@len: the number of characters to remove.
+@pos: the position of the content to remove.
+@len: the number of bytes to remove, or -1 to remove all
+      following bytes.
 @Returns: the #GString.
 
 
 <!-- ##### FUNCTION g_string_truncate ##### -->
 <para>
-Cuts off the end of the GString, leaving the first @len characters.
+Cuts off the end of the GString, leaving the first @len bytes.
 </para>
 
 @string: a #GString.
@@ -179,31 +289,60 @@ Cuts off the end of the GString, leaving the first @len characters.
 @Returns: the #GString.
 
 
+<!-- ##### FUNCTION g_string_set_size ##### -->
+<para>
+
+</para>
+
+@string: 
+@len: 
+@Returns: 
+
+
 <!-- ##### FUNCTION g_string_free ##### -->
 <para>
 Frees the memory allocated for the #GString.
-If free_segment is TRUE it also frees the character data.
+If @free_segment is %TRUE it also frees the character data.
 </para>
 
 @string: a #GString.
-@free_segment: if TRUE the actual character data is freed as well.
+@free_segment: if %TRUE the actual character data is freed as well.
+@Returns: the character data of @string (i.e. %NULL if @free_segment is %TRUE)
 
 
 <!-- ##### FUNCTION g_string_up ##### -->
 <para>
-Converts a #GString to upper case.
 </para>
 
-@string: a #GString.
-@Returns: the #GString.
+@string: 
+@Returns: 
 
 
 <!-- ##### FUNCTION g_string_down ##### -->
 <para>
-Converts a #GString to lower case.
 </para>
 
-@string: a #GString.
-@Returns: the #GString.
+@string: 
+@Returns: 
+
+
+<!-- ##### FUNCTION g_string_hash ##### -->
+<para>
+Creates a hash code for @str; for use with #GHashTable.
+</para>
+
+@str: a string to hash.
+@Returns: hash code for @str.
+
+
+<!-- ##### FUNCTION g_string_equal ##### -->
+<para>
+Compares two strings for equality, returning %TRUE if they are equal. 
+For use with #GHashTable.
+</para>
+
+@v: a #GString.
+@v2: another #GString.
+@Returns: %TRUE if they strings are the same length and contain the same bytes.