-static void
-text_buffer_insert_text (GtkTextBuffer *buffer,
- GtkTextIter *iter,
- gchar *new_text,
- gint new_text_length,
- ModestMsgEditWindow *window)
-{
- GString *result = g_string_new ("");
- gchar *current;
- gint result_len = 0;
- gboolean changed = FALSE;
-
- for (current = new_text; current != NULL && *current != '\0'; current = g_utf8_next_char (current)) {
- gunichar c = g_utf8_get_char_validated (current, 8);
- /* Invalid unichar, stop */
- if (c == -1)
- break;
- /* a bullet */
- switch (c) {
- case 0x2022:
- result = g_string_append_c (result, ' ');
- changed = TRUE;
- break;
- default:
- result = g_string_append_unichar (result, c);
- }
- result_len++;
- }
-
- if (changed) {
- g_signal_stop_emission_by_name (G_OBJECT (buffer), "insert-text");
- g_signal_handlers_block_by_func(G_OBJECT(buffer), G_CALLBACK(text_buffer_insert_text), window);
- g_signal_emit_by_name (buffer, "insert-text",
- (gpointer) iter,
- (gpointer) result->str, (gpointer) result->len,
- (gpointer) window);
- g_signal_handlers_unblock_by_func(G_OBJECT(buffer), G_CALLBACK(text_buffer_insert_text), window);
- }
-
- g_string_free (result, TRUE);
-}
-