Dig keysyms out of the C declarations.
authorMatt Birkholz <matt@birkholz.chandler.az.us>
Tue, 31 May 2011 01:34:07 +0000 (18:34 -0700)
committerMatt Birkholz <matt@birkholz.chandler.az.us>
Tue, 31 May 2011 01:34:07 +0000 (18:34 -0700)
src/gtk/compile.scm
src/gtk/gtk.pkg
src/gtk/keys.scm

index 8b095feed2e610a042af4d3cafef9c3a1aa8683a..bd6aba49c05c0fd043f188eecef6cae330a2e1b6 100644 (file)
@@ -26,4 +26,9 @@
                  ("main"                               "gtk-const.bin")
                  ("gtk-ev"     "gtk.ext" "pango.ext"   "gtk-const.bin")
                  ("fix-demo"   "gtk.ext" "pango.ext")
-                 ("swat"       "gtk.ext" "pango.ext")))
\ No newline at end of file
+                 ("swat"       "gtk.ext" "pango.ext"))
+               ;;
+               ;; Compile-time imports that needn't (shouldn't) exist
+               ;; at run-time.
+               'imports
+               '(((gtk keys) (ffi) find-c-includes c-enum-constant-values)))
\ No newline at end of file
index cc89bb80fa7ec5093601a006d3efb06dc55d3f0b..9a5fdd76af0994e92cf68783b4ef4be8bbdf551b 100644 (file)
@@ -235,7 +235,12 @@ USA.
   ;;(depends-on "gtk-const.bin")
   (export (gtk)
          gdk-key-state->char-bits
-         gdk-keyval->name))
+         gdk-keyval->name)
+  ;; Needed (only) at compile-time.
+  ;; Positively NOT needed at run-time.
+  #;(import (ffi) 
+         find-c-includes
+         c-enum-constant-values))
 
 (define-package (gtk thread)
   (parent (runtime thread))
index cc10cdececdd7eef1ddfdf66659e01b1060ee4f7..9ffc73b1eec37c6d0222fe80043aefa192dc5172 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-Copyright (C) 2009, 2010  Matthew Birkholz
+Copyright (C) 2009, 2010, 2011  Matthew Birkholz
 
 This file is part of MIT/GNU Scheme.
 
@@ -39,882 +39,16 @@ USA.
   (let ((entry
         (vector-binary-search gtk-key-translation-table
                               (lambda (u v) (< u v))
-                              (lambda (pair) (car pair))
+                              (lambda (pair) (cdr pair))
                               keyval)))
-    (and entry (cdr entry))))
+    (and entry (car entry))))
 
-(define gtk-key-translation-table
-  (sort!
-   (vector
-    (cons (C-enum "GDK_braceleft") 'braceleft)
-    (cons (C-enum "GDK_bar") 'bar)
-    (cons (C-enum "GDK_braceright") 'braceright)
-    (cons (C-enum "GDK_asciitilde") 'asciitilde)
-    (cons (C-enum "GDK_nobreakspace") 'nobreakspace)
-    (cons (C-enum "GDK_exclamdown") 'exclamdown)
-    (cons (C-enum "GDK_cent") 'cent)
-    (cons (C-enum "GDK_sterling") 'sterling)
-    (cons (C-enum "GDK_currency") 'currency)
-    (cons (C-enum "GDK_yen") 'yen)
-    (cons (C-enum "GDK_brokenbar") 'brokenbar)
-    (cons (C-enum "GDK_section") 'section)
-    (cons (C-enum "GDK_diaeresis") 'diaeresis)
-    (cons (C-enum "GDK_copyright") 'copyright)
-    (cons (C-enum "GDK_ordfeminine") 'ordfeminine)
-    (cons (C-enum "GDK_guillemotleft") 'guillemotleft)
-    (cons (C-enum "GDK_notsign") 'notsign)
-    (cons (C-enum "GDK_hyphen") 'hyphen)
-    (cons (C-enum "GDK_registered") 'registered)
-    (cons (C-enum "GDK_macron") 'macron)
-    (cons (C-enum "GDK_degree") 'degree)
-    (cons (C-enum "GDK_plusminus") 'plusminus)
-    (cons (C-enum "GDK_twosuperior") 'twosuperior)
-    (cons (C-enum "GDK_threesuperior") 'threesuperior)
-    (cons (C-enum "GDK_acute") 'acute)
-    (cons (C-enum "GDK_mu") 'mu)
-    (cons (C-enum "GDK_paragraph") 'paragraph)
-    (cons (C-enum "GDK_periodcentered") 'periodcentered)
-    (cons (C-enum "GDK_cedilla") 'cedilla)
-    (cons (C-enum "GDK_onesuperior") 'onesuperior)
-    (cons (C-enum "GDK_masculine") 'masculine)
-    (cons (C-enum "GDK_guillemotright") 'guillemotright)
-    (cons (C-enum "GDK_onequarter") 'onequarter)
-    (cons (C-enum "GDK_onehalf") 'onehalf)
-    (cons (C-enum "GDK_threequarters") 'threequarters)
-    (cons (C-enum "GDK_questiondown") 'questiondown)
-    (cons (C-enum "GDK_Agrave") 'Agrave)
-    (cons (C-enum "GDK_Aacute") 'Aacute)
-    (cons (C-enum "GDK_Acircumflex") 'Acircumflex)
-    (cons (C-enum "GDK_Atilde") 'Atilde)
-    (cons (C-enum "GDK_Adiaeresis") 'Adiaeresis)
-    (cons (C-enum "GDK_Aring") 'Aring)
-    (cons (C-enum "GDK_AE") 'AE)
-    (cons (C-enum "GDK_Ccedilla") 'Ccedilla)
-    (cons (C-enum "GDK_Egrave") 'Egrave)
-    (cons (C-enum "GDK_Eacute") 'Eacute)
-    (cons (C-enum "GDK_Ecircumflex") 'Ecircumflex)
-    (cons (C-enum "GDK_Ediaeresis") 'Ediaeresis)
-    (cons (C-enum "GDK_Igrave") 'Igrave)
-    (cons (C-enum "GDK_Iacute") 'Iacute)
-    (cons (C-enum "GDK_Icircumflex") 'Icircumflex)
-    (cons (C-enum "GDK_Idiaeresis") 'Idiaeresis)
-    (cons (C-enum "GDK_Eth") 'Eth)
-    (cons (C-enum "GDK_Ntilde") 'Ntilde)
-    (cons (C-enum "GDK_Ograve") 'Ograve)
-    (cons (C-enum "GDK_Oacute") 'Oacute)
-    (cons (C-enum "GDK_Ocircumflex") 'Ocircumflex)
-    (cons (C-enum "GDK_Otilde") 'Otilde)
-    (cons (C-enum "GDK_Odiaeresis") 'Odiaeresis)
-    (cons (C-enum "GDK_multiply") 'multiply)
-    (cons (C-enum "GDK_Ooblique") 'Ooblique)
-    (cons (C-enum "GDK_Ugrave") 'Ugrave)
-    (cons (C-enum "GDK_Uacute") 'Uacute)
-    (cons (C-enum "GDK_Ucircumflex") 'Ucircumflex)
-    (cons (C-enum "GDK_Udiaeresis") 'Udiaeresis)
-    (cons (C-enum "GDK_Yacute") 'Yacute)
-    (cons (C-enum "GDK_Thorn") 'Thorn)
-    (cons (C-enum "GDK_ssharp") 'ssharp)
-    (cons (C-enum "GDK_agrave") 'agrave)
-    (cons (C-enum "GDK_aacute") 'aacute)
-    (cons (C-enum "GDK_acircumflex") 'acircumflex)
-    (cons (C-enum "GDK_atilde") 'atilde)
-    (cons (C-enum "GDK_adiaeresis") 'adiaeresis)
-    (cons (C-enum "GDK_aring") 'aring)
-    (cons (C-enum "GDK_ae") 'ae)
-    (cons (C-enum "GDK_ccedilla") 'ccedilla)
-    (cons (C-enum "GDK_egrave") 'egrave)
-    (cons (C-enum "GDK_eacute") 'eacute)
-    (cons (C-enum "GDK_ecircumflex") 'ecircumflex)
-    (cons (C-enum "GDK_ediaeresis") 'ediaeresis)
-    (cons (C-enum "GDK_igrave") 'igrave)
-    (cons (C-enum "GDK_iacute") 'iacute)
-    (cons (C-enum "GDK_icircumflex") 'icircumflex)
-    (cons (C-enum "GDK_idiaeresis") 'idiaeresis)
-    (cons (C-enum "GDK_eth") 'eth)
-    (cons (C-enum "GDK_ntilde") 'ntilde)
-    (cons (C-enum "GDK_ograve") 'ograve)
-    (cons (C-enum "GDK_oacute") 'oacute)
-    (cons (C-enum "GDK_ocircumflex") 'ocircumflex)
-    (cons (C-enum "GDK_otilde") 'otilde)
-    (cons (C-enum "GDK_odiaeresis") 'odiaeresis)
-    (cons (C-enum "GDK_division") 'division)
-    (cons (C-enum "GDK_oslash") 'oslash)
-    (cons (C-enum "GDK_ugrave") 'ugrave)
-    (cons (C-enum "GDK_uacute") 'uacute)
-    (cons (C-enum "GDK_ucircumflex") 'ucircumflex)
-    (cons (C-enum "GDK_udiaeresis") 'udiaeresis)
-    (cons (C-enum "GDK_yacute") 'yacute)
-    (cons (C-enum "GDK_thorn") 'thorn)
-    (cons (C-enum "GDK_ydiaeresis") 'ydiaeresis)
-    (cons (C-enum "GDK_Aogonek") 'Aogonek)
-    (cons (C-enum "GDK_breve") 'breve)
-    (cons (C-enum "GDK_Lstroke") 'Lstroke)
-    (cons (C-enum "GDK_Lcaron") 'Lcaron)
-    (cons (C-enum "GDK_Sacute") 'Sacute)
-    (cons (C-enum "GDK_Scaron") 'Scaron)
-    (cons (C-enum "GDK_Scedilla") 'Scedilla)
-    (cons (C-enum "GDK_Tcaron") 'Tcaron)
-    (cons (C-enum "GDK_Zacute") 'Zacute)
-    (cons (C-enum "GDK_Zcaron") 'Zcaron)
-    (cons (C-enum "GDK_Zabovedot") 'Zabovedot)
-    (cons (C-enum "GDK_aogonek") 'aogonek)
-    (cons (C-enum "GDK_ogonek") 'ogonek)
-    (cons (C-enum "GDK_lstroke") 'lstroke)
-    (cons (C-enum "GDK_lcaron") 'lcaron)
-    (cons (C-enum "GDK_sacute") 'sacute)
-    (cons (C-enum "GDK_caron") 'caron)
-    (cons (C-enum "GDK_scaron") 'scaron)
-    (cons (C-enum "GDK_scedilla") 'scedilla)
-    (cons (C-enum "GDK_tcaron") 'tcaron)
-    (cons (C-enum "GDK_zacute") 'zacute)
-    (cons (C-enum "GDK_doubleacute") 'doubleacute)
-    (cons (C-enum "GDK_zcaron") 'zcaron)
-    (cons (C-enum "GDK_zabovedot") 'zabovedot)
-    (cons (C-enum "GDK_Racute") 'Racute)
-    (cons (C-enum "GDK_Abreve") 'Abreve)
-    (cons (C-enum "GDK_Lacute") 'Lacute)
-    (cons (C-enum "GDK_Cacute") 'Cacute)
-    (cons (C-enum "GDK_Ccaron") 'Ccaron)
-    (cons (C-enum "GDK_Eogonek") 'Eogonek)
-    (cons (C-enum "GDK_Ecaron") 'Ecaron)
-    (cons (C-enum "GDK_Dcaron") 'Dcaron)
-    (cons (C-enum "GDK_Dstroke") 'Dstroke)
-    (cons (C-enum "GDK_Nacute") 'Nacute)
-    (cons (C-enum "GDK_Ncaron") 'Ncaron)
-    (cons (C-enum "GDK_Odoubleacute") 'Odoubleacute)
-    (cons (C-enum "GDK_Rcaron") 'Rcaron)
-    (cons (C-enum "GDK_Uring") 'Uring)
-    (cons (C-enum "GDK_Udoubleacute") 'Udoubleacute)
-    (cons (C-enum "GDK_Tcedilla") 'Tcedilla)
-    (cons (C-enum "GDK_racute") 'racute)
-    (cons (C-enum "GDK_abreve") 'abreve)
-    (cons (C-enum "GDK_lacute") 'lacute)
-    (cons (C-enum "GDK_cacute") 'cacute)
-    (cons (C-enum "GDK_ccaron") 'ccaron)
-    (cons (C-enum "GDK_eogonek") 'eogonek)
-    (cons (C-enum "GDK_ecaron") 'ecaron)
-    (cons (C-enum "GDK_dcaron") 'dcaron)
-    (cons (C-enum "GDK_dstroke") 'dstroke)
-    (cons (C-enum "GDK_nacute") 'nacute)
-    (cons (C-enum "GDK_ncaron") 'ncaron)
-    (cons (C-enum "GDK_odoubleacute") 'odoubleacute)
-    (cons (C-enum "GDK_rcaron") 'rcaron)
-    (cons (C-enum "GDK_uring") 'uring)
-    (cons (C-enum "GDK_udoubleacute") 'udoubleacute)
-    (cons (C-enum "GDK_tcedilla") 'tcedilla)
-    (cons (C-enum "GDK_abovedot") 'abovedot)
-    (cons (C-enum "GDK_Hstroke") 'Hstroke)
-    (cons (C-enum "GDK_Hcircumflex") 'Hcircumflex)
-    (cons (C-enum "GDK_Iabovedot") 'Iabovedot)
-    (cons (C-enum "GDK_Gbreve") 'Gbreve)
-    (cons (C-enum "GDK_Jcircumflex") 'Jcircumflex)
-    (cons (C-enum "GDK_hstroke") 'hstroke)
-    (cons (C-enum "GDK_hcircumflex") 'hcircumflex)
-    (cons (C-enum "GDK_idotless") 'idotless)
-    (cons (C-enum "GDK_gbreve") 'gbreve)
-    (cons (C-enum "GDK_jcircumflex") 'jcircumflex)
-    (cons (C-enum "GDK_Cabovedot") 'Cabovedot)
-    (cons (C-enum "GDK_Ccircumflex") 'Ccircumflex)
-    (cons (C-enum "GDK_Gabovedot") 'Gabovedot)
-    (cons (C-enum "GDK_Gcircumflex") 'Gcircumflex)
-    (cons (C-enum "GDK_Ubreve") 'Ubreve)
-    (cons (C-enum "GDK_Scircumflex") 'Scircumflex)
-    (cons (C-enum "GDK_cabovedot") 'cabovedot)
-    (cons (C-enum "GDK_ccircumflex") 'ccircumflex)
-    (cons (C-enum "GDK_gabovedot") 'gabovedot)
-    (cons (C-enum "GDK_gcircumflex") 'gcircumflex)
-    (cons (C-enum "GDK_ubreve") 'ubreve)
-    (cons (C-enum "GDK_scircumflex") 'scircumflex)
-    (cons (C-enum "GDK_kappa") 'kappa)
-    (cons (C-enum "GDK_Rcedilla") 'Rcedilla)
-    (cons (C-enum "GDK_Itilde") 'Itilde)
-    (cons (C-enum "GDK_Lcedilla") 'Lcedilla)
-    (cons (C-enum "GDK_Emacron") 'Emacron)
-    (cons (C-enum "GDK_Gcedilla") 'Gcedilla)
-    (cons (C-enum "GDK_Tslash") 'Tslash)
-    (cons (C-enum "GDK_rcedilla") 'rcedilla)
-    (cons (C-enum "GDK_itilde") 'itilde)
-    (cons (C-enum "GDK_lcedilla") 'lcedilla)
-    (cons (C-enum "GDK_emacron") 'emacron)
-    (cons (C-enum "GDK_gcedilla") 'gcedilla)
-    (cons (C-enum "GDK_tslash") 'tslash)
-    (cons (C-enum "GDK_ENG") 'ENG)
-    (cons (C-enum "GDK_eng") 'eng)
-    (cons (C-enum "GDK_Amacron") 'Amacron)
-    (cons (C-enum "GDK_Iogonek") 'Iogonek)
-    (cons (C-enum "GDK_Eabovedot") 'Eabovedot)
-    (cons (C-enum "GDK_Imacron") 'Imacron)
-    (cons (C-enum "GDK_Ncedilla") 'Ncedilla)
-    (cons (C-enum "GDK_Omacron") 'Omacron)
-    (cons (C-enum "GDK_Kcedilla") 'Kcedilla)
-    (cons (C-enum "GDK_Uogonek") 'Uogonek)
-    (cons (C-enum "GDK_Utilde") 'Utilde)
-    (cons (C-enum "GDK_Umacron") 'Umacron)
-    (cons (C-enum "GDK_amacron") 'amacron)
-    (cons (C-enum "GDK_iogonek") 'iogonek)
-    (cons (C-enum "GDK_eabovedot") 'eabovedot)
-    (cons (C-enum "GDK_imacron") 'imacron)
-    (cons (C-enum "GDK_ncedilla") 'ncedilla)
-    (cons (C-enum "GDK_omacron") 'omacron)
-    (cons (C-enum "GDK_kcedilla") 'kcedilla)
-    (cons (C-enum "GDK_uogonek") 'uogonek)
-    (cons (C-enum "GDK_utilde") 'utilde)
-    (cons (C-enum "GDK_umacron") 'umacron)
-    (cons (C-enum "GDK_overline") 'overline)
-    (cons (C-enum "GDK_kana_fullstop") 'kana-fullstop)
-    (cons (C-enum "GDK_kana_openingbracket") 'kana-openingbracket)
-    (cons (C-enum "GDK_kana_closingbracket") 'kana-closingbracket)
-    (cons (C-enum "GDK_kana_comma") 'kana-comma)
-    (cons (C-enum "GDK_kana_conjunctive") 'kana-conjunctive)
-    (cons (C-enum "GDK_kana_WO") 'kana-WO)
-    (cons (C-enum "GDK_kana_a") 'kana-a)
-    (cons (C-enum "GDK_kana_i") 'kana-i)
-    (cons (C-enum "GDK_kana_u") 'kana-u)
-    (cons (C-enum "GDK_kana_e") 'kana-e)
-    (cons (C-enum "GDK_kana_o") 'kana-o)
-    (cons (C-enum "GDK_kana_ya") 'kana-ya)
-    (cons (C-enum "GDK_kana_yu") 'kana-yu)
-    (cons (C-enum "GDK_kana_yo") 'kana-yo)
-    (cons (C-enum "GDK_kana_tu") 'kana-tu)
-    (cons (C-enum "GDK_prolongedsound") 'prolongedsound)
-    (cons (C-enum "GDK_kana_A") 'kana-A)
-    (cons (C-enum "GDK_kana_I") 'kana-I)
-    (cons (C-enum "GDK_kana_U") 'kana-U)
-    (cons (C-enum "GDK_kana_E") 'kana-E)
-    (cons (C-enum "GDK_kana_O") 'kana-O)
-    (cons (C-enum "GDK_kana_KA") 'kana-KA)
-    (cons (C-enum "GDK_kana_KI") 'kana-KI)
-    (cons (C-enum "GDK_kana_KU") 'kana-KU)
-    (cons (C-enum "GDK_kana_KE") 'kana-KE)
-    (cons (C-enum "GDK_kana_KO") 'kana-KO)
-    (cons (C-enum "GDK_kana_SA") 'kana-SA)
-    (cons (C-enum "GDK_kana_SHI") 'kana-SHI)
-    (cons (C-enum "GDK_kana_SU") 'kana-SU)
-    (cons (C-enum "GDK_kana_SE") 'kana-SE)
-    (cons (C-enum "GDK_kana_SO") 'kana-SO)
-    (cons (C-enum "GDK_kana_TA") 'kana-TA)
-    (cons (C-enum "GDK_kana_TI") 'kana-TI)
-    (cons (C-enum "GDK_kana_TU") 'kana-TU)
-    (cons (C-enum "GDK_kana_TE") 'kana-TE)
-    (cons (C-enum "GDK_kana_TO") 'kana-TO)
-    (cons (C-enum "GDK_kana_NA") 'kana-NA)
-    (cons (C-enum "GDK_kana_NI") 'kana-NI)
-    (cons (C-enum "GDK_kana_NU") 'kana-NU)
-    (cons (C-enum "GDK_kana_NE") 'kana-NE)
-    (cons (C-enum "GDK_kana_NO") 'kana-NO)
-    (cons (C-enum "GDK_kana_HA") 'kana-HA)
-    (cons (C-enum "GDK_kana_HI") 'kana-HI)
-    (cons (C-enum "GDK_kana_HU") 'kana-HU)
-    (cons (C-enum "GDK_kana_HE") 'kana-HE)
-    (cons (C-enum "GDK_kana_HO") 'kana-HO)
-    (cons (C-enum "GDK_kana_MA") 'kana-MA)
-    (cons (C-enum "GDK_kana_MI") 'kana-MI)
-    (cons (C-enum "GDK_kana_MU") 'kana-MU)
-    (cons (C-enum "GDK_kana_ME") 'kana-ME)
-    (cons (C-enum "GDK_kana_MO") 'kana-MO)
-    (cons (C-enum "GDK_kana_YA") 'kana-YA)
-    (cons (C-enum "GDK_kana_YU") 'kana-YU)
-    (cons (C-enum "GDK_kana_YO") 'kana-YO)
-    (cons (C-enum "GDK_kana_RA") 'kana-RA)
-    (cons (C-enum "GDK_kana_RI") 'kana-RI)
-    (cons (C-enum "GDK_kana_RU") 'kana-RU)
-    (cons (C-enum "GDK_kana_RE") 'kana-RE)
-    (cons (C-enum "GDK_kana_RO") 'kana-RO)
-    (cons (C-enum "GDK_kana_WA") 'kana-WA)
-    (cons (C-enum "GDK_kana_N") 'kana-N)
-    (cons (C-enum "GDK_voicedsound") 'voicedsound)
-    (cons (C-enum "GDK_semivoicedsound") 'semivoicedsound)
-    (cons (C-enum "GDK_Arabic_comma") 'Arabic-comma)
-    (cons (C-enum "GDK_Arabic_semicolon") 'Arabic-semicolon)
-    (cons (C-enum "GDK_Arabic_question_mark") 'Arabic-question-mark)
-    (cons (C-enum "GDK_Arabic_hamza") 'Arabic-hamza)
-    (cons (C-enum "GDK_Arabic_maddaonalef") 'Arabic-maddaonalef)
-    (cons (C-enum "GDK_Arabic_hamzaonalef") 'Arabic-hamzaonalef)
-    (cons (C-enum "GDK_Arabic_hamzaonwaw") 'Arabic-hamzaonwaw)
-    (cons (C-enum "GDK_Arabic_hamzaunderalef") 'Arabic-hamzaunderalef)
-    (cons (C-enum "GDK_Arabic_hamzaonyeh") 'Arabic-hamzaonyeh)
-    (cons (C-enum "GDK_Arabic_alef") 'Arabic-alef)
-    (cons (C-enum "GDK_Arabic_beh") 'Arabic-beh)
-    (cons (C-enum "GDK_Arabic_tehmarbuta") 'Arabic-tehmarbuta)
-    (cons (C-enum "GDK_Arabic_teh") 'Arabic-teh)
-    (cons (C-enum "GDK_Arabic_theh") 'Arabic-theh)
-    (cons (C-enum "GDK_Arabic_jeem") 'Arabic-jeem)
-    (cons (C-enum "GDK_Arabic_hah") 'Arabic-hah)
-    (cons (C-enum "GDK_Arabic_khah") 'Arabic-khah)
-    (cons (C-enum "GDK_Arabic_dal") 'Arabic-dal)
-    (cons (C-enum "GDK_Arabic_thal") 'Arabic-thal)
-    (cons (C-enum "GDK_Arabic_ra") 'Arabic-ra)
-    (cons (C-enum "GDK_Arabic_zain") 'Arabic-zain)
-    (cons (C-enum "GDK_Arabic_seen") 'Arabic-seen)
-    (cons (C-enum "GDK_Arabic_sheen") 'Arabic-sheen)
-    (cons (C-enum "GDK_Arabic_sad") 'Arabic-sad)
-    (cons (C-enum "GDK_Arabic_dad") 'Arabic-dad)
-    (cons (C-enum "GDK_Arabic_tah") 'Arabic-tah)
-    (cons (C-enum "GDK_Arabic_zah") 'Arabic-zah)
-    (cons (C-enum "GDK_Arabic_ain") 'Arabic-ain)
-    (cons (C-enum "GDK_Arabic_ghain") 'Arabic-ghain)
-    (cons (C-enum "GDK_Arabic_tatweel") 'Arabic-tatweel)
-    (cons (C-enum "GDK_Arabic_feh") 'Arabic-feh)
-    (cons (C-enum "GDK_Arabic_qaf") 'Arabic-qaf)
-    (cons (C-enum "GDK_Arabic_kaf") 'Arabic-kaf)
-    (cons (C-enum "GDK_Arabic_lam") 'Arabic-lam)
-    (cons (C-enum "GDK_Arabic_meem") 'Arabic-meem)
-    (cons (C-enum "GDK_Arabic_noon") 'Arabic-noon)
-    (cons (C-enum "GDK_Arabic_heh") 'Arabic-heh)
-    (cons (C-enum "GDK_Arabic_waw") 'Arabic-waw)
-    (cons (C-enum "GDK_Arabic_alefmaksura") 'Arabic-alefmaksura)
-    (cons (C-enum "GDK_Arabic_yeh") 'Arabic-yeh)
-    (cons (C-enum "GDK_Arabic_fathatan") 'Arabic-fathatan)
-    (cons (C-enum "GDK_Arabic_dammatan") 'Arabic-dammatan)
-    (cons (C-enum "GDK_Arabic_kasratan") 'Arabic-kasratan)
-    (cons (C-enum "GDK_Arabic_fatha") 'Arabic-fatha)
-    (cons (C-enum "GDK_Arabic_damma") 'Arabic-damma)
-    (cons (C-enum "GDK_Arabic_kasra") 'Arabic-kasra)
-    (cons (C-enum "GDK_Arabic_shadda") 'Arabic-shadda)
-    (cons (C-enum "GDK_Arabic_sukun") 'Arabic-sukun)
-    (cons (C-enum "GDK_Serbian_dje") 'Serbian-dje)
-    (cons (C-enum "GDK_Macedonia_gje") 'Macedonia-gje)
-    (cons (C-enum "GDK_Cyrillic_io") 'Cyrillic-io)
-    (cons (C-enum "GDK_Ukranian_je") 'Ukranian-je)
-    (cons (C-enum "GDK_Macedonia_dse") 'Macedonia-dse)
-    (cons (C-enum "GDK_Ukranian_i") 'Ukranian-i)
-    (cons (C-enum "GDK_Ukranian_yi") 'Ukranian-yi)
-    (cons (C-enum "GDK_Cyrillic_je") 'Cyrillic-je)
-    (cons (C-enum "GDK_Cyrillic_lje") 'Cyrillic-lje)
-    (cons (C-enum "GDK_Cyrillic_nje") 'Cyrillic-nje)
-    (cons (C-enum "GDK_Serbian_tshe") 'Serbian-tshe)
-    (cons (C-enum "GDK_Macedonia_kje") 'Macedonia-kje)
-    (cons (C-enum "GDK_Byelorussian_shortu") 'Byelorussian-shortu)
-    (cons (C-enum "GDK_Cyrillic_dzhe") 'Cyrillic-dzhe)
-    (cons (C-enum "GDK_numerosign") 'numerosign)
-    (cons (C-enum "GDK_Serbian_DJE") 'Serbian-DJE)
-    (cons (C-enum "GDK_Macedonia_GJE") 'Macedonia-GJE)
-    (cons (C-enum "GDK_Cyrillic_IO") 'Cyrillic-IO)
-    (cons (C-enum "GDK_Ukranian_JE") 'Ukranian-JE)
-    (cons (C-enum "GDK_Macedonia_DSE") 'Macedonia-DSE)
-    (cons (C-enum "GDK_Ukranian_I") 'Ukranian-I)
-    (cons (C-enum "GDK_Ukrainian_YI") 'Ukrainian-YI)
-    (cons (C-enum "GDK_Cyrillic_JE") 'Cyrillic-JE)
-    (cons (C-enum "GDK_Cyrillic_LJE") 'Cyrillic-LJE)
-    (cons (C-enum "GDK_Cyrillic_NJE") 'Cyrillic-NJE)
-    (cons (C-enum "GDK_Serbian_TSHE") 'Serbian-TSHE)
-    (cons (C-enum "GDK_Macedonia_KJE") 'Macedonia-KJE)
-    (cons (C-enum "GDK_Byelorussian_SHORTU") 'Byelorussian-SHORTU)
-    (cons (C-enum "GDK_Cyrillic_DZHE") 'Cyrillic-DZHE)
-    (cons (C-enum "GDK_Cyrillic_yu") 'Cyrillic-yu)
-    (cons (C-enum "GDK_Cyrillic_a") 'Cyrillic-a)
-    (cons (C-enum "GDK_Cyrillic_be") 'Cyrillic-be)
-    (cons (C-enum "GDK_Cyrillic_tse") 'Cyrillic-tse)
-    (cons (C-enum "GDK_Cyrillic_de") 'Cyrillic-de)
-    (cons (C-enum "GDK_Cyrillic_ie") 'Cyrillic-ie)
-    (cons (C-enum "GDK_Cyrillic_ef") 'Cyrillic-ef)
-    (cons (C-enum "GDK_Cyrillic_ghe") 'Cyrillic-ghe)
-    (cons (C-enum "GDK_Cyrillic_ha") 'Cyrillic-ha)
-    (cons (C-enum "GDK_Cyrillic_i") 'Cyrillic-i)
-    (cons (C-enum "GDK_Cyrillic_shorti") 'Cyrillic-shorti)
-    (cons (C-enum "GDK_Cyrillic_ka") 'Cyrillic-ka)
-    (cons (C-enum "GDK_Cyrillic_el") 'Cyrillic-el)
-    (cons (C-enum "GDK_Cyrillic_em") 'Cyrillic-em)
-    (cons (C-enum "GDK_Cyrillic_en") 'Cyrillic-en)
-    (cons (C-enum "GDK_Cyrillic_o") 'Cyrillic-o)
-    (cons (C-enum "GDK_Cyrillic_pe") 'Cyrillic-pe)
-    (cons (C-enum "GDK_Cyrillic_ya") 'Cyrillic-ya)
-    (cons (C-enum "GDK_Cyrillic_er") 'Cyrillic-er)
-    (cons (C-enum "GDK_Cyrillic_es") 'Cyrillic-es)
-    (cons (C-enum "GDK_Cyrillic_te") 'Cyrillic-te)
-    (cons (C-enum "GDK_Cyrillic_u") 'Cyrillic-u)
-    (cons (C-enum "GDK_Cyrillic_zhe") 'Cyrillic-zhe)
-    (cons (C-enum "GDK_Cyrillic_ve") 'Cyrillic-ve)
-    (cons (C-enum "GDK_Cyrillic_softsign") 'Cyrillic-softsign)
-    (cons (C-enum "GDK_Cyrillic_yeru") 'Cyrillic-yeru)
-    (cons (C-enum "GDK_Cyrillic_ze") 'Cyrillic-ze)
-    (cons (C-enum "GDK_Cyrillic_sha") 'Cyrillic-sha)
-    (cons (C-enum "GDK_Cyrillic_e") 'Cyrillic-e)
-    (cons (C-enum "GDK_Cyrillic_shcha") 'Cyrillic-shcha)
-    (cons (C-enum "GDK_Cyrillic_che") 'Cyrillic-che)
-    (cons (C-enum "GDK_Cyrillic_hardsign") 'Cyrillic-hardsign)
-    (cons (C-enum "GDK_Cyrillic_YU") 'Cyrillic-YU)
-    (cons (C-enum "GDK_Cyrillic_A") 'Cyrillic-A)
-    (cons (C-enum "GDK_Cyrillic_BE") 'Cyrillic-BE)
-    (cons (C-enum "GDK_Cyrillic_TSE") 'Cyrillic-TSE)
-    (cons (C-enum "GDK_Cyrillic_DE") 'Cyrillic-DE)
-    (cons (C-enum "GDK_Cyrillic_IE") 'Cyrillic-IE)
-    (cons (C-enum "GDK_Cyrillic_EF") 'Cyrillic-EF)
-    (cons (C-enum "GDK_Cyrillic_GHE") 'Cyrillic-GHE)
-    (cons (C-enum "GDK_Cyrillic_HA") 'Cyrillic-HA)
-    (cons (C-enum "GDK_Cyrillic_I") 'Cyrillic-I)
-    (cons (C-enum "GDK_Cyrillic_SHORTI") 'Cyrillic-SHORTI)
-    (cons (C-enum "GDK_Cyrillic_KA") 'Cyrillic-KA)
-    (cons (C-enum "GDK_Cyrillic_EL") 'Cyrillic-EL)
-    (cons (C-enum "GDK_Cyrillic_EM") 'Cyrillic-EM)
-    (cons (C-enum "GDK_Cyrillic_EN") 'Cyrillic-EN)
-    (cons (C-enum "GDK_Cyrillic_O") 'Cyrillic-O)
-    (cons (C-enum "GDK_Cyrillic_PE") 'Cyrillic-PE)
-    (cons (C-enum "GDK_Cyrillic_YA") 'Cyrillic-YA)
-    (cons (C-enum "GDK_Cyrillic_ER") 'Cyrillic-ER)
-    (cons (C-enum "GDK_Cyrillic_ES") 'Cyrillic-ES)
-    (cons (C-enum "GDK_Cyrillic_TE") 'Cyrillic-TE)
-    (cons (C-enum "GDK_Cyrillic_U") 'Cyrillic-U)
-    (cons (C-enum "GDK_Cyrillic_ZHE") 'Cyrillic-ZHE)
-    (cons (C-enum "GDK_Cyrillic_VE") 'Cyrillic-VE)
-    (cons (C-enum "GDK_Cyrillic_SOFTSIGN") 'Cyrillic-SOFTSIGN)
-    (cons (C-enum "GDK_Cyrillic_YERU") 'Cyrillic-YERU)
-    (cons (C-enum "GDK_Cyrillic_ZE") 'Cyrillic-ZE)
-    (cons (C-enum "GDK_Cyrillic_SHA") 'Cyrillic-SHA)
-    (cons (C-enum "GDK_Cyrillic_E") 'Cyrillic-E)
-    (cons (C-enum "GDK_Cyrillic_SHCHA") 'Cyrillic-SHCHA)
-    (cons (C-enum "GDK_Cyrillic_CHE") 'Cyrillic-CHE)
-    (cons (C-enum "GDK_Cyrillic_HARDSIGN") 'Cyrillic-HARDSIGN)
-    (cons (C-enum "GDK_Greek_ALPHAaccent") 'Greek-ALPHAaccent)
-    (cons (C-enum "GDK_Greek_EPSILONaccent") 'Greek-EPSILONaccent)
-    (cons (C-enum "GDK_Greek_ETAaccent") 'Greek-ETAaccent)
-    (cons (C-enum "GDK_Greek_IOTAaccent") 'Greek-IOTAaccent)
-    (cons (C-enum "GDK_Greek_IOTAdiaeresis") 'Greek-IOTAdiaeresis)
-    (cons (C-enum "GDK_Greek_OMICRONaccent") 'Greek-OMICRONaccent)
-    (cons (C-enum "GDK_Greek_UPSILONaccent") 'Greek-UPSILONaccent)
-    (cons (C-enum "GDK_Greek_UPSILONdieresis") 'Greek-UPSILONdieresis)
-    (cons (C-enum "GDK_Greek_OMEGAaccent") 'Greek-OMEGAaccent)
-    (cons (C-enum "GDK_Greek_accentdieresis") 'Greek-accentdieresis)
-    (cons (C-enum "GDK_Greek_horizbar") 'Greek-horizbar)
-    (cons (C-enum "GDK_Greek_alphaaccent") 'Greek-alphaaccent)
-    (cons (C-enum "GDK_Greek_epsilonaccent") 'Greek-epsilonaccent)
-    (cons (C-enum "GDK_Greek_etaaccent") 'Greek-etaaccent)
-    (cons (C-enum "GDK_Greek_iotaaccent") 'Greek-iotaaccent)
-    (cons (C-enum "GDK_Greek_iotadieresis") 'Greek-iotadieresis)
-    (cons (C-enum "GDK_Greek_iotaaccentdieresis") 'Greek-iotaaccentdieresis)
-    (cons (C-enum "GDK_Greek_omicronaccent") 'Greek-omicronaccent)
-    (cons (C-enum "GDK_Greek_upsilonaccent") 'Greek-upsilonaccent)
-    (cons (C-enum "GDK_Greek_upsilondieresis") 'Greek-upsilondieresis)
-    (cons (C-enum "GDK_Greek_upsilonaccentdieresis") 'Greek-upsilonaccentdieresis)
-    (cons (C-enum "GDK_Greek_omegaaccent") 'Greek-omegaaccent)
-    (cons (C-enum "GDK_Greek_ALPHA") 'Greek-ALPHA)
-    (cons (C-enum "GDK_Greek_BETA") 'Greek-BETA)
-    (cons (C-enum "GDK_Greek_GAMMA") 'Greek-GAMMA)
-    (cons (C-enum "GDK_Greek_DELTA") 'Greek-DELTA)
-    (cons (C-enum "GDK_Greek_EPSILON") 'Greek-EPSILON)
-    (cons (C-enum "GDK_Greek_ZETA") 'Greek-ZETA)
-    (cons (C-enum "GDK_Greek_ETA") 'Greek-ETA)
-    (cons (C-enum "GDK_Greek_THETA") 'Greek-THETA)
-    (cons (C-enum "GDK_Greek_IOTA") 'Greek-IOTA)
-    (cons (C-enum "GDK_Greek_KAPPA") 'Greek-KAPPA)
-    (cons (C-enum "GDK_Greek_LAMBDA") 'Greek-LAMBDA)
-    (cons (C-enum "GDK_Greek_MU") 'Greek-MU)
-    (cons (C-enum "GDK_Greek_NU") 'Greek-NU)
-    (cons (C-enum "GDK_Greek_XI") 'Greek-XI)
-    (cons (C-enum "GDK_Greek_OMICRON") 'Greek-OMICRON)
-    (cons (C-enum "GDK_Greek_PI") 'Greek-PI)
-    (cons (C-enum "GDK_Greek_RHO") 'Greek-RHO)
-    (cons (C-enum "GDK_Greek_SIGMA") 'Greek-SIGMA)
-    (cons (C-enum "GDK_Greek_TAU") 'Greek-TAU)
-    (cons (C-enum "GDK_Greek_UPSILON") 'Greek-UPSILON)
-    (cons (C-enum "GDK_Greek_PHI") 'Greek-PHI)
-    (cons (C-enum "GDK_Greek_CHI") 'Greek-CHI)
-    (cons (C-enum "GDK_Greek_PSI") 'Greek-PSI)
-    (cons (C-enum "GDK_Greek_OMEGA") 'Greek-OMEGA)
-    (cons (C-enum "GDK_Greek_alpha") 'Greek-alpha)
-    (cons (C-enum "GDK_Greek_beta") 'Greek-beta)
-    (cons (C-enum "GDK_Greek_gamma") 'Greek-gamma)
-    (cons (C-enum "GDK_Greek_delta") 'Greek-delta)
-    (cons (C-enum "GDK_Greek_epsilon") 'Greek-epsilon)
-    (cons (C-enum "GDK_Greek_zeta") 'Greek-zeta)
-    (cons (C-enum "GDK_Greek_eta") 'Greek-eta)
-    (cons (C-enum "GDK_Greek_theta") 'Greek-theta)
-    (cons (C-enum "GDK_Greek_iota") 'Greek-iota)
-    (cons (C-enum "GDK_Greek_kappa") 'Greek-kappa)
-    (cons (C-enum "GDK_Greek_lambda") 'Greek-lambda)
-    (cons (C-enum "GDK_Greek_mu") 'Greek-mu)
-    (cons (C-enum "GDK_Greek_nu") 'Greek-nu)
-    (cons (C-enum "GDK_Greek_xi") 'Greek-xi)
-    (cons (C-enum "GDK_Greek_omicron") 'Greek-omicron)
-    (cons (C-enum "GDK_Greek_pi") 'Greek-pi)
-    (cons (C-enum "GDK_Greek_rho") 'Greek-rho)
-    (cons (C-enum "GDK_Greek_sigma") 'Greek-sigma)
-    (cons (C-enum "GDK_Greek_finalsmallsigma") 'Greek-finalsmallsigma)
-    (cons (C-enum "GDK_Greek_tau") 'Greek-tau)
-    (cons (C-enum "GDK_Greek_upsilon") 'Greek-upsilon)
-    (cons (C-enum "GDK_Greek_phi") 'Greek-phi)
-    (cons (C-enum "GDK_Greek_chi") 'Greek-chi)
-    (cons (C-enum "GDK_Greek_psi") 'Greek-psi)
-    (cons (C-enum "GDK_Greek_omega") 'Greek-omega)
-    (cons (C-enum "GDK_leftradical") 'leftradical)
-    (cons (C-enum "GDK_topleftradical") 'topleftradical)
-    (cons (C-enum "GDK_horizconnector") 'horizconnector)
-    (cons (C-enum "GDK_topintegral") 'topintegral)
-    (cons (C-enum "GDK_botintegral") 'botintegral)
-    (cons (C-enum "GDK_vertconnector") 'vertconnector)
-    (cons (C-enum "GDK_topleftsqbracket") 'topleftsqbracket)
-    (cons (C-enum "GDK_botleftsqbracket") 'botleftsqbracket)
-    (cons (C-enum "GDK_toprightsqbracket") 'toprightsqbracket)
-    (cons (C-enum "GDK_botrightsqbracket") 'botrightsqbracket)
-    (cons (C-enum "GDK_topleftparens") 'topleftparens)
-    (cons (C-enum "GDK_botleftparens") 'botleftparens)
-    (cons (C-enum "GDK_toprightparens") 'toprightparens)
-    (cons (C-enum "GDK_botrightparens") 'botrightparens)
-    (cons (C-enum "GDK_leftmiddlecurlybrace") 'leftmiddlecurlybrace)
-    (cons (C-enum "GDK_rightmiddlecurlybrace") 'rightmiddlecurlybrace)
-    (cons (C-enum "GDK_topleftsummation") 'topleftsummation)
-    (cons (C-enum "GDK_botleftsummation") 'botleftsummation)
-    (cons (C-enum "GDK_topvertsummationconnector") 'topvertsummationconnector)
-    (cons (C-enum "GDK_botvertsummationconnector") 'botvertsummationconnector)
-    (cons (C-enum "GDK_toprightsummation") 'toprightsummation)
-    (cons (C-enum "GDK_botrightsummation") 'botrightsummation)
-    (cons (C-enum "GDK_rightmiddlesummation") 'rightmiddlesummation)
-    (cons (C-enum "GDK_lessthanequal") 'lessthanequal)
-    (cons (C-enum "GDK_notequal") 'notequal)
-    (cons (C-enum "GDK_greaterthanequal") 'greaterthanequal)
-    (cons (C-enum "GDK_integral") 'integral)
-    (cons (C-enum "GDK_therefore") 'therefore)
-    (cons (C-enum "GDK_variation") 'variation)
-    (cons (C-enum "GDK_infinity") 'infinity)
-    (cons (C-enum "GDK_nabla") 'nabla)
-    (cons (C-enum "GDK_approximate") 'approximate)
-    (cons (C-enum "GDK_similarequal") 'similarequal)
-    (cons (C-enum "GDK_ifonlyif") 'ifonlyif)
-    (cons (C-enum "GDK_implies") 'implies)
-    (cons (C-enum "GDK_identical") 'identical)
-    (cons (C-enum "GDK_radical") 'radical)
-    (cons (C-enum "GDK_includedin") 'includedin)
-    (cons (C-enum "GDK_includes") 'includes)
-    (cons (C-enum "GDK_intersection") 'intersection)
-    (cons (C-enum "GDK_union") 'union)
-    (cons (C-enum "GDK_logicaland") 'logicaland)
-    (cons (C-enum "GDK_logicalor") 'logicalor)
-    (cons (C-enum "GDK_partialderivative") 'partialderivative)
-    (cons (C-enum "GDK_function") 'function)
-    (cons (C-enum "GDK_leftarrow") 'leftarrow)
-    (cons (C-enum "GDK_uparrow") 'uparrow)
-    (cons (C-enum "GDK_rightarrow") 'rightarrow)
-    (cons (C-enum "GDK_downarrow") 'downarrow)
-    (cons (C-enum "GDK_blank") 'blank)
-    (cons (C-enum "GDK_soliddiamond") 'soliddiamond)
-    (cons (C-enum "GDK_checkerboard") 'checkerboard)
-    (cons (C-enum "GDK_ht") 'ht)
-    (cons (C-enum "GDK_ff") 'ff)
-    (cons (C-enum "GDK_cr") 'cr)
-    (cons (C-enum "GDK_lf") 'lf)
-    (cons (C-enum "GDK_nl") 'nl)
-    (cons (C-enum "GDK_vt") 'vt)
-    (cons (C-enum "GDK_lowrightcorner") 'lowrightcorner)
-    (cons (C-enum "GDK_uprightcorner") 'uprightcorner)
-    (cons (C-enum "GDK_upleftcorner") 'upleftcorner)
-    (cons (C-enum "GDK_lowleftcorner") 'lowleftcorner)
-    (cons (C-enum "GDK_crossinglines") 'crossinglines)
-    (cons (C-enum "GDK_horizlinescan1") 'horizlinescan1)
-    (cons (C-enum "GDK_horizlinescan3") 'horizlinescan3)
-    (cons (C-enum "GDK_horizlinescan5") 'horizlinescan5)
-    (cons (C-enum "GDK_horizlinescan7") 'horizlinescan7)
-    (cons (C-enum "GDK_horizlinescan9") 'horizlinescan9)
-    (cons (C-enum "GDK_leftt") 'leftt)
-    (cons (C-enum "GDK_rightt") 'rightt)
-    (cons (C-enum "GDK_bott") 'bott)
-    (cons (C-enum "GDK_topt") 'topt)
-    (cons (C-enum "GDK_vertbar") 'vertbar)
-    (cons (C-enum "GDK_emspace") 'emspace)
-    (cons (C-enum "GDK_enspace") 'enspace)
-    (cons (C-enum "GDK_em3space") 'em3space)
-    (cons (C-enum "GDK_em4space") 'em4space)
-    (cons (C-enum "GDK_digitspace") 'digitspace)
-    (cons (C-enum "GDK_punctspace") 'punctspace)
-    (cons (C-enum "GDK_thinspace") 'thinspace)
-    (cons (C-enum "GDK_hairspace") 'hairspace)
-    (cons (C-enum "GDK_emdash") 'emdash)
-    (cons (C-enum "GDK_endash") 'endash)
-    (cons (C-enum "GDK_signifblank") 'signifblank)
-    (cons (C-enum "GDK_ellipsis") 'ellipsis)
-    (cons (C-enum "GDK_doubbaselinedot") 'doubbaselinedot)
-    (cons (C-enum "GDK_onethird") 'onethird)
-    (cons (C-enum "GDK_twothirds") 'twothirds)
-    (cons (C-enum "GDK_onefifth") 'onefifth)
-    (cons (C-enum "GDK_twofifths") 'twofifths)
-    (cons (C-enum "GDK_threefifths") 'threefifths)
-    (cons (C-enum "GDK_fourfifths") 'fourfifths)
-    (cons (C-enum "GDK_onesixth") 'onesixth)
-    (cons (C-enum "GDK_fivesixths") 'fivesixths)
-    (cons (C-enum "GDK_careof") 'careof)
-    (cons (C-enum "GDK_figdash") 'figdash)
-    (cons (C-enum "GDK_leftanglebracket") 'leftanglebracket)
-    (cons (C-enum "GDK_decimalpoint") 'decimalpoint)
-    (cons (C-enum "GDK_rightanglebracket") 'rightanglebracket)
-    (cons (C-enum "GDK_marker") 'marker)
-    (cons (C-enum "GDK_oneeighth") 'oneeighth)
-    (cons (C-enum "GDK_threeeighths") 'threeeighths)
-    (cons (C-enum "GDK_fiveeighths") 'fiveeighths)
-    (cons (C-enum "GDK_seveneighths") 'seveneighths)
-    (cons (C-enum "GDK_trademark") 'trademark)
-    (cons (C-enum "GDK_signaturemark") 'signaturemark)
-    (cons (C-enum "GDK_trademarkincircle") 'trademarkincircle)
-    (cons (C-enum "GDK_leftopentriangle") 'leftopentriangle)
-    (cons (C-enum "GDK_rightopentriangle") 'rightopentriangle)
-    (cons (C-enum "GDK_emopencircle") 'emopencircle)
-    (cons (C-enum "GDK_emopenrectangle") 'emopenrectangle)
-    (cons (C-enum "GDK_leftsinglequotemark") 'leftsinglequotemark)
-    (cons (C-enum "GDK_rightsinglequotemark") 'rightsinglequotemark)
-    (cons (C-enum "GDK_leftdoublequotemark") 'leftdoublequotemark)
-    (cons (C-enum "GDK_rightdoublequotemark") 'rightdoublequotemark)
-    (cons (C-enum "GDK_prescription") 'prescription)
-    (cons (C-enum "GDK_minutes") 'minutes)
-    (cons (C-enum "GDK_seconds") 'seconds)
-    (cons (C-enum "GDK_latincross") 'latincross)
-    (cons (C-enum "GDK_hexagram") 'hexagram)
-    (cons (C-enum "GDK_filledrectbullet") 'filledrectbullet)
-    (cons (C-enum "GDK_filledlefttribullet") 'filledlefttribullet)
-    (cons (C-enum "GDK_filledrighttribullet") 'filledrighttribullet)
-    (cons (C-enum "GDK_emfilledcircle") 'emfilledcircle)
-    (cons (C-enum "GDK_emfilledrect") 'emfilledrect)
-    (cons (C-enum "GDK_enopencircbullet") 'enopencircbullet)
-    (cons (C-enum "GDK_enopensquarebullet") 'enopensquarebullet)
-    (cons (C-enum "GDK_openrectbullet") 'openrectbullet)
-    (cons (C-enum "GDK_opentribulletup") 'opentribulletup)
-    (cons (C-enum "GDK_opentribulletdown") 'opentribulletdown)
-    (cons (C-enum "GDK_openstar") 'openstar)
-    (cons (C-enum "GDK_enfilledcircbullet") 'enfilledcircbullet)
-    (cons (C-enum "GDK_enfilledsqbullet") 'enfilledsqbullet)
-    (cons (C-enum "GDK_filledtribulletup") 'filledtribulletup)
-    (cons (C-enum "GDK_filledtribulletdown") 'filledtribulletdown)
-    (cons (C-enum "GDK_leftpointer") 'leftpointer)
-    (cons (C-enum "GDK_rightpointer") 'rightpointer)
-    (cons (C-enum "GDK_club") 'club)
-    (cons (C-enum "GDK_diamond") 'diamond)
-    (cons (C-enum "GDK_heart") 'heart)
-    (cons (C-enum "GDK_maltesecross") 'maltesecross)
-    (cons (C-enum "GDK_dagger") 'dagger)
-    (cons (C-enum "GDK_doubledagger") 'doubledagger)
-    (cons (C-enum "GDK_checkmark") 'checkmark)
-    (cons (C-enum "GDK_ballotcross") 'ballotcross)
-    (cons (C-enum "GDK_musicalsharp") 'musicalsharp)
-    (cons (C-enum "GDK_musicalflat") 'musicalflat)
-    (cons (C-enum "GDK_malesymbol") 'malesymbol)
-    (cons (C-enum "GDK_femalesymbol") 'femalesymbol)
-
-#| Kludge: the x86-64 assembler balks at something here... perhaps
-   just the number of arguments?
-
-    (cons (C-enum "GDK_telephone") 'telephone)
-    (cons (C-enum "GDK_telephonerecorder") 'telephonerecorder)
-    (cons (C-enum "GDK_phonographcopyright") 'phonographcopyright)
-    (cons (C-enum "GDK_caret") 'caret)
-    (cons (C-enum "GDK_singlelowquotemark") 'singlelowquotemark)
-    (cons (C-enum "GDK_doublelowquotemark") 'doublelowquotemark)
-    (cons (C-enum "GDK_cursor") 'cursor)
-    (cons (C-enum "GDK_leftcaret") 'leftcaret)
-    (cons (C-enum "GDK_rightcaret") 'rightcaret)
-    (cons (C-enum "GDK_downcaret") 'downcaret)
-    (cons (C-enum "GDK_upcaret") 'upcaret)
-    (cons (C-enum "GDK_overbar") 'overbar)
-    (cons (C-enum "GDK_downtack") 'downtack)
-    (cons (C-enum "GDK_upshoe") 'upshoe)
-    (cons (C-enum "GDK_downstile") 'downstile)
-    (cons (C-enum "GDK_underbar") 'underbar)
-    (cons (C-enum "GDK_jot") 'jot)
-    (cons (C-enum "GDK_quad") 'quad)
-    (cons (C-enum "GDK_uptack") 'uptack)
-    (cons (C-enum "GDK_circle") 'circle)
-    (cons (C-enum "GDK_upstile") 'upstile)
-    (cons (C-enum "GDK_downshoe") 'downshoe)
-    (cons (C-enum "GDK_rightshoe") 'rightshoe)
-    (cons (C-enum "GDK_leftshoe") 'leftshoe)
-    (cons (C-enum "GDK_lefttack") 'lefttack)
-    (cons (C-enum "GDK_righttack") 'righttack)
-    (cons (C-enum "GDK_hebrew_doublelowline") 'hebrew-doublelowline)
-    (cons (C-enum "GDK_hebrew_aleph") 'hebrew-aleph)
-    (cons (C-enum "GDK_hebrew_beth") 'hebrew-beth)
-    (cons (C-enum "GDK_hebrew_gimmel") 'hebrew-gimmel)
-    (cons (C-enum "GDK_hebrew_daleth") 'hebrew-daleth)
-    (cons (C-enum "GDK_hebrew_he") 'hebrew-he)
-    (cons (C-enum "GDK_hebrew_waw") 'hebrew-waw)
-    (cons (C-enum "GDK_hebrew_zayin") 'hebrew-zayin)
-    (cons (C-enum "GDK_hebrew_het") 'hebrew-het)
-    (cons (C-enum "GDK_hebrew_teth") 'hebrew-teth)
-    (cons (C-enum "GDK_hebrew_yod") 'hebrew-yod)
-    (cons (C-enum "GDK_hebrew_finalkaph") 'hebrew-finalkaph)
-    (cons (C-enum "GDK_hebrew_kaph") 'hebrew-kaph)
-    (cons (C-enum "GDK_hebrew_lamed") 'hebrew-lamed)
-    (cons (C-enum "GDK_hebrew_finalmem") 'hebrew-finalmem)
-    (cons (C-enum "GDK_hebrew_mem") 'hebrew-mem)
-    (cons (C-enum "GDK_hebrew_finalnun") 'hebrew-finalnun)
-    (cons (C-enum "GDK_hebrew_nun") 'hebrew-nun)
-    (cons (C-enum "GDK_hebrew_samekh") 'hebrew-samekh)
-    (cons (C-enum "GDK_hebrew_ayin") 'hebrew-ayin)
-    (cons (C-enum "GDK_hebrew_finalpe") 'hebrew-finalpe)
-    (cons (C-enum "GDK_hebrew_pe") 'hebrew-pe)
-    (cons (C-enum "GDK_hebrew_finalzadi") 'hebrew-finalzadi)
-    (cons (C-enum "GDK_hebrew_zadi") 'hebrew-zadi)
-    (cons (C-enum "GDK_hebrew_qoph") 'hebrew-qoph)
-    (cons (C-enum "GDK_hebrew_resh") 'hebrew-resh)
-    (cons (C-enum "GDK_hebrew_shin") 'hebrew-shin)
-    (cons (C-enum "GDK_hebrew_taf") 'hebrew-taf)
+(define-syntax translation-vector
+  (sc-macro-transformer
+   (lambda (form usage-env)
+     (list->vector
+      (c-enum-constant-values '(ENUM |GdkKeysyms|) form
+                             (find-c-includes usage-env))))))
 
-|#
-
-    (cons (C-enum "GDK_BackSpace") 'BackSpace)
-    (cons (C-enum "GDK_Tab") 'Tab)
-    (cons (C-enum "GDK_Linefeed") 'Linefeed)
-    (cons (C-enum "GDK_Clear") 'Clear)
-    (cons (C-enum "GDK_Return") 'Return)
-    (cons (C-enum "GDK_Pause") 'Pause)
-    (cons (C-enum "GDK_Scroll_Lock") 'Scroll-Lock)
-    (cons (C-enum "GDK_Escape") 'Escape)
-    (cons (C-enum "GDK_Multi_key") 'Multi-key)
-    (cons (C-enum "GDK_Kanji") 'Kanji)
-    (cons (C-enum "GDK_Muhenkan") 'Muhenkan)
-    (cons (C-enum "GDK_Henkan") 'Henkan)
-    (cons (C-enum "GDK_Romaji") 'Romaji)
-    (cons (C-enum "GDK_Hiragana") 'Hiragana)
-    (cons (C-enum "GDK_Katakana") 'Katakana)
-    (cons (C-enum "GDK_Hiragana_Katakana") 'Hiragana-Katakana)
-    (cons (C-enum "GDK_Zenkaku") 'Zenkaku)
-    (cons (C-enum "GDK_Hankaku") 'Hankaku)
-    (cons (C-enum "GDK_Zenkaku_Hankaku") 'Zenkaku-Hankaku)
-    (cons (C-enum "GDK_Touroku") 'Touroku)
-    (cons (C-enum "GDK_Massyo") 'Massyo)
-    (cons (C-enum "GDK_Kana_Lock") 'Kana-Lock)
-    (cons (C-enum "GDK_Kana_Shift") 'Kana-Shift)
-    (cons (C-enum "GDK_Eisu_Shift") 'Eisu-Shift)
-    (cons (C-enum "GDK_Eisu_toggle") 'Eisu-toggle)
-    (cons (C-enum "GDK_Home") 'Home)
-    (cons (C-enum "GDK_Left") 'Left)
-    (cons (C-enum "GDK_Up") 'Up)
-    (cons (C-enum "GDK_Right") 'Right)
-    (cons (C-enum "GDK_Down") 'Down)
-    (cons (C-enum "GDK_Prior") 'Prior)
-    (cons (C-enum "GDK_Next") 'Next)
-    (cons (C-enum "GDK_End") 'End)
-    (cons (C-enum "GDK_Begin") 'Begin)
-    (cons (C-enum "GDK_Select") 'Select)
-    (cons (C-enum "GDK_Print") 'Print)
-    (cons (C-enum "GDK_Execute") 'Execute)
-    (cons (C-enum "GDK_Insert") 'Insert)
-    (cons (C-enum "GDK_Undo") 'Undo)
-    (cons (C-enum "GDK_Redo") 'Redo)
-    (cons (C-enum "GDK_Menu") 'Menu)
-    (cons (C-enum "GDK_Find") 'Find)
-    (cons (C-enum "GDK_Cancel") 'Stop) ;originally called Cancel
-    (cons (C-enum "GDK_Help") 'Help)
-    (cons (C-enum "GDK_Break") 'Break)
-    (cons (C-enum "GDK_script_switch") 'script-switch)
-    (cons (C-enum "GDK_Num_Lock") 'Num-Lock)
-    (cons (C-enum "GDK_KP_Space") 'KP-Space)
-    (cons (C-enum "GDK_KP_Tab") 'KP-Tab)
-    (cons (C-enum "GDK_KP_Enter") 'KP-Enter)
-    (cons (C-enum "GDK_KP_F1") 'KP-F1)
-    (cons (C-enum "GDK_KP_F2") 'KP-F2)
-    (cons (C-enum "GDK_KP_F3") 'KP-F3)
-    (cons (C-enum "GDK_KP_F4") 'KP-F4)
-    (cons (C-enum "GDK_KP_Multiply") 'KP-Multiply)
-    (cons (C-enum "GDK_KP_Add") 'KP-Add)
-    (cons (C-enum "GDK_KP_Separator") 'KP-Separator)
-    (cons (C-enum "GDK_KP_Subtract") 'KP-Subtract)
-    (cons (C-enum "GDK_KP_Decimal") 'KP-Decimal)
-    (cons (C-enum "GDK_KP_Divide") 'KP-Divide)
-    (cons (C-enum "GDK_KP_0") 'KP-0)
-    (cons (C-enum "GDK_KP_1") 'KP-1)
-    (cons (C-enum "GDK_KP_2") 'KP-2)
-    (cons (C-enum "GDK_KP_3") 'KP-3)
-    (cons (C-enum "GDK_KP_4") 'KP-4)
-    (cons (C-enum "GDK_KP_5") 'KP-5)
-    (cons (C-enum "GDK_KP_6") 'KP-6)
-    (cons (C-enum "GDK_KP_7") 'KP-7)
-    (cons (C-enum "GDK_KP_8") 'KP-8)
-    (cons (C-enum "GDK_KP_9") 'KP-9)
-    (cons (C-enum "GDK_KP_Equal") 'KP-Equal)
-    (cons (C-enum "GDK_F1") 'F1)
-    (cons (C-enum "GDK_F2") 'F2)
-    (cons (C-enum "GDK_F3") 'F3)
-    (cons (C-enum "GDK_F4") 'F4)
-    (cons (C-enum "GDK_F5") 'F5)
-    (cons (C-enum "GDK_F6") 'F6)
-    (cons (C-enum "GDK_F7") 'F7)
-    (cons (C-enum "GDK_F8") 'F8)
-    (cons (C-enum "GDK_F9") 'F9)
-    (cons (C-enum "GDK_F10") 'F10)
-    (cons (C-enum "GDK_F11") 'F11)
-    (cons (C-enum "GDK_F12") 'F12)
-    (cons (C-enum "GDK_F13") 'F13)
-    (cons (C-enum "GDK_F14") 'F14)
-    (cons (C-enum "GDK_F15") 'F15)
-    (cons (C-enum "GDK_F16") 'F16)
-    (cons (C-enum "GDK_F17") 'F17)
-    (cons (C-enum "GDK_F18") 'F18)
-    (cons (C-enum "GDK_F19") 'F19)
-    (cons (C-enum "GDK_F20") 'F20)
-    (cons (C-enum "GDK_F21") 'F21)
-    (cons (C-enum "GDK_F22") 'F22)
-    (cons (C-enum "GDK_F23") 'F23)
-    (cons (C-enum "GDK_F24") 'F24)
-    (cons (C-enum "GDK_F25") 'F25)
-    (cons (C-enum "GDK_F26") 'F26)
-    (cons (C-enum "GDK_F27") 'F27)
-    (cons (C-enum "GDK_F28") 'F28)
-    (cons (C-enum "GDK_F29") 'F29)
-    (cons (C-enum "GDK_F30") 'F30)
-    (cons (C-enum "GDK_F31") 'F31)
-    (cons (C-enum "GDK_F32") 'F32)
-    (cons (C-enum "GDK_F33") 'F33)
-    (cons (C-enum "GDK_F34") 'F34)
-    (cons (C-enum "GDK_F35") 'F35)
-    (cons (C-enum "GDK_Shift_L") 'Shift-L)
-    (cons (C-enum "GDK_Shift_R") 'Shift-R)
-    (cons (C-enum "GDK_Control_L") 'Control-L)
-    (cons (C-enum "GDK_Control_R") 'Control-R)
-    (cons (C-enum "GDK_Caps_Lock") 'Caps-Lock)
-    (cons (C-enum "GDK_Shift_Lock") 'Shift-Lock)
-    (cons (C-enum "GDK_Meta_L") 'Meta-L)
-    (cons (C-enum "GDK_Meta_R") 'Meta-R)
-    (cons (C-enum "GDK_Alt_L") 'Alt-L)
-    (cons (C-enum "GDK_Alt_R") 'Alt-R)
-    (cons (C-enum "GDK_Super_L") 'Super-L)
-    (cons (C-enum "GDK_Super_R") 'Super-R)
-    (cons (C-enum "GDK_Hyper_L") 'Hyper-L)
-    (cons (C-enum "GDK_Hyper_R") 'Hyper-R)
-    (cons (C-enum "GDK_Delete") 'Delete)
-    (cons (C-enum "GDK_dead_acute") 'mute-acute)
-    (cons (C-enum "GDK_dead_grave") 'mute-grave)
-    (cons (C-enum "GDK_dead_circumflex") 'mute-asciicircum)
-    (cons (C-enum "GDK_dead_diaeresis") 'mute-diaeresis)
-    (cons (C-enum "GDK_dead_tilde") 'mute-asciitilde)
-    (cons (C-enum "GDK_LiraSign") 'lira)
-    ;; '(#x8000BE . guilder)
-    (cons (C-enum "GDK_Ydiaeresis") 'Ydiaeresis)
-    ;; '(#x8000F6 . longminus)
-    ;; '(#x8000FC . block)
-    ;; '(#x80FF48 . hpModelock1)
-    ;; '(#x80FF49 . hpModelock2)
-    ;; '(#x80FF6C . Reset)
-    ;; '(#x80FF6D . System)
-    ;; '(#x80FF6E . User)
-    ;; '(#x80FF6F . ClearLine)
-    ;; '(#x80FF70 . InsertLine)
-    ;; '(#x80FF71 . DeleteLine)
-    ;; '(#x80FF72 . InsertChar)
-    ;; '(#x80FF73 . DeleteChar)
-    ;; '(#x80FF74 . BackTab)
-    ;; '(#x80FF75 . KP-BackTab)
-    ;; '(#x80FF76 . Ext16bit-L)
-    ;; '(#x80FF77 . Ext16bit-R)
-    ;; '(#x84FF02 . osfCopy)
-    ;; '(#x84FF03 . osfCut)
-    ;; '(#x84FF04 . osfPaste)
-    ;; '(#x84FF08 . osfBackSpace)
-    ;; '(#x84FF0B . osfClear)
-    ;; '(#x84FF31 . osfAddMode)
-    ;; '(#x84FF32 . osfPrimaryPaste)
-    ;; '(#x84FF33 . osfQuickPaste)
-    ;; '(#x84FF41 . osfPageUp)
-    ;; '(#x84FF42 . osfPageDown)
-    ;; '(#x84FF44 . osfActivate)
-    ;; '(#x84FF45 . osfMenuBar)
-    ;; '(#x84FF51 . osfLeft)
-    ;; '(#x84FF52 . osfUp)
-    ;; '(#x84FF53 . osfRight)
-    ;; '(#x84FF54 . osfDown)
-    ;; '(#x84FF57 . osfEndLine)
-    ;; '(#x84FF58 . osfBeginLine)
-    ;; '(#x84FF60 . osfSelect)
-    ;; '(#x84FF63 . osfInsert)
-    ;; '(#x84FF65 . osfUndo)
-    ;; '(#x84FF67 . osfMenu)
-    ;; '(#x84FF69 . osfCancel)
-    ;; '(#x84FF6A . osfHelp)
-    ;; '(#x84FFFF . osfDelete)
-    (cons (C-enum "GDK_VoidSymbol") 'VoidSymbol))
-   (lambda (a b) (< (car a) (car b)))))
\ No newline at end of file
+(define gtk-key-translation-table
+  (sort! (translation-vector) (lambda (a b) (< (cdr a) (cdr b)))))
\ No newline at end of file