К сожалению, нет соответствующей функции gtk_text_buffer_get_byte_count()
или gtk_text_iter_get_index()
. Если вам нужна абсолютная верхняя граница количества байтов, необходимого для хранения текста буфера, вы можете взять значение из gtk_text_buffer_get_char_count()
и умножить его на 4, максимальное количество байтов, необходимое для кодирования одного символа UTF-8. Если он выделяет и освобождает строку, содержащую полный текст буфера, который вас беспокоит, вы можете сделать следующее:
glong bytecount = 0;
GtkTextIter iter;
for(gtk_text_buffer_get_start_iter(buf, &iter); gtk_text_iter_forward_line(&iter); )
bytecount += gtk_text_iter_get_bytes_in_line(&iter);
Я не утверждаю, что это не уродливо.