Gtk+ десериализация строки для установки TextBuffer из Gtk::TextView
Я мог бы получить сериализованное содержимое Gtk::TextBuffer, чтобы сохранить его в файле или базе данных с помощью mime-type: "application / x-gtk-text-buffer-rich-text".
GTKTEXTBUFFERCONTENTS-0001\u0006;
<text_view_markup>
<tags>
<tag name="b" priority="0">
<attr name="weight" type="gint" value="700"/>
</tag>
<tag name="c" priority="3">
<attr name="justification" type="GtkJustification" value="GTK_JUSTIFY_CENTER"/>
</tag>
</tags>
<text>
<apply_tag name="c">
center text
<apply_tag name="b">
center bold text
</apply_tag>
</apply_tag>
</text>
</text_view_markup>
но когда я выполню десериализацию, чтобы установить Gtk::TextBuffer с сохраненным содержимым, я не понимаю или не знаю, что поставить при вызове:
GdkAtom atom = gtk_text_buffer_register_deserialize_tagset(buffer->gobj(), /*HERE*/);
gboolean deserialized = gtk_text_buffer_deserialize(buffer->gobj(), buffer->gobj(), atom, end.gobj(), data, length, pError);
я получил
Gtk-CRITICAL **: gtk_text_buffer_register_deserialize_tagset: утверждение 'tagset_name == NULL || *tagset_name!= '\0''не удалось
Поскольку существует утверждение gtktextbufferrichtext.C# L137, параметр является необязательным, но не может иметь значение NULL или Пусто.
Если я добавлю какое-либо значение ("NULL", "default", "UTF-8", "text", "text-plain"), я получу то же самое утверждение. Я поместил все эти значения, потому что * tagset_name является форматом gtktextbufferrichtext.C# L141