diff options
Diffstat (limited to 'tqtinterface/qt4/plugins/src/inputmethods/simple/xcompose2q.rb')
-rw-r--r-- | tqtinterface/qt4/plugins/src/inputmethods/simple/xcompose2q.rb | 450 |
1 files changed, 0 insertions, 450 deletions
diff --git a/tqtinterface/qt4/plugins/src/inputmethods/simple/xcompose2q.rb b/tqtinterface/qt4/plugins/src/inputmethods/simple/xcompose2q.rb deleted file mode 100644 index e71c557..0000000 --- a/tqtinterface/qt4/plugins/src/inputmethods/simple/xcompose2q.rb +++ /dev/null @@ -1,450 +0,0 @@ -#!/usr/bin/env ruby - -# xcompose2q.rb: X Compose table to TQSimpleInputContext table translator -# Copyright (C) 2004 immodule for TQt Project. All rights reserved. -# -# This file is written to contribute to Trolltech AS under their own -# licence. You may use this file under your TQt license. Following -# description is copied from their original file headers. Contact -# [email protected] if any conditions of this licensing are -# not clear to you. - -# This file may be distributed under the terms of the Q Public License -# as defined by Trolltech AS of Norway and appearing in the file -# LICENSE.TQPL included in the packaging of this file. -# -# This file may be distributed and/or modified under the terms of the -# GNU General Public License version 2 as published by the Free Software -# Foundation and appearing in the file LICENSE.GPL included in the -# packaging of this file. -# -# Licensees holding valid TQt Enterprise Edition or TQt Professional Edition -# licenses may use this file in accordance with the TQt Commercial License -# Agreement provided with the Software. -# -# This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE -# WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. -# -# See http://www.trolltech.com/pricing.html or email [email protected] for -# information about TQt Commercial License Agreements. -# See http://www.trolltech.com/qpl/ for TQPL licensing information. -# See http://www.trolltech.com/gpl/ for GPL licensing information. -# -# Contact [email protected] if any conditions of this licensing are -# not clear to you. - - -# Usage: -# xcompose2q.rb /usr/X11R6/lib/X11/locale/en_US.UTF-8/Compose - -require 'uconv' - -# translation table for lazy sorting -raw2key = { - "0y1120" => "UNITIZE(TQt::Key_Multi_key)", - "0y1250" => "UNITIZE(TQt::Key_Dead_Grave)", - "0y1251" => "UNITIZE(TQt::Key_Dead_Acute)", - "0y1252" => "UNITIZE(TQt::Key_Dead_Circumflex)", - "0y1253" => "UNITIZE(TQt::Key_Dead_Tilde)", - "0y1254" => "UNITIZE(TQt::Key_Dead_Macron)", - "0y1255" => "UNITIZE(TQt::Key_Dead_Breve)", - "0y1256" => "UNITIZE(TQt::Key_Dead_Abovedot)", - "0y1257" => "UNITIZE(TQt::Key_Dead_Diaeresis)", - "0y1258" => "UNITIZE(TQt::Key_Dead_Abovering)", - "0y1259" => "UNITIZE(TQt::Key_Dead_Doubleacute)", - "0y125a" => "UNITIZE(TQt::Key_Dead_Caron)", - "0y125b" => "UNITIZE(TQt::Key_Dead_Cedilla)", - "0y125c" => "UNITIZE(TQt::Key_Dead_Ogonek)", - "0y125d" => "UNITIZE(TQt::Key_Dead_Iota)", - "0y125e" => "UNITIZE(TQt::Key_Dead_Voiced_Sound)", - "0y125f" => "UNITIZE(TQt::Key_Dead_Semivoiced_Sound)", - "0y1260" => "UNITIZE(TQt::Key_Dead_Belowdot)", - "0y1261" => "UNITIZE(TQt::Key_Dead_Hook)", - "0y1262" => "UNITIZE(TQt::Key_Dead_Horn)", -} - -# X's KeySym to Unicode translation table. The tqunicode value is -# extracted from -# TQETWidget::translateKeyEventInternal(). Translation for some -# keys are not available -x2q = { - "Multi_key" => "0y1120", - "dead_grave" => "0y1250", - "dead_acute" => "0y1251", - "dead_circumflex" => "0y1252", - "dead_tilde" => "0y1253", - "dead_macron" => "0y1254", - "dead_breve" => "0y1255", - "dead_abovedot" => "0y1256", - "dead_diaeresis" => "0y1257", - "dead_abovering" => "0y1258", - "dead_doubleacute" => "0y1259", - "dead_caron" => "0y125a", - "dead_cedilla" => "0y125b", - "dead_ogonek" => "0y125c", - "dead_iota" => "0y125d", - "dead_voiced_sound" => "0y125e", - "dead_semivoiced_sound" => "0y125f", - "dead_belowdot" => "0y1260", - "dead_hook" => "0y1261", - "dead_horn" => "0y1262", - - "0" => "0x0030", - "1" => "0x0031", - "2" => "0x0032", - "3" => "0x0033", - "4" => "0x0034", - "5" => "0x0035", - "6" => "0x0036", - "7" => "0x0037", - "8" => "0x0038", - "9" => "0x0039", - "A" => "0x0041", - "AE" => "0x00c6", - "Abreve" => "0x0102", - "Acircumflex" => "0x00c2", - "Adiaeresis" => "0x00c4", - "Arabic_alef" => "0x0627", - "Arabic_waw" => "0x0648", - "Arabic_yeh" => "0x064a", - "Aring" => "0x00c5", - "B" => "0x0042", - "C" => "0x0043", - "Ccedilla" => "0x00c7", - "Cyrillic_A" => "0x0410", - "Cyrillic_CHE" => "0x0427", - "Cyrillic_E" => "0x042d", - "Cyrillic_GHE" => "0x0413", - "Cyrillic_I" => "0x0418", - "Cyrillic_IE" => "0x0415", - "Cyrillic_KA" => "0x041a", - "Cyrillic_O" => "0x041e", - "Cyrillic_U" => "0x0423", - "Cyrillic_YERU" => "0x042b", - "Cyrillic_ZE" => "0x0417", - "Cyrillic_ZHE" => "0x0416", - "Cyrillic_a" => "0x0430", - "Cyrillic_che" => "0x0447", - "Cyrillic_e" => "0x044d", - "Cyrillic_ghe" => "0x0433", - "Cyrillic_i" => "0x0438", - "Cyrillic_ie" => "0x0435", - "Cyrillic_ka" => "0x043a", - "Cyrillic_o" => "0x043e", - "Cyrillic_u" => "0x0443", - "Cyrillic_yeru" => "0x044b", - "Cyrillic_ze" => "0x0437", - "Cyrillic_zhe" => "0x0436", - "D" => "0x0044", - "E" => "0x0045", - "Ecircumflex" => "0x00ca", - "Emacron" => "0x0112", - "F" => "0x0046", - "G" => "0x0047", - "Greek_ALPHA" => "0x0391", - "Greek_EPSILON" => "0x0395", - "Greek_ETA" => "0x0397", - "Greek_IOTA" => "0x0399", - "Greek_OMEGA" => "0x03a9", - "Greek_OMICRON" => "0x039f", - "Greek_RHO" => "0x03a1", - "Greek_UPSILON" => "0x03a5", - "Greek_alpha" => "0x03b1", - "Greek_alphaaccent" => "0x03ac", - "Greek_epsilon" => "0x03b5", - "Greek_eta" => "0x03b7", - "Greek_etaaccent" => "0x03ae", - "Greek_iota" => "0x03b9", - "Greek_iotadieresis" => "0x03ca", - "Greek_omega" => "0x03c9", - "Greek_omegaaccent" => "0x03ce", - "Greek_omicron" => "0x03bf", - "Greek_rho" => "0x03c1", - "Greek_upsilon" => "0x03c5", - "Greek_upsilondieresis" => "0x03cb", - "H" => "0x0048", - "I" => "0x0049", - "Idiaeresis" => "0x00cf", - "J" => "0x004a", - "K" => "0x004b", - "KP_0" => "0x0000", - "KP_1" => "0x0000", - "KP_2" => "0x0000", - "KP_3" => "0x0000", - "KP_4" => "0x0000", - "KP_5" => "0x0000", - "KP_6" => "0x0000", - "KP_7" => "0x0000", - "KP_8" => "0x0000", - "KP_9" => "0x0000", - "KP_Add" => "0x0000", - "KP_Divide" => "0x0000", - "KP_Equal" => "0x0000", - "KP_Space" => "0x0000", - "L" => "0x004c", - "M" => "0x004d", - "N" => "0x004e", - "O" => "0x004f", - "Ocircumflex" => "0x00d4", - "Odiaeresis" => "0x00d6", - "Ohorn" => "0x0000", - "Omacron" => "0x014c", - "Ooblique" => "0x00d8", - "Otilde" => "0x00d5", - "P" => "0x0050", - "Q" => "0x0051", - "R" => "0x0052", - "S" => "0x0053", - "Sacute" => "0x015a", - "Scaron" => "0x0160", - "T" => "0x0054", - "U" => "0x0055", - "Udiaeresis" => "0x00dc", - "Uhorn" => "0x0000", - "Ukrainian_I" => "0x0406", - "Ukrainian_i" => "0x0456", - "Umacron" => "0x016a", - "Utilde" => "0x0168", - "V" => "0x0056", - "W" => "0x0057", - "X" => "0x0058", - "Y" => "0x0059", - "Z" => "0x005a", - "a" => "0x0061", - "abreve" => "0x0103", - "acircumflex" => "0x00e2", - "acute" => "0x00b4", - "adiaeresis" => "0x00e4", - "ae" => "0x00e6", - "ampersand" => "0x0026", - "apostrophe" => "0x0027", - "approximate" => "0x223c", - "aring" => "0x00e5", - "asciicircum" => "0x005e", - "asciitilde" => "0x007e", - "asterisk" => "0x002a", - "at" => "0x0040", - "b" => "0x0062", - "backslash" => "0x005c", - "bar" => "0x007c", - "braceleft" => "0x007b", - "braceright" => "0x007d", - "bracketleft" => "0x005b", - "bracketright" => "0x005d", - "c" => "0x0063", - "ccedilla" => "0x00e7", - "colon" => "0x003a", - "combining_acute" => "0x0000", - "combining_belowdot" => "0x0000", - "combining_grave" => "0x0000", - "combining_hook" => "0x0000", - "combining_tilde" => "0x0000", - "comma" => "0x002c", - "d" => "0x0064", - "diaeresis" => "0x00a8", - "dollar" => "0x0024", - "e" => "0x0065", - "ecircumflex" => "0x00ea", - "emacron" => "0x0113", - "equal" => "0x003d", - "exclam" => "0x0021", - "f" => "0x0066", - "g" => "0x0067", - "grave" => "0x0060", - "greater" => "0x003e", - "greaterthanequal" => "0x2265", - "h" => "0x0068", - "hebrew_aleph" => "0x05d0", - "hebrew_bet" => "0x05d1", - "hebrew_beth" => "0x05d1", - "hebrew_dalet" => "0x05d3", - "hebrew_daleth" => "0x05d3", - "hebrew_finalkaph" => "0x05da", - "hebrew_finalpe" => "0x05e3", - "hebrew_gimel" => "0x05d2", - "hebrew_gimmel" => "0x05d2", - "hebrew_he" => "0x05d4", - "hebrew_kaph" => "0x05db", - "hebrew_kuf" => "0x05e7", - "hebrew_lamed" => "0x05dc", - "hebrew_mem" => "0x05de", - "hebrew_nun" => "0x05e0", - "hebrew_pe" => "0x05e4", - "hebrew_qoph" => "0x05e7", - "hebrew_resh" => "0x05e8", - "hebrew_samech" => "0x05e1", - "hebrew_samekh" => "0x05e1", - "hebrew_shin" => "0x05e9", - "hebrew_taf" => "0x05ea", - "hebrew_taw" => "0x05ea", - "hebrew_tet" => "0x05d8", - "hebrew_teth" => "0x05d8", - "hebrew_waw" => "0x05d5", - "hebrew_yod" => "0x05d9", - "hebrew_zade" => "0x05e6", - "hebrew_zadi" => "0x05e6", - "hebrew_zain" => "0x05d6", - "hebrew_zayin" => "0x05d6", - "i" => "0x0069", - "identical" => "0x2261", - "idiaeresis" => "0x00ef", - "includedin" => "0x2282", - "includes" => "0x2283", - "j" => "0x006a", - "k" => "0x006b", - "kana_A" => "0x30a2", - "kana_CHI" => "0x30c1", - "kana_E" => "0x30a8", - "kana_FU" => "0x30d5", - "kana_HA" => "0x30cf", - "kana_HE" => "0x30d8", - "kana_HI" => "0x30d2", - "kana_HO" => "0x30db", - "kana_I" => "0x30a4", - "kana_KA" => "0x30ab", - "kana_KE" => "0x30b1", - "kana_KI" => "0x30ad", - "kana_KO" => "0x30b3", - "kana_KU" => "0x30af", - "kana_MA" => "0x30de", - "kana_ME" => "0x30e1", - "kana_MI" => "0x30df", - "kana_MO" => "0x30e2", - "kana_MU" => "0x30e0", - "kana_NA" => "0x30ca", - "kana_NE" => "0x30cd", - "kana_NI" => "0x30cb", - "kana_NO" => "0x30ce", - "kana_NU" => "0x30cc", - "kana_O" => "0x30aa", - "kana_RA" => "0x30e9", - "kana_RE" => "0x30ec", - "kana_RI" => "0x30ea", - "kana_RO" => "0x30ed", - "kana_RU" => "0x30eb", - "kana_SA" => "0x30b5", - "kana_SE" => "0x30bb", - "kana_SHI" => "0x30b7", - "kana_SO" => "0x30bd", - "kana_SU" => "0x30b9", - "kana_TA" => "0x30bf", - "kana_TE" => "0x30c6", - "kana_TO" => "0x30c8", - "kana_TSU" => "0x30c4", - "kana_U" => "0x30a6", - "kana_WA" => "0x30ef", - "kana_WO" => "0x30f2", - "kana_YA" => "0x30e4", - "kana_YO" => "0x30e8", - "kana_YU" => "0x30e6", - "l" => "0x006c", - "leftarrow" => "0x2190", - "leftcaret" => "0x003c", - "leftshoe" => "0x2282", - "less" => "0x003c", - "lessthanequal" => "0x2264", - "m" => "0x006d", - "macron" => "0x00af", - "minus" => "0x002d", - "n" => "0x006e", - "numbersign" => "0x0023", - "o" => "0x006f", - "ocircumflex" => "0x00f4", - "odiaeresis" => "0x00f6", - "ohorn" => "0x0000", - "omacron" => "0x014d", - "oslash" => "0x00f8", - "otilde" => "0x00f5", - "p" => "0x0070", - "parenleft" => "0x0028", - "parenright" => "0x0029", - "percent" => "0x0025", - "period" => "0x002e", - "plus" => "0x002b", - "q" => "0x0071", - "question" => "0x003f", - "quotedbl" => "0x0022", - "r" => "0x0072", - "rightarrow" => "0x2192", - "rightcaret" => "0x003e", - "rightshoe" => "0x2283", - "righttack" => "0x22a3", - "s" => "0x0073", - "sacute" => "0x015b", - "scaron" => "0x0161", - "semicolon" => "0x003b", - "slash" => "0x002f", - "space" => "0x0020", - "t" => "0x0074", - "u" => "0x0075", - "udiaeresis" => "0x00fc", - "uhorn" => "0x0000", - "umacron" => "0x016b", - "underbar" => "0x005f", - "underscore" => "0x005f", - "utilde" => "0x0169", - "v" => "0x0076", - "w" => "0x0077", - "x" => "0x0078", - "y" => "0x0079", - "z" => "0x007a", -} - -readlines.collect { - |line| - - broken = "" - seq = ["0", "0", "0", "0", "0", "0"] - index = 0 - rhs = "0x0000" - comment = "" - - case line - when /^(#|XCOMM)(.*)$/ - comment = "// #{$2}\n" - rhs = :isCommentLine - when /^$/ - comment = "\n" - rhs = :isCommentLine - else - line.scan(/<([^>]+)>/) { - |args| - keysym = args[0] - unit = x2q[keysym] || keysym.sub(/^U([\da-fA-F]{4,5})$/, "0x\\1") - if (/^(0x(0000|[\da-fA-F]{5,})|dead_space)$/ =~ unit) - broken = "// /* broken */" - end - seq[index] = unit - index += 1 - } - - Regexp.new(':\s+"(.+)"\s+(.+)$', nil, 'u') =~ line - rhs = Uconv::u8tou16($1).unpack('v')[0] - rhs = format("0x%04x", rhs) - comment = $2 - end - - entry = { - :broken => broken, - :seq => seq, - :rhs => rhs, - :comment => comment - } -}.sort { - |entry_a, entry_b| - - entry_a[:seq] <=> entry_b[:seq] -}.each { - |entry| - - broken, seq, rhs, comment = entry.values_at(:broken, :seq, :rhs, :comment) - if (rhs == :isCommentLine) - print comment - else - seq = seq.collect { - |unit| - raw2key[unit] || unit - } - print "#{broken} { {#{seq.join(", ")}}, #{rhs} }, // #{comment}\n" - end -} |