Commit accumulated changes.
[platform/upstream/glib.git] / docs / reference / glib / tmpl / strings.sgml
1 <!-- ##### SECTION Title ##### -->
2 Strings
3
4 <!-- ##### SECTION Short_Description ##### -->
5 text buffers which grow automatically as text is added.
6
7 <!-- ##### SECTION Long_Description ##### -->
8 <para>
9 A #GString is similar to a standard C string, except that it grows automatically
10 as text is appended or inserted. Also, it stores the length of the string, so
11 can be used for binary data with embedded nul bytes.
12 </para>
13
14 <!-- ##### SECTION See_Also ##### -->
15 <para>
16
17 </para>
18
19 <!-- ##### STRUCT GString ##### -->
20 <para>
21 The #GString struct contains the public fields of a #GString.
22 The <structfield>str</structfield> field points to the character data.
23 It may move as text is added.
24 The <structfield>len</structfield> field contains the length of the string,
25 not including the terminating nul character.
26 </para>
27 <para>
28 The <structfield>str</structfield> field is nul-terminated and so can be used as an ordinary C
29 string. But it may be moved when text is appended or inserted into the
30 string.
31 </para>
32
33 @str: 
34 @len: 
35 @allocated_len: 
36
37 <!-- ##### FUNCTION g_string_new ##### -->
38 <para>
39 Creates a new #GString, initialized with the given string.
40 </para>
41
42 @init: the initial text to copy into the string.
43 @Returns: the new #GString.
44
45
46 <!-- ##### FUNCTION g_string_new_len ##### -->
47 <para>
48 Creates a new #GString with @len bytes of the @init buffer.  Because a length is
49 provided, @init need not be nul-terminated, and can contain embedded nul bytes.
50 </para>
51
52 @init: initial contents of string.
53 @len: length of @init to use.
54 @Returns: a new #GString.
55
56
57 <!-- ##### FUNCTION g_string_sized_new ##### -->
58 <para>
59 Creates a new #GString, with enough space for @dfl_size characters.
60 This is useful if you are going to add a lot of text to the string and
61 don't want it to be reallocated too often.
62 </para>
63
64 @dfl_size: the default size of the space allocated to hold the string.
65 @Returns: the new #GString.
66
67
68 <!-- ##### FUNCTION g_string_assign ##### -->
69 <para>
70 Copies the characters from a string into a #GString, destroying any previous
71 contents. It is rather like the standard <function>strcpy()</function> function, except that
72 you do not have to worry about having enough space to copy the string.
73 </para>
74
75 @string: the destination #GString. Its current contents are destroyed.
76 @rval: 
77 @Returns: the destination #GString.
78 <!-- # Unused Parameters # -->
79 @val: the string to copy into @string.
80
81
82 <!-- ##### MACRO g_string_sprintf ##### -->
83 <para>
84 Writes a formatted string into a #GString.
85 This is similar to the standard <function>sprintf()</function> function,
86 except that the #GString buffer automatically expands to contain the results.
87 The previous contents of the #GString are destroyed. 
88 </para>
89
90 @Deprecated: This function has been renamed to g_string_printf().
91 <!-- # Unused Parameters # -->
92 @string: a #GString.
93 @format: the string format. See the <function>sprintf()</function>
94 documentation.
95 @Varargs: the parameters to insert into the format string.
96
97
98 <!-- ##### MACRO g_string_sprintfa ##### -->
99 <para>
100 Appends a formatted string onto the end of a #GString.
101 This function is is similar to g_string_sprintf() except that
102 the text is appended to the #GString. 
103 </para>
104
105 @Deprecated: This function has been renamed to g_string_append_printf().
106 <!-- # Unused Parameters # -->
107 @string: a #GString.
108 @format: the string format. See the <function>sprintf()</function>
109 documentation.
110 @Varargs: the parameters to insert into the format string.
111
112
113 <!-- ##### FUNCTION g_string_printf ##### -->
114 <para>
115 Writes a formatted string into a #GString.
116 This is similar to the standard <function>sprintf()</function> function,
117 except that the #GString buffer automatically expands to contain the results.
118 The previous contents of the #GString are destroyed.
119 </para>
120
121 @string: a #GString.
122 @format: the string format. See the <function>printf()</function>
123 documentation.
124 @Varargs: the parameters to insert into the format string.
125
126
127 <!-- ##### FUNCTION g_string_append_printf ##### -->
128 <para>
129 Appends a formatted string onto the end of a #GString.
130 This function is is similar to g_string_printf() except that
131 the text is appended to the #GString.
132 </para>
133
134 @string: a #GString.
135 @format: the string format. See the <function>printf()</function>
136 documentation.
137 @Varargs: the parameters to insert into the format string.
138
139
140 <!-- ##### FUNCTION g_string_append ##### -->
141 <para>
142 Adds a string onto the end of a #GString, expanding it if necessary.
143 </para>
144
145 @string: a #GString.
146 @val: the string to append onto the end of the #GString.
147 @Returns: the #GString.
148
149
150 <!-- ##### FUNCTION g_string_append_c ##### -->
151 <para>
152 Adds a character onto the end of a #GString, expanding it if necessary.
153 </para>
154
155 @string: a #GString.
156 @c: the character to append onto the end of the #GString.
157 @Returns: the #GString.
158 <!-- # Unused Parameters # -->
159 @gstr: 
160
161
162 <!-- ##### FUNCTION g_string_append_unichar ##### -->
163 <para>
164
165 </para>
166
167 @string: 
168 @wc: 
169 @Returns: 
170
171
172 <!-- ##### FUNCTION g_string_append_len ##### -->
173 <para>
174 Appends @len bytes of @val to @string. Because @len is provided, 
175 @val may contain embedded nuls and need not be nul-terminated.
176 </para>
177
178 @string: a #GString.
179 @val: bytes to append.
180 @len: number of bytes of @val to use.
181 @Returns: the #GString.
182
183
184 <!-- ##### FUNCTION g_string_prepend ##### -->
185 <para>
186 Adds a string on to the start of a #GString, expanding it if necessary.
187 </para>
188
189 @string: a #GString.
190 @val: the string to prepend on the start of the #GString.
191 @Returns: the #GString.
192
193
194 <!-- ##### FUNCTION g_string_prepend_c ##### -->
195 <para>
196 Adds a character onto the start of a #GString, expanding it if necessary.
197 </para>
198
199 @string: a #GString.
200 @c: the character to prepend on the start of the #GString.
201 @Returns: the #GString.
202
203
204 <!-- ##### FUNCTION g_string_prepend_unichar ##### -->
205 <para>
206
207 </para>
208
209 @string: 
210 @wc: 
211 @Returns: 
212
213
214 <!-- ##### FUNCTION g_string_prepend_len ##### -->
215 <para>
216 Prepends @len bytes of @val to @string. Because @len is provided, 
217 @val may contain embedded nuls and need not be nul-terminated.
218 </para>
219
220 @string: a #GString.
221 @val: bytes to prepend.
222 @len: number of bytes in @val to prepend.
223 @Returns: the #GString passed in.
224
225
226 <!-- ##### FUNCTION g_string_insert ##### -->
227 <para>
228 Inserts a copy of a string into a #GString, expanding it if necessary.
229 </para>
230
231 @string: a #GString.
232 @pos: the position to insert the copy of the string.
233 @val: the string to insert.
234 @Returns: the #GString.
235
236
237 <!-- ##### FUNCTION g_string_insert_c ##### -->
238 <para>
239 Inserts a character into a #GString, expanding it if necessary.
240 </para>
241
242 @string: a #GString.
243 @pos: the position to insert the character.
244 @c: the character to insert.
245 @Returns: the #GString.
246
247
248 <!-- ##### FUNCTION g_string_insert_unichar ##### -->
249 <para>
250
251 </para>
252
253 @string: 
254 @pos: 
255 @wc: 
256 @Returns: 
257
258
259 <!-- ##### FUNCTION g_string_insert_len ##### -->
260 <para>
261 Inserts @len bytes of @val into @string at @pos.  Because @len is provided, @val
262  may contain embedded nuls and need not be nul-terminated. If @pos is -1, bytes are inserted at the end of the string.
263 </para>
264
265 @string: a #GString.
266 @pos: position in @string where insertion should happen, or -1 for at the end.
267 @val: bytes to insert.
268 @len: number of bytes of @val to insert.
269 @Returns: the #GString.
270
271
272 <!-- ##### FUNCTION g_string_erase ##### -->
273 <para>
274 Removes @len characters from a #GString, starting at position @pos.
275 The rest of the #GString is shifted down to fill the gap.
276 </para>
277
278 @string: a #GString.
279 @pos: the position of the characters to remove.
280 @len: the number of characters to remove, or -1 to remove all
281       following characters.
282 @Returns: the #GString.
283
284
285 <!-- ##### FUNCTION g_string_truncate ##### -->
286 <para>
287 Cuts off the end of the GString, leaving the first @len characters.
288 </para>
289
290 @string: a #GString.
291 @len: the new size of the #GString.
292 @Returns: the #GString.
293
294
295 <!-- ##### FUNCTION g_string_set_size ##### -->
296 <para>
297
298 </para>
299
300 @string: 
301 @len: 
302 @Returns: 
303
304
305 <!-- ##### FUNCTION g_string_free ##### -->
306 <para>
307 Frees the memory allocated for the #GString.
308 If @free_segment is %TRUE it also frees the character data.
309 </para>
310
311 @string: a #GString.
312 @free_segment: if %TRUE the actual character data is freed as well.
313 @Returns: the character data of @string (i.e. %NULL if @free_segment is %TRUE)
314
315
316 <!-- ##### FUNCTION g_string_up ##### -->
317 <para>
318 </para>
319
320 @string: 
321 @Returns: 
322
323
324 <!-- ##### FUNCTION g_string_down ##### -->
325 <para>
326 </para>
327
328 @string: 
329 @Returns: 
330
331
332 <!-- ##### FUNCTION g_string_hash ##### -->
333 <para>
334 Creates a hash code for @str; for use with #GHashTable.
335 </para>
336
337 @str: a string to hash.
338 @Returns: hash code for @str.
339
340
341 <!-- ##### FUNCTION g_string_equal ##### -->
342 <para>
343 Compares two strings for equality, returning %TRUE if they are equal. 
344 For use with #GHashTable.
345 </para>
346
347 @v: a #GString.
348 @v2: another #GString.
349 @Returns: %TRUE if they strings are the same length and contain the same bytes.
350
351