static void conditionally_insert_canonical_decomposition (GucharmapCharmap *charmap, GtkTextBuffer *buffer, GtkTextIter *iter, gunichar uc) { gunichar *decomposition; gsize result_len; guint i; decomposition = g_unicode_canonical_decomposition (uc, &result_len); if (result_len == 1) { g_free (decomposition); return; } gtk_text_buffer_insert (buffer, iter, _("Canonical decomposition:"), -1); gtk_text_buffer_insert (buffer, iter, " ", -1); insert_codepoint (charmap, buffer, iter, decomposition[0]); for (i = 1; i < result_len; i++) { gtk_text_buffer_insert (buffer, iter, " + ", -1); insert_codepoint (charmap, buffer, iter, decomposition[i]); } gtk_text_buffer_insert (buffer, iter, "\n", -1); g_free (decomposition); }
static void insert_string_link_codepoints (GucharmapCharmap *charmap, GtkTextBuffer *buffer, GtkTextIter *iter, const gchar *str) { const gchar *p1, *p2; p1 = str; for (;;) { p2 = find_codepoint (p1); if (p2 != NULL) { gunichar uc; gtk_text_buffer_insert (buffer, iter, p1, p2 - p1); uc = strtoul (p2, (gchar **) &p1, 16); insert_codepoint (charmap, buffer, iter, uc); } else { gtk_text_buffer_insert (buffer, iter, p1, -1); break; } } }
bool insert_newline(event * _msg) { // FIXME: CR LF ? // input_event * msg = (input_event *)_msg; // msg->ev->start_value = '\r'; // insert_codepoint(_msg); input_event * msg = (input_event *)_msg; msg->ev->start_value = '\n'; return insert_codepoint(_msg); }
static void insert_chocolate_detail_codepoints (GucharmapCharmap *charmap, GtkTextBuffer *buffer, GtkTextIter *iter, const gchar *name, const gunichar *ucs) { gint i; gtk_text_buffer_insert (buffer, iter, name, -1); gtk_text_buffer_insert (buffer, iter, "\n", -1); for (i = 0; ucs[i] != (gunichar)(-1); i++) { gtk_text_buffer_insert (buffer, iter, " • ", -1); insert_codepoint (charmap, buffer, iter, ucs[i]); gtk_text_buffer_insert (buffer, iter, "\n", -1); } gtk_text_buffer_insert (buffer, iter, "\n", -1); }