/** * inf_text_buffer_insert_text: * @buffer: A #InfTextBuffer. * @pos: A character offset into @buffer. * @text (type=guint8*) (array length=bytes) (transfer none): A pointer to * the text to insert. * @len: The length (in characters) of @text. * @bytes: The length (in bytes) of @text. * @user: (allow-none): A #InfUser that has inserted the new text, or %NULL. * * Inserts @text into @buffer as written by @author. @text must be encoded in * the character encoding of the buffer, see inf_text_buffer_get_encoding(). **/ void inf_text_buffer_insert_text(InfTextBuffer* buffer, guint pos, gconstpointer text, gsize bytes, guint len, InfUser* user) { InfTextBufferInterface* iface; InfTextChunk* chunk; g_return_if_fail(INF_TEXT_IS_BUFFER(buffer)); g_return_if_fail(text != NULL); g_return_if_fail(user == NULL || INF_IS_USER(user)); iface = INF_TEXT_BUFFER_GET_IFACE(buffer); g_return_if_fail(iface->insert_text != NULL); chunk = inf_text_chunk_new(inf_text_buffer_get_encoding(buffer)); inf_text_chunk_insert_text( chunk, 0, text, bytes, len, user == NULL ? 0 : inf_user_get_id(user) ); iface->insert_text(buffer, pos, chunk, user); inf_text_chunk_free(chunk); }
int main() { InfTextChunk* chunk; InfTextChunk* chunk2; chunk2 = inf_text_chunk_new("UTF-8"); inf_text_chunk_insert_text(chunk2, 0, "a", 1, 1, 500); inf_text_chunk_insert_text(chunk2, 0, "b", 1, 1, 501); inf_text_chunk_insert_text(chunk2, 0, "c", 1, 1, 502); inf_text_chunk_insert_text(chunk2, 3, "ü", 2, 1, 503); chunk = inf_text_chunk_substring(chunk2, 0, 3); inf_text_chunk_free(chunk); inf_text_chunk_free(chunk2); return 0; }