StringG

Description A GString is an object that handles the memory management of a C string for you. You can think of it as similar to a Java StringBuffer. In addition to the string itself, GString stores the length of the string, so can be used for binary data with embedded nul bytes. To access the C string managed by the GString string, simply use string->str.

Constructors

this
this(GString* gString)

Sets our main struct and passes it to the parent class

this
this(string init)

Creates a new GString, initialized with the given string.

this
this(string init, gssize len)

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. Since this function does not stop at nul bytes, it is the caller's responsibility to ensure that init has at least len addressable bytes.

Members

Functions

append
StringG append(string val)

Adds a string onto the end of a GString, expanding it if necessary.

appendC
StringG appendC(char c)

Adds a byte onto the end of a GString, expanding it if necessary.

appendLen
StringG appendLen(string val, gssize len)

Appends len bytes of val to string. Because len is provided, val may contain embedded nuls and need not be nul-terminated. Since this function does not stop at nul bytes, it is the caller's responsibility to ensure that val has at least len addressable bytes.

appendUnichar
StringG appendUnichar(gunichar wc)

Converts a Unicode character into UTF-8, and appends it to the string.

appendUriEscaped
StringG appendUriEscaped(string unescaped, string reservedCharsAllowed, int allowUtf8)

Appends unescaped to string, escaped any characters that are reserved in URIs using URI-style escape sequences. Since 2.16

appendVprintf
void appendVprintf(string format, void* args)

Appends a formatted string onto the end of a GString. This function is similar to g_string_append_printf() except that the arguments to the format string are passed as a va_list. Since 2.14

assign
StringG assign(string rval)

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.

down
StringG down()

Warning g_string_down has been deprecated since version 2.2 and should not be used in newly-written code. This function uses the locale-specific tolower() function, which is almost never the right thing. Use g_string_ascii_down() or g_utf8_strdown() instead. Converts a GString to lowercase.

equal
int equal(StringG v2)

Compares two strings for equality, returning TRUE if they are equal. For use with GHashTable.

erase
StringG erase(gssize pos, gssize len)

Removes len bytes from a GString, starting at position pos. The rest of the GString is shifted down to fill the gap.

free
string free(int freeSegment)

Frees the memory allocated for the GString. If free_segment is TRUE it also frees the character data. If it's FALSE, the caller gains ownership of the buffer and must free it after use with g_free().

getStringGStruct
GString* getStringGStruct()
Undocumented in source. Be warned that the author may not have intended to support it.
getStruct
void* getStruct()

the main Gtk struct as a void*

hash
uint hash()

Creates a hash code for str; for use with GHashTable.

insert
StringG insert(gssize pos, string val)

Inserts a copy of a string into a GString, expanding it if necessary.

insertC
StringG insertC(gssize pos, char c)

Inserts a byte into a GString, expanding it if necessary.

insertLen
StringG insertLen(gssize pos, string val, gssize len)

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. Since this function does not stop at nul bytes, it is the caller's responsibility to ensure that val has at least len addressable bytes.

insertUnichar
StringG insertUnichar(gssize pos, gunichar wc)

Converts a Unicode character into UTF-8, and insert it into the string at the given position.

overwrite
StringG overwrite(gsize pos, string val)

Overwrites part of a string, lengthening it if necessary. Since 2.14

overwriteLen
StringG overwriteLen(gsize pos, string val, gssize len)

Overwrites part of a string, lengthening it if necessary. This function will work with embedded nuls. Since 2.14

prepend
StringG prepend(string val)

Adds a string on to the start of a GString, expanding it if necessary.

prependC
StringG prependC(char c)

Adds a byte onto the start of a GString, expanding it if necessary.

prependLen
StringG prependLen(string val, gssize len)

Prepends len bytes of val to string. Because len is provided, val may contain embedded nuls and need not be nul-terminated. Since this function does not stop at nul bytes, it is the caller's responsibility to ensure that val has at least len addressable bytes.

prependUnichar
StringG prependUnichar(gunichar wc)

Converts a Unicode character into UTF-8, and prepends it to the string.

setSize
StringG setSize(gsize len)

Sets the length of a GString. If the length is less than the current length, the string will be truncated. If the length is greater than the current length, the contents of the newly added area are undefined. (However, as always, string->str[string->len] will be a nul byte.)

truncate
StringG truncate(gsize len)

Cuts off the end of the GString, leaving the first len bytes.

up
StringG up()

Warning g_string_up has been deprecated since version 2.2 and should not be used in newly-written code. This function uses the locale-specific toupper() function, which is almost never the right thing. Use g_string_ascii_up() or g_utf8_strup() instead. Converts a GString to uppercase.

vprintf
void vprintf(string format, void* args)

Writes a formatted string into a GString. This function is similar to g_string_printf() except that the arguments to the format string are passed as a va_list. Since 2.14

Static functions

sizedNew
StringG sizedNew(gsize dflSize)

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.

Variables

gString
GString* gString;

the main Gtk struct

Meta