These functions provide unicode string buffer management. More...
Macros | |
| #define | eina_ustrbuf_prepend(buf, str) eina_ustrbuf_insert(buf, str, 0) |
| Prepends a string to the given buffer. More... | |
| #define | eina_ustrbuf_prepend_escaped(buf, str) eina_ustrbuf_insert_escaped(buf, str, 0) |
| Prepends an escaped string to the given buffer. More... | |
| #define | eina_ustrbuf_prepend_n(buf, str, maxlen) eina_ustrbuf_insert_n(buf, str, maxlen, 0) |
| Prepends an escaped string to the given buffer. More... | |
| #define | eina_ustrbuf_prepend_length(buf, str, length) eina_ustrbuf_insert_length(buf, str, length, 0) |
| Prepends an escaped string to the given buffer. More... | |
| #define | eina_ustrbuf_prepend_char(buf, c) eina_ustrbuf_insert_char(buf, c, 0) |
| Prepends a unicode character to the given buffer. More... | |
Typedefs | |
| typedef struct _Eina_Strbuf | Eina_UStrbuf |
Functions | |
| Eina_UStrbuf * | eina_ustrbuf_new (void) |
| Creates a new unicode string buffer. More... | |
| Eina_UStrbuf * | eina_ustrbuf_manage_new (Eina_Unicode *str) |
| Creates a new string buffer using the passed string. More... | |
| Eina_UStrbuf * | eina_ustrbuf_manage_new_length (Eina_Unicode *str, size_t length) |
| Creates a new string buffer using the passed string. More... | |
| void | eina_ustrbuf_free (Eina_UStrbuf *buf) |
| Frees a string buffer. More... | |
| void | eina_ustrbuf_reset (Eina_UStrbuf *buf) |
| Resets a string buffer. More... | |
| Eina_Bool | eina_ustrbuf_append (Eina_UStrbuf *buf, const Eina_Unicode *str) |
| Appends a string to a buffer, reallocating as necessary. More... | |
| Eina_Bool | eina_ustrbuf_append_escaped (Eina_UStrbuf *buf, const Eina_Unicode *str) |
| Appends an escaped string to a buffer, reallocating as necessary. More... | |
| Eina_Bool | eina_ustrbuf_append_n (Eina_UStrbuf *buf, const Eina_Unicode *str, size_t maxlen) |
| Appends a string to a buffer, reallocating as necessary, limited by the given length. More... | |
| Eina_Bool | eina_ustrbuf_append_length (Eina_UStrbuf *buf, const Eina_Unicode *str, size_t length) |
| Appends a string of exact length to a buffer, reallocating as necessary. More... | |
| Eina_Bool | eina_ustrbuf_append_slice (Eina_UStrbuf *buf, const Eina_Slice slice) |
| Appends a slice to a buffer, reallocating as necessary. More... | |
| Eina_Bool | eina_ustrbuf_append_char (Eina_UStrbuf *buf, Eina_Unicode c) |
| Appends a character to a string buffer, reallocating as necessary. More... | |
| Eina_Bool | eina_ustrbuf_insert (Eina_UStrbuf *buf, const Eina_Unicode *str, size_t pos) |
| Inserts a string to a buffer, reallocating as necessary. More... | |
| Eina_Bool | eina_ustrbuf_insert_escaped (Eina_UStrbuf *buf, const Eina_Unicode *str, size_t pos) |
| Inserts an escaped string to a buffer, reallocating as necessary. More... | |
| Eina_Bool | eina_ustrbuf_insert_n (Eina_UStrbuf *buf, const Eina_Unicode *str, size_t maxlen, size_t pos) |
| Inserts a string to a buffer, reallocating as necessary. More... | |
| Eina_Bool | eina_ustrbuf_insert_length (Eina_UStrbuf *buf, const Eina_Unicode *str, size_t length, size_t pos) |
| Inserts a string of exact length to a buffer, reallocating as necessary. More... | |
| Eina_Bool | eina_ustrbuf_insert_slice (Eina_UStrbuf *buf, const Eina_Slice slice, size_t pos) |
| Inserts a slice to a buffer, reallocating as necessary. More... | |
| Eina_Bool | eina_ustrbuf_insert_char (Eina_UStrbuf *buf, Eina_Unicode c, size_t pos) |
| Inserts a character to a string buffer, reallocating as necessary. More... | |
| Eina_Bool | eina_ustrbuf_remove (Eina_UStrbuf *buf, size_t start, size_t end) |
| Removes a section of the given string buffer. More... | |
| const Eina_Unicode * | eina_ustrbuf_string_get (const Eina_UStrbuf *buf) |
| Retrieves a pointer to the contents of a string buffer. More... | |
| Eina_Unicode * | eina_ustrbuf_string_steal (Eina_UStrbuf *buf) |
| Steals the contents of a string buffer. More... | |
| void | eina_ustrbuf_string_free (Eina_UStrbuf *buf) |
| Frees the contents of a string buffer but not the buffer. More... | |
| size_t | eina_ustrbuf_length_get (const Eina_UStrbuf *buf) |
| Retrieves the length of the string buffer's content. More... | |
| Eina_Slice | eina_ustrbuf_slice_get (const Eina_UStrbuf *buf) |
| Gets a read-only slice of the buffer contents. More... | |
| Eina_Rw_Slice | eina_ustrbuf_rw_slice_get (const Eina_UStrbuf *buf) |
| Gets a read-write slice of the buffer contents. More... | |
| Eina_Unicode * | eina_ustrbuf_release (Eina_UStrbuf *buf) |
| Frees the buffer, returning its old contents. More... | |
These functions provide unicode string buffer management.
The Unicode String Buffer data type is designed to be a mutable string, allowing the appending, prepending or insertion of a string to a buffer.
| #define eina_ustrbuf_prepend | ( | buf, | |
| str | |||
| ) | eina_ustrbuf_insert(buf, str, 0) |
Prepends a string to the given buffer.
| [in,out] | buf | The string buffer. |
| [in] | str | The string to prepend. |
str could not be prepended.This macro simply calls eina_ustrbuf_insert() with position 0.
| #define eina_ustrbuf_prepend_escaped | ( | buf, | |
| str | |||
| ) | eina_ustrbuf_insert_escaped(buf, str, 0) |
Prepends an escaped string to the given buffer.
| [in,out] | buf | The string buffer. |
| [in] | str | The string to prepend. |
str could not be prepended.This macro simply calls eina_ustrbuf_insert_escaped() with position 0.
| #define eina_ustrbuf_prepend_n | ( | buf, | |
| str, | |||
| maxlen | |||
| ) | eina_ustrbuf_insert_n(buf, str, maxlen, 0) |
Prepends an escaped string to the given buffer.
| [in,out] | buf | The string buffer. |
| [in] | str | The string to prepend. |
| [in] | maxlen | The maximum number of Eina_Unicode *s to prepend. |
This macro simply calls eina_ustrbuf_insert_n() with position 0.
| #define eina_ustrbuf_prepend_length | ( | buf, | |
| str, | |||
| length | |||
| ) | eina_ustrbuf_insert_length(buf, str, length, 0) |
Prepends an escaped string to the given buffer.
| [in,out] | buf | The string buffer. |
| [in] | str | The string to prepend. |
| [in] | length | The exact length to use. |
str could not be prepended.This macro simply calls eina_ustrbuf_insert_length() with position 0.
| #define eina_ustrbuf_prepend_char | ( | buf, | |
| c | |||
| ) | eina_ustrbuf_insert_char(buf, c, 0) |
Prepends a unicode character to the given buffer.
| [in,out] | buf | The string buffer. |
| [in] | c | The Eina_Unicode character to prepend. |
c could not be prepended.This macro is calling eina_ustrbuf_insert_Eina_Unicode() at position 0.
Type for a unicode string buffer.
| Eina_UStrbuf* eina_ustrbuf_new | ( | void | ) |
Creates a new unicode string buffer.
NULL on error.This function creates a new string buffer. To free the resources, use eina_ustrbuf_free().
| Eina_UStrbuf* eina_ustrbuf_manage_new | ( | Eina_Unicode * | str | ) |
Creates a new string buffer using the passed string.
| [in] | str | The string to manage. |
NULL on error.This function creates a new unicode string buffer. The passed string is used directly as the buffer, it's effectively the inverse of eina_ustrbuf_string_steal(). The passed string must be malloc'd. To free the resources, use eina_ustrbuf_free().
| Eina_UStrbuf* eina_ustrbuf_manage_new_length | ( | Eina_Unicode * | str, |
| size_t | length | ||
| ) |
Creates a new string buffer using the passed string.
| [in] | str | The string to manage. |
| [in] | length | The length of the string. |
NULL on error.This function creates a new string buffer. The passed string is used directly as the buffer, it's effectively the inverse of eina_ustrbuf_string_steal(). The passed string must be malloc'd. To free the resources, use eina_ustrbuf_free().
| void eina_ustrbuf_free | ( | Eina_UStrbuf * | buf | ) |
Frees a string buffer.
| [in,out] | buf | The string buffer to free. |
This function frees the memory of buf. buf must have been created by eina_ustrbuf_new().
| void eina_ustrbuf_reset | ( | Eina_UStrbuf * | buf | ) |
Resets a string buffer.
| [in,out] | buf | The string buffer. |
This function resets buf: the buffer len is set to 0, and the string data is set to '\0'. No memory is freed.
| Eina_Bool eina_ustrbuf_append | ( | Eina_UStrbuf * | buf, |
| const Eina_Unicode * | str | ||
| ) |
Appends a string to a buffer, reallocating as necessary.
| [in,out] | buf | The string buffer. |
| [in] | str | The string to append. |
str could not be appended.This function appends str to buf. It computes the length of str, so is slightly slower than eina_ustrbuf_append_length(). If the length is known beforehand, consider using that variant.
| Eina_Bool eina_ustrbuf_append_escaped | ( | Eina_UStrbuf * | buf, |
| const Eina_Unicode * | str | ||
| ) |
Appends an escaped string to a buffer, reallocating as necessary.
| [in,out] | buf | The string buffer. |
| [in] | str | The string to append. |
str could not be appended.This function appends the escaped string str to buf.
| Eina_Bool eina_ustrbuf_append_n | ( | Eina_UStrbuf * | buf, |
| const Eina_Unicode * | str, | ||
| size_t | maxlen | ||
| ) |
Appends a string to a buffer, reallocating as necessary, limited by the given length.
| [in,out] | buf | The string buffer. |
| [in] | str | The string to append. |
| [in] | maxlen | The maximum number of characters to append. |
str could not be appended.This function appends at most maxlen characters of str to buf. It can't append more than the length of str. It computes the length of str, so is slightly slower than eina_ustrbuf_append_length(). If the length is known beforehand, consider using that variant (maxlen should then be checked so that it is greater than the size of str).
| Eina_Bool eina_ustrbuf_append_length | ( | Eina_UStrbuf * | buf, |
| const Eina_Unicode * | str, | ||
| size_t | length | ||
| ) |
Appends a string of exact length to a buffer, reallocating as necessary.
| [in,out] | buf | The string buffer. |
| [in] | str | The string to append. |
| [in] | length | The exact length to use. |
str could not be appended.This function appends str to buf. str must be of size at most length. It is slightly faster than eina_ustrbuf_append() as it does not compute the size of str. It is useful when dealing with strings of known size, such as eina_stringshare.
| Eina_Bool eina_ustrbuf_append_slice | ( | Eina_UStrbuf * | buf, |
| const Eina_Slice | slice | ||
| ) |
Appends a slice to a buffer, reallocating as necessary.
| [in,out] | buf | The string buffer. |
| [in] | slice | The slice to append. |
slice could not be appended.This function appends slice to buf.
| Eina_Bool eina_ustrbuf_append_char | ( | Eina_UStrbuf * | buf, |
| Eina_Unicode | c | ||
| ) |
Appends a character to a string buffer, reallocating as necessary.
| [in,out] | buf | The string buffer. |
| [in] | c | The char to append. |
c could not be appended.This function appends c to buf.
| Eina_Bool eina_ustrbuf_insert | ( | Eina_UStrbuf * | buf, |
| const Eina_Unicode * | str, | ||
| size_t | pos | ||
| ) |
Inserts a string to a buffer, reallocating as necessary.
| [in,out] | buf | The string buffer. |
| [in] | str | The string to insert. |
| [in] | pos | The position to insert the string. |
str could not be inserted.This function inserts str to buf at position pos. It computes the length of str, so is slightly slower than eina_ustrbuf_insert_length(). If the length is known beforehand, consider using that variant.
| Eina_Bool eina_ustrbuf_insert_escaped | ( | Eina_UStrbuf * | buf, |
| const Eina_Unicode * | str, | ||
| size_t | pos | ||
| ) |
Inserts an escaped string to a buffer, reallocating as necessary.
| [in,out] | buf | The string buffer. |
| [in] | str | The string to insert. |
| [in] | pos | The position to insert the string. |
str could not be inserted.This function inserts the escaped string str to buf at position pos.
| Eina_Bool eina_ustrbuf_insert_n | ( | Eina_UStrbuf * | buf, |
| const Eina_Unicode * | str, | ||
| size_t | maxlen, | ||
| size_t | pos | ||
| ) |
Inserts a string to a buffer, reallocating as necessary.
Limited by maxlen.
| [in,out] | buf | The string buffer. |
| [in] | str | The string to insert. |
| [in] | maxlen | The maximum number of chars to insert. |
| [in] | pos | The position to insert the string. |
str could not be inserted.This function inserts str into buf at position pos, with at most maxlen bytes. The number of inserted characters cannot be greater than the length of str. It computes the length of str, so is slightly slower than eina_ustrbuf_insert_length(). If the length is known beforehand, consider using that variant (maxlen should then be checked so that it is greater than the size of str).
| Eina_Bool eina_ustrbuf_insert_length | ( | Eina_UStrbuf * | buf, |
| const Eina_Unicode * | str, | ||
| size_t | length, | ||
| size_t | pos | ||
| ) |
Inserts a string of exact length to a buffer, reallocating as necessary.
| [in,out] | buf | The string buffer. |
| [in] | str | The string to insert. |
| [in] | length | The exact length to use. |
| [in] | pos | The position to insert the string. |
str could not be inserted.This function inserts str into buf. str must be no longer than length. It is slightly faster than eina_ustrbuf_insert() as it does not compute the size of str. It is useful when dealing with strings of known size, such as eina_stringshare.
| Eina_Bool eina_ustrbuf_insert_slice | ( | Eina_UStrbuf * | buf, |
| const Eina_Slice | slice, | ||
| size_t | pos | ||
| ) |
Inserts a slice to a buffer, reallocating as necessary.
| [in,out] | buf | The string buffer. |
| [in] | slice | The slice to insert. |
| [in] | pos | The position to insert the string. |
slice could not be inserted.This function inserts slice to buf at position pos.
| Eina_Bool eina_ustrbuf_insert_char | ( | Eina_UStrbuf * | buf, |
| Eina_Unicode | c, | ||
| size_t | pos | ||
| ) |
Inserts a character to a string buffer, reallocating as necessary.
| [in,out] | buf | The string buffer. |
| [in] | c | The char to insert. |
| [in] | pos | The position to insert the char. |
c could not be inserted.This function inserts c to buf at position pos.
| Eina_Bool eina_ustrbuf_remove | ( | Eina_UStrbuf * | buf, |
| size_t | start, | ||
| size_t | end | ||
| ) |
Removes a section of the given string buffer.
| [in,out] | buf | The string buffer to remove a slice. |
| [in] | start | The initial (inclusive) slice position to start removing, in bytes. |
| [in] | end | The final (non-inclusive) slice position to finish removing, in bytes. |
This function removes a slice of buf, starting at start (inclusive) and ending at end (non-inclusive). Both values are in bytes.
Referenced by evas_textblock_cursor_char_delete(), and evas_textblock_node_format_remove_pair().
| const Eina_Unicode* eina_ustrbuf_string_get | ( | const Eina_UStrbuf * | buf | ) |
Retrieves a pointer to the contents of a string buffer.
| [in] | buf | The string buffer. |
This function returns the string contained in buf. The returned value must not be modified and will no longer be valid if buf is modified. In other words, calling eina_ustrbuf_append() or similar functions will make this pointer invalid.
Referenced by evas_textblock_cursor_char_delete(), evas_textblock_cursor_word_end(), and evas_textblock_cursor_word_start().
| Eina_Unicode* eina_ustrbuf_string_steal | ( | Eina_UStrbuf * | buf | ) |
Steals the contents of a string buffer.
| [in] | buf | The string buffer. |
buf.This function returns the string contained in buf. buf is then initialized and does not own the returned string anymore. The caller must release the memory of the returned string by calling free().
| void eina_ustrbuf_string_free | ( | Eina_UStrbuf * | buf | ) |
Frees the contents of a string buffer but not the buffer.
| [in,out] | buf | The string buffer. |
This function frees the string contained in buf without freeing buf.
| size_t eina_ustrbuf_length_get | ( | const Eina_UStrbuf * | buf | ) |
Retrieves the length of the string buffer's content.
| [in] | buf | The string buffer. |
This function returns the length of buf.
Referenced by evas_textblock_cursor_char_delete(), evas_textblock_cursor_paragraph_char_last(), evas_textblock_cursor_paragraph_text_length_get(), evas_textblock_cursor_pos_set(), evas_textblock_cursor_word_end(), and evas_textblock_cursor_word_start().
| Eina_Slice eina_ustrbuf_slice_get | ( | const Eina_UStrbuf * | buf | ) |
Gets a read-only slice of the buffer contents.
| [in] | buf | The string buffer. |
| Eina_Rw_Slice eina_ustrbuf_rw_slice_get | ( | const Eina_UStrbuf * | buf | ) |
Gets a read-write slice of the buffer contents.
| [in] | buf | The string buffer. |
buf is changed, such as through calls like eina_ustrbuf_append() or eina_ustrbuf_remove().| Eina_Unicode* eina_ustrbuf_release | ( | Eina_UStrbuf * | buf | ) |
Frees the buffer, returning its old contents.
| [in,out] | buf | The string buffer. |