if (!is_valid_insert (text, len)) {
gchar *new_text = create_valid_text (text, len);
g_signal_stop_emission_by_name (G_OBJECT (buffer), "insert-text");
gtk_text_buffer_insert (buffer, location, new_text, -1);
g_free (new_text);
if (!is_valid_insert (text, len)) {
gchar *new_text = create_valid_text (text, len);
g_signal_stop_emission_by_name (G_OBJECT (buffer), "insert-text");
gtk_text_buffer_insert (buffer, location, new_text, -1);
g_free (new_text);