gtk+ r21339 - in trunk: . gtk
- From: simos svn gnome org
- To: svn-commits-list gnome org
- Subject: gtk+ r21339 - in trunk: . gtk
- Date: Wed, 10 Sep 2008 18:03:53 +0000 (UTC)
Author: simos
Date: Wed Sep 10 18:03:53 2008
New Revision: 21339
URL: http://svn.gnome.org/viewvc/gtk+?rev=21339&view=rev
Log:
Closed Bug 550676 â Memory leak, update keyboard layout data table
Modified:
trunk/ChangeLog
trunk/gtk/compose-parse.py
trunk/gtk/gtkimcontextsimple.c
trunk/gtk/gtkimcontextsimpleseqs.h
Modified: trunk/gtk/compose-parse.py
==============================================================================
--- trunk/gtk/compose-parse.py (original)
+++ trunk/gtk/compose-parse.py Wed Sep 10 18:03:53 2008
@@ -279,9 +279,17 @@
""" Patch up the keysymdb with some of our own stuff """
- """ This is for a missing keysym from the currently upstread file """
+ """ This is for a missing keysym from the currently upstream file """
keysymdb['dead_stroke'] = 0x338
+ """ This is for a missing keysym from the currently upstream file """
+ ###keysymdb['dead_belowring'] = 0x323
+ ###keysymdb['dead_belowmacron'] = 0x331
+ ###keysymdb['dead_belowcircumflex'] = 0x32d
+ ###keysymdb['dead_belowtilde'] = 0x330
+ ###keysymdb['dead_belowbreve'] = 0x32e
+ ###keysymdb['dead_belowdiaeresis'] = 0x324
+
""" This is^Wwas preferential treatment for Greek """
# keysymdb['dead_tilde'] = 0x342
""" This is^was preferential treatment for Greek """
@@ -327,6 +335,13 @@
keysymstxt.close()
""" Patch up the keysymdb with some of our own stuff """
+ """ This is for a missing keysym from the currently upstream file """
+ ###keysymdb['dead_belowring'] = 0x323
+ ###keysymdb['dead_belowmacron'] = 0x331
+ ###keysymdb['dead_belowcircumflex'] = 0x32d
+ ###keysymdb['dead_belowtilde'] = 0x330
+ ###keysymdb['dead_belowbreve'] = 0x32e
+ ###keysymdb['dead_belowdiaeresis'] = 0x324
""" This is preferential treatment for Greek """
""" => we get more savings if used for Greek """
@@ -337,7 +352,7 @@
""" This is for a missing keysym from Markus Kuhn's db """
keysymdb['dead_stroke'] = 0x338
""" This is for a missing keysym from Markus Kuhn's db """
- # keysymdb['Oslash'] = 0x0d8
+ keysymdb['Oslash'] = 0x0d8
""" This is for a missing (recently added) keysym """
keysymdb['dead_psili'] = 0x313
@@ -362,8 +377,9 @@
elif keysym[:2] == '0x' and match('[0-9a-fA-F]+$', keysym[2:]):
return atoi(keysym[2:], 16)
else:
- print 'UNKNOWN{%(keysym)s}' % { "keysym": keysym }
- sys.exit(-1)
+ #print 'UNKNOWN{%(keysym)s}' % { "keysym": keysym }
+ return -1
+ #sys.exit(-1)
def keysymunicodevalue(keysym, file = "n/a", linenum = 0):
""" Extracts a value from the keysym """
@@ -428,13 +444,21 @@
values = split('\s+', val)
unichar_temp = split('"', values[0])
unichar = unichar_temp[1]
+ if len(values) == 1:
+ continue
codepointstr = values[1]
+ if values[1] == '#':
+ # No codepoints that are >1 characters yet.
+ continue
if raw_sequence[0][0] == 'U' and match('[0-9a-fA-F]+$', raw_sequence[0][1:]):
raw_sequence[0] = '0x' + raw_sequence[0][1:]
if codepointstr[0] == 'U' and match('[0-9a-fA-F]+$', codepointstr[1:]):
codepoint = atoi(codepointstr[1:], 16)
- elif keysymdatabase.has_key(codepointstr):
- codepoint = keysymdatabase[codepointstr]
+ elif keysymunicodedatabase.has_key(codepointstr):
+ if keysymdatabase[codepointstr] != keysymunicodedatabase[codepointstr]:
+ print "DIFFERENCE: 0x%(a)X 0x%(b)X" % { "a": keysymdatabase[codepointstr], "b": keysymunicodedatabase[codepointstr]},
+ print raw_sequence, codepointstr
+ codepoint = keysymunicodedatabase[codepointstr]
else:
print
print "Invalid codepoint at line %(linenum_compose)d in %(filename)s:\
@@ -448,13 +472,21 @@
if opt_plane1:
print sequence
break
+ if keysymvalue(i) < 0:
+ reject_this = True
+ break
if reject_this:
continue
- if "U0313" in sequence or "U0314" in sequence or "0x0313" in sequence or "0x0314" in sequence:
+ if "U0342" in sequence or \
+ "U0313" in sequence or \
+ "U0314" in sequence or \
+ "0x0313" in sequence or \
+ "0x0342" in sequence or \
+ "0x0314" in sequence:
continue
- for i in range(len(sequence)):
- if sequence[i] == "0x0342":
- sequence[i] = "dead_tilde"
+ #for i in range(len(sequence)):
+ # if sequence[i] == "0x0342":
+ # sequence[i] = "dead_tilde"
if "Multi_key" not in sequence:
""" Ignore for now >0xFFFF keysyms """
if codepoint < 0xFFFF:
@@ -473,7 +505,7 @@
because of lack of dead_perispomeni (i.e. conflict)
"""
bc = basechar
- if sequence[-1] == "dead_tilde" and (bc >= 0x370 and bc <= 0x3ff) or (bc >= 0x1f00 and bc <= 0x1fff):
+ """if sequence[-1] == "dead_tilde" and (bc >= 0x370 and bc <= 0x3ff) or (bc >= 0x1f00 and bc <= 0x1fff):
skipping_this = True
break
if sequence[-1] == "dead_horn" and (bc >= 0x370 and bc <= 0x3ff) or (bc >= 0x1f00 and bc <= 0x1fff):
@@ -486,6 +518,7 @@
sequence[i] = "dead_horn"
if sequence[-1] == "dead_dasia":
sequence[-1] = "dead_ogonek"
+ """
unisequence.append(unichr(keysymunicodevalue(sequence.pop(), filename_compose, linenum_compose)))
if skipping_this:
Modified: trunk/gtk/gtkimcontextsimple.c
==============================================================================
--- trunk/gtk/gtkimcontextsimple.c (original)
+++ trunk/gtk/gtkimcontextsimple.c Wed Sep 10 18:03:53 2008
@@ -61,7 +61,7 @@
static const GtkComposeTableCompact gtk_compose_table_compact = {
gtk_compose_seqs_compact,
5,
- 21,
+ 22,
6
};
@@ -340,10 +340,77 @@
return FALSE;
}
+/* This function receives a sequence of Unicode characters and tries to
+ * normalize it (NFC). We check for the case the the resulting string
+ * has length 1 (single character).
+ * NFC normalisation normally rearranges diacritic marks, unless these
+ * belong to the same Canonical Combining Class.
+ * If they belong to the same canonical combining class, we produce all
+ * permutations of the diacritic marks, then attempt to normalize.
+ */
+static gboolean
+check_normalize_nfc (gunichar* combination_buffer, gint n_compose)
+{
+ gunichar combination_buffer_temp[GTK_MAX_COMPOSE_LEN];
+ gchar *combination_utf8_temp = NULL;
+ gchar *nfc_temp = NULL;
+ gint n_combinations;
+ gunichar temp_swap;
+ gint i;
+
+ n_combinations = 1;
+
+ for (i = 1; i < n_compose; i++ )
+ n_combinations *= i;
+
+ /* Xorg reuses dead_tilde for the perispomeni diacritic mark.
+ * We check if base character belongs to Greek Unicode block,
+ * and if so, we replace tilde with perispomeni. */
+ if (combination_buffer[0] >= 0x390 && combination_buffer[0] <= 0x3FF)
+ {
+ for (i = 1; i < n_compose; i++ )
+ if (combination_buffer[i] == 0x303)
+ combination_buffer[i] = 0x342;
+ }
+
+ memcpy (combination_buffer_temp, combination_buffer, GTK_MAX_COMPOSE_LEN * sizeof (gunichar) );
+
+ for (i = 0; i < n_combinations; i++ )
+ {
+ g_unicode_canonical_ordering (combination_buffer_temp, n_compose);
+ combination_utf8_temp = g_ucs4_to_utf8 (combination_buffer_temp, -1, NULL, NULL, NULL);
+ nfc_temp = g_utf8_normalize (combination_utf8_temp, -1, G_NORMALIZE_NFC);
+
+ if (g_utf8_strlen (nfc_temp, -1) == 1)
+ {
+ memcpy (combination_buffer, combination_buffer_temp, GTK_MAX_COMPOSE_LEN * sizeof (gunichar) );
+
+ g_free (combination_utf8_temp);
+ g_free (nfc_temp);
+
+ return TRUE;
+ }
+
+ g_free (combination_utf8_temp);
+ g_free (nfc_temp);
+
+ if (n_compose > 2)
+ {
+ temp_swap = combination_buffer_temp[i % (n_compose - 1) + 1];
+ combination_buffer_temp[i % (n_compose - 1) + 1] = combination_buffer_temp[(i+1) % (n_compose - 1) + 1];
+ combination_buffer_temp[(i+1) % (n_compose - 1) + 1] = temp_swap;
+ }
+ else
+ break;
+ }
+
+ return FALSE;
+}
+
/* When updating the table of the compose sequences, also update here.
*/
#define IS_DEAD_KEY(k) \
- (((k) >= GDK_dead_grave && (k) <= GDK_dead_stroke) || \
+ (((k) >= GDK_dead_grave && (k) <= (GDK_dead_dasia+1)) || \
g_unichar_type (gdk_keyval_to_unicode (k)) == G_UNICODE_NON_SPACING_MARK)
static gboolean
@@ -351,12 +418,9 @@
gint n_compose)
{
- int i;
- int k;
+ gint i;
gunichar combination_buffer[GTK_MAX_COMPOSE_LEN];
- gunichar combination_buffer_temp[GTK_MAX_COMPOSE_LEN];
gchar *combination_utf8, *nfc;
- gchar *combination_utf8_temp = NULL, *nfc_temp = NULL;
if (n_compose >= GTK_MAX_COMPOSE_LEN)
return FALSE;
@@ -381,39 +445,33 @@
CASE (grave, 0x0300);
CASE (acute, 0x0301);
CASE (circumflex, 0x0302);
- CASE (tilde, 0x0303); /* Normally is 0x303; Greek Polytonic needs 0x342.
- * We modified the compose sequences for now
- * so that for Greek we don't apply algorithmic
- * when perispomeni (0x342) is required
- * Filed report; pending, bug 14013 (Freedesktop).
- */
+ CASE (tilde, 0x0303); /* Also used with perispomeni, 0x342. */
CASE (macron, 0x0304);
CASE (breve, 0x0306);
CASE (abovedot, 0x0307);
CASE (diaeresis, 0x0308);
+ CASE (hook, 0x0309);
CASE (abovering, 0x030A);
CASE (doubleacute, 0x030B);
CASE (caron, 0x030C);
+ CASE (abovecomma, 0x0313); /* Equivalent to psili */
+ CASE (abovereversedcomma, 0x0314); /* Equivalent to dasia */
+ CASE (horn, 0x031B); /* Legacy use for psili, 0x313 (or 0x343). */
+ CASE (belowdot, 0x0323);
CASE (cedilla, 0x0327);
- CASE (ogonek, 0x0328); /* Normally is 0x328; Greek Polytonic needs 0x314.
- * We modified the compose sequences for now to
- * so that for Greek we don't apply algorithmic
- * when dasia (0x314) is required
- * Patch accepted in Xorg/GIT, may take a bit to propagate.
- */
- CASE (dasia, 0x314);
- CASE (iota, 0x0345); /* Used by Greek Polytonic layout only; "ypogegrammeni" */
+ CASE (ogonek, 0x0328); /* Legacy use for dasia, 0x314.*/
+ CASE (iota, 0x0345);
CASE (voiced_sound, 0x3099); /* Per Markus Kuhn keysyms.txt file. */
- CASE (semivoiced_sound, 0x309a); /* Per Markus Kuhn keysyms.txt file. */
- CASE (belowdot, 0x0323);
- CASE (hook, 0x0309);
- CASE (horn, 0x031b); /* Normally is 0x31b; Greek Polytonic needs 0x313 (or 0x343).
- * We modified the compose sequences for now to
- * so that for Greek we don't apply algorithmic
- * when psili (0x343) is required
- * Patch accepted in Xorg/GIT, may take a bit to propagate.
- */
- CASE (psili, 0x343);
+ CASE (semivoiced_sound, 0x309A); /* Per Markus Kuhn keysyms.txt file. */
+
+ /* The following cases are to be removed once xkeyboard-config,
+ * xorg are fully updated.
+ */
+ /* Workaround for typo in 1.4.x xserver-xorg */
+ case 0xfe66: combination_buffer[i+1] = 0x314; break;
+ /* CASE (dasia, 0x314); */
+ /* CASE (perispomeni, 0x342); */
+ /* CASE (psili, 0x343); */
#undef CASE
default:
combination_buffer[i+1] = gdk_keyval_to_unicode (context_simple->compose_buffer[i]);
@@ -421,56 +479,24 @@
i--;
}
- if (n_compose > 2)
- {
- gint n_combinations;
- gunichar temp_swap;
+ /* If the buffer normalizes to a single character,
+ * then modify the order of combination_buffer accordingly, if necessary,
+ * and return TRUE.
+ */
+ if (check_normalize_nfc (combination_buffer, n_compose))
+ {
+ combination_utf8 = g_ucs4_to_utf8 (combination_buffer, -1, NULL, NULL, NULL);
+ nfc = g_utf8_normalize (combination_utf8, -1, G_NORMALIZE_NFC);
- /* We calculate the number of permutations of the diacritic marks, factorial(n_compose-1).
- * When diacritic marks belong to the same Canonical Combining Class,
- * a normalisation does not attempt reorder them, thus we do this ourselves.
- */
- n_combinations = 1;
- for (k = 1; k < n_compose; k++ )
- n_combinations *= k;
-
- memcpy (combination_buffer_temp, combination_buffer, GTK_MAX_COMPOSE_LEN * sizeof (gunichar) );
-
- for (k = 0; k < n_combinations; k++ )
- {
- g_unicode_canonical_ordering (combination_buffer_temp, n_compose);
- combination_utf8_temp = g_ucs4_to_utf8 (combination_buffer_temp, -1, NULL, NULL, NULL);
- nfc_temp = g_utf8_normalize (combination_utf8_temp, -1, G_NORMALIZE_NFC);
-
- if (g_utf8_strlen (nfc_temp, -1) == 1)
- {
- memcpy (combination_buffer, combination_buffer_temp, GTK_MAX_COMPOSE_LEN * sizeof (gunichar) );
- break;
- }
-
- temp_swap = combination_buffer_temp[k % (n_compose - 1) + 1];
- combination_buffer_temp[k % (n_compose - 1) + 1] = combination_buffer_temp[(k+1) % (n_compose - 1) + 1];
- combination_buffer_temp[(k+1) % (n_compose - 1) + 1] = temp_swap;
- }
-
- g_free (combination_utf8_temp);
- g_free (nfc_temp);
- }
-
- combination_utf8 = g_ucs4_to_utf8 (combination_buffer, -1, NULL, NULL, NULL);
- nfc = g_utf8_normalize (combination_utf8, -1, G_NORMALIZE_NFC);
- if (g_utf8_strlen (nfc, -1) == 1)
- {
- gunichar value = g_utf8_get_char (nfc);
- gtk_im_context_simple_commit_char (GTK_IM_CONTEXT (context_simple), value);
- context_simple->compose_buffer[0] = 0;
+ gunichar value = g_utf8_get_char (nfc);
+ gtk_im_context_simple_commit_char (GTK_IM_CONTEXT (context_simple), value);
+ context_simple->compose_buffer[0] = 0;
- g_free (combination_utf8);
- g_free (nfc);
- return TRUE;
- }
- g_free (combination_utf8);
- g_free (nfc);
+ g_free (combination_utf8);
+ g_free (nfc);
+
+ return TRUE;
+ }
}
return FALSE;
@@ -899,11 +925,11 @@
tmp_list = tmp_list->next;
}
- if (check_compact_table (context_simple, >k_compose_table_compact, n_compose))
- return TRUE;
-
if (check_algorithmically (context_simple, n_compose))
return TRUE;
+
+ if (check_compact_table (context_simple, >k_compose_table_compact, n_compose))
+ return TRUE;
}
/* The current compose_buffer doesn't match anything */
Modified: trunk/gtk/gtkimcontextsimpleseqs.h
==============================================================================
--- trunk/gtk/gtkimcontextsimpleseqs.h (original)
+++ trunk/gtk/gtkimcontextsimpleseqs.h Wed Sep 10 18:03:53 2008
@@ -67,27 +67,47 @@
*/
static const guint16 gtk_compose_seqs_compact[] = {
-GDK_dead_grave, 126, 182, 269, 481, 481,
-GDK_dead_acute, 481, 539, 632, 900, 900,
-GDK_dead_circumflex, 900, 988, 988, 1188, 1188,
-GDK_dead_tilde, 1188, 1248, 1311, 1451, 1451,
-GDK_dead_macron, 1451, 1475, 1475, 1547, 1547,
-GDK_dead_breve, 1547, 1583, 1583, 1599, 1599,
-GDK_dead_abovedot, 1599, 1613, 1613, 1645, 1645,
-GDK_dead_diaeresis, 1645, 1709, 1709, 1733, 1733,
-GDK_dead_abovering, 1733, 1737, 1737, 1737, 1737,
-GDK_dead_doubleacute, 1737, 1745, 1745, 1745, 1745,
-GDK_dead_caron, 1745, 1749, 1749, 1757, 1757,
-GDK_dead_cedilla, 1757, 1761, 1761, 1761, 1761,
-GDK_dead_ogonek, 1761, 1797, 1797, 1797, 1797,
-GDK_dead_iota, 1797, 1819, 1927, 2407, 3127,
-GDK_dead_voiced_sound, 3127, 3173, 3173, 3173, 3173,
-GDK_dead_semivoiced_sound, 3173, 3183, 3183, 3183, 3183,
-GDK_dead_belowdot, 3183, 3187, 3187, 3203, 3203,
-GDK_dead_hook, 3203, 3207, 3207, 3263, 3263,
-GDK_dead_horn, 3263, 3291, 3291, 3291, 3291,
-GDK_dead_stroke, 3291, 3325, 3331, 3331, 3331,
-GDK_Multi_key, 3331, 3331, 7996, 11712, 13692,
+GDK_dead_stroke, 132, 166, 172, 172, 172,
+GDK_dead_grave, 172, 228, 315, 527, 527,
+GDK_dead_acute, 527, 585, 678, 954, 954,
+GDK_dead_circumflex, 954, 1042, 1042, 1242, 1242,
+GDK_dead_tilde, 1242, 1302, 1365, 1505, 1505,
+GDK_dead_macron, 1505, 1529, 1529, 1601, 1601,
+GDK_dead_breve, 1601, 1637, 1637, 1661, 1661,
+GDK_dead_abovedot, 1661, 1675, 1675, 1707, 1707,
+GDK_dead_diaeresis, 1707, 1771, 1771, 1795, 1795,
+GDK_dead_abovering, 1795, 1799, 1799, 1799, 1799,
+GDK_dead_doubleacute, 1799, 1807, 1807, 1807, 1807,
+GDK_dead_caron, 1807, 1811, 1811, 1819, 1819,
+GDK_dead_cedilla, 1819, 1823, 1823, 1823, 1823,
+GDK_dead_ogonek, 1823, 1827, 1827, 1827, 1827,
+GDK_dead_iota, 1827, 1849, 1948, 2380, 3040,
+GDK_dead_voiced_sound, 3040, 3086, 3086, 3086, 3086,
+GDK_dead_semivoiced_sound, 3086, 3096, 3096, 3096, 3096,
+GDK_dead_belowdot, 3096, 3106, 3106, 3122, 3122,
+GDK_dead_hook, 3122, 3126, 3126, 3182, 3182,
+GDK_dead_psili, 3182, 3210, 3210, 3210, 3210,
+GDK_dead_dasia, 3210, 3242, 3242, 3242, 3242,
+GDK_Multi_key, 3242, 3242, 8078, 11766, 13626,
+GDK_D, 0x0110,
+GDK_G, 0x01E4,
+GDK_H, 0x0126,
+GDK_I, 0x0197,
+GDK_L, 0x0141,
+GDK_O, 0x00D8,
+GDK_T, 0x0166,
+GDK_Z, 0x01B5,
+GDK_b, 0x0180,
+GDK_d, 0x0111,
+GDK_g, 0x01E5,
+GDK_h, 0x0127,
+GDK_i, 0x0268,
+GDK_l, 0x0142,
+GDK_o, 0x00F8,
+GDK_t, 0x0167,
+GDK_z, 0x01B6,
+GDK_dead_acute, GDK_O, 0x01FE,
+GDK_dead_acute, GDK_o, 0x01FF,
GDK_space, 0x0060,
GDK_Abreve, 0x1EB0,
GDK_abreve, 0x1EB1,
@@ -118,33 +138,33 @@
GDK_dead_grave, 0x0060,
GDK_dead_diaeresis, GDK_Greek_iota, 0x1FD2,
GDK_dead_diaeresis, GDK_Greek_upsilon, 0x1FE2,
-GDK_dead_ogonek, GDK_Greek_ALPHA, 0x1F0B,
-GDK_dead_ogonek, GDK_Greek_EPSILON, 0x1F1B,
-GDK_dead_ogonek, GDK_Greek_ETA, 0x1F2B,
-GDK_dead_ogonek, GDK_Greek_IOTA, 0x1F3B,
-GDK_dead_ogonek, GDK_Greek_OMICRON, 0x1F4B,
-GDK_dead_ogonek, GDK_Greek_UPSILON, 0x1F5B,
-GDK_dead_ogonek, GDK_Greek_OMEGA, 0x1F6B,
-GDK_dead_ogonek, GDK_Greek_alpha, 0x1F03,
-GDK_dead_ogonek, GDK_Greek_epsilon, 0x1F13,
-GDK_dead_ogonek, GDK_Greek_eta, 0x1F23,
-GDK_dead_ogonek, GDK_Greek_iota, 0x1F33,
-GDK_dead_ogonek, GDK_Greek_omicron, 0x1F43,
-GDK_dead_ogonek, GDK_Greek_upsilon, 0x1F53,
-GDK_dead_ogonek, GDK_Greek_omega, 0x1F63,
-GDK_dead_horn, GDK_Greek_ALPHA, 0x1F0A,
-GDK_dead_horn, GDK_Greek_EPSILON, 0x1F1A,
-GDK_dead_horn, GDK_Greek_ETA, 0x1F2A,
-GDK_dead_horn, GDK_Greek_IOTA, 0x1F3A,
-GDK_dead_horn, GDK_Greek_OMICRON, 0x1F4A,
-GDK_dead_horn, GDK_Greek_OMEGA, 0x1F6A,
-GDK_dead_horn, GDK_Greek_alpha, 0x1F02,
-GDK_dead_horn, GDK_Greek_epsilon, 0x1F12,
-GDK_dead_horn, GDK_Greek_eta, 0x1F22,
-GDK_dead_horn, GDK_Greek_iota, 0x1F32,
-GDK_dead_horn, GDK_Greek_omicron, 0x1F42,
-GDK_dead_horn, GDK_Greek_upsilon, 0x1F52,
-GDK_dead_horn, GDK_Greek_omega, 0x1F62,
+GDK_dead_psili, GDK_Greek_ALPHA, 0x1F0A,
+GDK_dead_psili, GDK_Greek_EPSILON, 0x1F1A,
+GDK_dead_psili, GDK_Greek_ETA, 0x1F2A,
+GDK_dead_psili, GDK_Greek_IOTA, 0x1F3A,
+GDK_dead_psili, GDK_Greek_OMICRON, 0x1F4A,
+GDK_dead_psili, GDK_Greek_OMEGA, 0x1F6A,
+GDK_dead_psili, GDK_Greek_alpha, 0x1F02,
+GDK_dead_psili, GDK_Greek_epsilon, 0x1F12,
+GDK_dead_psili, GDK_Greek_eta, 0x1F22,
+GDK_dead_psili, GDK_Greek_iota, 0x1F32,
+GDK_dead_psili, GDK_Greek_omicron, 0x1F42,
+GDK_dead_psili, GDK_Greek_upsilon, 0x1F52,
+GDK_dead_psili, GDK_Greek_omega, 0x1F62,
+GDK_dead_dasia, GDK_Greek_ALPHA, 0x1F0B,
+GDK_dead_dasia, GDK_Greek_EPSILON, 0x1F1B,
+GDK_dead_dasia, GDK_Greek_ETA, 0x1F2B,
+GDK_dead_dasia, GDK_Greek_IOTA, 0x1F3B,
+GDK_dead_dasia, GDK_Greek_OMICRON, 0x1F4B,
+GDK_dead_dasia, GDK_Greek_UPSILON, 0x1F5B,
+GDK_dead_dasia, GDK_Greek_OMEGA, 0x1F6B,
+GDK_dead_dasia, GDK_Greek_alpha, 0x1F03,
+GDK_dead_dasia, GDK_Greek_epsilon, 0x1F13,
+GDK_dead_dasia, GDK_Greek_eta, 0x1F23,
+GDK_dead_dasia, GDK_Greek_iota, 0x1F33,
+GDK_dead_dasia, GDK_Greek_omicron, 0x1F43,
+GDK_dead_dasia, GDK_Greek_upsilon, 0x1F53,
+GDK_dead_dasia, GDK_Greek_omega, 0x1F63,
GDK_Multi_key, GDK_quotedbl, GDK_U, 0x01DB,
GDK_Multi_key, GDK_quotedbl, GDK_u, 0x01DC,
GDK_Multi_key, GDK_quotedbl, GDK_Greek_iota, 0x1FD2,
@@ -227,37 +247,37 @@
GDK_Greek_upsilon, 0x03CD,
GDK_Greek_omega, 0x03CE,
GDK_dead_acute, 0x00B4,
-GDK_dead_diaeresis, GDK_Greek_iota, 0x0390,
-GDK_dead_diaeresis, GDK_Greek_upsilon, 0x03B0,
-GDK_dead_ogonek, GDK_Greek_ALPHA, 0x1F0D,
-GDK_dead_ogonek, GDK_Greek_EPSILON, 0x1F1D,
-GDK_dead_ogonek, GDK_Greek_ETA, 0x1F2D,
-GDK_dead_ogonek, GDK_Greek_IOTA, 0x1F3D,
-GDK_dead_ogonek, GDK_Greek_OMICRON, 0x1F4D,
-GDK_dead_ogonek, GDK_Greek_UPSILON, 0x1F5D,
-GDK_dead_ogonek, GDK_Greek_OMEGA, 0x1F6D,
-GDK_dead_ogonek, GDK_Greek_alpha, 0x1F05,
-GDK_dead_ogonek, GDK_Greek_epsilon, 0x1F15,
-GDK_dead_ogonek, GDK_Greek_eta, 0x1F25,
-GDK_dead_ogonek, GDK_Greek_iota, 0x1F35,
-GDK_dead_ogonek, GDK_Greek_omicron, 0x1F45,
-GDK_dead_ogonek, GDK_Greek_upsilon, 0x1F55,
-GDK_dead_ogonek, GDK_Greek_omega, 0x1F65,
-GDK_dead_horn, GDK_Greek_ALPHA, 0x1F0C,
-GDK_dead_horn, GDK_Greek_EPSILON, 0x1F1C,
-GDK_dead_horn, GDK_Greek_ETA, 0x1F2C,
-GDK_dead_horn, GDK_Greek_IOTA, 0x1F3C,
-GDK_dead_horn, GDK_Greek_OMICRON, 0x1F4C,
-GDK_dead_horn, GDK_Greek_OMEGA, 0x1F6C,
-GDK_dead_horn, GDK_Greek_alpha, 0x1F04,
-GDK_dead_horn, GDK_Greek_epsilon, 0x1F14,
-GDK_dead_horn, GDK_Greek_eta, 0x1F24,
-GDK_dead_horn, GDK_Greek_iota, 0x1F34,
-GDK_dead_horn, GDK_Greek_omicron, 0x1F44,
-GDK_dead_horn, GDK_Greek_upsilon, 0x1F54,
-GDK_dead_horn, GDK_Greek_omega, 0x1F64,
GDK_dead_stroke, GDK_O, 0x01FE,
GDK_dead_stroke, GDK_o, 0x01FF,
+GDK_dead_diaeresis, GDK_Greek_iota, 0x0390,
+GDK_dead_diaeresis, GDK_Greek_upsilon, 0x03B0,
+GDK_dead_psili, GDK_Greek_ALPHA, 0x1F0C,
+GDK_dead_psili, GDK_Greek_EPSILON, 0x1F1C,
+GDK_dead_psili, GDK_Greek_ETA, 0x1F2C,
+GDK_dead_psili, GDK_Greek_IOTA, 0x1F3C,
+GDK_dead_psili, GDK_Greek_OMICRON, 0x1F4C,
+GDK_dead_psili, GDK_Greek_OMEGA, 0x1F6C,
+GDK_dead_psili, GDK_Greek_alpha, 0x1F04,
+GDK_dead_psili, GDK_Greek_epsilon, 0x1F14,
+GDK_dead_psili, GDK_Greek_eta, 0x1F24,
+GDK_dead_psili, GDK_Greek_iota, 0x1F34,
+GDK_dead_psili, GDK_Greek_omicron, 0x1F44,
+GDK_dead_psili, GDK_Greek_upsilon, 0x1F54,
+GDK_dead_psili, GDK_Greek_omega, 0x1F64,
+GDK_dead_dasia, GDK_Greek_ALPHA, 0x1F0D,
+GDK_dead_dasia, GDK_Greek_EPSILON, 0x1F1D,
+GDK_dead_dasia, GDK_Greek_ETA, 0x1F2D,
+GDK_dead_dasia, GDK_Greek_IOTA, 0x1F3D,
+GDK_dead_dasia, GDK_Greek_OMICRON, 0x1F4D,
+GDK_dead_dasia, GDK_Greek_UPSILON, 0x1F5D,
+GDK_dead_dasia, GDK_Greek_OMEGA, 0x1F6D,
+GDK_dead_dasia, GDK_Greek_alpha, 0x1F05,
+GDK_dead_dasia, GDK_Greek_epsilon, 0x1F15,
+GDK_dead_dasia, GDK_Greek_eta, 0x1F25,
+GDK_dead_dasia, GDK_Greek_iota, 0x1F35,
+GDK_dead_dasia, GDK_Greek_omicron, 0x1F45,
+GDK_dead_dasia, GDK_Greek_upsilon, 0x1F55,
+GDK_dead_dasia, GDK_Greek_omega, 0x1F65,
GDK_Multi_key, GDK_quotedbl, GDK_I, 0x1E2E,
GDK_Multi_key, GDK_quotedbl, GDK_U, 0x01D7,
GDK_Multi_key, GDK_quotedbl, GDK_i, 0x1E2F,
@@ -323,6 +343,8 @@
GDK_Multi_key, GDK_macron, GDK_O, 0x1E52,
GDK_Multi_key, GDK_macron, GDK_e, 0x1E17,
GDK_Multi_key, GDK_macron, GDK_o, 0x1E53,
+GDK_Multi_key, GDK_cedilla, GDK_C, 0x1E08,
+GDK_Multi_key, GDK_cedilla, GDK_c, 0x1E09,
GDK_Multi_key, GDK_KP_Divide, GDK_O, 0x01FE,
GDK_Multi_key, GDK_KP_Divide, GDK_o, 0x01FF,
GDK_space, 0x005E,
@@ -451,25 +473,25 @@
GDK_dead_tilde, 0x007E,
GDK_dead_diaeresis, GDK_Greek_iota, 0x1FD7,
GDK_dead_diaeresis, GDK_Greek_upsilon, 0x1FE7,
-GDK_dead_ogonek, GDK_Greek_ALPHA, 0x1F0F,
-GDK_dead_ogonek, GDK_Greek_ETA, 0x1F2F,
-GDK_dead_ogonek, GDK_Greek_IOTA, 0x1F3F,
-GDK_dead_ogonek, GDK_Greek_UPSILON, 0x1F5F,
-GDK_dead_ogonek, GDK_Greek_OMEGA, 0x1F6F,
-GDK_dead_ogonek, GDK_Greek_alpha, 0x1F07,
-GDK_dead_ogonek, GDK_Greek_eta, 0x1F27,
-GDK_dead_ogonek, GDK_Greek_iota, 0x1F37,
-GDK_dead_ogonek, GDK_Greek_upsilon, 0x1F57,
-GDK_dead_ogonek, GDK_Greek_omega, 0x1F67,
-GDK_dead_horn, GDK_Greek_ALPHA, 0x1F0E,
-GDK_dead_horn, GDK_Greek_ETA, 0x1F2E,
-GDK_dead_horn, GDK_Greek_IOTA, 0x1F3E,
-GDK_dead_horn, GDK_Greek_OMEGA, 0x1F6E,
-GDK_dead_horn, GDK_Greek_alpha, 0x1F06,
-GDK_dead_horn, GDK_Greek_eta, 0x1F26,
-GDK_dead_horn, GDK_Greek_iota, 0x1F36,
-GDK_dead_horn, GDK_Greek_upsilon, 0x1F56,
-GDK_dead_horn, GDK_Greek_omega, 0x1F66,
+GDK_dead_psili, GDK_Greek_ALPHA, 0x1F0E,
+GDK_dead_psili, GDK_Greek_ETA, 0x1F2E,
+GDK_dead_psili, GDK_Greek_IOTA, 0x1F3E,
+GDK_dead_psili, GDK_Greek_OMEGA, 0x1F6E,
+GDK_dead_psili, GDK_Greek_alpha, 0x1F06,
+GDK_dead_psili, GDK_Greek_eta, 0x1F26,
+GDK_dead_psili, GDK_Greek_iota, 0x1F36,
+GDK_dead_psili, GDK_Greek_upsilon, 0x1F56,
+GDK_dead_psili, GDK_Greek_omega, 0x1F66,
+GDK_dead_dasia, GDK_Greek_ALPHA, 0x1F0F,
+GDK_dead_dasia, GDK_Greek_ETA, 0x1F2F,
+GDK_dead_dasia, GDK_Greek_IOTA, 0x1F3F,
+GDK_dead_dasia, GDK_Greek_UPSILON, 0x1F5F,
+GDK_dead_dasia, GDK_Greek_OMEGA, 0x1F6F,
+GDK_dead_dasia, GDK_Greek_alpha, 0x1F07,
+GDK_dead_dasia, GDK_Greek_eta, 0x1F27,
+GDK_dead_dasia, GDK_Greek_iota, 0x1F37,
+GDK_dead_dasia, GDK_Greek_upsilon, 0x1F57,
+GDK_dead_dasia, GDK_Greek_omega, 0x1F67,
GDK_Multi_key, GDK_quotedbl, GDK_Greek_iota, 0x1FD7,
GDK_Multi_key, GDK_quotedbl, GDK_Greek_upsilon, 0x1FE7,
GDK_Multi_key, GDK_parenleft, GDK_Greek_ALPHA, 0x1F0F,
@@ -557,6 +579,8 @@
GDK_Multi_key, GDK_exclam, GDK_a, 0x1EB7,
GDK_Multi_key, GDK_comma, GDK_E, 0x1E1C,
GDK_Multi_key, GDK_comma, GDK_e, 0x1E1D,
+GDK_Multi_key, GDK_cedilla, GDK_E, 0x1E1C,
+GDK_Multi_key, GDK_cedilla, GDK_e, 0x1E1D,
GDK_space, 0x02D9,
GDK_i, 0x0131,
GDK_Sacute, 0x1E64,
@@ -623,22 +647,6 @@
GDK_space, 0x00B8,
GDK_dead_cedilla, 0x00B8,
GDK_space, 0x02DB,
-GDK_Greek_ALPHA, 0x1F09,
-GDK_Greek_EPSILON, 0x1F19,
-GDK_Greek_ETA, 0x1F29,
-GDK_Greek_IOTA, 0x1F39,
-GDK_Greek_OMICRON, 0x1F49,
-GDK_Greek_RHO, 0x1FEC,
-GDK_Greek_UPSILON, 0x1F59,
-GDK_Greek_OMEGA, 0x1F69,
-GDK_Greek_alpha, 0x1F01,
-GDK_Greek_epsilon, 0x1F11,
-GDK_Greek_eta, 0x1F21,
-GDK_Greek_iota, 0x1F31,
-GDK_Greek_omicron, 0x1F41,
-GDK_Greek_rho, 0x1FE5,
-GDK_Greek_upsilon, 0x1F51,
-GDK_Greek_omega, 0x1F61,
GDK_dead_ogonek, 0x02DB,
GDK_space, 0x037A,
GDK_Greek_alphaaccent, 0x1FB4,
@@ -651,9 +659,6 @@
GDK_Greek_eta, 0x1FC3,
GDK_Greek_omega, 0x1FF3,
GDK_dead_iota, 0x037A,
-0x0342, GDK_Greek_alpha, 0x1FB7,
-0x0342, GDK_Greek_eta, 0x1FC7,
-0x0342, GDK_Greek_omega, 0x1FF7,
GDK_dead_grave, GDK_Greek_alpha, 0x1FB2,
GDK_dead_grave, GDK_Greek_eta, 0x1FC2,
GDK_dead_grave, GDK_Greek_omega, 0x1FF2,
@@ -675,66 +680,54 @@
GDK_dead_tilde, 0x1F61, 0x1FA7,
GDK_dead_tilde, 0x1F68, 0x1FAE,
GDK_dead_tilde, 0x1F69, 0x1FAF,
-GDK_dead_ogonek, GDK_Greek_ALPHA, 0x1F89,
-GDK_dead_ogonek, GDK_Greek_ETA, 0x1F99,
-GDK_dead_ogonek, GDK_Greek_OMEGA, 0x1FA9,
-GDK_dead_ogonek, GDK_Greek_alpha, 0x1F81,
-GDK_dead_ogonek, GDK_Greek_eta, 0x1F91,
-GDK_dead_ogonek, GDK_Greek_omega, 0x1FA1,
-GDK_dead_horn, GDK_Greek_ALPHA, 0x1F88,
-GDK_dead_horn, GDK_Greek_ETA, 0x1F98,
-GDK_dead_horn, GDK_Greek_OMEGA, 0x1FA8,
-GDK_dead_horn, GDK_Greek_alpha, 0x1F80,
-GDK_dead_horn, GDK_Greek_eta, 0x1F90,
-GDK_dead_horn, GDK_Greek_omega, 0x1FA0,
-0x0342, GDK_dead_ogonek, GDK_Greek_ALPHA, 0x1F8F,
-0x0342, GDK_dead_ogonek, GDK_Greek_ETA, 0x1F9F,
-0x0342, GDK_dead_ogonek, GDK_Greek_OMEGA, 0x1FAF,
-0x0342, GDK_dead_ogonek, GDK_Greek_alpha, 0x1F87,
-0x0342, GDK_dead_ogonek, GDK_Greek_eta, 0x1F97,
-0x0342, GDK_dead_ogonek, GDK_Greek_omega, 0x1FA7,
-0x0342, GDK_dead_horn, GDK_Greek_ALPHA, 0x1F8E,
-0x0342, GDK_dead_horn, GDK_Greek_ETA, 0x1F9E,
-0x0342, GDK_dead_horn, GDK_Greek_OMEGA, 0x1FAE,
-0x0342, GDK_dead_horn, GDK_Greek_alpha, 0x1F86,
-0x0342, GDK_dead_horn, GDK_Greek_eta, 0x1F96,
-0x0342, GDK_dead_horn, GDK_Greek_omega, 0x1FA6,
-GDK_dead_grave, GDK_dead_ogonek, GDK_Greek_ALPHA, 0x1F8B,
-GDK_dead_grave, GDK_dead_ogonek, GDK_Greek_ETA, 0x1F9B,
-GDK_dead_grave, GDK_dead_ogonek, GDK_Greek_OMEGA, 0x1FAB,
-GDK_dead_grave, GDK_dead_ogonek, GDK_Greek_alpha, 0x1F83,
-GDK_dead_grave, GDK_dead_ogonek, GDK_Greek_eta, 0x1F93,
-GDK_dead_grave, GDK_dead_ogonek, GDK_Greek_omega, 0x1FA3,
-GDK_dead_grave, GDK_dead_horn, GDK_Greek_ALPHA, 0x1F8A,
-GDK_dead_grave, GDK_dead_horn, GDK_Greek_ETA, 0x1F9A,
-GDK_dead_grave, GDK_dead_horn, GDK_Greek_OMEGA, 0x1FAA,
-GDK_dead_grave, GDK_dead_horn, GDK_Greek_alpha, 0x1F82,
-GDK_dead_grave, GDK_dead_horn, GDK_Greek_eta, 0x1F92,
-GDK_dead_grave, GDK_dead_horn, GDK_Greek_omega, 0x1FA2,
-GDK_dead_acute, GDK_dead_ogonek, GDK_Greek_ALPHA, 0x1F8D,
-GDK_dead_acute, GDK_dead_ogonek, GDK_Greek_ETA, 0x1F9D,
-GDK_dead_acute, GDK_dead_ogonek, GDK_Greek_OMEGA, 0x1FAD,
-GDK_dead_acute, GDK_dead_ogonek, GDK_Greek_alpha, 0x1F85,
-GDK_dead_acute, GDK_dead_ogonek, GDK_Greek_eta, 0x1F95,
-GDK_dead_acute, GDK_dead_ogonek, GDK_Greek_omega, 0x1FA5,
-GDK_dead_acute, GDK_dead_horn, GDK_Greek_ALPHA, 0x1F8C,
-GDK_dead_acute, GDK_dead_horn, GDK_Greek_ETA, 0x1F9C,
-GDK_dead_acute, GDK_dead_horn, GDK_Greek_OMEGA, 0x1FAC,
-GDK_dead_acute, GDK_dead_horn, GDK_Greek_alpha, 0x1F84,
-GDK_dead_acute, GDK_dead_horn, GDK_Greek_eta, 0x1F94,
-GDK_dead_acute, GDK_dead_horn, GDK_Greek_omega, 0x1FA4,
-GDK_dead_tilde, GDK_dead_ogonek, GDK_Greek_ALPHA, 0x1F8F,
-GDK_dead_tilde, GDK_dead_ogonek, GDK_Greek_ETA, 0x1F9F,
-GDK_dead_tilde, GDK_dead_ogonek, GDK_Greek_OMEGA, 0x1FAF,
-GDK_dead_tilde, GDK_dead_ogonek, GDK_Greek_alpha, 0x1F87,
-GDK_dead_tilde, GDK_dead_ogonek, GDK_Greek_eta, 0x1F97,
-GDK_dead_tilde, GDK_dead_ogonek, GDK_Greek_omega, 0x1FA7,
-GDK_dead_tilde, GDK_dead_horn, GDK_Greek_ALPHA, 0x1F8E,
-GDK_dead_tilde, GDK_dead_horn, GDK_Greek_ETA, 0x1F9E,
-GDK_dead_tilde, GDK_dead_horn, GDK_Greek_OMEGA, 0x1FAE,
-GDK_dead_tilde, GDK_dead_horn, GDK_Greek_alpha, 0x1F86,
-GDK_dead_tilde, GDK_dead_horn, GDK_Greek_eta, 0x1F96,
-GDK_dead_tilde, GDK_dead_horn, GDK_Greek_omega, 0x1FA6,
+GDK_dead_psili, GDK_Greek_ALPHA, 0x1F88,
+GDK_dead_psili, GDK_Greek_ETA, 0x1F98,
+GDK_dead_psili, GDK_Greek_OMEGA, 0x1FA8,
+GDK_dead_psili, GDK_Greek_alpha, 0x1F80,
+GDK_dead_psili, GDK_Greek_eta, 0x1F90,
+GDK_dead_psili, GDK_Greek_omega, 0x1FA0,
+GDK_dead_dasia, GDK_Greek_ALPHA, 0x1F89,
+GDK_dead_dasia, GDK_Greek_ETA, 0x1F99,
+GDK_dead_dasia, GDK_Greek_OMEGA, 0x1FA9,
+GDK_dead_dasia, GDK_Greek_alpha, 0x1F81,
+GDK_dead_dasia, GDK_Greek_eta, 0x1F91,
+GDK_dead_dasia, GDK_Greek_omega, 0x1FA1,
+GDK_dead_grave, GDK_dead_psili, GDK_Greek_ALPHA, 0x1F8A,
+GDK_dead_grave, GDK_dead_psili, GDK_Greek_ETA, 0x1F9A,
+GDK_dead_grave, GDK_dead_psili, GDK_Greek_OMEGA, 0x1FAA,
+GDK_dead_grave, GDK_dead_psili, GDK_Greek_alpha, 0x1F82,
+GDK_dead_grave, GDK_dead_psili, GDK_Greek_eta, 0x1F92,
+GDK_dead_grave, GDK_dead_psili, GDK_Greek_omega, 0x1FA2,
+GDK_dead_grave, GDK_dead_dasia, GDK_Greek_ALPHA, 0x1F8B,
+GDK_dead_grave, GDK_dead_dasia, GDK_Greek_ETA, 0x1F9B,
+GDK_dead_grave, GDK_dead_dasia, GDK_Greek_OMEGA, 0x1FAB,
+GDK_dead_grave, GDK_dead_dasia, GDK_Greek_alpha, 0x1F83,
+GDK_dead_grave, GDK_dead_dasia, GDK_Greek_eta, 0x1F93,
+GDK_dead_grave, GDK_dead_dasia, GDK_Greek_omega, 0x1FA3,
+GDK_dead_acute, GDK_dead_psili, GDK_Greek_ALPHA, 0x1F8C,
+GDK_dead_acute, GDK_dead_psili, GDK_Greek_ETA, 0x1F9C,
+GDK_dead_acute, GDK_dead_psili, GDK_Greek_OMEGA, 0x1FAC,
+GDK_dead_acute, GDK_dead_psili, GDK_Greek_alpha, 0x1F84,
+GDK_dead_acute, GDK_dead_psili, GDK_Greek_eta, 0x1F94,
+GDK_dead_acute, GDK_dead_psili, GDK_Greek_omega, 0x1FA4,
+GDK_dead_acute, GDK_dead_dasia, GDK_Greek_ALPHA, 0x1F8D,
+GDK_dead_acute, GDK_dead_dasia, GDK_Greek_ETA, 0x1F9D,
+GDK_dead_acute, GDK_dead_dasia, GDK_Greek_OMEGA, 0x1FAD,
+GDK_dead_acute, GDK_dead_dasia, GDK_Greek_alpha, 0x1F85,
+GDK_dead_acute, GDK_dead_dasia, GDK_Greek_eta, 0x1F95,
+GDK_dead_acute, GDK_dead_dasia, GDK_Greek_omega, 0x1FA5,
+GDK_dead_tilde, GDK_dead_psili, GDK_Greek_ALPHA, 0x1F8E,
+GDK_dead_tilde, GDK_dead_psili, GDK_Greek_ETA, 0x1F9E,
+GDK_dead_tilde, GDK_dead_psili, GDK_Greek_OMEGA, 0x1FAE,
+GDK_dead_tilde, GDK_dead_psili, GDK_Greek_alpha, 0x1F86,
+GDK_dead_tilde, GDK_dead_psili, GDK_Greek_eta, 0x1F96,
+GDK_dead_tilde, GDK_dead_psili, GDK_Greek_omega, 0x1FA6,
+GDK_dead_tilde, GDK_dead_dasia, GDK_Greek_ALPHA, 0x1F8F,
+GDK_dead_tilde, GDK_dead_dasia, GDK_Greek_ETA, 0x1F9F,
+GDK_dead_tilde, GDK_dead_dasia, GDK_Greek_OMEGA, 0x1FAF,
+GDK_dead_tilde, GDK_dead_dasia, GDK_Greek_alpha, 0x1F87,
+GDK_dead_tilde, GDK_dead_dasia, GDK_Greek_eta, 0x1F97,
+GDK_dead_tilde, GDK_dead_dasia, GDK_Greek_omega, 0x1FA7,
GDK_Multi_key, GDK_apostrophe, GDK_Greek_alpha, 0x1FB4,
GDK_Multi_key, GDK_apostrophe, GDK_Greek_eta, 0x1FC4,
GDK_Multi_key, GDK_apostrophe, GDK_Greek_omega, 0x1FF4,
@@ -807,18 +800,6 @@
GDK_Multi_key, GDK_acute, 0x1F61, 0x1FA5,
GDK_Multi_key, GDK_acute, 0x1F68, 0x1FAC,
GDK_Multi_key, GDK_acute, 0x1F69, 0x1FAD,
-0x0342, GDK_Multi_key, GDK_parenleft, GDK_Greek_ALPHA, 0x1F8F,
-0x0342, GDK_Multi_key, GDK_parenleft, GDK_Greek_ETA, 0x1F9F,
-0x0342, GDK_Multi_key, GDK_parenleft, GDK_Greek_OMEGA, 0x1FAF,
-0x0342, GDK_Multi_key, GDK_parenleft, GDK_Greek_alpha, 0x1F87,
-0x0342, GDK_Multi_key, GDK_parenleft, GDK_Greek_eta, 0x1F97,
-0x0342, GDK_Multi_key, GDK_parenleft, GDK_Greek_omega, 0x1FA7,
-0x0342, GDK_Multi_key, GDK_parenright, GDK_Greek_ALPHA, 0x1F8E,
-0x0342, GDK_Multi_key, GDK_parenright, GDK_Greek_ETA, 0x1F9E,
-0x0342, GDK_Multi_key, GDK_parenright, GDK_Greek_OMEGA, 0x1FAE,
-0x0342, GDK_Multi_key, GDK_parenright, GDK_Greek_alpha, 0x1F86,
-0x0342, GDK_Multi_key, GDK_parenright, GDK_Greek_eta, 0x1F96,
-0x0342, GDK_Multi_key, GDK_parenright, GDK_Greek_omega, 0x1FA6,
GDK_dead_grave, GDK_Multi_key, GDK_parenleft, GDK_Greek_ALPHA, 0x1F8B,
GDK_dead_grave, GDK_Multi_key, GDK_parenleft, GDK_Greek_ETA, 0x1F9B,
GDK_dead_grave, GDK_Multi_key, GDK_parenleft, GDK_Greek_OMEGA, 0x1FAB,
@@ -979,6 +960,9 @@
GDK_kana_FU, 0x30D7,
GDK_kana_HE, 0x30DA,
GDK_kana_HO, 0x30DD,
+GDK_plus, 0x2A25,
+GDK_minus, 0x2A2A,
+GDK_equal, 0x2A66,
GDK_Abreve, 0x1EB6,
GDK_abreve, 0x1EB7,
GDK_Multi_key, GDK_plus, GDK_O, 0x1EE2,
@@ -1015,25 +999,22 @@
GDK_Greek_rho, 0x1FE4,
GDK_Greek_upsilon, 0x1F50,
GDK_Greek_omega, 0x1F60,
-GDK_D, 0x0110,
-GDK_G, 0x01E4,
-GDK_H, 0x0126,
-GDK_I, 0x0197,
-GDK_L, 0x0141,
-GDK_O, 0x00D8,
-GDK_T, 0x0166,
-GDK_Z, 0x01B5,
-GDK_b, 0x0180,
-GDK_d, 0x0111,
-GDK_g, 0x01E5,
-GDK_h, 0x0127,
-GDK_i, 0x0268,
-GDK_l, 0x0142,
-GDK_o, 0x00F8,
-GDK_t, 0x0167,
-GDK_z, 0x01B6,
-GDK_dead_acute, GDK_O, 0x01FE,
-GDK_dead_acute, GDK_o, 0x01FF,
+GDK_Greek_ALPHA, 0x1F09,
+GDK_Greek_EPSILON, 0x1F19,
+GDK_Greek_ETA, 0x1F29,
+GDK_Greek_IOTA, 0x1F39,
+GDK_Greek_OMICRON, 0x1F49,
+GDK_Greek_RHO, 0x1FEC,
+GDK_Greek_UPSILON, 0x1F59,
+GDK_Greek_OMEGA, 0x1F69,
+GDK_Greek_alpha, 0x1F01,
+GDK_Greek_epsilon, 0x1F11,
+GDK_Greek_eta, 0x1F21,
+GDK_Greek_iota, 0x1F31,
+GDK_Greek_omicron, 0x1F41,
+GDK_Greek_rho, 0x1FE5,
+GDK_Greek_upsilon, 0x1F51,
+GDK_Greek_omega, 0x1F61,
GDK_space, GDK_space, 0x00A0,
GDK_space, GDK_apostrophe, 0x0027,
GDK_space, GDK_comma, 0x00B8,
@@ -1044,6 +1025,7 @@
GDK_space, GDK_grave, 0x0060,
GDK_space, GDK_asciitilde, 0x007E,
GDK_exclam, GDK_exclam, 0x00A1,
+GDK_exclam, GDK_question, 0x203D,
GDK_exclam, GDK_A, 0x1EA0,
GDK_exclam, GDK_B, 0x1E04,
GDK_exclam, GDK_D, 0x1E0C,
@@ -1083,6 +1065,10 @@
GDK_exclam, GDK_w, 0x1E89,
GDK_exclam, GDK_y, 0x1EF5,
GDK_exclam, GDK_z, 0x1E93,
+GDK_exclam, GDK_Ohorn, 0x1EE2,
+GDK_exclam, GDK_ohorn, 0x1EE3,
+GDK_exclam, GDK_Uhorn, 0x1EF0,
+GDK_exclam, GDK_uhorn, 0x1EF1,
GDK_quotedbl, GDK_apostrophe, 0x0344,
GDK_quotedbl, GDK_comma, 0x201E,
GDK_quotedbl, GDK_slash, 0x301E,
@@ -1207,6 +1193,10 @@
GDK_apostrophe, GDK_otilde, 0x1E4D,
GDK_apostrophe, GDK_oslash, 0x01FF,
GDK_apostrophe, GDK_udiaeresis, 0x01D8,
+GDK_apostrophe, GDK_Ohorn, 0x1EDA,
+GDK_apostrophe, GDK_ohorn, 0x1EDB,
+GDK_apostrophe, GDK_Uhorn, 0x1EE8,
+GDK_apostrophe, GDK_uhorn, 0x1EE9,
GDK_apostrophe, GDK_Abreve, 0x1EAE,
GDK_apostrophe, GDK_abreve, 0x1EAF,
GDK_apostrophe, GDK_Emacron, 0x1E16,
@@ -1421,8 +1411,20 @@
GDK_slash, GDK_rightarrow, 0x219B,
GDK_slash, 0x2194, 0x21AE,
GDK_1, GDK_2, 0x00BD,
+GDK_1, GDK_3, 0x2153,
GDK_1, GDK_4, 0x00BC,
+GDK_1, GDK_5, 0x2155,
+GDK_1, GDK_6, 0x2159,
+GDK_1, GDK_8, 0x215B,
+GDK_2, GDK_3, 0x2154,
+GDK_2, GDK_5, 0x2156,
GDK_3, GDK_4, 0x00BE,
+GDK_3, GDK_5, 0x2157,
+GDK_3, GDK_8, 0x215C,
+GDK_4, GDK_5, 0x2158,
+GDK_5, GDK_6, 0x215A,
+GDK_5, GDK_8, 0x215D,
+GDK_7, GDK_8, 0x215E,
GDK_colon, GDK_minus, 0x00F7,
GDK_semicolon, GDK_A, 0x0104,
GDK_semicolon, GDK_E, 0x0118,
@@ -1461,6 +1463,7 @@
GDK_greater, GDK_apostrophe, 0x2019,
GDK_greater, GDK_greater, 0x00BB,
GDK_greater, 0x0338, 0x226F,
+GDK_question, GDK_exclam, 0x203D,
GDK_question, GDK_question, 0x00BF,
GDK_question, GDK_A, 0x1EA2,
GDK_question, GDK_E, 0x1EBA,
@@ -1480,6 +1483,10 @@
GDK_question, GDK_acircumflex, 0x1EA9,
GDK_question, GDK_ecircumflex, 0x1EC3,
GDK_question, GDK_ocircumflex, 0x1ED5,
+GDK_question, GDK_Ohorn, 0x1EDE,
+GDK_question, GDK_ohorn, 0x1EDF,
+GDK_question, GDK_Uhorn, 0x1EEC,
+GDK_question, GDK_uhorn, 0x1EED,
GDK_question, GDK_Abreve, 0x1EB2,
GDK_question, GDK_abreve, 0x1EB3,
GDK_A, GDK_E, 0x00C6,
@@ -1720,6 +1727,10 @@
GDK_grave, GDK_ecircumflex, 0x1EC1,
GDK_grave, GDK_ocircumflex, 0x1ED3,
GDK_grave, GDK_udiaeresis, 0x01DC,
+GDK_grave, GDK_Ohorn, 0x1EDC,
+GDK_grave, GDK_ohorn, 0x1EDD,
+GDK_grave, GDK_Uhorn, 0x1EEA,
+GDK_grave, GDK_uhorn, 0x1EEB,
GDK_grave, GDK_Abreve, 0x1EB0,
GDK_grave, GDK_abreve, 0x1EB1,
GDK_grave, GDK_Emacron, 0x1E14,
@@ -1908,6 +1919,10 @@
GDK_asciitilde, GDK_acircumflex, 0x1EAB,
GDK_asciitilde, GDK_ecircumflex, 0x1EC5,
GDK_asciitilde, GDK_ocircumflex, 0x1ED7,
+GDK_asciitilde, GDK_Ohorn, 0x1EE0,
+GDK_asciitilde, GDK_ohorn, 0x1EE1,
+GDK_asciitilde, GDK_Uhorn, 0x1EEE,
+GDK_asciitilde, GDK_uhorn, 0x1EEF,
GDK_asciitilde, GDK_Abreve, 0x1EB4,
GDK_asciitilde, GDK_abreve, 0x1EB5,
GDK_asciitilde, GDK_Greek_iotadieresis, 0x1FD7,
@@ -1940,7 +1955,6 @@
GDK_diaeresis, GDK_grave, 0x1FED,
GDK_diaeresis, GDK_asciitilde, 0x1FC1,
GDK_diaeresis, GDK_acute, 0x0385,
-GDK_diaeresis, 0x0342, 0x1FC1,
GDK_diaeresis, GDK_dead_grave, 0x1FED,
GDK_diaeresis, GDK_dead_acute, 0x0385,
GDK_diaeresis, GDK_dead_tilde, 0x1FC1,
@@ -2042,6 +2056,10 @@
GDK_acute, GDK_otilde, 0x1E4D,
GDK_acute, GDK_oslash, 0x01FF,
GDK_acute, GDK_udiaeresis, 0x01D8,
+GDK_acute, GDK_Ohorn, 0x1EDA,
+GDK_acute, GDK_ohorn, 0x1EDB,
+GDK_acute, GDK_Uhorn, 0x1EE8,
+GDK_acute, GDK_uhorn, 0x1EE9,
GDK_acute, GDK_Abreve, 0x1EAE,
GDK_acute, GDK_abreve, 0x1EAF,
GDK_acute, GDK_Emacron, 0x1E16,
@@ -2097,6 +2115,28 @@
GDK_acute, 0x1F61, 0x1F65,
GDK_acute, 0x1F68, 0x1F6C,
GDK_acute, 0x1F69, 0x1F6D,
+GDK_cedilla, GDK_C, 0x00C7,
+GDK_cedilla, GDK_D, 0x1E10,
+GDK_cedilla, GDK_E, 0x0228,
+GDK_cedilla, GDK_G, 0x0122,
+GDK_cedilla, GDK_H, 0x1E28,
+GDK_cedilla, GDK_K, 0x0136,
+GDK_cedilla, GDK_L, 0x013B,
+GDK_cedilla, GDK_N, 0x0145,
+GDK_cedilla, GDK_R, 0x0156,
+GDK_cedilla, GDK_S, 0x015E,
+GDK_cedilla, GDK_T, 0x0162,
+GDK_cedilla, GDK_c, 0x00E7,
+GDK_cedilla, GDK_d, 0x1E11,
+GDK_cedilla, GDK_e, 0x0229,
+GDK_cedilla, GDK_g, 0x0123,
+GDK_cedilla, GDK_h, 0x1E29,
+GDK_cedilla, GDK_k, 0x0137,
+GDK_cedilla, GDK_l, 0x013C,
+GDK_cedilla, GDK_n, 0x0146,
+GDK_cedilla, GDK_r, 0x0157,
+GDK_cedilla, GDK_s, 0x015F,
+GDK_cedilla, GDK_t, 0x0163,
0x05B4, GDK_hebrew_yod, 0xFB1D,
0x05B7, 0x05F2, 0xFB1F,
0x05B7, GDK_hebrew_aleph, 0xFB2E,
@@ -2520,7 +2560,6 @@
0x1FBF, GDK_grave, 0x1FCD,
0x1FBF, GDK_asciitilde, 0x1FCF,
0x1FBF, GDK_acute, 0x1FCE,
-0x1FBF, 0x0342, 0x1FCF,
0x1FBF, GDK_dead_grave, 0x1FCD,
0x1FBF, GDK_dead_acute, 0x1FCE,
0x1FBF, GDK_dead_tilde, 0x1FCF,
@@ -2528,7 +2567,6 @@
0x1FFE, GDK_grave, 0x1FDD,
0x1FFE, GDK_asciitilde, 0x1FDF,
0x1FFE, GDK_acute, 0x1FDE,
-0x1FFE, 0x0342, 0x1FDF,
0x1FFE, GDK_dead_grave, 0x1FDD,
0x1FFE, GDK_dead_acute, 0x1FDE,
0x1FFE, GDK_dead_tilde, 0x1FDF,
@@ -2666,6 +2704,8 @@
GDK_apostrophe, GDK_macron, GDK_O, 0x1E52,
GDK_apostrophe, GDK_macron, GDK_e, 0x1E17,
GDK_apostrophe, GDK_macron, GDK_o, 0x1E53,
+GDK_apostrophe, GDK_cedilla, GDK_C, 0x1E08,
+GDK_apostrophe, GDK_cedilla, GDK_c, 0x1E09,
GDK_apostrophe, GDK_dead_circumflex, GDK_A, 0x1EA4,
GDK_apostrophe, GDK_dead_circumflex, GDK_E, 0x1EBE,
GDK_apostrophe, GDK_dead_circumflex, GDK_O, 0x1ED0,
@@ -2950,6 +2990,8 @@
GDK_U, GDK_exclam, GDK_a, 0x1EB7,
GDK_U, GDK_comma, GDK_E, 0x1E1C,
GDK_U, GDK_comma, GDK_e, 0x1E1D,
+GDK_U, GDK_cedilla, GDK_E, 0x1E1C,
+GDK_U, GDK_cedilla, GDK_e, 0x1E1D,
GDK_U, GDK_dead_cedilla, GDK_E, 0x1E1C,
GDK_U, GDK_dead_cedilla, GDK_e, 0x1E1D,
GDK_U, GDK_dead_belowdot, GDK_A, 0x1EB6,
@@ -3140,6 +3182,8 @@
GDK_b, GDK_exclam, GDK_a, 0x1EB7,
GDK_b, GDK_comma, GDK_E, 0x1E1C,
GDK_b, GDK_comma, GDK_e, 0x1E1D,
+GDK_b, GDK_cedilla, GDK_E, 0x1E1C,
+GDK_b, GDK_cedilla, GDK_e, 0x1E1D,
GDK_b, GDK_dead_cedilla, GDK_E, 0x1E1C,
GDK_b, GDK_dead_cedilla, GDK_e, 0x1E1D,
GDK_b, GDK_dead_belowdot, GDK_A, 0x1EB6,
@@ -3313,6 +3357,8 @@
GDK_acute, GDK_macron, GDK_O, 0x1E52,
GDK_acute, GDK_macron, GDK_e, 0x1E17,
GDK_acute, GDK_macron, GDK_o, 0x1E53,
+GDK_acute, GDK_cedilla, GDK_C, 0x1E08,
+GDK_acute, GDK_cedilla, GDK_c, 0x1E09,
GDK_acute, GDK_dead_circumflex, GDK_A, 0x1EA4,
GDK_acute, GDK_dead_circumflex, GDK_E, 0x1EBE,
GDK_acute, GDK_dead_circumflex, GDK_O, 0x1ED0,
@@ -3446,21 +3492,6 @@
GDK_Greek_iota, GDK_acute, 0x1F61, 0x1FA5,
GDK_Greek_iota, GDK_acute, 0x1F68, 0x1FAC,
GDK_Greek_iota, GDK_acute, 0x1F69, 0x1FAD,
-GDK_Greek_iota, 0x0342, GDK_Greek_alpha, 0x1FB7,
-GDK_Greek_iota, 0x0342, GDK_Greek_eta, 0x1FC7,
-GDK_Greek_iota, 0x0342, GDK_Greek_omega, 0x1FF7,
-GDK_Greek_iota, 0x0342, 0x1F00, 0x1F86,
-GDK_Greek_iota, 0x0342, 0x1F01, 0x1F87,
-GDK_Greek_iota, 0x0342, 0x1F08, 0x1F8E,
-GDK_Greek_iota, 0x0342, 0x1F09, 0x1F8F,
-GDK_Greek_iota, 0x0342, 0x1F20, 0x1F96,
-GDK_Greek_iota, 0x0342, 0x1F21, 0x1F97,
-GDK_Greek_iota, 0x0342, 0x1F28, 0x1F9E,
-GDK_Greek_iota, 0x0342, 0x1F29, 0x1F9F,
-GDK_Greek_iota, 0x0342, 0x1F60, 0x1FA6,
-GDK_Greek_iota, 0x0342, 0x1F61, 0x1FA7,
-GDK_Greek_iota, 0x0342, 0x1F68, 0x1FAE,
-GDK_Greek_iota, 0x0342, 0x1F69, 0x1FAF,
GDK_Greek_iota, GDK_dead_grave, GDK_Greek_alpha, 0x1FB2,
GDK_Greek_iota, GDK_dead_grave, GDK_Greek_eta, 0x1FC2,
GDK_Greek_iota, GDK_dead_grave, GDK_Greek_omega, 0x1FF2,
@@ -3819,30 +3850,6 @@
GDK_Greek_iota, GDK_acute, GDK_dead_dasia, GDK_Greek_alpha, 0x1F85,
GDK_Greek_iota, GDK_acute, GDK_dead_dasia, GDK_Greek_eta, 0x1F95,
GDK_Greek_iota, GDK_acute, GDK_dead_dasia, GDK_Greek_omega, 0x1FA5,
-GDK_Greek_iota, 0x0342, GDK_parenleft, GDK_Greek_ALPHA, 0x1F8F,
-GDK_Greek_iota, 0x0342, GDK_parenleft, GDK_Greek_ETA, 0x1F9F,
-GDK_Greek_iota, 0x0342, GDK_parenleft, GDK_Greek_OMEGA, 0x1FAF,
-GDK_Greek_iota, 0x0342, GDK_parenleft, GDK_Greek_alpha, 0x1F87,
-GDK_Greek_iota, 0x0342, GDK_parenleft, GDK_Greek_eta, 0x1F97,
-GDK_Greek_iota, 0x0342, GDK_parenleft, GDK_Greek_omega, 0x1FA7,
-GDK_Greek_iota, 0x0342, GDK_parenright, GDK_Greek_ALPHA, 0x1F8E,
-GDK_Greek_iota, 0x0342, GDK_parenright, GDK_Greek_ETA, 0x1F9E,
-GDK_Greek_iota, 0x0342, GDK_parenright, GDK_Greek_OMEGA, 0x1FAE,
-GDK_Greek_iota, 0x0342, GDK_parenright, GDK_Greek_alpha, 0x1F86,
-GDK_Greek_iota, 0x0342, GDK_parenright, GDK_Greek_eta, 0x1F96,
-GDK_Greek_iota, 0x0342, GDK_parenright, GDK_Greek_omega, 0x1FA6,
-GDK_Greek_iota, 0x0342, GDK_dead_psili, GDK_Greek_ALPHA, 0x1F8E,
-GDK_Greek_iota, 0x0342, GDK_dead_psili, GDK_Greek_ETA, 0x1F9E,
-GDK_Greek_iota, 0x0342, GDK_dead_psili, GDK_Greek_OMEGA, 0x1FAE,
-GDK_Greek_iota, 0x0342, GDK_dead_psili, GDK_Greek_alpha, 0x1F86,
-GDK_Greek_iota, 0x0342, GDK_dead_psili, GDK_Greek_eta, 0x1F96,
-GDK_Greek_iota, 0x0342, GDK_dead_psili, GDK_Greek_omega, 0x1FA6,
-GDK_Greek_iota, 0x0342, GDK_dead_dasia, GDK_Greek_ALPHA, 0x1F8F,
-GDK_Greek_iota, 0x0342, GDK_dead_dasia, GDK_Greek_ETA, 0x1F9F,
-GDK_Greek_iota, 0x0342, GDK_dead_dasia, GDK_Greek_OMEGA, 0x1FAF,
-GDK_Greek_iota, 0x0342, GDK_dead_dasia, GDK_Greek_alpha, 0x1F87,
-GDK_Greek_iota, 0x0342, GDK_dead_dasia, GDK_Greek_eta, 0x1F97,
-GDK_Greek_iota, 0x0342, GDK_dead_dasia, GDK_Greek_omega, 0x1FA7,
GDK_Greek_iota, GDK_dead_grave, GDK_parenleft, GDK_Greek_ALPHA, 0x1F8B,
GDK_Greek_iota, GDK_dead_grave, GDK_parenleft, GDK_Greek_ETA, 0x1F9B,
GDK_Greek_iota, GDK_dead_grave, GDK_parenleft, GDK_Greek_OMEGA, 0x1FAB,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]