pax_global_header00006660000000000000000000000064117721072560014522gustar00rootroot0000000000000052 comment=4acbae44ff8dd49f0fb7e7519c1be3a29b0e8b35 scim-1.4.14/000077500000000000000000000000001177210725600125445ustar00rootroot00000000000000scim-1.4.14/ABOUT-NLS000066400000000000000000001511161177210725600140000ustar00rootroot00000000000000Notes on the Free Translation Project ************************************* Free software is going international! The Free Translation Project is a way to get maintainers of free software, translators, and users all together, so that will gradually become able to speak many languages. A few packages already provide translations for their messages. If you found this `ABOUT-NLS' file inside a distribution, you may assume that the distributed package does use GNU `gettext' internally, itself available at your nearest GNU archive site. But you do _not_ need to install GNU `gettext' prior to configuring, installing or using this package with messages translated. Installers will find here some useful hints. These notes also explain how users should proceed for getting the programs to use the available translations. They tell how people wanting to contribute and work at translations should contact the appropriate team. When reporting bugs in the `intl/' directory or bugs which may be related to internationalization, you should tell about the version of `gettext' which is used. The information can be found in the `intl/VERSION' file, in internationalized packages. Quick configuration advice ========================== If you want to exploit the full power of internationalization, you should configure it using ./configure --with-included-gettext to force usage of internationalizing routines provided within this package, despite the existence of internationalizing capabilities in the operating system where this package is being installed. So far, only the `gettext' implementation in the GNU C library version 2 provides as many features (such as locale alias, message inheritance, automatic charset conversion or plural form handling) as the implementation here. It is also not possible to offer this additional functionality on top of a `catgets' implementation. Future versions of GNU `gettext' will very likely convey even more functionality. So it might be a good idea to change to GNU `gettext' as soon as possible. So you need _not_ provide this option if you are using GNU libc 2 or you have installed a recent copy of the GNU gettext package with the included `libintl'. INSTALL Matters =============== Some packages are "localizable" when properly installed; the programs they contain can be made to speak your own native language. Most such packages use GNU `gettext'. Other packages have their own ways to internationalization, predating GNU `gettext'. By default, this package will be installed to allow translation of messages. It will automatically detect whether the system already provides the GNU `gettext' functions. If not, the GNU `gettext' own library will be used. This library is wholly contained within this package, usually in the `intl/' subdirectory, so prior installation of the GNU `gettext' package is _not_ required. Installers may use special options at configuration time for changing the default behaviour. The commands: ./configure --with-included-gettext ./configure --disable-nls will respectively bypass any pre-existing `gettext' to use the internationalizing routines provided within this package, or else, _totally_ disable translation of messages. When you already have GNU `gettext' installed on your system and run configure without an option for your new package, `configure' will probably detect the previously built and installed `libintl.a' file and will decide to use this. This might be not what is desirable. You should use the more recent version of the GNU `gettext' library. I.e. if the file `intl/VERSION' shows that the library which comes with this package is more recent, you should use ./configure --with-included-gettext to prevent auto-detection. The configuration process will not test for the `catgets' function and therefore it will not be used. The reason is that even an emulation of `gettext' on top of `catgets' could not provide all the extensions of the GNU `gettext' library. Internationalized packages have usually many `po/LL.po' files, where LL gives an ISO 639 two-letter code identifying the language. Unless translations have been forbidden at `configure' time by using the `--disable-nls' switch, all available translations are installed together with the package. However, the environment variable `LINGUAS' may be set, prior to configuration, to limit the installed set. `LINGUAS' should then contain a space separated list of two-letter codes, stating which languages are allowed. Using This Package ================== As a user, if your language has been installed for this package, you only have to set the `LANG' environment variable to the appropriate `LL_CC' combination. Here `LL' is an ISO 639 two-letter language code, and `CC' is an ISO 3166 two-letter country code. For example, let's suppose that you speak German and live in Germany. At the shell prompt, merely execute `setenv LANG de_DE' (in `csh'), `export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash'). This can be done from your `.login' or `.profile' file, once and for all. You might think that the country code specification is redundant. But in fact, some languages have dialects in different countries. For example, `de_AT' is used for Austria, and `pt_BR' for Brazil. The country code serves to distinguish the dialects. The locale naming convention of `LL_CC', with `LL' denoting the language and `CC' denoting the country, is the one use on systems based on GNU libc. On other systems, some variations of this scheme are used, such as `LL' or `LL_CC.ENCODING'. You can get the list of locales supported by your system for your country by running the command `locale -a | grep '^LL''. Not all programs have translations for all languages. By default, an English message is shown in place of a nonexistent translation. If you understand other languages, you can set up a priority list of languages. This is done through a different environment variable, called `LANGUAGE'. GNU `gettext' gives preference to `LANGUAGE' over `LANG' for the purpose of message handling, but you still need to have `LANG' set to the primary language; this is required by other parts of the system libraries. For example, some Swedish users who would rather read translations in German than English for when Swedish is not available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'. Special advice for Norwegian users: The language code for Norwegian bokma*l changed from `no' to `nb' recently (in 2003). During the transition period, while some message catalogs for this language are installed under `nb' and some older ones under `no', it's recommended for Norwegian users to set `LANGUAGE' to `nb:no' so that both newer and older translations are used. In the `LANGUAGE' environment variable, but not in the `LANG' environment variable, `LL_CC' combinations can be abbreviated as `LL' to denote the language's main dialect. For example, `de' is equivalent to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT' (Portuguese as spoken in Portugal) in this context. Translating Teams ================= For the Free Translation Project to be a success, we need interested people who like their own language and write it well, and who are also able to synergize with other translators speaking the same language. Each translation team has its own mailing list. The up-to-date list of teams can be found at the Free Translation Project's homepage, `http://www.iro.umontreal.ca/contrib/po/HTML/', in the "National teams" area. If you'd like to volunteer to _work_ at translating messages, you should become a member of the translating team for your own language. The subscribing address is _not_ the same as the list itself, it has `-request' appended. For example, speakers of Swedish can send a message to `sv-request@li.org', having this message body: subscribe Keep in mind that team members are expected to participate _actively_ in translations, or at solving translational difficulties, rather than merely lurking around. If your team does not exist yet and you want to start one, or if you are unsure about what to do or how to get started, please write to `translation@iro.umontreal.ca' to reach the coordinator for all translator teams. The English team is special. It works at improving and uniformizing the terminology in use. Proven linguistic skill are praised more than programming skill, here. Available Packages ================== Languages are not equally supported in all packages. The following matrix shows the current state of internationalization, as of January 2004. The matrix shows, in regard of each package, for which languages PO files have been submitted to translation coordination, with a translation percentage of at least 50%. Ready PO files af am ar az be bg bs ca cs da de el en en_GB eo es +----------------------------------------------------+ a2ps | [] [] [] [] | aegis | () | ant-phone | () | anubis | | ap-utils | | aspell | [] | bash | [] [] [] [] | batchelor | | bfd | [] [] | binutils | [] [] | bison | [] [] [] | bluez-pin | [] [] [] | clisp | | clisp | [] [] [] | console-tools | [] [] | coreutils | [] [] [] [] | cpio | [] [] [] | darkstat | [] () [] | diffutils | [] [] [] [] [] [] [] | e2fsprogs | [] [] [] | enscript | [] [] [] [] | error | [] [] [] [] [] | fetchmail | [] () [] [] [] [] | fileutils | [] [] [] | findutils | [] [] [] [] [] [] [] | flex | [] [] [] [] | fslint | | gas | [] | gawk | [] [] [] [] | gbiff | [] | gcal | [] | gcc | [] [] | gettext | [] [] [] [] [] | gettext-examples | [] [] [] [] | gettext-runtime | [] [] [] [] [] | gettext-tools | [] [] [] | gimp-print | [] [] [] [] [] | gliv | | glunarclock | [] [] | gnubiff | [] | gnucash | [] () [] [] | gnucash-glossary | [] () [] | gnupg | [] () [] [] [] [] | gpe-aerial | [] | gpe-beam | [] [] | gpe-calendar | [] [] | gpe-clock | [] [] | gpe-conf | [] [] | gpe-contacts | [] [] | gpe-edit | [] | gpe-go | [] | gpe-login | [] [] | gpe-ownerinfo | [] [] | gpe-sketchbook | [] [] | gpe-su | [] [] | gpe-taskmanager | [] [] | gpe-timesheet | [] | gpe-today | [] [] | gpe-todo | [] [] | gphoto2 | [] [] [] [] | gprof | [] [] [] | gpsdrive | () () () | gramadoir | [] | grep | [] [] [] [] [] [] | gretl | [] | gtick | [] () | hello | [] [] [] [] [] [] | id-utils | [] [] | indent | [] [] [] [] | iso_3166 | [] [] [] [] [] [] [] [] [] [] | iso_3166_1 | [] [] [] [] [] [] | iso_3166_2 | | iso_3166_3 | [] | iso_4217 | [] [] [] [] | iso_639 | | jpilot | [] [] [] | jtag | | jwhois | [] | kbd | [] [] [] [] [] | latrine | () | ld | [] [] | libc | [] [] [] [] [] [] | libgpewidget | [] [] | libiconv | [] [] [] [] [] | lifelines | [] () | lilypond | [] | lingoteach | | lingoteach_lessons | () () | lynx | [] [] [] [] | m4 | [] [] [] [] | mailutils | [] [] | make | [] [] [] | man-db | [] () [] [] () | minicom | [] [] [] | mysecretdiary | [] [] [] | nano | [] () [] [] [] | nano_1_0 | [] () [] [] [] | opcodes | [] | parted | [] [] [] [] [] | ptx | [] [] [] [] [] | python | | radius | [] | recode | [] [] [] [] [] [] [] | rpm | [] [] | screem | | scrollkeeper | [] [] [] [] [] [] | sed | [] [] [] [] [] [] | sh-utils | [] [] [] | shared-mime-info | | sharutils | [] [] [] [] [] [] | silky | () | skencil | [] () [] | sketch | [] () [] | soundtracker | [] [] [] | sp | [] | tar | [] [] [] [] | texinfo | [] [] [] | textutils | [] [] [] [] | tin | () () | tp-robot | | tuxpaint | [] [] [] [] [] [] [] | unicode-han-tra... | | unicode-transla... | | util-linux | [] [] [] [] [] | vorbis-tools | [] [] [] [] | wastesedge | () | wdiff | [] [] [] [] | wget | [] [] [] [] [] [] | xchat | [] [] [] [] | xfree86_xkb_xml | [] [] | xpad | [] | +----------------------------------------------------+ af am ar az be bg bs ca cs da de el en en_GB eo es 4 0 0 1 9 4 1 40 41 60 78 17 1 5 13 68 et eu fa fi fr ga gl he hr hu id is it ja ko lg +-------------------------------------------------+ a2ps | [] [] [] () () | aegis | | ant-phone | [] | anubis | [] | ap-utils | [] | aspell | [] [] | bash | [] [] | batchelor | [] [] | bfd | [] | binutils | [] [] | bison | [] [] [] [] | bluez-pin | [] [] [] [] [] | clisp | | clisp | [] | console-tools | | coreutils | [] [] [] [] [] [] | cpio | [] [] [] [] | darkstat | () [] [] [] | diffutils | [] [] [] [] [] [] [] | e2fsprogs | | enscript | [] [] | error | [] [] [] [] | fetchmail | [] | fileutils | [] [] [] [] [] [] | findutils | [] [] [] [] [] [] [] [] [] [] [] | flex | [] [] [] | fslint | [] | gas | [] | gawk | [] [] [] | gbiff | [] | gcal | [] | gcc | [] | gettext | [] [] [] | gettext-examples | [] [] | gettext-runtime | [] [] [] [] [] | gettext-tools | [] [] [] | gimp-print | [] [] | gliv | () | glunarclock | [] [] [] [] | gnubiff | [] | gnucash | () [] | gnucash-glossary | [] | gnupg | [] [] [] [] [] [] [] | gpe-aerial | [] | gpe-beam | [] | gpe-calendar | [] [] [] | gpe-clock | [] | gpe-conf | [] | gpe-contacts | [] [] | gpe-edit | [] [] | gpe-go | [] | gpe-login | [] [] | gpe-ownerinfo | [] [] [] | gpe-sketchbook | [] | gpe-su | [] | gpe-taskmanager | [] | gpe-timesheet | [] [] [] | gpe-today | [] [] | gpe-todo | [] [] | gphoto2 | [] [] [] | gprof | [] [] | gpsdrive | () () () | gramadoir | [] [] | grep | [] [] [] [] [] [] [] [] [] [] [] | gretl | [] [] | gtick | [] [] [] | hello | [] [] [] [] [] [] [] [] [] [] [] [] [] | id-utils | [] [] [] [] | indent | [] [] [] [] [] [] [] [] [] | iso_3166 | [] [] [] [] [] [] [] | iso_3166_1 | [] [] [] [] [] | iso_3166_2 | | iso_3166_3 | | iso_4217 | [] [] [] [] [] [] | iso_639 | | jpilot | [] () | jtag | [] | jwhois | [] [] [] [] | kbd | [] | latrine | [] | ld | [] | libc | [] [] [] [] [] [] | libgpewidget | [] [] [] [] | libiconv | [] [] [] [] [] [] [] [] [] | lifelines | () | lilypond | [] | lingoteach | [] [] | lingoteach_lessons | | lynx | [] [] [] [] | m4 | [] [] [] [] | mailutils | | make | [] [] [] [] [] [] | man-db | () () | minicom | [] [] [] [] | mysecretdiary | [] [] | nano | [] [] [] [] | nano_1_0 | [] [] [] [] | opcodes | [] | parted | [] [] [] | ptx | [] [] [] [] [] [] [] | python | | radius | [] | recode | [] [] [] [] [] [] | rpm | [] [] | screem | | scrollkeeper | [] | sed | [] [] [] [] [] [] [] [] [] | sh-utils | [] [] [] [] [] [] [] | shared-mime-info | [] [] [] | sharutils | [] [] [] [] [] | silky | () [] () () | skencil | [] | sketch | [] | soundtracker | [] [] | sp | [] () | tar | [] [] [] [] [] [] [] [] [] | texinfo | [] [] [] [] | textutils | [] [] [] [] [] [] | tin | [] () | tp-robot | [] | tuxpaint | [] [] [] [] [] [] [] [] [] | unicode-han-tra... | | unicode-transla... | [] [] | util-linux | [] [] [] [] () [] | vorbis-tools | [] | wastesedge | () | wdiff | [] [] [] [] [] [] | wget | [] [] [] [] [] [] [] | xchat | [] [] [] | xfree86_xkb_xml | [] [] | xpad | [] [] | +-------------------------------------------------+ et eu fa fi fr ga gl he hr hu id is it ja ko lg 22 2 1 26 106 28 24 8 10 41 33 1 26 33 12 0 lt lv mk mn ms mt nb nl nn no nso pl pt pt_BR ro ru +-----------------------------------------------------+ a2ps | [] [] () () [] [] [] | aegis | () () () | ant-phone | [] [] | anubis | [] [] [] [] [] [] | ap-utils | [] () [] | aspell | [] | bash | [] [] [] | batchelor | [] | bfd | [] | binutils | [] | bison | [] [] [] [] [] | bluez-pin | [] [] [] | clisp | | clisp | [] | console-tools | [] | coreutils | [] [] | cpio | [] [] [] [] [] | darkstat | [] [] [] [] | diffutils | [] [] [] [] [] [] | e2fsprogs | [] | enscript | [] [] [] [] | error | [] [] [] | fetchmail | [] [] () [] | fileutils | [] [] [] | findutils | [] [] [] [] [] | flex | [] [] [] [] | fslint | [] [] | gas | | gawk | [] [] [] | gbiff | [] [] | gcal | | gcc | | gettext | [] [] [] | gettext-examples | [] [] [] | gettext-runtime | [] [] [] [] | gettext-tools | [] [] | gimp-print | [] | gliv | [] [] [] | glunarclock | [] [] [] [] | gnubiff | [] | gnucash | [] [] () [] | gnucash-glossary | [] [] | gnupg | [] | gpe-aerial | [] [] [] [] | gpe-beam | [] [] [] [] | gpe-calendar | [] [] [] [] | gpe-clock | [] [] [] [] | gpe-conf | [] [] [] [] | gpe-contacts | [] [] [] [] | gpe-edit | [] [] [] [] | gpe-go | [] [] [] | gpe-login | [] [] [] [] | gpe-ownerinfo | [] [] [] [] | gpe-sketchbook | [] [] [] [] | gpe-su | [] [] [] [] | gpe-taskmanager | [] [] [] [] | gpe-timesheet | [] [] [] [] | gpe-today | [] [] [] [] | gpe-todo | [] [] [] [] | gphoto2 | [] | gprof | [] [] | gpsdrive | () () [] | gramadoir | () [] | grep | [] [] [] [] [] | gretl | | gtick | [] [] [] | hello | [] [] [] [] [] [] [] [] [] [] | id-utils | [] [] [] [] | indent | [] [] [] [] | iso_3166 | [] [] [] | iso_3166_1 | [] [] | iso_3166_2 | | iso_3166_3 | [] | iso_4217 | [] [] [] [] [] [] [] [] | iso_639 | [] | jpilot | () () | jtag | | jwhois | [] [] [] [] () | kbd | [] [] [] | latrine | [] | ld | | libc | [] [] [] [] | libgpewidget | [] [] [] | libiconv | [] [] [] [] [] | lifelines | | lilypond | | lingoteach | | lingoteach_lessons | | lynx | [] [] [] | m4 | [] [] [] [] [] | mailutils | [] [] [] | make | [] [] [] [] | man-db | [] | minicom | [] [] [] [] | mysecretdiary | [] [] [] | nano | [] [] [] [] [] | nano_1_0 | [] [] [] [] [] [] | opcodes | [] [] | parted | [] [] [] [] | ptx | [] [] [] [] [] [] [] [] | python | | radius | [] [] | recode | [] [] [] [] | rpm | [] [] [] | screem | | scrollkeeper | [] [] [] [] [] | sed | [] [] [] | sh-utils | [] [] | shared-mime-info | [] [] | sharutils | [] [] | silky | () | skencil | [] [] | sketch | [] [] | soundtracker | | sp | | tar | [] [] [] [] [] [] | texinfo | [] [] [] [] | textutils | [] [] | tin | | tp-robot | [] | tuxpaint | [] [] [] [] [] [] [] [] | unicode-han-tra... | | unicode-transla... | | util-linux | [] [] [] | vorbis-tools | [] [] [] | wastesedge | | wdiff | [] [] [] [] [] | wget | [] [] [] | xchat | [] [] [] | xfree86_xkb_xml | [] [] | xpad | [] [] | +-----------------------------------------------------+ lt lv mk mn ms mt nb nl nn no nso pl pt pt_BR ro ru 1 2 0 3 12 0 10 69 6 7 1 40 26 36 76 63 sk sl sr sv ta th tr uk ven vi wa xh zh_CN zh_TW zu +-----------------------------------------------------+ a2ps | [] [] [] [] | 16 aegis | | 0 ant-phone | | 3 anubis | [] [] | 9 ap-utils | () | 3 aspell | | 4 bash | | 9 batchelor | | 3 bfd | [] [] | 6 binutils | [] [] [] | 8 bison | [] [] | 14 bluez-pin | [] [] [] | 14 clisp | | 0 clisp | | 5 console-tools | | 3 coreutils | [] [] [] [] | 16 cpio | [] [] | 14 darkstat | [] [] [] () () | 12 diffutils | [] [] [] | 23 e2fsprogs | [] [] | 6 enscript | [] [] | 12 error | [] [] [] | 15 fetchmail | [] [] | 11 fileutils | [] [] [] [] [] | 17 findutils | [] [] [] [] [] [] | 29 flex | [] [] | 13 fslint | | 3 gas | [] | 3 gawk | [] [] | 12 gbiff | | 4 gcal | [] [] | 4 gcc | [] | 4 gettext | [] [] [] [] [] | 16 gettext-examples | [] [] [] [] [] | 14 gettext-runtime | [] [] [] [] [] [] [] [] | 22 gettext-tools | [] [] [] [] [] [] | 14 gimp-print | [] [] | 10 gliv | | 3 glunarclock | [] [] [] | 13 gnubiff | | 3 gnucash | [] [] | 9 gnucash-glossary | [] [] [] | 8 gnupg | [] [] [] [] | 17 gpe-aerial | [] | 7 gpe-beam | [] | 8 gpe-calendar | [] [] [] [] | 13 gpe-clock | [] [] [] | 10 gpe-conf | [] [] | 9 gpe-contacts | [] [] [] | 11 gpe-edit | [] [] [] [] [] | 12 gpe-go | | 5 gpe-login | [] [] [] [] [] | 13 gpe-ownerinfo | [] [] [] [] | 13 gpe-sketchbook | [] [] | 9 gpe-su | [] [] [] | 10 gpe-taskmanager | [] [] [] | 10 gpe-timesheet | [] [] [] [] | 12 gpe-today | [] [] [] [] [] | 13 gpe-todo | [] [] [] [] | 12 gphoto2 | [] [] [] | 11 gprof | [] [] | 9 gpsdrive | [] [] | 3 gramadoir | [] | 5 grep | [] [] [] [] | 26 gretl | | 3 gtick | | 7 hello | [] [] [] [] [] | 34 id-utils | [] [] | 12 indent | [] [] [] [] | 21 iso_3166 | [] [] [] [] [] [] [] | 27 iso_3166_1 | [] [] [] | 16 iso_3166_2 | | 0 iso_3166_3 | | 2 iso_4217 | [] [] [] [] [] [] | 24 iso_639 | | 1 jpilot | [] [] [] [] [] | 9 jtag | [] | 2 jwhois | () [] [] | 11 kbd | [] [] | 11 latrine | | 2 ld | [] [] | 5 libc | [] [] [] [] | 20 libgpewidget | [] [] [] [] | 13 libiconv | [] [] [] [] [] [] [] [] | 27 lifelines | [] | 2 lilypond | [] | 3 lingoteach | | 2 lingoteach_lessons | () | 0 lynx | [] [] [] | 14 m4 | [] [] | 15 mailutils | | 5 make | [] [] [] | 16 man-db | [] | 5 minicom | | 11 mysecretdiary | [] [] | 10 nano | [] [] [] [] | 17 nano_1_0 | [] [] [] | 17 opcodes | [] [] | 6 parted | [] [] [] | 15 ptx | [] [] | 22 python | | 0 radius | | 4 recode | [] [] [] | 20 rpm | [] [] | 9 screem | [] [] | 2 scrollkeeper | [] [] [] | 15 sed | [] [] [] [] [] [] | 24 sh-utils | [] [] | 14 shared-mime-info | [] [] | 7 sharutils | [] [] [] [] | 17 silky | () | 3 skencil | [] | 6 sketch | [] | 6 soundtracker | [] [] | 7 sp | [] | 3 tar | [] [] [] [] [] | 24 texinfo | [] [] [] | 14 textutils | [] [] [] [] | 16 tin | | 1 tp-robot | | 2 tuxpaint | [] [] [] [] [] | 29 unicode-han-tra... | | 0 unicode-transla... | | 2 util-linux | [] [] | 15 vorbis-tools | | 8 wastesedge | | 0 wdiff | [] [] [] | 18 wget | [] [] [] [] [] [] [] [] | 24 xchat | [] [] [] [] [] | 15 xfree86_xkb_xml | [] [] [] [] [] | 11 xpad | | 5 +-----------------------------------------------------+ 63 teams sk sl sr sv ta th tr uk ven vi wa xh zh_CN zh_TW zu 131 domains 47 19 28 83 0 0 59 13 1 1 11 0 22 22 0 1373 Some counters in the preceding matrix are higher than the number of visible blocks let us expect. This is because a few extra PO files are used for implementing regional variants of languages, or language dialects. For a PO file in the matrix above to be effective, the package to which it applies should also have been internationalized and distributed as such by its maintainer. There might be an observable lag between the mere existence a PO file and its wide availability in a distribution. If January 2004 seems to be old, you may fetch a more recent copy of this `ABOUT-NLS' file on most GNU archive sites. The most up-to-date matrix with full percentage details can be found at `http://www.iro.umontreal.ca/contrib/po/HTML/matrix.html'. Using `gettext' in new packages =============================== If you are writing a freely available program and want to internationalize it you are welcome to use GNU `gettext' in your package. Of course you have to respect the GNU Library General Public License which covers the use of the GNU `gettext' library. This means in particular that even non-free programs can use `libintl' as a shared library, whereas only free software can use `libintl' as a static library or use modified versions of `libintl'. Once the sources are changed appropriately and the setup can handle the use of `gettext' the only thing missing are the translations. The Free Translation Project is also available for packages which are not developed inside the GNU project. Therefore the information given above applies also for every other Free Software Project. Contact `translation@iro.umontreal.ca' to make the `.pot' files available to the translation teams. scim-1.4.14/AUTHORS000066400000000000000000000011051177210725600136110ustar00rootroot00000000000000Main authors: ============= James Su Developers: =========== LiuCougar Ryo Dairiki zh_TW.po: ========= Tetralet Jim Huang ja.po: ====== Yukiko Bando ko.po: ====== Kitae de.po: ====== Jan Hefti fr.po: ====== Damien Menanteau it.po: ====== Federico Zenith pa.po ====== Amanpreet Singh Alam scim-1.4.14/COPYING000066400000000000000000000634761177210725600136170ustar00rootroot00000000000000 GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999 Copyright (C) 1991, 1999 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. [This is the first released version of the Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.] Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below. When we speak of free software, we are referring to freedom of use, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish); that you receive source code or can get it if you want it; that you can change the software and use pieces of it in new free programs; and that you are informed that you can do these things. To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights. We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library. To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others. Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs. When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library. We call this license the "Lesser" General Public License because it does Less to protect the user's freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances. For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License. In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system. Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, whereas the latter must be combined with the library in order to run. GNU LESSER GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called "this License"). Each licensee is addressed as "you". A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) "Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) The modified work must itself be a software library. b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. 6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with. c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License. 11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 13. The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Libraries If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License). To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the library `Frob' (a library for tweaking knobs) written by James Random Hacker. , 1 April 1990 Ty Coon, President of Vice That's all there is to it! scim-1.4.14/ChangeLog000066400000000000000000000216301177210725600143200ustar00rootroot000000000000002012-03-30 gettextize * Makefile.am (EXTRA_DIST): Add m4/ChangeLog. 2009-11-25 14:09 paxerit * Integrated patch that fixed a focusing bug that has been reported on both the ubuntu and redhat bugtrackers * Added panel-controller functionality. it is now possible to programmatically change the selected IM via a socket connection to the panel. For a possible client implementation see http://projects.palaso.org/projects/show/autoswitcher 2009-04-27 10:09 yurivict * extras/gtk2_immodule/gtkimcontextscim.cpp: fixed the issues of dual uninitialization causing segv. 2008-12-21 02:07 ryo-dairiki * configs/config: - Remove "CapsLock" from valid key masks. 2008-12-20 12:01 ryo-dairiki * modules/FrontEnd/IMdkit/i18nPtHdr.c: - Import "scim-xim-block.patch". 2008-12-20 00:56 ryo-dairiki * ChangeLog: - Update Changelog. 2008-12-20 00:51 ryo-dairiki * po/nl.po: - Update Dutch translation. 2008-10-23 20:38 yurivict * ChangeLog: fixed ChangeLog date 2008-10-23 20:38 yurivict * ChangeLog, configure.ac, po/ca.po: added Catalan translation from scim-delel mailing list submission 2008-10-19 04:48 ryo-dairiki * data/icons/down.xpm, data/icons/full-letter.xpm, data/icons/full-punct.xpm, data/icons/half-letter.xpm, data/icons/half-punct.xpm, data/icons/help.xpm, data/icons/left.xpm, data/icons/menu.xpm, data/icons/pin-down.xpm, data/icons/pin-up.xpm, data/icons/right.xpm, data/icons/setup.xpm, data/icons/trademark.xpm, data/icons/up.xpm, extras/bridge_immodule, extras/gtk2_immodule/gtkimcontextscim.cpp, extras/panel/scim_panel_gtk.cpp, extras/setup/scim_setup_ui.cpp, modules/FrontEnd/IMdkit/i18nAttr.c, modules/FrontEnd/scim_x11_frontend.cpp, modules/FrontEnd/scim_x11_ic.cpp, modules/SetupUI/scim_panel_gtk_setup.cpp, src/scim.cpp, src/scim_compose_key.cpp, src/scim_debug.cpp, src/scim_event.cpp, src/scim_helper_manager.cpp, src/scim_helper_manager_server.cpp, src/scim_hotkey.cpp, src/scim_keyboard_layout_data.h, src/scim_launcher.cpp, src/scim_panel_client.cpp, src/scim_utility.cpp: - Eliminate warnings about implicit casting from 'const char*' to 'char *'. - Import ISO3-shift patch. 2008-09-22 00:18 yurivict * ChangeLog, src/ltdl.cpp, src/scim_helper_manager.cpp, src/scim_helper_manager_server.cpp, src/scim_socket.cpp: Fixed the problem when on FreeBSD scim-helper-module silently failed to launch. Added a workaround to module loading/unloading for some unknown problem of SEGV occuring after some module was unloaded in scim-helper-module. Improved error handling in scim-helper-module launching and in socket operations. 2008-09-19 18:45 yurivict * ., ChangeLog, configure.ac, extras/setup/scim_setup_ui.cpp, extras/setup/scim_setup_ui.h, po/cs.po, po/de.po, po/fi.po, po/fr.po, po/it.po, po/ja.po, po/ko.po, po/nl.po, po/pa.po, po/pt_BR.po, po/scim.pot, po/sv.po, po/zh_CN.po, po/zh_TW.po, src/scim.h, src/scim_private.cpp, src/scim_socket.cpp: Merged all changes from scim/branches/scim-1.4 branch into scim/trunk and bumped the version of the trunk 1.4.6->1.4.8. 2008-09-15 19:03 yurivict * ChangeLog, configure.ac, po/pt-BR.po, po/pt_BR.po: Minor language files changes. 2008-09-14 20:53 yurivict * ChangeLog: Added missing ChangeLog files needed for auto*-tools 2008-08-26 07:18 juhp * po/ko.po: updated translations by Eunju Kim (Red Hat) with additional fixes by Choe Hwanjin 2008-06-23 05:21 juhp * po/vi.po: update from Nguyen Dinh Trung 2008-06-18 07:03 juhp * po/zh_CN.po: update from Leah Liu 2008-06-18 05:56 juhp * po/nl.po: update from Ronald Stroethoff 2008-06-13 08:48 juhp * configure.ac: update LINGUAS for new translations added 2008-06-13 08:29 juhp * po/sk.po: add Slovakian translation from 1.4 branch 2008-06-11 08:16 juhp * po/pa.po: update to Punjabi translation from Jaswinder Singh 2008-06-11 08:15 juhp * po/ja.po: update to Japanese translation from Kiyoto Hashida 2008-06-11 08:13 juhp * po/de.po: updated German translation from Timo Trinks 2008-06-11 08:10 juhp * po/it.po: update of Italian translation from Francesco Valente 2008-06-11 06:47 juhp * po/scim.pot: updated to recent strings 2008-06-11 06:43 juhp * po/ml.po: add translator 2008-06-11 06:42 juhp * po/te.po: add Telugu translation from Krishna Babu K 2008-06-11 06:42 juhp * po/ru.po: add Russian translations from Yulia Poyarkova 2008-06-11 06:41 juhp * po/pt-BR.po: add Brazilian Portuguese translation from Glaucia Cintra 2008-06-11 06:40 juhp * po/gu.po: add Gujarati translations from Ankit Patel 2008-06-11 06:39 juhp * po/ml.po: add Malayalam translations from Ani Peter 2008-06-11 06:34 juhp * po/mr.po: add Marathi translations from Sandeep Shedmake 2008-06-11 06:23 juhp * po/kn.po: add Kannada translations from Shankar Prasad 2008-06-11 06:22 juhp * po/hi.po: add Hindi translations by Rajesh Ranjan 2008-06-11 06:21 juhp * po/es.po: add Spanish translation by Angela Garcia 2008-06-11 06:16 juhp * po/bn_IN.po: add Bengali INDIA translation by Runa Bhattacharjee 2008-06-11 06:15 juhp * po/as.po: add Assamese translation by Amitakhya Phukan 2008-03-26 07:58 juhp * po/vi.po: add Vietnamese translation from Nguyá»…n Äình Trung 2008-03-12 06:13 huangpeng * extras/panel/scim_panel_gtk.cpp, src/scim_launcher.cpp: Avoid scim segfault during exiting. 2007-10-08 08:56 ryo-dairiki * extras/bridge_immodule/scim_bridge_transaction.c: 2007-09-13 08:02 juhp * po/ja.po: add Sinhala 2007-09-09 12:18 ryo-dairiki * extras/bridge_immodule/scim_bridge_transaction.c, extras/bridge_immodule/scim_bridge_type.h: 2007-09-06 17:10 ryo-dairiki * AUTHORS, configure.ac, extras/bridge_immodule/scim_bridge_attribute.c, extras/bridge_immodule/scim_bridge_attribute.h, extras/bridge_immodule/scim_bridge_lookup_table.c, extras/bridge_immodule/scim_bridge_transaction.c, extras/bridge_immodule/scim_bridge_utility.h: 2007-08-28 16:09 ryo-dairiki * extras/bridge_immodule/scim_bridge_lookup.h, extras/bridge_immodule/scim_bridge_lookup_table.c, extras/bridge_immodule/scim_bridge_lookup_table.h: 2007-08-26 08:44 ryo-dairiki * .cdtproject, .project, .settings, .settings/org.eclipse.cdt.core.prefs, extras/bridge_immodule, extras/bridge_immodule/scim_bridge_attribute.c, extras/bridge_immodule/scim_bridge_attribute.h, extras/bridge_immodule/scim_bridge_key_event.h, extras/bridge_immodule/scim_bridge_lookup.h, extras/bridge_immodule/scim_bridge_lookup_table.c, extras/bridge_immodule/scim_bridge_property.c, extras/bridge_immodule/scim_bridge_property.h, extras/bridge_immodule/scim_bridge_transaction.c, extras/bridge_immodule/scim_bridge_transaction.h, extras/bridge_immodule/scim_bridge_type.h, extras/bridge_immodule/scim_bridge_utility.c, extras/bridge_immodule/scim_bridge_utility.h: - Begin to import scim-bridge as an extra immodule. 2007-08-03 11:38 suzhe * src/scim_frontend_module.cpp: Don't unload FrontEnd module to avoid possible crash. 2007-07-22 02:44 suzhe * src/scim_utility.cpp: Add "Esperanto" language. 2007-07-09 11:52 suzhe * src/scim_private.cpp: Include necessary header file. 2007-07-09 11:49 suzhe * src/scim_private.cpp: Set locale correctly. 2007-07-09 11:41 suzhe * src/scim_utility.cpp: Use LC_MESSAGES instead of LC_CTYPE for current locale. 2007-06-26 02:37 suzhe * extras/gtk2_immodule/gtkimcontextscim.cpp: Fix include file issue. 2007-06-22 18:43 suzhe * po/cs.po, po/de.po, po/fi.po, po/fr.po, po/it.po, po/ja.po, po/ko.po, po/nl.po, po/pa.po, po/scim.pot, po/sv.po, po/zh_CN.po, po/zh_TW.po: Update po files. 2007-06-22 17:09 suzhe * modules/FrontEnd/scim_x11_frontend.cpp: Fix high power consumption issue. 2007-06-22 02:36 suzhe * extras/gtk2_immodule/gtkimcontextscim.cpp, src/scim_event.cpp, src/scim_transaction.cpp: Add missing headers. 2007-06-22 00:08 suzhe * ChangeLog, ChangeLog.old, Makefile.am, developers, svn2cl.sh, svn2cl.xsl: Use svn2cl to generate ChangeLog. 2007-06-21 23:37 suzhe * src/scim_socket.cpp: Fix a bug in Socket::wait_for_data() and Socket::read(), Socket::write(). 2007-06-19 06:32 suzhe * extras/gtk2_immodule/gtkimcontextscim.cpp, modules/IMEngine/scim_socket_imengine.cpp: Add more debug message. Avoid focus an already focused IC. 2007-06-17 07:15 suzhe * .: Move scim-trunk (the head) to scim/trunk. 2007-06-17 07:13 suzhe * : Rename scim to trunk. 2007-06-17 07:09 suzhe * : Initial import scim 1.4 branch into svn as trunk. scim-1.4.14/INSTALL000066400000000000000000000363321177210725600136040ustar00rootroot00000000000000Installation Instructions ************************* Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. This file is offered as-is, without warranty of any kind. Basic Installation ================== Briefly, the shell commands `./configure; make; make install' should configure, build, and install this package. The following more-detailed instructions are generic; see the `README' file for instructions specific to this package. Some packages provide this `INSTALL' file but do not implement all of the features documented below. The lack of an optional feature in a given package is not necessarily a bug. More recommendations for GNU packages can be found in *note Makefile Conventions: (standards)Makefile Conventions. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that you can run in the future to recreate the current configuration, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). It can also use an optional file (typically called `config.cache' and enabled with `--cache-file=config.cache' or simply `-C') that saves the results of its tests to speed up reconfiguring. Caching is disabled by default to prevent problems with accidental use of stale cache files. If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can be considered for the next release. If you are using the cache, and at some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.ac' (or `configure.in') is used to create `configure' by a program called `autoconf'. You need `configure.ac' if you want to change it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. Running `configure' might take a while. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with the package, generally using the just-built uninstalled binaries. 4. Type `make install' to install the programs and any data files and documentation. When installing into a prefix owned by root, it is recommended that the package be configured and built as a regular user, and only the `make install' phase executed with root privileges. 5. Optionally, type `make installcheck' to repeat any self-tests, but this time using the binaries in their final installed location. This target does not install anything. Running this target as a regular user, particularly if the prior `make install' required root privileges, verifies that the installation completed correctly. 6. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is also a `make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. 7. Often, you can also type `make uninstall' to remove the installed files again. In practice, not all packages have tested that uninstallation works correctly, even though it is required by the GNU Coding Standards. 8. Some packages, particularly those that use Automake, provide `make distcheck', which can by used by developers to test that all other targets like `make install' and `make uninstall' work correctly. This target is generally not run by end users. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the `configure' script does not know about. Run `./configure --help' for details on some of the pertinent environment variables. You can give `configure' initial values for configuration parameters by setting variables in the command line or in the environment. Here is an example: ./configure CC=c99 CFLAGS=-g LIBS=-lposix *Note Defining Variables::, for more details. Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you can use GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. This is known as a "VPATH" build. With a non-GNU `make', it is safer to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use `make distclean' before reconfiguring for another architecture. On MacOS X 10.5 and later systems, you can create libraries and executables that work on multiple system types--known as "fat" or "universal" binaries--by specifying multiple `-arch' options to the compiler but only a single `-arch' option to the preprocessor. Like this: ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ CPP="gcc -E" CXXCPP="g++ -E" This is not guaranteed to produce working output in all cases, you may have to build one architecture at a time and combine the results using the `lipo' tool if you have problems. Installation Names ================== By default, `make install' installs the package's commands under `/usr/local/bin', include files under `/usr/local/include', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PREFIX', where PREFIX must be an absolute file name. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you pass the option `--exec-prefix=PREFIX' to `configure', the package uses PREFIX as the prefix for installing programs and libraries. Documentation and other data files still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=DIR' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories you can set and what kinds of files go in them. In general, the default for these options is expressed in terms of `${prefix}', so that specifying just `--prefix' will affect all of the other directory specifications that were not explicitly provided. The most portable way to affect installation locations is to pass the correct locations to `configure'; however, many packages provide one or both of the following shortcuts of passing variable assignments to the `make install' command line to change installation locations without having to reconfigure or recompile. The first method involves providing an override variable for each affected directory. For example, `make install prefix=/alternate/directory' will choose an alternate location for all directory configuration variables that were expressed in terms of `${prefix}'. Any directories that were specified during `configure', but not in terms of `${prefix}', must each be overridden at install time for the entire installation to be relocated. The approach of makefile variable overrides for each directory variable is required by the GNU Coding Standards, and ideally causes no recompilation. However, some platforms have known limitations with the semantics of shared libraries that end up requiring recompilation when using this method, particularly noticeable in packages that use GNU Libtool. The second method involves providing the `DESTDIR' variable. For example, `make install DESTDIR=/alternate/directory' will prepend `/alternate/directory' before all installation names. The approach of `DESTDIR' overrides is not required by the GNU Coding Standards, and does not work on platforms that have drive letters. On the other hand, it does better at avoiding recompilation issues, and works well even when some directory options were not specified in terms of `${prefix}' at `configure' time. Optional Features ================= If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The `README' should mention any `--enable-' and `--with-' options that the package recognizes. For packages that use the X Window System, `configure' can usually find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. Some packages offer the ability to configure how verbose the execution of `make' will be. For these packages, running `./configure --enable-silent-rules' sets the default to minimal output, which can be overridden with `make V=1'; while running `./configure --disable-silent-rules' sets the default to verbose, which can be overridden with `make V=0'. Particular systems ================== On HP-UX, the default C compiler is not ANSI C compatible. If GNU CC is not installed, it is recommended to use the following options in order to use an ANSI C compiler: ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" and if that doesn't work, install pre-built binaries of GCC for HP-UX. On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot parse its `' header file. The option `-nodtk' can be used as a workaround. If GNU CC is not installed, it is therefore recommended to try ./configure CC="cc" and if that doesn't work, try ./configure CC="cc -nodtk" On Solaris, don't put `/usr/ucb' early in your `PATH'. This directory contains several dysfunctional programs; working variants of these programs are available in `/usr/bin'. So, if you need `/usr/ucb' in your `PATH', put it _after_ `/usr/bin'. On Haiku, software installed for all users goes in `/boot/common', not `/usr/local'. It is recommended to use the following options: ./configure --prefix=/boot/common Specifying the System Type ========================== There may be some features `configure' cannot figure out automatically, but needs to determine by the type of machine the package will run on. Usually, assuming the package is built to be run on the _same_ architectures, `configure' can figure that out, but if it prints a message saying it cannot guess the machine type, give it the `--build=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name which has the form: CPU-COMPANY-SYSTEM where SYSTEM can have one of these forms: OS KERNEL-OS See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't need to know the machine type. If you are _building_ compiler tools for cross-compiling, you should use the option `--target=TYPE' to select the type of system they will produce code for. If you want to _use_ a cross compiler, that generates code for a platform different from the build platform, you should specify the "host" platform (i.e., that on which the generated programs will eventually be run) with `--host=TYPE'. Sharing Defaults ================ If you want to set default values for `configure' scripts to share, you can create a site shell script called `config.site' that gives default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. A warning: not all `configure' scripts look for a site script. Defining Variables ================== Variables not defined in a site shell script can be set in the environment passed to `configure'. However, some packages may run configure again during the build, and the customized values of these variables may be lost. In order to avoid this problem, you should set them in the `configure' command line, using `VAR=value'. For example: ./configure CC=/usr/local2/bin/gcc causes the specified `gcc' to be used as the C compiler (unless it is overridden in the site shell script). Unfortunately, this technique does not work for `CONFIG_SHELL' due to an Autoconf bug. Until the bug is fixed you can use this workaround: CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash `configure' Invocation ====================== `configure' recognizes the following options to control how it operates. `--help' `-h' Print a summary of all of the options to `configure', and exit. `--help=short' `--help=recursive' Print a summary of the options unique to this package's `configure', and exit. The `short' variant lists options used only in the top level, while the `recursive' variant lists options also present in any nested packages. `--version' `-V' Print the version of Autoconf used to generate the `configure' script, and exit. `--cache-file=FILE' Enable the cache: use and save the results of the tests in FILE, traditionally `config.cache'. FILE defaults to `/dev/null' to disable caching. `--config-cache' `-C' Alias for `--cache-file=config.cache'. `--quiet' `--silent' `-q' Do not print messages saying which checks are being made. To suppress all normal output, redirect it to `/dev/null' (any error messages will still be shown). `--srcdir=DIR' Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. `--prefix=DIR' Use DIR as the installation prefix. *note Installation Names:: for more details, including other options available for fine-tuning the installation locations. `--no-create' `-n' Run the configure checks, but stop before creating any output files. `configure' also accepts some other, not widely useful, options. Run `configure --help' for more details. scim-1.4.14/Makefile.am000066400000000000000000000041031177210725600145760ustar00rootroot00000000000000## Makefile.am -- Process this file with automake to produce Makefile.in ## Copyright (C) 2002 James Su ## ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2, or (at your option) ## any later version. ## ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. AUX_DIST = $(ac_aux_dir)/config.guess \ $(ac_aux_dir)/config.sub \ $(ac_aux_dir)/compile \ $(ac_aux_dir)/depcomp \ $(ac_aux_dir)/install-sh \ $(ac_aux_dir)/ltconfig \ $(ac_aux_dir)/ltmain.sh \ $(ac_aux_dir)/missing EXTRA_DIST = config.rpath THANKS \ mkinstalldirs \ bootstrap \ scim.spec \ intltool-extract.in \ intltool-merge.in \ intltool-update.in AUTOMAKE_OPTIONS = gnu SUBDIRS = src utils modules configs po extras data docs tests MAINTAINERCLEANFILES = Makefile.in \ aclocal.m4 \ configure \ config.h.in \ $(AUX_DIST) DISTCLEANFILES = scim.pc scim-gtkutils.pc intltool-extract intltool-merge intltool-update CLEANFILES = *.bak *.tar.* ACLOCAL = aclocal -I $(ac_aux_dir) pkgconfigdir = $(libdir)/pkgconfig if SCIM_BUILD_GTK_UTILS GTK_UTILS_PKGCONFIG = scim-gtkutils.pc endif if SCIM_BUILD_X11_UTILS X11_UTILS_PKGCONFIG = scim-x11utils.pc endif pkgconfig_DATA = scim.pc \ $(GTK_UTILS_PKGCONFIG) \ $(X11_UTILS_PKGCONFIG) ACLOCAL_AMFLAGS = -I m4 .PHONY: update-ChangeLog docs update-ChangeLog: /bin/sh $(top_srcdir)/svn2cl.sh --authors=$(top_srcdir)/developers -f $(top_srcdir)/ChangeLog docs: (cd $(top_srcdir)/docs ; make html ; cd - ; mv -iv docs/*.tar.* $(top_srcdir)/) scim-1.4.14/Makefile.in000066400000000000000000000754201177210725600146210ustar00rootroot00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = . DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/config.h.in \ $(srcdir)/scim-gtkutils.pc.in $(srcdir)/scim-x11utils.pc.in \ $(srcdir)/scim.pc.in $(srcdir)/scim.spec.in \ $(top_srcdir)/configure ABOUT-NLS AUTHORS COPYING ChangeLog \ INSTALL NEWS THANKS TODO config.guess config.rpath config.sub \ depcomp install-sh ltmain.sh missing mkinstalldirs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = scim.pc scim-gtkutils.pc scim-x11utils.pc \ scim.spec CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(pkgconfigdir)" DATA = $(pkgconfig_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir dist dist-all distcheck ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ { test ! -d "$(distdir)" \ || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -fr "$(distdir)"; }; } am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print distcleancheck_listfiles = find . -type f -print ACLOCAL = aclocal -I $(ac_aux_dir) ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ ARGZ_H = @ARGZ_H@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CLUTTER_BINARY_VERSION = @CLUTTER_BINARY_VERSION@ CLUTTER_CFLAGS = @CLUTTER_CFLAGS@ CLUTTER_IMCONTEXT_LIBDIR = @CLUTTER_IMCONTEXT_LIBDIR@ CLUTTER_IM_MODULEDIR = @CLUTTER_IM_MODULEDIR@ CLUTTER_LIBDIR = @CLUTTER_LIBDIR@ CLUTTER_LIBS = @CLUTTER_LIBS@ CLUTTER_VERSION = @CLUTTER_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOCBOOK_XSL = @DOCBOOK_XSL@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@ GTHREAD2_LIBS = @GTHREAD2_LIBS@ GTK2_CFLAGS = @GTK2_CFLAGS@ GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@ GTK2_LIBS = @GTK2_LIBS@ GTK3_CFLAGS = @GTK3_CFLAGS@ GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@ GTK3_LIBS = @GTK3_LIBS@ GTK_BINARY_VERSION = @GTK_BINARY_VERSION@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBDIR = @GTK_LIBDIR@ GTK_LIBS = @GTK_LIBS@ GTK_MAJOR_VERSION = @GTK_MAJOR_VERSION@ GTK_VERSION = @GTK_VERSION@ HAVE_GRAPHVIZ = @HAVE_GRAPHVIZ@ INCLTDL = @INCLTDL@ INCLUDE_STDINT = @INCLUDE_STDINT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBLTDL = @LIBLTDL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_DEPS = @LIBTOOL_DEPS@ LIBTOOL_EXPORT_OPTIONS = @LIBTOOL_EXPORT_OPTIONS@ LIPO = @LIPO@ LN_S = @LN_S@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ QT3_CFLAGS = @QT3_CFLAGS@ QT3_IM_MODULEDIR = @QT3_IM_MODULEDIR@ QT3_LIBDIR = @QT3_LIBDIR@ QT3_LIBS = @QT3_LIBS@ QT3_MOC = @QT3_MOC@ QT3_PREFIX = @QT3_PREFIX@ QT4_CFLAGS = @QT4_CFLAGS@ QT4_IM_MODULEDIR = @QT4_IM_MODULEDIR@ QT4_LIBDIR = @QT4_LIBDIR@ QT4_LIBS = @QT4_LIBS@ QT4_MOC = @QT4_MOC@ QT4_PREFIX = @QT4_PREFIX@ RANLIB = @RANLIB@ SCIM_AGE = @SCIM_AGE@ SCIM_BINARY_VERSION = @SCIM_BINARY_VERSION@ SCIM_BRIDGE_MAJOR_VERSION = @SCIM_BRIDGE_MAJOR_VERSION@ SCIM_BRIDGE_MICRO_VERSION = @SCIM_BRIDGE_MICRO_VERSION@ SCIM_BRIDGE_MINOR_VERSION = @SCIM_BRIDGE_MINOR_VERSION@ SCIM_BRIDGE_VERSION = @SCIM_BRIDGE_VERSION@ SCIM_BUILD_CLUTTER_IMMODULE = @SCIM_BUILD_CLUTTER_IMMODULE@ SCIM_BUILD_CONFIG_SIMPLE = @SCIM_BUILD_CONFIG_SIMPLE@ SCIM_BUILD_CONFIG_SOCKET = @SCIM_BUILD_CONFIG_SOCKET@ SCIM_BUILD_DOCUMENTS = @SCIM_BUILD_DOCUMENTS@ SCIM_BUILD_FILTER_SCTC = @SCIM_BUILD_FILTER_SCTC@ SCIM_BUILD_FRONTEND_SOCKET = @SCIM_BUILD_FRONTEND_SOCKET@ SCIM_BUILD_FRONTEND_X11 = @SCIM_BUILD_FRONTEND_X11@ SCIM_BUILD_GTK2_IMMODULE = @SCIM_BUILD_GTK2_IMMODULE@ SCIM_BUILD_GTK3_IMMODULE = @SCIM_BUILD_GTK3_IMMODULE@ SCIM_BUILD_GTK_UTILS = @SCIM_BUILD_GTK_UTILS@ SCIM_BUILD_IMENGINE_RAWCODE = @SCIM_BUILD_IMENGINE_RAWCODE@ SCIM_BUILD_IMENGINE_SOCKET = @SCIM_BUILD_IMENGINE_SOCKET@ SCIM_BUILD_IMENGINE_TABLE = @SCIM_BUILD_IMENGINE_TABLE@ SCIM_BUILD_IMMODULE = @SCIM_BUILD_IMMODULE@ SCIM_BUILD_IM_AGENT = @SCIM_BUILD_IM_AGENT@ SCIM_BUILD_ORIG_GTK2_IMMODULE = @SCIM_BUILD_ORIG_GTK2_IMMODULE@ SCIM_BUILD_ORIG_GTK3_IMMODULE = @SCIM_BUILD_ORIG_GTK3_IMMODULE@ SCIM_BUILD_PANEL_GTK = @SCIM_BUILD_PANEL_GTK@ SCIM_BUILD_QT3_IMMODULE = @SCIM_BUILD_QT3_IMMODULE@ SCIM_BUILD_QT4_IMMODULE = @SCIM_BUILD_QT4_IMMODULE@ SCIM_BUILD_SCIM_SETUP = @SCIM_BUILD_SCIM_SETUP@ SCIM_BUILD_TESTS = @SCIM_BUILD_TESTS@ SCIM_BUILD_X11_UTILS = @SCIM_BUILD_X11_UTILS@ SCIM_CURRENT = @SCIM_CURRENT@ SCIM_DATADIR = @SCIM_DATADIR@ SCIM_EPOCH = @SCIM_EPOCH@ SCIM_ICONDIR = @SCIM_ICONDIR@ SCIM_LIBDIR = @SCIM_LIBDIR@ SCIM_LIBEXECDIR = @SCIM_LIBEXECDIR@ SCIM_LOCALEDIR = @SCIM_LOCALEDIR@ SCIM_LTDLADVISE = @SCIM_LTDLADVISE@ SCIM_MAJOR_VERSION = @SCIM_MAJOR_VERSION@ SCIM_MICRO_VERSION = @SCIM_MICRO_VERSION@ SCIM_MINOR_VERSION = @SCIM_MINOR_VERSION@ SCIM_MODULE_PATH = @SCIM_MODULE_PATH@ SCIM_PREFIX = @SCIM_PREFIX@ SCIM_REVISION = @SCIM_REVISION@ SCIM_SYSCONFDIR = @SCIM_SYSCONFDIR@ SCIM_TEMPDIR = @SCIM_TEMPDIR@ SCIM_VERSION = @SCIM_VERSION@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UINT16 = @UINT16@ UINT32 = @UINT32@ UINT64 = @UINT64@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XMKMF = @XMKMF@ XSLTPROC = @XSLTPROC@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_aux_dir = @ac_aux_dir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AUX_DIST = $(ac_aux_dir)/config.guess \ $(ac_aux_dir)/config.sub \ $(ac_aux_dir)/compile \ $(ac_aux_dir)/depcomp \ $(ac_aux_dir)/install-sh \ $(ac_aux_dir)/ltconfig \ $(ac_aux_dir)/ltmain.sh \ $(ac_aux_dir)/missing EXTRA_DIST = config.rpath THANKS \ mkinstalldirs \ bootstrap \ scim.spec \ intltool-extract.in \ intltool-merge.in \ intltool-update.in AUTOMAKE_OPTIONS = gnu SUBDIRS = src utils modules configs po extras data docs tests MAINTAINERCLEANFILES = Makefile.in \ aclocal.m4 \ configure \ config.h.in \ $(AUX_DIST) DISTCLEANFILES = scim.pc scim-gtkutils.pc intltool-extract intltool-merge intltool-update CLEANFILES = *.bak *.tar.* pkgconfigdir = $(libdir)/pkgconfig @SCIM_BUILD_GTK_UTILS_TRUE@GTK_UTILS_PKGCONFIG = scim-gtkutils.pc @SCIM_BUILD_X11_UTILS_TRUE@X11_UTILS_PKGCONFIG = scim-x11utils.pc pkgconfig_DATA = scim.pc \ $(GTK_UTILS_PKGCONFIG) \ $(X11_UTILS_PKGCONFIG) ACLOCAL_AMFLAGS = -I m4 all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: am--refresh: @: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \ $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: $(am__configure_deps) $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): $(am__aclocal_m4_deps) $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) $(am__aclocal_m4_deps): config.h: stamp-h1 @if test ! -f $@; then \ rm -f stamp-h1; \ $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \ else :; fi stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status config.h $(srcdir)/config.h.in: $(am__configure_deps) ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) rm -f stamp-h1 touch $@ distclean-hdr: -rm -f config.h stamp-h1 scim.pc: $(top_builddir)/config.status $(srcdir)/scim.pc.in cd $(top_builddir) && $(SHELL) ./config.status $@ scim-gtkutils.pc: $(top_builddir)/config.status $(srcdir)/scim-gtkutils.pc.in cd $(top_builddir) && $(SHELL) ./config.status $@ scim-x11utils.pc: $(top_builddir)/config.status $(srcdir)/scim-x11utils.pc.in cd $(top_builddir) && $(SHELL) ./config.status $@ scim.spec: $(top_builddir)/config.status $(srcdir)/scim.spec.in cd $(top_builddir) && $(SHELL) ./config.status $@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool config.lt install-pkgconfigDATA: $(pkgconfig_DATA) @$(NORMAL_INSTALL) test -z "$(pkgconfigdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \ done uninstall-pkgconfigDATA: @$(NORMAL_UNINSTALL) @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(pkgconfigdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(pkgconfigdir)" && rm -f $$files # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done -test -n "$(am__skip_mode_fix)" \ || find "$(distdir)" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-lzma: distdir tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma $(am__remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz $(am__remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) dist dist-all: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lzma*) \ lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir); chmod a+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @$(am__cd) '$(distuninstallcheck_dir)' \ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile $(DATA) config.h installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(pkgconfigdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-hdr \ distclean-libtool distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-pkgconfigDATA install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-pkgconfigDATA .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \ ctags-recursive install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am am--refresh check check-am clean clean-generic \ clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \ dist-gzip dist-lzma dist-shar dist-tarZ dist-xz dist-zip \ distcheck distclean distclean-generic distclean-hdr \ distclean-libtool distclean-tags distcleancheck distdir \ distuninstallcheck dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-pkgconfigDATA install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am uninstall-pkgconfigDATA .PHONY: update-ChangeLog docs update-ChangeLog: /bin/sh $(top_srcdir)/svn2cl.sh --authors=$(top_srcdir)/developers -f $(top_srcdir)/ChangeLog docs: (cd $(top_srcdir)/docs ; make html ; cd - ; mv -iv docs/*.tar.* $(top_srcdir)/) # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: scim-1.4.14/NEWS000066400000000000000000000000001177210725600132310ustar00rootroot00000000000000scim-1.4.14/README000066400000000000000000000121301177210725600134210ustar00rootroot00000000000000Source-derived documentation for developers is provided separately, courtesy of doxygen. Look for scim-doc-$(VERSION).tar.gz on our website for download or browse online at http://oss.leggewie.org/scim/ To compile scim from svn, be sure to run the bootstrap script in the toplevel directory first. To prepare a new tarball for release, adjust the values of the AC_INIT, SCIM_*_VERSION, SCIM_CURRENT and SCIM_REVISION variables in configure.ac as necessary. Then run "./bootstrap && ./configure && make dist && make docs". The main program of SCIM is named scim. The usage of scim is: scim [option]... The options are: -l, --list List all of available modules. -f, --frontend name Uses specified FrontEnd module. -c, --config name Uses specified Config module. -e, --engines name Load specified set of input method engines. -ne,--no-engines name Do not load those set of engines. -d, --daemon Run scim as a daemon. --no-socket Do not try to start a SCIM SocketFrontEnd daemon. -h, --help Show this help message. By default, scim will use x11 frontend module and simple config module if they are available, unless you specify the module names. And if --no-socket option is not used, scim will try to start a separated daemon with SocketFrontEnd to provide the service, and X11 FrontEnd will try to connect to this service daemon. TIPS of X11 FrontEnd: ===================== * You can drag input window, lookup window by pressing down right mouse button. * export GDK_USE_XFT=1 before running scim to let scim use Anti-Aliased font. * Font and color of preedit, status and lookup area can be changed in config file. TIPS of Socket FrontEnd, IMEngine and Config module: ================================================== *********** Notice ************ From 1.0.0, scim will make use of SocketFrontEnd to construct a single user client/server input method environment automatically. Unless you use --no-socket option when starting scim. ******************************* Socket FrontEnd/IMEngine/Config module is useless under X11 environment. It's only useful to work with GTK2 SCIM IM Module. The purpose of Socket FrontEnd is to listen and accept request on a local/inet socket. Socket IMEngine and Config module serve as clients of Socket FrontEnd. The default socket address is local:/tmp/scim-socket-frontend, the prefix local: indicates that it's a unix/local socket. If you want to create a inet socket, use inet: prefix, e.g. inet:localhost:12345, 12345 is the port number. Use following command to start scim daemon to listen a socket: $ scim -f socket -c simple -ne socket -d To specify a different address, you can do: $ SCIM_SOCKET_ADDRESS=inet:localhost:12345 scim -f socket -c simple -ne socket -d the option "-ne socket" tells scim does not load Socket IMEngine IM module, because there is no Socket FrontEnd running yet. Then to use this scim to serve another scim, you can do like this: $ SCIM_SOCKET_ADDRESS=inet:localhost:12345 scim -f x11 -c socket -e socket -d (This command starts a SCIM X11 XIM server which only forward request between X11 and the previous started SCIM Socket FrontEnd.) The option "-e socket" tells scim only uses Socket IMEngine IM module. Other module should not be loaded directly, because they will be accessed via Socket FrontEnd by Socket IMEngine IM module. -c socket tells scim to load configuration from remote Socket FrontEnd instead of local config file. Or if you want to use GTK2 IM Module within a GTK2/GNOME2 application, you can: $ export SCIM_SOCKET_ADDRESS=inet:localhost:12345 $ testgtk Then you can use SCIM directly within testgtk, by right clicking on an entry widget and selecting SCIM input method. By default, GTK2 SCIM IM Module will only use Socket IMEngine/Config modules, if you want to load other modules directly, you may set the environment variables, e.g.: $ export GTK_IM_SCIM_CONFIG_MODULE=simple $ export GTK_IM_SCIM_IMENGINE_MODULES=table In case you do not understand how Socket FrontEnd/IMEngine module work, here is a simple diagram to explain it: +--------+ |IMEngine| |Mod 1 |--+ +--------+ | | +--------+ | +--------+ inet +--------+ +--------+ |IMEngine| | |Socket | +--------+ |Socket | |X11 | /-----\ |Mod 2 |--+--+ |-|a socket| <- -> |IMEngine|--| |-| X11 |<->app +--------+ | |FrontEnd| +--------+ |Module | |FrontEnd| \-----/ . | +--------+ local +--------+ +--------+ . | . | +--------+ | |IMEngine| | |Mod n |--+ +--------+ Then you see, IMEngine Modules 1 to n (like pinyin, table, rawcode etc.) with Socket FrontEnd together act as a socket daemon (like apache), Socket IMEngine Module with X11 FrontEnd act as a client. All requests from application will first be sent to X11 FrontEnd, then transfered to Socket FrontEnd via Socket IMEngine IM Module, then those requests will be proceeded by the real IMEngine Modules (1 to n), all reply will be sent back to application via the same route. Have fun! James Su Rolf Leggewie scim-1.4.14/THANKS000066400000000000000000000002151177210725600134550ustar00rootroot00000000000000Thanks all contributors and users. Without your support, SCIM won't be successful. (There are too many contributors and users to list here). scim-1.4.14/TODO000066400000000000000000000006311177210725600132340ustar00rootroot00000000000000Stage 1: * Hotkeys for Helper Module and Panel. * Refactory FrontEndBase class to make it into a generic SCIM Client interface. * Common GUI Setup framework * Common storage framework Stage 2: * Modulize Panel component, use an UI independent hub server to manage all client components, including FrontEnds, Helpers, Common UI components etc. * Multi-user enabled Socket FrontEnd and Socket IMEngine/Config. scim-1.4.14/aclocal.m4000066400000000000000000001416211177210725600144110ustar00rootroot00000000000000# generated automatically by aclocal 1.11.1 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.68],, [m4_warning([this file was generated for autoconf 2.68. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically `autoreconf'.])]) dnl IT_PROG_INTLTOOL([MINIMUM-VERSION], [no-xml]) # serial 40 IT_PROG_INTLTOOL AC_DEFUN([IT_PROG_INTLTOOL], [ AC_PREREQ([2.50])dnl AC_REQUIRE([AM_NLS])dnl case "$am__api_version" in 1.[01234]) AC_MSG_ERROR([Automake 1.5 or newer is required to use intltool]) ;; *) ;; esac if test -n "$1"; then AC_MSG_CHECKING([for intltool >= $1]) INTLTOOL_REQUIRED_VERSION_AS_INT=`echo $1 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` [INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` ] AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found]) test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || AC_MSG_ERROR([Your intltool is too old. You need intltool $1 or later.]) fi AC_PATH_PROG(INTLTOOL_UPDATE, [intltool-update]) AC_PATH_PROG(INTLTOOL_MERGE, [intltool-merge]) AC_PATH_PROG(INTLTOOL_EXTRACT, [intltool-extract]) if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then AC_MSG_ERROR([The intltool scripts were not found. Please install intltool.]) fi INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -p $(top_srcdir)/po $< [$]@' INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u /tmp $< [$]@' INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' _IT_SUBST(INTLTOOL_DESKTOP_RULE) _IT_SUBST(INTLTOOL_DIRECTORY_RULE) _IT_SUBST(INTLTOOL_KEYS_RULE) _IT_SUBST(INTLTOOL_PROP_RULE) _IT_SUBST(INTLTOOL_OAF_RULE) _IT_SUBST(INTLTOOL_PONG_RULE) _IT_SUBST(INTLTOOL_SERVER_RULE) _IT_SUBST(INTLTOOL_SHEET_RULE) _IT_SUBST(INTLTOOL_SOUNDLIST_RULE) _IT_SUBST(INTLTOOL_UI_RULE) _IT_SUBST(INTLTOOL_XAM_RULE) _IT_SUBST(INTLTOOL_KBD_RULE) _IT_SUBST(INTLTOOL_XML_RULE) _IT_SUBST(INTLTOOL_XML_NOMERGE_RULE) _IT_SUBST(INTLTOOL_CAVES_RULE) _IT_SUBST(INTLTOOL_SCHEMAS_RULE) _IT_SUBST(INTLTOOL_THEME_RULE) _IT_SUBST(INTLTOOL_SERVICE_RULE) _IT_SUBST(INTLTOOL_POLICY_RULE) # Check the gettext tools to make sure they are GNU AC_PATH_PROG(XGETTEXT, xgettext) AC_PATH_PROG(MSGMERGE, msgmerge) AC_PATH_PROG(MSGFMT, msgfmt) AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) fi xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then AC_MSG_ERROR([GNU gettext tools not found; required for intltool]) fi AC_PATH_PROG(INTLTOOL_PERL, perl) if test -z "$INTLTOOL_PERL"; then AC_MSG_ERROR([perl not found]) fi AC_MSG_CHECKING([for perl >= 5.8.1]) $INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 if test $? -ne 0; then AC_MSG_ERROR([perl 5.8.1 is required for intltool]) else IT_PERL_VERSION="`$INTLTOOL_PERL -e \"printf '%vd', $^V\"`" AC_MSG_RESULT([$IT_PERL_VERSION]) fi if test "x$2" != "xno-xml"; then AC_MSG_CHECKING([for XML::Parser]) if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then AC_MSG_RESULT([ok]) else AC_MSG_ERROR([XML::Parser perl module is required for intltool]) fi fi # Substitute ALL_LINGUAS so we can use it in po/Makefile AC_SUBST(ALL_LINGUAS) # Set DATADIRNAME correctly if it is not set yet # (copied from glib-gettext.m4) if test -z "$DATADIRNAME"; then AC_LINK_IFELSE( [AC_LANG_PROGRAM([[]], [[extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr]])], [DATADIRNAME=share], [case $host in *-*-solaris*) dnl On Solaris, if bind_textdomain_codeset is in libc, dnl GNU format message catalog is always supported, dnl since both are added to the libc all together. dnl Hence, we'd like to go with DATADIRNAME=share dnl in this case. AC_CHECK_FUNC(bind_textdomain_codeset, [DATADIRNAME=share], [DATADIRNAME=lib]) ;; *) [DATADIRNAME=lib] ;; esac]) fi AC_SUBST(DATADIRNAME) IT_PO_SUBDIR([po]) ]) # IT_PO_SUBDIR(DIRNAME) # --------------------- # All po subdirs have to be declared with this macro; the subdir "po" is # declared by IT_PROG_INTLTOOL. # AC_DEFUN([IT_PO_SUBDIR], [AC_PREREQ([2.53])dnl We use ac_top_srcdir inside AC_CONFIG_COMMANDS. dnl dnl The following CONFIG_COMMANDS should be executed at the very end dnl of config.status. AC_CONFIG_COMMANDS_PRE([ AC_CONFIG_COMMANDS([$1/stamp-it], [ if [ ! grep "^# INTLTOOL_MAKEFILE$" "$1/Makefile.in" > /dev/null ]; then AC_MSG_ERROR([$1/Makefile.in.in was not created by intltoolize.]) fi rm -f "$1/stamp-it" "$1/stamp-it.tmp" "$1/POTFILES" "$1/Makefile.tmp" >"$1/stamp-it.tmp" [sed '/^#/d s/^[[].*] *// /^[ ]*$/d '"s|^| $ac_top_srcdir/|" \ "$srcdir/$1/POTFILES.in" | sed '$!s/$/ \\/' >"$1/POTFILES" ] [sed '/^POTFILES =/,/[^\\]$/ { /^POTFILES =/!d r $1/POTFILES } ' "$1/Makefile.in" >"$1/Makefile"] rm -f "$1/Makefile.tmp" mv "$1/stamp-it.tmp" "$1/stamp-it" ]) ])dnl ]) # _IT_SUBST(VARIABLE) # ------------------- # Abstract macro to do either _AM_SUBST_NOTMAKE or AC_SUBST # AC_DEFUN([_IT_SUBST], [ AC_SUBST([$1]) m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([$1])]) ] ) # deprecated macros AU_ALIAS([AC_PROG_INTLTOOL], [IT_PROG_INTLTOOL]) # A hint is needed for aclocal from Automake <= 1.9.4: # AC_DEFUN([AC_PROG_INTLTOOL], ...) # pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- # serial 1 (pkg-config-0.24) # # Copyright © 2004 Scott James Remnant . # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # PKG_PROG_PKG_CONFIG([MIN-VERSION]) # ---------------------------------- AC_DEFUN([PKG_PROG_PKG_CONFIG], [m4_pattern_forbid([^_?PKG_[A-Z_]+$]) m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) fi if test -n "$PKG_CONFIG"; then _pkg_min_version=m4_default([$1], [0.9.0]) AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) PKG_CONFIG="" fi fi[]dnl ])# PKG_PROG_PKG_CONFIG # PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) # # Check to see whether a particular set of modules exists. Similar # to PKG_CHECK_MODULES(), but does not set variables or print errors. # # Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) # only at the first occurence in configure.ac, so if the first place # it's called might be skipped (such as if it is within an "if", you # have to call PKG_CHECK_EXISTS manually # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_EXISTS], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl if test -n "$PKG_CONFIG" && \ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then m4_default([$2], [:]) m4_ifvaln([$3], [else $3])dnl fi]) # _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) # --------------------------------------------- m4_define([_PKG_CONFIG], [if test -n "$$1"; then pkg_cv_[]$1="$$1" elif test -n "$PKG_CONFIG"; then PKG_CHECK_EXISTS([$3], [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], [pkg_failed=yes]) else pkg_failed=untried fi[]dnl ])# _PKG_CONFIG # _PKG_SHORT_ERRORS_SUPPORTED # ----------------------------- AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], [AC_REQUIRE([PKG_PROG_PKG_CONFIG]) if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi[]dnl ])# _PKG_SHORT_ERRORS_SUPPORTED # PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], # [ACTION-IF-NOT-FOUND]) # # # Note that if there is a possibility the first call to # PKG_CHECK_MODULES might not happen, you should be sure to include an # explicit call to PKG_PROG_PKG_CONFIG in your configure.ac # # # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_MODULES], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl pkg_failed=no AC_MSG_CHECKING([for $1]) _PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) _PKG_CONFIG([$1][_LIBS], [libs], [$2]) m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS and $1[]_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.]) if test $pkg_failed = yes; then AC_MSG_RESULT([no]) _PKG_SHORT_ERRORS_SUPPORTED if test $_pkg_short_errors_supported = yes; then $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1` else $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD m4_default([$4], [AC_MSG_ERROR( [Package requirements ($2) were not met: $$1_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. _PKG_TEXT])[]dnl ]) elif test $pkg_failed = untried; then AC_MSG_RESULT([no]) m4_default([$4], [AC_MSG_FAILURE( [The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. _PKG_TEXT To get pkg-config, see .])[]dnl ]) else $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS $1[]_LIBS=$pkg_cv_[]$1[]_LIBS AC_MSG_RESULT([yes]) $3 fi[]dnl ])# PKG_CHECK_MODULES # Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.11' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. m4_if([$1], [1.11.1], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.11.1])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to # `$srcdir', `$srcdir/..', or `$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is `.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly. AC_PREREQ([2.50])dnl # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 9 # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ(2.52)dnl ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl _AM_SUBST_NOTMAKE([$1_FALSE])dnl m4_define([_AM_COND_VALUE_$1], [$2])dnl if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 10 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "GCJ", or "OBJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl ifelse([$1], CC, [depcc="$CC" am_compiler_list=], [$1], CXX, [depcc="$CXX" am_compiler_list=], [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], UPC, [depcc="$UPC" am_compiler_list=], [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi am__universal=false m4_case([$1], [CC], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac], [CXX], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac]) for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_$1_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) AM_CONDITIONAL([am__fastdep$1], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE(dependency-tracking, [ --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. #serial 5 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`AS_DIRNAME("$mf")` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` AS_MKDIR_P([$dirpart/$fdir]) # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking # is enabled. FIXME. This creates each `.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 8 # AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS. AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2008, 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 16 # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.62])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) AM_MISSING_PROG(AUTOCONF, autoconf) AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) AM_MISSING_PROG(AUTOHEADER, autoheader) AM_MISSING_PROG(MAKEINFO, makeinfo) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AM_PROG_MKDIR_P])dnl # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES(CC)], [define([AC_PROG_CC], defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES(CXX)], [define([AC_PROG_CXX], defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES(OBJC)], [define([AC_PROG_OBJC], defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl ]) _AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl dnl The `parallel-tests' driver may need to know about EXEEXT, so add the dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl ]) dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_arg=$1 _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi AC_SUBST(install_sh)]) # Copyright (C) 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from `make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi AC_SUBST([am__include]) AC_SUBST([am__quote]) AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 6 # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it supports --run. # If it does, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= AC_MSG_WARN([`missing' script is too old or missing]) fi ]) # Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_MKDIR_P # --------------- # Check for `mkdir -p'. AC_DEFUN([AM_PROG_MKDIR_P], [AC_PREREQ([2.60])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, dnl while keeping a definition of mkdir_p for backward compatibility. dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of dnl Makefile.ins that do not define MKDIR_P, so we do our own dnl adjustment using top_builddir (which is defined more often than dnl MKDIR_P). AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl case $mkdir_p in [[\\/$]]* | ?:[[\\/]]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # ------------------------------ # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), 1)]) # _AM_SET_OPTIONS(OPTIONS) # ---------------------------------- # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 5 # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[[\\\"\#\$\&\'\`$am_lf]]*) AC_MSG_ERROR([unsafe absolute working directory name]);; esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; esac # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi rm -f conftest.file if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT(yes)]) # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor `install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in `make install-strip', and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be `maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Copyright (C) 2006, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of `v7', `ustar', or `pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. AM_MISSING_PROG([AMTAR], [tar]) m4_if([$1], [v7], [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], [m4_case([$1], [ustar],, [pax],, [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' _am_tools=${am_cv_prog_tar_$1-$_am_tools} # Do not fold the above two line into one, because Tru64 sh and # Solaris sh will not grok spaces in the rhs of `-'. for _am_tool in $_am_tools do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar /dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR m4_include([m4/argz.m4]) m4_include([m4/gettext.m4]) m4_include([m4/iconv.m4]) m4_include([m4/lib-ld.m4]) m4_include([m4/lib-link.m4]) m4_include([m4/lib-prefix.m4]) m4_include([m4/libtool.m4]) m4_include([m4/ltdl.m4]) m4_include([m4/ltoptions.m4]) m4_include([m4/ltsugar.m4]) m4_include([m4/ltversion.m4]) m4_include([m4/lt~obsolete.m4]) m4_include([m4/nls.m4]) m4_include([m4/po.m4]) m4_include([m4/progtest.m4]) scim-1.4.14/bootstrap000077500000000000000000000016001177210725600145040ustar00rootroot00000000000000#! /bin/sh # bootstrap -- Use this script to create generated files from the CVS dist # Copyright (C) 2000 Gary V. Vaughan # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ## @start 1 #! /bin/sh set -x autoreconf --force --install intltoolize --force autoreconf ## @end 1 scim-1.4.14/config.guess000077500000000000000000001303111177210725600150630ustar00rootroot00000000000000#! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 # Free Software Foundation, Inc. timestamp='2009-11-20' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Per Bothner. Please send patches (context # diff format) to and include a ChangeLog # entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown case "${UNAME_MACHINE}" in i?86) test -z "$VENDOR" && VENDOR=pc ;; *) test -z "$VENDOR" && VENDOR=unknown ;; esac test -f /etc/SuSE-release -o -f /.buildenv && VENDOR=suse # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-${VENDOR}-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-${VENDOR}-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-${VENDOR}-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-${VENDOR}-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-${VENDOR}-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-${VENDOR}-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-${VENDOR}-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-${VENDOR}-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm:riscos:*:*|arm:RISCOS:*:*) echo arm-${VENDOR}-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; s390x:SunOS:*:*) echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) echo i386-pc-auroraux${UNAME_RELEASE} exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) eval $set_cc_for_build SUN_ARCH="i386" # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then SUN_ARCH="x86_64" fi fi echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-${VENDOR}-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[456]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep -q __LP64__ then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-${VENDOR}-osf1mk else echo ${UNAME_MACHINE}-${VENDOR}-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-${VENDOR}-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-${VENDOR}-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) case ${UNAME_MACHINE} in pc98) echo i386-${VENDOR}-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; amd64) echo x86_64-${VENDOR}-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_MACHINE}-${VENDOR}-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; authenticamd | genuineintel | EM64T) echo x86_64-${VENDOR}-interix${UNAME_RELEASE} exit ;; IA64) echo ia64-${VENDOR}-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; 8664:Windows_NT:*) echo x86_64-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-${VENDOR}-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-${VENDOR}-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-${VENDOR}-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-${VENDOR}-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-${VENDOR}-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu${LIBC} exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu else echo ${UNAME_MACHINE}-${VENDOR}-linux-gnueabi fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu exit ;; cris:Linux:*:*) echo cris-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo crisv32-axis-linux-gnu exit ;; frv:Linux:*:*) echo frv-${VENDOR}-linux-gnu exit ;; i*86:Linux:*:*) LIBC=gnu eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` echo "${UNAME_MACHINE}-${VENDOR}-linux-${LIBC}" exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu exit ;; mips:Linux:*:* | mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef ${UNAME_MACHINE} #undef ${UNAME_MACHINE}el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=${UNAME_MACHINE}el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=${UNAME_MACHINE} #else CPU= #endif #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` test x"${CPU}" != x && { echo "${CPU}-${VENDOR}-linux-gnu"; exit; } ;; or32:Linux:*:*) echo or32-${VENDOR}-linux-gnu exit ;; padre:Linux:*:*) echo sparc-${VENDOR}-linux-gnu exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-${VENDOR}-linux-gnu exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-${VENDOR}-linux-gnu ;; PA8*) echo hppa2.0-${VENDOR}-linux-gnu ;; *) echo hppa-${VENDOR}-linux-gnu ;; esac exit ;; ppc64:Linux:*:*) echo powerpc64-${VENDOR}-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-${VENDOR}-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) echo x86_64-${VENDOR}-linux-gnu exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu exit ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-${VENDOR}-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-${VENDOR}-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) echo i386-${VENDOR}-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-${VENDOR}-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub # prints for the "djgpp" host, or else GDB configury will decide that # this is a cross-build. echo i586-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-${VENDOR}-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; NCR*:*:4.2:* | MPRAS*:*:4.2:*) OS_REL='.3' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-${VENDOR}-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-${VENDOR}-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-${VENDOR}-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) echo powerpc-${VENDOR}-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-${VENDOR}-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; BePC:Haiku:*:*) # Haiku running on Intel PC compatible. echo i586-pc-haiku exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in i386) eval $set_cc_for_build if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then UNAME_PROCESSOR="x86_64" fi fi ;; unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-${VENDOR}-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-${VENDOR}-tops10 exit ;; *:TENEX:*:*) echo pdp10-${VENDOR}-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-${VENDOR}-tops20 exit ;; *:ITS:*:*) echo pdp10-${VENDOR}-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-${VENDOR}-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; i*86:AROS:*:*) echo ${UNAME_MACHINE}-pc-aros exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: scim-1.4.14/config.h.in000066400000000000000000000213141177210725600145700ustar00rootroot00000000000000/* config.h.in. Generated from configure.ac by autoheader. */ /* Define this to enable the debug facility in libscim */ #undef ENABLE_DEBUG /* Use hash map instead of map in libscim */ #undef ENABLE_HASH_MAP /* Define to 1 if translation of program messages to the user's native language is requested. */ #undef ENABLE_NLS /* Enable the TrayIcon code. */ #undef ENABLE_TRAY_ICON /* Force use of GDK's multihead-safe APIs. */ #undef GDK_MULTIHEAD_SAFE /* The gettext domain */ #undef GETTEXT_PACKAGE /* Define to 1 if you have the `accept' function. */ #undef HAVE_ACCEPT /* Define to 1 if you have the `argz_add' function. */ #undef HAVE_ARGZ_ADD /* Define to 1 if you have the `argz_append' function. */ #undef HAVE_ARGZ_APPEND /* Define to 1 if you have the `argz_count' function. */ #undef HAVE_ARGZ_COUNT /* Define to 1 if you have the `argz_create_sep' function. */ #undef HAVE_ARGZ_CREATE_SEP /* Define to 1 if you have the header file. */ #undef HAVE_ARGZ_H /* Define to 1 if you have the `argz_insert' function. */ #undef HAVE_ARGZ_INSERT /* Define to 1 if you have the `argz_next' function. */ #undef HAVE_ARGZ_NEXT /* Define to 1 if you have the `argz_stringify' function. */ #undef HAVE_ARGZ_STRINGIFY /* Define to 1 if you have the `bind' function. */ #undef HAVE_BIND /* Define to 1 if you have the `closedir' function. */ #undef HAVE_CLOSEDIR /* Define to 1 if you have the `connect' function. */ #undef HAVE_CONNECT /* Define to 1 if you have the `daemon' function. */ #undef HAVE_DAEMON /* Define if the GNU dcgettext() function is already present or preinstalled. */ #undef HAVE_DCGETTEXT /* Define to 1 if you have the declaration of `cygwin_conv_path', and to 0 if you don't. */ #undef HAVE_DECL_CYGWIN_CONV_PATH /* Define to 1 if you have the header file. */ #undef HAVE_DIRENT_H /* Define if you have the GNU dld library. */ #undef HAVE_DLD /* Define to 1 if you have the header file. */ #undef HAVE_DLD_H /* Define to 1 if you have the `dlerror' function. */ #undef HAVE_DLERROR /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H /* Define to 1 if you have the header file. */ #undef HAVE_DL_H /* Define if you have the _dyld_func_lookup function. */ #undef HAVE_DYLD /* Define to 1 if the system has the type `error_t'. */ #undef HAVE_ERROR_T /* Define to 1 if you have the header file. */ #undef HAVE_EXT_HASH_MAP /* Define to 1 if you have the `gethostbyname' function. */ #undef HAVE_GETHOSTBYNAME /* Define to 1 if you have the `gethostbyname_r' function. */ #undef HAVE_GETHOSTBYNAME_R /* Define if the GNU gettext() function is already present or preinstalled. */ #undef HAVE_GETTEXT /* Define to 1 if you have the `gettimeofday' function. */ #undef HAVE_GETTIMEOFDAY /* Define to 1 if you have the header file. */ #undef HAVE_HASH_MAP /* Define if you have the iconv() function. */ #undef HAVE_ICONV /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_LANGINFO_H /* Define if you have the libdl library or equivalent. */ #undef HAVE_LIBDL /* Define if libdlloader will be built on this platform */ #undef HAVE_LIBDLLOADER /* Define to 1 if you have the header file. */ #undef HAVE_LIBINTL_H /* Define to 1 if you have the `listen' function. */ #undef HAVE_LISTEN /* Define this if a modern libltdl is already installed */ #undef HAVE_LTDL /* Define to 1 if you have the header file. */ #undef HAVE_MACH_O_DYLD_H /* Define to 1 if your system has a GNU libc compatible `malloc' function, and to 0 otherwise. */ #undef HAVE_MALLOC /* Define to 1 if you have the `memmove' function. */ #undef HAVE_MEMMOVE /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the `memset' function. */ #undef HAVE_MEMSET /* Define to 1 if you have the `nanosleep' function. */ #undef HAVE_NANOSLEEP /* Define to 1 if you have the `nl_langinfo' function. */ #undef HAVE_NL_LANGINFO /* Define to 1 if you have the `opendir' function. */ #undef HAVE_OPENDIR /* Define if libtool can extract symbol lists from object files. */ #undef HAVE_PRELOADED_SYMBOLS /* Define to 1 if you have the `readdir' function. */ #undef HAVE_READDIR /* Have scim-setup program. */ #undef HAVE_SCIM_SETUP /* Define to 1 if you have the `setlocale' function. */ #undef HAVE_SETLOCALE /* Define if you have the shl_load function. */ #undef HAVE_SHL_LOAD /* Define to 1 if you have the `socket' function. */ #undef HAVE_SOCKET /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the `strlcat' function. */ #undef HAVE_STRLCAT /* Define to 1 if you have the `strlcpy' function. */ #undef HAVE_STRLCPY /* Define to 1 if you have the header file. */ #undef HAVE_SYS_DL_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Define to 1 if you have the `usleep' function. */ #undef HAVE_USLEEP /* This value is set to 1 to indicate that the system argz facility works */ #undef HAVE_WORKING_ARGZ /* Define as const if the declaration of iconv() needs const. */ #undef ICONV_CONST /* Define if the OS needs help to load dependent libraries for dlopen(). */ #undef LTDL_DLOPEN_DEPLIBS /* Define to the system default library search path. */ #undef LT_DLSEARCH_PATH /* The archive extension */ #undef LT_LIBEXT /* Define to the extension used for runtime loadable modules, say, ".so". */ #undef LT_MODULE_EXT /* Define to the name of the environment variable that determines the run-time module search path. */ #undef LT_MODULE_PATH_VAR /* Define to the sub-directory in which libtool stores uninstalled libraries. */ #undef LT_OBJDIR /* Define if dlsym() requires a leading underscore in symbol names. */ #undef NEED_USCORE /* Name of package */ #undef PACKAGE /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the home page for this package. */ #undef PACKAGE_URL /* Define to the version of this package. */ #undef PACKAGE_VERSION /* The binary version of SCIM library. */ #undef SCIM_BINARY_VERSION /* The Major version of SCIM library. */ #undef SCIM_BRIDGE_MAJOR_VERSION /* The Micro version of SCIM library. */ #undef SCIM_BRIDGE_MICRO_VERSION /* The Minor version of SCIM library. */ #undef SCIM_BRIDGE_MINOR_VERSION /* The release version of SCIM library. */ #undef SCIM_BRIDGE_VERSION /* The Major version of SCIM library. */ #undef SCIM_MAJOR_VERSION /* The Micro version of SCIM library. */ #undef SCIM_MICRO_VERSION /* The Minor version of SCIM library. */ #undef SCIM_MINOR_VERSION /* The release version of SCIM library. */ #undef SCIM_VERSION /* The size of `char', as computed by sizeof. */ #undef SIZEOF_CHAR /* The size of `unsigned int', as computed by sizeof. */ #undef SIZEOF_UNSIGNED_INT /* The size of `unsigned long int', as computed by sizeof. */ #undef SIZEOF_UNSIGNED_LONG_INT /* The size of `unsigned long long int', as computed by sizeof. */ #undef SIZEOF_UNSIGNED_LONG_LONG_INT /* The size of `unsigned short int', as computed by sizeof. */ #undef SIZEOF_UNSIGNED_SHORT_INT /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Define to 1 if you can safely include both and . */ #undef TIME_WITH_SYS_TIME /* Version number of package */ #undef VERSION /* Define to 1 if the X Window System is missing or not being used. */ #undef X_DISPLAY_MISSING /* Define so that glibc/gnulib argp.h does not typedef error_t. */ #undef __error_t_defined /* Define to empty if `const' does not conform to ANSI C. */ #undef const /* Define to a type to use for `error_t' if it is not otherwise available. */ #undef error_t /* Define to `__inline__' or `__inline' if that's what the C compiler calls it, or to nothing if 'inline' is not supported under any name. */ #ifndef __cplusplus #undef inline #endif /* Define to rpl_malloc if the replacement function should be used. */ #undef malloc /* Define to `unsigned int' if does not define. */ #undef size_t scim-1.4.14/config.rpath000077500000000000000000000352131177210725600150600ustar00rootroot00000000000000#! /bin/sh # Output a system dependent set of variables, describing how to set the # run time search path of shared libraries in an executable. # # Copyright 1996-2003 Free Software Foundation, Inc. # Taken from GNU libtool, 2001 # Originally by Gordon Matzigkeit , 1996 # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # # The first argument passed to this file is the canonical host specification, # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld # should be set by the caller. # # The set of defined variables is at the end of this script. # Known limitations: # - On IRIX 6.5 with CC="cc", the run time search patch must not be longer # than 256 bytes, otherwise the compiler driver will dump core. The only # known workaround is to choose shorter directory names for the build # directory and/or the installation directory. # All known linkers require a `.a' archive for static linking (except M$VC, # which needs '.lib'). libext=a shrext=.so host="$1" host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` # Code taken from libtool.m4's AC_LIBTOOL_PROG_COMPILER_PIC. wl= if test "$GCC" = yes; then wl='-Wl,' else case "$host_os" in aix*) wl='-Wl,' ;; mingw* | pw32* | os2*) ;; hpux9* | hpux10* | hpux11*) wl='-Wl,' ;; irix5* | irix6* | nonstopux*) wl='-Wl,' ;; newsos6) ;; linux*) case $CC in icc|ecc) wl='-Wl,' ;; ccc) wl='-Wl,' ;; esac ;; osf3* | osf4* | osf5*) wl='-Wl,' ;; sco3.2v5*) ;; solaris*) wl='-Wl,' ;; sunos4*) wl='-Qoption ld ' ;; sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) wl='-Wl,' ;; sysv4*MP*) ;; uts4*) ;; esac fi # Code taken from libtool.m4's AC_LIBTOOL_PROG_LD_SHLIBS. hardcode_libdir_flag_spec= hardcode_libdir_separator= hardcode_direct=no hardcode_minus_L=no case "$host_os" in cygwin* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs=yes if test "$with_gnu_ld" = yes; then case "$host_os" in aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no fi ;; amigaos*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can use # them. ld_shlibs=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; cygwin* | mingw* | pw32*) # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then : else ld_shlibs=no fi ;; netbsd*) ;; solaris* | sysv5*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs=no elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; sunos4*) hardcode_direct=yes ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = yes; then # Unlike libtool, we use -rpath here, not --rpath, since the documented # option of GNU ld is called -rpath, not --rpath. hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' fi else case "$host_os" in aix3*) # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done esac fi hardcode_direct=yes hardcode_libdir_separator=':' if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct=yes else # We have old collect2 hardcode_direct=unsupported hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi esac fi # Begin _LT_AC_SYS_LIBPATH_AIX. echo 'int main () { return 0; }' > conftest.c ${CC} ${LDFLAGS} conftest.c -o conftest aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` fi if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib" fi rm -f conftest.c conftest # End _LT_AC_SYS_LIBPATH_AIX. if test "$aix_use_runtimelinking" = yes; then hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' else hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" fi fi ;; amigaos*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes # see comment about different semantics on the GNU ld section ld_shlibs=no ;; bsdi4*) ;; cygwin* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec=' ' libext=lib ;; darwin* | rhapsody*) if $CC -v 2>&1 | grep 'Apple' >/dev/null ; then hardcode_direct=no fi ;; dgux*) hardcode_libdir_flag_spec='-L$libdir' ;; freebsd1*) ld_shlibs=no ;; freebsd2.2*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; freebsd2*) hardcode_direct=yes hardcode_minus_L=yes ;; freebsd*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; hpux9*) hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; hpux10* | hpux11*) if test "$with_gnu_ld" = no; then case "$host_cpu" in hppa*64*) hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=no ;; ia64*) hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=no # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; *) hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; netbsd*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; newsos6) hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; openbsd*) hardcode_direct=yes if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then hardcode_libdir_flag_spec='${wl}-rpath,$libdir' else case "$host_os" in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) hardcode_libdir_flag_spec='-R$libdir' ;; *) hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; osf3*) hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) if test "$GCC" = yes; then hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else # Both cc and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi hardcode_libdir_separator=: ;; sco3.2v5*) ;; solaris*) hardcode_libdir_flag_spec='-R$libdir' ;; sunos4*) hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes ;; sysv4) case $host_vendor in sni) hardcode_direct=yes # is this really true??? ;; siemens) hardcode_direct=no ;; motorola) hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac ;; sysv4.3*) ;; sysv4*MP*) if test -d /usr/nec; then ld_shlibs=yes fi ;; sysv4.2uw2*) hardcode_direct=yes hardcode_minus_L=no ;; sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*) ;; sysv5*) hardcode_libdir_flag_spec= ;; uts4*) hardcode_libdir_flag_spec='-L$libdir' ;; *) ld_shlibs=no ;; esac fi # Check dynamic linker characteristics # Code taken from libtool.m4's AC_LIBTOOL_SYS_DYNAMIC_LINKER. libname_spec='lib$name' case "$host_os" in aix3*) ;; aix4* | aix5*) ;; amigaos*) ;; beos*) ;; bsdi4*) ;; cygwin* | mingw* | pw32*) shrext=.dll ;; darwin* | rhapsody*) shrext=.dylib ;; dgux*) ;; freebsd1*) ;; freebsd*) ;; gnu*) ;; hpux9* | hpux10* | hpux11*) case "$host_cpu" in ia64*) shrext=.so ;; hppa*64*) shrext=.sl ;; *) shrext=.sl ;; esac ;; irix5* | irix6* | nonstopux*) case "$host_os" in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;; *) libsuff= shlibsuff= ;; esac ;; esac ;; linux*oldld* | linux*aout* | linux*coff*) ;; linux*) ;; netbsd*) ;; newsos6) ;; nto-qnx) ;; openbsd*) ;; os2*) libname_spec='$name' shrext=.dll ;; osf3* | osf4* | osf5*) ;; sco3.2v5*) ;; solaris*) ;; sunos4*) ;; sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) ;; sysv4*MP*) ;; uts4*) ;; esac sed_quote_subst='s/\(["`$\\]\)/\\\1/g' escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"` shlibext=`echo "$shrext" | sed -e 's,^\.,,'` escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <. Submit a context # diff and a properly formatted GNU ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ kopensolaris*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray | -microblaze) os= basic_machine=$1 ;; -bluegene*) os=-cnk ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64octeon | mips64octeonel \ | mips64orion | mips64orionel \ | mips64r5900 | mips64r5900el \ | mips64vr | mips64vrel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | moxie \ | mt \ | msp430 \ | nios | nios2 \ | ns16k | ns32k \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | rx \ | score \ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | ubicom32 \ | v850 | v850e \ | we32k \ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12 | picochip) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64octeon-* | mips64octeonel-* \ | mips64orion-* | mips64orionel-* \ | mips64r5900-* | mips64r5900el-* \ | mips64vr-* | mips64vrel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ | tron-* \ | ubicom32-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-* | z80-*) ;; # Recognize the basic CPU types without company name, with glob match. xtensa*) basic_machine=$basic_machine-unknown ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aros) basic_machine=i386-pc os=-aros ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; blackfin) basic_machine=bfin-unknown os=-linux ;; blackfin-*) basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; bluegene*) basic_machine=powerpc-ibm os=-cnk ;; c90) basic_machine=c90-cray os=-unicos ;; cegcc) basic_machine=arm-unknown os=-cegcc ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16) basic_machine=cr16-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; dicos) basic_machine=i686-pc os=-dicos ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; microblaze) basic_machine=microblaze-xilinx ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; mvs) basic_machine=i370-ibm os=-mvs ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; parisc) basic_machine=hppa-unknown os=-linux ;; parisc-*) basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tic55x | c55x*) basic_machine=tic55x-unknown os=-coff ;; tic6x | c6x*) basic_machine=tic6x-unknown os=-coff ;; tile*) basic_machine=tile-unknown os=-linux-gnu ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; z80-*-coff) basic_machine=z80-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -auroraux) os=-auroraux ;; -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ | -sym* | -kopensolaris* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* | -aros* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* | -cegcc* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -zvmoe) os=-zvmoe ;; -dicos*) os=-dicos ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -cnk*|-aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: scim-1.4.14/configs/000077500000000000000000000000001177210725600141745ustar00rootroot00000000000000scim-1.4.14/configs/Makefile.am000066400000000000000000000004001177210725600162220ustar00rootroot00000000000000MAINTAINERCLEANFILES = Makefile.in CLEANFILES = *.bak if SCIM_BUILD_CONFIG_SIMPLE configdir = $(sysconfdir)/scim config_DATA = config global #config_source_data = $(foreach file, $(config_DATA), $(srcdir)/$(file)) endif EXTRA_DIST = $(config_DATA) scim-1.4.14/configs/Makefile.in000066400000000000000000000406331177210725600162470ustar00rootroot00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = configs DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(configdir)" DATA = $(config_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ ARGZ_H = @ARGZ_H@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CLUTTER_BINARY_VERSION = @CLUTTER_BINARY_VERSION@ CLUTTER_CFLAGS = @CLUTTER_CFLAGS@ CLUTTER_IMCONTEXT_LIBDIR = @CLUTTER_IMCONTEXT_LIBDIR@ CLUTTER_IM_MODULEDIR = @CLUTTER_IM_MODULEDIR@ CLUTTER_LIBDIR = @CLUTTER_LIBDIR@ CLUTTER_LIBS = @CLUTTER_LIBS@ CLUTTER_VERSION = @CLUTTER_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOCBOOK_XSL = @DOCBOOK_XSL@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@ GTHREAD2_LIBS = @GTHREAD2_LIBS@ GTK2_CFLAGS = @GTK2_CFLAGS@ GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@ GTK2_LIBS = @GTK2_LIBS@ GTK3_CFLAGS = @GTK3_CFLAGS@ GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@ GTK3_LIBS = @GTK3_LIBS@ GTK_BINARY_VERSION = @GTK_BINARY_VERSION@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBDIR = @GTK_LIBDIR@ GTK_LIBS = @GTK_LIBS@ GTK_MAJOR_VERSION = @GTK_MAJOR_VERSION@ GTK_VERSION = @GTK_VERSION@ HAVE_GRAPHVIZ = @HAVE_GRAPHVIZ@ INCLTDL = @INCLTDL@ INCLUDE_STDINT = @INCLUDE_STDINT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBLTDL = @LIBLTDL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_DEPS = @LIBTOOL_DEPS@ LIBTOOL_EXPORT_OPTIONS = @LIBTOOL_EXPORT_OPTIONS@ LIPO = @LIPO@ LN_S = @LN_S@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ QT3_CFLAGS = @QT3_CFLAGS@ QT3_IM_MODULEDIR = @QT3_IM_MODULEDIR@ QT3_LIBDIR = @QT3_LIBDIR@ QT3_LIBS = @QT3_LIBS@ QT3_MOC = @QT3_MOC@ QT3_PREFIX = @QT3_PREFIX@ QT4_CFLAGS = @QT4_CFLAGS@ QT4_IM_MODULEDIR = @QT4_IM_MODULEDIR@ QT4_LIBDIR = @QT4_LIBDIR@ QT4_LIBS = @QT4_LIBS@ QT4_MOC = @QT4_MOC@ QT4_PREFIX = @QT4_PREFIX@ RANLIB = @RANLIB@ SCIM_AGE = @SCIM_AGE@ SCIM_BINARY_VERSION = @SCIM_BINARY_VERSION@ SCIM_BRIDGE_MAJOR_VERSION = @SCIM_BRIDGE_MAJOR_VERSION@ SCIM_BRIDGE_MICRO_VERSION = @SCIM_BRIDGE_MICRO_VERSION@ SCIM_BRIDGE_MINOR_VERSION = @SCIM_BRIDGE_MINOR_VERSION@ SCIM_BRIDGE_VERSION = @SCIM_BRIDGE_VERSION@ SCIM_BUILD_CLUTTER_IMMODULE = @SCIM_BUILD_CLUTTER_IMMODULE@ SCIM_BUILD_CONFIG_SIMPLE = @SCIM_BUILD_CONFIG_SIMPLE@ SCIM_BUILD_CONFIG_SOCKET = @SCIM_BUILD_CONFIG_SOCKET@ SCIM_BUILD_DOCUMENTS = @SCIM_BUILD_DOCUMENTS@ SCIM_BUILD_FILTER_SCTC = @SCIM_BUILD_FILTER_SCTC@ SCIM_BUILD_FRONTEND_SOCKET = @SCIM_BUILD_FRONTEND_SOCKET@ SCIM_BUILD_FRONTEND_X11 = @SCIM_BUILD_FRONTEND_X11@ SCIM_BUILD_GTK2_IMMODULE = @SCIM_BUILD_GTK2_IMMODULE@ SCIM_BUILD_GTK3_IMMODULE = @SCIM_BUILD_GTK3_IMMODULE@ SCIM_BUILD_GTK_UTILS = @SCIM_BUILD_GTK_UTILS@ SCIM_BUILD_IMENGINE_RAWCODE = @SCIM_BUILD_IMENGINE_RAWCODE@ SCIM_BUILD_IMENGINE_SOCKET = @SCIM_BUILD_IMENGINE_SOCKET@ SCIM_BUILD_IMENGINE_TABLE = @SCIM_BUILD_IMENGINE_TABLE@ SCIM_BUILD_IMMODULE = @SCIM_BUILD_IMMODULE@ SCIM_BUILD_IM_AGENT = @SCIM_BUILD_IM_AGENT@ SCIM_BUILD_ORIG_GTK2_IMMODULE = @SCIM_BUILD_ORIG_GTK2_IMMODULE@ SCIM_BUILD_ORIG_GTK3_IMMODULE = @SCIM_BUILD_ORIG_GTK3_IMMODULE@ SCIM_BUILD_PANEL_GTK = @SCIM_BUILD_PANEL_GTK@ SCIM_BUILD_QT3_IMMODULE = @SCIM_BUILD_QT3_IMMODULE@ SCIM_BUILD_QT4_IMMODULE = @SCIM_BUILD_QT4_IMMODULE@ SCIM_BUILD_SCIM_SETUP = @SCIM_BUILD_SCIM_SETUP@ SCIM_BUILD_TESTS = @SCIM_BUILD_TESTS@ SCIM_BUILD_X11_UTILS = @SCIM_BUILD_X11_UTILS@ SCIM_CURRENT = @SCIM_CURRENT@ SCIM_DATADIR = @SCIM_DATADIR@ SCIM_EPOCH = @SCIM_EPOCH@ SCIM_ICONDIR = @SCIM_ICONDIR@ SCIM_LIBDIR = @SCIM_LIBDIR@ SCIM_LIBEXECDIR = @SCIM_LIBEXECDIR@ SCIM_LOCALEDIR = @SCIM_LOCALEDIR@ SCIM_LTDLADVISE = @SCIM_LTDLADVISE@ SCIM_MAJOR_VERSION = @SCIM_MAJOR_VERSION@ SCIM_MICRO_VERSION = @SCIM_MICRO_VERSION@ SCIM_MINOR_VERSION = @SCIM_MINOR_VERSION@ SCIM_MODULE_PATH = @SCIM_MODULE_PATH@ SCIM_PREFIX = @SCIM_PREFIX@ SCIM_REVISION = @SCIM_REVISION@ SCIM_SYSCONFDIR = @SCIM_SYSCONFDIR@ SCIM_TEMPDIR = @SCIM_TEMPDIR@ SCIM_VERSION = @SCIM_VERSION@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UINT16 = @UINT16@ UINT32 = @UINT32@ UINT64 = @UINT64@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XMKMF = @XMKMF@ XSLTPROC = @XSLTPROC@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_aux_dir = @ac_aux_dir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ MAINTAINERCLEANFILES = Makefile.in CLEANFILES = *.bak @SCIM_BUILD_CONFIG_SIMPLE_TRUE@configdir = $(sysconfdir)/scim @SCIM_BUILD_CONFIG_SIMPLE_TRUE@config_DATA = config global #config_source_data = $(foreach file, $(config_DATA), $(srcdir)/$(file)) EXTRA_DIST = $(config_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu configs/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu configs/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-configDATA: $(config_DATA) @$(NORMAL_INSTALL) test -z "$(configdir)" || $(MKDIR_P) "$(DESTDIR)$(configdir)" @list='$(config_DATA)'; test -n "$(configdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(configdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(configdir)" || exit $$?; \ done uninstall-configDATA: @$(NORMAL_UNINSTALL) @list='$(config_DATA)'; test -n "$(configdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(configdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(configdir)" && rm -f $$files tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(configdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-configDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-configDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-configDATA install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ uninstall uninstall-am uninstall-configDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: scim-1.4.14/configs/config000066400000000000000000000030151177210725600153630ustar00rootroot00000000000000# This file is encoded in UTF-8 encoding. /FrontEnd/OnTheSpot = true /FrontEnd/ChangeFactoryGlobally = false /FrontEnd/Socket/ConfigReadOnly = false /FrontEnd/Socket/MaxClients = 512 /FrontEnd/X11/BrokenWchar = true /FrontEnd/X11/Dynamic = false /FrontEnd/X11/OnTheSpot = true /FrontEnd/X11/ServerName = SCIM /Hotkeys/FrontEnd/NextFactory = Control+Alt+Down,Shift+Control+KeyRelease+Shift_L,Shift+Control+KeyRelease+Shift_R /Hotkeys/FrontEnd/PreviousFactory = Control+Alt+Up,Shift+Control+KeyRelease+Control_L,Shift+Control+KeyRelease+Control_R /Hotkeys/FrontEnd/ShowFactoryMenu = Control+Alt+Right /Hotkeys/FrontEnd/Trigger = Control+space,Zenkaku_Hankaku,Hangul /Hotkeys/FrontEnd/ValidKeyMask = Shift+Control+Alt+Meta+QuirkKanaRo /Panel/Gtk/Color/ActiveBackground = light sky blue /Panel/Gtk/Color/ActiveText = black /Panel/Gtk/Color/NormalBackground = #F7F3F7 /Panel/Gtk/Color/NormalText = black /Panel/Gtk/Font = default /Panel/Gtk/DefaultSticked = false /Panel/Gtk/LookupTableEmbedded = true /Panel/Gtk/LookupTableVertical = false /Panel/Gtk/ShowStatusBox = false /Panel/Gtk/ShowTrayIcon = true /Panel/Gtk/ToolBar/AlwaysShow = false /Panel/Gtk/ToolBar/AutoSnap = true /Panel/Gtk/ToolBar/HideTimeout = 2 /Panel/Gtk/ToolBar/POS_X = -1 /Panel/Gtk/ToolBar/POS_Y = -1 /Panel/Gtk/ToolBar/ShowHelpIcon = true /Panel/Gtk/ToolBar/ShowFactoryIcon = true /Panel/Gtk/ToolBar/ShowFactoryName = true /Panel/Gtk/ToolBar/ShowMenuIcon = true /Panel/Gtk/ToolBar/ShowSetupIcon = true /Panel/Gtk/ToolBar/ShowStickIcon = false /IMEngine/RawCode/Locales = default scim-1.4.14/configs/global000066400000000000000000000007131177210725600153600ustar00rootroot00000000000000/SupportedUnicodeLocales = en_US.UTF-8 /DefaultPanelProgram = scim-panel-gtk /DefaultConfigModule = simple /DefaultSocketFrontEndAddress = local:/tmp/scim-socket-frontend /DefaultSocketIMEngineAddress = local:/tmp/scim-socket-frontend /DefaultSocketConfigAddress = local:/tmp/scim-socket-frontend /DefaultPanelSocketAddress = local:/tmp/scim-panel-socket /DefaultHelperManagerSocketAddress = local:/tmp/scim-helper-manager-socket /DefaultSocketTimeout = 5000 scim-1.4.14/configure000077500000000000000000027274761177210725600145040ustar00rootroot00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.68 for scim 1.4.14. # # Report bugs to . # # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software # Foundation, Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV export CONFIG_SHELL case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"} fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org and $0: http://sf.net/tracker/?atid=650539&group_id=108454 $0: about your system, including any error possibly output $0: before this message. Then install a modern shell, or $0: manually run the script under such a shell if you do $0: have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in #( -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" lt_ltdl_dir='libltdl' # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} case X$lt_ECHO in X*--fallback-echo) # Remove one level of quotation (which was required for Make). ECHO=`echo "$lt_ECHO" | sed 's,\\\\\$\\$0,'$0','` ;; esac ECHO=${lt_ECHO-echo} if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then # Yippee, $ECHO works! : else # Restart under the correct shell. exec $SHELL "$0" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat <<_LT_EOF $* _LT_EOF exit 0 fi # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH if test -z "$lt_ECHO"; then if test "X${echo_test_string+set}" != Xset; then # find a string as large as possible, as long as the shell can cope with it for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... if { echo_test_string=`eval $cmd`; } 2>/dev/null && { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null then break fi done fi if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then : else # The Solaris, AIX, and Digital Unix default echo programs unquote # backslashes. This makes it impossible to quote backslashes using # echo "$something" | sed 's/\\/\\\\/g' # # So, first we look for a working echo in the user's PATH. lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for dir in $PATH /usr/ucb; do IFS="$lt_save_ifs" if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then ECHO="$dir/echo" break fi done IFS="$lt_save_ifs" if test "X$ECHO" = Xecho; then # We didn't find a better echo, so look for alternatives. if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # This shell has a builtin print -r that does the trick. ECHO='print -r' elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } && test "X$CONFIG_SHELL" != X/bin/ksh; then # If we have ksh, try running configure again with it. ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} export ORIGINAL_CONFIG_SHELL CONFIG_SHELL=/bin/ksh export CONFIG_SHELL exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} else # Try using printf. ECHO='printf %s\n' if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # Cool, printf works : elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL export CONFIG_SHELL SHELL="$CONFIG_SHELL" export SHELL ECHO="$CONFIG_SHELL $0 --fallback-echo" elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then ECHO="$CONFIG_SHELL $0 --fallback-echo" else # maybe with a smaller string... prev=: for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null then break fi prev="$cmd" done if test "$prev" != 'sed 50q "$0"'; then echo_test_string=`eval $prev` export echo_test_string exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} else # Oops. We lost completely, so just stick with echo. ECHO=echo fi fi fi fi fi fi # Copy echo and quote the copy suitably for passing to libtool from # the Makefile, instead of quoting the original, which is used later. lt_ECHO=$ECHO if test "X$lt_ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then lt_ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" fi lt_dlopen_dir="$lt_ltdl_dir" test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='scim' PACKAGE_TARNAME='scim' PACKAGE_VERSION='1.4.14' PACKAGE_STRING='scim 1.4.14' PACKAGE_BUGREPORT='http://sf.net/tracker/?atid=650539&group_id=108454' PACKAGE_URL='' ac_unique_file="src/scim.h" # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" enable_option_checking=no ac_subst_vars='ltdl_LTLIBOBJS ltdl_LIBOBJS am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS ac_aux_dir SCIM_LIBDIR SCIM_PREFIX SCIM_TEMPDIR SCIM_LOCALEDIR SCIM_LIBEXECDIR SCIM_MODULE_PATH SCIM_ICONDIR SCIM_SYSCONFDIR SCIM_DATADIR SCIM_BUILD_IMMODULE SCIM_BUILD_CLUTTER_IMMODULE SCIM_BUILD_QT4_IMMODULE SCIM_BUILD_QT3_IMMODULE SCIM_BUILD_GTK3_IMMODULE SCIM_BUILD_GTK2_IMMODULE SCIM_BUILD_IM_AGENT SCIM_BUILD_X11_UTILS SCIM_BUILD_GTK_UTILS SCIM_BUILD_PANEL_GTK SCIM_BUILD_SCIM_SETUP SCIM_BUILD_ORIG_GTK3_IMMODULE SCIM_BUILD_ORIG_GTK2_IMMODULE SCIM_BUILD_FILTER_SCTC SCIM_BUILD_IMENGINE_SOCKET SCIM_BUILD_IMENGINE_TABLE SCIM_BUILD_IMENGINE_RAWCODE SCIM_BUILD_FRONTEND_SOCKET SCIM_BUILD_FRONTEND_X11 SCIM_BUILD_CONFIG_SOCKET SCIM_BUILD_CONFIG_SIMPLE SCIM_BUILD_DOCUMENTS SCIM_BUILD_TESTS SCIM_LTDLADVISE SCIM_BUILD_PANEL_GTK_FALSE SCIM_BUILD_PANEL_GTK_TRUE SCIM_BUILD_TRAY_ICON_FALSE SCIM_BUILD_TRAY_ICON_TRUE SCIM_BUILD_X11_UTILS_FALSE SCIM_BUILD_X11_UTILS_TRUE SCIM_BUILD_GTK_UTILS_FALSE SCIM_BUILD_GTK_UTILS_TRUE SCIM_BUILD_SCIM_SETUP_FALSE SCIM_BUILD_SCIM_SETUP_TRUE SCIM_BUILD_FILTER_SCTC_FALSE SCIM_BUILD_FILTER_SCTC_TRUE SCIM_BUILD_IMMODULE_FALSE SCIM_BUILD_IMMODULE_TRUE SCIM_BUILD_CLUTTER_IMMODULE_FALSE SCIM_BUILD_CLUTTER_IMMODULE_TRUE SCIM_BUILD_QT4_IMMODULE_FALSE SCIM_BUILD_QT4_IMMODULE_TRUE SCIM_BUILD_QT3_IMMODULE_FALSE SCIM_BUILD_QT3_IMMODULE_TRUE SCIM_BUILD_GTK3_IMMODULE_FALSE SCIM_BUILD_GTK3_IMMODULE_TRUE SCIM_BUILD_GTK2_IMMODULE_FALSE SCIM_BUILD_GTK2_IMMODULE_TRUE SCIM_BUILD_IM_AGENT_FALSE SCIM_BUILD_IM_AGENT_TRUE SCIM_BUILD_ORIG_GTK3_IMMODULE_FALSE SCIM_BUILD_ORIG_GTK3_IMMODULE_TRUE SCIM_BUILD_ORIG_GTK2_IMMODULE_FALSE SCIM_BUILD_ORIG_GTK2_IMMODULE_TRUE SCIM_BUILD_IMENGINE_RAWCODE_FALSE SCIM_BUILD_IMENGINE_RAWCODE_TRUE SCIM_BUILD_IMENGINE_SOCKET_FALSE SCIM_BUILD_IMENGINE_SOCKET_TRUE SCIM_BUILD_FRONTEND_SOCKET_FALSE SCIM_BUILD_FRONTEND_SOCKET_TRUE SCIM_BUILD_FRONTEND_X11_FALSE SCIM_BUILD_FRONTEND_X11_TRUE SCIM_BUILD_CONFIG_SOCKET_FALSE SCIM_BUILD_CONFIG_SOCKET_TRUE SCIM_BUILD_CONFIG_SIMPLE_FALSE SCIM_BUILD_CONFIG_SIMPLE_TRUE SCIM_BUILD_DOCUMENTS_FALSE SCIM_BUILD_DOCUMENTS_TRUE SCIM_BUILD_TESTS_FALSE SCIM_BUILD_TESTS_TRUE SCIM_LTDLADVISE_FALSE SCIM_LTDLADVISE_TRUE SCIM_LD_VERSION_SCRIPT_FALSE SCIM_LD_VERSION_SCRIPT_TRUE GTK_LIBS GTK_CFLAGS GTK_BINARY_VERSION GTK_MAJOR_VERSION GTK_VERSION GTK_LIBDIR X_EXTRA_LIBS X_LIBS X_PRE_LIBS X_CFLAGS XMKMF CLUTTER_IMCONTEXT_LIBDIR CLUTTER_BINARY_VERSION CLUTTER_VERSION CLUTTER_LIBDIR CLUTTER_IM_MODULEDIR CLUTTER_LIBS CLUTTER_CFLAGS QT4_LIBDIR QT4_PREFIX QT4_IM_MODULEDIR QT4_MOC QT4_LIBS QT4_CFLAGS QT3_LIBDIR QT3_PREFIX QT3_IM_MODULEDIR QT3_MOC QT3_LIBS QT3_CFLAGS GTHREAD2_LIBS GTHREAD2_CFLAGS GTK3_IM_MODULEDIR GTK2_IM_MODULEDIR GTK3_LIBS GTK3_CFLAGS GTK2_LIBS GTK2_CFLAGS PKG_CONFIG_LIBDIR PKG_CONFIG_PATH PKG_CONFIG LIBOBJS UINT64 UINT32 UINT16 INCLUDE_STDINT DATADIRNAME ALL_LINGUAS INTLTOOL_PERL INTLTOOL_POLICY_RULE INTLTOOL_SERVICE_RULE INTLTOOL_THEME_RULE INTLTOOL_SCHEMAS_RULE INTLTOOL_CAVES_RULE INTLTOOL_XML_NOMERGE_RULE INTLTOOL_XML_RULE INTLTOOL_KBD_RULE INTLTOOL_XAM_RULE INTLTOOL_UI_RULE INTLTOOL_SOUNDLIST_RULE INTLTOOL_SHEET_RULE INTLTOOL_SERVER_RULE INTLTOOL_PONG_RULE INTLTOOL_OAF_RULE INTLTOOL_PROP_RULE INTLTOOL_KEYS_RULE INTLTOOL_DIRECTORY_RULE INTLTOOL_DESKTOP_RULE INTLTOOL_EXTRACT INTLTOOL_MERGE INTLTOOL_UPDATE BUILD_MANUAL_FALSE BUILD_MANUAL_TRUE HAVE_DOCBOOK_FALSE HAVE_DOCBOOK_TRUE DOCBOOK_XSL HAVE_XSLTPROC_FALSE HAVE_XSLTPROC_TRUE XSLTPROC PERL DOT HAVE_GRAPHVIZ HAVE_DOXYGEN_FALSE HAVE_DOXYGEN_TRUE DOXYGEN POSUB LTLIBINTL LIBINTL INTLLIBS LTLIBICONV LIBICONV MSGMERGE XGETTEXT GMSGFMT MSGFMT USE_NLS MKINSTALLDIRS CXXCPP am__fastdepCXX_FALSE am__fastdepCXX_TRUE CXXDEPMODE ac_ct_CXX CXXFLAGS CXX LIBTOOL_EXPORT_OPTIONS LIBTOOL_DEPS LTDLOPEN LT_CONFIG_H subdirs CONVENIENCE_LTDL_FALSE CONVENIENCE_LTDL_TRUE INSTALL_LTDL_FALSE INSTALL_LTDL_TRUE ARGZ_H sys_symbol_underscore LIBADD_DL LT_DLPREOPEN LIBADD_DLD_LINK LIBADD_SHL_LOAD LIBADD_DLOPEN LT_DLLOADERS INCLTDL LTDLINCL LTDLDEPS LIBLTDL CPP OTOOL64 OTOOL LIPO NMEDIT DSYMUTIL lt_ECHO RANLIB AR OBJDUMP LN_S NM ac_ct_DUMPBIN DUMPBIN LD FGREP EGREP GREP SED am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE am__quote am__include DEPDIR OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC host_os host_vendor host_cpu host build_os build_vendor build_cpu build LIBTOOL am__untar am__tar AMTAR am__leading_dot SET_MAKE AWK mkdir_p MKDIR_P INSTALL_STRIP_PROGRAM STRIP install_sh MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W am__isrc INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM GETTEXT_PACKAGE SCIM_BRIDGE_VERSION SCIM_BRIDGE_MICRO_VERSION SCIM_BRIDGE_MINOR_VERSION SCIM_BRIDGE_MAJOR_VERSION SCIM_BINARY_VERSION SCIM_EPOCH SCIM_AGE SCIM_REVISION SCIM_CURRENT SCIM_VERSION SCIM_MICRO_VERSION SCIM_MINOR_VERSION SCIM_MAJOR_VERSION target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking enable_shared enable_static with_pic enable_fast_install enable_dependency_tracking with_gnu_ld enable_libtool_lock with_included_ltdl with_ltdl_include with_ltdl_lib enable_ltdl_install enable_nls enable_rpath with_libiconv_prefix with_libintl_prefix with_doxygen with_x with_gtk2_im_module_dir with_gtk3_im_module_dir with_qt3_moc with_qt4_moc with_qt3_im_module_dir with_qt4_im_module_dir with_clutter_im_module_dir with_gtk_version enable_ld_version_script enable_ltdladvise enable_debug enable_tests enable_documents enable_hash_map enable_config_simple enable_config_socket enable_frontend_x11 enable_frontend_socket enable_im_rawcode enable_im_socket enable_filter_sctc enable_orig_gtk2_immodule enable_orig_gtk3_immodule enable_agent enable_gtk2_immodule enable_gtk3_immodule enable_qt3_immodule enable_qt4_immodule enable_clutter_immodule enable_panel_gtk enable_setup_ui ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP CXX CXXFLAGS CCC CXXCPP PKG_CONFIG PKG_CONFIG_PATH PKG_CONFIG_LIBDIR GTK2_CFLAGS GTK2_LIBS GTK3_CFLAGS GTK3_LIBS GTHREAD2_CFLAGS GTHREAD2_LIBS QT3_CFLAGS QT3_LIBS QT4_CFLAGS QT4_LIBS CLUTTER_CFLAGS CLUTTER_LIBS XMKMF' ac_subdirs_all='libltdl' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used" >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures scim 1.4.14 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/scim] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names X features: --x-includes=DIR X include files are in DIR --x-libraries=DIR X library files are in DIR System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of scim 1.4.14:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-shared[=PKGS] build shared libraries [default=yes] --enable-static[=PKGS] build static libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors --disable-libtool-lock avoid locking (might break parallel builds) --enable-ltdl-install install libltdl --disable-nls do not use Native Language Support --disable-rpath do not hardcode runtime library paths --enable-ld-version-script Use ld version script to limit exported symbols --enable-ltdladvise Use lt_dladvise for module loading --enable-debug Turn on debugging --enable-tests Build tests/* --enable-documents build documents --enable-hash-map Use hash_map instead of std::map internally --disable-config-simple Do not build Simple Config module --disable-config-socket Do not build Socket Config module --disable-frontend-x11 Do not build X11 FrontEnd module --disable-frontend-socket Do not build Socket FrontEnd module --disable-im-rawcode Do not build RawCode IMEngine module --disable-im-socket Do not build Socket IMEngine module --disable-filter-sctc Do not build Simplified/Traditional Chinese conversion Filter module --enable-orig-gtk2-immodule Build original GTK2 IMModule --enable-orig-gtk3-immodule Build original GTK3 IMModule --disable-im-agent Do not build scim-im-agent (required by other immodules) --disable-gtk2-immodule Do not build GTK2 IMModule --disable-gtk3-immodule Do not build GTK3 IMModule --disable-qt3-immodule Do not build QT3 IMModule --disable-qt4-immodule Do not build QT4 IMModule --disable-clutter-immodule Do not build CLUTTER IMModule --disable-panel-gtk Do not build GTK2 Panel --disable-setup-ui Do not build Setup UI Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-pic try to use only PIC/non-PIC objects [default=use both] --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-included-ltdl use the GNU ltdl sources included here --with-ltdl-include=DIR use the ltdl headers installed in DIR --with-ltdl-lib=DIR use the libltdl.la installed in DIR --with-gnu-ld assume the C compiler uses GNU ld default=no --with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib --without-libiconv-prefix don't search for libiconv in includedir and libdir --with-libintl-prefix[=DIR] search for libintl in DIR/include and DIR/lib --without-libintl-prefix don't search for libintl in includedir and libdir --without-doxygen Don't build API documentation --with-x use the X Window System --with-gtk2-im-module-dir=dir Select GTK2 immodule dir --with-gtk3-im-module-dir=dir Select GTK3 immodule dir --with-qt3-moc=file Select QT3 moc program (default to QT3_PREFIX/bin/moc) --with-qt4-moc=file Select QT4 moc program (default to QT4_PREFIX/bin/moc) --with-qt3-im-module-dir=dir Select QT3 immodule dir --with-qt4-im-module-dir=dir Select QT4 immodule dir --with-clutter-im-module-dir=dir Select clutter immodule dir --with-gtk-version=2 or 3 Select gtk version if both gtk2 and gtk3 are available (default is 3) Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor CXX C++ compiler command CXXFLAGS C++ compiler flags CXXCPP C++ preprocessor PKG_CONFIG path to pkg-config utility PKG_CONFIG_PATH directories to add to pkg-config's search path PKG_CONFIG_LIBDIR path overriding pkg-config's built-in search path GTK2_CFLAGS C compiler flags for GTK2, overriding pkg-config GTK2_LIBS linker flags for GTK2, overriding pkg-config GTK3_CFLAGS C compiler flags for GTK3, overriding pkg-config GTK3_LIBS linker flags for GTK3, overriding pkg-config GTHREAD2_CFLAGS C compiler flags for GTHREAD2, overriding pkg-config GTHREAD2_LIBS linker flags for GTHREAD2, overriding pkg-config QT3_CFLAGS C compiler flags for QT3, overriding pkg-config QT3_LIBS linker flags for QT3, overriding pkg-config QT4_CFLAGS C compiler flags for QT4, overriding pkg-config QT4_LIBS linker flags for QT4, overriding pkg-config CLUTTER_CFLAGS C compiler flags for CLUTTER, overriding pkg-config CLUTTER_LIBS linker flags for CLUTTER, overriding pkg-config XMKMF Path to xmkmf, Makefile generator for X Window System Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to . _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF scim configure 1.4.14 generated by GNU Autoconf 2.68 Copyright (C) 2010 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_compile # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_link # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in # INCLUDES, setting the cache variable VAR accordingly. ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_compile # ac_fn_c_try_cpp LINENO # ---------------------- # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_cpp # ac_fn_c_try_run LINENO # ---------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes # that executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : ac_retval=0 else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_run # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly ac_fn_c_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. For example, HP-UX 11i declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $2 (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $2 /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $2 (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$2 || defined __stub___$2 choke me #endif int main () { return $2 (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_func # ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES # --------------------------------------------- # Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR # accordingly. ac_fn_c_check_decl () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack as_decl_name=`echo $2|sed 's/ *(.*//'` as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 $as_echo_n "checking whether $as_decl_name is declared... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { #ifndef $as_decl_name #ifdef __cplusplus (void) $as_decl_use; #else (void) $as_decl_name; #endif #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_decl # ac_fn_c_check_type LINENO TYPE VAR INCLUDES # ------------------------------------------- # Tests whether TYPE exists after having included INCLUDES, setting cache # variable VAR accordingly. ac_fn_c_check_type () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=no" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof ($2)) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof (($2))) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else eval "$3=yes" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_type # ac_fn_cxx_try_compile LINENO # ---------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_cxx_try_compile # ac_fn_cxx_try_cpp LINENO # ------------------------ # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_cxx_try_cpp # ac_fn_cxx_try_link LINENO # ------------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_cxx_try_link # ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists, giving a warning if it cannot be compiled using # the include files in INCLUDES and setting the cache variable VAR # accordingly. ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if eval \${$3+:} false; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 $as_echo_n "checking $2 usability... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_header_compiler=yes else ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 $as_echo_n "checking $2 presence... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <$2> _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : ac_header_preproc=yes else ac_header_preproc=no fi rm -f conftest.err conftest.i conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( yes:no: ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; no:yes:* ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ( $as_echo "## ----------------------------------------------------------------- ## ## Report this to http://sf.net/tracker/?atid=650539&group_id=108454 ## ## ----------------------------------------------------------------- ##" ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_mongrel # ac_fn_c_compute_int LINENO EXPR VAR INCLUDES # -------------------------------------------- # Tries to find the compile-time value of EXPR in a program that includes # INCLUDES, setting VAR accordingly. Returns whether the value could be # computed ac_fn_c_compute_int () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) >= 0)]; test_array [0] = 0 ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_lo=0 ac_mid=0 while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_hi=$ac_mid; break else as_fn_arith $ac_mid + 1 && ac_lo=$as_val if test $ac_lo -le $ac_mid; then ac_lo= ac_hi= break fi as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) < 0)]; test_array [0] = 0 ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_hi=-1 ac_mid=-1 while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) >= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_lo=$ac_mid; break else as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val if test $ac_mid -le $ac_hi; then ac_lo= ac_hi= break fi as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else ac_lo= ac_hi= fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # Binary search between lo and hi bounds. while test "x$ac_lo" != "x$ac_hi"; do as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; test_array [0] = 0 ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_hi=$ac_mid else as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done case $ac_lo in #(( ?*) eval "$3=\$ac_lo"; ac_retval=0 ;; '') ac_retval=1 ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 static long int longval () { return $2; } static unsigned long int ulongval () { return $2; } #include #include int main () { FILE *f = fopen ("conftest.val", "w"); if (! f) return 1; if (($2) < 0) { long int i = longval (); if (i != ($2)) return 1; fprintf (f, "%ld", i); } else { unsigned long int i = ulongval (); if (i != ($2)) return 1; fprintf (f, "%lu", i); } /* Do not output a trailing newline, as this causes \r\n confusion on some platforms. */ return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : echo >>conftest.val; read $3 config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by scim $as_me 1.4.14, which was generated by GNU Autoconf 2.68. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then # We do not want a PATH search for config.site. case $CONFIG_SITE in #(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ########################################################### ## Some definitions of Version macros. ## ########################################################### SCIM_MAJOR_VERSION=1 SCIM_MINOR_VERSION=4 SCIM_MICRO_VERSION=14 SCIM_VERSION=$SCIM_MAJOR_VERSION.$SCIM_MINOR_VERSION.$SCIM_MICRO_VERSION # increment if the interface has additions, changes, removals. SCIM_CURRENT=10 # increment any time the source changes; set to 0 if you increment CURRENT SCIM_REVISION=6 # increment if any interfaces have been added; set to 0 # if any interfaces have been removed. removal has # precedence over adding, so set to 0 if both happened. SCIM_AGE=2 # Define a string for the earliest version that this release cannot # coexist with. This is used for directory hierarchies. # SCIM_EPOCH=-1.0 # Define a string for the earliest version that this release has # binary compatibility with. This is used for module locations. # SCIM_BINARY_VERSION=1.4.0 cat >>confdefs.h <<_ACEOF #define SCIM_BINARY_VERSION "$SCIM_BINARY_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define SCIM_VERSION "$SCIM_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define SCIM_MAJOR_VERSION $SCIM_MAJOR_VERSION _ACEOF cat >>confdefs.h <<_ACEOF #define SCIM_MINOR_VERSION $SCIM_MINOR_VERSION _ACEOF cat >>confdefs.h <<_ACEOF #define SCIM_MICRO_VERSION $SCIM_MICRO_VERSION _ACEOF # for scim-bridge integration SCIM_BRIDGE_MAJOR_VERSION=$SCIM_MAJOR_VERSION SCIM_BRIDGE_MINOR_VERSION=$SCIM_MINOR_VERSION SCIM_BRIDGE_MICRO_VERSION=$SCIM_MICRO_VERSION SCIM_BRIDGE_VERSION=$SCIM_VERSION cat >>confdefs.h <<_ACEOF #define SCIM_BRIDGE_VERSION "$SCIM_BRIDGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define SCIM_BRIDGE_MAJOR_VERSION $SCIM_BRIDGE_MAJOR_VERSION _ACEOF cat >>confdefs.h <<_ACEOF #define SCIM_BRIDGE_MINOR_VERSION $SCIM_BRIDGE_MINOR_VERSION _ACEOF cat >>confdefs.h <<_ACEOF #define SCIM_BRIDGE_MICRO_VERSION $SCIM_BRIDGE_MICRO_VERSION _ACEOF GETTEXT_PACKAGE=scim cat >>confdefs.h <<_ACEOF #define GETTEXT_PACKAGE "$GETTEXT_PACKAGE" _ACEOF ########################################################### ## Start Configuration. ## ########################################################### # Init automake stuff am__api_version='1.11' ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in #(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } # Just in case sleep 1 echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;; esac # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi rm -f conftest.file if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". as_fn_error $? "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 fi test "$2" = conftest.file ) then # Ok. : else as_fn_error $? "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 $as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if ${ac_cv_path_mkdir+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi test -d ./--version && rmdir ./--version if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. MKDIR_P="$ac_install_sh -d" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } mkdir_p="$MKDIR_P" case $mkdir_p in [\\/$]* | ?:[\\/]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE='scim' VERSION='1.4.14' cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. AMTAR=${AMTAR-"${am_missing_run}tar"} am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' ac_config_headers="$ac_config_headers config.h" # Init libtool case `pwd` in *\ * | *\ *) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 $as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; esac macro_version='2.2.6b' macro_revision='1.3018' ltmain="$ac_aux_dir/ltmain.sh" # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } if ${ac_cv_build+:} false; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } if ${ac_cv_host+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 $as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from `make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 $as_echo "$_am_result" >&6; } rm -f confinc confmf # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then : enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 $as_echo_n "checking whether the C compiler works... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi if test -z "$ac_file"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables See \`config.log' for more details" "$LINENO" 5; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 $as_echo_n "checking for C compiler default output file name... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5; } fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if ${ac_cv_objext+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if ${am_cv_CC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 $as_echo_n "checking for a sed that does not truncate output... " >&6; } if ${ac_cv_path_SED+:} false; then : $as_echo_n "(cached) " >&6 else ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ for ac_i in 1 2 3 4 5 6 7; do ac_script="$ac_script$as_nl$ac_script" done echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed { ac_script=; unset ac_script;} if test -z "$SED"; then ac_path_SED_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue # Check for GNU ac_path_SED and select it if it is found. # Check for GNU $ac_path_SED case `"$ac_path_SED" --version 2>&1` in *GNU*) ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo '' >> "conftest.nl" "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_SED_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_SED="$ac_path_SED" ac_path_SED_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_SED_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_SED"; then as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 fi else ac_cv_path_SED=$SED fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 $as_echo "$ac_cv_path_SED" >&6; } SED="$ac_cv_path_SED" rm -f conftest.sed test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if ${ac_cv_path_EGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 $as_echo_n "checking for fgrep... " >&6; } if ${ac_cv_path_FGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 then ac_cv_path_FGREP="$GREP -F" else if test -z "$FGREP"; then ac_path_FGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in fgrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue # Check for GNU ac_path_FGREP and select it if it is found. # Check for GNU $ac_path_FGREP case `"$ac_path_FGREP" --version 2>&1` in *GNU*) ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'FGREP' >> "conftest.nl" "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_FGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_FGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_FGREP"; then as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_FGREP=$FGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 $as_echo "$ac_cv_path_FGREP" >&6; } FGREP="$ac_cv_path_FGREP" test -z "$GREP" && GREP=grep # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then : withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if ${lt_cv_path_LD+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if ${lt_cv_prog_gnu_ld+:} false; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 $as_echo "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 $as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } if ${lt_cv_path_NM+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done : ${lt_cv_path_NM=no} fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 $as_echo "$lt_cv_path_NM" >&6; } if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$ac_tool_prefix"; then for ac_prog in "dumpbin -symbols" "link -dump -symbols" do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DUMPBIN+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DUMPBIN"; then ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DUMPBIN=$ac_cv_prog_DUMPBIN if test -n "$DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 $as_echo "$DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$DUMPBIN" && break done fi if test -z "$DUMPBIN"; then ac_ct_DUMPBIN=$DUMPBIN for ac_prog in "dumpbin -symbols" "link -dump -symbols" do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DUMPBIN"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN if test -n "$ac_ct_DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 $as_echo "$ac_ct_DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_DUMPBIN" && break done if test "x$ac_ct_DUMPBIN" = x; then DUMPBIN=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DUMPBIN=$ac_ct_DUMPBIN fi fi if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" fi fi test -z "$NM" && NM=nm { $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 $as_echo_n "checking the name lister ($NM) interface... " >&6; } if ${lt_cv_nm_interface+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:5386: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 (eval echo "\"\$as_me:5389: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 (eval echo "\"\$as_me:5392: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 $as_echo "$lt_cv_nm_interface" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 $as_echo_n "checking whether ln -s works... " >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 $as_echo "no, using $LN_S" >&6; } fi # find the maximum length of command line arguments { $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 $as_echo_n "checking the maximum length of command line arguments... " >&6; } if ${lt_cv_sys_max_cmd_len+:} false; then : $as_echo_n "(cached) " >&6 else i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8 ; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test "X"`$SHELL $0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ = "XX$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac fi if test -n $lt_cv_sys_max_cmd_len ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 $as_echo "$lt_cv_sys_max_cmd_len" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 $as_echo "none" >&6; } fi max_cmd_len=$lt_cv_sys_max_cmd_len : ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 $as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ = c,a/b,, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 $as_echo "$xsi_shell" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 $as_echo_n "checking whether the shell understands \"+=\"... " >&6; } lt_shell_append=no ( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ >/dev/null 2>&1 \ && lt_shell_append=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 $as_echo "$lt_shell_append" >&6; } if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 $as_echo_n "checking for $LD option to reload object files... " >&6; } if ${lt_cv_ld_reload_flag+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_reload_flag='-r' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 $as_echo "$lt_cv_ld_reload_flag" >&6; } reload_flag=$lt_cv_ld_reload_flag case $reload_flag in "" | " "*) ;; *) reload_flag=" $reload_flag" ;; esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in darwin*) if test "$GCC" = yes; then reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' else reload_cmds='$LD$reload_flag -o $output$reload_objs' fi ;; esac if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. set dummy ${ac_tool_prefix}objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJDUMP"; then ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OBJDUMP=$ac_cv_prog_OBJDUMP if test -n "$OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 $as_echo "$OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OBJDUMP"; then ac_ct_OBJDUMP=$OBJDUMP # Extract the first word of "objdump", so it can be a program name with args. set dummy objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OBJDUMP"; then ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OBJDUMP="objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP if test -n "$ac_ct_OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 $as_echo "$ac_ct_OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OBJDUMP" = x; then OBJDUMP="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OBJDUMP=$ac_ct_OBJDUMP fi else OBJDUMP="$ac_cv_prog_OBJDUMP" fi test -z "$OBJDUMP" && OBJDUMP=objdump { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 $as_echo_n "checking how to recognize dependent libraries... " >&6; } if ${lt_cv_deplibs_check_method+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support # interlibrary dependencies. # 'none' -- dependencies not supported. # `unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path # which responds to the $file_magic_cmd with a given extended regex. # If you have `file' or equivalent on your system and you're not sure # whether `pass_all' will *always* work, you probably want this one. case $host_os in aix[4-9]*) lt_cv_deplibs_check_method=pass_all ;; beos*) lt_cv_deplibs_check_method=pass_all ;; bsdi[45]*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; cygwin*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' ;; mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump', # unless we find 'file', for example because we are cross-compiling. if ( file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]' lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[3-9]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be Linux ELF. linux* | k*bsd*-gnu) lt_cv_deplibs_check_method=pass_all ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 $as_echo "$lt_cv_deplibs_check_method" >&6; } file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AR="${ac_tool_prefix}ar" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 $as_echo "$AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_AR"; then ac_ct_AR=$AR # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_AR="ar" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 $as_echo "$ac_ct_AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_AR" = x; then AR="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR fi else AR="$ac_cv_prog_AR" fi test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi test -z "$STRIP" && STRIP=: if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 $as_echo "$RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 $as_echo "$ac_ct_RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" fi test -z "$RANLIB" && RANLIB=: # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Check for command to grab the raw symbol name followed by C symbol from nm. { $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 $as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } if ${lt_cv_sys_global_symbol_pipe+:} false; then : $as_echo_n "(cached) " >&6 else # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[BCDEGRST]' # Regexp to match symbols that can be accessed directly from C. sympat='\([_A-Za-z][_A-Za-z0-9]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[BCDT]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[ABCDGISTW]' ;; hpux*) if test "$host_cpu" = ia64; then symcode='[ABCDEGRST]' fi ;; irix* | nonstopux*) symcode='[BCDEGRST]' ;; osf*) symcode='[BCDEGQRST]' ;; solaris*) symcode='[BDRT]' ;; sco3.2v5*) symcode='[DT]' ;; sysv4.2uw2*) symcode='[DT]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[ABDT]' ;; sysv4) symcode='[DFNSTU]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[ABCDGIRSTW]' ;; esac # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function # and D for any global variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK '"\ " {last_section=section; section=\$ 3};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ " {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ " s[1]~/^[@?]/{print s[1], s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then # Now try to grab the symbols. nlist=conftest.nm if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\""; } >&5 (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ const struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_save_LIBS="$LIBS" lt_save_CFLAGS="$CFLAGS" LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS="$lt_save_LIBS" CFLAGS="$lt_save_CFLAGS" else echo "cannot find nm_test_func in $nlist" >&5 fi else echo "cannot find nm_test_var in $nlist" >&5 fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 fi else echo "$progname: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done fi if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 $as_echo "failed" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 $as_echo "ok" >&6; } fi # Check whether --enable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then : enableval=$enable_libtool_lock; fi test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '#line 6598 "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 $as_echo_n "checking whether the C compiler needs -belf... " >&6; } if ${lt_cv_cc_needs_belf+:} false; then : $as_echo_n "(cached) " >&6 else ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_cc_needs_belf=yes else lt_cv_cc_needs_belf=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 $as_echo "$lt_cv_cc_needs_belf" >&6; } if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; sparc*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) LD="${LD-ld} -m elf64_sparc" ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" case $host_os in rhapsody* | darwin*) if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DSYMUTIL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DSYMUTIL"; then ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DSYMUTIL=$ac_cv_prog_DSYMUTIL if test -n "$DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 $as_echo "$DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DSYMUTIL"; then ac_ct_DSYMUTIL=$DSYMUTIL # Extract the first word of "dsymutil", so it can be a program name with args. set dummy dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DSYMUTIL"; then ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL if test -n "$ac_ct_DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 $as_echo "$ac_ct_DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DSYMUTIL" = x; then DSYMUTIL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DSYMUTIL=$ac_ct_DSYMUTIL fi else DSYMUTIL="$ac_cv_prog_DSYMUTIL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. set dummy ${ac_tool_prefix}nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_NMEDIT+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$NMEDIT"; then ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi NMEDIT=$ac_cv_prog_NMEDIT if test -n "$NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 $as_echo "$NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_NMEDIT"; then ac_ct_NMEDIT=$NMEDIT # Extract the first word of "nmedit", so it can be a program name with args. set dummy nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_NMEDIT"; then ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_NMEDIT="nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT if test -n "$ac_ct_NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 $as_echo "$ac_ct_NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_NMEDIT" = x; then NMEDIT=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac NMEDIT=$ac_ct_NMEDIT fi else NMEDIT="$ac_cv_prog_NMEDIT" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. set dummy ${ac_tool_prefix}lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_LIPO+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$LIPO"; then ac_cv_prog_LIPO="$LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_LIPO="${ac_tool_prefix}lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi LIPO=$ac_cv_prog_LIPO if test -n "$LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 $as_echo "$LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_LIPO"; then ac_ct_LIPO=$LIPO # Extract the first word of "lipo", so it can be a program name with args. set dummy lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_LIPO+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_LIPO"; then ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_LIPO="lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO if test -n "$ac_ct_LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 $as_echo "$ac_ct_LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_LIPO" = x; then LIPO=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac LIPO=$ac_ct_LIPO fi else LIPO="$ac_cv_prog_LIPO" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. set dummy ${ac_tool_prefix}otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL"; then ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OTOOL="${ac_tool_prefix}otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL=$ac_cv_prog_OTOOL if test -n "$OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 $as_echo "$OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL"; then ac_ct_OTOOL=$OTOOL # Extract the first word of "otool", so it can be a program name with args. set dummy otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL"; then ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OTOOL="otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL if test -n "$ac_ct_OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 $as_echo "$ac_ct_OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL" = x; then OTOOL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL=$ac_ct_OTOOL fi else OTOOL="$ac_cv_prog_OTOOL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. set dummy ${ac_tool_prefix}otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OTOOL64+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL64"; then ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL64=$ac_cv_prog_OTOOL64 if test -n "$OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 $as_echo "$OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL64"; then ac_ct_OTOOL64=$OTOOL64 # Extract the first word of "otool64", so it can be a program name with args. set dummy otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL64"; then ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OTOOL64="otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 if test -n "$ac_ct_OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 $as_echo "$ac_ct_OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL64" = x; then OTOOL64=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL64=$ac_ct_OTOOL64 fi else OTOOL64="$ac_cv_prog_OTOOL64" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 $as_echo_n "checking for -single_module linker flag... " >&6; } if ${lt_cv_apple_cc_single_mod+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_apple_cc_single_mod=no if test -z "${LT_MULTI_MODULE}"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&5 $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&5 fi rm -rf libconftest.dylib* rm -f conftest.* fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 $as_echo "$lt_cv_apple_cc_single_mod" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 $as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } if ${lt_cv_ld_exported_symbols_list+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_ld_exported_symbols_list=yes else lt_cv_ld_exported_symbols_list=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 $as_echo "$lt_cv_ld_exported_symbols_list" >&6; } case $host_os in rhapsody* | darwin1.[012]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[91]*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 10.[012]*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test "$lt_cv_apple_cc_single_mod" = "yes"; then _lt_dar_single_mod='$single_module' fi if test "$lt_cv_ld_exported_symbols_list" = "yes"; then _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi if test "$DSYMUTIL" != ":"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if ${ac_cv_prog_CPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in dlfcn.h do : ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default " if test "x$ac_cv_header_dlfcn_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DLFCN_H 1 _ACEOF fi done # Set options enable_dlopen=yes enable_win32_dll=no # Check whether --enable-shared was given. if test "${enable_shared+set}" = set; then : enableval=$enable_shared; p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac else enable_shared=yes fi # Check whether --enable-static was given. if test "${enable_static+set}" = set; then : enableval=$enable_static; p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac else enable_static=yes fi # Check whether --with-pic was given. if test "${with_pic+set}" = set; then : withval=$with_pic; pic_mode="$withval" else pic_mode=default fi test -z "$pic_mode" && pic_mode=default # Check whether --enable-fast-install was given. if test "${enable_fast_install+set}" = set; then : enableval=$enable_fast_install; p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac else enable_fast_install=yes fi # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ltmain" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' test -z "$LN_S" && LN_S="ln -s" if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 $as_echo_n "checking for objdir... " >&6; } if ${lt_cv_objdir+:} false; then : $as_echo_n "(cached) " >&6 else rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 $as_echo "$lt_cv_objdir" >&6; } objdir=$lt_cv_objdir cat >>confdefs.h <<_ACEOF #define LT_OBJDIR "$lt_cv_objdir/" _ACEOF case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. sed_quote_subst='s/\(["`$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld="$lt_cv_prog_gnu_ld" old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 $as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } if ${lt_cv_path_MAGIC_CMD+:} false; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/${ac_tool_prefix}file; then lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 $as_echo_n "checking for file... " >&6; } if ${lt_cv_path_MAGIC_CMD+:} false; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/file; then lt_cv_path_MAGIC_CMD="$ac_dir/file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi else MAGIC_CMD=: fi fi fi ;; esac # Use C for the default configuration in the libtool script lt_save_CC="$CC" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o objext=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then lt_prog_compiler_no_builtin_flag= if test "$GCC" = yes; then lt_prog_compiler_no_builtin_flag=' -fno-builtin' { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 $as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:8126: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:8130: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 $as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl= lt_prog_compiler_pic= lt_prog_compiler_static= { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 $as_echo_n "checking for $compiler option to produce PIC... " >&6; } if test "$GCC" = yes; then lt_prog_compiler_wl='-Wl,' lt_prog_compiler_static='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support lt_prog_compiler_pic='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) lt_prog_compiler_pic='-fPIC' ;; esac ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic=-Kconform_pic fi ;; *) lt_prog_compiler_pic='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' else lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static='-non_shared' ;; linux* | k*bsd*-gnu) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; # Lahey Fortran 8.1. lf95*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='--shared' lt_prog_compiler_static='--static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; ccc*) lt_prog_compiler_wl='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static='-non_shared' ;; xl*) # IBM XL C 8.0/Fortran 10.1 on PPC lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-qpic' lt_prog_compiler_static='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Wl,' ;; *Sun\ F*) # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='' ;; esac ;; esac ;; newsos6) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static='-non_shared' ;; rdos*) lt_prog_compiler_static='-non_shared' ;; solaris*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' case $cc_basename in f77* | f90* | f95*) lt_prog_compiler_wl='-Qoption ld ';; *) lt_prog_compiler_wl='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl='-Qoption ld ' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic='-Kconform_pic' lt_prog_compiler_static='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; unicos*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_can_build_shared=no ;; uts4*) lt_prog_compiler_pic='-pic' lt_prog_compiler_static='-Bstatic' ;; *) lt_prog_compiler_can_build_shared=no ;; esac fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic= ;; *) lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5 $as_echo "$lt_prog_compiler_pic" >&6; } # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } if ${lt_cv_prog_compiler_pic_works+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:8465: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:8469: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 $as_echo "$lt_cv_prog_compiler_pic_works" >&6; } if test x"$lt_cv_prog_compiler_pic_works" = xyes; then case $lt_prog_compiler_pic in "" | " "*) ;; *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; esac else lt_prog_compiler_pic= lt_prog_compiler_can_build_shared=no fi fi # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if ${lt_cv_prog_compiler_static_works+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works=yes fi else lt_cv_prog_compiler_static_works=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 $as_echo "$lt_cv_prog_compiler_static_works" >&6; } if test x"$lt_cv_prog_compiler_static_works" = xyes; then : else lt_prog_compiler_static= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if ${lt_cv_prog_compiler_c_o+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:8570: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:8574: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if ${lt_cv_prog_compiler_c_o+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:8625: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:8629: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 $as_echo_n "checking if we can lock with hard links... " >&6; } hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 $as_echo "$hard_links" >&6; } if test "$hard_links" = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 $as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } runpath_var= allow_undefined_flag= always_export_symbols=no archive_cmds= archive_expsym_cmds= compiler_needs_object=no enable_shared_with_static_runtimes=no export_dynamic_flag_spec= export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' hardcode_automatic=no hardcode_direct=no hardcode_direct_absolute=no hardcode_libdir_flag_spec= hardcode_libdir_flag_spec_ld= hardcode_libdir_separator= hardcode_minus_L=no hardcode_shlibpath_var=unsupported inherit_rpath=no link_all_deplibs=unknown module_cmds= module_expsym_cmds= old_archive_from_new_cmds= old_archive_from_expsyms_cmds= thread_safe_flag_spec= whole_archive_flag_spec= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec= fi supports_anon_versioning=no case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[3-9]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then allow_undefined_flag=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' allow_undefined_flag=unsupported always_export_symbols=no enable_shared_with_static_runtimes=yes export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs=no fi ;; interix[3-9]*) hardcode_direct=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then tmp_addflag= tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 whole_archive_flag_spec= tmp_sharedflag='--shared' ;; xl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi case $cc_basename in xlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' hardcode_libdir_flag_spec= hardcode_libdir_flag_spec_ld='-rpath $libdir' archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else ld_shlibs=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac ;; sunos4*) archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct=yes hardcode_shlibpath_var=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = no; then runpath_var= hardcode_libdir_flag_spec= export_dynamic_flag_spec= whole_archive_flag_spec= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag=unsupported always_export_symbols=yes archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix[4-9]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds='' hardcode_direct=yes hardcode_direct_absolute=yes hardcode_libdir_separator=':' link_all_deplibs=yes file_list_spec='${wl}-f,' if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi export_dynamic_flag_spec='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag='-berok' # Determine the default libpath from the value encoded in an # empty executable. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag="-z nodefs" archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag=' ${wl}-bernotok' allow_undefined_flag=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' archive_cmds_need_lc=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; bsdi[45]*) export_dynamic_flag_spec=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_from_new_cmds='true' # FIXME: Should let the user specify the lib program. old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes=yes ;; darwin* | rhapsody*) archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported whole_archive_flag_spec='' link_all_deplibs=yes allow_undefined_flag="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=echo archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" else ld_shlibs=no fi ;; dgux*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; freebsd1*) ld_shlibs=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes export_dynamic_flag_spec='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_flag_spec_ld='+b $libdir' hardcode_libdir_separator=: hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_direct=no hardcode_shlibpath_var=no ;; *) hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int foo (void) { return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: inherit_rpath=yes link_all_deplibs=yes ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; newsos6) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: hardcode_shlibpath_var=no ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct=yes hardcode_shlibpath_var=no hardcode_direct_absolute=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-R$libdir' ;; *) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi else ld_shlibs=no fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi archive_cmds_need_lc='no' hardcode_libdir_separator=: ;; solaris*) no_undefined_flag=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='${wl}' archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else whole_archive_flag_spec='-z allextract$convenience -z defaultextract' fi ;; esac link_all_deplibs=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; sysv4) case $host_vendor in sni) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds='$CC -r -o $output$reload_objs' hardcode_direct=no ;; motorola) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var=no ;; sysv4.3*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no export_dynamic_flag_spec='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag='${wl}-z,text' archive_cmds_need_lc=no hardcode_shlibpath_var=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag='${wl}-z,text' allow_undefined_flag='${wl}-z,nodefs' archive_cmds_need_lc=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-R,$libdir' hardcode_libdir_separator=':' link_all_deplibs=yes export_dynamic_flag_spec='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; *) ld_shlibs=no ;; esac if test x$host_vendor = xsni; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) export_dynamic_flag_spec='${wl}-Blargedynsym' ;; esac fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 $as_echo "$ld_shlibs" >&6; } test "$ld_shlibs" = no && can_build_shared=no with_gnu_ld=$with_gnu_ld # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc" in x|xyes) # Assume -lc should be added archive_cmds_need_lc=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl pic_flag=$lt_prog_compiler_pic compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag allow_undefined_flag= if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then archive_cmds_need_lc=no else archive_cmds_need_lc=yes fi allow_undefined_flag=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc" >&5 $as_echo "$archive_cmds_need_lc" >&6; } ;; esac fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } if test "$GCC" = yes; then case $host_os in darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'` else lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path/$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" else test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo="/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[lt_foo]++; } if (lt_freq[lt_foo] == 1) { print lt_foo; } }'` sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[4-9]*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix[3-9]*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux* | k*bsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 $as_echo "$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action= if test -n "$hardcode_libdir_flag_spec" || test -n "$runpath_var" || test "X$hardcode_automatic" = "Xyes" ; then # We can hardcode non-existent directories. if test "$hardcode_direct" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no && test "$hardcode_minus_L" != no; then # Linking always hardcodes the temporary library directory. hardcode_action=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action=unsupported fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 $as_echo "$hardcode_action" >&6; } if test "$hardcode_action" = relink || test "$inherit_rpath" = yes; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if ${ac_cv_lib_dl_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = xyes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes fi ;; *) ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" if test "x$ac_cv_func_shl_load" = xyes; then : lt_cv_dlopen="shl_load" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 $as_echo_n "checking for shl_load in -ldld... " >&6; } if ${ac_cv_lib_dld_shl_load+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char shl_load (); int main () { return shl_load (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_shl_load=yes else ac_cv_lib_dld_shl_load=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 $as_echo "$ac_cv_lib_dld_shl_load" >&6; } if test "x$ac_cv_lib_dld_shl_load" = xyes; then : lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" else ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" if test "x$ac_cv_func_dlopen" = xyes; then : lt_cv_dlopen="dlopen" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if ${ac_cv_lib_dl_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = xyes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 $as_echo_n "checking for dlopen in -lsvld... " >&6; } if ${ac_cv_lib_svld_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_svld_dlopen=yes else ac_cv_lib_svld_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 $as_echo "$ac_cv_lib_svld_dlopen" >&6; } if test "x$ac_cv_lib_svld_dlopen" = xyes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 $as_echo_n "checking for dld_link in -ldld... " >&6; } if ${ac_cv_lib_dld_dld_link+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dld_link (); int main () { return dld_link (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_dld_link=yes else ac_cv_lib_dld_dld_link=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 $as_echo "$ac_cv_lib_dld_dld_link" >&6; } if test "x$ac_cv_lib_dld_dld_link" = xyes; then : lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" fi fi fi fi fi fi ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 $as_echo_n "checking whether a program can dlopen itself... " >&6; } if ${lt_cv_dlopen_self+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line 10993 "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; esac else : # compilation failed lt_cv_dlopen_self=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 $as_echo "$lt_cv_dlopen_self" >&6; } if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 $as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } if ${lt_cv_dlopen_self_static+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line 11089 "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; esac else : # compilation failed lt_cv_dlopen_self_static=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 $as_echo "$lt_cv_dlopen_self_static" >&6; } fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi striplib= old_striplib= { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 $as_echo_n "checking whether stripping libraries is possible... " >&6; } if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } ;; esac fi # Report which library types will actually be built { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 $as_echo_n "checking if libtool supports shared libraries... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 $as_echo "$can_build_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 $as_echo_n "checking whether to build shared libraries... " >&6; } test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[4-9]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 $as_echo "$enable_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 $as_echo_n "checking whether to build static libraries... " >&6; } # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 $as_echo "$enable_static" >&6; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" ac_config_commands="$ac_config_commands libtool" # Only expand once: { $as_echo "$as_me:${as_lineno-$LINENO}: checking which extension is used for runtime loadable modules" >&5 $as_echo_n "checking which extension is used for runtime loadable modules... " >&6; } if ${libltdl_cv_shlibext+:} false; then : $as_echo_n "(cached) " >&6 else module=yes eval libltdl_cv_shlibext=$shrext_cmds fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libltdl_cv_shlibext" >&5 $as_echo "$libltdl_cv_shlibext" >&6; } if test -n "$libltdl_cv_shlibext"; then cat >>confdefs.h <<_ACEOF #define LT_MODULE_EXT "$libltdl_cv_shlibext" _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking which variable specifies run-time module search path" >&5 $as_echo_n "checking which variable specifies run-time module search path... " >&6; } if ${lt_cv_module_path_var+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_module_path_var="$shlibpath_var" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_module_path_var" >&5 $as_echo "$lt_cv_module_path_var" >&6; } if test -n "$lt_cv_module_path_var"; then cat >>confdefs.h <<_ACEOF #define LT_MODULE_PATH_VAR "$lt_cv_module_path_var" _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the default library search path" >&5 $as_echo_n "checking for the default library search path... " >&6; } if ${lt_cv_sys_dlsearch_path+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_sys_dlsearch_path="$sys_lib_dlsearch_path_spec" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_dlsearch_path" >&5 $as_echo "$lt_cv_sys_dlsearch_path" >&6; } if test -n "$lt_cv_sys_dlsearch_path"; then sys_dlsearch_path= for dir in $lt_cv_sys_dlsearch_path; do if test -z "$sys_dlsearch_path"; then sys_dlsearch_path="$dir" else sys_dlsearch_path="$sys_dlsearch_path$PATH_SEPARATOR$dir" fi done cat >>confdefs.h <<_ACEOF #define LT_DLSEARCH_PATH "$sys_dlsearch_path" _ACEOF fi LT_DLLOADERS= ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu LIBADD_DLOPEN= { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5 $as_echo_n "checking for library containing dlopen... " >&6; } if ${ac_cv_search_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF for ac_lib in '' dl; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_dlopen=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_dlopen+:} false; then : break fi done if ${ac_cv_search_dlopen+:} false; then : else ac_cv_search_dlopen=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5 $as_echo "$ac_cv_search_dlopen" >&6; } ac_res=$ac_cv_search_dlopen if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" $as_echo "#define HAVE_LIBDL 1" >>confdefs.h if test "$ac_cv_search_dlopen" != "none required" ; then LIBADD_DLOPEN="-ldl" fi libltdl_cv_lib_dl_dlopen="yes" LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dlopen.la" else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if HAVE_DLFCN_H # include #endif int main () { dlopen(0, 0); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : $as_echo "#define HAVE_LIBDL 1" >>confdefs.h libltdl_cv_func_dlopen="yes" LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dlopen.la" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 $as_echo_n "checking for dlopen in -lsvld... " >&6; } if ${ac_cv_lib_svld_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_svld_dlopen=yes else ac_cv_lib_svld_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 $as_echo "$ac_cv_lib_svld_dlopen" >&6; } if test "x$ac_cv_lib_svld_dlopen" = xyes; then : $as_echo "#define HAVE_LIBDL 1" >>confdefs.h LIBADD_DLOPEN="-lsvld" libltdl_cv_func_dlopen="yes" LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dlopen.la" fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test x"$libltdl_cv_func_dlopen" = xyes || test x"$libltdl_cv_lib_dl_dlopen" = xyes then lt_save_LIBS="$LIBS" LIBS="$LIBS $LIBADD_DLOPEN" for ac_func in dlerror do : ac_fn_c_check_func "$LINENO" "dlerror" "ac_cv_func_dlerror" if test "x$ac_cv_func_dlerror" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DLERROR 1 _ACEOF fi done LIBS="$lt_save_LIBS" fi LIBADD_SHL_LOAD= ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" if test "x$ac_cv_func_shl_load" = xyes; then : $as_echo "#define HAVE_SHL_LOAD 1" >>confdefs.h LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}shl_load.la" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 $as_echo_n "checking for shl_load in -ldld... " >&6; } if ${ac_cv_lib_dld_shl_load+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char shl_load (); int main () { return shl_load (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_shl_load=yes else ac_cv_lib_dld_shl_load=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 $as_echo "$ac_cv_lib_dld_shl_load" >&6; } if test "x$ac_cv_lib_dld_shl_load" = xyes; then : $as_echo "#define HAVE_SHL_LOAD 1" >>confdefs.h LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}shl_load.la" LIBADD_SHL_LOAD="-ldld" fi fi case $host_os in darwin[1567].*) # We only want this for pre-Mac OS X 10.4. ac_fn_c_check_func "$LINENO" "_dyld_func_lookup" "ac_cv_func__dyld_func_lookup" if test "x$ac_cv_func__dyld_func_lookup" = xyes; then : $as_echo "#define HAVE_DYLD 1" >>confdefs.h LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dyld.la" fi ;; beos*) LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}load_add_on.la" ;; cygwin* | mingw* | os2* | pw32*) ac_fn_c_check_decl "$LINENO" "cygwin_conv_path" "ac_cv_have_decl_cygwin_conv_path" "#include " if test "x$ac_cv_have_decl_cygwin_conv_path" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_CYGWIN_CONV_PATH $ac_have_decl _ACEOF LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}loadlibrary.la" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 $as_echo_n "checking for dld_link in -ldld... " >&6; } if ${ac_cv_lib_dld_dld_link+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dld_link (); int main () { return dld_link (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_dld_link=yes else ac_cv_lib_dld_dld_link=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 $as_echo "$ac_cv_lib_dld_dld_link" >&6; } if test "x$ac_cv_lib_dld_dld_link" = xyes; then : $as_echo "#define HAVE_DLD 1" >>confdefs.h LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dld_link.la" fi LT_DLPREOPEN= if test -n "$LT_DLLOADERS" then for lt_loader in $LT_DLLOADERS; do LT_DLPREOPEN="$LT_DLPREOPEN-dlpreopen $lt_loader " done $as_echo "#define HAVE_LIBDLLOADER 1" >>confdefs.h fi LIBADD_DL="$LIBADD_DLOPEN $LIBADD_SHL_LOAD" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _ prefix in compiled symbols" >&5 $as_echo_n "checking for _ prefix in compiled symbols... " >&6; } if ${lt_cv_sys_symbol_underscore+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_sys_symbol_underscore=no cat > conftest.$ac_ext <<_LT_EOF void nm_test_func(){} int main(){nm_test_func;return 0;} _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then # Now try to grab the symbols. ac_nlist=conftest.nm if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $ac_nlist\""; } >&5 (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $ac_nlist) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s "$ac_nlist"; then # See whether the symbols have a leading underscore. if grep '^. _nm_test_func' "$ac_nlist" >/dev/null; then lt_cv_sys_symbol_underscore=yes else if grep '^. nm_test_func ' "$ac_nlist" >/dev/null; then : else echo "configure: cannot find nm_test_func in $ac_nlist" >&5 fi fi else echo "configure: cannot run $lt_cv_sys_global_symbol_pipe" >&5 fi else echo "configure: failed program was:" >&5 cat conftest.c >&5 fi rm -rf conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_symbol_underscore" >&5 $as_echo "$lt_cv_sys_symbol_underscore" >&6; } sys_symbol_underscore=$lt_cv_sys_symbol_underscore if test x"$lt_cv_sys_symbol_underscore" = xyes; then if test x"$libltdl_cv_func_dlopen" = xyes || test x"$libltdl_cv_lib_dl_dlopen" = xyes ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we have to add an underscore for dlsym" >&5 $as_echo_n "checking whether we have to add an underscore for dlsym... " >&6; } if ${libltdl_cv_need_uscore+:} false; then : $as_echo_n "(cached) " >&6 else libltdl_cv_need_uscore=unknown save_LIBS="$LIBS" LIBS="$LIBS $LIBADD_DLOPEN" if test "$cross_compiling" = yes; then : libltdl_cv_need_uscore=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line 11761 "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) libltdl_cv_need_uscore=no ;; x$lt_dlneed_uscore) libltdl_cv_need_uscore=yes ;; x$lt_dlunknown|x*) ;; esac else : # compilation failed fi fi rm -fr conftest* LIBS="$save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libltdl_cv_need_uscore" >&5 $as_echo "$libltdl_cv_need_uscore" >&6; } fi fi if test x"$libltdl_cv_need_uscore" = xyes; then $as_echo "#define NEED_USCORE 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether deplibs are loaded by dlopen" >&5 $as_echo_n "checking whether deplibs are loaded by dlopen... " >&6; } if ${lt_cv_sys_dlopen_deplibs+:} false; then : $as_echo_n "(cached) " >&6 else # PORTME does your system automatically load deplibs for dlopen? # or its logical equivalent (e.g. shl_load for HP-UX < 11) # For now, we just catch OSes we know something about -- in the # future, we'll try test this programmatically. lt_cv_sys_dlopen_deplibs=unknown case $host_os in aix3*|aix4.1.*|aix4.2.*) # Unknown whether this is true for these versions of AIX, but # we want this `case' here to explicitly catch those versions. lt_cv_sys_dlopen_deplibs=unknown ;; aix[4-9]*) lt_cv_sys_dlopen_deplibs=yes ;; amigaos*) case $host_cpu in powerpc) lt_cv_sys_dlopen_deplibs=no ;; esac ;; darwin*) # Assuming the user has installed a libdl from somewhere, this is true # If you are looking for one http://www.opendarwin.org/projects/dlcompat lt_cv_sys_dlopen_deplibs=yes ;; freebsd* | dragonfly*) lt_cv_sys_dlopen_deplibs=yes ;; gnu* | linux* | k*bsd*-gnu) # GNU and its variants, using gnu ld.so (Glibc) lt_cv_sys_dlopen_deplibs=yes ;; hpux10*|hpux11*) lt_cv_sys_dlopen_deplibs=yes ;; interix*) lt_cv_sys_dlopen_deplibs=yes ;; irix[12345]*|irix6.[01]*) # Catch all versions of IRIX before 6.2, and indicate that we don't # know how it worked for any of those versions. lt_cv_sys_dlopen_deplibs=unknown ;; irix*) # The case above catches anything before 6.2, and it's known that # at 6.2 and later dlopen does load deplibs. lt_cv_sys_dlopen_deplibs=yes ;; netbsd*) lt_cv_sys_dlopen_deplibs=yes ;; openbsd*) lt_cv_sys_dlopen_deplibs=yes ;; osf[1234]*) # dlopen did load deplibs (at least at 4.x), but until the 5.x series, # it did *not* use an RPATH in a shared library to find objects the # library depends on, so we explicitly say `no'. lt_cv_sys_dlopen_deplibs=no ;; osf5.0|osf5.0a|osf5.1) # dlopen *does* load deplibs and with the right loader patch applied # it even uses RPATH in a shared library to search for shared objects # that the library depends on, but there's no easy way to know if that # patch is installed. Since this is the case, all we can really # say is unknown -- it depends on the patch being installed. If # it is, this changes to `yes'. Without it, it would be `no'. lt_cv_sys_dlopen_deplibs=unknown ;; osf*) # the two cases above should catch all versions of osf <= 5.1. Read # the comments above for what we know about them. # At > 5.1, deplibs are loaded *and* any RPATH in a shared library # is used to find them so we can finally say `yes'. lt_cv_sys_dlopen_deplibs=yes ;; qnx*) lt_cv_sys_dlopen_deplibs=yes ;; solaris*) lt_cv_sys_dlopen_deplibs=yes ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) libltdl_cv_sys_dlopen_deplibs=yes ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_dlopen_deplibs" >&5 $as_echo "$lt_cv_sys_dlopen_deplibs" >&6; } if test "$lt_cv_sys_dlopen_deplibs" != yes; then $as_echo "#define LTDL_DLOPEN_DEPLIBS 1" >>confdefs.h fi : for ac_header in argz.h do : ac_fn_c_check_header_compile "$LINENO" "argz.h" "ac_cv_header_argz_h" "$ac_includes_default " if test "x$ac_cv_header_argz_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_ARGZ_H 1 _ACEOF fi done ac_fn_c_check_type "$LINENO" "error_t" "ac_cv_type_error_t" "#if defined(HAVE_ARGZ_H) # include #endif " if test "x$ac_cv_type_error_t" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_ERROR_T 1 _ACEOF else $as_echo "#define error_t int" >>confdefs.h $as_echo "#define __error_t_defined 1" >>confdefs.h fi ARGZ_H= for ac_func in argz_add argz_append argz_count argz_create_sep argz_insert \ argz_next argz_stringify do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF else ARGZ_H=argz.h; _LT_LIBOBJS="$_LT_LIBOBJS argz.$ac_objext" fi done if test -z "$ARGZ_H"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking if argz actually works" >&5 $as_echo_n "checking if argz actually works... " >&6; } if ${lt_cv_sys_argz_works+:} false; then : $as_echo_n "(cached) " >&6 else case $host_os in #( *cygwin*) lt_cv_sys_argz_works=no if test "$cross_compiling" != no; then lt_cv_sys_argz_works="guessing no" else lt_sed_extract_leading_digits='s/^\([0-9\.]*\).*/\1/' save_IFS=$IFS IFS=-. set x `uname -r | sed -e "$lt_sed_extract_leading_digits"` IFS=$save_IFS lt_os_major=${2-0} lt_os_minor=${3-0} lt_os_micro=${4-0} if test "$lt_os_major" -gt 1 \ || { test "$lt_os_major" -eq 1 \ && { test "$lt_os_minor" -gt 5 \ || { test "$lt_os_minor" -eq 5 \ && test "$lt_os_micro" -gt 24; }; }; }; then lt_cv_sys_argz_works=yes fi fi ;; #( *) lt_cv_sys_argz_works=yes ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_argz_works" >&5 $as_echo "$lt_cv_sys_argz_works" >&6; } if test $lt_cv_sys_argz_works = yes; then : $as_echo "#define HAVE_WORKING_ARGZ 1" >>confdefs.h else ARGZ_H=argz.h _LT_LIBOBJS="$_LT_LIBOBJS argz.$ac_objext" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether libtool supports -dlopen/-dlpreopen" >&5 $as_echo_n "checking whether libtool supports -dlopen/-dlpreopen... " >&6; } if ${libltdl_cv_preloaded_symbols+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$lt_cv_sys_global_symbol_pipe"; then libltdl_cv_preloaded_symbols=yes else libltdl_cv_preloaded_symbols=no fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libltdl_cv_preloaded_symbols" >&5 $as_echo "$libltdl_cv_preloaded_symbols" >&6; } if test x"$libltdl_cv_preloaded_symbols" = xyes; then $as_echo "#define HAVE_PRELOADED_SYMBOLS 1" >>confdefs.h fi # Set options # Check whether --with-included_ltdl was given. if test "${with_included_ltdl+set}" = set; then : withval=$with_included_ltdl; fi if test "x$with_included_ltdl" != xyes; then # We are not being forced to use the included libltdl sources, so # decide whether there is a useful installed version we can use. ac_fn_c_check_header_compile "$LINENO" "ltdl.h" "ac_cv_header_ltdl_h" "$ac_includes_default " if test "x$ac_cv_header_ltdl_h" = xyes; then : ac_fn_c_check_decl "$LINENO" "lt_dlinterface_register" "ac_cv_have_decl_lt_dlinterface_register" "$ac_includes_default #include " if test "x$ac_cv_have_decl_lt_dlinterface_register" = xyes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lt_dladvise_preload in -lltdl" >&5 $as_echo_n "checking for lt_dladvise_preload in -lltdl... " >&6; } if ${ac_cv_lib_ltdl_lt_dladvise_preload+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lltdl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char lt_dladvise_preload (); int main () { return lt_dladvise_preload (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_ltdl_lt_dladvise_preload=yes else ac_cv_lib_ltdl_lt_dladvise_preload=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ltdl_lt_dladvise_preload" >&5 $as_echo "$ac_cv_lib_ltdl_lt_dladvise_preload" >&6; } if test "x$ac_cv_lib_ltdl_lt_dladvise_preload" = xyes; then : with_included_ltdl=no else with_included_ltdl=yes fi else with_included_ltdl=yes fi else with_included_ltdl=yes fi fi # Check whether --with-ltdl_include was given. if test "${with_ltdl_include+set}" = set; then : withval=$with_ltdl_include; fi if test -n "$with_ltdl_include"; then if test -f "$with_ltdl_include/ltdl.h"; then : else as_fn_error $? "invalid ltdl include directory: \`$with_ltdl_include'" "$LINENO" 5 fi else with_ltdl_include=no fi # Check whether --with-ltdl_lib was given. if test "${with_ltdl_lib+set}" = set; then : withval=$with_ltdl_lib; fi if test -n "$with_ltdl_lib"; then if test -f "$with_ltdl_lib/libltdl.la"; then : else as_fn_error $? "invalid ltdl library directory: \`$with_ltdl_lib'" "$LINENO" 5 fi else with_ltdl_lib=no fi case ,$with_included_ltdl,$with_ltdl_include,$with_ltdl_lib, in ,yes,no,no,) case $enable_ltdl_convenience in no) as_fn_error $? "this package needs a convenience libltdl" "$LINENO" 5 ;; "") enable_ltdl_convenience=yes ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;; esac LIBLTDL='${top_build_prefix}'"${lt_ltdl_dir+$lt_ltdl_dir/}libltdlc.la" LTDLDEPS=$LIBLTDL LTDLINCL='-I${top_srcdir}'"${lt_ltdl_dir+/$lt_ltdl_dir}" # For backwards non-gettext consistent compatibility... INCLTDL="$LTDLINCL" ;; ,no,no,no,) # If the included ltdl is not to be used, then use the # preinstalled libltdl we found. $as_echo "#define HAVE_LTDL 1" >>confdefs.h LIBLTDL=-lltdl LTDLDEPS= LTDLINCL= ;; ,no*,no,*) as_fn_error $? "\`--with-ltdl-include' and \`--with-ltdl-lib' options must be used together" "$LINENO" 5 ;; *) with_included_ltdl=no LIBLTDL="-L$with_ltdl_lib -lltdl" LTDLDEPS= LTDLINCL="-I$with_ltdl_include" ;; esac INCLTDL="$LTDLINCL" # Report our decision... { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find libltdl headers" >&5 $as_echo_n "checking where to find libltdl headers... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LTDLINCL" >&5 $as_echo "$LTDLINCL" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find libltdl library" >&5 $as_echo_n "checking where to find libltdl library... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBLTDL" >&5 $as_echo "$LIBLTDL" >&6; } # Check whether --enable-ltdl-install was given. if test "${enable_ltdl_install+set}" = set; then : enableval=$enable_ltdl_install; fi case ,${enable_ltdl_install},${enable_ltdl_convenience} in *yes*) ;; *) enable_ltdl_convenience=yes ;; esac if test x"${enable_ltdl_install-no}" != xno; then INSTALL_LTDL_TRUE= INSTALL_LTDL_FALSE='#' else INSTALL_LTDL_TRUE='#' INSTALL_LTDL_FALSE= fi if test x"${enable_ltdl_convenience-no}" != xno; then CONVENIENCE_LTDL_TRUE= CONVENIENCE_LTDL_FALSE='#' else CONVENIENCE_LTDL_TRUE='#' CONVENIENCE_LTDL_FALSE= fi subdirs="$subdirs libltdl" # In order that ltdl.c can compile, find out the first AC_CONFIG_HEADERS # the user used. This is so that ltdl.h can pick up the parent projects # config.h file, The first file in AC_CONFIG_HEADERS must contain the # definitions required by ltdl.c. # FIXME: Remove use of undocumented AC_LIST_HEADERS (2.59 compatibility). for ac_header in unistd.h dl.h sys/dl.h dld.h mach-o/dyld.h dirent.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_func in closedir opendir readdir do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF else _LT_LIBOBJS="$_LT_LIBOBJS lt__dirent.$ac_objext" fi done for ac_func in strlcat strlcpy do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF else _LT_LIBOBJS="$_LT_LIBOBJS lt__strl.$ac_objext" fi done cat >>confdefs.h <<_ACEOF #define LT_LIBEXT "$libext" _ACEOF name=ltdl LTDLOPEN=`eval "\\$ECHO \"$libname_spec\""` # Only expand once: # libtool option to control which symbols are exported # right now, symbols starting with _ are not exported # !!! DO NOT USE IT !!! LIBTOOL_EXPORT_OPTIONS='' # Checks for programs. ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -z "$CXX"; then if test -n "$CCC"; then CXX=$CCC else if test -n "$ac_tool_prefix"; then for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CXX+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 $as_echo "$CXX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CXX" && break done fi if test -z "$CXX"; then ac_ct_CXX=$CXX for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CXX+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CXX="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 $as_echo "$ac_ct_CXX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CXX" && break done if test "x$ac_ct_CXX" = x; then CXX="g++" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CXX=$ac_ct_CXX fi fi fi fi # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 $as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } if ${ac_cv_cxx_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 $as_echo "$ac_cv_cxx_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GXX=yes else GXX= fi ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 $as_echo_n "checking whether $CXX accepts -g... " >&6; } if ${ac_cv_prog_cxx_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_cxx_werror_flag=$ac_cxx_werror_flag ac_cxx_werror_flag=yes ac_cv_prog_cxx_g=no CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes else CXXFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : else ac_cxx_werror_flag=$ac_save_cxx_werror_flag CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cxx_werror_flag=$ac_save_cxx_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 $as_echo "$ac_cv_prog_cxx_g" >&6; } if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CXX" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if ${am_cv_CXX_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CXX_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CXX_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CXX_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5 $as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; } CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then am__fastdepCXX_TRUE= am__fastdepCXX_FALSE='#' else am__fastdepCXX_TRUE='#' am__fastdepCXX_FALSE= fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -z "$CXX"; then if test -n "$CCC"; then CXX=$CCC else if test -n "$ac_tool_prefix"; then for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CXX+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 $as_echo "$CXX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CXX" && break done fi if test -z "$CXX"; then ac_ct_CXX=$CXX for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CXX+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CXX="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 $as_echo "$ac_ct_CXX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CXX" && break done if test "x$ac_ct_CXX" = x; then CXX="g++" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CXX=$ac_ct_CXX fi fi fi fi # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 $as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } if ${ac_cv_cxx_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 $as_echo "$ac_cv_cxx_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GXX=yes else GXX= fi ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 $as_echo_n "checking whether $CXX accepts -g... " >&6; } if ${ac_cv_prog_cxx_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_cxx_werror_flag=$ac_cxx_werror_flag ac_cxx_werror_flag=yes ac_cv_prog_cxx_g=no CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes else CXXFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : else ac_cxx_werror_flag=$ac_save_cxx_werror_flag CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cxx_werror_flag=$ac_save_cxx_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 $as_echo "$ac_cv_prog_cxx_g" >&6; } if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CXX" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if ${am_cv_CXX_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CXX_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CXX_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CXX_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5 $as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; } CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then am__fastdepCXX_TRUE= am__fastdepCXX_FALSE='#' else am__fastdepCXX_TRUE='#' am__fastdepCXX_FALSE= fi if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5 $as_echo_n "checking how to run the C++ preprocessor... " >&6; } if test -z "$CXXCPP"; then if ${ac_cv_prog_CXXCPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CXXCPP needs to be expanded for CXXCPP in "$CXX -E" "/lib/cpp" do ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CXXCPP=$CXXCPP fi CXXCPP=$ac_cv_prog_CXXCPP else ac_cv_prog_CXXCPP=$CXXCPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5 $as_echo "$CXXCPP" >&6; } ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} _lt_caught_CXX_error=yes; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu else _lt_caught_CXX_error=yes fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu archive_cmds_need_lc_CXX=no allow_undefined_flag_CXX= always_export_symbols_CXX=no archive_expsym_cmds_CXX= compiler_needs_object_CXX=no export_dynamic_flag_spec_CXX= hardcode_direct_CXX=no hardcode_direct_absolute_CXX=no hardcode_libdir_flag_spec_CXX= hardcode_libdir_flag_spec_ld_CXX= hardcode_libdir_separator_CXX= hardcode_minus_L_CXX=no hardcode_shlibpath_var_CXX=unsupported hardcode_automatic_CXX=no inherit_rpath_CXX=no module_cmds_CXX= module_expsym_cmds_CXX= link_all_deplibs_CXX=unknown old_archive_cmds_CXX=$old_archive_cmds no_undefined_flag_CXX= whole_archive_flag_spec_CXX= enable_shared_with_static_runtimes_CXX=no # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o objext_CXX=$objext # No sense in running all these tests if we already determined that # the CXX compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_caught_CXX_error" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[]) { return(0); }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} compiler=$CC compiler_CXX=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` if test -n "$compiler"; then # We don't want -fno-exception when compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin' else lt_prog_compiler_no_builtin_flag_CXX= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then : withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if ${lt_cv_path_LD+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if ${lt_cv_prog_gnu_ld+:} false; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 $as_echo "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='${wl}' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | $GREP 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_CXX= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } ld_shlibs_CXX=yes case $host_os in aix3*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aix[4-9]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_CXX='' hardcode_direct_CXX=yes hardcode_direct_absolute_CXX=yes hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes file_list_spec_CXX='${wl}-f,' if test "$GXX" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct_CXX=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L_CXX=yes hardcode_libdir_flag_spec_CXX='-L$libdir' hardcode_libdir_separator_CXX= fi esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi export_dynamic_flag_spec_CXX='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to # export. always_export_symbols_CXX=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_CXX='-berok' # Determine the default libpath from the value encoded in an empty # executable. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_CXX="-z nodefs" archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_CXX=' ${wl}-bernotok' allow_undefined_flag_CXX=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_CXX='$convenience' archive_cmds_need_lc_CXX=yes # This is similar to how AIX traditionally builds its shared # libraries. archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_CXX=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_CXX=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_CXX='-L$libdir' allow_undefined_flag_CXX=unsupported always_export_symbols_CXX=no enable_shared_with_static_runtimes_CXX=yes if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs_CXX=no fi ;; darwin* | rhapsody*) archive_cmds_need_lc_CXX=no hardcode_direct_CXX=no hardcode_automatic_CXX=yes hardcode_shlibpath_var_CXX=unsupported whole_archive_flag_spec_CXX='' link_all_deplibs_CXX=yes allow_undefined_flag_CXX="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=echo archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" if test "$lt_cv_apple_cc_single_mod" != "yes"; then archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" fi else ld_shlibs_CXX=no fi ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; freebsd[12]*) # C++ shared libraries reported to be fairly broken before # switch to ELF ld_shlibs_CXX=no ;; freebsd-elf*) archive_cmds_need_lc_CXX=no ;; freebsd* | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions ld_shlibs_CXX=yes ;; gnu*) ;; hpux9*) hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: export_dynamic_flag_spec_CXX='${wl}-E' hardcode_direct_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aCC*) archive_cmds_CXX='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes; then archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: case $host_cpu in hppa*64*|ia64*) ;; *) export_dynamic_flag_spec_CXX='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no ;; *) hardcode_direct_CXX=yes hardcode_direct_absolute_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aCC*) case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; interix[3-9]*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib' fi fi link_all_deplibs_CXX=yes ;; esac hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: inherit_rpath_CXX=yes ;; linux* | k*bsd*-gnu) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc* | ecpc* ) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; esac archive_cmds_need_lc_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in *pgCC\ [1-5]* | *pgcpp\ [1-5]*) prelink_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' old_archive_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ $RANLIB $oldlib' archive_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' archive_expsym_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; *) # Version 6 will use weak symbols archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; esac hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_CXX='-rpath $libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; xl*) # IBM XL 8.0 on PPC, with GNU ld hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' archive_cmds_CXX='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds_CXX='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 no_undefined_flag_CXX=' -zdefs' archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' archive_expsym_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' hardcode_libdir_flag_spec_CXX='-R$libdir' whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object_CXX=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. output_verbose_link_cmd='echo' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' ;; esac ;; esac ;; lynxos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; m88k*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; *nto* | *qnx*) ld_shlibs_CXX=yes ;; openbsd2*) # C++ shared libraries are fairly broken ld_shlibs_CXX=no ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no hardcode_direct_absolute_CXX=yes archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' export_dynamic_flag_spec_CXX='${wl}-E' whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd=echo else ld_shlibs_CXX=no fi ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' hardcode_libdir_separator_CXX=: # Archives containing C++ object files must be created using # the KAI C++ compiler. case $host in osf3*) old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; *) old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;; esac ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; cxx*) case $host in osf3*) allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' ;; *) allow_undefined_flag_CXX=' -expect_unresolved \*' archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~ $RM $lib.exp' hardcode_libdir_flag_spec_CXX='-rpath $libdir' ;; esac hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' case $host in osf3*) archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *) archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; esac hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ archive_cmds_need_lc_CXX=yes no_undefined_flag_CXX=' -zdefs' archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_shlibpath_var_CXX=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. # Supported since Solaris 2.6 (maybe 2.5.1?) whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract' ;; esac link_all_deplibs_CXX=yes output_verbose_link_cmd='echo' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then no_undefined_flag_CXX=' ${wl}-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' fi hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir' case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;; esac fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag_CXX='${wl}-z,text' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag_CXX='${wl}-z,text' allow_undefined_flag_CXX='${wl}-z,nodefs' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-R,$libdir' hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes export_dynamic_flag_spec_CXX='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 $as_echo "$ld_shlibs_CXX" >&6; } test "$ld_shlibs_CXX" = no && can_build_shared=no GCC_CXX="$GXX" LD_CXX="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... # Dependencies to place before and after the object being linked: predep_objects_CXX= postdep_objects_CXX= predeps_CXX= postdeps_CXX= compiler_lib_search_path_CXX= cat > conftest.$ac_ext <<_LT_EOF class Foo { public: Foo (void) { a = 0; } private: int a; }; _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do case $p in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test $p = "-L" || test $p = "-R"; then prev=$p continue else prev= fi if test "$pre_test_object_deps_done" = no; then case $p in -L* | -R*) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$compiler_lib_search_path_CXX"; then compiler_lib_search_path_CXX="${prev}${p}" else compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$postdeps_CXX"; then postdeps_CXX="${prev}${p}" else postdeps_CXX="${postdeps_CXX} ${prev}${p}" fi fi ;; *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test "$pre_test_object_deps_done" = no; then if test -z "$predep_objects_CXX"; then predep_objects_CXX="$p" else predep_objects_CXX="$predep_objects_CXX $p" fi else if test -z "$postdep_objects_CXX"; then postdep_objects_CXX="$p" else postdep_objects_CXX="$postdep_objects_CXX $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling CXX test program" fi $RM -f confest.$objext # PORTME: override above test on systems where it is broken case $host_os in interix[3-9]*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. predep_objects_CXX= postdep_objects_CXX= postdeps_CXX= ;; linux*) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac if test "$solaris_use_stlport4" != yes; then postdeps_CXX='-library=Cstd -library=Crun' fi ;; esac ;; solaris*) case $cc_basename in CC*) # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. if test "$solaris_use_stlport4" != yes; then postdeps_CXX='-library=Cstd -library=Crun' fi ;; esac ;; esac case " $postdeps_CXX " in *" -lc "*) archive_cmds_need_lc_CXX=no ;; esac compiler_lib_search_dirs_CXX= if test -n "${compiler_lib_search_path_CXX}"; then compiler_lib_search_dirs_CXX=`echo " ${compiler_lib_search_path_CXX}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` fi lt_prog_compiler_wl_CXX= lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX= { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 $as_echo_n "checking for $compiler option to produce PIC... " >&6; } # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support lt_prog_compiler_pic_CXX='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic_CXX='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_CXX='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all lt_prog_compiler_pic_CXX= ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_CXX=-Kconform_pic fi ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic_CXX='-fPIC -shared' ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac else case $host_os in aix[4-9]*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' else lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; dgux*) case $cc_basename in ec++*) lt_prog_compiler_pic_CXX='-KPIC' ;; ghcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; freebsd* | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then lt_prog_compiler_pic_CXX='+Z' fi ;; aCC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_CXX='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux* | k*bsd*-gnu) case $cc_basename in KCC*) # KAI C++ Compiler lt_prog_compiler_wl_CXX='--backend -Wl,' lt_prog_compiler_pic_CXX='-fPIC' ;; ecpc* ) # old Intel C++ for x86_64 which still supported -KPIC. lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-static' ;; icpc* ) # Intel C++, used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-fPIC' lt_prog_compiler_static_CXX='-static' ;; pgCC* | pgcpp*) # Portland Group C++ compiler lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-fpic' lt_prog_compiler_static_CXX='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; xlc* | xlC*) # IBM XL 8.0 on PPC lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-qpic' lt_prog_compiler_static_CXX='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' lt_prog_compiler_wl_CXX='-Qoption ld ' ;; esac ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) lt_prog_compiler_pic_CXX='-W c,exportall' ;; *) ;; esac ;; netbsd*) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic_CXX='-fPIC -shared' ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) lt_prog_compiler_wl_CXX='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 lt_prog_compiler_pic_CXX='-pic' ;; cxx*) # Digital/Compaq C++ lt_prog_compiler_wl_CXX='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' lt_prog_compiler_wl_CXX='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x lt_prog_compiler_pic_CXX='-pic' lt_prog_compiler_static_CXX='-Bstatic' ;; lcc*) # Lucid lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 lt_prog_compiler_pic_CXX='-KPIC' ;; *) ;; esac ;; vxworks*) ;; *) lt_prog_compiler_can_build_shared_CXX=no ;; esac fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_CXX= ;; *) lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic_CXX" >&5 $as_echo "$lt_prog_compiler_pic_CXX" >&6; } # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... " >&6; } if ${lt_cv_prog_compiler_pic_works_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works_CXX=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:15033: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:15037: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works_CXX=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works_CXX" >&5 $as_echo "$lt_cv_prog_compiler_pic_works_CXX" >&6; } if test x"$lt_cv_prog_compiler_pic_works_CXX" = xyes; then case $lt_prog_compiler_pic_CXX in "" | " "*) ;; *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;; esac else lt_prog_compiler_pic_CXX= lt_prog_compiler_can_build_shared_CXX=no fi fi # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if ${lt_cv_prog_compiler_static_works_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works_CXX=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works_CXX=yes fi else lt_cv_prog_compiler_static_works_CXX=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works_CXX" >&5 $as_echo "$lt_cv_prog_compiler_static_works_CXX" >&6; } if test x"$lt_cv_prog_compiler_static_works_CXX" = xyes; then : else lt_prog_compiler_static_CXX= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if ${lt_cv_prog_compiler_c_o_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o_CXX=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:15132: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:15136: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_CXX=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5 $as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if ${lt_cv_prog_compiler_c_o_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o_CXX=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:15184: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:15188: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_CXX=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5 $as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 $as_echo_n "checking if we can lock with hard links... " >&6; } hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 $as_echo "$hard_links" >&6; } if test "$hard_links" = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 $as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' case $host_os in aix[4-9]*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) export_symbols_cmds_CXX="$ltdll_cmds" ;; cygwin* | mingw* | cegcc*) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;/^.*[ ]__nm__/s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' ;; *) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 $as_echo "$ld_shlibs_CXX" >&6; } test "$ld_shlibs_CXX" = no && can_build_shared=no with_gnu_ld_CXX=$with_gnu_ld # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_CXX" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_CXX=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_CXX in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_CXX pic_flag=$lt_prog_compiler_pic_CXX compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_CXX allow_undefined_flag_CXX= if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then archive_cmds_need_lc_CXX=no else archive_cmds_need_lc_CXX=yes fi allow_undefined_flag_CXX=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc_CXX" >&5 $as_echo "$archive_cmds_need_lc_CXX" >&6; } ;; esac fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[4-9]*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix[3-9]*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux* | k*bsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\"" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 $as_echo "$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action_CXX= if test -n "$hardcode_libdir_flag_spec_CXX" || test -n "$runpath_var_CXX" || test "X$hardcode_automatic_CXX" = "Xyes" ; then # We can hardcode non-existent directories. if test "$hardcode_direct_CXX" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, CXX)" != no && test "$hardcode_minus_L_CXX" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_CXX=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_CXX=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_CXX=unsupported fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action_CXX" >&5 $as_echo "$hardcode_action_CXX" >&6; } if test "$hardcode_action_CXX" = relink || test "$inherit_rpath_CXX" = yes; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi fi # test -n "$compiler" CC=$lt_save_CC LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld fi # test "$_lt_caught_CXX_error" != yes ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if ${am_cv_CC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Init gettext ALL_LINGUAS="as bn_IN ca cs de es fi fr gu hi it ja kn ko ml mr nl pa pt_BR ru sk sv ta te vi zh_CN zh_TW" MKINSTALLDIRS= if test -n "$ac_aux_dir"; then case "$ac_aux_dir" in /*) MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" ;; *) MKINSTALLDIRS="\$(top_builddir)/$ac_aux_dir/mkinstalldirs" ;; esac fi if test -z "$MKINSTALLDIRS"; then MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 $as_echo_n "checking whether NLS is requested... " >&6; } # Check whether --enable-nls was given. if test "${enable_nls+set}" = set; then : enableval=$enable_nls; USE_NLS=$enableval else USE_NLS=yes fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 $as_echo "$USE_NLS" >&6; } # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Find out how to test for executable files. Don't use a zero-byte file, # as systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else case "$MSGFMT" in [\\/]* | ?:[\\/]*) ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then if $ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 && (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then ac_cv_path_MSGFMT="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done done IFS="$ac_save_IFS" test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":" ;; esac fi MSGFMT="$ac_cv_path_MSGFMT" if test "$MSGFMT" != ":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 $as_echo "$MSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_GMSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else case $GMSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" ;; esac fi GMSGFMT=$ac_cv_path_GMSGFMT if test -n "$GMSGFMT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 $as_echo "$GMSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Find out how to test for executable files. Don't use a zero-byte file, # as systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_XGETTEXT+:} false; then : $as_echo_n "(cached) " >&6 else case "$XGETTEXT" in [\\/]* | ?:[\\/]*) ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 && (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then ac_cv_path_XGETTEXT="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done done IFS="$ac_save_IFS" test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" ;; esac fi XGETTEXT="$ac_cv_path_XGETTEXT" if test "$XGETTEXT" != ":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 $as_echo "$XGETTEXT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi rm -f messages.po # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Find out how to test for executable files. Don't use a zero-byte file, # as systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "msgmerge", so it can be a program name with args. set dummy msgmerge; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MSGMERGE+:} false; then : $as_echo_n "(cached) " >&6 else case "$MSGMERGE" in [\\/]* | ?:[\\/]*) ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then if $ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1; then ac_cv_path_MSGMERGE="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done done IFS="$ac_save_IFS" test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE=":" ;; esac fi MSGMERGE="$ac_cv_path_MSGMERGE" if test "$MSGMERGE" != ":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 $as_echo "$MSGMERGE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "$GMSGFMT" != ":"; then if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 && (if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then : ; else GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'` { $as_echo "$as_me:${as_lineno-$LINENO}: result: found $GMSGFMT program is not GNU msgfmt; ignore it" >&5 $as_echo "found $GMSGFMT program is not GNU msgfmt; ignore it" >&6; } GMSGFMT=":" fi fi if test "$XGETTEXT" != ":"; then if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 && (if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then : ; else { $as_echo "$as_me:${as_lineno-$LINENO}: result: found xgettext program is not GNU xgettext; ignore it" >&5 $as_echo "found xgettext program is not GNU xgettext; ignore it" >&6; } XGETTEXT=":" fi rm -f messages.po fi ac_config_commands="$ac_config_commands default-1" if test "X$prefix" = "XNONE"; then acl_final_prefix="$ac_default_prefix" else acl_final_prefix="$prefix" fi if test "X$exec_prefix" = "XNONE"; then acl_final_exec_prefix='${prefix}' else acl_final_exec_prefix="$exec_prefix" fi acl_save_prefix="$prefix" prefix="$acl_final_prefix" eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" prefix="$acl_save_prefix" # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then : withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by GCC" >&5 $as_echo_n "checking for ld used by GCC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | [A-Za-z]:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the path of ld ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if ${acl_cv_path_LD+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then acl_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some GNU ld's only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in *GNU* | *'with BFD'*) test "$with_gnu_ld" != no && break ;; *) test "$with_gnu_ld" != yes && break ;; esac fi done IFS="$ac_save_ifs" else acl_cv_path_LD="$LD" # Let the user override the test with a path. fi fi LD="$acl_cv_path_LD" if test -n "$LD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if ${acl_cv_prog_gnu_ld+:} false; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU ld's only accept -v. case `$LD -v 2>&1 &5 $as_echo "$acl_cv_prog_gnu_ld" >&6; } with_gnu_ld=$acl_cv_prog_gnu_ld { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5 $as_echo_n "checking for shared library run path origin... " >&6; } if ${acl_cv_rpath+:} false; then : $as_echo_n "(cached) " >&6 else CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh . ./conftest.sh rm -f ./conftest.sh acl_cv_rpath=done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_rpath" >&5 $as_echo "$acl_cv_rpath" >&6; } wl="$acl_cv_wl" libext="$acl_cv_libext" shlibext="$acl_cv_shlibext" hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" hardcode_direct="$acl_cv_hardcode_direct" hardcode_minus_L="$acl_cv_hardcode_minus_L" # Check whether --enable-rpath was given. if test "${enable_rpath+set}" = set; then : enableval=$enable_rpath; : else enable_rpath=yes fi use_additional=yes acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" # Check whether --with-libiconv-prefix was given. if test "${with_libiconv_prefix+set}" = set; then : withval=$with_libiconv_prefix; if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" else additional_includedir="$withval/include" additional_libdir="$withval/lib" fi fi fi LIBICONV= LTLIBICONV= INCICONV= rpathdirs= ltrpathdirs= names_already_handled= names_next_round='iconv ' while test -n "$names_next_round"; do names_this_round="$names_next_round" names_next_round= for name in $names_this_round; do already_handled= for n in $names_already_handled; do if test "$n" = "$name"; then already_handled=yes break fi done if test -z "$already_handled"; then names_already_handled="$names_already_handled $name" uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` eval value=\"\$HAVE_LIB$uppername\" if test -n "$value"; then if test "$value" = yes; then eval value=\"\$LIB$uppername\" test -z "$value" || LIBICONV="${LIBICONV}${LIBICONV:+ }$value" eval value=\"\$LTLIB$uppername\" test -z "$value" || LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$value" else : fi else found_dir= found_la= found_so= found_a= if test $use_additional = yes; then if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then found_dir="$additional_libdir" found_so="$additional_libdir/lib$name.$shlibext" if test -f "$additional_libdir/lib$name.la"; then found_la="$additional_libdir/lib$name.la" fi else if test -f "$additional_libdir/lib$name.$libext"; then found_dir="$additional_libdir" found_a="$additional_libdir/lib$name.$libext" if test -f "$additional_libdir/lib$name.la"; then found_la="$additional_libdir/lib$name.la" fi fi fi fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIBICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then found_dir="$dir" found_so="$dir/lib$name.$shlibext" if test -f "$dir/lib$name.la"; then found_la="$dir/lib$name.la" fi else if test -f "$dir/lib$name.$libext"; then found_dir="$dir" found_a="$dir/lib$name.$libext" if test -f "$dir/lib$name.la"; then found_la="$dir/lib$name.la" fi fi fi ;; esac if test "X$found_dir" != "X"; then break fi done fi if test "X$found_dir" != "X"; then LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$found_dir -l$name" if test "X$found_so" != "X"; then if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" else haveit= for x in $ltrpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $found_dir" fi if test "$hardcode_direct" = yes; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" else if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" haveit= for x in $rpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $found_dir" fi else haveit= for x in $LDFLAGS $LIBICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir" fi if test "$hardcode_minus_L" != no; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" else LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" fi fi fi fi else if test "X$found_a" != "X"; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_a" else LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir -l$name" fi fi additional_includedir= case "$found_dir" in */lib | */lib/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'` additional_includedir="$basedir/include" ;; esac if test "X$additional_includedir" != "X"; then if test "X$additional_includedir" != "X/usr/include"; then haveit= if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux*) haveit=yes;; esac fi fi if test -z "$haveit"; then for x in $CPPFLAGS $INCICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_includedir"; then INCICONV="${INCICONV}${INCICONV:+ }-I$additional_includedir" fi fi fi fi fi if test -n "$found_la"; then save_libdir="$libdir" case "$found_la" in */* | *\\*) . "$found_la" ;; *) . "./$found_la" ;; esac libdir="$save_libdir" for dep in $dependency_libs; do case "$dep" in -L*) additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` if test "X$additional_libdir" != "X/usr/lib"; then haveit= if test "X$additional_libdir" = "X/usr/local/lib"; then if test -n "$GCC"; then case $host_os in linux*) haveit=yes;; esac fi fi if test -z "$haveit"; then haveit= for x in $LDFLAGS $LIBICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LIBICONV="${LIBICONV}${LIBICONV:+ }-L$additional_libdir" fi fi haveit= for x in $LDFLAGS $LTLIBICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$additional_libdir" fi fi fi fi ;; -R*) dir=`echo "X$dep" | sed -e 's/^X-R//'` if test "$enable_rpath" != no; then haveit= for x in $rpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $dir" fi haveit= for x in $ltrpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $dir" fi fi ;; -l*) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` ;; *.la) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` ;; *) LIBICONV="${LIBICONV}${LIBICONV:+ }$dep" LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$dep" ;; esac done fi else LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-l$name" fi fi fi done done if test "X$rpathdirs" != "X"; then if test -n "$hardcode_libdir_separator"; then alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir" done acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" else for found_dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$found_dir" eval flag=\"$hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" done fi fi if test "X$ltrpathdirs" != "X"; then for found_dir in $ltrpathdirs; do LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-R$found_dir" done fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 $as_echo_n "checking whether NLS is requested... " >&6; } # Check whether --enable-nls was given. if test "${enable_nls+set}" = set; then : enableval=$enable_nls; USE_NLS=$enableval else USE_NLS=yes fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 $as_echo "$USE_NLS" >&6; } LIBINTL= LTLIBINTL= POSUB= if test "$USE_NLS" = "yes"; then gt_use_preinstalled_gnugettext=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libc" >&5 $as_echo_n "checking for GNU gettext in libc... " >&6; } if ${gt_cv_func_gnugettext1_libc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include extern int _nl_msg_cat_cntr; extern int *_nl_domain_bindings; int main () { bindtextdomain ("", ""); return (int) gettext ("") + _nl_msg_cat_cntr + *_nl_domain_bindings ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_func_gnugettext1_libc=yes else gt_cv_func_gnugettext1_libc=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_gnugettext1_libc" >&5 $as_echo "$gt_cv_func_gnugettext1_libc" >&6; } if test "$gt_cv_func_gnugettext1_libc" != "yes"; then am_save_CPPFLAGS="$CPPFLAGS" for element in $INCICONV; do haveit= for x in $CPPFLAGS; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5 $as_echo_n "checking for iconv... " >&6; } if ${am_cv_func_iconv+:} false; then : $as_echo_n "(cached) " >&6 else am_cv_func_iconv="no, consider installing GNU libiconv" am_cv_lib_iconv=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : am_cv_func_iconv=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test "$am_cv_func_iconv" != yes; then am_save_LIBS="$LIBS" LIBS="$LIBS $LIBICONV" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : am_cv_lib_iconv=yes am_cv_func_iconv=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$am_save_LIBS" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5 $as_echo "$am_cv_func_iconv" >&6; } if test "$am_cv_func_iconv" = yes; then $as_echo "#define HAVE_ICONV 1" >>confdefs.h fi if test "$am_cv_lib_iconv" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libiconv" >&5 $as_echo_n "checking how to link with libiconv... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBICONV" >&5 $as_echo "$LIBICONV" >&6; } else CPPFLAGS="$am_save_CPPFLAGS" LIBICONV= LTLIBICONV= fi use_additional=yes acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" # Check whether --with-libintl-prefix was given. if test "${with_libintl_prefix+set}" = set; then : withval=$with_libintl_prefix; if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" else additional_includedir="$withval/include" additional_libdir="$withval/lib" fi fi fi LIBINTL= LTLIBINTL= INCINTL= rpathdirs= ltrpathdirs= names_already_handled= names_next_round='intl ' while test -n "$names_next_round"; do names_this_round="$names_next_round" names_next_round= for name in $names_this_round; do already_handled= for n in $names_already_handled; do if test "$n" = "$name"; then already_handled=yes break fi done if test -z "$already_handled"; then names_already_handled="$names_already_handled $name" uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` eval value=\"\$HAVE_LIB$uppername\" if test -n "$value"; then if test "$value" = yes; then eval value=\"\$LIB$uppername\" test -z "$value" || LIBINTL="${LIBINTL}${LIBINTL:+ }$value" eval value=\"\$LTLIB$uppername\" test -z "$value" || LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$value" else : fi else found_dir= found_la= found_so= found_a= if test $use_additional = yes; then if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then found_dir="$additional_libdir" found_so="$additional_libdir/lib$name.$shlibext" if test -f "$additional_libdir/lib$name.la"; then found_la="$additional_libdir/lib$name.la" fi else if test -f "$additional_libdir/lib$name.$libext"; then found_dir="$additional_libdir" found_a="$additional_libdir/lib$name.$libext" if test -f "$additional_libdir/lib$name.la"; then found_la="$additional_libdir/lib$name.la" fi fi fi fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then found_dir="$dir" found_so="$dir/lib$name.$shlibext" if test -f "$dir/lib$name.la"; then found_la="$dir/lib$name.la" fi else if test -f "$dir/lib$name.$libext"; then found_dir="$dir" found_a="$dir/lib$name.$libext" if test -f "$dir/lib$name.la"; then found_la="$dir/lib$name.la" fi fi fi ;; esac if test "X$found_dir" != "X"; then break fi done fi if test "X$found_dir" != "X"; then LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$found_dir -l$name" if test "X$found_so" != "X"; then if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" else haveit= for x in $ltrpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $found_dir" fi if test "$hardcode_direct" = yes; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" else if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" haveit= for x in $rpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $found_dir" fi else haveit= for x in $LDFLAGS $LIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir" fi if test "$hardcode_minus_L" != no; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" else LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" fi fi fi fi else if test "X$found_a" != "X"; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_a" else LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir -l$name" fi fi additional_includedir= case "$found_dir" in */lib | */lib/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'` additional_includedir="$basedir/include" ;; esac if test "X$additional_includedir" != "X"; then if test "X$additional_includedir" != "X/usr/include"; then haveit= if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux*) haveit=yes;; esac fi fi if test -z "$haveit"; then for x in $CPPFLAGS $INCINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_includedir"; then INCINTL="${INCINTL}${INCINTL:+ }-I$additional_includedir" fi fi fi fi fi if test -n "$found_la"; then save_libdir="$libdir" case "$found_la" in */* | *\\*) . "$found_la" ;; *) . "./$found_la" ;; esac libdir="$save_libdir" for dep in $dependency_libs; do case "$dep" in -L*) additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` if test "X$additional_libdir" != "X/usr/lib"; then haveit= if test "X$additional_libdir" = "X/usr/local/lib"; then if test -n "$GCC"; then case $host_os in linux*) haveit=yes;; esac fi fi if test -z "$haveit"; then haveit= for x in $LDFLAGS $LIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LIBINTL="${LIBINTL}${LIBINTL:+ }-L$additional_libdir" fi fi haveit= for x in $LDFLAGS $LTLIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$additional_libdir" fi fi fi fi ;; -R*) dir=`echo "X$dep" | sed -e 's/^X-R//'` if test "$enable_rpath" != no; then haveit= for x in $rpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $dir" fi haveit= for x in $ltrpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $dir" fi fi ;; -l*) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` ;; *.la) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` ;; *) LIBINTL="${LIBINTL}${LIBINTL:+ }$dep" LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$dep" ;; esac done fi else LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-l$name" fi fi fi done done if test "X$rpathdirs" != "X"; then if test -n "$hardcode_libdir_separator"; then alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir" done acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" else for found_dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$found_dir" eval flag=\"$hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" done fi fi if test "X$ltrpathdirs" != "X"; then for found_dir in $ltrpathdirs; do LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-R$found_dir" done fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5 $as_echo_n "checking for GNU gettext in libintl... " >&6; } if ${gt_cv_func_gnugettext1_libintl+:} false; then : $as_echo_n "(cached) " >&6 else gt_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $INCINTL" gt_save_LIBS="$LIBS" LIBS="$LIBS $LIBINTL" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (); int main () { bindtextdomain ("", ""); return (int) gettext ("") + _nl_msg_cat_cntr + *_nl_expand_alias (0) ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_func_gnugettext1_libintl=yes else gt_cv_func_gnugettext1_libintl=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test "$gt_cv_func_gnugettext1_libintl" != yes && test -n "$LIBICONV"; then LIBS="$LIBS $LIBICONV" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (); int main () { bindtextdomain ("", ""); return (int) gettext ("") + _nl_msg_cat_cntr + *_nl_expand_alias (0) ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : LIBINTL="$LIBINTL $LIBICONV" LTLIBINTL="$LTLIBINTL $LTLIBICONV" gt_cv_func_gnugettext1_libintl=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi CPPFLAGS="$gt_save_CPPFLAGS" LIBS="$gt_save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_gnugettext1_libintl" >&5 $as_echo "$gt_cv_func_gnugettext1_libintl" >&6; } fi if test "$gt_cv_func_gnugettext1_libc" = "yes" \ || { test "$gt_cv_func_gnugettext1_libintl" = "yes" \ && test "$PACKAGE" != gettext-runtime \ && test "$PACKAGE" != gettext-tools; }; then gt_use_preinstalled_gnugettext=yes else LIBINTL= LTLIBINTL= INCINTL= fi if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then $as_echo "#define ENABLE_NLS 1" >>confdefs.h else USE_NLS=no fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use NLS" >&5 $as_echo_n "checking whether to use NLS... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 $as_echo "$USE_NLS" >&6; } if test "$USE_NLS" = "yes"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking where the gettext function comes from" >&5 $as_echo_n "checking where the gettext function comes from... " >&6; } if test "$gt_use_preinstalled_gnugettext" = "yes"; then if test "$gt_cv_func_gnugettext1_libintl" = "yes"; then gt_source="external libintl" else gt_source="libc" fi else gt_source="included intl directory" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_source" >&5 $as_echo "$gt_source" >&6; } fi if test "$USE_NLS" = "yes"; then if test "$gt_use_preinstalled_gnugettext" = "yes"; then if test "$gt_cv_func_gnugettext1_libintl" = "yes"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libintl" >&5 $as_echo_n "checking how to link with libintl... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBINTL" >&5 $as_echo "$LIBINTL" >&6; } for element in $INCINTL; do haveit= for x in $CPPFLAGS; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" fi done fi $as_echo "#define HAVE_GETTEXT 1" >>confdefs.h $as_echo "#define HAVE_DCGETTEXT 1" >>confdefs.h fi POSUB=po fi INTLLIBS="$LIBINTL" # Checks if doxygen is avaiable # Check whether --with-doxygen was given. if test "${with_doxygen+set}" = set; then : withval=$with_doxygen; fi DOXYGEN=no if test "x$with_doxygen" != "xno"; then # Extract the first word of "doxygen", so it can be a program name with args. set dummy doxygen; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_DOXYGEN+:} false; then : $as_echo_n "(cached) " >&6 else case $DOXYGEN in [\\/]* | ?:[\\/]*) ac_cv_path_DOXYGEN="$DOXYGEN" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_DOXYGEN="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_DOXYGEN" && ac_cv_path_DOXYGEN="no" ;; esac fi DOXYGEN=$ac_cv_path_DOXYGEN if test -n "$DOXYGEN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DOXYGEN" >&5 $as_echo "$DOXYGEN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test x$DOXYGEN != xno; then HAVE_DOXYGEN_TRUE= HAVE_DOXYGEN_FALSE='#' else HAVE_DOXYGEN_TRUE='#' HAVE_DOXYGEN_FALSE= fi # Checks if graphviz is available # Extract the first word of "dot", so it can be a program name with args. set dummy dot; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_HAVE_GRAPHVIZ+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$HAVE_GRAPHVIZ"; then ac_cv_prog_HAVE_GRAPHVIZ="$HAVE_GRAPHVIZ" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_HAVE_GRAPHVIZ="YES" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_HAVE_GRAPHVIZ" && ac_cv_prog_HAVE_GRAPHVIZ="NO" fi fi HAVE_GRAPHVIZ=$ac_cv_prog_HAVE_GRAPHVIZ if test -n "$HAVE_GRAPHVIZ"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $HAVE_GRAPHVIZ" >&5 $as_echo "$HAVE_GRAPHVIZ" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "dot", so it can be a program name with args. set dummy dot; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_DOT+:} false; then : $as_echo_n "(cached) " >&6 else case $DOT in [\\/]* | ?:[\\/]*) ac_cv_path_DOT="$DOT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_DOT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi DOT=$ac_cv_path_DOT if test -n "$DOT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DOT" >&5 $as_echo "$DOT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi DOT=`dirname $DOT` # Extract the first word of "perl", so it can be a program name with args. set dummy perl; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PERL+:} false; then : $as_echo_n "(cached) " >&6 else case $PERL in [\\/]* | ?:[\\/]*) ac_cv_path_PERL="$PERL" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PERL=$ac_cv_path_PERL if test -n "$PERL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5 $as_echo "$PERL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Checks if xsltproc is available # Extract the first word of "xsltproc", so it can be a program name with args. set dummy xsltproc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_XSLTPROC+:} false; then : $as_echo_n "(cached) " >&6 else case $XSLTPROC in [\\/]* | ?:[\\/]*) ac_cv_path_XSLTPROC="$XSLTPROC" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_XSLTPROC="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_XSLTPROC" && ac_cv_path_XSLTPROC="no" ;; esac fi XSLTPROC=$ac_cv_path_XSLTPROC if test -n "$XSLTPROC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XSLTPROC" >&5 $as_echo "$XSLTPROC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test x$XSLTPROC != xno; then HAVE_XSLTPROC_TRUE= HAVE_XSLTPROC_FALSE='#' else HAVE_XSLTPROC_TRUE='#' HAVE_XSLTPROC_FALSE= fi # Checks if docbook-style-xsl is available { $as_echo "$as_me:${as_lineno-$LINENO}: checking for /usr/share/sgml/docbook/xsl-stylesheets/html/tldp-html.xsl" >&5 $as_echo_n "checking for /usr/share/sgml/docbook/xsl-stylesheets/html/tldp-html.xsl... " >&6; } if ${ac_cv_file__usr_share_sgml_docbook_xsl_stylesheets_html_tldp_html_xsl+:} false; then : $as_echo_n "(cached) " >&6 else test "$cross_compiling" = yes && as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5 if test -r "/usr/share/sgml/docbook/xsl-stylesheets/html/tldp-html.xsl"; then ac_cv_file__usr_share_sgml_docbook_xsl_stylesheets_html_tldp_html_xsl=yes else ac_cv_file__usr_share_sgml_docbook_xsl_stylesheets_html_tldp_html_xsl=no fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_file__usr_share_sgml_docbook_xsl_stylesheets_html_tldp_html_xsl" >&5 $as_echo "$ac_cv_file__usr_share_sgml_docbook_xsl_stylesheets_html_tldp_html_xsl" >&6; } if test "x$ac_cv_file__usr_share_sgml_docbook_xsl_stylesheets_html_tldp_html_xsl" = xyes; then : DOCBOOK_XSL=/usr/share/sgml/docbook/xsl-stylesheets/html/tldp-html.xsl else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for /usr/share/sgml/docbook/xsl-stylesheets/html/docbook.xsl" >&5 $as_echo_n "checking for /usr/share/sgml/docbook/xsl-stylesheets/html/docbook.xsl... " >&6; } if ${ac_cv_file__usr_share_sgml_docbook_xsl_stylesheets_html_docbook_xsl+:} false; then : $as_echo_n "(cached) " >&6 else test "$cross_compiling" = yes && as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5 if test -r "/usr/share/sgml/docbook/xsl-stylesheets/html/docbook.xsl"; then ac_cv_file__usr_share_sgml_docbook_xsl_stylesheets_html_docbook_xsl=yes else ac_cv_file__usr_share_sgml_docbook_xsl_stylesheets_html_docbook_xsl=no fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_file__usr_share_sgml_docbook_xsl_stylesheets_html_docbook_xsl" >&5 $as_echo "$ac_cv_file__usr_share_sgml_docbook_xsl_stylesheets_html_docbook_xsl" >&6; } if test "x$ac_cv_file__usr_share_sgml_docbook_xsl_stylesheets_html_docbook_xsl" = xyes; then : DOCBOOK_XSL=/usr/share/sgml/docbook/xsl-stylesheets/html/docbook.xsl else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for /usr/share/xml/docbook/stylesheet/nwalsh/current/html/docbook.xsl" >&5 $as_echo_n "checking for /usr/share/xml/docbook/stylesheet/nwalsh/current/html/docbook.xsl... " >&6; } if ${ac_cv_file__usr_share_xml_docbook_stylesheet_nwalsh_current_html_docbook_xsl+:} false; then : $as_echo_n "(cached) " >&6 else test "$cross_compiling" = yes && as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5 if test -r "/usr/share/xml/docbook/stylesheet/nwalsh/current/html/docbook.xsl"; then ac_cv_file__usr_share_xml_docbook_stylesheet_nwalsh_current_html_docbook_xsl=yes else ac_cv_file__usr_share_xml_docbook_stylesheet_nwalsh_current_html_docbook_xsl=no fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_file__usr_share_xml_docbook_stylesheet_nwalsh_current_html_docbook_xsl" >&5 $as_echo "$ac_cv_file__usr_share_xml_docbook_stylesheet_nwalsh_current_html_docbook_xsl" >&6; } if test "x$ac_cv_file__usr_share_xml_docbook_stylesheet_nwalsh_current_html_docbook_xsl" = xyes; then : DOCBOOK_XSL=/usr/share/xml/docbook/stylesheet/nwalsh/current/html/docbook.xsl else DOCBOOK_XSL=no fi fi fi if test x$DOCBOOK_XSL != xno; then HAVE_DOCBOOK_TRUE= HAVE_DOCBOOK_FALSE='#' else HAVE_DOCBOOK_TRUE='#' HAVE_DOCBOOK_FALSE= fi if test x$XSLTPROC != xno -a x$DOCBOOK_XSL != xno; then BUILD_MANUAL_TRUE= BUILD_MANUAL_FALSE='#' else BUILD_MANUAL_TRUE='#' BUILD_MANUAL_FALSE= fi # Check intltool case "$am__api_version" in 1.01234) as_fn_error $? "Automake 1.5 or newer is required to use intltool" "$LINENO" 5 ;; *) ;; esac if test -n "0.33"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for intltool >= 0.33" >&5 $as_echo_n "checking for intltool >= 0.33... " >&6; } INTLTOOL_REQUIRED_VERSION_AS_INT=`echo 0.33 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_APPLIED_VERSION found" >&5 $as_echo "$INTLTOOL_APPLIED_VERSION found" >&6; } test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || as_fn_error $? "Your intltool is too old. You need intltool 0.33 or later." "$LINENO" 5 fi # Extract the first word of "intltool-update", so it can be a program name with args. set dummy intltool-update; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_INTLTOOL_UPDATE+:} false; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_UPDATE in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_UPDATE="$INTLTOOL_UPDATE" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_INTLTOOL_UPDATE="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi INTLTOOL_UPDATE=$ac_cv_path_INTLTOOL_UPDATE if test -n "$INTLTOOL_UPDATE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_UPDATE" >&5 $as_echo "$INTLTOOL_UPDATE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "intltool-merge", so it can be a program name with args. set dummy intltool-merge; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_INTLTOOL_MERGE+:} false; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_MERGE in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_MERGE="$INTLTOOL_MERGE" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_INTLTOOL_MERGE="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi INTLTOOL_MERGE=$ac_cv_path_INTLTOOL_MERGE if test -n "$INTLTOOL_MERGE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_MERGE" >&5 $as_echo "$INTLTOOL_MERGE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "intltool-extract", so it can be a program name with args. set dummy intltool-extract; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_INTLTOOL_EXTRACT+:} false; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_EXTRACT in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_EXTRACT="$INTLTOOL_EXTRACT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_INTLTOOL_EXTRACT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi INTLTOOL_EXTRACT=$ac_cv_path_INTLTOOL_EXTRACT if test -n "$INTLTOOL_EXTRACT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_EXTRACT" >&5 $as_echo "$INTLTOOL_EXTRACT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then as_fn_error $? "The intltool scripts were not found. Please install intltool." "$LINENO" 5 fi INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -p $(top_srcdir)/po $< $@' INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u /tmp $< $@' INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' # Check the gettext tools to make sure they are GNU # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_XGETTEXT+:} false; then : $as_echo_n "(cached) " >&6 else case $XGETTEXT in [\\/]* | ?:[\\/]*) ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_XGETTEXT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi XGETTEXT=$ac_cv_path_XGETTEXT if test -n "$XGETTEXT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 $as_echo "$XGETTEXT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "msgmerge", so it can be a program name with args. set dummy msgmerge; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MSGMERGE+:} false; then : $as_echo_n "(cached) " >&6 else case $MSGMERGE in [\\/]* | ?:[\\/]*) ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_MSGMERGE="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi MSGMERGE=$ac_cv_path_MSGMERGE if test -n "$MSGMERGE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 $as_echo "$MSGMERGE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else case $MSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_MSGFMT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi MSGFMT=$ac_cv_path_MSGFMT if test -n "$MSGFMT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 $as_echo "$MSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_GMSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else case $GMSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" ;; esac fi GMSGFMT=$ac_cv_path_GMSGFMT if test -n "$GMSGFMT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 $as_echo "$GMSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then as_fn_error $? "GNU gettext tools not found; required for intltool" "$LINENO" 5 fi xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then as_fn_error $? "GNU gettext tools not found; required for intltool" "$LINENO" 5 fi # Extract the first word of "perl", so it can be a program name with args. set dummy perl; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_INTLTOOL_PERL+:} false; then : $as_echo_n "(cached) " >&6 else case $INTLTOOL_PERL in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_PERL="$INTLTOOL_PERL" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_INTLTOOL_PERL="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi INTLTOOL_PERL=$ac_cv_path_INTLTOOL_PERL if test -n "$INTLTOOL_PERL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLTOOL_PERL" >&5 $as_echo "$INTLTOOL_PERL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$INTLTOOL_PERL"; then as_fn_error $? "perl not found" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for perl >= 5.8.1" >&5 $as_echo_n "checking for perl >= 5.8.1... " >&6; } $INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 if test $? -ne 0; then as_fn_error $? "perl 5.8.1 is required for intltool" "$LINENO" 5 else IT_PERL_VERSION="`$INTLTOOL_PERL -e \"printf '%vd', $^V\"`" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $IT_PERL_VERSION" >&5 $as_echo "$IT_PERL_VERSION" >&6; } fi if test "xno-xml" != "xno-xml"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XML::Parser" >&5 $as_echo_n "checking for XML::Parser... " >&6; } if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 $as_echo "ok" >&6; } else as_fn_error $? "XML::Parser perl module is required for intltool" "$LINENO" 5 fi fi # Substitute ALL_LINGUAS so we can use it in po/Makefile # Set DATADIRNAME correctly if it is not set yet # (copied from glib-gettext.m4) if test -z "$DATADIRNAME"; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : DATADIRNAME=share else case $host in *-*-solaris*) ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" if test "x$ac_cv_func_bind_textdomain_codeset" = xyes; then : DATADIRNAME=share else DATADIRNAME=lib fi ;; *) DATADIRNAME=lib ;; esac fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi # Checks for libraries. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5 $as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; } if ${ac_cv_header_time+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include int main () { if ((struct tm *) 0) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_time=yes else ac_cv_header_time=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time" >&5 $as_echo "$ac_cv_header_time" >&6; } if test $ac_cv_header_time = yes; then $as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h fi for ac_header in langinfo.h libintl.h string.h dirent.h hash_map ext/hash_map do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done # Checks for typedefs, structures, and compiler characteristics. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 $as_echo_n "checking for an ANSI C-conforming const... " >&6; } if ${ac_cv_c_const+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { /* FIXME: Include the comments suggested by Paul. */ #ifndef __cplusplus /* Ultrix mips cc rejects this. */ typedef int charset[2]; const charset cs; /* SunOS 4.1.1 cc rejects this. */ char const *const *pcpcc; char **ppc; /* NEC SVR4.0.2 mips cc rejects this. */ struct point {int x, y;}; static struct point const zero = {0,0}; /* AIX XL C 1.02.0.0 rejects this. It does not let you subtract one const X* pointer from another in an arm of an if-expression whose if-part is not a constant expression */ const char *g = "string"; pcpcc = &g + (g ? g-g : 0); /* HPUX 7.0 cc rejects these. */ ++pcpcc; ppc = (char**) pcpcc; pcpcc = (char const *const *) ppc; { /* SCO 3.2v4 cc rejects this. */ char *t; char const *s = 0 ? (char *) 0 : (char const *) 0; *t++ = 0; if (s) return 0; } { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ int x[] = {25, 17}; const int *foo = &x[0]; ++foo; } { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ typedef const int *iptr; iptr p = 0; ++p; } { /* AIX XL C 1.02.0.0 rejects this saying "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ struct s { int j; const int *ap[3]; }; struct s *b; b->j = 5; } { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ const int foo = 10; if (!foo) return 0; } return !cs[0] && !zero.x; #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_const=yes else ac_cv_c_const=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 $as_echo "$ac_cv_c_const" >&6; } if test $ac_cv_c_const = no; then $as_echo "#define const /**/" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 $as_echo_n "checking for inline... " >&6; } if ${ac_cv_c_inline+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __cplusplus typedef int foo_t; static $ac_kw foo_t static_foo () {return 0; } $ac_kw foo_t foo () {return 0; } #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_inline=$ac_kw fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext test "$ac_cv_c_inline" != no && break done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 $as_echo "$ac_cv_c_inline" >&6; } case $ac_cv_c_inline in inline | yes) ;; *) case $ac_cv_c_inline in no) ac_val=;; *) ac_val=$ac_cv_c_inline;; esac cat >>confdefs.h <<_ACEOF #ifndef __cplusplus #define inline $ac_val #endif _ACEOF ;; esac ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" if test "x$ac_cv_type_size_t" = xyes; then : else cat >>confdefs.h <<_ACEOF #define size_t unsigned int _ACEOF fi if test x$ac_cv_type_size_t != xyes; then as_fn_error $? "No type size_t, but SCIM needs it!" "$LINENO" 5 fi # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of char" >&5 $as_echo_n "checking size of char... " >&6; } if ${ac_cv_sizeof_char+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (char))" "ac_cv_sizeof_char" "$ac_includes_default"; then : else if test "$ac_cv_type_char" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (char) See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_char=0 fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_char" >&5 $as_echo "$ac_cv_sizeof_char" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_CHAR $ac_cv_sizeof_char _ACEOF # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of unsigned short int" >&5 $as_echo_n "checking size of unsigned short int... " >&6; } if ${ac_cv_sizeof_unsigned_short_int+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (unsigned short int))" "ac_cv_sizeof_unsigned_short_int" "$ac_includes_default"; then : else if test "$ac_cv_type_unsigned_short_int" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (unsigned short int) See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_unsigned_short_int=0 fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_unsigned_short_int" >&5 $as_echo "$ac_cv_sizeof_unsigned_short_int" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_UNSIGNED_SHORT_INT $ac_cv_sizeof_unsigned_short_int _ACEOF # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of unsigned int" >&5 $as_echo_n "checking size of unsigned int... " >&6; } if ${ac_cv_sizeof_unsigned_int+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (unsigned int))" "ac_cv_sizeof_unsigned_int" "$ac_includes_default"; then : else if test "$ac_cv_type_unsigned_int" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (unsigned int) See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_unsigned_int=0 fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_unsigned_int" >&5 $as_echo "$ac_cv_sizeof_unsigned_int" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_UNSIGNED_INT $ac_cv_sizeof_unsigned_int _ACEOF # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of unsigned long int" >&5 $as_echo_n "checking size of unsigned long int... " >&6; } if ${ac_cv_sizeof_unsigned_long_int+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (unsigned long int))" "ac_cv_sizeof_unsigned_long_int" "$ac_includes_default"; then : else if test "$ac_cv_type_unsigned_long_int" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (unsigned long int) See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_unsigned_long_int=0 fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_unsigned_long_int" >&5 $as_echo "$ac_cv_sizeof_unsigned_long_int" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_UNSIGNED_LONG_INT $ac_cv_sizeof_unsigned_long_int _ACEOF # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of unsigned long long int" >&5 $as_echo_n "checking size of unsigned long long int... " >&6; } if ${ac_cv_sizeof_unsigned_long_long_int+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (unsigned long long int))" "ac_cv_sizeof_unsigned_long_long_int" "$ac_includes_default"; then : else if test "$ac_cv_type_unsigned_long_long_int" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (unsigned long long int) See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_unsigned_long_long_int=0 fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_unsigned_long_long_int" >&5 $as_echo "$ac_cv_sizeof_unsigned_long_long_int" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_UNSIGNED_LONG_LONG_INT $ac_cv_sizeof_unsigned_long_long_int _ACEOF for ac_header in stdint.h do : ac_fn_c_check_header_mongrel "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default" if test "x$ac_cv_header_stdint_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STDINT_H 1 _ACEOF has_stdint=yes else has_stdint=no fi done if test x$ac_cv_sizeof_unsigned_short_int = x2 && test x$ac_cv_sizeof_char = x1 ; then : else as_fn_error $? " *** SCIM requires *** sizeof (unsigned short int) == 2 *** sizeof (char) == 1 *** You might want to consider using the GNU C compiler. " "$LINENO" 5 fi if test x$ac_cv_sizeof_wchar_t = x0 ; then as_fn_error $? " *** SCIM requires a compiler that supports wchar_t, *** You might want to consider using the GNU C compiler. " "$LINENO" 5 fi if test x$has_stdint = xyes; then INCLUDE_STDINT="#include " UINT16="uint16_t" UINT32="uint32_t" UINT64="uint64_t" else INCLUDE_STDINT="//#include " UINT16="unsigned short int" if test x$ac_cv_sizeof_unsigned_int = x4; then UINT32="unsigned int" else if test x$ac_cv_sizeof_unsigned_long_int = x4; then UINT32="unsigned long int" else as_fn_error $? "*** No suitable integer type for uint32 found." "$LINENO" 5 fi fi if test x$ac_cv_sizeof_unsigned_long_long_int = x8; then UINT64="unsigned long long int" else as_fn_error $? "*** No suitable integer type for uint64 found." "$LINENO" 5 fi fi # Checks for library functions. for ac_header in stdlib.h do : ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default" if test "x$ac_cv_header_stdlib_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STDLIB_H 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible malloc" >&5 $as_echo_n "checking for GNU libc compatible malloc... " >&6; } if ${ac_cv_func_malloc_0_nonnull+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_func_malloc_0_nonnull=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined STDC_HEADERS || defined HAVE_STDLIB_H # include #else char *malloc (); #endif int main () { return ! malloc (0); ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_malloc_0_nonnull=yes else ac_cv_func_malloc_0_nonnull=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_malloc_0_nonnull" >&5 $as_echo "$ac_cv_func_malloc_0_nonnull" >&6; } if test $ac_cv_func_malloc_0_nonnull = yes; then : $as_echo "#define HAVE_MALLOC 1" >>confdefs.h else $as_echo "#define HAVE_MALLOC 0" >>confdefs.h case " $LIBOBJS " in *" malloc.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS malloc.$ac_objext" ;; esac $as_echo "#define malloc rpl_malloc" >>confdefs.h fi for ac_func in gettimeofday memmove memset nl_langinfo setlocale daemon do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done for ac_func in opendir closedir readdir do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done for ac_func in usleep nanosleep do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done for ac_func in gethostbyname gethostbyname_r socket bind accept connect listen do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF socket_ok=yes else socket_ok=no fi done am_save_CPPFLAGS="$CPPFLAGS" for element in $INCICONV; do haveit= for x in $CPPFLAGS; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5 $as_echo_n "checking for iconv... " >&6; } if ${am_cv_func_iconv+:} false; then : $as_echo_n "(cached) " >&6 else am_cv_func_iconv="no, consider installing GNU libiconv" am_cv_lib_iconv=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : am_cv_func_iconv=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test "$am_cv_func_iconv" != yes; then am_save_LIBS="$LIBS" LIBS="$LIBS $LIBICONV" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : am_cv_lib_iconv=yes am_cv_func_iconv=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$am_save_LIBS" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5 $as_echo "$am_cv_func_iconv" >&6; } if test "$am_cv_func_iconv" = yes; then $as_echo "#define HAVE_ICONV 1" >>confdefs.h fi if test "$am_cv_lib_iconv" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libiconv" >&5 $as_echo_n "checking how to link with libiconv... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBICONV" >&5 $as_echo "$LIBICONV" >&6; } else CPPFLAGS="$am_save_CPPFLAGS" LIBICONV= LTLIBICONV= fi if test "$am_cv_func_iconv" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv declaration" >&5 $as_echo_n "checking for iconv declaration... " >&6; } if ${am_cv_proto_iconv+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include extern #ifdef __cplusplus "C" #endif #if defined(__STDC__) || defined(__cplusplus) size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); #else size_t iconv(); #endif int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : am_cv_proto_iconv_arg1="" else am_cv_proto_iconv_arg1="const" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);" fi am_cv_proto_iconv=`echo "$am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${ac_t:- }$am_cv_proto_iconv" >&5 $as_echo "${ac_t:- }$am_cv_proto_iconv" >&6; } cat >>confdefs.h <<_ACEOF #define ICONV_CONST $am_cv_proto_iconv_arg1 _ACEOF fi if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 $as_echo "$PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_path_PKG_CONFIG"; then ac_pt_PKG_CONFIG=$PKG_CONFIG # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $ac_pt_PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG if test -n "$ac_pt_PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 $as_echo "$ac_pt_PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_pt_PKG_CONFIG" = x; then PKG_CONFIG="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac PKG_CONFIG=$ac_pt_PKG_CONFIG fi else PKG_CONFIG="$ac_cv_path_PKG_CONFIG" fi fi if test -n "$PKG_CONFIG"; then _pkg_min_version=0.9.0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 $as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } PKG_CONFIG="" fi fi # Check if we should build scim-panel-gtk daemon pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK2" >&5 $as_echo_n "checking for GTK2... " >&6; } if test -n "$GTK2_CFLAGS"; then pkg_cv_GTK2_CFLAGS="$GTK2_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= 2.4.0 pango >= 1.1.0 gdk-pixbuf-2.0 >= 2.4.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "gtk+-2.0 >= 2.4.0 pango >= 1.1.0 gdk-pixbuf-2.0 >= 2.4.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GTK2_CFLAGS=`$PKG_CONFIG --cflags "gtk+-2.0 >= 2.4.0 pango >= 1.1.0 gdk-pixbuf-2.0 >= 2.4.0" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$GTK2_LIBS"; then pkg_cv_GTK2_LIBS="$GTK2_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= 2.4.0 pango >= 1.1.0 gdk-pixbuf-2.0 >= 2.4.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "gtk+-2.0 >= 2.4.0 pango >= 1.1.0 gdk-pixbuf-2.0 >= 2.4.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GTK2_LIBS=`$PKG_CONFIG --libs "gtk+-2.0 >= 2.4.0 pango >= 1.1.0 gdk-pixbuf-2.0 >= 2.4.0" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then GTK2_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gtk+-2.0 >= 2.4.0 pango >= 1.1.0 gdk-pixbuf-2.0 >= 2.4.0" 2>&1` else GTK2_PKG_ERRORS=`$PKG_CONFIG --print-errors "gtk+-2.0 >= 2.4.0 pango >= 1.1.0 gdk-pixbuf-2.0 >= 2.4.0" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$GTK2_PKG_ERRORS" >&5 SCIM_HAS_GTK2=no elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SCIM_HAS_GTK2=no else GTK2_CFLAGS=$pkg_cv_GTK2_CFLAGS GTK2_LIBS=$pkg_cv_GTK2_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SCIM_HAS_GTK2=yes fi pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK3" >&5 $as_echo_n "checking for GTK3... " >&6; } if test -n "$GTK3_CFLAGS"; then pkg_cv_GTK3_CFLAGS="$GTK3_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0 >= 3.0.0 pango >= 1.1.0 gdk-pixbuf-2.0 >= 2.4.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "gtk+-3.0 >= 3.0.0 pango >= 1.1.0 gdk-pixbuf-2.0 >= 2.4.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GTK3_CFLAGS=`$PKG_CONFIG --cflags "gtk+-3.0 >= 3.0.0 pango >= 1.1.0 gdk-pixbuf-2.0 >= 2.4.0" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$GTK3_LIBS"; then pkg_cv_GTK3_LIBS="$GTK3_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0 >= 3.0.0 pango >= 1.1.0 gdk-pixbuf-2.0 >= 2.4.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "gtk+-3.0 >= 3.0.0 pango >= 1.1.0 gdk-pixbuf-2.0 >= 2.4.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GTK3_LIBS=`$PKG_CONFIG --libs "gtk+-3.0 >= 3.0.0 pango >= 1.1.0 gdk-pixbuf-2.0 >= 2.4.0" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then GTK3_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gtk+-3.0 >= 3.0.0 pango >= 1.1.0 gdk-pixbuf-2.0 >= 2.4.0" 2>&1` else GTK3_PKG_ERRORS=`$PKG_CONFIG --print-errors "gtk+-3.0 >= 3.0.0 pango >= 1.1.0 gdk-pixbuf-2.0 >= 2.4.0" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$GTK3_PKG_ERRORS" >&5 SCIM_HAS_GTK3=no elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SCIM_HAS_GTK3=no else GTK3_CFLAGS=$pkg_cv_GTK3_CFLAGS GTK3_LIBS=$pkg_cv_GTK3_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SCIM_HAS_GTK3=yes fi SCIM_HAS_GTK2_2=no if test "$SCIM_HAS_GTK2" = "yes"; then if $PKG_CONFIG --exists "gtk+-2.0 >= 2.2" ; then $as_echo "#define GDK_MULTIHEAD_SAFE 1" >>confdefs.h fi GTK2_BINARY_VERSION=`$PKG_CONFIG --variable=gtk_binary_version gtk+-2.0` GTK2_LIBDIR=`$PKG_CONFIG --variable=libdir gtk+-2.0` GTK2_IM_MODULEDIR=$GTK2_LIBDIR/gtk-2.0/$GTK2_BINARY_VERSION/immodules fi if test "$SCIM_HAS_GTK3" = "yes"; then GTK3_VERSION=3.0.0 GTK3_BINARY_VERSION=`$PKG_CONFIG --variable=gtk_binary_version gtk+-3.0` GTK3_LIBDIR=`$PKG_CONFIG --variable=libdir gtk+-3.0` GTK3_IM_MODULEDIR=$GTK3_LIBDIR/gtk-3.0/$GTK3_BINARY_VERSION/immodules fi # Check if we have gthread pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTHREAD2" >&5 $as_echo_n "checking for GTHREAD2... " >&6; } if test -n "$GTHREAD2_CFLAGS"; then pkg_cv_GTHREAD2_CFLAGS="$GTHREAD2_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gthread-2.0 >= 2.0.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "gthread-2.0 >= 2.0.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GTHREAD2_CFLAGS=`$PKG_CONFIG --cflags "gthread-2.0 >= 2.0.0" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$GTHREAD2_LIBS"; then pkg_cv_GTHREAD2_LIBS="$GTHREAD2_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gthread-2.0 >= 2.0.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "gthread-2.0 >= 2.0.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GTHREAD2_LIBS=`$PKG_CONFIG --libs "gthread-2.0 >= 2.0.0" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then GTHREAD2_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gthread-2.0 >= 2.0.0" 2>&1` else GTHREAD2_PKG_ERRORS=`$PKG_CONFIG --print-errors "gthread-2.0 >= 2.0.0" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$GTHREAD2_PKG_ERRORS" >&5 SCIM_HAS_GTHREAD2=no elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SCIM_HAS_GTHREAD2=no else GTHREAD2_CFLAGS=$pkg_cv_GTHREAD2_CFLAGS GTHREAD2_LIBS=$pkg_cv_GTHREAD2_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SCIM_HAS_GTHREAD2=yes fi # Check if we should build scim-bridge-qt-immodule pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for QT3" >&5 $as_echo_n "checking for QT3... " >&6; } if test -n "$QT3_CFLAGS"; then pkg_cv_QT3_CFLAGS="$QT3_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"qt-mt >= 3.3\""; } >&5 ($PKG_CONFIG --exists --print-errors "qt-mt >= 3.3") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_QT3_CFLAGS=`$PKG_CONFIG --cflags "qt-mt >= 3.3" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$QT3_LIBS"; then pkg_cv_QT3_LIBS="$QT3_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"qt-mt >= 3.3\""; } >&5 ($PKG_CONFIG --exists --print-errors "qt-mt >= 3.3") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_QT3_LIBS=`$PKG_CONFIG --libs "qt-mt >= 3.3" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then QT3_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "qt-mt >= 3.3" 2>&1` else QT3_PKG_ERRORS=`$PKG_CONFIG --print-errors "qt-mt >= 3.3" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$QT3_PKG_ERRORS" >&5 SCIM_HAS_QT3=no elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SCIM_HAS_QT3=no else QT3_CFLAGS=$pkg_cv_QT3_CFLAGS QT3_LIBS=$pkg_cv_QT3_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SCIM_HAS_QT3=yes fi if test "$SCIM_HAS_QT3" = "yes"; then if test -z "$QT3_PREFIX"; then QT3_PREFIX=`$PKG_CONFIG --variable=prefix qt-mt` QT3_LIBDIR=`$PKG_CONFIG --variable=libdir qt-mt` fi QT3_MOC=$QT3_PREFIX/bin/moc QT3_IM_MODULEDIR=$QT3_LIBDIR/qt3/plugins/inputmethods fi pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for QT4" >&5 $as_echo_n "checking for QT4... " >&6; } if test -n "$QT4_CFLAGS"; then pkg_cv_QT4_CFLAGS="$QT4_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"QtGui >= 4.0, QtCore >= 4.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "QtGui >= 4.0, QtCore >= 4.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_QT4_CFLAGS=`$PKG_CONFIG --cflags "QtGui >= 4.0, QtCore >= 4.0" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$QT4_LIBS"; then pkg_cv_QT4_LIBS="$QT4_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"QtGui >= 4.0, QtCore >= 4.0\""; } >&5 ($PKG_CONFIG --exists --print-errors "QtGui >= 4.0, QtCore >= 4.0") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_QT4_LIBS=`$PKG_CONFIG --libs "QtGui >= 4.0, QtCore >= 4.0" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then QT4_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "QtGui >= 4.0, QtCore >= 4.0" 2>&1` else QT4_PKG_ERRORS=`$PKG_CONFIG --print-errors "QtGui >= 4.0, QtCore >= 4.0" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$QT4_PKG_ERRORS" >&5 SCIM_HAS_QT4=no elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SCIM_HAS_QT4=no else QT4_CFLAGS=$pkg_cv_QT4_CFLAGS QT4_LIBS=$pkg_cv_QT4_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SCIM_HAS_QT4=yes fi if test "$SCIM_HAS_QT4" = "yes"; then if test -z "$QT4_PREFIX"; then QT4_PREFIX=`$PKG_CONFIG --variable=prefix QtCore` QT4_LIBDIR=`$PKG_CONFIG --variable=libdir QtCore` fi QT4_MOC=$QT4_PREFIX/bin/moc QT4_IM_MODULEDIR=$QT4_LIBDIR/qt4/plugins/inputmethods fi # Check if we should build scim-bridge-clutter-immodule pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CLUTTER" >&5 $as_echo_n "checking for CLUTTER... " >&6; } if test -n "$CLUTTER_CFLAGS"; then pkg_cv_CLUTTER_CFLAGS="$CLUTTER_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"clutter-1.0 clutter-imcontext-0.1\""; } >&5 ($PKG_CONFIG --exists --print-errors "clutter-1.0 clutter-imcontext-0.1") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_CLUTTER_CFLAGS=`$PKG_CONFIG --cflags "clutter-1.0 clutter-imcontext-0.1" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$CLUTTER_LIBS"; then pkg_cv_CLUTTER_LIBS="$CLUTTER_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"clutter-1.0 clutter-imcontext-0.1\""; } >&5 ($PKG_CONFIG --exists --print-errors "clutter-1.0 clutter-imcontext-0.1") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_CLUTTER_LIBS=`$PKG_CONFIG --libs "clutter-1.0 clutter-imcontext-0.1" 2>/dev/null` else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then CLUTTER_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "clutter-1.0 clutter-imcontext-0.1" 2>&1` else CLUTTER_PKG_ERRORS=`$PKG_CONFIG --print-errors "clutter-1.0 clutter-imcontext-0.1" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$CLUTTER_PKG_ERRORS" >&5 SCIM_HAS_CLUTTER=no elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SCIM_HAS_CLUTTER=no else CLUTTER_CFLAGS=$pkg_cv_CLUTTER_CFLAGS CLUTTER_LIBS=$pkg_cv_CLUTTER_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SCIM_HAS_CLUTTER=yes fi if test "$SCIM_HAS_CLUTTER" = "yes"; then CLUTTER_IMCONTEXT_LIBDIR=`$PKG_CONFIG --variable=libdir clutter-imcontext-0.1` CLUTTER_IM_MODULEDIR=$CLUTTER_IMCONTEXT_LIBDIR/clutter-imcontext/immodules enable_clutter_immodule="yes"; fi # Checks for X11 header files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for X" >&5 $as_echo_n "checking for X... " >&6; } # Check whether --with-x was given. if test "${with_x+set}" = set; then : withval=$with_x; fi # $have_x is `yes', `no', `disabled', or empty when we do not yet know. if test "x$with_x" = xno; then # The user explicitly disabled X. have_x=disabled else case $x_includes,$x_libraries in #( *\'*) as_fn_error $? "cannot use X directory names containing '" "$LINENO" 5;; #( *,NONE | NONE,*) if ${ac_cv_have_x+:} false; then : $as_echo_n "(cached) " >&6 else # One or both of the vars are not set, and there is no cached value. ac_x_includes=no ac_x_libraries=no rm -f -r conftest.dir if mkdir conftest.dir; then cd conftest.dir cat >Imakefile <<'_ACEOF' incroot: @echo incroot='${INCROOT}' usrlibdir: @echo usrlibdir='${USRLIBDIR}' libdir: @echo libdir='${LIBDIR}' _ACEOF if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. for ac_var in incroot usrlibdir libdir; do eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`" done # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR. for ac_extension in a so sl dylib la dll; do if test ! -f "$ac_im_usrlibdir/libX11.$ac_extension" && test -f "$ac_im_libdir/libX11.$ac_extension"; then ac_im_usrlibdir=$ac_im_libdir; break fi done # Screen out bogus values from the imake configuration. They are # bogus both because they are the default anyway, and because # using them would break gcc on systems where it needs fixed includes. case $ac_im_incroot in /usr/include) ac_x_includes= ;; *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes=$ac_im_incroot;; esac case $ac_im_usrlibdir in /usr/lib | /usr/lib64 | /lib | /lib64) ;; *) test -d "$ac_im_usrlibdir" && ac_x_libraries=$ac_im_usrlibdir ;; esac fi cd .. rm -f -r conftest.dir fi # Standard set of common directories for X headers. # Check X11 before X11Rn because it is often a symlink to the current release. ac_x_header_dirs=' /usr/X11/include /usr/X11R7/include /usr/X11R6/include /usr/X11R5/include /usr/X11R4/include /usr/include/X11 /usr/include/X11R7 /usr/include/X11R6 /usr/include/X11R5 /usr/include/X11R4 /usr/local/X11/include /usr/local/X11R7/include /usr/local/X11R6/include /usr/local/X11R5/include /usr/local/X11R4/include /usr/local/include/X11 /usr/local/include/X11R7 /usr/local/include/X11R6 /usr/local/include/X11R5 /usr/local/include/X11R4 /usr/X386/include /usr/x386/include /usr/XFree86/include/X11 /usr/include /usr/local/include /usr/unsupported/include /usr/athena/include /usr/local/x11r5/include /usr/lpp/Xamples/include /usr/openwin/include /usr/openwin/share/include' if test "$ac_x_includes" = no; then # Guess where to find include files, by looking for Xlib.h. # First, try using that file with no special directory specified. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # We can compile using X headers with no special include directory. ac_x_includes= else for ac_dir in $ac_x_header_dirs; do if test -r "$ac_dir/X11/Xlib.h"; then ac_x_includes=$ac_dir break fi done fi rm -f conftest.err conftest.i conftest.$ac_ext fi # $ac_x_includes = no if test "$ac_x_libraries" = no; then # Check for the libraries. # See if we find them without any special options. # Don't add to $LIBS permanently. ac_save_LIBS=$LIBS LIBS="-lX11 $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { XrmInitialize () ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : LIBS=$ac_save_LIBS # We can link X programs with no special library path. ac_x_libraries= else LIBS=$ac_save_LIBS for ac_dir in `$as_echo "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g` do # Don't even attempt the hair of trying to link an X program! for ac_extension in a so sl dylib la dll; do if test -r "$ac_dir/libX11.$ac_extension"; then ac_x_libraries=$ac_dir break 2 fi done done fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi # $ac_x_libraries = no case $ac_x_includes,$ac_x_libraries in #( no,* | *,no | *\'*) # Didn't find X, or a directory has "'" in its name. ac_cv_have_x="have_x=no";; #( *) # Record where we found X for the cache. ac_cv_have_x="have_x=yes\ ac_x_includes='$ac_x_includes'\ ac_x_libraries='$ac_x_libraries'" esac fi ;; #( *) have_x=yes;; esac eval "$ac_cv_have_x" fi # $with_x != no if test "$have_x" != yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_x" >&5 $as_echo "$have_x" >&6; } no_x=yes else # If each of the values was on the command line, it overrides each guess. test "x$x_includes" = xNONE && x_includes=$ac_x_includes test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries # Update the cache value to reflect the command line values. ac_cv_have_x="have_x=yes\ ac_x_includes='$x_includes'\ ac_x_libraries='$x_libraries'" { $as_echo "$as_me:${as_lineno-$LINENO}: result: libraries $x_libraries, headers $x_includes" >&5 $as_echo "libraries $x_libraries, headers $x_includes" >&6; } fi if test "$no_x" = yes; then # Not all programs may use this symbol, but it does not hurt to define it. $as_echo "#define X_DISPLAY_MISSING 1" >>confdefs.h X_CFLAGS= X_PRE_LIBS= X_LIBS= X_EXTRA_LIBS= else if test -n "$x_includes"; then X_CFLAGS="$X_CFLAGS -I$x_includes" fi # It would also be nice to do this for all -L options, not just this one. if test -n "$x_libraries"; then X_LIBS="$X_LIBS -L$x_libraries" # For Solaris; some versions of Sun CC require a space after -R and # others require no space. Words are not sufficient . . . . { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -R must be followed by a space" >&5 $as_echo_n "checking whether -R must be followed by a space... " >&6; } ac_xsave_LIBS=$LIBS; LIBS="$LIBS -R$x_libraries" ac_xsave_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } X_LIBS="$X_LIBS -R$x_libraries" else LIBS="$ac_xsave_LIBS -R $x_libraries" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } X_LIBS="$X_LIBS -R $x_libraries" else { $as_echo "$as_me:${as_lineno-$LINENO}: result: neither works" >&5 $as_echo "neither works" >&6; } fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ac_c_werror_flag=$ac_xsave_c_werror_flag LIBS=$ac_xsave_LIBS fi # Check for system-dependent libraries X programs must link with. # Do this before checking for the system-independent R6 libraries # (-lICE), since we may need -lsocket or whatever for X linking. if test "$ISC" = yes; then X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl_s -linet" else # Martyn Johnson says this is needed for Ultrix, if the X # libraries were built with DECnet support. And Karl Berry says # the Alpha needs dnet_stub (dnet does not exist). ac_xsave_LIBS="$LIBS"; LIBS="$LIBS $X_LIBS -lX11" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char XOpenDisplay (); int main () { return XOpenDisplay (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet" >&5 $as_echo_n "checking for dnet_ntoa in -ldnet... " >&6; } if ${ac_cv_lib_dnet_dnet_ntoa+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldnet $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dnet_ntoa (); int main () { return dnet_ntoa (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dnet_dnet_ntoa=yes else ac_cv_lib_dnet_dnet_ntoa=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_dnet_ntoa" >&5 $as_echo "$ac_cv_lib_dnet_dnet_ntoa" >&6; } if test "x$ac_cv_lib_dnet_dnet_ntoa" = xyes; then : X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet" fi if test $ac_cv_lib_dnet_dnet_ntoa = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet_stub" >&5 $as_echo_n "checking for dnet_ntoa in -ldnet_stub... " >&6; } if ${ac_cv_lib_dnet_stub_dnet_ntoa+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldnet_stub $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dnet_ntoa (); int main () { return dnet_ntoa (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dnet_stub_dnet_ntoa=yes else ac_cv_lib_dnet_stub_dnet_ntoa=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5 $as_echo "$ac_cv_lib_dnet_stub_dnet_ntoa" >&6; } if test "x$ac_cv_lib_dnet_stub_dnet_ntoa" = xyes; then : X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub" fi fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$ac_xsave_LIBS" # msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT, # to get the SysV transport functions. # Chad R. Larson says the Pyramis MIS-ES running DC/OSx (SVR4) # needs -lnsl. # The nsl library prevents programs from opening the X display # on Irix 5.2, according to T.E. Dickey. # The functions gethostbyname, getservbyname, and inet_addr are # in -lbsd on LynxOS 3.0.1/i386, according to Lars Hecking. ac_fn_c_check_func "$LINENO" "gethostbyname" "ac_cv_func_gethostbyname" if test "x$ac_cv_func_gethostbyname" = xyes; then : fi if test $ac_cv_func_gethostbyname = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl" >&5 $as_echo_n "checking for gethostbyname in -lnsl... " >&6; } if ${ac_cv_lib_nsl_gethostbyname+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lnsl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char gethostbyname (); int main () { return gethostbyname (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_nsl_gethostbyname=yes else ac_cv_lib_nsl_gethostbyname=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_gethostbyname" >&5 $as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; } if test "x$ac_cv_lib_nsl_gethostbyname" = xyes; then : X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl" fi if test $ac_cv_lib_nsl_gethostbyname = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lbsd" >&5 $as_echo_n "checking for gethostbyname in -lbsd... " >&6; } if ${ac_cv_lib_bsd_gethostbyname+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lbsd $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char gethostbyname (); int main () { return gethostbyname (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_bsd_gethostbyname=yes else ac_cv_lib_bsd_gethostbyname=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bsd_gethostbyname" >&5 $as_echo "$ac_cv_lib_bsd_gethostbyname" >&6; } if test "x$ac_cv_lib_bsd_gethostbyname" = xyes; then : X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd" fi fi fi # lieder@skyler.mavd.honeywell.com says without -lsocket, # socket/setsockopt and other routines are undefined under SCO ODT # 2.0. But -lsocket is broken on IRIX 5.2 (and is not necessary # on later versions), says Simon Leinen: it contains gethostby* # variants that don't use the name server (or something). -lsocket # must be given before -lnsl if both are needed. We assume that # if connect needs -lnsl, so does gethostbyname. ac_fn_c_check_func "$LINENO" "connect" "ac_cv_func_connect" if test "x$ac_cv_func_connect" = xyes; then : fi if test $ac_cv_func_connect = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for connect in -lsocket" >&5 $as_echo_n "checking for connect in -lsocket... " >&6; } if ${ac_cv_lib_socket_connect+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsocket $X_EXTRA_LIBS $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char connect (); int main () { return connect (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_socket_connect=yes else ac_cv_lib_socket_connect=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_connect" >&5 $as_echo "$ac_cv_lib_socket_connect" >&6; } if test "x$ac_cv_lib_socket_connect" = xyes; then : X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS" fi fi # Guillermo Gomez says -lposix is necessary on A/UX. ac_fn_c_check_func "$LINENO" "remove" "ac_cv_func_remove" if test "x$ac_cv_func_remove" = xyes; then : fi if test $ac_cv_func_remove = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for remove in -lposix" >&5 $as_echo_n "checking for remove in -lposix... " >&6; } if ${ac_cv_lib_posix_remove+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lposix $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char remove (); int main () { return remove (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_posix_remove=yes else ac_cv_lib_posix_remove=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_posix_remove" >&5 $as_echo "$ac_cv_lib_posix_remove" >&6; } if test "x$ac_cv_lib_posix_remove" = xyes; then : X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix" fi fi # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. ac_fn_c_check_func "$LINENO" "shmat" "ac_cv_func_shmat" if test "x$ac_cv_func_shmat" = xyes; then : fi if test $ac_cv_func_shmat = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shmat in -lipc" >&5 $as_echo_n "checking for shmat in -lipc... " >&6; } if ${ac_cv_lib_ipc_shmat+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lipc $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char shmat (); int main () { return shmat (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_ipc_shmat=yes else ac_cv_lib_ipc_shmat=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ipc_shmat" >&5 $as_echo "$ac_cv_lib_ipc_shmat" >&6; } if test "x$ac_cv_lib_ipc_shmat" = xyes; then : X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc" fi fi fi # Check for libraries that X11R6 Xt/Xaw programs need. ac_save_LDFLAGS=$LDFLAGS test -n "$x_libraries" && LDFLAGS="$LDFLAGS -L$x_libraries" # SM needs ICE to (dynamically) link under SunOS 4.x (so we have to # check for ICE first), but we must link in the order -lSM -lICE or # we get undefined symbols. So assume we have SM if we have ICE. # These have to be linked with before -lX11, unlike the other # libraries we check for below, so use a different variable. # John Interrante, Karl Berry { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IceConnectionNumber in -lICE" >&5 $as_echo_n "checking for IceConnectionNumber in -lICE... " >&6; } if ${ac_cv_lib_ICE_IceConnectionNumber+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lICE $X_EXTRA_LIBS $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char IceConnectionNumber (); int main () { return IceConnectionNumber (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_ICE_IceConnectionNumber=yes else ac_cv_lib_ICE_IceConnectionNumber=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5 $as_echo "$ac_cv_lib_ICE_IceConnectionNumber" >&6; } if test "x$ac_cv_lib_ICE_IceConnectionNumber" = xyes; then : X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE" fi LDFLAGS=$ac_save_LDFLAGS fi # Add -lX11 to X_LIBS if test "$have_x" = "yes"; then X_LIBS="$X_LIBS -lX11" fi ########################################################### ## Definiation of compile args. ## ########################################################### # Check whether --with-gtk2-im-module-dir was given. if test "${with_gtk2_im_module_dir+set}" = set; then : withval=$with_gtk2_im_module_dir; GTK2_IM_MODULEDIR=$with_gtk2_im_module_dir fi # Check whether --with-gtk2-im-module-dir was given. if test "${with_gtk2_im_module_dir+set}" = set; then : withval=$with_gtk2_im_module_dir; GTK2_IM_MODULEDIR=$with_gtk2_im_module_dir fi # Check whether --with-gtk3-im-module-dir was given. if test "${with_gtk3_im_module_dir+set}" = set; then : withval=$with_gtk3_im_module_dir; GTK3_IM_MODULEDIR=$with_gtk3_im_module_dir fi # Check whether --with-qt3-moc was given. if test "${with_qt3_moc+set}" = set; then : withval=$with_qt3_moc; QT3_MOC=$with_qt3_moc fi # Check whether --with-qt4-moc was given. if test "${with_qt4_moc+set}" = set; then : withval=$with_qt4_moc; QT4_MOC=$with_qt4_moc fi # Check whether --with-qt3-im-module-dir was given. if test "${with_qt3_im_module_dir+set}" = set; then : withval=$with_qt3_im_module_dir; QT3_IM_MODULEDIR=$with_qt3_im_module_dir fi # Check whether --with-qt4-im-module-dir was given. if test "${with_qt4_im_module_dir+set}" = set; then : withval=$with_qt4_im_module_dir; QT4_IM_MODULEDIR=$with_qt4_im_module_dir fi # Check whether --with-clutter-im-module-dir was given. if test "${with_clutter_im_module_dir+set}" = set; then : withval=$with_clutter_im_module_dir; CLUTTER_IM_MODULEDIR=$with_clutter_im_module_dir fi # Check whether --with-gtk-version was given. if test "${with_gtk_version+set}" = set; then : withval=$with_gtk_version; WANT_GTK_VERSION=$withval else WANT_GTK_VERSION=3 fi # Check whether --enable-ld-version-script was given. if test "${enable_ld_version_script+set}" = set; then : enableval=$enable_ld_version_script; else enable_ld_version_script=no fi # Check whether --enable-ltdladvise was given. if test "${enable_ltdladvise+set}" = set; then : enableval=$enable_ltdladvise; else enable_ltdladvise=no fi # Check whether --enable-debug was given. if test "${enable_debug+set}" = set; then : enableval=$enable_debug; else enable_debug=no fi # Check whether --enable-tests was given. if test "${enable_tests+set}" = set; then : enableval=$enable_tests; else enable_tests=no fi # Check whether --enable-documents was given. if test "${enable_documents+set}" = set; then : enableval=$enable_documents; else enable_documents=no fi # Check whether --enable-hash-map was given. if test "${enable_hash_map+set}" = set; then : enableval=$enable_hash_map; else enable_hash_map=no fi # Check whether --enable-config-simple was given. if test "${enable_config_simple+set}" = set; then : enableval=$enable_config_simple; else enable_config_simple=yes fi # Check whether --enable-config-socket was given. if test "${enable_config_socket+set}" = set; then : enableval=$enable_config_socket; else enable_config_socket=yes fi # Check whether --enable-frontend-x11 was given. if test "${enable_frontend_x11+set}" = set; then : enableval=$enable_frontend_x11; else enable_frontend_x11=yes fi # Check whether --enable-frontend-socket was given. if test "${enable_frontend_socket+set}" = set; then : enableval=$enable_frontend_socket; else enable_frontend_socket=yes fi # Check whether --enable-im-rawcode was given. if test "${enable_im_rawcode+set}" = set; then : enableval=$enable_im_rawcode; else enable_im_rawcode=yes fi # Check whether --enable-im-socket was given. if test "${enable_im_socket+set}" = set; then : enableval=$enable_im_socket; else enable_im_socket=yes fi # Check whether --enable-filter-sctc was given. if test "${enable_filter_sctc+set}" = set; then : enableval=$enable_filter_sctc; else enable_filter_sctc=yes fi # Check whether --enable-orig-gtk2-immodule was given. if test "${enable_orig_gtk2_immodule+set}" = set; then : enableval=$enable_orig_gtk2_immodule; else enable_orig_gtk2_immodule=no fi # Check whether --enable-orig-gtk3-immodule was given. if test "${enable_orig_gtk3_immodule+set}" = set; then : enableval=$enable_orig_gtk3_immodule; else enable_orig_gtk3_immodule=no fi # Check whether --enable-agent was given. if test "${enable_agent+set}" = set; then : enableval=$enable_agent; else enable_im_agent=yes fi # Check whether --enable-gtk2-immodule was given. if test "${enable_gtk2_immodule+set}" = set; then : enableval=$enable_gtk2_immodule; else enable_gtk2_immodule=yes fi # Check whether --enable-gtk3-immodule was given. if test "${enable_gtk3_immodule+set}" = set; then : enableval=$enable_gtk3_immodule; else enable_gtk3_immodule=yes fi # Check whether --enable-qt3-immodule was given. if test "${enable_qt3_immodule+set}" = set; then : enableval=$enable_qt3_immodule; else enable_qt3_immodule=yes fi # Check whether --enable-qt4-immodule was given. if test "${enable_qt4_immodule+set}" = set; then : enableval=$enable_qt4_immodule; else enable_qt4_immodule=yes fi # Check whether --enable-clutter-immodule was given. if test "${enable_clutter_immodule+set}" = set; then : enableval=$enable_clutter_immodule; else enable_clutter_immodule=yes fi # Check whether --enable-panel-gtk was given. if test "${enable_panel_gtk+set}" = set; then : enableval=$enable_panel_gtk; else enable_panel_gtk=check fi # Check whether --enable-setup-ui was given. if test "${enable_setup_ui+set}" = set; then : enableval=$enable_setup_ui; else enable_setup_ui=yes fi if test "$have_x" = "yes"; then SCIM_BUILD_X11_UTILS=1 enable_x11_utils=yes else SCIM_BUILD_X11_UTILS=0 enable_x11_utils=no fi if test "$enable_hash_map" = "yes"; then $as_echo "#define ENABLE_HASH_MAP 1" >>confdefs.h fi if test "$enable_debug" = "yes"; then $as_echo "#define ENABLE_DEBUG 1" >>confdefs.h CFLAGS="$CFLAGS -g" CXXFLAGS="$CXXFLAGS -g" else enable_debug=no fi if test "$enable_tests" = "yes"; then SCIM_BUILD_TESTS=1 else SCIM_BUILD_TESTS=0 enable_tests=no fi if test "$enable_documents" = "yes"; then SCIM_DOCUMENTS=1 else SCIM_DOCUMENTS=0 enable_documents=no fi if test "$enable_ltdladvise" = "yes"; then SCIM_LTDLADVISE=1 else SCIM_LTDLADVISE=0 fi if test "$enable_config_simple" = "yes"; then SCIM_BUILD_CONFIG_SIMPLE=1 else SCIM_BUILD_CONFIG_SIMPLE=0 enable_config_simple=no fi if test "$enable_config_socket" = "yes" -a "$socket_ok" = "yes"; then SCIM_BUILD_CONFIG_SOCKET=1 else SCIM_BUILD_CONFIG_SOCKET=0 enable_config_socket=no fi if test "$enable_frontend_x11" = "yes" -a "$have_x" = "yes"; then SCIM_BUILD_FRONTEND_X11=1 else SCIM_BUILD_FRONTEND_X11=0 enable_frontend_x11=no fi if test "$enable_frontend_socket" = "yes" -a "$socket_ok" = "yes"; then SCIM_BUILD_FRONTEND_SOCKET=1 else SCIM_BUILD_FRONTEND_SOCKET=0 enable_frontend_socket=no fi if test "$enable_im_rawcode" = "yes"; then SCIM_BUILD_IMENGINE_RAWCODE=1 else SCIM_BUILD_IMENGINE_RAWCODE=0 enable_im_rawcode=no fi if test "$enable_im_socket" = "yes" -a "$socket_ok" = "yes"; then SCIM_BUILD_IMENGINE_SOCKET=1 else SCIM_BUILD_IMENGINE_SOCKET=0 enable_im_socket=no fi if test "$enable_filter_sctc" = "yes"; then SCIM_BUILD_FILTER_SCTC=1 else SCIM_BUILD_FILTER_SCTC=0 enable_filter_sctc=no fi if test "$enable_orig_gtk2_immodule" = "yes" -a "$SCIM_HAS_GTK2" = "yes"; then SCIM_BUILD_ORIG_GTK2_IMMODULE=1 else SCIM_BUILD_ORIG_GTK2_IMMODULE=0 enable_orig_gtk2_immodule=no fi if test "$enable_orig_gtk3_immodule" = "yes" -a "$SCIM_HAS_GTK3" = "yes"; then SCIM_BUILD_ORIG_GTK3_IMMODULE=1 else SCIM_BUILD_ORIG_GTK3_IMMODULE=0 enable_orig_gtk3_immodule=no fi if test "$enable_gtk3_immodule" = "yes" -a "$SCIM_HAS_GTK3" = "yes"; then SCIM_BUILD_GTK3_IMMODULE=1 SCIM_BUILD_IMMODULE=1 enable_immodule=yes else SCIM_BUILD_GTK3_IMMODULE=0 enable_gtk3_immodule=no fi if test "$enable_im_agent" = "yes"; then SCIM_BUILD_IM_AGENT=1 else SCIM_BUILD_IM_AGENT=0 enable_im_agent=no fi SCIM_BUILD_IMMODULE=0 enable_immodule=no if test "$enable_gtk2_immodule" = "yes" -a "$SCIM_HAS_GTK2" = "yes"; then SCIM_BUILD_GTK2_IMMODULE=1 SCIM_BUILD_IMMODULE=1 enable_immodule=yes SCIM_BUILD_IM_AGENT=1 enable_im_agent=yes else SCIM_BUILD_GTK2_IMMODULE=0 enable_gtk2_immodule=no fi if test "$enable_gtk3_immodule" = "yes" -a "$SCIM_HAS_GTK3" = "yes"; then SCIM_BUILD_GTK3_IMMODULE=1 SCIM_BUILD_IMMODULE=1 enable_immodule=yes SCIM_BUILD_IM_AGENT=1 enable_im_agent=yes else SCIM_BUILD_GTK3_IMMODULE=0 enable_gtk3_immodule=no fi if test "$enable_qt3_immodule" = "yes" -a "$SCIM_HAS_QT3" = "yes"; then SCIM_BUILD_QT3_IMMODULE=1 SCIM_BUILD_IMMODULE=1 enable_immodule=yes SCIM_BUILD_IM_AGENT=1 enable_im_agent=yes else SCIM_BUILD_QT3_IMMODULE=0 enable_qt3_immodule=no fi if test "$enable_qt4_immodule" = "yes" -a "$SCIM_HAS_QT4" = "yes"; then SCIM_BUILD_QT4_IMMODULE=1 SCIM_BUILD_IMMODULE=1 enable_immodule=yes SCIM_BUILD_IM_AGENT=1 enable_im_agent=yes else SCIM_BUILD_QT4_IMMODULE=0 enable_qt4_immodule=no fi if test "$enable_clutter_immodule" = "yes" -a "$SCIM_HAS_CLUTTER" = "yes"; then SCIM_BUILD_CLUTTER_IMMODULE=1 SCIM_BUILD_IMMODULE=1 enable_immodule=yes SCIM_BUILD_IM_AGENT=1 enable_im_agent=yes else SCIM_BUILD_CLUTTER_IMMODULE=0 enable_clutter_immodule=no fi if test "$SCIM_HAS_GTK3" = "yes" -a "$SCIM_HAS_GTK2" = "yes"; then if test "$WANT_GTK_VERSION" = "2"; then USE_GTK_VERSION="2" else USE_GTK_VERSION="3" fi elif test "$SCIM_HAS_GTK3" = "yes"; then USE_GTK_VERSION="3" elif test "$SCIM_HAS_GTK2" = "yes"; then USE_GTK_VERSION="2" fi if test "$USE_GTK_VERSION" = "3"; then SCIM_HAS_GTK=yes GTK_LIBDIR=$GTK3_LIBDIR GTK_VERSION=$GTK3_VERSION GTK_MAJOR_VERSION=3 GTK_BINARY_VERSION=$GTK3_BINARY_VERSION GTK_CFLAGS=$GTK3_CFLAGS GTK_LIBS=$GTK3_LIBS elif test "$USE_GTK_VERSION" = "2"; then SCIM_HAS_GTK=yes GTK_LIBDIR=$GTK2_LIBDIR GTK_VERSION=$GTK2_VERSION GTK_MAJOR_VERSION=2 GTK_BINARY_VERSION=$GTK2_BINARY_VERSION GTK_CFLAGS=$GTK2_CFLAGS GTK_LIBS=$GTK2_LIBS else SCIM_HAS_GTK=no fi if test "$enable_setup_ui" = "yes" -a "$SCIM_HAS_GTK" = "yes"; then SCIM_BUILD_SCIM_SETUP=1 $as_echo "#define HAVE_SCIM_SETUP 1" >>confdefs.h else SCIM_BUILD_SCIM_SETUP=0 enable_setup_ui=no fi if test "$SCIM_HAS_GTK" = "yes"; then enable_gtk_utils=yes SCIM_BUILD_GTK_UTILS=1 else enable_gtk_utils=no SCIM_BUILD_GTK_UTILS=0 fi enable_tray_icon=no if test \( "$SCIM_HAS_GTK3"="yes" -o "$SCIM_HAS_GTK2_2" = "yes" \) -a "$no_x" != "yes"; then enable_tray_icon=yes $as_echo "#define ENABLE_TRAY_ICON 1" >>confdefs.h fi SCIM_BUILD_PANEL_GTK=0 if test "$enable_panel_gtk" != "no"; then enable_panel_gtk=no if test "$SCIM_HAS_GTHREAD2" = "yes" -a "$SCIM_HAS_GTK" = "yes"; then SCIM_BUILD_PANEL_GTK=1 enable_panel_gtk=yes fi fi #if nothing needs libscim-gtkutils, just disable it if test "$enable_panel_gtk" != "yes" -a "$enable_setup_ui" != "yes"; then enable_gtk_utils=no SCIM_BUILD_GTK_UTILS=0 fi if test "$enable_ld_version_script" = "yes"; then SCIM_LD_VERSION_SCRIPT_TRUE= SCIM_LD_VERSION_SCRIPT_FALSE='#' else SCIM_LD_VERSION_SCRIPT_TRUE='#' SCIM_LD_VERSION_SCRIPT_FALSE= fi if test "$enable_ltdladvise" = "yes"; then SCIM_LTDLADVISE_TRUE= SCIM_LTDLADVISE_FALSE='#' else SCIM_LTDLADVISE_TRUE='#' SCIM_LTDLADVISE_FALSE= fi if test "$enable_tests" = "yes"; then SCIM_BUILD_TESTS_TRUE= SCIM_BUILD_TESTS_FALSE='#' else SCIM_BUILD_TESTS_TRUE='#' SCIM_BUILD_TESTS_FALSE= fi if test "$enable_documents" = "yes"; then SCIM_BUILD_DOCUMENTS_TRUE= SCIM_BUILD_DOCUMENTS_FALSE='#' else SCIM_BUILD_DOCUMENTS_TRUE='#' SCIM_BUILD_DOCUMENTS_FALSE= fi if test "$enable_config_simple" = "yes"; then SCIM_BUILD_CONFIG_SIMPLE_TRUE= SCIM_BUILD_CONFIG_SIMPLE_FALSE='#' else SCIM_BUILD_CONFIG_SIMPLE_TRUE='#' SCIM_BUILD_CONFIG_SIMPLE_FALSE= fi if test "$enable_config_socket" = "yes"; then SCIM_BUILD_CONFIG_SOCKET_TRUE= SCIM_BUILD_CONFIG_SOCKET_FALSE='#' else SCIM_BUILD_CONFIG_SOCKET_TRUE='#' SCIM_BUILD_CONFIG_SOCKET_FALSE= fi if test "$enable_frontend_x11" = "yes"; then SCIM_BUILD_FRONTEND_X11_TRUE= SCIM_BUILD_FRONTEND_X11_FALSE='#' else SCIM_BUILD_FRONTEND_X11_TRUE='#' SCIM_BUILD_FRONTEND_X11_FALSE= fi if test "$enable_frontend_socket" = "yes"; then SCIM_BUILD_FRONTEND_SOCKET_TRUE= SCIM_BUILD_FRONTEND_SOCKET_FALSE='#' else SCIM_BUILD_FRONTEND_SOCKET_TRUE='#' SCIM_BUILD_FRONTEND_SOCKET_FALSE= fi if test "$enable_im_socket" = "yes"; then SCIM_BUILD_IMENGINE_SOCKET_TRUE= SCIM_BUILD_IMENGINE_SOCKET_FALSE='#' else SCIM_BUILD_IMENGINE_SOCKET_TRUE='#' SCIM_BUILD_IMENGINE_SOCKET_FALSE= fi if test "$enable_im_rawcode" = "yes"; then SCIM_BUILD_IMENGINE_RAWCODE_TRUE= SCIM_BUILD_IMENGINE_RAWCODE_FALSE='#' else SCIM_BUILD_IMENGINE_RAWCODE_TRUE='#' SCIM_BUILD_IMENGINE_RAWCODE_FALSE= fi if test "$enable_orig_gtk2_immodule" = "yes"; then SCIM_BUILD_ORIG_GTK2_IMMODULE_TRUE= SCIM_BUILD_ORIG_GTK2_IMMODULE_FALSE='#' else SCIM_BUILD_ORIG_GTK2_IMMODULE_TRUE='#' SCIM_BUILD_ORIG_GTK2_IMMODULE_FALSE= fi if test "$enable_orig_gtk3_immodule" = "yes"; then SCIM_BUILD_ORIG_GTK3_IMMODULE_TRUE= SCIM_BUILD_ORIG_GTK3_IMMODULE_FALSE='#' else SCIM_BUILD_ORIG_GTK3_IMMODULE_TRUE='#' SCIM_BUILD_ORIG_GTK3_IMMODULE_FALSE= fi if test "$enable_im_agent" = "yes"; then SCIM_BUILD_IM_AGENT_TRUE= SCIM_BUILD_IM_AGENT_FALSE='#' else SCIM_BUILD_IM_AGENT_TRUE='#' SCIM_BUILD_IM_AGENT_FALSE= fi if test "$enable_gtk2_immodule" = "yes"; then SCIM_BUILD_GTK2_IMMODULE_TRUE= SCIM_BUILD_GTK2_IMMODULE_FALSE='#' else SCIM_BUILD_GTK2_IMMODULE_TRUE='#' SCIM_BUILD_GTK2_IMMODULE_FALSE= fi if test "$enable_gtk3_immodule" = "yes"; then SCIM_BUILD_GTK3_IMMODULE_TRUE= SCIM_BUILD_GTK3_IMMODULE_FALSE='#' else SCIM_BUILD_GTK3_IMMODULE_TRUE='#' SCIM_BUILD_GTK3_IMMODULE_FALSE= fi if test "$enable_qt3_immodule" = "yes"; then SCIM_BUILD_QT3_IMMODULE_TRUE= SCIM_BUILD_QT3_IMMODULE_FALSE='#' else SCIM_BUILD_QT3_IMMODULE_TRUE='#' SCIM_BUILD_QT3_IMMODULE_FALSE= fi if test "$enable_qt4_immodule" = "yes"; then SCIM_BUILD_QT4_IMMODULE_TRUE= SCIM_BUILD_QT4_IMMODULE_FALSE='#' else SCIM_BUILD_QT4_IMMODULE_TRUE='#' SCIM_BUILD_QT4_IMMODULE_FALSE= fi if test "$enable_clutter_immodule" = "yes"; then SCIM_BUILD_CLUTTER_IMMODULE_TRUE= SCIM_BUILD_CLUTTER_IMMODULE_FALSE='#' else SCIM_BUILD_CLUTTER_IMMODULE_TRUE='#' SCIM_BUILD_CLUTTER_IMMODULE_FALSE= fi if test "$enable_immodule" = "yes"; then SCIM_BUILD_IMMODULE_TRUE= SCIM_BUILD_IMMODULE_FALSE='#' else SCIM_BUILD_IMMODULE_TRUE='#' SCIM_BUILD_IMMODULE_FALSE= fi if test "$enable_filter_sctc" = "yes"; then SCIM_BUILD_FILTER_SCTC_TRUE= SCIM_BUILD_FILTER_SCTC_FALSE='#' else SCIM_BUILD_FILTER_SCTC_TRUE='#' SCIM_BUILD_FILTER_SCTC_FALSE= fi if test "$enable_setup_ui" = "yes"; then SCIM_BUILD_SCIM_SETUP_TRUE= SCIM_BUILD_SCIM_SETUP_FALSE='#' else SCIM_BUILD_SCIM_SETUP_TRUE='#' SCIM_BUILD_SCIM_SETUP_FALSE= fi if test "$enable_gtk_utils" = "yes"; then SCIM_BUILD_GTK_UTILS_TRUE= SCIM_BUILD_GTK_UTILS_FALSE='#' else SCIM_BUILD_GTK_UTILS_TRUE='#' SCIM_BUILD_GTK_UTILS_FALSE= fi if test "$enable_x11_utils" = "yes"; then SCIM_BUILD_X11_UTILS_TRUE= SCIM_BUILD_X11_UTILS_FALSE='#' else SCIM_BUILD_X11_UTILS_TRUE='#' SCIM_BUILD_X11_UTILS_FALSE= fi if test "$enable_tray_icon" = "yes"; then SCIM_BUILD_TRAY_ICON_TRUE= SCIM_BUILD_TRAY_ICON_FALSE='#' else SCIM_BUILD_TRAY_ICON_TRUE='#' SCIM_BUILD_TRAY_ICON_FALSE= fi if test "$enable_panel_gtk" = "yes"; then SCIM_BUILD_PANEL_GTK_TRUE= SCIM_BUILD_PANEL_GTK_FALSE='#' else SCIM_BUILD_PANEL_GTK_TRUE='#' SCIM_BUILD_PANEL_GTK_FALSE= fi # Output All necessary Paths. SCIM_DATADIR="$datadir/scim" SCIM_SYSCONFDIR="$sysconfdir" SCIM_ICONDIR="$datadir/scim/icons" SCIM_MODULE_PATH="$libdir/scim$SCIM_EPOCH" SCIM_LIBEXECDIR="$libdir/scim$SCIM_EPOCH" SCIM_LOCALEDIR="$datadir/locale" SCIM_TEMPDIR="/tmp" SCIM_PREFIX="$prefix" SCIM_LIBDIR="$libdir" ########################################################### ## Output files. ## ########################################################### ac_config_files="$ac_config_files Makefile po/Makefile.in src/Makefile src/scim_types.h utils/Makefile data/Makefile data/icons/Makefile data/pixmaps/Makefile modules/Makefile modules/FrontEnd/IMdkit/Makefile modules/FrontEnd/Makefile modules/IMEngine/Makefile modules/Filter/Makefile modules/Config/Makefile modules/SetupUI/Makefile docs/scim.cfg docs/Makefile docs/manual/Makefile configs/Makefile extras/Makefile extras/gtk_immodule/gtk2/Makefile extras/gtk_immodule/gtk3/Makefile extras/setup/Makefile extras/setup/scim-setup extras/panel/Makefile extras/immodules/Makefile extras/immodules/common/Makefile extras/immodules/agent/Makefile extras/immodules/client-common/Makefile extras/immodules/client-gtk/gtk2/Makefile extras/immodules/client-gtk/gtk3/Makefile extras/immodules/client-qt/qt3/Makefile extras/immodules/client-qt/qt4/Makefile extras/immodules/client-clutter/Makefile extras/immodules/doc/Makefile tests/Makefile scim.pc scim-gtkutils.pc scim-x11utils.pc scim.spec" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' else am__EXEEXT_TRUE='#' am__EXEEXT_FALSE= fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then as_fn_error $? "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${INSTALL_LTDL_TRUE}" && test -z "${INSTALL_LTDL_FALSE}"; then as_fn_error $? "conditional \"INSTALL_LTDL\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${CONVENIENCE_LTDL_TRUE}" && test -z "${CONVENIENCE_LTDL_FALSE}"; then as_fn_error $? "conditional \"CONVENIENCE_LTDL\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi LT_CONFIG_H=config.h _ltdl_libobjs= _ltdl_ltlibobjs= if test -n "$_LT_LIBOBJS"; then # Remove the extension. _lt_sed_drop_objext='s/\.o$//;s/\.obj$//' for i in `for i in $_LT_LIBOBJS; do echo "$i"; done | sed "$_lt_sed_drop_objext" | sort -u`; do _ltdl_libobjs="$_ltdl_libobjs $lt_libobj_prefix$i.$ac_objext" _ltdl_ltlibobjs="$_ltdl_ltlibobjs $lt_libobj_prefix$i.lo" done fi ltdl_LIBOBJS=$_ltdl_libobjs ltdl_LTLIBOBJS=$_ltdl_ltlibobjs if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_DOXYGEN_TRUE}" && test -z "${HAVE_DOXYGEN_FALSE}"; then as_fn_error $? "conditional \"HAVE_DOXYGEN\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_XSLTPROC_TRUE}" && test -z "${HAVE_XSLTPROC_FALSE}"; then as_fn_error $? "conditional \"HAVE_XSLTPROC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_DOCBOOK_TRUE}" && test -z "${HAVE_DOCBOOK_FALSE}"; then as_fn_error $? "conditional \"HAVE_DOCBOOK\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${BUILD_MANUAL_TRUE}" && test -z "${BUILD_MANUAL_FALSE}"; then as_fn_error $? "conditional \"BUILD_MANUAL\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi ac_config_commands="$ac_config_commands po/stamp-it" if test -z "${SCIM_LD_VERSION_SCRIPT_TRUE}" && test -z "${SCIM_LD_VERSION_SCRIPT_FALSE}"; then as_fn_error $? "conditional \"SCIM_LD_VERSION_SCRIPT\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${SCIM_LTDLADVISE_TRUE}" && test -z "${SCIM_LTDLADVISE_FALSE}"; then as_fn_error $? "conditional \"SCIM_LTDLADVISE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${SCIM_BUILD_TESTS_TRUE}" && test -z "${SCIM_BUILD_TESTS_FALSE}"; then as_fn_error $? "conditional \"SCIM_BUILD_TESTS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${SCIM_BUILD_DOCUMENTS_TRUE}" && test -z "${SCIM_BUILD_DOCUMENTS_FALSE}"; then as_fn_error $? "conditional \"SCIM_BUILD_DOCUMENTS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${SCIM_BUILD_CONFIG_SIMPLE_TRUE}" && test -z "${SCIM_BUILD_CONFIG_SIMPLE_FALSE}"; then as_fn_error $? "conditional \"SCIM_BUILD_CONFIG_SIMPLE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${SCIM_BUILD_CONFIG_SOCKET_TRUE}" && test -z "${SCIM_BUILD_CONFIG_SOCKET_FALSE}"; then as_fn_error $? "conditional \"SCIM_BUILD_CONFIG_SOCKET\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${SCIM_BUILD_FRONTEND_X11_TRUE}" && test -z "${SCIM_BUILD_FRONTEND_X11_FALSE}"; then as_fn_error $? "conditional \"SCIM_BUILD_FRONTEND_X11\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${SCIM_BUILD_FRONTEND_SOCKET_TRUE}" && test -z "${SCIM_BUILD_FRONTEND_SOCKET_FALSE}"; then as_fn_error $? "conditional \"SCIM_BUILD_FRONTEND_SOCKET\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${SCIM_BUILD_IMENGINE_SOCKET_TRUE}" && test -z "${SCIM_BUILD_IMENGINE_SOCKET_FALSE}"; then as_fn_error $? "conditional \"SCIM_BUILD_IMENGINE_SOCKET\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${SCIM_BUILD_IMENGINE_RAWCODE_TRUE}" && test -z "${SCIM_BUILD_IMENGINE_RAWCODE_FALSE}"; then as_fn_error $? "conditional \"SCIM_BUILD_IMENGINE_RAWCODE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${SCIM_BUILD_ORIG_GTK2_IMMODULE_TRUE}" && test -z "${SCIM_BUILD_ORIG_GTK2_IMMODULE_FALSE}"; then as_fn_error $? "conditional \"SCIM_BUILD_ORIG_GTK2_IMMODULE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${SCIM_BUILD_ORIG_GTK3_IMMODULE_TRUE}" && test -z "${SCIM_BUILD_ORIG_GTK3_IMMODULE_FALSE}"; then as_fn_error $? "conditional \"SCIM_BUILD_ORIG_GTK3_IMMODULE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${SCIM_BUILD_IM_AGENT_TRUE}" && test -z "${SCIM_BUILD_IM_AGENT_FALSE}"; then as_fn_error $? "conditional \"SCIM_BUILD_IM_AGENT\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${SCIM_BUILD_GTK2_IMMODULE_TRUE}" && test -z "${SCIM_BUILD_GTK2_IMMODULE_FALSE}"; then as_fn_error $? "conditional \"SCIM_BUILD_GTK2_IMMODULE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${SCIM_BUILD_GTK3_IMMODULE_TRUE}" && test -z "${SCIM_BUILD_GTK3_IMMODULE_FALSE}"; then as_fn_error $? "conditional \"SCIM_BUILD_GTK3_IMMODULE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${SCIM_BUILD_QT3_IMMODULE_TRUE}" && test -z "${SCIM_BUILD_QT3_IMMODULE_FALSE}"; then as_fn_error $? "conditional \"SCIM_BUILD_QT3_IMMODULE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${SCIM_BUILD_QT4_IMMODULE_TRUE}" && test -z "${SCIM_BUILD_QT4_IMMODULE_FALSE}"; then as_fn_error $? "conditional \"SCIM_BUILD_QT4_IMMODULE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${SCIM_BUILD_CLUTTER_IMMODULE_TRUE}" && test -z "${SCIM_BUILD_CLUTTER_IMMODULE_FALSE}"; then as_fn_error $? "conditional \"SCIM_BUILD_CLUTTER_IMMODULE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${SCIM_BUILD_IMMODULE_TRUE}" && test -z "${SCIM_BUILD_IMMODULE_FALSE}"; then as_fn_error $? "conditional \"SCIM_BUILD_IMMODULE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${SCIM_BUILD_FILTER_SCTC_TRUE}" && test -z "${SCIM_BUILD_FILTER_SCTC_FALSE}"; then as_fn_error $? "conditional \"SCIM_BUILD_FILTER_SCTC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${SCIM_BUILD_SCIM_SETUP_TRUE}" && test -z "${SCIM_BUILD_SCIM_SETUP_FALSE}"; then as_fn_error $? "conditional \"SCIM_BUILD_SCIM_SETUP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${SCIM_BUILD_GTK_UTILS_TRUE}" && test -z "${SCIM_BUILD_GTK_UTILS_FALSE}"; then as_fn_error $? "conditional \"SCIM_BUILD_GTK_UTILS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${SCIM_BUILD_X11_UTILS_TRUE}" && test -z "${SCIM_BUILD_X11_UTILS_FALSE}"; then as_fn_error $? "conditional \"SCIM_BUILD_X11_UTILS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${SCIM_BUILD_TRAY_ICON_TRUE}" && test -z "${SCIM_BUILD_TRAY_ICON_FALSE}"; then as_fn_error $? "conditional \"SCIM_BUILD_TRAY_ICON\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${SCIM_BUILD_PANEL_GTK_TRUE}" && test -z "${SCIM_BUILD_PANEL_GTK_FALSE}"; then as_fn_error $? "conditional \"SCIM_BUILD_PANEL_GTK\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in #( -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by scim $as_me 1.4.14, which was generated by GNU Autoconf 2.68. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac case $ac_config_headers in *" "*) set x $ac_config_headers; shift; ac_config_headers=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Configuration commands: $config_commands Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ scim config.status 1.4.14 configured by $0, generated by GNU Autoconf 2.68, with options \\"\$ac_cs_config\\" Copyright (C) 2010 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header as_fn_error $? "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' macro_version='`$ECHO "X$macro_version" | $Xsed -e "$delay_single_quote_subst"`' macro_revision='`$ECHO "X$macro_revision" | $Xsed -e "$delay_single_quote_subst"`' enable_shared='`$ECHO "X$enable_shared" | $Xsed -e "$delay_single_quote_subst"`' enable_static='`$ECHO "X$enable_static" | $Xsed -e "$delay_single_quote_subst"`' pic_mode='`$ECHO "X$pic_mode" | $Xsed -e "$delay_single_quote_subst"`' enable_fast_install='`$ECHO "X$enable_fast_install" | $Xsed -e "$delay_single_quote_subst"`' host_alias='`$ECHO "X$host_alias" | $Xsed -e "$delay_single_quote_subst"`' host='`$ECHO "X$host" | $Xsed -e "$delay_single_quote_subst"`' host_os='`$ECHO "X$host_os" | $Xsed -e "$delay_single_quote_subst"`' build_alias='`$ECHO "X$build_alias" | $Xsed -e "$delay_single_quote_subst"`' build='`$ECHO "X$build" | $Xsed -e "$delay_single_quote_subst"`' build_os='`$ECHO "X$build_os" | $Xsed -e "$delay_single_quote_subst"`' SED='`$ECHO "X$SED" | $Xsed -e "$delay_single_quote_subst"`' Xsed='`$ECHO "X$Xsed" | $Xsed -e "$delay_single_quote_subst"`' GREP='`$ECHO "X$GREP" | $Xsed -e "$delay_single_quote_subst"`' EGREP='`$ECHO "X$EGREP" | $Xsed -e "$delay_single_quote_subst"`' FGREP='`$ECHO "X$FGREP" | $Xsed -e "$delay_single_quote_subst"`' LD='`$ECHO "X$LD" | $Xsed -e "$delay_single_quote_subst"`' NM='`$ECHO "X$NM" | $Xsed -e "$delay_single_quote_subst"`' LN_S='`$ECHO "X$LN_S" | $Xsed -e "$delay_single_quote_subst"`' max_cmd_len='`$ECHO "X$max_cmd_len" | $Xsed -e "$delay_single_quote_subst"`' ac_objext='`$ECHO "X$ac_objext" | $Xsed -e "$delay_single_quote_subst"`' exeext='`$ECHO "X$exeext" | $Xsed -e "$delay_single_quote_subst"`' lt_unset='`$ECHO "X$lt_unset" | $Xsed -e "$delay_single_quote_subst"`' lt_SP2NL='`$ECHO "X$lt_SP2NL" | $Xsed -e "$delay_single_quote_subst"`' lt_NL2SP='`$ECHO "X$lt_NL2SP" | $Xsed -e "$delay_single_quote_subst"`' reload_flag='`$ECHO "X$reload_flag" | $Xsed -e "$delay_single_quote_subst"`' reload_cmds='`$ECHO "X$reload_cmds" | $Xsed -e "$delay_single_quote_subst"`' OBJDUMP='`$ECHO "X$OBJDUMP" | $Xsed -e "$delay_single_quote_subst"`' deplibs_check_method='`$ECHO "X$deplibs_check_method" | $Xsed -e "$delay_single_quote_subst"`' file_magic_cmd='`$ECHO "X$file_magic_cmd" | $Xsed -e "$delay_single_quote_subst"`' AR='`$ECHO "X$AR" | $Xsed -e "$delay_single_quote_subst"`' AR_FLAGS='`$ECHO "X$AR_FLAGS" | $Xsed -e "$delay_single_quote_subst"`' STRIP='`$ECHO "X$STRIP" | $Xsed -e "$delay_single_quote_subst"`' RANLIB='`$ECHO "X$RANLIB" | $Xsed -e "$delay_single_quote_subst"`' old_postinstall_cmds='`$ECHO "X$old_postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' old_postuninstall_cmds='`$ECHO "X$old_postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' old_archive_cmds='`$ECHO "X$old_archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' CC='`$ECHO "X$CC" | $Xsed -e "$delay_single_quote_subst"`' CFLAGS='`$ECHO "X$CFLAGS" | $Xsed -e "$delay_single_quote_subst"`' compiler='`$ECHO "X$compiler" | $Xsed -e "$delay_single_quote_subst"`' GCC='`$ECHO "X$GCC" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_pipe='`$ECHO "X$lt_cv_sys_global_symbol_pipe" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_cdecl='`$ECHO "X$lt_cv_sys_global_symbol_to_cdecl" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' objdir='`$ECHO "X$objdir" | $Xsed -e "$delay_single_quote_subst"`' SHELL='`$ECHO "X$SHELL" | $Xsed -e "$delay_single_quote_subst"`' ECHO='`$ECHO "X$ECHO" | $Xsed -e "$delay_single_quote_subst"`' MAGIC_CMD='`$ECHO "X$MAGIC_CMD" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag='`$ECHO "X$lt_prog_compiler_no_builtin_flag" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_wl='`$ECHO "X$lt_prog_compiler_wl" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_pic='`$ECHO "X$lt_prog_compiler_pic" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_static='`$ECHO "X$lt_prog_compiler_static" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o='`$ECHO "X$lt_cv_prog_compiler_c_o" | $Xsed -e "$delay_single_quote_subst"`' need_locks='`$ECHO "X$need_locks" | $Xsed -e "$delay_single_quote_subst"`' DSYMUTIL='`$ECHO "X$DSYMUTIL" | $Xsed -e "$delay_single_quote_subst"`' NMEDIT='`$ECHO "X$NMEDIT" | $Xsed -e "$delay_single_quote_subst"`' LIPO='`$ECHO "X$LIPO" | $Xsed -e "$delay_single_quote_subst"`' OTOOL='`$ECHO "X$OTOOL" | $Xsed -e "$delay_single_quote_subst"`' OTOOL64='`$ECHO "X$OTOOL64" | $Xsed -e "$delay_single_quote_subst"`' libext='`$ECHO "X$libext" | $Xsed -e "$delay_single_quote_subst"`' shrext_cmds='`$ECHO "X$shrext_cmds" | $Xsed -e "$delay_single_quote_subst"`' extract_expsyms_cmds='`$ECHO "X$extract_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' archive_cmds_need_lc='`$ECHO "X$archive_cmds_need_lc" | $Xsed -e "$delay_single_quote_subst"`' enable_shared_with_static_runtimes='`$ECHO "X$enable_shared_with_static_runtimes" | $Xsed -e "$delay_single_quote_subst"`' export_dynamic_flag_spec='`$ECHO "X$export_dynamic_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' whole_archive_flag_spec='`$ECHO "X$whole_archive_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' compiler_needs_object='`$ECHO "X$compiler_needs_object" | $Xsed -e "$delay_single_quote_subst"`' old_archive_from_new_cmds='`$ECHO "X$old_archive_from_new_cmds" | $Xsed -e "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds='`$ECHO "X$old_archive_from_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' archive_cmds='`$ECHO "X$archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' archive_expsym_cmds='`$ECHO "X$archive_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' module_cmds='`$ECHO "X$module_cmds" | $Xsed -e "$delay_single_quote_subst"`' module_expsym_cmds='`$ECHO "X$module_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' with_gnu_ld='`$ECHO "X$with_gnu_ld" | $Xsed -e "$delay_single_quote_subst"`' allow_undefined_flag='`$ECHO "X$allow_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' no_undefined_flag='`$ECHO "X$no_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_flag_spec='`$ECHO "X$hardcode_libdir_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_flag_spec_ld='`$ECHO "X$hardcode_libdir_flag_spec_ld" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_separator='`$ECHO "X$hardcode_libdir_separator" | $Xsed -e "$delay_single_quote_subst"`' hardcode_direct='`$ECHO "X$hardcode_direct" | $Xsed -e "$delay_single_quote_subst"`' hardcode_direct_absolute='`$ECHO "X$hardcode_direct_absolute" | $Xsed -e "$delay_single_quote_subst"`' hardcode_minus_L='`$ECHO "X$hardcode_minus_L" | $Xsed -e "$delay_single_quote_subst"`' hardcode_shlibpath_var='`$ECHO "X$hardcode_shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' hardcode_automatic='`$ECHO "X$hardcode_automatic" | $Xsed -e "$delay_single_quote_subst"`' inherit_rpath='`$ECHO "X$inherit_rpath" | $Xsed -e "$delay_single_quote_subst"`' link_all_deplibs='`$ECHO "X$link_all_deplibs" | $Xsed -e "$delay_single_quote_subst"`' fix_srcfile_path='`$ECHO "X$fix_srcfile_path" | $Xsed -e "$delay_single_quote_subst"`' always_export_symbols='`$ECHO "X$always_export_symbols" | $Xsed -e "$delay_single_quote_subst"`' export_symbols_cmds='`$ECHO "X$export_symbols_cmds" | $Xsed -e "$delay_single_quote_subst"`' exclude_expsyms='`$ECHO "X$exclude_expsyms" | $Xsed -e "$delay_single_quote_subst"`' include_expsyms='`$ECHO "X$include_expsyms" | $Xsed -e "$delay_single_quote_subst"`' prelink_cmds='`$ECHO "X$prelink_cmds" | $Xsed -e "$delay_single_quote_subst"`' file_list_spec='`$ECHO "X$file_list_spec" | $Xsed -e "$delay_single_quote_subst"`' variables_saved_for_relink='`$ECHO "X$variables_saved_for_relink" | $Xsed -e "$delay_single_quote_subst"`' need_lib_prefix='`$ECHO "X$need_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' need_version='`$ECHO "X$need_version" | $Xsed -e "$delay_single_quote_subst"`' version_type='`$ECHO "X$version_type" | $Xsed -e "$delay_single_quote_subst"`' runpath_var='`$ECHO "X$runpath_var" | $Xsed -e "$delay_single_quote_subst"`' shlibpath_var='`$ECHO "X$shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' shlibpath_overrides_runpath='`$ECHO "X$shlibpath_overrides_runpath" | $Xsed -e "$delay_single_quote_subst"`' libname_spec='`$ECHO "X$libname_spec" | $Xsed -e "$delay_single_quote_subst"`' library_names_spec='`$ECHO "X$library_names_spec" | $Xsed -e "$delay_single_quote_subst"`' soname_spec='`$ECHO "X$soname_spec" | $Xsed -e "$delay_single_quote_subst"`' postinstall_cmds='`$ECHO "X$postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' postuninstall_cmds='`$ECHO "X$postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' finish_cmds='`$ECHO "X$finish_cmds" | $Xsed -e "$delay_single_quote_subst"`' finish_eval='`$ECHO "X$finish_eval" | $Xsed -e "$delay_single_quote_subst"`' hardcode_into_libs='`$ECHO "X$hardcode_into_libs" | $Xsed -e "$delay_single_quote_subst"`' sys_lib_search_path_spec='`$ECHO "X$sys_lib_search_path_spec" | $Xsed -e "$delay_single_quote_subst"`' sys_lib_dlsearch_path_spec='`$ECHO "X$sys_lib_dlsearch_path_spec" | $Xsed -e "$delay_single_quote_subst"`' hardcode_action='`$ECHO "X$hardcode_action" | $Xsed -e "$delay_single_quote_subst"`' enable_dlopen='`$ECHO "X$enable_dlopen" | $Xsed -e "$delay_single_quote_subst"`' enable_dlopen_self='`$ECHO "X$enable_dlopen_self" | $Xsed -e "$delay_single_quote_subst"`' enable_dlopen_self_static='`$ECHO "X$enable_dlopen_self_static" | $Xsed -e "$delay_single_quote_subst"`' old_striplib='`$ECHO "X$old_striplib" | $Xsed -e "$delay_single_quote_subst"`' striplib='`$ECHO "X$striplib" | $Xsed -e "$delay_single_quote_subst"`' compiler_lib_search_dirs='`$ECHO "X$compiler_lib_search_dirs" | $Xsed -e "$delay_single_quote_subst"`' predep_objects='`$ECHO "X$predep_objects" | $Xsed -e "$delay_single_quote_subst"`' postdep_objects='`$ECHO "X$postdep_objects" | $Xsed -e "$delay_single_quote_subst"`' predeps='`$ECHO "X$predeps" | $Xsed -e "$delay_single_quote_subst"`' postdeps='`$ECHO "X$postdeps" | $Xsed -e "$delay_single_quote_subst"`' compiler_lib_search_path='`$ECHO "X$compiler_lib_search_path" | $Xsed -e "$delay_single_quote_subst"`' LD_CXX='`$ECHO "X$LD_CXX" | $Xsed -e "$delay_single_quote_subst"`' old_archive_cmds_CXX='`$ECHO "X$old_archive_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' compiler_CXX='`$ECHO "X$compiler_CXX" | $Xsed -e "$delay_single_quote_subst"`' GCC_CXX='`$ECHO "X$GCC_CXX" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "X$lt_prog_compiler_no_builtin_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_wl_CXX='`$ECHO "X$lt_prog_compiler_wl_CXX" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_pic_CXX='`$ECHO "X$lt_prog_compiler_pic_CXX" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_static_CXX='`$ECHO "X$lt_prog_compiler_static_CXX" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o_CXX='`$ECHO "X$lt_cv_prog_compiler_c_o_CXX" | $Xsed -e "$delay_single_quote_subst"`' archive_cmds_need_lc_CXX='`$ECHO "X$archive_cmds_need_lc_CXX" | $Xsed -e "$delay_single_quote_subst"`' enable_shared_with_static_runtimes_CXX='`$ECHO "X$enable_shared_with_static_runtimes_CXX" | $Xsed -e "$delay_single_quote_subst"`' export_dynamic_flag_spec_CXX='`$ECHO "X$export_dynamic_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`' whole_archive_flag_spec_CXX='`$ECHO "X$whole_archive_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`' compiler_needs_object_CXX='`$ECHO "X$compiler_needs_object_CXX" | $Xsed -e "$delay_single_quote_subst"`' old_archive_from_new_cmds_CXX='`$ECHO "X$old_archive_from_new_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds_CXX='`$ECHO "X$old_archive_from_expsyms_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' archive_cmds_CXX='`$ECHO "X$archive_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' archive_expsym_cmds_CXX='`$ECHO "X$archive_expsym_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' module_cmds_CXX='`$ECHO "X$module_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' module_expsym_cmds_CXX='`$ECHO "X$module_expsym_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' with_gnu_ld_CXX='`$ECHO "X$with_gnu_ld_CXX" | $Xsed -e "$delay_single_quote_subst"`' allow_undefined_flag_CXX='`$ECHO "X$allow_undefined_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`' no_undefined_flag_CXX='`$ECHO "X$no_undefined_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_flag_spec_CXX='`$ECHO "X$hardcode_libdir_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_flag_spec_ld_CXX='`$ECHO "X$hardcode_libdir_flag_spec_ld_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_separator_CXX='`$ECHO "X$hardcode_libdir_separator_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_direct_CXX='`$ECHO "X$hardcode_direct_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_direct_absolute_CXX='`$ECHO "X$hardcode_direct_absolute_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_minus_L_CXX='`$ECHO "X$hardcode_minus_L_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_shlibpath_var_CXX='`$ECHO "X$hardcode_shlibpath_var_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_automatic_CXX='`$ECHO "X$hardcode_automatic_CXX" | $Xsed -e "$delay_single_quote_subst"`' inherit_rpath_CXX='`$ECHO "X$inherit_rpath_CXX" | $Xsed -e "$delay_single_quote_subst"`' link_all_deplibs_CXX='`$ECHO "X$link_all_deplibs_CXX" | $Xsed -e "$delay_single_quote_subst"`' fix_srcfile_path_CXX='`$ECHO "X$fix_srcfile_path_CXX" | $Xsed -e "$delay_single_quote_subst"`' always_export_symbols_CXX='`$ECHO "X$always_export_symbols_CXX" | $Xsed -e "$delay_single_quote_subst"`' export_symbols_cmds_CXX='`$ECHO "X$export_symbols_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' exclude_expsyms_CXX='`$ECHO "X$exclude_expsyms_CXX" | $Xsed -e "$delay_single_quote_subst"`' include_expsyms_CXX='`$ECHO "X$include_expsyms_CXX" | $Xsed -e "$delay_single_quote_subst"`' prelink_cmds_CXX='`$ECHO "X$prelink_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' file_list_spec_CXX='`$ECHO "X$file_list_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_action_CXX='`$ECHO "X$hardcode_action_CXX" | $Xsed -e "$delay_single_quote_subst"`' compiler_lib_search_dirs_CXX='`$ECHO "X$compiler_lib_search_dirs_CXX" | $Xsed -e "$delay_single_quote_subst"`' predep_objects_CXX='`$ECHO "X$predep_objects_CXX" | $Xsed -e "$delay_single_quote_subst"`' postdep_objects_CXX='`$ECHO "X$postdep_objects_CXX" | $Xsed -e "$delay_single_quote_subst"`' predeps_CXX='`$ECHO "X$predeps_CXX" | $Xsed -e "$delay_single_quote_subst"`' postdeps_CXX='`$ECHO "X$postdeps_CXX" | $Xsed -e "$delay_single_quote_subst"`' compiler_lib_search_path_CXX='`$ECHO "X$compiler_lib_search_path_CXX" | $Xsed -e "$delay_single_quote_subst"`' LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # Quote evaled strings. for var in SED \ GREP \ EGREP \ FGREP \ LD \ NM \ LN_S \ lt_SP2NL \ lt_NL2SP \ reload_flag \ OBJDUMP \ deplibs_check_method \ file_magic_cmd \ AR \ AR_FLAGS \ STRIP \ RANLIB \ CC \ CFLAGS \ compiler \ lt_cv_sys_global_symbol_pipe \ lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ SHELL \ ECHO \ lt_prog_compiler_no_builtin_flag \ lt_prog_compiler_wl \ lt_prog_compiler_pic \ lt_prog_compiler_static \ lt_cv_prog_compiler_c_o \ need_locks \ DSYMUTIL \ NMEDIT \ LIPO \ OTOOL \ OTOOL64 \ shrext_cmds \ export_dynamic_flag_spec \ whole_archive_flag_spec \ compiler_needs_object \ with_gnu_ld \ allow_undefined_flag \ no_undefined_flag \ hardcode_libdir_flag_spec \ hardcode_libdir_flag_spec_ld \ hardcode_libdir_separator \ fix_srcfile_path \ exclude_expsyms \ include_expsyms \ file_list_spec \ variables_saved_for_relink \ libname_spec \ library_names_spec \ soname_spec \ finish_eval \ old_striplib \ striplib \ compiler_lib_search_dirs \ predep_objects \ postdep_objects \ predeps \ postdeps \ compiler_lib_search_path \ LD_CXX \ compiler_CXX \ lt_prog_compiler_no_builtin_flag_CXX \ lt_prog_compiler_wl_CXX \ lt_prog_compiler_pic_CXX \ lt_prog_compiler_static_CXX \ lt_cv_prog_compiler_c_o_CXX \ export_dynamic_flag_spec_CXX \ whole_archive_flag_spec_CXX \ compiler_needs_object_CXX \ with_gnu_ld_CXX \ allow_undefined_flag_CXX \ no_undefined_flag_CXX \ hardcode_libdir_flag_spec_CXX \ hardcode_libdir_flag_spec_ld_CXX \ hardcode_libdir_separator_CXX \ fix_srcfile_path_CXX \ exclude_expsyms_CXX \ include_expsyms_CXX \ file_list_spec_CXX \ compiler_lib_search_dirs_CXX \ predep_objects_CXX \ postdep_objects_CXX \ predeps_CXX \ postdeps_CXX \ compiler_lib_search_path_CXX; do case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in reload_cmds \ old_postinstall_cmds \ old_postuninstall_cmds \ old_archive_cmds \ extract_expsyms_cmds \ old_archive_from_new_cmds \ old_archive_from_expsyms_cmds \ archive_cmds \ archive_expsym_cmds \ module_cmds \ module_expsym_cmds \ export_symbols_cmds \ prelink_cmds \ postinstall_cmds \ postuninstall_cmds \ finish_cmds \ sys_lib_search_path_spec \ sys_lib_dlsearch_path_spec \ old_archive_cmds_CXX \ old_archive_from_new_cmds_CXX \ old_archive_from_expsyms_cmds_CXX \ archive_cmds_CXX \ archive_expsym_cmds_CXX \ module_cmds_CXX \ module_expsym_cmds_CXX \ export_symbols_cmds_CXX \ prelink_cmds_CXX; do case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Fix-up fallback echo if it was mangled by the above quoting rules. case \$lt_ECHO in *'\\\$0 --fallback-echo"') lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\$0 --fallback-echo"\$/\$0 --fallback-echo"/'\` ;; esac ac_aux_dir='$ac_aux_dir' xsi_shell='$xsi_shell' lt_shell_append='$lt_shell_append' # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi PACKAGE='$PACKAGE' VERSION='$VERSION' TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile' # Capture the value of obsolete ALL_LINGUAS because we need it to compute # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it # from automake. eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' # Capture the value of LINGUAS because we need it to compute CATALOGS. LINGUAS="${LINGUAS-%UNSET%}" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; "src/scim_types.h") CONFIG_FILES="$CONFIG_FILES src/scim_types.h" ;; "utils/Makefile") CONFIG_FILES="$CONFIG_FILES utils/Makefile" ;; "data/Makefile") CONFIG_FILES="$CONFIG_FILES data/Makefile" ;; "data/icons/Makefile") CONFIG_FILES="$CONFIG_FILES data/icons/Makefile" ;; "data/pixmaps/Makefile") CONFIG_FILES="$CONFIG_FILES data/pixmaps/Makefile" ;; "modules/Makefile") CONFIG_FILES="$CONFIG_FILES modules/Makefile" ;; "modules/FrontEnd/IMdkit/Makefile") CONFIG_FILES="$CONFIG_FILES modules/FrontEnd/IMdkit/Makefile" ;; "modules/FrontEnd/Makefile") CONFIG_FILES="$CONFIG_FILES modules/FrontEnd/Makefile" ;; "modules/IMEngine/Makefile") CONFIG_FILES="$CONFIG_FILES modules/IMEngine/Makefile" ;; "modules/Filter/Makefile") CONFIG_FILES="$CONFIG_FILES modules/Filter/Makefile" ;; "modules/Config/Makefile") CONFIG_FILES="$CONFIG_FILES modules/Config/Makefile" ;; "modules/SetupUI/Makefile") CONFIG_FILES="$CONFIG_FILES modules/SetupUI/Makefile" ;; "docs/scim.cfg") CONFIG_FILES="$CONFIG_FILES docs/scim.cfg" ;; "docs/Makefile") CONFIG_FILES="$CONFIG_FILES docs/Makefile" ;; "docs/manual/Makefile") CONFIG_FILES="$CONFIG_FILES docs/manual/Makefile" ;; "configs/Makefile") CONFIG_FILES="$CONFIG_FILES configs/Makefile" ;; "extras/Makefile") CONFIG_FILES="$CONFIG_FILES extras/Makefile" ;; "extras/gtk_immodule/gtk2/Makefile") CONFIG_FILES="$CONFIG_FILES extras/gtk_immodule/gtk2/Makefile" ;; "extras/gtk_immodule/gtk3/Makefile") CONFIG_FILES="$CONFIG_FILES extras/gtk_immodule/gtk3/Makefile" ;; "extras/setup/Makefile") CONFIG_FILES="$CONFIG_FILES extras/setup/Makefile" ;; "extras/setup/scim-setup") CONFIG_FILES="$CONFIG_FILES extras/setup/scim-setup" ;; "extras/panel/Makefile") CONFIG_FILES="$CONFIG_FILES extras/panel/Makefile" ;; "extras/immodules/Makefile") CONFIG_FILES="$CONFIG_FILES extras/immodules/Makefile" ;; "extras/immodules/common/Makefile") CONFIG_FILES="$CONFIG_FILES extras/immodules/common/Makefile" ;; "extras/immodules/agent/Makefile") CONFIG_FILES="$CONFIG_FILES extras/immodules/agent/Makefile" ;; "extras/immodules/client-common/Makefile") CONFIG_FILES="$CONFIG_FILES extras/immodules/client-common/Makefile" ;; "extras/immodules/client-gtk/gtk2/Makefile") CONFIG_FILES="$CONFIG_FILES extras/immodules/client-gtk/gtk2/Makefile" ;; "extras/immodules/client-gtk/gtk3/Makefile") CONFIG_FILES="$CONFIG_FILES extras/immodules/client-gtk/gtk3/Makefile" ;; "extras/immodules/client-qt/qt3/Makefile") CONFIG_FILES="$CONFIG_FILES extras/immodules/client-qt/qt3/Makefile" ;; "extras/immodules/client-qt/qt4/Makefile") CONFIG_FILES="$CONFIG_FILES extras/immodules/client-qt/qt4/Makefile" ;; "extras/immodules/client-clutter/Makefile") CONFIG_FILES="$CONFIG_FILES extras/immodules/client-clutter/Makefile" ;; "extras/immodules/doc/Makefile") CONFIG_FILES="$CONFIG_FILES extras/immodules/doc/Makefile" ;; "tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;; "scim.pc") CONFIG_FILES="$CONFIG_FILES scim.pc" ;; "scim-gtkutils.pc") CONFIG_FILES="$CONFIG_FILES scim-gtkutils.pc" ;; "scim-x11utils.pc") CONFIG_FILES="$CONFIG_FILES scim-x11utils.pc" ;; "scim.spec") CONFIG_FILES="$CONFIG_FILES scim.spec" ;; "po/stamp-it") CONFIG_COMMANDS="$CONFIG_COMMANDS po/stamp-it" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF # Transform confdefs.h into an awk script `defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. # Create a delimiter string that does not exist in confdefs.h, to ease # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ac_tt=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_tt"; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done # For the awk script, D is an array of macro values keyed by name, # likewise P contains macro parameters if any. Preserve backslash # newline sequences. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* sed -n ' s/.\{148\}/&'"$ac_delim"'/g t rset :rset s/^[ ]*#[ ]*define[ ][ ]*/ / t def d :def s/\\$// t bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3"/p s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p d :bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3\\\\\\n"\\/p t cont s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p t cont d :cont n s/.\{148\}/&'"$ac_delim"'/g t clear :clear s/\\$// t bsnlc s/["\\]/\\&/g; s/^/"/; s/$/"/p d :bsnlc s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p b cont ' >$CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 for (key in D) D_is_set[key] = 1 FS = "" } /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { line = \$ 0 split(line, arg, " ") if (arg[1] == "#") { defundef = arg[2] mac1 = arg[3] } else { defundef = substr(arg[1], 2) mac1 = arg[2] } split(mac1, mac2, "(") #) macro = mac2[1] prefix = substr(line, 1, index(line, defundef) - 1) if (D_is_set[macro]) { # Preserve the white space surrounding the "#". print prefix "define", macro P[macro] D[macro] next } else { # Replace #undef with comments. This is necessary, for example, # in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. if (defundef == "undef") { print "/*", prefix defundef, macro, "*/" next } } } { print } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" } >"$ac_tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$ac_tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi # Compute "$ac_file"'s index in $config_headers. _am_arg="$ac_file" _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || $as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$_am_arg" : 'X\(//\)[^/]' \| \ X"$_am_arg" : 'X\(//\)$' \| \ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$_am_arg" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'`/stamp-h$_am_stamp_count ;; :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 $as_echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || { # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`$as_dirname -- "$mf" || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir=$dirpart/$fdir; as_fn_mkdir_p # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ;; "libtool":C) # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi cfgfile="${ofile}T" trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008 Free Software Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. # # GNU Libtool is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2 of # the License, or (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, or # obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # The names of the tagged configurations supported by this script. available_tags="CXX " # ### BEGIN LIBTOOL CONFIG # Which release of libtool.m4 was used? macro_version=$macro_version macro_revision=$macro_revision # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # What type of objects to build. pic_mode=$pic_mode # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # A sed program that does not truncate output. SED=$lt_SED # Sed that helps us avoid accidentally triggering echo(1) options like -n. Xsed="\$SED -e 1s/^X//" # A grep program that handles long lines. GREP=$lt_GREP # An ERE matcher. EGREP=$lt_EGREP # A literal string matcher. FGREP=$lt_FGREP # A BSD- or MS-compatible name lister. NM=$lt_NM # Whether we need soft or hard links. LN_S=$lt_LN_S # What is the maximum length of a command? max_cmd_len=$max_cmd_len # Object file suffix (normally "o"). objext=$ac_objext # Executable file suffix (normally ""). exeext=$exeext # whether the shell understands "unset". lt_unset=$lt_unset # turn spaces into newlines. SP2NL=$lt_lt_SP2NL # turn newlines into spaces. NL2SP=$lt_lt_NL2SP # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # An object symbol dumper. OBJDUMP=$lt_OBJDUMP # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == "file_magic". file_magic_cmd=$lt_file_magic_cmd # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A symbol stripping program. STRIP=$lt_STRIP # Commands used to install an old-style archive. RANLIB=$lt_RANLIB old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # A C compiler. LTCC=$lt_CC # LTCC compiler flags. LTCFLAGS=$lt_CFLAGS # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration. global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair. global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # Transform the output of nm in a C name address pair when lib prefix is needed. global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix # The name of the directory that contains temporary libtool files. objdir=$objdir # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # An echo program that does not interpret backslashes. ECHO=$lt_ECHO # Used to examine libraries when file_magic_cmd begins with "file". MAGIC_CMD=$MAGIC_CMD # Must we lock files when doing compilation? need_locks=$lt_need_locks # Tool to manipulate archived DWARF debug symbol files on Mac OS X. DSYMUTIL=$lt_DSYMUTIL # Tool to change global to local symbols on Mac OS X. NMEDIT=$lt_NMEDIT # Tool to manipulate fat objects and archives on Mac OS X. LIPO=$lt_LIPO # ldd/readelf like tool for Mach-O binaries on Mac OS X. OTOOL=$lt_OTOOL # ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. OTOOL64=$lt_OTOOL64 # Old archive suffix (normally "a"). libext=$libext # Shared library suffix (normally ".so"). shrext_cmds=$lt_shrext_cmds # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Variables whose values should be saved in libtool wrapper scripts and # restored at link time. variables_saved_for_relink=$lt_variables_saved_for_relink # Do we need the "lib" prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Library versioning type. version_type=$version_type # Shared library runtime path variable. runpath_var=$runpath_var # Shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Command to use after installation of a shared archive. postinstall_cmds=$lt_postinstall_cmds # Command to use after uninstallation of a shared archive. postuninstall_cmds=$lt_postuninstall_cmds # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # As "finish_cmds", except a single script fragment to be evaled but # not shown. finish_eval=$lt_finish_eval # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Compile-time system search path for libraries. sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries. sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # The linker used to build libraries. LD=$lt_LD # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds # A language specific compiler. CC=$lt_compiler # Is the compiler the GNU compiler? with_gcc=$GCC # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc # Whether or not to disallow shared libs when runtime libs are static. allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec # Whether the compiler copes with passing no objects directly. compiler_needs_object=$lt_compiler_needs_object # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds # Commands used to build a shared archive. archive_cmds=$lt_archive_cmds archive_expsym_cmds=$lt_archive_expsym_cmds # Commands used to build a loadable module if different from building # a shared archive. module_cmds=$lt_module_cmds module_expsym_cmds=$lt_module_expsym_cmds # Whether we are building with GNU ld or not. with_gnu_ld=$lt_with_gnu_ld # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag # Flag that enforces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec # If ld is used when linking, flag to hardcode \$libdir into a binary # during linking. This must work even if \$libdir does not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary. hardcode_direct=$hardcode_direct # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary and the resulting library dependency is # "absolute",i.e impossible to change by setting \${shlibpath_var} if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute # Set to "yes" if using the -LDIR flag during linking hardcodes DIR # into the resulting binary. hardcode_minus_L=$hardcode_minus_L # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR # into the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var # Set to "yes" if building a shared library automatically hardcodes DIR # into the library and all subsequent libraries and executables linked # against it. hardcode_automatic=$hardcode_automatic # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=$inherit_rpath # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path=$lt_fix_srcfile_path # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms # Symbols that must always be exported. include_expsyms=$lt_include_expsyms # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds # Specify filename containing input files. file_list_spec=$lt_file_list_spec # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action # The directories searched by this compiler when creating a shared library. compiler_lib_search_dirs=$lt_compiler_lib_search_dirs # Dependencies to place before and after the objects being linked to # create a shared library. predep_objects=$lt_predep_objects postdep_objects=$lt_postdep_objects predeps=$lt_predeps postdeps=$lt_postdeps # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path # ### END LIBTOOL CONFIG _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac ltmain="$ac_aux_dir/ltmain.sh" # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) case $xsi_shell in yes) cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac } # func_basename file func_basename () { func_basename_result="${1##*/}" } # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac func_basename_result="${1##*/}" } # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). func_stripname () { # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are # positional parameters, so assign one to ordinary parameter first. func_stripname_result=${3} func_stripname_result=${func_stripname_result#"${1}"} func_stripname_result=${func_stripname_result%"${2}"} } # func_opt_split func_opt_split () { func_opt_split_opt=${1%%=*} func_opt_split_arg=${1#*=} } # func_lo2o object func_lo2o () { case ${1} in *.lo) func_lo2o_result=${1%.lo}.${objext} ;; *) func_lo2o_result=${1} ;; esac } # func_xform libobj-or-source func_xform () { func_xform_result=${1%.*}.lo } # func_arith arithmetic-term... func_arith () { func_arith_result=$(( $* )) } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=${#1} } _LT_EOF ;; *) # Bourne compatible functions. cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi } # func_basename file func_basename () { func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` } # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # func_strip_suffix prefix name func_stripname () { case ${2} in .*) func_stripname_result=`$ECHO "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; esac } # sed scripts: my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' my_sed_long_arg='1s/^-[^=]*=//' # func_opt_split func_opt_split () { func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` } # func_lo2o object func_lo2o () { func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` } # func_xform libobj-or-source func_xform () { func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[^.]*$/.lo/'` } # func_arith arithmetic-term... func_arith () { func_arith_result=`expr "$@"` } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` } _LT_EOF esac case $lt_shell_append in yes) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$1+=\$2" } _LT_EOF ;; *) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$1=\$$1\$2" } _LT_EOF ;; esac sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" cat <<_LT_EOF >> "$ofile" # ### BEGIN LIBTOOL TAG CONFIG: CXX # The linker used to build libraries. LD=$lt_LD_CXX # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds_CXX # A language specific compiler. CC=$lt_compiler_CXX # Is the compiler the GNU compiler? with_gcc=$GCC_CXX # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_CXX # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_CXX # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_CXX # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_CXX # Whether or not to disallow shared libs when runtime libs are static. allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX # Whether the compiler copes with passing no objects directly. compiler_needs_object=$lt_compiler_needs_object_CXX # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX # Commands used to build a shared archive. archive_cmds=$lt_archive_cmds_CXX archive_expsym_cmds=$lt_archive_expsym_cmds_CXX # Commands used to build a loadable module if different from building # a shared archive. module_cmds=$lt_module_cmds_CXX module_expsym_cmds=$lt_module_expsym_cmds_CXX # Whether we are building with GNU ld or not. with_gnu_ld=$lt_with_gnu_ld_CXX # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_CXX # Flag that enforces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_CXX # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX # If ld is used when linking, flag to hardcode \$libdir into a binary # during linking. This must work even if \$libdir does not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary. hardcode_direct=$hardcode_direct_CXX # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary and the resulting library dependency is # "absolute",i.e impossible to change by setting \${shlibpath_var} if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute_CXX # Set to "yes" if using the -LDIR flag during linking hardcodes DIR # into the resulting binary. hardcode_minus_L=$hardcode_minus_L_CXX # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR # into the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX # Set to "yes" if building a shared library automatically hardcodes DIR # into the library and all subsequent libraries and executables linked # against it. hardcode_automatic=$hardcode_automatic_CXX # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=$inherit_rpath_CXX # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_CXX # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path=$lt_fix_srcfile_path_CXX # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols_CXX # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_CXX # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_CXX # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_CXX # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds_CXX # Specify filename containing input files. file_list_spec=$lt_file_list_spec_CXX # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_CXX # The directories searched by this compiler when creating a shared library. compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_CXX # Dependencies to place before and after the objects being linked to # create a shared library. predep_objects=$lt_predep_objects_CXX postdep_objects=$lt_postdep_objects_CXX predeps=$lt_predeps_CXX postdeps=$lt_postdeps_CXX # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_CXX # ### END LIBTOOL TAG CONFIG: CXX _LT_EOF ;; "default-1":C) for ac_file in $CONFIG_FILES; do # Support "outfile[:infile[:infile...]]" case "$ac_file" in *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; esac # PO directories have a Makefile.in generated from Makefile.in.in. case "$ac_file" in */Makefile.in) # Adjust a relative srcdir. ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` # In autoconf-2.13 it is called $ac_given_srcdir. # In autoconf-2.50 it is called $srcdir. test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" case "$ac_given_srcdir" in .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; /*) top_srcdir="$ac_given_srcdir" ;; *) top_srcdir="$ac_dots$ac_given_srcdir" ;; esac if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then rm -f "$ac_dir/POTFILES" test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" POMAKEFILEDEPS="POTFILES.in" # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend # on $ac_dir but don't depend on user-specified configuration # parameters. if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then # The LINGUAS file contains the set of available languages. if test -n "$OBSOLETE_ALL_LINGUAS"; then test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" fi ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"` # Hide the ALL_LINGUAS assigment from automake. eval 'ALL_LINGUAS''=$ALL_LINGUAS_' POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" else # The set of available languages was given in configure.in. eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' fi # Compute POFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) # Compute UPDATEPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) # Compute DUMMYPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) # Compute GMOFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) case "$ac_given_srcdir" in .) srcdirpre= ;; *) srcdirpre='$(srcdir)/' ;; esac POFILES= UPDATEPOFILES= DUMMYPOFILES= GMOFILES= for lang in $ALL_LINGUAS; do POFILES="$POFILES $srcdirpre$lang.po" UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" DUMMYPOFILES="$DUMMYPOFILES $lang.nop" GMOFILES="$GMOFILES $srcdirpre$lang.gmo" done # CATALOGS depends on both $ac_dir and the user's LINGUAS # environment variable. INST_LINGUAS= if test -n "$ALL_LINGUAS"; then for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "$LINGUAS"; then desiredlanguages="$LINGUAS" else desiredlanguages="$ALL_LINGUAS" fi for desiredlang in $desiredlanguages; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then INST_LINGUAS="$INST_LINGUAS $presentlang" fi done fi CATALOGS= if test -n "$INST_LINGUAS"; then for lang in $INST_LINGUAS; do CATALOGS="$CATALOGS $lang.gmo" done fi test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do if test -f "$f"; then case "$f" in *.orig | *.bak | *~) ;; *) cat "$f" >> "$ac_dir/Makefile" ;; esac fi done fi ;; esac done ;; "po/stamp-it":C) if ! grep "^# INTLTOOL_MAKEFILE$" "po/Makefile.in" > /dev/null ; then as_fn_error $? "po/Makefile.in.in was not created by intltoolize." "$LINENO" 5 fi rm -f "po/stamp-it" "po/stamp-it.tmp" "po/POTFILES" "po/Makefile.tmp" >"po/stamp-it.tmp" sed '/^#/d s/^[[].*] *// /^[ ]*$/d '"s|^| $ac_top_srcdir/|" \ "$srcdir/po/POTFILES.in" | sed '$!s/$/ \\/' >"po/POTFILES" sed '/^POTFILES =/,/[^\\]$/ { /^POTFILES =/!d r po/POTFILES } ' "po/Makefile.in" >"po/Makefile" rm -f "po/Makefile.tmp" mv "po/stamp-it.tmp" "po/stamp-it" ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi # # CONFIG_SUBDIRS section. # if test "$no_recursion" != yes; then # Remove --cache-file, --srcdir, and --disable-option-checking arguments # so they do not pile up. ac_sub_configure_args= ac_prev= eval "set x $ac_configure_args" shift for ac_arg do if test -n "$ac_prev"; then ac_prev= continue fi case $ac_arg in -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* \ | --c=*) ;; --config-cache | -C) ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) ;; --disable-option-checking) ;; *) case $ac_arg in *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append ac_sub_configure_args " '$ac_arg'" ;; esac done # Always prepend --prefix to ensure using the same prefix # in subdir configurations. ac_arg="--prefix=$prefix" case $ac_arg in *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac ac_sub_configure_args="'$ac_arg' $ac_sub_configure_args" # Pass --silent if test "$silent" = yes; then ac_sub_configure_args="--silent $ac_sub_configure_args" fi # Always prepend --disable-option-checking to silence warnings, since # different subdirs can have different --enable and --with options. ac_sub_configure_args="--disable-option-checking $ac_sub_configure_args" ac_popdir=`pwd` for ac_dir in : $subdirs; do test "x$ac_dir" = x: && continue # Do not complain, so a configure script can configure whichever # parts of a large source tree are present. test -d "$srcdir/$ac_dir" || continue ac_msg="=== configuring in $ac_dir (`pwd`/$ac_dir)" $as_echo "$as_me:${as_lineno-$LINENO}: $ac_msg" >&5 $as_echo "$ac_msg" >&6 as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" # Check for guested configure; otherwise get Cygnus style configure. if test -f "$ac_srcdir/configure.gnu"; then ac_sub_configure=$ac_srcdir/configure.gnu elif test -f "$ac_srcdir/configure"; then ac_sub_configure=$ac_srcdir/configure elif test -f "$ac_srcdir/configure.in"; then # This should be Cygnus configure. ac_sub_configure=$ac_aux_dir/configure else { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: no configuration information is in $ac_dir" >&5 $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2;} ac_sub_configure= fi # The recursion is here. if test -n "$ac_sub_configure"; then # Make the cache file name correct relative to the subdirectory. case $cache_file in [\\/]* | ?:[\\/]* ) ac_sub_cache_file=$cache_file ;; *) # Relative name. ac_sub_cache_file=$ac_top_build_prefix$cache_file ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&5 $as_echo "$as_me: running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&6;} # The eval makes quoting arguments work. eval "\$SHELL \"\$ac_sub_configure\" $ac_sub_configure_args \ --cache-file=\"\$ac_sub_cache_file\" --srcdir=\"\$ac_srcdir\"" || as_fn_error $? "$ac_sub_configure failed for $ac_dir" "$LINENO" 5 fi cd "$ac_popdir" done fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: Build options: Version $SCIM_VERSION Install prefix $prefix Build shared libs $enable_shared Build static libs $enable_static Build tests/* $enable_tests Enable debug $enable_debug Enable ld version script $enable_ld_version_script Enable lt_dladvise $enable_ltdladvise Build documents $enable_documents Module options: Simple config module $enable_config_simple Socket config module $enable_config_socket X11 FrontEnd module $enable_frontend_x11 Socket FrontEnd module $enable_frontend_socket RawCode IMEngine module $enable_im_rawcode Socket IMEngine module $enable_im_socket SCTC Filter module $enable_filter_sctc GTK Utility Library $enable_gtk_utils X11 Utility Library $enable_x11_utils GTK Version $USE_GTK_VERSION GUI Setup Utility $enable_setup_ui GTK Panel GUI $enable_panel_gtk Enable TrayIcon $enable_tray_icon GTK2 IMModule dir $GTK2_IM_MODULEDIR GTK3 IMModule dir $GTK3_IM_MODULEDIR QT3 IMModule dir $QT3_IM_MODULEDIR QT4 IMModule dir $QT4_IM_MODULEDIR Clutter IMModule dir $CLUTTER_IM_MODULEDIR QT3 moc program $QT3_MOC QT4 moc program $QT4_MOC Original GTK2 IMModule $enable_orig_gtk2_immodule Original GTK3 IMModule $enable_orig_gtk3_immodule Scim IM Agent $enable_im_agent GTK2 IMModule $enable_gtk2_immodule GTK3 IMModule $enable_gtk3_immodule QT3 IMModule $enable_qt3_immodule QT4 IMModule $enable_qt4_immodule CLUTTER IMModule $enable_clutter_immodule " >&5 $as_echo " Build options: Version $SCIM_VERSION Install prefix $prefix Build shared libs $enable_shared Build static libs $enable_static Build tests/* $enable_tests Enable debug $enable_debug Enable ld version script $enable_ld_version_script Enable lt_dladvise $enable_ltdladvise Build documents $enable_documents Module options: Simple config module $enable_config_simple Socket config module $enable_config_socket X11 FrontEnd module $enable_frontend_x11 Socket FrontEnd module $enable_frontend_socket RawCode IMEngine module $enable_im_rawcode Socket IMEngine module $enable_im_socket SCTC Filter module $enable_filter_sctc GTK Utility Library $enable_gtk_utils X11 Utility Library $enable_x11_utils GTK Version $USE_GTK_VERSION GUI Setup Utility $enable_setup_ui GTK Panel GUI $enable_panel_gtk Enable TrayIcon $enable_tray_icon GTK2 IMModule dir $GTK2_IM_MODULEDIR GTK3 IMModule dir $GTK3_IM_MODULEDIR QT3 IMModule dir $QT3_IM_MODULEDIR QT4 IMModule dir $QT4_IM_MODULEDIR Clutter IMModule dir $CLUTTER_IM_MODULEDIR QT3 moc program $QT3_MOC QT4 moc program $QT4_MOC Original GTK2 IMModule $enable_orig_gtk2_immodule Original GTK3 IMModule $enable_orig_gtk3_immodule Scim IM Agent $enable_im_agent GTK2 IMModule $enable_gtk2_immodule GTK3 IMModule $enable_gtk3_immodule QT3 IMModule $enable_qt3_immodule QT4 IMModule $enable_qt4_immodule CLUTTER IMModule $enable_clutter_immodule " >&6; } scim-1.4.14/configure.ac000066400000000000000000000653161177210725600150450ustar00rootroot00000000000000# Process this file with autoconf to produce a configure script AC_INIT([scim],[1.4.14],[http://sf.net/tracker/?atid=650539&group_id=108454]) AC_CONFIG_SRCDIR([src/scim.h]) ########################################################### ## Some definitions of Version macros. ## ########################################################### SCIM_MAJOR_VERSION=1 SCIM_MINOR_VERSION=4 SCIM_MICRO_VERSION=14 SCIM_VERSION=$SCIM_MAJOR_VERSION.$SCIM_MINOR_VERSION.$SCIM_MICRO_VERSION AC_SUBST(SCIM_MAJOR_VERSION) AC_SUBST(SCIM_MINOR_VERSION) AC_SUBST(SCIM_MICRO_VERSION) AC_SUBST(SCIM_VERSION) # increment if the interface has additions, changes, removals. SCIM_CURRENT=10 # increment any time the source changes; set to 0 if you increment CURRENT SCIM_REVISION=6 # increment if any interfaces have been added; set to 0 # if any interfaces have been removed. removal has # precedence over adding, so set to 0 if both happened. SCIM_AGE=2 AC_SUBST(SCIM_CURRENT) AC_SUBST(SCIM_REVISION) AC_SUBST(SCIM_AGE) # Define a string for the earliest version that this release cannot # coexist with. This is used for directory hierarchies. # SCIM_EPOCH=-1.0 AC_SUBST(SCIM_EPOCH) # Define a string for the earliest version that this release has # binary compatibility with. This is used for module locations. # SCIM_BINARY_VERSION=1.4.0 AC_SUBST(SCIM_BINARY_VERSION) AC_DEFINE_UNQUOTED(SCIM_BINARY_VERSION, "$SCIM_BINARY_VERSION", [The binary version of SCIM library.]) AC_DEFINE_UNQUOTED(SCIM_VERSION, "$SCIM_VERSION", [The release version of SCIM library.]) AC_DEFINE_UNQUOTED(SCIM_MAJOR_VERSION, $SCIM_MAJOR_VERSION, [The Major version of SCIM library.]) AC_DEFINE_UNQUOTED(SCIM_MINOR_VERSION, $SCIM_MINOR_VERSION, [The Minor version of SCIM library.]) AC_DEFINE_UNQUOTED(SCIM_MICRO_VERSION, $SCIM_MICRO_VERSION, [The Micro version of SCIM library.]) # for scim-bridge integration SCIM_BRIDGE_MAJOR_VERSION=$SCIM_MAJOR_VERSION SCIM_BRIDGE_MINOR_VERSION=$SCIM_MINOR_VERSION SCIM_BRIDGE_MICRO_VERSION=$SCIM_MICRO_VERSION SCIM_BRIDGE_VERSION=$SCIM_VERSION AC_SUBST(SCIM_BRIDGE_MAJOR_VERSION) AC_SUBST(SCIM_BRIDGE_MINOR_VERSION) AC_SUBST(SCIM_BRIDGE_MICRO_VERSION) AC_SUBST(SCIM_BRIDGE_VERSION) AC_DEFINE_UNQUOTED(SCIM_BRIDGE_VERSION, "$SCIM_BRIDGE_VERSION", [The release version of SCIM library.]) AC_DEFINE_UNQUOTED(SCIM_BRIDGE_MAJOR_VERSION, $SCIM_BRIDGE_MAJOR_VERSION, [The Major version of SCIM library.]) AC_DEFINE_UNQUOTED(SCIM_BRIDGE_MINOR_VERSION, $SCIM_BRIDGE_MINOR_VERSION, [The Minor version of SCIM library.]) AC_DEFINE_UNQUOTED(SCIM_BRIDGE_MICRO_VERSION, $SCIM_BRIDGE_MICRO_VERSION, [The Micro version of SCIM library.]) GETTEXT_PACKAGE=scim AC_SUBST(GETTEXT_PACKAGE) AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [The gettext domain]) ########################################################### ## Start Configuration. ## ########################################################### # Init automake stuff AM_INIT_AUTOMAKE AM_CONFIG_HEADER([config.h]) # Init libtool LT_CONFIG_LTDL_DIR([libltdl]) LT_INIT([dlopen]) LTDL_INIT AC_SUBST(LIBTOOL_DEPS) # libtool option to control which symbols are exported # right now, symbols starting with _ are not exported # !!! DO NOT USE IT !!! LIBTOOL_EXPORT_OPTIONS='' AC_SUBST(LIBTOOL_EXPORT_OPTIONS) # Checks for programs. AC_PROG_CXX AC_PROG_CC AC_LANG(C) # Init gettext ALL_LINGUAS="as bn_IN ca cs de es fi fr gu hi it ja kn ko ml mr nl pa pt_BR ru sk sv ta te vi zh_CN zh_TW" AM_GNU_GETTEXT([external]) AM_GNU_GETTEXT_VERSION(0.14.1) # Checks if doxygen is avaiable AC_ARG_WITH([doxygen], AS_HELP_STRING([--without-doxygen], [Don't build API documentation]) ) DOXYGEN=no if test "x$with_doxygen" != "xno"; then AC_PATH_PROG(DOXYGEN, doxygen, no) fi AM_CONDITIONAL(HAVE_DOXYGEN, test x$DOXYGEN != xno) AC_SUBST(DOXYGEN) # Checks if graphviz is available AC_CHECK_PROG(HAVE_GRAPHVIZ, dot, YES, NO) AC_PATH_PROG(DOT, dot) DOT=`dirname $DOT` AC_SUBST(DOT) AC_PATH_PROG(PERL, perl) AC_SUBST(PERL) # Checks if xsltproc is available AC_PATH_PROG(XSLTPROC, xsltproc, no) AM_CONDITIONAL(HAVE_XSLTPROC, test x$XSLTPROC != xno) AC_SUBST(XSLTPROC) # Checks if docbook-style-xsl is available AC_CHECK_FILE( [/usr/share/sgml/docbook/xsl-stylesheets/html/tldp-html.xsl], [DOCBOOK_XSL=/usr/share/sgml/docbook/xsl-stylesheets/html/tldp-html.xsl], [AC_CHECK_FILE( [/usr/share/sgml/docbook/xsl-stylesheets/html/docbook.xsl], [DOCBOOK_XSL=/usr/share/sgml/docbook/xsl-stylesheets/html/docbook.xsl], [AC_CHECK_FILE( [/usr/share/xml/docbook/stylesheet/nwalsh/current/html/docbook.xsl], [DOCBOOK_XSL=/usr/share/xml/docbook/stylesheet/nwalsh/current/html/docbook.xsl], [DOCBOOK_XSL=no] )] )] ) AC_SUBST(DOCBOOK_XSL) AM_CONDITIONAL(HAVE_DOCBOOK, test x$DOCBOOK_XSL != xno) AM_CONDITIONAL(BUILD_MANUAL, test x$XSLTPROC != xno -a x$DOCBOOK_XSL != xno) # Check intltool IT_PROG_INTLTOOL([0.33], [no-xml]) # Checks for libraries. AC_HEADER_STDC AC_HEADER_TIME AC_CHECK_HEADERS([langinfo.h libintl.h string.h dirent.h hash_map ext/hash_map]) # Checks for typedefs, structures, and compiler characteristics. AC_C_CONST AC_C_INLINE AC_TYPE_SIZE_T if test x$ac_cv_type_size_t != xyes; then AC_MSG_ERROR([No type size_t, but SCIM needs it!]) fi AC_CHECK_SIZEOF(char) AC_CHECK_SIZEOF(unsigned short int) AC_CHECK_SIZEOF(unsigned int) AC_CHECK_SIZEOF(unsigned long int) AC_CHECK_SIZEOF(unsigned long long int) AC_CHECK_HEADERS([stdint.h],[has_stdint=yes],[has_stdint=no]) if test x$ac_cv_sizeof_unsigned_short_int = x2 && test x$ac_cv_sizeof_char = x1 ; then : else AC_MSG_ERROR([ *** SCIM requires *** sizeof (unsigned short int) == 2 *** sizeof (char) == 1 *** You might want to consider using the GNU C compiler. ]) fi if test x$ac_cv_sizeof_wchar_t = x0 ; then AC_MSG_ERROR([ *** SCIM requires a compiler that supports wchar_t, *** You might want to consider using the GNU C compiler. ]) fi if test x$has_stdint = xyes; then INCLUDE_STDINT="#include " UINT16="uint16_t" UINT32="uint32_t" UINT64="uint64_t" else INCLUDE_STDINT="//#include " UINT16="unsigned short int" if test x$ac_cv_sizeof_unsigned_int = x4; then UINT32="unsigned int" else if test x$ac_cv_sizeof_unsigned_long_int = x4; then UINT32="unsigned long int" else AC_MSG_ERROR([*** No suitable integer type for uint32 found.]) fi fi if test x$ac_cv_sizeof_unsigned_long_long_int = x8; then UINT64="unsigned long long int" else AC_MSG_ERROR([*** No suitable integer type for uint64 found.]) fi fi AC_SUBST(INCLUDE_STDINT) AC_SUBST(UINT16) AC_SUBST(UINT32) AC_SUBST(UINT64) # Checks for library functions. AC_FUNC_MALLOC AC_CHECK_FUNCS([gettimeofday memmove memset nl_langinfo setlocale daemon]) AC_CHECK_FUNCS([opendir closedir readdir]) AC_CHECK_FUNCS([usleep nanosleep]) AC_CHECK_FUNCS([gethostbyname gethostbyname_r socket bind accept connect listen], [socket_ok=yes], [socket_ok=no]) AM_ICONV PKG_PROG_PKG_CONFIG # Check if we should build scim-panel-gtk daemon PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.4.0 pango >= 1.1.0 gdk-pixbuf-2.0 >= 2.4.0], [SCIM_HAS_GTK2=yes], [SCIM_HAS_GTK2=no]) PKG_CHECK_MODULES(GTK3, [gtk+-3.0 >= 3.0.0 pango >= 1.1.0 gdk-pixbuf-2.0 >= 2.4.0], [SCIM_HAS_GTK3=yes], [SCIM_HAS_GTK3=no]) SCIM_HAS_GTK2_2=no if test "$SCIM_HAS_GTK2" = "yes"; then if $PKG_CONFIG --exists "gtk+-2.0 >= 2.2" ; then AC_DEFINE(GDK_MULTIHEAD_SAFE,1,[Force use of GDK's multihead-safe APIs.]) fi GTK2_BINARY_VERSION=`$PKG_CONFIG --variable=gtk_binary_version gtk+-2.0` GTK2_LIBDIR=`$PKG_CONFIG --variable=libdir gtk+-2.0` GTK2_IM_MODULEDIR=$GTK2_LIBDIR/gtk-2.0/$GTK2_BINARY_VERSION/immodules AC_SUBST(GTK2_IM_MODULEDIR) fi if test "$SCIM_HAS_GTK3" = "yes"; then GTK3_VERSION=3.0.0 GTK3_BINARY_VERSION=`$PKG_CONFIG --variable=gtk_binary_version gtk+-3.0` GTK3_LIBDIR=`$PKG_CONFIG --variable=libdir gtk+-3.0` GTK3_IM_MODULEDIR=$GTK3_LIBDIR/gtk-3.0/$GTK3_BINARY_VERSION/immodules AC_SUBST(GTK3_IM_MODULEDIR) fi # Check if we have gthread PKG_CHECK_MODULES(GTHREAD2,[gthread-2.0 >= 2.0.0], [SCIM_HAS_GTHREAD2=yes], [SCIM_HAS_GTHREAD2=no]) # Check if we should build scim-bridge-qt-immodule PKG_CHECK_MODULES(QT3, [qt-mt >= 3.3], [SCIM_HAS_QT3=yes], [SCIM_HAS_QT3=no]) if test "$SCIM_HAS_QT3" = "yes"; then if test -z "$QT3_PREFIX"; then QT3_PREFIX=`$PKG_CONFIG --variable=prefix qt-mt` QT3_LIBDIR=`$PKG_CONFIG --variable=libdir qt-mt` fi QT3_MOC=$QT3_PREFIX/bin/moc QT3_IM_MODULEDIR=$QT3_LIBDIR/qt3/plugins/inputmethods AC_SUBST(QT3_MOC) AC_SUBST(QT3_IM_MODULEDIR) AC_SUBST(QT3_PREFIX) AC_SUBST(QT3_LIBDIR) fi PKG_CHECK_MODULES(QT4, [QtGui >= 4.0, QtCore >= 4.0], [SCIM_HAS_QT4=yes], [SCIM_HAS_QT4=no]) if test "$SCIM_HAS_QT4" = "yes"; then if test -z "$QT4_PREFIX"; then QT4_PREFIX=`$PKG_CONFIG --variable=prefix QtCore` QT4_LIBDIR=`$PKG_CONFIG --variable=libdir QtCore` fi QT4_MOC=$QT4_PREFIX/bin/moc QT4_IM_MODULEDIR=$QT4_LIBDIR/qt4/plugins/inputmethods AC_SUBST(QT4_MOC) AC_SUBST(QT4_IM_MODULEDIR) AC_SUBST(QT4_PREFIX) AC_SUBST(QT4_LIBDIR) fi # Check if we should build scim-bridge-clutter-immodule PKG_CHECK_MODULES(CLUTTER, clutter-1.0 clutter-imcontext-0.1, [SCIM_HAS_CLUTTER=yes], [SCIM_HAS_CLUTTER=no]) if test "$SCIM_HAS_CLUTTER" = "yes"; then CLUTTER_IMCONTEXT_LIBDIR=`$PKG_CONFIG --variable=libdir clutter-imcontext-0.1` CLUTTER_IM_MODULEDIR=$CLUTTER_IMCONTEXT_LIBDIR/clutter-imcontext/immodules AC_SUBST(CLUTTER_IM_MODULEDIR) AC_SUBST(CLUTTER_LIBDIR) AC_SUBST(CLUTTER_VERSION) AC_SUBST(CLUTTER_BINARY_VERSION) AC_SUBST(CLUTTER_IMCONTEXT_LIBDIR) enable_clutter_immodule="yes"; fi # Checks for X11 header files. AC_PATH_XTRA # Add -lX11 to X_LIBS if test "$have_x" = "yes"; then X_LIBS="$X_LIBS -lX11" fi ########################################################### ## Definiation of compile args. ## ########################################################### AC_ARG_WITH([gtk2-im-module-dir], [AS_HELP_STRING([--with-gtk2-im-module-dir=dir], [Select GTK2 immodule dir])], [GTK2_IM_MODULEDIR=$with_gtk2_im_module_dir]) AC_ARG_WITH([gtk2-im-module-dir], [AS_HELP_STRING([--with-gtk2-im-module-dir=dir], [Select GTK2 immodule dir])], [GTK2_IM_MODULEDIR=$with_gtk2_im_module_dir]) AC_ARG_WITH([gtk3-im-module-dir], [AS_HELP_STRING([--with-gtk3-im-module-dir=dir], [Select GTK3 immodule dir])], [GTK3_IM_MODULEDIR=$with_gtk3_im_module_dir]) AC_ARG_WITH([qt3-moc], [AS_HELP_STRING([--with-qt3-moc=file], [Select QT3 moc program (default to QT3_PREFIX/bin/moc)])], [QT3_MOC=$with_qt3_moc]) AC_ARG_WITH([qt4-moc], [AS_HELP_STRING([--with-qt4-moc=file], [Select QT4 moc program (default to QT4_PREFIX/bin/moc)])], [QT4_MOC=$with_qt4_moc]) AC_ARG_WITH([qt3-im-module-dir], [AS_HELP_STRING([--with-qt3-im-module-dir=dir], [Select QT3 immodule dir])], [QT3_IM_MODULEDIR=$with_qt3_im_module_dir]) AC_ARG_WITH([qt4-im-module-dir], [AS_HELP_STRING([--with-qt4-im-module-dir=dir], [Select QT4 immodule dir])], [QT4_IM_MODULEDIR=$with_qt4_im_module_dir]) AC_ARG_WITH([clutter-im-module-dir], [AS_HELP_STRING([--with-clutter-im-module-dir=dir], [Select clutter immodule dir])], [CLUTTER_IM_MODULEDIR=$with_clutter_im_module_dir]) AC_ARG_WITH([gtk-version], [AS_HELP_STRING([--with-gtk-version=2 or 3], [Select gtk version if both gtk2 and gtk3 are available (default is 3)])], [WANT_GTK_VERSION=$withval], [WANT_GTK_VERSION=3]) AC_ARG_ENABLE([ld-version-script], [AS_HELP_STRING([--enable-ld-version-script], [Use ld version script to limit exported symbols])], [], [enable_ld_version_script=no]) AC_ARG_ENABLE([ltdladvise], [AS_HELP_STRING([--enable-ltdladvise], [Use lt_dladvise for module loading])], [], [enable_ltdladvise=no]) AC_ARG_ENABLE([debug], [AS_HELP_STRING([--enable-debug], [Turn on debugging])], [], [enable_debug=no]) AC_ARG_ENABLE([tests], [AS_HELP_STRING([--enable-tests], [Build tests/*])], [], [enable_tests=no]) AC_ARG_ENABLE([documents], [AS_HELP_STRING([--enable-documents], [build documents])], [], [enable_documents=no]) AC_ARG_ENABLE([hash-map], [AS_HELP_STRING([--enable-hash-map], [Use hash_map instead of std::map internally])], [], [enable_hash_map=no]) AC_ARG_ENABLE([config-simple], [AS_HELP_STRING([--disable-config-simple], [Do not build Simple Config module])], [], [enable_config_simple=yes]) AC_ARG_ENABLE([config-socket], [AS_HELP_STRING([--disable-config-socket], [Do not build Socket Config module])], [], [enable_config_socket=yes]) AC_ARG_ENABLE([frontend-x11], [AS_HELP_STRING([--disable-frontend-x11], [Do not build X11 FrontEnd module])], [], [enable_frontend_x11=yes]) AC_ARG_ENABLE([frontend-socket], [AS_HELP_STRING([--disable-frontend-socket], [Do not build Socket FrontEnd module])], [], [enable_frontend_socket=yes]) AC_ARG_ENABLE([im-rawcode], [AS_HELP_STRING([--disable-im-rawcode], [Do not build RawCode IMEngine module])], [], [enable_im_rawcode=yes]) AC_ARG_ENABLE([im-socket], [AS_HELP_STRING([--disable-im-socket], [Do not build Socket IMEngine module])], [], [enable_im_socket=yes]) AC_ARG_ENABLE([filter-sctc], [AS_HELP_STRING([--disable-filter-sctc], [Do not build Simplified/Traditional Chinese conversion Filter module])], [], [enable_filter_sctc=yes]) AC_ARG_ENABLE([orig-gtk2-immodule], [AS_HELP_STRING([--enable-orig-gtk2-immodule], [Build original GTK2 IMModule])], [], [enable_orig_gtk2_immodule=no]) AC_ARG_ENABLE([orig-gtk3-immodule], [AS_HELP_STRING([--enable-orig-gtk3-immodule], [Build original GTK3 IMModule])], [], [enable_orig_gtk3_immodule=no]) AC_ARG_ENABLE([agent], [AS_HELP_STRING([--disable-im-agent], [Do not build scim-im-agent (required by other immodules)])], [], [enable_im_agent=yes]) AC_ARG_ENABLE([gtk2-immodule], [AS_HELP_STRING([--disable-gtk2-immodule], [Do not build GTK2 IMModule])], [], [enable_gtk2_immodule=yes]) AC_ARG_ENABLE([gtk3-immodule], [AS_HELP_STRING([--disable-gtk3-immodule], [Do not build GTK3 IMModule])], [], [enable_gtk3_immodule=yes]) AC_ARG_ENABLE([qt3-immodule], [AS_HELP_STRING([--disable-qt3-immodule], [Do not build QT3 IMModule])], [], [enable_qt3_immodule=yes]) AC_ARG_ENABLE([qt4-immodule], [AS_HELP_STRING([--disable-qt4-immodule], [Do not build QT4 IMModule])], [], [enable_qt4_immodule=yes]) AC_ARG_ENABLE([clutter-immodule], [AS_HELP_STRING([--disable-clutter-immodule], [Do not build CLUTTER IMModule])], [], [enable_clutter_immodule=yes]) AC_ARG_ENABLE([panel-gtk], [AS_HELP_STRING([--disable-panel-gtk], [Do not build GTK2 Panel])], [], [enable_panel_gtk=check]) AC_ARG_ENABLE([setup-ui], [AS_HELP_STRING([--disable-setup-ui], [Do not build Setup UI])], [], [enable_setup_ui=yes]) if test "$have_x" = "yes"; then SCIM_BUILD_X11_UTILS=1 enable_x11_utils=yes else SCIM_BUILD_X11_UTILS=0 enable_x11_utils=no fi if test "$enable_hash_map" = "yes"; then AC_DEFINE(ENABLE_HASH_MAP,1,[Use hash map instead of map in libscim]) fi if test "$enable_debug" = "yes"; then AC_DEFINE(ENABLE_DEBUG,1,[Define this to enable the debug facility in libscim]) CFLAGS="$CFLAGS -g" CXXFLAGS="$CXXFLAGS -g" else enable_debug=no fi if test "$enable_tests" = "yes"; then SCIM_BUILD_TESTS=1 else SCIM_BUILD_TESTS=0 enable_tests=no fi if test "$enable_documents" = "yes"; then SCIM_DOCUMENTS=1 else SCIM_DOCUMENTS=0 enable_documents=no fi if test "$enable_ltdladvise" = "yes"; then SCIM_LTDLADVISE=1 else SCIM_LTDLADVISE=0 fi if test "$enable_config_simple" = "yes"; then SCIM_BUILD_CONFIG_SIMPLE=1 else SCIM_BUILD_CONFIG_SIMPLE=0 enable_config_simple=no fi if test "$enable_config_socket" = "yes" -a "$socket_ok" = "yes"; then SCIM_BUILD_CONFIG_SOCKET=1 else SCIM_BUILD_CONFIG_SOCKET=0 enable_config_socket=no fi if test "$enable_frontend_x11" = "yes" -a "$have_x" = "yes"; then SCIM_BUILD_FRONTEND_X11=1 else SCIM_BUILD_FRONTEND_X11=0 enable_frontend_x11=no fi if test "$enable_frontend_socket" = "yes" -a "$socket_ok" = "yes"; then SCIM_BUILD_FRONTEND_SOCKET=1 else SCIM_BUILD_FRONTEND_SOCKET=0 enable_frontend_socket=no fi if test "$enable_im_rawcode" = "yes"; then SCIM_BUILD_IMENGINE_RAWCODE=1 else SCIM_BUILD_IMENGINE_RAWCODE=0 enable_im_rawcode=no fi if test "$enable_im_socket" = "yes" -a "$socket_ok" = "yes"; then SCIM_BUILD_IMENGINE_SOCKET=1 else SCIM_BUILD_IMENGINE_SOCKET=0 enable_im_socket=no fi if test "$enable_filter_sctc" = "yes"; then SCIM_BUILD_FILTER_SCTC=1 else SCIM_BUILD_FILTER_SCTC=0 enable_filter_sctc=no fi if test "$enable_orig_gtk2_immodule" = "yes" -a "$SCIM_HAS_GTK2" = "yes"; then SCIM_BUILD_ORIG_GTK2_IMMODULE=1 else SCIM_BUILD_ORIG_GTK2_IMMODULE=0 enable_orig_gtk2_immodule=no fi if test "$enable_orig_gtk3_immodule" = "yes" -a "$SCIM_HAS_GTK3" = "yes"; then SCIM_BUILD_ORIG_GTK3_IMMODULE=1 else SCIM_BUILD_ORIG_GTK3_IMMODULE=0 enable_orig_gtk3_immodule=no fi if test "$enable_gtk3_immodule" = "yes" -a "$SCIM_HAS_GTK3" = "yes"; then SCIM_BUILD_GTK3_IMMODULE=1 SCIM_BUILD_IMMODULE=1 enable_immodule=yes else SCIM_BUILD_GTK3_IMMODULE=0 enable_gtk3_immodule=no fi if test "$enable_im_agent" = "yes"; then SCIM_BUILD_IM_AGENT=1 else SCIM_BUILD_IM_AGENT=0 enable_im_agent=no fi SCIM_BUILD_IMMODULE=0 enable_immodule=no if test "$enable_gtk2_immodule" = "yes" -a "$SCIM_HAS_GTK2" = "yes"; then SCIM_BUILD_GTK2_IMMODULE=1 SCIM_BUILD_IMMODULE=1 enable_immodule=yes SCIM_BUILD_IM_AGENT=1 enable_im_agent=yes else SCIM_BUILD_GTK2_IMMODULE=0 enable_gtk2_immodule=no fi if test "$enable_gtk3_immodule" = "yes" -a "$SCIM_HAS_GTK3" = "yes"; then SCIM_BUILD_GTK3_IMMODULE=1 SCIM_BUILD_IMMODULE=1 enable_immodule=yes SCIM_BUILD_IM_AGENT=1 enable_im_agent=yes else SCIM_BUILD_GTK3_IMMODULE=0 enable_gtk3_immodule=no fi if test "$enable_qt3_immodule" = "yes" -a "$SCIM_HAS_QT3" = "yes"; then SCIM_BUILD_QT3_IMMODULE=1 SCIM_BUILD_IMMODULE=1 enable_immodule=yes SCIM_BUILD_IM_AGENT=1 enable_im_agent=yes else SCIM_BUILD_QT3_IMMODULE=0 enable_qt3_immodule=no fi if test "$enable_qt4_immodule" = "yes" -a "$SCIM_HAS_QT4" = "yes"; then SCIM_BUILD_QT4_IMMODULE=1 SCIM_BUILD_IMMODULE=1 enable_immodule=yes SCIM_BUILD_IM_AGENT=1 enable_im_agent=yes else SCIM_BUILD_QT4_IMMODULE=0 enable_qt4_immodule=no fi if test "$enable_clutter_immodule" = "yes" -a "$SCIM_HAS_CLUTTER" = "yes"; then SCIM_BUILD_CLUTTER_IMMODULE=1 SCIM_BUILD_IMMODULE=1 enable_immodule=yes SCIM_BUILD_IM_AGENT=1 enable_im_agent=yes else SCIM_BUILD_CLUTTER_IMMODULE=0 enable_clutter_immodule=no fi if test "$SCIM_HAS_GTK3" = "yes" -a "$SCIM_HAS_GTK2" = "yes"; then if test "$WANT_GTK_VERSION" = "2"; then USE_GTK_VERSION="2" else USE_GTK_VERSION="3" fi elif test "$SCIM_HAS_GTK3" = "yes"; then USE_GTK_VERSION="3" elif test "$SCIM_HAS_GTK2" = "yes"; then USE_GTK_VERSION="2" fi if test "$USE_GTK_VERSION" = "3"; then SCIM_HAS_GTK=yes GTK_LIBDIR=$GTK3_LIBDIR GTK_VERSION=$GTK3_VERSION GTK_MAJOR_VERSION=3 GTK_BINARY_VERSION=$GTK3_BINARY_VERSION GTK_CFLAGS=$GTK3_CFLAGS GTK_LIBS=$GTK3_LIBS AC_SUBST(GTK_LIBDIR) AC_SUBST(GTK_VERSION) AC_SUBST(GTK_MAJOR_VERSION) AC_SUBST(GTK_BINARY_VERSION) AC_SUBST(GTK_CFLAGS) AC_SUBST(GTK_LIBS) elif test "$USE_GTK_VERSION" = "2"; then SCIM_HAS_GTK=yes GTK_LIBDIR=$GTK2_LIBDIR GTK_VERSION=$GTK2_VERSION GTK_MAJOR_VERSION=2 GTK_BINARY_VERSION=$GTK2_BINARY_VERSION GTK_CFLAGS=$GTK2_CFLAGS GTK_LIBS=$GTK2_LIBS AC_SUBST(GTK_LIBDIR) AC_SUBST(GTK_VERSION) AC_SUBST(GTK_MAJOR_VERSION) AC_SUBST(GTK_BINARY_VERSION) AC_SUBST(GTK_CFLAGS) AC_SUBST(GTK_LIBS) else SCIM_HAS_GTK=no fi if test "$enable_setup_ui" = "yes" -a "$SCIM_HAS_GTK" = "yes"; then SCIM_BUILD_SCIM_SETUP=1 AC_DEFINE(HAVE_SCIM_SETUP,1,[Have scim-setup program.]) else SCIM_BUILD_SCIM_SETUP=0 enable_setup_ui=no fi if test "$SCIM_HAS_GTK" = "yes"; then enable_gtk_utils=yes SCIM_BUILD_GTK_UTILS=1 else enable_gtk_utils=no SCIM_BUILD_GTK_UTILS=0 fi enable_tray_icon=no if test \( "$SCIM_HAS_GTK3"="yes" -o "$SCIM_HAS_GTK2_2" = "yes" \) -a "$no_x" != "yes"; then enable_tray_icon=yes AC_DEFINE(ENABLE_TRAY_ICON,1,[Enable the TrayIcon code.]) fi SCIM_BUILD_PANEL_GTK=0 if test "$enable_panel_gtk" != "no"; then enable_panel_gtk=no if test "$SCIM_HAS_GTHREAD2" = "yes" -a "$SCIM_HAS_GTK" = "yes"; then SCIM_BUILD_PANEL_GTK=1 enable_panel_gtk=yes fi fi #if nothing needs libscim-gtkutils, just disable it if test "$enable_panel_gtk" != "yes" -a "$enable_setup_ui" != "yes"; then enable_gtk_utils=no SCIM_BUILD_GTK_UTILS=0 fi AM_CONDITIONAL(SCIM_LD_VERSION_SCRIPT, [test "$enable_ld_version_script" = "yes"]) AM_CONDITIONAL(SCIM_LTDLADVISE, [test "$enable_ltdladvise" = "yes"]) AM_CONDITIONAL(SCIM_BUILD_TESTS, [test "$enable_tests" = "yes"]) AM_CONDITIONAL(SCIM_BUILD_DOCUMENTS, [test "$enable_documents" = "yes"]) AM_CONDITIONAL(SCIM_BUILD_CONFIG_SIMPLE, [test "$enable_config_simple" = "yes"]) AM_CONDITIONAL(SCIM_BUILD_CONFIG_SOCKET, [test "$enable_config_socket" = "yes"]) AM_CONDITIONAL(SCIM_BUILD_FRONTEND_X11, [test "$enable_frontend_x11" = "yes"]) AM_CONDITIONAL(SCIM_BUILD_FRONTEND_SOCKET, [test "$enable_frontend_socket" = "yes"]) AM_CONDITIONAL(SCIM_BUILD_IMENGINE_SOCKET, [test "$enable_im_socket" = "yes"]) AM_CONDITIONAL(SCIM_BUILD_IMENGINE_RAWCODE, [test "$enable_im_rawcode" = "yes"]) AM_CONDITIONAL(SCIM_BUILD_ORIG_GTK2_IMMODULE, [test "$enable_orig_gtk2_immodule" = "yes"]) AM_CONDITIONAL(SCIM_BUILD_ORIG_GTK3_IMMODULE, [test "$enable_orig_gtk3_immodule" = "yes"]) AM_CONDITIONAL(SCIM_BUILD_IM_AGENT, [test "$enable_im_agent" = "yes"]) AM_CONDITIONAL(SCIM_BUILD_GTK2_IMMODULE, [test "$enable_gtk2_immodule" = "yes"]) AM_CONDITIONAL(SCIM_BUILD_GTK3_IMMODULE, [test "$enable_gtk3_immodule" = "yes"]) AM_CONDITIONAL(SCIM_BUILD_QT3_IMMODULE, [test "$enable_qt3_immodule" = "yes"]) AM_CONDITIONAL(SCIM_BUILD_QT4_IMMODULE, [test "$enable_qt4_immodule" = "yes"]) AM_CONDITIONAL(SCIM_BUILD_CLUTTER_IMMODULE, [test "$enable_clutter_immodule" = "yes"]) AM_CONDITIONAL(SCIM_BUILD_IMMODULE, [test "$enable_immodule" = "yes"]) AM_CONDITIONAL(SCIM_BUILD_FILTER_SCTC, [test "$enable_filter_sctc" = "yes"]) AM_CONDITIONAL(SCIM_BUILD_SCIM_SETUP, [test "$enable_setup_ui" = "yes"]) AM_CONDITIONAL(SCIM_BUILD_GTK_UTILS, [test "$enable_gtk_utils" = "yes"]) AM_CONDITIONAL(SCIM_BUILD_X11_UTILS, [test "$enable_x11_utils" = "yes"]) AM_CONDITIONAL(SCIM_BUILD_TRAY_ICON, [test "$enable_tray_icon" = "yes"]) AM_CONDITIONAL(SCIM_BUILD_PANEL_GTK, [test "$enable_panel_gtk" = "yes"]) AC_SUBST(SCIM_LTDLADVISE) AC_SUBST(SCIM_BUILD_TESTS) AC_SUBST(SCIM_BUILD_DOCUMENTS) AC_SUBST(SCIM_BUILD_CONFIG_SIMPLE) AC_SUBST(SCIM_BUILD_CONFIG_SOCKET) AC_SUBST(SCIM_BUILD_FRONTEND_X11) AC_SUBST(SCIM_BUILD_FRONTEND_SOCKET) AC_SUBST(SCIM_BUILD_IMENGINE_RAWCODE) AC_SUBST(SCIM_BUILD_IMENGINE_TABLE) AC_SUBST(SCIM_BUILD_IMENGINE_SOCKET) AC_SUBST(SCIM_BUILD_FILTER_SCTC) AC_SUBST(SCIM_BUILD_ORIG_GTK2_IMMODULE) AC_SUBST(SCIM_BUILD_ORIG_GTK3_IMMODULE) AC_SUBST(SCIM_BUILD_SCIM_SETUP) AC_SUBST(SCIM_BUILD_PANEL_GTK) AC_SUBST(SCIM_BUILD_GTK_UTILS) AC_SUBST(SCIM_BUILD_X11_UTILS) AC_SUBST(SCIM_BUILD_IM_AGENT) AC_SUBST(SCIM_BUILD_GTK2_IMMODULE) AC_SUBST(SCIM_BUILD_GTK3_IMMODULE) AC_SUBST(SCIM_BUILD_QT3_IMMODULE) AC_SUBST(SCIM_BUILD_QT4_IMMODULE) AC_SUBST(SCIM_BUILD_CLUTTER_IMMODULE) AC_SUBST(SCIM_BUILD_IMMODULE) # Output All necessary Paths. SCIM_DATADIR="$datadir/scim" SCIM_SYSCONFDIR="$sysconfdir" SCIM_ICONDIR="$datadir/scim/icons" SCIM_MODULE_PATH="$libdir/scim$SCIM_EPOCH" SCIM_LIBEXECDIR="$libdir/scim$SCIM_EPOCH" SCIM_LOCALEDIR="$datadir/locale" SCIM_TEMPDIR="/tmp" SCIM_PREFIX="$prefix" SCIM_LIBDIR="$libdir" AC_SUBST(SCIM_DATADIR) AC_SUBST(SCIM_SYSCONFDIR) AC_SUBST(SCIM_ICONDIR) AC_SUBST(SCIM_MODULE_PATH) AC_SUBST(SCIM_LIBEXECDIR) AC_SUBST(SCIM_LOCALEDIR) AC_SUBST(SCIM_TEMPDIR) AC_SUBST(SCIM_PREFIX) AC_SUBST(SCIM_LIBDIR) ########################################################### ## Output files. ## ########################################################### AC_SUBST(ac_aux_dir) AC_CONFIG_FILES([Makefile po/Makefile.in src/Makefile src/scim_types.h utils/Makefile data/Makefile data/icons/Makefile data/pixmaps/Makefile modules/Makefile modules/FrontEnd/IMdkit/Makefile modules/FrontEnd/Makefile modules/IMEngine/Makefile modules/Filter/Makefile modules/Config/Makefile modules/SetupUI/Makefile docs/scim.cfg docs/Makefile docs/manual/Makefile configs/Makefile extras/Makefile extras/gtk_immodule/gtk2/Makefile extras/gtk_immodule/gtk3/Makefile extras/setup/Makefile extras/setup/scim-setup extras/panel/Makefile extras/immodules/Makefile extras/immodules/common/Makefile extras/immodules/agent/Makefile extras/immodules/client-common/Makefile extras/immodules/client-gtk/gtk2/Makefile extras/immodules/client-gtk/gtk3/Makefile extras/immodules/client-qt/qt3/Makefile extras/immodules/client-qt/qt4/Makefile extras/immodules/client-clutter/Makefile extras/immodules/doc/Makefile tests/Makefile scim.pc scim-gtkutils.pc scim-x11utils.pc scim.spec]) AC_OUTPUT AC_MSG_RESULT([ Build options: Version $SCIM_VERSION Install prefix $prefix Build shared libs $enable_shared Build static libs $enable_static Build tests/* $enable_tests Enable debug $enable_debug Enable ld version script $enable_ld_version_script Enable lt_dladvise $enable_ltdladvise Build documents $enable_documents Module options: Simple config module $enable_config_simple Socket config module $enable_config_socket X11 FrontEnd module $enable_frontend_x11 Socket FrontEnd module $enable_frontend_socket RawCode IMEngine module $enable_im_rawcode Socket IMEngine module $enable_im_socket SCTC Filter module $enable_filter_sctc GTK Utility Library $enable_gtk_utils X11 Utility Library $enable_x11_utils GTK Version $USE_GTK_VERSION GUI Setup Utility $enable_setup_ui GTK Panel GUI $enable_panel_gtk Enable TrayIcon $enable_tray_icon GTK2 IMModule dir $GTK2_IM_MODULEDIR GTK3 IMModule dir $GTK3_IM_MODULEDIR QT3 IMModule dir $QT3_IM_MODULEDIR QT4 IMModule dir $QT4_IM_MODULEDIR Clutter IMModule dir $CLUTTER_IM_MODULEDIR QT3 moc program $QT3_MOC QT4 moc program $QT4_MOC Original GTK2 IMModule $enable_orig_gtk2_immodule Original GTK3 IMModule $enable_orig_gtk3_immodule Scim IM Agent $enable_im_agent GTK2 IMModule $enable_gtk2_immodule GTK3 IMModule $enable_gtk3_immodule QT3 IMModule $enable_qt3_immodule QT4 IMModule $enable_qt4_immodule CLUTTER IMModule $enable_clutter_immodule ]) scim-1.4.14/data/000077500000000000000000000000001177210725600134555ustar00rootroot00000000000000scim-1.4.14/data/Makefile.am000066400000000000000000000015501177210725600155120ustar00rootroot00000000000000## Makefile.am -- Process this file with automake to produce Makefile.in ## Copyright (C) 2002 James Su ## ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2, or (at your option) ## any later version. ## ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. MAINTAINERCLEANFILES = Makefile.in CLEANFILES = *.bak SUBDIRS = icons pixmaps scim-1.4.14/data/Makefile.in000066400000000000000000000525271177210725600155350ustar00rootroot00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = data DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ ARGZ_H = @ARGZ_H@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CLUTTER_BINARY_VERSION = @CLUTTER_BINARY_VERSION@ CLUTTER_CFLAGS = @CLUTTER_CFLAGS@ CLUTTER_IMCONTEXT_LIBDIR = @CLUTTER_IMCONTEXT_LIBDIR@ CLUTTER_IM_MODULEDIR = @CLUTTER_IM_MODULEDIR@ CLUTTER_LIBDIR = @CLUTTER_LIBDIR@ CLUTTER_LIBS = @CLUTTER_LIBS@ CLUTTER_VERSION = @CLUTTER_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOCBOOK_XSL = @DOCBOOK_XSL@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@ GTHREAD2_LIBS = @GTHREAD2_LIBS@ GTK2_CFLAGS = @GTK2_CFLAGS@ GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@ GTK2_LIBS = @GTK2_LIBS@ GTK3_CFLAGS = @GTK3_CFLAGS@ GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@ GTK3_LIBS = @GTK3_LIBS@ GTK_BINARY_VERSION = @GTK_BINARY_VERSION@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBDIR = @GTK_LIBDIR@ GTK_LIBS = @GTK_LIBS@ GTK_MAJOR_VERSION = @GTK_MAJOR_VERSION@ GTK_VERSION = @GTK_VERSION@ HAVE_GRAPHVIZ = @HAVE_GRAPHVIZ@ INCLTDL = @INCLTDL@ INCLUDE_STDINT = @INCLUDE_STDINT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBLTDL = @LIBLTDL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_DEPS = @LIBTOOL_DEPS@ LIBTOOL_EXPORT_OPTIONS = @LIBTOOL_EXPORT_OPTIONS@ LIPO = @LIPO@ LN_S = @LN_S@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ QT3_CFLAGS = @QT3_CFLAGS@ QT3_IM_MODULEDIR = @QT3_IM_MODULEDIR@ QT3_LIBDIR = @QT3_LIBDIR@ QT3_LIBS = @QT3_LIBS@ QT3_MOC = @QT3_MOC@ QT3_PREFIX = @QT3_PREFIX@ QT4_CFLAGS = @QT4_CFLAGS@ QT4_IM_MODULEDIR = @QT4_IM_MODULEDIR@ QT4_LIBDIR = @QT4_LIBDIR@ QT4_LIBS = @QT4_LIBS@ QT4_MOC = @QT4_MOC@ QT4_PREFIX = @QT4_PREFIX@ RANLIB = @RANLIB@ SCIM_AGE = @SCIM_AGE@ SCIM_BINARY_VERSION = @SCIM_BINARY_VERSION@ SCIM_BRIDGE_MAJOR_VERSION = @SCIM_BRIDGE_MAJOR_VERSION@ SCIM_BRIDGE_MICRO_VERSION = @SCIM_BRIDGE_MICRO_VERSION@ SCIM_BRIDGE_MINOR_VERSION = @SCIM_BRIDGE_MINOR_VERSION@ SCIM_BRIDGE_VERSION = @SCIM_BRIDGE_VERSION@ SCIM_BUILD_CLUTTER_IMMODULE = @SCIM_BUILD_CLUTTER_IMMODULE@ SCIM_BUILD_CONFIG_SIMPLE = @SCIM_BUILD_CONFIG_SIMPLE@ SCIM_BUILD_CONFIG_SOCKET = @SCIM_BUILD_CONFIG_SOCKET@ SCIM_BUILD_DOCUMENTS = @SCIM_BUILD_DOCUMENTS@ SCIM_BUILD_FILTER_SCTC = @SCIM_BUILD_FILTER_SCTC@ SCIM_BUILD_FRONTEND_SOCKET = @SCIM_BUILD_FRONTEND_SOCKET@ SCIM_BUILD_FRONTEND_X11 = @SCIM_BUILD_FRONTEND_X11@ SCIM_BUILD_GTK2_IMMODULE = @SCIM_BUILD_GTK2_IMMODULE@ SCIM_BUILD_GTK3_IMMODULE = @SCIM_BUILD_GTK3_IMMODULE@ SCIM_BUILD_GTK_UTILS = @SCIM_BUILD_GTK_UTILS@ SCIM_BUILD_IMENGINE_RAWCODE = @SCIM_BUILD_IMENGINE_RAWCODE@ SCIM_BUILD_IMENGINE_SOCKET = @SCIM_BUILD_IMENGINE_SOCKET@ SCIM_BUILD_IMENGINE_TABLE = @SCIM_BUILD_IMENGINE_TABLE@ SCIM_BUILD_IMMODULE = @SCIM_BUILD_IMMODULE@ SCIM_BUILD_IM_AGENT = @SCIM_BUILD_IM_AGENT@ SCIM_BUILD_ORIG_GTK2_IMMODULE = @SCIM_BUILD_ORIG_GTK2_IMMODULE@ SCIM_BUILD_ORIG_GTK3_IMMODULE = @SCIM_BUILD_ORIG_GTK3_IMMODULE@ SCIM_BUILD_PANEL_GTK = @SCIM_BUILD_PANEL_GTK@ SCIM_BUILD_QT3_IMMODULE = @SCIM_BUILD_QT3_IMMODULE@ SCIM_BUILD_QT4_IMMODULE = @SCIM_BUILD_QT4_IMMODULE@ SCIM_BUILD_SCIM_SETUP = @SCIM_BUILD_SCIM_SETUP@ SCIM_BUILD_TESTS = @SCIM_BUILD_TESTS@ SCIM_BUILD_X11_UTILS = @SCIM_BUILD_X11_UTILS@ SCIM_CURRENT = @SCIM_CURRENT@ SCIM_DATADIR = @SCIM_DATADIR@ SCIM_EPOCH = @SCIM_EPOCH@ SCIM_ICONDIR = @SCIM_ICONDIR@ SCIM_LIBDIR = @SCIM_LIBDIR@ SCIM_LIBEXECDIR = @SCIM_LIBEXECDIR@ SCIM_LOCALEDIR = @SCIM_LOCALEDIR@ SCIM_LTDLADVISE = @SCIM_LTDLADVISE@ SCIM_MAJOR_VERSION = @SCIM_MAJOR_VERSION@ SCIM_MICRO_VERSION = @SCIM_MICRO_VERSION@ SCIM_MINOR_VERSION = @SCIM_MINOR_VERSION@ SCIM_MODULE_PATH = @SCIM_MODULE_PATH@ SCIM_PREFIX = @SCIM_PREFIX@ SCIM_REVISION = @SCIM_REVISION@ SCIM_SYSCONFDIR = @SCIM_SYSCONFDIR@ SCIM_TEMPDIR = @SCIM_TEMPDIR@ SCIM_VERSION = @SCIM_VERSION@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UINT16 = @UINT16@ UINT32 = @UINT32@ UINT64 = @UINT64@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XMKMF = @XMKMF@ XSLTPROC = @XSLTPROC@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_aux_dir = @ac_aux_dir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ MAINTAINERCLEANFILES = Makefile.in CLEANFILES = *.bak SUBDIRS = icons pixmaps all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu data/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ ctags ctags-recursive distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: scim-1.4.14/data/icons/000077500000000000000000000000001177210725600145705ustar00rootroot00000000000000scim-1.4.14/data/icons/Makefile.am000066400000000000000000000032621177210725600166270ustar00rootroot00000000000000## Makefile.am -- Process this file with automake to produce Makefile.in ## Copyright (C) 2002 James Su ## ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2, or (at your option) ## any later version. ## ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. MAINTAINERCLEANFILES = Makefile.in NOINST_ICONS = setup.xpm \ full-letter.xpm \ half-letter.xpm \ help.xpm \ up.xpm \ down.xpm \ left.xpm \ right.xpm \ pin-down.xpm \ pin-up.xpm \ full-punct.xpm \ half-punct.xpm \ trademark.xpm \ menu.xpm INST_ICONS = pin-up.png \ pin-down.png \ full-letter.png \ half-letter.png \ full-punct.png \ half-punct.png \ setup.png \ help.png \ up.png \ down.png \ left.png \ right.png \ trademark.png \ rawcode.png \ keyboard.png \ menu.png SCTC_FILTER_ICONS = sctc.png \ sctc-sc-to-tc.png \ sctc-tc-to-sc.png if SCIM_BUILD_FILTER_SCTC INST_SCTC_ICONS = $(SCTC_FILTER_ICONS) endif EXTRA_DIST = $(NOINST_ICONS) \ $(INST_ICONS) \ $(SCTC_FILTER_ICONS) icondir = @SCIM_ICONDIR@ icon_DATA = $(INST_ICONS) $(INST_SCTC_ICONS) scim-1.4.14/data/icons/Makefile.in000066400000000000000000000417061177210725600166450ustar00rootroot00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = data/icons DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(icondir)" DATA = $(icon_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ ARGZ_H = @ARGZ_H@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CLUTTER_BINARY_VERSION = @CLUTTER_BINARY_VERSION@ CLUTTER_CFLAGS = @CLUTTER_CFLAGS@ CLUTTER_IMCONTEXT_LIBDIR = @CLUTTER_IMCONTEXT_LIBDIR@ CLUTTER_IM_MODULEDIR = @CLUTTER_IM_MODULEDIR@ CLUTTER_LIBDIR = @CLUTTER_LIBDIR@ CLUTTER_LIBS = @CLUTTER_LIBS@ CLUTTER_VERSION = @CLUTTER_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOCBOOK_XSL = @DOCBOOK_XSL@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@ GTHREAD2_LIBS = @GTHREAD2_LIBS@ GTK2_CFLAGS = @GTK2_CFLAGS@ GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@ GTK2_LIBS = @GTK2_LIBS@ GTK3_CFLAGS = @GTK3_CFLAGS@ GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@ GTK3_LIBS = @GTK3_LIBS@ GTK_BINARY_VERSION = @GTK_BINARY_VERSION@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBDIR = @GTK_LIBDIR@ GTK_LIBS = @GTK_LIBS@ GTK_MAJOR_VERSION = @GTK_MAJOR_VERSION@ GTK_VERSION = @GTK_VERSION@ HAVE_GRAPHVIZ = @HAVE_GRAPHVIZ@ INCLTDL = @INCLTDL@ INCLUDE_STDINT = @INCLUDE_STDINT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBLTDL = @LIBLTDL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_DEPS = @LIBTOOL_DEPS@ LIBTOOL_EXPORT_OPTIONS = @LIBTOOL_EXPORT_OPTIONS@ LIPO = @LIPO@ LN_S = @LN_S@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ QT3_CFLAGS = @QT3_CFLAGS@ QT3_IM_MODULEDIR = @QT3_IM_MODULEDIR@ QT3_LIBDIR = @QT3_LIBDIR@ QT3_LIBS = @QT3_LIBS@ QT3_MOC = @QT3_MOC@ QT3_PREFIX = @QT3_PREFIX@ QT4_CFLAGS = @QT4_CFLAGS@ QT4_IM_MODULEDIR = @QT4_IM_MODULEDIR@ QT4_LIBDIR = @QT4_LIBDIR@ QT4_LIBS = @QT4_LIBS@ QT4_MOC = @QT4_MOC@ QT4_PREFIX = @QT4_PREFIX@ RANLIB = @RANLIB@ SCIM_AGE = @SCIM_AGE@ SCIM_BINARY_VERSION = @SCIM_BINARY_VERSION@ SCIM_BRIDGE_MAJOR_VERSION = @SCIM_BRIDGE_MAJOR_VERSION@ SCIM_BRIDGE_MICRO_VERSION = @SCIM_BRIDGE_MICRO_VERSION@ SCIM_BRIDGE_MINOR_VERSION = @SCIM_BRIDGE_MINOR_VERSION@ SCIM_BRIDGE_VERSION = @SCIM_BRIDGE_VERSION@ SCIM_BUILD_CLUTTER_IMMODULE = @SCIM_BUILD_CLUTTER_IMMODULE@ SCIM_BUILD_CONFIG_SIMPLE = @SCIM_BUILD_CONFIG_SIMPLE@ SCIM_BUILD_CONFIG_SOCKET = @SCIM_BUILD_CONFIG_SOCKET@ SCIM_BUILD_DOCUMENTS = @SCIM_BUILD_DOCUMENTS@ SCIM_BUILD_FILTER_SCTC = @SCIM_BUILD_FILTER_SCTC@ SCIM_BUILD_FRONTEND_SOCKET = @SCIM_BUILD_FRONTEND_SOCKET@ SCIM_BUILD_FRONTEND_X11 = @SCIM_BUILD_FRONTEND_X11@ SCIM_BUILD_GTK2_IMMODULE = @SCIM_BUILD_GTK2_IMMODULE@ SCIM_BUILD_GTK3_IMMODULE = @SCIM_BUILD_GTK3_IMMODULE@ SCIM_BUILD_GTK_UTILS = @SCIM_BUILD_GTK_UTILS@ SCIM_BUILD_IMENGINE_RAWCODE = @SCIM_BUILD_IMENGINE_RAWCODE@ SCIM_BUILD_IMENGINE_SOCKET = @SCIM_BUILD_IMENGINE_SOCKET@ SCIM_BUILD_IMENGINE_TABLE = @SCIM_BUILD_IMENGINE_TABLE@ SCIM_BUILD_IMMODULE = @SCIM_BUILD_IMMODULE@ SCIM_BUILD_IM_AGENT = @SCIM_BUILD_IM_AGENT@ SCIM_BUILD_ORIG_GTK2_IMMODULE = @SCIM_BUILD_ORIG_GTK2_IMMODULE@ SCIM_BUILD_ORIG_GTK3_IMMODULE = @SCIM_BUILD_ORIG_GTK3_IMMODULE@ SCIM_BUILD_PANEL_GTK = @SCIM_BUILD_PANEL_GTK@ SCIM_BUILD_QT3_IMMODULE = @SCIM_BUILD_QT3_IMMODULE@ SCIM_BUILD_QT4_IMMODULE = @SCIM_BUILD_QT4_IMMODULE@ SCIM_BUILD_SCIM_SETUP = @SCIM_BUILD_SCIM_SETUP@ SCIM_BUILD_TESTS = @SCIM_BUILD_TESTS@ SCIM_BUILD_X11_UTILS = @SCIM_BUILD_X11_UTILS@ SCIM_CURRENT = @SCIM_CURRENT@ SCIM_DATADIR = @SCIM_DATADIR@ SCIM_EPOCH = @SCIM_EPOCH@ SCIM_ICONDIR = @SCIM_ICONDIR@ SCIM_LIBDIR = @SCIM_LIBDIR@ SCIM_LIBEXECDIR = @SCIM_LIBEXECDIR@ SCIM_LOCALEDIR = @SCIM_LOCALEDIR@ SCIM_LTDLADVISE = @SCIM_LTDLADVISE@ SCIM_MAJOR_VERSION = @SCIM_MAJOR_VERSION@ SCIM_MICRO_VERSION = @SCIM_MICRO_VERSION@ SCIM_MINOR_VERSION = @SCIM_MINOR_VERSION@ SCIM_MODULE_PATH = @SCIM_MODULE_PATH@ SCIM_PREFIX = @SCIM_PREFIX@ SCIM_REVISION = @SCIM_REVISION@ SCIM_SYSCONFDIR = @SCIM_SYSCONFDIR@ SCIM_TEMPDIR = @SCIM_TEMPDIR@ SCIM_VERSION = @SCIM_VERSION@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UINT16 = @UINT16@ UINT32 = @UINT32@ UINT64 = @UINT64@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XMKMF = @XMKMF@ XSLTPROC = @XSLTPROC@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_aux_dir = @ac_aux_dir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ MAINTAINERCLEANFILES = Makefile.in NOINST_ICONS = setup.xpm \ full-letter.xpm \ half-letter.xpm \ help.xpm \ up.xpm \ down.xpm \ left.xpm \ right.xpm \ pin-down.xpm \ pin-up.xpm \ full-punct.xpm \ half-punct.xpm \ trademark.xpm \ menu.xpm INST_ICONS = pin-up.png \ pin-down.png \ full-letter.png \ half-letter.png \ full-punct.png \ half-punct.png \ setup.png \ help.png \ up.png \ down.png \ left.png \ right.png \ trademark.png \ rawcode.png \ keyboard.png \ menu.png SCTC_FILTER_ICONS = sctc.png \ sctc-sc-to-tc.png \ sctc-tc-to-sc.png @SCIM_BUILD_FILTER_SCTC_TRUE@INST_SCTC_ICONS = $(SCTC_FILTER_ICONS) EXTRA_DIST = $(NOINST_ICONS) \ $(INST_ICONS) \ $(SCTC_FILTER_ICONS) icondir = @SCIM_ICONDIR@ icon_DATA = $(INST_ICONS) $(INST_SCTC_ICONS) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/icons/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu data/icons/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-iconDATA: $(icon_DATA) @$(NORMAL_INSTALL) test -z "$(icondir)" || $(MKDIR_P) "$(DESTDIR)$(icondir)" @list='$(icon_DATA)'; test -n "$(icondir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(icondir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(icondir)" || exit $$?; \ done uninstall-iconDATA: @$(NORMAL_UNINSTALL) @list='$(icon_DATA)'; test -n "$(icondir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(icondir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(icondir)" && rm -f $$files tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(icondir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-iconDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-iconDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-iconDATA install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ uninstall uninstall-am uninstall-iconDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: scim-1.4.14/data/icons/down.png000066400000000000000000000022341177210725600162460ustar00rootroot00000000000000‰PNG  IHDR szzôbKGDÿÿÿ ½§“ pHYs  ÒÝ~ütIMEÓ .råТ)IDATxœí—L”uÇ_ß»ãŽÂ ”$¤1 ¦Cݰ á`ÙœæØ"Qi°lZµHúÃTðØ gBýQ)Í4Úš‹ÃjËM¥Ñe §6j:Aîî¹çùô?ºƒ;ñ‡ýÁ{ûîî¶çó~¿žçù<ßçsJDx˜2=ÔôY€ÿ€Åï{`ùônÀ˜¡¿ñ´>`h¼§ÿˆv{Hi<ÍÛm¤æ†›€¹À“¿\eÙG'Ùuà3T°ƒFït±#5‰w¯ÝâçêöÌ Ü Ä+¿ë`÷oж8‘†<”)¥n»ÿ9º6/ s ÁAuå§Ô*¥&PO" <ítñ†¡óÒÆ50Ͻ¬døv°` t›Õ t,IfwY½|<žú²ÉÀj§‹2³™õÏ,‡H›nÀÍ^"î±Ú1i‚„Y ŠráVµK;$¶ {¨ü¦†»Rúî“Õy•’H9)‚Ù$CnÌØg¦kˆWŸnàÓ ”I§`çV±=ÞÁ‡¯$3DxðÔï×(:×Å«öHrÒúÑǼ†}'úˆ&ˆæÝ€•¿Bck%s"è(}ŸÍãêí@æùK”vu³oA«=ªMðÐôÉ4·ÝëM— keš—¢µà˜ÃÅ5”Ô$YÎ_ÙÑ}ƒ×—.„ù±Þ õšor€ÁÞA¼ƒÐ|t¥&yØ–qvꋪ¨b[βýÆmŠ—¦ÂÜhOÈZ¯^߃út»þ„A-øUÐt!)ÎMézHœOuí *î P˜‘¦éY3èK×Áu¹¿xÿ+¿y +<@ÍI¼V¼N#&Ü;yDýCa\¸deuº‡pKSÑ=·•c§Â8rНo}¥*nq0&¥”žý¦L[À[%ë…DÇýæ“©§7ІÅñÓ|9Ø¢ª¿€{¨q‘D)eZ]&UÉ ìßö,,NêŸvøå¿£ùü[h<£åŒå= ò0 RŠ;¥<>–º­ù°|ѽ)‡w^‰áø÷ÐÚ~ë0íó뀛€[‚……˜ Gw+I™-qvŽäBvzߤá΋vNþm?¹ösnÙàñ„:>€?ˆ<¾…µVÊ ó(ؘz7n:Kí Ú½=ÍÇpmhîˆHèNžÀDôRãíìËˤtÛº>l–ÿvÏÌÑf; ­ÞV®¼SÏõº À] ýxŒJD¦²FAÍm–O6íi>? ΋·¥ùü€lÚ+BN_Äæ)úNÀÂôÈ r(·Bäp“Hn…Ù·%@ `š†ç´ ÏËΤ¥“¬+U@*ÃÙ´ÂEdJ=¼1†'%+Æxƒ=f“úÌþ5›xØÿŒ‚ì^™ÔæIEND®B`‚scim-1.4.14/data/icons/down.xpm000066400000000000000000000025561177210725600162750ustar00rootroot00000000000000/* XPM */ static const char *down_xpm[] = { /* columns rows colors chars-per-pixel */ "16 16 64 1", " c #000000", ". c #03060c", "X c #050b12", "o c #060f19", "O c #001f03", "+ c #05141e", "@ c #071620", "# c #0b293e", "$ c #070144", "% c #0b0265", "& c #0c026b", "* c #0c0271", "= c #0d324c", "- c #0d3652", "; c #026f0c", ": c #02710c", "> c #144059", ", c #18425f", "< c #0d4864", "1 c #0e5775", "2 c #114560", "3 c #124d6f", "4 c #254a64", "5 c #600a01", "6 c #6d0b02", "7 c #106589", "8 c #10698f", "9 c #337f9e", "0 c #0e8fb6", "q c #0e96bd", "w c #1697b7", "e c #1299bb", "r c #1f95b2", "t c #2b91ae", "y c #2695b1", "u c #0e9ec3", "i c #0fa0c4", "p c #0eadcb", "a c #14a5c9", "s c #1ca2c3", "d c #1babca", "f c #1bb2ce", "g c #1db4d0", "h c #1bbad1", "j c #2ab4d1", "k c #15c1da", "l c #64a3bd", "z c #46b8d5", "x c #53b7d4", "c c #54bdd7", "v c #40d1db", "b c #5fc0d8", "n c #46dbe6", "m c #48dfe9", "M c #8fcce2", "N c #a0cbdf", "B c #a7dcec", "V c #bfdfee", "C c #d3e5f0", "Z c #dfeff8", "A c #e0f1fb", "S c #eff3fc", "D c white", "F c None", /* pixels */ "FFFFFFFFFFFFFFFF", "FFFFFFFFFFFFFFFF", "FFFFF3334,=FFFFF", "FFFFF3NSCl+FFFFF", "FFFFF3AcMt+FFFFF", "FFFFF3Spvy+FFFFF", "FFFFF4Aqmr+FFFFF", "F-3344Vqhe12># F", "FF-9ABc0qkms7.FF", "FFF-9Duqims7oFFF", "FFFF=tDams7XFFFF", "FFFFF=9As7XFFFFF", "FFFFFF-87oFFFFFF", "FFFFFFF-.FFFFFFF", "FFFFFFFFFFFFFFFF", "FFFFFFFFFFFFFFFF" }; scim-1.4.14/data/icons/full-letter.png000066400000000000000000000032341177210725600175370ustar00rootroot00000000000000‰PNG  IHDR szzôbKGDÿÿÿ ½§“ pHYs  d_‘tIMEÓ>#Sî)IDATxœí—ËowÇ?ç73÷åëWì¤N¬PÒ4¶¡‰L„J!(Ué"©+ĆTbQ¡ªR±a‡Ô®*ª‚hK  ¨‚ô!…ÆqÝ?jÇvçúu¯ïÍ}Ìü~¿Ãb®-ÛÄQ(‹nz¤sG3šßœÏ9ßó;3>µOØäNoTU3:M×è4GVª ²$&A©L±ÖÄ Ôº:ûÂ}\ûÆçiˆˆþߪ ]ªÐu†¡w¯rz~™Sõw…!ÙØ’kňu8…F>ËᙈW3!¿xJ’  ªä'æ8þæßŸã›×—9`L.9ðPh&ÐŒA Ô›¸\†‹aÀ¯­ã¥ž•Úÿ  ªrc•®rãçÞã™á mÆd‹98q/Üw7ôuC` 0žzË0sþ5óKà<´,ïy­Z]ûñkÏu/ß1@»ì…ÙC½ÈÓÃ|Ëy²ƒ»á¡£pìGG1c ÞÃ(U S pþ,UðÀ‹µòì^ÿågw šgèÂ(OÏóX­Añácpd?Òß“PˆÀ#H<5C`Á+4ZpaÔðòyH,±W~òÎÉϦ~“img¶_ø÷,¾È÷ÿñ>O,V(ž<¹&8šÖÓ²ŽVâh&žFKiÆžÄ)±õxïÉe”S÷;Î<ùˆL.â‡C‡£G÷>vé¿âm¹ ªfx’¯^™æq wü Øç‰L¯1±õ2yÞñÄ6õÄ*Þ{²‘çä¡„Cû!¶ì ž¢ø`ïmÞ¥g~‘¯UìöŠìÛÅlÔŠWpNA=ÖÞ·ÐTçS7FéïVÂ2_>¸O¼-ÀûSŸ\à+ æèÝèà¨W·ñð(ÍE›–{¯Ö§îTÈf”¡Ã ‡÷C6¢##< ; §àÒW„LÐÂ+¢*XëÒ*xï±ÖÒlYmK¢*’Ó]Dh º‹ÐÛaA–@´9f¸ù¤Ñ"ï=ùBz;Ó{^I3w`ÄFÀˆld¾Q‡J{oå"ȇ*½Eó†\Ä=m€æ-úº©G2¹z»\{Ô¥fQpþD¡GD4ûôFQ”tiâ íêt†  o{Ì-'åA½… ÒHAðxEED¬P¼‡H¢Ù"¤:¥-­X±Ö3ÐÒY€™èvÙ·|ñf/Œ²ò‘Q¯¨¨*Á:ðídÄ"°>EUp‰Ç¡i3¢Tmç \c‰m¶`OµLÈD3fo- é7"m”´×ðˆx@Û "QÁ˜u÷ûT6 Œ”kBå&”ÊL·õÛ°í“éfp¹rVÖÒÆkk¼1²×ÛÜy¥•q-«4Ö=ZNÓàíu•5X­ÂÔ#À–Wôv€j_çÊ5*#ã°Z‹ðiPTUÑÍ€xmï«8«XE¬CTUÏ»Ç^Ø)øŽ› /}”ݵ{ð‘LÈ·;ó|§¿›ž®óµ§Hb¡Ö€µ:,¬Pº®o°öÎY&ž9O埥‚ß`‹ø›¡ãh/ÙÁ2ç2œ,d9”ϰàf‹¥r鸾:BíÒ9–þx™¥WhLÕÙ6x>ÀV Hßhé$]odG:dbÒ­vGL>µOÜþ-8_®ïé“IEND®B`‚scim-1.4.14/data/icons/full-letter.xpm000066400000000000000000000006321177210725600175560ustar00rootroot00000000000000/* XPM */ static const char *full_letter_xpm[]={ "16 16 2 1", ". c None", "# c #0000ff", "................", ".....######.....", "....#.....##....", "...#........#...", "..#..........#..", ".##...........#.", ".#............#.", ".#............#.", ".#............#.", ".#............#.", ".#...........##.", "..#..........#..", "...#........#...", "....##.....#....", ".....######.....", "................"}; scim-1.4.14/data/icons/full-punct.png000066400000000000000000000015721177210725600173740ustar00rootroot00000000000000‰PNG  IHDR szzôbKGDÿÿÿ ½§“ pHYs  ÒÝ~ütIMEÓ f ‚ŒIDATxœí•OhWÇ?ovv²Æd»›[M‘Œ±¢‡Z¢—Eh‹ÐK­j±.…D±  R,hñ”C°EÉEZ šŠ m¤¥-Û’?.æ/Iv²;;»3ó~íÊ&T³‰½ìçöÞï}~ïË{¼¨R¥ÊÿŒZlr֖ȇ—x«)ÎöœË¦»)Zv½HWŵp ÷?9¬ôJyeryyæç{t||™Îý;0Æg`ëf¸Ñ Eøª©wn}´Ùr½GÌÚùôK.ÜMqt[ ü6 G_‡Ïz mÓ¸9NvÚæxÞåRïÅ…fËõʜ閎òu}-Ì;p¶£ aS)#ðÆI ÛCaÇêhý¶SUâÁBý¦3¼šq`x9ñvFP3„h­åú©Ï7Á¶êñÙ[©W l²Îó ›G|¡Pôp=­µøHsró*Ñ^©`–Ü"ÞäìiC‚@p\ˆG8B!h²ùž…LößðËõÊN !ʆBþz€Ò‚xZIÎlÇg>Ð÷{=©4J ¦¬Ô+ ­åÃ`f ‡;ㆈˆÀ ÿï˜:öÊ)@6cõ÷=©çqK½²+ØÞÂÈÍ;¼·>Nר,kÎtÇŒ?FP{ÚT| sY‚¡ôÜG¤?}\¯èCm ƒ¥^Ù ìÛ¡üÆ(=3󼿱‘‘Þ_Qµ5p{5<ñµL Nᗃ݌wyëY&îÈ$Ú2ù¾Ôƒ%>Åì#bÑd…Ù±h/zs™Ü v®Ž2Ñí=‰×[{Õ a´¾ÀËßS?.ꮉ¤¼Mˆì<"Îbuc±É•$=ÅO†‚x”ÕÞ«ŒÝHǺ×D¶¼)îRkÌ¥ •HŠ•žâÐÐ}.û<·k©§ ‘ Øâ¹26Á+€ŠXh3ı¥œ HÊù{iås4½…×ÕÞJ®Æä`éßoÕÌÛ4jóF¦cu¼{û‚êYÉþÿI")[I9ýT7­R¥RŸkH|àIEND®B`‚scim-1.4.14/data/icons/full-punct.xpm000066400000000000000000000006341177210725600174120ustar00rootroot00000000000000/* XPM */ static const char * full_punct_xpm[] = { "16 16 2 1", " c None", ". c #1520EF", " ", " ", " ", " ", " .... ... ", " .. .. ..... ", " . . ..... ", " . . ..... ", " .. .. .... ", " .... ... ", " .. ", " ... ", " ... ", " ", " ", " "}; scim-1.4.14/data/icons/half-letter.png000066400000000000000000000033161177210725600175100ustar00rootroot00000000000000‰PNG  IHDR szzôbKGDÿÿÿ ½§“ pHYs  d_‘tIMEÓ9’Ÿª®[IDATxœí—KlWÇçÌÜ™¹×¾öõMüHœ8qÀM‰“‘–¶4¥‹¶(š©RT<łDŽ*^ª6,ŠŠ„ZR©ÚRQ¨¨HS%EIí8v;vìëøqíû˜9ç|,æ&NœÚµºé¦Ÿ4Íh¾ùÿæ|ßùŸ3ða|À¡Öú ˆ¬öŽVÀ6®ë@¢”Z1aÍ7Dë1ÌW`â:Œ•`nU‘º“µŠê…1®"?«Æü#ŸåÍ®"¥'?£Üû¸!^©ÂÐ8ŒMÂÔ8¡A<p[xñ›BŸ+"Ä™ õ4ÏÅ /ýº€¿š8ÀÙKpñ*X í­°uòR¥±Ñ ŽÒ4pP‰ásÚãSa†¿V,‡^A\œ¹ç/èß{ú §ÓRÈYj XFÇ…1œï1ÓÙ;·A³ÎSüèKOË7ö{ \3àUªÈÛïÀÉ¡ô‰]ö6ÂçÄ©Ö ±±PKðê†w&gáÀ½Ž/„Î"­žæç…޾ïï<’d×PO°C08N oxÚb“â,5ã¨K=±ÔGµ.R‹ï%×^`ïöͰ©CØ{—å“Û!ÌË|}{ÿ؆ý'ïл톈èù Œ]ƒZ ›Û!“q(©â$&6îf™œgAiåxõmJ¥Y2¥9X¬:<íØÒ•н´f£ïñTKÇîÎ÷oj:nQ…&ˆüˆÁ ÊZi ~#Ù»-·àipN:Û„‡v ¹´â±žõÈ{$#SP3Кƒ(¬+ˆµ( ĉRX¬±NTÆW*ʤéO=Ýëy.ãáûSx+ ¥…mz7BÆ'Àò(à­Àô,8Qâêâ'¢b#8cÁZQÎ9Œ1R« yøÚ »£Š- ž_ƒ¯5a]ÅÔ7tÀÇ ö†«,6l#. ±°N°V´µV[+bEpPøæ¯¯-Ï:߃æZ"+Öˆ$VÄÓ"¡/lér4g!Ìл¹ÿ‰Âªå YpKNj,$N\bÅZkIŒðµ_Få¾n¶Ç1Ï×ê°o†Áâœ!±¥•X1”+à{óë·w® *5TµŽJœÅ¢PÈMg4+ºžˆúÎo›2ì‰ s¶R‡|¶tVpÆ‘¡Vw,T ‹‹ Ó³°XcpÇŸ™¸Up¹+cq"Çš(§p¢ ñÃ?´i rϧÿ3¼'Ж‡¯ZÖ&‡…MÁ8°^”#Ÿ…«%J¥ËoÄ«ŒM”«ÏŽø´6çg: &ï)éy ¿v­ÐL¶R炯ËÎØÀæäÈþ9¢¬#uJ±KGLyZ%VaƯs‘¥eû]::‹gàò$e3û¿×€UKPéïåøÙŽVc¾ðð'`GÏ•º–Ö¬•L€à@iMÚ•S)…±ök£·- Œf9Î]æe&ÿr0· Þ6 ”RîÁŒšy~j–s¯œ€‰™&š³V¡ëDY„Ôi•kH#pÜèô¸2Ýıã00ÊðÂÔécLþy‚e{ƒ;| ³@åñùgløÅÐU&ÿôwŸK¥û“?Þšã7[»èxô~èí¨±¾¥‚nTùF¾“ô¬\/G\œÈñÒ›0x…™¡ó'~Êø#0µ¼þï p „>|ø°œð>Ùšã]Evôn€]w¥¦³®¥J>¬£ÌÕB¦ç³”à̺ Cã _9û,ÿÞùû•ÄW¸µo,,¶w?ø|>Ÿå‰õ­ZrМ…L£… Õ›;çòð¸¼Ìü[Ǹð½×™û×äJâ«Ü{þ¦iº»°»?Èp0 ¸'Ò— èX¬Sš]`$®Ìœaáäk”^KlIM&&jkú1ù0>ðø?S–A\J½6IEND®B`‚scim-1.4.14/data/icons/half-letter.xpm000066400000000000000000000006321177210725600175260ustar00rootroot00000000000000/* XPM */ static const char *half_letter_xpm[]={ "16 16 2 1", ". c None", "# c #0000ff", "................", "................", "..........##....", "..........#.#...", "..........#..#..", "..........#...#.", "..........#...#.", ".........#....#.", ".........#....#.", "........#.....#.", ".......#.....##.", ".....##......#..", "...##.......#...", "....##.....#....", ".....######.....", "................"}; scim-1.4.14/data/icons/half-punct.png000066400000000000000000000007651177210725600173470ustar00rootroot00000000000000‰PNG  IHDR szzôbKGDÿÿÿ ½§“ pHYs  ÒÝ~ütIMEÓ §kŸ'‚IDATxœíÕ¯‹QÆñÏ1¸E ê4-{aÁj1 – "lÐ`’uÁdý¶Ø¼É ›i‹Åâ°ˆpƒl<tÅ¢‚‚Žáñ‚wæîxG ;O™yÎû¾ß9¿†^½zít….‹eu‡±_±…­Ã÷ÖEY]Æ aCHñ÷´Üü".a ïñ·ñºbwCó;Ö`"Ö0_À ËñQ\Íïkx;-iWM±•–>œÇ¡~#À ¥±§…ß0jéÃ+|žâ¿©ñÖ[úp/ñ ¾oòãx× Å0Ä¿¾x”㺠(Åð7qÏ‘2€Ǻ¼NïIeõ  ¶OÝt¡Ÿ¯jôWв:‚Í.ÿsìÃ"¤îþ€³ùùmÖÀ©WñŸª(+Æk¿š­Ó³r:›ÜüŒñù?)†§³òæ>†EYÄuãŸÑB¶Ÿ¥Nm'.€¢¬náöOØR ç¶[£‹x r@tÐò aù@C@ÁÅÄ\@Ì¡¯ÏÀÅÏVó „bø¤ßñwˆC>ñD? ~| œ8 ñõ~A‹‚pD‹·7‹¯/Vÿ]ºÄðgˆÇË—3Üüì0PˆÍp  »«€–@-ò%]]Øëë˜deÁò?}bøxò$ßoߨþÿùÃÀÂÉÉÀ£¥7ãW_ÃÍùóîÕBCÃ1 èt† >¿²\Š——A¼¤„5 bè³g ŸnÞd`–—g„Š!ƒw»w3p²³3p @BäÆ †»µµ nÝ¥##‘Bd7@a8ççAÁ. dKÏžÍÀ¤ª ‰ç»w>¿Ï ^\L8y-dxþbÉçÏ · Îõƒ¢#šÁÙÄ„%Á€‚]"'‡IÈZú÷ɆÏïÞg9¨©10£¤—=*YY ªÜÜ P0XŒ–('AäßgÒZ œyypEo.^d™0Ó—§€Nþý›h8ƒ³3ƒ°0BþˆիáÜßGŽ0lš7(úèÅD ´ €à!Íçb@6»0} ÃÌ**¨–f¸Í›^¾„¨¥øiÓ~@Jè<<Àxû7ƒ˜@5Aö€Ë˜2€Bv@<8»éé10Ò0ø`˜äCd°gŠ<¿zÅðáÂTu`¹?Àú¹f ƒ<ÐÇœ¬S@,°â(hÀ ’‚¸ p‰Š"8 _êøþEÍ}`hh;8 ˆý†ÊŸ«Wþÿü %î›@»fBŠôÄõ½¨ù“™‹ â#ä ãÄ H\ËÉ10> LoPäoÿúÅ ÌnÈàï ¿ÏÃHŸ ¯Ü€Ú r@ªX@`gaa`%l˜Ç±Û¬¬ K–0°Bó>ØCÀ´ð#1«znDå ® ° 7(ë ?>pZÚ+WbXþÍÑ‘áßì•¢ RÅ ˆ(˜‰t02hC«å艽€Ú „ ÀÄÂõö-Qõ8°PB±èãÀ`¹ÀÀ„Gï[´ X Öÿ ,:ñYüd°³C‘û ´œh93ÇC8àˆ@°xr¨>—ø÷µvZöÉÅ f$>X È×|ÏÁN$Öã ä€*ŠWPFH-ÁP1f4Ìúð!¢<߸C¾qü…"¨ˆÞ˜6£€Ácð˜­d˜™ úD¨¢‚áÚ5`‰,~-b`•zÀµ¿>:Ð abÄ‚”2€ÒÁ¿d M-|à2 Û ÿXD]ýéS Z`ûi,€‰J{`°ª9Bè AAÜ)T´nÛÆ ¬5ÁØêa°±Á›€K×£ÀJ èÑÆ2h• ² €0$ë  c` ÃϾ~eºUTò>UýU åÛ­)PÜ—¡5HˆK!á …û'Ÿ=øl^)ЉaÈ L'àúTåÂ(- óa–kI¨å v€#º<@am”®„6JAí`£SWYÓ[ 6B\ÄÒµkŽÅ v`3ì(°€‚Y^Ž¥Q @8›åË€–ÿƒ6˹€u„0¡©€jC"ÀµGޝ€Uöh³¼G³ €vLA&¸c l˜ÈIK3H£…èsa!!H“ ˜º?£ä10¸ïsÃG`ùñõÄ2€"ªk6©kö= hýBäî¼kVFD× €ˆr2˜i¼À;§0ËÿC;§E$vNˆq »çµê•H†ÍIEND®B`‚scim-1.4.14/data/icons/help.xpm000066400000000000000000000012361177210725600162500ustar00rootroot00000000000000/* XPM */ static const char *help_xpm[] = { /* columns rows colors chars-per-pixel */ "16 16 16 1", " c black", ". c #00385b", "X c #003e66", "o c #00406a", "O c #004572", "+ c #00528c", "@ c #005896", "# c #005a99", "$ c #2a82bf", "% c #2982c0", "& c #408fc6", "* c #4f97ca", "= c #66a7d1", "- c #6baad2", "; c #8bbbdc", ": c None", /* pixels */ "::::...... :::::", ":::.$+ ++ :::", "::X-+ :::.$++ ::", "::O* :::::.$+ ::", "::.$+ ::::X&+ ::", ":::.++ :::o&+ ::", ":::: ::.=+ :::", "::::::::.;# ::::", ":::::::.=# :::::", "::::::.$+ ::::::", "::::::.$+ ::::::", "::::::: :::::::", "::::::::::::::::", ":::::::..:::::::", "::::::.=+ ::::::", "::::::: :::::::" }; scim-1.4.14/data/icons/keyboard.png000066400000000000000000000022461177210725600171020ustar00rootroot00000000000000‰PNG  IHDRàw=øbKGDÿÿÿ ½§“ pHYs  ÒÝ~ütIMEÓ:3µ”Þ{3IDATxœÍ•AhgÇßìì7f;³Ù®în̦±í.VhŒ Rsˆô„¤/уâÅÞ¹Ò«Pró’’F¤Pƒ9ô"ôƒVÑíÆlv2¥³;»³»3=dfÙ¨±…zèßð¾yÿÿûÞûæ ¼\»vmöúõëßu¹”÷ÁÛ—/_þþm껢îß¿ÿíÇsµZ e[¹\îÇóçÏÿÚý^¹\Vnݺõ9 |sƒ=±ùÂÂÂsss›‹‹‹Ó€377÷a>Ÿ?Ùl6¿zS©ÔïCCC(ŠyúôéèÍ›7gK¥ÒÏ€çÛÞ¸wïÞgÏž]|Í-º­¯¯/}äÈ‘Q)å à#¿{&¼ SSS¿~@ЀÐì$öMúöÖÆ¾áœ™™ªT*À+ŸP÷ Ú@‹ú%ð|_“®ºwã&G£Ñs·oßž>ð3¬ù^WLyØ?Ý>ßÚ@ÞkÃîšiÓÓÓ À„뺸®K»ÝFA«Õ¢Õjáº.B2™ ±X ]׉D"hš†¦i,--155õ5° ü 8Ý'˜¼xñâ„”²C˜H$( †A,Ã4Mž?N(BUU Óü‰Fà ™Œ0220”€Õ׆u]§P(°¾¾Ž‚/^ ( ëëë(Š‚‚F£A"‘@Q\×¥¿ÿTU¡ÕrÑuà ×/¥Ä7¾¬T*¤Ói¤”T«UZ­ýýý<{öŒv»Íþýû‘RR*•(‹H)Éd2@˜rùš¦100ði±XTƒþ=º®æº.ªª"„À0 àZ­‹ÅˆÇã8Žƒã8$“IÚí6ÛÛÛ ¢ª*½½½¬¬¬0<<œ.‹Òo~çã(ŠÂ“'O°m›ÍÍMÒé4–eá8¦i …¨V«hšÆÚÚår™z½Np)’É$Ñh4 ¤üÖ8™Ífyðà…BEÙù.ãp¨LmnˆH´?æ=t8ì+¯†¶° Cc©ùyqV-`éôu²†D÷ëwؼ¾ŒëþäƒÝ_»‰ÄÀ0u7pGX±H“=Ž7g¿$’ [×üõFm;öðbŠXêÞ´ËBF*ÛòÖ³"Y0233õÛ—¿v²–Ý%çS1L,•5º¥s!#•“W2#hë¦Ïç“¶<ÍáÓ?¥ÚäÓZY”n/«y‘QÉè‚Ðg ð»újÒmgbþ£­,™ÅÊœ ž÷•R)É0]]HU{ˆ{Ëà—¿Ó1 ±ÔÓsn3+—üìU²])Õkþ¾žŠ @_ü„#-¼Rtü­^´Ò–Zíkã¡,ÖO|V¶öÑŸc¹H}»ššyg×7-AZÓM΃痙4–Wï_.›”R*w ®³ù÷«lÝqØK8–b¹ÉFb¸é>Õñ¿òýÌB¢þ›Vj ÿ%H™»SVÿZHÜŒ¢V”A 6†ür:äÿçˆ'@Q¤IEND®B`‚scim-1.4.14/data/icons/left.xpm000066400000000000000000000017211177210725600162510ustar00rootroot00000000000000/* XPM */ static const char * left_xpm[] = { "16 16 40 1", " c None", ". c #000000", "+ c #0A121F", "@ c #071728", "# c #105375", "$ c #155678", "% c #1CA2C3", "& c #16597A", "* c #138DB0", "= c #3CD7E1", "- c #0A263B", "; c #081E31", "> c #48DFE9", ", c #0EA0C5", "' c #159ABC", ") c #2A98B3", "! c #178EAC", "~ c #061625", "{ c #0E97BF", "] c #26BDD3", "^ c #43D5DE", "/ c #2CC7D5", "( c #19B3CE", "_ c #091A2B", ": c #124C6E", "< c #819EBA", "[ c #DDEFF8", "} c #59C3DA", "| c #1197B9", "1 c #58ACC5", "2 c #FDFBFD", "3 c #71D1E0", "4 c #9DDAEB", "5 c #CDEBF6", "6 c #80C2DB", "7 c #1A4C6B", "8 c #114760", "9 c #E2F0F9", "0 c #7DA0B8", "a c #20374F", " ", " . ", " +. ", " @#. ", " @$%. ", " @&*=&---.. ", " ;$*>,'')!!. ", " ~$*=,{]^^/(_ ", " :<[}({||||1_ ", " $<23(45256_ ", " 7<2}8$#### ", " 7<9. ", " 70. ", " :a ", " $ ", " "}; scim-1.4.14/data/icons/menu.png000066400000000000000000000023171177210725600162450ustar00rootroot00000000000000‰PNG  IHDR szzôbKGDÿÿÿ ½§“ pHYs  šœtIMEÕ*¨x\IDAT(Ͻ—_lSUÇ?·½ôî¶¥­˜mH¬šèºLÓ T‘0jdC 1j”G³MÆ‹kxóE|àE}`!$êf Ë²ºH`€3K]ºhÛ±ööϽ=>´ÌÑý!-¿ä¼œó»¿ß÷|Ï÷œûûÁ#“x6ö¬ò<%Y–ýº®ûÈV!‡deYëº^ÎA@Ô`Ÿ”L®€˜öövü~?N§³H•$!„XšÒÇü’É$áp˜ÑÑѹ¸Ëf »»[Tú»»WÌ.— €H$‰'Ð4 UU—D_öÛ¿?g.N%« Lãàà Á`pÅÊs:x<ž%­"€l¶xü~?Á`L&C]]Ý¿‚¡A!& &³:çç÷ûçÅY1€L&€×ëÅëõ>õ,ÇY1€ònÇÇÇXÀ@A×0É*®¦ÎÆ7É%þ u/D<ǼÊÅž=´¶zŸÈÚ²(JñÖ„ÃáE5ðÜ«2Žæffn¿Ö3O­­Þ¹8U×€EÎ’Ó.Nµsþ¦ ¬Ÿñúk)ö¾»–Ž[žz§¸z?Í̺­¬oÝÆ'¬t´Õ^s–œ¡0:ÙøèÜÑÀö68z:ßw=8lÔV¦u_Òäõñþ6¿Wd仾4PÏ‚Xâïûô(1Ž´1™„\®˜ØµEa&%ˆ?„#Çfþ}¦¶ŽÍ29 q: ØyåE™¯Ù9z¾ýIcꊩ¶‰5 (óïûöVH$TN­z‡±K …é»ù¾¹uw &EC ¢jPÕù¡Z6CËf;Še'±üVî<0Tcì€h¨ATE#‘6n%!“ÑŸnßõ6.ü¥w 6ƈÞÐ~åºûrÕ4päØ,·´’¿}ÁúKMÅñ`:ë|æÕ ¸\s ”mbR/œ¿’7]ºšày—éS5sýÑPÃHÍ4P¶¡sYSo_š™”Àa“P© è’@e’T|@vïÞM2™\PýÿPd03…á °«< ¯ î<00fEȱQ6›qNàâ¢GH$ðx<ôôô,ùhZ°1t6Eo_šBÞŠç  »ÕÄúF3w0.EC ½Ë®ŠÃá0‡®X[ä9ÝÂØÍà .LXùæÇÃC§™úó,¿Xßö`·[é: ø{ÊØ~º1Ö½®‡¸±îzÕú׿¯„;?ˆ Gó¡âZý爉N«ãïO¦„;æ¶{ÁE(u0,£3ÒÕXµi/Ð’N.ÇbF¿q÷Ú¿ÀØÔñ0%|¢ ›*•Š]êPjŸ–ÕB¬iÞçZ,Ò?gŒ±ævgÞð«m’/“Ñ+)M”Ž’L%R‰Ö™¬Öÿ¦kÓIQÈŽ<>o(kûašÈí|Gïñ”ïbépØMÄ+Xqr€›?Kg€3 ÎIãQï'ä|åi‡Mšà?gÚ¢‰½šæIEND®B`‚scim-1.4.14/data/icons/menu.xpm000066400000000000000000000007511177210725600162650ustar00rootroot00000000000000/* XPM */ static const char *menu_xpm[] = { /* columns rows colors chars-per-pixel */ "16 16 4 1", " c black", ". c #1F4AEA", "X c gray100", "o c None", /* pixels */ "oooooooooooooooo", "oo ooo", "oo XXXXXXXXX ooo", "oo X X ooo", "oo XXXXXXXXX ooo", "oo X . X ooo", "oo XXXXX..XX ooo", "oo X .X.X ooo", "oo XXXXX.XX. ooo", "oo X .XXX.ooo", "oo XXXXX.XXXX.oo", "oo X .XXX...o", "oo XXXXX.X.X.ooo", "oo .. .X.oo", "oooooooo.oo.X.oo", "oooooooooooo..oo" }; scim-1.4.14/data/icons/pin-down.png000066400000000000000000000041331177210725600170320ustar00rootroot00000000000000‰PNG  IHDR szzôbKGDÿÿÿ ½§“ pHYs  ­#½utIMEÓ (Õ÷PõèIDATxœ­—[\ÅÇÿUÝ}.sÛ«¯Y{ Ëbˆ,c‚ rÃQòEÉCÞx‰’—|“<ó—(D‘‡  .Æ€ÈÊY¶7¾íz¯³3;sÎéîª<ì.ì N(éhæœ9ÕõëWÕtÓ©S§ðuXžçÀ0€1 ˆ  ù²,"!â¨R©H„ýZ¢;ö (Ú¼ªîü{~yöwTu³!ú˜ìö76«ýO LžÎÄAÔTQ ¢&€ ª·%Tïü÷É“gf,Ïž}>~6Ý;@cìEU1nŒû1@/㎂0Lë/@,U™ˆ¹¢#¬æÏAäÏ`þÓäÉ3³›Äl†îÀiìŒÅªû3“ý†ØLA…‡ZejE?>¦’ZbK^oÌsÿö™•n£â'iiŒsdÌ€6òÄ~U`ÙŽÕOô"MC#¾ó­²8ú0Q­3ÔLlæ,•>ÁüR‰^yó\·sþrfAf\$|[Å¿¾ _Z qÞ$ÓpÙÔ´MÇd’| {ô¡ª8ýŒáûF3ÃÌ c(FÅèpªªQòuç\¤/%€Üwç§ÓúÑ;åúó%Ô0éÁo&ùô)“>àòC¤õ‡ŽYŽn¨Ù O`;ÔªK–9"BÌ çD<¼‡™|Üûˆ~ߣìe®D¨F”2€±{ÈO[›>ô IšÏÛVꢜ:ùþ“©>v„4KTCdܼméí™ÈKí_zTÞ£( „4„€ªªà}…ù;mÌ|¼Ž+7ë,¢"±×W)%bk·¤Ø²$Äštß¶ùRyöq¦Fur¿ê©ãeüçÛd‹’ðÚ[JóË%?wÂèøh”¢èƒYI7íµç>\Ösç'à}U†þêBÑyÿF(o­*¢Ñï©‚;d524ÊÁ¢ÍºTϡǨéõJyw&åîºÁ3BWgߘŽ(+6÷•1µÒ zãzEoÍŒkÙ«úU¹²Vv._-×Ï]•Ø.( jUw* U´U,Œ!je™NÞhìÁ:…ÒË×--¯€þõNb™ .Ö“¥A²$RQX„Є‹ýµ¹?œ÷ÅGoHèÌÒݞɪʎLÇ@&³Äœ¨wûª †K­:cx°•áÑi‹Ãƒ.,—øà£Ž¼7ÀFm¯gF¤Ò…åÌ4óN\í¶(²%"§W.IX}®è`¢UUÙQœQjAÖà<¡ *Ÿfª1i ÄXéÈ€âÈ¡÷ ôuiUÑ-4–¥RžHìõWÛzmn·}='7ГµÍà€ØìpÙXÐëRå•Ê*ˆØuÛh6ÌL ÅèH¢Ía߈‡÷!õ^°°,®8ª|"e¦Œ6ý·Wºk¯”Ô‡=±» ð*Àøè²‘;ËzEµ­¾=bŒ Uµ 8«È3B–1RÇ "ôKF¿J€J¬*‰Ý ÀöÉ* ~Oœ=û¼˜¤~˜g)«à²¼)æâÕ>mlAøà)ÆH"Š7[¯ˆk e´ðÞª/C9»h›P‰Ñn°e6mÌ…ªx9¨ÄZwâìLænÍZ{¡”ÑBb!ˆ¨†bÜP…`n‰ð懣´¸RC¿}ãFgþ¥¿Æ°üþ&À¦ ª€Š™˜˜ Ýí›/…ÚàÄ÷&}’™³nqñ qDåT"Š*b¹-(KÅZ7¢Ý‰X\Qœ»0·ëÚ_ï.­ßùË+eç—Tº¬o_6µ»íŠ©1ö«‡³Öñ_§õñŸÛ´¾d“(Áû+m6ƒ^¿•2sD¯mÕ"| ¬vStVÛsks|¥X{ãe ‹ïèˆÛÇg30i&&&¾æ×\íè%¨¹«µqc’TT¢Äå6ÅÛ ½Âb½o¤¬8®u¬­sUôº ÝÅ×^-:¯ÿ^üüùÍ™ÇÝã§­»îˆByÓûþåkÅêß^V©Ù¶žd»ÄØá”M#5ÉPœfÐT¼ñe(o­T½Ïúþ¥wÄÏ_Ùœ¹|Aˆê«L €‘«‘iäĵ”MÝ7f‰sD•ÐÕ^ŒÕÃR:€v°Ñt>×ˆÓÆWÝGUßÕ°BÀ E¾ÿÉÝ|ŸSa»¬¯ç‚íìë°x¯´ëûžRìÜ »ã^¥¼Û¹€ ÷YJ¶‚9Áíü} >Ë|ÅF.x…JYm½ô_µð}¡Í/­ƒIEND®B`‚scim-1.4.14/data/icons/pin-down.xpm000066400000000000000000000006701177210725600170540ustar00rootroot00000000000000/* XPM */ static const char * pin_down_xpm[] = { "16 16 4 1", " c None", ". c #000000", "+ c #FFFFFF", "@ c #B4B6B4", " ", " ", " .... ", " ..++++. ", " ...++++++. ", " .+.+++@@@. ", " .++.++@@@.. ", " .++..+@@... ", " .++++..... ", " .+++@@@@.. ", " .+@@@@... ", " .@@@@... ", " ...... ", " ", " ", " "}; scim-1.4.14/data/icons/pin-up.png000066400000000000000000000024631177210725600165130ustar00rootroot00000000000000‰PNG  IHDR szzôbKGDÿÿÿ ½§“ pHYs  ­#½utIMEÓ#pëÿÀIDATxœíÖKlTUðÿwιw^Ng(H¡µÃKb„ø‚êÄͰÒHŒÅàc¡11B4nÄ¥èÆÄ$n1b\¨1 X˜N0a4•Ç@¡¥¥-™Îܹ÷<>Tbƒqb‚ ¾ÝMÎw¾ßùrι‡Ö¯_[â–V¿ ¸ ø?T§‰ùB) 닯”‹¶“y¨“{ _(¥j£‡ßTñ%›…—LêÆè€KéÅ÷杖‹Ó—ë%WoJf6¾ÌÌ-{æ£N;ó’wnIôô¯efÄ’½w ó…Ò®J¹Xÿ ¸WŸøñ­®Þ{1asÀáN÷€Gäùl$7͆’<EÛ“¿¼—/”’7eÜ0vê‰ÌŠI”ÏHv °ÌZ[«±¤Ïbû«Y¤ÓZ åuÇ»ó¯x!_(uý>8_(yñôÐséÅ[·‘ôãÌ@8;5àdÇ›p.\2©¨§ xé)‰Oöjš©yi…D³£¯eûwL8èÚèáÄÀškŽsO*µ:œn^¹rúÙF§EÒ÷•RNz‘qX·&…ÁàÝUš1"›èÉg™A8kA°ìaù€ãÁ¾€‡¦³uÀŽá±cÇŠŠíT¯Î"÷ú;±…Ú’Ð\Ÿ‰(›öqGN`ë–ûŽb²¾Kû|Ö‘Á踦‡Ö¥±v¥á‹£`má¢h`®øŽv©8ËƧ,´q,”cg-…Æòªe9¼¸ÙC"§ ­KáX)‰Ê¨!„ y€0 Û© h¶ÎpƇ‚E"Æ 0„ z³ h£™ØAÁÙ´¢Úl€twš<ß0 @yó“m‚–€`G3pÐ&f°pÎÁ˜ˆud`AJ;°Q¨9• 8ç\¿8oöìÙÓ6 ²L]½NöÂ900† 9¶Î¢X†ðàIë"8çÐ @ sàëXÌìÛ»¯m€Piôô­Bj‘‚± )µFÈÕ†Æþoj<5¥!ü$zºÙ†àw¯TècÀ‚Iyr@©]€ôeU¢ÿy¡TÖWZXk¹0Nýdðó¹¤ š âá„sÊ‚br|Òq¾¯Å bJ‹ëùÇpÐbé}»W…³ÓOy9¥š.ÒÇ(•}nÐ6jݪZgê^J©x¯šv]~µ.äŠþ¦‰ È¿©ÿ&,³Ñìů$øÖ“&2‘iÕ®ê`ìtP=4bÃs©x"óøòxÏš‚HfºÎ\ŽI’‘J'ò…u°Æ8v46£¿ô „`ݘâæÌ‘r¦ÿÉ·ÙÕã—O>­‡€ÅÕ‘áÝŒµùÉÄ ‹ð:ý "‚$”Ÿ„P>Œƒ¨qv8¬~éø£#—NlŒØ¶¸R.:caãȧ6šýÞ1[ Àë´†­Ñ „IDõóG3¶e6\¨”‹óWÊEÎJ_àhöÚû<تž8ŸÈÝé:LëÖå/x†À.¬¯„Íï>ë^2tqnÅ€CÍk'>4­3˜ðìWÀ¦¨£'pãM˜àÌ*å"ÿCŽàÍ}êJ¹h;üWqËŸå·¿f\_íý'o½IEND®B`‚scim-1.4.14/data/icons/pin-up.xpm000066400000000000000000000006661177210725600165360ustar00rootroot00000000000000/* XPM */ static const char * pin_up_xpm[] = { "16 16 4 1", " c None", ". c #000000", "+ c #FFFFFF", "@ c #B4B6B4", " ", " ", " ", " ", " .. . ", " .+. .. ", " .++...+. ", " ++++++.@+@+@+. ", " @@@@@@.@+@+@+. ", " .......@@.@.@. ", " .@...... ", " ... .. ", " .. . ", " ", " ", " "}; scim-1.4.14/data/icons/rawcode.png000066400000000000000000000031251177210725600167230ustar00rootroot00000000000000‰PNG  IHDRàw=øbKGDÿÿÿ ½§“ pHYs  ÒÝ~ütIMEÓ  &à ·;âIDATxœµ•[lWÆ3³×Ùµ½v;k;¾Ô±KBjCš¦IUS n*ˆ@´D©æ$ÚDâ·öûH¨â’R‰¦•‚LK‚œˆˆºmŠJ“æbL.¾{×ÙûÌÎÎÎålG61œ×9ú~çÿÍ÷ÿç¥ü¯¡O–¿ôSì…׫ïî|¨¢vÀ êÚ>aÏßÕP#m^i4î®× l&^ûX©ÇÇ{^S¤.½lknßöñTPRšT¥W¨R †C¨)Þôd ŽÀcýIJPZ? ;ÙéˆWðBÕ…&`/ {ÆNÄÍ^‰ËJó—÷ ÷L ¸ùó²rãá °âY‰éZH^QÉ•§–ŒÔk×C~IÕEÅ/;EsrüìÄwNxÕtϱÝ?yÊ×OSÀÄ*d#àâØàw#í­C‡¡¦Æ¦ps·í朅âµÒÏâ}ÕP°ñxLX´õÄÀ}ßz°!’¬SAnQD"'J*pXØã‘¶sû·=ñK»Nj(^Û”|¼ÿãúË;jzƒõÂú¬.+ÄUYÓïxHE<¤IUÚ<·4®·~Ó&×'tTË“O éuJ)k})OT&€WñÝ1ÇžÒ¿OYñÙ„ª+}ÕÕ¿Ò›jLu ø§¯7;sǤt£‹®}idî÷¯J{zqut€ä¾í_ݳ/Ö2•^²,¼ôháÚÉëwÎNy ¸÷jLåhqøîܳ.š¯HŸ޶èÙW^¼ùë/H/w p‡ú^|d—sû\”jÔ ìÔËr¨‚Z9Y¸y|<ýçÓ€±–¢ 1=–èÞÛãNÿÊn她?üõ­ÜØäGâ]-]ªlϪñúEó_ïÆçöœÚ*ò§¥÷3ÿÇñp°Qôk²%¬é}¯pù°ÌfwQ³“:Zã›ÚMsj6m\IÛÖ vöw1Qfw¨ö Ч?0ÜÕéÎï«úne$u6å»™ógr—ž“Âó>¦TÚ”HÇ nMs ,«»tQf¡’2kÀX>Ò3¢ûÝŠ¨v~£xjOLXØNÚD”sÀ;Žg\ˆúÆL£0µ^Uô[Ö´7Mz±˜°(ôE Üªú9ݵhe hªBV÷-t7/€“î²ÕଈªÖW'Ά šœÅŒî[ìfpÙ*ÊM1a±@¬ ïxv^eÁÚÈjRd퀩¸JtKȯJÃ5 ¸  €y5q1&,vF››A­´v/=¨ ‹e{1˜ÃÆì„+5{·_¨©v%à“™—Øî-%ó(•y'o°ÒbqEc•å×÷kÊ󃶚~s‡¦ô÷ÚSÇ]EóN•SÓÀ¬0Æ³Ó‰Ï K_üq¢ýÓá¨(6†?Uã›ÊiOAV³«Öù÷Äô¶qµˆ÷-õR9|££ûA¼ïÙʥ륫7€`æŽV?Ö£1xÈ_nïUýý~aËn½Ÿ¸&¤ÿ6p‰•7|Ó«"žŒl;¼3”xºÖ+Ô½éyÙ¢“YÎo@S‚M÷÷GŸÙëÞÞ5ªµX7ÊÓYð/oÓ¬ö`3€Ä€V mõ?-s¬4T¬î ͬ<‘5@ ˜a]Éþ>4íbÙ\Ø IEND®B`‚scim-1.4.14/data/icons/right.png000066400000000000000000000022611177210725600164140ustar00rootroot00000000000000‰PNG  IHDR szzôbKGDÿÿÿ ½§“ pHYs  ÒÝ~ütIMEÓ •]ý¥>IDATxœÅ—oLUeÇ?ÏårïewätÓòß"KWKÓäé -Ý’jÍ®eiMW3ã /ܘèæÕ‘*üŸŠ!ºpÂÂ$Û § ݰ0׸À•{ï¹ç<¿^\}uϹ ±ømßíÙ³ó|žßóœß÷w”ˆ0žá×Õ·Ãx2 d@}ï)@†€Ð½±1ð† ¦ï¤Ø²˜,#‚i Z µ°î†ˆ …hܺ–oF»8€r¸™ÇšÙ’“Í–ÌÔØ@ÔÑ€­ÁˆÂ}Ðþ;{v¬WˆˆˆØ)íò5Y²ÿ¬Èà°ˆÖÚV‘ˆ–êz‘’ Ù ¸Þ•PN—0òÔ ºï °óðy†–Öqr%iV/…Y9lzw§|®”Rc•%">ñ\%U'D‚K"QÓV}ý"eûDŠËeãXe@ˆ¾µ¤{kÇU*5¹°,±Õ„“µ0)ƒÝëvP4’$ª0gÏžÍê¹?nnê¤út»­±Õ¤t“5K +kJY6÷!¬ÂÂBIóóéÑfµ]ucжUîTƒåÏA²›÷oäѱ°½ë=|*6A÷Mc&æÏ0Xµ˜—'O¤T)•4&`}õ- Eµ ÐÓçÁ´´­ æ‡Y¬9 }¦…­V/5ÈÏ£dÅ'Ržb¤fd®ï>c¿7™Šc`0äÆÒ'¥,^-0™‘æ7Ë;N5b4nhå%œÉÉäø•ën´Ö¶ò{#¬X^7ˆ™Z\8™Q¢HfÖ_d}²‹•ss#˜.0òpø'hh‘£Ä6ò_üÀ“ ¼ö÷+ó7p'˜VüDÃtQ}2™Ú3ÔÑâÚKÌÂãb$>à‰¦NŠnôñúœ<ÏÆrèö7úùò'ŒU Ü&vt£ð¹×YÞu“ yÓ!Ý´Ý9À©Ö ”×Ñ`6ªmÀ- $¾ÿ0n`Ú]í奩Ù0%#€v8÷¦+é”í¥Ù¼¶mÐ õ H& Î]âMàùéwþËõtžƒ`ïé}Ü(kÔ¨$pYÀ³ÎQ6xa^n?–i?¹ûÏ jë¡¥õòv~]þÐ/"¨P@ðÌÞFЇ†Y–?3€Vö›¹ÕŸJÍ héèÙÅÏO×ÿˆˆêÃxÇ*óÆà0… ç ¢”e{îª#Îwô}ÍżÝÀ±½ñváT ½MdwݤhV^O²%§‘Då!?g[ûëhžRÜ‘¸b“(œ2àúâ$ ³Ò ­+H±ÔÓ §Zǹ0±ø dqpnË}mݸ_)åíá0 ‡IÑ–Ä{ûÝß.Ñžÿ=±B“ðs)€äžz‰Õq;7»ß;£ý/pøßbÜNÇà_œÿòãºþâIEND®B`‚scim-1.4.14/data/icons/right.xpm000066400000000000000000000017771177210725600164470ustar00rootroot00000000000000/* XPM */ static const char * right_xpm[] = { "16 16 43 1", " c None", ". c #000000", "+ c #0B293E", "@ c #03060C", "# c #144059", "$ c #106589", "% c #060F19", "& c #114560", "* c #1CA2C3", "= c #050B12", "- c #0D324C", "; c #05141E", "> c #0E5775", ", c #48DFE9", "' c #18425F", ") c #64A3BD", "! c #2B91AE", "~ c #2695B1", "{ c #1F95B2", "] c #1299BB", "^ c #15C1DA", "/ c #254A64", "( c #D3E5F0", "_ c #8FCCE2", ": c #40D1DB", "< c #1BBAD1", "[ c #0E96BD", "} c #0FA0C4", "| c #124D6F", "1 c #EFF3FC", "2 c #54BDD7", "3 c #0EADCB", "4 c #0E8FB6", "5 c #14A5C9", "6 c #E0F1FB", "7 c #10698F", "8 c #0D3652", "9 c #A0CBDF", "0 c #BFDFEE", "a c #0E9EC3", "b c #FFFFFF", "c c #337F9E", "d c #A7DCEC", " ", " . ", " +@ ", " #$% ", " &*$= ", " -;;;;>,*$= ", " ')!~{]^,*$% ", " /(_:,<[},*$@ ", " |123[[4[5678 ", " |961602abc8 ", " ||||//db!- ", " /6c- ", " |c8 ", " |8 ", " 8 ", " "}; scim-1.4.14/data/icons/sctc-sc-to-tc.png000066400000000000000000000035211177210725600176620ustar00rootroot00000000000000‰PNG  IHDR szzôgAMA± üabKGDÿÿÿ ½§“ pHYs  šœtIMEÕ6 šƒötEXtCommentCreated with The GIMPïd%n¥IDATXÃÍ—}l•WÇ?çy¹÷–ÞÛÞ®Zèm¡åM@; t°À`•ŽŽ 1›bÌæÌÔ%·‰—Á6“-šl’¸m¸-Sp°ñ² -ÂKKW -PÞz[vûvoïí½ÏóÜçÿ VZX¿É“ç9''ç÷9çü~¿ó{àÿPbp;èm˜“åÙî¿ÆŒAm=èmxSªË[cvå{}šTá畊~˜ãm9ÎL©:ÿµïk`Ũð|F×/äú’L¯›iyÍrec»íÛªÖ‹Îÿvµ"`þµ@Ï!ð| ÈÈ•*| ¨rÕé +â>W¶vºªåW¸ÄC]!„ñ4ãÞÉyÉÌ9%³d†ÒŠó3‰¦’jç¥QáígÍ_ERÚfÖ ëVšßÜ´Åvwõ*¢)GV4DE“W_õ[IgÀ_ÚŸ~jÐ\ìQ+NNñªÎ…AÙ±\– òBKÎð.Xóùœ`h´‡ãm–z¾V¾²Ã÷Íôsžè`ýˆßÜüCË};•–^÷éß[¡‰±ÛtQTl¹¯×9²ºÎesÁÙ% ·.@E º·Pjʶ?nÎIþ£¥Hî­ݾ{ÿ•¹g®Ü5oB¾Ç_:Æ+Æ{œ)µõ¶ú³jT¤jÈðAÆtHvÌ7>gË}Ó¤êx'Ãxb†ÆØ\0ƃ*Â_&UdOÔ^ðëkCié’û}5Y¯¬Y:?ÿ÷Ë*æ˜€ËÆm‰¶ƒu}³ÕŽÂ+×ÕÞv†ñƒsÙžýO;²ö´!î^îÊzí~TÖŸþÍ„>çk}½vÅREvØîÖ•Àð±¢-WðÏßqS=µµÍêbýIS»Na®–/ sæpQ ’é –fäÍO¹›ý^}õk™æ³¥BŒN¼ \uî@ÜyìŸiyt¼¤ã2ξé~¢ ïø_øFOþvwÔ5ÿÕ¦ÑÓ]q¡é¤rå ñ×v@ÊU—z!1µE!G®ì³WWØoH~ìê–«ˆÆ˜~À 8¹ûåô7NœQ Yi¸Ò §Úͤé´G¾:ÓC(7 8JEÛ ­<'Ó|±R©„)Õå«…§ÌŒ!’Õtæï?s¤­éîsðgØiˆ[ÐKZB¦­¿5 pµSè–tëŽÜwä¾jMÜU ¦ ¸Yý üƒÀo.ã5½±„c9²Ár ´ÐŸãËŸùŽò~Äò‹Y7ì€OÜ Ê(±èbRP¡E|º"•¤&B6¸[ŒR] ý‰þŽ„ KÑKŽX2i)¿PÖjtϸÁN(<úê2ÛÝ‘TÒý]*uZ¾d‰IíÙ^A.‚@@!3®ËCª ^Õ3J‡Ãz®kÇ/NW]¦l;RHcýNµÔîÞrq0€æÊãÑ‹@Jªs‡ ¤¥:¢Ìô}J@Ñ•¸ÕÓtð%wjeñºdTŸ2ŽòDKg*­Ç)™rÜô¤CÆlÐüaVçäMÌ0ž[÷ûýZæ6BåÍœÀx>¥’’RQTT¤c@û 0q˜‰´Óðàhh…Űáü0³ÏÁ. c°ÿˆÛ¬Œ<8ŸP °­öû 3 Y °óq¨›'tx¯>Û YÇà?… · p3y¶Àw{az&DL ¦µB‹‚Qo‚³|¯Bé.x8ĸU8ÝNaó0¼…’j¨OC0ô¤¨Y þ30§ Þö}ÃUD·+-öÁ£6tí„Â/Á}à‚q‚—SprÌ*ƒ¾»aV v?#`dC{Tφý÷ÀKÎ΃Ù!½Ê»À÷8`c;Tø¡9‡Pß ïŽ„øo<¹æ5À±Ãpêi0ÚauÖ-‚·öÀ÷ N ”çBq šOÃÖ‘rB/p/`N…æ*xùC0ýPÝ 6ÁÙ#°ÙãûØH\;NÜT‚ï,Lk„×öÁ£ç¡¸–?|µž¼¡& I®V«%+á™QàŸ 9Ù0n=ìï†ày¸xÎßì¿à•V |tª6ÃàL…ú*h­ƒ“ S”Ô ð“Yð°Ï‚^Äý`‚ç>†¯Bþ=ð­½Pñ>tÄà‘)ðE™_‡x1¬Ý çºáË#˜? +áç“`ÿG˜²º—ÁÚK.X„î€ÁïÉ~x˜pAíNÒ!’ÔMùߤ꼙+j%IEND®B`‚scim-1.4.14/data/icons/sctc-tc-to-sc.png000066400000000000000000000035621177210725600176670ustar00rootroot00000000000000‰PNG  IHDR szzôgAMA± üabKGDÿÿÿ ½§“ pHYs  šœtIMEÕ56w¢“‡tEXtCommentCreated with The GIMPïd%nÆIDATXÃÍ—kl×Çwfgg×û´Í˃—Äåa“RL“ÐÊiK n…”Hmi$µŠ’æCÕÑ BˆZTR)MAj QI Ð M, 6i0!ó,6Oƒdý{½»3;÷öƒm Œ¡•bK½_Fwftïÿœ{Îïœ ÿ‡C ž‡Í“³‚î]þ‘ØL4×ÃæÉ-A÷Þòþo KÕü[¥n<Ÿn6ÌK7Ï<rWe—×­–ŒŒ•êÊ×ÁÝrW/‘ªùß@EJÖ˜ Ƨœ“Ky©ÍQ ÚH¸[ó·Xξ.Å„-+>u‰ÙgMýéÕ’¶ƒ^oêÕ@;p°†C€> Äol~1鼟HÉêMý…'51v§.t6·åã.QXö>Isà ·<à ñ¶€ñn%+ó¥jÝêu-Ÿ¦16\Ù & á/”*úñ kîkÃ%bà,-¯ëçC)ìM­Êí¶ØÝeÍÞ-Uô#Ëù`àî TñÔÚ¤æ='álö›zù_}ÆyBŒŠ Ì¹ŽºXÝc/û,%fKZ¯©áNC(G]í‚xÔÐJslYSÖm=}Ya½+Uó²>—«¨Æ˜^À (™l¥n4¹´¢tŸ±¾L©˜!Õµ¾ …» ï°úÊúº HI:t[îï±eåMdLÃ`/(ÿûê òèÏ™ Ü€Ò‹zX‘ÌRôLU$b€ÔD޵‘ Üzy¡å|”TÜYw•8'i¾š‘)ÈD(¤÷~ ›Í‘Çr7„Tk ¤¤:¢Ð6¾ªèyBщ¢¤ƒ·X#gÎ]¬ó FOòº~]khó_Ì¡©‡àYx //O›_Zjë~¿_k†’ÓP6TðÞúÂèÚ¹¹¹b|vŽfº¤'œÃG¾HíuÀåþÔ½- ÏÁ“Wàµ)ð³”]ëÅð‡£°ªf¾OÉ~ïÞYû¿1¯TèÂ1½iRó›ÔÌñ×EA¾[§¬ªåG£±n½Ár°%!ë$ì<Uhk†àIØûŸµ:l/‚— ø<ó \\޹陕ß&î/è‘’„>f–p‡ò]fÚ¨dO´"2ë¥ïFþænr7Á4¨+Ë€`ä_]Aù&øðY.×>XtÞÙ<Õ:£gG(¼/œæ6=¦ ]×°RpÕJ|é)Éì/ÃCóRض6ß„ÒБãðÞËð­Ï`f;ü¨ì?†A$LÅPÚ »>ä*ìÓðà3ÁçKÝ+2‹†Y ·ÂöFX›¾ ó:ÀÙã_„]ïÀ‰D ¡{%<¸Ò‡îˆvMJèUoÉÞúFþ¤ bd¸t°Sù\±ß<`ï`ËCÐ’Š¡ê!xKÂ…‡¡x¤…¢vðüìjx³fû¡þ&ÔÄ ®¶ÝF´ïµ>NBdfŒI7Ó&:´ß´ûttO¸4gÁÛƒÓÏJÁ±(üé°Ø†ä˜¸]…­µð`'Ô­gW€>O‡UÁ¹ùÐ8 ZîÈK×÷Ë”d¼?n”O4uÀþcç ݹf;jºJ|YììšÞ8ÄQ˜À#€ñÔWÀ;{ÀðÃ^˜».7f Ôÿ/pÓ5x%)<׃^) rÐ3}’Su£óʉŸ¦üù…ˆŒ»Q0 Têd-Ê2ð\€©§a]%üä2l= — ä;©7ù…nŸß³dñCz†ß«£¤8ÛâjùNWùßBïu755ݦ’¾4™¼^O ¤‡`üJ¨ê€ðeh<Ò±{hø}¼§`¥˜:.ùøœˆ¡OåÖÚ{´Ù‡»ç%Çp¶©p’ÛÉ8AË‹ÜïŽäfyòF¹ ÍTÔ÷Cdx×öG!£¬üóS8ó!Ôñ{Ý‚úâà—vÚ”LkÝòYjÙ‚ˆ[oï–l¯îì­¨³N]mîªÐíë— Í¦GdµEp·µ3R;–•ðÁÛðÆßáÌFøU=ø aÃøËy°?‡…?‚Ö»{‡VÙmsVï©n2jη;ÓCôŒÎŸ0gähÙþ``n»Ì~¢Ñš2ÛÖB­ŽæÙÁ™µq@t·À3†õ°È†òèx*6BÍ8˜ãc¨½§n+•'¬§æË(_3âvz"éŠõ&õ‹JÚÿBX-l Ôs¼tœó°y»àðAX½ÞÂ@~!»6D1–KNVÿF:0ÅËÜ[ Õ†³Ÿü_úMÏkßþ¥VÜCÞIEND®B`‚scim-1.4.14/data/icons/sctc.png000066400000000000000000000025411177210725600162340ustar00rootroot00000000000000‰PNG  IHDR szzôgAMA± üabKGDÿÿÿ ½§“ pHYs  šœtIMEÕ5EzÿdtEXtCommentCreated with The GIMPïd%nµIDATXÃÍ—ilTUÇ÷-³Ð×M„R°-tD -P¤èM!¢ 4ÔÄ@H@cŒ(‰  ÑHXÄ?Id‚ÄQ´ºA¤¤¥"´@[¶iM§ûtfÞ½~hI ¶!ʛē¼äÝÜ—sþ÷Üsþçÿàhbà:Á]5=Îõ“`Ú€µžà®:çÊÏëßÓ]*ÿJµ­Nt_›èþcu¼«tŒSŒ{Okþ$Õ§Áˆw•½*•ÿ P‘ån£#vÕR[Ö5Ûêªtk–¹ó@È.(Ú‚aYxÚÙ—Ýú’Ï%Í%Ë×Y¿hþBNÐï±Ì½ïõÚƒY¶Ç£¿ý’&’Žè"5­×ÞS–ņȘá‰ÿ`;x'COs¬¹ïÉ,š$Uãw^cÕ¤á`Œ•.„•!UÓñ¶ÐœOq÷.C^ãÝÚxW醰ŸO›—“cfffé–ei~˜q rT¼fÿsŸ¥§ûDjjªŒíe`ÜŽ´jXtªê`^3l>ïæ9Ø´ ïÀúÿ’¶~ –7K ¹ Žœ‚R4û!® òWBŸ Ã÷™ðDć7>„8ØÏ®°:“c É|0©®*ö-„ßÏ.ðÀvà4ÐŽƒíd,…Cm^ •Hè0¾JÖ€u ¦·ÀA èLü'"ë‚E°<-ùðØ 0·ì30úØ„‹ `ZtL…iA8ö 4:Àˆ‡†D(΂ҙð•„ë³ kDžƒÌðlƒpli€l jÚ¡¼ *[á5àÜ…°î$̪‚óåpe  ks`ÿqxçc§CæpHk‡šj8ìTº§s"ÔÂŽ_À´ ¸æì„ëga àâû¿ïÚ…ƒdfôõä™°,<×aÒ%Ø]Ëë!í,\Ú§'ÿ¡ 0IŸZM_ ‡5ãaô'PÚ õpó,Ô%Ëï¹Û'®Aá^˜ßá‰PYupñA?&kj|0 öE½0A< ¡3°õwÈߣ¢@üo„족–M€çļi°æԶ‹N*ªû:a1|4Ö£¾† [ u¬ér#€g€”hÐd ¡ÿýq Vcï ¨E+øPzÓó kþñ]¸û·8Ô¯IEND®B`‚scim-1.4.14/data/icons/setup.png000066400000000000000000000032601177210725600164370ustar00rootroot00000000000000‰PNG  IHDR szzôbKGDÿÿÿ ½§“eIDATxÚÅ—hUçÇ?ïùyæ¦ÞMLIb®Õ¤½Î1ªcl´£8¦¶¶ÒÀ˜ÃQVÆ“µŽ!²¹M-L7tÚ ¶®£tÐ?Q¨–QÚml&ØŠ Z£1¿c¼É½÷œ{ÎûcD݆Ým <œÃû|yù¼ïóž÷y|Â&æ|ç¸Bˆ'„;lÛúL:Ìù¾G¥R%Šâ1­Í»RªW•R§×¯ÿBuÁNžü{Rký|6›ÞS(´6-Y’–5' ‚ÃÓ µÞ0¬íÜ´éKS pìØ_sƘ­MM¼T(<Ø’Ïç„eY·ã•JÀùóƒ\»6þVDßÛ²åËcõXw lØðXIJõ‡¡¡‰çÎ ^˜¸a”Ò·ãét’Õ«WÐÔ´èià'o¼q"» ›7?qCJùÚ•+£Ïžýhp|üºVJÝŽ;ŽM±XpR›•ÒOÕ ÐÛÛ×ÝÛÛ×6Ÿ §ç+7¤T¯ Ž>sæâÈäd ­Ííx"áÑÙÙÚ µþzoo_².­õËbÇ¡Co-ŸO´uëW§«ÕðÔåËÃcSS%”Rc0Æ‚ÆÆ¬›Hx]J©B½:;[¿!„xyÿþ7ï˜äÀ7‹Žco[¶¬©³±1ƒ1)5Rj”RضM&“JI©VÖHø¹GéL öÁKûö½¾â–`߾׋žçloooÞX,væ2(¥‘R"¥$ŽJ)„vÇ™ÿÀ0ÆHøtwwd¥”[>üð»wÿöB๮³½­­eãÊ•m¹\cæV~ËŒ(’ÔjµZL]ÓÓ³H)I¥¬ZÕ‘‹"ùÜ\lv;joo~rÕª¶\&“B)Í}Ü‚¯T¦¦JQ«‘ºªÕðÒÕ«ãË—.Í“É$èêjo4Æ<¥µV]]ÉL&…”jÞ Œ1”ËU†‡'ËZëºÎ@źpaZ-FJM:¤X,x«W¯Hf³é›9Wóz¹\Åuòù\¾R Ö×µaXûý™3_liYœiiYŒe \×@)5Ϫ瞳³®]'‘ðY»®°x"mí³w˜íBqV~¦÷‹ûÚ0Œ.MOϼòÞ{ÿbjêQÇŠ8VD‘¼ÃãXR*•ŸÆ÷=l.•±þxuç'éZ4ÁF­Ín¾¯‹wI[Ö#þ§mÛöÓ¼m[¿njZ´éÑG»ýeËšH$<@ Äò}óÞ`v¶ŠÛ\ª¾ûn‘`¼Ø€8Žb²!~ÛXfVÜÏ/sz>ûÖËéÓï?üÅ÷K¥²ºretÕÌLÅ-—' kT«!¥R™ÑÑI®_ŸÁu’I?ár9´yñÏÝÌCBHJÍ!qÊÆ-ÛxÊ<ûq³úŸ{y‚S¯è{–ãžž¾1æ³À·Ç^›É¤2ɤçűRAP‹ªÕP®Y³¢uíº‡R7’Køæñ6fG % È+|ÏEÐH]‡Ø ©¤Â£Ú’{0ºŸƒKä}õÏ>ûÃÅ@hªÀ0mvï~æ7#Ïø¥«.®íAƒ!å nö-H ª n B§J˜¬ôi[îEè~~Õ*ï ànöøö¬ù›~ÍYÒ˜$dwê¤Þ,5¶O‹x/F÷sh¹¼g?p7ûKôü¨Ž­ÚZJ[CÞ_Ýé)iüdu/J?-”ùZ~šïœ·êà`Ç(:þqœ=Qaš°~ ÉhÎ1¸„G€çC* Y‘ѹMhv!dký‡W õÎZbôí &(ÕÀ–àÅàHP@lCàA% ³ip3uÀÒ鯡UÏÇxµû Vm—tGŽO0”6X„ÈeCèAàBÍr¼$øäAË>>€Šú1án錷‡³‘ 5wî„1b›¹±ÈTÒGXªcaz×il5€÷H1Ü7n 2æÆ(  ¾iAd¥æêˆv±0‡?/Ñrì­á¾’þˆª®ø­@ó4dBðh Êj#â±…è},ÆRèê^ ƒ‹Ì˜É4Ìø: T´&Ϊõ.,À‘'c´êÇTn¢ËÇ£™ÓÌÈI×ºÔÆ3§@ŽŸDGGê¾ ïiß>f¡e+X= ^@ˆŽ›åt £{1Áˆ ~·É|Òçü“FSìDq|ëIEND®B`‚scim-1.4.14/data/icons/setup.xpm000066400000000000000000000011301177210725600164510ustar00rootroot00000000000000/* XPM */ static const char *setup_xpm[]={ "16 16 15 1", ". c None", "# c #000000", "l c #303030", "i c #585858", "b c #646464", "f c #787878", "a c #808080", "d c #a0a0a0", "j c #b7b7b7", "e c #b8b8b8", "c c #c2c2c2", "m c #cfcfcf", "k c #e7e7e7", "h c #ededed", "g c #ffffff", "...######.......", "...#ab.cd##.....", "....#efb.cd#....", "###..##eb.c#....", "#gc##..#b..d#...", "#gh.c#ibc..j#...", "#bgh......kcd##.", "lgbfghh..kcmcdd#", "#c.gbbbfdch.mcjd", ".##c.cccfbfgh.mc", "...###d.ccdbfgh.", "......####h.dbfg", "..........##h.db", "............##h.", "..............##", "................"}; scim-1.4.14/data/icons/trademark.png000066400000000000000000000040011177210725600172430ustar00rootroot00000000000000‰PNG  IHDR szzôbKGDÿ22ܶIDATxÚÍ–yl×Ç¿oÞ\{x×öÚÀ® Ø!†Êj ‰!¦;ˆ$iBŽ:4(‘ Ô•q$M¨) …&І+%!r!L‘ëBÀ Ä6>ðãûÜû;3o¦ÀV‹½”%ŠÔŽ4Ìû]Íïýàüû)ÌÉö$f%ƥśвþSÒ[ó‚ŽÂ£rç½l}Ôàæñžô³)Á! Ÿˆ¸yð 1ÞË©JIwev.ÞOƒ÷5tKbªmúp³4ÖóI’‰*VY% -ÝÞI®ühÌØ‘ûÒ†‰Ò /- *º:j)Ñ?ËÁ[¯6zoMùgjAÖ±c$¶á£w¹6sNëø"«ÝjœQR‘[YÎ5Éc»'.íoóÌC;^H•M;L„ZnõÝØtÊç_ßÔ´–À©¯§MU':j"ƒ@Jže—R³-",©˜Y>¯l~·]Ѻ÷ò)R~æ¶eéfçÇN°tªž÷^_±.Ž7~Ðà×¼(1€G°Icx Uþx™::RæU[Ï„˜ïBøû'ÃÞž0Ìœö{™pPt¥¥Ý°FóÒÕZʉ¢¦@Õº[(B*ÃµŠº¢O üO.ÜmùNÕ­,ŠÔM1 ý™ †¡¿w¤b7šÏnµçË+LjŽ© 2]ëäÑöiåñÒà‘ ÉÑ7)ÝõÒ¢ɇ#õrÒÖŽŸ’0é+‘ÐBÕüˆ!½8±çAÊ0j jš6oxËæõ)Í- ¿Ïz±ºæÐá…/G꥛RòEB@Á@ _ò Áï ß4®¯ª÷”f÷†ÜW(j^¹Y¿ëÌRßø°Ž‰ÆR0P0H¼ùÂwiDÜ^lÜp£¼·üÇšã þ O¨¸Q½æ?—•Ò¤0€M0×}/«g”-ü¾Þ´ÙÙ[³À§´ºo§Ã;!,SX ÷6€†!ñÎà÷àô­[²Ä ý!˜Þ÷9¿ð‡Ï{Õîó·tjëð{ùhÆþù‹Â}F;W'몑þ,õÎî¯(òƒGõ~>»Ò×µÛ£v¶ñР«Ý/[nÈýíVd¾±êfëåŸ:DÔhwõ‡hEAñu}õ®£¾ü¼ÝÖrx:sëó‰‚í‰n¥ãr&¿Ö/oÚÖ•Ê>55Îù¹Ø£<,Uþ½øOU½Ûo¹›f)JûÒnµ§¾Ô¯¼Ó4ÌËxÿY™lAµ¹á‘ćç‰Ôbï x’y棽š§èËΫM[ýd;_Mšlu,$˜sE¢§èE]ªtíÞS¿«ôÇñŸgõ¤ ‘ì‚ ò8d;ÑÎϪsº¤xI€ÁP Iœ/ራ#š¯ýã6 Ï9'¦*n¿‘×H¶›µ{¶â#õæ8%Çk1>›ÓCJ‡Òº¥+4÷¾} {¦:xó«)’}ƒÝšò€§£ùªó׿u¬¹wƒ¢kZ}È»%?Ô¾ €ïž}àHíª} óäïÔ¸Æ {vT¾9ûT–þX½áˆª¾÷^¥FóóbÚÏÆfH¦_…K5Dä½Ë«>úõˆÓ¯ûîÛˆdN˜ P©h@UpÂônÕÛJÁCI‹²SЉféO-«¤Ð@¡Büј;¡Ìñ¹ ºrÓ2ùL?ç‚He—a„.RhôÀ Å‹ )R§À\»’RÛ¥DN(t@sËcOÆ“ºbLp‡/ª?p+ ^1U˜¨­ñ­ÊMÇ“9—‚ƒ¿0èDLã]+ä8ÊÏ `0ßYb›s×þ7ÓõÊð8^îüÍÙG AOCø¢êJWê“)Ï9]¢üÆUÕRèrm&vÎxüvùžñ«ËbÈét;o2QhÁé“'‰)Ÿl‰›+SÓ hgœ[Óƒ `0˜/5×*ý¡Ž7?¨~»+Ÿ~5nÏ%S0h„?}âÑb&'ͦÐÀƒAðÛ’y1¯[p@%ÉjèŠJÁàﻹR›º¦bóg0Î$äJÄC˜OÄ<ŽÍTÈåÁÀ¡U}Wþsœ/ÅÙÓ˜¿ÉÏ| MMkub°›´P7-ÓÒÖMâ¹Ç)x0ÔYÅ1ä¸~>ÔNï¬Y¼¹ñ·&»#åSÌò‚4Ùî>{–á3ÝPˆ¡á†Ê/ÿËõÂ6˜ë\hKäŒé•[^+-¨‹ `š=}·…£„‚!N€ýl~Ù’kók°ñæŽ4Ù6‚Îå/ÿrÁµÁÀ ænf|ÑÊŠmàðøUs ¤}É<‘)tXw=ë÷ü÷÷Ý|Jë¦Zµ}…ÎÇðmû¿`¶dÜÙ”ª[Ú8<ßl×~ ŠuŒ=ªw_•æ¬û¨í­ð%qÚÖrEßÊó5ƒë¨DÈ2ÿ—Ï¿.8Bª@zr IEND®B`‚scim-1.4.14/data/icons/trademark.xpm000066400000000000000000000014501177210725600172700ustar00rootroot00000000000000/* XPM */ static const char * trademark_xpm[] = { "24 24 5 1", " c None", ". c #3D55FD", "+ c #D71FEF", "@ c #568C56", "# c #F93E00", " ", " ", " ...... +++ ", " ... ... +++++++ ", " .. ++ ++ ", " .. ++ ", " ..... ++ ", " .... ++ ", " .. ++ ", " .. ++ ++ ", " ... ... +++++++ ", " ...... +++++ ", " ", " @@@@@@@@ ## ## ", " @@@@@@@@ ## ## ", " @@ ### ### ", " @@ ### ### ", " @@ ######## ", " @@ ######## ", " @@ ## ## ## ", " @@ ## ## ## ", " @@@@@@@@ ## ## ## ", " @@@@@@@@ ## ## ## ", " "}; scim-1.4.14/data/icons/up.png000066400000000000000000000022371177210725600157260ustar00rootroot00000000000000‰PNG  IHDR szzôbKGDÿÿÿ ½§“ pHYs  ÒÝ~ütIMEÓ ´é ,IDATxœí—[lTeÇßv϶KÙ–Ö*1HA6UClˆ˜x/\°/(”DBD4‘€†P_0DX"Xi•r´Q¡P´P° ¬lå”.µeÛ-Ý-ÛîžÝsƇ¶²-»v[cê“ÌÓùfæ—ùæûgކÒ,CZý6ÀÿÀ:ˆ 0H À€AMó@’€,Àyô 3.70# S¸$̓)»  L9^DzÎòY’£%Q¸üSÖ)¥Ô D$·‰Èy±ºV¾ûá¬H§.1 ñwˆys£|XÌ÷·«„ÈŒojå©óW™ãHáqç½B’åf\8¬(«QT×RRðåJ܉6 ?€T`â¹ß™ÝÐÊôQ™äN‰{¸êŒ•ý'ØlÚºŒê €4àA×y^v{Xì cî ÷›ðô%ýÕÐvƒWŠW°{0 È=^ǼæVæ9³ad†Þoñ;_ocW´øxkû*6  ç™M®t± ½ƒçÙé%\¼Ç®\K¦ô4yX³«€‚D¬À(àáŠS,ê1Ý9ÞÀ‘ÜÛãY³?…’ƒðÇ5>*û@½+1Ú ìù˜*kà®+Rï_jàíÂ2p]pÄ p=€ °Åë€uÌ áÈ­ÚPùS:kàXMíjN=´ h‘žç±1gÍEß°#ïÉ4ËñÝŠ@PGÑ¥11›H8£wÿ÷|ŸÁú=r„¦’/ø5¿h‘èÉSg?gçØ¹4mþŠ%îÆô¼—¦^ï•ÃÐ!c¦£Œž¦tS'Qüm:%zuykñ8´‰H_=@]ÙI•z¢­VŒhkñeäÏŸå#ÙÚU5Lÿz«]ÓÀ0g [ÊS)¯öMuú{ÀUÀ/"ñÞ¦JŽð*¥^7L µÝH_´pv€4{ˆÑ?€ßí¡#Ån¯ƒ-å6Žº¼{8žµhnô}Ãq!D ¥Ôb}Žtú:R—.œ­%à«÷àngnåI§ñlåÄÈu@#Й@ñ¾¦Rêói_¿Ã¶:g˜AÏoô]Ý¢—Žq¯JRVž,eâ¶Itɲ½;Ù€–ŒnïQYÅ”Ëã™*«H¾g `ÿÇ…¤[©¬€cØmJ)+]º‰îf"ÑjCþ_p`ÈþÉ©® "H´0IEND®B`‚scim-1.4.14/data/icons/up.xpm000066400000000000000000000025751177210725600157530ustar00rootroot00000000000000/* XPM */ static const char *up_xpm[] = { /* columns rows colors chars-per-pixel */ "16 16 65 1", " c #000000", ". c #06101d", "X c #0a121f", "o c #061625", "O c #071728", "+ c #071a2b", "@ c #091a2b", "# c #081e31", "$ c #082033", "% c #0a263b", "& c #2f0500", "* c #323e01", "= c #20374f", "- c #18415d", "; c #0f4b6a", ": c #0f5d7e", "> c #114760", ", c #124c6e", "< c #1a4c6b", "1 c #105375", "2 c #155678", "3 c #16597a", "4 c #214764", "5 c #3c5c73", "6 c #710c02", "7 c #42556d", "8 c #116c92", "9 c #287c9f", "0 c #14839f", "q c #0e97bf", "w c #178eac", "e c #138db0", "r c #1290b4", "t c #1197b9", "y c #159abc", "u c #2294b1", "i c #2a98b3", "p c #0ea0c5", "a c #14a5c9", "s c #1ca2c3", "d c #19b3ce", "f c #1bb8d2", "g c #26bdd3", "h c #2cc7d5", "j c #3cd7e1", "k c #5486a3", "l c #7da0b8", "z c #4bbfd8", "x c #58acc5", "c c #50b3cf", "v c #43d5de", "b c #50c1d9", "n c #59c3da", "m c #48dfe9", "M c #71d1e0", "N c #c3162e", "B c #819eba", "V c #80c2db", "C c #9ddaeb", "Z c #b6dae9", "A c #cdebf6", "S c #ddeff8", "D c #e2f0f9", "F c #fdfbfd", "G c None", /* pixels */ "GGGGGGGGGGGGGGGG", "GGGGGGGGGGGGGGGG", "GGGGGGG,oGGGGGGG", "GGGGGG2B2#GGGGGG", "GGGGGCtgy3 G", "GGGGG2Atvy%GGGGG", "GGGGG1Ftvi%GGGGG", "GGGGG1Athw%GGGGG", "GGGGG1Vxdw GGGGG", "GGGGG1@@@ GGGGG", "GGGGGGGGGGGGGGGG", "GGGGGGGGGGGGGGGG" }; scim-1.4.14/data/pixmaps/000077500000000000000000000000001177210725600151365ustar00rootroot00000000000000scim-1.4.14/data/pixmaps/Makefile.am000066400000000000000000000017311177210725600171740ustar00rootroot00000000000000## Makefile.am -- Process this file with automake to produce Makefile.in ## Copyright (C) 2002 James Su ## ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2, or (at your option) ## any later version. ## ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. MAINTAINERCLEANFILES = Makefile.in if SCIM_BUILD_SCIM_SETUP SCIM_SETUP_PNG = scim-setup.png endif pixmapsdir = $(datadir)/pixmaps pixmaps_DATA = $(SCIM_SETUP_PNG) EXTRA_DIST = scim-setup.png scim-1.4.14/data/pixmaps/Makefile.in000066400000000000000000000404651177210725600172140ustar00rootroot00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = data/pixmaps DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(pixmapsdir)" DATA = $(pixmaps_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ ARGZ_H = @ARGZ_H@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CLUTTER_BINARY_VERSION = @CLUTTER_BINARY_VERSION@ CLUTTER_CFLAGS = @CLUTTER_CFLAGS@ CLUTTER_IMCONTEXT_LIBDIR = @CLUTTER_IMCONTEXT_LIBDIR@ CLUTTER_IM_MODULEDIR = @CLUTTER_IM_MODULEDIR@ CLUTTER_LIBDIR = @CLUTTER_LIBDIR@ CLUTTER_LIBS = @CLUTTER_LIBS@ CLUTTER_VERSION = @CLUTTER_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOCBOOK_XSL = @DOCBOOK_XSL@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@ GTHREAD2_LIBS = @GTHREAD2_LIBS@ GTK2_CFLAGS = @GTK2_CFLAGS@ GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@ GTK2_LIBS = @GTK2_LIBS@ GTK3_CFLAGS = @GTK3_CFLAGS@ GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@ GTK3_LIBS = @GTK3_LIBS@ GTK_BINARY_VERSION = @GTK_BINARY_VERSION@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBDIR = @GTK_LIBDIR@ GTK_LIBS = @GTK_LIBS@ GTK_MAJOR_VERSION = @GTK_MAJOR_VERSION@ GTK_VERSION = @GTK_VERSION@ HAVE_GRAPHVIZ = @HAVE_GRAPHVIZ@ INCLTDL = @INCLTDL@ INCLUDE_STDINT = @INCLUDE_STDINT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBLTDL = @LIBLTDL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_DEPS = @LIBTOOL_DEPS@ LIBTOOL_EXPORT_OPTIONS = @LIBTOOL_EXPORT_OPTIONS@ LIPO = @LIPO@ LN_S = @LN_S@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ QT3_CFLAGS = @QT3_CFLAGS@ QT3_IM_MODULEDIR = @QT3_IM_MODULEDIR@ QT3_LIBDIR = @QT3_LIBDIR@ QT3_LIBS = @QT3_LIBS@ QT3_MOC = @QT3_MOC@ QT3_PREFIX = @QT3_PREFIX@ QT4_CFLAGS = @QT4_CFLAGS@ QT4_IM_MODULEDIR = @QT4_IM_MODULEDIR@ QT4_LIBDIR = @QT4_LIBDIR@ QT4_LIBS = @QT4_LIBS@ QT4_MOC = @QT4_MOC@ QT4_PREFIX = @QT4_PREFIX@ RANLIB = @RANLIB@ SCIM_AGE = @SCIM_AGE@ SCIM_BINARY_VERSION = @SCIM_BINARY_VERSION@ SCIM_BRIDGE_MAJOR_VERSION = @SCIM_BRIDGE_MAJOR_VERSION@ SCIM_BRIDGE_MICRO_VERSION = @SCIM_BRIDGE_MICRO_VERSION@ SCIM_BRIDGE_MINOR_VERSION = @SCIM_BRIDGE_MINOR_VERSION@ SCIM_BRIDGE_VERSION = @SCIM_BRIDGE_VERSION@ SCIM_BUILD_CLUTTER_IMMODULE = @SCIM_BUILD_CLUTTER_IMMODULE@ SCIM_BUILD_CONFIG_SIMPLE = @SCIM_BUILD_CONFIG_SIMPLE@ SCIM_BUILD_CONFIG_SOCKET = @SCIM_BUILD_CONFIG_SOCKET@ SCIM_BUILD_DOCUMENTS = @SCIM_BUILD_DOCUMENTS@ SCIM_BUILD_FILTER_SCTC = @SCIM_BUILD_FILTER_SCTC@ SCIM_BUILD_FRONTEND_SOCKET = @SCIM_BUILD_FRONTEND_SOCKET@ SCIM_BUILD_FRONTEND_X11 = @SCIM_BUILD_FRONTEND_X11@ SCIM_BUILD_GTK2_IMMODULE = @SCIM_BUILD_GTK2_IMMODULE@ SCIM_BUILD_GTK3_IMMODULE = @SCIM_BUILD_GTK3_IMMODULE@ SCIM_BUILD_GTK_UTILS = @SCIM_BUILD_GTK_UTILS@ SCIM_BUILD_IMENGINE_RAWCODE = @SCIM_BUILD_IMENGINE_RAWCODE@ SCIM_BUILD_IMENGINE_SOCKET = @SCIM_BUILD_IMENGINE_SOCKET@ SCIM_BUILD_IMENGINE_TABLE = @SCIM_BUILD_IMENGINE_TABLE@ SCIM_BUILD_IMMODULE = @SCIM_BUILD_IMMODULE@ SCIM_BUILD_IM_AGENT = @SCIM_BUILD_IM_AGENT@ SCIM_BUILD_ORIG_GTK2_IMMODULE = @SCIM_BUILD_ORIG_GTK2_IMMODULE@ SCIM_BUILD_ORIG_GTK3_IMMODULE = @SCIM_BUILD_ORIG_GTK3_IMMODULE@ SCIM_BUILD_PANEL_GTK = @SCIM_BUILD_PANEL_GTK@ SCIM_BUILD_QT3_IMMODULE = @SCIM_BUILD_QT3_IMMODULE@ SCIM_BUILD_QT4_IMMODULE = @SCIM_BUILD_QT4_IMMODULE@ SCIM_BUILD_SCIM_SETUP = @SCIM_BUILD_SCIM_SETUP@ SCIM_BUILD_TESTS = @SCIM_BUILD_TESTS@ SCIM_BUILD_X11_UTILS = @SCIM_BUILD_X11_UTILS@ SCIM_CURRENT = @SCIM_CURRENT@ SCIM_DATADIR = @SCIM_DATADIR@ SCIM_EPOCH = @SCIM_EPOCH@ SCIM_ICONDIR = @SCIM_ICONDIR@ SCIM_LIBDIR = @SCIM_LIBDIR@ SCIM_LIBEXECDIR = @SCIM_LIBEXECDIR@ SCIM_LOCALEDIR = @SCIM_LOCALEDIR@ SCIM_LTDLADVISE = @SCIM_LTDLADVISE@ SCIM_MAJOR_VERSION = @SCIM_MAJOR_VERSION@ SCIM_MICRO_VERSION = @SCIM_MICRO_VERSION@ SCIM_MINOR_VERSION = @SCIM_MINOR_VERSION@ SCIM_MODULE_PATH = @SCIM_MODULE_PATH@ SCIM_PREFIX = @SCIM_PREFIX@ SCIM_REVISION = @SCIM_REVISION@ SCIM_SYSCONFDIR = @SCIM_SYSCONFDIR@ SCIM_TEMPDIR = @SCIM_TEMPDIR@ SCIM_VERSION = @SCIM_VERSION@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UINT16 = @UINT16@ UINT32 = @UINT32@ UINT64 = @UINT64@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XMKMF = @XMKMF@ XSLTPROC = @XSLTPROC@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_aux_dir = @ac_aux_dir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ MAINTAINERCLEANFILES = Makefile.in @SCIM_BUILD_SCIM_SETUP_TRUE@SCIM_SETUP_PNG = scim-setup.png pixmapsdir = $(datadir)/pixmaps pixmaps_DATA = $(SCIM_SETUP_PNG) EXTRA_DIST = scim-setup.png all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/pixmaps/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu data/pixmaps/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-pixmapsDATA: $(pixmaps_DATA) @$(NORMAL_INSTALL) test -z "$(pixmapsdir)" || $(MKDIR_P) "$(DESTDIR)$(pixmapsdir)" @list='$(pixmaps_DATA)'; test -n "$(pixmapsdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pixmapsdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(pixmapsdir)" || exit $$?; \ done uninstall-pixmapsDATA: @$(NORMAL_UNINSTALL) @list='$(pixmaps_DATA)'; test -n "$(pixmapsdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(pixmapsdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(pixmapsdir)" && rm -f $$files tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(pixmapsdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-pixmapsDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-pixmapsDATA .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-pixmapsDATA install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ uninstall uninstall-am uninstall-pixmapsDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: scim-1.4.14/data/pixmaps/scim-setup.png000066400000000000000000000055521177210725600177440ustar00rootroot00000000000000‰PNG  IHDR00Wù‡bKGDï«Ý±h pHYs  d_‘tIMEÓ)'í„§{ ÷IDATxœíYklGÿÍìîùüHâ³çœ8‰ã4‰“& ­ ¤”F}éƒGÛ|‚ µZ$ÊC‚~+©QÄ—ª"¨U[@ JJÕª…¦¨IÓ6®ópê ±Ÿ}çø|ç;ßÞîìüùp;›¹½µë„ôRGíÞÜìÌï÷Íf€ˇå*,Ü`š&K$MDÔADx¨_Ý7—»‘ô<ÏBÌ•Ë圔Ò@Q}ÍpC"‘ˆïÝ»·ß²¬¯ÆãñͱX,FDjà‹R÷[Õpõ”RÂu];ŸÏ§&&&Ž ü9—Ë¥|Ò¯Áu\×]R,w÷÷÷ïºîºë’Ë–-³°¨ÉÃÂ`Âmžç¡R©@JYØó<! „Áu]wzzºsppp…Â=zôè3sssY.Àó‰Ôàœ'ÚÛÛ÷ìܹ³­··×´,‹‡ADIn>iJ)ƒwÇqªzžÏóàº.\×UßX¦i.ŸÅðððÇMÓ<   À LŠê0ÆÌæææÖd2ÙǹÐó¼I0ÆêžŒ18çˆÅb°,«F;Š€”¶m£X,¶mÆkhkkëljjZËKȘEÕ•)yQÀ9g†apÎ9Ó%oÛ6J¥\×­¨WÎ98çÁoa5}Ã¥P( —ËA)%cŒÅcËtÈúÝ\_€¬# ¸®‹R©Û¶ADXÆÆF§ñ¿§Ð¹Â„'N”ð¥/oFß–u`Œ¡\¶ñêŸ0:~«Vw±+;2 W¯ÁÞn 4Â9ÌNi†ˆbZ,AÕŒJ¨š>"|Z˜T@Õ»ëº5à žÁ£?LãÇ?ïÃòåm`Œá‰ôĪTóEìølܵ÷瞀ôÛ}Çpòù¡@PÊWt‡öý…h÷ŸÃ'À#5Žº„Màåƒe$; ÝÝ]©ÝzW/V®îᩆµ¬Œ;îÝ[£Ù•½I$ö-«13Î9„C+ù€MÿièBæQpî@Iß²,ˆŠƒtÊÁЩL³*+0 'ŸÅéM⶯õß(Éî$Öo__Ó¦4àºnXªrí-H@EUuU«PÈ9ÇÍ·/EÌ(â'_¿ßÿ2lÛœõFб–aCß J8áH¥~ëÒWf¥”¯=¯:•ypÎaF@`]o7ýÕµèÝæàŸOVð³_@©8"Búx]›kÆ ›c”à”ðæ_S" ¨‰t 8ŽÄqeFÊÄ’]øîc7ãÆo(2ñÒÓoUÉέ-uã«P«Þu (í¨õ#‚DMÛ¼ÐÁK)aFÍd†aÔ5M·~~7Z ±X fK Å©\ø¨/@ÄX ¥ý…Ê‚&¤;²išuaõÀO ˆ3Ó3ðfmlÛÓXÕ߆ì¡1d2™€aa¨vÝÇüÅlAð «P_¸ˆsseœ~}ï¾5„¹¹9LŽgðÇ_¼ˆO{#ú®Ü¸ñ`­ž½ï×xóÅ#3šÆéÃøË?`tt´fl5®"ðÅh r¢3J%-Ó4ÑÜlà+ìÀ䙯ÏFÓ’îøæt&;@‰Düæ! ¾q ÞÙÒS§`¬^‚ëïþš››ëÀ«@¡"ʹ.‰€8*×1 W]Ó‡ÂÆB°J[–!DuÆãqÄãqlß¹ ×7ã9Žƒ™™@{{{Í\ºù¨p}ÉT‰Z‰UûñÃCxå±·k“øä½×¢gëzâ%þzÉ}›póƒ_ú*I¿ñƒ_bêõwÐý­»ÐñÅÏÖ˜«J%”6.Ù‰ÃÀxÝùcè¿~ÃÖ›®ÀÇnêGrUk¯\ƒ–&Óo¦§Uv}öÔiбa´îº×ÜyKMR •t2‹& K7L"*}žÎLÃÈ9X¹%ôËžØÕ1”†'LÓ„a¨T*}èqx•"Z·o¬£ì^^¬˜¿ ¨„.œxqÎ1u: —òèÙÜ 2™GÿmŸÂr›<ô?rÇÃàwî†9>‰Ö­æšžR_´ éÛ=}K%}ÆΟ˜@cÒB"‘ضÆ +·öµläß~D„×ö? èÞ²ž%ѹ¾§¼ôýÀû•Œ1Æ97c’ª¥†”.}5ñÌÉ4’[:ƒ1²gÇÑÕ³ËZ[a]ц‘UA<÷*výíqTÞ_—DSSSM†ªæÑWÿÅ”(`ðO!¢ÀëNçyŠCãX¾% Î9,ËBiè–_µD„®nBùè }æA¬;ð=pÎá¼{;ù¨,WŒn÷Q§ ð5ÀÕÇzJ­'Yª¦r0¦Šèز*’|]Û®ç‰kúÌ—ÀöíFwww•ôÀqÄ·]p`Çq‚w=uYŒ_´”¤TÍžƒãÎbíæõâx+VTWâlBªg)úï¾p~bKÎ"ÖwÁu-„vÑPˆHº®Kz<Ö75Œ1yéN?ûâ]x㙃Å«žB|ô<^ü]ÕaWtuáîç‹x<ŽÑwŽ!µÿ xÉ6üçà (åóhhh@cã…ý‚/,D¢f%fŒqÃ0L®‚„u’W¦tí »Àö|¢Æ†WßwØýûjü$‹1†žWcõö«€G¾ ~»^¢¢Ïbœ¹†‘”Òó5Ã{•û«‰Âë‚N0ìèQa’1!DM¿R©„l6‹r¹ !DC/Š€Ïˆˆû‡¬ "X–l´+• \× –yÏó"Áëë„¥”5;2%õL&ƒ“'O¢T* ØbBi]2GDÒ@Le…¶mCJ‰B¡€‰‰ LOO£P(`vv6ÈõÉ”¤Ã‰™"«ƒSÄÇ”±XlQ9ÐB˜”’\×%¥)%²Ù,FFFJ¥066†™™™àˆQ—¸¾ÛREÏm«»žž†––477Ïw2±0ª HWJÉÇa®ë‚1†ÉÉI?~©T “““˜…úO·ëðvQ'¢ƒ›a0M301Ã0P½– bŒü“èüõ§ÓDD•JEf³YÉcù|ž Òðð0Ëd2¨T*uö­žœóÀTÔÑKØd Zø{"ÂÌÌ Z[[¥çye"ruxa2Q÷®”r2N¯Éår-£££Æ¹sçpþüy”Ëe†Á|i1’s®r'¦e>•Ý2)%ù‹¥Š2?â釻BiYV‰ˆ¦P=Ô ßÎPBdÇynddDNLLtår¹†R©Ä+•Šáy^! Žc8‚ÅÊX9çÜô'PÔÄ*+©†<ÎU;±jçÜkhhÈ …·…\¸™ñ´¹ê‹,˲‰D­¬T*íRÊv"JQ Uºõ£=}%W’aA ýÏÕJï£WíLIš™pÎ…çyyÛ¶óD”0   À‰<íBõ» ÀRm~]‚êñ¶:¾œ7—‘êWª ͘ökÀµ©'TÕä z'UðÛlT‰©Ë…úº•à_#ùXJ¨’(£zK#…´]¿³zW7#Qø ŠÒ€‡ ZP—|®ÿß¼ @¤¾øËI&ì7: *xOý·ÐÄú¥×Þ/7à…Š"#QFƒµ`±@æ=ŸŸöK)ó9ô|ÿý—ÿÁyžÞgIEND®B`‚scim-1.4.14/depcomp000077500000000000000000000442671177210725600141360ustar00rootroot00000000000000#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2009-04-28.21; # UTC # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free # Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by `PROGRAMS ARGS'. object Object file output by `PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputing dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi cygpath_u="cygpath -u -f -" if test "$depmode" = msvcmsys; then # This is just like msvisualcpp but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u="sed s,\\\\\\\\,/,g" depmode=msvisualcpp fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. ## Unfortunately, FreeBSD c89 acceptance of flags depends upon ## the command line argument order; so add the flags where they ## appear in depend2.am. Note that the slowdown incurred here ## affects only configure: in makefiles, %FASTDEP% shortcuts this. for arg do case $arg in -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; *) set fnord "$@" "$arg" ;; esac shift # fnord shift # $arg done "$@" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' ' ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> "$depfile" echo >> "$depfile" # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts `$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.u tmpdepfile2=$base.u tmpdepfile3=$dir.libs/$base.u "$@" -Wc,-M else tmpdepfile1=$dir$base.u tmpdepfile2=$dir$base.u tmpdepfile3=$dir$base.u "$@" -M fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler understands `-MD -MF file'. However on # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want: # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using \ : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp2) # The "hp" stanza above does not work with aCC (C++) and HP's ia64 # compilers, which have integrated preprocessors. The correct option # to use with these is +Maked; it writes dependencies to a file named # 'foo.d', which lands next to the object file, wherever that # happens to be. # Much of this is similar to the tru64 case; see comments there. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.d tmpdepfile2=$dir.libs/$base.d "$@" -Wc,+Maked else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d "$@" +Maked fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" # Add `dependent.h:' lines. sed -ne '2,${ s/^ *// s/ \\*$// s/$/:/ p }' "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" "$tmpdepfile2" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then # With Tru64 cc, shared objects can also be used to make a # static library. This mechanism is used in libtool 1.4 series to # handle both shared and static libraries in a single compilation. # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. # # With libtool 1.5 this exception was removed, and libtool now # generates 2 separate objects for the 2 libraries. These two # compilations output dependencies in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 tmpdepfile2=$dir$base.o.d # libtool 1.5 tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.o.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d tmpdepfile4=$dir$base.d "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for `:' # in the target name. This is to cope with DOS-style filenames: # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. "$@" $dashmflag | sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # X makedepend shift cleared=no eat=no for arg do case $cleared in no) set ""; shift cleared=yes ;; esac if test $eat = yes; then eat=no continue fi case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -arch) eat=yes ;; -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix=`echo "$object" | sed 's/^.*\././'` touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi IFS=" " for arg do case "$arg" in -o) shift ;; $object) shift ;; "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E 2>/dev/null | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; msvcmsys) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: scim-1.4.14/docs/000077500000000000000000000000001177210725600134745ustar00rootroot00000000000000scim-1.4.14/docs/Makefile.am000066400000000000000000000022431177210725600155310ustar00rootroot00000000000000## Makefile.am -- Process this file with automake to produce Makefile.in ## Copyright (C) 2002 James Su ## ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2, or (at your option) ## any later version. ## ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. MAINTAINERCLEANFILES = Makefile.in html/* CLEANFILES = *.bak EXTRA_DIST = scim.cfg developers design.zh_CN SUBDIRS = manual .PHONY: html html: if HAVE_DOXYGEN (cd $(top_builddir)/docs; rm -fr html/*; $(DOXYGEN) scim.cfg; tar -czf scim-doc-$(SCIM_VERSION).tar.gz html) else echo "***" echo "*** Warning: Doxygen not found" echo "*** Warning: Documentation not built" echo "***" endif scim-1.4.14/docs/Makefile.in000066400000000000000000000535361177210725600155550ustar00rootroot00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = docs DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(srcdir)/scim.cfg.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = scim.cfg CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ ARGZ_H = @ARGZ_H@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CLUTTER_BINARY_VERSION = @CLUTTER_BINARY_VERSION@ CLUTTER_CFLAGS = @CLUTTER_CFLAGS@ CLUTTER_IMCONTEXT_LIBDIR = @CLUTTER_IMCONTEXT_LIBDIR@ CLUTTER_IM_MODULEDIR = @CLUTTER_IM_MODULEDIR@ CLUTTER_LIBDIR = @CLUTTER_LIBDIR@ CLUTTER_LIBS = @CLUTTER_LIBS@ CLUTTER_VERSION = @CLUTTER_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOCBOOK_XSL = @DOCBOOK_XSL@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@ GTHREAD2_LIBS = @GTHREAD2_LIBS@ GTK2_CFLAGS = @GTK2_CFLAGS@ GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@ GTK2_LIBS = @GTK2_LIBS@ GTK3_CFLAGS = @GTK3_CFLAGS@ GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@ GTK3_LIBS = @GTK3_LIBS@ GTK_BINARY_VERSION = @GTK_BINARY_VERSION@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBDIR = @GTK_LIBDIR@ GTK_LIBS = @GTK_LIBS@ GTK_MAJOR_VERSION = @GTK_MAJOR_VERSION@ GTK_VERSION = @GTK_VERSION@ HAVE_GRAPHVIZ = @HAVE_GRAPHVIZ@ INCLTDL = @INCLTDL@ INCLUDE_STDINT = @INCLUDE_STDINT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBLTDL = @LIBLTDL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_DEPS = @LIBTOOL_DEPS@ LIBTOOL_EXPORT_OPTIONS = @LIBTOOL_EXPORT_OPTIONS@ LIPO = @LIPO@ LN_S = @LN_S@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ QT3_CFLAGS = @QT3_CFLAGS@ QT3_IM_MODULEDIR = @QT3_IM_MODULEDIR@ QT3_LIBDIR = @QT3_LIBDIR@ QT3_LIBS = @QT3_LIBS@ QT3_MOC = @QT3_MOC@ QT3_PREFIX = @QT3_PREFIX@ QT4_CFLAGS = @QT4_CFLAGS@ QT4_IM_MODULEDIR = @QT4_IM_MODULEDIR@ QT4_LIBDIR = @QT4_LIBDIR@ QT4_LIBS = @QT4_LIBS@ QT4_MOC = @QT4_MOC@ QT4_PREFIX = @QT4_PREFIX@ RANLIB = @RANLIB@ SCIM_AGE = @SCIM_AGE@ SCIM_BINARY_VERSION = @SCIM_BINARY_VERSION@ SCIM_BRIDGE_MAJOR_VERSION = @SCIM_BRIDGE_MAJOR_VERSION@ SCIM_BRIDGE_MICRO_VERSION = @SCIM_BRIDGE_MICRO_VERSION@ SCIM_BRIDGE_MINOR_VERSION = @SCIM_BRIDGE_MINOR_VERSION@ SCIM_BRIDGE_VERSION = @SCIM_BRIDGE_VERSION@ SCIM_BUILD_CLUTTER_IMMODULE = @SCIM_BUILD_CLUTTER_IMMODULE@ SCIM_BUILD_CONFIG_SIMPLE = @SCIM_BUILD_CONFIG_SIMPLE@ SCIM_BUILD_CONFIG_SOCKET = @SCIM_BUILD_CONFIG_SOCKET@ SCIM_BUILD_DOCUMENTS = @SCIM_BUILD_DOCUMENTS@ SCIM_BUILD_FILTER_SCTC = @SCIM_BUILD_FILTER_SCTC@ SCIM_BUILD_FRONTEND_SOCKET = @SCIM_BUILD_FRONTEND_SOCKET@ SCIM_BUILD_FRONTEND_X11 = @SCIM_BUILD_FRONTEND_X11@ SCIM_BUILD_GTK2_IMMODULE = @SCIM_BUILD_GTK2_IMMODULE@ SCIM_BUILD_GTK3_IMMODULE = @SCIM_BUILD_GTK3_IMMODULE@ SCIM_BUILD_GTK_UTILS = @SCIM_BUILD_GTK_UTILS@ SCIM_BUILD_IMENGINE_RAWCODE = @SCIM_BUILD_IMENGINE_RAWCODE@ SCIM_BUILD_IMENGINE_SOCKET = @SCIM_BUILD_IMENGINE_SOCKET@ SCIM_BUILD_IMENGINE_TABLE = @SCIM_BUILD_IMENGINE_TABLE@ SCIM_BUILD_IMMODULE = @SCIM_BUILD_IMMODULE@ SCIM_BUILD_IM_AGENT = @SCIM_BUILD_IM_AGENT@ SCIM_BUILD_ORIG_GTK2_IMMODULE = @SCIM_BUILD_ORIG_GTK2_IMMODULE@ SCIM_BUILD_ORIG_GTK3_IMMODULE = @SCIM_BUILD_ORIG_GTK3_IMMODULE@ SCIM_BUILD_PANEL_GTK = @SCIM_BUILD_PANEL_GTK@ SCIM_BUILD_QT3_IMMODULE = @SCIM_BUILD_QT3_IMMODULE@ SCIM_BUILD_QT4_IMMODULE = @SCIM_BUILD_QT4_IMMODULE@ SCIM_BUILD_SCIM_SETUP = @SCIM_BUILD_SCIM_SETUP@ SCIM_BUILD_TESTS = @SCIM_BUILD_TESTS@ SCIM_BUILD_X11_UTILS = @SCIM_BUILD_X11_UTILS@ SCIM_CURRENT = @SCIM_CURRENT@ SCIM_DATADIR = @SCIM_DATADIR@ SCIM_EPOCH = @SCIM_EPOCH@ SCIM_ICONDIR = @SCIM_ICONDIR@ SCIM_LIBDIR = @SCIM_LIBDIR@ SCIM_LIBEXECDIR = @SCIM_LIBEXECDIR@ SCIM_LOCALEDIR = @SCIM_LOCALEDIR@ SCIM_LTDLADVISE = @SCIM_LTDLADVISE@ SCIM_MAJOR_VERSION = @SCIM_MAJOR_VERSION@ SCIM_MICRO_VERSION = @SCIM_MICRO_VERSION@ SCIM_MINOR_VERSION = @SCIM_MINOR_VERSION@ SCIM_MODULE_PATH = @SCIM_MODULE_PATH@ SCIM_PREFIX = @SCIM_PREFIX@ SCIM_REVISION = @SCIM_REVISION@ SCIM_SYSCONFDIR = @SCIM_SYSCONFDIR@ SCIM_TEMPDIR = @SCIM_TEMPDIR@ SCIM_VERSION = @SCIM_VERSION@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UINT16 = @UINT16@ UINT32 = @UINT32@ UINT64 = @UINT64@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XMKMF = @XMKMF@ XSLTPROC = @XSLTPROC@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_aux_dir = @ac_aux_dir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ MAINTAINERCLEANFILES = Makefile.in html/* CLEANFILES = *.bak EXTRA_DIST = scim.cfg developers design.zh_CN SUBDIRS = manual all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu docs/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): scim.cfg: $(top_builddir)/config.status $(srcdir)/scim.cfg.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ ctags ctags-recursive distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am .PHONY: html html: @HAVE_DOXYGEN_TRUE@ (cd $(top_builddir)/docs; rm -fr html/*; $(DOXYGEN) scim.cfg; tar -czf scim-doc-$(SCIM_VERSION).tar.gz html) @HAVE_DOXYGEN_FALSE@ echo "***" @HAVE_DOXYGEN_FALSE@ echo "*** Warning: Doxygen not found" @HAVE_DOXYGEN_FALSE@ echo "*** Warning: Documentation not built" @HAVE_DOXYGEN_FALSE@ echo "***" # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: scim-1.4.14/docs/design.zh_CN000066400000000000000000000171221177210725600156730ustar00rootroot00000000000000SCIM è®¾è®¡æ¦‚è¦ ============= SCIM 库是一个通用的输入法开å‘å¹³å°, å¯ä»¥å¤§å¤§ç®€åŒ–输入法的开å‘难度. 在 SCIM 中, 输入法被分为三大部分: FrontEnd, IMEngine å’Œ BackEnd. 这三部分的功能是: FrontEnd: 负责用户界é¢çš„æ˜¾ç¤º, 与客户程åºé€šè®¯, 将客户程åºçš„æŒ‰é”®è¯·æ±‚转å‘ç»™ IMEngine, 执行 IMEngine å‘出的å„ç§å‘½ä»¤, 如绘制预编辑字符串等等. IMEngine: 接收由 FrontEnd å‘é€çš„æŒ‰é”®äº‹ä»¶, å¹¶å‘ FrontEnd å‘é€ç›¸åº”的命令, 如显示预编辑字符串, å‘å®¢æˆ·ç¨‹åºæäº¤å­—ç¬¦ä¸²ç­‰ç­‰. BackEnd: ç®¡ç†æ‰€æœ‰çš„ IMEngine. 以上三大部分通过四个虚基类(FrontEndBase, IMEngineFactoryBase, IMEngineInstanceBase, BackEndBase)定义了统一的接å£, 所有具体实现必须由这些基类派生出æ¥. SCIM 还æä¾›äº†ä¸°å¯Œçš„工具函数和类, 如负责åšç¼–ç è½¬æ¢çš„ IConvert ç±», 负责管ç†å€™é€‰å­—(è¯)查找表的 LookupTable ç±», 读写é…置文件的 ConfigBase 类等等. SCIM 的一个显著特点是, FrontEnd, IMEngine, Config 等部分都实现了模å—化, å¯ä»¥é€šè¿‡åŠ¨æ€æ¨¡å—æ¥å®žçŽ°å…·ä½“çš„åŠŸèƒ½, 支æŒä¸åŒçš„系统和环境. 大大增强了 SCIM çš„çµæ´»æ€§å’Œå¯ç§»æ¤æ€§. SCIM 的工作原ç†: 在 SCIM 中最关键的部分是 FrontEnd å’Œ IMEngine. 这两部分的实现åŠå…¶ä¹‹é—´çš„é€šè®¯æ–¹å¼æ˜¯ SCIM 与其它åŒç±»å¹³å°æœ€ä¸ä¸€æ ·çš„地方. 首先介ç»ä¸€ä¸‹ IMEgine 部分的组æˆ. IMEngine 部分分为 IMEngineFactory å’Œ IMengineInstance 两个接å£ç±». æ¯ä¸ªè¾“å…¥æ³•å¼•æ“Žéƒ½è¦æä¾›è¿™ä¸¤ä¸ªç±»çš„å…·ä½“å®žçŽ°. IMengineFactory 负责管ç†è¾“入法使用的公共数æ®, 如è¯åº“等等, 它还负责创建 IMEngineInstance 实例. IMEngineInstance 类负责实际的按键到字符串的转æ¢å·¥ä½œ. 现有输入法开å‘å¹³å°ä¸­çš„ IC (Input Context) 部分其实就是对应 IMEngineInstance ç±». IMEngineInstance 类就是 IC 的数æ®ä¸Žå¤„ç†å‡½æ•°çš„å°è£…. æ¯ä¸ª IC 对应一个 IMEngineInstance 实例. 所有 IMEngineInstance 实例由 FrontEnd 基类管ç†. æ¯ä¸ª IC 对应的状æ€å˜é‡, 分为两部分, å…¶ä¸­é¢„ç¼–è¾‘å­—ç¬¦ä¸²ç­‰ä¸Žç”¨æˆ·ç•Œé¢æ— å…³çš„æ•°æ®éƒ½ä¿å­˜åœ¨ IMEngineInstance 实例中; 而输入窗å£ä½ç½®ç­‰ä¸Žç”¨æˆ·ç•Œé¢ç›¸å…³çš„æ•°æ®åˆ™ç”± FrontEnd 派生类负责管ç†. FrontEnd 的详细内容将在下é¢ä»‹ç». 下é¢ä»‹ç»ä¸€ä¸‹ FrontEnd å’Œ IMEngine 之间的数æ®äº¤æ¢å’Œé€šè®¯æ–¹å¼. 为了简化编程接å£, 在 FrontEnd å’Œ IMEngine ä¹‹é—´é‡‡ç”¨äº†ä¸€ç§æ¾æ•£çš„æŽ¥å£å½¢å¼, å³ signal-slot 技术. 首先, 将输入法所需的所有动作以åŠç”¨æˆ·ç•Œé¢ä¸­åŒ…å«çš„æ‰€æœ‰åŸºæœ¬å…ƒç´ æ€»ç»“归纳出æ¥, 其中, 输入法中所需è¦çš„元素包括: 预编辑字符串 (Preedit String): ç”¨æˆ·è¾“å…¥çš„å­—ç¬¦åœ¨è½¬æ¢æˆå®žé™…字符串æäº¤ç»™å®¢æˆ·ç¨‹åºä¹‹å‰, 将显示在预编辑字符串区域中. 预编辑光标 (Preedit Caret): 预编辑字符串中的光标, 用户å¯ä»¥åˆ©ç”¨è¿™ä¸ªå…‰æ ‡å¯¹é¢„编辑字符串进行编辑. 状æ€å­—符串 (Status String): 显示输入法引擎当å‰çš„状æ€, 如当å‰ç¼–ç , 语言等. 候选字/è¯æŸ¥æ‰¾è¡¨ (Lookup Table): 用户输入的按键与结果字符串å¯èƒ½æ˜¯ä¸€å¯¹å¤šçš„关系, 一个(组)按键对应的所有å¯èƒ½çš„结果字符串将显示在查找表内, 供用户选择. 辅助字符串 (Aux String): 输入法å¯èƒ½éœ€è¦æ˜¾ç¤ºæŸäº›è¾…助信æ¯, å¯ä»¥æ˜¾ç¤ºåœ¨è¿™ä¸ªåŒºåŸŸ. å¦å¤–, 对于亚洲语言æ¥è¯´(尤其是中文), è¿˜éœ€è¦æ˜¾ç¤ºå­—符和标点(全角/åŠè§’)状æ€. 由此å¯ä»¥å½’纳出输入法引擎所需的所有动作: * 显示/éšè—/æ›´æ–° 预编辑字符串 * æ›´æ–° 预编辑光标 * 显示/éšè—/æ›´æ–° 状æ€å­—符串 * 显示/éšè—/æ›´æ–° 辅助字符串 * 显示/éšè—/æ›´æ–° 查找表 * å‘å®¢æˆ·ç¨‹åºæäº¤ç»“æžœå­—ç¬¦ä¸² * 注册屬性列表 (如全角åŠè§’标点) * 更新一个屬性 而输入法引擎需è¦å¤„ç†çš„事件有: * 用户的按键事件 * 用户选择查找表的事件 * 用户请求移动预编辑光标的事件 * 获得/丢失输入焦点的事件 * ç”¨æˆ·è§¦å‘æŸä¸€ä¸ªå±¬æ€§çš„事件 为了简化设计, 采用了å•å‘çš„ signal-slot 结构, å³è¾“入法引擎所需的所有动作都ç»ç”±signal-slot å‘é€ç»™ FrontEnd, 而输入法引擎需è¦å¤„ç†çš„事件则直接由 FrontEnd 调用 IMEngineInstance 类的相应函数æ¥ä¼ é€’. 所有动作信å·çš„触å‘与事件函数的调用都å°è£…在 IMEngineInstance å’Œ FrontEnd 基类里. 派生类åªéœ€è¦è°ƒç”¨åŸºç±»çš„相应函数å³å¯, 完全ä¸ç”¨å…³å¿ƒ FrontEnd å’Œ IMEngineInstance 之间的具体通讯方å¼. FrontEnd 的工作机ç†: FrontEnd 除了负责用户界é¢çš„绘制, åŠä¸Žå®¢æˆ·ç¨‹åºäº¤äº’的功能以外, FrontEndBase åŸºç±»è¿˜è´Ÿè´£ç®¡ç†æ‰€æœ‰ IMEngineInstance 实例. æ¯ä¸ª IMEngineInstance 实例都被赋予了一个唯一的 id, FrontEnd æ´¾ç”Ÿç±»æ— éœ€ç›´æŽ¥å¤„ç† IMEngineInstance 实例或者其指针. 所有对 IMEngineInstance çš„æ“作都由 FrontEndBase ç±»æä¾›çš„函数和 IMEngineInstance çš„ id æ¥å®Œæˆ. ç›®å‰ FrontEndBase ç±»æä¾›ä»¥ä¸‹ä¸€äº›å‡½æ•°æ¥ç®¡ç† IMEngineInstance å’Œ IMEngineFactory: * int get_server_factory_list (vector& ids, vector& names, const String &encoding); å–得支æŒç‰¹å®šç¼–ç çš„æ‰€æœ‰ IMEngineFactory 的列表. 这个函数主è¦ç”¨äºŽ FrontEnd 派生类显示输入法列表. æ¯ä¸ª IMEngineFactory 对应一个唯一的 id. å¯ä»¥ç”¨ä¸‹é¢çš„函数选择当å‰çš„ IMEngineFactory. * int new_server_instance (int server_factory_id, const String& encoding); 从特定的 IMEngineFactory 创建一个支æŒç‰¹å®šç¼–ç çš„ IMEngineInstance, 返回这个 IMEngineInstance çš„ id. FrontEnd 派生类应当ä¿å­˜è¿™ä¸ª id, 以用æ¥å’Œè¿™ä¸ª IMEngineInstance 通讯, 和销æ¯è¿™ä¸ª IMEngineInstance. * bool delete_server_instance (int id); 销æ¯ä¸€ä¸ª IMEngineInstance. * WideString get_server_instance_name (int id); å–å¾— IMEngineInstance çš„åç§°, å³è¾“入法的åç§°. * void delete_all_server_instances (); é”€æ¯æ‰€æœ‰ IMEngineInstance. 以下函数用æ¥å’Œç‰¹å®šçš„ IMEngineInstance 通讯: * bool process_key_event (int id, KeyEvent& key); * void reset_server_instance (int id); * void focus_in_server_instance (int id); * void focus_out_server_instance (int id); * void select_lookup_table (int id, unsigned int item); * void move_preedit_caret (int id, unsigned int pos); * void update_lookup_table_page_size (int id, unsigned int page_size); * void trigger_property (int id, const String &property); FrontEnd 派生类通过继承 FrontEndBase æä¾›çš„一系列纯虚函数æ¥å¤„ç† IMEngineInstance å‘出的动作请求. 这些接å£å‡½æ•°æœ‰: virtual void show_preedit_string (int id) = 0; virtual void show_aux_string (int id) = 0; virtual void show_lookup_table (int id) = 0; virtual void hide_preedit_string (int id) = 0; virtual void hide_aux_string (int id) = 0; virtual void hide_lookup_table (int id) = 0; virtual void update_preedit_caret (int id, int caret) = 0; virtual void update_aux_string (int id, const WideString & str) = 0; virtual void update_lookup_table (int id, const LookupTable & table) = 0; virtual void commit_string (int id, const WideString & str) = 0; virtual void forward_keypress (int id, const KeyEvent & key) = 0; virtual void register_properties (int id, const PropertyList & properties) = 0; virtual void update_property (int id, const Property & property) = 0; 这些函数由 FrontEndBase 类调用. 傿•° id 为å‘出动作请求的 IMEngineInstance çš„ id. scim-1.4.14/docs/developers000066400000000000000000000023431177210725600155710ustar00rootroot00000000000000Development notes for SCIM ========================== If you want to write your own input method with SCIM, you should implement three classes, BackEnd, IMEngineFactory and IMEngineInstance: * BackEnd Manage all of the IMEngineFactory objects in order to let FrontEnd use them. See src/scim_backend.* to learn how to implement it. * IMEngineFactory An input method has one IMEngineFactory objects which manages all of the IMEngineInstance objects that FrontEnd requests to create. If there are any global data which should be shared among all IMEngineInstances, such as phrase library etc.,they should be put into IMEngineFactory and only transfer the pointer to IMEngineInstance. See src/scim_imengine.* and modules/IMEngine/* to learn how to implement it. * IMEngineInstance The real keyevents -> strings conversion work is done by this class. The keyevents fired by client program will be transported to IMEngineInstance by calling IMEngineInstance::process_key_event (...) from FrontEnd. IMEngineInstance objects should process these key events and make response to FrontEnd by calling base class functions show_preedit_string, update_preedit_string etc. See modules/IMEngine/* to learn how to implement it. scim-1.4.14/docs/manual/000077500000000000000000000000001177210725600147515ustar00rootroot00000000000000scim-1.4.14/docs/manual/Makefile.am000066400000000000000000000015161177210725600170100ustar00rootroot00000000000000## Makefile.am -- Process this file with automake to produce Makefile.in ## Copyright (C) 2002 James Su ## ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2, or (at your option) ## any later version. ## ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. MAINTAINERCLEANFILES = Makefile.in CLEANFILES = *.bak scim-1.4.14/docs/manual/Makefile.in000066400000000000000000000344061177210725600170250ustar00rootroot00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = docs/manual DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ ARGZ_H = @ARGZ_H@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CLUTTER_BINARY_VERSION = @CLUTTER_BINARY_VERSION@ CLUTTER_CFLAGS = @CLUTTER_CFLAGS@ CLUTTER_IMCONTEXT_LIBDIR = @CLUTTER_IMCONTEXT_LIBDIR@ CLUTTER_IM_MODULEDIR = @CLUTTER_IM_MODULEDIR@ CLUTTER_LIBDIR = @CLUTTER_LIBDIR@ CLUTTER_LIBS = @CLUTTER_LIBS@ CLUTTER_VERSION = @CLUTTER_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOCBOOK_XSL = @DOCBOOK_XSL@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@ GTHREAD2_LIBS = @GTHREAD2_LIBS@ GTK2_CFLAGS = @GTK2_CFLAGS@ GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@ GTK2_LIBS = @GTK2_LIBS@ GTK3_CFLAGS = @GTK3_CFLAGS@ GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@ GTK3_LIBS = @GTK3_LIBS@ GTK_BINARY_VERSION = @GTK_BINARY_VERSION@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBDIR = @GTK_LIBDIR@ GTK_LIBS = @GTK_LIBS@ GTK_MAJOR_VERSION = @GTK_MAJOR_VERSION@ GTK_VERSION = @GTK_VERSION@ HAVE_GRAPHVIZ = @HAVE_GRAPHVIZ@ INCLTDL = @INCLTDL@ INCLUDE_STDINT = @INCLUDE_STDINT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBLTDL = @LIBLTDL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_DEPS = @LIBTOOL_DEPS@ LIBTOOL_EXPORT_OPTIONS = @LIBTOOL_EXPORT_OPTIONS@ LIPO = @LIPO@ LN_S = @LN_S@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ QT3_CFLAGS = @QT3_CFLAGS@ QT3_IM_MODULEDIR = @QT3_IM_MODULEDIR@ QT3_LIBDIR = @QT3_LIBDIR@ QT3_LIBS = @QT3_LIBS@ QT3_MOC = @QT3_MOC@ QT3_PREFIX = @QT3_PREFIX@ QT4_CFLAGS = @QT4_CFLAGS@ QT4_IM_MODULEDIR = @QT4_IM_MODULEDIR@ QT4_LIBDIR = @QT4_LIBDIR@ QT4_LIBS = @QT4_LIBS@ QT4_MOC = @QT4_MOC@ QT4_PREFIX = @QT4_PREFIX@ RANLIB = @RANLIB@ SCIM_AGE = @SCIM_AGE@ SCIM_BINARY_VERSION = @SCIM_BINARY_VERSION@ SCIM_BRIDGE_MAJOR_VERSION = @SCIM_BRIDGE_MAJOR_VERSION@ SCIM_BRIDGE_MICRO_VERSION = @SCIM_BRIDGE_MICRO_VERSION@ SCIM_BRIDGE_MINOR_VERSION = @SCIM_BRIDGE_MINOR_VERSION@ SCIM_BRIDGE_VERSION = @SCIM_BRIDGE_VERSION@ SCIM_BUILD_CLUTTER_IMMODULE = @SCIM_BUILD_CLUTTER_IMMODULE@ SCIM_BUILD_CONFIG_SIMPLE = @SCIM_BUILD_CONFIG_SIMPLE@ SCIM_BUILD_CONFIG_SOCKET = @SCIM_BUILD_CONFIG_SOCKET@ SCIM_BUILD_DOCUMENTS = @SCIM_BUILD_DOCUMENTS@ SCIM_BUILD_FILTER_SCTC = @SCIM_BUILD_FILTER_SCTC@ SCIM_BUILD_FRONTEND_SOCKET = @SCIM_BUILD_FRONTEND_SOCKET@ SCIM_BUILD_FRONTEND_X11 = @SCIM_BUILD_FRONTEND_X11@ SCIM_BUILD_GTK2_IMMODULE = @SCIM_BUILD_GTK2_IMMODULE@ SCIM_BUILD_GTK3_IMMODULE = @SCIM_BUILD_GTK3_IMMODULE@ SCIM_BUILD_GTK_UTILS = @SCIM_BUILD_GTK_UTILS@ SCIM_BUILD_IMENGINE_RAWCODE = @SCIM_BUILD_IMENGINE_RAWCODE@ SCIM_BUILD_IMENGINE_SOCKET = @SCIM_BUILD_IMENGINE_SOCKET@ SCIM_BUILD_IMENGINE_TABLE = @SCIM_BUILD_IMENGINE_TABLE@ SCIM_BUILD_IMMODULE = @SCIM_BUILD_IMMODULE@ SCIM_BUILD_IM_AGENT = @SCIM_BUILD_IM_AGENT@ SCIM_BUILD_ORIG_GTK2_IMMODULE = @SCIM_BUILD_ORIG_GTK2_IMMODULE@ SCIM_BUILD_ORIG_GTK3_IMMODULE = @SCIM_BUILD_ORIG_GTK3_IMMODULE@ SCIM_BUILD_PANEL_GTK = @SCIM_BUILD_PANEL_GTK@ SCIM_BUILD_QT3_IMMODULE = @SCIM_BUILD_QT3_IMMODULE@ SCIM_BUILD_QT4_IMMODULE = @SCIM_BUILD_QT4_IMMODULE@ SCIM_BUILD_SCIM_SETUP = @SCIM_BUILD_SCIM_SETUP@ SCIM_BUILD_TESTS = @SCIM_BUILD_TESTS@ SCIM_BUILD_X11_UTILS = @SCIM_BUILD_X11_UTILS@ SCIM_CURRENT = @SCIM_CURRENT@ SCIM_DATADIR = @SCIM_DATADIR@ SCIM_EPOCH = @SCIM_EPOCH@ SCIM_ICONDIR = @SCIM_ICONDIR@ SCIM_LIBDIR = @SCIM_LIBDIR@ SCIM_LIBEXECDIR = @SCIM_LIBEXECDIR@ SCIM_LOCALEDIR = @SCIM_LOCALEDIR@ SCIM_LTDLADVISE = @SCIM_LTDLADVISE@ SCIM_MAJOR_VERSION = @SCIM_MAJOR_VERSION@ SCIM_MICRO_VERSION = @SCIM_MICRO_VERSION@ SCIM_MINOR_VERSION = @SCIM_MINOR_VERSION@ SCIM_MODULE_PATH = @SCIM_MODULE_PATH@ SCIM_PREFIX = @SCIM_PREFIX@ SCIM_REVISION = @SCIM_REVISION@ SCIM_SYSCONFDIR = @SCIM_SYSCONFDIR@ SCIM_TEMPDIR = @SCIM_TEMPDIR@ SCIM_VERSION = @SCIM_VERSION@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UINT16 = @UINT16@ UINT32 = @UINT32@ UINT64 = @UINT64@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XMKMF = @XMKMF@ XSLTPROC = @XSLTPROC@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_aux_dir = @ac_aux_dir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ MAINTAINERCLEANFILES = Makefile.in CLEANFILES = *.bak all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/manual/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu docs/manual/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: scim-1.4.14/docs/scim.cfg000066400000000000000000001325371177210725600151230ustar00rootroot00000000000000# Doxyfile 1.3.6 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project # # All text after a hash (#) is considered a comment and will be ignored # The format is: # TAG = value [value, ...] # For lists items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (" ") #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- # The PROJECT_NAME tag is a single word (or a sequence of words surrounded # by quotes) that should identify the project. PROJECT_NAME = scim # The PROJECT_NUMBER tag can be used to enter a project or revision number. # This could be handy for archiving the generated documentation or # if some version control system is used. PROJECT_NUMBER = 1.4.14 # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. # If a relative path is entered, it will be relative to the location # where doxygen was started. If left blank the current directory will be used. OUTPUT_DIRECTORY = . # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # The default language is English, other supported languages are: # Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, Dutch, # Finnish, French, German, Greek, Hungarian, Italian, Japanese, Japanese-en # (Japanese with English messages), Korean, Korean-en, Norwegian, Polish, Portuguese, # Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish, and Ukrainian. OUTPUT_LANGUAGE = # This tag can be used to specify the encoding used in the generated output. # The encoding is not always determined by the language that is chosen, # but also whether or not the output is meant for Windows or non-Windows users. # In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES # forces the Windows encoding (this is the default for the Windows binary), # whereas setting the tag to NO uses a Unix-style encoding (the default for # all platforms other than Windows). USE_WINDOWS_ENCODING = NO # If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will # include brief member descriptions after the members that are listed in # the file and class documentation (similar to JavaDoc). # Set to NO to disable this. BRIEF_MEMBER_DESC = YES # If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend # the brief description of a member or function before the detailed description. # Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. REPEAT_BRIEF = YES # This tag implements a quasi-intelligent brief description abbreviator # that is used to form the text in various listings. Each string # in this list, if found as the leading text of the brief description, will be # stripped from the text and the result after processing the whole list, is used # as the annotated text. Otherwise, the brief description is used as-is. If left # blank, the following values are used ("$name" is automatically replaced with the # name of the entity): "The $name class" "The $name widget" "The $name file" # "is" "provides" "specifies" "contains" "represents" "a" "an" "the" ABBREVIATE_BRIEF = # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then # Doxygen will generate a detailed section even if there is only a brief # description. ALWAYS_DETAILED_SEC = YES # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all inherited # members of a class in the documentation of that class as if those members were # ordinary class members. Constructors, destructors and assignment operators of # the base classes will not be shown. INLINE_INHERITED_MEMB = NO # If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full # path before files name in the file list and in the header files. If set # to NO the shortest path that makes the file name unique will be used. FULL_PATH_NAMES = NO # If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag # can be used to strip a user-defined part of the path. Stripping is # only done if one of the specified strings matches the left-hand part of # the path. It is allowed to use relative paths in the argument list. # If left blank the directory from which doxygen is run is used as the # path to strip. STRIP_FROM_PATH = # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter # (but less readable) file names. This can be useful is your file systems # doesn't support long names like on DOS, Mac, or CD-ROM. SHORT_NAMES = YES # If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen # will interpret the first line (until the first dot) of a JavaDoc-style # comment as the brief description. If set to NO, the JavaDoc # comments will behave just like the Qt-style comments (thus requiring an # explicit @brief command for a brief description. JAVADOC_AUTOBRIEF = NO # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen # treat a multi-line C++ special comment block (i.e. a block of //! or /// # comments) as a brief description. This used to be the default behaviour. # The new default is to treat a multi-line C++ comment block as a detailed # description. Set this tag to YES if you prefer the old behaviour instead. MULTILINE_CPP_IS_BRIEF = NO # If the DETAILS_AT_TOP tag is set to YES then Doxygen # will output the detailed description near the top, like JavaDoc. # If set to NO, the detailed description appears after the member # documentation. DETAILS_AT_TOP = NO # If the INHERIT_DOCS tag is set to YES (the default) then an undocumented # member inherits the documentation from any documented member that it # re-implements. INHERIT_DOCS = YES # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES, then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. DISTRIBUTE_GROUP_DOC = NO # The TAB_SIZE tag can be used to set the number of spaces in a tab. # Doxygen uses this value to replace tabs by spaces in code fragments. TAB_SIZE = 4 # This tag can be used to specify a number of aliases that acts # as commands in the documentation. An alias has the form "name=value". # For example adding "sideeffect=\par Side Effects:\n" will allow you to # put the command \sideeffect (or @sideeffect) in the documentation, which # will result in a user-defined paragraph with heading "Side Effects:". # You can put \n's in the value part of an alias to insert newlines. ALIASES = # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources # only. Doxygen will then generate output that is more tailored for C. # For instance, some of the names that are used will be different. The list # of all members will be omitted, etc. OPTIMIZE_OUTPUT_FOR_C = NO # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java sources # only. Doxygen will then generate output that is more tailored for Java. # For instance, namespaces will be presented as packages, qualified scopes # will look different, etc. OPTIMIZE_OUTPUT_JAVA = NO # Set the SUBGROUPING tag to YES (the default) to allow class member groups of # the same type (for instance a group of public functions) to be put as a # subgroup of that type (e.g. under the Public Functions section). Set it to # NO to prevent subgrouping. Alternatively, this can be done per class using # the \nosubgrouping command. SUBGROUPING = YES #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in # documentation are documented, even if no documentation was available. # Private class members and static file members will be hidden unless # the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES EXTRACT_ALL = YES # If the EXTRACT_PRIVATE tag is set to YES all private members of a class # will be included in the documentation. EXTRACT_PRIVATE = NO # If the EXTRACT_STATIC tag is set to YES all static members of a file # will be included in the documentation. EXTRACT_STATIC = YES # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) # defined locally in source files will be included in the documentation. # If set to NO only classes defined in header files are included. EXTRACT_LOCAL_CLASSES = YES # If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all # undocumented members of documented classes, files or namespaces. # If set to NO (the default) these members will be included in the # various overviews, but no documentation section is generated. # This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_MEMBERS = NO # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. # If set to NO (the default) these classes will be included in the various # overviews. This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_CLASSES = NO # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all # friend (class|struct|union) declarations. # If set to NO (the default) these declarations will be included in the # documentation. HIDE_FRIEND_COMPOUNDS = NO # If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any # documentation blocks found inside the body of a function. # If set to NO (the default) these blocks will be appended to the # function's detailed documentation block. HIDE_IN_BODY_DOCS = NO # The INTERNAL_DOCS tag determines if documentation # that is typed after a \internal command is included. If the tag is set # to NO (the default) then the documentation will be excluded. # Set it to YES to include the internal documentation. INTERNAL_DOCS = YES # If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate # file names in lower-case letters. If set to YES upper-case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # users are advised to set this option to NO. CASE_SENSE_NAMES = YES # If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen # will show members with their full class and namespace scopes in the # documentation. If set to YES the scope will be hidden. HIDE_SCOPE_NAMES = NO # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen # will put a list of the files that are included by a file in the documentation # of that file. SHOW_INCLUDE_FILES = YES # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] # is inserted in the documentation for inline members. INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen # will sort the (detailed) documentation of file and class members # alphabetically by member name. If set to NO the members will appear in # declaration order. SORT_MEMBER_DOCS = NO # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the # brief documentation of file, namespace and class members alphabetically # by member name. If set to NO (the default) the members will appear in # declaration order. SORT_BRIEF_DOCS = NO # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be # sorted by fully-qualified names, including namespaces. If set to # NO (the default), the class list will be sorted only by class name, # not including the namespace part. # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. # Note: This option applies only to the class list, not to the # alphabetical list. SORT_BY_SCOPE_NAME = NO # The GENERATE_TODOLIST tag can be used to enable (YES) or # disable (NO) the todo list. This list is created by putting \todo # commands in the documentation. GENERATE_TODOLIST = YES # The GENERATE_TESTLIST tag can be used to enable (YES) or # disable (NO) the test list. This list is created by putting \test # commands in the documentation. GENERATE_TESTLIST = YES # The GENERATE_BUGLIST tag can be used to enable (YES) or # disable (NO) the bug list. This list is created by putting \bug # commands in the documentation. GENERATE_BUGLIST = YES # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or # disable (NO) the deprecated list. This list is created by putting # \deprecated commands in the documentation. GENERATE_DEPRECATEDLIST= YES # The ENABLED_SECTIONS tag can be used to enable conditional # documentation sections, marked by \if sectionname ... \endif. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines # the initial value of a variable or define consists of for it to appear in # the documentation. If the initializer consists of more lines than specified # here it will be hidden. Use a value of 0 to hide initializers completely. # The appearance of the initializer of individual variables and defines in the # documentation can be controlled using \showinitializer or \hideinitializer # command in the documentation regardless of this setting. MAX_INITIALIZER_LINES = 30 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated # at the bottom of the documentation of classes and structs. If set to YES the # list will mention the files that were used to generate the documentation. SHOW_USED_FILES = YES #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated # by doxygen. Possible values are YES and NO. If left blank NO is used. QUIET = NO # The WARNINGS tag can be used to turn on/off the warning messages that are # generated by doxygen. Possible values are YES and NO. If left blank # NO is used. WARNINGS = YES # If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings # for undocumented members. If EXTRACT_ALL is set to YES then this flag will # automatically be disabled. WARN_IF_UNDOCUMENTED = YES # If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for # potential errors in the documentation, such as not documenting some # parameters in a documented function, or documenting parameters that # don't exist or using markup commands wrongly. WARN_IF_DOC_ERROR = YES # The WARN_FORMAT tag determines the format of the warning messages that # doxygen can produce. The string should contain the $file, $line, and $text # tags, which will be replaced by the file and line number from which the # warning originated and the warning text. WARN_FORMAT = "$file:$line: $text" # The WARN_LOGFILE tag can be used to specify a file to which warning # and error messages should be written. If left blank the output is written # to stderr. WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag can be used to specify the files and/or directories that contain # documented source files. You may enter file names like "myfile.cpp" or # directories like "/usr/src/myproject". Separate the files or directories # with spaces. INPUT = ../src # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank the following patterns are tested: # *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp # *.h++ *.idl *.odl *.cs *.php *.php3 *.inc FILE_PATTERNS = scim*.h # The RECURSIVE tag can be used to turn specify whether or not subdirectories # should be searched for input files as well. Possible values are YES and NO. # If left blank NO is used. RECURSIVE = NO # The EXCLUDE tag can be used to specify files and/or directories that should # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. EXCLUDE = # The EXCLUDE_SYMLINKS tag can be used select whether or not files or directories # that are symbolic links (a Unix filesystem feature) are excluded from the input. EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. EXCLUDE_PATTERNS = # The EXAMPLE_PATH tag can be used to specify one or more files or # directories that contain example code fragments that are included (see # the \include command). EXAMPLE_PATH = # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank all files are included. EXAMPLE_PATTERNS = # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be # searched for input files to be used with the \include or \dontinclude # commands irrespective of the value of the RECURSIVE tag. # Possible values are YES and NO. If left blank NO is used. EXAMPLE_RECURSIVE = NO # The IMAGE_PATH tag can be used to specify one or more files or # directories that contain image that are included in the documentation (see # the \image command). IMAGE_PATH = # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command , where # is the value of the INPUT_FILTER tag, and is the name of an # input file. Doxygen will then use the output that the filter program writes # to standard output. INPUT_FILTER = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will be used to filter the input files when producing source # files to browse (i.e. when SOURCE_BROWSER is set to YES). FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to source browsing #--------------------------------------------------------------------------- # If the SOURCE_BROWSER tag is set to YES then a list of source files will # be generated. Documented entities will be cross-referenced with these sources. # Note: To get rid of all source code in the generated output, make sure also # VERBATIM_HEADERS is set to NO. SOURCE_BROWSER = NO # Setting the INLINE_SOURCES tag to YES will include the body # of functions and classes directly in the documentation. INLINE_SOURCES = NO # Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct # doxygen to hide any special comment blocks from generated source code # fragments. Normal C and C++ comments will always remain visible. STRIP_CODE_COMMENTS = NO # If the REFERENCED_BY_RELATION tag is set to YES (the default) # then for each documented function all documented # functions referencing it will be listed. REFERENCED_BY_RELATION = YES # If the REFERENCES_RELATION tag is set to YES (the default) # then for each documented function all documented entities # called/used by that function will be listed. REFERENCES_RELATION = YES # If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen # will generate a verbatim copy of the header file for each class for # which an include is specified. Set to NO to disable this. VERBATIM_HEADERS = NO #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index # of all compounds will be generated. Enable this if the project # contains a lot of classes, structs, unions or interfaces. ALPHABETICAL_INDEX = YES # If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns # in which this list will be split (can be a number in the range [1..20]) COLS_IN_ALPHA_INDEX = 5 # In case all classes in a project start with a common prefix, all # classes will be put under the same header in the alphabetical index. # The IGNORE_PREFIX tag can be used to specify one or more prefixes that # should be ignored while generating the index headers. IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES (the default) Doxygen will # generate HTML output. GENERATE_HTML = YES # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `html' will be used as the default path. HTML_OUTPUT = html # The HTML_FILE_EXTENSION tag can be used to specify the file extension for # each generated HTML page (for example: .htm,.php,.asp). If it is left blank # doxygen will generate files with .html extension. HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a personal HTML header for # each generated HTML page. If it is left blank doxygen will generate a # standard header. HTML_HEADER = # The HTML_FOOTER tag can be used to specify a personal HTML footer for # each generated HTML page. If it is left blank doxygen will generate a # standard footer. HTML_FOOTER = # The HTML_STYLESHEET tag can be used to specify a user-defined cascading # style sheet that is used by each HTML page. It can be used to # fine-tune the look of the HTML output. If the tag is left blank doxygen # will generate a default style sheet. Note that doxygen will try to copy # the style sheet file to the HTML output directory, so don't put your own # stylesheet in the HTML output directory as well, or it will be erased! HTML_STYLESHEET = # If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, # files or namespaces will be aligned in HTML using tables. If set to # NO a bullet list will be used. HTML_ALIGN_MEMBERS = YES # If the GENERATE_HTMLHELP tag is set to YES, additional index files # will be generated that can be used as input for tools like the # Microsoft HTML help workshop to generate a compressed HTML help file (.chm) # of the generated HTML documentation. GENERATE_HTMLHELP = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can # be used to specify the file name of the resulting .chm file. You # can add a path in front of the file if the result should not be # written to the html output directory. CHM_FILE = # If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can # be used to specify the location (absolute path including file name) of # the HTML help compiler (hhc.exe). If non-empty doxygen will try to run # the HTML help compiler on the generated index.hhp. HHC_LOCATION = # If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag # controls if a separate .chi index file is generated (YES) or that # it should be included in the master .chm file (NO). GENERATE_CHI = NO # If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag # controls whether a binary table of contents is generated (YES) or a # normal table of contents (NO) in the .chm file. BINARY_TOC = NO # The TOC_EXPAND flag can be set to YES to add extra items for group members # to the contents of the HTML help documentation and to the tree view. TOC_EXPAND = NO # The DISABLE_INDEX tag can be used to turn on/off the condensed index at # top of each HTML page. The value NO (the default) enables the index and # the value YES disables it. DISABLE_INDEX = NO # This tag can be used to set the number of enum values (range [1..20]) # that doxygen will group on one line in the generated HTML documentation. ENUM_VALUES_PER_LINE = 4 # If the GENERATE_TREEVIEW tag is set to YES, a side panel will be # generated containing a tree-like index structure (just like the one that # is generated for HTML Help). For this to work a browser that supports # JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, # Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are # probably better off using the HTML help feature. GENERATE_TREEVIEW = YES # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be # used to set the initial width (in pixels) of the frame in which the tree # is shown. TREEVIEW_WIDTH = 250 #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will # generate Latex output. GENERATE_LATEX = NO # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `latex' will be used as the default path. LATEX_OUTPUT = latex # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be # invoked. If left blank `latex' will be used as the default command name. LATEX_CMD_NAME = latex # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to # generate index for LaTeX. If left blank `makeindex' will be used as the # default command name. MAKEINDEX_CMD_NAME = makeindex # If the COMPACT_LATEX tag is set to YES Doxygen generates more compact # LaTeX documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_LATEX = NO # The PAPER_TYPE tag can be used to set the paper type that is used # by the printer. Possible values are: a4, a4wide, letter, legal and # executive. If left blank a4wide will be used. PAPER_TYPE = a4wide # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX # packages that should be included in the LaTeX output. EXTRA_PACKAGES = # The LATEX_HEADER tag can be used to specify a personal LaTeX header for # the generated latex document. The header should contain everything until # the first chapter. If it is left blank doxygen will generate a # standard header. Notice: only use this tag if you know what you are doing! LATEX_HEADER = # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated # is prepared for conversion to pdf (using ps2pdf). The pdf file will # contain links (just like the HTML output) instead of page references # This makes the output suitable for online browsing using a pdf viewer. PDF_HYPERLINKS = NO # If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of # plain latex in the generated Makefile. Set this option to YES to get a # higher quality PDF documentation. USE_PDFLATEX = NO # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. # command to the generated LaTeX files. This will instruct LaTeX to keep # running if errors occur, instead of asking the user for help. # This option is also used when generating formulas in HTML. LATEX_BATCHMODE = NO # If LATEX_HIDE_INDICES is set to YES then doxygen will not # include the index chapters (such as File Index, Compound Index, etc.) # in the output. LATEX_HIDE_INDICES = NO #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- # If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output # The RTF output is optimized for Word 97 and may not look very pretty with # other RTF readers or editors. GENERATE_RTF = NO # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `rtf' will be used as the default path. RTF_OUTPUT = rtf # If the COMPACT_RTF tag is set to YES Doxygen generates more compact # RTF documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_RTF = NO # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated # will contain hyperlink fields. The RTF file will # contain links (just like the HTML output) instead of page references. # This makes the output suitable for online browsing using WORD or other # programs which support those fields. # Note: wordpad (write) and others do not support links. RTF_HYPERLINKS = NO # Load stylesheet definitions from file. Syntax is similar to doxygen's # config file, i.e. a series of assignments. You only have to provide # replacements, missing definitions are set to their default value. RTF_STYLESHEET_FILE = # Set optional variables used in the generation of an rtf document. # Syntax is similar to doxygen's config file. RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- # If the GENERATE_MAN tag is set to YES (the default) Doxygen will # generate man pages GENERATE_MAN = NO # The MAN_OUTPUT tag is used to specify where the man pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `man' will be used as the default path. MAN_OUTPUT = man # The MAN_EXTENSION tag determines the extension that is added to # the generated man pages (default is the subroutine's section .3) MAN_EXTENSION = .3 # If the MAN_LINKS tag is set to YES and Doxygen generates man output, # then it will generate one additional man file for each entity # documented in the real man page(s). These additional files # only source the real man page, but without them the man command # would be unable to find the correct page. The default is NO. MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- # If the GENERATE_XML tag is set to YES Doxygen will # generate an XML file that captures the structure of # the code including all documentation. GENERATE_XML = NO # The XML_OUTPUT tag is used to specify where the XML pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `xml' will be used as the default path. XML_OUTPUT = xml # The XML_SCHEMA tag can be used to specify an XML schema, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_SCHEMA = # The XML_DTD tag can be used to specify an XML DTD, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_DTD = # If the XML_PROGRAMLISTING tag is set to YES Doxygen will # dump the program listings (including syntax highlighting # and cross-referencing information) to the XML output. Note that # enabling this will significantly increase the size of the XML output. XML_PROGRAMLISTING = YES #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- # If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will # generate an AutoGen Definitions (see autogen.sf.net) file # that captures the structure of the code including all # documentation. Note that this feature is still experimental # and incomplete at the moment. GENERATE_AUTOGEN_DEF = NO #--------------------------------------------------------------------------- # configuration options related to the Perl module output #--------------------------------------------------------------------------- # If the GENERATE_PERLMOD tag is set to YES Doxygen will # generate a Perl module file that captures the structure of # the code including all documentation. Note that this # feature is still experimental and incomplete at the # moment. GENERATE_PERLMOD = NO # If the PERLMOD_LATEX tag is set to YES Doxygen will generate # the necessary Makefile rules, Perl scripts and LaTeX code to be able # to generate PDF and DVI output from the Perl module output. PERLMOD_LATEX = NO # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be # nicely formatted so it can be parsed by a human reader. This is useful # if you want to understand what is going on. On the other hand, if this # tag is set to NO the size of the Perl module output will be much smaller # and Perl will parse it just the same. PERLMOD_PRETTY = YES # The names of the make variables in the generated doxyrules.make file # are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. # This is useful so different doxyrules.make files included by the same # Makefile don't overwrite each other's variables. PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- # If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will # evaluate all C-preprocessor directives found in the sources and include # files. ENABLE_PREPROCESSING = YES # If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro # names in the source code. If set to NO (the default) only conditional # compilation will be performed. Macro expansion can be done in a controlled # way by setting EXPAND_ONLY_PREDEF to YES. MACRO_EXPANSION = YES # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES # then the macro expansion is limited to the macros specified with the # PREDEFINED and EXPAND_AS_PREDEFINED tags. EXPAND_ONLY_PREDEF = YES # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files # in the INCLUDE_PATH (see below) will be search if a #include is found. SEARCH_INCLUDES = NO # The INCLUDE_PATH tag can be used to specify one or more directories that # contain include files that are not input files but should be processed by # the preprocessor. INCLUDE_PATH = ../src # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard # patterns (like *.h and *.hpp) to filter out the header-files in the # directories. If left blank, the patterns specified with FILE_PATTERNS will # be used. INCLUDE_FILE_PATTERNS = scim*.h # The PREDEFINED tag can be used to specify one or more macro names that # are defined before the preprocessor is started (similar to the -D option of # gcc). The argument of the tag is a list of macros of the form: name # or name=definition (no spaces). If the definition and the = are # omitted =1 is assumed. PREDEFINED = ENABLE_DEBUG \ Uses_SCIM_ATTRIBUTE \ Uses_SCIM_BACKEND \ Uses_SCIM_BIND \ Uses_SCIM_COMPOSE_KEY \ Uses_SCIM_CONFIG_BASE \ Uses_SCIM_CONFIG_MODULE \ Uses_SCIM_CONFIG_PATH \ Uses_SCIM_CONNECTION \ Uses_SCIM_DEBUG \ Uses_SCIM_EVENT \ Uses_SCIM_EXCEPTION \ Uses_SCIM_FILTER \ Uses_SCIM_FRONTEND \ Uses_SCIM_FRONTEND_MODULE \ Uses_SCIM_GLOBAL_CONFIG \ Uses_SCIM_HELPER \ Uses_SCIM_HELPER_MODULE \ Uses_SCIM_ICONV \ Uses_SCIM_IMENGINE \ Uses_SCIM_IMENGINE_MODULE \ Uses_SCIM_LOOKUP_TABLE \ Uses_SCIM_MODULE \ Uses_SCIM_OBJECT \ Uses_SCIM_PANEL \ Uses_SCIM_POINTER \ Uses_SCIM_PROPERTY \ Uses_SCIM_SIGNALS \ Uses_SCIM_SLOT \ Uses_SCIM_SOCKET \ Uses_SCIM_TRANSACTION \ Uses_SCIM_TRANS_COMMANDS \ Uses_SCIM_TYPES \ Uses_SCIM_UTILITY # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then # this tag can be used to specify a list of macro names that should be expanded. # The macro definition that is found in the sources will be used. # Use the PREDEFINED tag if you want to use a different macro definition. EXPAND_AS_DEFINED = # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then # doxygen's preprocessor will remove all function-like macros that are alone # on a line, have an all uppercase name, and do not end with a semicolon. Such # function macros are typically used for boiler-plate code, and will confuse the # parser if not removed. SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- # Configuration::additions related to external references #--------------------------------------------------------------------------- # The TAGFILES option can be used to specify one or more tagfiles. # Optionally an initial location of the external documentation # can be added for each tagfile. The format of a tag file without # this location is as follows: # TAGFILES = file1 file2 ... # Adding location for the tag files is done as follows: # TAGFILES = file1=loc1 "file2 = loc2" ... # where "loc1" and "loc2" can be relative or absolute paths or # URLs. If a location is present for each tag, the installdox tool # does not have to be run to correct the links. # Note that each tag file must have a unique name # (where the name does NOT include the path) # If a tag file is not located in the directory in which doxygen # is run, you must also specify the path to the tagfile here. TAGFILES = # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. GENERATE_TAGFILE = # If the ALLEXTERNALS tag is set to YES all external classes will be listed # in the class index. If set to NO only the inherited external classes # will be listed. ALLEXTERNALS = NO # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed # in the modules index. If set to NO, only the current project's groups will # be listed. EXTERNAL_GROUPS = YES # The PERL_PATH should be the absolute path and name of the perl script # interpreter (i.e. the result of `which perl'). PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will # generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base or # super classes. Setting the tag to NO turns the diagrams off. Note that this # option is superseded by the HAVE_DOT option below. This is only a fallback. It is # recommended to install and use dot, since it yields more powerful graphs. CLASS_DIAGRAMS = YES # If set to YES, the inheritance and collaboration graphs will hide # inheritance and usage relations if the target is undocumented # or is not a class. HIDE_UNDOC_RELATIONS = YES # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is # available from the path. This tool is part of Graphviz, a graph visualization # toolkit from AT&T and Lucent Bell Labs. The other options in this section # have no effect if this option is set to NO (the default) HAVE_DOT = YES # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect inheritance relations. Setting this tag to YES will force the # the CLASS_DIAGRAMS tag to NO. CLASS_GRAPH = YES # If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect implementation dependencies (inheritance, containment, and # class references variables) of the class with other documented classes. COLLABORATION_GRAPH = YES # If the UML_LOOK tag is set to YES doxygen will generate inheritance and # collaboration diagrams in a style similar to the OMG's Unified Modeling # Language. UML_LOOK = NO # If set to YES, the inheritance and collaboration graphs will show the # relations between templates and their instances. TEMPLATE_RELATIONS = NO # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT # tags are set to YES then doxygen will generate a graph for each documented # file showing the direct and indirect include dependencies of the file with # other documented files. INCLUDE_GRAPH = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and # HAVE_DOT tags are set to YES then doxygen will generate a graph for each # documented header file showing the documented files that directly or # indirectly include this file. INCLUDED_BY_GRAPH = YES # If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will # generate a call dependency graph for every global function or class method. # Note that enabling this option will significantly increase the time of a run. # So in most cases it will be better to enable call graphs for selected # functions only using the \callgraph command. CALL_GRAPH = NO # If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen # will graphical hierarchy of all classes instead of a textual one. GRAPHICAL_HIERARCHY = YES # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images # generated by dot. Possible values are png, jpg, or gif # If left blank png will be used. DOT_IMAGE_FORMAT = png # The tag DOT_PATH can be used to specify the path where the dot tool can be # found. If left blank, it is assumed the dot tool can be found on the path. DOT_PATH = /usr/bin # The DOTFILE_DIRS tag can be used to specify one or more directories that # contain dot files that are included in the documentation (see the # \dotfile command). DOTFILE_DIRS = # The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width # (in pixels) of the graphs generated by dot. If a graph becomes larger than # this value, doxygen will try to truncate the graph, so that it fits within # the specified constraint. Beware that most browsers cannot cope with very # large images. MAX_DOT_GRAPH_WIDTH = 1024 # The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height # (in pixels) of the graphs generated by dot. If a graph becomes larger than # this value, doxygen will try to truncate the graph, so that it fits within # the specified constraint. Beware that most browsers cannot cope with very # large images. MAX_DOT_GRAPH_HEIGHT = 1024 # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the # graphs generated by dot. A depth value of 3 means that only nodes reachable # from the root by following a path via at most 3 edges will be shown. Nodes that # lay further from the root node will be omitted. Note that setting this option to # 1 or 2 may greatly reduce the computation time needed for large code bases. Also # note that a graph may be further truncated if the graph's image dimensions are # not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH and MAX_DOT_GRAPH_HEIGHT). # If 0 is used for the depth value (the default), the graph is not depth-constrained. MAX_DOT_GRAPH_DEPTH = 0 # If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will # generate a legend page explaining the meaning of the various boxes and # arrows in the dot generated graphs. GENERATE_LEGEND = YES # If the DOT_CLEANUP tag is set to YES (the default) Doxygen will # remove the intermediate dot files that are used to generate # the various graphs. DOT_CLEANUP = YES #--------------------------------------------------------------------------- # Configuration::additions related to the search engine #--------------------------------------------------------------------------- # The SEARCHENGINE tag specifies whether or not a search engine should be # used. If set to NO the values of all tags below this one will be ignored. SEARCHENGINE = NO scim-1.4.14/docs/scim.cfg.in000066400000000000000000001327351177210725600155300ustar00rootroot00000000000000# Doxyfile 1.3.6 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project # # All text after a hash (#) is considered a comment and will be ignored # The format is: # TAG = value [value, ...] # For lists items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (" ") #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- # The PROJECT_NAME tag is a single word (or a sequence of words surrounded # by quotes) that should identify the project. PROJECT_NAME = @PACKAGE@ # The PROJECT_NUMBER tag can be used to enter a project or revision number. # This could be handy for archiving the generated documentation or # if some version control system is used. PROJECT_NUMBER = @VERSION@ # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. # If a relative path is entered, it will be relative to the location # where doxygen was started. If left blank the current directory will be used. OUTPUT_DIRECTORY = . # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # The default language is English, other supported languages are: # Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, Dutch, # Finnish, French, German, Greek, Hungarian, Italian, Japanese, Japanese-en # (Japanese with English messages), Korean, Korean-en, Norwegian, Polish, Portuguese, # Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish, and Ukrainian. OUTPUT_LANGUAGE = # This tag can be used to specify the encoding used in the generated output. # The encoding is not always determined by the language that is chosen, # but also whether or not the output is meant for Windows or non-Windows users. # In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES # forces the Windows encoding (this is the default for the Windows binary), # whereas setting the tag to NO uses a Unix-style encoding (the default for # all platforms other than Windows). USE_WINDOWS_ENCODING = NO # If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will # include brief member descriptions after the members that are listed in # the file and class documentation (similar to JavaDoc). # Set to NO to disable this. BRIEF_MEMBER_DESC = YES # If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend # the brief description of a member or function before the detailed description. # Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. REPEAT_BRIEF = YES # This tag implements a quasi-intelligent brief description abbreviator # that is used to form the text in various listings. Each string # in this list, if found as the leading text of the brief description, will be # stripped from the text and the result after processing the whole list, is used # as the annotated text. Otherwise, the brief description is used as-is. If left # blank, the following values are used ("$name" is automatically replaced with the # name of the entity): "The $name class" "The $name widget" "The $name file" # "is" "provides" "specifies" "contains" "represents" "a" "an" "the" ABBREVIATE_BRIEF = # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then # Doxygen will generate a detailed section even if there is only a brief # description. ALWAYS_DETAILED_SEC = YES # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all inherited # members of a class in the documentation of that class as if those members were # ordinary class members. Constructors, destructors and assignment operators of # the base classes will not be shown. INLINE_INHERITED_MEMB = NO # If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full # path before files name in the file list and in the header files. If set # to NO the shortest path that makes the file name unique will be used. FULL_PATH_NAMES = NO # If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag # can be used to strip a user-defined part of the path. Stripping is # only done if one of the specified strings matches the left-hand part of # the path. It is allowed to use relative paths in the argument list. # If left blank the directory from which doxygen is run is used as the # path to strip. STRIP_FROM_PATH = # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter # (but less readable) file names. This can be useful is your file systems # doesn't support long names like on DOS, Mac, or CD-ROM. SHORT_NAMES = YES # If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen # will interpret the first line (until the first dot) of a JavaDoc-style # comment as the brief description. If set to NO, the JavaDoc # comments will behave just like the Qt-style comments (thus requiring an # explicit @brief command for a brief description. JAVADOC_AUTOBRIEF = NO # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen # treat a multi-line C++ special comment block (i.e. a block of //! or /// # comments) as a brief description. This used to be the default behaviour. # The new default is to treat a multi-line C++ comment block as a detailed # description. Set this tag to YES if you prefer the old behaviour instead. MULTILINE_CPP_IS_BRIEF = NO # If the DETAILS_AT_TOP tag is set to YES then Doxygen # will output the detailed description near the top, like JavaDoc. # If set to NO, the detailed description appears after the member # documentation. DETAILS_AT_TOP = NO # If the INHERIT_DOCS tag is set to YES (the default) then an undocumented # member inherits the documentation from any documented member that it # re-implements. INHERIT_DOCS = YES # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES, then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. DISTRIBUTE_GROUP_DOC = NO # The TAB_SIZE tag can be used to set the number of spaces in a tab. # Doxygen uses this value to replace tabs by spaces in code fragments. TAB_SIZE = 4 # This tag can be used to specify a number of aliases that acts # as commands in the documentation. An alias has the form "name=value". # For example adding "sideeffect=\par Side Effects:\n" will allow you to # put the command \sideeffect (or @sideeffect) in the documentation, which # will result in a user-defined paragraph with heading "Side Effects:". # You can put \n's in the value part of an alias to insert newlines. ALIASES = # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources # only. Doxygen will then generate output that is more tailored for C. # For instance, some of the names that are used will be different. The list # of all members will be omitted, etc. OPTIMIZE_OUTPUT_FOR_C = NO # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java sources # only. Doxygen will then generate output that is more tailored for Java. # For instance, namespaces will be presented as packages, qualified scopes # will look different, etc. OPTIMIZE_OUTPUT_JAVA = NO # Set the SUBGROUPING tag to YES (the default) to allow class member groups of # the same type (for instance a group of public functions) to be put as a # subgroup of that type (e.g. under the Public Functions section). Set it to # NO to prevent subgrouping. Alternatively, this can be done per class using # the \nosubgrouping command. SUBGROUPING = YES #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in # documentation are documented, even if no documentation was available. # Private class members and static file members will be hidden unless # the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES EXTRACT_ALL = YES # If the EXTRACT_PRIVATE tag is set to YES all private members of a class # will be included in the documentation. EXTRACT_PRIVATE = NO # If the EXTRACT_STATIC tag is set to YES all static members of a file # will be included in the documentation. EXTRACT_STATIC = YES # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) # defined locally in source files will be included in the documentation. # If set to NO only classes defined in header files are included. EXTRACT_LOCAL_CLASSES = YES # If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all # undocumented members of documented classes, files or namespaces. # If set to NO (the default) these members will be included in the # various overviews, but no documentation section is generated. # This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_MEMBERS = NO # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. # If set to NO (the default) these classes will be included in the various # overviews. This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_CLASSES = NO # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all # friend (class|struct|union) declarations. # If set to NO (the default) these declarations will be included in the # documentation. HIDE_FRIEND_COMPOUNDS = NO # If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any # documentation blocks found inside the body of a function. # If set to NO (the default) these blocks will be appended to the # function's detailed documentation block. HIDE_IN_BODY_DOCS = NO # The INTERNAL_DOCS tag determines if documentation # that is typed after a \internal command is included. If the tag is set # to NO (the default) then the documentation will be excluded. # Set it to YES to include the internal documentation. INTERNAL_DOCS = YES # If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate # file names in lower-case letters. If set to YES upper-case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # users are advised to set this option to NO. CASE_SENSE_NAMES = YES # If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen # will show members with their full class and namespace scopes in the # documentation. If set to YES the scope will be hidden. HIDE_SCOPE_NAMES = NO # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen # will put a list of the files that are included by a file in the documentation # of that file. SHOW_INCLUDE_FILES = YES # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] # is inserted in the documentation for inline members. INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen # will sort the (detailed) documentation of file and class members # alphabetically by member name. If set to NO the members will appear in # declaration order. SORT_MEMBER_DOCS = NO # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the # brief documentation of file, namespace and class members alphabetically # by member name. If set to NO (the default) the members will appear in # declaration order. SORT_BRIEF_DOCS = NO # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be # sorted by fully-qualified names, including namespaces. If set to # NO (the default), the class list will be sorted only by class name, # not including the namespace part. # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. # Note: This option applies only to the class list, not to the # alphabetical list. SORT_BY_SCOPE_NAME = NO # The GENERATE_TODOLIST tag can be used to enable (YES) or # disable (NO) the todo list. This list is created by putting \todo # commands in the documentation. GENERATE_TODOLIST = YES # The GENERATE_TESTLIST tag can be used to enable (YES) or # disable (NO) the test list. This list is created by putting \test # commands in the documentation. GENERATE_TESTLIST = YES # The GENERATE_BUGLIST tag can be used to enable (YES) or # disable (NO) the bug list. This list is created by putting \bug # commands in the documentation. GENERATE_BUGLIST = YES # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or # disable (NO) the deprecated list. This list is created by putting # \deprecated commands in the documentation. GENERATE_DEPRECATEDLIST= YES # The ENABLED_SECTIONS tag can be used to enable conditional # documentation sections, marked by \if sectionname ... \endif. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines # the initial value of a variable or define consists of for it to appear in # the documentation. If the initializer consists of more lines than specified # here it will be hidden. Use a value of 0 to hide initializers completely. # The appearance of the initializer of individual variables and defines in the # documentation can be controlled using \showinitializer or \hideinitializer # command in the documentation regardless of this setting. MAX_INITIALIZER_LINES = 30 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated # at the bottom of the documentation of classes and structs. If set to YES the # list will mention the files that were used to generate the documentation. SHOW_USED_FILES = YES #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated # by doxygen. Possible values are YES and NO. If left blank NO is used. QUIET = NO # The WARNINGS tag can be used to turn on/off the warning messages that are # generated by doxygen. Possible values are YES and NO. If left blank # NO is used. WARNINGS = YES # If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings # for undocumented members. If EXTRACT_ALL is set to YES then this flag will # automatically be disabled. WARN_IF_UNDOCUMENTED = YES # If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for # potential errors in the documentation, such as not documenting some # parameters in a documented function, or documenting parameters that # don't exist or using markup commands wrongly. WARN_IF_DOC_ERROR = YES # The WARN_FORMAT tag determines the format of the warning messages that # doxygen can produce. The string should contain the $file, $line, and $text # tags, which will be replaced by the file and line number from which the # warning originated and the warning text. WARN_FORMAT = "$file:$line: $text" # The WARN_LOGFILE tag can be used to specify a file to which warning # and error messages should be written. If left blank the output is written # to stderr. WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag can be used to specify the files and/or directories that contain # documented source files. You may enter file names like "myfile.cpp" or # directories like "/usr/src/myproject". Separate the files or directories # with spaces. INPUT = @top_srcdir@/src # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank the following patterns are tested: # *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp # *.h++ *.idl *.odl *.cs *.php *.php3 *.inc FILE_PATTERNS = scim*.h # The RECURSIVE tag can be used to turn specify whether or not subdirectories # should be searched for input files as well. Possible values are YES and NO. # If left blank NO is used. RECURSIVE = NO # The EXCLUDE tag can be used to specify files and/or directories that should # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. EXCLUDE = # The EXCLUDE_SYMLINKS tag can be used select whether or not files or directories # that are symbolic links (a Unix filesystem feature) are excluded from the input. EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. EXCLUDE_PATTERNS = # The EXAMPLE_PATH tag can be used to specify one or more files or # directories that contain example code fragments that are included (see # the \include command). EXAMPLE_PATH = # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank all files are included. EXAMPLE_PATTERNS = # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be # searched for input files to be used with the \include or \dontinclude # commands irrespective of the value of the RECURSIVE tag. # Possible values are YES and NO. If left blank NO is used. EXAMPLE_RECURSIVE = NO # The IMAGE_PATH tag can be used to specify one or more files or # directories that contain image that are included in the documentation (see # the \image command). IMAGE_PATH = # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command , where # is the value of the INPUT_FILTER tag, and is the name of an # input file. Doxygen will then use the output that the filter program writes # to standard output. INPUT_FILTER = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will be used to filter the input files when producing source # files to browse (i.e. when SOURCE_BROWSER is set to YES). FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to source browsing #--------------------------------------------------------------------------- # If the SOURCE_BROWSER tag is set to YES then a list of source files will # be generated. Documented entities will be cross-referenced with these sources. # Note: To get rid of all source code in the generated output, make sure also # VERBATIM_HEADERS is set to NO. SOURCE_BROWSER = NO # Setting the INLINE_SOURCES tag to YES will include the body # of functions and classes directly in the documentation. INLINE_SOURCES = NO # Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct # doxygen to hide any special comment blocks from generated source code # fragments. Normal C and C++ comments will always remain visible. STRIP_CODE_COMMENTS = NO # If the REFERENCED_BY_RELATION tag is set to YES (the default) # then for each documented function all documented # functions referencing it will be listed. REFERENCED_BY_RELATION = YES # If the REFERENCES_RELATION tag is set to YES (the default) # then for each documented function all documented entities # called/used by that function will be listed. REFERENCES_RELATION = YES # If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen # will generate a verbatim copy of the header file for each class for # which an include is specified. Set to NO to disable this. VERBATIM_HEADERS = NO #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index # of all compounds will be generated. Enable this if the project # contains a lot of classes, structs, unions or interfaces. ALPHABETICAL_INDEX = YES # If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns # in which this list will be split (can be a number in the range [1..20]) COLS_IN_ALPHA_INDEX = 5 # In case all classes in a project start with a common prefix, all # classes will be put under the same header in the alphabetical index. # The IGNORE_PREFIX tag can be used to specify one or more prefixes that # should be ignored while generating the index headers. IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES (the default) Doxygen will # generate HTML output. GENERATE_HTML = YES # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `html' will be used as the default path. HTML_OUTPUT = html # The HTML_FILE_EXTENSION tag can be used to specify the file extension for # each generated HTML page (for example: .htm,.php,.asp). If it is left blank # doxygen will generate files with .html extension. HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a personal HTML header for # each generated HTML page. If it is left blank doxygen will generate a # standard header. HTML_HEADER = # The HTML_FOOTER tag can be used to specify a personal HTML footer for # each generated HTML page. If it is left blank doxygen will generate a # standard footer. HTML_FOOTER = # The HTML_STYLESHEET tag can be used to specify a user-defined cascading # style sheet that is used by each HTML page. It can be used to # fine-tune the look of the HTML output. If the tag is left blank doxygen # will generate a default style sheet. Note that doxygen will try to copy # the style sheet file to the HTML output directory, so don't put your own # stylesheet in the HTML output directory as well, or it will be erased! HTML_STYLESHEET = # If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, # files or namespaces will be aligned in HTML using tables. If set to # NO a bullet list will be used. HTML_ALIGN_MEMBERS = YES # If the GENERATE_HTMLHELP tag is set to YES, additional index files # will be generated that can be used as input for tools like the # Microsoft HTML help workshop to generate a compressed HTML help file (.chm) # of the generated HTML documentation. GENERATE_HTMLHELP = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can # be used to specify the file name of the resulting .chm file. You # can add a path in front of the file if the result should not be # written to the html output directory. CHM_FILE = # If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can # be used to specify the location (absolute path including file name) of # the HTML help compiler (hhc.exe). If non-empty doxygen will try to run # the HTML help compiler on the generated index.hhp. HHC_LOCATION = # If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag # controls if a separate .chi index file is generated (YES) or that # it should be included in the master .chm file (NO). GENERATE_CHI = NO # If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag # controls whether a binary table of contents is generated (YES) or a # normal table of contents (NO) in the .chm file. BINARY_TOC = NO # The TOC_EXPAND flag can be set to YES to add extra items for group members # to the contents of the HTML help documentation and to the tree view. TOC_EXPAND = NO # The DISABLE_INDEX tag can be used to turn on/off the condensed index at # top of each HTML page. The value NO (the default) enables the index and # the value YES disables it. DISABLE_INDEX = NO # This tag can be used to set the number of enum values (range [1..20]) # that doxygen will group on one line in the generated HTML documentation. ENUM_VALUES_PER_LINE = 4 # If the GENERATE_TREEVIEW tag is set to YES, a side panel will be # generated containing a tree-like index structure (just like the one that # is generated for HTML Help). For this to work a browser that supports # JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, # Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are # probably better off using the HTML help feature. GENERATE_TREEVIEW = YES # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be # used to set the initial width (in pixels) of the frame in which the tree # is shown. TREEVIEW_WIDTH = 250 #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will # generate Latex output. GENERATE_LATEX = NO # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `latex' will be used as the default path. LATEX_OUTPUT = latex # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be # invoked. If left blank `latex' will be used as the default command name. LATEX_CMD_NAME = latex # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to # generate index for LaTeX. If left blank `makeindex' will be used as the # default command name. MAKEINDEX_CMD_NAME = makeindex # If the COMPACT_LATEX tag is set to YES Doxygen generates more compact # LaTeX documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_LATEX = NO # The PAPER_TYPE tag can be used to set the paper type that is used # by the printer. Possible values are: a4, a4wide, letter, legal and # executive. If left blank a4wide will be used. PAPER_TYPE = a4wide # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX # packages that should be included in the LaTeX output. EXTRA_PACKAGES = # The LATEX_HEADER tag can be used to specify a personal LaTeX header for # the generated latex document. The header should contain everything until # the first chapter. If it is left blank doxygen will generate a # standard header. Notice: only use this tag if you know what you are doing! LATEX_HEADER = # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated # is prepared for conversion to pdf (using ps2pdf). The pdf file will # contain links (just like the HTML output) instead of page references # This makes the output suitable for online browsing using a pdf viewer. PDF_HYPERLINKS = NO # If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of # plain latex in the generated Makefile. Set this option to YES to get a # higher quality PDF documentation. USE_PDFLATEX = NO # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. # command to the generated LaTeX files. This will instruct LaTeX to keep # running if errors occur, instead of asking the user for help. # This option is also used when generating formulas in HTML. LATEX_BATCHMODE = NO # If LATEX_HIDE_INDICES is set to YES then doxygen will not # include the index chapters (such as File Index, Compound Index, etc.) # in the output. LATEX_HIDE_INDICES = NO #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- # If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output # The RTF output is optimized for Word 97 and may not look very pretty with # other RTF readers or editors. GENERATE_RTF = NO # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `rtf' will be used as the default path. RTF_OUTPUT = rtf # If the COMPACT_RTF tag is set to YES Doxygen generates more compact # RTF documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_RTF = NO # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated # will contain hyperlink fields. The RTF file will # contain links (just like the HTML output) instead of page references. # This makes the output suitable for online browsing using WORD or other # programs which support those fields. # Note: wordpad (write) and others do not support links. RTF_HYPERLINKS = NO # Load stylesheet definitions from file. Syntax is similar to doxygen's # config file, i.e. a series of assignments. You only have to provide # replacements, missing definitions are set to their default value. RTF_STYLESHEET_FILE = # Set optional variables used in the generation of an rtf document. # Syntax is similar to doxygen's config file. RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- # If the GENERATE_MAN tag is set to YES (the default) Doxygen will # generate man pages GENERATE_MAN = NO # The MAN_OUTPUT tag is used to specify where the man pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `man' will be used as the default path. MAN_OUTPUT = man # The MAN_EXTENSION tag determines the extension that is added to # the generated man pages (default is the subroutine's section .3) MAN_EXTENSION = .3 # If the MAN_LINKS tag is set to YES and Doxygen generates man output, # then it will generate one additional man file for each entity # documented in the real man page(s). These additional files # only source the real man page, but without them the man command # would be unable to find the correct page. The default is NO. MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- # If the GENERATE_XML tag is set to YES Doxygen will # generate an XML file that captures the structure of # the code including all documentation. GENERATE_XML = NO # The XML_OUTPUT tag is used to specify where the XML pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `xml' will be used as the default path. XML_OUTPUT = xml # The XML_SCHEMA tag can be used to specify an XML schema, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_SCHEMA = # The XML_DTD tag can be used to specify an XML DTD, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_DTD = # If the XML_PROGRAMLISTING tag is set to YES Doxygen will # dump the program listings (including syntax highlighting # and cross-referencing information) to the XML output. Note that # enabling this will significantly increase the size of the XML output. XML_PROGRAMLISTING = YES #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- # If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will # generate an AutoGen Definitions (see autogen.sf.net) file # that captures the structure of the code including all # documentation. Note that this feature is still experimental # and incomplete at the moment. GENERATE_AUTOGEN_DEF = NO #--------------------------------------------------------------------------- # configuration options related to the Perl module output #--------------------------------------------------------------------------- # If the GENERATE_PERLMOD tag is set to YES Doxygen will # generate a Perl module file that captures the structure of # the code including all documentation. Note that this # feature is still experimental and incomplete at the # moment. GENERATE_PERLMOD = NO # If the PERLMOD_LATEX tag is set to YES Doxygen will generate # the necessary Makefile rules, Perl scripts and LaTeX code to be able # to generate PDF and DVI output from the Perl module output. PERLMOD_LATEX = NO # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be # nicely formatted so it can be parsed by a human reader. This is useful # if you want to understand what is going on. On the other hand, if this # tag is set to NO the size of the Perl module output will be much smaller # and Perl will parse it just the same. PERLMOD_PRETTY = YES # The names of the make variables in the generated doxyrules.make file # are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. # This is useful so different doxyrules.make files included by the same # Makefile don't overwrite each other's variables. PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- # If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will # evaluate all C-preprocessor directives found in the sources and include # files. ENABLE_PREPROCESSING = YES # If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro # names in the source code. If set to NO (the default) only conditional # compilation will be performed. Macro expansion can be done in a controlled # way by setting EXPAND_ONLY_PREDEF to YES. MACRO_EXPANSION = YES # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES # then the macro expansion is limited to the macros specified with the # PREDEFINED and EXPAND_AS_PREDEFINED tags. EXPAND_ONLY_PREDEF = YES # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files # in the INCLUDE_PATH (see below) will be search if a #include is found. SEARCH_INCLUDES = NO # The INCLUDE_PATH tag can be used to specify one or more directories that # contain include files that are not input files but should be processed by # the preprocessor. INCLUDE_PATH = @top_srcdir@/src # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard # patterns (like *.h and *.hpp) to filter out the header-files in the # directories. If left blank, the patterns specified with FILE_PATTERNS will # be used. INCLUDE_FILE_PATTERNS = scim*.h # The PREDEFINED tag can be used to specify one or more macro names that # are defined before the preprocessor is started (similar to the -D option of # gcc). The argument of the tag is a list of macros of the form: name # or name=definition (no spaces). If the definition and the = are # omitted =1 is assumed. PREDEFINED = ENABLE_DEBUG \ Uses_SCIM_ATTRIBUTE \ Uses_SCIM_BACKEND \ Uses_SCIM_BIND \ Uses_SCIM_COMPOSE_KEY \ Uses_SCIM_CONFIG_BASE \ Uses_SCIM_CONFIG_MODULE \ Uses_SCIM_CONFIG_PATH \ Uses_SCIM_CONNECTION \ Uses_SCIM_DEBUG \ Uses_SCIM_EVENT \ Uses_SCIM_EXCEPTION \ Uses_SCIM_FILTER \ Uses_SCIM_FRONTEND \ Uses_SCIM_FRONTEND_MODULE \ Uses_SCIM_GLOBAL_CONFIG \ Uses_SCIM_HELPER \ Uses_SCIM_HELPER_MODULE \ Uses_SCIM_ICONV \ Uses_SCIM_IMENGINE \ Uses_SCIM_IMENGINE_MODULE \ Uses_SCIM_LOOKUP_TABLE \ Uses_SCIM_MODULE \ Uses_SCIM_OBJECT \ Uses_SCIM_PANEL \ Uses_SCIM_POINTER \ Uses_SCIM_PROPERTY \ Uses_SCIM_SIGNALS \ Uses_SCIM_SLOT \ Uses_SCIM_SOCKET \ Uses_SCIM_TRANSACTION \ Uses_SCIM_TRANS_COMMANDS \ Uses_SCIM_TYPES \ Uses_SCIM_UTILITY # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then # this tag can be used to specify a list of macro names that should be expanded. # The macro definition that is found in the sources will be used. # Use the PREDEFINED tag if you want to use a different macro definition. EXPAND_AS_DEFINED = # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then # doxygen's preprocessor will remove all function-like macros that are alone # on a line, have an all uppercase name, and do not end with a semicolon. Such # function macros are typically used for boiler-plate code, and will confuse the # parser if not removed. SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- # Configuration::additions related to external references #--------------------------------------------------------------------------- # The TAGFILES option can be used to specify one or more tagfiles. # Optionally an initial location of the external documentation # can be added for each tagfile. The format of a tag file without # this location is as follows: # TAGFILES = file1 file2 ... # Adding location for the tag files is done as follows: # TAGFILES = file1=loc1 "file2 = loc2" ... # where "loc1" and "loc2" can be relative or absolute paths or # URLs. If a location is present for each tag, the installdox tool # does not have to be run to correct the links. # Note that each tag file must have a unique name # (where the name does NOT include the path) # If a tag file is not located in the directory in which doxygen # is run, you must also specify the path to the tagfile here. TAGFILES = # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. GENERATE_TAGFILE = # If the ALLEXTERNALS tag is set to YES all external classes will be listed # in the class index. If set to NO only the inherited external classes # will be listed. ALLEXTERNALS = NO # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed # in the modules index. If set to NO, only the current project's groups will # be listed. EXTERNAL_GROUPS = YES # The PERL_PATH should be the absolute path and name of the perl script # interpreter (i.e. the result of `which perl'). PERL_PATH = @PERL@ #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will # generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base or # super classes. Setting the tag to NO turns the diagrams off. Note that this # option is superseded by the HAVE_DOT option below. This is only a fallback. It is # recommended to install and use dot, since it yields more powerful graphs. CLASS_DIAGRAMS = @HAVE_GRAPHVIZ@ # If set to YES, the inheritance and collaboration graphs will hide # inheritance and usage relations if the target is undocumented # or is not a class. HIDE_UNDOC_RELATIONS = YES # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is # available from the path. This tool is part of Graphviz, a graph visualization # toolkit from AT&T and Lucent Bell Labs. The other options in this section # have no effect if this option is set to NO (the default) HAVE_DOT = @HAVE_GRAPHVIZ@ # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect inheritance relations. Setting this tag to YES will force the # the CLASS_DIAGRAMS tag to NO. CLASS_GRAPH = @HAVE_GRAPHVIZ@ # If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect implementation dependencies (inheritance, containment, and # class references variables) of the class with other documented classes. COLLABORATION_GRAPH = @HAVE_GRAPHVIZ@ # If the UML_LOOK tag is set to YES doxygen will generate inheritance and # collaboration diagrams in a style similar to the OMG's Unified Modeling # Language. UML_LOOK = NO # If set to YES, the inheritance and collaboration graphs will show the # relations between templates and their instances. TEMPLATE_RELATIONS = NO # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT # tags are set to YES then doxygen will generate a graph for each documented # file showing the direct and indirect include dependencies of the file with # other documented files. INCLUDE_GRAPH = @HAVE_GRAPHVIZ@ # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and # HAVE_DOT tags are set to YES then doxygen will generate a graph for each # documented header file showing the documented files that directly or # indirectly include this file. INCLUDED_BY_GRAPH = @HAVE_GRAPHVIZ@ # If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will # generate a call dependency graph for every global function or class method. # Note that enabling this option will significantly increase the time of a run. # So in most cases it will be better to enable call graphs for selected # functions only using the \callgraph command. CALL_GRAPH = NO # If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen # will graphical hierarchy of all classes instead of a textual one. GRAPHICAL_HIERARCHY = @HAVE_GRAPHVIZ@ # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images # generated by dot. Possible values are png, jpg, or gif # If left blank png will be used. DOT_IMAGE_FORMAT = png # The tag DOT_PATH can be used to specify the path where the dot tool can be # found. If left blank, it is assumed the dot tool can be found on the path. DOT_PATH = @DOT@ # The DOTFILE_DIRS tag can be used to specify one or more directories that # contain dot files that are included in the documentation (see the # \dotfile command). DOTFILE_DIRS = # The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width # (in pixels) of the graphs generated by dot. If a graph becomes larger than # this value, doxygen will try to truncate the graph, so that it fits within # the specified constraint. Beware that most browsers cannot cope with very # large images. MAX_DOT_GRAPH_WIDTH = 1024 # The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height # (in pixels) of the graphs generated by dot. If a graph becomes larger than # this value, doxygen will try to truncate the graph, so that it fits within # the specified constraint. Beware that most browsers cannot cope with very # large images. MAX_DOT_GRAPH_HEIGHT = 1024 # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the # graphs generated by dot. A depth value of 3 means that only nodes reachable # from the root by following a path via at most 3 edges will be shown. Nodes that # lay further from the root node will be omitted. Note that setting this option to # 1 or 2 may greatly reduce the computation time needed for large code bases. Also # note that a graph may be further truncated if the graph's image dimensions are # not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH and MAX_DOT_GRAPH_HEIGHT). # If 0 is used for the depth value (the default), the graph is not depth-constrained. MAX_DOT_GRAPH_DEPTH = 0 # If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will # generate a legend page explaining the meaning of the various boxes and # arrows in the dot generated graphs. GENERATE_LEGEND = @HAVE_GRAPHVIZ@ # If the DOT_CLEANUP tag is set to YES (the default) Doxygen will # remove the intermediate dot files that are used to generate # the various graphs. DOT_CLEANUP = @HAVE_GRAPHVIZ@ #--------------------------------------------------------------------------- # Configuration::additions related to the search engine #--------------------------------------------------------------------------- # The SEARCHENGINE tag specifies whether or not a search engine should be # used. If set to NO the values of all tags below this one will be ignored. SEARCHENGINE = NO scim-1.4.14/extras/000077500000000000000000000000001177210725600140525ustar00rootroot00000000000000scim-1.4.14/extras/Makefile.am000066400000000000000000000016241177210725600161110ustar00rootroot00000000000000## Makefile.am -- Process this file with automake to produce Makefile.in ## Copyright (C) 2002 James Su ## ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2, or (at your option) ## any later version. ## ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. MAINTAINERCLEANFILES = Makefile.in CLEANFILES = *.bak SUBDIRS = panel gtk_immodule/gtk2 gtk_immodule/gtk3 immodules setup scim-1.4.14/extras/Makefile.in000066400000000000000000000526111177210725600161240ustar00rootroot00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = extras DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ ARGZ_H = @ARGZ_H@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CLUTTER_BINARY_VERSION = @CLUTTER_BINARY_VERSION@ CLUTTER_CFLAGS = @CLUTTER_CFLAGS@ CLUTTER_IMCONTEXT_LIBDIR = @CLUTTER_IMCONTEXT_LIBDIR@ CLUTTER_IM_MODULEDIR = @CLUTTER_IM_MODULEDIR@ CLUTTER_LIBDIR = @CLUTTER_LIBDIR@ CLUTTER_LIBS = @CLUTTER_LIBS@ CLUTTER_VERSION = @CLUTTER_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOCBOOK_XSL = @DOCBOOK_XSL@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@ GTHREAD2_LIBS = @GTHREAD2_LIBS@ GTK2_CFLAGS = @GTK2_CFLAGS@ GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@ GTK2_LIBS = @GTK2_LIBS@ GTK3_CFLAGS = @GTK3_CFLAGS@ GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@ GTK3_LIBS = @GTK3_LIBS@ GTK_BINARY_VERSION = @GTK_BINARY_VERSION@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBDIR = @GTK_LIBDIR@ GTK_LIBS = @GTK_LIBS@ GTK_MAJOR_VERSION = @GTK_MAJOR_VERSION@ GTK_VERSION = @GTK_VERSION@ HAVE_GRAPHVIZ = @HAVE_GRAPHVIZ@ INCLTDL = @INCLTDL@ INCLUDE_STDINT = @INCLUDE_STDINT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBLTDL = @LIBLTDL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_DEPS = @LIBTOOL_DEPS@ LIBTOOL_EXPORT_OPTIONS = @LIBTOOL_EXPORT_OPTIONS@ LIPO = @LIPO@ LN_S = @LN_S@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ QT3_CFLAGS = @QT3_CFLAGS@ QT3_IM_MODULEDIR = @QT3_IM_MODULEDIR@ QT3_LIBDIR = @QT3_LIBDIR@ QT3_LIBS = @QT3_LIBS@ QT3_MOC = @QT3_MOC@ QT3_PREFIX = @QT3_PREFIX@ QT4_CFLAGS = @QT4_CFLAGS@ QT4_IM_MODULEDIR = @QT4_IM_MODULEDIR@ QT4_LIBDIR = @QT4_LIBDIR@ QT4_LIBS = @QT4_LIBS@ QT4_MOC = @QT4_MOC@ QT4_PREFIX = @QT4_PREFIX@ RANLIB = @RANLIB@ SCIM_AGE = @SCIM_AGE@ SCIM_BINARY_VERSION = @SCIM_BINARY_VERSION@ SCIM_BRIDGE_MAJOR_VERSION = @SCIM_BRIDGE_MAJOR_VERSION@ SCIM_BRIDGE_MICRO_VERSION = @SCIM_BRIDGE_MICRO_VERSION@ SCIM_BRIDGE_MINOR_VERSION = @SCIM_BRIDGE_MINOR_VERSION@ SCIM_BRIDGE_VERSION = @SCIM_BRIDGE_VERSION@ SCIM_BUILD_CLUTTER_IMMODULE = @SCIM_BUILD_CLUTTER_IMMODULE@ SCIM_BUILD_CONFIG_SIMPLE = @SCIM_BUILD_CONFIG_SIMPLE@ SCIM_BUILD_CONFIG_SOCKET = @SCIM_BUILD_CONFIG_SOCKET@ SCIM_BUILD_DOCUMENTS = @SCIM_BUILD_DOCUMENTS@ SCIM_BUILD_FILTER_SCTC = @SCIM_BUILD_FILTER_SCTC@ SCIM_BUILD_FRONTEND_SOCKET = @SCIM_BUILD_FRONTEND_SOCKET@ SCIM_BUILD_FRONTEND_X11 = @SCIM_BUILD_FRONTEND_X11@ SCIM_BUILD_GTK2_IMMODULE = @SCIM_BUILD_GTK2_IMMODULE@ SCIM_BUILD_GTK3_IMMODULE = @SCIM_BUILD_GTK3_IMMODULE@ SCIM_BUILD_GTK_UTILS = @SCIM_BUILD_GTK_UTILS@ SCIM_BUILD_IMENGINE_RAWCODE = @SCIM_BUILD_IMENGINE_RAWCODE@ SCIM_BUILD_IMENGINE_SOCKET = @SCIM_BUILD_IMENGINE_SOCKET@ SCIM_BUILD_IMENGINE_TABLE = @SCIM_BUILD_IMENGINE_TABLE@ SCIM_BUILD_IMMODULE = @SCIM_BUILD_IMMODULE@ SCIM_BUILD_IM_AGENT = @SCIM_BUILD_IM_AGENT@ SCIM_BUILD_ORIG_GTK2_IMMODULE = @SCIM_BUILD_ORIG_GTK2_IMMODULE@ SCIM_BUILD_ORIG_GTK3_IMMODULE = @SCIM_BUILD_ORIG_GTK3_IMMODULE@ SCIM_BUILD_PANEL_GTK = @SCIM_BUILD_PANEL_GTK@ SCIM_BUILD_QT3_IMMODULE = @SCIM_BUILD_QT3_IMMODULE@ SCIM_BUILD_QT4_IMMODULE = @SCIM_BUILD_QT4_IMMODULE@ SCIM_BUILD_SCIM_SETUP = @SCIM_BUILD_SCIM_SETUP@ SCIM_BUILD_TESTS = @SCIM_BUILD_TESTS@ SCIM_BUILD_X11_UTILS = @SCIM_BUILD_X11_UTILS@ SCIM_CURRENT = @SCIM_CURRENT@ SCIM_DATADIR = @SCIM_DATADIR@ SCIM_EPOCH = @SCIM_EPOCH@ SCIM_ICONDIR = @SCIM_ICONDIR@ SCIM_LIBDIR = @SCIM_LIBDIR@ SCIM_LIBEXECDIR = @SCIM_LIBEXECDIR@ SCIM_LOCALEDIR = @SCIM_LOCALEDIR@ SCIM_LTDLADVISE = @SCIM_LTDLADVISE@ SCIM_MAJOR_VERSION = @SCIM_MAJOR_VERSION@ SCIM_MICRO_VERSION = @SCIM_MICRO_VERSION@ SCIM_MINOR_VERSION = @SCIM_MINOR_VERSION@ SCIM_MODULE_PATH = @SCIM_MODULE_PATH@ SCIM_PREFIX = @SCIM_PREFIX@ SCIM_REVISION = @SCIM_REVISION@ SCIM_SYSCONFDIR = @SCIM_SYSCONFDIR@ SCIM_TEMPDIR = @SCIM_TEMPDIR@ SCIM_VERSION = @SCIM_VERSION@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UINT16 = @UINT16@ UINT32 = @UINT32@ UINT64 = @UINT64@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XMKMF = @XMKMF@ XSLTPROC = @XSLTPROC@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_aux_dir = @ac_aux_dir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ MAINTAINERCLEANFILES = Makefile.in CLEANFILES = *.bak SUBDIRS = panel gtk_immodule/gtk2 gtk_immodule/gtk3 immodules setup all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu extras/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu extras/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ ctags ctags-recursive distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: scim-1.4.14/extras/gtk_immodule/000077500000000000000000000000001177210725600165325ustar00rootroot00000000000000scim-1.4.14/extras/gtk_immodule/gtk2/000077500000000000000000000000001177210725600174015ustar00rootroot00000000000000scim-1.4.14/extras/gtk_immodule/gtk2/Makefile.am000066400000000000000000000026761177210725600214500ustar00rootroot00000000000000MAINTAINERCLEANFILES = Makefile.in EXTRA_DIST = ../im-scim.version-script INCLUDES = -I$(top_builddir) \ -I$(top_builddir)/src \ -I$(top_srcdir) \ -I$(top_srcdir)/src \ -I$(top_srcdir)/intl \ -I$(top_srcdir)/data \ -I$(top_srcdir)/utils \ -I$(top_srcdir)/extras/panel \ -DSCIM_DATADIR=\"@SCIM_DATADIR@\" \ -DSCIM_LOCALEDIR=\"@SCIM_LOCALEDIR@\" \ -DSCIM_SYSCONFDIR=\"@SCIM_SYSCONFDIR@\" \ -DSCIM_LIBEXECDIR=\"@SCIM_LIBEXECDIR@\" \ -DSCIM_ICONDIR=\"@SCIM_ICONDIR@\" \ -DSCIM_MODULE_PATH=\"@SCIM_MODULE_PATH@\" \ -DSCIM_TEMPDIR=\"@SCIM_TEMPDIR@\" \ -DSCIM_KEYBOARD_ICON_FILE=\"@SCIM_ICONDIR@/keyboard.png\" if SCIM_BUILD_ORIG_GTK2_IMMODULE CONFIG_GTK2_IMMODULE = im-scim-orig.la endif if SCIM_BUILD_X11_UTILS X11_UTILS=$(top_builddir)/utils/libscim-x11utils@SCIM_EPOCH@.la endif if SCIM_LD_VERSION_SCRIPT LD_VERSION_SCRIPT_OPTION="-Wl,--version-script=$(srcdir)/../im-scim.version-script" endif noinst_HEADERS = ../gtkimcontextscim.h moduledir = @GTK2_IM_MODULEDIR@ module_LTLIBRARIES = $(CONFIG_GTK2_IMMODULE) im_scim_orig_la_SOURCES = ../gtkimcontextscim.cpp ../imscim.cpp im_scim_orig_la_CXXFLAGS=@GTK2_CFLAGS@ im_scim_orig_la_CFLAGS =@GTK2_CFLAGS@ im_scim_orig_la_LDFLAGS = -rpath $(moduledir) \ -avoid-version \ -module \ $(LD_VERSION_SCRIPT_OPTION) \ @GTK2_LIBS@ im_scim_orig_la_LIBADD = $(top_builddir)/src/libscim@SCIM_EPOCH@.la $(X11_UTILS) scim-1.4.14/extras/gtk_immodule/gtk2/Makefile.in000066400000000000000000000621701177210725600214540ustar00rootroot00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = extras/gtk_immodule/gtk2 DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(moduledir)" LTLIBRARIES = $(module_LTLIBRARIES) im_scim_orig_la_DEPENDENCIES = \ $(top_builddir)/src/libscim@SCIM_EPOCH@.la $(X11_UTILS) am_im_scim_orig_la_OBJECTS = im_scim_orig_la-gtkimcontextscim.lo \ im_scim_orig_la-imscim.lo im_scim_orig_la_OBJECTS = $(am_im_scim_orig_la_OBJECTS) im_scim_orig_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(im_scim_orig_la_CXXFLAGS) $(CXXFLAGS) \ $(im_scim_orig_la_LDFLAGS) $(LDFLAGS) -o $@ @SCIM_BUILD_ORIG_GTK2_IMMODULE_TRUE@am_im_scim_orig_la_rpath = -rpath \ @SCIM_BUILD_ORIG_GTK2_IMMODULE_TRUE@ $(moduledir) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(im_scim_orig_la_SOURCES) DIST_SOURCES = $(im_scim_orig_la_SOURCES) HEADERS = $(noinst_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ ARGZ_H = @ARGZ_H@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CLUTTER_BINARY_VERSION = @CLUTTER_BINARY_VERSION@ CLUTTER_CFLAGS = @CLUTTER_CFLAGS@ CLUTTER_IMCONTEXT_LIBDIR = @CLUTTER_IMCONTEXT_LIBDIR@ CLUTTER_IM_MODULEDIR = @CLUTTER_IM_MODULEDIR@ CLUTTER_LIBDIR = @CLUTTER_LIBDIR@ CLUTTER_LIBS = @CLUTTER_LIBS@ CLUTTER_VERSION = @CLUTTER_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOCBOOK_XSL = @DOCBOOK_XSL@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@ GTHREAD2_LIBS = @GTHREAD2_LIBS@ GTK2_CFLAGS = @GTK2_CFLAGS@ GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@ GTK2_LIBS = @GTK2_LIBS@ GTK3_CFLAGS = @GTK3_CFLAGS@ GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@ GTK3_LIBS = @GTK3_LIBS@ GTK_BINARY_VERSION = @GTK_BINARY_VERSION@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBDIR = @GTK_LIBDIR@ GTK_LIBS = @GTK_LIBS@ GTK_MAJOR_VERSION = @GTK_MAJOR_VERSION@ GTK_VERSION = @GTK_VERSION@ HAVE_GRAPHVIZ = @HAVE_GRAPHVIZ@ INCLTDL = @INCLTDL@ INCLUDE_STDINT = @INCLUDE_STDINT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBLTDL = @LIBLTDL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_DEPS = @LIBTOOL_DEPS@ LIBTOOL_EXPORT_OPTIONS = @LIBTOOL_EXPORT_OPTIONS@ LIPO = @LIPO@ LN_S = @LN_S@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ QT3_CFLAGS = @QT3_CFLAGS@ QT3_IM_MODULEDIR = @QT3_IM_MODULEDIR@ QT3_LIBDIR = @QT3_LIBDIR@ QT3_LIBS = @QT3_LIBS@ QT3_MOC = @QT3_MOC@ QT3_PREFIX = @QT3_PREFIX@ QT4_CFLAGS = @QT4_CFLAGS@ QT4_IM_MODULEDIR = @QT4_IM_MODULEDIR@ QT4_LIBDIR = @QT4_LIBDIR@ QT4_LIBS = @QT4_LIBS@ QT4_MOC = @QT4_MOC@ QT4_PREFIX = @QT4_PREFIX@ RANLIB = @RANLIB@ SCIM_AGE = @SCIM_AGE@ SCIM_BINARY_VERSION = @SCIM_BINARY_VERSION@ SCIM_BRIDGE_MAJOR_VERSION = @SCIM_BRIDGE_MAJOR_VERSION@ SCIM_BRIDGE_MICRO_VERSION = @SCIM_BRIDGE_MICRO_VERSION@ SCIM_BRIDGE_MINOR_VERSION = @SCIM_BRIDGE_MINOR_VERSION@ SCIM_BRIDGE_VERSION = @SCIM_BRIDGE_VERSION@ SCIM_BUILD_CLUTTER_IMMODULE = @SCIM_BUILD_CLUTTER_IMMODULE@ SCIM_BUILD_CONFIG_SIMPLE = @SCIM_BUILD_CONFIG_SIMPLE@ SCIM_BUILD_CONFIG_SOCKET = @SCIM_BUILD_CONFIG_SOCKET@ SCIM_BUILD_DOCUMENTS = @SCIM_BUILD_DOCUMENTS@ SCIM_BUILD_FILTER_SCTC = @SCIM_BUILD_FILTER_SCTC@ SCIM_BUILD_FRONTEND_SOCKET = @SCIM_BUILD_FRONTEND_SOCKET@ SCIM_BUILD_FRONTEND_X11 = @SCIM_BUILD_FRONTEND_X11@ SCIM_BUILD_GTK2_IMMODULE = @SCIM_BUILD_GTK2_IMMODULE@ SCIM_BUILD_GTK3_IMMODULE = @SCIM_BUILD_GTK3_IMMODULE@ SCIM_BUILD_GTK_UTILS = @SCIM_BUILD_GTK_UTILS@ SCIM_BUILD_IMENGINE_RAWCODE = @SCIM_BUILD_IMENGINE_RAWCODE@ SCIM_BUILD_IMENGINE_SOCKET = @SCIM_BUILD_IMENGINE_SOCKET@ SCIM_BUILD_IMENGINE_TABLE = @SCIM_BUILD_IMENGINE_TABLE@ SCIM_BUILD_IMMODULE = @SCIM_BUILD_IMMODULE@ SCIM_BUILD_IM_AGENT = @SCIM_BUILD_IM_AGENT@ SCIM_BUILD_ORIG_GTK2_IMMODULE = @SCIM_BUILD_ORIG_GTK2_IMMODULE@ SCIM_BUILD_ORIG_GTK3_IMMODULE = @SCIM_BUILD_ORIG_GTK3_IMMODULE@ SCIM_BUILD_PANEL_GTK = @SCIM_BUILD_PANEL_GTK@ SCIM_BUILD_QT3_IMMODULE = @SCIM_BUILD_QT3_IMMODULE@ SCIM_BUILD_QT4_IMMODULE = @SCIM_BUILD_QT4_IMMODULE@ SCIM_BUILD_SCIM_SETUP = @SCIM_BUILD_SCIM_SETUP@ SCIM_BUILD_TESTS = @SCIM_BUILD_TESTS@ SCIM_BUILD_X11_UTILS = @SCIM_BUILD_X11_UTILS@ SCIM_CURRENT = @SCIM_CURRENT@ SCIM_DATADIR = @SCIM_DATADIR@ SCIM_EPOCH = @SCIM_EPOCH@ SCIM_ICONDIR = @SCIM_ICONDIR@ SCIM_LIBDIR = @SCIM_LIBDIR@ SCIM_LIBEXECDIR = @SCIM_LIBEXECDIR@ SCIM_LOCALEDIR = @SCIM_LOCALEDIR@ SCIM_LTDLADVISE = @SCIM_LTDLADVISE@ SCIM_MAJOR_VERSION = @SCIM_MAJOR_VERSION@ SCIM_MICRO_VERSION = @SCIM_MICRO_VERSION@ SCIM_MINOR_VERSION = @SCIM_MINOR_VERSION@ SCIM_MODULE_PATH = @SCIM_MODULE_PATH@ SCIM_PREFIX = @SCIM_PREFIX@ SCIM_REVISION = @SCIM_REVISION@ SCIM_SYSCONFDIR = @SCIM_SYSCONFDIR@ SCIM_TEMPDIR = @SCIM_TEMPDIR@ SCIM_VERSION = @SCIM_VERSION@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UINT16 = @UINT16@ UINT32 = @UINT32@ UINT64 = @UINT64@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XMKMF = @XMKMF@ XSLTPROC = @XSLTPROC@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_aux_dir = @ac_aux_dir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ MAINTAINERCLEANFILES = Makefile.in EXTRA_DIST = ../im-scim.version-script INCLUDES = -I$(top_builddir) \ -I$(top_builddir)/src \ -I$(top_srcdir) \ -I$(top_srcdir)/src \ -I$(top_srcdir)/intl \ -I$(top_srcdir)/data \ -I$(top_srcdir)/utils \ -I$(top_srcdir)/extras/panel \ -DSCIM_DATADIR=\"@SCIM_DATADIR@\" \ -DSCIM_LOCALEDIR=\"@SCIM_LOCALEDIR@\" \ -DSCIM_SYSCONFDIR=\"@SCIM_SYSCONFDIR@\" \ -DSCIM_LIBEXECDIR=\"@SCIM_LIBEXECDIR@\" \ -DSCIM_ICONDIR=\"@SCIM_ICONDIR@\" \ -DSCIM_MODULE_PATH=\"@SCIM_MODULE_PATH@\" \ -DSCIM_TEMPDIR=\"@SCIM_TEMPDIR@\" \ -DSCIM_KEYBOARD_ICON_FILE=\"@SCIM_ICONDIR@/keyboard.png\" @SCIM_BUILD_ORIG_GTK2_IMMODULE_TRUE@CONFIG_GTK2_IMMODULE = im-scim-orig.la @SCIM_BUILD_X11_UTILS_TRUE@X11_UTILS = $(top_builddir)/utils/libscim-x11utils@SCIM_EPOCH@.la @SCIM_LD_VERSION_SCRIPT_TRUE@LD_VERSION_SCRIPT_OPTION = "-Wl,--version-script=$(srcdir)/../im-scim.version-script" noinst_HEADERS = ../gtkimcontextscim.h moduledir = @GTK2_IM_MODULEDIR@ module_LTLIBRARIES = $(CONFIG_GTK2_IMMODULE) im_scim_orig_la_SOURCES = ../gtkimcontextscim.cpp ../imscim.cpp im_scim_orig_la_CXXFLAGS = @GTK2_CFLAGS@ im_scim_orig_la_CFLAGS = @GTK2_CFLAGS@ im_scim_orig_la_LDFLAGS = -rpath $(moduledir) \ -avoid-version \ -module \ $(LD_VERSION_SCRIPT_OPTION) \ @GTK2_LIBS@ im_scim_orig_la_LIBADD = $(top_builddir)/src/libscim@SCIM_EPOCH@.la $(X11_UTILS) all: all-am .SUFFIXES: .SUFFIXES: .cpp .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu extras/gtk_immodule/gtk2/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu extras/gtk_immodule/gtk2/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-moduleLTLIBRARIES: $(module_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(moduledir)" || $(MKDIR_P) "$(DESTDIR)$(moduledir)" @list='$(module_LTLIBRARIES)'; test -n "$(moduledir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(moduledir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(moduledir)"; \ } uninstall-moduleLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(module_LTLIBRARIES)'; test -n "$(moduledir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(moduledir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(moduledir)/$$f"; \ done clean-moduleLTLIBRARIES: -test -z "$(module_LTLIBRARIES)" || rm -f $(module_LTLIBRARIES) @list='$(module_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done im-scim-orig.la: $(im_scim_orig_la_OBJECTS) $(im_scim_orig_la_DEPENDENCIES) $(im_scim_orig_la_LINK) $(am_im_scim_orig_la_rpath) $(im_scim_orig_la_OBJECTS) $(im_scim_orig_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/im_scim_orig_la-gtkimcontextscim.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/im_scim_orig_la-imscim.Plo@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cpp.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cpp.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< im_scim_orig_la-gtkimcontextscim.lo: ../gtkimcontextscim.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(im_scim_orig_la_CXXFLAGS) $(CXXFLAGS) -MT im_scim_orig_la-gtkimcontextscim.lo -MD -MP -MF $(DEPDIR)/im_scim_orig_la-gtkimcontextscim.Tpo -c -o im_scim_orig_la-gtkimcontextscim.lo `test -f '../gtkimcontextscim.cpp' || echo '$(srcdir)/'`../gtkimcontextscim.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/im_scim_orig_la-gtkimcontextscim.Tpo $(DEPDIR)/im_scim_orig_la-gtkimcontextscim.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../gtkimcontextscim.cpp' object='im_scim_orig_la-gtkimcontextscim.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(im_scim_orig_la_CXXFLAGS) $(CXXFLAGS) -c -o im_scim_orig_la-gtkimcontextscim.lo `test -f '../gtkimcontextscim.cpp' || echo '$(srcdir)/'`../gtkimcontextscim.cpp im_scim_orig_la-imscim.lo: ../imscim.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(im_scim_orig_la_CXXFLAGS) $(CXXFLAGS) -MT im_scim_orig_la-imscim.lo -MD -MP -MF $(DEPDIR)/im_scim_orig_la-imscim.Tpo -c -o im_scim_orig_la-imscim.lo `test -f '../imscim.cpp' || echo '$(srcdir)/'`../imscim.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/im_scim_orig_la-imscim.Tpo $(DEPDIR)/im_scim_orig_la-imscim.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../imscim.cpp' object='im_scim_orig_la-imscim.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(im_scim_orig_la_CXXFLAGS) $(CXXFLAGS) -c -o im_scim_orig_la-imscim.lo `test -f '../imscim.cpp' || echo '$(srcdir)/'`../imscim.cpp mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: for dir in "$(DESTDIR)$(moduledir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic clean-libtool clean-moduleLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-moduleLTLIBRARIES install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-moduleLTLIBRARIES .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-moduleLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-moduleLTLIBRARIES install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-moduleLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: scim-1.4.14/extras/gtk_immodule/gtk3/000077500000000000000000000000001177210725600174025ustar00rootroot00000000000000scim-1.4.14/extras/gtk_immodule/gtk3/Makefile.am000066400000000000000000000026761177210725600214510ustar00rootroot00000000000000MAINTAINERCLEANFILES = Makefile.in EXTRA_DIST = ../im-scim.version-script INCLUDES = -I$(top_builddir) \ -I$(top_builddir)/src \ -I$(top_srcdir) \ -I$(top_srcdir)/src \ -I$(top_srcdir)/intl \ -I$(top_srcdir)/data \ -I$(top_srcdir)/utils \ -I$(top_srcdir)/extras/panel \ -DSCIM_DATADIR=\"@SCIM_DATADIR@\" \ -DSCIM_LOCALEDIR=\"@SCIM_LOCALEDIR@\" \ -DSCIM_SYSCONFDIR=\"@SCIM_SYSCONFDIR@\" \ -DSCIM_LIBEXECDIR=\"@SCIM_LIBEXECDIR@\" \ -DSCIM_ICONDIR=\"@SCIM_ICONDIR@\" \ -DSCIM_MODULE_PATH=\"@SCIM_MODULE_PATH@\" \ -DSCIM_TEMPDIR=\"@SCIM_TEMPDIR@\" \ -DSCIM_KEYBOARD_ICON_FILE=\"@SCIM_ICONDIR@/keyboard.png\" if SCIM_BUILD_ORIG_GTK3_IMMODULE CONFIG_GTK3_IMMODULE = im-scim-orig.la endif if SCIM_BUILD_X11_UTILS X11_UTILS=$(top_builddir)/utils/libscim-x11utils@SCIM_EPOCH@.la endif if SCIM_LD_VERSION_SCRIPT LD_VERSION_SCRIPT_OPTION="-Wl,--version-script=$(srcdir)/../im-scim.version-script" endif noinst_HEADERS = ../gtkimcontextscim.h moduledir = @GTK3_IM_MODULEDIR@ module_LTLIBRARIES = $(CONFIG_GTK3_IMMODULE) im_scim_orig_la_SOURCES = ../gtkimcontextscim.cpp ../imscim.cpp im_scim_orig_la_CXXFLAGS=@GTK3_CFLAGS@ im_scim_orig_la_CFLAGS =@GTK3_CFLAGS@ im_scim_orig_la_LDFLAGS = -rpath $(moduledir) \ -avoid-version \ -module \ $(LD_VERSION_SCRIPT_OPTION) \ @GTK3_LIBS@ im_scim_orig_la_LIBADD = $(top_builddir)/src/libscim@SCIM_EPOCH@.la $(X11_UTILS) scim-1.4.14/extras/gtk_immodule/gtk3/Makefile.in000066400000000000000000000621701177210725600214550ustar00rootroot00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = extras/gtk_immodule/gtk3 DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(moduledir)" LTLIBRARIES = $(module_LTLIBRARIES) im_scim_orig_la_DEPENDENCIES = \ $(top_builddir)/src/libscim@SCIM_EPOCH@.la $(X11_UTILS) am_im_scim_orig_la_OBJECTS = im_scim_orig_la-gtkimcontextscim.lo \ im_scim_orig_la-imscim.lo im_scim_orig_la_OBJECTS = $(am_im_scim_orig_la_OBJECTS) im_scim_orig_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(im_scim_orig_la_CXXFLAGS) $(CXXFLAGS) \ $(im_scim_orig_la_LDFLAGS) $(LDFLAGS) -o $@ @SCIM_BUILD_ORIG_GTK3_IMMODULE_TRUE@am_im_scim_orig_la_rpath = -rpath \ @SCIM_BUILD_ORIG_GTK3_IMMODULE_TRUE@ $(moduledir) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(im_scim_orig_la_SOURCES) DIST_SOURCES = $(im_scim_orig_la_SOURCES) HEADERS = $(noinst_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ ARGZ_H = @ARGZ_H@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CLUTTER_BINARY_VERSION = @CLUTTER_BINARY_VERSION@ CLUTTER_CFLAGS = @CLUTTER_CFLAGS@ CLUTTER_IMCONTEXT_LIBDIR = @CLUTTER_IMCONTEXT_LIBDIR@ CLUTTER_IM_MODULEDIR = @CLUTTER_IM_MODULEDIR@ CLUTTER_LIBDIR = @CLUTTER_LIBDIR@ CLUTTER_LIBS = @CLUTTER_LIBS@ CLUTTER_VERSION = @CLUTTER_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOCBOOK_XSL = @DOCBOOK_XSL@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@ GTHREAD2_LIBS = @GTHREAD2_LIBS@ GTK2_CFLAGS = @GTK2_CFLAGS@ GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@ GTK2_LIBS = @GTK2_LIBS@ GTK3_CFLAGS = @GTK3_CFLAGS@ GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@ GTK3_LIBS = @GTK3_LIBS@ GTK_BINARY_VERSION = @GTK_BINARY_VERSION@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBDIR = @GTK_LIBDIR@ GTK_LIBS = @GTK_LIBS@ GTK_MAJOR_VERSION = @GTK_MAJOR_VERSION@ GTK_VERSION = @GTK_VERSION@ HAVE_GRAPHVIZ = @HAVE_GRAPHVIZ@ INCLTDL = @INCLTDL@ INCLUDE_STDINT = @INCLUDE_STDINT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBLTDL = @LIBLTDL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_DEPS = @LIBTOOL_DEPS@ LIBTOOL_EXPORT_OPTIONS = @LIBTOOL_EXPORT_OPTIONS@ LIPO = @LIPO@ LN_S = @LN_S@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ QT3_CFLAGS = @QT3_CFLAGS@ QT3_IM_MODULEDIR = @QT3_IM_MODULEDIR@ QT3_LIBDIR = @QT3_LIBDIR@ QT3_LIBS = @QT3_LIBS@ QT3_MOC = @QT3_MOC@ QT3_PREFIX = @QT3_PREFIX@ QT4_CFLAGS = @QT4_CFLAGS@ QT4_IM_MODULEDIR = @QT4_IM_MODULEDIR@ QT4_LIBDIR = @QT4_LIBDIR@ QT4_LIBS = @QT4_LIBS@ QT4_MOC = @QT4_MOC@ QT4_PREFIX = @QT4_PREFIX@ RANLIB = @RANLIB@ SCIM_AGE = @SCIM_AGE@ SCIM_BINARY_VERSION = @SCIM_BINARY_VERSION@ SCIM_BRIDGE_MAJOR_VERSION = @SCIM_BRIDGE_MAJOR_VERSION@ SCIM_BRIDGE_MICRO_VERSION = @SCIM_BRIDGE_MICRO_VERSION@ SCIM_BRIDGE_MINOR_VERSION = @SCIM_BRIDGE_MINOR_VERSION@ SCIM_BRIDGE_VERSION = @SCIM_BRIDGE_VERSION@ SCIM_BUILD_CLUTTER_IMMODULE = @SCIM_BUILD_CLUTTER_IMMODULE@ SCIM_BUILD_CONFIG_SIMPLE = @SCIM_BUILD_CONFIG_SIMPLE@ SCIM_BUILD_CONFIG_SOCKET = @SCIM_BUILD_CONFIG_SOCKET@ SCIM_BUILD_DOCUMENTS = @SCIM_BUILD_DOCUMENTS@ SCIM_BUILD_FILTER_SCTC = @SCIM_BUILD_FILTER_SCTC@ SCIM_BUILD_FRONTEND_SOCKET = @SCIM_BUILD_FRONTEND_SOCKET@ SCIM_BUILD_FRONTEND_X11 = @SCIM_BUILD_FRONTEND_X11@ SCIM_BUILD_GTK2_IMMODULE = @SCIM_BUILD_GTK2_IMMODULE@ SCIM_BUILD_GTK3_IMMODULE = @SCIM_BUILD_GTK3_IMMODULE@ SCIM_BUILD_GTK_UTILS = @SCIM_BUILD_GTK_UTILS@ SCIM_BUILD_IMENGINE_RAWCODE = @SCIM_BUILD_IMENGINE_RAWCODE@ SCIM_BUILD_IMENGINE_SOCKET = @SCIM_BUILD_IMENGINE_SOCKET@ SCIM_BUILD_IMENGINE_TABLE = @SCIM_BUILD_IMENGINE_TABLE@ SCIM_BUILD_IMMODULE = @SCIM_BUILD_IMMODULE@ SCIM_BUILD_IM_AGENT = @SCIM_BUILD_IM_AGENT@ SCIM_BUILD_ORIG_GTK2_IMMODULE = @SCIM_BUILD_ORIG_GTK2_IMMODULE@ SCIM_BUILD_ORIG_GTK3_IMMODULE = @SCIM_BUILD_ORIG_GTK3_IMMODULE@ SCIM_BUILD_PANEL_GTK = @SCIM_BUILD_PANEL_GTK@ SCIM_BUILD_QT3_IMMODULE = @SCIM_BUILD_QT3_IMMODULE@ SCIM_BUILD_QT4_IMMODULE = @SCIM_BUILD_QT4_IMMODULE@ SCIM_BUILD_SCIM_SETUP = @SCIM_BUILD_SCIM_SETUP@ SCIM_BUILD_TESTS = @SCIM_BUILD_TESTS@ SCIM_BUILD_X11_UTILS = @SCIM_BUILD_X11_UTILS@ SCIM_CURRENT = @SCIM_CURRENT@ SCIM_DATADIR = @SCIM_DATADIR@ SCIM_EPOCH = @SCIM_EPOCH@ SCIM_ICONDIR = @SCIM_ICONDIR@ SCIM_LIBDIR = @SCIM_LIBDIR@ SCIM_LIBEXECDIR = @SCIM_LIBEXECDIR@ SCIM_LOCALEDIR = @SCIM_LOCALEDIR@ SCIM_LTDLADVISE = @SCIM_LTDLADVISE@ SCIM_MAJOR_VERSION = @SCIM_MAJOR_VERSION@ SCIM_MICRO_VERSION = @SCIM_MICRO_VERSION@ SCIM_MINOR_VERSION = @SCIM_MINOR_VERSION@ SCIM_MODULE_PATH = @SCIM_MODULE_PATH@ SCIM_PREFIX = @SCIM_PREFIX@ SCIM_REVISION = @SCIM_REVISION@ SCIM_SYSCONFDIR = @SCIM_SYSCONFDIR@ SCIM_TEMPDIR = @SCIM_TEMPDIR@ SCIM_VERSION = @SCIM_VERSION@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UINT16 = @UINT16@ UINT32 = @UINT32@ UINT64 = @UINT64@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XMKMF = @XMKMF@ XSLTPROC = @XSLTPROC@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_aux_dir = @ac_aux_dir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ MAINTAINERCLEANFILES = Makefile.in EXTRA_DIST = ../im-scim.version-script INCLUDES = -I$(top_builddir) \ -I$(top_builddir)/src \ -I$(top_srcdir) \ -I$(top_srcdir)/src \ -I$(top_srcdir)/intl \ -I$(top_srcdir)/data \ -I$(top_srcdir)/utils \ -I$(top_srcdir)/extras/panel \ -DSCIM_DATADIR=\"@SCIM_DATADIR@\" \ -DSCIM_LOCALEDIR=\"@SCIM_LOCALEDIR@\" \ -DSCIM_SYSCONFDIR=\"@SCIM_SYSCONFDIR@\" \ -DSCIM_LIBEXECDIR=\"@SCIM_LIBEXECDIR@\" \ -DSCIM_ICONDIR=\"@SCIM_ICONDIR@\" \ -DSCIM_MODULE_PATH=\"@SCIM_MODULE_PATH@\" \ -DSCIM_TEMPDIR=\"@SCIM_TEMPDIR@\" \ -DSCIM_KEYBOARD_ICON_FILE=\"@SCIM_ICONDIR@/keyboard.png\" @SCIM_BUILD_ORIG_GTK3_IMMODULE_TRUE@CONFIG_GTK3_IMMODULE = im-scim-orig.la @SCIM_BUILD_X11_UTILS_TRUE@X11_UTILS = $(top_builddir)/utils/libscim-x11utils@SCIM_EPOCH@.la @SCIM_LD_VERSION_SCRIPT_TRUE@LD_VERSION_SCRIPT_OPTION = "-Wl,--version-script=$(srcdir)/../im-scim.version-script" noinst_HEADERS = ../gtkimcontextscim.h moduledir = @GTK3_IM_MODULEDIR@ module_LTLIBRARIES = $(CONFIG_GTK3_IMMODULE) im_scim_orig_la_SOURCES = ../gtkimcontextscim.cpp ../imscim.cpp im_scim_orig_la_CXXFLAGS = @GTK3_CFLAGS@ im_scim_orig_la_CFLAGS = @GTK3_CFLAGS@ im_scim_orig_la_LDFLAGS = -rpath $(moduledir) \ -avoid-version \ -module \ $(LD_VERSION_SCRIPT_OPTION) \ @GTK3_LIBS@ im_scim_orig_la_LIBADD = $(top_builddir)/src/libscim@SCIM_EPOCH@.la $(X11_UTILS) all: all-am .SUFFIXES: .SUFFIXES: .cpp .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu extras/gtk_immodule/gtk3/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu extras/gtk_immodule/gtk3/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-moduleLTLIBRARIES: $(module_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(moduledir)" || $(MKDIR_P) "$(DESTDIR)$(moduledir)" @list='$(module_LTLIBRARIES)'; test -n "$(moduledir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(moduledir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(moduledir)"; \ } uninstall-moduleLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(module_LTLIBRARIES)'; test -n "$(moduledir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(moduledir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(moduledir)/$$f"; \ done clean-moduleLTLIBRARIES: -test -z "$(module_LTLIBRARIES)" || rm -f $(module_LTLIBRARIES) @list='$(module_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done im-scim-orig.la: $(im_scim_orig_la_OBJECTS) $(im_scim_orig_la_DEPENDENCIES) $(im_scim_orig_la_LINK) $(am_im_scim_orig_la_rpath) $(im_scim_orig_la_OBJECTS) $(im_scim_orig_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/im_scim_orig_la-gtkimcontextscim.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/im_scim_orig_la-imscim.Plo@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cpp.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cpp.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< im_scim_orig_la-gtkimcontextscim.lo: ../gtkimcontextscim.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(im_scim_orig_la_CXXFLAGS) $(CXXFLAGS) -MT im_scim_orig_la-gtkimcontextscim.lo -MD -MP -MF $(DEPDIR)/im_scim_orig_la-gtkimcontextscim.Tpo -c -o im_scim_orig_la-gtkimcontextscim.lo `test -f '../gtkimcontextscim.cpp' || echo '$(srcdir)/'`../gtkimcontextscim.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/im_scim_orig_la-gtkimcontextscim.Tpo $(DEPDIR)/im_scim_orig_la-gtkimcontextscim.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../gtkimcontextscim.cpp' object='im_scim_orig_la-gtkimcontextscim.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(im_scim_orig_la_CXXFLAGS) $(CXXFLAGS) -c -o im_scim_orig_la-gtkimcontextscim.lo `test -f '../gtkimcontextscim.cpp' || echo '$(srcdir)/'`../gtkimcontextscim.cpp im_scim_orig_la-imscim.lo: ../imscim.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(im_scim_orig_la_CXXFLAGS) $(CXXFLAGS) -MT im_scim_orig_la-imscim.lo -MD -MP -MF $(DEPDIR)/im_scim_orig_la-imscim.Tpo -c -o im_scim_orig_la-imscim.lo `test -f '../imscim.cpp' || echo '$(srcdir)/'`../imscim.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/im_scim_orig_la-imscim.Tpo $(DEPDIR)/im_scim_orig_la-imscim.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../imscim.cpp' object='im_scim_orig_la-imscim.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(im_scim_orig_la_CXXFLAGS) $(CXXFLAGS) -c -o im_scim_orig_la-imscim.lo `test -f '../imscim.cpp' || echo '$(srcdir)/'`../imscim.cpp mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: for dir in "$(DESTDIR)$(moduledir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic clean-libtool clean-moduleLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-moduleLTLIBRARIES install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-moduleLTLIBRARIES .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-moduleLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-moduleLTLIBRARIES install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-moduleLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: scim-1.4.14/extras/gtk_immodule/gtkimcontextscim.cpp000066400000000000000000002643611177210725600226460ustar00rootroot00000000000000/** @file gtkimcontextscim.cpp * @brief immodule for GTK. */ /* * Smart Common Input Method * * Copyright (c) 2002-2005 James Su * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this program; if not, write to the * Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, MA 02111-1307 USA * * $Id: gtkimcontextscim.cpp,v 1.170.2.13 2007/06/16 06:23:38 suzhe Exp $ */ #define Uses_SCIM_DEBUG #define Uses_SCIM_BACKEND #define Uses_SCIM_IMENGINE #define Uses_SCIM_IMENGINE_MODULE #define Uses_SCIM_CONFIG #define Uses_SCIM_CONFIG_MODULE #define Uses_SCIM_CONFIG_PATH #define Uses_SCIM_TRANSACTION #define Uses_SCIM_HOTKEY #define Uses_SCIM_PANEL_CLIENT #define Uses_C_STRING #define Uses_C_STDIO #define Uses_C_STDLIB #define Uses_STL_IOSTREAM #include #include #include #include #include #include #include #ifdef GDK_WINDOWING_X11 #include #include #include #include #endif #include "scim_private.h" #include "scim.h" #ifdef GDK_WINDOWING_X11 #include "scim_x11_utils.h" #endif #define SEND_EVENT_MASK 0x02 using namespace scim; #include "gtkimcontextscim.h" #define GTK_TYPE_IM_CONTEXT_SCIM _gtk_type_im_context_scim #define GTK_IM_CONTEXT_SCIM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_IM_CONTEXT_SCIM, GtkIMContextSCIM)) #define GTK_IM_CONTEXT_SCIM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_IM_CONTEXT_SCIM, GtkIMContextSCIMClass)) #define GTK_IS_IM_CONTEXT_SCIM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_IM_CONTEXT_SCIM)) #define GTK_IS_IM_CONTEXT_SCIM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_IM_CONTEXT_SCIM)) #define GTK_IM_CONTEXT_SCIM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_IM_CONTEXT_SCIM, GtkIMContextSCIMClass)) #ifndef SCIM_KEYBOARD_ICON_FILE #define SCIM_KEYBOARD_ICON_FILE (SCIM_ICONDIR "/keyboard.png") #endif #define SCIM_CONFIG_FRONTEND_GTK_IMMODULE_USE_KEY_SNOOPER "/FrontEnd/GtkIMModule/UseKeySnooper" /* Typedef */ struct _GtkIMContextSCIMImpl { GtkIMContextSCIM *parent; IMEngineInstancePointer si; GdkWindow *client_window; WideString preedit_string; AttributeList preedit_attrlist; gint preedit_caret; gint cursor_x; gint cursor_y; gboolean use_preedit; bool is_on; bool shared_si; bool preedit_started; bool preedit_updating; GtkIMContextSCIMImpl *next; }; /* Input Context handling functions. */ static GtkIMContextSCIMImpl * new_ic_impl (GtkIMContextSCIM *parent); static void delete_ic_impl (GtkIMContextSCIMImpl *impl); static void delete_all_ic_impl (); static GtkIMContextSCIM * find_ic (int siid); /* Methods declaration */ static void gtk_im_context_scim_class_init (GtkIMContextSCIMClass *klass, gpointer *klass_data); static void gtk_im_context_scim_init (GtkIMContextSCIM *context_scim, GtkIMContextSCIMClass *klass); static void gtk_im_context_scim_finalize (GObject *obj); static void gtk_im_context_scim_finalize_partial (GtkIMContextSCIM *context_scim); static void gtk_im_context_scim_set_client_window (GtkIMContext *context, GdkWindow *client_window); static gboolean gtk_im_context_scim_filter_keypress (GtkIMContext *context, GdkEventKey *key); static void gtk_im_context_scim_reset (GtkIMContext *context); static void gtk_im_context_scim_focus_in (GtkIMContext *context); static void gtk_im_context_scim_focus_out (GtkIMContext *context); static void gtk_im_context_scim_set_cursor_location (GtkIMContext *context, GdkRectangle *area); static void gtk_im_context_scim_set_use_preedit (GtkIMContext *context, gboolean use_preedit); static void gtk_im_context_scim_get_preedit_string (GtkIMContext *context, gchar **str, PangoAttrList **attrs, gint *cursor_pos); static gboolean gtk_scim_key_snooper (GtkWidget *grab_widget, GdkEventKey *event, gpointer data); static void gtk_im_slave_commit_cb (GtkIMContext *context, const char *str, GtkIMContextSCIM *context_scim); static void gtk_im_slave_preedit_changed_cb (GtkIMContext *context, GtkIMContextSCIM *context_scim); static void gtk_im_slave_preedit_start_cb (GtkIMContext *context, GtkIMContextSCIM *context_scim); static void gtk_im_slave_preedit_end_cb (GtkIMContext *context, GtkIMContextSCIM *context_scim); /* private functions */ static void panel_slot_reload_config (int context); static void panel_slot_exit (int context); static void panel_slot_update_lookup_table_page_size(int context, int page_size); static void panel_slot_lookup_table_page_up (int context); static void panel_slot_lookup_table_page_down (int context); static void panel_slot_trigger_property (int context, const String &property); static void panel_slot_process_helper_event (int context, const String &target_uuid, const String &helper_uuid, const Transaction &trans); static void panel_slot_move_preedit_caret (int context, int caret_pos); static void panel_slot_select_candidate (int context, int cand_index); static void panel_slot_process_key_event (int context, const KeyEvent &key); static void panel_slot_commit_string (int context, const WideString &wstr); static void panel_slot_forward_key_event (int context, const KeyEvent &key); static void panel_slot_request_help (int context); static void panel_slot_request_factory_menu (int context); static void panel_slot_change_factory (int context, const String &uuid); static void panel_req_focus_in (GtkIMContextSCIM *ic); static void panel_req_update_screen (GtkIMContextSCIM *ic); static void panel_req_update_factory_info (GtkIMContextSCIM *ic); static void panel_req_update_spot_location (GtkIMContextSCIM *ic); static void panel_req_show_help (GtkIMContextSCIM *ic); static void panel_req_show_factory_menu (GtkIMContextSCIM *ic); /* Panel iochannel handler*/ static bool panel_initialize (); static void panel_finalize (); static gboolean panel_iochannel_handler (GIOChannel *source, GIOCondition condition, gpointer user_data); /* utility functions */ static bool filter_hotkeys (GtkIMContextSCIM *ic, const KeyEvent &key); static void turn_on_ic (GtkIMContextSCIM *ic); static void turn_off_ic (GtkIMContextSCIM *ic); static void set_ic_capabilities (GtkIMContextSCIM *ic); static KeyEvent keyevent_gdk_to_scim (const GtkIMContextSCIM *ic, const GdkEventKey &gdkevent); static GdkEventKey keyevent_scim_to_gdk (const GtkIMContextSCIM *ic, const KeyEvent &scimkey); static void initialize (void); static void finalize (void); static void open_next_factory (GtkIMContextSCIM *ic); static void open_previous_factory (GtkIMContextSCIM *ic); static void open_specific_factory (GtkIMContextSCIM *ic, const String &uuid); static void attach_instance (const IMEngineInstancePointer &si); static IMEngineInstancePointer get_default_instance (); /* slot functions */ static void slot_show_preedit_string (IMEngineInstanceBase *si); static void slot_show_aux_string (IMEngineInstanceBase *si); static void slot_show_lookup_table (IMEngineInstanceBase *si); static void slot_hide_preedit_string (IMEngineInstanceBase *si); static void slot_hide_aux_string (IMEngineInstanceBase *si); static void slot_hide_lookup_table (IMEngineInstanceBase *si); static void slot_update_preedit_caret (IMEngineInstanceBase *si, int caret); static void slot_update_preedit_string (IMEngineInstanceBase *si, const WideString &str, const AttributeList &attrs); static void slot_update_aux_string (IMEngineInstanceBase *si, const WideString &str, const AttributeList &attrs); static void slot_commit_string (IMEngineInstanceBase *si, const WideString &str); static void slot_forward_key_event (IMEngineInstanceBase *si, const KeyEvent &key); static void slot_update_lookup_table (IMEngineInstanceBase *si, const LookupTable &table); static void slot_register_properties (IMEngineInstanceBase *si, const PropertyList &properties); static void slot_update_property (IMEngineInstanceBase *si, const Property &property); static void slot_beep (IMEngineInstanceBase *si); static void slot_start_helper (IMEngineInstanceBase *si, const String &helper_uuid); static void slot_stop_helper (IMEngineInstanceBase *si, const String &helper_uuid); static void slot_send_helper_event (IMEngineInstanceBase *si, const String &helper_uuid, const Transaction &trans); static bool slot_get_surrounding_text (IMEngineInstanceBase *si, WideString &text, int &cursor, int maxlen_before, int maxlen_after); static bool slot_delete_surrounding_text (IMEngineInstanceBase *si, int offset, int len); static void reload_config_callback (const ConfigPointer &config); static void fallback_commit_string_cb (IMEngineInstanceBase *si, const WideString &str); /* Local variables declaration */ static String _language; static GtkIMContextSCIMImpl *_used_ic_impl_list = 0; static GtkIMContextSCIMImpl *_free_ic_impl_list = 0; static GType _gtk_type_im_context_scim = 0; static GObjectClass *_parent_klass = 0; static KeyboardLayout _keyboard_layout = SCIM_KEYBOARD_Default; static int _valid_key_mask = SCIM_KEY_AllMasks; static FrontEndHotkeyMatcher _frontend_hotkey_matcher; static IMEngineHotkeyMatcher _imengine_hotkey_matcher; static IMEngineInstancePointer _default_instance; static ConfigModule *_config_module = 0; static ConfigPointer _config; static BackEndPointer _backend; static GtkIMContextSCIM *_focused_ic = 0; static GtkWidget *_focused_widget = 0; static bool _scim_initialized = false; static GdkColor _normal_bg; static GdkColor _normal_text; static GdkColor _active_bg; static GdkColor _active_text; static gint _snooper_id = 0; static bool _snooper_installed = false; static int _instance_count = 0; static int _context_count = 0; static IMEngineFactoryPointer _fallback_factory; static IMEngineInstancePointer _fallback_instance; static PanelClient _panel_client; static GIOChannel *_panel_iochannel = 0; static guint _panel_iochannel_read_source= 0; static guint _panel_iochannel_err_source = 0; static guint _panel_iochannel_hup_source = 0; static bool _on_the_spot = true; static bool _shared_input_method = false; static bool _use_key_snooper = false; // A hack to shutdown the immodule cleanly even if im_module_exit () is not called when exiting. class FinalizeHandler { public: FinalizeHandler () { SCIM_DEBUG_FRONTEND(1) << "FinalizeHandler::FinalizeHandler ()\n"; } ~FinalizeHandler () { if (_scim_initialized) { SCIM_DEBUG_FRONTEND(1) << "FinalizeHandler::~FinalizeHandler ()\n"; gtk_im_context_scim_shutdown (); } } }; static FinalizeHandler _finalize_handler; /* Function Implementations */ static GtkIMContextSCIMImpl * new_ic_impl (GtkIMContextSCIM *parent) { GtkIMContextSCIMImpl *impl; if (_free_ic_impl_list != NULL) { impl = _free_ic_impl_list; _free_ic_impl_list = _free_ic_impl_list->next; } else { impl = new GtkIMContextSCIMImpl; } impl->next = _used_ic_impl_list; _used_ic_impl_list = impl; impl->parent = parent; return impl; } static void delete_ic_impl (GtkIMContextSCIMImpl *impl) { GtkIMContextSCIMImpl *rec, *last = 0; for (rec = _used_ic_impl_list; rec != 0; last = rec, rec = rec->next) { if (rec == impl) { if (last != 0) last->next = rec->next; else _used_ic_impl_list = rec->next; rec->next = _free_ic_impl_list; _free_ic_impl_list = rec; rec->parent = 0; rec->si.reset (); rec->client_window = 0; rec->preedit_string = WideString (); rec->preedit_attrlist.clear (); return; } } } static void delete_all_ic_impl () { GtkIMContextSCIMImpl *it; it = _used_ic_impl_list; while (it != 0) { _used_ic_impl_list = it->next; delete it; it = _used_ic_impl_list; } it = _free_ic_impl_list; while (it != 0) { _free_ic_impl_list = it->next; delete it; it = _free_ic_impl_list; } } static GtkIMContextSCIM * find_ic (int id) { GtkIMContextSCIMImpl *rec = _used_ic_impl_list; while (rec != 0) { if (rec->parent && rec->parent->id == id) return rec->parent; rec = rec->next; } return 0; } /* Public functions */ GtkIMContext * gtk_im_context_scim_new (void) { SCIM_DEBUG_FRONTEND(1) << "gtk_im_context_scim_new...\n"; GtkIMContextSCIM *result; result = GTK_IM_CONTEXT_SCIM (g_object_new (GTK_TYPE_IM_CONTEXT_SCIM, NULL)); return GTK_IM_CONTEXT (result); } void gtk_im_context_scim_register_type (GTypeModule *type_module) { static const GTypeInfo im_context_scim_info = { sizeof (GtkIMContextSCIMClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gtk_im_context_scim_class_init, NULL, /* class_finalize */ NULL, /* class_data */ sizeof (GtkIMContextSCIM), 0, (GInstanceInitFunc) gtk_im_context_scim_init, }; SCIM_DEBUG_FRONTEND(1) << "gtk_im_context_scim_register_type...\n"; if (!_gtk_type_im_context_scim) { _gtk_type_im_context_scim = g_type_module_register_type (type_module, GTK_TYPE_IM_CONTEXT, "GtkIMContextSCIM", &im_context_scim_info, (GTypeFlags) 0); g_type_module_use (type_module); } } void gtk_im_context_scim_shutdown (void) { SCIM_DEBUG_FRONTEND(1) << "gtk_im_context_scim_shutdown...\n"; if (_scim_initialized) { SCIM_DEBUG_FRONTEND(1) << "gtk_im_context_scim_shutdown: call finalize ()...\n"; finalize (); _scim_initialized = false; } } /* Private functions */ static void gtk_im_context_scim_class_init (GtkIMContextSCIMClass *klass, gpointer *klass_data) { SCIM_DEBUG_FRONTEND(1) << "gtk_im_context_scim_class_init...\n"; GtkIMContextClass *im_context_klass = GTK_IM_CONTEXT_CLASS (klass); GObjectClass *gobject_klass = G_OBJECT_CLASS (klass); _parent_klass = (GObjectClass *) g_type_class_peek_parent (klass); im_context_klass->set_client_window = gtk_im_context_scim_set_client_window; im_context_klass->filter_keypress = gtk_im_context_scim_filter_keypress; im_context_klass->reset = gtk_im_context_scim_reset; im_context_klass->get_preedit_string = gtk_im_context_scim_get_preedit_string; im_context_klass->focus_in = gtk_im_context_scim_focus_in; im_context_klass->focus_out = gtk_im_context_scim_focus_out; im_context_klass->set_cursor_location = gtk_im_context_scim_set_cursor_location; im_context_klass->set_use_preedit = gtk_im_context_scim_set_use_preedit; gobject_klass->finalize = gtk_im_context_scim_finalize; if (!_scim_initialized) { initialize (); _scim_initialized = true; } } static void gtk_im_context_scim_init (GtkIMContextSCIM *context_scim, GtkIMContextSCIMClass *klass) { SCIM_DEBUG_FRONTEND(1) << "gtk_im_context_scim_init...\n"; context_scim->impl = NULL; /* slave exists for using gtk+'s table based input method */ context_scim->slave_preedit = false; context_scim->slave = gtk_im_context_simple_new (); g_signal_connect(G_OBJECT(context_scim->slave), "commit", G_CALLBACK(gtk_im_slave_commit_cb), context_scim); g_signal_connect(G_OBJECT(context_scim->slave), "preedit-changed", G_CALLBACK(gtk_im_slave_preedit_changed_cb), context_scim); g_signal_connect(G_OBJECT(context_scim->slave), "preedit-start", G_CALLBACK(gtk_im_slave_preedit_start_cb), context_scim); g_signal_connect(G_OBJECT(context_scim->slave), "preedit-end", G_CALLBACK(gtk_im_slave_preedit_end_cb), context_scim); if (_backend.null ()) return; IMEngineInstancePointer si; // Use the default instance if "shared input method" mode is enabled. if (_shared_input_method && !_default_instance.null ()) { si = _default_instance; SCIM_DEBUG_FRONTEND(2) << "use default instance: " << si->get_id () << " " << si->get_factory_uuid () << "\n"; } // Not in "shared input method" mode, or no default instance, create an instance. if (si.null ()) { IMEngineFactoryPointer factory = _backend->get_default_factory (_language, "UTF-8"); if (factory.null ()) return; si = factory->create_instance ("UTF-8", _instance_count++); if (si.null ()) return; attach_instance (si); SCIM_DEBUG_FRONTEND(2) << "create new instance: " << si->get_id () << " " << si->get_factory_uuid () << "\n"; } // If "shared input method" mode is enabled, and there is no default instance, // then store this instance as default one. if (_shared_input_method && _default_instance.null ()) { SCIM_DEBUG_FRONTEND(2) << "update default instance.\n"; _default_instance = si; } context_scim->impl = new_ic_impl (context_scim); context_scim->impl->si = si; context_scim->impl->client_window = NULL; context_scim->impl->preedit_caret = 0; context_scim->impl->cursor_x = 0; context_scim->impl->cursor_y = 0; context_scim->impl->is_on = FALSE; context_scim->impl->shared_si = _shared_input_method; context_scim->impl->use_preedit = _on_the_spot; context_scim->impl->preedit_started = false; context_scim->impl->preedit_updating = false; context_scim->id = _context_count++; if (_shared_input_method) context_scim->impl->is_on = _config->read (String (SCIM_CONFIG_FRONTEND_IM_OPENED_BY_DEFAULT), context_scim->impl->is_on); _panel_client.prepare (context_scim->id); _panel_client.register_input_context (context_scim->id, si->get_factory_uuid ()); set_ic_capabilities (context_scim); _panel_client.send (); SCIM_DEBUG_FRONTEND(2) << "input context created: id = " << context_scim->id << "\n"; } static void gtk_im_context_scim_finalize_partial (GtkIMContextSCIM *context_scim) { SCIM_DEBUG_FRONTEND(1) << "gtk_im_context_scim_finalize_partial id=" << context_scim->id << "\n"; if (context_scim->impl) { _panel_client.prepare (context_scim->id); if (context_scim == _focused_ic) context_scim->impl->si->focus_out (); // Delete the instance. // FIXME: // In case the instance send out some helper event, // and this context has been focused out, // we need set the focused_ic to this context temporary. GtkIMContextSCIM *old_focused = _focused_ic; _focused_ic = context_scim; context_scim->impl->si.reset (); _focused_ic = old_focused; if (context_scim == _focused_ic) { _panel_client.turn_off (context_scim->id); _panel_client.focus_out (context_scim->id); } _panel_client.remove_input_context (context_scim->id); _panel_client.send (); if (context_scim->impl->client_window) g_object_unref (context_scim->impl->client_window); delete_ic_impl (context_scim->impl); context_scim->impl = 0; } if (context_scim == _focused_ic) _focused_ic = 0; } static void gtk_im_context_scim_finalize (GObject *obj) { GtkIMContextSCIM *context_scim = GTK_IM_CONTEXT_SCIM (obj); SCIM_DEBUG_FRONTEND(1) << "gtk_im_context_scim_finalize id=" << context_scim->id << "\n"; g_signal_handlers_disconnect_by_func(context_scim->slave, (void *)gtk_im_slave_commit_cb, (void *)context_scim); g_signal_handlers_disconnect_by_func(context_scim->slave, (void *)gtk_im_slave_preedit_changed_cb, (void *)context_scim); g_signal_handlers_disconnect_by_func(context_scim->slave, (void *)gtk_im_slave_preedit_start_cb, (void *)context_scim); g_signal_handlers_disconnect_by_func(context_scim->slave, (void *)gtk_im_slave_preedit_end_cb, (void *)context_scim); g_object_unref(context_scim->slave); gtk_im_context_scim_finalize_partial (context_scim); _parent_klass->finalize (obj); } static void gtk_im_context_scim_set_client_window (GtkIMContext *context, GdkWindow *client_window) { SCIM_DEBUG_FRONTEND(1) << "gtk_im_context_scim_set_client_window...\n"; GtkIMContextSCIM *context_scim = GTK_IM_CONTEXT_SCIM (context); if (context_scim && context_scim->impl) { if (client_window) g_object_ref (client_window); if (context_scim->impl->client_window) g_object_unref (context_scim->impl->client_window); context_scim->impl->client_window = client_window; } } static gboolean gtk_im_context_scim_filter_keypress (GtkIMContext *context, GdkEventKey *event) { SCIM_DEBUG_FRONTEND(1) << "gtk_im_context_scim_filter_keypress...\n"; GtkIMContextSCIM *context_scim = GTK_IM_CONTEXT_SCIM (context); gboolean ret = FALSE; if (context_scim) { if (!_snooper_installed) ret = gtk_scim_key_snooper (0, event, 0); if (context_scim->slave) { if (!ret ) { ret = gtk_im_context_filter_keypress (context_scim->slave, event); } else if (context_scim->slave_preedit) { context_scim->slave_preedit = false; gtk_im_context_reset (context_scim->slave); } } } return ret; } static void gtk_im_context_scim_reset (GtkIMContext *context) { SCIM_DEBUG_FRONTEND(1) << "gtk_im_context_scim_reset...\n"; GtkIMContextSCIM *context_scim = GTK_IM_CONTEXT_SCIM (context); if (context_scim && context_scim->impl && context_scim == _focused_ic) { _panel_client.prepare (context_scim->id); context_scim->impl->si->reset (); _panel_client.send (); } } static void gtk_im_context_scim_focus_in (GtkIMContext *context) { GtkIMContextSCIM *context_scim = GTK_IM_CONTEXT_SCIM (context); SCIM_DEBUG_FRONTEND(1) << "gtk_im_context_scim_focus_in(" << context_scim->id << ")...\n"; if (_focused_ic) { if (_focused_ic == context_scim) { SCIM_DEBUG_FRONTEND(1) << "It's already focused.\n"; return; } SCIM_DEBUG_FRONTEND(1) << "Focus out previous IC first: " << _focused_ic->id << "\n"; gtk_im_context_scim_focus_out (GTK_IM_CONTEXT (_focused_ic)); } // Only use key snooper when use_key_snooper option is enabled and a gtk main loop is running. if (_use_key_snooper && !_snooper_installed && gtk_main_level () > 0) { SCIM_DEBUG_FRONTEND(2) << "Install key snooper.\n"; _snooper_id = gtk_key_snooper_install ((GtkKeySnoopFunc)gtk_scim_key_snooper, NULL); _snooper_installed = true; } bool need_cap = false; bool need_reset = false; bool need_reg = false; if (context_scim && context_scim->impl) { _focused_ic = context_scim; _panel_client.prepare (context_scim->id); // Handle the "Shared Input Method" mode. if (_shared_input_method) { SCIM_DEBUG_FRONTEND(2) << "shared input method.\n"; IMEngineFactoryPointer factory = _backend->get_default_factory (_language, "UTF-8"); if (!factory.null ()) { if (_default_instance.null () || _default_instance->get_factory_uuid () != factory->get_uuid ()) { _default_instance = factory->create_instance ("UTF-8", _default_instance.null () ? _instance_count++ : _default_instance->get_id ()); attach_instance (_default_instance); SCIM_DEBUG_FRONTEND(2) << "create new default instance: " << _default_instance->get_id () << " " << _default_instance->get_factory_uuid () << "\n"; } context_scim->impl->shared_si = true; context_scim->impl->si = _default_instance; context_scim->impl->is_on = _config->read (String (SCIM_CONFIG_FRONTEND_IM_OPENED_BY_DEFAULT), context_scim->impl->is_on); context_scim->impl->preedit_string.clear (); context_scim->impl->preedit_attrlist.clear (); context_scim->impl->preedit_caret = 0; context_scim->impl->preedit_started = false; need_cap = true; need_reset = true; need_reg = true; } } else if (context_scim->impl->shared_si) { SCIM_DEBUG_FRONTEND(2) << "exit shared input method.\n"; IMEngineFactoryPointer factory = _backend->get_default_factory (_language, "UTF-8"); if (!factory.null ()) { context_scim->impl->si = factory->create_instance ("UTF-8", _instance_count++); context_scim->impl->preedit_string.clear (); context_scim->impl->preedit_attrlist.clear (); context_scim->impl->preedit_caret = 0; context_scim->impl->preedit_started = false; attach_instance (context_scim->impl->si); need_cap = true; need_reg = true; context_scim->impl->shared_si = false; SCIM_DEBUG_FRONTEND(2) << "create new instance: " << context_scim->impl->si->get_id () << " " << context_scim->impl->si->get_factory_uuid () << "\n"; } } context_scim->impl->si->set_frontend_data (static_cast (context_scim)); if (need_reg) _panel_client.register_input_context (context_scim->id, context_scim->impl->si->get_factory_uuid ()); if (need_cap) set_ic_capabilities (context_scim); if (need_reset) context_scim->impl->si->reset (); panel_req_focus_in (context_scim); panel_req_update_screen (context_scim); panel_req_update_spot_location (context_scim); panel_req_update_factory_info (context_scim); if (context_scim->impl->is_on) { _panel_client.turn_on (context_scim->id); _panel_client.hide_preedit_string (context_scim->id); _panel_client.hide_aux_string (context_scim->id); _panel_client.hide_lookup_table (context_scim->id); context_scim->impl->si->focus_in (); } else { _panel_client.turn_off (context_scim->id); } _panel_client.send (); } } static void gtk_im_context_scim_focus_out (GtkIMContext *context) { GtkIMContextSCIM *context_scim = GTK_IM_CONTEXT_SCIM (context); SCIM_DEBUG_FRONTEND(1) << "gtk_im_context_scim_focus_out(" << context_scim->id << ")...\n"; if (context_scim && context_scim->impl && context_scim == _focused_ic) { if (_snooper_installed) { SCIM_DEBUG_FRONTEND(2) << "Remove key snooper.\n"; gtk_key_snooper_remove (_snooper_id); _snooper_installed = false; } _panel_client.prepare (context_scim->id); context_scim->impl->si->focus_out (); if (context_scim->impl->shared_si) context_scim->impl->si->reset (); _panel_client.turn_off (context_scim->id); _panel_client.focus_out (context_scim->id); _panel_client.send (); _focused_ic = 0; } } static void gtk_im_context_scim_set_cursor_location (GtkIMContext *context, GdkRectangle *area) { SCIM_DEBUG_FRONTEND(4) << "gtk_im_context_scim_set_cursor_location...\n"; gint x, y; GtkIMContextSCIM *context_scim = GTK_IM_CONTEXT_SCIM (context); if (context_scim && context_scim->impl && context_scim->impl->client_window && context_scim == _focused_ic) { // Don't update spot location while updating preedit string. if (context_scim->impl->preedit_updating) return; gdk_window_get_origin(context_scim->impl->client_window, &x, &y); if (context_scim->impl->cursor_x != x + area->x + area->width || context_scim->impl->cursor_y != y + area->y + area->height + 8) { context_scim->impl->cursor_x = x + area->x + area->width; context_scim->impl->cursor_y = y + area->y + area->height + 8; _panel_client.prepare (context_scim->id); panel_req_update_spot_location (context_scim); _panel_client.send (); SCIM_DEBUG_FRONTEND(2) << "new cursor location = " << context_scim->impl->cursor_x << "," << context_scim->impl->cursor_y << "\n"; } } } static void gtk_im_context_scim_set_use_preedit (GtkIMContext *context, gboolean use_preedit) { SCIM_DEBUG_FRONTEND(1) << "gtk_im_context_scim_set_use_preedit = " << (use_preedit ? "true" : "false") << "...\n"; GtkIMContextSCIM *context_scim = GTK_IM_CONTEXT_SCIM (context); if (!_on_the_spot) return; if (context_scim && context_scim->impl) { bool old = context_scim->impl->use_preedit; context_scim->impl->use_preedit = use_preedit; if (context_scim == _focused_ic) { _panel_client.prepare (context_scim->id); if (old != use_preedit) set_ic_capabilities (context_scim); if (context_scim->impl->preedit_string.length ()) slot_show_preedit_string (context_scim->impl->si); _panel_client.send (); } } } static void gtk_im_context_scim_get_preedit_string (GtkIMContext *context, gchar **str, PangoAttrList **attrs, gint *cursor_pos) { SCIM_DEBUG_FRONTEND(1) << "gtk_im_context_scim_get_preedit_string...\n"; GtkIMContextSCIM *context_scim = GTK_IM_CONTEXT_SCIM (context); if (context_scim->slave_preedit == true) { gtk_im_context_get_preedit_string (context_scim->slave, str, attrs, cursor_pos); return; } if (context_scim && context_scim->impl && context_scim->impl->is_on) { String mbs = utf8_wcstombs (context_scim->impl->preedit_string); if (str) { if (mbs.length ()) *str = g_strdup (mbs.c_str ()); else *str = g_strdup (""); } if (cursor_pos) { *cursor_pos = context_scim->impl->preedit_caret; } if (attrs) { *attrs = pango_attr_list_new (); if (mbs.length ()) { guint start_index, end_index; guint wlen = context_scim->impl->preedit_string.length (); PangoAttribute *attr; AttributeList::const_iterator i; bool underline = false; bool *attrs_flag = new bool [mbs.length ()]; memset (attrs_flag, 0, mbs.length () * sizeof (bool)); for (i = context_scim->impl->preedit_attrlist.begin (); i != context_scim->impl->preedit_attrlist.end (); ++i) { start_index = i->get_start (); end_index = i->get_end (); if (end_index <= wlen && start_index < end_index && i->get_type () != SCIM_ATTR_DECORATE_NONE) { start_index = g_utf8_offset_to_pointer (mbs.c_str (), i->get_start ()) - mbs.c_str (); end_index = g_utf8_offset_to_pointer (mbs.c_str (), i->get_end ()) - mbs.c_str (); if (i->get_type () == SCIM_ATTR_DECORATE) { if (i->get_value () == scim::SCIM_ATTR_DECORATE_UNDERLINE) { attr = pango_attr_underline_new (PANGO_UNDERLINE_SINGLE); attr->start_index = start_index; attr->end_index = end_index; pango_attr_list_insert (*attrs, attr); underline = true; } else if (i->get_value () == SCIM_ATTR_DECORATE_REVERSE) { attr = pango_attr_foreground_new (_normal_bg.red, _normal_bg.green, _normal_bg.blue); attr->start_index = start_index; attr->end_index = end_index; pango_attr_list_insert (*attrs, attr); attr = pango_attr_background_new (_normal_text.red, _normal_text.green, _normal_text.blue); attr->start_index = start_index; attr->end_index = end_index; pango_attr_list_insert (*attrs, attr); } else if (i->get_value () == SCIM_ATTR_DECORATE_HIGHLIGHT) { attr = pango_attr_foreground_new (_active_text.red, _active_text.green, _active_text.blue); attr->start_index = start_index; attr->end_index = end_index; pango_attr_list_insert (*attrs, attr); attr = pango_attr_background_new (_active_bg.red, _active_bg.green, _active_bg.blue); attr->start_index = start_index; attr->end_index = end_index; pango_attr_list_insert (*attrs, attr); } } else if (i->get_type () == SCIM_ATTR_FOREGROUND) { unsigned int color = i->get_value (); attr = pango_attr_foreground_new (SCIM_RGB_COLOR_RED(color) * 256, SCIM_RGB_COLOR_GREEN(color) * 256, SCIM_RGB_COLOR_BLUE(color) * 256); attr->start_index = start_index; attr->end_index = end_index; pango_attr_list_insert (*attrs, attr); } else if (i->get_type () == SCIM_ATTR_BACKGROUND) { unsigned int color = i->get_value (); attr = pango_attr_background_new (SCIM_RGB_COLOR_RED(color) * 256, SCIM_RGB_COLOR_GREEN(color) * 256, SCIM_RGB_COLOR_BLUE(color) * 256); attr->start_index = start_index; attr->end_index = end_index; pango_attr_list_insert (*attrs, attr); } // Record which character has attribute. for (guint pos = start_index; pos < end_index; ++pos) attrs_flag [pos] = 1; } } // Add underline for all characters which don't have attribute. for (guint pos = 0; pos < mbs.length (); ++pos) { if (!attrs_flag [pos]) { guint begin_pos = pos; for (; pos < mbs.length () && !attrs_flag [pos]; ++pos) NULL; attr = pango_attr_underline_new (PANGO_UNDERLINE_SINGLE); attr->start_index = begin_pos; attr->end_index = pos; pango_attr_list_insert (*attrs, attr); } } } } } else { if (str) *str = g_strdup (""); if (cursor_pos) *cursor_pos = 0; if (attrs) *attrs = pango_attr_list_new (); } } static gboolean gtk_scim_key_snooper (GtkWidget *grab_widget, GdkEventKey *event, gpointer data) { SCIM_DEBUG_FRONTEND(3) << "gtk_scim_key_snooper...\n"; gboolean ret = FALSE; if (_focused_ic && _focused_ic->impl && (event->type == GDK_KEY_PRESS || event->type == GDK_KEY_RELEASE) && !(event->send_event & SEND_EVENT_MASK)) { _focused_widget = grab_widget; KeyEvent key = keyevent_gdk_to_scim (_focused_ic, *event); key.mask &= _valid_key_mask; key.layout = _keyboard_layout; _panel_client.prepare (_focused_ic->id); if (!filter_hotkeys (_focused_ic, key)) { if (!_focused_ic->impl->is_on || !_focused_ic->impl->si->process_key_event (key)) { SCIM_DEBUG_FRONTEND(3) << "Failed to process: " << (!_focused_ic->impl->is_on ? "IC is off" : "IC doesn't process") << ".\n"; ret = _fallback_instance->process_key_event (key); } else { ret = TRUE; } } else { ret = TRUE; } _panel_client.send (); _focused_widget = 0; } else { SCIM_DEBUG_FRONTEND(3) << "Failed snooper: " << ((!_focused_ic || !_focused_ic->impl) ? "Invalid focused ic" : ((event->send_event & SEND_EVENT_MASK) ? "send event is set" : "unknown")) << "\n"; } return ret; } static void gtk_im_slave_commit_cb (GtkIMContext *context, const char *str, GtkIMContextSCIM *context_scim) { g_return_if_fail(str); g_signal_emit_by_name(context_scim, "commit", str); } static void gtk_im_slave_preedit_changed_cb (GtkIMContext *context, GtkIMContextSCIM *context_scim) { context_scim->slave_preedit = true; g_signal_emit_by_name(context_scim, "preedit-changed"); } static void gtk_im_slave_preedit_start_cb (GtkIMContext *context, GtkIMContextSCIM *context_scim) { context_scim->slave_preedit = true; g_signal_emit_by_name(context_scim, "preedit-start"); } static void gtk_im_slave_preedit_end_cb (GtkIMContext *context, GtkIMContextSCIM *context_scim) { context_scim->slave_preedit = false; g_signal_emit_by_name(context_scim, "preedit-end"); } /* Panel Slot functions */ static void panel_slot_reload_config (int context) { SCIM_DEBUG_FRONTEND(1) << "panel_slot_reload_config...\n"; _config->reload (); } static void panel_slot_exit (int /* context */) { SCIM_DEBUG_FRONTEND(1) << "panel_slot_exit...\n"; finalize (); } static void panel_slot_update_lookup_table_page_size (int context, int page_size) { GtkIMContextSCIM *ic = find_ic (context); SCIM_DEBUG_FRONTEND(1) << "panel_slot_update_lookup_table_page_size context=" << context << " page_size=" << page_size << " ic=" << ic << "\n"; if (ic && ic->impl) { _panel_client.prepare (ic->id); ic->impl->si->update_lookup_table_page_size (page_size); _panel_client.send (); } } static void panel_slot_lookup_table_page_up (int context) { GtkIMContextSCIM *ic = find_ic (context); SCIM_DEBUG_FRONTEND(1) << "panel_slot_lookup_table_page_up context=" << context << " ic=" << ic << "\n"; if (ic && ic->impl) { _panel_client.prepare (ic->id); ic->impl->si->lookup_table_page_up (); _panel_client.send (); } } static void panel_slot_lookup_table_page_down (int context) { GtkIMContextSCIM *ic = find_ic (context); SCIM_DEBUG_FRONTEND(1) << "panel_slot_lookup_table_page_down context=" << context << " ic=" << ic << "\n"; if (ic && ic->impl) { _panel_client.prepare (ic->id); ic->impl->si->lookup_table_page_down (); _panel_client.send (); } } static void panel_slot_trigger_property (int context, const String &property) { GtkIMContextSCIM *ic = find_ic (context); SCIM_DEBUG_FRONTEND(1) << "panel_slot_trigger_property context=" << context << " property=" << property << " ic=" << ic << "\n"; if (ic && ic->impl) { _panel_client.prepare (ic->id); ic->impl->si->trigger_property (property); _panel_client.send (); } } static void panel_slot_process_helper_event (int context, const String &target_uuid, const String &helper_uuid, const Transaction &trans) { GtkIMContextSCIM *ic = find_ic (context); SCIM_DEBUG_FRONTEND(1) << "panel_slot_process_helper_event context=" << context << " target=" << target_uuid << " helper=" << helper_uuid << " ic=" << ic << " ic->impl=" << (ic ? ic->impl : 0) << " ic-uuid=" << ((ic && ic->impl) ? ic->impl->si->get_factory_uuid () : "" ) << "\n"; if (ic && ic->impl && ic->impl->si->get_factory_uuid () == target_uuid) { _panel_client.prepare (ic->id); SCIM_DEBUG_FRONTEND(2) << "call process_helper_event\n"; ic->impl->si->process_helper_event (helper_uuid, trans); _panel_client.send (); } } static void panel_slot_move_preedit_caret (int context, int caret_pos) { GtkIMContextSCIM *ic = find_ic (context); SCIM_DEBUG_FRONTEND(1) << "panel_slot_move_preedit_caret context=" << context << " caret=" << caret_pos << " ic=" << ic << "\n"; if (ic && ic->impl) { _panel_client.prepare (ic->id); ic->impl->si->move_preedit_caret (caret_pos); _panel_client.send (); } } static void panel_slot_select_candidate (int context, int cand_index) { GtkIMContextSCIM *ic = find_ic (context); SCIM_DEBUG_FRONTEND(1) << "panel_slot_select_candidate context=" << context << " candidate=" << cand_index << " ic=" << ic << "\n"; if (ic && ic->impl) { _panel_client.prepare (ic->id); ic->impl->si->select_candidate (cand_index); _panel_client.send (); } } static void panel_slot_process_key_event (int context, const KeyEvent &key) { GtkIMContextSCIM *ic = find_ic (context); SCIM_DEBUG_FRONTEND(1) << "panel_slot_process_key_event context=" << context << " key=" << key.get_key_string () << " ic=" << ic << "\n"; if (ic && ic->impl) { _panel_client.prepare (ic->id); if (!filter_hotkeys (ic, key)) { if (!_focused_ic || !_focused_ic->impl->is_on || !_focused_ic->impl->si->process_key_event (key)) { if (!_fallback_instance->process_key_event (key)) { // Just send it to key_snooper and bypass to client directly (because send_event is set to TRUE). GdkEventKey gdkevent = keyevent_scim_to_gdk (ic, key); gdk_event_put ((GdkEvent *)&gdkevent); } } } _panel_client.send (); } } static void panel_slot_commit_string (int context, const WideString &wstr) { GtkIMContextSCIM *ic = find_ic (context); SCIM_DEBUG_FRONTEND(1) << "panel_slot_commit_string context=" << context << " str=" << utf8_wcstombs (wstr) << " ic=" << ic << "\n"; if (ic && ic->impl) g_signal_emit_by_name (ic, "commit", utf8_wcstombs (wstr).c_str ()); } static void panel_slot_forward_key_event (int context, const KeyEvent &key) { GtkIMContextSCIM *ic = find_ic (context); SCIM_DEBUG_FRONTEND(1) << "panel_slot_forward_key_event context=" << context << " key=" << key.get_key_string () << " ic=" << ic << "\n"; if (ic && ic->impl) { // Just send it to key_snooper and bypass to client directly (because send_event is set to TRUE). GdkEventKey gdkevent = keyevent_scim_to_gdk (ic, key); gdk_event_put ((GdkEvent *)&gdkevent); } } static void panel_slot_request_help (int context) { GtkIMContextSCIM *ic = find_ic (context); SCIM_DEBUG_FRONTEND(1) << "panel_slot_request_help context=" << context << " ic=" << ic << "\n"; if (ic && ic->impl) { _panel_client.prepare (ic->id); panel_req_show_help (ic); _panel_client.send (); } } static void panel_slot_request_factory_menu (int context) { GtkIMContextSCIM *ic = find_ic (context); SCIM_DEBUG_FRONTEND(1) << "panel_slot_request_factory_menu context=" << context << " ic=" << ic << "\n"; if (ic && ic->impl) { _panel_client.prepare (ic->id); panel_req_show_factory_menu (ic); _panel_client.send (); } } static void panel_slot_change_factory (int context, const String &uuid) { GtkIMContextSCIM *ic = find_ic (context); SCIM_DEBUG_FRONTEND(1) << "panel_slot_change_factory context=" << context << " factory=" << uuid << " ic=" << ic << "\n"; if (ic && ic->impl) { _panel_client.prepare (ic->id); open_specific_factory (ic, uuid); _panel_client.send (); } } /* Panel Requestion functions. */ static void panel_req_update_screen (GtkIMContextSCIM *ic) { #if GTK_CHECK_VERSION(2, 2, 0) if (ic->impl->client_window) { #if GTK_CHECK_VERSION(2, 24, 0) GdkScreen *screen = gdk_window_get_screen (ic->impl->client_window); #else GdkScreen *screen = gdk_drawable_get_screen (GDK_DRAWABLE (ic->impl->client_window)); #endif if (screen) { int number = gdk_screen_get_number (screen); _panel_client.update_screen (ic->id, number); } } #endif } static void panel_req_show_help (GtkIMContextSCIM *ic) { String help; help = String (_("Smart Common Input Method platform ")) + String (SCIM_VERSION) + String (_("\n(C) 2002-2005 James Su \n\n")); if (ic && ic->impl) { IMEngineFactoryPointer sf = _backend->get_factory (ic->impl->si->get_factory_uuid ()); help += utf8_wcstombs (sf->get_name ()); help += String (_(":\n\n")); help += utf8_wcstombs (sf->get_authors ()); help += String (_("\n\n")); help += utf8_wcstombs (sf->get_help ()); help += String (_("\n\n")); help += utf8_wcstombs (sf->get_credits ()); } _panel_client.show_help (ic->id, help); } static void panel_req_show_factory_menu (GtkIMContextSCIM *ic) { std::vector factories; std::vector menu; _backend->get_factories_for_encoding (factories, "UTF-8"); for (size_t i = 0; i < factories.size (); ++ i) { menu.push_back (PanelFactoryInfo ( factories [i]->get_uuid (), utf8_wcstombs (factories [i]->get_name ()), factories [i]->get_language (), factories [i]->get_icon_file ())); } if (menu.size ()) _panel_client.show_factory_menu (ic->id, menu); } static void panel_req_update_factory_info (GtkIMContextSCIM *ic) { if (ic && ic->impl && ic == _focused_ic) { PanelFactoryInfo info; if (ic->impl->is_on) { IMEngineFactoryPointer sf = _backend->get_factory (ic->impl->si->get_factory_uuid ()); info = PanelFactoryInfo (sf->get_uuid (), utf8_wcstombs (sf->get_name ()), sf->get_language (), sf->get_icon_file ()); } else { info = PanelFactoryInfo (String (""), String (_("English/Keyboard")), String ("C"), String (SCIM_KEYBOARD_ICON_FILE)); } _panel_client.update_factory_info (ic->id, info); } } static void panel_req_focus_in (GtkIMContextSCIM *ic) { _panel_client.focus_in (ic->id, ic->impl->si->get_factory_uuid ()); } static void panel_req_update_spot_location (GtkIMContextSCIM *ic) { _panel_client.update_spot_location (ic->id, ic->impl->cursor_x, ic->impl->cursor_y); } static bool filter_hotkeys (GtkIMContextSCIM *ic, const KeyEvent &key) { bool ret = false; _frontend_hotkey_matcher.push_key_event (key); _imengine_hotkey_matcher.push_key_event (key); FrontEndHotkeyAction hotkey_action = _frontend_hotkey_matcher.get_match_result (); if (hotkey_action == SCIM_FRONTEND_HOTKEY_TRIGGER) { if (!ic->impl->is_on) turn_on_ic (ic); else turn_off_ic (ic); ret = true; } else if (hotkey_action == SCIM_FRONTEND_HOTKEY_ON) { if (!ic->impl->is_on) turn_on_ic (ic); ret = true; } else if (hotkey_action == SCIM_FRONTEND_HOTKEY_OFF) { if (ic->impl->is_on) turn_off_ic (ic); ret = true; } else if (hotkey_action == SCIM_FRONTEND_HOTKEY_NEXT_FACTORY) { open_next_factory (ic); ret = true; } else if (hotkey_action == SCIM_FRONTEND_HOTKEY_PREVIOUS_FACTORY) { open_previous_factory (ic); ret = true; } else if (hotkey_action == SCIM_FRONTEND_HOTKEY_SHOW_FACTORY_MENU) { panel_req_show_factory_menu (ic); ret = true; } else if (_imengine_hotkey_matcher.is_matched ()) { String sfid = _imengine_hotkey_matcher.get_match_result (); open_specific_factory (ic, sfid); ret = true; } return ret; } static bool panel_initialize () { String display_name; { #if GTK_CHECK_VERSION(2, 2, 0) const char *p = gdk_display_get_name (gdk_display_get_default ()); #else const char *p = getenv ("DISPLAY"); #endif if (p) display_name = String (p); } SCIM_DEBUG_FRONTEND(1) << "panel_initialize..\n"; if (_panel_client.open_connection (_config->get_name (), display_name) >= 0) { int fd = _panel_client.get_connection_number (); _panel_iochannel = g_io_channel_unix_new (fd); _panel_iochannel_read_source = g_io_add_watch (_panel_iochannel, G_IO_IN, panel_iochannel_handler, 0); _panel_iochannel_err_source = g_io_add_watch (_panel_iochannel, G_IO_ERR, panel_iochannel_handler, 0); _panel_iochannel_hup_source = g_io_add_watch (_panel_iochannel, G_IO_HUP, panel_iochannel_handler, 0); SCIM_DEBUG_FRONTEND(2) << " Panel FD= " << fd << "\n"; return true; } return false; } static void panel_finalize () { _panel_client.close_connection (); if (_panel_iochannel) { g_io_channel_unref (_panel_iochannel); g_source_remove (_panel_iochannel_read_source); g_source_remove (_panel_iochannel_err_source); g_source_remove (_panel_iochannel_hup_source); _panel_iochannel = 0; _panel_iochannel_read_source = 0; _panel_iochannel_err_source = 0; _panel_iochannel_hup_source = 0; } } static gboolean panel_iochannel_handler (GIOChannel *source, GIOCondition condition, gpointer user_data) { if (condition == G_IO_IN) { if (!_panel_client.filter_event ()) { panel_finalize (); panel_initialize (); return FALSE; } } else if (condition == G_IO_ERR || condition == G_IO_HUP) { panel_finalize (); panel_initialize (); return FALSE; } return TRUE; } static void turn_on_ic (GtkIMContextSCIM *ic) { if (ic && ic->impl && !ic->impl->is_on) { ic->impl->is_on = true; if (ic == _focused_ic) { panel_req_focus_in (ic); panel_req_update_screen (ic); panel_req_update_spot_location (ic); panel_req_update_factory_info (ic); _panel_client.turn_on (ic->id); _panel_client.hide_preedit_string (ic->id); _panel_client.hide_aux_string (ic->id); _panel_client.hide_lookup_table (ic->id); ic->impl->si->focus_in (); } //Record the IC on/off status if (_shared_input_method) _config->write (String (SCIM_CONFIG_FRONTEND_IM_OPENED_BY_DEFAULT), true); if (ic->impl->use_preedit && ic->impl->preedit_string.length ()) { g_signal_emit_by_name(ic, "preedit-start"); g_signal_emit_by_name(ic, "preedit-changed"); ic->impl->preedit_started = true; } } } static void turn_off_ic (GtkIMContextSCIM *ic) { if (ic && ic->impl && ic->impl->is_on) { ic->impl->is_on = false; if (ic == _focused_ic) { ic->impl->si->focus_out (); panel_req_update_factory_info (ic); _panel_client.turn_off (ic->id); } //Record the IC on/off status if (_shared_input_method) _config->write (String (SCIM_CONFIG_FRONTEND_IM_OPENED_BY_DEFAULT), false); if (ic->impl->use_preedit && ic->impl->preedit_string.length ()) { g_signal_emit_by_name(ic, "preedit-changed"); g_signal_emit_by_name(ic, "preedit-end"); ic->impl->preedit_started = false; } } } static void set_ic_capabilities (GtkIMContextSCIM *ic) { if (ic && ic->impl) { unsigned int cap = SCIM_CLIENT_CAP_ALL_CAPABILITIES; if (!_on_the_spot || !ic->impl->use_preedit) cap -= SCIM_CLIENT_CAP_ONTHESPOT_PREEDIT; ic->impl->si->update_client_capabilities (cap); } } static KeyEvent keyevent_gdk_to_scim (const GtkIMContextSCIM *ic, const GdkEventKey &gdkevent) { KeyEvent key; // Use Key Symbole provided by gtk. key.code = gdkevent.keyval; #ifdef GDK_WINDOWING_X11 Display *display = 0; if (ic && ic->impl && ic->impl->client_window) display = GDK_WINDOW_XDISPLAY (ic->impl->client_window); else display = GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()); key.mask = scim_x11_keymask_x11_to_scim (display, gdkevent.state); // Special treatment for two backslash keys on jp106 keyboard. if (key.code == SCIM_KEY_backslash) { int keysym_size = 0; KeySym *keysyms = XGetKeyboardMapping (display, gdkevent.hardware_keycode, 1, &keysym_size); if (keysyms != NULL) { if (keysyms[0] == XK_backslash && (keysym_size > 1 && keysyms[1] == XK_underscore)) key.mask |= SCIM_KEY_QuirkKanaRoMask; XFree (keysyms); } } #else if (gdkevent.state & GDK_SHIFT_MASK) key.mask |=SCIM_KEY_ShiftMask; if (gdkevent.state & GDK_LOCK_MASK) key.mask |=SCIM_KEY_CapsLockMask; if (gdkevent.state & GDK_CONTROL_MASK) key.mask |=SCIM_KEY_ControlMask; if (gdkevent.state & GDK_MOD1_MASK) key.mask |=SCIM_KEY_AltMask; if (gdkevent.state & GDK_MOD2_MASK) key.mask |=SCIM_KEY_NumLockMask; #endif if (gdkevent.type == GDK_KEY_RELEASE) key.mask |= SCIM_KEY_ReleaseMask; return key; } static GdkKeymap * get_gdk_keymap (GdkWindow *window) { GdkKeymap *keymap; #if GTK_CHECK_VERSION(2, 2, 0) if (window) #if GTK_CHECK_VERSION(2, 24, 0) keymap = gdk_keymap_get_for_display (gdk_window_get_display (window)); #else keymap = gdk_keymap_get_for_display (gdk_drawable_get_display (window)); #endif else #endif keymap = gdk_keymap_get_default (); return keymap; } static guint32 get_time (void) { int tint; struct timeval tv; struct timezone tz; /* is not used since ages */ gettimeofday (&tv, &tz); tint = (int) tv.tv_sec * 1000; tint = tint / 1000 * 1000; tint = tint + tv.tv_usec / 1000; return ((guint32) tint); } static GdkEventKey keyevent_scim_to_gdk (const GtkIMContextSCIM *ic, const KeyEvent &scimkey) { GdkEventKey gdkevent; #ifdef GDK_WINDOWING_X11 Display *display = 0; if (ic && ic->impl && ic->impl->client_window) display = GDK_WINDOW_XDISPLAY (ic->impl->client_window); else display = GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()); gdkevent.state = scim_x11_keymask_scim_to_x11 (display, scimkey.mask); #else gdkevent.state = 0; if (scimkey.is_shift_down ()) gdkevent.state |= GDK_SHIFT_MASK; if (scimkey.is_caps_lock_down ()) gdkevent.state |= GDK_LOCK_MASK; if (scimkey.is_control_down ()) gdkevent.state |= GDK_CONTROL_MASK; if (scimkey.is_alt_down ()) gdkevent.state |= GDK_MOD1_MASK; if (scimkey.is_num_lock_down ()) gdkevent.state |= GDK_MOD2_MASK; #endif if (scimkey.is_key_release ()) gdkevent.state |= GDK_RELEASE_MASK; gdkevent.type = (scimkey.is_key_release () ? GDK_KEY_RELEASE : GDK_KEY_PRESS); gdkevent.window = ((ic && ic->impl) ? ic->impl->client_window : 0); gdkevent.send_event |= SEND_EVENT_MASK; gdkevent.time = get_time (); gdkevent.keyval = scimkey.code; gdkevent.length = 0; gdkevent.string = 0; GdkKeymap *keymap = get_gdk_keymap (gdkevent.window); GdkKeymapKey *keys; gint n_keys; if (gdk_keymap_get_entries_for_keyval (keymap, gdkevent.keyval, &keys, &n_keys)) { gdkevent.hardware_keycode = keys [0].keycode; gdkevent.group = keys [0].group; } else { gdkevent.hardware_keycode = 0; gdkevent.group = 0; } if (keys) g_free (keys); return gdkevent; } static bool check_socket_frontend () { SocketAddress address; SocketClient client; uint32 magic; address.set_address (scim_get_default_socket_frontend_address ()); if (!client.connect (address)) return false; if (!scim_socket_open_connection (magic, String ("ConnectionTester"), String ("SocketFrontEnd"), client, 1000)) { return false; } return true; } static void initialize (void) { std::vector config_list; std::vector engine_list; std::vector load_engine_list; std::vector debug_mask_list; int debug_verbose = 0; size_t i; bool manual = false; bool socket = true; String config_module_name; // Get debug info { char *str; str = getenv ("GTK_IM_SCIM_DEBUG_VERBOSE"); if (str != NULL) debug_verbose = atoi (str); DebugOutput::set_verbose_level (debug_verbose); str = getenv ("GTK_IM_SCIM_DEBUG_MASK"); if (str != NULL) { scim_split_string_list (debug_mask_list, String (str), ','); if (debug_mask_list.size ()) { DebugOutput::disable_debug (SCIM_DEBUG_AllMask); for (i=0; i spec_engine_list; scim_split_string_list (spec_engine_list, engine_list_str, ','); load_engine_list.clear (); for (size_t i = 0; i < spec_engine_list.size (); ++i) if (std::find (engine_list.begin (), engine_list.end (), spec_engine_list [i]) != engine_list.end ()) load_engine_list.push_back (spec_engine_list [i]); manual = true; } // If you try to use the socket feature manually, // then let you do it by yourself. if (config_module_name == "socket" || std::find (load_engine_list.begin (), load_engine_list.end (), "socket") != load_engine_list.end ()) socket = false; // Try to start a SCIM SocketFrontEnd process if necessary. if (scim_get_default_socket_frontend_address () != scim_get_default_socket_imengine_address () && scim_get_default_socket_frontend_address () != scim_get_default_socket_config_address ()) socket = false; if (socket) { // If no Socket FrontEnd is running, then launch one. // And set manual to false. if (!check_socket_frontend ()) { std::cerr << "Launching a SCIM daemon with Socket FrontEnd...\n"; char *new_argv [] = { const_cast ("--no-stay"), 0 }; scim_launch (true, config_module_name, (load_engine_list.size () ? scim_combine_string_list (load_engine_list, ',') : "all"), "socket", new_argv); manual = false; } // If there is one Socket FrontEnd running and it's not manual mode, // then just use this Socket Frontend. if (!manual) { for (int i = 0; i < 100; ++i) { if (check_socket_frontend ()) { config_module_name = "socket"; load_engine_list.clear (); load_engine_list.push_back ("socket"); break; } scim_usleep (100000); } } } if (config_module_name != "dummy") { //load config module SCIM_DEBUG_FRONTEND(1) << "Loading Config module: " << config_module_name << "...\n"; _config_module = new ConfigModule (config_module_name); //create config instance if (_config_module != NULL && _config_module->valid ()) _config = _config_module->create_config (); } if (_config.null ()) { SCIM_DEBUG_FRONTEND(1) << "Config module cannot be loaded, using dummy Config.\n"; if (_config_module) delete _config_module; _config_module = NULL; _config = new DummyConfig (); config_module_name = "dummy"; } // Init colors. gdk_color_parse ("gray92", &_normal_bg); gdk_color_parse ("black", &_normal_text); gdk_color_parse ("light blue", &_active_bg); gdk_color_parse ("black", &_active_text); reload_config_callback (_config); _config->signal_connect_reload (slot (reload_config_callback)); // create backend _backend = new CommonBackEnd (_config, load_engine_list.size () ? load_engine_list : engine_list); if (_backend.null ()) { fprintf (stderr, "GTK IM Module SCIM: Cannot create BackEnd Object!\n"); } else { _fallback_factory = _backend->get_factory (SCIM_COMPOSE_KEY_FACTORY_UUID); } if (_fallback_factory.null ()) _fallback_factory = new DummyIMEngineFactory (); _fallback_instance = _fallback_factory->create_instance (String ("UTF-8"), 0); _fallback_instance->signal_connect_commit_string (slot (fallback_commit_string_cb)); // Attach Panel Client signal. _panel_client.signal_connect_reload_config (slot (panel_slot_reload_config)); _panel_client.signal_connect_exit (slot (panel_slot_exit)); _panel_client.signal_connect_update_lookup_table_page_size (slot (panel_slot_update_lookup_table_page_size)); _panel_client.signal_connect_lookup_table_page_up (slot (panel_slot_lookup_table_page_up)); _panel_client.signal_connect_lookup_table_page_down (slot (panel_slot_lookup_table_page_down)); _panel_client.signal_connect_trigger_property (slot (panel_slot_trigger_property)); _panel_client.signal_connect_process_helper_event (slot (panel_slot_process_helper_event)); _panel_client.signal_connect_move_preedit_caret (slot (panel_slot_move_preedit_caret)); _panel_client.signal_connect_select_candidate (slot (panel_slot_select_candidate)); _panel_client.signal_connect_process_key_event (slot (panel_slot_process_key_event)); _panel_client.signal_connect_commit_string (slot (panel_slot_commit_string)); _panel_client.signal_connect_forward_key_event (slot (panel_slot_forward_key_event)); _panel_client.signal_connect_request_help (slot (panel_slot_request_help)); _panel_client.signal_connect_request_factory_menu (slot (panel_slot_request_factory_menu)); _panel_client.signal_connect_change_factory (slot (panel_slot_change_factory)); if (!panel_initialize ()) { fprintf (stderr, "GTK IM Module SCIM: Cannot connect to Panel!\n"); } } static void finalize (void) { SCIM_DEBUG_FRONTEND(1) << "Finalizing GTK SCIM IMModule...\n"; if (_snooper_installed) { gtk_key_snooper_remove(_snooper_id); _snooper_installed=false; _snooper_id = 0; } // Reset this first so that the shared instance could be released correctly afterwards. _default_instance.reset (); SCIM_DEBUG_FRONTEND(2) << "Finalize all IC partially.\n"; while (_used_ic_impl_list) { // In case in "shared input method" mode, // all contexts share only one instance, // so we need point the reference pointer correctly before finalizing. _used_ic_impl_list->si->set_frontend_data (static_cast (_used_ic_impl_list->parent)); gtk_im_context_scim_finalize_partial (_used_ic_impl_list->parent); } delete_all_ic_impl (); _fallback_instance.reset (); _fallback_factory.reset (); SCIM_DEBUG_FRONTEND(2) << " Releasing BackEnd...\n"; _backend.reset (); SCIM_DEBUG_FRONTEND(2) << " Releasing Config...\n"; _config.reset (); if (_config_module) { SCIM_DEBUG_FRONTEND(2) << " Deleting _config_module...\n"; delete _config_module; _config_module = 0; } _focused_ic = 0; _focused_widget = 0; _scim_initialized = false; panel_finalize (); } static void open_next_factory (GtkIMContextSCIM *ic) { SCIM_DEBUG_FRONTEND(2) << "open_next_factory context=" << ic->id << "\n"; IMEngineFactoryPointer sf = _backend->get_next_factory ("", "UTF-8", ic->impl->si->get_factory_uuid ()); if (!sf.null ()) { turn_off_ic (ic); ic->impl->si = sf->create_instance ("UTF-8", ic->impl->si->get_id ()); ic->impl->si->set_frontend_data (static_cast (ic)); ic->impl->preedit_string = WideString (); ic->impl->preedit_caret = 0; attach_instance (ic->impl->si); _backend->set_default_factory (_language, sf->get_uuid ()); _panel_client.register_input_context (ic->id, sf->get_uuid ()); set_ic_capabilities (ic); turn_on_ic (ic); if (_shared_input_method) { _default_instance = ic->impl->si; ic->impl->shared_si = true; } } } static void open_previous_factory (GtkIMContextSCIM *ic) { SCIM_DEBUG_FRONTEND(2) << "open_previous_factory context=" << ic->id << "\n"; IMEngineFactoryPointer sf = _backend->get_previous_factory ("", "UTF-8", ic->impl->si->get_factory_uuid ()); if (!sf.null ()) { turn_off_ic (ic); ic->impl->si = sf->create_instance ("UTF-8", ic->impl->si->get_id ()); ic->impl->si->set_frontend_data (static_cast (ic)); ic->impl->preedit_string = WideString (); ic->impl->preedit_caret = 0; attach_instance (ic->impl->si); _backend->set_default_factory (_language, sf->get_uuid ()); _panel_client.register_input_context (ic->id, sf->get_uuid ()); set_ic_capabilities (ic); turn_on_ic (ic); if (_shared_input_method) { _default_instance = ic->impl->si; ic->impl->shared_si = true; } } } static void open_specific_factory (GtkIMContextSCIM *ic, const String &uuid) { SCIM_DEBUG_FRONTEND(2) << "open_specific_factory context=" << ic->id << "\n"; // The same input method is selected, just turn on the IC. if (ic->impl->si->get_factory_uuid () == uuid) { turn_on_ic (ic); return; } IMEngineFactoryPointer sf = _backend->get_factory (uuid); if (uuid.length () && !sf.null ()) { turn_off_ic (ic); ic->impl->si = sf->create_instance ("UTF-8", ic->impl->si->get_id ()); ic->impl->si->set_frontend_data (static_cast (ic)); ic->impl->preedit_string = WideString (); ic->impl->preedit_caret = 0; attach_instance (ic->impl->si); _backend->set_default_factory (_language, sf->get_uuid ()); _panel_client.register_input_context (ic->id, sf->get_uuid ()); set_ic_capabilities (ic); turn_on_ic (ic); if (_shared_input_method) { _default_instance = ic->impl->si; ic->impl->shared_si = true; } } else { turn_off_ic (ic); } } static void attach_instance (const IMEngineInstancePointer &si) { si->signal_connect_show_preedit_string ( slot (slot_show_preedit_string)); si->signal_connect_show_aux_string ( slot (slot_show_aux_string)); si->signal_connect_show_lookup_table ( slot (slot_show_lookup_table)); si->signal_connect_hide_preedit_string ( slot (slot_hide_preedit_string)); si->signal_connect_hide_aux_string ( slot (slot_hide_aux_string)); si->signal_connect_hide_lookup_table ( slot (slot_hide_lookup_table)); si->signal_connect_update_preedit_caret ( slot (slot_update_preedit_caret)); si->signal_connect_update_preedit_string ( slot (slot_update_preedit_string)); si->signal_connect_update_aux_string ( slot (slot_update_aux_string)); si->signal_connect_update_lookup_table ( slot (slot_update_lookup_table)); si->signal_connect_commit_string ( slot (slot_commit_string)); si->signal_connect_forward_key_event ( slot (slot_forward_key_event)); si->signal_connect_register_properties ( slot (slot_register_properties)); si->signal_connect_update_property ( slot (slot_update_property)); si->signal_connect_beep ( slot (slot_beep)); si->signal_connect_start_helper ( slot (slot_start_helper)); si->signal_connect_stop_helper ( slot (slot_stop_helper)); si->signal_connect_send_helper_event ( slot (slot_send_helper_event)); si->signal_connect_get_surrounding_text ( slot (slot_get_surrounding_text)); si->signal_connect_delete_surrounding_text ( slot (slot_delete_surrounding_text)); } // Implementation of slot functions static void slot_show_preedit_string (IMEngineInstanceBase *si) { SCIM_DEBUG_FRONTEND(1) << "slot_show_preedit_string...\n"; GtkIMContextSCIM *ic = static_cast (si->get_frontend_data ()); if (ic && ic->impl && _focused_ic == ic) { if (ic->impl->use_preedit) { if (!ic->impl->preedit_started) { g_signal_emit_by_name(_focused_ic, "preedit-start"); ic->impl->preedit_started = true; } if (ic->impl->preedit_string.length ()) g_signal_emit_by_name(_focused_ic, "preedit-changed"); } else { _panel_client.show_preedit_string (ic->id); } } } static void slot_show_aux_string (IMEngineInstanceBase *si) { SCIM_DEBUG_FRONTEND(1) << "slot_show_aux_string...\n"; GtkIMContextSCIM *ic = static_cast (si->get_frontend_data ()); if (ic && ic->impl && _focused_ic == ic) _panel_client.show_aux_string (ic->id); } static void slot_show_lookup_table (IMEngineInstanceBase *si) { SCIM_DEBUG_FRONTEND(1) << "slot_show_lookup_table...\n"; GtkIMContextSCIM *ic = static_cast (si->get_frontend_data ()); if (ic && ic->impl && _focused_ic == ic) _panel_client.show_lookup_table (ic->id); } static void slot_hide_preedit_string (IMEngineInstanceBase *si) { SCIM_DEBUG_FRONTEND(1) << "slot_hide_preedit_string...\n"; GtkIMContextSCIM *ic = static_cast (si->get_frontend_data ()); if (ic && ic->impl && _focused_ic == ic) { bool emit=false; if (ic->impl->preedit_string.length ()) { ic->impl->preedit_string = WideString (); ic->impl->preedit_caret = 0; ic->impl->preedit_attrlist.clear (); emit = true; } if (ic->impl->use_preedit) { if (emit) g_signal_emit_by_name(ic, "preedit-changed"); if (ic->impl->preedit_started) { g_signal_emit_by_name(ic, "preedit-end"); ic->impl->preedit_started = false; } } else { _panel_client.hide_preedit_string (ic->id); } } } static void slot_hide_aux_string (IMEngineInstanceBase *si) { SCIM_DEBUG_FRONTEND(1) << "slot_hide_aux_string...\n"; GtkIMContextSCIM *ic = static_cast (si->get_frontend_data ()); if (ic && ic->impl && _focused_ic == ic) _panel_client.hide_aux_string (ic->id); } static void slot_hide_lookup_table (IMEngineInstanceBase *si) { SCIM_DEBUG_FRONTEND(1) << "slot_hide_lookup_table...\n"; GtkIMContextSCIM *ic = static_cast (si->get_frontend_data ()); if (ic && ic->impl && _focused_ic == ic) _panel_client.hide_lookup_table (ic->id); } static void slot_update_preedit_caret (IMEngineInstanceBase *si, int caret) { SCIM_DEBUG_FRONTEND(1) << "slot_update_preedit_caret...\n"; GtkIMContextSCIM *ic = static_cast (si->get_frontend_data ()); if (ic && ic->impl && _focused_ic == ic && ic->impl->preedit_caret != caret) { ic->impl->preedit_caret = caret; if (ic->impl->use_preedit) { if (!ic->impl->preedit_started) { g_signal_emit_by_name(_focused_ic, "preedit-start"); ic->impl->preedit_started = true; } g_signal_emit_by_name(ic, "preedit-changed"); } else { _panel_client.update_preedit_caret (ic->id, caret); } } } static void slot_update_preedit_string (IMEngineInstanceBase *si, const WideString & str, const AttributeList & attrs) { SCIM_DEBUG_FRONTEND(1) << "slot_update_preedit_string...\n"; GtkIMContextSCIM *ic = static_cast (si->get_frontend_data ()); if (ic && ic->impl && _focused_ic == ic && (ic->impl->preedit_string != str || str.length ())) { ic->impl->preedit_string = str; ic->impl->preedit_attrlist = attrs; if (ic->impl->use_preedit) { if (!ic->impl->preedit_started) { g_signal_emit_by_name(_focused_ic, "preedit-start"); ic->impl->preedit_started = true; } ic->impl->preedit_caret = str.length (); ic->impl->preedit_updating = true; g_signal_emit_by_name(ic, "preedit-changed"); ic->impl->preedit_updating = false; } else { _panel_client.update_preedit_string (ic->id, str, attrs); } } } static void slot_update_aux_string (IMEngineInstanceBase *si, const WideString & str, const AttributeList & attrs) { SCIM_DEBUG_FRONTEND(1) << "slot_update_aux_string...\n"; GtkIMContextSCIM *ic = static_cast (si->get_frontend_data ()); if (ic && ic->impl && _focused_ic == ic) _panel_client.update_aux_string (ic->id, str, attrs); } static void slot_commit_string (IMEngineInstanceBase *si, const WideString & str) { SCIM_DEBUG_FRONTEND(1) << "slot_commit_string...\n"; GtkIMContextSCIM *ic = static_cast (si->get_frontend_data ()); if (ic) g_signal_emit_by_name (ic, "commit", utf8_wcstombs (str).c_str ()); } static void slot_forward_key_event (IMEngineInstanceBase *si, const KeyEvent & key) { SCIM_DEBUG_FRONTEND(1) << "slot_forward_key_event...\n"; GtkIMContextSCIM *ic = static_cast (si->get_frontend_data ()); if (ic && _focused_ic == ic) { GdkEventKey gdkevent = keyevent_scim_to_gdk (ic, key); if (!_fallback_instance->process_key_event (key) && !gtk_im_context_filter_keypress (GTK_IM_CONTEXT (ic->slave), &gdkevent)) { // To avoid timing issue, we need emit the signal directly, rather than put the event into the queue. if (_focused_widget) { gboolean result; g_signal_emit_by_name(_focused_widget, key.is_key_press () ? "key-press-event" : "key-release-event", &gdkevent, &result); } else { gdk_event_put ((GdkEvent *) &gdkevent); } } } } static void slot_update_lookup_table (IMEngineInstanceBase *si, const LookupTable & table) { SCIM_DEBUG_FRONTEND(1) << "slot_update_lookup_table...\n"; GtkIMContextSCIM *ic = static_cast (si->get_frontend_data ()); if (ic && ic->impl && _focused_ic == ic) _panel_client.update_lookup_table (ic->id, table); } static void slot_register_properties (IMEngineInstanceBase *si, const PropertyList & properties) { SCIM_DEBUG_FRONTEND(1) << "slot_register_properties...\n"; GtkIMContextSCIM *ic = static_cast (si->get_frontend_data ()); if (ic && ic->impl && _focused_ic == ic) _panel_client.register_properties (ic->id, properties); } static void slot_update_property (IMEngineInstanceBase *si, const Property & property) { SCIM_DEBUG_FRONTEND(1) << "slot_update_property ...\n"; GtkIMContextSCIM *ic = static_cast (si->get_frontend_data ()); if (ic && ic->impl && _focused_ic == ic) _panel_client.update_property (ic->id, property); } static void slot_beep (IMEngineInstanceBase *si) { SCIM_DEBUG_FRONTEND(1) << "slot_beep ...\n"; GtkIMContextSCIM *ic = static_cast (si->get_frontend_data ()); if (ic && ic->impl && _focused_ic == ic) gdk_beep (); } static void slot_start_helper (IMEngineInstanceBase *si, const String &helper_uuid) { GtkIMContextSCIM *ic = static_cast (si->get_frontend_data ()); SCIM_DEBUG_FRONTEND(1) << "slot_start_helper helper= " << helper_uuid << " context=" << (ic ? ic->id : -1) << " ic=" << ic << " ic-uuid=" << ((ic && ic->impl) ? ic->impl->si->get_factory_uuid () : "") << "...\n"; if (ic && ic->impl) _panel_client.start_helper (ic->id, helper_uuid); } static void slot_stop_helper (IMEngineInstanceBase *si, const String &helper_uuid) { GtkIMContextSCIM *ic = static_cast (si->get_frontend_data ()); SCIM_DEBUG_FRONTEND(1) << "slot_stop_helper helper= " << helper_uuid << " context=" << (ic ? ic->id : -1) << " ic=" << ic << "...\n"; if (ic && ic->impl) _panel_client.stop_helper (ic->id, helper_uuid); } static void slot_send_helper_event (IMEngineInstanceBase *si, const String &helper_uuid, const Transaction &trans) { GtkIMContextSCIM *ic = static_cast (si->get_frontend_data ()); SCIM_DEBUG_FRONTEND(1) << "slot_send_helper_event helper= " << helper_uuid << " context=" << (ic ? ic->id : -1) << " ic=" << ic << " ic-uuid=" << ((ic && ic->impl) ? ic->impl->si->get_factory_uuid () : "") << "...\n"; if (ic && ic->impl) _panel_client.send_helper_event (ic->id, helper_uuid, trans); } static bool slot_get_surrounding_text (IMEngineInstanceBase *si, WideString &text, int &cursor, int maxlen_before, int maxlen_after) { SCIM_DEBUG_FRONTEND(1) << "slot_get_surrounding_text ...\n"; GtkIMContextSCIM *ic = static_cast (si->get_frontend_data ()); if (ic && ic->impl && _focused_ic == ic) { gchar *surrounding; gint cursor_index; if (gtk_im_context_get_surrounding (GTK_IM_CONTEXT (_focused_ic), &surrounding, &cursor_index)) { SCIM_DEBUG_FRONTEND(2) << "Surrounding text: " << surrounding <<"\n"; SCIM_DEBUG_FRONTEND(2) << "Cursor Index : " << cursor_index <<"\n"; WideString before (utf8_mbstowcs (String (surrounding, surrounding + cursor_index))); WideString after (utf8_mbstowcs (String (surrounding + cursor_index))); if (maxlen_before > 0 && maxlen_before < before.length ()) before = WideString (before.begin () + (before.length () - maxlen_before), before.end ()); else if (maxlen_before == 0) before = WideString (); if (maxlen_after > 0 && maxlen_after < after.length ()) after = WideString (after.begin (), after.begin () + maxlen_after); else if (maxlen_after == 0) after = WideString (); text = before + after; cursor = before.length (); return true; } } return false; } static bool slot_delete_surrounding_text (IMEngineInstanceBase *si, int offset, int len) { SCIM_DEBUG_FRONTEND(1) << "slot_delete_surrounding_text ...\n"; GtkIMContextSCIM *ic = static_cast (si->get_frontend_data ()); if (ic && ic->impl && _focused_ic == ic) return gtk_im_context_delete_surrounding (GTK_IM_CONTEXT (_focused_ic), offset, len); return false; } static void reload_config_callback (const ConfigPointer &config) { SCIM_DEBUG_FRONTEND(1) << "reload_config_callback...\n"; _frontend_hotkey_matcher.load_hotkeys (config); _imengine_hotkey_matcher.load_hotkeys (config); KeyEvent key; scim_string_to_key (key, config->read (String (SCIM_CONFIG_HOTKEYS_FRONTEND_VALID_KEY_MASK), String ("Shift+Control+Alt+Lock"))); _valid_key_mask = (key.mask > 0)?(key.mask):0xFFFF; _valid_key_mask |= SCIM_KEY_ReleaseMask; // Special treatment for two backslash keys on jp106 keyboard. _valid_key_mask |= SCIM_KEY_QuirkKanaRoMask; _on_the_spot = config->read (String (SCIM_CONFIG_FRONTEND_ON_THE_SPOT), _on_the_spot); _shared_input_method = config->read (String (SCIM_CONFIG_FRONTEND_SHARED_INPUT_METHOD), _shared_input_method); _use_key_snooper = config->read (String (SCIM_CONFIG_FRONTEND_GTK_IMMODULE_USE_KEY_SNOOPER), _use_key_snooper); // Get keyboard layout setting // Flush the global config first, in order to load the new configs from disk. scim_global_config_flush (); _keyboard_layout = scim_get_default_keyboard_layout (); } static void fallback_commit_string_cb (IMEngineInstanceBase *si, const WideString &str) { if (_focused_ic && _focused_ic->impl) g_signal_emit_by_name (_focused_ic, "commit", utf8_wcstombs (str).c_str ()); } /* vi:ts=4:expandtab:nowrap */ scim-1.4.14/extras/gtk_immodule/gtkimcontextscim.h000066400000000000000000000032241177210725600223000ustar00rootroot00000000000000/** @file gtkimcontextscim.h * @brief immodule for GTK2/GTK3. */ /* * Smart Common Input Method * * Copyright (c) 2002-2005 James Su * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this program; if not, write to the * Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, MA 02111-1307 USA * * $Id: gtkimcontextscim.h,v 1.12 2005/06/27 15:31:49 suzhe Exp $ */ #ifndef __GTK_IM_CONTEXT_SCIM_H__ #define __GTK_IM_CONTEXT_SCIM_H__ #include typedef struct _GtkIMContextSCIM GtkIMContextSCIM; typedef struct _GtkIMContextSCIMClass GtkIMContextSCIMClass; typedef struct _GtkIMContextSCIMImpl GtkIMContextSCIMImpl; struct _GtkIMContextSCIM { GtkIMContext object; GtkIMContext *slave; bool slave_preedit; GtkIMContextSCIMImpl *impl; int id; /* Input Context id*/ }; struct _GtkIMContextSCIMClass { GtkIMContextClass parent_class; }; GtkIMContext *gtk_im_context_scim_new (void); void gtk_im_context_scim_register_type (GTypeModule *type_module); void gtk_im_context_scim_shutdown (void); #endif /* __GTK_IM_CONTEXT_SCIM_H__ */ scim-1.4.14/extras/gtk_immodule/im-scim.version-script000066400000000000000000000004301177210725600227760ustar00rootroot00000000000000IM_SCIM_1.0 { global: extern "C" { im_module_init; im_module_create; im_module_list; im_module_exit; }; local: extern "C++" { __gnu_cxx::*; std::*; *std::*_S_construct*; }; }; scim-1.4.14/extras/gtk_immodule/imscim.cpp000066400000000000000000000036371177210725600205300ustar00rootroot00000000000000/* Smart Common Input Method * * Copyright (c) 2002-2005 James Su * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #include #include #include "gtkimcontextscim.h" #include #include #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ static const GtkIMContextInfo scim_info = { "scim-orig", /* ID */ "SCIM Input Method (orig)", /* Human readable name */ "scim", /* Translation domain */ SCIM_LOCALEDIR, /* Dir for bindtextdomain (not strictly needed for "gtk+") */ "" /* Languages for which this module is the default */ }; static const GtkIMContextInfo *info_list[] = { &scim_info }; void im_module_init (GTypeModule *type_module) { gtk_im_context_scim_register_type (type_module); } void im_module_exit (void) { gtk_im_context_scim_shutdown (); } void im_module_list (const GtkIMContextInfo ***contexts, int *n_contexts) { *contexts = info_list; *n_contexts = G_N_ELEMENTS (info_list); } GtkIMContext * im_module_create (const gchar *context_id) { if (strcmp (context_id, "scim-orig") == 0) return gtk_im_context_scim_new (); else return NULL; } #ifdef __cplusplus } #endif /* __cplusplus */ scim-1.4.14/extras/immodules/000077500000000000000000000000001177210725600160505ustar00rootroot00000000000000scim-1.4.14/extras/immodules/AUTHORS000066400000000000000000000000571177210725600171220ustar00rootroot00000000000000Ryo Dairiki scim-1.4.14/extras/immodules/COPYING000066400000000000000000000002731177210725600171050ustar00rootroot00000000000000This package of scim-bridge is released under the dual license of GPL 2 and LGPL 2.1. Please read "LICENSE.GPL" or "LICENSE.LGPL" in the doc dir for the detailed info about each license. scim-1.4.14/extras/immodules/ChangeLog000066400000000000000000000203461177210725600176270ustar00rootroot000000000000002009-04-18 13:50 ryo-dairiki * configure.ac: - Prepare for 0.4.16 2009-03-09 16:08 ryo-dairiki * agent/scim-bridge-agent-accept-listener.cpp: - Fix an incorrect argument for accept() system call. 2009-02-14 16:23 ryo-dairiki * agent/scim-bridge-agent.cpp: - Apply "launching-order-of-x11-frontend" patch. 2009-02-14 16:18 ryo-dairiki * agent/scim-bridge-agent.cpp: - Now it respects ValidKeyMasks. 2009-02-03 14:37 ryo-dairiki * agent/scim-bridge-agent-imcontext.cpp: - Apply "fixes mis-ordered focus event for scim-bridge" patch. 2009-01-18 02:59 ryo-dairiki * agent/scim-bridge-agent.cpp: - Added "reduce memory footprint" patch again. 2009-01-17 17:29 ryo-dairiki * ABOUT-NLS, Makefile.am, agent/Makefile.am, agent/scim-bridge-agent-application.cpp, agent/scim-bridge-agent-imcontext.cpp, agent/scim-bridge-agent.cpp, agent/utils/scim-bridge-agent-panel-client.cpp, client-common/Makefile.am, client-gtk/Makefile.am, client-qt/qt3/Makefile.am, client-qt/qt4/Makefile.am, common/Makefile.am, common/intl.h, common/scim-bridge.h, configure.ac, doc/Makefile.am, intltool-extract.in, intltool-merge.in, intltool-update.in, po, tests/Makefile.am: - Upgrade configuration files. 2008-12-22 15:00 ryo-dairiki * ChangeLog, configure.ac: - Add "enable-all" option for configure script. 2008-12-20 02:38 ryo-dairiki * ChangeLog, Makefile.am, configure.ac, intl, m4: - Remove gettext support. 2008-12-20 02:26 ryo-dairiki * ABOUT-NLS, ChangeLog, Makefile.am, agent/scim-bridge-agent.cpp, bootstrap, config.rpath, configure.ac, m4/ChangeLog, m4/gettext.m4, m4/iconv.m4, m4/lib-link.m4, m4/po.m4: - Reve gettext support. 2008-12-20 01:17 ryo-dairiki * ChangeLog, agent/scim-bridge-agent.cpp, configure.ac: - Import "reduce scim-bridge virtual memory usage" patch. 2008-09-15 09:13 yurivict * ChangeLog, agent/scim-bridge-agent-output.cpp, agent/scim-bridge-agent.cpp, agent/utils/scim-bridge-agent-panel-client.cpp, client-common/scim-bridge-client-output.c, client-common/scim-bridge-client.c, client-gtk/scim-bridge-client-imcontext-gtk.c, client-qt/qt3/Makefile.am, client-qt/qt4/Makefile.am, common/intl.h, common/scim-bridge-attribute.c, common/scim-bridge-display.c, common/scim-bridge-key-event.c, common/scim-bridge-message.c, common/scim-bridge-messenger.c, common/scim-bridge-path.c, common/scim-bridge-string.h: Miscellaneous code portability fixes 2008-08-18 21:24 yurivict * ., .cdtproject, .cproject, .cvsignore, .project, .settings, .settings/org.eclipse.cdt.core.prefs, ABOUT-NLS, AUTHORS, COPYING, ChangeLog, INSTALL, Makefile.am, NEWS, README, agent, agent/.cvsignore, agent/Makefile.am, agent/scim-bridge-agent-accept-listener.cpp, agent/scim-bridge-agent-accept-listener.h, agent/scim-bridge-agent-application.cpp, agent/scim-bridge-agent-client-listener.cpp, agent/scim-bridge-agent-client-listener.h, agent/scim-bridge-agent-imcontext.cpp, agent/scim-bridge-agent-imcontext.h, agent/scim-bridge-agent-interruption-listener.cpp, agent/scim-bridge-agent-interruption-listener.h, agent/scim-bridge-agent-output.cpp, agent/scim-bridge-agent-panel-listener-protected.h, agent/scim-bridge-agent-panel-listener.cpp, agent/scim-bridge-agent-panel-listener.h, agent/scim-bridge-agent-protected.h, agent/scim-bridge-agent-signal-listener.cpp, agent/scim-bridge-agent-signal-listener.h, agent/scim-bridge-agent-socket-client.h, agent/scim-bridge-agent.cpp, agent/scim-bridge-agent.h, agent/utils, agent/utils/scim-bridge-agent-panel-client.cpp, agent/utils/scim-bridge-agent-panel-client.h, bootstrap, client-common, client-common/.cvsignore, client-common/Makefile.am, client-common/scim-bridge-client-debug.c, client-common/scim-bridge-client-imcontext.h, client-common/scim-bridge-client-output.c, client-common/scim-bridge-client-protected.h, client-common/scim-bridge-client.c, client-common/scim-bridge-client.h, client-gtk, client-gtk/.cvsignore, client-gtk/Makefile.am, client-gtk/im-scim-bridge-gtk.c, client-gtk/scim-bridge-client-gtk.c, client-gtk/scim-bridge-client-gtk.h, client-gtk/scim-bridge-client-imcontext-gtk.c, client-gtk/scim-bridge-client-imcontext-gtk.h, client-gtk/scim-bridge-client-key-event-utility-gtk.c, client-gtk/scim-bridge-client-key-event-utility-gtk.h, client-qt, client-qt/.cvsignore, client-qt/im-scim-bridge-qt.cpp, client-qt/qt3, client-qt/qt3/.cvsignore, client-qt/qt3/Makefile.am, client-qt/qt4, client-qt/qt4/.cvsignore, client-qt/qt4/Makefile.am, client-qt/scim-bridge-client-common-qt.h, client-qt/scim-bridge-client-imcontext-qt.cpp, client-qt/scim-bridge-client-imcontext-qt.h, client-qt/scim-bridge-client-key-event-utility-qt.cpp, client-qt/scim-bridge-client-key-event-utility-qt.h, client-qt/scim-bridge-client-qt.cpp, client-qt/scim-bridge-client-qt.h, common, common/.cvsignore, common/Makefile.am, common/intl.h, common/scim-bridge-attribute.c, common/scim-bridge-attribute.h, common/scim-bridge-debug.h, common/scim-bridge-display.c, common/scim-bridge-display.h, common/scim-bridge-imcontext.h, common/scim-bridge-key-code.h, common/scim-bridge-key-event.c, common/scim-bridge-key-event.h, common/scim-bridge-message-constant.h, common/scim-bridge-message.c, common/scim-bridge-message.h, common/scim-bridge-messenger.c, common/scim-bridge-messenger.h, common/scim-bridge-output.h, common/scim-bridge-path.c, common/scim-bridge-path.h, common/scim-bridge-string.c, common/scim-bridge-string.h, common/scim-bridge.h, config.rpath, configure.ac, cvs2cl.pl, developers, doc, doc/.cvsignore, doc/LICENSE.GPL, doc/LICENSE.LGPL, doc/Makefile.am, doc/api, doc/api/.cvsignore, doc/developer, doc/developer/client.html, doc/developer/imcontext.html, doc/developer/index.html, doc/developer/introduction.html, doc/developer/protocol.html, doc/document.css, doc/doxygen.conf, doc/icon, doc/icon/kasasagi.png, doc/icon/kasasagi.svg, doc/index.html, doc/tests, doc/tests/basic.txt, doc/tests/broken_clients.txt, doc/tests/fallback.txt, doc/tests/im_status.txt, doc/tests/launching.txt, doc/user, doc/user/index.html, intl, intl/.cvsignore, intl/ChangeLog, intl/Makefile.in, intl/VERSION, intl/bindtextdom.c, intl/config.charset, intl/dcgettext.c, intl/dcigettext.c, intl/dcngettext.c, intl/dgettext.c, intl/dngettext.c, intl/eval-plural.h, intl/explodename.c, intl/export.h, intl/finddomain.c, intl/gettext.c, intl/gettextP.h, intl/gmo.h, intl/hash-string.c, intl/hash-string.h, intl/intl-compat.c, intl/intl-exports.c, intl/l10nflist.c, intl/langprefs.c, intl/libgnuintl.h.in, intl/loadinfo.h, intl/loadmsgcat.c, intl/localcharset.c, intl/localcharset.h, intl/locale.alias, intl/localealias.c, intl/localename.c, intl/lock.c, intl/lock.h, intl/log.c, intl/ngettext.c, intl/os2compat.c, intl/os2compat.h, intl/osdep.c, intl/plural-exp.c, intl/plural-exp.h, intl/plural.c, intl/plural.y, intl/printf-args.c, intl/printf-args.h, intl/printf-parse.c, intl/printf-parse.h, intl/printf.c, intl/ref-add.sin, intl/ref-del.sin, intl/relocatable.c, intl/relocatable.h, intl/textdomain.c, intl/vasnprintf.c, intl/vasnprintf.h, intl/vasnwprintf.h, intl/version.c, intl/wprintf-parse.h, intl/xsize.h, intltool-extract.in, intltool-merge.in, intltool-update.in, m4, m4/ChangeLog, m4/codeset.m4, m4/gettext.m4, m4/glibc2.m4, m4/glibc21.m4, m4/iconv.m4, m4/intdiv0.m4, m4/intl.m4, m4/intldir.m4, m4/intmax.m4, m4/inttypes-pri.m4, m4/inttypes_h.m4, m4/lcmessage.m4, m4/lib-ld.m4, m4/lib-link.m4, m4/lib-prefix.m4, m4/lock.m4, m4/longdouble.m4, m4/longlong.m4, m4/nls.m4, m4/po.m4, m4/printf-posix.m4, m4/progtest.m4, m4/size_max.m4, m4/stdint_h.m4, m4/uintmax_t.m4, m4/ulonglong.m4, m4/visibility.m4, m4/wchar_t.m4, m4/wint_t.m4, m4/xsize.m4, po, po/.cvsignore, po/ChangeLog, po/Makefile.in.in, po/Makevars, po/POTFILES.in, po/Rules-quot, po/boldquot.sed, po/en@boldquot.header, po/en@quot.header, po/insert-header.sin, po/quot.sed, po/remove-potcdate.sed, po/remove-potcdate.sin, po/scim.pot, po/stamp-po, tests, tests/.cvsignore, tests/Makefile.am, tests/gtk.immodules.in, tests/test-exec.sh.in: Initial import from CVS HEAD. scim-1.4.14/extras/immodules/INSTALL000066400000000000000000000224411177210725600171040ustar00rootroot00000000000000Installation Instructions ************************* Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free Software Foundation, Inc. tesuto This file is free documentation; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. Basic Installation ================== These are generic installation instructions. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that you can run in the future to recreate the current configuration, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). It can also use an optional file (typically called `config.cache' and enabled with `--cache-file=config.cache' or simply `-C') that saves the results of its tests to speed up reconfiguring. (Caching is disabled by default to prevent problems with accidental use of stale cache files.) If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can be considered for the next release. If you are using the cache, and at some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.ac' (or `configure.in') is used to create `configure' by a program called `autoconf'. You only need `configure.ac' if you want to change it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. If you're using `csh' on an old version of System V, you might need to type `sh ./configure' instead to prevent `csh' from trying to execute `configure' itself. Running `configure' takes awhile. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with the package. 4. Type `make install' to install the programs and any data files and documentation. 5. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is also a `make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the `configure' script does not know about. Run `./configure --help' for details on some of the pertinent environment variables. You can give `configure' initial values for configuration parameters by setting variables in the command line or in the environment. Here is an example: ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix *Note Defining Variables::, for more details. Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you must use a version of `make' that supports the `VPATH' variable, such as GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. If you have to use a `make' that does not support the `VPATH' variable, you have to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use `make distclean' before reconfiguring for another architecture. Installation Names ================== By default, `make install' installs the package's commands under `/usr/local/bin', include files under `/usr/local/include', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PREFIX'. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you pass the option `--exec-prefix=PREFIX' to `configure', the package uses PREFIX as the prefix for installing programs and libraries. Documentation and other data files still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=DIR' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories you can set and what kinds of files go in them. If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. Optional Features ================= Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The `README' should mention any `--enable-' and `--with-' options that the package recognizes. For packages that use the X Window System, `configure' can usually find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. Specifying the System Type ========================== There may be some features `configure' cannot figure out automatically, but needs to determine by the type of machine the package will run on. Usually, assuming the package is built to be run on the _same_ architectures, `configure' can figure that out, but if it prints a message saying it cannot guess the machine type, give it the `--build=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name which has the form: CPU-COMPANY-SYSTEM where SYSTEM can have one of these forms: OS KERNEL-OS See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't need to know the machine type. If you are _building_ compiler tools for cross-compiling, you should use the option `--target=TYPE' to select the type of system they will produce code for. If you want to _use_ a cross compiler, that generates code for a platform different from the build platform, you should specify the "host" platform (i.e., that on which the generated programs will eventually be run) with `--host=TYPE'. Sharing Defaults ================ If you want to set default values for `configure' scripts to share, you can create a site shell script called `config.site' that gives default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. A warning: not all `configure' scripts look for a site script. Defining Variables ================== Variables not defined in a site shell script can be set in the environment passed to `configure'. However, some packages may run configure again during the build, and the customized values of these variables may be lost. In order to avoid this problem, you should set them in the `configure' command line, using `VAR=value'. For example: ./configure CC=/usr/local2/bin/gcc causes the specified `gcc' to be used as the C compiler (unless it is overridden in the site shell script). Here is a another example: /bin/bash ./configure CONFIG_SHELL=/bin/bash Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent configuration-related scripts to be executed by `/bin/bash'. `configure' Invocation ====================== `configure' recognizes the following options to control how it operates. `--help' `-h' Print a summary of the options to `configure', and exit. `--version' `-V' Print the version of Autoconf used to generate the `configure' script, and exit. `--cache-file=FILE' Enable the cache: use and save the results of the tests in FILE, traditionally `config.cache'. FILE defaults to `/dev/null' to disable caching. `--config-cache' `-C' Alias for `--cache-file=config.cache'. `--quiet' `--silent' `-q' Do not print messages saying which checks are being made. To suppress all normal output, redirect it to `/dev/null' (any error messages will still be shown). `--srcdir=DIR' Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. `configure' also accepts some other, not widely useful, options. Run `configure --help' for more details. scim-1.4.14/extras/immodules/Makefile.am000066400000000000000000000030061177210725600201030ustar00rootroot00000000000000## Makefile.am -- Process this file with automake to produce Makefile.in ## ## Copyright (C) 2006 Ryo Dairiki ## ## ## This library is free software; you can redistribute it and/or ## modify it under the terms of the GNU Lesser General Public ## License as published by the Free Software Foundation and ## appearing in the file LICENSE.LGPL included in the package of this file. ## You can also redistribute it and/or modify it under the terms of ## the GNU General Public License as published by the Free Software Foundation and ## appearing in the file LICENSE.GPL included in the package of this file. ## ## This library is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ## @start 1 #AUX_DIST = $(ac_aux_dir)/config.guess \ # $(ac_aux_dir)/config.sub \ # $(ac_aux_dir)/install-sh \ # $(ac_aux_dir)/ltconfig \ # $(ac_aux_dir)/ltmain.sh \ # $(ac_aux_dir)/missing \ # $(ac_aux_dir)/depcomp # #EXTRA_DIST = config.rpath bootstrap # #AUTOMAKE_OPTIONS = gnu #SUBDIRS = common client-common client-gtk/gtk2 client-gtk/gtk3 client-qt/qt3 client-qt/qt4 client-clutter agent tests doc ## @start 1 #MAINTAINERCLEANFILES = Makefile.in aclocal.m4 configure config.h.in $(AUX_DIST) #CLEANFILES = *.bak src/*.bak MAINTAINERCLEANFILES = Makefile.in CLEANFILES = *.bak SUBDIRS = common client-common client-gtk/gtk2 client-gtk/gtk3 client-qt/qt3 client-qt/qt4 client-clutter agent doc scim-1.4.14/extras/immodules/Makefile.in000066400000000000000000000540571177210725600201300ustar00rootroot00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ #AUX_DIST = $(ac_aux_dir)/config.guess \ # $(ac_aux_dir)/config.sub \ # $(ac_aux_dir)/install-sh \ # $(ac_aux_dir)/ltconfig \ # $(ac_aux_dir)/ltmain.sh \ # $(ac_aux_dir)/missing \ # $(ac_aux_dir)/depcomp # #EXTRA_DIST = config.rpath bootstrap # #AUTOMAKE_OPTIONS = gnu #SUBDIRS = common client-common client-gtk/gtk2 client-gtk/gtk3 client-qt/qt3 client-qt/qt4 client-clutter agent tests doc #MAINTAINERCLEANFILES = Makefile.in aclocal.m4 configure config.h.in $(AUX_DIST) #CLEANFILES = *.bak src/*.bak VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = extras/immodules DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ AUTHORS COPYING ChangeLog INSTALL NEWS config.rpath ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ ARGZ_H = @ARGZ_H@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CLUTTER_BINARY_VERSION = @CLUTTER_BINARY_VERSION@ CLUTTER_CFLAGS = @CLUTTER_CFLAGS@ CLUTTER_IMCONTEXT_LIBDIR = @CLUTTER_IMCONTEXT_LIBDIR@ CLUTTER_IM_MODULEDIR = @CLUTTER_IM_MODULEDIR@ CLUTTER_LIBDIR = @CLUTTER_LIBDIR@ CLUTTER_LIBS = @CLUTTER_LIBS@ CLUTTER_VERSION = @CLUTTER_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOCBOOK_XSL = @DOCBOOK_XSL@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@ GTHREAD2_LIBS = @GTHREAD2_LIBS@ GTK2_CFLAGS = @GTK2_CFLAGS@ GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@ GTK2_LIBS = @GTK2_LIBS@ GTK3_CFLAGS = @GTK3_CFLAGS@ GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@ GTK3_LIBS = @GTK3_LIBS@ GTK_BINARY_VERSION = @GTK_BINARY_VERSION@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBDIR = @GTK_LIBDIR@ GTK_LIBS = @GTK_LIBS@ GTK_MAJOR_VERSION = @GTK_MAJOR_VERSION@ GTK_VERSION = @GTK_VERSION@ HAVE_GRAPHVIZ = @HAVE_GRAPHVIZ@ INCLTDL = @INCLTDL@ INCLUDE_STDINT = @INCLUDE_STDINT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBLTDL = @LIBLTDL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_DEPS = @LIBTOOL_DEPS@ LIBTOOL_EXPORT_OPTIONS = @LIBTOOL_EXPORT_OPTIONS@ LIPO = @LIPO@ LN_S = @LN_S@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ QT3_CFLAGS = @QT3_CFLAGS@ QT3_IM_MODULEDIR = @QT3_IM_MODULEDIR@ QT3_LIBDIR = @QT3_LIBDIR@ QT3_LIBS = @QT3_LIBS@ QT3_MOC = @QT3_MOC@ QT3_PREFIX = @QT3_PREFIX@ QT4_CFLAGS = @QT4_CFLAGS@ QT4_IM_MODULEDIR = @QT4_IM_MODULEDIR@ QT4_LIBDIR = @QT4_LIBDIR@ QT4_LIBS = @QT4_LIBS@ QT4_MOC = @QT4_MOC@ QT4_PREFIX = @QT4_PREFIX@ RANLIB = @RANLIB@ SCIM_AGE = @SCIM_AGE@ SCIM_BINARY_VERSION = @SCIM_BINARY_VERSION@ SCIM_BRIDGE_MAJOR_VERSION = @SCIM_BRIDGE_MAJOR_VERSION@ SCIM_BRIDGE_MICRO_VERSION = @SCIM_BRIDGE_MICRO_VERSION@ SCIM_BRIDGE_MINOR_VERSION = @SCIM_BRIDGE_MINOR_VERSION@ SCIM_BRIDGE_VERSION = @SCIM_BRIDGE_VERSION@ SCIM_BUILD_CLUTTER_IMMODULE = @SCIM_BUILD_CLUTTER_IMMODULE@ SCIM_BUILD_CONFIG_SIMPLE = @SCIM_BUILD_CONFIG_SIMPLE@ SCIM_BUILD_CONFIG_SOCKET = @SCIM_BUILD_CONFIG_SOCKET@ SCIM_BUILD_DOCUMENTS = @SCIM_BUILD_DOCUMENTS@ SCIM_BUILD_FILTER_SCTC = @SCIM_BUILD_FILTER_SCTC@ SCIM_BUILD_FRONTEND_SOCKET = @SCIM_BUILD_FRONTEND_SOCKET@ SCIM_BUILD_FRONTEND_X11 = @SCIM_BUILD_FRONTEND_X11@ SCIM_BUILD_GTK2_IMMODULE = @SCIM_BUILD_GTK2_IMMODULE@ SCIM_BUILD_GTK3_IMMODULE = @SCIM_BUILD_GTK3_IMMODULE@ SCIM_BUILD_GTK_UTILS = @SCIM_BUILD_GTK_UTILS@ SCIM_BUILD_IMENGINE_RAWCODE = @SCIM_BUILD_IMENGINE_RAWCODE@ SCIM_BUILD_IMENGINE_SOCKET = @SCIM_BUILD_IMENGINE_SOCKET@ SCIM_BUILD_IMENGINE_TABLE = @SCIM_BUILD_IMENGINE_TABLE@ SCIM_BUILD_IMMODULE = @SCIM_BUILD_IMMODULE@ SCIM_BUILD_IM_AGENT = @SCIM_BUILD_IM_AGENT@ SCIM_BUILD_ORIG_GTK2_IMMODULE = @SCIM_BUILD_ORIG_GTK2_IMMODULE@ SCIM_BUILD_ORIG_GTK3_IMMODULE = @SCIM_BUILD_ORIG_GTK3_IMMODULE@ SCIM_BUILD_PANEL_GTK = @SCIM_BUILD_PANEL_GTK@ SCIM_BUILD_QT3_IMMODULE = @SCIM_BUILD_QT3_IMMODULE@ SCIM_BUILD_QT4_IMMODULE = @SCIM_BUILD_QT4_IMMODULE@ SCIM_BUILD_SCIM_SETUP = @SCIM_BUILD_SCIM_SETUP@ SCIM_BUILD_TESTS = @SCIM_BUILD_TESTS@ SCIM_BUILD_X11_UTILS = @SCIM_BUILD_X11_UTILS@ SCIM_CURRENT = @SCIM_CURRENT@ SCIM_DATADIR = @SCIM_DATADIR@ SCIM_EPOCH = @SCIM_EPOCH@ SCIM_ICONDIR = @SCIM_ICONDIR@ SCIM_LIBDIR = @SCIM_LIBDIR@ SCIM_LIBEXECDIR = @SCIM_LIBEXECDIR@ SCIM_LOCALEDIR = @SCIM_LOCALEDIR@ SCIM_LTDLADVISE = @SCIM_LTDLADVISE@ SCIM_MAJOR_VERSION = @SCIM_MAJOR_VERSION@ SCIM_MICRO_VERSION = @SCIM_MICRO_VERSION@ SCIM_MINOR_VERSION = @SCIM_MINOR_VERSION@ SCIM_MODULE_PATH = @SCIM_MODULE_PATH@ SCIM_PREFIX = @SCIM_PREFIX@ SCIM_REVISION = @SCIM_REVISION@ SCIM_SYSCONFDIR = @SCIM_SYSCONFDIR@ SCIM_TEMPDIR = @SCIM_TEMPDIR@ SCIM_VERSION = @SCIM_VERSION@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UINT16 = @UINT16@ UINT32 = @UINT32@ UINT64 = @UINT64@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XMKMF = @XMKMF@ XSLTPROC = @XSLTPROC@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_aux_dir = @ac_aux_dir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ MAINTAINERCLEANFILES = Makefile.in CLEANFILES = *.bak SUBDIRS = common client-common client-gtk/gtk2 client-gtk/gtk3 client-qt/qt3 client-qt/qt4 client-clutter agent doc all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu extras/immodules/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu extras/immodules/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ ctags ctags-recursive distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: scim-1.4.14/extras/immodules/NEWS000066400000000000000000000000001177210725600165350ustar00rootroot00000000000000scim-1.4.14/extras/immodules/README000066400000000000000000000000001177210725600167160ustar00rootroot00000000000000scim-1.4.14/extras/immodules/agent/000077500000000000000000000000001177210725600171465ustar00rootroot00000000000000scim-1.4.14/extras/immodules/agent/Makefile.am000066400000000000000000000054141177210725600212060ustar00rootroot00000000000000## Makefile.am -- Process this file with automake to produce Makefile.in ## ## Copyright (C) 2006 Ryo Dairiki ## ## ## This library is free software; you can redistribute it and/or ## modify it under the terms of the GNU Lesser General Public ## License as published by the Free Software Foundation and ## appearing in the file LICENSE.LGPL included in the package of this file. ## You can also redistribute it and/or modify it under the terms of ## the GNU General Public License as published by the Free Software Foundation and ## appearing in the file LICENSE.GPL included in the package of this file. ## ## This library is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. if SCIM_BUILD_IM_AGENT INCLUDES = -I$(top_srcdir) \ -I$(top_srcdir)/src \ -I$(top_srcdir)/extras/immodules/common \ -DSCIM_LOCALEDIR=\"@SCIM_LOCALEDIR@\" \ -DSCIM_ICONDIR=\"@SCIM_ICONDIR@\" \ -DSCIM_KEYBOARD_ICON_FILE=\"@SCIM_ICONDIR@/keyboard.png\" \ -DSCIM_LIBEXECDIR=\"@SCIM_LIBEXECDIR@\" \ -DSCIM_VERSION=\"@SCIM_VERSION@\" \ -DGETTEXT_PACKAGE=\"@GETTEXT_PACKAGE@\" noinst_HEADERS = scim-bridge-agent.h \ scim-bridge-agent-protected.h \ scim-bridge-agent-client-listener.h \ scim-bridge-agent-imcontext.h \ scim-bridge-agent-interruption-listener.h \ scim-bridge-agent-panel-listener.h \ scim-bridge-agent-panel-listener-protected.h \ scim-bridge-agent-signal-listener.h \ scim-bridge-agent-accept-listener.h \ scim-bridge-agent-socket-client.h \ utils/scim-bridge-agent-panel-client.h bin_PROGRAMS = scim-im-agent scim_im_agent_SOURCES = scim-bridge-agent-application.cpp \ scim-bridge-agent.cpp \ scim-bridge-agent-client-listener.cpp \ scim-bridge-agent-imcontext.cpp \ scim-bridge-agent-interruption-listener.cpp \ scim-bridge-agent-output.cpp \ scim-bridge-agent-panel-listener.cpp \ scim-bridge-agent-signal-listener.cpp \ scim-bridge-agent-accept-listener.cpp \ utils/scim-bridge-agent-panel-client.cpp #scim_bridge_CFLAGS = @SCIM_CFLAGS@ #scim_bridge_CXXFLAGS = @SCIM_CFLAGS@ #scim_bridge_LDFLAGS = @SCIM_LIBS@ scim_im_agent_LDADD = $(top_builddir)/extras/immodules/common/libscimbridgecommon.la \ $(top_builddir)/src/libscim@SCIM_EPOCH@.la endif MAINTAINERCLEANFILES = Makefile.in scim-1.4.14/extras/immodules/agent/Makefile.in000066400000000000000000000701451177210725600212220ustar00rootroot00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ @SCIM_BUILD_IM_AGENT_TRUE@bin_PROGRAMS = scim-im-agent$(EXEEXT) subdir = extras/immodules/agent DIST_COMMON = $(am__noinst_HEADERS_DIST) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" PROGRAMS = $(bin_PROGRAMS) am__scim_im_agent_SOURCES_DIST = scim-bridge-agent-application.cpp \ scim-bridge-agent.cpp scim-bridge-agent-client-listener.cpp \ scim-bridge-agent-imcontext.cpp \ scim-bridge-agent-interruption-listener.cpp \ scim-bridge-agent-output.cpp \ scim-bridge-agent-panel-listener.cpp \ scim-bridge-agent-signal-listener.cpp \ scim-bridge-agent-accept-listener.cpp \ utils/scim-bridge-agent-panel-client.cpp @SCIM_BUILD_IM_AGENT_TRUE@am_scim_im_agent_OBJECTS = scim-bridge-agent-application.$(OBJEXT) \ @SCIM_BUILD_IM_AGENT_TRUE@ scim-bridge-agent.$(OBJEXT) \ @SCIM_BUILD_IM_AGENT_TRUE@ scim-bridge-agent-client-listener.$(OBJEXT) \ @SCIM_BUILD_IM_AGENT_TRUE@ scim-bridge-agent-imcontext.$(OBJEXT) \ @SCIM_BUILD_IM_AGENT_TRUE@ scim-bridge-agent-interruption-listener.$(OBJEXT) \ @SCIM_BUILD_IM_AGENT_TRUE@ scim-bridge-agent-output.$(OBJEXT) \ @SCIM_BUILD_IM_AGENT_TRUE@ scim-bridge-agent-panel-listener.$(OBJEXT) \ @SCIM_BUILD_IM_AGENT_TRUE@ scim-bridge-agent-signal-listener.$(OBJEXT) \ @SCIM_BUILD_IM_AGENT_TRUE@ scim-bridge-agent-accept-listener.$(OBJEXT) \ @SCIM_BUILD_IM_AGENT_TRUE@ scim-bridge-agent-panel-client.$(OBJEXT) scim_im_agent_OBJECTS = $(am_scim_im_agent_OBJECTS) @SCIM_BUILD_IM_AGENT_TRUE@scim_im_agent_DEPENDENCIES = $(top_builddir)/extras/immodules/common/libscimbridgecommon.la \ @SCIM_BUILD_IM_AGENT_TRUE@ $(top_builddir)/src/libscim@SCIM_EPOCH@.la DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(scim_im_agent_SOURCES) DIST_SOURCES = $(am__scim_im_agent_SOURCES_DIST) am__noinst_HEADERS_DIST = scim-bridge-agent.h \ scim-bridge-agent-protected.h \ scim-bridge-agent-client-listener.h \ scim-bridge-agent-imcontext.h \ scim-bridge-agent-interruption-listener.h \ scim-bridge-agent-panel-listener.h \ scim-bridge-agent-panel-listener-protected.h \ scim-bridge-agent-signal-listener.h \ scim-bridge-agent-accept-listener.h \ scim-bridge-agent-socket-client.h \ utils/scim-bridge-agent-panel-client.h HEADERS = $(noinst_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ ARGZ_H = @ARGZ_H@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CLUTTER_BINARY_VERSION = @CLUTTER_BINARY_VERSION@ CLUTTER_CFLAGS = @CLUTTER_CFLAGS@ CLUTTER_IMCONTEXT_LIBDIR = @CLUTTER_IMCONTEXT_LIBDIR@ CLUTTER_IM_MODULEDIR = @CLUTTER_IM_MODULEDIR@ CLUTTER_LIBDIR = @CLUTTER_LIBDIR@ CLUTTER_LIBS = @CLUTTER_LIBS@ CLUTTER_VERSION = @CLUTTER_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOCBOOK_XSL = @DOCBOOK_XSL@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@ GTHREAD2_LIBS = @GTHREAD2_LIBS@ GTK2_CFLAGS = @GTK2_CFLAGS@ GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@ GTK2_LIBS = @GTK2_LIBS@ GTK3_CFLAGS = @GTK3_CFLAGS@ GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@ GTK3_LIBS = @GTK3_LIBS@ GTK_BINARY_VERSION = @GTK_BINARY_VERSION@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBDIR = @GTK_LIBDIR@ GTK_LIBS = @GTK_LIBS@ GTK_MAJOR_VERSION = @GTK_MAJOR_VERSION@ GTK_VERSION = @GTK_VERSION@ HAVE_GRAPHVIZ = @HAVE_GRAPHVIZ@ INCLTDL = @INCLTDL@ INCLUDE_STDINT = @INCLUDE_STDINT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBLTDL = @LIBLTDL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_DEPS = @LIBTOOL_DEPS@ LIBTOOL_EXPORT_OPTIONS = @LIBTOOL_EXPORT_OPTIONS@ LIPO = @LIPO@ LN_S = @LN_S@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ QT3_CFLAGS = @QT3_CFLAGS@ QT3_IM_MODULEDIR = @QT3_IM_MODULEDIR@ QT3_LIBDIR = @QT3_LIBDIR@ QT3_LIBS = @QT3_LIBS@ QT3_MOC = @QT3_MOC@ QT3_PREFIX = @QT3_PREFIX@ QT4_CFLAGS = @QT4_CFLAGS@ QT4_IM_MODULEDIR = @QT4_IM_MODULEDIR@ QT4_LIBDIR = @QT4_LIBDIR@ QT4_LIBS = @QT4_LIBS@ QT4_MOC = @QT4_MOC@ QT4_PREFIX = @QT4_PREFIX@ RANLIB = @RANLIB@ SCIM_AGE = @SCIM_AGE@ SCIM_BINARY_VERSION = @SCIM_BINARY_VERSION@ SCIM_BRIDGE_MAJOR_VERSION = @SCIM_BRIDGE_MAJOR_VERSION@ SCIM_BRIDGE_MICRO_VERSION = @SCIM_BRIDGE_MICRO_VERSION@ SCIM_BRIDGE_MINOR_VERSION = @SCIM_BRIDGE_MINOR_VERSION@ SCIM_BRIDGE_VERSION = @SCIM_BRIDGE_VERSION@ SCIM_BUILD_CLUTTER_IMMODULE = @SCIM_BUILD_CLUTTER_IMMODULE@ SCIM_BUILD_CONFIG_SIMPLE = @SCIM_BUILD_CONFIG_SIMPLE@ SCIM_BUILD_CONFIG_SOCKET = @SCIM_BUILD_CONFIG_SOCKET@ SCIM_BUILD_DOCUMENTS = @SCIM_BUILD_DOCUMENTS@ SCIM_BUILD_FILTER_SCTC = @SCIM_BUILD_FILTER_SCTC@ SCIM_BUILD_FRONTEND_SOCKET = @SCIM_BUILD_FRONTEND_SOCKET@ SCIM_BUILD_FRONTEND_X11 = @SCIM_BUILD_FRONTEND_X11@ SCIM_BUILD_GTK2_IMMODULE = @SCIM_BUILD_GTK2_IMMODULE@ SCIM_BUILD_GTK3_IMMODULE = @SCIM_BUILD_GTK3_IMMODULE@ SCIM_BUILD_GTK_UTILS = @SCIM_BUILD_GTK_UTILS@ SCIM_BUILD_IMENGINE_RAWCODE = @SCIM_BUILD_IMENGINE_RAWCODE@ SCIM_BUILD_IMENGINE_SOCKET = @SCIM_BUILD_IMENGINE_SOCKET@ SCIM_BUILD_IMENGINE_TABLE = @SCIM_BUILD_IMENGINE_TABLE@ SCIM_BUILD_IMMODULE = @SCIM_BUILD_IMMODULE@ SCIM_BUILD_IM_AGENT = @SCIM_BUILD_IM_AGENT@ SCIM_BUILD_ORIG_GTK2_IMMODULE = @SCIM_BUILD_ORIG_GTK2_IMMODULE@ SCIM_BUILD_ORIG_GTK3_IMMODULE = @SCIM_BUILD_ORIG_GTK3_IMMODULE@ SCIM_BUILD_PANEL_GTK = @SCIM_BUILD_PANEL_GTK@ SCIM_BUILD_QT3_IMMODULE = @SCIM_BUILD_QT3_IMMODULE@ SCIM_BUILD_QT4_IMMODULE = @SCIM_BUILD_QT4_IMMODULE@ SCIM_BUILD_SCIM_SETUP = @SCIM_BUILD_SCIM_SETUP@ SCIM_BUILD_TESTS = @SCIM_BUILD_TESTS@ SCIM_BUILD_X11_UTILS = @SCIM_BUILD_X11_UTILS@ SCIM_CURRENT = @SCIM_CURRENT@ SCIM_DATADIR = @SCIM_DATADIR@ SCIM_EPOCH = @SCIM_EPOCH@ SCIM_ICONDIR = @SCIM_ICONDIR@ SCIM_LIBDIR = @SCIM_LIBDIR@ SCIM_LIBEXECDIR = @SCIM_LIBEXECDIR@ SCIM_LOCALEDIR = @SCIM_LOCALEDIR@ SCIM_LTDLADVISE = @SCIM_LTDLADVISE@ SCIM_MAJOR_VERSION = @SCIM_MAJOR_VERSION@ SCIM_MICRO_VERSION = @SCIM_MICRO_VERSION@ SCIM_MINOR_VERSION = @SCIM_MINOR_VERSION@ SCIM_MODULE_PATH = @SCIM_MODULE_PATH@ SCIM_PREFIX = @SCIM_PREFIX@ SCIM_REVISION = @SCIM_REVISION@ SCIM_SYSCONFDIR = @SCIM_SYSCONFDIR@ SCIM_TEMPDIR = @SCIM_TEMPDIR@ SCIM_VERSION = @SCIM_VERSION@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UINT16 = @UINT16@ UINT32 = @UINT32@ UINT64 = @UINT64@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XMKMF = @XMKMF@ XSLTPROC = @XSLTPROC@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_aux_dir = @ac_aux_dir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @SCIM_BUILD_IM_AGENT_TRUE@INCLUDES = -I$(top_srcdir) \ @SCIM_BUILD_IM_AGENT_TRUE@ -I$(top_srcdir)/src \ @SCIM_BUILD_IM_AGENT_TRUE@ -I$(top_srcdir)/extras/immodules/common \ @SCIM_BUILD_IM_AGENT_TRUE@ -DSCIM_LOCALEDIR=\"@SCIM_LOCALEDIR@\" \ @SCIM_BUILD_IM_AGENT_TRUE@ -DSCIM_ICONDIR=\"@SCIM_ICONDIR@\" \ @SCIM_BUILD_IM_AGENT_TRUE@ -DSCIM_KEYBOARD_ICON_FILE=\"@SCIM_ICONDIR@/keyboard.png\" \ @SCIM_BUILD_IM_AGENT_TRUE@ -DSCIM_LIBEXECDIR=\"@SCIM_LIBEXECDIR@\" \ @SCIM_BUILD_IM_AGENT_TRUE@ -DSCIM_VERSION=\"@SCIM_VERSION@\" \ @SCIM_BUILD_IM_AGENT_TRUE@ -DGETTEXT_PACKAGE=\"@GETTEXT_PACKAGE@\" @SCIM_BUILD_IM_AGENT_TRUE@noinst_HEADERS = scim-bridge-agent.h \ @SCIM_BUILD_IM_AGENT_TRUE@ scim-bridge-agent-protected.h \ @SCIM_BUILD_IM_AGENT_TRUE@ scim-bridge-agent-client-listener.h \ @SCIM_BUILD_IM_AGENT_TRUE@ scim-bridge-agent-imcontext.h \ @SCIM_BUILD_IM_AGENT_TRUE@ scim-bridge-agent-interruption-listener.h \ @SCIM_BUILD_IM_AGENT_TRUE@ scim-bridge-agent-panel-listener.h \ @SCIM_BUILD_IM_AGENT_TRUE@ scim-bridge-agent-panel-listener-protected.h \ @SCIM_BUILD_IM_AGENT_TRUE@ scim-bridge-agent-signal-listener.h \ @SCIM_BUILD_IM_AGENT_TRUE@ scim-bridge-agent-accept-listener.h \ @SCIM_BUILD_IM_AGENT_TRUE@ scim-bridge-agent-socket-client.h \ @SCIM_BUILD_IM_AGENT_TRUE@ utils/scim-bridge-agent-panel-client.h @SCIM_BUILD_IM_AGENT_TRUE@scim_im_agent_SOURCES = scim-bridge-agent-application.cpp \ @SCIM_BUILD_IM_AGENT_TRUE@ scim-bridge-agent.cpp \ @SCIM_BUILD_IM_AGENT_TRUE@ scim-bridge-agent-client-listener.cpp \ @SCIM_BUILD_IM_AGENT_TRUE@ scim-bridge-agent-imcontext.cpp \ @SCIM_BUILD_IM_AGENT_TRUE@ scim-bridge-agent-interruption-listener.cpp \ @SCIM_BUILD_IM_AGENT_TRUE@ scim-bridge-agent-output.cpp \ @SCIM_BUILD_IM_AGENT_TRUE@ scim-bridge-agent-panel-listener.cpp \ @SCIM_BUILD_IM_AGENT_TRUE@ scim-bridge-agent-signal-listener.cpp \ @SCIM_BUILD_IM_AGENT_TRUE@ scim-bridge-agent-accept-listener.cpp \ @SCIM_BUILD_IM_AGENT_TRUE@ utils/scim-bridge-agent-panel-client.cpp #scim_bridge_CFLAGS = @SCIM_CFLAGS@ #scim_bridge_CXXFLAGS = @SCIM_CFLAGS@ #scim_bridge_LDFLAGS = @SCIM_LIBS@ @SCIM_BUILD_IM_AGENT_TRUE@scim_im_agent_LDADD = $(top_builddir)/extras/immodules/common/libscimbridgecommon.la \ @SCIM_BUILD_IM_AGENT_TRUE@ $(top_builddir)/src/libscim@SCIM_EPOCH@.la MAINTAINERCLEANFILES = Makefile.in all: all-am .SUFFIXES: .SUFFIXES: .cpp .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu extras/immodules/agent/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu extras/immodules/agent/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p || test -f $$p1; \ then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list scim-im-agent$(EXEEXT): $(scim_im_agent_OBJECTS) $(scim_im_agent_DEPENDENCIES) @rm -f scim-im-agent$(EXEEXT) $(CXXLINK) $(scim_im_agent_OBJECTS) $(scim_im_agent_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim-bridge-agent-accept-listener.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim-bridge-agent-application.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim-bridge-agent-client-listener.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim-bridge-agent-imcontext.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim-bridge-agent-interruption-listener.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim-bridge-agent-output.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim-bridge-agent-panel-client.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim-bridge-agent-panel-listener.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim-bridge-agent-signal-listener.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim-bridge-agent.Po@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cpp.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cpp.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< scim-bridge-agent-panel-client.o: utils/scim-bridge-agent-panel-client.cpp @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT scim-bridge-agent-panel-client.o -MD -MP -MF $(DEPDIR)/scim-bridge-agent-panel-client.Tpo -c -o scim-bridge-agent-panel-client.o `test -f 'utils/scim-bridge-agent-panel-client.cpp' || echo '$(srcdir)/'`utils/scim-bridge-agent-panel-client.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/scim-bridge-agent-panel-client.Tpo $(DEPDIR)/scim-bridge-agent-panel-client.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/scim-bridge-agent-panel-client.cpp' object='scim-bridge-agent-panel-client.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o scim-bridge-agent-panel-client.o `test -f 'utils/scim-bridge-agent-panel-client.cpp' || echo '$(srcdir)/'`utils/scim-bridge-agent-panel-client.cpp scim-bridge-agent-panel-client.obj: utils/scim-bridge-agent-panel-client.cpp @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT scim-bridge-agent-panel-client.obj -MD -MP -MF $(DEPDIR)/scim-bridge-agent-panel-client.Tpo -c -o scim-bridge-agent-panel-client.obj `if test -f 'utils/scim-bridge-agent-panel-client.cpp'; then $(CYGPATH_W) 'utils/scim-bridge-agent-panel-client.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/scim-bridge-agent-panel-client.cpp'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/scim-bridge-agent-panel-client.Tpo $(DEPDIR)/scim-bridge-agent-panel-client.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='utils/scim-bridge-agent-panel-client.cpp' object='scim-bridge-agent-panel-client.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o scim-bridge-agent-panel-client.obj `if test -f 'utils/scim-bridge-agent-panel-client.cpp'; then $(CYGPATH_W) 'utils/scim-bridge-agent-panel-client.cpp'; else $(CYGPATH_W) '$(srcdir)/utils/scim-bridge-agent-panel-client.cpp'; fi` mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) $(HEADERS) installdirs: for dir in "$(DESTDIR)$(bindir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binPROGRAMS install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ clean-generic clean-libtool ctags distclean distclean-compile \ distclean-generic distclean-libtool distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-binPROGRAMS install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am \ uninstall-binPROGRAMS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: scim-1.4.14/extras/immodules/agent/scim-bridge-agent-accept-listener.cpp000066400000000000000000000157411177210725600262230ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ #include #include #include #include #include #include #include #include #include #include #include #include "scim-bridge-output.h" #include "scim-bridge-path.h" #include "scim-bridge-agent-protected.h" #include "scim-bridge-agent-accept-listener.h" #include "scim-bridge-agent-client-listener.h" #ifndef SUN_LEN #define SUN_LEN(su) \ (sizeof(*(su)) - sizeof((su)->sun_path) + strlen((su)->sun_path)) #endif /* Class definition */ class ScimBridgeAgentAcceptListenerImpl: public ScimBridgeAgentAcceptListener { public: ScimBridgeAgentAcceptListenerImpl (ScimBridgeAgentProtected *new_agent); ~ScimBridgeAgentAcceptListenerImpl (); retval_t initialize (); int get_socket_fd () const; scim_bridge_agent_event_type_t get_trigger_events () const; bool handle_event (scim_bridge_agent_event_type_t event_type); private: ScimBridgeAgentProtected *agent; int socket_fd; }; /* Implementations */ ScimBridgeAgentAcceptListener *ScimBridgeAgentAcceptListener::alloc (ScimBridgeAgentProtected *agent) { ScimBridgeAgentAcceptListenerImpl *socket_listener = new ScimBridgeAgentAcceptListenerImpl (agent); if (socket_listener->initialize ()) { delete socket_listener; return NULL; } else { return socket_listener; } } ScimBridgeAgentAcceptListenerImpl::ScimBridgeAgentAcceptListenerImpl (ScimBridgeAgentProtected *new_agent): agent (new_agent), socket_fd (-1) { } ScimBridgeAgentAcceptListenerImpl::~ScimBridgeAgentAcceptListenerImpl () { if (socket_fd >= 0) { close (socket_fd); socket_fd = -1; const char *socket_path = scim_bridge_path_get_socket (); unlink (socket_path); } } retval_t ScimBridgeAgentAcceptListenerImpl::initialize () { const char *socket_path = scim_bridge_path_get_socket (); socket_fd = socket (PF_UNIX, SOCK_STREAM, 0); if (socket_fd < 0) { scim_bridge_perrorln ("Cannot create an unix domain socket: %s", strerror (errno)); return RETVAL_FAILED; } struct sockaddr_un socket_addr; memset (&socket_addr, 0, sizeof (struct sockaddr_un)); socket_addr.sun_family = AF_UNIX; strncpy (socket_addr.sun_path, socket_path, sizeof (socket_addr.sun_path) - 1); const int MAX_TRIAL = 5; for (int i = 0; i < MAX_TRIAL; ++i) { scim_bridge_pdebugln (8, "Pinging for the another agent process..."); if (connect (socket_fd, (struct sockaddr*)&socket_addr, SUN_LEN (&socket_addr))) { if (i == MAX_TRIAL - 1) { scim_bridge_pdebugln (6, "It seems like there is no other agent for the old socket."); break; } else { switch (errno) { case EAGAIN: case EINTR: case EALREADY: case EINPROGRESS: scim_bridge_pdebugln (1, "Opps, no retval from the socket!"); usleep (50000); break; case EACCES: case EPERM: case ECONNREFUSED: case ENOTSOCK: default: scim_bridge_pdebugln (6, "It seems like there is no other agent for the old socket."); i = MAX_TRIAL; break; } } } else { scim_bridge_pdebugln (9, "It seems like there is already another agent process..."); socket_fd = -1; return RETVAL_FAILED; } } close (socket_fd); unlink (socket_path); socket_fd = socket (PF_UNIX, SOCK_STREAM, 0); if (socket_fd < 0) { scim_bridge_perrorln ("Cannot create an unix domain socket: %s", strerror (errno)); return RETVAL_FAILED; } const int socket_flags = fcntl (socket_fd, F_GETFL); if (socket_flags < 0) { scim_bridge_perrorln ("Failed to get the flags of the socket"); close (socket_fd); socket_fd = -1; return RETVAL_FAILED; } if (fcntl (socket_fd, F_SETFL, socket_flags | O_NONBLOCK)) { scim_bridge_perrorln ("Failed to set the flags of the socket"); close (socket_fd); socket_fd = -1; return RETVAL_FAILED; } if (bind (socket_fd, (struct sockaddr*)&socket_addr, SUN_LEN (&socket_addr)) != 0) { scim_bridge_perrorln ("Cannot bind the socket: %s", strerror (errno)); close (socket_fd); socket_fd = -1; return RETVAL_FAILED; } if (listen (socket_fd, 64)) { scim_bridge_perrorln ("Cannot start listening the socket: %s", strerror (errno)); close (socket_fd); socket_fd = -1; return RETVAL_FAILED; } return RETVAL_SUCCEEDED; } int ScimBridgeAgentAcceptListenerImpl::get_socket_fd () const { return socket_fd; } scim_bridge_agent_event_type_t ScimBridgeAgentAcceptListenerImpl::get_trigger_events () const { return SCIM_BRIDGE_AGENT_EVENT_READ | SCIM_BRIDGE_AGENT_EVENT_ERROR; } bool ScimBridgeAgentAcceptListenerImpl::handle_event (scim_bridge_agent_event_type_t event_type) { if (event_type & SCIM_BRIDGE_AGENT_EVENT_ERROR) { //scim_bridge_perrorln ("FIXME: A critical error: %s", strerror (errno)); //agent->quit (); } else { struct sockaddr_un empty_socket_addr; socklen_t empty_socket_size = sizeof (empty_socket_addr); int fd = accept (socket_fd, (sockaddr*) (&empty_socket_addr), &empty_socket_size); if (fd < 0) { if (errno == EAGAIN || errno == EWOULDBLOCK || errno == EINTR) { scim_bridge_perrorln ("Opps, it seems like failed to establish a connection with a client..."); usleep (50); } else { scim_bridge_perrorln ("FIXME: A critical error occurred on the socket: %s", strerror (errno)); agent->quit (); } } else { scim_bridge_pdebugln (5, "A connection established."); agent->add_client_listener (ScimBridgeAgentClientListener::alloc (fd, agent)); } } return true; } scim-1.4.14/extras/immodules/agent/scim-bridge-agent-accept-listener.h000066400000000000000000000036021177210725600256610ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ /** * @file * @author Ryo Dairiki * @brief This is the header file for ScimBridgeAgentAcceptListener. */ #ifndef SCIMBRIDGEAGENTACCEPTLISTENER_H_ #define SCIMBRIDGEAGENTACCEPTLISTENER_H_ #include "scim-bridge.h" #include "scim-bridge-agent-panel-listener.h" #include "scim-bridge-agent-socket-client.h" class ScimBridgeAgentProtected; /** * The class of accept listeners, which listen to accept event of clients. */ class ScimBridgeAgentAcceptListener: public ScimBridgeAgentSocketClient { public: /** * Allocate an accept listener. * * @param agent The agent. * @return A new accept listener, or NULL if it failed to initialize the one. */ static ScimBridgeAgentAcceptListener *alloc (ScimBridgeAgentProtected *agent); /** * Destructor. */ virtual ~ScimBridgeAgentAcceptListener () {} protected: /** * Constructor. */ ScimBridgeAgentAcceptListener () {} }; #endif /*SCIMBRIDGEAGENTACCEPTLISTENER_H_*/ scim-1.4.14/extras/immodules/agent/scim-bridge-agent-application.cpp000066400000000000000000000101051177210725600254310ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ #include #include #include #include #include #include #include #include "scim-bridge-agent.h" #include "scim-bridge-debug.h" #include "scim-bridge-output.h" #include "scim-bridge-string.h" using namespace std; /* Static variables */ static scim_bridge_debug_level_t debug_level; /* Implementations */ scim_bridge_debug_level_t scim_bridge_debug_get_level () { return debug_level; } int main (int argc, char *argv[]) { bool standalone_enabled = false; bool noexit_enabled = false; debug_level = 0; const struct option long_options[] = { {"help", 0, NULL, 'h'}, {"verbose", 0, NULL, 'v'}, {"quiet", 0, NULL, 'q'}, {"debuglevel", 1, NULL, 'l'}, {"noexit", 0, NULL, 'n'}, {"standalone", 0, NULL, 's'}, {0, 0, NULL, 0} }; char short_options[] = "vhqdls:b:"; unsigned int tmp_uint; int option = 0; while (option != EOF) { option = getopt_long (argc, argv, short_options, long_options, NULL); switch (option) { case 'v': debug_level = 6; break; case 'q': debug_level = 0; break; case 'l': if (scim_bridge_string_to_uint (&tmp_uint, optarg)) { cerr << "Invalid debug level: " << optarg << endl; exit (-1); } else { debug_level = tmp_uint; } break; case 'n': noexit_enabled = true; break; case 's': standalone_enabled = true; break; case 'h': cout << "Usage: scim-bridge-agent [options]" << endl; cout << " Options" << endl << endl; cout << " -h, --help\tGive this help list" << endl; cout << " -v, --verbose\tVerbosely print out the debug message into standard output.This option equals to '--debuglevel=6'" << endl; cout << " -q, --quiet\tMake it print no debug message at all.This option equals to '--debuglevel=0" << endl; cout << " -l, --debuglevel\tSet how verbosely should it print debug output.'--debuglevel=0' equals to '--queit', and '--debuglevel=9' equals to '--verbose'" << endl; cout << " -s, --standalone\tGiven this, scim-brige-agent won't daemonize itself." << endl; cout << " -n, --noexit\tGiven this, scim-brige-agent won't exit when there is no client." << endl; exit (0); break; case ':': case '?': exit (-1); default: break; } } ScimBridgeAgent *agent = ScimBridgeAgent::alloc (); if (agent == NULL) { scim_bridge_perrorln ("Failed to allocate the agent. Exitting..."); exit (-1); } agent->set_noexit_enabled (noexit_enabled); agent->set_standalone_enabled (standalone_enabled); const retval_t retval = agent->launch (); delete agent; if (retval == RETVAL_SUCCEEDED) { scim_bridge_println ("Cleanup, done. Exitting..."); exit (0); } else { scim_bridge_println ("An error occurred. Exitting..."); exit (-1); } } scim-1.4.14/extras/immodules/agent/scim-bridge-agent-client-listener.cpp000066400000000000000000001327311177210725600262410ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ #include #include #include #include #include #include #include #include #include #define Uses_SCIM_ATTRIBUTE #define Uses_SCIM_EVENT #include #include "scim-bridge-imcontext.h" #include "scim-bridge-message-constant.h" #include "scim-bridge-messenger.h" #include "scim-bridge-string.h" #include "scim-bridge-output.h" #include "scim-bridge-agent-client-listener.h" #include "scim-bridge-agent-protected.h" using std::list; using namespace scim; /* Static Constants */ static const struct timeval TIMEOUT_IMMEDIATELY = {0, 0}; /* Class Definition */ class ScimBridgeAgentClientListenerImpl: public ScimBridgeAgentClientListener { public: ScimBridgeAgentClientListenerImpl (int new_socket_fd, ScimBridgeAgentProtected *new_agent); ~ScimBridgeAgentClientListenerImpl (); int get_socket_fd () const; scim_bridge_agent_event_type_t get_trigger_events () const; bool handle_event (scim_bridge_agent_event_type_t event_type); retval_t imengine_status_changed (scim_bridge_imcontext_id_t imcontext_id, bool enabled); retval_t set_preedit_shown (scim_bridge_imcontext_id_t imcontext_id, bool shown); retval_t set_preedit_cursor_position (scim_bridge_imcontext_id_t imcontext_id, int cursor_position); retval_t set_preedit_string (scim_bridge_imcontext_id_t imcontext_id, const WideString &wstring); retval_t set_preedit_attributes (scim_bridge_imcontext_id_t imcontext_id, const AttributeList &attributes); retval_t update_preedit (scim_bridge_imcontext_id_t imcontext_id); retval_t commit_string (scim_bridge_imcontext_id_t imcontext_id, const WideString &wstring); retval_t beep (scim_bridge_imcontext_id_t imcontext_id); retval_t forward_key_event (scim_bridge_imcontext_id_t imcontext_id, const KeyEvent &key_event); retval_t get_surrounding_string (scim_bridge_imcontext_id_t imcontext_id, int before_max, int after_max, WideString &wstring, int &cursor_position); retval_t delete_surrounding_string (scim_bridge_imcontext_id_t imcontext_id, int offset, int length); retval_t replace_surrounding_string (scim_bridge_imcontext_id_t imcontext_id, const WideString &wstring, int cursor_position); private: ScimBridgeAgentProtected *agent; ScimBridgeMessenger *messenger; list received_messages; int get_surrounding_timeout_count; int delete_surrounding_timeout_count; int replace_surrounding_timeout_count; void push_message (ScimBridgeMessage *message); ScimBridgeMessage *poll_message (); retval_t process_message (const ScimBridgeMessage *message); retval_t register_imcontext (); retval_t deregister_imcontext (scim_bridge_imcontext_id_t imcontext_id); retval_t reset_imcontext (scim_bridge_imcontext_id_t imcontext_id); retval_t enable_imcontext (scim_bridge_imcontext_id_t imcontext_id); retval_t disable_imcontext (scim_bridge_imcontext_id_t imcontext_id); retval_t change_focus (scim_bridge_imcontext_id_t imcontext_id, bool focus_in); retval_t handle_key_event (scim_bridge_imcontext_id_t imcontext_id, const KeyEvent &key_event); retval_t set_cursor_location (scim_bridge_imcontext_id_t imcontext_id, int cursor_x, int cursor_y); retval_t set_preedit_mode (scim_bridge_imcontext_id_t imcontext_id, scim_bridge_preedit_mode_t preedit_mode); }; /* Implementations */ ScimBridgeAgentClientListener *ScimBridgeAgentClientListener::alloc (int new_socket_fd, ScimBridgeAgentProtected *new_agent) { return new ScimBridgeAgentClientListenerImpl (new_socket_fd, new_agent); } ScimBridgeAgentClientListenerImpl::ScimBridgeAgentClientListenerImpl (int socket_fd, ScimBridgeAgentProtected *new_agent): agent (new_agent), messenger (NULL), get_surrounding_timeout_count (0), delete_surrounding_timeout_count (0), replace_surrounding_timeout_count (0) { messenger = scim_bridge_alloc_messenger (socket_fd); } ScimBridgeAgentClientListenerImpl::~ScimBridgeAgentClientListenerImpl () { scim_bridge_free_messenger (messenger); for (list::iterator i = received_messages.begin (); i != received_messages.end (); ++i) { ScimBridgeMessage *message = *i; scim_bridge_free_message (message); } received_messages.clear (); agent->remove_client_listener (this); } int ScimBridgeAgentClientListenerImpl::get_socket_fd () const { return scim_bridge_messenger_get_socket_fd (messenger); } scim_bridge_agent_event_type_t ScimBridgeAgentClientListenerImpl::get_trigger_events () const { scim_bridge_agent_event_type_t triggers = SCIM_BRIDGE_AGENT_EVENT_READ | SCIM_BRIDGE_AGENT_EVENT_ERROR; if (received_messages.size () > 0) triggers |= SCIM_BRIDGE_AGENT_EVENT_INTERRUPT; if (scim_bridge_messenger_get_sending_buffer_size (messenger) > 0) triggers |= SCIM_BRIDGE_AGENT_EVENT_WRITE; return triggers; } bool ScimBridgeAgentClientListenerImpl::handle_event (scim_bridge_agent_event_type_t event_type) { scim_bridge_pdebugln (2, "handle_event ()"); if (event_type & SCIM_BRIDGE_AGENT_EVENT_ERROR) { return false; } if ((event_type & SCIM_BRIDGE_AGENT_EVENT_WRITE) && scim_bridge_messenger_get_sending_buffer_size (messenger) > 0) { if (scim_bridge_messenger_send_message (messenger, &TIMEOUT_IMMEDIATELY)) { scim_bridge_pdebugln (5, "The connection with the client is closed on errors"); return false; } } if (event_type & SCIM_BRIDGE_AGENT_EVENT_INTERRUPT) { ScimBridgeMessage *message = NULL; while (true) { ScimBridgeMessage *message = poll_message (); if (message == NULL) break; if (process_message (message) == RETVAL_FAILED) { scim_bridge_pdebugln (5, "The connection with the client is closed on errors"); scim_bridge_free_message (message); return false; } scim_bridge_free_message (message); } } if (event_type & SCIM_BRIDGE_AGENT_EVENT_READ) { if (scim_bridge_messenger_receive_message (messenger, &TIMEOUT_IMMEDIATELY)) { scim_bridge_pdebugln (5, "The connection with the client is closed on errors"); return false; } while (scim_bridge_messenger_get_receiving_buffer_size (messenger) > 0) { ScimBridgeMessage *message; if (scim_bridge_messenger_poll_message (messenger, &message)) { break; } else { push_message (message); agent->interrupt (); } } } return true; } ScimBridgeMessage *ScimBridgeAgentClientListenerImpl::poll_message () { if (received_messages.size () > 0) { ScimBridgeMessage *message = received_messages.front (); received_messages.pop_front (); return message; } else { return NULL; } } void ScimBridgeAgentClientListenerImpl::push_message (ScimBridgeMessage *message) { received_messages.push_back (message); } retval_t ScimBridgeAgentClientListenerImpl::process_message (const ScimBridgeMessage *message) { scim_bridge_pdebugln (6, "process_message ()"); const char *message_header = scim_bridge_message_get_header (message); if (strcmp (message_header, SCIM_BRIDGE_MESSAGE_REGISTER_IMCONTEXT) == 0) { return register_imcontext (); } else if (strcmp (message_header, SCIM_BRIDGE_MESSAGE_DEREGISTER_IMCONTEXT) == 0) { const char *imcontext_id_str = scim_bridge_message_get_argument (message, 0); unsigned int imcontext_id; if (scim_bridge_string_to_uint (&imcontext_id, imcontext_id_str)) { scim_bridge_perrorln ("Invalid message: Close the connection."); return RETVAL_FAILED; } return deregister_imcontext (imcontext_id); } else if (strcmp (message_header, SCIM_BRIDGE_MESSAGE_RESET_IMCONTEXT) == 0) { const char *imcontext_id_str = scim_bridge_message_get_argument (message, 0); unsigned int imcontext_id; if (scim_bridge_string_to_uint (&imcontext_id, imcontext_id_str)) { scim_bridge_perrorln ("Invalid message: Close the connection."); return RETVAL_FAILED; } return reset_imcontext (imcontext_id); } else if (strcmp (message_header, SCIM_BRIDGE_MESSAGE_ENABLE_IMCONTEXT) == 0) { const char *imcontext_id_str = scim_bridge_message_get_argument (message, 0); unsigned int imcontext_id; if (scim_bridge_string_to_uint (&imcontext_id, imcontext_id_str)) { scim_bridge_perrorln ("Invalid message: Close the connection."); return RETVAL_FAILED; } return enable_imcontext (imcontext_id); } else if (strcmp (message_header, SCIM_BRIDGE_MESSAGE_DISABLE_IMCONTEXT) == 0) { const char *imcontext_id_str = scim_bridge_message_get_argument (message, 0); unsigned int imcontext_id; if (scim_bridge_string_to_uint (&imcontext_id, imcontext_id_str)) { scim_bridge_perrorln ("Invalid message: Close the connection."); return RETVAL_FAILED; } return disable_imcontext (imcontext_id); } else if (strcmp (message_header, SCIM_BRIDGE_MESSAGE_CHANGE_FOCUS) == 0) { const char *imcontext_id_str = scim_bridge_message_get_argument (message, 0); const char *focus_in_str = scim_bridge_message_get_argument (message, 1); unsigned int imcontext_id; boolean focus_in; if (scim_bridge_string_to_uint (&imcontext_id, imcontext_id_str) || scim_bridge_string_to_boolean (&focus_in, focus_in_str)) { scim_bridge_perrorln ("Invalid message: Close the connection."); return RETVAL_FAILED; } return change_focus (imcontext_id, focus_in); } else if (strcmp (message_header, SCIM_BRIDGE_MESSAGE_HANDLE_KEY_EVENT) == 0) { const char *imcontext_id_str = scim_bridge_message_get_argument (message, 0); const char *key_code_str = scim_bridge_message_get_argument (message, 1); const char *key_pressed_str = scim_bridge_message_get_argument (message, 2); unsigned int imcontext_id; unsigned int key_code; boolean key_pressed; if (scim_bridge_string_to_uint (&imcontext_id, imcontext_id_str) || scim_bridge_string_to_uint (&key_code, key_code_str) || scim_bridge_string_to_boolean (&key_pressed, key_pressed_str)) { scim_bridge_perrorln ("Invalid message: Close the connection."); return RETVAL_FAILED; } unsigned int key_modifiers; if (key_pressed) { key_modifiers = SCIM_KEY_NullMask; } else { key_modifiers = SCIM_KEY_ReleaseMask; } for (size_t j = 3; j < scim_bridge_message_get_argument_count (message); ++j) { const char *modifier_str = scim_bridge_message_get_argument (message, j); if (strcmp (modifier_str, SCIM_BRIDGE_MESSAGE_SHIFT) == 0) { key_modifiers |= SCIM_KEY_ShiftMask; } else if (strcmp (modifier_str, SCIM_BRIDGE_MESSAGE_CONTROL) == 0) { key_modifiers |= SCIM_KEY_ControlMask; } else if (strcmp (modifier_str, SCIM_BRIDGE_MESSAGE_ALT) == 0) { key_modifiers |= SCIM_KEY_AltMask; } else if (strcmp (modifier_str, SCIM_BRIDGE_MESSAGE_META) == 0) { key_modifiers |= SCIM_KEY_MetaMask; } else if (strcmp (modifier_str, SCIM_BRIDGE_MESSAGE_SUPER) == 0) { key_modifiers |= SCIM_KEY_SuperMask; } else if (strcmp (modifier_str, SCIM_BRIDGE_MESSAGE_HYPER) == 0) { key_modifiers |= SCIM_KEY_HyperMask; } else if (strcmp (modifier_str, SCIM_BRIDGE_MESSAGE_CAPS_LOCK) == 0) { key_modifiers |= SCIM_KEY_CapsLockMask; } else if (strcmp (modifier_str, SCIM_BRIDGE_MESSAGE_NUM_LOCK) == 0) { key_modifiers |= SCIM_KEY_NumLockMask; } else if (strcmp (modifier_str, SCIM_BRIDGE_MESSAGE_KANA_RO) == 0) { key_modifiers |= SCIM_KEY_QuirkKanaRoMask; } else { scim_bridge_perrorln ("Unknown modifier: %s", modifier_str); } } KeyEvent key_event (key_code, key_modifiers, 0); return handle_key_event (imcontext_id, key_event); } else if (strcmp (message_header, SCIM_BRIDGE_MESSAGE_SET_CURSOR_LOCATION) == 0) { const char *imcontext_id_str = scim_bridge_message_get_argument (message, 0); const char *cursor_x_str = scim_bridge_message_get_argument (message, 1); const char *cursor_y_str = scim_bridge_message_get_argument (message, 2); unsigned int imcontext_id; int cursor_x; int cursor_y; if (scim_bridge_string_to_uint (&imcontext_id, imcontext_id_str) || scim_bridge_string_to_int (&cursor_x, cursor_x_str) || scim_bridge_string_to_int (&cursor_y, cursor_y_str)) { scim_bridge_perrorln ("Invalid message: Close the connection."); return RETVAL_FAILED; } return set_cursor_location (imcontext_id, cursor_x, cursor_y); } else if (strcmp (message_header, SCIM_BRIDGE_MESSAGE_SURROUNDING_TEXT_GOTTEN) == 0) { if (get_surrounding_timeout_count > 0) --get_surrounding_timeout_count; } else if (strcmp (message_header, SCIM_BRIDGE_MESSAGE_SURROUNDING_TEXT_DELETED) == 0) { if (delete_surrounding_timeout_count > 0) --delete_surrounding_timeout_count; } else if (strcmp (message_header, SCIM_BRIDGE_MESSAGE_SURROUNDING_TEXT_REPLACED) == 0) { if (replace_surrounding_timeout_count > 0) --replace_surrounding_timeout_count; } else if (strcmp (message_header, SCIM_BRIDGE_MESSAGE_SET_PREEDIT_MODE) == 0) { const char *imcontext_id_str = scim_bridge_message_get_argument (message, 0); const char *preedit_mode_str = scim_bridge_message_get_argument (message, 1); unsigned int imcontext_id; scim_bridge_preedit_mode_t preedit_mode; if (scim_bridge_string_to_uint (&imcontext_id, imcontext_id_str) || preedit_mode_str == NULL) { scim_bridge_perrorln ("Invalid message: Close the connection."); return RETVAL_FAILED; } if (strcmp (preedit_mode_str, SCIM_BRIDGE_MESSAGE_FLOATING) == 0) { preedit_mode = PREEDIT_FLOATING; } else if (strcmp (preedit_mode_str, SCIM_BRIDGE_MESSAGE_HANGING) == 0) { preedit_mode = PREEDIT_HANGING; } else if (strcmp (preedit_mode_str, SCIM_BRIDGE_MESSAGE_EMBEDDED) == 0) { preedit_mode = PREEDIT_EMBEDDED; } else if (strcmp (preedit_mode_str, SCIM_BRIDGE_MESSAGE_ANY) == 0) { preedit_mode = PREEDIT_ANY; } else { scim_bridge_perrorln ("Unknown preedit mode: %s", preedit_mode_str); return RETVAL_FAILED; } return set_preedit_mode (imcontext_id, preedit_mode); } else if (strcmp (message_header, SCIM_BRIDGE_MESSAGE_PREEDIT_UPDATED) == 0) { scim_bridge_pdebugln (1, "Unused message: Just ignore it"); } else if (strcmp (message_header, SCIM_BRIDGE_MESSAGE_STRING_COMMITED) == 0) { scim_bridge_pdebugln (1, "Unused message: Just ignore it"); } else { scim_bridge_perrorln ("Unknown message: %s", message_header); return RETVAL_FAILED; } } /* Event Handlers */ retval_t ScimBridgeAgentClientListenerImpl::register_imcontext () { scim_bridge_pdebugln (6, "register_imcontext ()"); const scim_bridge_imcontext_id_t imcontext_id = agent->alloc_imcontext (this); ScimBridgeMessage *message = scim_bridge_alloc_message (SCIM_BRIDGE_MESSAGE_IMCONTEXT_REGISTERED, 1); char *imcontext_id_str; scim_bridge_string_from_uint (&imcontext_id_str, imcontext_id); scim_bridge_message_set_argument (message, 0, imcontext_id_str); free (imcontext_id_str); scim_bridge_messenger_push_message (messenger, message); scim_bridge_free_message (message); return RETVAL_SUCCEEDED; } retval_t ScimBridgeAgentClientListenerImpl::deregister_imcontext (scim_bridge_imcontext_id_t imcontext_id) { scim_bridge_pdebugln (6, "deregister_imcontext ()"); agent->free_imcontext (imcontext_id, this); ScimBridgeMessage *message = scim_bridge_alloc_message (SCIM_BRIDGE_MESSAGE_IMCONTEXT_DEREGISTERED, 0); scim_bridge_messenger_push_message (messenger, message); scim_bridge_free_message (message); return RETVAL_SUCCEEDED; } retval_t ScimBridgeAgentClientListenerImpl::reset_imcontext (scim_bridge_imcontext_id_t imcontext_id) { scim_bridge_pdebugln (6, "reset_imcontext ()"); agent->reset_imcontext (imcontext_id); ScimBridgeMessage *message = scim_bridge_alloc_message (SCIM_BRIDGE_MESSAGE_IMCONTEXT_RESETED, 1); char *imcontext_id_str; scim_bridge_string_from_uint (&imcontext_id_str, imcontext_id); scim_bridge_message_set_argument (message, 0, imcontext_id_str); free (imcontext_id_str); scim_bridge_messenger_push_message (messenger, message); scim_bridge_free_message (message); return RETVAL_SUCCEEDED; } retval_t ScimBridgeAgentClientListenerImpl::enable_imcontext (scim_bridge_imcontext_id_t imcontext_id) { scim_bridge_pdebugln (6, "enable_imcontext ()"); agent->enable_imcontext (imcontext_id); ScimBridgeMessage *message = scim_bridge_alloc_message (SCIM_BRIDGE_MESSAGE_ENABLED, 0); scim_bridge_messenger_push_message (messenger, message); scim_bridge_free_message (message); return RETVAL_SUCCEEDED; } retval_t ScimBridgeAgentClientListenerImpl::disable_imcontext (scim_bridge_imcontext_id_t imcontext_id) { scim_bridge_pdebugln (6, "disable_imcontext ()"); agent->disable_imcontext (imcontext_id); ScimBridgeMessage *message = scim_bridge_alloc_message (SCIM_BRIDGE_MESSAGE_DISABLED, 0); scim_bridge_messenger_push_message (messenger, message); scim_bridge_free_message (message); return RETVAL_SUCCEEDED; } retval_t ScimBridgeAgentClientListenerImpl::change_focus (scim_bridge_imcontext_id_t imcontext_id, bool focus_in) { scim_bridge_pdebugln (6, "change_focus ()"); agent->change_focus (imcontext_id, focus_in); ScimBridgeMessage *message = scim_bridge_alloc_message (SCIM_BRIDGE_MESSAGE_FOCUS_CHANGED, 0); scim_bridge_messenger_push_message (messenger, message); scim_bridge_free_message (message); return RETVAL_SUCCEEDED; } retval_t ScimBridgeAgentClientListenerImpl::set_cursor_location (scim_bridge_imcontext_id_t imcontext_id, int cursor_x, int cursor_y) { scim_bridge_pdebugln (6, "set_cursor_location ()"); agent->set_cursor_location (imcontext_id, cursor_x, cursor_y); ScimBridgeMessage *message = scim_bridge_alloc_message (SCIM_BRIDGE_MESSAGE_CURSOR_LOCATION_CHANGED, 0); scim_bridge_messenger_push_message (messenger, message); scim_bridge_free_message (message); return RETVAL_SUCCEEDED; } retval_t ScimBridgeAgentClientListenerImpl::handle_key_event (scim_bridge_imcontext_id_t imcontext_id, const KeyEvent &key_event) { scim_bridge_pdebugln (6, "handle_key_event ()"); const bool consumed = agent->filter_key_event (imcontext_id, key_event); ScimBridgeMessage *message = scim_bridge_alloc_message (SCIM_BRIDGE_MESSAGE_KEY_EVENT_HANDLED, 1); const char *consumed_str = consumed ? SCIM_BRIDGE_MESSAGE_TRUE:SCIM_BRIDGE_MESSAGE_FALSE; scim_bridge_message_set_argument (message, 0, consumed_str); scim_bridge_messenger_push_message (messenger, message); scim_bridge_free_message (message); return RETVAL_SUCCEEDED; } retval_t ScimBridgeAgentClientListenerImpl::set_preedit_mode (scim_bridge_imcontext_id_t imcontext_id, scim_bridge_preedit_mode_t preedit_mode) { scim_bridge_pdebugln (6, "set_preedit_mode ()"); agent->set_preedit_mode (imcontext_id, preedit_mode); ScimBridgeMessage *message = scim_bridge_alloc_message (SCIM_BRIDGE_MESSAGE_PREEDIT_MODE_CHANGED, 0); scim_bridge_messenger_push_message (messenger, message); scim_bridge_free_message (message); return RETVAL_SUCCEEDED; } /** Public Funtions **/ retval_t ScimBridgeAgentClientListenerImpl::imengine_status_changed (scim_bridge_imcontext_id_t imcontext_id, bool enabled) { scim_bridge_pdebugln (6, "imengine_status_changed ()"); ScimBridgeMessage *message = scim_bridge_alloc_message (SCIM_BRIDGE_MESSAGE_IMENGINE_STATUS_CHANGED, 2); char *imcontext_id_str; scim_bridge_string_from_uint (&imcontext_id_str, imcontext_id); scim_bridge_message_set_argument (message, 0, imcontext_id_str); free (imcontext_id_str); char *enabled_str; scim_bridge_string_from_boolean (&enabled_str, enabled); scim_bridge_message_set_argument (message, 1, enabled_str); free (enabled_str); scim_bridge_messenger_push_message (messenger, message); scim_bridge_free_message (message); return RETVAL_SUCCEEDED; } retval_t ScimBridgeAgentClientListenerImpl::set_preedit_shown (scim_bridge_imcontext_id_t imcontext_id, bool shown) { scim_bridge_pdebugln (6, "set_preedit_shown ()"); ScimBridgeMessage *message = scim_bridge_alloc_message (SCIM_BRIDGE_MESSAGE_SET_PREEDIT_SHOWN, 2); char *imcontext_id_str; scim_bridge_string_from_uint (&imcontext_id_str, imcontext_id); scim_bridge_message_set_argument (message, 0, imcontext_id_str); free (imcontext_id_str); char *shown_str; scim_bridge_string_from_boolean (&shown_str, shown); scim_bridge_message_set_argument (message, 1, shown_str); free (shown_str); scim_bridge_messenger_push_message (messenger, message); scim_bridge_free_message (message); return RETVAL_SUCCEEDED; } retval_t ScimBridgeAgentClientListenerImpl::set_preedit_cursor_position (scim_bridge_imcontext_id_t imcontext_id, int cursor_position) { scim_bridge_pdebugln (6, "set_preedit_cursor_position ()"); ScimBridgeMessage *message = scim_bridge_alloc_message (SCIM_BRIDGE_MESSAGE_SET_PREEDIT_CURSOR_POSITION, 2); char *imcontext_id_str; scim_bridge_string_from_uint (&imcontext_id_str, imcontext_id); scim_bridge_message_set_argument (message, 0, imcontext_id_str); free (imcontext_id_str); char *cursor_position_str; scim_bridge_string_from_uint (&cursor_position_str, cursor_position); scim_bridge_message_set_argument (message, 1, cursor_position_str); free (cursor_position_str); scim_bridge_messenger_push_message (messenger, message); scim_bridge_free_message (message); return RETVAL_SUCCEEDED; } retval_t ScimBridgeAgentClientListenerImpl::set_preedit_string (scim_bridge_imcontext_id_t imcontext_id, const WideString &wstring) { scim_bridge_pdebugln (6, "set_preedit_string ()"); ScimBridgeMessage *message = scim_bridge_alloc_message (SCIM_BRIDGE_MESSAGE_SET_PREEDIT_STRING, 2); char *imcontext_id_str; scim_bridge_string_from_uint (&imcontext_id_str, imcontext_id); scim_bridge_message_set_argument (message, 0, imcontext_id_str); free (imcontext_id_str); char *preedit_str; scim_bridge_wstring_to_string (&preedit_str, wstring.c_str ()); scim_bridge_message_set_argument (message, 1, preedit_str); free (preedit_str); scim_bridge_messenger_push_message (messenger, message); scim_bridge_free_message (message); return RETVAL_SUCCEEDED; } retval_t ScimBridgeAgentClientListenerImpl::set_preedit_attributes (scim_bridge_imcontext_id_t imcontext_id, const AttributeList &attributes) { scim_bridge_pdebugln (6, "set_preedit_attributes ()"); ScimBridgeMessage *message = scim_bridge_alloc_message (SCIM_BRIDGE_MESSAGE_SET_PREEDIT_ATTRIBUTES, attributes.size () * 4 + 1); char *imcontext_id_str; scim_bridge_string_from_uint (&imcontext_id_str, imcontext_id); scim_bridge_message_set_argument (message, 0, imcontext_id_str); free (imcontext_id_str); int arg_index = 1; for (AttributeList::const_iterator i = attributes.begin (); i != attributes.end (); ++i) { const Attribute &attribute = *i; char *begin_str; char *end_str; scim_bridge_string_from_uint (&begin_str, attribute.get_start ()); scim_bridge_string_from_uint (&end_str, attribute.get_end ()); const char *type_str; const char *value_str; if (attribute.get_type () == SCIM_ATTR_DECORATE) { type_str = SCIM_BRIDGE_MESSAGE_DECORATE; switch (attribute.get_value ()) { case SCIM_ATTR_DECORATE_UNDERLINE: value_str = SCIM_BRIDGE_MESSAGE_UNDERLINE; break; case SCIM_ATTR_DECORATE_REVERSE: value_str = SCIM_BRIDGE_MESSAGE_REVERSE; break; case SCIM_ATTR_DECORATE_HIGHLIGHT: value_str = SCIM_BRIDGE_MESSAGE_HIGHLIGHT; break; default: type_str = SCIM_BRIDGE_MESSAGE_NONE; value_str = SCIM_BRIDGE_MESSAGE_NONE; } } else if (attribute.get_type () == SCIM_ATTR_FOREGROUND || attribute.get_type () == SCIM_ATTR_BACKGROUND) { if (attribute.get_type () == SCIM_ATTR_FOREGROUND) { type_str = SCIM_BRIDGE_MESSAGE_FOREGROUND; } else { type_str = SCIM_BRIDGE_MESSAGE_BACKGROUND; } char *tmp_str = static_cast (alloca (sizeof (char) * (strlen (SCIM_BRIDGE_MESSAGE_COLOR) + 7))); value_str = tmp_str; strcpy (tmp_str, SCIM_BRIDGE_MESSAGE_COLOR); char *color_str = tmp_str + sizeof (char) * strlen (SCIM_BRIDGE_MESSAGE_COLOR); color_str[6] = '\0'; const char chars[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'}; for (unsigned int k = 0; k < 6; ++k) { const unsigned int digit_index = (attribute.get_value () >> (k * 4)) % 0x10; color_str[5 - k] = chars[digit_index]; } } else { type_str = SCIM_BRIDGE_MESSAGE_NONE; value_str = SCIM_BRIDGE_MESSAGE_NONE; } scim_bridge_message_set_argument (message, arg_index + 0, begin_str); scim_bridge_message_set_argument (message, arg_index + 1, end_str); scim_bridge_message_set_argument (message, arg_index + 2, type_str); scim_bridge_message_set_argument (message, arg_index + 3, value_str); free (begin_str); free (end_str); arg_index += 4; } scim_bridge_messenger_push_message (messenger, message); scim_bridge_free_message (message); return RETVAL_SUCCEEDED; } retval_t ScimBridgeAgentClientListenerImpl::update_preedit (scim_bridge_imcontext_id_t imcontext_id) { scim_bridge_pdebugln (6, "update_preedit ()"); ScimBridgeMessage *message = scim_bridge_alloc_message (SCIM_BRIDGE_MESSAGE_UPDATE_PREEDIT, 1); char *imcontext_id_str; scim_bridge_string_from_uint (&imcontext_id_str, imcontext_id); scim_bridge_message_set_argument (message, 0, imcontext_id_str); free (imcontext_id_str); scim_bridge_messenger_push_message (messenger, message); scim_bridge_free_message (message); return RETVAL_SUCCEEDED; } retval_t ScimBridgeAgentClientListenerImpl::commit_string (scim_bridge_imcontext_id_t imcontext_id, const WideString &wstring) { scim_bridge_pdebugln (6, "commit_string ()"); ScimBridgeMessage *message0 = scim_bridge_alloc_message (SCIM_BRIDGE_MESSAGE_SET_COMMIT_STRING, 2); char *imcontext_id_str; scim_bridge_string_from_uint (&imcontext_id_str, imcontext_id); scim_bridge_message_set_argument (message0, 0, imcontext_id_str); char *commit_str; scim_bridge_wstring_to_string (&commit_str, wstring.c_str ()); scim_bridge_message_set_argument (message0, 1, commit_str); free (commit_str); scim_bridge_messenger_push_message (messenger, message0); scim_bridge_free_message (message0); ScimBridgeMessage *message1 = scim_bridge_alloc_message (SCIM_BRIDGE_MESSAGE_COMMIT_STRING, 1); scim_bridge_message_set_argument (message1, 0, imcontext_id_str); free (imcontext_id_str); scim_bridge_messenger_push_message (messenger, message1); scim_bridge_free_message (message1); return RETVAL_SUCCEEDED; } retval_t ScimBridgeAgentClientListenerImpl::get_surrounding_string (scim_bridge_imcontext_id_t imcontext_id, int max_before, int max_after, WideString &wstring, int &cursor_position) { scim_bridge_pdebugln (6, "get_surrounding_string ()"); ScimBridgeMessage *message = scim_bridge_alloc_message (SCIM_BRIDGE_MESSAGE_GET_SURROUNDING_TEXT, 3); char *imcontext_id_str; scim_bridge_string_from_uint (&imcontext_id_str, imcontext_id); scim_bridge_message_set_argument (message, 0, imcontext_id_str); free (imcontext_id_str); char *max_before_str; scim_bridge_string_from_uint (&max_before_str, max_before); scim_bridge_message_set_argument (message, 1, max_before_str); free (max_before_str); char *max_after_str; scim_bridge_string_from_uint (&max_after_str, max_after); scim_bridge_message_set_argument (message, 2, max_after_str); free (max_after_str); scim_bridge_messenger_push_message (messenger, message); scim_bridge_free_message (message); struct timeval first_time; gettimeofday (&first_time, NULL); while (scim_bridge_messenger_get_sending_buffer_size (messenger) > 0) { struct timeval current_time; gettimeofday (¤t_time, NULL); long remain_usec = (5 + first_time.tv_sec - current_time.tv_sec) * 1000000 + (first_time.tv_usec - current_time.tv_usec); if (remain_usec < 0) { scim_bridge_perrorln ("A timeout occurred at get_surrounding_text ()"); ++get_surrounding_timeout_count; return RETVAL_IGNORED; } struct timeval timeout; timeout.tv_sec = remain_usec / 1000000; timeout.tv_usec = remain_usec % 1000000; if (scim_bridge_messenger_send_message (messenger, &timeout)) { scim_bridge_perrorln ("An IOException occurred at get_surrounding_text ()"); return RETVAL_FAILED; } } while (TRUE) { struct timeval current_time; gettimeofday (¤t_time, NULL); long remain_usec = (5 + first_time.tv_sec - current_time.tv_sec) * 1000000 + (first_time.tv_usec - current_time.tv_usec); if (remain_usec < 0) { scim_bridge_perrorln ("A timeout occurred at get_surrounding_text ()"); ++get_surrounding_timeout_count; return RETVAL_IGNORED; } struct timeval timeout; timeout.tv_sec = remain_usec / 1000000; timeout.tv_usec = remain_usec % 1000000; if (scim_bridge_messenger_receive_message (messenger, &timeout)) { scim_bridge_perrorln ("An IOException occurred at get_surrounding_text ()"); return RETVAL_FAILED; } ScimBridgeMessage *new_message = NULL; while (!scim_bridge_messenger_poll_message (messenger, &new_message)) { const char *message_header = scim_bridge_message_get_header (new_message); if (strcmp (message_header, SCIM_BRIDGE_MESSAGE_SURROUNDING_TEXT_GOTTEN) == 0) { if (get_surrounding_timeout_count > 0) { const retval_t retval = process_message (new_message); scim_bridge_free_message (new_message); if (retval == RETVAL_FAILED) return RETVAL_FAILED; } else { const char *succeeded_str = scim_bridge_message_get_argument (new_message, 0); scim_bridge_pdebugln (5, "The retval: %s", succeeded_str); boolean succeeded = FALSE; if (scim_bridge_string_to_boolean (&succeeded, succeeded_str)) scim_bridge_perrorln ("An invalid argument for the message"); if (succeeded) { const char *cursor_pos_str = scim_bridge_message_get_argument (new_message, 1); const char *str = scim_bridge_message_get_argument (new_message, 2); wchar *wstr = NULL; int cursor_pos; if (scim_bridge_string_to_wstring (&wstr, str) < 0 || scim_bridge_string_to_int (&cursor_pos, cursor_pos_str)) { scim_bridge_perrorln ("Invalid arguments for the message"); succeeded = FALSE; } else { cursor_position = cursor_pos; wstring = wstr; } free (wstr); } scim_bridge_free_message (new_message); return succeeded ? RETVAL_SUCCEEDED:RETVAL_IGNORED; } } else if (strcmp (message_header, SCIM_BRIDGE_MESSAGE_RESET_IMCONTEXT) == 0) { const retval_t retval = process_message (new_message); scim_bridge_free_message (new_message); if (retval == RETVAL_FAILED) return RETVAL_FAILED; } else { push_message (new_message); } } } } retval_t ScimBridgeAgentClientListenerImpl::delete_surrounding_string (scim_bridge_imcontext_id_t imcontext_id, int offset, int length) { scim_bridge_pdebugln (6, "delete_surrounding_string ()"); ScimBridgeMessage *message = scim_bridge_alloc_message (SCIM_BRIDGE_MESSAGE_DELETE_SURROUNDING_TEXT, 3); char *imcontext_id_str; scim_bridge_string_from_uint (&imcontext_id_str, imcontext_id); scim_bridge_message_set_argument (message, 0, imcontext_id_str); free (imcontext_id_str); char *offset_str; scim_bridge_string_from_int (&offset_str, offset); scim_bridge_message_set_argument (message, 1, offset_str); free (offset_str); char *length_str; scim_bridge_string_from_uint (&length_str, length); scim_bridge_message_set_argument (message, 2, length_str); free (length_str); scim_bridge_messenger_push_message (messenger, message); scim_bridge_free_message (message); struct timeval first_time; gettimeofday (&first_time, NULL); while (scim_bridge_messenger_get_sending_buffer_size (messenger) > 0) { struct timeval current_time; gettimeofday (¤t_time, NULL); long remain_usec = (5 + first_time.tv_sec - current_time.tv_sec) * 1000000 + (first_time.tv_usec - current_time.tv_usec); if (remain_usec < 0) { scim_bridge_perrorln ("A timeout occurred at delete_surrounding_text ()"); ++delete_surrounding_timeout_count; return RETVAL_IGNORED; } struct timeval timeout; timeout.tv_sec = remain_usec / 1000000; timeout.tv_usec = remain_usec % 1000000; if (scim_bridge_messenger_send_message (messenger, &timeout)) { scim_bridge_perrorln ("An IOException occurred at delete_surrounding_text ()"); return RETVAL_FAILED; } } while (TRUE) { struct timeval current_time; gettimeofday (¤t_time, NULL); long remain_usec = (5 + first_time.tv_sec - current_time.tv_sec) * 1000000 + (first_time.tv_usec - current_time.tv_usec); if (remain_usec < 0) { scim_bridge_perrorln ("A timeout occurred at delete_surrounding_text ()"); ++delete_surrounding_timeout_count; return RETVAL_IGNORED; } struct timeval timeout; timeout.tv_sec = remain_usec / 1000000; timeout.tv_usec = remain_usec % 1000000; if (scim_bridge_messenger_receive_message (messenger, &timeout)) { scim_bridge_perrorln ("An IOException occurred at delete_surrounding_text ()"); return RETVAL_FAILED; } ScimBridgeMessage *new_message = NULL; while (!scim_bridge_messenger_poll_message (messenger, &new_message)) { const char *message_header = scim_bridge_message_get_header (new_message); if (strcmp (message_header, SCIM_BRIDGE_MESSAGE_SURROUNDING_TEXT_DELETED) == 0) { if (delete_surrounding_timeout_count > 0) { const retval_t retval = process_message (new_message); scim_bridge_free_message (new_message); if (retval == RETVAL_FAILED) return RETVAL_FAILED; } else { const char *succeeded_str = scim_bridge_message_get_argument (new_message, 0); scim_bridge_pdebugln (5, "The retval: %s", succeeded_str); boolean succeeded = FALSE; if (scim_bridge_string_to_boolean (&succeeded, succeeded_str)) scim_bridge_perrorln ("An invalid argument for the message"); scim_bridge_free_message (new_message); return succeeded ? RETVAL_SUCCEEDED:RETVAL_IGNORED; } } else if (strcmp (message_header, SCIM_BRIDGE_MESSAGE_RESET_IMCONTEXT) == 0) { const retval_t retval = process_message (new_message); scim_bridge_free_message (new_message); if (retval == RETVAL_FAILED) return RETVAL_FAILED; } else { push_message (new_message); } } } } retval_t ScimBridgeAgentClientListenerImpl::replace_surrounding_string (scim_bridge_imcontext_id_t imcontext_id, const WideString &wstring, int cursor_position) { scim_bridge_pdebugln (6, "replace_surrounding_string ()"); ScimBridgeMessage *message = scim_bridge_alloc_message (SCIM_BRIDGE_MESSAGE_REPLACE_SURROUNDING_TEXT, 3); char *imcontext_id_str; scim_bridge_string_from_uint (&imcontext_id_str, imcontext_id); scim_bridge_message_set_argument (message, 0, imcontext_id_str); free (imcontext_id_str); char *str = NULL; if (scim_bridge_wstring_to_string (&str, wstring.c_str ()) < 0) { scim_bridge_free_message (message); return RETVAL_IGNORED; } scim_bridge_message_set_argument (message, 1, str); free (str); char *cursor_position_str; scim_bridge_string_from_int (&cursor_position_str, cursor_position); scim_bridge_message_set_argument (message, 2, cursor_position_str); free (cursor_position_str); scim_bridge_messenger_push_message (messenger, message); scim_bridge_free_message (message); struct timeval first_time; gettimeofday (&first_time, NULL); while (scim_bridge_messenger_get_sending_buffer_size (messenger) > 0) { struct timeval current_time; gettimeofday (¤t_time, NULL); long remain_usec = (5 + first_time.tv_sec - current_time.tv_sec) * 1000000 + (first_time.tv_usec - current_time.tv_usec); if (remain_usec < 0) { scim_bridge_perrorln ("A timeout occurred at replace_surrounding_text ()"); ++replace_surrounding_timeout_count; return RETVAL_IGNORED; } struct timeval timeout; timeout.tv_sec = remain_usec / 1000000; timeout.tv_usec = remain_usec % 1000000; if (scim_bridge_messenger_send_message (messenger, &timeout)) { scim_bridge_perrorln ("An IOException occurred at replace_surrounding_text ()"); return RETVAL_FAILED; } } while (TRUE) { struct timeval current_time; gettimeofday (¤t_time, NULL); long remain_usec = (5 + first_time.tv_sec - current_time.tv_sec) * 1000000 + (first_time.tv_usec - current_time.tv_usec); if (remain_usec < 0) { scim_bridge_perrorln ("A timeout occurred at replace_surrounding_text ()"); ++replace_surrounding_timeout_count; return RETVAL_IGNORED; } struct timeval timeout; timeout.tv_sec = remain_usec / 1000000; timeout.tv_usec = remain_usec % 1000000; if (scim_bridge_messenger_receive_message (messenger, &timeout)) { scim_bridge_perrorln ("An IOException occurred at replace_surrounding_text ()"); return RETVAL_FAILED; } ScimBridgeMessage *new_message = NULL; while (!scim_bridge_messenger_poll_message (messenger, &new_message)) { const char *message_header = scim_bridge_message_get_header (new_message); if (strcmp (message_header, SCIM_BRIDGE_MESSAGE_SURROUNDING_TEXT_REPLACED) == 0) { if (replace_surrounding_timeout_count > 0) { const retval_t retval = process_message (new_message); scim_bridge_free_message (new_message); if (retval == RETVAL_FAILED) return RETVAL_FAILED; } else { const char *succeeded_str = scim_bridge_message_get_argument (new_message, 0); scim_bridge_pdebugln (5, "The retval: %s", succeeded_str); boolean succeeded = FALSE; if (scim_bridge_string_to_boolean (&succeeded, succeeded_str)) scim_bridge_perrorln ("An invalid argument for the message"); scim_bridge_free_message (new_message); return succeeded ? RETVAL_SUCCEEDED:RETVAL_IGNORED; } } else if (strcmp (message_header, SCIM_BRIDGE_MESSAGE_RESET_IMCONTEXT) == 0) { const retval_t retval = process_message (new_message); scim_bridge_free_message (new_message); if (retval == RETVAL_FAILED) return RETVAL_FAILED; } else { push_message (new_message); } } } } retval_t ScimBridgeAgentClientListenerImpl::beep (scim_bridge_imcontext_id_t imcontext_id) { scim_bridge_pdebugln (6, "beep ()"); ScimBridgeMessage *message = scim_bridge_alloc_message (SCIM_BRIDGE_MESSAGE_BEEP, 1); char *imcontext_id_str; scim_bridge_string_from_int (&imcontext_id_str, imcontext_id); scim_bridge_message_set_argument (message, 0, imcontext_id_str); free (imcontext_id_str); scim_bridge_messenger_push_message (messenger, message); scim_bridge_free_message (message); return RETVAL_SUCCEEDED; } retval_t ScimBridgeAgentClientListenerImpl::forward_key_event (scim_bridge_imcontext_id_t imcontext_id, const KeyEvent &key_event) { scim_bridge_pdebugln (6, "forward_key_event ()"); size_t mod_count = 0; if (key_event.is_shift_down ()) ++mod_count; if (key_event.is_control_down ()) ++mod_count; if (key_event.is_alt_down ()) ++mod_count; if (key_event.is_meta_down ()) ++mod_count; if (key_event.is_hyper_down ()) ++mod_count; if (key_event.is_super_down ()) ++mod_count; if (key_event.is_caps_lock_down ()) ++mod_count; if (key_event.is_num_lock_down ()) ++mod_count; if (key_event.mask & SCIM_KEY_QuirkKanaRoMask) ++mod_count; char *imcontext_id_str; scim_bridge_string_from_int (&imcontext_id_str, imcontext_id); char* pressed_str; scim_bridge_string_from_boolean (&pressed_str, key_event.is_key_press ()); char *key_code_str; scim_bridge_string_from_uint (&key_code_str, key_event.code); ScimBridgeMessage *message = scim_bridge_alloc_message (SCIM_BRIDGE_MESSAGE_FORWARD_KEY_EVENT, mod_count + 3); scim_bridge_message_set_argument (message, 0, imcontext_id_str); scim_bridge_message_set_argument (message, 1, key_code_str); scim_bridge_message_set_argument (message, 2, pressed_str); size_t mod_index = 3; if (key_event.is_shift_down ()) { scim_bridge_message_set_argument (message, mod_index, SCIM_BRIDGE_MESSAGE_SHIFT); ++mod_index; } if (key_event.is_control_down ()) { scim_bridge_message_set_argument (message, mod_index, SCIM_BRIDGE_MESSAGE_CONTROL); ++mod_index; } if (key_event.is_alt_down ()) { scim_bridge_message_set_argument (message, mod_index, SCIM_BRIDGE_MESSAGE_ALT); ++mod_index; } if (key_event.is_meta_down ()) { scim_bridge_message_set_argument (message, mod_index, SCIM_BRIDGE_MESSAGE_META); ++mod_index; } if (key_event.is_hyper_down ()) { scim_bridge_message_set_argument (message, mod_index, SCIM_BRIDGE_MESSAGE_HYPER); ++mod_index; } if (key_event.is_super_down ()) { scim_bridge_message_set_argument (message, mod_index, SCIM_BRIDGE_MESSAGE_SUPER); ++mod_index; } if (key_event.is_caps_lock_down ()) { scim_bridge_message_set_argument (message, mod_index, SCIM_BRIDGE_MESSAGE_CAPS_LOCK); ++mod_index; } if (key_event.is_num_lock_down ()) { scim_bridge_message_set_argument (message, mod_index, SCIM_BRIDGE_MESSAGE_NUM_LOCK); ++mod_index; } if (key_event.mask & SCIM_KEY_QuirkKanaRoMask) { scim_bridge_message_set_argument (message, mod_index, SCIM_BRIDGE_MESSAGE_KANA_RO); ++mod_index; } free (imcontext_id_str); free (key_code_str); free (pressed_str); scim_bridge_messenger_push_message (messenger, message); scim_bridge_free_message (message); return RETVAL_SUCCEEDED; } scim-1.4.14/extras/immodules/agent/scim-bridge-agent-client-listener.h000066400000000000000000000161651177210725600257100ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ /** * @file * @author Ryo Dairiki * @brief This is the header file for ScimBridgeAgentClientListener. */ #ifndef SCIMBRIDGEAGENTCLIENTLISTENER_H_ #define SCIMBRIDGEAGENTCLIENTLISTENER_H_ #define Uses_SCIM_ATTRIBUTE #define Uses_SCIM_EVENT #include #include "scim-bridge.h" #include "scim-bridge-imcontext.h" #include "scim-bridge-agent-socket-client.h" class ScimBridgeAgentProtected; /** * The class of clients listeners. */ class ScimBridgeAgentClientListener: public ScimBridgeAgentSocketClient { public: /** * Allocate a new client listener. * * @param socket_fd The socket for the client. * @param agent The agent. * @return The new client listener. */ static ScimBridgeAgentClientListener *alloc (int socket_fd, ScimBridgeAgentProtected *agent); /** * Destructor. */ virtual ~ScimBridgeAgentClientListener () {} /** * Notify the changing status of an IMEngine. * * @param imcontext_id The id of the IMContext. * @param enabled The new status for the IMContext. * @return RETVAL_FAILED if it failed, otherwise it returns RETVAL_SUCCEEDED. */ virtual retval_t imengine_status_changed (scim_bridge_imcontext_id_t imcontext_id, bool enabled) = 0; /** * Set the visibility of the preedit. * * @param imcontext_id The id of the IMContext. * @param shown The visibility of the preedit. * @return RETVAL_FAILED if it failed, otherwise it returns RETVAL_SUCCEEDED. */ virtual retval_t set_preedit_shown (scim_bridge_imcontext_id_t imcontext_id, bool shown) = 0; /** * Set the cursor position in the preedit. * * @param imcontext_id The id of the IMContext. * @param cursor_position The cursor position in the preedit. * @return RETVAL_FAILED if it failed, otherwise it returns RETVAL_SUCCEEDED. */ virtual retval_t set_preedit_cursor_position (scim_bridge_imcontext_id_t imcontext_id, int cursor_position) = 0; /** * Set the preedit string. * * @param imcontext_id The id of the IMContext. * @param wstring The new preedit string. * @return RETVAL_FAILED if it failed, otherwise it returns RETVAL_SUCCEEDED. */ virtual retval_t set_preedit_string (scim_bridge_imcontext_id_t imcontext_id, const scim::WideString &wstring) = 0; /** * Set the attributes of the preedit. * * @param imcontext_id The id of the IMContext. * @param attributes The preedit attributes. * @return RETVAL_FAILED if it failed, otherwise it returns RETVAL_SUCCEEDED. */ virtual retval_t set_preedit_attributes (scim_bridge_imcontext_id_t imcontext_id, const scim::AttributeList &attributes) = 0; /** * Update the preedit. * * @param imcontext_id The id of the IMContext. * @return RETVAL_FAILED if it failed, otherwise it returns RETVAL_SUCCEEDED. */ virtual retval_t update_preedit (scim_bridge_imcontext_id_t imcontext_id) = 0; /** * Commit a string. * * @param imcontext_id The ID of the IMContext. * @param wstring The string to commit. * @return RETVAL_FAILED if it failed, otherwise it returns RETVAL_SUCCEEDED. */ virtual retval_t commit_string (scim_bridge_imcontext_id_t imcontext_id, const scim::WideString &wstring) = 0; /** * Make a beep sound. * * @param imcontext_id The ID of the IMContext. * @return RETVAL_FAILED if it failed, otherwise it returns RETVAL_SUCCEEDED. */ virtual retval_t beep (scim_bridge_imcontext_id_t imcontext_id) = 0; /** * Forward a key event into a client. * * @param imcontext_id The id of the IMContext. * @param key_event The key event. * @return RETVAL_FAILED if it failed, otherwise it returns RETVAL_SUCCEEDED. */ virtual retval_t forward_key_event (scim_bridge_imcontext_id_t imcontext_id, const scim::KeyEvent &key_event) = 0; /** * Get the surrounding string of the preedit cursor. * * @parm imcontext_id The id of the IMContext. * @param before_max The maximum characters (in wstr) to fetch before the cursor. * @param before_max The maximum characters (in wstr) to fetch after the cursor. * @param wstring The surrounding string. * @param cursor_position The cursor position in the preedit string gotten by this function. * @return REVAL_FAILED when a serious error has occurred, or RETVAL_IGNORED if an timeout has happened. Otherwise it returns RETVAL_SUCCEEDED. */ virtual retval_t get_surrounding_string (scim_bridge_imcontext_id_t imcontext_id, int before_max, int after_max, scim::WideString &wstring, int &cursor_position) = 0; /** * Delete the surrounding string of the preedit cursor. * * @parm imcontext_id The id of the IMContext. * @param offset The begining offset to remove from the cursor. * @param length The length of the string to remove. * @return REVAL_FAILED when a serious error has occurred, or RETVAL_IGNORED if an timeout has happened. Otherwise it returns RETVAL_SUCCEEDED. */ virtual retval_t delete_surrounding_string (scim_bridge_imcontext_id_t imcontext_id, int offset, int length) = 0; /** * Replace the surrounding string of the preedit cursor. * * @parm imcontext_id The id of the IMContext. * @param wstring The new surrounding string. * @param cursor_position The new cursor position in the preedit. * @return REVAL_FAILED when a serious error has occurred, or RETVAL_IGNORED if an timeout has happened. Otherwise it returns RETVAL_SUCCEEDED. */ virtual retval_t replace_surrounding_string (scim_bridge_imcontext_id_t imcontext_id, const scim::WideString &wstring, int cursor_position) = 0; protected: /** * Constructor. */ ScimBridgeAgentClientListener () {} }; #endif /*SCIMBRIDGEAGENTCLIENTLISTENER_H_*/ scim-1.4.14/extras/immodules/agent/scim-bridge-agent-imcontext.cpp000066400000000000000000001165201177210725600251500ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ #include #include #include #include #include #include "scim-bridge-output.h" #include "scim-bridge-agent-client-listener.h" #include "scim-bridge-agent-imcontext.h" using std::list; using std::vector; using namespace scim; class ScimBridgeAgentIMContextImpl; static ScimBridgeAgentPanelListenerProtected *panel_listener; static vector imcontexts; static list free_imcontexts; static BackEndPointer scim_backend = NULL; static IMEngineFactoryPointer fallback_imengine_factory = NULL; static IMEngineInstancePointer shared_imengine = NULL; static IMEngineInstancePointer fallback_imengine = NULL; static String scim_language = ""; static bool imengine_shared = false; static bool enabled_by_default = false; static unsigned int imengine_id = 0; static bool on_the_spot_enabled = true; static String help_hotkeys = ""; /* Class definition */ class ScimBridgeAgentIMContextImpl: public ScimBridgeAgentIMContext { public: static void attach_imengine (IMEngineInstancePointer imengine); static void slot_show_preedit (IMEngineInstanceBase *imengine); static void slot_hide_preedit (IMEngineInstanceBase *imengine); static void slot_update_preedit_string (IMEngineInstanceBase *imengine, const WideString &str, const AttributeList &attrs); static void slot_update_preedit_caret (IMEngineInstanceBase *imengine, int caret); static void slot_commit (IMEngineInstanceBase *imengine, const WideString &str); static void slot_show_aux_string (IMEngineInstanceBase *imengine); static void slot_hide_aux_string (IMEngineInstanceBase *imengine); static void slot_update_aux_string (IMEngineInstanceBase *imengine, const WideString &str, const AttributeList &attrs); static void slot_show_lookup_table (IMEngineInstanceBase *imengine); static void slot_hide_lookup_table (IMEngineInstanceBase *imengine); static void slot_update_lookup_table (IMEngineInstanceBase *imengine, const LookupTable &table); static void slot_register_properties (IMEngineInstanceBase *imengine, const PropertyList &properties); static void slot_update_property (IMEngineInstanceBase *imengine, const Property &property); static void slot_beep (IMEngineInstanceBase *imengine); static void slot_start_helper (IMEngineInstanceBase *imengine, const String &helper_uuid); static void slot_stop_helper (IMEngineInstanceBase *imengine, const String &helper_uuid); static void slot_send_helper_event (IMEngineInstanceBase *imengine, const String &helper_uuid, const Transaction &trans); static bool slot_get_surrounding_text (IMEngineInstanceBase *imengine, WideString &text, int &cursor, int maxlen_before, int maxlen_after); static bool slot_delete_surrounding_text (IMEngineInstanceBase *imengine, int offset, int length); static void slot_fallback_commit (IMEngineInstanceBase *imengine, const WideString &commit_string); static void slot_forward_key_event (IMEngineInstanceBase *imengine, const KeyEvent &key_event); ScimBridgeAgentIMContextImpl (ScimBridgeAgentClientListener *new_client_listener); ~ScimBridgeAgentIMContextImpl (); scim_bridge_preedit_mode_t get_preedit_mode () const; void set_preedit_mode (scim_bridge_preedit_mode_t new_preedit_mode); bool is_enabled (); void set_enabled (bool new_state); scim_bridge_imcontext_id_t get_id (); ScimBridgeAgentClientListener *get_client_listener (); void focus_in (); void focus_out (); void reset (); bool filter_key_event (const KeyEvent &key_event); void forward_key_event (const KeyEvent &key_event); void set_cursor_location (int x, int y); void update_lookup_table_page_size (int page_size); void lookup_table_page_up (); void lookup_table_page_down (); void lookup_table_select_candidate (int candidate_index); void trigger_property (const String &property); void process_helper_event (const String &target_uuid, const String &helper_uuid, const Transaction &trans); void panel_move_preedit_caret (int caret_pos); void panel_process_key_event (const KeyEvent &key_event); void panel_commit_string (const WideString &wstr); void panel_request_help (); void panel_change_factory (const String &uuid); /* Semi private functions */ void alloc_imengine (); void free_imengine (); private: scim_bridge_imcontext_id_t id; ScimBridgeAgentClientListener *client_listener; IMEngineInstancePointer imengine; bool enabled; bool focused; scim_bridge_preedit_mode_t preedit_mode; bool preedit_shown; int preedit_cursor_position; WideString preedit_string; AttributeList preedit_attributes; int cursor_x; int cursor_y; IMEngineInstancePointer get_imengine (); void open_next_imengine (); void open_previous_imengine (); void open_imengine_by_uuid (const String &uuid); void open_imengine (IMEngineFactoryPointer factory); void show_preedit (); void hide_preedit (); void update_preedit_string (const WideString &str, const AttributeList &attrs); void update_preedit_caret (int cursor_pos); void commit (const WideString &str); void show_aux_string (); void hide_aux_string (); void update_aux_string (const WideString &str, const AttributeList &attrs); void show_lookup_table (); void hide_lookup_table (); void update_lookup_table (const LookupTable &table); void register_properties (const PropertyList &properties); void update_property (const Property &property); void beep (); void start_helper (const String &helper_uuid); void stop_helper (const String &helper_uuid); void send_helper_event (const String &helper_uuid, const Transaction &trans); bool get_surrounding_text (WideString &text, int &cursor, int maxlen_before, int maxlen_after); bool delete_surrounding_text (int offset, int length); bool replace_surrounding_text (const WideString &string, int cursor_position); }; /* Implementations */ void ScimBridgeAgentIMContext::static_initialize (ScimBridgeAgentPanelListenerProtected *new_panel_listener, const String &new_language, BackEndPointer new_backend) { panel_listener = new_panel_listener; scim_language = new_language; scim_backend = new_backend; fallback_imengine_factory = scim_backend->get_factory (SCIM_COMPOSE_KEY_FACTORY_UUID); if (fallback_imengine_factory.null ()) fallback_imengine_factory = new DummyIMEngineFactory (); fallback_imengine = fallback_imengine_factory->create_instance (String ("UTF-8"), 0); fallback_imengine->signal_connect_commit_string (slot (&ScimBridgeAgentIMContextImpl::slot_fallback_commit)); set_imengine_shared (imengine_shared); } void ScimBridgeAgentIMContext::static_finalize () { panel_listener = NULL; shared_imengine = NULL; fallback_imengine.reset (); fallback_imengine = NULL; fallback_imengine_factory.reset (); fallback_imengine_factory = NULL; scim_backend = NULL; for (vector::iterator i = imcontexts.begin (); i != imcontexts.end (); ++i) { ScimBridgeAgentIMContext *imcontext = *i; if (imcontext != NULL) delete imcontext; } imcontexts.clear (); free_imcontexts.clear (); } ScimBridgeAgentIMContext *ScimBridgeAgentIMContext::alloc (ScimBridgeAgentClientListener *new_client_listener) { return new ScimBridgeAgentIMContextImpl (new_client_listener); } void ScimBridgeAgentIMContext::free_by_client (const ScimBridgeAgentClientListener *client_listener) { for (vector::iterator i = imcontexts.begin (); i != imcontexts.end (); ++i) { ScimBridgeAgentIMContext *imcontext = *i; if (imcontext != NULL && imcontext->get_client_listener () == client_listener) { delete imcontext; } } } ScimBridgeAgentIMContext *ScimBridgeAgentIMContext::find (scim_bridge_imcontext_id_t imcontext_id) { if (imcontext_id < 0 || imcontext_id >= static_cast (imcontexts.size ())) { return NULL; } else { return imcontexts[imcontext_id]; } } bool ScimBridgeAgentIMContext::is_on_the_spot_enabled () { return on_the_spot_enabled; } void ScimBridgeAgentIMContext::set_on_the_spot_enabled (bool enabled) { on_the_spot_enabled = enabled; } void ScimBridgeAgentIMContext::set_help_hotkeys (const String &hotkey_str) { help_hotkeys = hotkey_str; } ScimBridgeAgentIMContextImpl::ScimBridgeAgentIMContextImpl (ScimBridgeAgentClientListener *new_client_listener): client_listener (new_client_listener), imengine (NULL), enabled (false), focused(false) ,preedit_mode (PREEDIT_ANY), preedit_shown (false), preedit_cursor_position (0) { if (free_imcontexts.empty ()) { free_imcontexts.push_back (imcontexts.size ()); imcontexts.push_back (NULL); } const scim_bridge_imcontext_id_t imcontext_id = free_imcontexts.back (); free_imcontexts.pop_back (); imcontexts[imcontext_id] = this; id = imcontext_id; } ScimBridgeAgentIMContextImpl::~ScimBridgeAgentIMContextImpl () { if (scim_backend != NULL) { panel_listener->deregister_input_context (); preedit_string.clear (); preedit_cursor_position = 0; preedit_shown = false; preedit_attributes.clear (); if (imengine_shared && static_cast (shared_imengine->get_frontend_data ()) == this) { shared_imengine->reset (); shared_imengine->set_frontend_data (NULL); } else if (imengine != NULL) { imengine->reset (); free_imengine (); } client_listener = NULL; } free_imcontexts.push_back (id); imcontexts[id] = NULL; } void ScimBridgeAgentIMContextImpl::attach_imengine (IMEngineInstancePointer new_imengine) { new_imengine->signal_connect_show_preedit_string (slot (&ScimBridgeAgentIMContextImpl::slot_show_preedit)); new_imengine->signal_connect_show_aux_string (slot (&ScimBridgeAgentIMContextImpl::slot_show_aux_string)); new_imengine->signal_connect_show_lookup_table (slot (&ScimBridgeAgentIMContextImpl::slot_show_lookup_table)); new_imengine->signal_connect_hide_preedit_string (slot (&ScimBridgeAgentIMContextImpl::slot_hide_preedit)); new_imengine->signal_connect_hide_aux_string (slot (&ScimBridgeAgentIMContextImpl::slot_hide_aux_string)); new_imengine->signal_connect_hide_lookup_table (slot (&ScimBridgeAgentIMContextImpl::slot_hide_lookup_table)); new_imengine->signal_connect_update_preedit_caret (slot (&ScimBridgeAgentIMContextImpl::slot_update_preedit_caret)); new_imengine->signal_connect_update_preedit_string (slot (&ScimBridgeAgentIMContextImpl::slot_update_preedit_string)); new_imengine->signal_connect_update_aux_string (slot (&ScimBridgeAgentIMContextImpl::slot_update_aux_string)); new_imengine->signal_connect_update_lookup_table (slot (&ScimBridgeAgentIMContextImpl::slot_update_lookup_table)); new_imengine->signal_connect_commit_string (slot (&ScimBridgeAgentIMContextImpl::slot_commit)); new_imengine->signal_connect_forward_key_event (slot (&ScimBridgeAgentIMContextImpl::slot_forward_key_event)); new_imengine->signal_connect_register_properties (slot (&ScimBridgeAgentIMContextImpl::slot_register_properties)); new_imengine->signal_connect_update_property (slot (&ScimBridgeAgentIMContextImpl::slot_update_property)); new_imengine->signal_connect_beep (slot (&ScimBridgeAgentIMContextImpl::slot_beep)); new_imengine->signal_connect_start_helper (slot (&ScimBridgeAgentIMContextImpl::slot_start_helper)); new_imengine->signal_connect_stop_helper (slot (&ScimBridgeAgentIMContextImpl::slot_stop_helper)); new_imengine->signal_connect_send_helper_event (slot (&ScimBridgeAgentIMContextImpl::slot_send_helper_event)); new_imengine->signal_connect_get_surrounding_text (slot (&ScimBridgeAgentIMContextImpl::slot_get_surrounding_text)); new_imengine->signal_connect_delete_surrounding_text (slot (&ScimBridgeAgentIMContextImpl::slot_delete_surrounding_text)); } scim_bridge_imcontext_id_t ScimBridgeAgentIMContextImpl::get_id () { return id; } ScimBridgeAgentClientListener *ScimBridgeAgentIMContextImpl::get_client_listener () { return client_listener; } void ScimBridgeAgentIMContextImpl::reset () { if (get_imengine () != NULL) { ScimBridgeAgentIMContext* focused_imcontext = static_cast (get_imengine ()->get_frontend_data ()); if (focused_imcontext == this) get_imengine ()->reset (); } } bool ScimBridgeAgentIMContext::is_enabled_by_default () { return enabled_by_default; } void ScimBridgeAgentIMContext::set_enabled_by_default (bool enabled) { enabled_by_default = enabled; } bool ScimBridgeAgentIMContext::is_imengine_shared () { return imengine_shared; } void ScimBridgeAgentIMContext::set_imengine_shared (bool shared) { imengine_shared = shared; if (scim_backend == NULL) return; if (imengine_shared) { IMEngineFactoryPointer factory = scim_backend->get_default_factory (scim_language, "UTF-8"); if (factory != NULL) { shared_imengine = factory->create_instance ("UTF-8", imengine_id); ++imengine_id; } if (shared_imengine == NULL) { shared_imengine = fallback_imengine; } else { ScimBridgeAgentIMContextImpl::attach_imengine (shared_imengine); } for (vector::iterator i = imcontexts.begin (); i != imcontexts.end (); ++i) { ScimBridgeAgentIMContextImpl *imcontext = *i; if (imcontext != NULL) { panel_listener->prepare (imcontext->get_id ()); imcontext->free_imengine (); panel_listener->register_input_context (shared_imengine->get_factory_uuid ()); panel_listener->send (); } } } else { shared_imengine = NULL; for (vector::iterator i = imcontexts.begin (); i != imcontexts.end (); ++i) { ScimBridgeAgentIMContextImpl *imcontext = *i; if (imcontext != NULL) imcontext->alloc_imengine (); } } } bool ScimBridgeAgentIMContextImpl::is_enabled () { return enabled; } void ScimBridgeAgentIMContextImpl::set_enabled (bool new_state) { if (enabled != new_state) { client_listener->imengine_status_changed (id, new_state); } enabled = new_state; if (imengine_shared) enabled_by_default = enabled; if (enabled) { IMEngineFactoryPointer factory = scim_backend->get_factory (get_imengine ()->get_factory_uuid ()); if (factory.null ()) factory = fallback_imengine_factory; PanelFactoryInfo info = PanelFactoryInfo (factory->get_uuid (), utf8_wcstombs (factory->get_name ()), factory->get_language (), factory->get_icon_file ()); panel_listener->update_factory_info (info); panel_listener->hide_preedit (); panel_listener->hide_aux_string (); panel_listener->hide_lookup_table (); panel_listener->turn_on (); get_imengine ()->focus_in (); } else { get_imengine ()->focus_out (); hide_preedit (); PanelFactoryInfo info = PanelFactoryInfo (String (""), String ("English/Keyboard"), String ("C"), String (SCIM_KEYBOARD_ICON_FILE)); panel_listener->update_factory_info (info); panel_listener->turn_off (); } } scim_bridge_preedit_mode_t ScimBridgeAgentIMContextImpl::get_preedit_mode () const { return preedit_mode; } void ScimBridgeAgentIMContextImpl::set_preedit_mode (scim_bridge_preedit_mode_t new_preedit_mode) { if (preedit_shown) { if ((preedit_mode == PREEDIT_ANY && on_the_spot_enabled) || preedit_mode == PREEDIT_EMBEDDED) { client_listener->set_preedit_shown (id, false); client_listener->update_preedit (id); } else { panel_listener->hide_preedit (); } } preedit_mode = new_preedit_mode; if (preedit_shown) show_preedit (); } void ScimBridgeAgentIMContextImpl::alloc_imengine () { imengine = NULL; IMEngineFactoryPointer factory = scim_backend->get_default_factory (scim_language, "UTF-8"); if (factory != NULL) { imengine = factory->create_instance ("UTF-8", imengine_id); ++imengine_id; } if (imengine == NULL) { imengine = fallback_imengine; } else { attach_imengine (imengine); panel_listener->register_input_context (imengine->get_factory_uuid ()); } enabled = false; } void ScimBridgeAgentIMContextImpl::free_imengine () { imengine = NULL; } IMEngineInstancePointer ScimBridgeAgentIMContextImpl::get_imengine () { if (imengine_shared) { return shared_imengine; } else { return imengine; } } bool ScimBridgeAgentIMContextImpl::filter_key_event (const KeyEvent &key_event) { IMEngineInstancePointer imengine = get_imengine (); if (!imengine.null ()) { ScimBridgeAgentIMContext *focused_imcontext = static_cast (imengine->get_frontend_data ()); if (focused_imcontext != this) focus_in (); } else { focus_in (); } if (!is_enabled ()) { return false; } else if (get_imengine ()->process_key_event (key_event)) { return true; } else { return fallback_imengine->process_key_event (key_event); } } void ScimBridgeAgentIMContextImpl::open_next_imengine () { open_imengine (scim_backend->get_next_factory ("", "UTF-8", get_imengine ()->get_factory_uuid ())); } void ScimBridgeAgentIMContextImpl::open_previous_imengine () { open_imengine (scim_backend->get_previous_factory ("", "UTF-8", get_imengine ()->get_factory_uuid ())); } void ScimBridgeAgentIMContextImpl::open_imengine_by_uuid (const String &uuid) { IMEngineFactoryPointer factory = scim_backend->get_factory (uuid); open_imengine (factory); } void ScimBridgeAgentIMContextImpl::open_imengine (IMEngineFactoryPointer factory) { focus_out (); hide_preedit (); preedit_string.clear (); preedit_attributes.clear (); if (!factory.null ()) { set_enabled (true); if (imengine_shared) set_enabled_by_default (true); if (get_imengine ()->get_factory_uuid () == factory->get_uuid ()) return; IMEngineInstancePointer new_imengine = factory->create_instance ("UTF-8", get_imengine ()->get_id ()); if (imengine_shared) { shared_imengine = new_imengine; shared_imengine->set_frontend_data (static_cast (this)); } else { imengine = new_imengine; imengine->set_frontend_data (static_cast (this)); } attach_imengine (new_imengine); scim_backend->set_default_factory (scim_language, factory->get_uuid ()); panel_listener->register_input_context (factory->get_uuid ()); focus_in (); } else { set_enabled (false); if (imengine_shared) set_enabled_by_default (false); } } void ScimBridgeAgentIMContextImpl::beep () { client_listener->beep (id); } void ScimBridgeAgentIMContextImpl::focus_in () { if (!imengine_shared && imengine == NULL) alloc_imengine (); ScimBridgeAgentIMContext *focused_imcontext = static_cast (get_imengine ()->get_frontend_data ()); if (focused_imcontext != NULL) focused_imcontext->focus_out (); get_imengine ()->set_frontend_data (static_cast (this)); panel_listener->register_input_context (get_imengine ()->get_factory_uuid ()); if (imengine_shared) { if (enabled_by_default) { enabled = true; } else { enabled = false; } client_listener->imengine_status_changed (id, enabled); } panel_listener->focus_in (get_imengine ()->get_factory_uuid ()); panel_listener->update_screen (); panel_listener->update_cursor_location (cursor_x, cursor_y); PanelFactoryInfo info; if (enabled) { IMEngineFactoryPointer factory = scim_backend->get_factory (get_imengine ()->get_factory_uuid ()); if (factory.null ()) factory = fallback_imengine_factory; info = PanelFactoryInfo (factory->get_uuid (), utf8_wcstombs (factory->get_name ()), factory->get_language (), factory->get_icon_file ()); } else { info = PanelFactoryInfo (String (""), String ("English/Keyboard"), String ("C"), String (SCIM_KEYBOARD_ICON_FILE)); } panel_listener->update_factory_info (info); preedit_shown = false; if (enabled) { panel_listener->turn_on (); get_imengine ()->focus_in (); } else { panel_listener->turn_off (); } panel_listener->hide_preedit (); panel_listener->hide_aux_string (); panel_listener->hide_lookup_table (); hide_preedit (); focused = true; } void ScimBridgeAgentIMContextImpl::focus_out () { if (!imengine_shared && imengine == NULL) alloc_imengine (); ScimBridgeAgentIMContext *focused_imcontext = static_cast (get_imengine ()->get_frontend_data ()); if ( !focused ) return; get_imengine ()->set_frontend_data (static_cast (this)); hide_preedit (); get_imengine ()->focus_out (); if (imengine_shared) shared_imengine->reset (); panel_listener->turn_off (); panel_listener->focus_out (); if (imengine_shared) { if (focused_imcontext != this) get_imengine ()->set_frontend_data (static_cast (focused_imcontext)); } else { imengine->set_frontend_data (NULL); } focused = false; } void ScimBridgeAgentIMContextImpl::set_cursor_location (int x, int y) { if (preedit_mode != PREEDIT_FLOATING) { cursor_x = x; cursor_y = y; panel_listener->update_cursor_location (cursor_x, cursor_y); } } void ScimBridgeAgentIMContextImpl::show_preedit () { if ((preedit_mode == PREEDIT_ANY && on_the_spot_enabled) || preedit_mode == PREEDIT_EMBEDDED) { preedit_shown = true; client_listener->set_preedit_shown (id, true); client_listener->set_preedit_cursor_position (id, preedit_cursor_position); client_listener->set_preedit_string (id, preedit_string); client_listener->set_preedit_attributes (id, preedit_attributes); client_listener->update_preedit (id); } else { panel_listener->show_preedit (); } } void ScimBridgeAgentIMContextImpl::hide_preedit () { if ((preedit_mode == PREEDIT_ANY && on_the_spot_enabled) || preedit_mode == PREEDIT_EMBEDDED) { if (preedit_shown) { client_listener->set_preedit_shown (id, false); client_listener->update_preedit (id); } preedit_shown = false; preedit_cursor_position = 0; preedit_string.clear (); preedit_attributes.clear (); } else { panel_listener->hide_preedit (); } } void ScimBridgeAgentIMContextImpl::show_aux_string () { panel_listener->show_aux_string (); } void ScimBridgeAgentIMContextImpl::hide_aux_string () { panel_listener->hide_aux_string (); } void ScimBridgeAgentIMContextImpl::update_aux_string (const WideString &str, const AttributeList &attrs) { panel_listener->set_aux_string (str, attrs); } void ScimBridgeAgentIMContextImpl::show_lookup_table () { panel_listener->show_lookup_table (); } void ScimBridgeAgentIMContextImpl::hide_lookup_table () { panel_listener->hide_lookup_table (); } void ScimBridgeAgentIMContextImpl::update_lookup_table (const LookupTable &table) { panel_listener->set_lookup_table (table); } void ScimBridgeAgentIMContextImpl::update_preedit_caret (int cursor_pos) { if (preedit_cursor_position == cursor_pos) return; preedit_cursor_position = cursor_pos; if (is_on_the_spot_enabled ()) { if (!preedit_shown) { client_listener->set_preedit_shown (id, true); preedit_shown = true; } client_listener->set_preedit_cursor_position (id, preedit_cursor_position); client_listener->update_preedit (id); } else { panel_listener->set_preedit_cursor_position (cursor_pos); } } void ScimBridgeAgentIMContextImpl::update_preedit_string (const WideString &str, const AttributeList &attrs) { if (preedit_string.empty () && str.empty ()) return; preedit_string = str; preedit_attributes = attrs; if (is_on_the_spot_enabled ()) { if (!preedit_shown) { client_listener->set_preedit_shown (id, true); preedit_shown = true; } client_listener->set_preedit_string (id, preedit_string); // This will cause very annoying cursor movements for Japanese. //preedit_cursor_position = str.length (); //client_listener->push_event (new ScimBridgeAgentSetPreeditCursorPositionEvent (id, preedit_cursor_position)); client_listener->set_preedit_attributes (id, preedit_attributes); client_listener->update_preedit (id); } else { panel_listener->set_preedit_string (str, attrs); } } void ScimBridgeAgentIMContextImpl::commit (const WideString &str) { client_listener->commit_string (id, str); } void ScimBridgeAgentIMContextImpl::forward_key_event (const KeyEvent &key_event) { client_listener->forward_key_event (id, key_event); } void ScimBridgeAgentIMContextImpl::register_properties (const PropertyList &properties) { panel_listener->register_properties (properties); } void ScimBridgeAgentIMContextImpl::update_property (const Property &property) { panel_listener->update_property (property); } void ScimBridgeAgentIMContextImpl::start_helper (const String &helper_uuid) { panel_listener->start_helper (helper_uuid); } void ScimBridgeAgentIMContextImpl::stop_helper (const String &helper_uuid) { panel_listener->stop_helper (helper_uuid); } void ScimBridgeAgentIMContextImpl::send_helper_event (const String &helper_uuid, const Transaction &trans) { panel_listener->send_helper_event (helper_uuid, trans); } bool ScimBridgeAgentIMContextImpl::get_surrounding_text (WideString &string, int &cursor_pos, int max_before, int max_after) { if (client_listener->get_surrounding_string (id, max_before, max_after, string, cursor_pos)) { return false; } else { return true; } } bool ScimBridgeAgentIMContextImpl::delete_surrounding_text (int offset, int length) { if (client_listener->delete_surrounding_string (id, offset, length)) { return false; } else { return true; } } bool ScimBridgeAgentIMContextImpl::replace_surrounding_text (const WideString &string, int cursor_position) { if (client_listener->replace_surrounding_string (id, string, cursor_position)) { return false; } else { return true; } } /* Called from panel_client? */ void ScimBridgeAgentIMContextImpl::update_lookup_table_page_size (int page_size) { get_imengine ()->update_lookup_table_page_size (page_size); } void ScimBridgeAgentIMContextImpl::lookup_table_page_up () { get_imengine ()->lookup_table_page_up (); } void ScimBridgeAgentIMContextImpl::lookup_table_page_down () { get_imengine ()->lookup_table_page_down (); } void ScimBridgeAgentIMContextImpl::lookup_table_select_candidate (int candidate_index) { get_imengine ()->select_candidate (candidate_index); } void ScimBridgeAgentIMContextImpl::trigger_property (const String &property) { get_imengine ()->trigger_property (property); } void ScimBridgeAgentIMContextImpl::process_helper_event (const String &target_uuid, const String &helper_uuid, const Transaction &trans) { get_imengine ()->process_helper_event (helper_uuid, trans); } void ScimBridgeAgentIMContextImpl::panel_move_preedit_caret (int caret_pos) { get_imengine ()->move_preedit_caret (caret_pos); } void ScimBridgeAgentIMContextImpl::panel_commit_string (const WideString &wstr) { commit (wstr); } void ScimBridgeAgentIMContextImpl::panel_request_help () { String help = String ("SCIM Bridge") + String (VERSION) + String ("\n(C) 2006-2008 Ryo Dairiki \n") + help_hotkeys + String ("\n\n"); IMEngineFactoryPointer factory = scim_backend->get_factory (get_imengine ()->get_factory_uuid ()); if (factory.null ()) factory = fallback_imengine_factory; help += utf8_wcstombs (factory->get_name ()); help += String (":\n\n"); help += utf8_wcstombs (factory->get_authors ()); help += String ("\n\n"); help += utf8_wcstombs (factory->get_help ()); help += String ("\n\n"); help += utf8_wcstombs (factory->get_credits ()); panel_listener->show_help (help); } void ScimBridgeAgentIMContextImpl::panel_change_factory (const String &uuid) { open_imengine_by_uuid (uuid); } /* Slot implementations */ void ScimBridgeAgentIMContextImpl::slot_show_preedit (IMEngineInstanceBase *imengine) { scim_bridge_pdebugln (3, "slot_show_preedit..."); ScimBridgeAgentIMContextImpl *imcontext = static_cast (imengine->get_frontend_data ()); if (imcontext == NULL) { scim_bridge_pdebugln (8, "No imcontext is connected"); } else { imcontext->show_preedit (); } } void ScimBridgeAgentIMContextImpl::slot_hide_preedit (IMEngineInstanceBase *imengine) { scim_bridge_pdebugln (3, "slot_hide_preedit..."); ScimBridgeAgentIMContextImpl *imcontext = static_cast (imengine->get_frontend_data ()); if (imcontext == NULL) { scim_bridge_pdebugln (8, "No imcontext is connected"); } else { imcontext->hide_preedit (); } } void ScimBridgeAgentIMContextImpl::slot_show_aux_string (IMEngineInstanceBase *imengine) { scim_bridge_pdebugln (3, "slot_show_aux_string..."); ScimBridgeAgentIMContextImpl *imcontext = static_cast (imengine->get_frontend_data ()); if (imcontext == NULL) { scim_bridge_pdebugln (8, "No imcontext is connected"); } else { imcontext->show_aux_string (); } } void ScimBridgeAgentIMContextImpl::slot_hide_aux_string (IMEngineInstanceBase *imengine) { scim_bridge_pdebugln (3, "slot_hide_aux_string..."); ScimBridgeAgentIMContextImpl *imcontext = static_cast (imengine->get_frontend_data ()); if (imcontext == NULL) { scim_bridge_pdebugln (8, "No imcontext is connected"); } else { imcontext->hide_aux_string (); } } void ScimBridgeAgentIMContextImpl::slot_update_aux_string (IMEngineInstanceBase *imengine, const WideString &str, const AttributeList &attrs) { scim_bridge_pdebugln (3, "slot_update_aux_string..."); ScimBridgeAgentIMContextImpl *imcontext = static_cast (imengine->get_frontend_data ()); if (imcontext == NULL) { scim_bridge_pdebugln (8, "No imcontext is connected"); } else { imcontext->update_aux_string (str, attrs); } } void ScimBridgeAgentIMContextImpl::slot_show_lookup_table (IMEngineInstanceBase *imengine) { scim_bridge_pdebugln (3, "slot_show_lookup_table..."); ScimBridgeAgentIMContextImpl *imcontext = static_cast (imengine->get_frontend_data ()); if (imcontext == NULL) { scim_bridge_pdebugln (8, "No imcontext is connected"); } else { imcontext->show_lookup_table (); } } void ScimBridgeAgentIMContextImpl::slot_hide_lookup_table (IMEngineInstanceBase *imengine) { scim_bridge_pdebugln (3, "slot_hide_lookup_table..."); ScimBridgeAgentIMContextImpl *imcontext = static_cast (imengine->get_frontend_data ()); if (imcontext == NULL) { scim_bridge_pdebugln (8, "No imcontext is connected"); } else { imcontext->hide_lookup_table (); } } void ScimBridgeAgentIMContextImpl::slot_update_lookup_table (IMEngineInstanceBase *imengine, const LookupTable &table) { scim_bridge_pdebugln (3, "slot_update_lookup_table..."); ScimBridgeAgentIMContextImpl *imcontext = static_cast (imengine->get_frontend_data ()); if (imcontext == NULL) { scim_bridge_pdebugln (8, "No imcontext is connected"); } else { imcontext->update_lookup_table (table); } } void ScimBridgeAgentIMContextImpl::slot_update_preedit_caret (IMEngineInstanceBase *imengine, int cursor_pos) { scim_bridge_pdebugln (3, "slot_update_preedit_caret..."); ScimBridgeAgentIMContextImpl *imcontext = static_cast (imengine->get_frontend_data ()); if (imcontext == NULL) { scim_bridge_pdebugln (8, "No imcontext is connected"); } else { imcontext->update_preedit_caret (cursor_pos); } } void ScimBridgeAgentIMContextImpl::slot_update_preedit_string (IMEngineInstanceBase *imengine, const WideString &str, const AttributeList &attrs) { scim_bridge_pdebugln (3, "slot_update_preedit_string..."); ScimBridgeAgentIMContextImpl *imcontext = static_cast (imengine->get_frontend_data ()); if (imcontext == NULL) { scim_bridge_pdebugln (8, "No imcontext is connected"); } else { imcontext->update_preedit_string (str, attrs); } } void ScimBridgeAgentIMContextImpl::slot_commit (IMEngineInstanceBase *imengine, const WideString &str) { scim_bridge_pdebugln (3, "slot_commit_string..."); ScimBridgeAgentIMContextImpl *imcontext = static_cast (imengine->get_frontend_data ()); if (imcontext == NULL) { scim_bridge_pdebugln (8, "No imcontext is connected"); } else { imcontext->commit (str); } } void ScimBridgeAgentIMContextImpl::slot_forward_key_event (IMEngineInstanceBase *imengine, const KeyEvent &key_event) { scim_bridge_pdebugln (3, "slot_forward_key_event..."); ScimBridgeAgentIMContextImpl *imcontext = static_cast (imengine->get_frontend_data ()); if (imcontext == NULL) { scim_bridge_pdebugln (8, "No imcontext is connected"); } else { imcontext->forward_key_event (key_event); } } void ScimBridgeAgentIMContextImpl::slot_register_properties (IMEngineInstanceBase *imengine, const PropertyList &properties) { scim_bridge_pdebugln (3, "slot_register_properties..."); ScimBridgeAgentIMContextImpl *imcontext = static_cast (imengine->get_frontend_data ()); if (imcontext == NULL) { scim_bridge_pdebugln (8, "No imcontext is connected"); } else { imcontext->register_properties (properties); } } void ScimBridgeAgentIMContextImpl::slot_update_property (IMEngineInstanceBase *imengine, const Property &property) { scim_bridge_pdebugln (3, "slot_update_property..."); ScimBridgeAgentIMContextImpl *imcontext = static_cast (imengine->get_frontend_data ()); if (imcontext == NULL) { scim_bridge_pdebugln (8, "No imcontext is connected"); } else { imcontext->update_property (property); } } void ScimBridgeAgentIMContextImpl::slot_beep (IMEngineInstanceBase *imengine) { scim_bridge_pdebugln (3, "slot_beep..."); ScimBridgeAgentIMContextImpl *imcontext = static_cast (imengine->get_frontend_data ()); if (imcontext == NULL) { scim_bridge_pdebugln (8, "No imcontext is connected"); } else { imcontext->beep (); } } void ScimBridgeAgentIMContextImpl::slot_start_helper (IMEngineInstanceBase *imengine, const String &helper_uuid) { scim_bridge_pdebugln (3, "slot_start_helper..."); ScimBridgeAgentIMContextImpl *imcontext = static_cast (imengine->get_frontend_data ()); if (imcontext == NULL) { scim_bridge_pdebugln (8, "No imcontext is connected"); } else { imcontext->start_helper (helper_uuid); } } void ScimBridgeAgentIMContextImpl::slot_stop_helper (IMEngineInstanceBase *imengine, const String &helper_uuid) { scim_bridge_pdebugln (3, "slot_stop_helper..."); ScimBridgeAgentIMContextImpl *imcontext = static_cast (imengine->get_frontend_data ()); if (imcontext == NULL) { scim_bridge_pdebugln (8, "No imcontext is connected"); } else { imcontext->stop_helper (helper_uuid); } } void ScimBridgeAgentIMContextImpl::slot_send_helper_event (IMEngineInstanceBase *imengine, const String &helper_uuid, const Transaction &trans) { scim_bridge_pdebugln (3, "slot_send_helper_event..."); ScimBridgeAgentIMContextImpl *imcontext = static_cast (imengine->get_frontend_data ()); if (imcontext == NULL) { scim_bridge_pdebugln (8, "No imcontext is connected"); } else { imcontext->send_helper_event (helper_uuid, trans); } } bool ScimBridgeAgentIMContextImpl::slot_get_surrounding_text (IMEngineInstanceBase *imengine, WideString &string, int &cursor, int maxlen_before, int maxlen_after) { scim_bridge_pdebugln (3, "slot_get_surrounding_text..."); ScimBridgeAgentIMContextImpl *imcontext = static_cast (imengine->get_frontend_data ()); if (imcontext == NULL) { scim_bridge_pdebugln (8, "No imcontext is connected"); return false; } else { return imcontext->get_surrounding_text (string, cursor, maxlen_before, maxlen_after); } } bool ScimBridgeAgentIMContextImpl::slot_delete_surrounding_text (IMEngineInstanceBase *imengine, int offset, int length) { scim_bridge_pdebugln (3, "slot_delete_surrounding_text..."); ScimBridgeAgentIMContextImpl *imcontext = static_cast (imengine->get_frontend_data ()); if (imcontext == NULL) { scim_bridge_pdebugln (8, "No imcontext is connected"); return false; } else { return imcontext->delete_surrounding_text (offset, length); } } void ScimBridgeAgentIMContextImpl::slot_fallback_commit (IMEngineInstanceBase *imengine, const WideString &commit_string) { scim_bridge_pdebugln (3, "slot_fallback_commit_string..."); ScimBridgeAgentIMContextImpl *imcontext = static_cast (imengine->get_frontend_data ()); if (imcontext == NULL) { scim_bridge_pdebugln (8, "No imcontext is connected"); } else { imcontext->commit (commit_string); } } scim-1.4.14/extras/immodules/agent/scim-bridge-agent-imcontext.h000066400000000000000000000225061177210725600246150ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ /** * @file * @author Ryo Dairiki * @brief This is the header file for ScimBridgeAgentIMContext. */ #ifndef SCIMBRIDGEAGENTIMCONTEXT_H_ #define SCIMBRIDGEAGENTIMCONTEXT_H_ #define Uses_SCIM_ATTRIBUTE #define Uses_SCIM_BACKEND #define Uses_SCIM_IMENGINE #define Uses_SCIM_IMENGINE_MODULE #define Uses_SCIM_LOOKUP_TABLE #include #include "scim-bridge.h" #include "scim-bridge-imcontext.h" #include "scim-bridge-agent-panel-listener-protected.h" class ScimBridgeAgentClientListener; class ScimBridgeAgentPanelListenerProtected; /** * The public interface of IMContext. */ class ScimBridgeAgentIMContext { public: /** * Allocate an IMContext. * * @param client_listener The client listener. * @return The new IMContext. */ static ScimBridgeAgentIMContext *alloc (ScimBridgeAgentClientListener *client_listener); /** * Free IMContexts of a client. * * @param client_listener The client listener. */ static void free_by_client (const ScimBridgeAgentClientListener *client_listener); /** * Find the specific IMContext. * * @param imcontext_id The id of the IMContext. * @return The IMContext which have the given id. If there isn't, it returns NULL. */ static ScimBridgeAgentIMContext *find (scim_bridge_imcontext_id_t imcontext_id); /** * Initialize the class. * * @param panel_listener The panel listener. * @param scim_language The language used in SCIM. * @param scim_backend The scim backend. */ static void static_initialize (ScimBridgeAgentPanelListenerProtected *panel_listener, const scim::String &scim_language, scim::BackEndPointer scim_backend); /** * Finalize the class. */ static void static_finalize (); /** * Check if IMEngines are shared. * * @return true if IMEngines are shared. */ static bool is_imengine_shared (); /** * Set whether IMEngines are shared or not. * * @param shared Give it true to share all the IMEngines among applications. */ static void set_imengine_shared (bool shared); /** * Check if the on_the_spot input is disabled by the preference. * * @return false only if on_the_spot input is disabled by the preference. */ static bool is_on_the_spot_enabled (); /** * Set whether the on_the_spot input is disabled by the preference. * * @param enabled Give it false when on_the_spot input is disabled by the preference. */ static void set_on_the_spot_enabled (bool enabled); /** * Check the IME's primary status. * * @return true if the IME is turned on by default. */ static bool is_enabled_by_default (); /** * Set the IME's primary status. * * @param enabled Give it true if the IME should be turned on by default. */ static void set_enabled_by_default (bool enabled); /** * Get the hotkey help messages. * * @return help messages about hotkeys. */ static scim::String get_help_hotkeys (); /** * Set the hotkey help messages. * * @param hotkey_str Help message about hotkeys. * */ static void set_help_hotkeys (const scim::String &hotkey_str); /** * Destructor. */ virtual ~ScimBridgeAgentIMContext () {} /** * See if this IMContext is turned on on not. * * @return true if this IMContext is turned on. */ virtual bool is_enabled () = 0; /** * Set the status of IMContext. * * @param new_state Give true to turn on this IMContext, or false to turn off. */ virtual void set_enabled (bool new_state) = 0; /** * Get the preedit mode of an IMContext. * * @return The preedit mode of an IMContext. */ virtual scim_bridge_preedit_mode_t get_preedit_mode () const = 0; /** * Set the preedit mode of an IMContext. * * @param preedit_mode The preedit mode of an IMContext. */ virtual void set_preedit_mode (scim_bridge_preedit_mode_t new_preedit_mode) = 0; /** * Get the ID of the IMContext. * * @return The id of the IMContext. */ virtual scim_bridge_imcontext_id_t get_id () = 0; /** * Get the client for the IMContext. * * @return The client for the IMContext. */ virtual ScimBridgeAgentClientListener *get_client_listener () = 0; /** * Filter a key event. * * @param key_event The key event. * @return true if this key event is consumed, and should not be handled any more. */ virtual bool filter_key_event (const scim::KeyEvent &key_event) = 0; /** * Forward a key event into the client. * * @param key_event The key event. */ virtual void forward_key_event (const scim::KeyEvent &key_event) = 0; /** * Focus in the IMContext. */ virtual void focus_in () = 0; /** * Focus out the IMContext. */ virtual void focus_out () = 0; /** * Reset this IMContext. */ virtual void reset () = 0; /** * Set the cursor position. * * @param x The X location of the cursor. * @param y The Y location of the cursor. */ virtual void set_cursor_location (int x, int y) = 0; /** * Switch to the next IMEngine. */ virtual void open_next_imengine () = 0; /** * Switch to the previous IMEngine. */ virtual void open_previous_imengine () = 0; /** * Switch to the IMEngine of the given uuid. */ virtual void open_imengine_by_uuid (const scim::String &uuid) = 0; /** * Switch to the specific IMEngine. */ virtual void open_imengine (scim::IMEngineFactoryPointer factory) = 0; /** * Update the page size of the lookup table. * * @param page_size The size of the lookup page. */ virtual void update_lookup_table_page_size (int page_size) = 0; /** * Page up the lookup table. */ virtual void lookup_table_page_up () = 0; /** * Page down the lookup table. */ virtual void lookup_table_page_down () = 0; /** * Select the candidate in the lookup table. * * @param index The index to select. */ virtual void lookup_table_select_candidate (int candidate_index) = 0; /** * Trigger the property of the IMEngines. * * @param property The property to trigger. */ virtual void trigger_property (const scim::String &property) = 0; /** * Process a helper event. * * @param target_uuid The uuid of the target. * @param helper_uuid The uuid of the helper. * @param trans The transaction with the helper process. */ virtual void process_helper_event (const scim::String &target_uuid, const scim::String &helper_uuid, const scim::Transaction &trans) = 0; /** * The panel requested to move the caret in the preedit. * * @param caret_pos The new cursor position in the preedit. */ virtual void panel_move_preedit_caret (int caret_pos) = 0; /** * The panel requested to commit a string. * * @param wstr The string to commit. */ virtual void panel_commit_string (const scim::WideString &wstr) = 0; /** * The panel requested to show help. */ virtual void panel_request_help () = 0; /** * The panel requested to change IMEngine. * * @param uuid The uuid of the new IMEngine. */ virtual void panel_change_factory (const scim::String &uuid) = 0; protected: /** * Constructor. */ ScimBridgeAgentIMContext () {} }; #endif /*SCIMBRIDGEAGENTIMCONTEXT_H_*/ scim-1.4.14/extras/immodules/agent/scim-bridge-agent-interruption-listener.cpp000066400000000000000000000074561177210725600275320ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ #include #include #include #include #include #include #include #include "scim-bridge-output.h" #include "scim-bridge-agent-interruption-listener.h" /* Class definition */ class ScimBridgeAgentInterruptionListenerImpl: public ScimBridgeAgentInterruptionListener { public: ScimBridgeAgentInterruptionListenerImpl (); ~ScimBridgeAgentInterruptionListenerImpl (); retval_t initialize (); int get_socket_fd () const; scim_bridge_agent_event_type_t get_trigger_events () const; bool handle_event (scim_bridge_agent_event_type_t event_type); bool is_interrupted () const; void interrupt (); void clear_interruption (); private: bool interrupted; int pipe_in; int pipe_out; }; /* Implementations */ ScimBridgeAgentInterruptionListener *ScimBridgeAgentInterruptionListener::alloc () { ScimBridgeAgentInterruptionListenerImpl *interruption_listener = new ScimBridgeAgentInterruptionListenerImpl (); if (interruption_listener->initialize ()) { delete interruption_listener; interruption_listener = NULL; } return interruption_listener; } ScimBridgeAgentInterruptionListenerImpl::ScimBridgeAgentInterruptionListenerImpl (): interrupted (false), pipe_in (-1), pipe_out (-1) { } ScimBridgeAgentInterruptionListenerImpl::~ScimBridgeAgentInterruptionListenerImpl () { if (pipe_in >= 0) close (pipe_in); if (pipe_out >= 0) close (pipe_out); } retval_t ScimBridgeAgentInterruptionListenerImpl::initialize () { int pipe_pair[2]; if (socketpair (PF_UNIX, SOCK_STREAM, 0, pipe_pair)) { scim_bridge_perrorln ("Cannot make a pipe for a interruption listener: %s", strerror (errno)); return RETVAL_FAILED; } pipe_out = pipe_pair[0]; pipe_in = pipe_pair[1]; scim_bridge_pdebugln (2, "The interruption pipe: (%d, %d)", pipe_in, pipe_out); return RETVAL_SUCCEEDED; } int ScimBridgeAgentInterruptionListenerImpl::get_socket_fd () const { return pipe_out; } scim_bridge_agent_event_type_t ScimBridgeAgentInterruptionListenerImpl::get_trigger_events () const { return SCIM_BRIDGE_AGENT_EVENT_READ; } bool ScimBridgeAgentInterruptionListenerImpl::handle_event (scim_bridge_agent_event_type_t event_type) { return true; } void ScimBridgeAgentInterruptionListenerImpl::interrupt () { scim_bridge_pdebugln (1, "An interruption occurred"); if (interrupted) return; interrupted = true; if (send (pipe_in, " ", sizeof (char), MSG_NOSIGNAL | MSG_DONTWAIT) < 0 && errno != EAGAIN) { scim_bridge_perrorln ("Failed to make an interruption: %s", strerror (errno)); } } bool ScimBridgeAgentInterruptionListenerImpl::is_interrupted () const { return interrupted; } void ScimBridgeAgentInterruptionListenerImpl::clear_interruption () { scim_bridge_pdebugln (1, "The interruption is cleared"); char c; recv (pipe_out, &c, sizeof (char), MSG_DONTWAIT); interrupted = false; } scim-1.4.14/extras/immodules/agent/scim-bridge-agent-interruption-listener.h000066400000000000000000000043211177210725600271630ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ /** * @file * @author Ryo Dairiki * @brief This is the header file for ScimBridgeAgentInterruptionListener. */ #ifndef SCIMBRIDGEAGENTINTERRUPTIONLISTENER_H_ #define SCIMBRIDGEAGENTINTERRUPTIONLISTENER_H_ #include "scim-bridge.h" #include "scim-bridge-agent-socket-client.h" class ScimBridgeAgentProtected; /** * The class of interruption listeners, which listen to the interruptions. */ class ScimBridgeAgentInterruptionListener: public ScimBridgeAgentSocketClient { public: /** * Allocate an interruption listener. * * @return A new interruption listener, or NULL if it failed to initialize it. */ static ScimBridgeAgentInterruptionListener *alloc (); /** * Destructor. */ virtual ~ScimBridgeAgentInterruptionListener () {} /** * See if interruptions have occurred. * * @return true if interruptions have occurred. */ virtual bool is_interrupted () const = 0; /** * Make an interruption. */ virtual void interrupt () = 0; /** * Clear the interruption. */ virtual void clear_interruption () = 0; protected: /** * Constructor. */ ScimBridgeAgentInterruptionListener () {} }; #endif /*SCIMBRIDGEAGENTINTERRUPTIONLISTENER_H_*/ scim-1.4.14/extras/immodules/agent/scim-bridge-agent-output.cpp000066400000000000000000000072511177210725600244760ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ #include #include #include #include #include #include #include #include "scim-bridge-debug.h" #include "scim-bridge-output.h" /* Static variables */ static bool initialized = false; static const char SCIM_BRIDGE_AGENT_PROCESS_NAME[] = "scim-bridge"; /* Helper functions */ void static_initialize () { setlogmask (LOG_UPTO (LOG_DEBUG)); closelog (); openlog (SCIM_BRIDGE_AGENT_PROCESS_NAME, LOG_NDELAY, LOG_DAEMON); initialized = true; } static void vxfprintf (FILE *stream, const char *format, va_list ap) { const size_t format_len = strlen (format); char *new_format = static_cast (alloca (sizeof (char) * (format_len + 1))); strcpy (new_format, format); new_format[format_len] = '\0'; vfprintf (stream, new_format, ap); } static void vxfprintfln (FILE *stream, const char *format, va_list ap) { const size_t format_len = strlen (format); char *new_format = static_cast (alloca (sizeof (char) * (format_len + 2))); strcpy (new_format, format); new_format[format_len] = '\n'; new_format[format_len + 1] = '\0'; vfprintf (stream, new_format, ap); } static void vxsyslog (int priority, const char *format, va_list ap) { if (!initialized) static_initialize (); char *expanded_format; vasprintf (&expanded_format, format, ap); syslog (priority, "%s", expanded_format); free (expanded_format); } /* Implementations */ void scim_bridge_pdebugln (scim_bridge_debug_level_t level, const char* format,...) { if ((10 - level) <= scim_bridge_debug_get_level ()) { va_list ap; va_start (ap, format); vxfprintfln (stdout, format, ap); va_end (ap); } } void scim_bridge_pdebug (scim_bridge_debug_level_t level, const char* format,...) { if ((10 - level) <= scim_bridge_debug_get_level ()) { va_list ap; va_start (ap, format); vxfprintf (stdout, format, ap); va_end (ap); } } void scim_bridge_perrorln (const char* format,...) { va_list ap; va_start (ap, format); vxfprintfln (stderr, format, ap); va_end (ap); va_start (ap, format); vxsyslog (LOG_ERR, format, ap); va_end (ap); } void scim_bridge_perror (const char* format,...) { va_list ap; va_start (ap, format); vxfprintf (stderr, format, ap); va_end (ap); va_start (ap, format); vxsyslog (LOG_ERR, format, ap); va_end (ap); } void scim_bridge_println (const char* format,...) { va_list ap; va_start (ap, format); vxfprintfln (stdout, format, ap); va_end (ap); va_start (ap, format); vxsyslog (LOG_INFO, format, ap); va_end (ap); } void scim_bridge_print (const char* format,...) { va_list ap; va_start (ap, format); vxfprintf (stdout, format, ap); va_end (ap); va_start (ap, format); vxsyslog (LOG_INFO, format, ap); va_end (ap); } scim-1.4.14/extras/immodules/agent/scim-bridge-agent-panel-listener-protected.h000066400000000000000000000152521177210725600275140ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ /** * @file * @author Ryo Dairiki * @brief This is the header file for the protected interface of ScimBridgeAgentPanelListener. */ #ifndef SCIMBRIDGEAGENTPANELLISTENERPROTECTED_H_ #define SCIMBRIDGEAGENTPANELLISTENERPROTECTED_H_ #define Uses_SCIM_PANEL_CLIENT #include #include #include "scim-bridge-imcontext.h" /** * Protected interface of panel listeners. */ class ScimBridgeAgentPanelListenerProtected { public: /** * Destructor. */ virtual ~ScimBridgeAgentPanelListenerProtected () {} /** * Prepare for the send messages to the panel agent. * It starts storing messages into the buffer. * * @param imcontext_id The id of the IMContext. */ virtual void prepare (scim_bridge_imcontext_id_t imcontext_id) = 0; /** * Send stored messages to the panel agent. */ virtual void send () = 0; /** * Tell the panel to focus in. * * @param factory_uuid The uuid of the IME. */ virtual void focus_in (const scim::String &factory_uuid) = 0; /** * Tell the panel to focus out. */ virtual void focus_out () = 0; /** * Tell the panel to update the current screen. */ virtual void update_screen () = 0; /** * Tell the panel to update the cursor location information. * * @param x The X location of the curosor. * @param y The Y location of the curosor. */ virtual void update_cursor_location (int x, int y) = 0; /** * Tell the panel to reload the IME's information. * * @param factory_info The information of the IME. */ virtual void update_factory_info (const scim::PanelFactoryInfo &factory_info) = 0; /** * Tell the panel to turn off the current IME. */ virtual void turn_on () = 0; /** * Tell the panel to turn on the IME. */ virtual void turn_off () = 0; /** * Tell the panel to show aux string. * * @param str The string. * @param attrs The attributes. */ virtual void set_aux_string (const scim::WideString &str, const scim::AttributeList &attrs) = 0; /** * Tell the panel to show the aux string. */ virtual void show_aux_string () = 0; /** * Tell the panel to hide the aux string. */ virtual void hide_aux_string () = 0; /** * Tell the panel to update the lookup table. * * @param table The lookup table. */ virtual void set_lookup_table (const scim::LookupTable &table) = 0; /** * Tell the panel to hide the lookup table. */ virtual void show_lookup_table () = 0; /** * Tell the panel to hide the lookup table. */ virtual void hide_lookup_table () = 0; /** * Tell the panel to set the cursor position in the preedit. * * @param cursor_pos The cursor position. */ virtual void set_preedit_cursor_position (int cursor_pos) = 0; /** * Tell the panel to set the preedit string. * * @param str The preedit string. * @param attrs The preedit attributes. */ virtual void set_preedit_string (const scim::WideString &str, const scim::AttributeList &attrs) = 0; /** * Tell the panel to show the preedit. */ virtual void show_preedit () = 0; /** * Tell the panel to hide the preedit. */ virtual void hide_preedit () = 0; /** * Tell the panel to start a helper. * * @param helper_uuid The uuid of the helper. */ virtual void start_helper (const scim::String &helper_uuid) = 0; /** * Tell the panel to stop a helper. * * @param helper_uuid The uuid of the helper. */ virtual void stop_helper (const scim::String &helper_uuid) = 0; /** * Tell the panel to send messages to a helper. * * @param helper_uuid The uuid of the helper. * @param trans The trunsaction. */ virtual void send_helper_event (const scim::String &helper_uuid, const scim::Transaction &trans) = 0; /** * Tell the panel to register properties. * * @param properties The properties. */ virtual void register_properties (const scim::PropertyList &properties) = 0; /** * Tell the panel to update a property. * * @param property The property. */ virtual void update_property (const scim::Property &property) = 0; /** * Tell the panel to show the factory menu. * * @param menu The menu items. */ virtual void show_factory_menu (const std::vector &menu) = 0; /** * Tell the panel to show the help text. * * @param string The help text. */ virtual void show_help (const scim::String &string) = 0; /** * tell the panel to register the input context (IMContext). * * @param factory_uuid The uuid of the IME associating with the current IMContext. */ virtual void register_input_context (const scim::String &factory_uuid) = 0; /** * tell the panel to deregister the input context (IMContext). */ virtual void deregister_input_context () = 0; protected: /** * Destructor. */ ScimBridgeAgentPanelListenerProtected () {} }; #endif /*SCIMBRIDGEAGENTPANELLISTENERPROTECTED_H_*/ scim-1.4.14/extras/immodules/agent/scim-bridge-agent-panel-listener.cpp000066400000000000000000000534071177210725600260640ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ #include #include #include #include #include #include #define Uses_SCIM_IMENGINE #define Uses_SCIM_IMENGINE_MODULE #define Uses_SCIM_PANEL_CLIENT #include #include "scim-bridge-agent-imcontext.h" #include "scim-bridge-agent-panel-listener.h" #include "scim-bridge-agent-panel-listener-protected.h" #include "scim-bridge-agent-protected.h" #include "scim-bridge-display.h" #include "scim-bridge-output.h" #include "scim-bridge-path.h" #include "utils/scim-bridge-agent-panel-client.h" using std::vector; using namespace scim; /* Class definition */ class ScimBridgeAgentPanelListenerImpl: public ScimBridgeAgentPanelListener { public: ScimBridgeAgentPanelListenerImpl (const String &config_name, const ScimBridgeDisplay *new_display, ScimBridgeAgentProtected *new_agent); ~ScimBridgeAgentPanelListenerImpl (); retval_t initialize (); int get_socket_fd () const; scim_bridge_agent_event_type_t get_trigger_events () const; bool handle_event (scim_bridge_agent_event_type_t event_type); /* The following functions are virtually protected */ void prepare (scim_bridge_imcontext_id_t imcontext_id); void send (); void focus_in (const String &factory_uuid); void focus_out (); void update_screen (); void update_cursor_location (int x, int y); void update_factory_info (const PanelFactoryInfo &factory_info); void turn_on (); void turn_off (); void set_aux_string (const WideString &str, const AttributeList &attrs); void show_aux_string (); void hide_aux_string (); void set_lookup_table (const LookupTable &table); void show_lookup_table (); void hide_lookup_table (); void set_preedit_cursor_position (int cursor_pos); void set_preedit_string (const WideString &str, const AttributeList &attrs); void show_preedit (); void hide_preedit (); void start_helper (const String &helper_uuid); void stop_helper (const String &helper_uuid); void send_helper_event (const String &helper_uuid, const Transaction &trans); void register_properties (const PropertyList &properties); void update_property (const Property &property); void show_factory_menu (const vector &menu); void show_help (const String &string); void register_input_context (const String &factory_uuid); void deregister_input_context (); private: ScimBridgeAgentProtected *agent; ScimBridgeAgentPanelClient *scim_panel_client; int panel_fd; scim_bridge_imcontext_id_t prepared_imcontext_id; retval_t open_panel_client (); retval_t close_panel_client (); /* Panel related callbacks */ void slot_reload_config (scim_bridge_imcontext_id_t id); void slot_exit (scim_bridge_imcontext_id_t id); void slot_update_lookup_table_page_size (scim_bridge_imcontext_id_t id, int page_size); void slot_lookup_table_page_up (scim_bridge_imcontext_id_t id); void slot_lookup_table_page_down (scim_bridge_imcontext_id_t id); void slot_trigger_property (scim_bridge_imcontext_id_t id, const scim::String &property); void slot_process_helper_event (scim_bridge_imcontext_id_t id, const String &target_uuid, const String &helper_uuid, const Transaction &trans); void slot_move_preedit_caret (scim_bridge_imcontext_id_t id, int caret_pos); void slot_select_candidate (scim_bridge_imcontext_id_t id, int cand_index); void slot_process_key_event (scim_bridge_imcontext_id_t id, const KeyEvent &key_event); void slot_commit (scim_bridge_imcontext_id_t id, const WideString &wstr); void slot_forward_key_event (scim_bridge_imcontext_id_t id, const KeyEvent &key_event); void slot_request_help (scim_bridge_imcontext_id_t id); void slot_request_factory_menu (scim_bridge_imcontext_id_t id); void slot_change_factory (scim_bridge_imcontext_id_t id, const String &uuid); }; /* Implementations */ ScimBridgeAgentPanelListener *ScimBridgeAgentPanelListener::alloc (const String &config_name, const ScimBridgeDisplay *new_display, ScimBridgeAgentProtected *new_agent) { ScimBridgeAgentPanelListenerImpl *panel_listener = new ScimBridgeAgentPanelListenerImpl (config_name, new_display, new_agent); if (panel_listener->initialize ()) { delete panel_listener; return NULL; } else { return panel_listener; } } ScimBridgeAgentPanelListenerImpl::ScimBridgeAgentPanelListenerImpl (const String &config_name, const ScimBridgeDisplay *display, ScimBridgeAgentProtected *new_agent): agent (new_agent), panel_fd (-1), prepared_imcontext_id (-1) { scim_panel_client = ScimBridgeAgentPanelClient::alloc (config_name, display); scim_panel_client->signal_connect_reload_config (slot (this, &ScimBridgeAgentPanelListenerImpl::slot_reload_config)); scim_panel_client->signal_connect_exit (slot (this, &ScimBridgeAgentPanelListenerImpl::slot_exit)); scim_panel_client->signal_connect_update_lookup_table_page_size (slot (this, &ScimBridgeAgentPanelListenerImpl::slot_update_lookup_table_page_size)); scim_panel_client->signal_connect_lookup_table_page_up (slot (this, &ScimBridgeAgentPanelListenerImpl::slot_lookup_table_page_up)); scim_panel_client->signal_connect_lookup_table_page_down (slot (this, &ScimBridgeAgentPanelListenerImpl::slot_lookup_table_page_down)); scim_panel_client->signal_connect_trigger_property (slot (this, &ScimBridgeAgentPanelListenerImpl::slot_trigger_property)); scim_panel_client->signal_connect_process_helper_event (slot (this, &ScimBridgeAgentPanelListenerImpl::slot_process_helper_event)); scim_panel_client->signal_connect_move_preedit_caret (slot (this, &ScimBridgeAgentPanelListenerImpl::slot_move_preedit_caret)); scim_panel_client->signal_connect_select_candidate (slot (this, &ScimBridgeAgentPanelListenerImpl::slot_select_candidate)); scim_panel_client->signal_connect_process_key_event (slot (this, &ScimBridgeAgentPanelListenerImpl::slot_process_key_event)); scim_panel_client->signal_connect_commit_string (slot (this, &ScimBridgeAgentPanelListenerImpl::slot_commit)); scim_panel_client->signal_connect_forward_key_event (slot (this, &ScimBridgeAgentPanelListenerImpl::slot_forward_key_event)); scim_panel_client->signal_connect_request_help (slot (this, &ScimBridgeAgentPanelListenerImpl::slot_request_help)); scim_panel_client->signal_connect_request_factory_menu (slot (this, &ScimBridgeAgentPanelListenerImpl::slot_request_factory_menu)); scim_panel_client->signal_connect_change_factory (slot (this, &ScimBridgeAgentPanelListenerImpl::slot_change_factory)); } ScimBridgeAgentPanelListenerImpl::~ScimBridgeAgentPanelListenerImpl () { delete scim_panel_client; if (panel_fd >= 0) close (panel_fd); } retval_t ScimBridgeAgentPanelListenerImpl::initialize () { for (int i = 0; i < 10; ++i) { if (open_panel_client ()) { usleep (1000); } else { return RETVAL_SUCCEEDED; } } return RETVAL_FAILED; } retval_t ScimBridgeAgentPanelListenerImpl::open_panel_client () { if (scim_panel_client->open_connection () >= 0) { panel_fd = scim_panel_client->get_connection_number (); scim_bridge_pdebugln (3, "Panel fd = %d", panel_fd); return RETVAL_SUCCEEDED; } else { scim_bridge_perrorln ("Failed to open the panel socket"); panel_fd = -1; return RETVAL_FAILED; } } retval_t ScimBridgeAgentPanelListenerImpl::close_panel_client () { scim_bridge_pdebugln (4, "Close the panel client..."); shutdown (panel_fd, SHUT_RDWR); scim_panel_client->close_connection (); panel_fd = -1; prepared_imcontext_id = -1; return RETVAL_FAILED; } int ScimBridgeAgentPanelListenerImpl::get_socket_fd () const { return panel_fd; } scim_bridge_agent_event_type_t ScimBridgeAgentPanelListenerImpl::get_trigger_events () const { return SCIM_BRIDGE_AGENT_EVENT_READ | SCIM_BRIDGE_AGENT_EVENT_ERROR; } bool ScimBridgeAgentPanelListenerImpl::handle_event (scim_bridge_agent_event_type_t event_type) { scim_bridge_pdebugln (2, "handle_event ()"); if ((event_type & SCIM_BRIDGE_AGENT_EVENT_ERROR) || scim_panel_client->filter_event ()) { close_panel_client (); usleep (500); open_panel_client (); } return true; } void ScimBridgeAgentPanelListenerImpl::prepare (scim_bridge_imcontext_id_t imcontext_id) { scim_bridge_pdebugln (5, "prepare ()"); if (panel_fd < 0) { scim_bridge_perrorln ("Connection lost with the panel client"); return; } if (prepared_imcontext_id != -1) { scim_bridge_pdebugln (9, "The panel client has been already prepared"); return; } prepared_imcontext_id = imcontext_id; scim_panel_client->prepare (prepared_imcontext_id); } void ScimBridgeAgentPanelListenerImpl::send () { scim_bridge_pdebugln (5, "send ()"); if (prepared_imcontext_id == -1) { scim_bridge_pdebugln (8, "Panel client has not yet been prepared"); } else { scim_panel_client->send (); prepared_imcontext_id = -1; } } void ScimBridgeAgentPanelListenerImpl::focus_in (const String &factory_uuid) { if (prepared_imcontext_id == -1) { scim_bridge_pdebugln (8, "Panel client has not yet been prepared"); return; } scim_panel_client->focus_in (factory_uuid); } void ScimBridgeAgentPanelListenerImpl::focus_out () { if (prepared_imcontext_id == -1) { scim_bridge_pdebugln (8, "Panel client has not yet been prepared"); return; } scim_panel_client->focus_out (); } void ScimBridgeAgentPanelListenerImpl::update_screen () { if (prepared_imcontext_id == -1) { scim_bridge_pdebugln (8, "Panel client has not yet been prepared"); return; } scim_panel_client->update_screen (); } void ScimBridgeAgentPanelListenerImpl::update_cursor_location (int x, int y) { if (prepared_imcontext_id == -1) { scim_bridge_pdebugln (8, "Panel client has not yet been prepared"); return; } scim_panel_client->update_spot_location (x, y); } void ScimBridgeAgentPanelListenerImpl::update_factory_info (const PanelFactoryInfo &factory_info) { if (prepared_imcontext_id == -1) { scim_bridge_pdebugln (8, "Panel client has not yet been prepared"); return; } scim_panel_client->update_factory_info (factory_info); } void ScimBridgeAgentPanelListenerImpl::turn_on () { if (prepared_imcontext_id == -1) { scim_bridge_pdebugln (8, "Panel client has not yet been prepared"); return; } scim_panel_client->turn_on (); } void ScimBridgeAgentPanelListenerImpl::turn_off () { if (prepared_imcontext_id == -1) { scim_bridge_pdebugln (8, "Panel client has not yet been prepared"); return; } scim_panel_client->turn_off (); } void ScimBridgeAgentPanelListenerImpl::show_aux_string () { if (prepared_imcontext_id == -1) { scim_bridge_pdebugln (8, "Panel client has not yet been prepared"); return; } scim_panel_client->show_aux_string (); } void ScimBridgeAgentPanelListenerImpl::hide_aux_string () { if (prepared_imcontext_id == -1) { scim_bridge_pdebugln (8, "Panel client has not yet been prepared"); return; } scim_panel_client->hide_aux_string (); } void ScimBridgeAgentPanelListenerImpl::set_aux_string (const WideString &str, const AttributeList &attrs) { if (prepared_imcontext_id == -1) { scim_bridge_pdebugln (8, "Panel client has not yet been prepared"); return; } scim_panel_client->update_aux_string (str, attrs); } void ScimBridgeAgentPanelListenerImpl::set_lookup_table (const LookupTable &table) { if (prepared_imcontext_id == -1) { scim_bridge_pdebugln (8, "Panel client has not yet been prepared"); return; } scim_panel_client->update_lookup_table (table); } void ScimBridgeAgentPanelListenerImpl::show_lookup_table () { if (prepared_imcontext_id == -1) { scim_bridge_pdebugln (8, "Panel client has not yet been prepared"); return; } scim_panel_client->show_lookup_table (); } void ScimBridgeAgentPanelListenerImpl::hide_lookup_table () { if (prepared_imcontext_id == -1) { scim_bridge_pdebugln (8, "Panel client has not yet been prepared"); return; } scim_panel_client->hide_lookup_table (); } void ScimBridgeAgentPanelListenerImpl::set_preedit_cursor_position (int cursor_pos) { if (prepared_imcontext_id == -1) { scim_bridge_pdebugln (8, "Panel client has not yet been prepared"); return; } scim_panel_client->update_preedit_caret (cursor_pos); } void ScimBridgeAgentPanelListenerImpl::set_preedit_string (const WideString &str, const AttributeList &attrs) { if (prepared_imcontext_id == -1) { scim_bridge_pdebugln (8, "Panel client has not yet been prepared"); return; } scim_panel_client->update_preedit_string (str, attrs); } void ScimBridgeAgentPanelListenerImpl::show_preedit () { if (prepared_imcontext_id == -1) { scim_bridge_pdebugln (8, "Panel client has not yet been prepared"); return; } scim_panel_client->show_preedit_string (); } void ScimBridgeAgentPanelListenerImpl::hide_preedit () { if (prepared_imcontext_id == -1) { scim_bridge_pdebugln (8, "Panel client has not yet been prepared"); return; } scim_panel_client->hide_preedit_string (); } void ScimBridgeAgentPanelListenerImpl::register_properties (const PropertyList &properties) { if (prepared_imcontext_id == -1) { scim_bridge_pdebugln (8, "Panel client has not yet been prepared"); return; } scim_panel_client->register_properties (properties); } void ScimBridgeAgentPanelListenerImpl::update_property (const Property &property) { if (prepared_imcontext_id == -1) { scim_bridge_pdebugln (8, "Panel client has not yet been prepared"); return; } scim_panel_client->update_property (property); } void ScimBridgeAgentPanelListenerImpl::start_helper (const String &helper_uuid) { if (prepared_imcontext_id == -1) { scim_bridge_pdebugln (8, "Panel client has not yet been prepared"); return; } scim_panel_client->start_helper (helper_uuid); } void ScimBridgeAgentPanelListenerImpl::stop_helper (const String &helper_uuid) { if (prepared_imcontext_id == -1) { scim_bridge_pdebugln (8, "Panel client has not yet been prepared"); return; } scim_panel_client->stop_helper (helper_uuid); } void ScimBridgeAgentPanelListenerImpl::send_helper_event (const String &helper_uuid, const Transaction &trans) { if (prepared_imcontext_id == -1) { scim_bridge_pdebugln (8, "Panel client has not yet been prepared"); return; } scim_panel_client->send_helper_event (helper_uuid, trans); } void ScimBridgeAgentPanelListenerImpl::show_factory_menu (const vector &menu) { if (prepared_imcontext_id == -1) { scim_bridge_pdebugln (8, "Panel client has not yet been prepared"); return; } scim_panel_client->show_factory_menu (menu); } void ScimBridgeAgentPanelListenerImpl::show_help (const scim::String &string) { if (prepared_imcontext_id == -1) { scim_bridge_pdebugln (8, "Panel client has not yet been prepared"); return; } scim_panel_client->show_help (string); } void ScimBridgeAgentPanelListenerImpl::register_input_context (const String &factory_uuid) { if (prepared_imcontext_id == -1) { scim_bridge_pdebugln (8, "Panel client has not yet been prepared"); return; } scim_panel_client->register_input_context (factory_uuid); } void ScimBridgeAgentPanelListenerImpl::deregister_input_context () { if (prepared_imcontext_id == -1) { scim_bridge_pdebugln (8, "Panel client has not yet been prepared"); return; } scim_panel_client->remove_input_context (); } /* Slot functions */ void ScimBridgeAgentPanelListenerImpl::slot_reload_config (scim_bridge_imcontext_id_t imcontext_id) { agent->load_config (); } void ScimBridgeAgentPanelListenerImpl::slot_exit (scim_bridge_imcontext_id_t imcontext_id) { scim_bridge_perrorln ("FIXME: not implemented yet: ScimBridgeAgentPanelListenerImpl::slot_exit ()"); } void ScimBridgeAgentPanelListenerImpl::slot_update_lookup_table_page_size (scim_bridge_imcontext_id_t imcontext_id, int page_size) { ScimBridgeAgentIMContext *imcontext = ScimBridgeAgentIMContext::find (imcontext_id); if (imcontext != NULL) { prepare (imcontext_id); imcontext->update_lookup_table_page_size (page_size); send (); } } void ScimBridgeAgentPanelListenerImpl::slot_lookup_table_page_up (scim_bridge_imcontext_id_t imcontext_id) { ScimBridgeAgentIMContext *imcontext = ScimBridgeAgentIMContext::find (imcontext_id); if (imcontext != NULL) { prepare (imcontext_id); imcontext->lookup_table_page_up (); send (); } } void ScimBridgeAgentPanelListenerImpl::slot_lookup_table_page_down (scim_bridge_imcontext_id_t imcontext_id) { ScimBridgeAgentIMContext *imcontext = ScimBridgeAgentIMContext::find (imcontext_id); if (imcontext != NULL) { prepare (imcontext_id); imcontext->lookup_table_page_down (); send (); } } void ScimBridgeAgentPanelListenerImpl::slot_trigger_property (scim_bridge_imcontext_id_t imcontext_id, const scim::String &property) { ScimBridgeAgentIMContext *imcontext = ScimBridgeAgentIMContext::find (imcontext_id); if (imcontext != NULL) { prepare (imcontext_id); imcontext->trigger_property (property); send (); } } void ScimBridgeAgentPanelListenerImpl::slot_process_helper_event (scim_bridge_imcontext_id_t imcontext_id, const String &target_uuid, const String &helper_uuid, const Transaction &trans) { ScimBridgeAgentIMContext *imcontext = ScimBridgeAgentIMContext::find (imcontext_id); if (imcontext != NULL) { prepare (imcontext_id); imcontext->process_helper_event (target_uuid, helper_uuid, trans); send (); } } void ScimBridgeAgentPanelListenerImpl::slot_move_preedit_caret (scim_bridge_imcontext_id_t imcontext_id, int caret_pos) { ScimBridgeAgentIMContext *imcontext = ScimBridgeAgentIMContext::find (imcontext_id); if (imcontext != NULL) { prepare (imcontext_id); imcontext->panel_move_preedit_caret (caret_pos); send (); } } void ScimBridgeAgentPanelListenerImpl::slot_select_candidate (scim_bridge_imcontext_id_t imcontext_id, int cand_index) { ScimBridgeAgentIMContext *imcontext = ScimBridgeAgentIMContext::find (imcontext_id); if (imcontext != NULL) { prepare (imcontext_id); imcontext->lookup_table_select_candidate (cand_index); send (); } } void ScimBridgeAgentPanelListenerImpl::slot_process_key_event (scim_bridge_imcontext_id_t imcontext_id, const KeyEvent &key_event) { ScimBridgeAgentIMContext *imcontext = ScimBridgeAgentIMContext::find (imcontext_id); if (imcontext != NULL) { prepare (imcontext_id); if (!agent->filter_key_event (imcontext_id, key_event)) { imcontext->forward_key_event (key_event); } send (); } } void ScimBridgeAgentPanelListenerImpl::slot_commit (scim_bridge_imcontext_id_t imcontext_id, const WideString &wstr) { ScimBridgeAgentIMContext *imcontext = ScimBridgeAgentIMContext::find (imcontext_id); if (imcontext != NULL) { prepare (imcontext_id); imcontext->panel_commit_string (wstr); send (); } } void ScimBridgeAgentPanelListenerImpl::slot_forward_key_event (scim_bridge_imcontext_id_t imcontext_id, const KeyEvent &key_event) { ScimBridgeAgentIMContext *imcontext = ScimBridgeAgentIMContext::find (imcontext_id); if (imcontext != NULL) { prepare (imcontext_id); imcontext->forward_key_event (key_event); send (); } } void ScimBridgeAgentPanelListenerImpl::slot_request_help (scim_bridge_imcontext_id_t imcontext_id) { ScimBridgeAgentIMContext *imcontext = ScimBridgeAgentIMContext::find (imcontext_id); if (imcontext != NULL) { prepare (imcontext_id); imcontext->panel_request_help (); send (); } } void ScimBridgeAgentPanelListenerImpl::slot_request_factory_menu (scim_bridge_imcontext_id_t imcontext_id) { ScimBridgeAgentIMContext *imcontext = ScimBridgeAgentIMContext::find (imcontext_id); if (imcontext != NULL) { prepare (imcontext_id); agent->request_factory_menu (); send (); } } void ScimBridgeAgentPanelListenerImpl::slot_change_factory (scim_bridge_imcontext_id_t imcontext_id, const String &uuid) { ScimBridgeAgentIMContext *imcontext = ScimBridgeAgentIMContext::find (imcontext_id); if (imcontext != NULL) { prepare (imcontext_id); imcontext->panel_change_factory (uuid); send (); agent->save_config (); } } scim-1.4.14/extras/immodules/agent/scim-bridge-agent-panel-listener.h000066400000000000000000000041111177210725600255150ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ /** * @file * @author Ryo Dairiki * @brief This is the header file for ScimBridgeAgentPanelListener. */ #ifndef SCIMBRIDGEAGENTPANELLISTENER_H_ #define SCIMBRIDGEAGENTPANELLISTENER_H_ #include #include "scim-bridge-agent-panel-listener-protected.h" #include "scim-bridge-agent-socket-client.h" #include "scim-bridge-display.h" #include "scim-bridge-imcontext.h" class ScimBridgeAgentProtected; /** * The class of panel listeners, which communicate with panel agents. */ class ScimBridgeAgentPanelListener: public ScimBridgeAgentSocketClient, public ScimBridgeAgentPanelListenerProtected { public: /** * Allocate a panel listener. * * @param config_name The name of the current configuration. * @param display The current display. * @param agent The agent. */ static ScimBridgeAgentPanelListener *alloc (const scim::String &config_name, const ScimBridgeDisplay *display, ScimBridgeAgentProtected *agent); /** * Destructor. */ virtual ~ScimBridgeAgentPanelListener () {} protected: /** * Constructor. */ ScimBridgeAgentPanelListener () {} }; #endif /*SCIMBRIDGEAGENTPANELLISTENER_H_*/ scim-1.4.14/extras/immodules/agent/scim-bridge-agent-protected.h000066400000000000000000000127271177210725600246000ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ #ifndef SCIMBRIDGEAGENTPROTECTED_H_ #define SCIMBRIDGEAGENTPROTECTED_H_ /** * @file * @author Ryo Dairiki * @brief This is the header file for the protected interface of ScimBridgeAgent. */ #define Uses_SCIM_EVENT #define Uses_SCIM_TRANSACTION #include #include "scim-bridge-display.h" #include "scim-bridge-imcontext.h" class ScimBridgeAgentClientListener; class ScimBridgeAgentIMContext; class ScimBridgeAgentPanelListener; /** * The protected interfaces of the agent. */ class ScimBridgeAgentProtected { public: /** * Destructor. */ virtual ~ScimBridgeAgentProtected () {} /** * Make an interruption upon the main event loop of the agent. */ virtual void interrupt () = 0; /** * Quit the agent process. */ virtual void quit () = 0; /** * Load the configuration. */ virtual void load_config () = 0; /** * Save the configuration. */ virtual void save_config () = 0; /** * Add a new client application. * * @param client_lisener The new client listener for the application. */ virtual void add_client_listener (ScimBridgeAgentClientListener *client_listener) = 0; /** * Remove a client application. * * @param client_listener The client listener for the application. */ virtual void remove_client_listener (ScimBridgeAgentClientListener *client_listener) = 0; /** * Filter hot key events. * * @param imcontext_id The ID of IMContext. * @param key_event The key event. * @return Whether the key event is consumed or not. */ virtual bool filter_hotkeys (scim_bridge_imcontext_id_t imcontext_id, const scim::KeyEvent &key_event) = 0; /** * Filter a key event. * * @param imcontext_id The ID of IMContext. * @param key_event The key event. * @return Whether the key event is consumed or not. */ virtual bool filter_key_event (scim_bridge_imcontext_id_t imcontext_id, const scim::KeyEvent &key_event) = 0; /** * Request to show the factory menu. */ virtual void request_factory_menu () = 0; /** * Allocate an IMContext. * * @param client_listener The client listener. * @return The ID of the new IMContext. */ virtual scim_bridge_imcontext_id_t alloc_imcontext (ScimBridgeAgentClientListener *client_listener) = 0; /** * Free an IMContext. * * @param client_listener The client listener. * @param imcontext_id The ID of the IMContext. */ virtual void free_imcontext (scim_bridge_imcontext_id_t imcontext_id, const ScimBridgeAgentClientListener *client_listener) = 0; /** * Reset an IMContext. * * @param imcontext_id The ID of the IMContext. */ virtual void reset_imcontext (scim_bridge_imcontext_id_t imcontext_id) = 0; /** * Enable an IMContext. * * @param imcontext_id The ID of the IMContext. */ virtual void enable_imcontext (scim_bridge_imcontext_id_t imcontext_id) = 0; /** * Disable an IMContext. * * @param imcontext_id The ID of the IMContext. */ virtual void disable_imcontext (scim_bridge_imcontext_id_t imcontext_id) = 0; /** * Set the cursor location in the display. * * @param imcontext_id The ID of the IMContext. * @param cursor_x The X location of the cursor. * @param cursor_y The Y location of the cursor. */ virtual void set_cursor_location (scim_bridge_imcontext_id_t imcontext_id, int cursor_x, int cursor_y) = 0; /** * Set the preedit mode of an IMContext. * * @param imcontext_id The ID of the IMContext. * @param preedit_mode The new preedit mode. */ virtual void set_preedit_mode (scim_bridge_imcontext_id_t imcontext_id, scim_bridge_preedit_mode_t preedit_mode) = 0; /** * Change the focus of an IMContext. * * @param imcontext_id The ID of the IMContext. * @param focus_in If it grabs an focus or not. */ virtual void change_focus (scim_bridge_imcontext_id_t imcontext_id, bool focus_in) = 0; protected: /** * Constructor. */ ScimBridgeAgentProtected () {} }; #endif /*SCIMBRIDGEAGENTPROTECTED_H_*/ scim-1.4.14/extras/immodules/agent/scim-bridge-agent-signal-listener.cpp000066400000000000000000000071161177210725600262360ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ #include #include #include #include #include #include #include #include #include "scim-bridge-output.h" #include "scim-bridge-agent-protected.h" #include "scim-bridge-agent-signal-listener.h" /* Static variable */ static bool signal_occurred = FALSE; static int pipe_out = -1; static int pipe_in = -1; /* Class definition */ class ScimBridgeAgentSignalListenerImpl: public ScimBridgeAgentSignalListener { public: ScimBridgeAgentSignalListenerImpl (ScimBridgeAgentProtected *new_agent); ~ScimBridgeAgentSignalListenerImpl (); int get_socket_fd () const; scim_bridge_agent_event_type_t get_trigger_events () const; bool handle_event (scim_bridge_agent_event_type_t event_type); private: ScimBridgeAgentProtected *agent; }; /* Helper functions */ static void sig_quit (int sig) { if (!signal_occurred) { signal_occurred = true; send (pipe_in, '\0', sizeof (char), MSG_NOSIGNAL); } } static void static_finalize () { if (pipe_out >= 0) close (pipe_out); if (pipe_in >= 0) close (pipe_in); } /* Implementations */ ScimBridgeAgentSignalListener *ScimBridgeAgentSignalListener::alloc (ScimBridgeAgentProtected *new_agent) { static bool first_time = true; if (first_time) { int pipe_pair[2]; if (socketpair (PF_UNIX, SOCK_STREAM, 0, pipe_pair)) { scim_bridge_perrorln ("Cannot make a pipe for the signal listener: %s", strerror (errno)); return NULL; } pipe_out = pipe_pair[0]; pipe_in = pipe_pair[1]; struct sigaction quit_action; quit_action.sa_handler = &sig_quit; quit_action.sa_flags = 0; sigemptyset (&quit_action.sa_mask); sigaction (SIGTERM, &quit_action, NULL); sigaction (SIGINT, &quit_action, NULL); sigaction (SIGQUIT, &quit_action, NULL); sigaction (SIGHUP, &quit_action, NULL); atexit (&static_finalize); ScimBridgeAgentSignalListenerImpl *signal_listener = new ScimBridgeAgentSignalListenerImpl (new_agent); first_time = false; return signal_listener; } else { return NULL; } } ScimBridgeAgentSignalListenerImpl::ScimBridgeAgentSignalListenerImpl (ScimBridgeAgentProtected *new_agent): agent (new_agent) { } ScimBridgeAgentSignalListenerImpl::~ScimBridgeAgentSignalListenerImpl () { } int ScimBridgeAgentSignalListenerImpl::get_socket_fd () const { return pipe_in; } scim_bridge_agent_event_type_t ScimBridgeAgentSignalListenerImpl::get_trigger_events () const { return SCIM_BRIDGE_AGENT_EVENT_READ; } bool ScimBridgeAgentSignalListenerImpl::handle_event (scim_bridge_agent_event_type_t event_type) { if (signal_occurred) agent->quit (); return true; } scim-1.4.14/extras/immodules/agent/scim-bridge-agent-signal-listener.h000066400000000000000000000036221177210725600257010ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ /** * @file * @author Ryo Dairiki * @brief This is the header file for ScimBridgeAgentSignalListener. */ #ifndef SCIMBRIDGEAGENTSIGNALLISTENER_H_ #define SCIMBRIDGEAGENTSIGNALLISTENER_H_ #include "scim-bridge.h" #include "scim-bridge-agent-socket-client.h" class ScimBridgeAgentProtected; /** * The class of signal listeners, which listen to the signals and quit the agent properly. */ class ScimBridgeAgentSignalListener: public ScimBridgeAgentSocketClient { public: /** * Allocate an signal listener. You cannot allocate more than one signal listener. * * @param agent The agent. * @return A new signal listener, or NULL if it failed to initialize it. */ static ScimBridgeAgentSignalListener *alloc (ScimBridgeAgentProtected *agent); /** * Destructor. */ virtual ~ScimBridgeAgentSignalListener () {} protected: /** * Constructor. */ ScimBridgeAgentSignalListener () {} }; #endif /*SCIMBRIDGEAGENTSIGNALLISTENER_H_*/ scim-1.4.14/extras/immodules/agent/scim-bridge-agent-socket-client.h000066400000000000000000000063621177210725600253510ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ /** * @file * @author Ryo Dairiki * @brief This is the header file for ScimBridgeAgentSocketClient. */ #ifndef SCIMBRIDGEAGENTSOCKETCLIENT_H_ #define SCIMBRIDGEAGENTSOCKETCLIENT_H_ #include "scim-bridge.h" /** * The type value for IDs of event clients. */ typedef int scim_bridge_agent_event_client_id_t; /** * The type value for types of sockets. */ typedef unsigned int scim_bridge_agent_event_type_t; /** * There is no event at all. */ static const scim_bridge_agent_event_type_t SCIM_BRIDGE_AGENT_EVENT_NONE = 0; /** * The socket is ready for reading. */ static const scim_bridge_agent_event_type_t SCIM_BRIDGE_AGENT_EVENT_READ = 1 << 0; /** * The socket is ready for writing. */ static const scim_bridge_agent_event_type_t SCIM_BRIDGE_AGENT_EVENT_WRITE = 1 << 1; /** * The socket caused some errors. */ static const scim_bridge_agent_event_type_t SCIM_BRIDGE_AGENT_EVENT_ERROR = 1 << 2; /** * The client has caught an interruption. */ static const scim_bridge_agent_event_type_t SCIM_BRIDGE_AGENT_EVENT_INTERRUPT = 1 << 3; /** * The class of clients of a socket server. */ class ScimBridgeAgentSocketClient { public: /** * Destructor. * Close the socket if it's still opened. */ virtual ~ScimBridgeAgentSocketClient () {} /** * Get the file discriptor for the client. * The file discriptor is used for pooling in the main event loop. * * @return The file discriptor for the client. */ virtual int get_socket_fd () const = 0; /** * Get the wakeup condition of the client. * This value is used for selecting the clients in the event loop. * handle_events () is called when the given type of events are occurred. * * @return The wakeup conditions. */ virtual scim_bridge_agent_event_type_t get_trigger_events () const = 0; /** * Handle an event in the socket. * This function is called when a event is occurred upon the socket. * * @param event_type The type of this event. * @return If this client should be kept in the event loop. */ virtual bool handle_event (scim_bridge_agent_event_type_t event_type) = 0; protected: /** * Constructor. */ ScimBridgeAgentSocketClient () {} }; #endif /*SCIMBRIDGEAGENTSOCKETCLIENT_H_*/ scim-1.4.14/extras/immodules/agent/scim-bridge-agent.cpp000066400000000000000000000666061177210725600231510ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */; #include #include #include #include #include #include #include #include #include #include #define Uses_SCIM_BACKEND #define Uses_SCIM_CONFIG #define Uses_SCIM_CONFIG_MODULE #define Uses_SCIM_CONFIG_PATH #define Uses_SCIM_EVENT #define Uses_SCIM_FRONTEND #define Uses_SCIM_PANEL_CLIENT #define Uses_SCIM_HOTKEY #define Uses_SCIM_IMENGINE #define Uses_SCIM_IMENGINE_MODULE #include #include "scim-bridge-agent.h" #include "scim-bridge-agent-accept-listener.h" #include "scim-bridge-agent-client-listener.h" #include "scim-bridge-agent-imcontext.h" #include "scim-bridge-agent-interruption-listener.h" #include "scim-bridge-agent-panel-listener.h" #include "scim-bridge-agent-protected.h" #include "scim-bridge-agent-signal-listener.h" #include "scim-bridge-agent-socket-client.h" #include "scim-bridge-debug.h" #include "scim-bridge-display.h" #include "scim-bridge-output.h" #include "scim-bridge-path.h" using std::endl; using std::ifstream; using std::list; using std::ofstream; using std::vector; using namespace scim; /* Macros */ #ifndef SCIM_KEYBOARD_ICON_FILE #define SCIM_KEYBOARD_ICON_FILE (SCIM_ICONDIR "/keyboard.png") #endif /* Class definition */ class ScimBridgeAgentImpl: public ScimBridgeAgent, public ScimBridgeAgentProtected { public: ScimBridgeAgentImpl (); ~ScimBridgeAgentImpl (); retval_t launch (); void set_noexit_enabled (bool enabled); void set_standalone_enabled (bool enabled); /* Semi public funcitons */ retval_t initialize (); retval_t finalize (); ScimBridgeAgentPanelListener *get_panel_listener (const ScimBridgeDisplay *new_display); void interrupt (); void quit (); void load_config (); void save_config (); void add_client_listener (ScimBridgeAgentClientListener *client_listener); void remove_client_listener (ScimBridgeAgentClientListener *client_listener); bool filter_hotkeys (scim_bridge_imcontext_id_t imcontext_id, const KeyEvent &key_event); virtual bool filter_key_event (scim_bridge_imcontext_id_t imcontext_id, const KeyEvent &key_event); void request_factory_menu (); scim_bridge_imcontext_id_t alloc_imcontext (ScimBridgeAgentClientListener *client_listener); void free_imcontext (scim_bridge_imcontext_id_t imcontext_id, const ScimBridgeAgentClientListener *client_listener); void reset_imcontext (scim_bridge_imcontext_id_t imcontext_id); void enable_imcontext (scim_bridge_imcontext_id_t imcontext_id); void disable_imcontext (scim_bridge_imcontext_id_t imcontext_id); void set_cursor_location (scim_bridge_imcontext_id_t imcontext_id, int cursor_x, int cursor_y); void set_preedit_mode (scim_bridge_imcontext_id_t imcontext_id, scim_bridge_preedit_mode_t preedit_mode); void change_focus (scim_bridge_imcontext_id_t imcontext_id, bool focus_in); private: bool running; bool noexit_enabled; bool standalone_enabled; list clients; size_t client_app_count; String scim_language; ConfigModule *scim_config_module; ConfigPointer scim_config; BackEndPointer scim_backend; KeyboardLayout scim_keyboard_layout; FrontEndHotkeyMatcher scim_frontend_hotkey_matcher; IMEngineHotkeyMatcher scim_imengine_hotkey_matcher; ScimBridgeAgentAcceptListener *accept_listener; ScimBridgeAgentInterruptionListener *interruption_listener; ScimBridgeAgentPanelListener *panel_listener; ScimBridgeAgentSignalListener *signal_listener; ScimBridgeDisplay *display; int valid_key_mask; retval_t initialize_scim (); retval_t finalize_scim (); retval_t run_event_loop (); retval_t check_socket (); void slot_reload_config (const ConfigPointer &config); }; /* Helper functions */ static bool is_socket_frontend_ready () { SocketAddress address; address.set_address (scim_get_default_socket_frontend_address ()); SocketClient socket_client; if (!socket_client.connect (address)) { scim_bridge_pdebugln (8, "There is no socket frontend at all."); return false; } else { uint32_t magic; if (!scim_socket_open_connection (magic, "ConnectionTester", "SocketFrontEnd", socket_client, 1000)) { scim_bridge_pdebugln (8, "Failed to connect the socket fronent."); return false; } else { return true; } } } /* Implimentations */ ScimBridgeAgent *ScimBridgeAgent::alloc () { ScimBridgeAgentImpl *agent = new ScimBridgeAgentImpl (); if (agent->initialize ()) { delete agent; return NULL; } else { return agent; } } ScimBridgeAgentImpl::ScimBridgeAgentImpl (): running (true), noexit_enabled (false), standalone_enabled (false), client_app_count (0), accept_listener (NULL), interruption_listener (NULL), panel_listener (NULL), signal_listener (NULL), display (NULL) { } ScimBridgeAgentImpl::~ScimBridgeAgentImpl () { finalize (); } void ScimBridgeAgentImpl::set_noexit_enabled (bool enabled) { noexit_enabled = enabled; } void ScimBridgeAgentImpl::set_standalone_enabled (bool enabled) { standalone_enabled = enabled; } retval_t ScimBridgeAgentImpl::run_event_loop () { scim_bridge_pdebugln (5, "run_event_loop ()"); while (running) { int max_fd = -1; fd_set read_set; fd_set write_set; fd_set error_set; FD_ZERO (&read_set); FD_ZERO (&write_set); FD_ZERO (&error_set); for (list::iterator i = clients.begin (); running && i != clients.end ();) { ScimBridgeAgentSocketClient *client = *i; const scim_bridge_agent_event_type_t triggers = client->get_trigger_events (); const int socket_fd = client->get_socket_fd (); if (socket_fd < 0) { if (triggers & SCIM_BRIDGE_AGENT_EVENT_ERROR && !client->handle_event (SCIM_BRIDGE_AGENT_EVENT_ERROR)) { i = clients.erase (i); delete client; continue; } } else { if (socket_fd > max_fd) max_fd = socket_fd; if (triggers & SCIM_BRIDGE_AGENT_EVENT_READ) { scim_bridge_pdebugln (1, "FD (%d) is registred as a reading socket", socket_fd); FD_SET (socket_fd, &read_set); } if (triggers & SCIM_BRIDGE_AGENT_EVENT_WRITE) { FD_SET (socket_fd, &write_set); scim_bridge_pdebugln (1, "FD (%d) is registred as a writing socket", socket_fd); } if (triggers & SCIM_BRIDGE_AGENT_EVENT_ERROR) { FD_SET (socket_fd, &error_set); scim_bridge_pdebugln (1, "FD (%d) is registred as a error socket", socket_fd); } } ++i; } scim_bridge_pdebugln (2, "Waiting for an event..."); const int retval = select (max_fd + 1, &read_set, &write_set, &error_set, NULL); if (retval < 0 && errno != EINTR) { if (errno == EINTR || errno == EAGAIN || errno == EWOULDBLOCK) { continue; } else { scim_bridge_perrorln ("An exception occurred at selecting the sockets: %s", strerror (errno)); } } const bool interrupted = interruption_listener->is_interrupted (); interruption_listener->clear_interruption (); if (interrupted) scim_bridge_pdebugln (3, "Caught an interruption"); for (list::iterator i = clients.begin (); i != clients.end ();) { ScimBridgeAgentSocketClient *client = *i; const int socket_fd = client->get_socket_fd (); const scim_bridge_agent_event_type_t triggers = client->get_trigger_events (); scim_bridge_agent_event_type_t events = SCIM_BRIDGE_AGENT_EVENT_NONE; if (socket_fd >= 0 && FD_ISSET (socket_fd, &read_set) && (triggers & SCIM_BRIDGE_AGENT_EVENT_READ)) { if (events == SCIM_BRIDGE_AGENT_EVENT_NONE) { scim_bridge_pdebug (2, "Invoked triggers: READ"); } else { scim_bridge_pdebug (2, ", READ"); } events |= SCIM_BRIDGE_AGENT_EVENT_READ; } if (socket_fd >= 0 && FD_ISSET (socket_fd, &write_set) && (triggers & SCIM_BRIDGE_AGENT_EVENT_WRITE)) { if (events == SCIM_BRIDGE_AGENT_EVENT_NONE) { scim_bridge_pdebug (2, "Invoked triggers: WRITE"); } else { scim_bridge_pdebug (2, ", WRITE"); } events |= SCIM_BRIDGE_AGENT_EVENT_WRITE; } if ((socket_fd < 0 || FD_ISSET (socket_fd, &error_set)) && (triggers & SCIM_BRIDGE_AGENT_EVENT_ERROR)) { if (events == SCIM_BRIDGE_AGENT_EVENT_NONE) { scim_bridge_pdebug (2, "Invoked triggers: ERROR"); } else { scim_bridge_pdebug (2, ", ERROR"); } events |= SCIM_BRIDGE_AGENT_EVENT_ERROR; } if (interrupted && (triggers & SCIM_BRIDGE_AGENT_EVENT_INTERRUPT)) { if (events == SCIM_BRIDGE_AGENT_EVENT_NONE) { scim_bridge_pdebug (2, "Invoked triggers: INTERRUPT"); } else { scim_bridge_pdebug (2, ", INTERRUPT"); } events |= SCIM_BRIDGE_AGENT_EVENT_INTERRUPT; } if (events != SCIM_BRIDGE_AGENT_EVENT_NONE) { scim_bridge_pdebug (2, "\n"); if (!client->handle_event (events)) { i = clients.erase (i); delete client; continue; } } ++i; } } return RETVAL_SUCCEEDED; } retval_t ScimBridgeAgentImpl::launch () { scim_bridge_pdebugln (5, "launch ()"); if (!standalone_enabled) { scim_bridge_pdebugln (5, "Daemonizing..."); const pid_t pid = fork (); if (pid < 0) { scim_bridge_perrorln ("Cannot fork myself: %s", strerror (errno)); return RETVAL_FAILED; } else if (pid > 0) { _exit (0); } else { // This is the child process. if (chdir ("/tmp")) { scim_bridge_perrorln ("Cannot change the working directory: %s", strerror (errno)); return RETVAL_FAILED; } close (STDIN_FILENO); close (STDOUT_FILENO); close (STDERR_FILENO); } scim_bridge_pdebugln (5, "Daemonize done"); } run_event_loop (); return RETVAL_SUCCEEDED; } retval_t ScimBridgeAgentImpl::initialize () { accept_listener = ScimBridgeAgentAcceptListener::alloc (this); if (accept_listener == NULL) return RETVAL_FAILED; clients.push_back (accept_listener); display = scim_bridge_alloc_display (); if (scim_bridge_display_fetch_current (display)) { scim_bridge_perrorln ("Failed to allocate the current display"); return RETVAL_FAILED; } if (initialize_scim ()) { scim_bridge_perrorln ("Failed to initialize scim"); return RETVAL_FAILED; } scim_bridge_pdebugln (4, "Loading configurations..."); slot_reload_config (scim_config); scim_config->signal_connect_reload (slot (this, &ScimBridgeAgentImpl::slot_reload_config)); interruption_listener = ScimBridgeAgentInterruptionListener::alloc (); if (interruption_listener == NULL) return RETVAL_FAILED; clients.push_back (interruption_listener); panel_listener = ScimBridgeAgentPanelListener::alloc (scim_config->get_name (), display, this); if (panel_listener == NULL) return RETVAL_FAILED; clients.push_back (panel_listener); signal_listener = ScimBridgeAgentSignalListener::alloc (this); if (signal_listener == NULL) return RETVAL_FAILED; clients.push_back (signal_listener); ScimBridgeAgentIMContext::static_initialize (panel_listener, scim_language, scim_backend); scim_bridge_pdebugln (4, "ScimBridgeAgent is now ready"); return RETVAL_SUCCEEDED; } retval_t ScimBridgeAgentImpl::finalize () { for (list::iterator i = clients.begin (); i != clients.end (); ++i) { ScimBridgeAgentSocketClient *client = *i; delete client; } clients.clear (); ScimBridgeAgentIMContext::static_finalize (); finalize_scim (); if (display != NULL) { scim_bridge_free_display (display); display = NULL; } scim_bridge_pdebugln (4, "Finalize, done"); return RETVAL_SUCCEEDED; } retval_t ScimBridgeAgentImpl::initialize_scim () { scim_bridge_pdebugln (6, "Initializing scim..."); // Get system language. scim_language = scim_get_locale_language (scim_get_current_locale ()); // Get imengine modules vector imengine_module_names; scim_get_imengine_module_list (imengine_module_names); if (find (imengine_module_names.begin (), imengine_module_names.end (), "socket") == imengine_module_names.end ()) { scim_bridge_perrorln ("There is no socket frontend of IMEngines for SCIM..."); return RETVAL_FAILED; } imengine_module_names.clear(); imengine_module_names.push_back("socket"); // Get config modules vector config_module_names; scim_get_config_module_list (config_module_names); if (find (config_module_names.begin (), config_module_names.end (), "socket") == config_module_names.end ()) { scim_bridge_perrorln ("There is no socket frontend of config module for SCIM..."); return RETVAL_FAILED; } // If there is no socket frontend running, launch one. if (!is_socket_frontend_ready ()) { scim_bridge_pdebugln (8, "Launching a SCIM daemon with Socket FrontEnd..."); const String server_config_module_name = scim_global_config_read (SCIM_GLOBAL_CONFIG_DEFAULT_CONFIG_MODULE, String ("simple")); char* new_argv [] = {const_cast("--no-stay"),const_cast("-d"), NULL}; scim_launch (true, server_config_module_name.c_str (), "all", "socket", new_argv); // Wait until the connection is established. for (int i = 0; i < 100; ++i) { if (is_socket_frontend_ready ()) { break; } else if (i < 99) { usleep (100000); } else { scim_bridge_perrorln ("Cannot establish the socket connection..."); return RETVAL_FAILED; } } } { scim_bridge_pdebugln (8, "Launching a SCIM daemon with x11 FrontEnd..."); char* new_argv [] = {const_cast("--no-stay"),const_cast("-d"), NULL}; scim_launch (true, "socket", "socket", "x11", new_argv); } // load config module scim_bridge_pdebugln (2, "Loading Config module...: socket"); scim_config_module = new ConfigModule ("socket"); //create config instance if (scim_config_module != NULL && scim_config_module->valid ()) { scim_config = scim_config_module->create_config (); } else { scim_bridge_pdebugln (2, "Cannot load the socket config module..."); return RETVAL_FAILED; } // create backend scim_backend = new CommonBackEnd (scim_config, imengine_module_names); scim_bridge_pdebugln (4, "Initialize scim, done!"); return RETVAL_SUCCEEDED; } retval_t ScimBridgeAgentImpl::finalize_scim () { scim_bridge_pdebugln (6, "Finalizing scim..."); scim_backend.reset (); scim_config.reset (); if (scim_config_module != NULL) { delete scim_config_module; scim_config_module = NULL; } return RETVAL_SUCCEEDED; } void ScimBridgeAgentImpl::slot_reload_config (const ConfigPointer &config) { scim_bridge_pdebugln (8, "slot_reload_config ()"); scim_frontend_hotkey_matcher.load_hotkeys (scim_config); scim_imengine_hotkey_matcher.load_hotkeys (scim_config); KeyEvent key; scim_string_to_key (key, config->read (String (SCIM_CONFIG_HOTKEYS_FRONTEND_VALID_KEY_MASK), String ("Shift+Control+Alt+Lock"))); int key_mask = (key.mask > 0) ? key.mask : 0xFFFF; key_mask |= SCIM_KEY_ReleaseMask; // Special treatment for two backslash keys on jp106 keyboard. key_mask |= SCIM_KEY_QuirkKanaRoMask; valid_key_mask = key_mask; ScimBridgeAgentIMContext::set_enabled_by_default (scim_config->read (String (SCIM_CONFIG_FRONTEND_IM_OPENED_BY_DEFAULT), ScimBridgeAgentIMContext::is_enabled_by_default ())); ScimBridgeAgentIMContext::set_imengine_shared (scim_config->read (String (SCIM_CONFIG_FRONTEND_SHARED_INPUT_METHOD), ScimBridgeAgentIMContext::is_imengine_shared ())); ScimBridgeAgentIMContext::set_on_the_spot_enabled (scim_config->read (String (SCIM_CONFIG_FRONTEND_ON_THE_SPOT), ScimBridgeAgentIMContext::is_on_the_spot_enabled ())); // Get keyboard layout setting // Flush the global config first, in order to load the new configs from disk. scim_global_config_flush (); scim_keyboard_layout = scim_get_default_keyboard_layout (); // Hot key name, hot key config key. // ! Update hotkey_list_length according to updated list length. int hotkey_list_length = 6; String hotkey_list[][2] = { { "Toggle on/off - ", "/Hotkeys/FrontEnd/Trigger" }, { "Turn on - ", "/Hotkeys/FrontEnd/On" }, { "Turn off - ", "/Hotkeys/FrontEnd/Off" }, { "Next input method - ", "/Hotkeys/FrontEnd/NextFactory" }, { "Previous input method - ", "/Hotkeys/FrontEnd/PreviousFactory" }, { "Show input method menu - ", "/Hotkeys/FrontEnd/ShowFactoryMenu" } }; // Undefined hot keys are hidden from help window. String help_hotkeys = "\nGlobal Hotkeys:"; for ( int i = 0; i < hotkey_list_length; i++ ) { String tmp_hotkeys = scim_config->read (String (hotkey_list[i][1]), String ("")); if ( tmp_hotkeys != "" ) help_hotkeys += "\n" + hotkey_list[i][0] + "<" + tmp_hotkeys + ">"; } ScimBridgeAgentIMContext::set_help_hotkeys (help_hotkeys); } ScimBridgeAgentPanelListener *ScimBridgeAgentImpl::get_panel_listener (const ScimBridgeDisplay *new_display) { if (scim_bridge_display_equals (display, new_display)) { return panel_listener; } else { return NULL; } } void ScimBridgeAgentImpl::quit () { scim_bridge_pdebugln (5, "quit ()"); running = false; } void ScimBridgeAgentImpl::interrupt () { scim_bridge_pdebugln (2, "interrupt ()"); interruption_listener->interrupt (); } void ScimBridgeAgentImpl::add_client_listener (ScimBridgeAgentClientListener *client_listener) { scim_bridge_pdebugln (8, "add_client_listener ()"); clients.push_back (client_listener); ++client_app_count; } void ScimBridgeAgentImpl::remove_client_listener (ScimBridgeAgentClientListener *client_listener) { scim_bridge_pdebugln (8, "remove_client_listener ()"); --client_app_count; if (!noexit_enabled && client_app_count <= 0) quit (); ScimBridgeAgentIMContext::free_by_client (client_listener); } scim_bridge_imcontext_id_t ScimBridgeAgentImpl::alloc_imcontext (ScimBridgeAgentClientListener *client_listener) { scim_bridge_pdebugln (7, "alloc_imcontext ()"); ScimBridgeAgentIMContext *imcontext = ScimBridgeAgentIMContext::alloc (client_listener); return imcontext->get_id (); } void ScimBridgeAgentImpl::free_imcontext (scim_bridge_imcontext_id_t imcontext_id, const ScimBridgeAgentClientListener *client_listener) { scim_bridge_pdebugln (7, "free_imcontext ()"); ScimBridgeAgentIMContext *imcontext = ScimBridgeAgentIMContext::find (imcontext_id); if (imcontext == NULL) { scim_bridge_perrorln ("No such IMContext"); } else if (imcontext->get_client_listener () == client_listener) { panel_listener->prepare (imcontext_id); delete imcontext; panel_listener->send (); } } void ScimBridgeAgentImpl::change_focus (scim_bridge_imcontext_id_t imcontext_id, bool focus_in) { scim_bridge_pdebugln (6, "change_focus ()"); ScimBridgeAgentIMContext *imcontext = ScimBridgeAgentIMContext::find (imcontext_id); if (imcontext == NULL) { scim_bridge_perrorln ("No such IMContext"); } else { panel_listener->prepare (imcontext_id); if (focus_in) { imcontext->focus_in (); } else { imcontext->focus_out (); } panel_listener->send (); } } bool ScimBridgeAgentImpl::filter_hotkeys (scim_bridge_imcontext_id_t imcontext_id, const KeyEvent &key_event) { scim_bridge_pdebugln (6, "filter_hotkeys ()"); ScimBridgeAgentIMContext *imcontext = ScimBridgeAgentIMContext::find (imcontext_id); if (imcontext == NULL) { scim_bridge_perrorln ("No such IMContext"); return false; } scim_frontend_hotkey_matcher.push_key_event (key_event); const FrontEndHotkeyAction hotkey_action = scim_frontend_hotkey_matcher.get_match_result (); if (hotkey_action == SCIM_FRONTEND_HOTKEY_TRIGGER) { const bool new_status = !imcontext->is_enabled (); imcontext->set_enabled (new_status); save_config (); return true; } else if (hotkey_action == SCIM_FRONTEND_HOTKEY_ON) { const bool new_status = true; imcontext->set_enabled (new_status); save_config (); return true; } else if (hotkey_action == SCIM_FRONTEND_HOTKEY_OFF) { const bool new_status = false; imcontext->set_enabled (new_status); save_config (); return true; } else if (hotkey_action == SCIM_FRONTEND_HOTKEY_NEXT_FACTORY) { imcontext->open_next_imengine (); return true; } else if (hotkey_action == SCIM_FRONTEND_HOTKEY_PREVIOUS_FACTORY) { imcontext->open_previous_imengine (); return true; } else if (hotkey_action == SCIM_FRONTEND_HOTKEY_SHOW_FACTORY_MENU) { request_factory_menu (); return true; } else { scim_imengine_hotkey_matcher.push_key_event (key_event); if (scim_imengine_hotkey_matcher.is_matched ()) { const String factory_uuid = scim_imengine_hotkey_matcher.get_match_result (); imcontext->open_imengine_by_uuid (factory_uuid); return true; } } return false; } bool ScimBridgeAgentImpl::filter_key_event (scim_bridge_imcontext_id_t imcontext_id, const KeyEvent &key_event) { scim_bridge_pdebugln (5, "filter_key_event ()"); KeyEvent new_key_event = key_event; new_key_event.mask &= valid_key_mask; new_key_event.layout = scim_keyboard_layout; ScimBridgeAgentIMContext *imcontext = ScimBridgeAgentIMContext::find (imcontext_id); if (imcontext == NULL) { scim_bridge_perrorln ("No such IMContext"); return false; } else { bool consumed = false; panel_listener->prepare (imcontext_id); if (filter_hotkeys (imcontext_id, new_key_event)) { consumed = true; } else if (imcontext->filter_key_event (new_key_event)) { consumed = true; } else { consumed = false; } panel_listener->send (); return consumed; } } void ScimBridgeAgentImpl::set_cursor_location (scim_bridge_imcontext_id_t imcontext_id, int cursor_x, int cursor_y) { scim_bridge_pdebugln (7, "set_cursor_location ()"); ScimBridgeAgentIMContext *imcontext = ScimBridgeAgentIMContext::find (imcontext_id); if (imcontext == NULL) { scim_bridge_perrorln ("No such IMContext"); } else { panel_listener->prepare (imcontext_id); imcontext->set_cursor_location (cursor_x, cursor_y); panel_listener->send (); } } void ScimBridgeAgentImpl::set_preedit_mode (scim_bridge_imcontext_id_t imcontext_id, scim_bridge_preedit_mode_t preedit_mode) { scim_bridge_pdebugln (6, "set_preedit_mode ()"); ScimBridgeAgentIMContext *imcontext = ScimBridgeAgentIMContext::find (imcontext_id); if (imcontext == NULL) { scim_bridge_perrorln ("No such IMContext"); } else { panel_listener->prepare (imcontext_id); imcontext->set_preedit_mode (preedit_mode); panel_listener->send (); } } void ScimBridgeAgentImpl::reset_imcontext (scim_bridge_imcontext_id_t imcontext_id) { scim_bridge_pdebugln (6, "reset_imcontext ()"); ScimBridgeAgentIMContext *imcontext = ScimBridgeAgentIMContext::find (imcontext_id); if (imcontext == NULL) { scim_bridge_perrorln ("No such IMContext"); } else { panel_listener->prepare (imcontext_id); imcontext->reset (); panel_listener->send (); } } void ScimBridgeAgentImpl::enable_imcontext (scim_bridge_imcontext_id_t imcontext_id) { scim_bridge_pdebugln (6, "enable_imcontext ()"); ScimBridgeAgentIMContext *imcontext = ScimBridgeAgentIMContext::find (imcontext_id); if (imcontext == NULL) { scim_bridge_perrorln ("No such IMContext"); } else { panel_listener->prepare (imcontext_id); imcontext->set_enabled (TRUE); save_config (); panel_listener->send (); } } void ScimBridgeAgentImpl::disable_imcontext (scim_bridge_imcontext_id_t imcontext_id) { scim_bridge_pdebugln (6, "disable_imcontext ()"); ScimBridgeAgentIMContext *imcontext = ScimBridgeAgentIMContext::find (imcontext_id); if (imcontext == NULL) { scim_bridge_perrorln ("No such IMContext"); } else { panel_listener->prepare (imcontext_id); imcontext->set_enabled (FALSE); save_config (); panel_listener->send (); } } void ScimBridgeAgentImpl::request_factory_menu () { scim_bridge_pdebugln (6, "request_factory_menu ()"); vector factories; scim_backend->get_factories_for_encoding (factories, "UTF-8"); vector menu; for (size_t i = 0; i < factories.size (); ++i) { menu.push_back (PanelFactoryInfo (factories [i]->get_uuid (), utf8_wcstombs (factories [i]->get_name ()), factories [i]->get_language (), factories [i]->get_icon_file ())); } if (!menu.empty ()) panel_listener->show_factory_menu (menu); } void ScimBridgeAgentImpl::load_config () { scim_bridge_pdebugln (6, "load_config ()"); scim_config->reload (); } void ScimBridgeAgentImpl::save_config () { scim_bridge_pdebugln (6, "save_config ()"); scim_config->write (String (SCIM_CONFIG_FRONTEND_IM_OPENED_BY_DEFAULT), ScimBridgeAgentIMContext::is_enabled_by_default ()); } scim-1.4.14/extras/immodules/agent/scim-bridge-agent.h000066400000000000000000000051241177210725600226020ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ /** * @file * @author Ryo Dairiki * @brief This header describes about the data type of attributes. * * @mainpage * * ScimBridge is a wrapper library that allows the apps * which use SCIM as a input method to become binary independent with SCIM.\n * This will help the maintainers of SCIM, by simplify the complicated dependency around SCIM, libstdc++, and GUI libraries. * *
  • The Index of the Documents
  • * */ #ifndef SCIMBRIDGEAGENT_H_ #define SCIMBRIDGEAGENT_H_ #include "scim-bridge.h" /** * The public interface of the agent. */ class ScimBridgeAgent { public: /** * Allocate an agent. * * @return A new agent. */ static ScimBridgeAgent *alloc (); /** * Destructor. */ virtual ~ScimBridgeAgent () {} /** * Set if it exits automatically when there is no client at all. * * @param enabled Give it true if you want to disable this feature. */ virtual void set_noexit_enabled (bool enabled) = 0; /** * Set if the process daemonize itself when launch () is called. * * @param enabled Give it true if you want to disable this feature. */ virtual void set_standalone_enabled (bool enabled) = 0; /** * Launch the main loop of the agent. * This funtion blocks until it quits. */ virtual retval_t launch () = 0; protected: /** * Constructor. */ ScimBridgeAgent () {} }; #endif /*SCIMBRIDGEAGENT_H_*/ scim-1.4.14/extras/immodules/agent/utils/000077500000000000000000000000001177210725600203065ustar00rootroot00000000000000scim-1.4.14/extras/immodules/agent/utils/scim-bridge-agent-panel-client.cpp000066400000000000000000000622001177210725600266440ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ #include #include #include #include #include #include #define Uses_SCIM_CONFIG_PATH #include #ifndef SCIM_PANEL_PROGRAM #define SCIM_PANEL_PROGRAM (SCIM_LIBEXECDIR "/scim-panel-gtk") #endif #include "scim-bridge-agent-panel-client.h" #include "scim-bridge-output.h" using std::vector; using namespace scim; typedef Signal1 ScimBridgeAgentPanelClientSignalVoid; typedef Signal2 ScimBridgeAgentPanelClientSignalInt; typedef Signal2 ScimBridgeAgentPanelClientSignalString; typedef Signal2 ScimBridgeAgentPanelClientSignalWideString; typedef Signal4 ScimBridgeAgentPanelClientSignalStringStringTransaction; typedef Signal2 ScimBridgeAgentPanelClientSignalKeyEvent; class ScimBridgeAgentPanelClientImpl: public ScimBridgeAgentPanelClient { public: ScimBridgeAgentPanelClientImpl (const String &config_name, const ScimBridgeDisplay *display); ~ScimBridgeAgentPanelClientImpl (); int open_connection (); void close_connection (); int get_connection_number () const; bool is_connected () const; bool has_pending_event () const; retval_t filter_event (); retval_t prepare (scim_bridge_imcontext_id_t imcontext_id); retval_t send (); void turn_on (); void turn_off (); void update_screen (); void show_help (const String &help); void show_factory_menu (const vector &menu); void focus_in (const scim::String &uuid); void focus_out (); void update_factory_info (const PanelFactoryInfo &info); void update_spot_location (int x, int y); void show_preedit_string (); void show_aux_string (); void show_lookup_table (); void hide_preedit_string (); void hide_aux_string (); void hide_lookup_table (); void update_preedit_string (const WideString &str, const AttributeList &attrs); void update_preedit_caret (int cursor_position); void update_aux_string (const WideString &str, const AttributeList &attrs); void update_lookup_table (const LookupTable &table); void register_properties (const PropertyList &properties); void update_property (const Property &property); void start_helper (const String &helper_uuid); void stop_helper (const String &helper_uuid); void send_helper_event (const String &helper_uuid, const Transaction &trans); void register_input_context (const String &uuid); void remove_input_context (); Connection signal_connect_reload_config (ScimBridgeAgentPanelClientSlotVoid *slot); Connection signal_connect_exit (ScimBridgeAgentPanelClientSlotVoid *slot); Connection signal_connect_update_lookup_table_page_size (ScimBridgeAgentPanelClientSlotInt *slot); Connection signal_connect_lookup_table_page_up (ScimBridgeAgentPanelClientSlotVoid *slot); Connection signal_connect_lookup_table_page_down (ScimBridgeAgentPanelClientSlotVoid *slot); Connection signal_connect_trigger_property (ScimBridgeAgentPanelClientSlotString *slot); Connection signal_connect_process_helper_event (ScimBridgeAgentPanelClientSlotStringStringTransaction *slot); Connection signal_connect_move_preedit_caret (ScimBridgeAgentPanelClientSlotInt *slot); Connection signal_connect_select_candidate (ScimBridgeAgentPanelClientSlotInt *slot); Connection signal_connect_process_key_event (ScimBridgeAgentPanelClientSlotKeyEvent *slot); Connection signal_connect_commit_string (ScimBridgeAgentPanelClientSlotWideString *slot); Connection signal_connect_forward_key_event (ScimBridgeAgentPanelClientSlotKeyEvent *slot); Connection signal_connect_request_help (ScimBridgeAgentPanelClientSlotVoid *slot); Connection signal_connect_request_factory_menu (ScimBridgeAgentPanelClientSlotVoid *slot); Connection signal_connect_change_factory (ScimBridgeAgentPanelClientSlotString *slot); private: String config_name; ScimBridgeDisplay *display; SocketClient socket_client; int socket_timeout; uint32_t socket_magic_key; Transaction sending_transaction; scim_bridge_imcontext_id_t prepared_imcontext_id; ScimBridgeAgentPanelClientSignalVoid signal_reload_config; ScimBridgeAgentPanelClientSignalVoid signal_exit; ScimBridgeAgentPanelClientSignalInt signal_update_lookup_table_page_size; ScimBridgeAgentPanelClientSignalVoid signal_lookup_table_page_up; ScimBridgeAgentPanelClientSignalVoid signal_lookup_table_page_down; ScimBridgeAgentPanelClientSignalString signal_trigger_property; ScimBridgeAgentPanelClientSignalStringStringTransaction signal_process_helper_event; ScimBridgeAgentPanelClientSignalInt signal_move_preedit_caret; ScimBridgeAgentPanelClientSignalInt signal_select_candidate; ScimBridgeAgentPanelClientSignalKeyEvent signal_process_key_event; ScimBridgeAgentPanelClientSignalWideString signal_commit_string; ScimBridgeAgentPanelClientSignalKeyEvent signal_forward_key_event; ScimBridgeAgentPanelClientSignalVoid signal_request_help; ScimBridgeAgentPanelClientSignalVoid signal_request_factory_menu; ScimBridgeAgentPanelClientSignalString signal_change_factory; retval_t launch_panel (); }; /* Implementations */ ScimBridgeAgentPanelClient *ScimBridgeAgentPanelClient::alloc (const String &config_name, const ScimBridgeDisplay *display) { return new ScimBridgeAgentPanelClientImpl (config_name, display); } ScimBridgeAgentPanelClient::ScimBridgeAgentPanelClient () { } ScimBridgeAgentPanelClient::~ScimBridgeAgentPanelClient () { } ScimBridgeAgentPanelClientImpl::ScimBridgeAgentPanelClientImpl (const String &new_config_name, const ScimBridgeDisplay *new_display): config_name (new_config_name), display (NULL), socket_timeout (scim_get_default_socket_timeout ()), socket_magic_key (0), prepared_imcontext_id (-1) { display = scim_bridge_alloc_display (); scim_bridge_copy_display (display, new_display); } ScimBridgeAgentPanelClientImpl::~ScimBridgeAgentPanelClientImpl () { if (socket_client.is_connected ()) close_connection (); scim_bridge_free_display (display); } retval_t ScimBridgeAgentPanelClientImpl::launch_panel () { scim_bridge_pdebugln (7, "launch_panel ()"); String panel_program = scim_global_config_read (SCIM_GLOBAL_CONFIG_DEFAULT_PANEL_PROGRAM, String (SCIM_PANEL_PROGRAM)); if (panel_program [0] != SCIM_PATH_DELIM) panel_program = String (SCIM_LIBEXECDIR) + String (SCIM_PATH_DELIM_STRING) + panel_program; struct stat stat_buf; if (lstat (panel_program.c_str (), &stat_buf) || !S_ISREG (stat_buf.st_mode) || access (panel_program.c_str (), X_OK)) { panel_program = String (SCIM_PANEL_PROGRAM); } scim_bridge_pdebugln (5, "Launch \"%s\"", panel_program.c_str ()); if (display != NULL) { const pid_t retval = fork (); if (retval == 0) { if (daemon (0, 0) == 0) { char *display_name_cstr = strdup (scim_bridge_display_get_name (display)); char *conf_name_cstr = strdup (config_name.c_str ()); char *panel_program_cstr = strdup (panel_program.c_str ()); char *my_argv[] = {panel_program_cstr, const_cast("--no-stay"), const_cast("--display"), display_name_cstr, const_cast("-c"), conf_name_cstr, const_cast("-d"), 0}; if (execv (panel_program_cstr, my_argv)) abort (); } else { scim_bridge_perrorln ("Failed to forking for a panel process: %s", errno == 0 ? "Unknown reason":strerror (errno)); abort (); } return RETVAL_FAILED; } else if (retval > 0) { waitpid (retval, NULL, 0); return RETVAL_SUCCEEDED; } else { scim_bridge_perrorln ("Failed to launch a panel: %s", errno == 0 ? "Unknown reason":strerror (errno)); return RETVAL_FAILED; } } else { scim_bridge_println ("No display for the panel"); return RETVAL_FAILED; } } int ScimBridgeAgentPanelClientImpl::open_connection () { if (socket_client.is_connected ()) close_connection (); SocketAddress address (scim_get_default_panel_socket_address (scim_bridge_display_get_name (display))); if (!socket_client.connect (address)) { launch_panel (); usleep (100000); } // Try to establish the connection six times. for (int i = 0; i < 6; ++i) { if (!socket_client.connect (address)) { usleep (100000); } else { if (scim_socket_open_connection (socket_magic_key, String ("FrontEnd"), String ("Panel"), socket_client, socket_timeout)) { return socket_client.get_id (); } } socket_client.close (); } return -1; } void ScimBridgeAgentPanelClientImpl::close_connection () { socket_client.close (); socket_magic_key = 0; prepared_imcontext_id = -1; } int ScimBridgeAgentPanelClientImpl::get_connection_number () const { return socket_client.get_id (); } bool ScimBridgeAgentPanelClientImpl::is_connected () const { return socket_client.is_connected (); } bool ScimBridgeAgentPanelClientImpl::has_pending_event () const { return socket_client.is_connected () && socket_client.wait_for_data (0) > 0; } retval_t ScimBridgeAgentPanelClientImpl::filter_event () { Transaction receiving_transaction; if (!socket_client.is_connected () || !receiving_transaction.read_from_socket (socket_client, socket_timeout)) return RETVAL_FAILED; int command; if (!receiving_transaction.get_command (command) || command != SCIM_TRANS_CMD_REPLY) return RETVAL_SUCCEEDED; // No IMContext ID is available; this is a global command. if (receiving_transaction.get_data_type () == SCIM_TRANS_DATA_COMMAND) { while (receiving_transaction.get_command (command)) { switch (command) { case SCIM_TRANS_CMD_RELOAD_CONFIG: signal_reload_config (-1); break; case SCIM_TRANS_CMD_EXIT: signal_exit (-1); break; default: break; } } } else { // Check if there is a command for the specific IMContext. uint32_t imcontext_id; if (!receiving_transaction.get_data (imcontext_id)) return RETVAL_SUCCEEDED; while (receiving_transaction.get_command (command)) { switch (command) { case SCIM_TRANS_CMD_UPDATE_LOOKUP_TABLE_PAGE_SIZE: { uint32_t size; if (receiving_transaction.get_data (size)) signal_update_lookup_table_page_size (imcontext_id, (int) size); } break; case SCIM_TRANS_CMD_LOOKUP_TABLE_PAGE_UP: { signal_lookup_table_page_up (imcontext_id); } break; case SCIM_TRANS_CMD_LOOKUP_TABLE_PAGE_DOWN: { signal_lookup_table_page_down (imcontext_id); } break; case SCIM_TRANS_CMD_TRIGGER_PROPERTY: { String property; if (receiving_transaction.get_data (property)) signal_trigger_property (imcontext_id, property); } break; case SCIM_TRANS_CMD_PROCESS_HELPER_EVENT: { String target_uuid; String helper_uuid; Transaction trans; if (receiving_transaction.get_data (target_uuid) && receiving_transaction.get_data (helper_uuid) && receiving_transaction.get_data (trans)) signal_process_helper_event (imcontext_id, target_uuid, helper_uuid, trans); } break; case SCIM_TRANS_CMD_MOVE_PREEDIT_CARET: { uint32_t cursor_pos; if (receiving_transaction.get_data (cursor_pos)) signal_move_preedit_caret (imcontext_id, cursor_pos); } break; case SCIM_TRANS_CMD_SELECT_CANDIDATE: { uint32_t item; if (receiving_transaction.get_data (item)) signal_select_candidate (imcontext_id, item); } break; case SCIM_TRANS_CMD_PROCESS_KEY_EVENT: { KeyEvent key_event; if (receiving_transaction.get_data (key_event)) signal_process_key_event (imcontext_id, key_event); } break; case SCIM_TRANS_CMD_FORWARD_KEY_EVENT: { KeyEvent key_event; if (receiving_transaction.get_data (key_event)) signal_forward_key_event (imcontext_id, key_event); } break; case SCIM_TRANS_CMD_COMMIT_STRING: { WideString wstr; if (receiving_transaction.get_data (wstr)) signal_commit_string (imcontext_id, wstr); } break; case SCIM_TRANS_CMD_PANEL_REQUEST_HELP: { signal_request_help (imcontext_id); } break; case SCIM_TRANS_CMD_PANEL_REQUEST_FACTORY_MENU: { signal_request_factory_menu (imcontext_id); } break; case SCIM_TRANS_CMD_PANEL_CHANGE_FACTORY: { String factory_uuid; if (receiving_transaction.get_data (factory_uuid)) signal_change_factory (imcontext_id, factory_uuid); } break; default: break; } } } return RETVAL_SUCCEEDED; } retval_t ScimBridgeAgentPanelClientImpl::prepare (scim_bridge_imcontext_id_t imcontext_id) { if (!socket_client.is_connected ()) { if (open_connection ()) return RETVAL_FAILED; } if (prepared_imcontext_id == -1) { sending_transaction.clear (); sending_transaction.put_command (SCIM_TRANS_CMD_REQUEST); sending_transaction.put_data (socket_magic_key); sending_transaction.put_data ((uint32_t) imcontext_id); int command; uint32_t data; sending_transaction.get_command (command); sending_transaction.get_data (data); sending_transaction.get_data (data); prepared_imcontext_id = imcontext_id; return RETVAL_SUCCEEDED; } else { scim_bridge_pdebugln (8, "The panel client is already prepared!"); return RETVAL_FAILED; } } retval_t ScimBridgeAgentPanelClientImpl::send () { if (!socket_client.is_connected ()) return RETVAL_SUCCEEDED; if (prepared_imcontext_id == -1) return RETVAL_SUCCEEDED; prepared_imcontext_id = -1; if (sending_transaction.get_data_type () != SCIM_TRANS_DATA_UNKNOWN) { return sending_transaction.write_to_socket (socket_client, 0x4d494353); } else { return RETVAL_SUCCEEDED; } } void ScimBridgeAgentPanelClientImpl::turn_on () { if (prepared_imcontext_id != -1) sending_transaction.put_command (SCIM_TRANS_CMD_PANEL_TURN_ON); } void ScimBridgeAgentPanelClientImpl::turn_off () { if (prepared_imcontext_id != -1) sending_transaction.put_command (SCIM_TRANS_CMD_PANEL_TURN_OFF); } void ScimBridgeAgentPanelClientImpl::update_screen () { if (prepared_imcontext_id != -1 && display != NULL) { sending_transaction.put_command (SCIM_TRANS_CMD_UPDATE_SCREEN); sending_transaction.put_data ((uint32_t) scim_bridge_display_get_screen_number (display)); } } void ScimBridgeAgentPanelClientImpl::show_help (const String &help) { if (prepared_imcontext_id != -1) { sending_transaction.put_command (SCIM_TRANS_CMD_PANEL_SHOW_HELP); sending_transaction.put_data (help); } } void ScimBridgeAgentPanelClientImpl::show_factory_menu (const vector &menu) { if (prepared_imcontext_id != -1) { sending_transaction.put_command (SCIM_TRANS_CMD_PANEL_SHOW_FACTORY_MENU); for (size_t i = 0; i < menu.size (); ++i) { sending_transaction.put_data (menu[i].uuid); sending_transaction.put_data (menu[i].name); sending_transaction.put_data (menu[i].lang); sending_transaction.put_data (menu[i].icon); } } } void ScimBridgeAgentPanelClientImpl::focus_in (const String &uuid) { if (prepared_imcontext_id != -1) { sending_transaction.put_command (SCIM_TRANS_CMD_FOCUS_IN); sending_transaction.put_data (uuid); } } void ScimBridgeAgentPanelClientImpl::focus_out () { if (prepared_imcontext_id != -1) sending_transaction.put_command (SCIM_TRANS_CMD_FOCUS_OUT); } void ScimBridgeAgentPanelClientImpl::update_factory_info (const PanelFactoryInfo &info) { if (prepared_imcontext_id != -1) { sending_transaction.put_command (SCIM_TRANS_CMD_PANEL_UPDATE_FACTORY_INFO); sending_transaction.put_data (info.uuid); sending_transaction.put_data (info.name); sending_transaction.put_data (info.lang); sending_transaction.put_data (info.icon); } } void ScimBridgeAgentPanelClientImpl::update_spot_location (int x, int y) { if (prepared_imcontext_id != -1) { sending_transaction.put_command (SCIM_TRANS_CMD_UPDATE_SPOT_LOCATION); sending_transaction.put_data ((uint32_t) x); sending_transaction.put_data ((uint32_t) y); } } void ScimBridgeAgentPanelClientImpl::show_preedit_string () { if (prepared_imcontext_id != -1) sending_transaction.put_command (SCIM_TRANS_CMD_SHOW_PREEDIT_STRING); } void ScimBridgeAgentPanelClientImpl::show_aux_string () { if (prepared_imcontext_id != -1) sending_transaction.put_command (SCIM_TRANS_CMD_SHOW_AUX_STRING); } void ScimBridgeAgentPanelClientImpl::show_lookup_table () { if (prepared_imcontext_id != -1) sending_transaction.put_command (SCIM_TRANS_CMD_SHOW_LOOKUP_TABLE); } void ScimBridgeAgentPanelClientImpl::hide_preedit_string () { if (prepared_imcontext_id != -1) sending_transaction.put_command (SCIM_TRANS_CMD_HIDE_PREEDIT_STRING); } void ScimBridgeAgentPanelClientImpl::hide_aux_string () { if (prepared_imcontext_id != -1) sending_transaction.put_command (SCIM_TRANS_CMD_HIDE_AUX_STRING); } void ScimBridgeAgentPanelClientImpl::hide_lookup_table () { if (prepared_imcontext_id != -1) sending_transaction.put_command (SCIM_TRANS_CMD_HIDE_LOOKUP_TABLE); } void ScimBridgeAgentPanelClientImpl::update_preedit_string (const WideString &str, const AttributeList &attrs) { if (prepared_imcontext_id != -1) { sending_transaction.put_command (SCIM_TRANS_CMD_UPDATE_PREEDIT_STRING); sending_transaction.put_data (utf8_wcstombs (str)); sending_transaction.put_data (attrs); } } void ScimBridgeAgentPanelClientImpl::update_preedit_caret (int caret) { if (prepared_imcontext_id != -1) { sending_transaction.put_command (SCIM_TRANS_CMD_UPDATE_PREEDIT_CARET); sending_transaction.put_data ((uint32_t) caret); } } void ScimBridgeAgentPanelClientImpl::update_aux_string (const WideString &str, const AttributeList &attrs) { if (prepared_imcontext_id != -1) { sending_transaction.put_command (SCIM_TRANS_CMD_UPDATE_AUX_STRING); sending_transaction.put_data (utf8_wcstombs (str)); sending_transaction.put_data (attrs); } } void ScimBridgeAgentPanelClientImpl::update_lookup_table (const LookupTable &table) { if (prepared_imcontext_id != -1) { sending_transaction.put_command (SCIM_TRANS_CMD_UPDATE_LOOKUP_TABLE); sending_transaction.put_data (table); } } void ScimBridgeAgentPanelClientImpl::register_properties (const PropertyList &properties) { if (prepared_imcontext_id != -1) { sending_transaction.put_command (SCIM_TRANS_CMD_REGISTER_PROPERTIES); sending_transaction.put_data (properties); } } void ScimBridgeAgentPanelClientImpl::update_property (const Property &property) { if (prepared_imcontext_id != -1) { sending_transaction.put_command (SCIM_TRANS_CMD_UPDATE_PROPERTY); sending_transaction.put_data (property); } } void ScimBridgeAgentPanelClientImpl::start_helper (const String &helper_uuid) { if (prepared_imcontext_id != -1) { sending_transaction.put_command (SCIM_TRANS_CMD_START_HELPER); sending_transaction.put_data (helper_uuid); } } void ScimBridgeAgentPanelClientImpl::stop_helper (const String &helper_uuid) { if (prepared_imcontext_id != -1) { sending_transaction.put_command (SCIM_TRANS_CMD_STOP_HELPER); sending_transaction.put_data (helper_uuid); } } void ScimBridgeAgentPanelClientImpl::send_helper_event (const String &helper_uuid, const Transaction &trans) { if (prepared_imcontext_id != -1) { sending_transaction.put_command (SCIM_TRANS_CMD_SEND_HELPER_EVENT); sending_transaction.put_data (helper_uuid); sending_transaction.put_data (trans); } } void ScimBridgeAgentPanelClientImpl::register_input_context (const String &uuid) { if (prepared_imcontext_id != -1) { sending_transaction.put_command (SCIM_TRANS_CMD_PANEL_REGISTER_INPUT_CONTEXT); sending_transaction.put_data (uuid); } } void ScimBridgeAgentPanelClientImpl::remove_input_context () { if (prepared_imcontext_id != -1) sending_transaction.put_command (SCIM_TRANS_CMD_PANEL_REMOVE_INPUT_CONTEXT); } Connection ScimBridgeAgentPanelClientImpl::signal_connect_reload_config (ScimBridgeAgentPanelClientSlotVoid *slot) { return signal_reload_config.connect (slot); } Connection ScimBridgeAgentPanelClientImpl::signal_connect_exit (ScimBridgeAgentPanelClientSlotVoid *slot) { return signal_exit.connect (slot); } Connection ScimBridgeAgentPanelClientImpl::signal_connect_update_lookup_table_page_size (ScimBridgeAgentPanelClientSlotInt *slot) { return signal_update_lookup_table_page_size.connect (slot); } Connection ScimBridgeAgentPanelClientImpl::signal_connect_lookup_table_page_up (ScimBridgeAgentPanelClientSlotVoid *slot) { return signal_lookup_table_page_up.connect (slot); } Connection ScimBridgeAgentPanelClientImpl::signal_connect_lookup_table_page_down (ScimBridgeAgentPanelClientSlotVoid *slot) { return signal_lookup_table_page_down.connect (slot); } Connection ScimBridgeAgentPanelClientImpl::signal_connect_trigger_property (ScimBridgeAgentPanelClientSlotString *slot) { return signal_trigger_property.connect (slot); } Connection ScimBridgeAgentPanelClientImpl::signal_connect_process_helper_event (ScimBridgeAgentPanelClientSlotStringStringTransaction *slot) { return signal_process_helper_event.connect (slot); } Connection ScimBridgeAgentPanelClientImpl::signal_connect_move_preedit_caret (ScimBridgeAgentPanelClientSlotInt *slot) { return signal_move_preedit_caret.connect (slot); } Connection ScimBridgeAgentPanelClientImpl::signal_connect_select_candidate (ScimBridgeAgentPanelClientSlotInt *slot) { return signal_select_candidate.connect (slot); } Connection ScimBridgeAgentPanelClientImpl::signal_connect_process_key_event (ScimBridgeAgentPanelClientSlotKeyEvent *slot) { return signal_process_key_event.connect (slot); } Connection ScimBridgeAgentPanelClientImpl::signal_connect_commit_string (ScimBridgeAgentPanelClientSlotWideString *slot) { return signal_commit_string.connect (slot); } Connection ScimBridgeAgentPanelClientImpl::signal_connect_forward_key_event (ScimBridgeAgentPanelClientSlotKeyEvent *slot) { return signal_forward_key_event.connect (slot); } Connection ScimBridgeAgentPanelClientImpl::signal_connect_request_help (ScimBridgeAgentPanelClientSlotVoid *slot) { return signal_request_help.connect (slot); } Connection ScimBridgeAgentPanelClientImpl::signal_connect_request_factory_menu (ScimBridgeAgentPanelClientSlotVoid *slot) { return signal_request_factory_menu.connect (slot); } Connection ScimBridgeAgentPanelClientImpl::signal_connect_change_factory (ScimBridgeAgentPanelClientSlotString *slot) { return signal_change_factory.connect (slot); } scim-1.4.14/extras/immodules/agent/utils/scim-bridge-agent-panel-client.h000066400000000000000000000314031177210725600263120ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ /** * @file * @author Ryo Dairiki * @brief This is the header of the panel clients for SCIMBridge. */ #ifndef SCIMBRIDGEAGENTPANELCLIENT_H #define SCIMBRIDGEAGENTPANELCLIENT_H #define Uses_SCIM_EVENT #define Uses_SCIM_PANEL_CLIENT #define Uses_SCIM_SIGNAL #define Uses_SCIM_SOCKET #define Uses_SCIM_TRANSACTION #define Uses_SCIM_TRANS_COMMANDS #include #include "scim-bridge.h" #include "scim-bridge-display.h" #include "scim-bridge-imcontext.h" typedef scim::Slot1 ScimBridgeAgentPanelClientSlotVoid; typedef scim::Slot2 ScimBridgeAgentPanelClientSlotInt; typedef scim::Slot2 ScimBridgeAgentPanelClientSlotString; typedef scim::Slot2 ScimBridgeAgentPanelClientSlotWideString; typedef scim::Slot4 ScimBridgeAgentPanelClientSlotStringStringTransaction; typedef scim::Slot2 ScimBridgeAgentPanelClientSlotKeyEvent; /** * The class of panel clients. */ class ScimBridgeAgentPanelClient { public: /** * Alloc an panel client. * * @param config_name The name of the configuration. * @param display The display. * @return The new panel client. */ static ScimBridgeAgentPanelClient *alloc (const scim::String &config_name, const ScimBridgeDisplay *display); /** * Destructor. */ virtual ~ScimBridgeAgentPanelClient (); /** * Open a connection with the panel. */ virtual int open_connection () = 0; /** * Close a connection with the panel. */ virtual void close_connection () = 0; /** * Get the connection number with the panel. * * @return The connection number with the panel. */ virtual int get_connection_number () const = 0; /** * See if the connection with the panel is active. * * @return true if the connection is active. */ virtual bool is_connected () const = 0; /** * See if there is pending events. * * @return true if there is pending events. */ virtual bool has_pending_event () const = 0; /** * Filter events from the panel. * * @return RETVAL_FAILED if errors have occurred. */ virtual retval_t filter_event () = 0; /** * Prepare the panel to do some actions. * * @param imcontext_id. * @return RETVAL_FAILED if errors have occurred. */ virtual retval_t prepare (scim_bridge_imcontext_id_t imcontext_id) = 0; /** * Send stored commands to the panel. * * @return RETVAL_FAILED if errors have occurred. */ virtual retval_t send () = 0; /** * Turn on the IME on the panel. */ virtual void turn_on () = 0; /** * Turn off the IME on the panel. */ virtual void turn_off () = 0; /** * Update specific screen of the panel. */ virtual void update_screen () = 0; /** * Show the help text. * * @param help_text The text to show. */ virtual void show_help (const scim::String &help_text) = 0; /** * Show the factory menu. * * @param menu The menu items. */ virtual void show_factory_menu (const std::vector &menu) = 0; /** * Focus in the specific IME. * * @param uuid The uuid of the IME. */ virtual void focus_in (const scim::String &uuid) = 0; /** * Focus out the current IME. */ virtual void focus_out () = 0; /** * Update the status information of the IME on the panel. * * @param info The infomation of the IME. */ virtual void update_factory_info (const scim::PanelFactoryInfo &info) = 0; /** * Update the cursor location. * * @param x The X location of the cursor. * @param y The Y location of the cursor. */ virtual void update_spot_location (int x, int y) = 0; /** * Show the floating preedit string. */ virtual void show_preedit_string () = 0; /** * Show the aux string. */ virtual void show_aux_string () = 0; /** * Show the lookup table. */ virtual void show_lookup_table () = 0; /** * Hide the floating preedit string. */ virtual void hide_preedit_string () = 0; /** * Hide the aux string. */ virtual void hide_aux_string () = 0; /** * Hide the lookup table. */ virtual void hide_lookup_table () = 0; /** * Update the string in the flaoting preedit. * * @param str The string to show. * @param attrs The attributes of the string. */ virtual void update_preedit_string (const scim::WideString &str, const scim::AttributeList &attrs) = 0; /** * Update the cursor position in the flaoting preedit. * * @param cursor_position The cursor position. */ virtual void update_preedit_caret (int cursor_position) = 0; /** * Update the aux string. * * @param str The string to show. * @param attrs The attributes of the string. */ virtual void update_aux_string (const scim::WideString &str, const scim::AttributeList &attrs) = 0; /** * Update the lookup table. * * @param table The lookup table. */ virtual void update_lookup_table (const scim::LookupTable &table) = 0; /** * Register properties into the panel. * * @param properties The properties. */ virtual void register_properties (const scim::PropertyList &properties) = 0; /** * Update property. * * @param property The property. */ virtual void update_property (const scim::Property &property) = 0; /** * Launch a helper process. * * @param helper_uuid The uuid of the helper. */ virtual void start_helper (const scim::String &helper_uuid) = 0; /** * Shutdown a helper process. * * @param helper_uuid The uuid of the helper. */ virtual void stop_helper (const scim::String &helper_uuid) = 0; /** * Send a message to a helper. * * @param helper_uuid The uuid of the helper. * @param trans The transaction with the helper process. */ virtual void send_helper_event (const scim::String &helper_uuid, const scim::Transaction &trans) = 0; /** * Register a input context (IMContext). * * @param uuid The uuid of the IME. */ virtual void register_input_context (const scim::String &uuid) = 0; /** * Deregister the current input context (IMContext). */ virtual void remove_input_context () = 0; /** * Connect the signal of reload_config. * * @param slot The slot to connect the signal. * @return The new connection. */ virtual scim::Connection signal_connect_reload_config (ScimBridgeAgentPanelClientSlotVoid *slot) = 0; /** * Connect the signal of exit. * * @param slot The slot to connect the signal. * @return The new connection. */ virtual scim::Connection signal_connect_exit (ScimBridgeAgentPanelClientSlotVoid *slot) = 0; /** * Connect the signal of update_lookup_table_page_size. * * @param slot The slot to connect the signal. * @return The new connection. */ virtual scim::Connection signal_connect_update_lookup_table_page_size (ScimBridgeAgentPanelClientSlotInt *slot) = 0; /** * Connect the signal of lookup_table_page_up. * * @param slot The slot to connect the signal. * @return The new connection. */ virtual scim::Connection signal_connect_lookup_table_page_up (ScimBridgeAgentPanelClientSlotVoid *slot) = 0; /** * Connect the signal of lookup_table_page_down. * * @param slot The slot to connect the signal. * @return The new connection. */ virtual scim::Connection signal_connect_lookup_table_page_down (ScimBridgeAgentPanelClientSlotVoid *slot) = 0; /** * Connect the signal of trigger_property. * * @param slot The slot to connect the signal. * @return The new connection. */ virtual scim::Connection signal_connect_trigger_property (ScimBridgeAgentPanelClientSlotString *slot) = 0; /** * Connect the signal of process_helper_event. * * @param slot The slot to connect the signal. * @return The new connection. */ virtual scim::Connection signal_connect_process_helper_event (ScimBridgeAgentPanelClientSlotStringStringTransaction *slot) = 0; /** * Connect the signal of move_preedit_caret. * * @param slot The slot to connect the signal. * @return The new connection. */ virtual scim::Connection signal_connect_move_preedit_caret (ScimBridgeAgentPanelClientSlotInt *slot) = 0; /** * Connect the signal of select_candidate. * * @param slot The slot to connect the signal. * @return The new connection. */ virtual scim::Connection signal_connect_select_candidate (ScimBridgeAgentPanelClientSlotInt *slot) = 0; /** * Connect the signal of process_key_event. * * @param slot The slot to connect the signal. * @return The new connection. */ virtual scim::Connection signal_connect_process_key_event (ScimBridgeAgentPanelClientSlotKeyEvent *slot) = 0; /** * Connect the signal of commit_string. * * @param slot The slot to connect the signal. * @return The new connection. */ virtual scim::Connection signal_connect_commit_string (ScimBridgeAgentPanelClientSlotWideString *slot) = 0; /** * Connect the signal of forward_key_event. * * @param slot The slot to connect the signal. * @return The new connection. */ virtual scim::Connection signal_connect_forward_key_event (ScimBridgeAgentPanelClientSlotKeyEvent *slot) = 0; /** * Connect the signal of request_help. * * @param slot The slot to connect the signal. * @return The new connection. */ virtual scim::Connection signal_connect_request_help (ScimBridgeAgentPanelClientSlotVoid *slot) = 0; /** * Connect the signal of request_factory_menu. * * @param slot The slot to connect the signal. * @return The new connection. */ virtual scim::Connection signal_connect_request_factory_menu (ScimBridgeAgentPanelClientSlotVoid *slot) = 0; /** * Connect the signal of change_factory. * * @param slot The slot to connect the signal. * @return The new connection. */ virtual scim::Connection signal_connect_change_factory (ScimBridgeAgentPanelClientSlotString *slot) = 0; protected: ScimBridgeAgentPanelClient (); }; #endif /*SCIMBRIDGEAGENTPANELCLIENT_H*/ scim-1.4.14/extras/immodules/client-clutter/000077500000000000000000000000001177210725600210065ustar00rootroot00000000000000scim-1.4.14/extras/immodules/client-clutter/Makefile.am000066400000000000000000000034411177210725600230440ustar00rootroot00000000000000## Makefile.am -- Process this file with automake to produce Makefile.in ## ## Copyright (C) 2006 Ryo Dairiki ## Copyright (C) 2009, Intel Corporation. ## ## This library is free software; you can redistribute it and/or ## modify it under the terms of the GNU Lesser General Public ## License as published by the Free Software Foundation and ## appearing in the file LICENSE.LGPL included in the package of this file. ## You can also redistribute it and/or modify it under the terms of ## the GNU General Public License as published by the Free Software Foundation and ## appearing in the file LICENSE.GPL included in the package of this file. ## ## This library is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. if SCIM_BUILD_CLUTTER_IMMODULE INCLUDES = -I$(top_builddir) \ -I$(top_srcdir) \ -I$(top_srcdir)/extras/immodules/common \ -I$(top_srcdir)/extras/immodules/client-common noinst_HEADERS = scim-bridge-client-clutter.h scim-bridge-client-imcontext-clutter.h scim-bridge-client-key-event-utility-clutter.h moduledir = @CLUTTER_IM_MODULEDIR@ module_LTLIBRARIES = im-scim.la im_scim_la_SOURCES = im-scim-bridge-clutter.c \ scim-bridge-client-clutter.c \ scim-bridge-client-imcontext-clutter.c \ scim-bridge-client-key-event-utility-clutter.c im_scim_la_CXXFLAGS=@CLUTTER_CFLAGS@ im_scim_la_CFLAGS =@CLUTTER_CFLAGS@ im_scim_la_LDFLAGS = -rpath $(moduledir) \ -avoid-version -no-undefined \ -module \ @CLUTTER_LIBS@ im_scim_la_LIBADD = $(top_builddir)/extras/immodules/common/libscimbridgecommon.la \ $(top_builddir)/extras/immodules/client-common/libscimbridgeclientcommon.la endif MAINTAINERCLEANFILES = Makefile.in scim-1.4.14/extras/immodules/client-clutter/Makefile.in000066400000000000000000000720251177210725600230610ustar00rootroot00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = extras/immodules/client-clutter DIST_COMMON = $(am__noinst_HEADERS_DIST) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(moduledir)" LTLIBRARIES = $(module_LTLIBRARIES) @SCIM_BUILD_CLUTTER_IMMODULE_TRUE@im_scim_la_DEPENDENCIES = $(top_builddir)/extras/immodules/common/libscimbridgecommon.la \ @SCIM_BUILD_CLUTTER_IMMODULE_TRUE@ $(top_builddir)/extras/immodules/client-common/libscimbridgeclientcommon.la am__im_scim_la_SOURCES_DIST = im-scim-bridge-clutter.c \ scim-bridge-client-clutter.c \ scim-bridge-client-imcontext-clutter.c \ scim-bridge-client-key-event-utility-clutter.c @SCIM_BUILD_CLUTTER_IMMODULE_TRUE@am_im_scim_la_OBJECTS = im_scim_la-im-scim-bridge-clutter.lo \ @SCIM_BUILD_CLUTTER_IMMODULE_TRUE@ im_scim_la-scim-bridge-client-clutter.lo \ @SCIM_BUILD_CLUTTER_IMMODULE_TRUE@ im_scim_la-scim-bridge-client-imcontext-clutter.lo \ @SCIM_BUILD_CLUTTER_IMMODULE_TRUE@ im_scim_la-scim-bridge-client-key-event-utility-clutter.lo im_scim_la_OBJECTS = $(am_im_scim_la_OBJECTS) im_scim_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(im_scim_la_CFLAGS) \ $(CFLAGS) $(im_scim_la_LDFLAGS) $(LDFLAGS) -o $@ @SCIM_BUILD_CLUTTER_IMMODULE_TRUE@am_im_scim_la_rpath = -rpath \ @SCIM_BUILD_CLUTTER_IMMODULE_TRUE@ $(moduledir) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(im_scim_la_SOURCES) DIST_SOURCES = $(am__im_scim_la_SOURCES_DIST) am__noinst_HEADERS_DIST = scim-bridge-client-clutter.h \ scim-bridge-client-imcontext-clutter.h \ scim-bridge-client-key-event-utility-clutter.h HEADERS = $(noinst_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ ARGZ_H = @ARGZ_H@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CLUTTER_BINARY_VERSION = @CLUTTER_BINARY_VERSION@ CLUTTER_CFLAGS = @CLUTTER_CFLAGS@ CLUTTER_IMCONTEXT_LIBDIR = @CLUTTER_IMCONTEXT_LIBDIR@ CLUTTER_IM_MODULEDIR = @CLUTTER_IM_MODULEDIR@ CLUTTER_LIBDIR = @CLUTTER_LIBDIR@ CLUTTER_LIBS = @CLUTTER_LIBS@ CLUTTER_VERSION = @CLUTTER_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOCBOOK_XSL = @DOCBOOK_XSL@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@ GTHREAD2_LIBS = @GTHREAD2_LIBS@ GTK2_CFLAGS = @GTK2_CFLAGS@ GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@ GTK2_LIBS = @GTK2_LIBS@ GTK3_CFLAGS = @GTK3_CFLAGS@ GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@ GTK3_LIBS = @GTK3_LIBS@ GTK_BINARY_VERSION = @GTK_BINARY_VERSION@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBDIR = @GTK_LIBDIR@ GTK_LIBS = @GTK_LIBS@ GTK_MAJOR_VERSION = @GTK_MAJOR_VERSION@ GTK_VERSION = @GTK_VERSION@ HAVE_GRAPHVIZ = @HAVE_GRAPHVIZ@ INCLTDL = @INCLTDL@ INCLUDE_STDINT = @INCLUDE_STDINT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBLTDL = @LIBLTDL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_DEPS = @LIBTOOL_DEPS@ LIBTOOL_EXPORT_OPTIONS = @LIBTOOL_EXPORT_OPTIONS@ LIPO = @LIPO@ LN_S = @LN_S@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ QT3_CFLAGS = @QT3_CFLAGS@ QT3_IM_MODULEDIR = @QT3_IM_MODULEDIR@ QT3_LIBDIR = @QT3_LIBDIR@ QT3_LIBS = @QT3_LIBS@ QT3_MOC = @QT3_MOC@ QT3_PREFIX = @QT3_PREFIX@ QT4_CFLAGS = @QT4_CFLAGS@ QT4_IM_MODULEDIR = @QT4_IM_MODULEDIR@ QT4_LIBDIR = @QT4_LIBDIR@ QT4_LIBS = @QT4_LIBS@ QT4_MOC = @QT4_MOC@ QT4_PREFIX = @QT4_PREFIX@ RANLIB = @RANLIB@ SCIM_AGE = @SCIM_AGE@ SCIM_BINARY_VERSION = @SCIM_BINARY_VERSION@ SCIM_BRIDGE_MAJOR_VERSION = @SCIM_BRIDGE_MAJOR_VERSION@ SCIM_BRIDGE_MICRO_VERSION = @SCIM_BRIDGE_MICRO_VERSION@ SCIM_BRIDGE_MINOR_VERSION = @SCIM_BRIDGE_MINOR_VERSION@ SCIM_BRIDGE_VERSION = @SCIM_BRIDGE_VERSION@ SCIM_BUILD_CLUTTER_IMMODULE = @SCIM_BUILD_CLUTTER_IMMODULE@ SCIM_BUILD_CONFIG_SIMPLE = @SCIM_BUILD_CONFIG_SIMPLE@ SCIM_BUILD_CONFIG_SOCKET = @SCIM_BUILD_CONFIG_SOCKET@ SCIM_BUILD_DOCUMENTS = @SCIM_BUILD_DOCUMENTS@ SCIM_BUILD_FILTER_SCTC = @SCIM_BUILD_FILTER_SCTC@ SCIM_BUILD_FRONTEND_SOCKET = @SCIM_BUILD_FRONTEND_SOCKET@ SCIM_BUILD_FRONTEND_X11 = @SCIM_BUILD_FRONTEND_X11@ SCIM_BUILD_GTK2_IMMODULE = @SCIM_BUILD_GTK2_IMMODULE@ SCIM_BUILD_GTK3_IMMODULE = @SCIM_BUILD_GTK3_IMMODULE@ SCIM_BUILD_GTK_UTILS = @SCIM_BUILD_GTK_UTILS@ SCIM_BUILD_IMENGINE_RAWCODE = @SCIM_BUILD_IMENGINE_RAWCODE@ SCIM_BUILD_IMENGINE_SOCKET = @SCIM_BUILD_IMENGINE_SOCKET@ SCIM_BUILD_IMENGINE_TABLE = @SCIM_BUILD_IMENGINE_TABLE@ SCIM_BUILD_IMMODULE = @SCIM_BUILD_IMMODULE@ SCIM_BUILD_IM_AGENT = @SCIM_BUILD_IM_AGENT@ SCIM_BUILD_ORIG_GTK2_IMMODULE = @SCIM_BUILD_ORIG_GTK2_IMMODULE@ SCIM_BUILD_ORIG_GTK3_IMMODULE = @SCIM_BUILD_ORIG_GTK3_IMMODULE@ SCIM_BUILD_PANEL_GTK = @SCIM_BUILD_PANEL_GTK@ SCIM_BUILD_QT3_IMMODULE = @SCIM_BUILD_QT3_IMMODULE@ SCIM_BUILD_QT4_IMMODULE = @SCIM_BUILD_QT4_IMMODULE@ SCIM_BUILD_SCIM_SETUP = @SCIM_BUILD_SCIM_SETUP@ SCIM_BUILD_TESTS = @SCIM_BUILD_TESTS@ SCIM_BUILD_X11_UTILS = @SCIM_BUILD_X11_UTILS@ SCIM_CURRENT = @SCIM_CURRENT@ SCIM_DATADIR = @SCIM_DATADIR@ SCIM_EPOCH = @SCIM_EPOCH@ SCIM_ICONDIR = @SCIM_ICONDIR@ SCIM_LIBDIR = @SCIM_LIBDIR@ SCIM_LIBEXECDIR = @SCIM_LIBEXECDIR@ SCIM_LOCALEDIR = @SCIM_LOCALEDIR@ SCIM_LTDLADVISE = @SCIM_LTDLADVISE@ SCIM_MAJOR_VERSION = @SCIM_MAJOR_VERSION@ SCIM_MICRO_VERSION = @SCIM_MICRO_VERSION@ SCIM_MINOR_VERSION = @SCIM_MINOR_VERSION@ SCIM_MODULE_PATH = @SCIM_MODULE_PATH@ SCIM_PREFIX = @SCIM_PREFIX@ SCIM_REVISION = @SCIM_REVISION@ SCIM_SYSCONFDIR = @SCIM_SYSCONFDIR@ SCIM_TEMPDIR = @SCIM_TEMPDIR@ SCIM_VERSION = @SCIM_VERSION@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UINT16 = @UINT16@ UINT32 = @UINT32@ UINT64 = @UINT64@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XMKMF = @XMKMF@ XSLTPROC = @XSLTPROC@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_aux_dir = @ac_aux_dir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @SCIM_BUILD_CLUTTER_IMMODULE_TRUE@INCLUDES = -I$(top_builddir) \ @SCIM_BUILD_CLUTTER_IMMODULE_TRUE@ -I$(top_srcdir) \ @SCIM_BUILD_CLUTTER_IMMODULE_TRUE@ -I$(top_srcdir)/extras/immodules/common \ @SCIM_BUILD_CLUTTER_IMMODULE_TRUE@ -I$(top_srcdir)/extras/immodules/client-common @SCIM_BUILD_CLUTTER_IMMODULE_TRUE@noinst_HEADERS = scim-bridge-client-clutter.h scim-bridge-client-imcontext-clutter.h scim-bridge-client-key-event-utility-clutter.h @SCIM_BUILD_CLUTTER_IMMODULE_TRUE@moduledir = @CLUTTER_IM_MODULEDIR@ @SCIM_BUILD_CLUTTER_IMMODULE_TRUE@module_LTLIBRARIES = im-scim.la @SCIM_BUILD_CLUTTER_IMMODULE_TRUE@im_scim_la_SOURCES = im-scim-bridge-clutter.c \ @SCIM_BUILD_CLUTTER_IMMODULE_TRUE@ scim-bridge-client-clutter.c \ @SCIM_BUILD_CLUTTER_IMMODULE_TRUE@ scim-bridge-client-imcontext-clutter.c \ @SCIM_BUILD_CLUTTER_IMMODULE_TRUE@ scim-bridge-client-key-event-utility-clutter.c @SCIM_BUILD_CLUTTER_IMMODULE_TRUE@im_scim_la_CXXFLAGS = @CLUTTER_CFLAGS@ @SCIM_BUILD_CLUTTER_IMMODULE_TRUE@im_scim_la_CFLAGS = @CLUTTER_CFLAGS@ @SCIM_BUILD_CLUTTER_IMMODULE_TRUE@im_scim_la_LDFLAGS = -rpath $(moduledir) \ @SCIM_BUILD_CLUTTER_IMMODULE_TRUE@ -avoid-version -no-undefined \ @SCIM_BUILD_CLUTTER_IMMODULE_TRUE@ -module \ @SCIM_BUILD_CLUTTER_IMMODULE_TRUE@ @CLUTTER_LIBS@ @SCIM_BUILD_CLUTTER_IMMODULE_TRUE@im_scim_la_LIBADD = $(top_builddir)/extras/immodules/common/libscimbridgecommon.la \ @SCIM_BUILD_CLUTTER_IMMODULE_TRUE@ $(top_builddir)/extras/immodules/client-common/libscimbridgeclientcommon.la MAINTAINERCLEANFILES = Makefile.in all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu extras/immodules/client-clutter/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu extras/immodules/client-clutter/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-moduleLTLIBRARIES: $(module_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(moduledir)" || $(MKDIR_P) "$(DESTDIR)$(moduledir)" @list='$(module_LTLIBRARIES)'; test -n "$(moduledir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(moduledir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(moduledir)"; \ } uninstall-moduleLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(module_LTLIBRARIES)'; test -n "$(moduledir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(moduledir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(moduledir)/$$f"; \ done clean-moduleLTLIBRARIES: -test -z "$(module_LTLIBRARIES)" || rm -f $(module_LTLIBRARIES) @list='$(module_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done im-scim.la: $(im_scim_la_OBJECTS) $(im_scim_la_DEPENDENCIES) $(im_scim_la_LINK) $(am_im_scim_la_rpath) $(im_scim_la_OBJECTS) $(im_scim_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/im_scim_la-im-scim-bridge-clutter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/im_scim_la-scim-bridge-client-clutter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/im_scim_la-scim-bridge-client-imcontext-clutter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/im_scim_la-scim-bridge-client-key-event-utility-clutter.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< im_scim_la-im-scim-bridge-clutter.lo: im-scim-bridge-clutter.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(im_scim_la_CFLAGS) $(CFLAGS) -MT im_scim_la-im-scim-bridge-clutter.lo -MD -MP -MF $(DEPDIR)/im_scim_la-im-scim-bridge-clutter.Tpo -c -o im_scim_la-im-scim-bridge-clutter.lo `test -f 'im-scim-bridge-clutter.c' || echo '$(srcdir)/'`im-scim-bridge-clutter.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/im_scim_la-im-scim-bridge-clutter.Tpo $(DEPDIR)/im_scim_la-im-scim-bridge-clutter.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='im-scim-bridge-clutter.c' object='im_scim_la-im-scim-bridge-clutter.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(im_scim_la_CFLAGS) $(CFLAGS) -c -o im_scim_la-im-scim-bridge-clutter.lo `test -f 'im-scim-bridge-clutter.c' || echo '$(srcdir)/'`im-scim-bridge-clutter.c im_scim_la-scim-bridge-client-clutter.lo: scim-bridge-client-clutter.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(im_scim_la_CFLAGS) $(CFLAGS) -MT im_scim_la-scim-bridge-client-clutter.lo -MD -MP -MF $(DEPDIR)/im_scim_la-scim-bridge-client-clutter.Tpo -c -o im_scim_la-scim-bridge-client-clutter.lo `test -f 'scim-bridge-client-clutter.c' || echo '$(srcdir)/'`scim-bridge-client-clutter.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/im_scim_la-scim-bridge-client-clutter.Tpo $(DEPDIR)/im_scim_la-scim-bridge-client-clutter.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='scim-bridge-client-clutter.c' object='im_scim_la-scim-bridge-client-clutter.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(im_scim_la_CFLAGS) $(CFLAGS) -c -o im_scim_la-scim-bridge-client-clutter.lo `test -f 'scim-bridge-client-clutter.c' || echo '$(srcdir)/'`scim-bridge-client-clutter.c im_scim_la-scim-bridge-client-imcontext-clutter.lo: scim-bridge-client-imcontext-clutter.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(im_scim_la_CFLAGS) $(CFLAGS) -MT im_scim_la-scim-bridge-client-imcontext-clutter.lo -MD -MP -MF $(DEPDIR)/im_scim_la-scim-bridge-client-imcontext-clutter.Tpo -c -o im_scim_la-scim-bridge-client-imcontext-clutter.lo `test -f 'scim-bridge-client-imcontext-clutter.c' || echo '$(srcdir)/'`scim-bridge-client-imcontext-clutter.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/im_scim_la-scim-bridge-client-imcontext-clutter.Tpo $(DEPDIR)/im_scim_la-scim-bridge-client-imcontext-clutter.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='scim-bridge-client-imcontext-clutter.c' object='im_scim_la-scim-bridge-client-imcontext-clutter.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(im_scim_la_CFLAGS) $(CFLAGS) -c -o im_scim_la-scim-bridge-client-imcontext-clutter.lo `test -f 'scim-bridge-client-imcontext-clutter.c' || echo '$(srcdir)/'`scim-bridge-client-imcontext-clutter.c im_scim_la-scim-bridge-client-key-event-utility-clutter.lo: scim-bridge-client-key-event-utility-clutter.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(im_scim_la_CFLAGS) $(CFLAGS) -MT im_scim_la-scim-bridge-client-key-event-utility-clutter.lo -MD -MP -MF $(DEPDIR)/im_scim_la-scim-bridge-client-key-event-utility-clutter.Tpo -c -o im_scim_la-scim-bridge-client-key-event-utility-clutter.lo `test -f 'scim-bridge-client-key-event-utility-clutter.c' || echo '$(srcdir)/'`scim-bridge-client-key-event-utility-clutter.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/im_scim_la-scim-bridge-client-key-event-utility-clutter.Tpo $(DEPDIR)/im_scim_la-scim-bridge-client-key-event-utility-clutter.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='scim-bridge-client-key-event-utility-clutter.c' object='im_scim_la-scim-bridge-client-key-event-utility-clutter.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(im_scim_la_CFLAGS) $(CFLAGS) -c -o im_scim_la-scim-bridge-client-key-event-utility-clutter.lo `test -f 'scim-bridge-client-key-event-utility-clutter.c' || echo '$(srcdir)/'`scim-bridge-client-key-event-utility-clutter.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: for dir in "$(DESTDIR)$(moduledir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic clean-libtool clean-moduleLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-moduleLTLIBRARIES install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-moduleLTLIBRARIES .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-moduleLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-moduleLTLIBRARIES install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-moduleLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: scim-1.4.14/extras/immodules/client-clutter/im-scim-bridge-clutter.c000066400000000000000000000045471177210725600254340ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ #include #include #include #include #include "scim-bridge.h" #include "scim-bridge-client.h" #include "scim-bridge-client-clutter.h" #include "scim-bridge-client-imcontext-clutter.h" static const ClutterIMContextInfo scim_bridge_info = { /* ID */ "scim", /* Human readable name */ "SCIM Input Method", /* Translation domain */ "", /* Dir for bindtextdomain (not strictly needed for "clutter") */ "", /* Languages for which this module is the default */ "" }; static const ClutterIMContextInfo *info_list[] = { &scim_bridge_info }; /* Public functions */ void im_module_init (GTypeModule *type_module); void im_module_exit (void); void im_module_list (const ClutterIMContextInfo ***contexts, int *context_count); ClutterIMContext *im_module_create (const gchar *context_id); /* Implementations */ void im_module_init (GTypeModule *type_module) { scim_bridge_client_imcontext_register_type (type_module); scim_bridge_client_clutter_initialize (); static boolean first_time = TRUE; if (first_time) atexit (scim_bridge_client_clutter_finalize); first_time = FALSE; } void im_module_exit () { scim_bridge_client_clutter_finalize (); } void im_module_list (const ClutterIMContextInfo ***contexts, int *context_count) { *contexts = info_list; *context_count = G_N_ELEMENTS (info_list); } ClutterIMContext *im_module_create (const gchar *context_id) { if (strcmp (context_id, "scim") == 0) { return scim_bridge_client_imcontext_new (); } else { return NULL; } } scim-1.4.14/extras/immodules/client-clutter/scim-bridge-client-clutter.c000066400000000000000000000065321177210725600263010ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * Copyright (C) 2009, Intel Corporation. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ #include #include #include #include #include #include "scim-bridge-client.h" #include "scim-bridge-client-clutter.h" #include "scim-bridge-client-imcontext-clutter.h" #include "scim-bridge-client-protected.h" #include "scim-bridge-imcontext.h" #include "scim-bridge-output.h" /* Private Variables */ static GIOChannel *messenger_iochannel = NULL; static guint messenger_event_source = -1; static boolean initialized = FALSE; /* Private Functions */ static gboolean handle_message (GIOChannel *source, GIOCondition condition, gpointer data) { const int socket_fd = scim_bridge_client_get_messenger_fd (); fd_set read_set; FD_ZERO (&read_set); FD_SET (socket_fd, &read_set); struct timeval timeout; timeout.tv_sec = 0; timeout.tv_usec = 0; if (select (socket_fd + 1, &read_set, NULL, NULL, &timeout) > 0) { if (scim_bridge_client_read_and_dispatch ()) { scim_bridge_perrorln ("An IOException occurred at handle_message ()"); return FALSE; } } return TRUE; } /* Public Functions */ void scim_bridge_client_clutter_initialize () { scim_bridge_pdebugln (5, "scim_bridge_client_clutter_initialize ()"); if (initialized) { return; } else { initialized = TRUE; } if (scim_bridge_client_initialize ()) { scim_bridge_perrorln ("Failed to initialize scim-bridge..."); } else { scim_bridge_client_open_messenger (); } scim_bridge_client_imcontext_static_initialize (); } void scim_bridge_client_clutter_finalize () { scim_bridge_pdebugln (5, "scim_bridge_client_clutter_finalize ()"); if (!initialized) { return; } else { initialized = FALSE; } scim_bridge_client_finalize (); scim_bridge_client_imcontext_static_finalize (); } void scim_bridge_client_messenger_opened () { if (messenger_iochannel == NULL) { messenger_iochannel = g_io_channel_unix_new (scim_bridge_client_get_messenger_fd ()); messenger_event_source = g_io_add_watch (messenger_iochannel, G_IO_IN | G_IO_ERR | G_IO_HUP | G_IO_NVAL, &handle_message, NULL); } scim_bridge_client_imcontext_connection_opened (); } void scim_bridge_client_messenger_closed () { if (messenger_iochannel != NULL) { g_io_channel_unref (messenger_iochannel); messenger_iochannel = NULL; g_source_remove (messenger_event_source); messenger_event_source = -1; } scim_bridge_client_imcontext_connection_closed (); } scim-1.4.14/extras/immodules/client-clutter/scim-bridge-client-clutter.h000066400000000000000000000027431177210725600263060ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * Copyright (C) 2009, Intel Corporation. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ /** * @file * @author Raymond liu * @brief This header describes about the clutter client for scim-bridge. */ #ifndef SCIMBRIDGECLIENTCLUTTER_H_ #define SCIMBRIDGECLIENTCLUTTER_H_ #include "scim-bridge.h" #include "scim-bridge-key-event.h" #include "scim-bridge-imcontext.h" #ifdef __cplusplus extern "C" { #endif /** * Initialize clutter client for SCIMBridge. */ void scim_bridge_client_clutter_initialize (); /** * Finalize clutter client for SCIMBridge. */ void scim_bridge_client_clutter_finalize (); #ifdef __cplusplus } #endif #endif /*SCIMBRIDGECLIENTCLUTTER_H_*/ scim-1.4.14/extras/immodules/client-clutter/scim-bridge-client-imcontext-clutter.c000066400000000000000000000733441177210725600303160ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * Copyright (C) 2009, Intel Corporation. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ #include #include #include #include #include #include #include #include #include "scim-bridge-attribute.h" #include "scim-bridge-client.h" #include "scim-bridge-client-imcontext-clutter.h" #include "scim-bridge-client-key-event-utility-clutter.h" #include "scim-bridge-imcontext.h" #include "scim-bridge-messenger.h" #include "scim-bridge-output.h" #include "scim-bridge-string.h" /* Typedef */ struct _ScimBridgeClientIMContext { ClutterIMContext parent; scim_bridge_imcontext_id_t id; char *preedit_string; size_t preedit_string_capacity; PangoAttrList *preedit_attributes; unsigned int preedit_cursor_position; boolean preedit_cursor_flicking; boolean preedit_shown; boolean preedit_started; char *commit_string; size_t commit_string_capacity; boolean enabled; ClutterStage *client_stage; int cursor_x; int cursor_y; int window_x; int window_y; }; static GType class_type = 0; static GObjectClass *root_klass = NULL; static ScimBridgeClientIMContext *focused_imcontext = NULL; static ClutterActor *focused_actor = NULL; static ClutterIMContext *fallback_imcontext = NULL; static gulong fallback_commit_handler; static gulong fallback_preedit_changed_handler; /* Class functions */ static void scim_bridge_client_imcontext_class_initialize (ScimBridgeClientIMContextClass *klass, gpointer *klass_data); static void scim_bridge_client_imcontext_initialize (ScimBridgeClientIMContext *context, ScimBridgeClientIMContextClass *klass); static void scim_bridge_client_imcontext_finalize (GObject *object); static gboolean scim_bridge_client_imcontext_filter_key_event (ClutterIMContext *context, ClutterKeyEvent *event); static void scim_bridge_client_imcontext_reset (ClutterIMContext *context); static void scim_bridge_client_imcontext_show (ClutterIMContext *context); static void scim_bridge_client_imcontext_hide (ClutterIMContext *context); static void scim_bridge_client_imcontext_get_preedit_string (ClutterIMContext *context, gchar **str, PangoAttrList **attrs, gint *cursor_pos); static void scim_bridge_client_imcontext_set_preedit_enabled (ClutterIMContext *context, gboolean enabled); static void scim_bridge_client_imcontext_focus_in (ClutterIMContext *context); static void scim_bridge_client_imcontext_focus_out (ClutterIMContext *context); static void scim_bridge_client_imcontext_set_cursor_location (ClutterIMContext *context, ClutterIMRectangle *area); /* Helper functions */ static void fallback_commit (ClutterIMContext *context, const char *str, gpointer data) { scim_bridge_pdebugln (4, "fallback_commit ()"); if (focused_imcontext != NULL && !focused_imcontext->enabled && str != NULL) { g_signal_emit_by_name (focused_imcontext, "commit", str); } } static void fallback_preedit_changed (ClutterIMContext *context, gpointer data) { scim_bridge_pdebugln (4, "fallback_preedit_changed ()"); if (focused_imcontext != NULL && !focused_imcontext->enabled && context != NULL) { gchar* preedit_string = NULL; gint preedit_cursor_position = 0; PangoAttrList *preedit_attributes = NULL; clutter_im_context_get_preedit_string (context, &preedit_string, &preedit_attributes, &preedit_cursor_position); if (preedit_string != NULL) { free (focused_imcontext->preedit_string); focused_imcontext->preedit_string = preedit_string; focused_imcontext->preedit_string_capacity = strlen (preedit_string); focused_imcontext->preedit_shown = TRUE; } else { focused_imcontext->preedit_string[0] = '\0'; focused_imcontext->preedit_shown = FALSE; } focused_imcontext->preedit_cursor_position = preedit_cursor_position; if (focused_imcontext->preedit_attributes != NULL) pango_attr_list_unref (focused_imcontext->preedit_attributes); focused_imcontext->preedit_attributes = preedit_attributes; g_signal_emit_by_name (focused_imcontext, "preedit-changed"); } } static retval_t filter_key_event (ScimBridgeClientIMContext *imcontext, ClutterKeyEvent *event, boolean *consumed) { scim_bridge_pdebugln (5, "filter_key_event ()"); if (focused_imcontext != imcontext) scim_bridge_client_imcontext_focus_in (CLUTTER_IM_CONTEXT (imcontext)); /* if the source is null, then it's the event we forward out, and we do not handle it again */ if (clutter_event_get_source ((ClutterEvent*) event) == NULL) return RETVAL_SUCCEEDED; focused_actor = clutter_event_get_source ((ClutterEvent*) event); if (scim_bridge_client_is_messenger_opened ()) { ScimBridgeKeyEvent *bridge_key_event = scim_bridge_alloc_key_event (); scim_bridge_key_event_clutter_to_bridge (bridge_key_event, imcontext->client_stage, event); *consumed = FALSE; const retval_t retval_error = scim_bridge_client_handle_key_event (imcontext, bridge_key_event, consumed); scim_bridge_free_key_event (bridge_key_event); if (retval_error) { scim_bridge_perrorln ("An IOException at filter_key_event ()"); } else { return RETVAL_SUCCEEDED; } } return RETVAL_FAILED; } static retval_t set_cursor_location (ScimBridgeClientIMContext *imcontext, int window_x, int window_y, int cursor_x, int cursor_y) { scim_bridge_pdebugln (5, "set_cursor_location ()"); if (imcontext->window_x == window_x && imcontext->window_y == window_y && imcontext->cursor_x == cursor_x && imcontext->cursor_y == cursor_y) { return RETVAL_SUCCEEDED; } else { imcontext->cursor_x = cursor_x; imcontext->cursor_y = cursor_y; imcontext->window_x = window_x; imcontext->window_y = window_y; scim_bridge_pdebugln (3, "The cursor location is changed: x = %d + %d\ty = %d + %d", imcontext->window_x, imcontext->cursor_x, imcontext->window_y, imcontext->cursor_y); if (scim_bridge_client_is_messenger_opened ()) { if (scim_bridge_client_set_cursor_location (imcontext, imcontext->window_x + imcontext->cursor_x, imcontext->window_y + imcontext->cursor_y)) { scim_bridge_perrorln ("An IOException occurred at set_cursor_location ()"); return RETVAL_FAILED; } else { return RETVAL_SUCCEEDED; } } } return RETVAL_FAILED; } static boolean is_precise_cursor_enabled () { static boolean first_time = TRUE; static boolean precise_cursor_enabled = FALSE; if (first_time) { char *env_precise_cursor_enabled = getenv ("SCIM_BRIDGE_PRECISE_CURSOR_ENABLED"); if (env_precise_cursor_enabled != NULL) scim_bridge_string_to_boolean (&precise_cursor_enabled, env_precise_cursor_enabled); first_time = FALSE; } return precise_cursor_enabled; } /* Bindings */ void scim_bridge_client_imcontext_set_id (ScimBridgeClientIMContext *imcontext, scim_bridge_imcontext_id_t new_id) { imcontext->id = new_id; } scim_bridge_imcontext_id_t scim_bridge_client_imcontext_get_id (const ScimBridgeClientIMContext *imcontext) { return imcontext->id; } void scim_bridge_client_imcontext_set_preedit_string (ScimBridgeClientIMContext *imcontext, const char *preedit_string) { if (imcontext->preedit_string != NULL && preedit_string != NULL && !strcmp (imcontext->preedit_string, preedit_string)) return; size_t preedit_string_length; if (preedit_string != NULL) { preedit_string_length = strlen (preedit_string); } else { preedit_string_length = 0; } if (imcontext->preedit_string_capacity <= preedit_string_length) { imcontext->preedit_string_capacity = preedit_string_length; free (imcontext->preedit_string); imcontext->preedit_string = malloc (sizeof (char) * (imcontext->preedit_string_capacity + 1)); } if (preedit_string_length > 0) { strcpy (imcontext->preedit_string, preedit_string); } else { imcontext->preedit_string[0] = '\0'; } } void scim_bridge_client_imcontext_set_preedit_shown (ScimBridgeClientIMContext *imcontext, boolean preedit_shown) { imcontext->preedit_shown = preedit_shown; if (!preedit_shown) { free (imcontext->preedit_string); imcontext->preedit_string = malloc (sizeof (char)); imcontext->preedit_string[0] = '\0'; imcontext->preedit_string_capacity = 0; imcontext->preedit_cursor_position = 0; if (imcontext->preedit_attributes != NULL) { pango_attr_list_unref (imcontext->preedit_attributes); imcontext->preedit_attributes = NULL; } } } void scim_bridge_client_imcontext_set_preedit_cursor_position (ScimBridgeClientIMContext *imcontext, int cursor_position) { imcontext->preedit_cursor_position = cursor_position; } void scim_bridge_client_imcontext_set_preedit_attributes (ScimBridgeClientIMContext *imcontext, ScimBridgeAttribute** const preedit_attributes, int attribute_count) { } void scim_bridge_client_imcontext_update_preedit (ScimBridgeClientIMContext *imcontext) { if (imcontext->preedit_shown && !imcontext->preedit_started) { g_signal_emit_by_name ((ScimBridgeClientIMContext*) imcontext, "preedit-start"); imcontext->preedit_started = TRUE; } if (is_precise_cursor_enabled ()) { const size_t old_cursor_position = imcontext->preedit_cursor_position; imcontext->preedit_cursor_position = 0; if (imcontext->preedit_string != NULL) imcontext->preedit_cursor_position = g_utf8_strlen (imcontext->preedit_string, -1); imcontext->preedit_cursor_flicking = TRUE; g_signal_emit_by_name ((ScimBridgeClientIMContext*) imcontext, "preedit-changed"); imcontext->preedit_cursor_position = old_cursor_position; imcontext->preedit_cursor_flicking = FALSE; } g_signal_emit_by_name ((ScimBridgeClientIMContext*) imcontext, "preedit-changed"); if (!imcontext->preedit_shown && imcontext->preedit_started) { g_signal_emit_by_name ((ScimBridgeClientIMContext*) imcontext, "preedit-end"); imcontext->preedit_started = FALSE; } } void scim_bridge_client_imcontext_set_commit_string (ScimBridgeClientIMContext *imcontext, const char *commit_string) { size_t commit_string_length; if (commit_string != NULL) { commit_string_length = strlen (commit_string); } else { commit_string_length = 0; } if (imcontext->commit_string_capacity <= commit_string_length) { imcontext->commit_string_capacity = commit_string_length; free (imcontext->commit_string); imcontext->commit_string = malloc (sizeof (char) * (imcontext->commit_string_capacity + 1)); } if (commit_string_length > 0) { strcpy (imcontext->commit_string, commit_string); } else { imcontext->commit_string[0] = '\0'; } } void scim_bridge_client_imcontext_commit (ScimBridgeClientIMContext *imcontext) { g_signal_emit_by_name ((ScimBridgeClientIMContext*) imcontext, "commit", imcontext->commit_string); } void scim_bridge_client_imcontext_beep (ScimBridgeClientIMContext *imcontext) { } boolean scim_bridge_client_imcontext_get_surrounding_text (ScimBridgeClientIMContext *imcontext, int before_max, int after_max, char **string, int *cursor_position) { char *str; int cur_pos_in_utf8; if (clutter_im_context_get_surrounding (CLUTTER_IM_CONTEXT (imcontext), &str, &cur_pos_in_utf8)) { const size_t fetch_wstr_length = g_utf8_strlen (str, -1); const size_t after_wstr_length = g_utf8_strlen (str + cur_pos_in_utf8, -1); const size_t before_wstr_length = fetch_wstr_length - after_wstr_length; size_t before_copy_wstr_length; size_t after_copy_wstr_length; if (after_wstr_length > after_max) { after_copy_wstr_length = after_max; } else { after_copy_wstr_length = after_wstr_length; } if (before_wstr_length > before_max) { before_copy_wstr_length = before_max; } else { before_copy_wstr_length = before_wstr_length; } const size_t begin_wstr_index = before_wstr_length - before_copy_wstr_length; const size_t end_wstr_index = fetch_wstr_length - (after_wstr_length - after_copy_wstr_length); char* begin_str_ptr = g_utf8_offset_to_pointer (str, begin_wstr_index); char* end_str_ptr = g_utf8_offset_to_pointer (str, end_wstr_index); size_t str_length = end_str_ptr - begin_str_ptr; *string = malloc (sizeof (char) * (str_length + 1)); strncpy (*string, begin_str_ptr, str_length); (*string)[str_length] = '\0'; *cursor_position = before_copy_wstr_length; g_free (str); return TRUE; } else { *string = NULL; return FALSE; } } boolean scim_bridge_client_imcontext_delete_surrounding_text (ScimBridgeClientIMContext *imcontext, int offset, int length) { boolean retval = clutter_im_context_delete_surrounding (CLUTTER_IM_CONTEXT (imcontext), offset, length); return retval; } boolean scim_bridge_client_imcontext_replace_surrounding_text (ScimBridgeClientIMContext *imcontext, int cursor_position, const char *string) { clutter_im_context_set_surrounding (CLUTTER_IM_CONTEXT (imcontext), string, -1, cursor_position); return TRUE; } void scim_bridge_client_imcontext_forward_key_event (ScimBridgeClientIMContext *imcontext, const ScimBridgeKeyEvent *key_event) { ClutterKeyEvent clutter_event; scim_bridge_key_event_bridge_to_clutter (&clutter_event, imcontext->client_stage, key_event); if (imcontext == focused_imcontext && focused_actor != NULL) { const char *signal_name = NULL; if (scim_bridge_key_event_is_pressed (key_event)) { signal_name = "key-press-event"; } else { signal_name = "key-release-event"; } gboolean consumed = FALSE; g_signal_emit_by_name (focused_actor, signal_name, &clutter_event, &consumed); } else { //gdk_event_put ((GdkEvent*) &clutter_event); } } void scim_bridge_client_imcontext_imengine_status_changed (ScimBridgeClientIMContext *imcontext, boolean enabled) { if (imcontext->preedit_shown) { if (imcontext->enabled) { scim_bridge_client_imcontext_set_preedit_shown (imcontext, FALSE); scim_bridge_client_imcontext_update_preedit (imcontext); } else { clutter_im_context_reset (CLUTTER_IM_CONTEXT (fallback_imcontext)); } } imcontext->enabled = enabled; } /* Class Implementations */ void scim_bridge_client_imcontext_static_initialize () { focused_imcontext = NULL; fallback_imcontext = clutter_im_context_simple_new (); fallback_commit_handler = g_signal_connect (G_OBJECT (fallback_imcontext), "commit", G_CALLBACK (fallback_commit), NULL); fallback_preedit_changed_handler = g_signal_connect (G_OBJECT (fallback_imcontext), "preedit_changed", G_CALLBACK (fallback_preedit_changed), NULL); } void scim_bridge_client_imcontext_static_finalize () { g_signal_handlers_disconnect_by_func (fallback_imcontext, &fallback_commit_handler, NULL); g_object_unref (fallback_imcontext); fallback_imcontext = NULL; focused_imcontext = NULL; } void scim_bridge_client_imcontext_connection_opened () { } void scim_bridge_client_imcontext_connection_closed () { if (focused_imcontext != NULL) scim_bridge_client_imcontext_set_preedit_shown (focused_imcontext, FALSE); } void scim_bridge_client_imcontext_class_initialize (ScimBridgeClientIMContextClass *klass, gpointer *klass_data) { root_klass = (GObjectClass *) g_type_class_peek_parent (klass); ClutterIMContextClass *clutter_im_klass = CLUTTER_IM_CONTEXT_CLASS (klass); clutter_im_klass->filter_keypress = scim_bridge_client_imcontext_filter_key_event; clutter_im_klass->reset = scim_bridge_client_imcontext_reset; clutter_im_klass->show = scim_bridge_client_imcontext_show; clutter_im_klass->hide = scim_bridge_client_imcontext_hide; clutter_im_klass->get_preedit_string = scim_bridge_client_imcontext_get_preedit_string; clutter_im_klass->focus_in = scim_bridge_client_imcontext_focus_in; clutter_im_klass->focus_out = scim_bridge_client_imcontext_focus_out; clutter_im_klass->set_cursor_location = scim_bridge_client_imcontext_set_cursor_location; clutter_im_klass->set_use_preedit = scim_bridge_client_imcontext_set_preedit_enabled; GObjectClass *gobject_klass = G_OBJECT_CLASS (klass); gobject_klass->finalize = scim_bridge_client_imcontext_finalize; } GType scim_bridge_client_imcontext_get_type () { return class_type; } void scim_bridge_client_imcontext_register_type (GTypeModule *type_module) { scim_bridge_pdebugln (2, "scim_bridge_client_imcontext_register_type ()"); static const GTypeInfo klass_info = { sizeof (ScimBridgeClientIMContextClass), /* no base class initializer */ NULL, /* no base class finalizer */ NULL, /* class initializer */ (GClassInitFunc) scim_bridge_client_imcontext_class_initialize, /* no class finalizer */ NULL, /* no class data */ NULL, sizeof (ScimBridgeClientIMContext), 0, /* object initizlier */ (GInstanceInitFunc) scim_bridge_client_imcontext_initialize, }; if (!class_type) class_type = g_type_module_register_type (type_module, CLUTTER_TYPE_IM_CONTEXT, "ScimBridgeClientIMContext", &klass_info, 0); } ClutterIMContext *scim_bridge_client_imcontext_new () { scim_bridge_pdebugln (4, "scim_bridge_client_imcontext_new ()"); ScimBridgeClientIMContext *ic = SCIM_BRIDGE_CLIENT_IMCONTEXT (g_object_new (CLUTTER_TYPE_SCIM_CLIENT_IMCONTEXT, NULL)); return CLUTTER_IM_CONTEXT (ic); } void scim_bridge_client_imcontext_initialize (ScimBridgeClientIMContext *imcontext, ScimBridgeClientIMContextClass *klass) { scim_bridge_pdebugln (5, "scim_bridge_client_imcontext_initialize ()"); imcontext->preedit_shown = FALSE; imcontext->preedit_started = FALSE; imcontext->preedit_cursor_position = 0; imcontext->preedit_cursor_flicking = FALSE; imcontext->preedit_string = malloc (sizeof (char)); imcontext->preedit_string[0] = '\0'; imcontext->preedit_string_capacity = 0; imcontext->preedit_attributes = NULL; imcontext->commit_string = malloc (sizeof (char)); imcontext->commit_string[0] = '\0'; imcontext->commit_string_capacity = 0; imcontext->enabled = FALSE; imcontext->client_stage = NULL; imcontext->id = -1; if (!scim_bridge_client_is_messenger_opened ()) { scim_bridge_perrorln ("The messenger is now down"); } else if (scim_bridge_client_register_imcontext (imcontext)) { scim_bridge_perrorln ("Failed to register the IMContext"); } else { scim_bridge_pdebugln (1, "IMContext registered: id = %d", imcontext->id); } } void scim_bridge_client_imcontext_finalize (GObject *object) { scim_bridge_pdebugln (5, "scim_bridge_client_imcontext_finalize ()"); ScimBridgeClientIMContext *imcontext = SCIM_BRIDGE_CLIENT_IMCONTEXT (object); if (imcontext == focused_imcontext) scim_bridge_client_imcontext_focus_out (CLUTTER_IM_CONTEXT (imcontext)); if (!scim_bridge_client_is_messenger_opened ()) { scim_bridge_perrorln ("The messenger is now down"); } else if (scim_bridge_client_deregister_imcontext (imcontext)) { scim_bridge_perrorln ("Failed to deregister an IMContext"); } else { scim_bridge_pdebugln (3, "IMContext deregistered: id = %d", imcontext->id); } if (imcontext->client_stage) g_object_unref (imcontext->client_stage); free (imcontext->preedit_string); free (imcontext->commit_string); if (imcontext->preedit_attributes != NULL) pango_attr_list_unref (imcontext->preedit_attributes); imcontext->preedit_attributes = NULL; root_klass->finalize (object); } /* Class functions */ gboolean scim_bridge_client_imcontext_filter_key_event (ClutterIMContext *context, ClutterKeyEvent *event) { scim_bridge_pdebugln (8, "scim_bridge_client_imcontext_filter_key_event ()"); ScimBridgeClientIMContext *imcontext = SCIM_BRIDGE_CLIENT_IMCONTEXT (context); if (scim_bridge_client_is_messenger_opened () && imcontext != NULL ) { if (context->actor != NULL) { ClutterActor *stage = clutter_actor_get_stage (context->actor); Window current_window, root, parent, *childs; unsigned int nchild; XWindowAttributes winattr; Display *xdpy; int new_window_x; int new_window_y; clutter_actor_get_transformed_position (context->actor, &new_window_x, &new_window_y); xdpy = clutter_x11_get_default_display (); current_window = clutter_x11_get_stage_window(CLUTTER_STAGE(stage)); while(1) { XGetWindowAttributes (xdpy, current_window, &winattr); new_window_x += winattr.x; new_window_y += winattr.y; XQueryTree(xdpy, current_window, &root, &parent, &childs, &nchild); current_window = parent; if (root == parent) break; } if (imcontext->window_x != new_window_x || imcontext->window_y != new_window_y) { imcontext->window_x = new_window_x; imcontext->window_y = new_window_y; scim_bridge_pdebugln (1, "The cursor location is changed: x = %d + %d\ty = %d + %d", imcontext->window_x, imcontext->cursor_x, imcontext->window_y, imcontext->cursor_y); if (set_cursor_location (imcontext, new_window_x, new_window_y, imcontext->cursor_x, imcontext->cursor_y)) { scim_bridge_perrorln ("An IOException occurred at scim_bridge_client_imcontext_filter_key_event ()"); return clutter_im_context_filter_keypress (fallback_imcontext, event); } } } boolean consumed = FALSE; if (filter_key_event (imcontext, event, &consumed)) { scim_bridge_perrorln ("An IOException occurred at scim_bridge_client_imcontext_filter_key_event ()"); } else if (consumed) { return TRUE; } } if (imcontext == NULL || !imcontext->enabled) { return clutter_im_context_filter_keypress (fallback_imcontext, event); } return FALSE; } void scim_bridge_client_imcontext_reset (ClutterIMContext *context) { scim_bridge_pdebugln (8, "scim_bridge_client_imcontext_reset ()"); ScimBridgeClientIMContext *imcontext = SCIM_BRIDGE_CLIENT_IMCONTEXT (context); if (imcontext != focused_imcontext) return; if (scim_bridge_client_is_messenger_opened () && imcontext != NULL) { if (scim_bridge_client_reset_imcontext (imcontext)) { scim_bridge_perrorln ("An IOException occurred at scim_bridge_client_imcontext_reset ()"); } } } void scim_bridge_client_imcontext_show(ClutterIMContext *context) { scim_bridge_pdebugln (8, "scim_bridge_client_imcontext_show ()"); ScimBridgeClientIMContext *imcontext = SCIM_BRIDGE_CLIENT_IMCONTEXT (context); if (scim_bridge_client_is_messenger_opened () && imcontext != NULL && !imcontext->enabled) { scim_bridge_client_imcontext_focus_in (context); if (scim_bridge_client_set_imcontext_enabled (imcontext, TRUE)) { scim_bridge_perrorln ("An IOException occurred at scim_bridge_client_imcontext_show ()"); } } } void scim_bridge_client_imcontext_hide(ClutterIMContext *context) { scim_bridge_pdebugln (8, "scim_bridge_client_imcontext_hide ()"); ScimBridgeClientIMContext *imcontext = SCIM_BRIDGE_CLIENT_IMCONTEXT (context); if (scim_bridge_client_is_messenger_opened () && imcontext != NULL && imcontext->enabled) { if (scim_bridge_client_set_imcontext_enabled (imcontext, FALSE)) { scim_bridge_perrorln ("An IOException occurred at scim_bridge_client_imcontext_hide ()"); } } scim_bridge_client_imcontext_focus_out (context); } void scim_bridge_client_imcontext_get_preedit_string (ClutterIMContext *context, gchar **str, PangoAttrList **pango_attrs, gint *cursor_pos) { scim_bridge_pdebugln (4, "scim_bridge_client_imcontext_get_preedit_string ()"); ScimBridgeClientIMContext *imcontext = SCIM_BRIDGE_CLIENT_IMCONTEXT (context); if (scim_bridge_client_is_messenger_opened () && imcontext != NULL && imcontext->preedit_shown) { const size_t preedit_string_length = strlen (imcontext->preedit_string); const size_t preedit_wstring_length = g_utf8_strlen (imcontext->preedit_string, -1); if (str) { if (preedit_string_length > 0) { *str = g_strdup (imcontext->preedit_string); } else { *str = g_strdup (""); } } if (cursor_pos) { if (imcontext->preedit_cursor_position > preedit_wstring_length) { *cursor_pos = preedit_wstring_length; } else { *cursor_pos = imcontext->preedit_cursor_position; } } if (pango_attrs) { *pango_attrs = imcontext->preedit_attributes; pango_attr_list_ref (imcontext->preedit_attributes); } } else { if (str) *str = g_strdup (""); if (cursor_pos) *cursor_pos = 0; if (pango_attrs) *pango_attrs = pango_attr_list_new (); } } void scim_bridge_client_imcontext_focus_in (ClutterIMContext *context) { scim_bridge_pdebugln (8, "scim_bridge_client_imcontext_focus_in ()"); ScimBridgeClientIMContext *imcontext = SCIM_BRIDGE_CLIENT_IMCONTEXT (context); if (focused_imcontext != NULL && focused_imcontext != imcontext) scim_bridge_client_imcontext_focus_out (CLUTTER_IM_CONTEXT (focused_imcontext)); focused_imcontext = imcontext; if (!scim_bridge_client_is_messenger_opened () && scim_bridge_client_is_reconnection_enabled ()) { scim_bridge_pdebugln (7, "Trying to open the connection again..."); scim_bridge_client_open_messenger (); } if (scim_bridge_client_is_messenger_opened () && imcontext != NULL) { if (scim_bridge_client_change_focus (imcontext, TRUE)) { scim_bridge_perrorln ("An IOException occurred at scim_bridge_client_imcontext_focus_in ()"); } } } void scim_bridge_client_imcontext_focus_out (ClutterIMContext *context) { scim_bridge_pdebugln (8, "scim_bridge_client_imcontext_focus_out ()"); ScimBridgeClientIMContext *imcontext = SCIM_BRIDGE_CLIENT_IMCONTEXT (context); focused_actor = NULL; focused_imcontext = imcontext; if (imcontext->preedit_shown) { if (imcontext->enabled) { scim_bridge_client_imcontext_set_preedit_shown (imcontext, FALSE); scim_bridge_client_imcontext_update_preedit (imcontext); } else { clutter_im_context_reset (CLUTTER_IM_CONTEXT (fallback_imcontext)); } } if (scim_bridge_client_is_messenger_opened () && imcontext != NULL) { if (scim_bridge_client_change_focus (imcontext, FALSE)) { scim_bridge_perrorln ("An IOException occurred at scim_bridge_client_imcontext_focus_out ()"); } } focused_imcontext = NULL; } void scim_bridge_client_imcontext_set_client_stage (ClutterIMContext *context, ClutterStage *new_stage) { scim_bridge_pdebugln (7, "scim_bridge_client_imcontext_set_client_stage ()"); ScimBridgeClientIMContext *imcontext = SCIM_BRIDGE_CLIENT_IMCONTEXT (context); if (imcontext != NULL) { if (imcontext->client_stage != NULL) g_object_unref (imcontext->client_stage); imcontext->client_stage = new_stage; if (new_stage != NULL) { g_object_ref (new_stage); } } } void scim_bridge_client_imcontext_set_cursor_location (ClutterIMContext *context, ClutterIMRectangle *area) { scim_bridge_pdebugln (4, "scim_bridge_client_imcontext_set_cursor_location ()"); ScimBridgeClientIMContext *imcontext = SCIM_BRIDGE_CLIENT_IMCONTEXT (context); if (imcontext->preedit_cursor_flicking) return; if (imcontext != NULL && context->actor != NULL) { const int new_cursor_x = area->x + area->width; const int new_cursor_y = area->y + area->height + 8; if (set_cursor_location (imcontext, imcontext->window_x, imcontext->window_y, new_cursor_x, new_cursor_y)) { scim_bridge_perrorln ("An IOException occurred at scim_bridge_client_imcontext_set_cursor_location ()"); } } } void scim_bridge_client_imcontext_set_preedit_enabled (ClutterIMContext *context, gboolean enabled) { scim_bridge_pdebugln (8, "scim_bridge_client_imcontext_set_preedit_enabled ()"); ScimBridgeClientIMContext *imcontext = SCIM_BRIDGE_CLIENT_IMCONTEXT (context); if (imcontext != NULL) { if (scim_bridge_client_is_messenger_opened ()) { if (scim_bridge_client_set_preedit_mode (imcontext, enabled ? PREEDIT_EMBEDDED:PREEDIT_ANY)) { scim_bridge_perrorln ("An IOException occurred at scim_bridge_client_imcontext_set_preedit_enabled ()"); } } } } scim-1.4.14/extras/immodules/client-clutter/scim-bridge-client-imcontext-clutter.h000066400000000000000000000061441177210725600303150ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * Copyright (C) 2009, Intel Corporation. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ /** * @file * @author Raymond liu * @brief This is the header for clutter imcontext of scim-bridge. */ #ifndef SCIMBRIDGECLIENTIMCONTEXTCLUTTER_H_ #define SCIMBRIDGECLIENTIMCONTEXTCLUTTER_H_ #include #include #include #include "scim-bridge.h" #include "scim-bridge-client-imcontext.h" #define CLUTTER_TYPE_SCIM_CLIENT_IMCONTEXT (scim_bridge_client_imcontext_get_type ()) #define SCIM_BRIDGE_CLIENT_IMCONTEXT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CLUTTER_TYPE_SCIM_CLIENT_IMCONTEXT, ScimBridgeClientIMContext)) #define SCIM_BRIDGE_CLIENT_IMCONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CLUTTER_TYPE_SCIM_CLIENT_IMCONTEXT, ScimBridgeClientIMContextClass)) #define IS_SCIM_BRIDGE_CLIENT_IMCONTEXT(class) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CLUTTER_TYPE_SCIM_CLIENT_IMCONTEXT)) #define IS_SCIM_BRIDGE_CLIENT_IMCONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CLUTTER_TYPE_SCIM_CLIENT_IMCONTEXT)) #define SCIM_BRIDGE_CLIENT_IMCONTEXT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CLUTTER_TYPE_SCIM_CLIENT_IMCONTEXT, ScimBridgeClientIMContextClass)) struct _ScimBridgeClientIMContextClass { ClutterIMContextClass parent_class; }; /** * IMContext class for clutter client. */ typedef struct _ScimBridgeClientIMContextClass ScimBridgeClientIMContextClass; /** * Initialize IMContext class itself. */ void scim_bridge_client_imcontext_static_initialize (); /** * Finalize IMContext class itself. */ void scim_bridge_client_imcontext_static_finalize (); /** * The connection with the agent is opened. */ void scim_bridge_client_imcontext_connection_opened (); /** * The connection with the agent is closed. */ void scim_bridge_client_imcontext_connection_closed (); /** * Allocate an IMContext. * * @return new IMContext. */ ClutterIMContext *scim_bridge_client_imcontext_new (); /** * Get the type value of IMContexts. * * @return The type value of IMContexts. */ GType scim_bridge_client_imcontext_get_type (); /** * Register the type value for IMContexts. * * @param type_module The type module. */ void scim_bridge_client_imcontext_register_type (GTypeModule *type_module); #endif /*SCIMBRIDGECLIENTIMCONTEXTCLUTTER_H_*/ scim-1.4.14/extras/immodules/client-clutter/scim-bridge-client-key-event-utility-clutter.c000066400000000000000000000076141177210725600317110ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * Copyright (C) 2009, Intel Corporation. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ #include #include #include "scim-bridge-client-key-event-utility-clutter.h" #include "scim-bridge-key-event.h" /* Implementations */ void scim_bridge_key_event_bridge_to_clutter (ClutterKeyEvent *clutter_key_event, ClutterStage *client_stage, const ScimBridgeKeyEvent *key_event) { clutter_key_event->flags = 0; clutter_key_event->source = NULL; clutter_key_event->hardware_keycode = 0; /* not needed */ clutter_key_event->unicode_value = 0; clutter_key_event->modifier_state = 0; clutter_key_event->device = NULL; /* not needed */ if (scim_bridge_key_event_is_shift_down (key_event)) clutter_key_event->modifier_state |= CLUTTER_SHIFT_MASK; if (scim_bridge_key_event_is_caps_lock_down (key_event)) clutter_key_event->modifier_state |= CLUTTER_LOCK_MASK; if (scim_bridge_key_event_is_control_down (key_event)) clutter_key_event->modifier_state |= CLUTTER_CONTROL_MASK; if (scim_bridge_key_event_is_alt_down (key_event)) clutter_key_event->modifier_state |= CLUTTER_MOD1_MASK; /*if (scim_bridge_key_event_is_num_lock_down (key_event)) clutter_key_event->modifier_state |= CLUTTER_MOD2_MASK;*/ if (scim_bridge_key_event_is_pressed (key_event)) { clutter_key_event->type = CLUTTER_KEY_PRESS; } else { clutter_key_event->type = CLUTTER_KEY_RELEASE; clutter_key_event->modifier_state |= CLUTTER_RELEASE_MASK; } clutter_key_event->stage = client_stage; struct timeval current_time; gettimeofday (¤t_time, NULL); clutter_key_event->time = current_time.tv_sec * 1000 + current_time.tv_usec / 1000; clutter_key_event->keyval = scim_bridge_key_event_get_code (key_event); } void scim_bridge_key_event_clutter_to_bridge (ScimBridgeKeyEvent *bridge_key_event, ClutterStage *stage, const ClutterKeyEvent *key_event) { // Use Key Symbole provided by clutter. scim_bridge_key_event_set_code (bridge_key_event, (scim_bridge_key_code_t) key_event->keyval); scim_bridge_key_event_clear_modifiers (bridge_key_event); if (key_event->modifier_state & CLUTTER_SHIFT_MASK || key_event->keyval == CLUTTER_Shift_L || key_event->keyval == CLUTTER_Shift_R) scim_bridge_key_event_set_shift_down (bridge_key_event, TRUE); if (key_event->modifier_state & CLUTTER_LOCK_MASK || key_event->keyval == CLUTTER_Caps_Lock) scim_bridge_key_event_set_caps_lock_down (bridge_key_event, TRUE); if (key_event->modifier_state & CLUTTER_CONTROL_MASK || key_event->keyval == CLUTTER_Control_L || key_event->keyval == CLUTTER_Control_R) scim_bridge_key_event_set_control_down (bridge_key_event, TRUE); if (key_event->modifier_state & CLUTTER_MOD1_MASK || key_event->keyval == CLUTTER_Alt_L || key_event->keyval == CLUTTER_Alt_R) scim_bridge_key_event_set_alt_down (bridge_key_event, TRUE); /*if (key_event->modifier_state & CLUTTER_MOD2_MASK) scim_bridge_key_event_set_num_lock_down (bridge_key_event, TRUE);*/ if (key_event->type != CLUTTER_KEY_RELEASE) { scim_bridge_key_event_set_pressed (bridge_key_event, TRUE); } else { scim_bridge_key_event_set_pressed (bridge_key_event, FALSE); } } scim-1.4.14/extras/immodules/client-clutter/scim-bridge-client-key-event-utility-clutter.h000066400000000000000000000037661177210725600317220ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * Copyright (C) 2009, Intel Corporation. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ /** * @file * @author Raymond liu * @brief This is the header of the functions to translate key events between scim-bridge and clutter. */ #ifndef SCIMBRIDGECLIENTKEYEVENTUTILITYCLUTTER_H_ #define SCIMBRIDGECLIENTKEYEVENTUTILITYCLUTTER_H_ #include #include "scim-bridge.h" #include "scim-bridge-key-event.h" /** * Translate a key event from scim-bridge into clutter. * * @param clutter_key_event A key event of clutter. * @param client_stage The clutter stage for the key event. * @param key_event The key event from scim-bridge. */ void scim_bridge_key_event_bridge_to_clutter (ClutterKeyEvent *clutter_key_event, ClutterStage *client_stage, const ScimBridgeKeyEvent *key_event); /** * Translate a key event from clutter into scim-bridge. * * @param bridge_key_event A key event of scim-bridge. * @param client_stage The clutter stage for the key event. * @param key_event The key event from clutter. */ void scim_bridge_key_event_clutter_to_bridge (ScimBridgeKeyEvent *bridge_key_event, ClutterStage *client_stage, const ClutterKeyEvent *key_event); #endif /*SCIMBRIDGECLIENTKEYEVENTUTILITYCLUTTER_H_*/ scim-1.4.14/extras/immodules/client-common/000077500000000000000000000000001177210725600206145ustar00rootroot00000000000000scim-1.4.14/extras/immodules/client-common/Makefile.am000066400000000000000000000042021177210725600226460ustar00rootroot00000000000000## Makefile.am -- Process this file with automake to produce Makefile.in ## ## Copyright (C) 2006 Ryo Dairiki ## ## ## This library is free software; you can redistribute it and/or ## modify it under the terms of the GNU Lesser General Public ## License as published by the Free Software Foundation and ## appearing in the file LICENSE.LGPL included in the package of this file. ## You can also redistribute it and/or modify it under the terms of ## the GNU General Public License as published by the Free Software Foundation and ## appearing in the file LICENSE.GPL included in the package of this file. ## ## This library is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. if SCIM_BUILD_IMMODULE INCLUDES = -I$(top_builddir) \ -I$(top_builddir)/src \ -I$(top_srcdir) \ -I$(top_srcdir)/src \ -I$(top_srcdir)/intl \ -I$(top_srcdir)/data \ -I$(top_srcdir)/utils \ -I$(top_srcdir)/extras/panel \ -I$(top_srcdir)/extras/immodules/common \ -I$(top_srcdir)/extras/immodules/client-common \ -DSCIM_DATADIR=\"@SCIM_DATADIR@\" \ -DSCIM_LOCALEDIR=\"@SCIM_LOCALEDIR@\" \ -DSCIM_SYSCONFDIR=\"@SCIM_SYSCONFDIR@\" \ -DSCIM_LIBEXECDIR=\"@SCIM_LIBEXECDIR@\" \ -DSCIM_ICONDIR=\"@SCIM_ICONDIR@\" \ -DSCIM_MODULE_PATH=\"@SCIM_MODULE_PATH@\" \ -DSCIM_TEMPDIR=\"@SCIM_TEMPDIR@\" \ -DSCIM_KEYBOARD_ICON_FILE=\"@SCIM_ICONDIR@/keyboard.png\" noinst_HEADERS = scim-bridge-client.h scim-bridge-client-protected.h scim-bridge-client-imcontext.h noinst_LTLIBRARIES = libscimbridgeclientcommon.la libscimbridgeclientcommon_la_SOURCES = scim-bridge-client.c \ scim-bridge-client-output.c \ scim-bridge-client-debug.c #libscimbridgeclientcommon_la_CFLAGS = @SCIM_CFLAGS@ #libscimbridgeclientcommon_la_CXXFLAGS = @SCIM_CFLAGS@ #libscimbridgeclientcommon_la_LDFLAGS = @SCIM_LIBS@ endif MAINTAINERCLEANFILES = Makefile.in scim-1.4.14/extras/immodules/client-common/Makefile.in000066400000000000000000000527511177210725600226730ustar00rootroot00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = extras/immodules/client-common DIST_COMMON = $(am__noinst_HEADERS_DIST) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libscimbridgeclientcommon_la_LIBADD = am__libscimbridgeclientcommon_la_SOURCES_DIST = scim-bridge-client.c \ scim-bridge-client-output.c scim-bridge-client-debug.c @SCIM_BUILD_IMMODULE_TRUE@am_libscimbridgeclientcommon_la_OBJECTS = \ @SCIM_BUILD_IMMODULE_TRUE@ scim-bridge-client.lo \ @SCIM_BUILD_IMMODULE_TRUE@ scim-bridge-client-output.lo \ @SCIM_BUILD_IMMODULE_TRUE@ scim-bridge-client-debug.lo libscimbridgeclientcommon_la_OBJECTS = \ $(am_libscimbridgeclientcommon_la_OBJECTS) @SCIM_BUILD_IMMODULE_TRUE@am_libscimbridgeclientcommon_la_rpath = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libscimbridgeclientcommon_la_SOURCES) DIST_SOURCES = $(am__libscimbridgeclientcommon_la_SOURCES_DIST) am__noinst_HEADERS_DIST = scim-bridge-client.h \ scim-bridge-client-protected.h scim-bridge-client-imcontext.h HEADERS = $(noinst_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ ARGZ_H = @ARGZ_H@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CLUTTER_BINARY_VERSION = @CLUTTER_BINARY_VERSION@ CLUTTER_CFLAGS = @CLUTTER_CFLAGS@ CLUTTER_IMCONTEXT_LIBDIR = @CLUTTER_IMCONTEXT_LIBDIR@ CLUTTER_IM_MODULEDIR = @CLUTTER_IM_MODULEDIR@ CLUTTER_LIBDIR = @CLUTTER_LIBDIR@ CLUTTER_LIBS = @CLUTTER_LIBS@ CLUTTER_VERSION = @CLUTTER_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOCBOOK_XSL = @DOCBOOK_XSL@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@ GTHREAD2_LIBS = @GTHREAD2_LIBS@ GTK2_CFLAGS = @GTK2_CFLAGS@ GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@ GTK2_LIBS = @GTK2_LIBS@ GTK3_CFLAGS = @GTK3_CFLAGS@ GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@ GTK3_LIBS = @GTK3_LIBS@ GTK_BINARY_VERSION = @GTK_BINARY_VERSION@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBDIR = @GTK_LIBDIR@ GTK_LIBS = @GTK_LIBS@ GTK_MAJOR_VERSION = @GTK_MAJOR_VERSION@ GTK_VERSION = @GTK_VERSION@ HAVE_GRAPHVIZ = @HAVE_GRAPHVIZ@ INCLTDL = @INCLTDL@ INCLUDE_STDINT = @INCLUDE_STDINT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBLTDL = @LIBLTDL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_DEPS = @LIBTOOL_DEPS@ LIBTOOL_EXPORT_OPTIONS = @LIBTOOL_EXPORT_OPTIONS@ LIPO = @LIPO@ LN_S = @LN_S@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ QT3_CFLAGS = @QT3_CFLAGS@ QT3_IM_MODULEDIR = @QT3_IM_MODULEDIR@ QT3_LIBDIR = @QT3_LIBDIR@ QT3_LIBS = @QT3_LIBS@ QT3_MOC = @QT3_MOC@ QT3_PREFIX = @QT3_PREFIX@ QT4_CFLAGS = @QT4_CFLAGS@ QT4_IM_MODULEDIR = @QT4_IM_MODULEDIR@ QT4_LIBDIR = @QT4_LIBDIR@ QT4_LIBS = @QT4_LIBS@ QT4_MOC = @QT4_MOC@ QT4_PREFIX = @QT4_PREFIX@ RANLIB = @RANLIB@ SCIM_AGE = @SCIM_AGE@ SCIM_BINARY_VERSION = @SCIM_BINARY_VERSION@ SCIM_BRIDGE_MAJOR_VERSION = @SCIM_BRIDGE_MAJOR_VERSION@ SCIM_BRIDGE_MICRO_VERSION = @SCIM_BRIDGE_MICRO_VERSION@ SCIM_BRIDGE_MINOR_VERSION = @SCIM_BRIDGE_MINOR_VERSION@ SCIM_BRIDGE_VERSION = @SCIM_BRIDGE_VERSION@ SCIM_BUILD_CLUTTER_IMMODULE = @SCIM_BUILD_CLUTTER_IMMODULE@ SCIM_BUILD_CONFIG_SIMPLE = @SCIM_BUILD_CONFIG_SIMPLE@ SCIM_BUILD_CONFIG_SOCKET = @SCIM_BUILD_CONFIG_SOCKET@ SCIM_BUILD_DOCUMENTS = @SCIM_BUILD_DOCUMENTS@ SCIM_BUILD_FILTER_SCTC = @SCIM_BUILD_FILTER_SCTC@ SCIM_BUILD_FRONTEND_SOCKET = @SCIM_BUILD_FRONTEND_SOCKET@ SCIM_BUILD_FRONTEND_X11 = @SCIM_BUILD_FRONTEND_X11@ SCIM_BUILD_GTK2_IMMODULE = @SCIM_BUILD_GTK2_IMMODULE@ SCIM_BUILD_GTK3_IMMODULE = @SCIM_BUILD_GTK3_IMMODULE@ SCIM_BUILD_GTK_UTILS = @SCIM_BUILD_GTK_UTILS@ SCIM_BUILD_IMENGINE_RAWCODE = @SCIM_BUILD_IMENGINE_RAWCODE@ SCIM_BUILD_IMENGINE_SOCKET = @SCIM_BUILD_IMENGINE_SOCKET@ SCIM_BUILD_IMENGINE_TABLE = @SCIM_BUILD_IMENGINE_TABLE@ SCIM_BUILD_IMMODULE = @SCIM_BUILD_IMMODULE@ SCIM_BUILD_IM_AGENT = @SCIM_BUILD_IM_AGENT@ SCIM_BUILD_ORIG_GTK2_IMMODULE = @SCIM_BUILD_ORIG_GTK2_IMMODULE@ SCIM_BUILD_ORIG_GTK3_IMMODULE = @SCIM_BUILD_ORIG_GTK3_IMMODULE@ SCIM_BUILD_PANEL_GTK = @SCIM_BUILD_PANEL_GTK@ SCIM_BUILD_QT3_IMMODULE = @SCIM_BUILD_QT3_IMMODULE@ SCIM_BUILD_QT4_IMMODULE = @SCIM_BUILD_QT4_IMMODULE@ SCIM_BUILD_SCIM_SETUP = @SCIM_BUILD_SCIM_SETUP@ SCIM_BUILD_TESTS = @SCIM_BUILD_TESTS@ SCIM_BUILD_X11_UTILS = @SCIM_BUILD_X11_UTILS@ SCIM_CURRENT = @SCIM_CURRENT@ SCIM_DATADIR = @SCIM_DATADIR@ SCIM_EPOCH = @SCIM_EPOCH@ SCIM_ICONDIR = @SCIM_ICONDIR@ SCIM_LIBDIR = @SCIM_LIBDIR@ SCIM_LIBEXECDIR = @SCIM_LIBEXECDIR@ SCIM_LOCALEDIR = @SCIM_LOCALEDIR@ SCIM_LTDLADVISE = @SCIM_LTDLADVISE@ SCIM_MAJOR_VERSION = @SCIM_MAJOR_VERSION@ SCIM_MICRO_VERSION = @SCIM_MICRO_VERSION@ SCIM_MINOR_VERSION = @SCIM_MINOR_VERSION@ SCIM_MODULE_PATH = @SCIM_MODULE_PATH@ SCIM_PREFIX = @SCIM_PREFIX@ SCIM_REVISION = @SCIM_REVISION@ SCIM_SYSCONFDIR = @SCIM_SYSCONFDIR@ SCIM_TEMPDIR = @SCIM_TEMPDIR@ SCIM_VERSION = @SCIM_VERSION@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UINT16 = @UINT16@ UINT32 = @UINT32@ UINT64 = @UINT64@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XMKMF = @XMKMF@ XSLTPROC = @XSLTPROC@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_aux_dir = @ac_aux_dir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @SCIM_BUILD_IMMODULE_TRUE@INCLUDES = -I$(top_builddir) \ @SCIM_BUILD_IMMODULE_TRUE@ -I$(top_builddir)/src \ @SCIM_BUILD_IMMODULE_TRUE@ -I$(top_srcdir) \ @SCIM_BUILD_IMMODULE_TRUE@ -I$(top_srcdir)/src \ @SCIM_BUILD_IMMODULE_TRUE@ -I$(top_srcdir)/intl \ @SCIM_BUILD_IMMODULE_TRUE@ -I$(top_srcdir)/data \ @SCIM_BUILD_IMMODULE_TRUE@ -I$(top_srcdir)/utils \ @SCIM_BUILD_IMMODULE_TRUE@ -I$(top_srcdir)/extras/panel \ @SCIM_BUILD_IMMODULE_TRUE@ -I$(top_srcdir)/extras/immodules/common \ @SCIM_BUILD_IMMODULE_TRUE@ -I$(top_srcdir)/extras/immodules/client-common \ @SCIM_BUILD_IMMODULE_TRUE@ -DSCIM_DATADIR=\"@SCIM_DATADIR@\" \ @SCIM_BUILD_IMMODULE_TRUE@ -DSCIM_LOCALEDIR=\"@SCIM_LOCALEDIR@\" \ @SCIM_BUILD_IMMODULE_TRUE@ -DSCIM_SYSCONFDIR=\"@SCIM_SYSCONFDIR@\" \ @SCIM_BUILD_IMMODULE_TRUE@ -DSCIM_LIBEXECDIR=\"@SCIM_LIBEXECDIR@\" \ @SCIM_BUILD_IMMODULE_TRUE@ -DSCIM_ICONDIR=\"@SCIM_ICONDIR@\" \ @SCIM_BUILD_IMMODULE_TRUE@ -DSCIM_MODULE_PATH=\"@SCIM_MODULE_PATH@\" \ @SCIM_BUILD_IMMODULE_TRUE@ -DSCIM_TEMPDIR=\"@SCIM_TEMPDIR@\" \ @SCIM_BUILD_IMMODULE_TRUE@ -DSCIM_KEYBOARD_ICON_FILE=\"@SCIM_ICONDIR@/keyboard.png\" @SCIM_BUILD_IMMODULE_TRUE@noinst_HEADERS = scim-bridge-client.h scim-bridge-client-protected.h scim-bridge-client-imcontext.h @SCIM_BUILD_IMMODULE_TRUE@noinst_LTLIBRARIES = libscimbridgeclientcommon.la @SCIM_BUILD_IMMODULE_TRUE@libscimbridgeclientcommon_la_SOURCES = scim-bridge-client.c \ @SCIM_BUILD_IMMODULE_TRUE@ scim-bridge-client-output.c \ @SCIM_BUILD_IMMODULE_TRUE@ scim-bridge-client-debug.c #libscimbridgeclientcommon_la_CFLAGS = @SCIM_CFLAGS@ #libscimbridgeclientcommon_la_CXXFLAGS = @SCIM_CFLAGS@ #libscimbridgeclientcommon_la_LDFLAGS = @SCIM_LIBS@ MAINTAINERCLEANFILES = Makefile.in all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu extras/immodules/client-common/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu extras/immodules/client-common/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libscimbridgeclientcommon.la: $(libscimbridgeclientcommon_la_OBJECTS) $(libscimbridgeclientcommon_la_DEPENDENCIES) $(LINK) $(am_libscimbridgeclientcommon_la_rpath) $(libscimbridgeclientcommon_la_OBJECTS) $(libscimbridgeclientcommon_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim-bridge-client-debug.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim-bridge-client-output.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim-bridge-client.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: scim-1.4.14/extras/immodules/client-common/scim-bridge-client-debug.c000066400000000000000000000027641177210725600255160ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ #include #include #include #include "scim-bridge-debug.h" #include "scim-bridge-string.h" /* Static variables */ static scim_bridge_debug_level_t debug_level = -1; /* Private function */ static void static_initialize () { int debug_level_int; char *debug_level_str = getenv ("SCIM_BRIDGE_DEBUG_LEVEL"); if (debug_level_str == NULL || scim_bridge_string_to_int (&debug_level_int, debug_level_str)) { debug_level = 0; } else { debug_level = debug_level_int; if (debug_level > 10) debug_level = 10; } } /* Implementations */ scim_bridge_debug_level_t scim_bridge_debug_get_level () { if (debug_level < 0) static_initialize (); return debug_level; } scim-1.4.14/extras/immodules/client-common/scim-bridge-client-imcontext.h000066400000000000000000000146061177210725600264450ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ /** * @file * @author Ryo Dairiki * @brief This is the common header of IMContext over the all clients. */ #ifndef SCIMBRIDGECLIENTIMCONTEXT_H_ #define SCIMBRIDGECLIENTIMCONTEXT_H_ #include "scim-bridge.h" #include "scim-bridge-attribute.h" #include "scim-bridge-imcontext.h" #include "scim-bridge-key-event.h" /** * The struct of IMContext. */ typedef struct _ScimBridgeClientIMContext ScimBridgeClientIMContext; #ifdef __cplusplus extern "C" { #endif /** * Set the id of an IMContext. * * @param imcontext The IMContext. * @param new_id The new id. */ void scim_bridge_client_imcontext_set_id (ScimBridgeClientIMContext *imcontext, scim_bridge_imcontext_id_t new_id); /** * Get the id of an IMContext. * This function should return -1 if it's not been registered to the agent. * * @param imcontext The IMContext. * @return The id of the IMContext. */ scim_bridge_imcontext_id_t scim_bridge_client_imcontext_get_id (const ScimBridgeClientIMContext *imcontext); /** * Set the preedit string of an IMContext. * * @param imcontext The IMContext. * @param preedit_string The preedit string encoded in UTF8. */ void scim_bridge_client_imcontext_set_preedit_string (ScimBridgeClientIMContext *imcontext, const char *preedit_string); /** * Set the visibility of the preedit of an IMContext. * * @param imcontext The IMContext. * @param preedit_shown The visibility of the preedit. */ void scim_bridge_client_imcontext_set_preedit_shown (ScimBridgeClientIMContext *imcontext, boolean preedit_shown); /** * Set the cursor position (= caret index) in the preedit of an IMContext. * * @param imcontext The IMContext. * @param cursor_position The cursor position. */ void scim_bridge_client_imcontext_set_preedit_cursor_position (ScimBridgeClientIMContext *imcontext, int cursor_position); /** * Set the attributes (= appearance) of the preedit string. * * @param imcontext The IMContext. * @param preedit_attributes The array of the attributes. * @param attribute_count The number of attributes. */ void scim_bridge_client_imcontext_set_preedit_attributes (ScimBridgeClientIMContext *imcontext, ScimBridgeAttribute** const preedit_attributes, int attribute_count); /** * Update the preedit of an IMContext. * * @param imcontext The IMContext. */ void scim_bridge_client_imcontext_update_preedit (ScimBridgeClientIMContext *imcontext); /** * Set the commit string of an IMContext. * * @param imcontext The IMContext. * @param commit_string The commit string encoded in UTF8. */ void scim_bridge_client_imcontext_set_commit_string (ScimBridgeClientIMContext *imcontext, const char *commit_string); /** * Commit a string. * * @param imcontext The IMContext. */ void scim_bridge_client_imcontext_commit (ScimBridgeClientIMContext *imcontext); /** * Make a beep sound. * * @param imcontext The IMContext. */ void scim_bridge_client_imcontext_beep (ScimBridgeClientIMContext *imcontext); /** * Add an dummy event into the GUI event queue. * * @param imcontext The IMContext. * @param key_event The dummy key event. */ void scim_bridge_client_imcontext_forward_key_event (ScimBridgeClientIMContext *imcontext, const ScimBridgeKeyEvent *key_event); /** * Get the surrounding text of an IMContext. * * @param imcontext The IMContext. * @param before_max The maximum number of characters (in wchar) to fetch before the cursor (= caret). * @param after_max The maximum number of characters (in wchar) to fetch after the cursor (= caret). * @param string The pointer for the gotten string. * @param cursor_position The cursor position in the gotten string (in wchar). * @return It returns TRUE if succeeded to get it, otherwise it returns FALSE. */ boolean scim_bridge_client_imcontext_get_surrounding_text (ScimBridgeClientIMContext *imcontext, int before_max, int after_max, char **string, int *cursor_position); /** * Delete the surrounding text of an IMContext. * The string reffered as "the surrounding text" here is the string gotten by get_surrounding_text () previously. * * @param imcontext The IMContext. * @param offset The begining offset (in wchar) of the part of the surrounding string to remove. * @param length The length (in wchar) of the part of the surrounding string to remove. */ boolean scim_bridge_client_imcontext_delete_surrounding_text (ScimBridgeClientIMContext *imcontext, int offset, int length); /** * Replace the surrounding text of an IMContext. * The string reffered as "the surrounding text" here is the string gotten by get_surrounding_text () previously. * * @param imcontext The IMContext. * @param cursor_position The cursor position (in wchar) in the new surrounding string. * @param string The new surrounding text encoded in UTF8. */ boolean scim_bridge_client_imcontext_replace_surrounding_text (ScimBridgeClientIMContext *imcontext, int cursor_position, const char *string); /** * Notify the status of the IMEngine has been changed. * * @param imcontext The IMContext. * @param enabled The new status. */ void scim_bridge_client_imcontext_imengine_status_changed (ScimBridgeClientIMContext *imcontext, boolean enabled); #ifdef __cplusplus } #endif #endif /*SCIMBRIDGECLIENTIMCONTEXT_H_*/ scim-1.4.14/extras/immodules/client-common/scim-bridge-client-output.c000066400000000000000000000052041177210725600257600ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ #include #include #include #include "scim-bridge-debug.h" #include "scim-bridge-output.h" /* Implementations */ void scim_bridge_println (const char *string,...) { va_list ap; const size_t str_length = strlen (string); char *format = alloca (sizeof (char) * (str_length + 2)); strcpy (format, string); format[str_length] = '\n'; format[str_length + 1] = '\0'; va_start (ap, string); vfprintf (stdout, format, ap); va_end (ap); } void scim_bridge_perrorln (const char *string,...) { va_list ap; const size_t str_length = strlen (string); char *format = alloca (sizeof (char) * (str_length + 2)); strcpy (format, string); format[str_length] = '\n'; format[str_length + 1] = '\0'; va_start (ap, string); vfprintf (stderr, format, ap); va_end (ap); } void scim_bridge_pdebugln (scim_bridge_debug_level_t level, const char *string,...) { if ((10 - level) <= scim_bridge_debug_get_level ()) { va_list ap; va_start (ap, string); const size_t str_length = strlen (string); char *format = alloca (sizeof (char) * (str_length + 2)); strcpy (format, string); format[str_length] = '\n'; format[str_length + 1] = '\0'; vfprintf (stdout, format, ap); va_end (ap); } } void scim_bridge_print (const char *string,...) { va_list ap; va_start (ap, string); vfprintf (stdout, string, ap); va_end (ap); } void scim_bridge_perror (const char *string,...) { va_list ap; va_start (ap, string); vfprintf (stderr, string, ap); va_end (ap); } void scim_bridge_pdebug (scim_bridge_debug_level_t level, const char *string,...) { if ((10 - level) <= scim_bridge_debug_get_level ()) { va_list ap; va_start (ap, string); vfprintf (stdout, string, ap); va_end (ap); } } scim-1.4.14/extras/immodules/client-common/scim-bridge-client-protected.h000066400000000000000000000025641177210725600264240ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ /** * @file * @author Ryo Dairiki * @brief This is the header for the protected interfaces of the clients. */ #ifndef SCIMBRIDGECLIENTPROTECTED_H_ #define SCIMBRIDGECLIENTPROTECTED_H_ #ifdef __cplusplus extern "C" { #endif /** * The connection is established with the agent. */ void scim_bridge_client_messenger_opened (); /** * The connection with the agent is closed. */ void scim_bridge_client_messenger_closed (); #ifdef __cplusplus } #endif #endif /*SCIMBRIDGECLIENTPROTECTED_H_*/ scim-1.4.14/extras/immodules/client-common/scim-bridge-client.c000066400000000000000000002334631177210725600244340ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ #include #include #include #include #include #include #include #include #include #include #include "scim-bridge-client.h" #include "scim-bridge-client-imcontext.h" #include "scim-bridge-client-protected.h" #include "scim-bridge-message-constant.h" #include "scim-bridge-messenger.h" #include "scim-bridge-output.h" #include "scim-bridge-path.h" #include "scim-bridge-string.h" /* Private data type */ typedef struct _IMContextListElement { struct _IMContextListElement *prev; struct _IMContextListElement *next; ScimBridgeClientIMContext *imcontext; } IMContextListElement; typedef struct _IMContextList { IMContextListElement *first; IMContextListElement *last; ScimBridgeClientIMContext *found_imcontext; size_t size; } IMContextList; typedef enum _scim_bridge_response_status { RESPONSE_PENDING, RESPONSE_SUCCEEDED, RESPONSE_FAILED, RESPONSE_DONE, } scim_bridge_response_status; typedef struct _ScimBridgeResponse { scim_bridge_response_status status; const char *header; boolean consumed; scim_bridge_imcontext_id_t imcontext_id; } ScimBridgeResponse; /* Private variables */ static ScimBridgeResponse pending_response; static ScimBridgeMessenger *messenger = NULL; static IMContextList imcontext_list; static boolean initialized = FALSE; /* Helper Functions */ static boolean check_scim_binary () { scim_bridge_pdebugln (1, "Checking SCIM binary..."); FILE *pout = popen ("scim -h", "r"); if (pout != NULL) { pclose (pout); return TRUE; } else { scim_bridge_perrorln("Error (%d): %s", errno, strerror (errno)); return FALSE; } } static retval_t launch_agent () { scim_bridge_pdebugln (1, "Invoking the agent..."); FILE *pout = popen (scim_bridge_path_get_agent (), "r"); if (pout != NULL) { pclose (pout); return RETVAL_SUCCEEDED; } else { scim_bridge_perrorln ("Failed to invoking the agent: %s", strerror (errno)); return RETVAL_FAILED; } } /* Message Handlers */ static retval_t received_message_unknown (const ScimBridgeMessage *message) { const char *header = scim_bridge_message_get_header (message); scim_bridge_perror ("Unknown message: %s", header); int i; for (i = 0; i < scim_bridge_message_get_argument_count (message); ++i) { scim_bridge_perror (" %s", scim_bridge_message_get_argument (message, i)); } scim_bridge_perrorln (""); // Just ignore it. return RETVAL_SUCCEEDED; } static retval_t received_message_imengine_status_changed (const ScimBridgeMessage *message) { const char *header = scim_bridge_message_get_header (message); const char *ic_id_str = scim_bridge_message_get_argument (message, 0); const char *enabled_str = scim_bridge_message_get_argument (message, 1); scim_bridge_imcontext_id_t ic_id; boolean enabled; if (scim_bridge_string_to_int (&ic_id, ic_id_str) || scim_bridge_string_to_boolean (&enabled, enabled_str)) { scim_bridge_perrorln ("Invalid arguments for the message: %s (%s, %s)", header, ic_id_str, enabled_str); } else { ScimBridgeClientIMContext *imcontext = scim_bridge_client_find_imcontext (ic_id); if (imcontext != NULL) { scim_bridge_client_imcontext_imengine_status_changed (imcontext, enabled); } else { scim_bridge_perrorln ("No such imcontext: id = %d", ic_id); } } return RETVAL_SUCCEEDED; } static retval_t received_message_preedit_mode_changed (const ScimBridgeMessage *message) { const char *header = scim_bridge_message_get_header (message); if (pending_response.status == RESPONSE_PENDING && strcmp (pending_response.header, header) == 0) { pending_response.status = RESPONSE_SUCCEEDED; } else { scim_bridge_perrorln ("The message is recieved in a wrong context: %s", header); } return RETVAL_SUCCEEDED; } static retval_t received_message_imcontext_registered (const ScimBridgeMessage *message) { const char *header = scim_bridge_message_get_header (message); if (pending_response.status == RESPONSE_PENDING && strcmp (pending_response.header, header) == 0) { const char *ic_id_str = scim_bridge_message_get_argument (message, 0); int ic_id; if (scim_bridge_string_to_int (&ic_id, ic_id_str)) { scim_bridge_perrorln ("Invalid arguments for the message: %s (%s)", header, ic_id_str); pending_response.status = RESPONSE_FAILED; } else { if (ic_id < 0) { pending_response.status = RESPONSE_FAILED; } else { pending_response.imcontext_id = ic_id; pending_response.status = RESPONSE_SUCCEEDED; } } } else { scim_bridge_perrorln ("The message is recieved in a wrong context: %s", header); } return RETVAL_SUCCEEDED; } static retval_t received_message_imcontext_deregistered (const ScimBridgeMessage *message) { const char *header = scim_bridge_message_get_header (message); if (pending_response.status == RESPONSE_PENDING && strcmp (pending_response.header, header) == 0) { pending_response.status = RESPONSE_SUCCEEDED; } else { scim_bridge_perrorln ("The message is recieved in a wrong context: %s", header); } return RETVAL_SUCCEEDED; } static retval_t received_message_imcontext_reseted (const ScimBridgeMessage *message) { const char *header = scim_bridge_message_get_header (message); if (pending_response.status == RESPONSE_PENDING && strcmp (pending_response.header, header) == 0) { pending_response.status = RESPONSE_SUCCEEDED; } else { scim_bridge_perrorln ("The message is recieved in a wrong context: %s", header); } return RETVAL_SUCCEEDED; } static retval_t received_message_imcontext_enabled (const ScimBridgeMessage *message) { const char *header = scim_bridge_message_get_header (message); if (pending_response.status == RESPONSE_PENDING && strcmp (pending_response.header, header) == 0) { pending_response.status = RESPONSE_SUCCEEDED; } else { scim_bridge_perrorln ("The message is recieved in a wrong context: %s", header); } return RETVAL_SUCCEEDED; } static retval_t received_message_imcontext_disabled (const ScimBridgeMessage *message) { const char *header = scim_bridge_message_get_header (message); if (pending_response.status == RESPONSE_PENDING && strcmp (pending_response.header, header) == 0) { pending_response.status = RESPONSE_SUCCEEDED; } else { scim_bridge_perrorln ("The message is recieved in a wrong context: %s", header); } return RETVAL_SUCCEEDED; } static retval_t received_message_key_event_handled (const ScimBridgeMessage *message) { const char *header = scim_bridge_message_get_header (message); if (pending_response.status == RESPONSE_PENDING && strcmp (pending_response.header, header) == 0) { const char *consumed_str = scim_bridge_message_get_argument (message, 0); boolean consumed; if (scim_bridge_string_to_boolean (&consumed, consumed_str)) { scim_bridge_perrorln ("Invalid arguments for the message: %s (%s)", header, consumed_str); pending_response.status = RESPONSE_FAILED; } else { pending_response.consumed = consumed; pending_response.status = RESPONSE_SUCCEEDED; } } else { scim_bridge_perrorln ("The message is recieved in a wrong context: %s", header); } return RETVAL_SUCCEEDED; } static retval_t received_message_focus_changed (const ScimBridgeMessage *message) { const char *header = scim_bridge_message_get_header (message); if (pending_response.status == RESPONSE_PENDING && strcmp (pending_response.header, header) == 0) { pending_response.status = RESPONSE_SUCCEEDED; } else { scim_bridge_perrorln ("The message is recieved in a wrong context: %s", header); } return RETVAL_SUCCEEDED; } static retval_t received_message_cursor_location_changed (const ScimBridgeMessage *message) { return RETVAL_SUCCEEDED; } static retval_t received_message_set_commit_string (const ScimBridgeMessage *message) { const char *header = scim_bridge_message_get_header (message); const char *ic_id_str = scim_bridge_message_get_argument (message, 0); const char *string = scim_bridge_message_get_argument (message, 1); scim_bridge_imcontext_id_t ic_id; if (scim_bridge_string_to_int (&ic_id, ic_id_str)) { scim_bridge_perrorln ("Invalid arguments for the message: %s (%s, %s)", header, ic_id_str, string); } else { ScimBridgeClientIMContext *imcontext = scim_bridge_client_find_imcontext (ic_id); if (imcontext != NULL) { scim_bridge_client_imcontext_set_commit_string (imcontext, string ? string:""); } else { scim_bridge_perrorln ("No such imcontext: id = %d", ic_id); } } return RETVAL_SUCCEEDED; } static retval_t received_message_commit_string (const ScimBridgeMessage *message) { const char *header = scim_bridge_message_get_header (message); const char *ic_id_str = scim_bridge_message_get_argument (message, 0); scim_bridge_imcontext_id_t ic_id; if (scim_bridge_string_to_int (&ic_id, ic_id_str)) { scim_bridge_perrorln ("Invalid arguments for the message: %s (%s)", header, ic_id_str); } else { ScimBridgeClientIMContext *imcontext = scim_bridge_client_find_imcontext (ic_id); if (imcontext != NULL) { scim_bridge_client_imcontext_commit (imcontext); } else { scim_bridge_perrorln ("No such imcontext: id = %d", ic_id); } } if (!scim_bridge_client_is_messenger_opened ()) { scim_bridge_perrorln ("The messenger is closed"); return RETVAL_FAILED; } ScimBridgeMessage *responsive_message = scim_bridge_alloc_message (SCIM_BRIDGE_MESSAGE_STRING_COMMITED, 0); scim_bridge_messenger_push_message (messenger, responsive_message); scim_bridge_free_message (responsive_message); while (scim_bridge_messenger_get_sending_buffer_size (messenger) > 0) { if (scim_bridge_messenger_send_message (messenger, NULL)) { scim_bridge_perrorln ("Failed to send a message at received_message_commit_string ()"); return RETVAL_FAILED; } } return RETVAL_SUCCEEDED; } static retval_t received_message_set_preedit_shown (const ScimBridgeMessage *message) { const char *header = scim_bridge_message_get_header (message); const char *ic_id_str = scim_bridge_message_get_argument (message, 0); const char *shown_str = scim_bridge_message_get_argument (message, 1); scim_bridge_imcontext_id_t ic_id; boolean shown; if (scim_bridge_string_to_int (&ic_id, ic_id_str) || scim_bridge_string_to_boolean (&shown, shown_str)) { scim_bridge_perrorln ("Invalid arguments for the message: %s (%s, %s)", header, ic_id_str, shown_str); } else { ScimBridgeClientIMContext *imcontext = scim_bridge_client_find_imcontext (ic_id); if (imcontext != NULL) { scim_bridge_client_imcontext_set_preedit_shown (imcontext, shown); } else { scim_bridge_perrorln ("No such imcontext: id = %d", ic_id); } } return RETVAL_SUCCEEDED; } static retval_t received_message_set_preedit_string (const ScimBridgeMessage *message) { const char *header = scim_bridge_message_get_header (message); const char *ic_id_str = scim_bridge_message_get_argument (message, 0); const char *preedit_string = scim_bridge_message_get_argument (message, 1); scim_bridge_imcontext_id_t ic_id; if (scim_bridge_string_to_int (&ic_id, ic_id_str)) { scim_bridge_perrorln ("Invalid arguments for the message: %s (%s, %s)", header, ic_id_str, preedit_string); } else { ScimBridgeClientIMContext *imcontext = scim_bridge_client_find_imcontext (ic_id); if (imcontext != NULL) { scim_bridge_client_imcontext_set_preedit_string (imcontext, preedit_string ? preedit_string : ""); } else { scim_bridge_perrorln ("No such imcontext: id = %d", ic_id); } } return RETVAL_SUCCEEDED; } static retval_t received_message_set_preedit_attributes (const ScimBridgeMessage *message) { const char *header = scim_bridge_message_get_header (message); const char *ic_id_str = scim_bridge_message_get_argument (message, 0); scim_bridge_imcontext_id_t ic_id; if (scim_bridge_string_to_int (&ic_id, ic_id_str) || scim_bridge_message_get_argument_count (message) % 4 != 1) { scim_bridge_perrorln ("Invalid arguments for the message: %s (%s,...)", header, ic_id_str); } else { const size_t attribute_count = (scim_bridge_message_get_argument_count (message) - 1) / 4; ScimBridgeAttribute **attributes = alloca (sizeof (ScimBridgeAttribute*) * attribute_count); int i; for (i = 0; i < attribute_count; ++i) { attributes[i] = scim_bridge_alloc_attribute (); ScimBridgeAttribute *attribute = attributes[i]; const char *attribute_begin_str = scim_bridge_message_get_argument (message, i * 4 + 1); const char *attribute_end_str = scim_bridge_message_get_argument (message, i * 4 + 2); const char *attribute_type_str = scim_bridge_message_get_argument (message, i * 4 + 3); const char *attribute_value_str = scim_bridge_message_get_argument (message, i * 4 + 4); unsigned int attribute_begin; unsigned int attribute_end; if (scim_bridge_string_to_uint (&attribute_begin, attribute_begin_str) || scim_bridge_string_to_uint (&attribute_end, attribute_end_str)) { scim_bridge_perrorln ("Invalid range for an attribute: begin = \"%s\", end = \"%s\"", attribute_begin_str, attribute_end_str); scim_bridge_attribute_set_begin (attribute, 0); scim_bridge_attribute_set_end (attribute, 0); scim_bridge_attribute_set_type (attribute, ATTRIBUTE_NONE); scim_bridge_attribute_set_value (attribute, SCIM_BRIDGE_ATTRIBUTE_DECORATE_NONE); continue; } scim_bridge_attribute_set_begin (attribute, attribute_begin); scim_bridge_attribute_set_end (attribute, attribute_end); if (strcmp (attribute_type_str, SCIM_BRIDGE_MESSAGE_NONE) == 0) { scim_bridge_attribute_set_type (attribute, ATTRIBUTE_NONE); } else if (strcmp (attribute_type_str, SCIM_BRIDGE_MESSAGE_DECORATE) == 0) { scim_bridge_attribute_set_type (attribute, ATTRIBUTE_DECORATE); if (strcmp (attribute_value_str, SCIM_BRIDGE_MESSAGE_HIGHLIGHT) == 0) { scim_bridge_attribute_set_value (attribute, SCIM_BRIDGE_ATTRIBUTE_DECORATE_HIGHLIGHT); } else if (strcmp (attribute_value_str, SCIM_BRIDGE_MESSAGE_UNDERLINE) == 0) { scim_bridge_attribute_set_value (attribute, SCIM_BRIDGE_ATTRIBUTE_DECORATE_UNDERLINE); } else if (strcmp (attribute_value_str, SCIM_BRIDGE_MESSAGE_REVERSE) == 0) { scim_bridge_attribute_set_value (attribute, SCIM_BRIDGE_ATTRIBUTE_DECORATE_REVERSE); } else { scim_bridge_perrorln ("Unknown decoration for the attribute: %s", attribute_value_str); scim_bridge_attribute_set_type (attribute, ATTRIBUTE_NONE); scim_bridge_attribute_set_value (attribute, SCIM_BRIDGE_ATTRIBUTE_DECORATE_NONE); } } else if (strcmp (attribute_type_str, SCIM_BRIDGE_MESSAGE_FOREGROUND) == 0 || strcmp (attribute_type_str, SCIM_BRIDGE_MESSAGE_BACKGROUND) == 0) { if (strcmp (attribute_type_str, SCIM_BRIDGE_MESSAGE_FOREGROUND) == 0) { scim_bridge_attribute_set_type (attribute, ATTRIBUTE_FOREGROUND); } else { scim_bridge_attribute_set_type (attribute, ATTRIBUTE_BACKGROUND); } unsigned int color_val = 0x1000000; if (strncmp (attribute_value_str, SCIM_BRIDGE_MESSAGE_COLOR, strlen (SCIM_BRIDGE_MESSAGE_COLOR)) == 0) { const char *color_str = attribute_value_str + strlen (SCIM_BRIDGE_MESSAGE_COLOR); const size_t color_str_length = strlen (color_str); if (color_str_length == 6) { color_val = 0; int j; for (j = 0; j < 6; ++j) { color_val <<= 4; switch (color_str[j]) { case '0': color_val += 0; break; case '1': color_val += 1; break; case '2': color_val += 2; break; case '3': color_val += 3; break; case '4': color_val += 4; break; case '5': color_val += 5; break; case '6': color_val += 6; break; case '7': color_val += 7; break; case '8': color_val += 8; break; case '9': color_val += 9; break; case 'a': case 'A': color_val += 10; break; case 'b': case 'B': color_val += 11; break; case 'c': case 'C': color_val += 12; break; case 'd': case 'D': color_val += 13; break; case 'e': case 'E': color_val += 14; break; case 'f': case 'F': color_val += 15; break; default: color_val = 0x1000000; break; } } } } if (color_val > 0xFFFFFF) { scim_bridge_perrorln ("An invalid string for a color: %s", attribute_value_str); scim_bridge_attribute_set_type (attribute, ATTRIBUTE_NONE); scim_bridge_attribute_set_value (attribute, SCIM_BRIDGE_ATTRIBUTE_DECORATE_NONE); } else { const unsigned int red = (color_val & 0xFF0000) >> 16; const unsigned int green = (color_val & 0x00FF00) >> 8; const unsigned int blue = (color_val & 0x0000FF) >> 0; scim_bridge_attribute_set_color (attribute, red, green, blue); } } } ScimBridgeClientIMContext *imcontext = scim_bridge_client_find_imcontext (ic_id); if (imcontext != NULL) { scim_bridge_client_imcontext_set_preedit_attributes (imcontext, attributes, attribute_count); } else { scim_bridge_perrorln ("No such imcontext: id = %d", ic_id); } int j; for (j = 0; j < attribute_count; ++j) { scim_bridge_free_attribute (attributes[j]); } } return RETVAL_SUCCEEDED; } static retval_t received_message_set_preedit_cursor_position (const ScimBridgeMessage *message) { const char *header = scim_bridge_message_get_header (message); const char *ic_id_str = scim_bridge_message_get_argument (message, 0); const char *cursor_position_str = scim_bridge_message_get_argument (message, 1); scim_bridge_imcontext_id_t ic_id; unsigned int cursor_position; if (scim_bridge_string_to_int (&ic_id, ic_id_str) || scim_bridge_string_to_uint (&cursor_position, cursor_position_str)) { scim_bridge_perrorln ("Invalid arguments for the message: %s (%s, %s)", header, ic_id_str, cursor_position_str); } else { ScimBridgeClientIMContext *imcontext = scim_bridge_client_find_imcontext (ic_id); if (imcontext != NULL) { scim_bridge_client_imcontext_set_preedit_cursor_position (imcontext, cursor_position); } else { scim_bridge_perrorln ("No such imcontext: id = %d", ic_id); } } return RETVAL_SUCCEEDED; } static retval_t received_message_update_preedit (const ScimBridgeMessage *message) { const char *header = scim_bridge_message_get_header (message); const char *ic_id_str = scim_bridge_message_get_argument (message, 0); int ic_id; if (scim_bridge_string_to_int (&ic_id, ic_id_str)) { scim_bridge_perrorln ("Invalid arguments for the message: %s (%s)", header, ic_id_str); } else { ScimBridgeClientIMContext *imcontext = scim_bridge_client_find_imcontext (ic_id); if (imcontext != NULL) { scim_bridge_client_imcontext_update_preedit (imcontext); } else { scim_bridge_perrorln ("No such imcontext: id = %d", ic_id); } } if (!scim_bridge_client_is_messenger_opened ()) { scim_bridge_perrorln ("The messenger is closed"); return RETVAL_FAILED; } ScimBridgeMessage *responsive_message = scim_bridge_alloc_message (SCIM_BRIDGE_MESSAGE_PREEDIT_UPDATED, 0); scim_bridge_messenger_push_message (messenger, responsive_message); scim_bridge_free_message (responsive_message); while (scim_bridge_messenger_get_sending_buffer_size (messenger) > 0) { if (scim_bridge_messenger_send_message (messenger, NULL)) { scim_bridge_perrorln ("Failed to send a message at received_message_update_preedit ()"); return RETVAL_FAILED; } } return RETVAL_SUCCEEDED; } static retval_t received_message_beep (const ScimBridgeMessage *message) { const char *header = scim_bridge_message_get_header (message); const char *ic_id_str = scim_bridge_message_get_argument (message, 0); int ic_id; if (scim_bridge_string_to_int (&ic_id, ic_id_str)) { scim_bridge_perrorln ("Invalid arguments for the message: %s (%s)", header, ic_id_str); } else { ScimBridgeClientIMContext *imcontext = scim_bridge_client_find_imcontext (ic_id); if (imcontext != NULL) { scim_bridge_client_imcontext_beep (imcontext); } else { scim_bridge_perrorln ("No such imcontext: id = %d", ic_id); } } return RETVAL_SUCCEEDED; } static retval_t received_message_forward_key_event (const ScimBridgeMessage *message) { const char *header = scim_bridge_message_get_header (message); const char *ic_id_str = scim_bridge_message_get_argument (message, 0); const char *key_code_str = scim_bridge_message_get_argument (message, 1); const char *key_pressed_str = scim_bridge_message_get_argument (message, 2); const int modifier_count = scim_bridge_message_get_argument_count (message) - 3; boolean shift_down = FALSE; boolean control_down = FALSE; boolean alt_down = FALSE; boolean meta_down = FALSE; boolean super_down = FALSE; boolean hyper_down = FALSE; boolean caps_lock_down = FALSE; boolean num_lock_down = FALSE; boolean unknown_down = FALSE; boolean kana_ro = FALSE; int i; for (i = 0; i < modifier_count; ++i) { const char *modifier_str = scim_bridge_message_get_argument (message, i + 3); if (strcmp (modifier_str, SCIM_BRIDGE_MESSAGE_SHIFT) == 0) { shift_down = TRUE; } else if (strcmp (modifier_str, SCIM_BRIDGE_MESSAGE_CONTROL) == 0) { control_down = TRUE; } else if (strcmp (modifier_str, SCIM_BRIDGE_MESSAGE_ALT) == 0) { alt_down = TRUE; } else if (strcmp (modifier_str, SCIM_BRIDGE_MESSAGE_META) == 0) { meta_down = TRUE; } else if (strcmp (modifier_str, SCIM_BRIDGE_MESSAGE_SUPER) == 0) { super_down = TRUE; } else if (strcmp (modifier_str, SCIM_BRIDGE_MESSAGE_HYPER) == 0) { hyper_down = TRUE; } else if (strcmp (modifier_str, SCIM_BRIDGE_MESSAGE_CAPS_LOCK) == 0) { caps_lock_down = TRUE; } else if (strcmp (modifier_str, SCIM_BRIDGE_MESSAGE_NUM_LOCK) == 0) { num_lock_down = TRUE; } else if (strcmp (modifier_str, SCIM_BRIDGE_MESSAGE_KANA_RO) == 0) { kana_ro = TRUE; } else { scim_bridge_perrorln ("Unknown modifier: %s", modifier_str); unknown_down = TRUE; } } scim_bridge_imcontext_id_t ic_id; unsigned int key_code; boolean key_pressed; if (scim_bridge_string_to_int (&ic_id, ic_id_str) || scim_bridge_string_to_uint (&key_code, key_code_str) || scim_bridge_string_to_boolean (&key_pressed, key_pressed_str)) { scim_bridge_perror ("Invalid arguments for the message: %s (%s, %s, %s", header, ic_id_str, key_code_str, key_pressed_str); boolean first_modifier = TRUE; if (shift_down) { if (first_modifier) { scim_bridge_perror (", "); first_modifier = FALSE; } else { scim_bridge_perror (" + "); } scim_bridge_perror ("%s", SCIM_BRIDGE_MESSAGE_SHIFT); } if (control_down) { if (first_modifier) { scim_bridge_perror (", "); first_modifier = FALSE; } else { scim_bridge_perror (" + "); } scim_bridge_perror ("%s", SCIM_BRIDGE_MESSAGE_CONTROL); } if (alt_down) { if (first_modifier) { scim_bridge_perror (", "); first_modifier = FALSE; } else { scim_bridge_perror (" + "); } scim_bridge_perror ("%s", SCIM_BRIDGE_MESSAGE_ALT); } if (meta_down) { if (first_modifier) { scim_bridge_perror (", "); first_modifier = FALSE; } else { scim_bridge_perror (" + "); } scim_bridge_perror ("%s", SCIM_BRIDGE_MESSAGE_META); } if (super_down) { if (first_modifier) { scim_bridge_perror (", "); first_modifier = FALSE; } else { scim_bridge_perror (" + "); } scim_bridge_perror ("%s", SCIM_BRIDGE_MESSAGE_SUPER); } if (hyper_down) { if (first_modifier) { scim_bridge_perror (", "); first_modifier = FALSE; } else { scim_bridge_perror (" + "); } scim_bridge_perror ("%s", SCIM_BRIDGE_MESSAGE_HYPER); } if (caps_lock_down) { if (first_modifier) { scim_bridge_perror (", "); first_modifier = FALSE; } else { scim_bridge_perror (" + "); } scim_bridge_perror ("%s", SCIM_BRIDGE_MESSAGE_CAPS_LOCK); } if (num_lock_down) { if (first_modifier) { scim_bridge_perror (", "); first_modifier = FALSE; } else { scim_bridge_perror (" + "); } scim_bridge_perror ("%s", SCIM_BRIDGE_MESSAGE_NUM_LOCK); } if (kana_ro) { if (first_modifier) { scim_bridge_perror (", "); first_modifier = FALSE; } else { scim_bridge_perror (" + "); } scim_bridge_perror ("%s", SCIM_BRIDGE_MESSAGE_KANA_RO); } if (unknown_down) { if (first_modifier) { scim_bridge_perror (", "); first_modifier = FALSE; } else { scim_bridge_perror (" + "); } scim_bridge_perror ("%s", SCIM_BRIDGE_MESSAGE_UNKNOWN); } scim_bridge_perrorln (")"); } else { ScimBridgeClientIMContext *imcontext = scim_bridge_client_find_imcontext (ic_id); if (imcontext != NULL) { ScimBridgeKeyEvent *key_event = scim_bridge_alloc_key_event (); scim_bridge_key_event_set_code (key_event, key_code); scim_bridge_key_event_set_pressed (key_event, key_pressed); scim_bridge_key_event_set_shift_down (key_event, shift_down); scim_bridge_key_event_set_control_down (key_event, control_down); scim_bridge_key_event_set_alt_down (key_event, alt_down); scim_bridge_key_event_set_meta_down (key_event, meta_down); scim_bridge_key_event_set_super_down (key_event, super_down); scim_bridge_key_event_set_hyper_down (key_event, hyper_down); scim_bridge_key_event_set_caps_lock_down (key_event, caps_lock_down); scim_bridge_key_event_set_num_lock_down (key_event, num_lock_down); scim_bridge_key_event_set_quirk_enabled (key_event, SCIM_BRIDGE_KEY_QUIRK_KANA_RO, kana_ro); scim_bridge_client_imcontext_forward_key_event (imcontext, key_event); scim_bridge_free_key_event (key_event); } else { scim_bridge_perrorln ("No such imcontext: id = %d", ic_id); } } return RETVAL_SUCCEEDED; } static retval_t received_message_get_surrounding_text (const ScimBridgeMessage *message) { const char *header = scim_bridge_message_get_header (message); const char *ic_id_str = scim_bridge_message_get_argument (message, 0); const char *before_max_str = scim_bridge_message_get_argument (message, 1); const char *after_max_str = scim_bridge_message_get_argument (message, 2); int ic_id; unsigned int before_max; unsigned int after_max; char *string; int cursor_position; boolean succeeded = FALSE; if (scim_bridge_string_to_int (&ic_id, ic_id_str) || scim_bridge_string_to_uint (&before_max, before_max_str) || scim_bridge_string_to_uint (&after_max, after_max_str)) { scim_bridge_perrorln ("Invalid arguments for the message: %s (%s, %s, %s)", header, ic_id_str, before_max_str, after_max_str); } else { ScimBridgeClientIMContext *imcontext = scim_bridge_client_find_imcontext (ic_id); if (imcontext != NULL) { succeeded = scim_bridge_client_imcontext_get_surrounding_text (imcontext, before_max, after_max, &string, &cursor_position); if (succeeded) { scim_bridge_pdebugln (5, "surrounding text = '%s', cursor_position = %d", string, cursor_position); } else { scim_bridge_pdebugln (5, "surrounding text = N/A"); } } else { scim_bridge_perrorln ("No such imcontext: id = %d", ic_id); } } if (!scim_bridge_client_is_messenger_opened ()) { scim_bridge_perrorln ("The messenger is closed"); return RETVAL_FAILED; } ScimBridgeMessage *responsive_message; if (succeeded) { responsive_message = scim_bridge_alloc_message (SCIM_BRIDGE_MESSAGE_SURROUNDING_TEXT_GOTTEN, 3); scim_bridge_message_set_argument (responsive_message, 0, SCIM_BRIDGE_MESSAGE_TRUE); char *cursor_position_str = alloca (sizeof (char) * (cursor_position / 10 + 2)); scim_bridge_string_from_uint (&cursor_position_str, cursor_position); scim_bridge_message_set_argument (responsive_message, 1, cursor_position_str); scim_bridge_message_set_argument (responsive_message, 2, string); } else { responsive_message = scim_bridge_alloc_message (SCIM_BRIDGE_MESSAGE_SURROUNDING_TEXT_GOTTEN, 2); scim_bridge_message_set_argument (responsive_message, 0, SCIM_BRIDGE_MESSAGE_FALSE); } scim_bridge_messenger_push_message (messenger, responsive_message); scim_bridge_free_message (responsive_message); while (scim_bridge_messenger_get_sending_buffer_size (messenger) > 0) { if (scim_bridge_messenger_send_message (messenger, NULL)) { scim_bridge_perrorln ("Failed to send a message at received_message_get_surrounding_text ()"); return RETVAL_FAILED; } } return RETVAL_SUCCEEDED; } static retval_t received_message_delete_surrounding_text (const ScimBridgeMessage *message) { const char *header = scim_bridge_message_get_header (message); const char *ic_id_str = scim_bridge_message_get_argument (message, 0); const char *offset_str = scim_bridge_message_get_argument (message, 1); const char *length_str = scim_bridge_message_get_argument (message, 2); int ic_id; int offset; unsigned int length; boolean succeeded = FALSE; if (scim_bridge_string_to_int (&ic_id, ic_id_str) || scim_bridge_string_to_int (&offset, offset_str) || scim_bridge_string_to_uint (&length, length_str)) { scim_bridge_perrorln ("Invalid arguments for the message: %s (%s, %s, %s)", header, ic_id_str, offset_str, length_str); } else { ScimBridgeClientIMContext *imcontext = scim_bridge_client_find_imcontext (ic_id); if (imcontext != NULL) { succeeded = scim_bridge_client_imcontext_delete_surrounding_text (imcontext, offset, length); } else { scim_bridge_perrorln ("No such imcontext: id = %d", ic_id); } } if (!scim_bridge_client_is_messenger_opened ()) { scim_bridge_perrorln ("The messenger is closed"); return RETVAL_FAILED; } ScimBridgeMessage *responsive_message = scim_bridge_alloc_message (SCIM_BRIDGE_MESSAGE_SURROUNDING_TEXT_DELETED, 1); if (succeeded) { scim_bridge_message_set_argument (responsive_message, 0, SCIM_BRIDGE_MESSAGE_TRUE); } else { scim_bridge_message_set_argument (responsive_message, 0, SCIM_BRIDGE_MESSAGE_FALSE); } scim_bridge_messenger_push_message (messenger, responsive_message); scim_bridge_free_message (responsive_message); while (scim_bridge_messenger_get_sending_buffer_size (messenger) > 0) { if (scim_bridge_messenger_send_message (messenger, NULL)) { scim_bridge_perrorln ("Failed to send a message at received_message_delete_surrounding_text ()"); return RETVAL_FAILED; } } return RETVAL_SUCCEEDED; } static retval_t received_message_replace_surrounding_text (const ScimBridgeMessage *message) { const char *header = scim_bridge_message_get_header (message); const char *ic_id_str = scim_bridge_message_get_argument (message, 0); const char *cursor_position_str = scim_bridge_message_get_argument (message, 1); const char *string = scim_bridge_message_get_argument (message, 2); int ic_id; int cursor_position; boolean succeeded = FALSE; if (scim_bridge_string_to_int (&ic_id, ic_id_str) || scim_bridge_string_to_int (&cursor_position, cursor_position_str)) { scim_bridge_perrorln ("Invalid arguments for the message: %s (%s, %s, %s)", header, ic_id_str, cursor_position, string); } else { ScimBridgeClientIMContext *imcontext = scim_bridge_client_find_imcontext (ic_id); if (imcontext != NULL) { succeeded = scim_bridge_client_imcontext_replace_surrounding_text (imcontext, cursor_position, string); } else { scim_bridge_perrorln ("No such imcontext: id = %d", ic_id); } } if (!scim_bridge_client_is_messenger_opened ()) { scim_bridge_perrorln ("The messenger is closed"); return RETVAL_FAILED; } ScimBridgeMessage *responsive_message = scim_bridge_alloc_message (SCIM_BRIDGE_MESSAGE_SURROUNDING_TEXT_REPLACED, 1); if (succeeded) { scim_bridge_message_set_argument (responsive_message, 0, SCIM_BRIDGE_MESSAGE_TRUE); } else { scim_bridge_message_set_argument (responsive_message, 0, SCIM_BRIDGE_MESSAGE_FALSE); } scim_bridge_messenger_push_message (messenger, responsive_message); scim_bridge_free_message (responsive_message); while (scim_bridge_messenger_get_sending_buffer_size (messenger) > 0) { if (scim_bridge_messenger_send_message (messenger, NULL)) { scim_bridge_perrorln ("Failed to send a message at received_message_replace_surrounding_text ()"); return RETVAL_FAILED; } } return RETVAL_SUCCEEDED; } /* Public functions */ retval_t scim_bridge_client_initialize () { scim_bridge_pdebugln (5, "scim_bridge_client_initialize ()"); if (initialized) return RETVAL_SUCCEEDED; initialized = TRUE; messenger = NULL; imcontext_list.first = NULL; imcontext_list.last = NULL; imcontext_list.found_imcontext = NULL; imcontext_list.size = 0; return RETVAL_SUCCEEDED; } retval_t scim_bridge_client_finalize () { scim_bridge_pdebugln (5, "scim_bridge_client_finalize ()"); if (!initialized) return RETVAL_SUCCEEDED; if (messenger != NULL) scim_bridge_client_close_messenger (); messenger = NULL; IMContextListElement *i = imcontext_list.first; while (i != NULL) { IMContextListElement *j = i; i = i->next; free (j); } imcontext_list.first = NULL; imcontext_list.last = NULL; imcontext_list.found_imcontext = NULL; imcontext_list.size = 0; initialized = FALSE; return RETVAL_SUCCEEDED; } boolean scim_bridge_client_is_initialized () { return initialized; } retval_t scim_bridge_client_open_messenger () { scim_bridge_pdebugln (8, "scim_bridge_client_open_messenger ()"); if (!initialized) { scim_bridge_perrorln ("The client has not been initialized"); return RETVAL_FAILED; } if (messenger != NULL) { scim_bridge_perrorln ("The messenger has already been opend"); return RETVAL_SUCCEEDED; } if (check_scim_binary () != TRUE) { scim_bridge_perrorln ("There is no SCIM binary"); return RETVAL_FAILED; } int i; for (i = 0; i < 10; ++i) { int socket_fd = socket (PF_UNIX, SOCK_STREAM, 0); if (socket_fd < 0) { scim_bridge_perrorln ("Failed to create the message socket: %s", strerror (errno)); return RETVAL_FAILED; } struct sockaddr_un socket_addr; memset (&socket_addr, 0, sizeof (struct sockaddr_un)); socket_addr.sun_family = AF_UNIX; strcpy (socket_addr.sun_path, scim_bridge_path_get_socket ()); if (connect (socket_fd, (struct sockaddr*)&socket_addr, sizeof (socket_addr.sun_family) + strlen (socket_addr.sun_path))) { if (i == 5 && launch_agent ()) { scim_bridge_perrorln ("Cannot launch the agent"); return RETVAL_FAILED; } else { scim_bridge_pdebugln (8, "Failed to connect the message socket: %s", strerror (errno)); close (socket_fd); usleep (5000); } } else { messenger = scim_bridge_alloc_messenger (socket_fd); pending_response.consumed = TRUE; pending_response.header = NULL; pending_response.imcontext_id = -1; pending_response.status = RESPONSE_DONE; IMContextListElement *first = imcontext_list.first; IMContextListElement *last = imcontext_list.last; size_t size = imcontext_list.size = imcontext_list.size; imcontext_list.first = NULL; imcontext_list.last = NULL; imcontext_list.size = 0; imcontext_list.found_imcontext = NULL; while (first != NULL) { if (scim_bridge_client_register_imcontext (first->imcontext)) { scim_bridge_perrorln ("Cannot register the IMContexts..."); first->prev = imcontext_list.last; if (imcontext_list.last != NULL) { imcontext_list.last->next = first; imcontext_list.last = last; } else { imcontext_list.first = first; imcontext_list.last = last; } imcontext_list.size += size; IMContextListElement *i; for (i = imcontext_list.first; i != NULL; i = i->next) { scim_bridge_client_imcontext_set_id (i->imcontext, -1); } return RETVAL_FAILED; } else { IMContextListElement *i = first; first = first->next; free (i); --size; } } scim_bridge_client_messenger_opened (); return RETVAL_SUCCEEDED; } } scim_bridge_perrorln ("Failed to establish the connection: %s", strerror (errno)); return RETVAL_FAILED; } retval_t scim_bridge_client_close_messenger () { scim_bridge_pdebugln (8, "scim_bridge_client_close_messenger ()"); if (messenger == NULL) { scim_bridge_perrorln ("The messenger is closed"); return RETVAL_SUCCEEDED; } scim_bridge_free_messenger (messenger); messenger = NULL; pending_response.consumed = FALSE; pending_response.imcontext_id = -1; pending_response.status = RESPONSE_DONE; IMContextListElement *i; for (i = imcontext_list.first; i != NULL; i = i->next) { scim_bridge_client_imcontext_set_id (i->imcontext, -1); } scim_bridge_client_messenger_closed (); return RETVAL_SUCCEEDED; } boolean scim_bridge_client_is_messenger_opened () { scim_bridge_pdebugln (3, "scim_bridge_client_is_messenger_opened ()"); return messenger != NULL; } int scim_bridge_client_get_messenger_fd () { if (messenger == NULL) { return -1; } else { return scim_bridge_messenger_get_socket_fd (messenger); } } boolean scim_bridge_client_is_reconnection_enabled () { static boolean first_time = TRUE; static boolean reconnection_enabled = TRUE; if (first_time) { char *env_reconnection_enabled = getenv ("SCIM_BRIDGE_RECONNECTION_ENABLED"); if (env_reconnection_enabled != NULL) scim_bridge_string_to_boolean (&reconnection_enabled, env_reconnection_enabled); first_time = FALSE; } return reconnection_enabled; } ScimBridgeClientIMContext *scim_bridge_client_find_imcontext (scim_bridge_imcontext_id_t id) { if (id < 0) return NULL; if (imcontext_list.found_imcontext != NULL && scim_bridge_client_imcontext_get_id (imcontext_list.found_imcontext) == id) { return imcontext_list.found_imcontext; } IMContextListElement *i; for (i = imcontext_list.first; i != NULL; i = i->next) { const scim_bridge_imcontext_id_t current_id = scim_bridge_client_imcontext_get_id (i->imcontext); if (current_id > id) { return NULL; } else if (current_id == id) { imcontext_list.found_imcontext = i->imcontext; return imcontext_list.found_imcontext; } } return NULL; } retval_t scim_bridge_client_read_and_dispatch () { scim_bridge_pdebugln (2, "scim_bridge_client_read_and_dispatch"); if (!initialized) { scim_bridge_perrorln ("The client library is not intialized at scim_bridge_client_read_and_dispatch ()"); return RETVAL_FAILED; } if (!scim_bridge_client_is_messenger_opened ()) { scim_bridge_perrorln ("The messenger is closed"); return RETVAL_FAILED; } ScimBridgeMessage *message; while (scim_bridge_messenger_poll_message (messenger, &message)) { if (scim_bridge_messenger_receive_message (messenger, NULL)) { scim_bridge_perrorln ("Failed to receive messages at scim_bridge_client_read_and_dispatch ()"); scim_bridge_client_close_messenger (); return RETVAL_FAILED; } } while (message != NULL) { const char *message_header = scim_bridge_message_get_header (message); scim_bridge_pdebug (5, "A message has been received: %s", message_header); int i; for (i = 0; i < scim_bridge_message_get_argument_count (message); ++i) { scim_bridge_pdebug (5, " %s", scim_bridge_message_get_argument (message, i)); } scim_bridge_pdebugln (5, ""); retval_t retval = RETVAL_SUCCEEDED; if (strcmp (message_header, SCIM_BRIDGE_MESSAGE_IMENGINE_STATUS_CHANGED) == 0) { retval = received_message_imengine_status_changed (message); } else if (strcmp (message_header, SCIM_BRIDGE_MESSAGE_PREEDIT_MODE_CHANGED) == 0) { retval = received_message_preedit_mode_changed (message); } else if (strcmp (message_header, SCIM_BRIDGE_MESSAGE_SET_COMMIT_STRING) == 0) { retval = received_message_set_commit_string (message); } else if (strcmp (message_header, SCIM_BRIDGE_MESSAGE_COMMIT_STRING) == 0) { retval = received_message_commit_string (message); } else if (strcmp (message_header, SCIM_BRIDGE_MESSAGE_SET_PREEDIT_SHOWN) == 0) { retval = received_message_set_preedit_shown (message); } else if (strcmp (message_header, SCIM_BRIDGE_MESSAGE_SET_PREEDIT_STRING) == 0) { retval = received_message_set_preedit_string (message); } else if (strcmp (message_header, SCIM_BRIDGE_MESSAGE_SET_PREEDIT_CURSOR_POSITION) == 0) { retval = received_message_set_preedit_cursor_position (message); } else if (strcmp (message_header, SCIM_BRIDGE_MESSAGE_SET_PREEDIT_ATTRIBUTES) == 0) { retval = received_message_set_preedit_attributes (message); } else if (strcmp (message_header, SCIM_BRIDGE_MESSAGE_UPDATE_PREEDIT) == 0) { retval = received_message_update_preedit (message); } else if (strcmp (message_header, SCIM_BRIDGE_MESSAGE_KEY_EVENT_HANDLED) == 0) { retval = received_message_key_event_handled (message); } else if (strcmp (message_header, SCIM_BRIDGE_MESSAGE_IMCONTEXT_REGISTERED) == 0) { retval = received_message_imcontext_registered (message); } else if (strcmp (message_header, SCIM_BRIDGE_MESSAGE_IMCONTEXT_DEREGISTERED) == 0) { retval = received_message_imcontext_deregistered (message); } else if (strcmp (message_header, SCIM_BRIDGE_MESSAGE_IMCONTEXT_RESETED) == 0) { retval = received_message_imcontext_reseted (message); } else if (strcmp (message_header, SCIM_BRIDGE_MESSAGE_ENABLED) == 0) { retval = received_message_imcontext_enabled (message); } else if (strcmp (message_header, SCIM_BRIDGE_MESSAGE_DISABLED) == 0) { retval = received_message_imcontext_disabled (message); } else if (strcmp (message_header, SCIM_BRIDGE_MESSAGE_FORWARD_KEY_EVENT) == 0) { retval = received_message_forward_key_event (message); } else if (strcmp (message_header, SCIM_BRIDGE_MESSAGE_BEEP) == 0) { retval = received_message_beep (message); } else if (strcmp (message_header, SCIM_BRIDGE_MESSAGE_CURSOR_LOCATION_CHANGED) == 0) { retval = received_message_cursor_location_changed (message); } else if (strcmp (message_header, SCIM_BRIDGE_MESSAGE_FOCUS_CHANGED) == 0) { retval = received_message_focus_changed (message); } else if (strcmp (message_header, SCIM_BRIDGE_MESSAGE_GET_SURROUNDING_TEXT) == 0) { retval = received_message_get_surrounding_text (message); } else if (strcmp (message_header, SCIM_BRIDGE_MESSAGE_DELETE_SURROUNDING_TEXT) == 0) { retval = received_message_delete_surrounding_text (message); } else if (strcmp (message_header, SCIM_BRIDGE_MESSAGE_REPLACE_SURROUNDING_TEXT) == 0) { retval = received_message_replace_surrounding_text (message); } else { retval = received_message_unknown (message); } scim_bridge_free_message (message); if (retval) { scim_bridge_client_close_messenger (); return RETVAL_FAILED; } else if (scim_bridge_messenger_poll_message (messenger, &message)) { scim_bridge_pdebugln (2, "read and dispatch, done"); break; } } return RETVAL_SUCCEEDED; } /* Called from GUI through IMContext */ retval_t scim_bridge_client_register_imcontext (ScimBridgeClientIMContext *imcontext) { scim_bridge_pdebugln (5, "scim_bridge_client_register_imcontext"); if (!initialized) { scim_bridge_perrorln ("ScimBridge is not initialized at scim_bridge_client_register_imcontext ()"); return RETVAL_FAILED; } if (!scim_bridge_client_is_messenger_opened ()) { scim_bridge_perrorln ("The messenger is closed"); return RETVAL_FAILED; } if (pending_response.status != RESPONSE_DONE) { scim_bridge_perrorln ("Another command is pending..."); return RETVAL_FAILED; } if (scim_bridge_client_imcontext_get_id (imcontext) != -1) { scim_bridge_perrorln ("The imcontext has already been registered"); return RETVAL_FAILED; } scim_bridge_pdebugln (5, "Sending 'register_imcontext' message"); ScimBridgeMessage *message = scim_bridge_alloc_message (SCIM_BRIDGE_MESSAGE_REGISTER_IMCONTEXT, 0); scim_bridge_messenger_push_message (messenger, message); scim_bridge_free_message (message); while (scim_bridge_messenger_get_sending_buffer_size (messenger) > 0) { if (scim_bridge_messenger_send_message (messenger, NULL)) { scim_bridge_perrorln ("Failed to send a message at scim_bridge_client_register_imcontext ()"); scim_bridge_client_close_messenger (); return RETVAL_FAILED; } } pending_response.header = SCIM_BRIDGE_MESSAGE_IMCONTEXT_REGISTERED; pending_response.imcontext_id = -1; pending_response.status = RESPONSE_PENDING; while (pending_response.status == RESPONSE_PENDING) { if (scim_bridge_client_read_and_dispatch ()) { scim_bridge_perrorln ("An IOException at scim_bridge_client_register_imcontext ()"); pending_response.header = NULL; pending_response.status = RESPONSE_DONE; return RETVAL_FAILED; } } if (pending_response.status == RESPONSE_FAILED) { scim_bridge_perrorln ("Failed to allocate an imcontext at scim_bridge_client_register_imcontext ()"); pending_response.header = NULL; pending_response.status = RESPONSE_DONE; return RETVAL_FAILED; } else { scim_bridge_pdebugln (6, "registered: id = %d", pending_response.imcontext_id); scim_bridge_client_imcontext_set_id (imcontext, pending_response.imcontext_id); if (imcontext_list.size == 0 || scim_bridge_client_imcontext_get_id (imcontext_list.last->imcontext) < pending_response.imcontext_id) { IMContextListElement *new_element = malloc (sizeof (IMContextListElement)); new_element->imcontext = imcontext; new_element->prev = imcontext_list.last; new_element->next = NULL; if (imcontext_list.last != NULL) { imcontext_list.last->next = new_element; } else { imcontext_list.first = new_element; } imcontext_list.last = new_element; if (imcontext_list.first == NULL) imcontext_list.first = new_element; ++imcontext_list.size; } else { const scim_bridge_imcontext_id_t id = scim_bridge_client_imcontext_get_id (imcontext); IMContextListElement *i; for (i = imcontext_list.first; i != NULL; i = i->next) { const scim_bridge_imcontext_id_t current_id = scim_bridge_client_imcontext_get_id (i->imcontext); if (current_id > id) { IMContextListElement *new_element = malloc (sizeof (IMContextListElement)); new_element->imcontext = imcontext; new_element->prev = i->prev; new_element->next = i; if (i->prev != NULL) { i->prev->next = new_element; } else { imcontext_list.first = new_element; } i->prev = new_element; ++imcontext_list.size; break; } } } pending_response.header = NULL; pending_response.status = RESPONSE_DONE; return RETVAL_SUCCEEDED; } } retval_t scim_bridge_client_deregister_imcontext (ScimBridgeClientIMContext *imcontext) { const scim_bridge_imcontext_id_t id = scim_bridge_client_imcontext_get_id (imcontext); scim_bridge_pdebugln (5, "scim_bridge_client_deregister_imcontext: ic = %d", id); if (!initialized) { scim_bridge_perrorln ("ScimBridge is not initialized at scim_bridge_client_deregister_imcontext ()"); return RETVAL_FAILED; } if (!scim_bridge_client_is_messenger_opened ()) { scim_bridge_perrorln ("The messenger is closed"); return RETVAL_FAILED; } if (pending_response.status != RESPONSE_DONE) { scim_bridge_perrorln ("Another command is pending..."); return RETVAL_FAILED; } if (imcontext == imcontext_list.found_imcontext) imcontext_list.found_imcontext = NULL; IMContextListElement *i; for (i = imcontext_list.first; i != NULL; i = i->next) { if (scim_bridge_client_imcontext_get_id (i->imcontext) == id) { IMContextListElement *prev = i->prev; IMContextListElement *next = i->next; if (prev != NULL) { prev->next = next; } else { imcontext_list.first = next; } if (next != NULL) { next->prev = prev; } else { imcontext_list.last = prev; } free (i); --imcontext_list.size; scim_bridge_client_imcontext_set_id (imcontext, -1); break; } else if (scim_bridge_client_imcontext_get_id (i->imcontext) > id || i->next == NULL) { scim_bridge_perrorln ("The imcontext has not been registered yet"); return RETVAL_FAILED; } } scim_bridge_pdebugln (5, "Sending 'deregister_imcontext' message: ic_id = %d", id); ScimBridgeMessage *message = scim_bridge_alloc_message (SCIM_BRIDGE_MESSAGE_DEREGISTER_IMCONTEXT, 1); char *ic_id_str; scim_bridge_string_from_uint (&ic_id_str, id); scim_bridge_message_set_argument (message, 0, ic_id_str); free (ic_id_str); scim_bridge_messenger_push_message (messenger, message); scim_bridge_free_message (message); while (scim_bridge_messenger_get_sending_buffer_size (messenger) > 0) { if (scim_bridge_messenger_send_message (messenger, NULL)) { scim_bridge_perrorln ("Failed to send a message at scim_bridge_client_deregister_imcontext ()"); scim_bridge_client_close_messenger (); return RETVAL_FAILED; } } pending_response.header = SCIM_BRIDGE_MESSAGE_IMCONTEXT_DEREGISTERED; pending_response.status = RESPONSE_PENDING; while (pending_response.status == RESPONSE_PENDING) { if (scim_bridge_client_read_and_dispatch ()) { scim_bridge_perrorln ("An IOException at scim_bridge_client_deregister_imcontext ()"); pending_response.header = NULL; pending_response.status = RESPONSE_DONE; return RETVAL_FAILED; } } if (pending_response.status == RESPONSE_FAILED) { scim_bridge_perrorln ("Failed to free imcontext at scim_bridge_client_deregister_imcontext ()"); pending_response.header = NULL; pending_response.status = RESPONSE_DONE; return RETVAL_FAILED; } else { scim_bridge_pdebugln (6, "deregistered: id = %d", id); pending_response.header = NULL; pending_response.status = RESPONSE_DONE; return RETVAL_SUCCEEDED; } } retval_t scim_bridge_client_reset_imcontext (const ScimBridgeClientIMContext *imcontext) { const scim_bridge_imcontext_id_t id = scim_bridge_client_imcontext_get_id (imcontext); scim_bridge_pdebugln (5, "scim_bridge_client_reset_imcontext: ic = %d", id); if (!initialized) { scim_bridge_perrorln ("ScimBridge is not initialized at scim_bridge_client_reset_imcontext ()"); return RETVAL_FAILED; } if (pending_response.status != RESPONSE_DONE) { scim_bridge_perrorln ("Another command is pending..."); return RETVAL_FAILED; } if (!scim_bridge_client_is_messenger_opened ()) { scim_bridge_perrorln ("The messenger is closed"); return RETVAL_FAILED; } scim_bridge_pdebugln (5, "Sending 'reset_imcontext' message: ic_id = %d", id); ScimBridgeMessage *message = scim_bridge_alloc_message (SCIM_BRIDGE_MESSAGE_RESET_IMCONTEXT, 1); char *ic_id_str; scim_bridge_string_from_uint (&ic_id_str, id); scim_bridge_message_set_argument (message, 0, ic_id_str); free (ic_id_str); scim_bridge_messenger_push_message (messenger, message); scim_bridge_free_message (message); while (scim_bridge_messenger_get_sending_buffer_size (messenger) > 0) { if (scim_bridge_messenger_send_message (messenger, NULL)) { scim_bridge_perrorln ("Failed to send a message at scim_bridge_client_reset_imcontext ()"); scim_bridge_client_close_messenger (); return RETVAL_FAILED; } } pending_response.header = SCIM_BRIDGE_MESSAGE_IMCONTEXT_RESETED; pending_response.status = RESPONSE_PENDING; while (pending_response.status == RESPONSE_PENDING) { if (scim_bridge_client_read_and_dispatch ()) { scim_bridge_perrorln ("An IOException at scim_bridge_client_reset_imcontext ()"); pending_response.header = NULL; pending_response.status = RESPONSE_DONE; return RETVAL_FAILED; } } if (pending_response.status == RESPONSE_SUCCEEDED) { scim_bridge_pdebugln (6, "reseted: id = %d", id); pending_response.header = NULL; pending_response.status = RESPONSE_DONE; return RETVAL_SUCCEEDED; } else { scim_bridge_perrorln ("An unknown error occurred at scim_bridge_client_reset_imcontext ()"); pending_response.header = NULL; pending_response.status = RESPONSE_DONE; return RETVAL_FAILED; } } retval_t scim_bridge_client_set_imcontext_enabled (const ScimBridgeClientIMContext * imcontext, boolean enabled) { const scim_bridge_imcontext_id_t id = scim_bridge_client_imcontext_get_id (imcontext); ScimBridgeMessage *message; scim_bridge_pdebugln (5, "scim_bridge_client_set_imcontext_enabled: ic = %d", id); if (!initialized) { scim_bridge_perrorln ("ScimBridge is not initialized at scim_bridge_client_set_imcontext_enabled ()"); return RETVAL_FAILED; } if (pending_response.status != RESPONSE_DONE) { scim_bridge_perrorln ("Another command is pending..."); return RETVAL_FAILED; } if (!scim_bridge_client_is_messenger_opened ()) { scim_bridge_perrorln ("The messenger is closed"); return RETVAL_FAILED; } scim_bridge_pdebugln (5, "Sending 'enable_imcontext' message: ic_id = %d", id); if (enabled) { message = scim_bridge_alloc_message (SCIM_BRIDGE_MESSAGE_ENABLE_IMCONTEXT, 1); } else { message = scim_bridge_alloc_message (SCIM_BRIDGE_MESSAGE_DISABLE_IMCONTEXT, 1); } char *ic_id_str; scim_bridge_string_from_uint (&ic_id_str, id); scim_bridge_message_set_argument (message, 0, ic_id_str); free (ic_id_str); scim_bridge_messenger_push_message (messenger, message); scim_bridge_free_message (message); while (scim_bridge_messenger_get_sending_buffer_size (messenger) > 0) { if (scim_bridge_messenger_send_message (messenger, NULL)) { scim_bridge_perrorln ("Failed to send a message at scim_bridge_client_set_imcontext_enabled ()"); scim_bridge_client_close_messenger (); return RETVAL_FAILED; } } if (enabled) { pending_response.header = SCIM_BRIDGE_MESSAGE_ENABLED; } else { pending_response.header = SCIM_BRIDGE_MESSAGE_DISABLED; } pending_response.status = RESPONSE_PENDING; while (pending_response.status == RESPONSE_PENDING) { if (scim_bridge_client_read_and_dispatch ()) { scim_bridge_perrorln ("An IOException at scim_bridge_client_set_imcontext_enabled ()"); pending_response.header = NULL; pending_response.status = RESPONSE_DONE; return RETVAL_FAILED; } } if (pending_response.status == RESPONSE_SUCCEEDED) { scim_bridge_pdebugln (6, "set_imcontext_enabled returned: id = %d", id); pending_response.header = NULL; pending_response.status = RESPONSE_DONE; return RETVAL_SUCCEEDED; } else { scim_bridge_perrorln ("An unknown error occurred at scim_bridge_client_set_imcontext_enabled ()"); pending_response.header = NULL; pending_response.status = RESPONSE_DONE; return RETVAL_FAILED; } } retval_t scim_bridge_client_handle_key_event (const ScimBridgeClientIMContext *imcontext, const ScimBridgeKeyEvent *key_event, boolean *consumed) { const scim_bridge_imcontext_id_t id = scim_bridge_client_imcontext_get_id (imcontext); scim_bridge_pdebugln (5, "scim_bridge_client_handle_key_event: ic = %d", id); if (!initialized) { scim_bridge_perrorln ("ScimBridge is not initialized at scim_bridge_client_reset_imcontext ()"); return RETVAL_FAILED; } if (!scim_bridge_client_is_messenger_opened ()) { scim_bridge_perrorln ("The messenger is closed"); return RETVAL_FAILED; } if (pending_response.status != RESPONSE_DONE) { scim_bridge_perrorln ("Another command is pending..."); return RETVAL_FAILED; } const scim_bridge_key_code_t key_code = scim_bridge_key_event_get_code (key_event); const boolean key_pressed = scim_bridge_key_event_is_pressed (key_event); scim_bridge_pdebug (5, "scim_bridge_client_key_event_occurred: ic = %d, key_code = %u, pressed = %s", id, key_code, key_pressed ? "true":"false"); int modifier_count = 0; if (scim_bridge_key_event_is_shift_down (key_event)) { if (modifier_count == 0) { scim_bridge_pdebug (5, ", modifier = "); } else { scim_bridge_pdebug (5, " + "); } ++modifier_count; scim_bridge_pdebug (5, "%s", SCIM_BRIDGE_MESSAGE_SHIFT); } if (scim_bridge_key_event_is_control_down (key_event)) { if (modifier_count == 0) { scim_bridge_pdebug (5, ", modifier = "); } else { scim_bridge_pdebug (5, " + "); } ++modifier_count; scim_bridge_pdebug (5, "%s", SCIM_BRIDGE_MESSAGE_CONTROL); } if (scim_bridge_key_event_is_alt_down (key_event)) { if (modifier_count == 0) { scim_bridge_pdebug (5, ", modifier = "); } else { scim_bridge_pdebug (5, " + "); } ++modifier_count; scim_bridge_pdebug (5, "%s", SCIM_BRIDGE_MESSAGE_ALT); } if (scim_bridge_key_event_is_meta_down (key_event)) { if (modifier_count == 0) { scim_bridge_pdebug (5, ", modifier = "); } else { scim_bridge_pdebug (5, " + "); } ++modifier_count; scim_bridge_pdebug (5, "%s", SCIM_BRIDGE_MESSAGE_META); } if (scim_bridge_key_event_is_super_down (key_event)) { if (modifier_count == 0) { scim_bridge_pdebug (5, ", modifier = "); } else { scim_bridge_pdebug (5, " + "); } ++modifier_count; scim_bridge_pdebug (5, "%s", SCIM_BRIDGE_MESSAGE_SUPER); } if (scim_bridge_key_event_is_hyper_down (key_event)) { if (modifier_count == 0) { scim_bridge_pdebug (5, ", modifier = "); } else { scim_bridge_pdebug (5, " + "); } ++modifier_count; scim_bridge_pdebug (5, "%s", SCIM_BRIDGE_MESSAGE_HYPER); } if (scim_bridge_key_event_is_caps_lock_down (key_event)) { if (modifier_count == 0) { scim_bridge_pdebug (5, ", modifier = "); } else { scim_bridge_pdebug (5, " + "); } ++modifier_count; scim_bridge_pdebug (5, "%s", SCIM_BRIDGE_MESSAGE_CAPS_LOCK); } if (scim_bridge_key_event_is_num_lock_down (key_event)) { if (modifier_count == 0) { scim_bridge_pdebug (5, ", modifier = "); } else { scim_bridge_pdebug (5, " + "); } ++modifier_count; scim_bridge_pdebug (5, "%s", SCIM_BRIDGE_MESSAGE_NUM_LOCK); } if (scim_bridge_key_event_is_quirk_enabled (key_event, SCIM_BRIDGE_KEY_QUIRK_KANA_RO)) { if (modifier_count == 0) { scim_bridge_pdebug (5, ", modifier = "); } else { scim_bridge_pdebug (5, " + "); } ++modifier_count; scim_bridge_pdebug (5, "%s", SCIM_BRIDGE_MESSAGE_KANA_RO); } scim_bridge_pdebugln (5, ""); scim_bridge_pdebugln (5, "Sending 'handle_key_event' message: ic_id = %d", id); ScimBridgeMessage *message = scim_bridge_alloc_message (SCIM_BRIDGE_MESSAGE_HANDLE_KEY_EVENT, modifier_count + 3); char *imcontext_id_str; scim_bridge_string_from_int (&imcontext_id_str, id); scim_bridge_message_set_argument (message, 0,imcontext_id_str); char *key_code_str; scim_bridge_string_from_uint (&key_code_str, scim_bridge_key_event_get_code (key_event)); scim_bridge_message_set_argument (message, 1, key_code_str); char *key_pressed_str; scim_bridge_string_from_boolean (&key_pressed_str, scim_bridge_key_event_is_pressed (key_event)); scim_bridge_message_set_argument (message, 2, key_pressed_str); free (imcontext_id_str); free (key_code_str); free (key_pressed_str); size_t arg_index = 3; if (scim_bridge_key_event_is_shift_down (key_event)) { scim_bridge_message_set_argument (message, arg_index, SCIM_BRIDGE_MESSAGE_SHIFT); ++arg_index; } if (scim_bridge_key_event_is_control_down (key_event)) { scim_bridge_message_set_argument (message, arg_index, SCIM_BRIDGE_MESSAGE_CONTROL); ++arg_index; } if (scim_bridge_key_event_is_alt_down (key_event)) { scim_bridge_message_set_argument (message, arg_index, SCIM_BRIDGE_MESSAGE_ALT); ++arg_index; } if (scim_bridge_key_event_is_meta_down (key_event)) { scim_bridge_message_set_argument (message, arg_index, SCIM_BRIDGE_MESSAGE_META); ++arg_index; } if (scim_bridge_key_event_is_super_down (key_event)) { scim_bridge_message_set_argument (message, arg_index, SCIM_BRIDGE_MESSAGE_SUPER); ++arg_index; } if (scim_bridge_key_event_is_hyper_down (key_event)) { scim_bridge_message_set_argument (message, arg_index, SCIM_BRIDGE_MESSAGE_HYPER); ++arg_index; } if (scim_bridge_key_event_is_caps_lock_down (key_event)) { scim_bridge_message_set_argument (message, arg_index, SCIM_BRIDGE_MESSAGE_CAPS_LOCK); ++arg_index; } if (scim_bridge_key_event_is_num_lock_down (key_event)) { scim_bridge_message_set_argument (message, arg_index, SCIM_BRIDGE_MESSAGE_NUM_LOCK); ++arg_index; } if (scim_bridge_key_event_is_quirk_enabled (key_event, SCIM_BRIDGE_KEY_QUIRK_KANA_RO)) { scim_bridge_message_set_argument (message, arg_index, SCIM_BRIDGE_MESSAGE_KANA_RO); ++arg_index; } pending_response.header = SCIM_BRIDGE_MESSAGE_KEY_EVENT_HANDLED; pending_response.consumed = FALSE; pending_response.status = RESPONSE_PENDING; scim_bridge_messenger_push_message (messenger, message); scim_bridge_free_message (message); while (scim_bridge_messenger_get_sending_buffer_size (messenger) > 0) { if (scim_bridge_messenger_send_message (messenger, NULL)) { scim_bridge_perrorln ("Failed to send a message at scim_bridge_client_handle_key_event ()"); scim_bridge_client_close_messenger (); return RETVAL_FAILED; } } while (pending_response.status == RESPONSE_PENDING) { if (scim_bridge_client_read_and_dispatch ()) { scim_bridge_perrorln ("An IOException at scim_bridge_client_handle_key_event ()"); pending_response.header = NULL; pending_response.status = RESPONSE_DONE; return RETVAL_FAILED; } } if (pending_response.status == RESPONSE_SUCCEEDED) { scim_bridge_pdebugln (3, "The key event was %s", pending_response.consumed ? "consumed":"ignored"); *consumed = pending_response.consumed; pending_response.header = NULL; pending_response.status = RESPONSE_DONE; return RETVAL_SUCCEEDED; } else { scim_bridge_perrorln ("An unknown error occurred at scim_bridge_client_handle_key_event ()"); pending_response.header = NULL; pending_response.status = RESPONSE_DONE; return RETVAL_FAILED; } } retval_t scim_bridge_client_change_focus (const ScimBridgeClientIMContext *imcontext, boolean focus_in) { const scim_bridge_imcontext_id_t id = scim_bridge_client_imcontext_get_id (imcontext); scim_bridge_pdebugln (5, "scim_bridge_client_change_focus: ic = %d, focus_in = %s", id, focus_in ? "true":"false"); if (!initialized) { scim_bridge_perrorln ("ScimBridge is not initialized at scim_bridge_client_change_focus ()"); return RETVAL_FAILED; } if (!scim_bridge_client_is_messenger_opened ()) { scim_bridge_perrorln ("The messenger is closed"); return RETVAL_FAILED; } if (pending_response.status != RESPONSE_DONE) { scim_bridge_perrorln ("Another command is pending..."); return RETVAL_FAILED; } scim_bridge_pdebugln (5, "Sending 'change_focus' message: ic_id = %d, focus_in = %s", id, focus_in ? "true":"false"); ScimBridgeMessage *message = scim_bridge_alloc_message (SCIM_BRIDGE_MESSAGE_CHANGE_FOCUS, 2); char *ic_id_str; scim_bridge_string_from_uint (&ic_id_str, id); scim_bridge_message_set_argument (message, 0, ic_id_str); char *focus_in_str; scim_bridge_string_from_boolean (&focus_in_str, focus_in); scim_bridge_message_set_argument (message, 1, focus_in_str); free (ic_id_str); free (focus_in_str); pending_response.header = SCIM_BRIDGE_MESSAGE_FOCUS_CHANGED; pending_response.consumed = FALSE; pending_response.status = RESPONSE_PENDING; scim_bridge_messenger_push_message (messenger, message); scim_bridge_free_message (message); while (scim_bridge_messenger_get_sending_buffer_size (messenger) > 0) { if (scim_bridge_messenger_send_message (messenger, NULL)) { scim_bridge_perrorln ("Failed to send a message at scim_bridge_client_change_focus ()"); scim_bridge_client_close_messenger (); return RETVAL_FAILED; } } while (pending_response.status == RESPONSE_PENDING) { if (scim_bridge_client_read_and_dispatch ()) { scim_bridge_perrorln ("An IOException at scim_bridge_client_change_focus ()"); pending_response.header = NULL; pending_response.status = RESPONSE_DONE; return RETVAL_FAILED; } } if (pending_response.status == RESPONSE_SUCCEEDED) { scim_bridge_pdebugln (6, "The focus changed: id = %d", id); pending_response.header = NULL; pending_response.status = RESPONSE_DONE; return RETVAL_SUCCEEDED; } else { scim_bridge_perrorln ("An unknown error occurred at scim_bridge_client_change_focus ()"); pending_response.header = NULL; pending_response.status = RESPONSE_DONE; return RETVAL_FAILED; } } retval_t scim_bridge_client_set_cursor_location (const ScimBridgeClientIMContext *imcontext, int x, int y) { const scim_bridge_imcontext_id_t id = scim_bridge_client_imcontext_get_id (imcontext); scim_bridge_pdebugln (5, "scim_bridge_client_set_cursor_location: ic = %d, x = %d, y = %d", id, x, y); if (!initialized) { scim_bridge_perrorln ("ScimBridge is not initialized at scim_bridge_client_cursor_set_location ()"); return RETVAL_FAILED; } if (!scim_bridge_client_is_messenger_opened ()) { scim_bridge_perrorln ("The messenger is closed"); return RETVAL_FAILED; } ScimBridgeMessage *message = scim_bridge_alloc_message (SCIM_BRIDGE_MESSAGE_SET_CURSOR_LOCATION, 3); char *ic_id_str; scim_bridge_string_from_uint (&ic_id_str, id); scim_bridge_message_set_argument (message, 0, ic_id_str); char *x_str; scim_bridge_string_from_int (&x_str, x); scim_bridge_message_set_argument (message, 1, x_str); char *y_str; scim_bridge_string_from_int (&y_str, y); scim_bridge_message_set_argument (message, 2, y_str); free (ic_id_str); free (x_str); free (y_str); scim_bridge_messenger_push_message (messenger, message); scim_bridge_free_message (message); while (scim_bridge_messenger_get_sending_buffer_size (messenger) > 0) { if (scim_bridge_messenger_send_message (messenger, NULL)) { scim_bridge_perrorln ("Failed to send a message at scim_bridge_client_set_cursor_location ()"); scim_bridge_client_close_messenger (); return RETVAL_FAILED; } } scim_bridge_pdebugln (6, "the cursor location changed: id = %d", id); return RETVAL_SUCCEEDED; } retval_t scim_bridge_client_set_preedit_mode (const ScimBridgeClientIMContext *imcontext, scim_bridge_preedit_mode_t mode) { const scim_bridge_imcontext_id_t id = scim_bridge_client_imcontext_get_id (imcontext); const char *mode_str; switch (mode) { case PREEDIT_FLOATING: mode_str = SCIM_BRIDGE_MESSAGE_FLOATING; break; case PREEDIT_HANGING: mode_str = SCIM_BRIDGE_MESSAGE_HANGING; break; case PREEDIT_EMBEDDED: mode_str = SCIM_BRIDGE_MESSAGE_EMBEDDED; break; case PREEDIT_ANY: mode_str = SCIM_BRIDGE_MESSAGE_ANY; break; default: scim_bridge_perrorln ("An unknown value is given as a preedit mode."); return RETVAL_FAILED; } scim_bridge_pdebugln (5, "scim_bridge_client_set_preedit_mode: ic = %d, mode = %s", id, mode_str); if (!initialized) { scim_bridge_perrorln ("ScimBridge is not initialized at scim_bridge_client_set_preedit_mode ()"); return RETVAL_FAILED; } if (!scim_bridge_client_is_messenger_opened ()) { scim_bridge_perrorln ("The messenger is closed"); return RETVAL_FAILED; } if (pending_response.status != RESPONSE_DONE) { scim_bridge_perrorln ("Another command is pending..."); return RETVAL_FAILED; } ScimBridgeMessage *message = scim_bridge_alloc_message (SCIM_BRIDGE_MESSAGE_SET_PREEDIT_MODE, 2); char *ic_id_str; scim_bridge_string_from_uint (&ic_id_str, id); scim_bridge_message_set_argument (message, 0, ic_id_str); scim_bridge_message_set_argument (message, 1, mode_str); free (ic_id_str); scim_bridge_messenger_push_message (messenger, message); scim_bridge_free_message (message); while (scim_bridge_messenger_get_sending_buffer_size (messenger) > 0) { if (scim_bridge_messenger_send_message (messenger, NULL)) { scim_bridge_perrorln ("Failed to send a message at scim_bridge_client_set_preedit_mode ()"); scim_bridge_client_close_messenger (); return RETVAL_FAILED; } } pending_response.header = SCIM_BRIDGE_MESSAGE_PREEDIT_MODE_CHANGED; pending_response.status = RESPONSE_PENDING; while (pending_response.status == RESPONSE_PENDING) { if (scim_bridge_client_read_and_dispatch ()) { scim_bridge_perrorln ("An IOException at scim_bridge_client_set_preedit_mode ()"); pending_response.header = NULL; pending_response.status = RESPONSE_DONE; return RETVAL_FAILED; } } if (pending_response.status == RESPONSE_FAILED) { scim_bridge_perrorln ("Failed to change the preedit mode at scim_bridge_client_set_preedit_mode ()"); pending_response.header = NULL; pending_response.status = RESPONSE_DONE; return RETVAL_FAILED; } else { scim_bridge_pdebugln (6, "The preedit mode changed: id = %d", id); pending_response.header = NULL; pending_response.status = RESPONSE_DONE; return RETVAL_SUCCEEDED; } } scim-1.4.14/extras/immodules/client-common/scim-bridge-client.h000066400000000000000000000137771177210725600244450ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ #ifndef SCIMBRIDGECLIENT_H_ #define SCIMBRIDGECLIENT_H_ #include "scim-bridge.h" #include "scim-bridge-key-event.h" #include "scim-bridge-client-imcontext.h" #ifdef __cplusplus extern "C" { #endif /** * Initialize the client. * * @return RETVAL_SUCCEEDED if succeeded, otherwise it returns RETVAL_FAILED. */ retval_t scim_bridge_client_initialize (); /** * Finalize the client. * * @return RETVAL_SUCCEEDED if succeeded, otherwise it returns RETVAL_FAILED. */ retval_t scim_bridge_client_finalize (); /** * Check if the client is initialized. * * @return TRUE if it's iniitalized, otherwise it returns FALSE. */ boolean scim_bridge_client_is_initialized (); /** * Open the connection with the agent. * * @return RETVAL_SUCCEEDED if succeeded, otherwise it returns RETVAL_FAILED. */ retval_t scim_bridge_client_open_messenger (); /** * Close the connection with the agent. * * @return RETVAIL_SUCCEEDED if succeeded, otherwise it returns RETVAL_FAILED. */ retval_t scim_bridge_client_close_messenger (); /** * Check if the connection is active. * * @return TRUE if it's active, otherwise it returns FALSE. */ boolean scim_bridge_client_is_messenger_opened (); /** * Get the mesenger socket file discriptor of the client. * * @return The socket file descriptor of the client. */ int scim_bridge_client_get_messenger_fd (); /** * See if the reconnection feature is enabled. * The client try to establish a new connection after the connection breaks if this feature is enabled. * * @return TRUE if this feature is enabled. */ boolean scim_bridge_client_is_reconnection_enabled (); /** * Read a message from the socket, and dispatch it. * If no message is available, it returns immediately. * * @return RETVAL_SUCCEEDED if no error has occurred, otherwise it returns RETVAL_FAILED. */ retval_t scim_bridge_client_read_and_dispatch (); /** * Register an imcontext into the agent. * * @param imcontext The pointer to initialize as an imcontext. * @return RETVAIL_SUCCEDED if succeeded, otherwise it returns RETVAIL_FAILED. */ retval_t scim_bridge_client_register_imcontext (ScimBridgeClientIMContext *imcontext); /** * Deregister an imcontext from the agent. * * @param imcontext The imcontext to deregister. * @return RETVAIL_SUCCEDED if succeeded, otherwise it returns RETVAIL_FAILED. */ retval_t scim_bridge_client_deregister_imcontext (ScimBridgeClientIMContext *imcontext); /** * Find the IMContext which has given id. * * @param id The IMContext. (This function returns NULL if -1 is given here) * @return The IMContext if it's been found out, otherwise it returns NULL. */ ScimBridgeClientIMContext *scim_bridge_client_find_imcontext (scim_bridge_imcontext_id_t id); /** * Reset an imcontext. * * @param imcontext The imcontext. * @return RETVAIL_SUCCEDED if succeeded, otherwise it returns RETVAIL_FAILED. */ retval_t scim_bridge_client_reset_imcontext (const ScimBridgeClientIMContext *imcontext); /** * Enable/Disalbe an imcontext. * * @param imcontext The imcontext. * @param enabled Give it TRUE to enable imcontext , False to disable imcontext * @return RETVAIL_SUCCEDED if succeeded, otherwise it returns RETVAIL_FAILED. */ retval_t scim_bridge_client_set_imcontext_enabled (const ScimBridgeClientIMContext *imcontext, boolean enabled); /** * Change the focusing status of an imcontext. * * @param imcontext The imcontext. * @param focus_in Give it TRUE if it gains the focus, otherwise give it FALSE. * @return RETVAIL_SUCCEDED if succeeded, otherwise it returns RETVAIL_FAILED. */ retval_t scim_bridge_client_change_focus (const ScimBridgeClientIMContext *imcontext, boolean focus_in); /** * Handle a key event. * * @param imcontext The imcontext. * @param key_event The key event. * @paam consumed The pointer for the flag, which is set TRUE if you should not handle this event in the client. * @return RETVAIL_SUCCEDED if succeeded, otherwise it returns RETVAIL_FAILED. */ retval_t scim_bridge_client_handle_key_event (const ScimBridgeClientIMContext *imcontext, const ScimBridgeKeyEvent *key_event, boolean *consumed); /** * Notify the change of cursor location in the display. * * @param imcontext The imcontext. * @param x The x location of the cursor. * @param y The y location of the cursor. * @return RETVAIL_SUCCEDED if succeeded, otherwise it returns RETVAIL_FAILED. */ retval_t scim_bridge_client_set_cursor_location (const ScimBridgeClientIMContext *imcontext, int x, int y); /** * Set the way to show the preedit. * * @param imcontext The imcontext. * @param mode The way to show the preedit. */ retval_t scim_bridge_client_set_preedit_mode (const ScimBridgeClientIMContext *imcontext, scim_bridge_preedit_mode_t mode); #ifdef __cplusplus } #endif #endif /*SCIMBRIDGECLIENT_H_*/ scim-1.4.14/extras/immodules/client-gtk/000077500000000000000000000000001177210725600201115ustar00rootroot00000000000000scim-1.4.14/extras/immodules/client-gtk/gtk2/000077500000000000000000000000001177210725600207605ustar00rootroot00000000000000scim-1.4.14/extras/immodules/client-gtk/gtk2/Makefile.am000066400000000000000000000033661177210725600230240ustar00rootroot00000000000000## Makefile.am -- Process this file with automake to produce Makefile.in ## ## Copyright (C) 2006 Ryo Dairiki ## ## ## This library is free software; you can redistribute it and/or ## modify it under the terms of the GNU Lesser General Public ## License as published by the Free Software Foundation and ## appearing in the file LICENSE.LGPL included in the package of this file. ## You can also redistribute it and/or modify it under the terms of ## the GNU General Public License as published by the Free Software Foundation and ## appearing in the file LICENSE.GPL included in the package of this file. ## ## This library is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. if SCIM_BUILD_GTK2_IMMODULE INCLUDES = -I$(top_builddir) \ -I$(top_srcdir) \ -I$(top_srcdir)/extras/immodules/common \ -I$(top_srcdir)/extras/immodules/client-common noinst_HEADERS = ../scim-bridge-client-gtk.h \ ../scim-bridge-client-imcontext-gtk.h \ ../scim-bridge-client-key-event-utility-gtk.h moduledir = @GTK2_IM_MODULEDIR@ module_LTLIBRARIES = im-scim.la im_scim_la_SOURCES = ../im-scim-bridge-gtk.c \ ../scim-bridge-client-gtk.c \ ../scim-bridge-client-imcontext-gtk.c \ ../scim-bridge-client-key-event-utility-gtk.c im_scim_la_CXXFLAGS=@GTK2_CFLAGS@ im_scim_la_CFLAGS =@GTK2_CFLAGS@ im_scim_la_LDFLAGS = -rpath $(moduledir) \ -avoid-version -no-undefined \ -module \ @GTK2_LIBS@ im_scim_la_LIBADD = $(top_builddir)/extras/immodules/common/libscimbridgecommon.la \ $(top_builddir)/extras/immodules/client-common/libscimbridgeclientcommon.la endif MAINTAINERCLEANFILES = Makefile.in scim-1.4.14/extras/immodules/client-gtk/gtk2/Makefile.in000066400000000000000000000715031177210725600230330ustar00rootroot00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = extras/immodules/client-gtk/gtk2 DIST_COMMON = $(am__noinst_HEADERS_DIST) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(moduledir)" LTLIBRARIES = $(module_LTLIBRARIES) @SCIM_BUILD_GTK2_IMMODULE_TRUE@im_scim_la_DEPENDENCIES = $(top_builddir)/extras/immodules/common/libscimbridgecommon.la \ @SCIM_BUILD_GTK2_IMMODULE_TRUE@ $(top_builddir)/extras/immodules/client-common/libscimbridgeclientcommon.la am__im_scim_la_SOURCES_DIST = ../im-scim-bridge-gtk.c \ ../scim-bridge-client-gtk.c \ ../scim-bridge-client-imcontext-gtk.c \ ../scim-bridge-client-key-event-utility-gtk.c @SCIM_BUILD_GTK2_IMMODULE_TRUE@am_im_scim_la_OBJECTS = im_scim_la-im-scim-bridge-gtk.lo \ @SCIM_BUILD_GTK2_IMMODULE_TRUE@ im_scim_la-scim-bridge-client-gtk.lo \ @SCIM_BUILD_GTK2_IMMODULE_TRUE@ im_scim_la-scim-bridge-client-imcontext-gtk.lo \ @SCIM_BUILD_GTK2_IMMODULE_TRUE@ im_scim_la-scim-bridge-client-key-event-utility-gtk.lo im_scim_la_OBJECTS = $(am_im_scim_la_OBJECTS) im_scim_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(im_scim_la_CFLAGS) \ $(CFLAGS) $(im_scim_la_LDFLAGS) $(LDFLAGS) -o $@ @SCIM_BUILD_GTK2_IMMODULE_TRUE@am_im_scim_la_rpath = -rpath \ @SCIM_BUILD_GTK2_IMMODULE_TRUE@ $(moduledir) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(im_scim_la_SOURCES) DIST_SOURCES = $(am__im_scim_la_SOURCES_DIST) am__noinst_HEADERS_DIST = ../scim-bridge-client-gtk.h \ ../scim-bridge-client-imcontext-gtk.h \ ../scim-bridge-client-key-event-utility-gtk.h HEADERS = $(noinst_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ ARGZ_H = @ARGZ_H@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CLUTTER_BINARY_VERSION = @CLUTTER_BINARY_VERSION@ CLUTTER_CFLAGS = @CLUTTER_CFLAGS@ CLUTTER_IMCONTEXT_LIBDIR = @CLUTTER_IMCONTEXT_LIBDIR@ CLUTTER_IM_MODULEDIR = @CLUTTER_IM_MODULEDIR@ CLUTTER_LIBDIR = @CLUTTER_LIBDIR@ CLUTTER_LIBS = @CLUTTER_LIBS@ CLUTTER_VERSION = @CLUTTER_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOCBOOK_XSL = @DOCBOOK_XSL@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@ GTHREAD2_LIBS = @GTHREAD2_LIBS@ GTK2_CFLAGS = @GTK2_CFLAGS@ GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@ GTK2_LIBS = @GTK2_LIBS@ GTK3_CFLAGS = @GTK3_CFLAGS@ GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@ GTK3_LIBS = @GTK3_LIBS@ GTK_BINARY_VERSION = @GTK_BINARY_VERSION@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBDIR = @GTK_LIBDIR@ GTK_LIBS = @GTK_LIBS@ GTK_MAJOR_VERSION = @GTK_MAJOR_VERSION@ GTK_VERSION = @GTK_VERSION@ HAVE_GRAPHVIZ = @HAVE_GRAPHVIZ@ INCLTDL = @INCLTDL@ INCLUDE_STDINT = @INCLUDE_STDINT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBLTDL = @LIBLTDL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_DEPS = @LIBTOOL_DEPS@ LIBTOOL_EXPORT_OPTIONS = @LIBTOOL_EXPORT_OPTIONS@ LIPO = @LIPO@ LN_S = @LN_S@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ QT3_CFLAGS = @QT3_CFLAGS@ QT3_IM_MODULEDIR = @QT3_IM_MODULEDIR@ QT3_LIBDIR = @QT3_LIBDIR@ QT3_LIBS = @QT3_LIBS@ QT3_MOC = @QT3_MOC@ QT3_PREFIX = @QT3_PREFIX@ QT4_CFLAGS = @QT4_CFLAGS@ QT4_IM_MODULEDIR = @QT4_IM_MODULEDIR@ QT4_LIBDIR = @QT4_LIBDIR@ QT4_LIBS = @QT4_LIBS@ QT4_MOC = @QT4_MOC@ QT4_PREFIX = @QT4_PREFIX@ RANLIB = @RANLIB@ SCIM_AGE = @SCIM_AGE@ SCIM_BINARY_VERSION = @SCIM_BINARY_VERSION@ SCIM_BRIDGE_MAJOR_VERSION = @SCIM_BRIDGE_MAJOR_VERSION@ SCIM_BRIDGE_MICRO_VERSION = @SCIM_BRIDGE_MICRO_VERSION@ SCIM_BRIDGE_MINOR_VERSION = @SCIM_BRIDGE_MINOR_VERSION@ SCIM_BRIDGE_VERSION = @SCIM_BRIDGE_VERSION@ SCIM_BUILD_CLUTTER_IMMODULE = @SCIM_BUILD_CLUTTER_IMMODULE@ SCIM_BUILD_CONFIG_SIMPLE = @SCIM_BUILD_CONFIG_SIMPLE@ SCIM_BUILD_CONFIG_SOCKET = @SCIM_BUILD_CONFIG_SOCKET@ SCIM_BUILD_DOCUMENTS = @SCIM_BUILD_DOCUMENTS@ SCIM_BUILD_FILTER_SCTC = @SCIM_BUILD_FILTER_SCTC@ SCIM_BUILD_FRONTEND_SOCKET = @SCIM_BUILD_FRONTEND_SOCKET@ SCIM_BUILD_FRONTEND_X11 = @SCIM_BUILD_FRONTEND_X11@ SCIM_BUILD_GTK2_IMMODULE = @SCIM_BUILD_GTK2_IMMODULE@ SCIM_BUILD_GTK3_IMMODULE = @SCIM_BUILD_GTK3_IMMODULE@ SCIM_BUILD_GTK_UTILS = @SCIM_BUILD_GTK_UTILS@ SCIM_BUILD_IMENGINE_RAWCODE = @SCIM_BUILD_IMENGINE_RAWCODE@ SCIM_BUILD_IMENGINE_SOCKET = @SCIM_BUILD_IMENGINE_SOCKET@ SCIM_BUILD_IMENGINE_TABLE = @SCIM_BUILD_IMENGINE_TABLE@ SCIM_BUILD_IMMODULE = @SCIM_BUILD_IMMODULE@ SCIM_BUILD_IM_AGENT = @SCIM_BUILD_IM_AGENT@ SCIM_BUILD_ORIG_GTK2_IMMODULE = @SCIM_BUILD_ORIG_GTK2_IMMODULE@ SCIM_BUILD_ORIG_GTK3_IMMODULE = @SCIM_BUILD_ORIG_GTK3_IMMODULE@ SCIM_BUILD_PANEL_GTK = @SCIM_BUILD_PANEL_GTK@ SCIM_BUILD_QT3_IMMODULE = @SCIM_BUILD_QT3_IMMODULE@ SCIM_BUILD_QT4_IMMODULE = @SCIM_BUILD_QT4_IMMODULE@ SCIM_BUILD_SCIM_SETUP = @SCIM_BUILD_SCIM_SETUP@ SCIM_BUILD_TESTS = @SCIM_BUILD_TESTS@ SCIM_BUILD_X11_UTILS = @SCIM_BUILD_X11_UTILS@ SCIM_CURRENT = @SCIM_CURRENT@ SCIM_DATADIR = @SCIM_DATADIR@ SCIM_EPOCH = @SCIM_EPOCH@ SCIM_ICONDIR = @SCIM_ICONDIR@ SCIM_LIBDIR = @SCIM_LIBDIR@ SCIM_LIBEXECDIR = @SCIM_LIBEXECDIR@ SCIM_LOCALEDIR = @SCIM_LOCALEDIR@ SCIM_LTDLADVISE = @SCIM_LTDLADVISE@ SCIM_MAJOR_VERSION = @SCIM_MAJOR_VERSION@ SCIM_MICRO_VERSION = @SCIM_MICRO_VERSION@ SCIM_MINOR_VERSION = @SCIM_MINOR_VERSION@ SCIM_MODULE_PATH = @SCIM_MODULE_PATH@ SCIM_PREFIX = @SCIM_PREFIX@ SCIM_REVISION = @SCIM_REVISION@ SCIM_SYSCONFDIR = @SCIM_SYSCONFDIR@ SCIM_TEMPDIR = @SCIM_TEMPDIR@ SCIM_VERSION = @SCIM_VERSION@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UINT16 = @UINT16@ UINT32 = @UINT32@ UINT64 = @UINT64@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XMKMF = @XMKMF@ XSLTPROC = @XSLTPROC@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_aux_dir = @ac_aux_dir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @SCIM_BUILD_GTK2_IMMODULE_TRUE@INCLUDES = -I$(top_builddir) \ @SCIM_BUILD_GTK2_IMMODULE_TRUE@ -I$(top_srcdir) \ @SCIM_BUILD_GTK2_IMMODULE_TRUE@ -I$(top_srcdir)/extras/immodules/common \ @SCIM_BUILD_GTK2_IMMODULE_TRUE@ -I$(top_srcdir)/extras/immodules/client-common @SCIM_BUILD_GTK2_IMMODULE_TRUE@noinst_HEADERS = ../scim-bridge-client-gtk.h \ @SCIM_BUILD_GTK2_IMMODULE_TRUE@ ../scim-bridge-client-imcontext-gtk.h \ @SCIM_BUILD_GTK2_IMMODULE_TRUE@ ../scim-bridge-client-key-event-utility-gtk.h @SCIM_BUILD_GTK2_IMMODULE_TRUE@moduledir = @GTK2_IM_MODULEDIR@ @SCIM_BUILD_GTK2_IMMODULE_TRUE@module_LTLIBRARIES = im-scim.la @SCIM_BUILD_GTK2_IMMODULE_TRUE@im_scim_la_SOURCES = ../im-scim-bridge-gtk.c \ @SCIM_BUILD_GTK2_IMMODULE_TRUE@ ../scim-bridge-client-gtk.c \ @SCIM_BUILD_GTK2_IMMODULE_TRUE@ ../scim-bridge-client-imcontext-gtk.c \ @SCIM_BUILD_GTK2_IMMODULE_TRUE@ ../scim-bridge-client-key-event-utility-gtk.c @SCIM_BUILD_GTK2_IMMODULE_TRUE@im_scim_la_CXXFLAGS = @GTK2_CFLAGS@ @SCIM_BUILD_GTK2_IMMODULE_TRUE@im_scim_la_CFLAGS = @GTK2_CFLAGS@ @SCIM_BUILD_GTK2_IMMODULE_TRUE@im_scim_la_LDFLAGS = -rpath $(moduledir) \ @SCIM_BUILD_GTK2_IMMODULE_TRUE@ -avoid-version -no-undefined \ @SCIM_BUILD_GTK2_IMMODULE_TRUE@ -module \ @SCIM_BUILD_GTK2_IMMODULE_TRUE@ @GTK2_LIBS@ @SCIM_BUILD_GTK2_IMMODULE_TRUE@im_scim_la_LIBADD = $(top_builddir)/extras/immodules/common/libscimbridgecommon.la \ @SCIM_BUILD_GTK2_IMMODULE_TRUE@ $(top_builddir)/extras/immodules/client-common/libscimbridgeclientcommon.la MAINTAINERCLEANFILES = Makefile.in all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu extras/immodules/client-gtk/gtk2/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu extras/immodules/client-gtk/gtk2/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-moduleLTLIBRARIES: $(module_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(moduledir)" || $(MKDIR_P) "$(DESTDIR)$(moduledir)" @list='$(module_LTLIBRARIES)'; test -n "$(moduledir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(moduledir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(moduledir)"; \ } uninstall-moduleLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(module_LTLIBRARIES)'; test -n "$(moduledir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(moduledir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(moduledir)/$$f"; \ done clean-moduleLTLIBRARIES: -test -z "$(module_LTLIBRARIES)" || rm -f $(module_LTLIBRARIES) @list='$(module_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done im-scim.la: $(im_scim_la_OBJECTS) $(im_scim_la_DEPENDENCIES) $(im_scim_la_LINK) $(am_im_scim_la_rpath) $(im_scim_la_OBJECTS) $(im_scim_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/im_scim_la-im-scim-bridge-gtk.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/im_scim_la-scim-bridge-client-gtk.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/im_scim_la-scim-bridge-client-imcontext-gtk.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/im_scim_la-scim-bridge-client-key-event-utility-gtk.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< im_scim_la-im-scim-bridge-gtk.lo: ../im-scim-bridge-gtk.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(im_scim_la_CFLAGS) $(CFLAGS) -MT im_scim_la-im-scim-bridge-gtk.lo -MD -MP -MF $(DEPDIR)/im_scim_la-im-scim-bridge-gtk.Tpo -c -o im_scim_la-im-scim-bridge-gtk.lo `test -f '../im-scim-bridge-gtk.c' || echo '$(srcdir)/'`../im-scim-bridge-gtk.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/im_scim_la-im-scim-bridge-gtk.Tpo $(DEPDIR)/im_scim_la-im-scim-bridge-gtk.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../im-scim-bridge-gtk.c' object='im_scim_la-im-scim-bridge-gtk.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(im_scim_la_CFLAGS) $(CFLAGS) -c -o im_scim_la-im-scim-bridge-gtk.lo `test -f '../im-scim-bridge-gtk.c' || echo '$(srcdir)/'`../im-scim-bridge-gtk.c im_scim_la-scim-bridge-client-gtk.lo: ../scim-bridge-client-gtk.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(im_scim_la_CFLAGS) $(CFLAGS) -MT im_scim_la-scim-bridge-client-gtk.lo -MD -MP -MF $(DEPDIR)/im_scim_la-scim-bridge-client-gtk.Tpo -c -o im_scim_la-scim-bridge-client-gtk.lo `test -f '../scim-bridge-client-gtk.c' || echo '$(srcdir)/'`../scim-bridge-client-gtk.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/im_scim_la-scim-bridge-client-gtk.Tpo $(DEPDIR)/im_scim_la-scim-bridge-client-gtk.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../scim-bridge-client-gtk.c' object='im_scim_la-scim-bridge-client-gtk.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(im_scim_la_CFLAGS) $(CFLAGS) -c -o im_scim_la-scim-bridge-client-gtk.lo `test -f '../scim-bridge-client-gtk.c' || echo '$(srcdir)/'`../scim-bridge-client-gtk.c im_scim_la-scim-bridge-client-imcontext-gtk.lo: ../scim-bridge-client-imcontext-gtk.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(im_scim_la_CFLAGS) $(CFLAGS) -MT im_scim_la-scim-bridge-client-imcontext-gtk.lo -MD -MP -MF $(DEPDIR)/im_scim_la-scim-bridge-client-imcontext-gtk.Tpo -c -o im_scim_la-scim-bridge-client-imcontext-gtk.lo `test -f '../scim-bridge-client-imcontext-gtk.c' || echo '$(srcdir)/'`../scim-bridge-client-imcontext-gtk.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/im_scim_la-scim-bridge-client-imcontext-gtk.Tpo $(DEPDIR)/im_scim_la-scim-bridge-client-imcontext-gtk.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../scim-bridge-client-imcontext-gtk.c' object='im_scim_la-scim-bridge-client-imcontext-gtk.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(im_scim_la_CFLAGS) $(CFLAGS) -c -o im_scim_la-scim-bridge-client-imcontext-gtk.lo `test -f '../scim-bridge-client-imcontext-gtk.c' || echo '$(srcdir)/'`../scim-bridge-client-imcontext-gtk.c im_scim_la-scim-bridge-client-key-event-utility-gtk.lo: ../scim-bridge-client-key-event-utility-gtk.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(im_scim_la_CFLAGS) $(CFLAGS) -MT im_scim_la-scim-bridge-client-key-event-utility-gtk.lo -MD -MP -MF $(DEPDIR)/im_scim_la-scim-bridge-client-key-event-utility-gtk.Tpo -c -o im_scim_la-scim-bridge-client-key-event-utility-gtk.lo `test -f '../scim-bridge-client-key-event-utility-gtk.c' || echo '$(srcdir)/'`../scim-bridge-client-key-event-utility-gtk.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/im_scim_la-scim-bridge-client-key-event-utility-gtk.Tpo $(DEPDIR)/im_scim_la-scim-bridge-client-key-event-utility-gtk.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../scim-bridge-client-key-event-utility-gtk.c' object='im_scim_la-scim-bridge-client-key-event-utility-gtk.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(im_scim_la_CFLAGS) $(CFLAGS) -c -o im_scim_la-scim-bridge-client-key-event-utility-gtk.lo `test -f '../scim-bridge-client-key-event-utility-gtk.c' || echo '$(srcdir)/'`../scim-bridge-client-key-event-utility-gtk.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: for dir in "$(DESTDIR)$(moduledir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic clean-libtool clean-moduleLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-moduleLTLIBRARIES install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-moduleLTLIBRARIES .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-moduleLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-moduleLTLIBRARIES install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-moduleLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: scim-1.4.14/extras/immodules/client-gtk/gtk3/000077500000000000000000000000001177210725600207615ustar00rootroot00000000000000scim-1.4.14/extras/immodules/client-gtk/gtk3/Makefile.am000066400000000000000000000033661177210725600230250ustar00rootroot00000000000000## Makefile.am -- Process this file with automake to produce Makefile.in ## ## Copyright (C) 2006 Ryo Dairiki ## ## ## This library is free software; you can redistribute it and/or ## modify it under the terms of the GNU Lesser General Public ## License as published by the Free Software Foundation and ## appearing in the file LICENSE.LGPL included in the package of this file. ## You can also redistribute it and/or modify it under the terms of ## the GNU General Public License as published by the Free Software Foundation and ## appearing in the file LICENSE.GPL included in the package of this file. ## ## This library is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. if SCIM_BUILD_GTK3_IMMODULE INCLUDES = -I$(top_builddir) \ -I$(top_srcdir) \ -I$(top_srcdir)/extras/immodules/common \ -I$(top_srcdir)/extras/immodules/client-common noinst_HEADERS = ../scim-bridge-client-gtk.h \ ../scim-bridge-client-imcontext-gtk.h \ ../scim-bridge-client-key-event-utility-gtk.h moduledir = @GTK3_IM_MODULEDIR@ module_LTLIBRARIES = im-scim.la im_scim_la_SOURCES = ../im-scim-bridge-gtk.c \ ../scim-bridge-client-gtk.c \ ../scim-bridge-client-imcontext-gtk.c \ ../scim-bridge-client-key-event-utility-gtk.c im_scim_la_CXXFLAGS=@GTK3_CFLAGS@ im_scim_la_CFLAGS =@GTK3_CFLAGS@ im_scim_la_LDFLAGS = -rpath $(moduledir) \ -avoid-version -no-undefined \ -module \ @GTK3_LIBS@ im_scim_la_LIBADD = $(top_builddir)/extras/immodules/common/libscimbridgecommon.la \ $(top_builddir)/extras/immodules/client-common/libscimbridgeclientcommon.la endif MAINTAINERCLEANFILES = Makefile.in scim-1.4.14/extras/immodules/client-gtk/gtk3/Makefile.in000066400000000000000000000715031177210725600230340ustar00rootroot00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = extras/immodules/client-gtk/gtk3 DIST_COMMON = $(am__noinst_HEADERS_DIST) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(moduledir)" LTLIBRARIES = $(module_LTLIBRARIES) @SCIM_BUILD_GTK3_IMMODULE_TRUE@im_scim_la_DEPENDENCIES = $(top_builddir)/extras/immodules/common/libscimbridgecommon.la \ @SCIM_BUILD_GTK3_IMMODULE_TRUE@ $(top_builddir)/extras/immodules/client-common/libscimbridgeclientcommon.la am__im_scim_la_SOURCES_DIST = ../im-scim-bridge-gtk.c \ ../scim-bridge-client-gtk.c \ ../scim-bridge-client-imcontext-gtk.c \ ../scim-bridge-client-key-event-utility-gtk.c @SCIM_BUILD_GTK3_IMMODULE_TRUE@am_im_scim_la_OBJECTS = im_scim_la-im-scim-bridge-gtk.lo \ @SCIM_BUILD_GTK3_IMMODULE_TRUE@ im_scim_la-scim-bridge-client-gtk.lo \ @SCIM_BUILD_GTK3_IMMODULE_TRUE@ im_scim_la-scim-bridge-client-imcontext-gtk.lo \ @SCIM_BUILD_GTK3_IMMODULE_TRUE@ im_scim_la-scim-bridge-client-key-event-utility-gtk.lo im_scim_la_OBJECTS = $(am_im_scim_la_OBJECTS) im_scim_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(im_scim_la_CFLAGS) \ $(CFLAGS) $(im_scim_la_LDFLAGS) $(LDFLAGS) -o $@ @SCIM_BUILD_GTK3_IMMODULE_TRUE@am_im_scim_la_rpath = -rpath \ @SCIM_BUILD_GTK3_IMMODULE_TRUE@ $(moduledir) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(im_scim_la_SOURCES) DIST_SOURCES = $(am__im_scim_la_SOURCES_DIST) am__noinst_HEADERS_DIST = ../scim-bridge-client-gtk.h \ ../scim-bridge-client-imcontext-gtk.h \ ../scim-bridge-client-key-event-utility-gtk.h HEADERS = $(noinst_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ ARGZ_H = @ARGZ_H@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CLUTTER_BINARY_VERSION = @CLUTTER_BINARY_VERSION@ CLUTTER_CFLAGS = @CLUTTER_CFLAGS@ CLUTTER_IMCONTEXT_LIBDIR = @CLUTTER_IMCONTEXT_LIBDIR@ CLUTTER_IM_MODULEDIR = @CLUTTER_IM_MODULEDIR@ CLUTTER_LIBDIR = @CLUTTER_LIBDIR@ CLUTTER_LIBS = @CLUTTER_LIBS@ CLUTTER_VERSION = @CLUTTER_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOCBOOK_XSL = @DOCBOOK_XSL@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@ GTHREAD2_LIBS = @GTHREAD2_LIBS@ GTK2_CFLAGS = @GTK2_CFLAGS@ GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@ GTK2_LIBS = @GTK2_LIBS@ GTK3_CFLAGS = @GTK3_CFLAGS@ GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@ GTK3_LIBS = @GTK3_LIBS@ GTK_BINARY_VERSION = @GTK_BINARY_VERSION@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBDIR = @GTK_LIBDIR@ GTK_LIBS = @GTK_LIBS@ GTK_MAJOR_VERSION = @GTK_MAJOR_VERSION@ GTK_VERSION = @GTK_VERSION@ HAVE_GRAPHVIZ = @HAVE_GRAPHVIZ@ INCLTDL = @INCLTDL@ INCLUDE_STDINT = @INCLUDE_STDINT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBLTDL = @LIBLTDL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_DEPS = @LIBTOOL_DEPS@ LIBTOOL_EXPORT_OPTIONS = @LIBTOOL_EXPORT_OPTIONS@ LIPO = @LIPO@ LN_S = @LN_S@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ QT3_CFLAGS = @QT3_CFLAGS@ QT3_IM_MODULEDIR = @QT3_IM_MODULEDIR@ QT3_LIBDIR = @QT3_LIBDIR@ QT3_LIBS = @QT3_LIBS@ QT3_MOC = @QT3_MOC@ QT3_PREFIX = @QT3_PREFIX@ QT4_CFLAGS = @QT4_CFLAGS@ QT4_IM_MODULEDIR = @QT4_IM_MODULEDIR@ QT4_LIBDIR = @QT4_LIBDIR@ QT4_LIBS = @QT4_LIBS@ QT4_MOC = @QT4_MOC@ QT4_PREFIX = @QT4_PREFIX@ RANLIB = @RANLIB@ SCIM_AGE = @SCIM_AGE@ SCIM_BINARY_VERSION = @SCIM_BINARY_VERSION@ SCIM_BRIDGE_MAJOR_VERSION = @SCIM_BRIDGE_MAJOR_VERSION@ SCIM_BRIDGE_MICRO_VERSION = @SCIM_BRIDGE_MICRO_VERSION@ SCIM_BRIDGE_MINOR_VERSION = @SCIM_BRIDGE_MINOR_VERSION@ SCIM_BRIDGE_VERSION = @SCIM_BRIDGE_VERSION@ SCIM_BUILD_CLUTTER_IMMODULE = @SCIM_BUILD_CLUTTER_IMMODULE@ SCIM_BUILD_CONFIG_SIMPLE = @SCIM_BUILD_CONFIG_SIMPLE@ SCIM_BUILD_CONFIG_SOCKET = @SCIM_BUILD_CONFIG_SOCKET@ SCIM_BUILD_DOCUMENTS = @SCIM_BUILD_DOCUMENTS@ SCIM_BUILD_FILTER_SCTC = @SCIM_BUILD_FILTER_SCTC@ SCIM_BUILD_FRONTEND_SOCKET = @SCIM_BUILD_FRONTEND_SOCKET@ SCIM_BUILD_FRONTEND_X11 = @SCIM_BUILD_FRONTEND_X11@ SCIM_BUILD_GTK2_IMMODULE = @SCIM_BUILD_GTK2_IMMODULE@ SCIM_BUILD_GTK3_IMMODULE = @SCIM_BUILD_GTK3_IMMODULE@ SCIM_BUILD_GTK_UTILS = @SCIM_BUILD_GTK_UTILS@ SCIM_BUILD_IMENGINE_RAWCODE = @SCIM_BUILD_IMENGINE_RAWCODE@ SCIM_BUILD_IMENGINE_SOCKET = @SCIM_BUILD_IMENGINE_SOCKET@ SCIM_BUILD_IMENGINE_TABLE = @SCIM_BUILD_IMENGINE_TABLE@ SCIM_BUILD_IMMODULE = @SCIM_BUILD_IMMODULE@ SCIM_BUILD_IM_AGENT = @SCIM_BUILD_IM_AGENT@ SCIM_BUILD_ORIG_GTK2_IMMODULE = @SCIM_BUILD_ORIG_GTK2_IMMODULE@ SCIM_BUILD_ORIG_GTK3_IMMODULE = @SCIM_BUILD_ORIG_GTK3_IMMODULE@ SCIM_BUILD_PANEL_GTK = @SCIM_BUILD_PANEL_GTK@ SCIM_BUILD_QT3_IMMODULE = @SCIM_BUILD_QT3_IMMODULE@ SCIM_BUILD_QT4_IMMODULE = @SCIM_BUILD_QT4_IMMODULE@ SCIM_BUILD_SCIM_SETUP = @SCIM_BUILD_SCIM_SETUP@ SCIM_BUILD_TESTS = @SCIM_BUILD_TESTS@ SCIM_BUILD_X11_UTILS = @SCIM_BUILD_X11_UTILS@ SCIM_CURRENT = @SCIM_CURRENT@ SCIM_DATADIR = @SCIM_DATADIR@ SCIM_EPOCH = @SCIM_EPOCH@ SCIM_ICONDIR = @SCIM_ICONDIR@ SCIM_LIBDIR = @SCIM_LIBDIR@ SCIM_LIBEXECDIR = @SCIM_LIBEXECDIR@ SCIM_LOCALEDIR = @SCIM_LOCALEDIR@ SCIM_LTDLADVISE = @SCIM_LTDLADVISE@ SCIM_MAJOR_VERSION = @SCIM_MAJOR_VERSION@ SCIM_MICRO_VERSION = @SCIM_MICRO_VERSION@ SCIM_MINOR_VERSION = @SCIM_MINOR_VERSION@ SCIM_MODULE_PATH = @SCIM_MODULE_PATH@ SCIM_PREFIX = @SCIM_PREFIX@ SCIM_REVISION = @SCIM_REVISION@ SCIM_SYSCONFDIR = @SCIM_SYSCONFDIR@ SCIM_TEMPDIR = @SCIM_TEMPDIR@ SCIM_VERSION = @SCIM_VERSION@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UINT16 = @UINT16@ UINT32 = @UINT32@ UINT64 = @UINT64@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XMKMF = @XMKMF@ XSLTPROC = @XSLTPROC@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_aux_dir = @ac_aux_dir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @SCIM_BUILD_GTK3_IMMODULE_TRUE@INCLUDES = -I$(top_builddir) \ @SCIM_BUILD_GTK3_IMMODULE_TRUE@ -I$(top_srcdir) \ @SCIM_BUILD_GTK3_IMMODULE_TRUE@ -I$(top_srcdir)/extras/immodules/common \ @SCIM_BUILD_GTK3_IMMODULE_TRUE@ -I$(top_srcdir)/extras/immodules/client-common @SCIM_BUILD_GTK3_IMMODULE_TRUE@noinst_HEADERS = ../scim-bridge-client-gtk.h \ @SCIM_BUILD_GTK3_IMMODULE_TRUE@ ../scim-bridge-client-imcontext-gtk.h \ @SCIM_BUILD_GTK3_IMMODULE_TRUE@ ../scim-bridge-client-key-event-utility-gtk.h @SCIM_BUILD_GTK3_IMMODULE_TRUE@moduledir = @GTK3_IM_MODULEDIR@ @SCIM_BUILD_GTK3_IMMODULE_TRUE@module_LTLIBRARIES = im-scim.la @SCIM_BUILD_GTK3_IMMODULE_TRUE@im_scim_la_SOURCES = ../im-scim-bridge-gtk.c \ @SCIM_BUILD_GTK3_IMMODULE_TRUE@ ../scim-bridge-client-gtk.c \ @SCIM_BUILD_GTK3_IMMODULE_TRUE@ ../scim-bridge-client-imcontext-gtk.c \ @SCIM_BUILD_GTK3_IMMODULE_TRUE@ ../scim-bridge-client-key-event-utility-gtk.c @SCIM_BUILD_GTK3_IMMODULE_TRUE@im_scim_la_CXXFLAGS = @GTK3_CFLAGS@ @SCIM_BUILD_GTK3_IMMODULE_TRUE@im_scim_la_CFLAGS = @GTK3_CFLAGS@ @SCIM_BUILD_GTK3_IMMODULE_TRUE@im_scim_la_LDFLAGS = -rpath $(moduledir) \ @SCIM_BUILD_GTK3_IMMODULE_TRUE@ -avoid-version -no-undefined \ @SCIM_BUILD_GTK3_IMMODULE_TRUE@ -module \ @SCIM_BUILD_GTK3_IMMODULE_TRUE@ @GTK3_LIBS@ @SCIM_BUILD_GTK3_IMMODULE_TRUE@im_scim_la_LIBADD = $(top_builddir)/extras/immodules/common/libscimbridgecommon.la \ @SCIM_BUILD_GTK3_IMMODULE_TRUE@ $(top_builddir)/extras/immodules/client-common/libscimbridgeclientcommon.la MAINTAINERCLEANFILES = Makefile.in all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu extras/immodules/client-gtk/gtk3/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu extras/immodules/client-gtk/gtk3/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-moduleLTLIBRARIES: $(module_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(moduledir)" || $(MKDIR_P) "$(DESTDIR)$(moduledir)" @list='$(module_LTLIBRARIES)'; test -n "$(moduledir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(moduledir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(moduledir)"; \ } uninstall-moduleLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(module_LTLIBRARIES)'; test -n "$(moduledir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(moduledir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(moduledir)/$$f"; \ done clean-moduleLTLIBRARIES: -test -z "$(module_LTLIBRARIES)" || rm -f $(module_LTLIBRARIES) @list='$(module_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done im-scim.la: $(im_scim_la_OBJECTS) $(im_scim_la_DEPENDENCIES) $(im_scim_la_LINK) $(am_im_scim_la_rpath) $(im_scim_la_OBJECTS) $(im_scim_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/im_scim_la-im-scim-bridge-gtk.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/im_scim_la-scim-bridge-client-gtk.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/im_scim_la-scim-bridge-client-imcontext-gtk.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/im_scim_la-scim-bridge-client-key-event-utility-gtk.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< im_scim_la-im-scim-bridge-gtk.lo: ../im-scim-bridge-gtk.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(im_scim_la_CFLAGS) $(CFLAGS) -MT im_scim_la-im-scim-bridge-gtk.lo -MD -MP -MF $(DEPDIR)/im_scim_la-im-scim-bridge-gtk.Tpo -c -o im_scim_la-im-scim-bridge-gtk.lo `test -f '../im-scim-bridge-gtk.c' || echo '$(srcdir)/'`../im-scim-bridge-gtk.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/im_scim_la-im-scim-bridge-gtk.Tpo $(DEPDIR)/im_scim_la-im-scim-bridge-gtk.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../im-scim-bridge-gtk.c' object='im_scim_la-im-scim-bridge-gtk.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(im_scim_la_CFLAGS) $(CFLAGS) -c -o im_scim_la-im-scim-bridge-gtk.lo `test -f '../im-scim-bridge-gtk.c' || echo '$(srcdir)/'`../im-scim-bridge-gtk.c im_scim_la-scim-bridge-client-gtk.lo: ../scim-bridge-client-gtk.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(im_scim_la_CFLAGS) $(CFLAGS) -MT im_scim_la-scim-bridge-client-gtk.lo -MD -MP -MF $(DEPDIR)/im_scim_la-scim-bridge-client-gtk.Tpo -c -o im_scim_la-scim-bridge-client-gtk.lo `test -f '../scim-bridge-client-gtk.c' || echo '$(srcdir)/'`../scim-bridge-client-gtk.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/im_scim_la-scim-bridge-client-gtk.Tpo $(DEPDIR)/im_scim_la-scim-bridge-client-gtk.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../scim-bridge-client-gtk.c' object='im_scim_la-scim-bridge-client-gtk.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(im_scim_la_CFLAGS) $(CFLAGS) -c -o im_scim_la-scim-bridge-client-gtk.lo `test -f '../scim-bridge-client-gtk.c' || echo '$(srcdir)/'`../scim-bridge-client-gtk.c im_scim_la-scim-bridge-client-imcontext-gtk.lo: ../scim-bridge-client-imcontext-gtk.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(im_scim_la_CFLAGS) $(CFLAGS) -MT im_scim_la-scim-bridge-client-imcontext-gtk.lo -MD -MP -MF $(DEPDIR)/im_scim_la-scim-bridge-client-imcontext-gtk.Tpo -c -o im_scim_la-scim-bridge-client-imcontext-gtk.lo `test -f '../scim-bridge-client-imcontext-gtk.c' || echo '$(srcdir)/'`../scim-bridge-client-imcontext-gtk.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/im_scim_la-scim-bridge-client-imcontext-gtk.Tpo $(DEPDIR)/im_scim_la-scim-bridge-client-imcontext-gtk.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../scim-bridge-client-imcontext-gtk.c' object='im_scim_la-scim-bridge-client-imcontext-gtk.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(im_scim_la_CFLAGS) $(CFLAGS) -c -o im_scim_la-scim-bridge-client-imcontext-gtk.lo `test -f '../scim-bridge-client-imcontext-gtk.c' || echo '$(srcdir)/'`../scim-bridge-client-imcontext-gtk.c im_scim_la-scim-bridge-client-key-event-utility-gtk.lo: ../scim-bridge-client-key-event-utility-gtk.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(im_scim_la_CFLAGS) $(CFLAGS) -MT im_scim_la-scim-bridge-client-key-event-utility-gtk.lo -MD -MP -MF $(DEPDIR)/im_scim_la-scim-bridge-client-key-event-utility-gtk.Tpo -c -o im_scim_la-scim-bridge-client-key-event-utility-gtk.lo `test -f '../scim-bridge-client-key-event-utility-gtk.c' || echo '$(srcdir)/'`../scim-bridge-client-key-event-utility-gtk.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/im_scim_la-scim-bridge-client-key-event-utility-gtk.Tpo $(DEPDIR)/im_scim_la-scim-bridge-client-key-event-utility-gtk.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../scim-bridge-client-key-event-utility-gtk.c' object='im_scim_la-scim-bridge-client-key-event-utility-gtk.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(im_scim_la_CFLAGS) $(CFLAGS) -c -o im_scim_la-scim-bridge-client-key-event-utility-gtk.lo `test -f '../scim-bridge-client-key-event-utility-gtk.c' || echo '$(srcdir)/'`../scim-bridge-client-key-event-utility-gtk.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: for dir in "$(DESTDIR)$(moduledir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic clean-libtool clean-moduleLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-moduleLTLIBRARIES install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-moduleLTLIBRARIES .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-moduleLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-moduleLTLIBRARIES install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-moduleLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: scim-1.4.14/extras/immodules/client-gtk/im-scim-bridge-gtk.c000066400000000000000000000045241177210725600236350ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ #include #include #include #include #include #include "scim-bridge.h" #include "scim-bridge-client.h" #include "scim-bridge-client-gtk.h" #include "scim-bridge-client-imcontext-gtk.h" static const GtkIMContextInfo scim_bridge_info = { /* ID */ "scim", /* Human readable name */ "SCIM Input Method", /* Translation domain */ "", /* Dir for bindtextdomain (not strictly needed for "gtk+") */ "", /* Languages for which this module is the default */ "" }; static const GtkIMContextInfo *info_list[] = { &scim_bridge_info }; /* Public functions */ void im_module_init (GTypeModule *type_module); void im_module_exit (void); void im_module_list (const GtkIMContextInfo ***contexts, int *context_count); GtkIMContext *im_module_create (const gchar *context_id); /* Implementations */ void im_module_init (GTypeModule *type_module) { scim_bridge_client_imcontext_register_type (type_module); scim_bridge_client_gtk_initialize (); static boolean first_time = TRUE; if (first_time) atexit (scim_bridge_client_gtk_finalize); first_time = FALSE; } void im_module_exit () { scim_bridge_client_gtk_finalize (); } void im_module_list (const GtkIMContextInfo ***contexts, int *context_count) { *contexts = info_list; *context_count = G_N_ELEMENTS (info_list); } GtkIMContext *im_module_create (const gchar *context_id) { if (strcmp (context_id, "scim") == 0) { return scim_bridge_client_imcontext_new (); } else { return NULL; } } scim-1.4.14/extras/immodules/client-gtk/scim-bridge-client-gtk.c000066400000000000000000000064261177210725600245110ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ #include #include #include #include #include #include "scim-bridge-client.h" #include "scim-bridge-client-gtk.h" #include "scim-bridge-client-imcontext-gtk.h" #include "scim-bridge-client-protected.h" #include "scim-bridge-imcontext.h" #include "scim-bridge-output.h" /* Private Variables */ static GIOChannel *messenger_iochannel = NULL; static guint messenger_event_source = -1; static boolean initialized = FALSE; /* Private Functions */ static gboolean handle_message (GIOChannel *source, GIOCondition condition, gpointer data) { const int socket_fd = scim_bridge_client_get_messenger_fd (); fd_set read_set; FD_ZERO (&read_set); FD_SET (socket_fd, &read_set); struct timeval timeout; timeout.tv_sec = 0; timeout.tv_usec = 0; if (select (socket_fd + 1, &read_set, NULL, NULL, &timeout) > 0) { if (scim_bridge_client_read_and_dispatch ()) { scim_bridge_perrorln ("An IOException occurred at handle_message ()"); return FALSE; } } return TRUE; } /* Public Functions */ void scim_bridge_client_gtk_initialize () { scim_bridge_pdebugln (5, "scim_bridge_client_gtk_initialize ()"); if (initialized) { return; } else { initialized = TRUE; } if (scim_bridge_client_initialize ()) { scim_bridge_perrorln ("Failed to initialize scim-bridge..."); } else { scim_bridge_client_open_messenger (); } scim_bridge_client_imcontext_static_initialize (); } void scim_bridge_client_gtk_finalize () { scim_bridge_pdebugln (5, "scim_bridge_client_gtk_finalize ()"); if (!initialized) { return; } else { initialized = FALSE; } scim_bridge_client_finalize (); scim_bridge_client_imcontext_static_finalize (); } void scim_bridge_client_messenger_opened () { if (messenger_iochannel == NULL) { messenger_iochannel = g_io_channel_unix_new (scim_bridge_client_get_messenger_fd ()); messenger_event_source = g_io_add_watch (messenger_iochannel, G_IO_IN | G_IO_ERR | G_IO_HUP | G_IO_NVAL, &handle_message, NULL); } scim_bridge_client_imcontext_connection_opened (); } void scim_bridge_client_messenger_closed () { if (messenger_iochannel != NULL) { g_io_channel_unref (messenger_iochannel); messenger_iochannel = NULL; g_source_remove (messenger_event_source); messenger_event_source = -1; } scim_bridge_client_imcontext_connection_closed (); } scim-1.4.14/extras/immodules/client-gtk/scim-bridge-client-gtk.h000066400000000000000000000026531177210725600245140ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ /** * @file * @author Ryo Dairiki * @brief This header describes about the gtk client for scim-bridge. */ #ifndef SCIMBRIDGECLIENTGTK_H_ #define SCIMBRIDGECLIENTGTK_H_ #include "scim-bridge.h" #include "scim-bridge-key-event.h" #include "scim-bridge-imcontext.h" #ifdef __cplusplus extern "C" { #endif /** * Initialize gtk client for SCIMBridge. */ void scim_bridge_client_gtk_initialize (); /** * Finalize gtk client for SCIMBridge. */ void scim_bridge_client_gtk_finalize (); #ifdef __cplusplus } #endif #endif /*SCIMBRIDGECLIENTGTK_H_*/ scim-1.4.14/extras/immodules/client-gtk/scim-bridge-client-imcontext-gtk.c000066400000000000000000001114671177210725600265230ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ #include #include #include #include #include #include #if GTK_CHECK_VERSION(3, 0, 0) #else #include #endif #include "scim-bridge-attribute.h" #include "scim-bridge-client.h" #include "scim-bridge-client-imcontext-gtk.h" #include "scim-bridge-client-key-event-utility-gtk.h" #include "scim-bridge-imcontext.h" #include "scim-bridge-messenger.h" #include "scim-bridge-output.h" #include "scim-bridge-string.h" #define SEND_EVENT_MASK 0x02 /* Typedef */ struct _ScimBridgeClientIMContext { GtkIMContext parent; scim_bridge_imcontext_id_t id; char *preedit_string; size_t preedit_string_capacity; PangoAttrList *preedit_attributes; unsigned int preedit_cursor_position; boolean preedit_cursor_flicking; boolean preedit_shown; boolean preedit_started; char *commit_string; size_t commit_string_capacity; boolean enabled; GdkWindow *client_window; int cursor_x; int cursor_y; int window_x; int window_y; }; /* Private variables */ static GdkColor preedit_normal_background; static GdkColor preedit_normal_foreground; static GdkColor preedit_active_background; static GdkColor preedit_active_foreground; static GType class_type = 0; static GObjectClass *root_klass = NULL; static ScimBridgeClientIMContext *focused_imcontext = NULL; static GtkWidget *focused_widget = NULL; static GtkIMContext *fallback_imcontext = NULL; static gulong fallback_commit_handler; static gulong fallback_preedit_changed_handler; static guint key_snooper_id = 0; static boolean key_snooper_used = FALSE; /* Class functions */ static void scim_bridge_client_imcontext_class_initialize (ScimBridgeClientIMContextClass *klass, gpointer *klass_data); static void scim_bridge_client_imcontext_initialize (ScimBridgeClientIMContext *context, ScimBridgeClientIMContextClass *klass); static void scim_bridge_client_imcontext_finalize (GObject *object); static gboolean scim_bridge_client_imcontext_filter_key_event (GtkIMContext *context, GdkEventKey *event); static void scim_bridge_client_imcontext_reset (GtkIMContext *context); static void scim_bridge_client_imcontext_get_preedit_string (GtkIMContext *context, gchar **str, PangoAttrList **attrs, gint *cursor_pos); static void scim_bridge_client_imcontext_set_preedit_enabled (GtkIMContext *context, gboolean enabled); static void scim_bridge_client_imcontext_set_client_window (GtkIMContext *context, GdkWindow *window); static void scim_bridge_client_imcontext_focus_in (GtkIMContext *context); static void scim_bridge_client_imcontext_focus_out (GtkIMContext *context); static void scim_bridge_client_imcontext_set_cursor_location (GtkIMContext *context, GdkRectangle *area); /* Helper functions */ static void fallback_commit (GtkIMContext *context, const char *str, gpointer data) { scim_bridge_pdebugln (4, "fallback_commit ()"); if (focused_imcontext != NULL && !focused_imcontext->enabled && str != NULL) { g_signal_emit_by_name (focused_imcontext, "commit", str); } } static void fallback_preedit_changed (GtkIMContext *context, gpointer data) { scim_bridge_pdebugln (4, "fallback_preedit_changed ()"); if (focused_imcontext != NULL && !focused_imcontext->enabled && context != NULL) { gchar* preedit_string = NULL; gint preedit_cursor_position = 0; PangoAttrList *preedit_attributes = NULL; gtk_im_context_get_preedit_string (context, &preedit_string, &preedit_attributes, &preedit_cursor_position); if (preedit_string != NULL) { free (focused_imcontext->preedit_string); focused_imcontext->preedit_string = preedit_string; focused_imcontext->preedit_string_capacity = strlen (preedit_string); focused_imcontext->preedit_shown = TRUE; } else { focused_imcontext->preedit_string[0] = '\0'; focused_imcontext->preedit_shown = FALSE; } focused_imcontext->preedit_cursor_position = preedit_cursor_position; if (focused_imcontext->preedit_attributes != NULL) pango_attr_list_unref (focused_imcontext->preedit_attributes); focused_imcontext->preedit_attributes = preedit_attributes; g_signal_emit_by_name (focused_imcontext, "preedit-changed"); } } static retval_t filter_key_event (ScimBridgeClientIMContext *imcontext, GdkEventKey *event, boolean *consumed) { scim_bridge_pdebugln (5, "filter_key_event ()"); if (focused_imcontext != imcontext) scim_bridge_client_imcontext_focus_in (GTK_IM_CONTEXT (imcontext)); focused_widget = gtk_get_event_widget ((GdkEvent*) event); if (scim_bridge_client_is_messenger_opened ()) { ScimBridgeKeyEvent *bridge_key_event = scim_bridge_alloc_key_event (); scim_bridge_key_event_gdk_to_bridge (bridge_key_event, imcontext->client_window, event); *consumed = FALSE; const retval_t retval_error = scim_bridge_client_handle_key_event (imcontext, bridge_key_event, consumed); scim_bridge_free_key_event (bridge_key_event); if (retval_error) { scim_bridge_perrorln ("An IOException at filter_key_event ()"); } else { return RETVAL_SUCCEEDED; } } return RETVAL_FAILED; } static retval_t set_cursor_location (ScimBridgeClientIMContext *imcontext, int window_x, int window_y, int cursor_x, int cursor_y) { scim_bridge_pdebugln (5, "set_cursor_location ()"); if (imcontext->window_x == window_x && imcontext->window_y == window_y && imcontext->cursor_x == cursor_x && imcontext->cursor_y == cursor_y) { return RETVAL_SUCCEEDED; } else { imcontext->cursor_x = cursor_x; imcontext->cursor_y = cursor_y; imcontext->window_x = window_x; imcontext->window_y = window_y; scim_bridge_pdebugln (3, "The cursor location is changed: x = %d + %d\ty = %d + %d", imcontext->window_x, imcontext->cursor_x, imcontext->window_y, imcontext->cursor_y); if (scim_bridge_client_is_messenger_opened ()) { if (scim_bridge_client_set_cursor_location (imcontext, imcontext->window_x + imcontext->cursor_x, imcontext->window_y + imcontext->cursor_y)) { scim_bridge_perrorln ("An IOException occurred at set_cursor_location ()"); return RETVAL_FAILED; } else { return RETVAL_SUCCEEDED; } } } return RETVAL_FAILED; } static gboolean key_snooper (GtkWidget *widget, GdkEventKey *event, gpointer data) { scim_bridge_pdebugln (7, "key_snooper ()"); if (!(event->send_event & SEND_EVENT_MASK) && scim_bridge_client_is_messenger_opened () && focused_imcontext != NULL) { if (focused_imcontext->client_window != NULL) { int new_window_x; int new_window_y; gdk_window_get_origin (focused_imcontext->client_window, &new_window_x, &new_window_y); if (focused_imcontext->window_x != new_window_x || focused_imcontext->window_y != new_window_y) { if (set_cursor_location (focused_imcontext, new_window_x, new_window_y, focused_imcontext->cursor_x, focused_imcontext->cursor_y)) { scim_bridge_perrorln ("An IOException at key_snooper ()"); return FALSE; } } } boolean consumed = FALSE; if (filter_key_event (focused_imcontext, event, &consumed)) { scim_bridge_perrorln ("An IOException at key_snooper ()"); return FALSE; } else { if (consumed) return TRUE; } } return FALSE; } static boolean is_key_snooper_enabled () { static boolean first_time = TRUE; static boolean key_snooper_enabled = TRUE; if (first_time) { char *env_key_snooper_enabled = getenv ("SCIM_BRIDGE_KEY_SNOOPER_ENABLED"); if (env_key_snooper_enabled != NULL) scim_bridge_string_to_boolean (&key_snooper_enabled, env_key_snooper_enabled); first_time = FALSE; } return key_snooper_enabled; } static boolean is_precise_cursor_enabled () { static boolean first_time = TRUE; static boolean precise_cursor_enabled = FALSE; if (first_time) { char *env_precise_cursor_enabled = getenv ("SCIM_BRIDGE_PRECISE_CURSOR_ENABLED"); if (env_precise_cursor_enabled != NULL) scim_bridge_string_to_boolean (&precise_cursor_enabled, env_precise_cursor_enabled); first_time = FALSE; } return precise_cursor_enabled; } /* Bindings */ void scim_bridge_client_imcontext_set_id (ScimBridgeClientIMContext *imcontext, scim_bridge_imcontext_id_t new_id) { imcontext->id = new_id; } scim_bridge_imcontext_id_t scim_bridge_client_imcontext_get_id (const ScimBridgeClientIMContext *imcontext) { return imcontext->id; } void scim_bridge_client_imcontext_set_preedit_string (ScimBridgeClientIMContext *imcontext, const char *preedit_string) { if (imcontext->preedit_string != NULL && preedit_string != NULL && !strcmp (imcontext->preedit_string, preedit_string)) return; size_t preedit_string_length; if (preedit_string != NULL) { preedit_string_length = strlen (preedit_string); } else { preedit_string_length = 0; } if (imcontext->preedit_string_capacity <= preedit_string_length) { imcontext->preedit_string_capacity = preedit_string_length; free (imcontext->preedit_string); imcontext->preedit_string = malloc (sizeof (char) * (imcontext->preedit_string_capacity + 1)); } if (preedit_string_length > 0) { strcpy (imcontext->preedit_string, preedit_string); } else { imcontext->preedit_string[0] = '\0'; } } void scim_bridge_client_imcontext_set_preedit_shown (ScimBridgeClientIMContext *imcontext, boolean preedit_shown) { imcontext->preedit_shown = preedit_shown; if (!preedit_shown) { free (imcontext->preedit_string); imcontext->preedit_string = malloc (sizeof (char)); imcontext->preedit_string[0] = '\0'; imcontext->preedit_string_capacity = 0; imcontext->preedit_cursor_position = 0; if (imcontext->preedit_attributes != NULL) { pango_attr_list_unref (imcontext->preedit_attributes); imcontext->preedit_attributes = NULL; } } } void scim_bridge_client_imcontext_set_preedit_cursor_position (ScimBridgeClientIMContext *imcontext, int cursor_position) { imcontext->preedit_cursor_position = cursor_position; } void scim_bridge_client_imcontext_set_preedit_attributes (ScimBridgeClientIMContext *imcontext, ScimBridgeAttribute** const preedit_attributes, int attribute_count) { if (imcontext->preedit_attributes != NULL) pango_attr_list_unref (imcontext->preedit_attributes); imcontext->preedit_attributes = pango_attr_list_new (); int preedit_string_length = 0; int preedit_wstring_length = 0; if (imcontext->preedit_string != NULL) { preedit_string_length = strlen (imcontext->preedit_string); preedit_wstring_length = g_utf8_strlen (imcontext->preedit_string, -1); } boolean *has_attribute = alloca (sizeof (boolean) * preedit_string_length); int i; for (i = 0; i < preedit_string_length; ++i) { has_attribute[i] = FALSE; } for (i = 0; i < attribute_count; ++i) { const ScimBridgeAttribute *attr = preedit_attributes[i]; const int begin_pos = scim_bridge_attribute_get_begin (attr); const int end_pos = scim_bridge_attribute_get_end (attr); if (begin_pos <= end_pos && 0 <= begin_pos && end_pos <= preedit_wstring_length) { const int start_index = g_utf8_offset_to_pointer (imcontext->preedit_string, begin_pos) - imcontext->preedit_string; const int end_index = g_utf8_offset_to_pointer (imcontext->preedit_string, end_pos) - imcontext->preedit_string; const scim_bridge_attribute_type_t attr_type = scim_bridge_attribute_get_type (attr); const scim_bridge_attribute_value_t attr_value = scim_bridge_attribute_get_value (attr); boolean valid_attribute = FALSE; if (attr_type == ATTRIBUTE_DECORATE) { if (attr_value == SCIM_BRIDGE_ATTRIBUTE_DECORATE_UNDERLINE) { valid_attribute = TRUE; PangoAttribute *pango_attr = pango_attr_underline_new (PANGO_UNDERLINE_SINGLE); pango_attr->start_index = start_index; pango_attr->end_index = end_index; pango_attr_list_insert (imcontext->preedit_attributes, pango_attr); } else if (attr_value == SCIM_BRIDGE_ATTRIBUTE_DECORATE_REVERSE) { valid_attribute = TRUE; PangoAttribute *pango_attr0 = pango_attr_foreground_new (preedit_normal_background.red, preedit_normal_background.green, preedit_normal_background.blue); pango_attr0->start_index = start_index; pango_attr0->end_index = end_index; pango_attr_list_insert (imcontext->preedit_attributes, pango_attr0); PangoAttribute *pango_attr1 = pango_attr_background_new (preedit_normal_foreground.red, preedit_normal_foreground.green, preedit_normal_foreground.blue); pango_attr1->start_index = start_index; pango_attr1->end_index = end_index; pango_attr_list_insert (imcontext->preedit_attributes, pango_attr1); } else if (attr_value == SCIM_BRIDGE_ATTRIBUTE_DECORATE_HIGHLIGHT) { valid_attribute = TRUE; PangoAttribute *pango_attr0 = pango_attr_foreground_new (preedit_active_foreground.red, preedit_active_foreground.green, preedit_active_foreground.blue); pango_attr0->start_index = start_index; pango_attr0->end_index = end_index; pango_attr_list_insert (imcontext->preedit_attributes, pango_attr0); PangoAttribute *pango_attr1 = pango_attr_background_new (preedit_active_background.red, preedit_active_background.green, preedit_active_background.blue); pango_attr1->start_index = start_index; pango_attr1->end_index = end_index; pango_attr_list_insert (imcontext->preedit_attributes, pango_attr1); } else { scim_bridge_perrorln ("Unknown preedit decoration!"); } } else if (attr_type == ATTRIBUTE_FOREGROUND) { valid_attribute = TRUE; const unsigned int red = scim_bridge_attribute_get_red (attr) * 256; const unsigned int green = scim_bridge_attribute_get_green (attr) * 256; const unsigned int blue = scim_bridge_attribute_get_blue (attr) * 256; PangoAttribute *pango_attr = pango_attr_foreground_new (red, green, blue); pango_attr->start_index = start_index; pango_attr->end_index = end_index; pango_attr_list_insert (imcontext->preedit_attributes, pango_attr); } else if (attr_type == ATTRIBUTE_BACKGROUND) { valid_attribute = TRUE; const unsigned int red = scim_bridge_attribute_get_red (attr) * 256; const unsigned int green = scim_bridge_attribute_get_green (attr) * 256; const unsigned int blue = scim_bridge_attribute_get_blue (attr) * 256; PangoAttribute *pango_attr = pango_attr_background_new (red, green, blue); pango_attr->start_index = start_index; pango_attr->end_index = end_index; pango_attr_list_insert (imcontext->preedit_attributes, pango_attr); } if (valid_attribute) { int j; for (j = start_index; j < end_index; ++j) { has_attribute[j] = TRUE; } } } } // Add underlines for the all characters without attributes. for (i = 0; i < preedit_string_length; ++i) { if (has_attribute[i] == FALSE) { PangoAttribute *pango_attr = pango_attr_underline_new (PANGO_UNDERLINE_SINGLE); pango_attr->start_index = i; for (; i < preedit_string_length && has_attribute[i] == FALSE; ++i); pango_attr->end_index = i; pango_attr_list_insert (imcontext->preedit_attributes, pango_attr); } } } void scim_bridge_client_imcontext_update_preedit (ScimBridgeClientIMContext *imcontext) { if (imcontext->preedit_shown && !imcontext->preedit_started) { g_signal_emit_by_name ((ScimBridgeClientIMContext*) imcontext, "preedit-start"); imcontext->preedit_started = TRUE; } if (is_precise_cursor_enabled ()) { const size_t old_cursor_position = imcontext->preedit_cursor_position; imcontext->preedit_cursor_position = 0; if (imcontext->preedit_string != NULL) imcontext->preedit_cursor_position = g_utf8_strlen (imcontext->preedit_string, -1); imcontext->preedit_cursor_flicking = TRUE; g_signal_emit_by_name ((ScimBridgeClientIMContext*) imcontext, "preedit-changed"); imcontext->preedit_cursor_position = old_cursor_position; imcontext->preedit_cursor_flicking = FALSE; } g_signal_emit_by_name ((ScimBridgeClientIMContext*) imcontext, "preedit-changed"); if (!imcontext->preedit_shown && imcontext->preedit_started) { g_signal_emit_by_name ((ScimBridgeClientIMContext*) imcontext, "preedit-end"); imcontext->preedit_started = FALSE; } } void scim_bridge_client_imcontext_set_commit_string (ScimBridgeClientIMContext *imcontext, const char *commit_string) { size_t commit_string_length; if (commit_string != NULL) { commit_string_length = strlen (commit_string); } else { commit_string_length = 0; } if (imcontext->commit_string_capacity <= commit_string_length) { imcontext->commit_string_capacity = commit_string_length; free (imcontext->commit_string); imcontext->commit_string = malloc (sizeof (char) * (imcontext->commit_string_capacity + 1)); } if (commit_string_length > 0) { strcpy (imcontext->commit_string, commit_string); } else { imcontext->commit_string[0] = '\0'; } } void scim_bridge_client_imcontext_commit (ScimBridgeClientIMContext *imcontext) { g_signal_emit_by_name ((ScimBridgeClientIMContext*) imcontext, "commit", imcontext->commit_string); } void scim_bridge_client_imcontext_beep (ScimBridgeClientIMContext *imcontext) { gdk_beep (); } boolean scim_bridge_client_imcontext_get_surrounding_text (ScimBridgeClientIMContext *imcontext, int before_max, int after_max, char **string, int *cursor_position) { char *str; int cur_pos_in_utf8; if (gtk_im_context_get_surrounding (GTK_IM_CONTEXT (imcontext), &str, &cur_pos_in_utf8)) { const size_t fetch_wstr_length = g_utf8_strlen (str, -1); const size_t after_wstr_length = g_utf8_strlen (str + cur_pos_in_utf8, -1); const size_t before_wstr_length = fetch_wstr_length - after_wstr_length; size_t before_copy_wstr_length; size_t after_copy_wstr_length; if (after_wstr_length > after_max) { after_copy_wstr_length = after_max; } else { after_copy_wstr_length = after_wstr_length; } if (before_wstr_length > before_max) { before_copy_wstr_length = before_max; } else { before_copy_wstr_length = before_wstr_length; } const size_t begin_wstr_index = before_wstr_length - before_copy_wstr_length; const size_t end_wstr_index = fetch_wstr_length - (after_wstr_length - after_copy_wstr_length); char* begin_str_ptr = g_utf8_offset_to_pointer (str, begin_wstr_index); char* end_str_ptr = g_utf8_offset_to_pointer (str, end_wstr_index); size_t str_length = end_str_ptr - begin_str_ptr; *string = malloc (sizeof (char) * (str_length + 1)); strncpy (*string, begin_str_ptr, str_length); (*string)[str_length] = '\0'; *cursor_position = before_copy_wstr_length; g_free (str); return TRUE; } else { *string = NULL; return FALSE; } } boolean scim_bridge_client_imcontext_delete_surrounding_text (ScimBridgeClientIMContext *imcontext, int offset, int length) { boolean retval = gtk_im_context_delete_surrounding (GTK_IM_CONTEXT (imcontext), offset, length); return retval; } boolean scim_bridge_client_imcontext_replace_surrounding_text (ScimBridgeClientIMContext *imcontext, int cursor_position, const char *string) { gtk_im_context_set_surrounding (GTK_IM_CONTEXT (imcontext), string, -1, cursor_position); return TRUE; } void scim_bridge_client_imcontext_forward_key_event (ScimBridgeClientIMContext *imcontext, const ScimBridgeKeyEvent *key_event) { GdkEventKey gdk_event; scim_bridge_key_event_bridge_to_gdk (&gdk_event, imcontext->client_window, key_event); gdk_event.send_event |= SEND_EVENT_MASK; if (imcontext == focused_imcontext && focused_widget != NULL) { const char *signal_name = NULL; if (scim_bridge_key_event_is_pressed (key_event)) { signal_name = "key-press-event"; } else { signal_name = "key-release-event"; } gboolean consumed; g_signal_emit_by_name (focused_widget, signal_name, &gdk_event, &consumed); } else { gdk_event_put ((GdkEvent*) &gdk_event); } } void scim_bridge_client_imcontext_imengine_status_changed (ScimBridgeClientIMContext *imcontext, boolean enabled) { if (imcontext->preedit_shown) { if (imcontext->enabled) { scim_bridge_client_imcontext_set_preedit_shown (imcontext, FALSE); scim_bridge_client_imcontext_update_preedit (imcontext); } else { gtk_im_context_reset (GTK_IM_CONTEXT (fallback_imcontext)); } } imcontext->enabled = enabled; } /* Class Implementations */ void scim_bridge_client_imcontext_static_initialize () { gdk_color_parse ("gray92", &preedit_normal_background); gdk_color_parse ("black", &preedit_normal_foreground); gdk_color_parse ("light blue", &preedit_active_background); gdk_color_parse ("black", &preedit_active_foreground); focused_imcontext = NULL; fallback_imcontext = gtk_im_context_simple_new (); fallback_commit_handler = g_signal_connect (G_OBJECT (fallback_imcontext), "commit", G_CALLBACK (fallback_commit), NULL); fallback_preedit_changed_handler = g_signal_connect (G_OBJECT (fallback_imcontext), "preedit_changed", G_CALLBACK (fallback_preedit_changed), NULL); } void scim_bridge_client_imcontext_static_finalize () { g_signal_handlers_disconnect_by_func (fallback_imcontext, &fallback_commit_handler, NULL); g_object_unref (fallback_imcontext); if (key_snooper_used) { gtk_key_snooper_remove (key_snooper_id); key_snooper_id = 0; key_snooper_used = FALSE; } fallback_imcontext = NULL; focused_imcontext = NULL; } void scim_bridge_client_imcontext_connection_opened () { } void scim_bridge_client_imcontext_connection_closed () { if (focused_imcontext != NULL) scim_bridge_client_imcontext_set_preedit_shown (focused_imcontext, FALSE); } void scim_bridge_client_imcontext_class_initialize (ScimBridgeClientIMContextClass *klass, gpointer *klass_data) { root_klass = (GObjectClass *) g_type_class_peek_parent (klass); GtkIMContextClass *gtk_im_klass = GTK_IM_CONTEXT_CLASS (klass); gtk_im_klass->set_client_window = scim_bridge_client_imcontext_set_client_window; gtk_im_klass->filter_keypress = scim_bridge_client_imcontext_filter_key_event; gtk_im_klass->reset = scim_bridge_client_imcontext_reset; gtk_im_klass->get_preedit_string = scim_bridge_client_imcontext_get_preedit_string; gtk_im_klass->focus_in = scim_bridge_client_imcontext_focus_in; gtk_im_klass->focus_out = scim_bridge_client_imcontext_focus_out; gtk_im_klass->set_cursor_location = scim_bridge_client_imcontext_set_cursor_location; gtk_im_klass->set_use_preedit = scim_bridge_client_imcontext_set_preedit_enabled; GObjectClass *gobject_klass = G_OBJECT_CLASS (klass); gobject_klass->finalize = scim_bridge_client_imcontext_finalize; } GType scim_bridge_client_imcontext_get_type () { return class_type; } void scim_bridge_client_imcontext_register_type (GTypeModule *type_module) { scim_bridge_pdebugln (2, "scim_bridge_client_imcontext_register_type ()"); static const GTypeInfo klass_info = { sizeof (ScimBridgeClientIMContextClass), /* no base class initializer */ NULL, /* no base class finalizer */ NULL, /* class initializer */ (GClassInitFunc) scim_bridge_client_imcontext_class_initialize, /* no class finalizer */ NULL, /* no class data */ NULL, sizeof (ScimBridgeClientIMContext), 0, /* object initizlier */ #if GTK_CHECK_VERSION(3, 0, 0) (GInstanceInitFunc) scim_bridge_client_imcontext_initialize, #else (GtkObjectInitFunc) scim_bridge_client_imcontext_initialize, #endif }; class_type = g_type_module_register_type (type_module, GTK_TYPE_IM_CONTEXT, "ScimBridgeClientIMContext", &klass_info, 0); } GtkIMContext *scim_bridge_client_imcontext_new () { scim_bridge_pdebugln (4, "scim_bridge_client_imcontext_new ()"); ScimBridgeClientIMContext *ic = SCIM_BRIDGE_CLIENT_IMCONTEXT (g_object_new (GTK_TYPE_SCIM_CLIENT_IMCONTEXT, NULL)); return GTK_IM_CONTEXT (ic); } void scim_bridge_client_imcontext_initialize (ScimBridgeClientIMContext *imcontext, ScimBridgeClientIMContextClass *klass) { scim_bridge_pdebugln (5, "scim_bridge_client_imcontext_initialize ()"); imcontext->preedit_shown = FALSE; imcontext->preedit_started = FALSE; imcontext->preedit_cursor_position = 0; imcontext->preedit_cursor_flicking = FALSE; imcontext->preedit_string = malloc (sizeof (char)); imcontext->preedit_string[0] = '\0'; imcontext->preedit_string_capacity = 0; imcontext->preedit_attributes = NULL; imcontext->commit_string = malloc (sizeof (char)); imcontext->commit_string[0] = '\0'; imcontext->commit_string_capacity = 0; imcontext->enabled = FALSE; imcontext->client_window = NULL; imcontext->id = -1; if (!scim_bridge_client_is_messenger_opened ()) { scim_bridge_perrorln ("The messenger is now down"); } else if (scim_bridge_client_register_imcontext (imcontext)) { scim_bridge_perrorln ("Failed to register the IMContext"); } else { scim_bridge_pdebugln (1, "IMContext registered: id = %d", imcontext->id); } } void scim_bridge_client_imcontext_finalize (GObject *object) { scim_bridge_pdebugln (5, "scim_bridge_client_imcontext_finalize ()"); ScimBridgeClientIMContext *imcontext = SCIM_BRIDGE_CLIENT_IMCONTEXT (object); if (imcontext == focused_imcontext) scim_bridge_client_imcontext_focus_out (GTK_IM_CONTEXT (imcontext)); if (!scim_bridge_client_is_messenger_opened ()) { scim_bridge_perrorln ("The messenger is now down"); } else if (scim_bridge_client_deregister_imcontext (imcontext)) { scim_bridge_perrorln ("Failed to deregister an IMContext"); } else { scim_bridge_pdebugln (3, "IMContext deregistered: id = %d", imcontext->id); } if (imcontext->client_window) g_object_unref (imcontext->client_window); free (imcontext->preedit_string); free (imcontext->commit_string); if (imcontext->preedit_attributes != NULL) pango_attr_list_unref (imcontext->preedit_attributes); imcontext->preedit_attributes = NULL; root_klass->finalize (object); } /* Class functions */ gboolean scim_bridge_client_imcontext_filter_key_event (GtkIMContext *context, GdkEventKey *event) { scim_bridge_pdebugln (8, "scim_bridge_client_imcontext_filter_key_event ()"); ScimBridgeClientIMContext *imcontext = SCIM_BRIDGE_CLIENT_IMCONTEXT (context); if (!(event->send_event & SEND_EVENT_MASK) && scim_bridge_client_is_messenger_opened () && imcontext != NULL && !key_snooper_used) { if (imcontext->client_window != NULL) { int new_window_x; int new_window_y; gdk_window_get_origin (imcontext->client_window, &new_window_x, &new_window_y); if (imcontext->window_x != new_window_x || imcontext->window_y != new_window_y) { imcontext->window_x = new_window_x; imcontext->window_y = new_window_y; scim_bridge_pdebugln (1, "The cursor location is changed: x = %d + %d\ty = %d + %d", imcontext->window_x, imcontext->cursor_x, imcontext->window_y, imcontext->cursor_y); if (set_cursor_location (imcontext, new_window_x, new_window_y, imcontext->cursor_x, imcontext->cursor_y)) { scim_bridge_perrorln ("An IOException occurred at scim_bridge_client_imcontext_filter_key_event ()"); return gtk_im_context_filter_keypress (fallback_imcontext, event); } } } boolean consumed = FALSE; if (filter_key_event (imcontext, event, &consumed)) { scim_bridge_perrorln ("An IOException occurred at scim_bridge_client_imcontext_filter_key_event ()"); } else if (consumed) { return TRUE; } } unsigned int accelerator_mask = (gtk_accelerator_get_default_mod_mask () & ~GDK_SHIFT_MASK); if (imcontext == NULL || !imcontext->enabled) { return gtk_im_context_filter_keypress (fallback_imcontext, event); } else if (event->type == GDK_KEY_PRESS && (event->state & accelerator_mask) == 0) { guint32 wchar = gdk_keyval_to_unicode (event->keyval); if (wchar != 0) { gchar buffer[10]; const int buffer_length = g_unichar_to_utf8 (wchar, buffer); buffer[buffer_length] = '\0'; g_signal_emit_by_name (focused_imcontext, "commit", &buffer); return TRUE; } } return FALSE; } void scim_bridge_client_imcontext_reset (GtkIMContext *context) { scim_bridge_pdebugln (8, "scim_bridge_client_imcontext_reset ()"); ScimBridgeClientIMContext *imcontext = SCIM_BRIDGE_CLIENT_IMCONTEXT (context); if (imcontext != focused_imcontext) return; if (scim_bridge_client_is_messenger_opened () && imcontext != NULL) { if (scim_bridge_client_reset_imcontext (imcontext)) { scim_bridge_perrorln ("An IOException occurred at scim_bridge_client_imcontext_reset ()"); } } } void scim_bridge_client_imcontext_get_preedit_string (GtkIMContext *context, gchar **str, PangoAttrList **pango_attrs, gint *cursor_pos) { scim_bridge_pdebugln (4, "scim_bridge_client_imcontext_get_preedit_string ()"); ScimBridgeClientIMContext *imcontext = SCIM_BRIDGE_CLIENT_IMCONTEXT (context); if (scim_bridge_client_is_messenger_opened () && imcontext != NULL && imcontext->preedit_shown) { const size_t preedit_string_length = strlen (imcontext->preedit_string); const size_t preedit_wstring_length = g_utf8_strlen (imcontext->preedit_string, -1); if (str) { if (preedit_string_length > 0) { *str = g_strdup (imcontext->preedit_string); } else { *str = g_strdup (""); } } if (cursor_pos) { if (imcontext->preedit_cursor_position > preedit_wstring_length) { *cursor_pos = preedit_wstring_length; } else { *cursor_pos = imcontext->preedit_cursor_position; } } if (pango_attrs) { *pango_attrs = imcontext->preedit_attributes; pango_attr_list_ref (imcontext->preedit_attributes); } } else { if (str) *str = g_strdup (""); if (cursor_pos) *cursor_pos = 0; if (pango_attrs) *pango_attrs = pango_attr_list_new (); } } void scim_bridge_client_imcontext_focus_in (GtkIMContext *context) { scim_bridge_pdebugln (8, "scim_bridge_client_imcontext_focus_in ()"); ScimBridgeClientIMContext *imcontext = SCIM_BRIDGE_CLIENT_IMCONTEXT (context); if (focused_imcontext != NULL && focused_imcontext != imcontext) scim_bridge_client_imcontext_focus_out (GTK_IM_CONTEXT (focused_imcontext)); focused_imcontext = imcontext; if (!scim_bridge_client_is_messenger_opened () && scim_bridge_client_is_reconnection_enabled ()) { scim_bridge_pdebugln (7, "Trying to open the connection again..."); scim_bridge_client_open_messenger (); } if (!key_snooper_used && is_key_snooper_enabled ()) { key_snooper_id = gtk_key_snooper_install ((GtkKeySnoopFunc) &key_snooper, NULL); key_snooper_used = TRUE; } if (scim_bridge_client_is_messenger_opened () && imcontext != NULL) { if (scim_bridge_client_change_focus (imcontext, TRUE)) { scim_bridge_perrorln ("An IOException occurred at scim_bridge_client_imcontext_focus_in ()"); } } } void scim_bridge_client_imcontext_focus_out (GtkIMContext *context) { scim_bridge_pdebugln (8, "scim_bridge_client_imcontext_focus_out ()"); ScimBridgeClientIMContext *imcontext = SCIM_BRIDGE_CLIENT_IMCONTEXT (context); focused_widget = NULL; focused_imcontext = imcontext; if (imcontext->preedit_shown) { if (imcontext->enabled) { scim_bridge_client_imcontext_set_preedit_shown (imcontext, FALSE); scim_bridge_client_imcontext_update_preedit (imcontext); } else { gtk_im_context_reset (GTK_IM_CONTEXT (fallback_imcontext)); } } if (scim_bridge_client_is_messenger_opened () && imcontext != NULL) { if (scim_bridge_client_change_focus (imcontext, FALSE)) { scim_bridge_perrorln ("An IOException occurred at scim_bridge_client_imcontext_focus_out ()"); } } if (key_snooper_used) { gtk_key_snooper_remove (key_snooper_id); key_snooper_id = 0; key_snooper_used = FALSE; } focused_imcontext = NULL; } void scim_bridge_client_imcontext_set_client_window (GtkIMContext *context, GdkWindow *new_window) { scim_bridge_pdebugln (7, "scim_bridge_client_imcontext_set_client_window ()"); ScimBridgeClientIMContext *imcontext = SCIM_BRIDGE_CLIENT_IMCONTEXT (context); if (imcontext != NULL) { if (imcontext->client_window != NULL) g_object_unref (imcontext->client_window); imcontext->client_window = new_window; if (new_window != NULL) { g_object_ref (new_window); gdk_window_get_origin (imcontext->client_window, &imcontext->window_x, &imcontext->window_y); } } } void scim_bridge_client_imcontext_set_cursor_location (GtkIMContext *context, GdkRectangle *area) { scim_bridge_pdebugln (4, "scim_bridge_client_imcontext_set_cursor_location ()"); ScimBridgeClientIMContext *imcontext = SCIM_BRIDGE_CLIENT_IMCONTEXT (context); if (imcontext->preedit_cursor_flicking) return; if (imcontext != NULL && imcontext->client_window != NULL) { const int new_cursor_x = area->x + area->width; const int new_cursor_y = area->y + area->height + 8; int new_window_x; int new_window_y; gdk_window_get_origin (imcontext->client_window, &new_window_x, &new_window_y); if (set_cursor_location (imcontext, new_window_x, new_window_y, new_cursor_x, new_cursor_y)) { scim_bridge_perrorln ("An IOException occurred at scim_bridge_client_imcontext_set_cursor_location ()"); } } } void scim_bridge_client_imcontext_set_preedit_enabled (GtkIMContext *context, gboolean enabled) { scim_bridge_pdebugln (8, "scim_bridge_client_imcontext_set_preedit_enabled ()"); ScimBridgeClientIMContext *imcontext = SCIM_BRIDGE_CLIENT_IMCONTEXT (context); if (imcontext != NULL) { if (scim_bridge_client_is_messenger_opened ()) { if (scim_bridge_client_set_preedit_mode (imcontext, enabled ? PREEDIT_EMBEDDED:PREEDIT_ANY)) { scim_bridge_perrorln ("An IOException occurred at scim_bridge_client_imcontext_set_preedit_enabled ()"); } } } } scim-1.4.14/extras/immodules/client-gtk/scim-bridge-client-imcontext-gtk.h000066400000000000000000000070031177210725600265160ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ /** * @file * @author Ryo Dairiki * @brief This is the header for gtk imcontext of scim-bridge. */ #ifndef SCIMBRIDGECLIENTIMCONTEXTGTK_H_ #define SCIMBRIDGECLIENTIMCONTEXTGTK_H_ #include #if GTK_CHECK_VERSION(3, 0, 0) #else #include #endif #include #include "scim-bridge.h" #include "scim-bridge-client-imcontext.h" #define GTK_TYPE_SCIM_CLIENT_IMCONTEXT (scim_bridge_client_imcontext_get_type ()) #if GTK_CHECK_VERSION(3, 0, 0) #define SCIM_BRIDGE_CLIENT_IMCONTEXT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_SCIM_CLIENT_IMCONTEXT, ScimBridgeClientIMContext)) #else #define SCIM_BRIDGE_CLIENT_IMCONTEXT(obj) (GTK_CHECK_CAST ((obj), GTK_TYPE_SCIM_CLIENT_IMCONTEXT, ScimBridgeClientIMContext)) #endif #define SCIM_BRIDGE_CLIENT_IMCONTEXT_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), GTK_TYPE_SCIM_CLIENT_IMCONTEXT, ScimBridgeClientIMContextClass)) #if GTK_CHECK_VERSION(3, 0, 0) #define IS_SCIM_BRIDGE_CLIENT_IMCONTEXT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_SCIM_CLIENT_IMCONTEXT)) #else #define IS_SCIM_BRIDGE_CLIENT_IMCONTEXT(class) (GTK_CHECK_TYPE ((obj), GTK_TYPE_SCIM_CLIENT_IMCONTEXT)) #endif #define IS_SCIM_BRIDGE_CLIENT_IMCONTEXT_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GTK_TYPE_SCIM_CLIENT_IMCONTEXT)) #if GTK_CHECK_VERSION(3, 0, 0) #define SCIM_BRIDGE_CLIENT_IMCONTEXT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_SCIM_CLIENT_IMCONTEXT, ScimBridgeClientIMContextClass)) #else #define SCIM_BRIDGE_CLIENT_IMCONTEXT_GET_CLASS(obj) (GTK_CHECK_GET_CLASS ((obj), GTK_TYPE_SCIM_CLIENT_IMCONTEXT, ScimBridgeClientIMContextClass)) #endif struct _ScimBridgeClientIMContextClass { GtkIMContextClass parent_class; }; /** * IMContext class for gtk client. */ typedef struct _ScimBridgeClientIMContextClass ScimBridgeClientIMContextClass; /** * Initialize IMContext class itself. */ void scim_bridge_client_imcontext_static_initialize (); /** * Finalize IMContext class itself. */ void scim_bridge_client_imcontext_static_finalize (); /** * The connection with the agent is opened. */ void scim_bridge_client_imcontext_connection_opened (); /** * The connection with the agent is closed. */ void scim_bridge_client_imcontext_connection_closed (); /** * Allocate an IMContext. * * @return new IMContext. */ GtkIMContext *scim_bridge_client_imcontext_new (); /** * Get the type value of IMContexts. * * @return The type value of IMContexts. */ GType scim_bridge_client_imcontext_get_type (); /** * Register the type value for IMContexts. * * @param type_module The type module. */ void scim_bridge_client_imcontext_register_type (GTypeModule *type_module); #endif /*SCIMBRIDGECLIENTIMCONTEXTGTK_H_*/ scim-1.4.14/extras/immodules/client-gtk/scim-bridge-client-key-event-utility-gtk.c000066400000000000000000000136651177210725600301220ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ #include #include #include #include #ifdef GDK_WINDOWING_X11 #include #include #include #include #endif #include "scim-bridge-client-key-event-utility-gtk.h" #include "scim-bridge-key-event.h" /* Helper Functions */ static GdkKeymap *get_gdk_keymap (GdkWindow *window) { #if GDK_MULTIHEAD_SAFE #if GTK_CHECK_VERSION(3, 0, 0) if (window) return gdk_keymap_get_for_display (gdk_window_get_display (window)); #else if (window) return gdk_keymap_get_for_display (gdk_drawable_get_display (window)); #endif #endif return gdk_keymap_get_default (); } /* Implementations */ void scim_bridge_key_event_bridge_to_gdk (GdkEventKey *gdk_key_event, GdkWindow *client_window, const ScimBridgeKeyEvent *key_event) { gdk_key_event->state = 0; if (scim_bridge_key_event_is_shift_down (key_event)) gdk_key_event->state |= GDK_SHIFT_MASK; if (scim_bridge_key_event_is_caps_lock_down (key_event)) gdk_key_event->state |= GDK_LOCK_MASK; if (scim_bridge_key_event_is_control_down (key_event)) gdk_key_event->state |= GDK_CONTROL_MASK; if (scim_bridge_key_event_is_alt_down (key_event)) gdk_key_event->state |= GDK_MOD1_MASK; /*if (scim_bridge_key_event_is_num_lock_down (key_event)) gdk_key_event->state |= GDK_MOD2_MASK;*/ if (scim_bridge_key_event_is_pressed (key_event)) { gdk_key_event->type = GDK_KEY_PRESS; } else { gdk_key_event->type = GDK_KEY_RELEASE; gdk_key_event->state |= GDK_RELEASE_MASK; } gdk_key_event->window = client_window; struct timeval current_time; gettimeofday (¤t_time, NULL); gdk_key_event->time = current_time.tv_sec * 1000 + current_time.tv_usec / 1000; gdk_key_event->keyval = scim_bridge_key_event_get_code (key_event); gdk_key_event->length = 0; gdk_key_event->string = 0; GdkKeymap *key_map = get_gdk_keymap (gdk_key_event->window); GdkKeymapKey *keys; gint n_keys; if (gdk_keymap_get_entries_for_keyval (key_map, gdk_key_event->keyval, &keys, &n_keys)) { gdk_key_event->hardware_keycode = keys[0].keycode; gdk_key_event->group = keys [0].group; } else { gdk_key_event->hardware_keycode = 0; gdk_key_event->group = 0; } } void scim_bridge_key_event_gdk_to_bridge (ScimBridgeKeyEvent *bridge_key_event, GdkWindow *window, const GdkEventKey *key_event) { // Use Key Symbole provided by gtk. scim_bridge_key_event_set_code (bridge_key_event, (scim_bridge_key_code_t) key_event->keyval); scim_bridge_key_event_clear_modifiers (bridge_key_event); #if GTK_CHECK_VERSION(3, 0, 0) if (key_event->state & GDK_SHIFT_MASK || key_event->keyval == GDK_KEY_Shift_L || key_event->keyval == GDK_KEY_Shift_R) scim_bridge_key_event_set_shift_down (bridge_key_event, TRUE); if (key_event->state & GDK_LOCK_MASK || key_event->keyval == GDK_KEY_Caps_Lock) scim_bridge_key_event_set_caps_lock_down (bridge_key_event, TRUE); if (key_event->state & GDK_CONTROL_MASK || key_event->keyval == GDK_KEY_Control_L || key_event->keyval == GDK_KEY_Control_R) scim_bridge_key_event_set_control_down (bridge_key_event, TRUE); if (key_event->state & GDK_MOD1_MASK || key_event->keyval == GDK_KEY_Alt_L || key_event->keyval == GDK_KEY_Alt_R) scim_bridge_key_event_set_alt_down (bridge_key_event, TRUE); /*if (key_event->state & GDK_MOD2_MASK) scim_bridge_key_event_set_num_lock_down (bridge_key_event, TRUE);*/ #else if (key_event->state & GDK_SHIFT_MASK || key_event->keyval == GDK_Shift_L || key_event->keyval == GDK_Shift_R) scim_bridge_key_event_set_shift_down (bridge_key_event, TRUE); if (key_event->state & GDK_LOCK_MASK || key_event->keyval == GDK_Caps_Lock) scim_bridge_key_event_set_caps_lock_down (bridge_key_event, TRUE); if (key_event->state & GDK_CONTROL_MASK || key_event->keyval == GDK_Control_L || key_event->keyval == GDK_Control_R) scim_bridge_key_event_set_control_down (bridge_key_event, TRUE); if (key_event->state & GDK_MOD1_MASK || key_event->keyval == GDK_Alt_L || key_event->keyval == GDK_Alt_R) scim_bridge_key_event_set_alt_down (bridge_key_event, TRUE); /*if (key_event->state & GDK_MOD2_MASK) scim_bridge_key_event_set_num_lock_down (bridge_key_event, TRUE);*/ #endif if (key_event->type != GDK_KEY_RELEASE) { scim_bridge_key_event_set_pressed (bridge_key_event, TRUE); } else { scim_bridge_key_event_set_pressed (bridge_key_event, FALSE); } #ifdef GDK_WINDOWING_X11 Display *display = NULL; if (window != NULL) { display = GDK_WINDOW_XDISPLAY (window); } else { display = GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()); } if (scim_bridge_key_event_get_code (bridge_key_event) == SCIM_BRIDGE_KEY_CODE_backslash) { boolean kana_ro = FALSE; int keysym_size = 0; KeySym *keysyms = XGetKeyboardMapping (display, key_event->hardware_keycode, 1, &keysym_size); if (keysyms != NULL) { kana_ro = (keysyms[0] == XK_backslash && keysyms[1] == XK_underscore); XFree (keysyms); } scim_bridge_key_event_set_quirk_enabled (bridge_key_event, SCIM_BRIDGE_KEY_QUIRK_KANA_RO, kana_ro); } #endif } scim-1.4.14/extras/immodules/client-gtk/scim-bridge-client-key-event-utility-gtk.h000066400000000000000000000036261177210725600301230ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ /** * @file * @author Ryo Dairiki * @brief This is the header of the functions to translate key events between scim-bridge and gtk. */ #ifndef SCIMBRIDGECLIENTKEYEVENTUTILITYGTK_H_ #define SCIMBRIDGECLIENTKEYEVENTUTILITYGTK_H_ #include #include "scim-bridge.h" #include "scim-bridge-key-event.h" /** * Translate a key event from scim-bridge into gdk. * * @param gdk_key_event A key event of gdk. * @param client_window The gdk window for the key event. * @param key_event The key event from scim-bridge. */ void scim_bridge_key_event_bridge_to_gdk (GdkEventKey *gdk_key_event, GdkWindow *client_window, const ScimBridgeKeyEvent *key_event); /** * Translate a key event from gdk into scim-bridge. * * @param bridge_key_event A key event of scim-bridge. * @param client_window The gdk window for the key event. * @param key_event The key event from gdk. */ void scim_bridge_key_event_gdk_to_bridge (ScimBridgeKeyEvent *bridge_key_event, GdkWindow *client_window, const GdkEventKey *key_event); #endif /*SCIMBRIDGECLIENTKEYEVENTUTILITYGTK_H_*/ scim-1.4.14/extras/immodules/client-qt/000077500000000000000000000000001177210725600177505ustar00rootroot00000000000000scim-1.4.14/extras/immodules/client-qt/im-scim-bridge-qt.cpp000066400000000000000000000062741177210725600236770ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ #include #ifdef QT4 #include #include using namespace Qt; #else #include #endif #include "scim-bridge.h" #include "scim-bridge-client-common-qt.h" #include "scim-bridge-client-imcontext-qt.h" #include "scim-bridge-client-qt.h" /* Static Variables */ static ScimBridgeClientQt *client = NULL; /* The class Definition */ class ScimBridgeInputContextPlugin: public QInputContextPlugin { private: /** * The language list for SCIM. */ static QStringList scim_languages; public: ScimBridgeInputContextPlugin (); ~ScimBridgeInputContextPlugin (); QStringList keys () const; QStringList languages (const QString &key); QString description (const QString &key); QInputContext *create (const QString &key); QString displayName (const QString &key); }; /* Implementations */ QStringList ScimBridgeInputContextPlugin::scim_languages; ScimBridgeInputContextPlugin::ScimBridgeInputContextPlugin () { } ScimBridgeInputContextPlugin::~ScimBridgeInputContextPlugin () { delete client; client = NULL; } QStringList ScimBridgeInputContextPlugin::keys () const { QStringList identifiers; identifiers.push_back (SCIM_BRIDGE_IDENTIFIER_NAME); return identifiers; } QStringList ScimBridgeInputContextPlugin::languages (const QString &key) { if (scim_languages.empty ()) { scim_languages.push_back ("zh_CN"); scim_languages.push_back ("zh_TW"); scim_languages.push_back ("zh_HK"); scim_languages.push_back ("ja"); scim_languages.push_back ("ko"); } return scim_languages; } QString ScimBridgeInputContextPlugin::description (const QString &key) { return QString::fromUtf8 ("Qt immodule plugin for SCIM Bridge"); } QInputContext *ScimBridgeInputContextPlugin::create (const QString &key) { #ifdef QT4 if (key.toLower () != SCIM_BRIDGE_IDENTIFIER_NAME) { #else if (key.lower () != SCIM_BRIDGE_IDENTIFIER_NAME) { #endif return NULL; } else { if (client == NULL) client = new ScimBridgeClientQt (); return ScimBridgeClientIMContext::alloc (); } } QString ScimBridgeInputContextPlugin::displayName (const QString &key) { return key; } #ifdef QT4 Q_EXPORT_PLUGIN2 (ScimBridgeInputContextPlugin, ScimBridgeInputContextPlugin) #else Q_EXPORT_PLUGIN (ScimBridgeInputContextPlugin) #endif scim-1.4.14/extras/immodules/client-qt/qt3/000077500000000000000000000000001177210725600204575ustar00rootroot00000000000000scim-1.4.14/extras/immodules/client-qt/qt3/Makefile.am000066400000000000000000000040771177210725600225230ustar00rootroot00000000000000## Makefile.am -- Process this file with automake to produce Makefile.in ## ## Copyright (C) 2006 Ryo Dairiki ## ## ## This library is free software; you can redistribute it and/or ## modify it under the terms of the GNU Lesser General Public ## License as published by the Free Software Foundation and ## appearing in the file LICENSE.LGPL included in the package of this file. ## You can also redistribute it and/or modify it under the terms of ## the GNU General Public License as published by the Free Software Foundation and ## appearing in the file LICENSE.GPL included in the package of this file. ## ## This library is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. if SCIM_BUILD_QT3_IMMODULE INCLUDES = -I$(top_builddir) \ -I$(top_srcdir) \ -I$(top_srcdir)/extras/immodules/common \ -I$(top_srcdir)/extras/immodules/client-common noinst_HEADERS = ../scim-bridge-client-qt.h ../scim-bridge-client-imcontext-qt.h ../scim-bridge-client-key-event-utility-qt.h ../scim-bridge-client-common-qt.h moduledir = @QT3_IM_MODULEDIR@ module_LTLIBRARIES = im-scim.la im_scim_la_SOURCES = ../im-scim-bridge-qt.cpp \ ../scim-bridge-client-qt.cpp \ ../scim-bridge-client-imcontext-qt.cpp \ ../scim-bridge-client-key-event-utility-qt.cpp \ moc_scim-bridge-client-qt.cpp im_scim_la_CXXFLAGS=@QT3_CFLAGS@ -DQT_IMMODULE im_scim_la_CFLAGS =@QT3_CFLAGS@ -DQT_IMMODULE im_scim_la_LDFLAGS = -rpath $(moduledir) \ -avoid-version -no-undefined \ -module \ @QT3_LIBS@ im_scim_la_LIBADD = $(top_builddir)/extras/immodules/common/libscimbridgecommon.la \ $(top_builddir)/extras/immodules/client-common/libscimbridgeclientcommon.la MOC = @QT3_MOC@ moc_scim-bridge-client-qt.cpp: ../scim-bridge-client-qt.h $(MOC) $< -o $@ else moc_scim-bridge-client-qt.cpp: touch $@ endif dist-hook: -rm -f $(distdir)/moc_scim-bridge-client-qt.cpp MAINTAINERCLEANFILES = Makefile.in CLEANFILES = moc_scim-bridge-client-qt.cpp scim-1.4.14/extras/immodules/client-qt/qt3/Makefile.in000066400000000000000000000757741177210725600225500ustar00rootroot00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = extras/immodules/client-qt/qt3 DIST_COMMON = $(am__noinst_HEADERS_DIST) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(moduledir)" LTLIBRARIES = $(module_LTLIBRARIES) @SCIM_BUILD_QT3_IMMODULE_TRUE@im_scim_la_DEPENDENCIES = $(top_builddir)/extras/immodules/common/libscimbridgecommon.la \ @SCIM_BUILD_QT3_IMMODULE_TRUE@ $(top_builddir)/extras/immodules/client-common/libscimbridgeclientcommon.la am__im_scim_la_SOURCES_DIST = ../im-scim-bridge-qt.cpp \ ../scim-bridge-client-qt.cpp \ ../scim-bridge-client-imcontext-qt.cpp \ ../scim-bridge-client-key-event-utility-qt.cpp \ moc_scim-bridge-client-qt.cpp @SCIM_BUILD_QT3_IMMODULE_TRUE@am_im_scim_la_OBJECTS = \ @SCIM_BUILD_QT3_IMMODULE_TRUE@ im_scim_la-im-scim-bridge-qt.lo \ @SCIM_BUILD_QT3_IMMODULE_TRUE@ im_scim_la-scim-bridge-client-qt.lo \ @SCIM_BUILD_QT3_IMMODULE_TRUE@ im_scim_la-scim-bridge-client-imcontext-qt.lo \ @SCIM_BUILD_QT3_IMMODULE_TRUE@ im_scim_la-scim-bridge-client-key-event-utility-qt.lo \ @SCIM_BUILD_QT3_IMMODULE_TRUE@ im_scim_la-moc_scim-bridge-client-qt.lo im_scim_la_OBJECTS = $(am_im_scim_la_OBJECTS) im_scim_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(im_scim_la_CXXFLAGS) \ $(CXXFLAGS) $(im_scim_la_LDFLAGS) $(LDFLAGS) -o $@ @SCIM_BUILD_QT3_IMMODULE_TRUE@am_im_scim_la_rpath = -rpath \ @SCIM_BUILD_QT3_IMMODULE_TRUE@ $(moduledir) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(im_scim_la_SOURCES) DIST_SOURCES = $(am__im_scim_la_SOURCES_DIST) am__noinst_HEADERS_DIST = ../scim-bridge-client-qt.h \ ../scim-bridge-client-imcontext-qt.h \ ../scim-bridge-client-key-event-utility-qt.h \ ../scim-bridge-client-common-qt.h HEADERS = $(noinst_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ ARGZ_H = @ARGZ_H@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CLUTTER_BINARY_VERSION = @CLUTTER_BINARY_VERSION@ CLUTTER_CFLAGS = @CLUTTER_CFLAGS@ CLUTTER_IMCONTEXT_LIBDIR = @CLUTTER_IMCONTEXT_LIBDIR@ CLUTTER_IM_MODULEDIR = @CLUTTER_IM_MODULEDIR@ CLUTTER_LIBDIR = @CLUTTER_LIBDIR@ CLUTTER_LIBS = @CLUTTER_LIBS@ CLUTTER_VERSION = @CLUTTER_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOCBOOK_XSL = @DOCBOOK_XSL@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@ GTHREAD2_LIBS = @GTHREAD2_LIBS@ GTK2_CFLAGS = @GTK2_CFLAGS@ GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@ GTK2_LIBS = @GTK2_LIBS@ GTK3_CFLAGS = @GTK3_CFLAGS@ GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@ GTK3_LIBS = @GTK3_LIBS@ GTK_BINARY_VERSION = @GTK_BINARY_VERSION@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBDIR = @GTK_LIBDIR@ GTK_LIBS = @GTK_LIBS@ GTK_MAJOR_VERSION = @GTK_MAJOR_VERSION@ GTK_VERSION = @GTK_VERSION@ HAVE_GRAPHVIZ = @HAVE_GRAPHVIZ@ INCLTDL = @INCLTDL@ INCLUDE_STDINT = @INCLUDE_STDINT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBLTDL = @LIBLTDL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_DEPS = @LIBTOOL_DEPS@ LIBTOOL_EXPORT_OPTIONS = @LIBTOOL_EXPORT_OPTIONS@ LIPO = @LIPO@ LN_S = @LN_S@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ QT3_CFLAGS = @QT3_CFLAGS@ QT3_IM_MODULEDIR = @QT3_IM_MODULEDIR@ QT3_LIBDIR = @QT3_LIBDIR@ QT3_LIBS = @QT3_LIBS@ QT3_MOC = @QT3_MOC@ QT3_PREFIX = @QT3_PREFIX@ QT4_CFLAGS = @QT4_CFLAGS@ QT4_IM_MODULEDIR = @QT4_IM_MODULEDIR@ QT4_LIBDIR = @QT4_LIBDIR@ QT4_LIBS = @QT4_LIBS@ QT4_MOC = @QT4_MOC@ QT4_PREFIX = @QT4_PREFIX@ RANLIB = @RANLIB@ SCIM_AGE = @SCIM_AGE@ SCIM_BINARY_VERSION = @SCIM_BINARY_VERSION@ SCIM_BRIDGE_MAJOR_VERSION = @SCIM_BRIDGE_MAJOR_VERSION@ SCIM_BRIDGE_MICRO_VERSION = @SCIM_BRIDGE_MICRO_VERSION@ SCIM_BRIDGE_MINOR_VERSION = @SCIM_BRIDGE_MINOR_VERSION@ SCIM_BRIDGE_VERSION = @SCIM_BRIDGE_VERSION@ SCIM_BUILD_CLUTTER_IMMODULE = @SCIM_BUILD_CLUTTER_IMMODULE@ SCIM_BUILD_CONFIG_SIMPLE = @SCIM_BUILD_CONFIG_SIMPLE@ SCIM_BUILD_CONFIG_SOCKET = @SCIM_BUILD_CONFIG_SOCKET@ SCIM_BUILD_DOCUMENTS = @SCIM_BUILD_DOCUMENTS@ SCIM_BUILD_FILTER_SCTC = @SCIM_BUILD_FILTER_SCTC@ SCIM_BUILD_FRONTEND_SOCKET = @SCIM_BUILD_FRONTEND_SOCKET@ SCIM_BUILD_FRONTEND_X11 = @SCIM_BUILD_FRONTEND_X11@ SCIM_BUILD_GTK2_IMMODULE = @SCIM_BUILD_GTK2_IMMODULE@ SCIM_BUILD_GTK3_IMMODULE = @SCIM_BUILD_GTK3_IMMODULE@ SCIM_BUILD_GTK_UTILS = @SCIM_BUILD_GTK_UTILS@ SCIM_BUILD_IMENGINE_RAWCODE = @SCIM_BUILD_IMENGINE_RAWCODE@ SCIM_BUILD_IMENGINE_SOCKET = @SCIM_BUILD_IMENGINE_SOCKET@ SCIM_BUILD_IMENGINE_TABLE = @SCIM_BUILD_IMENGINE_TABLE@ SCIM_BUILD_IMMODULE = @SCIM_BUILD_IMMODULE@ SCIM_BUILD_IM_AGENT = @SCIM_BUILD_IM_AGENT@ SCIM_BUILD_ORIG_GTK2_IMMODULE = @SCIM_BUILD_ORIG_GTK2_IMMODULE@ SCIM_BUILD_ORIG_GTK3_IMMODULE = @SCIM_BUILD_ORIG_GTK3_IMMODULE@ SCIM_BUILD_PANEL_GTK = @SCIM_BUILD_PANEL_GTK@ SCIM_BUILD_QT3_IMMODULE = @SCIM_BUILD_QT3_IMMODULE@ SCIM_BUILD_QT4_IMMODULE = @SCIM_BUILD_QT4_IMMODULE@ SCIM_BUILD_SCIM_SETUP = @SCIM_BUILD_SCIM_SETUP@ SCIM_BUILD_TESTS = @SCIM_BUILD_TESTS@ SCIM_BUILD_X11_UTILS = @SCIM_BUILD_X11_UTILS@ SCIM_CURRENT = @SCIM_CURRENT@ SCIM_DATADIR = @SCIM_DATADIR@ SCIM_EPOCH = @SCIM_EPOCH@ SCIM_ICONDIR = @SCIM_ICONDIR@ SCIM_LIBDIR = @SCIM_LIBDIR@ SCIM_LIBEXECDIR = @SCIM_LIBEXECDIR@ SCIM_LOCALEDIR = @SCIM_LOCALEDIR@ SCIM_LTDLADVISE = @SCIM_LTDLADVISE@ SCIM_MAJOR_VERSION = @SCIM_MAJOR_VERSION@ SCIM_MICRO_VERSION = @SCIM_MICRO_VERSION@ SCIM_MINOR_VERSION = @SCIM_MINOR_VERSION@ SCIM_MODULE_PATH = @SCIM_MODULE_PATH@ SCIM_PREFIX = @SCIM_PREFIX@ SCIM_REVISION = @SCIM_REVISION@ SCIM_SYSCONFDIR = @SCIM_SYSCONFDIR@ SCIM_TEMPDIR = @SCIM_TEMPDIR@ SCIM_VERSION = @SCIM_VERSION@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UINT16 = @UINT16@ UINT32 = @UINT32@ UINT64 = @UINT64@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XMKMF = @XMKMF@ XSLTPROC = @XSLTPROC@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_aux_dir = @ac_aux_dir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @SCIM_BUILD_QT3_IMMODULE_TRUE@INCLUDES = -I$(top_builddir) \ @SCIM_BUILD_QT3_IMMODULE_TRUE@ -I$(top_srcdir) \ @SCIM_BUILD_QT3_IMMODULE_TRUE@ -I$(top_srcdir)/extras/immodules/common \ @SCIM_BUILD_QT3_IMMODULE_TRUE@ -I$(top_srcdir)/extras/immodules/client-common @SCIM_BUILD_QT3_IMMODULE_TRUE@noinst_HEADERS = ../scim-bridge-client-qt.h ../scim-bridge-client-imcontext-qt.h ../scim-bridge-client-key-event-utility-qt.h ../scim-bridge-client-common-qt.h @SCIM_BUILD_QT3_IMMODULE_TRUE@moduledir = @QT3_IM_MODULEDIR@ @SCIM_BUILD_QT3_IMMODULE_TRUE@module_LTLIBRARIES = im-scim.la @SCIM_BUILD_QT3_IMMODULE_TRUE@im_scim_la_SOURCES = ../im-scim-bridge-qt.cpp \ @SCIM_BUILD_QT3_IMMODULE_TRUE@ ../scim-bridge-client-qt.cpp \ @SCIM_BUILD_QT3_IMMODULE_TRUE@ ../scim-bridge-client-imcontext-qt.cpp \ @SCIM_BUILD_QT3_IMMODULE_TRUE@ ../scim-bridge-client-key-event-utility-qt.cpp \ @SCIM_BUILD_QT3_IMMODULE_TRUE@ moc_scim-bridge-client-qt.cpp @SCIM_BUILD_QT3_IMMODULE_TRUE@im_scim_la_CXXFLAGS = @QT3_CFLAGS@ -DQT_IMMODULE @SCIM_BUILD_QT3_IMMODULE_TRUE@im_scim_la_CFLAGS = @QT3_CFLAGS@ -DQT_IMMODULE @SCIM_BUILD_QT3_IMMODULE_TRUE@im_scim_la_LDFLAGS = -rpath $(moduledir) \ @SCIM_BUILD_QT3_IMMODULE_TRUE@ -avoid-version -no-undefined \ @SCIM_BUILD_QT3_IMMODULE_TRUE@ -module \ @SCIM_BUILD_QT3_IMMODULE_TRUE@ @QT3_LIBS@ @SCIM_BUILD_QT3_IMMODULE_TRUE@im_scim_la_LIBADD = $(top_builddir)/extras/immodules/common/libscimbridgecommon.la \ @SCIM_BUILD_QT3_IMMODULE_TRUE@ $(top_builddir)/extras/immodules/client-common/libscimbridgeclientcommon.la @SCIM_BUILD_QT3_IMMODULE_TRUE@MOC = @QT3_MOC@ MAINTAINERCLEANFILES = Makefile.in CLEANFILES = moc_scim-bridge-client-qt.cpp all: all-am .SUFFIXES: .SUFFIXES: .cpp .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu extras/immodules/client-qt/qt3/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu extras/immodules/client-qt/qt3/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-moduleLTLIBRARIES: $(module_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(moduledir)" || $(MKDIR_P) "$(DESTDIR)$(moduledir)" @list='$(module_LTLIBRARIES)'; test -n "$(moduledir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(moduledir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(moduledir)"; \ } uninstall-moduleLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(module_LTLIBRARIES)'; test -n "$(moduledir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(moduledir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(moduledir)/$$f"; \ done clean-moduleLTLIBRARIES: -test -z "$(module_LTLIBRARIES)" || rm -f $(module_LTLIBRARIES) @list='$(module_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done im-scim.la: $(im_scim_la_OBJECTS) $(im_scim_la_DEPENDENCIES) $(im_scim_la_LINK) $(am_im_scim_la_rpath) $(im_scim_la_OBJECTS) $(im_scim_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/im_scim_la-im-scim-bridge-qt.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/im_scim_la-moc_scim-bridge-client-qt.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/im_scim_la-scim-bridge-client-imcontext-qt.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/im_scim_la-scim-bridge-client-key-event-utility-qt.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/im_scim_la-scim-bridge-client-qt.Plo@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cpp.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cpp.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< im_scim_la-im-scim-bridge-qt.lo: ../im-scim-bridge-qt.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(im_scim_la_CXXFLAGS) $(CXXFLAGS) -MT im_scim_la-im-scim-bridge-qt.lo -MD -MP -MF $(DEPDIR)/im_scim_la-im-scim-bridge-qt.Tpo -c -o im_scim_la-im-scim-bridge-qt.lo `test -f '../im-scim-bridge-qt.cpp' || echo '$(srcdir)/'`../im-scim-bridge-qt.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/im_scim_la-im-scim-bridge-qt.Tpo $(DEPDIR)/im_scim_la-im-scim-bridge-qt.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../im-scim-bridge-qt.cpp' object='im_scim_la-im-scim-bridge-qt.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(im_scim_la_CXXFLAGS) $(CXXFLAGS) -c -o im_scim_la-im-scim-bridge-qt.lo `test -f '../im-scim-bridge-qt.cpp' || echo '$(srcdir)/'`../im-scim-bridge-qt.cpp im_scim_la-scim-bridge-client-qt.lo: ../scim-bridge-client-qt.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(im_scim_la_CXXFLAGS) $(CXXFLAGS) -MT im_scim_la-scim-bridge-client-qt.lo -MD -MP -MF $(DEPDIR)/im_scim_la-scim-bridge-client-qt.Tpo -c -o im_scim_la-scim-bridge-client-qt.lo `test -f '../scim-bridge-client-qt.cpp' || echo '$(srcdir)/'`../scim-bridge-client-qt.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/im_scim_la-scim-bridge-client-qt.Tpo $(DEPDIR)/im_scim_la-scim-bridge-client-qt.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../scim-bridge-client-qt.cpp' object='im_scim_la-scim-bridge-client-qt.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(im_scim_la_CXXFLAGS) $(CXXFLAGS) -c -o im_scim_la-scim-bridge-client-qt.lo `test -f '../scim-bridge-client-qt.cpp' || echo '$(srcdir)/'`../scim-bridge-client-qt.cpp im_scim_la-scim-bridge-client-imcontext-qt.lo: ../scim-bridge-client-imcontext-qt.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(im_scim_la_CXXFLAGS) $(CXXFLAGS) -MT im_scim_la-scim-bridge-client-imcontext-qt.lo -MD -MP -MF $(DEPDIR)/im_scim_la-scim-bridge-client-imcontext-qt.Tpo -c -o im_scim_la-scim-bridge-client-imcontext-qt.lo `test -f '../scim-bridge-client-imcontext-qt.cpp' || echo '$(srcdir)/'`../scim-bridge-client-imcontext-qt.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/im_scim_la-scim-bridge-client-imcontext-qt.Tpo $(DEPDIR)/im_scim_la-scim-bridge-client-imcontext-qt.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../scim-bridge-client-imcontext-qt.cpp' object='im_scim_la-scim-bridge-client-imcontext-qt.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(im_scim_la_CXXFLAGS) $(CXXFLAGS) -c -o im_scim_la-scim-bridge-client-imcontext-qt.lo `test -f '../scim-bridge-client-imcontext-qt.cpp' || echo '$(srcdir)/'`../scim-bridge-client-imcontext-qt.cpp im_scim_la-scim-bridge-client-key-event-utility-qt.lo: ../scim-bridge-client-key-event-utility-qt.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(im_scim_la_CXXFLAGS) $(CXXFLAGS) -MT im_scim_la-scim-bridge-client-key-event-utility-qt.lo -MD -MP -MF $(DEPDIR)/im_scim_la-scim-bridge-client-key-event-utility-qt.Tpo -c -o im_scim_la-scim-bridge-client-key-event-utility-qt.lo `test -f '../scim-bridge-client-key-event-utility-qt.cpp' || echo '$(srcdir)/'`../scim-bridge-client-key-event-utility-qt.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/im_scim_la-scim-bridge-client-key-event-utility-qt.Tpo $(DEPDIR)/im_scim_la-scim-bridge-client-key-event-utility-qt.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../scim-bridge-client-key-event-utility-qt.cpp' object='im_scim_la-scim-bridge-client-key-event-utility-qt.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(im_scim_la_CXXFLAGS) $(CXXFLAGS) -c -o im_scim_la-scim-bridge-client-key-event-utility-qt.lo `test -f '../scim-bridge-client-key-event-utility-qt.cpp' || echo '$(srcdir)/'`../scim-bridge-client-key-event-utility-qt.cpp im_scim_la-moc_scim-bridge-client-qt.lo: moc_scim-bridge-client-qt.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(im_scim_la_CXXFLAGS) $(CXXFLAGS) -MT im_scim_la-moc_scim-bridge-client-qt.lo -MD -MP -MF $(DEPDIR)/im_scim_la-moc_scim-bridge-client-qt.Tpo -c -o im_scim_la-moc_scim-bridge-client-qt.lo `test -f 'moc_scim-bridge-client-qt.cpp' || echo '$(srcdir)/'`moc_scim-bridge-client-qt.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/im_scim_la-moc_scim-bridge-client-qt.Tpo $(DEPDIR)/im_scim_la-moc_scim-bridge-client-qt.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_scim-bridge-client-qt.cpp' object='im_scim_la-moc_scim-bridge-client-qt.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(im_scim_la_CXXFLAGS) $(CXXFLAGS) -c -o im_scim_la-moc_scim-bridge-client-qt.lo `test -f 'moc_scim-bridge-client-qt.cpp' || echo '$(srcdir)/'`moc_scim-bridge-client-qt.cpp mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" distdir="$(distdir)" \ dist-hook check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: for dir in "$(DESTDIR)$(moduledir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic clean-libtool clean-moduleLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-moduleLTLIBRARIES install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-moduleLTLIBRARIES .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-moduleLTLIBRARIES ctags dist-hook \ distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-moduleLTLIBRARIES \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am \ uninstall-moduleLTLIBRARIES @SCIM_BUILD_QT3_IMMODULE_TRUE@moc_scim-bridge-client-qt.cpp: ../scim-bridge-client-qt.h @SCIM_BUILD_QT3_IMMODULE_TRUE@ $(MOC) $< -o $@ @SCIM_BUILD_QT3_IMMODULE_FALSE@moc_scim-bridge-client-qt.cpp: @SCIM_BUILD_QT3_IMMODULE_FALSE@ touch $@ dist-hook: -rm -f $(distdir)/moc_scim-bridge-client-qt.cpp # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: scim-1.4.14/extras/immodules/client-qt/qt4/000077500000000000000000000000001177210725600204605ustar00rootroot00000000000000scim-1.4.14/extras/immodules/client-qt/qt4/Makefile.am000066400000000000000000000041301177210725600225120ustar00rootroot00000000000000## Makefile.am -- Process this file with automake to produce Makefile.in ## ## Copyright (C) 2006 Ryo Dairiki ## ## ## This library is free software; you can redistribute it and/or ## modify it under the terms of the GNU Lesser General Public ## License as published by the Free Software Foundation and ## appearing in the file LICENSE.LGPL included in the package of this file. ## You can also redistribute it and/or modify it under the terms of ## the GNU General Public License as published by the Free Software Foundation and ## appearing in the file LICENSE.GPL included in the package of this file. ## ## This library is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. if SCIM_BUILD_QT4_IMMODULE INCLUDES = -I$(top_builddir) \ -I$(top_srcdir) \ -I$(top_srcdir)/extras/immodules/common \ -I$(top_srcdir)/extras/immodules/client-common noinst_HEADERS = ../scim-bridge-client-qt.h ../scim-bridge-client-imcontext-qt.h ../scim-bridge-client-key-event-utility-qt.h ../scim-bridge-client-common-qt.h moduledir = @QT4_IM_MODULEDIR@ module_LTLIBRARIES = im-scim.la im_scim_la_SOURCES = ../im-scim-bridge-qt.cpp \ ../scim-bridge-client-qt.cpp \ ../scim-bridge-client-imcontext-qt.cpp \ ../scim-bridge-client-key-event-utility-qt.cpp \ moc_scim-bridge-client-qt.cpp im_scim_la_CXXFLAGS=@QT4_CFLAGS@ -DQT_IMMODULE -DQT4 -g -O0 im_scim_la_CFLAGS =@QT4_CFLAGS@ -DQT_IMMODULE -DQT4 -g -O0 im_scim_la_LDFLAGS = -rpath $(moduledir) \ -avoid-version -no-undefined \ -module \ @QT4_LIBS@ im_scim_la_LIBADD = $(top_builddir)/extras/immodules/common/libscimbridgecommon.la \ $(top_builddir)/extras/immodules/client-common/libscimbridgeclientcommon.la MOC = @QT4_MOC@ moc_scim-bridge-client-qt.cpp: ../scim-bridge-client-qt.h $(MOC) $< -o $@ else moc_scim-bridge-client-qt.cpp: touch $@ endif dist-hook: -rm -f $(distdir)/moc_scim-bridge-client-qt.cpp MAINTAINERCLEANFILES = Makefile.in CLEANFILES = moc_scim-bridge-client-qt.cpp scim-1.4.14/extras/immodules/client-qt/qt4/Makefile.in000066400000000000000000000760251177210725600225370ustar00rootroot00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = extras/immodules/client-qt/qt4 DIST_COMMON = $(am__noinst_HEADERS_DIST) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(moduledir)" LTLIBRARIES = $(module_LTLIBRARIES) @SCIM_BUILD_QT4_IMMODULE_TRUE@im_scim_la_DEPENDENCIES = $(top_builddir)/extras/immodules/common/libscimbridgecommon.la \ @SCIM_BUILD_QT4_IMMODULE_TRUE@ $(top_builddir)/extras/immodules/client-common/libscimbridgeclientcommon.la am__im_scim_la_SOURCES_DIST = ../im-scim-bridge-qt.cpp \ ../scim-bridge-client-qt.cpp \ ../scim-bridge-client-imcontext-qt.cpp \ ../scim-bridge-client-key-event-utility-qt.cpp \ moc_scim-bridge-client-qt.cpp @SCIM_BUILD_QT4_IMMODULE_TRUE@am_im_scim_la_OBJECTS = \ @SCIM_BUILD_QT4_IMMODULE_TRUE@ im_scim_la-im-scim-bridge-qt.lo \ @SCIM_BUILD_QT4_IMMODULE_TRUE@ im_scim_la-scim-bridge-client-qt.lo \ @SCIM_BUILD_QT4_IMMODULE_TRUE@ im_scim_la-scim-bridge-client-imcontext-qt.lo \ @SCIM_BUILD_QT4_IMMODULE_TRUE@ im_scim_la-scim-bridge-client-key-event-utility-qt.lo \ @SCIM_BUILD_QT4_IMMODULE_TRUE@ im_scim_la-moc_scim-bridge-client-qt.lo im_scim_la_OBJECTS = $(am_im_scim_la_OBJECTS) im_scim_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(im_scim_la_CXXFLAGS) \ $(CXXFLAGS) $(im_scim_la_LDFLAGS) $(LDFLAGS) -o $@ @SCIM_BUILD_QT4_IMMODULE_TRUE@am_im_scim_la_rpath = -rpath \ @SCIM_BUILD_QT4_IMMODULE_TRUE@ $(moduledir) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(im_scim_la_SOURCES) DIST_SOURCES = $(am__im_scim_la_SOURCES_DIST) am__noinst_HEADERS_DIST = ../scim-bridge-client-qt.h \ ../scim-bridge-client-imcontext-qt.h \ ../scim-bridge-client-key-event-utility-qt.h \ ../scim-bridge-client-common-qt.h HEADERS = $(noinst_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ ARGZ_H = @ARGZ_H@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CLUTTER_BINARY_VERSION = @CLUTTER_BINARY_VERSION@ CLUTTER_CFLAGS = @CLUTTER_CFLAGS@ CLUTTER_IMCONTEXT_LIBDIR = @CLUTTER_IMCONTEXT_LIBDIR@ CLUTTER_IM_MODULEDIR = @CLUTTER_IM_MODULEDIR@ CLUTTER_LIBDIR = @CLUTTER_LIBDIR@ CLUTTER_LIBS = @CLUTTER_LIBS@ CLUTTER_VERSION = @CLUTTER_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOCBOOK_XSL = @DOCBOOK_XSL@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@ GTHREAD2_LIBS = @GTHREAD2_LIBS@ GTK2_CFLAGS = @GTK2_CFLAGS@ GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@ GTK2_LIBS = @GTK2_LIBS@ GTK3_CFLAGS = @GTK3_CFLAGS@ GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@ GTK3_LIBS = @GTK3_LIBS@ GTK_BINARY_VERSION = @GTK_BINARY_VERSION@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBDIR = @GTK_LIBDIR@ GTK_LIBS = @GTK_LIBS@ GTK_MAJOR_VERSION = @GTK_MAJOR_VERSION@ GTK_VERSION = @GTK_VERSION@ HAVE_GRAPHVIZ = @HAVE_GRAPHVIZ@ INCLTDL = @INCLTDL@ INCLUDE_STDINT = @INCLUDE_STDINT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBLTDL = @LIBLTDL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_DEPS = @LIBTOOL_DEPS@ LIBTOOL_EXPORT_OPTIONS = @LIBTOOL_EXPORT_OPTIONS@ LIPO = @LIPO@ LN_S = @LN_S@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ QT3_CFLAGS = @QT3_CFLAGS@ QT3_IM_MODULEDIR = @QT3_IM_MODULEDIR@ QT3_LIBDIR = @QT3_LIBDIR@ QT3_LIBS = @QT3_LIBS@ QT3_MOC = @QT3_MOC@ QT3_PREFIX = @QT3_PREFIX@ QT4_CFLAGS = @QT4_CFLAGS@ QT4_IM_MODULEDIR = @QT4_IM_MODULEDIR@ QT4_LIBDIR = @QT4_LIBDIR@ QT4_LIBS = @QT4_LIBS@ QT4_MOC = @QT4_MOC@ QT4_PREFIX = @QT4_PREFIX@ RANLIB = @RANLIB@ SCIM_AGE = @SCIM_AGE@ SCIM_BINARY_VERSION = @SCIM_BINARY_VERSION@ SCIM_BRIDGE_MAJOR_VERSION = @SCIM_BRIDGE_MAJOR_VERSION@ SCIM_BRIDGE_MICRO_VERSION = @SCIM_BRIDGE_MICRO_VERSION@ SCIM_BRIDGE_MINOR_VERSION = @SCIM_BRIDGE_MINOR_VERSION@ SCIM_BRIDGE_VERSION = @SCIM_BRIDGE_VERSION@ SCIM_BUILD_CLUTTER_IMMODULE = @SCIM_BUILD_CLUTTER_IMMODULE@ SCIM_BUILD_CONFIG_SIMPLE = @SCIM_BUILD_CONFIG_SIMPLE@ SCIM_BUILD_CONFIG_SOCKET = @SCIM_BUILD_CONFIG_SOCKET@ SCIM_BUILD_DOCUMENTS = @SCIM_BUILD_DOCUMENTS@ SCIM_BUILD_FILTER_SCTC = @SCIM_BUILD_FILTER_SCTC@ SCIM_BUILD_FRONTEND_SOCKET = @SCIM_BUILD_FRONTEND_SOCKET@ SCIM_BUILD_FRONTEND_X11 = @SCIM_BUILD_FRONTEND_X11@ SCIM_BUILD_GTK2_IMMODULE = @SCIM_BUILD_GTK2_IMMODULE@ SCIM_BUILD_GTK3_IMMODULE = @SCIM_BUILD_GTK3_IMMODULE@ SCIM_BUILD_GTK_UTILS = @SCIM_BUILD_GTK_UTILS@ SCIM_BUILD_IMENGINE_RAWCODE = @SCIM_BUILD_IMENGINE_RAWCODE@ SCIM_BUILD_IMENGINE_SOCKET = @SCIM_BUILD_IMENGINE_SOCKET@ SCIM_BUILD_IMENGINE_TABLE = @SCIM_BUILD_IMENGINE_TABLE@ SCIM_BUILD_IMMODULE = @SCIM_BUILD_IMMODULE@ SCIM_BUILD_IM_AGENT = @SCIM_BUILD_IM_AGENT@ SCIM_BUILD_ORIG_GTK2_IMMODULE = @SCIM_BUILD_ORIG_GTK2_IMMODULE@ SCIM_BUILD_ORIG_GTK3_IMMODULE = @SCIM_BUILD_ORIG_GTK3_IMMODULE@ SCIM_BUILD_PANEL_GTK = @SCIM_BUILD_PANEL_GTK@ SCIM_BUILD_QT3_IMMODULE = @SCIM_BUILD_QT3_IMMODULE@ SCIM_BUILD_QT4_IMMODULE = @SCIM_BUILD_QT4_IMMODULE@ SCIM_BUILD_SCIM_SETUP = @SCIM_BUILD_SCIM_SETUP@ SCIM_BUILD_TESTS = @SCIM_BUILD_TESTS@ SCIM_BUILD_X11_UTILS = @SCIM_BUILD_X11_UTILS@ SCIM_CURRENT = @SCIM_CURRENT@ SCIM_DATADIR = @SCIM_DATADIR@ SCIM_EPOCH = @SCIM_EPOCH@ SCIM_ICONDIR = @SCIM_ICONDIR@ SCIM_LIBDIR = @SCIM_LIBDIR@ SCIM_LIBEXECDIR = @SCIM_LIBEXECDIR@ SCIM_LOCALEDIR = @SCIM_LOCALEDIR@ SCIM_LTDLADVISE = @SCIM_LTDLADVISE@ SCIM_MAJOR_VERSION = @SCIM_MAJOR_VERSION@ SCIM_MICRO_VERSION = @SCIM_MICRO_VERSION@ SCIM_MINOR_VERSION = @SCIM_MINOR_VERSION@ SCIM_MODULE_PATH = @SCIM_MODULE_PATH@ SCIM_PREFIX = @SCIM_PREFIX@ SCIM_REVISION = @SCIM_REVISION@ SCIM_SYSCONFDIR = @SCIM_SYSCONFDIR@ SCIM_TEMPDIR = @SCIM_TEMPDIR@ SCIM_VERSION = @SCIM_VERSION@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UINT16 = @UINT16@ UINT32 = @UINT32@ UINT64 = @UINT64@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XMKMF = @XMKMF@ XSLTPROC = @XSLTPROC@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_aux_dir = @ac_aux_dir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @SCIM_BUILD_QT4_IMMODULE_TRUE@INCLUDES = -I$(top_builddir) \ @SCIM_BUILD_QT4_IMMODULE_TRUE@ -I$(top_srcdir) \ @SCIM_BUILD_QT4_IMMODULE_TRUE@ -I$(top_srcdir)/extras/immodules/common \ @SCIM_BUILD_QT4_IMMODULE_TRUE@ -I$(top_srcdir)/extras/immodules/client-common @SCIM_BUILD_QT4_IMMODULE_TRUE@noinst_HEADERS = ../scim-bridge-client-qt.h ../scim-bridge-client-imcontext-qt.h ../scim-bridge-client-key-event-utility-qt.h ../scim-bridge-client-common-qt.h @SCIM_BUILD_QT4_IMMODULE_TRUE@moduledir = @QT4_IM_MODULEDIR@ @SCIM_BUILD_QT4_IMMODULE_TRUE@module_LTLIBRARIES = im-scim.la @SCIM_BUILD_QT4_IMMODULE_TRUE@im_scim_la_SOURCES = ../im-scim-bridge-qt.cpp \ @SCIM_BUILD_QT4_IMMODULE_TRUE@ ../scim-bridge-client-qt.cpp \ @SCIM_BUILD_QT4_IMMODULE_TRUE@ ../scim-bridge-client-imcontext-qt.cpp \ @SCIM_BUILD_QT4_IMMODULE_TRUE@ ../scim-bridge-client-key-event-utility-qt.cpp \ @SCIM_BUILD_QT4_IMMODULE_TRUE@ moc_scim-bridge-client-qt.cpp @SCIM_BUILD_QT4_IMMODULE_TRUE@im_scim_la_CXXFLAGS = @QT4_CFLAGS@ -DQT_IMMODULE -DQT4 -g -O0 @SCIM_BUILD_QT4_IMMODULE_TRUE@im_scim_la_CFLAGS = @QT4_CFLAGS@ -DQT_IMMODULE -DQT4 -g -O0 @SCIM_BUILD_QT4_IMMODULE_TRUE@im_scim_la_LDFLAGS = -rpath $(moduledir) \ @SCIM_BUILD_QT4_IMMODULE_TRUE@ -avoid-version -no-undefined \ @SCIM_BUILD_QT4_IMMODULE_TRUE@ -module \ @SCIM_BUILD_QT4_IMMODULE_TRUE@ @QT4_LIBS@ @SCIM_BUILD_QT4_IMMODULE_TRUE@im_scim_la_LIBADD = $(top_builddir)/extras/immodules/common/libscimbridgecommon.la \ @SCIM_BUILD_QT4_IMMODULE_TRUE@ $(top_builddir)/extras/immodules/client-common/libscimbridgeclientcommon.la @SCIM_BUILD_QT4_IMMODULE_TRUE@MOC = @QT4_MOC@ MAINTAINERCLEANFILES = Makefile.in CLEANFILES = moc_scim-bridge-client-qt.cpp all: all-am .SUFFIXES: .SUFFIXES: .cpp .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu extras/immodules/client-qt/qt4/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu extras/immodules/client-qt/qt4/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-moduleLTLIBRARIES: $(module_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(moduledir)" || $(MKDIR_P) "$(DESTDIR)$(moduledir)" @list='$(module_LTLIBRARIES)'; test -n "$(moduledir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(moduledir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(moduledir)"; \ } uninstall-moduleLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(module_LTLIBRARIES)'; test -n "$(moduledir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(moduledir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(moduledir)/$$f"; \ done clean-moduleLTLIBRARIES: -test -z "$(module_LTLIBRARIES)" || rm -f $(module_LTLIBRARIES) @list='$(module_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done im-scim.la: $(im_scim_la_OBJECTS) $(im_scim_la_DEPENDENCIES) $(im_scim_la_LINK) $(am_im_scim_la_rpath) $(im_scim_la_OBJECTS) $(im_scim_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/im_scim_la-im-scim-bridge-qt.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/im_scim_la-moc_scim-bridge-client-qt.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/im_scim_la-scim-bridge-client-imcontext-qt.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/im_scim_la-scim-bridge-client-key-event-utility-qt.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/im_scim_la-scim-bridge-client-qt.Plo@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cpp.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cpp.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< im_scim_la-im-scim-bridge-qt.lo: ../im-scim-bridge-qt.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(im_scim_la_CXXFLAGS) $(CXXFLAGS) -MT im_scim_la-im-scim-bridge-qt.lo -MD -MP -MF $(DEPDIR)/im_scim_la-im-scim-bridge-qt.Tpo -c -o im_scim_la-im-scim-bridge-qt.lo `test -f '../im-scim-bridge-qt.cpp' || echo '$(srcdir)/'`../im-scim-bridge-qt.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/im_scim_la-im-scim-bridge-qt.Tpo $(DEPDIR)/im_scim_la-im-scim-bridge-qt.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../im-scim-bridge-qt.cpp' object='im_scim_la-im-scim-bridge-qt.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(im_scim_la_CXXFLAGS) $(CXXFLAGS) -c -o im_scim_la-im-scim-bridge-qt.lo `test -f '../im-scim-bridge-qt.cpp' || echo '$(srcdir)/'`../im-scim-bridge-qt.cpp im_scim_la-scim-bridge-client-qt.lo: ../scim-bridge-client-qt.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(im_scim_la_CXXFLAGS) $(CXXFLAGS) -MT im_scim_la-scim-bridge-client-qt.lo -MD -MP -MF $(DEPDIR)/im_scim_la-scim-bridge-client-qt.Tpo -c -o im_scim_la-scim-bridge-client-qt.lo `test -f '../scim-bridge-client-qt.cpp' || echo '$(srcdir)/'`../scim-bridge-client-qt.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/im_scim_la-scim-bridge-client-qt.Tpo $(DEPDIR)/im_scim_la-scim-bridge-client-qt.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../scim-bridge-client-qt.cpp' object='im_scim_la-scim-bridge-client-qt.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(im_scim_la_CXXFLAGS) $(CXXFLAGS) -c -o im_scim_la-scim-bridge-client-qt.lo `test -f '../scim-bridge-client-qt.cpp' || echo '$(srcdir)/'`../scim-bridge-client-qt.cpp im_scim_la-scim-bridge-client-imcontext-qt.lo: ../scim-bridge-client-imcontext-qt.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(im_scim_la_CXXFLAGS) $(CXXFLAGS) -MT im_scim_la-scim-bridge-client-imcontext-qt.lo -MD -MP -MF $(DEPDIR)/im_scim_la-scim-bridge-client-imcontext-qt.Tpo -c -o im_scim_la-scim-bridge-client-imcontext-qt.lo `test -f '../scim-bridge-client-imcontext-qt.cpp' || echo '$(srcdir)/'`../scim-bridge-client-imcontext-qt.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/im_scim_la-scim-bridge-client-imcontext-qt.Tpo $(DEPDIR)/im_scim_la-scim-bridge-client-imcontext-qt.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../scim-bridge-client-imcontext-qt.cpp' object='im_scim_la-scim-bridge-client-imcontext-qt.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(im_scim_la_CXXFLAGS) $(CXXFLAGS) -c -o im_scim_la-scim-bridge-client-imcontext-qt.lo `test -f '../scim-bridge-client-imcontext-qt.cpp' || echo '$(srcdir)/'`../scim-bridge-client-imcontext-qt.cpp im_scim_la-scim-bridge-client-key-event-utility-qt.lo: ../scim-bridge-client-key-event-utility-qt.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(im_scim_la_CXXFLAGS) $(CXXFLAGS) -MT im_scim_la-scim-bridge-client-key-event-utility-qt.lo -MD -MP -MF $(DEPDIR)/im_scim_la-scim-bridge-client-key-event-utility-qt.Tpo -c -o im_scim_la-scim-bridge-client-key-event-utility-qt.lo `test -f '../scim-bridge-client-key-event-utility-qt.cpp' || echo '$(srcdir)/'`../scim-bridge-client-key-event-utility-qt.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/im_scim_la-scim-bridge-client-key-event-utility-qt.Tpo $(DEPDIR)/im_scim_la-scim-bridge-client-key-event-utility-qt.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../scim-bridge-client-key-event-utility-qt.cpp' object='im_scim_la-scim-bridge-client-key-event-utility-qt.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(im_scim_la_CXXFLAGS) $(CXXFLAGS) -c -o im_scim_la-scim-bridge-client-key-event-utility-qt.lo `test -f '../scim-bridge-client-key-event-utility-qt.cpp' || echo '$(srcdir)/'`../scim-bridge-client-key-event-utility-qt.cpp im_scim_la-moc_scim-bridge-client-qt.lo: moc_scim-bridge-client-qt.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(im_scim_la_CXXFLAGS) $(CXXFLAGS) -MT im_scim_la-moc_scim-bridge-client-qt.lo -MD -MP -MF $(DEPDIR)/im_scim_la-moc_scim-bridge-client-qt.Tpo -c -o im_scim_la-moc_scim-bridge-client-qt.lo `test -f 'moc_scim-bridge-client-qt.cpp' || echo '$(srcdir)/'`moc_scim-bridge-client-qt.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/im_scim_la-moc_scim-bridge-client-qt.Tpo $(DEPDIR)/im_scim_la-moc_scim-bridge-client-qt.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_scim-bridge-client-qt.cpp' object='im_scim_la-moc_scim-bridge-client-qt.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(im_scim_la_CXXFLAGS) $(CXXFLAGS) -c -o im_scim_la-moc_scim-bridge-client-qt.lo `test -f 'moc_scim-bridge-client-qt.cpp' || echo '$(srcdir)/'`moc_scim-bridge-client-qt.cpp mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" distdir="$(distdir)" \ dist-hook check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: for dir in "$(DESTDIR)$(moduledir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic clean-libtool clean-moduleLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-moduleLTLIBRARIES install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-moduleLTLIBRARIES .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-moduleLTLIBRARIES ctags dist-hook \ distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-moduleLTLIBRARIES \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am \ uninstall-moduleLTLIBRARIES @SCIM_BUILD_QT4_IMMODULE_TRUE@moc_scim-bridge-client-qt.cpp: ../scim-bridge-client-qt.h @SCIM_BUILD_QT4_IMMODULE_TRUE@ $(MOC) $< -o $@ @SCIM_BUILD_QT4_IMMODULE_FALSE@moc_scim-bridge-client-qt.cpp: @SCIM_BUILD_QT4_IMMODULE_FALSE@ touch $@ dist-hook: -rm -f $(distdir)/moc_scim-bridge-client-qt.cpp # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: scim-1.4.14/extras/immodules/client-qt/scim-bridge-client-common-qt.h000066400000000000000000000024411177210725600254730ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ /** * @file * @author Ryo Dairiki * @brief This is the common header for qt client of scim-bridge. */ #ifndef SCIMBRIDGECOMMONQT_H_ #define SCIMBRIDGECOMMONQT_H_ #ifdef QT4 #include #include #else #include #include #endif #include "scim-bridge.h" /** * The identifier name for SCIM input module. */ const QString SCIM_BRIDGE_IDENTIFIER_NAME = "scim"; #endif /*SCIMBRIDGECOMMONQT_H_*/ scim-1.4.14/extras/immodules/client-qt/scim-bridge-client-imcontext-qt.cpp000066400000000000000000000644121177210725600265560ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ #include #include #ifdef QT4 #include #include #include #include #ifdef Q_WS_X11 #include #endif #endif #include "scim-bridge-output.h" #include "scim-bridge-string.h" #include "scim-bridge-client.h" #include "scim-bridge-client-imcontext-qt.h" #include "scim-bridge-client-key-event-utility-qt.h" #ifdef QT4 using namespace std; using namespace Qt; typedef QInputMethodEvent::Attribute QAttribute; #endif /* Static variables */ class ScimBridgeClientIMContextImpl; static ScimBridgeClientIMContextImpl *focused_imcontext = NULL; static bool key_event_forwarded = false; /* Class Definition */ class ScimBridgeClientIMContextImpl: public _ScimBridgeClientIMContext { public: ScimBridgeClientIMContextImpl (); ~ScimBridgeClientIMContextImpl (); bool x11FilterEvent (QWidget *widget, XEvent *event); bool filterEvent (const QEvent *event); #ifdef QT4 void update (); QString identifierName (); QString language (); void setFocusWidget (QWidget *widget); void widgetDestroyed (QWidget *widget); bool isComposing () const; void mouseHandler (int offset, QMouseEvent *event); #else void setFocus (); void unsetFocus (); void setMicroFocus (int x, int y, int w, int h, QFont *font = 0); void mouseHandler (int offset, QEvent::Type type, ButtonState button, ButtonState state); #endif void reset (); /* Semi private functions */ void focus_in (); void focus_out (); void set_commit_string (const char *new_commit_string); void commit (); void forward_key_event (const ScimBridgeKeyEvent *key_event); void set_preedit_shown (bool shown); void set_preedit_string (const char *new_preedit_string); void set_preedit_attributes (ScimBridgeAttribute** const new_attributes, int new_attribute_count); void set_preedit_cursor_position (int new_cursor_position); void update_preedit (); scim_bridge_imcontext_id_t get_id () const; void set_id (scim_bridge_imcontext_id_t new_id); #ifdef QT4 bool get_surrounding_text (unsigned int before_max, unsigned int after_max, char **string, int *cursor_position); bool delete_surrounding_text (int offset, int length); bool replace_surrounding_text (const char *text, int cursor_position); #endif private: scim_bridge_imcontext_id_t id; bool preedit_shown; QString preedit_string; #ifdef QT4 QList preedit_attributes; #else int preedit_selected_offset; int preedit_selected_length; #endif int preedit_cursor_position; QString commit_string; QPoint cursor_location; void set_cursor_location (const QPoint &new_cursor_location); }; /* Implementations */ void _ScimBridgeClientIMContext::static_initialize () { } void _ScimBridgeClientIMContext::static_finalize () { } void _ScimBridgeClientIMContext::connection_opened () { } void _ScimBridgeClientIMContext::connection_closed () { } _ScimBridgeClientIMContext *_ScimBridgeClientIMContext::alloc () { return new ScimBridgeClientIMContextImpl (); } ScimBridgeClientIMContextImpl::ScimBridgeClientIMContextImpl (): id (-1), preedit_shown (false) { scim_bridge_pdebugln (5, "ScimBridgeClientIMContextImpl::ScimBridgeClientIMContextImpl ()"); #ifdef QT4 preedit_attributes.push_back (QAttribute (QInputMethodEvent::Cursor, preedit_cursor_position, true, 0)); #else preedit_selected_offset = 0; preedit_selected_length = 0; #endif if (!scim_bridge_client_is_messenger_opened ()) { scim_bridge_perrorln ("The messenger is now down"); } else if (scim_bridge_client_register_imcontext (this)) { scim_bridge_perrorln ("Failed to register the IMContext"); } else { scim_bridge_pdebugln (1, "IMContext registered: id = %d", id); } } ScimBridgeClientIMContextImpl::~ScimBridgeClientIMContextImpl () { scim_bridge_pdebugln (5, "ScimBridgeClientIMContextImpl::~ScimBridgeClientIMContextImpl ()"); if (this == focused_imcontext) focus_out (); if (!scim_bridge_client_is_messenger_opened ()) { scim_bridge_perrorln ("The messenger is now down"); } else if (scim_bridge_client_deregister_imcontext (this)) { scim_bridge_perrorln ("Failed to deregister an IMContext"); } else { scim_bridge_pdebugln (3, "IMContext deregistered: id = %d", id); } } #ifdef QT4 QString ScimBridgeClientIMContextImpl::identifierName () { return SCIM_BRIDGE_IDENTIFIER_NAME; } QString ScimBridgeClientIMContextImpl::language () { return ""; } void ScimBridgeClientIMContextImpl::widgetDestroyed (QWidget *widget) { scim_bridge_pdebugln (4, "ScimBridgeClientIMContextImpl::widgetDestroyed ()"); focus_out (); update (); } void ScimBridgeClientIMContextImpl::setFocusWidget (QWidget *widget) { scim_bridge_pdebugln (4, "ScimBridgeClientIMContextImpl::setFocusWidget ()"); QInputContext::setFocusWidget (widget); if (widget == NULL) { focus_out (); } else { focus_in (); } update (); } void ScimBridgeClientIMContextImpl::update () { scim_bridge_pdebugln (4, "ScimBridgeClientIMContextImpl::update ()"); QWidget *focused_widget = qApp->focusWidget (); if (focused_widget != NULL) { if (focused_imcontext == NULL) focus_in (); QRect rect = focused_widget->inputMethodQuery (ImMicroFocus).toRect (); QPoint point (rect.x (), rect.y () + rect.height ()); QPoint new_cursor_location = focused_widget->mapToGlobal (point); set_cursor_location (new_cursor_location); } } bool ScimBridgeClientIMContextImpl::isComposing () const { scim_bridge_pdebugln (4, "ScimBridgeClientIMContextImpl::isComposing ()"); return preedit_string.size () > 0; } void ScimBridgeClientIMContextImpl::mouseHandler (int offset, QMouseEvent *mevent) { } bool ScimBridgeClientIMContextImpl::get_surrounding_text (unsigned int before_max, unsigned int after_max, char **text, int *cursor_position) { scim_bridge_pdebugln (6, "ScimBridgeClientIMContextImpl::get_surrounding_text ()"); scim_bridge_perrorln ("FIXME: scim_bridge_client_imcontext_delete_surrounding_text () is not yet implemented."); return false; } bool ScimBridgeClientIMContextImpl::delete_surrounding_text (int offset, int length) { scim_bridge_pdebugln (6, "ScimBridgeClientIMContextImpl::delete_surrounding_text ()"); scim_bridge_perrorln ("FIXME: scim_bridge_client_imcontext_delete_surrounding_text () is not yet implemented."); return false; } bool ScimBridgeClientIMContextImpl::replace_surrounding_text (const char *text, int cursor_position) { scim_bridge_pdebugln (6, "ScimBridgeClientIMContextImpl::replace_surrounding_text ()"); scim_bridge_perrorln ("FIXME: scim_bridge_client_imcontext_delete_surrounding_text () is not yet implemented."); return false; } #else void ScimBridgeClientIMContextImpl::setFocus () { scim_bridge_pdebugln (4, "ScimBridgeClientIMContextImpl::setFocus ()"); focus_in (); } void ScimBridgeClientIMContextImpl::unsetFocus () { scim_bridge_pdebugln (4, "ScimBridgeClientIMContextImpl::unsetFocus ()"); focus_out (); } void ScimBridgeClientIMContextImpl::setMicroFocus (int x, int y, int w, int h, QFont *qfont) { scim_bridge_pdebugln (4, "ScimBridgeClientIMContextImpl::setMicroFocus ()"); QPoint new_cursor_location (x, y + h); set_cursor_location (new_cursor_location); } void ScimBridgeClientIMContextImpl::mouseHandler (int offset, QEvent::Type type, ButtonState button, ButtonState state) { } #endif bool ScimBridgeClientIMContextImpl::x11FilterEvent (QWidget *widget, XEvent *xevent) { scim_bridge_pdebugln (5, "ScimBridgeClientIMContextImpl::x11FilterEvent ()"); #ifdef Q_WS_X11 if (key_event_forwarded || (xevent->type != XKeyPress && xevent->type != XKeyRelease)) return false; if (focused_imcontext != this) focus_in (); if (scim_bridge_client_is_messenger_opened ()) { ScimBridgeKeyEvent *bridge_key_event = scim_bridge_key_event_x11_to_bridge (xevent); boolean consumed = FALSE; const retval_t retval_error = scim_bridge_client_handle_key_event (this, bridge_key_event, &consumed); scim_bridge_free_key_event (bridge_key_event); if (retval_error) { scim_bridge_perrorln ("An IOException at x11FilterEvent ()"); } else { return consumed; } } #endif return false; } bool ScimBridgeClientIMContextImpl::filterEvent (const QEvent *qevent) { scim_bridge_pdebugln (5, "ScimBridgeClientIMContextImpl::filterEvent ()"); #ifndef Q_WS_X11 if (key_event_forwarded || (qevent->type () != QEvent::KeyPress && qevent->type () != QEvent::KeyRelease)) return false; if (focused_imcontext != this) focus_in (); if (scim_bridge_client_is_messenger_opened ()) { const QKeyEvent *key_event = static_cast (qevent); ScimBridgeKeyEvent *bridge_key_event = scim_bridge_key_event_qt_to_bridge (key_event); if (scim_bridge_key_event_get_code (bridge_key_event) == SCIM_BRIDGE_KEY_CODE_NullKey) return false; boolean consumed = FALSE; const retval_t retval_error = scim_bridge_client_handle_key_event (this, bridge_key_event, &consumed); scim_bridge_free_key_event (bridge_key_event); if (retval_error) { scim_bridge_perrorln ("An IOException at filterEvent ()"); } else { return consumed; } } #endif return false; } void ScimBridgeClientIMContextImpl::reset () { scim_bridge_pdebugln (5, "ScimBridgeClientIMContextImpl::reset ()"); preedit_cursor_position = 0; #ifdef QT4 preedit_attributes.clear (); preedit_attributes.push_back (QAttribute (QInputMethodEvent::Cursor, preedit_cursor_position, true, 0)); #else preedit_selected_offset = 0; preedit_selected_length = 0; #endif preedit_string = ""; if (scim_bridge_client_is_messenger_opened ()) { if (scim_bridge_client_reset_imcontext (this)) { scim_bridge_perrorln ("An IOException at filterEvent ()"); } } #ifndef QT4 QInputContext::reset (); #endif } /* Private Functions */ void ScimBridgeClientIMContextImpl::set_cursor_location (const QPoint &new_cursor_location) { scim_bridge_pdebugln (4, "ScimBridgeClientIMContextImpl::set_cursor_location ()"); if (cursor_location != new_cursor_location) { cursor_location = new_cursor_location; scim_bridge_pdebugln (3, "The cursor location is changed: x = %d\ty = %d", cursor_location.x (), cursor_location.y ()); if (scim_bridge_client_is_messenger_opened ()) { if (scim_bridge_client_set_cursor_location (this, cursor_location.x (), cursor_location.y ())) scim_bridge_perrorln ("An IOException occurred at set_cursor_location ()"); } } } void ScimBridgeClientIMContextImpl::focus_in () { scim_bridge_pdebugln (8, "ScimBridgeClientIMContextImpl::focus_in ()"); if (focused_imcontext != NULL && focused_imcontext != this) focused_imcontext->focus_out (); focused_imcontext = this; if (!scim_bridge_client_is_messenger_opened () && scim_bridge_client_is_reconnection_enabled ()) { scim_bridge_pdebugln (7, "Trying to open the connection again..."); scim_bridge_client_open_messenger (); } if (scim_bridge_client_is_messenger_opened ()) { if (scim_bridge_client_change_focus (this, TRUE)) { scim_bridge_perrorln ("An IOException occurred at focus_in ()"); } } } void ScimBridgeClientIMContextImpl::focus_out () { scim_bridge_pdebugln (8, "ScimBridgeClientIMContextImpl::focus_out ()"); if (focused_imcontext != this) return; if (scim_bridge_client_is_messenger_opened ()) { if (scim_bridge_client_change_focus (this, false)) { scim_bridge_perrorln ("An IOException occurred at focus_out ()"); } } if (preedit_shown) { set_preedit_shown (false); update_preedit (); } focused_imcontext = NULL; } void ScimBridgeClientIMContextImpl::set_commit_string (const char *new_string) { scim_bridge_pdebugln (5, "ScimBridgeClientIMContextImpl::set_commit_string ()"); commit_string = QString::fromUtf8 (new_string); } void ScimBridgeClientIMContextImpl::commit () { scim_bridge_pdebugln (5, "ScimBridgeClientIMContextImpl::commit ()"); if (commit_string.length () <= 0) return; #ifdef QT4 scim_bridge_pdebugln (9, "commit string: %s", commit_string.toUtf8 ().data ()); #endif const bool is_composing = isComposing (); #ifdef QT4 QInputMethodEvent commit_event; commit_event.setCommitString (commit_string); sendEvent (commit_event); #else if (!is_composing) sendIMEvent (QEvent::IMStart); sendIMEvent (QEvent::IMEnd, commit_string); #endif if (is_composing) update_preedit (); } void ScimBridgeClientIMContextImpl::forward_key_event (const ScimBridgeKeyEvent *key_event) { scim_bridge_pdebugln (5, "ScimBridgeClientIMContextImpl::forward_key_event ()"); QWidget *focused_widget = qApp->focusWidget (); if (focused_widget != NULL) { key_event_forwarded = true; #ifdef Q_WS_X11 const WId window_id = focused_widget->winId (); #ifdef QT4 Display *x11_display = QX11Info::display(); #else Display *x11_display = qt_xdisplay (); #endif XEvent *x_event = scim_bridge_key_event_bridge_to_x11 (key_event, x11_display, window_id); qApp->x11ProcessEvent (x_event); free (x_event); #else QKeyEvent *forwarded_key_event = scim_bridge_key_event_bridge_to_qt (key_event); QApplication::sendEvent (focused_widget, forwarded_key_event); delete forwarded_key_event; #endif key_event_forwarded = false; } else { scim_bridge_pdebugln (4, "No widget is focused"); } } void ScimBridgeClientIMContextImpl::set_preedit_shown (bool shown) { scim_bridge_pdebugln (5, "ScimBridgeClientIMContextImpl::set_preedit_shown ()"); preedit_shown = shown; if (!preedit_shown) { preedit_string = ""; preedit_cursor_position = 0; #ifdef QT4 preedit_attributes.clear (); preedit_attributes.push_back (QAttribute (QInputMethodEvent::Cursor, preedit_cursor_position, true, 0)); #else preedit_selected_offset = 0; preedit_selected_length = 0; #endif } } void ScimBridgeClientIMContextImpl::set_preedit_cursor_position (int new_cursor_position) { scim_bridge_pdebugln (5, "ScimBridgeClientIMContextImpl::set_preedit_cursor_position ()"); preedit_cursor_position = new_cursor_position; } void ScimBridgeClientIMContextImpl::set_preedit_string (const char *new_string) { scim_bridge_pdebugln (5, "ScimBridgeClientIMContextImpl::set_preedit_string ()"); preedit_string = QString::fromUtf8 (new_string); } void ScimBridgeClientIMContextImpl::set_preedit_attributes (ScimBridgeAttribute** const attributes, int attribute_count) { scim_bridge_pdebugln (5, "ScimBridgeClientIMContextImpl::set_preedit_attribute ()"); #ifdef QT4 preedit_attributes.clear (); preedit_attributes.push_back (QAttribute (QInputMethodEvent::Cursor, preedit_cursor_position, true, 0)); #else preedit_selected_offset = 0; preedit_selected_length = 0; #endif for (int i = 0; i < attribute_count; ++i) { const ScimBridgeAttribute *attribute = attributes[i]; const size_t attribute_begin = scim_bridge_attribute_get_begin (attribute); const size_t attribute_end = scim_bridge_attribute_get_end (attribute); const scim_bridge_attribute_type_t attribute_type = scim_bridge_attribute_get_type (attribute); const scim_bridge_attribute_value_t attribute_value = scim_bridge_attribute_get_value (attribute); #ifdef QT4 const size_t attribute_length = attribute_end - attribute_begin; const QWidget *focused_widget = qApp->focusWidget (); const QPalette &palette = focused_widget->palette (); const QBrush &reversed_foreground = palette.base (); const QBrush &reversed_background = palette.text (); const QBrush &hilight_foreground = palette.highlightedText (); const QBrush &hilight_background = palette.highlight (); switch (attribute_type) { case ATTRIBUTE_DECORATE: switch (attribute_value) { case SCIM_BRIDGE_ATTRIBUTE_DECORATE_HIGHLIGHT: { QTextCharFormat text_format; text_format.setForeground (hilight_foreground); text_format.setBackground (hilight_background); QAttribute qt_attribute (QInputMethodEvent::TextFormat, attribute_begin, attribute_length, text_format); preedit_attributes.push_back (qt_attribute); } break; case SCIM_BRIDGE_ATTRIBUTE_DECORATE_REVERSE: { QTextCharFormat text_format; text_format.setForeground (reversed_foreground); text_format.setBackground (reversed_background); QAttribute qt_attribute (QInputMethodEvent::TextFormat, attribute_begin, attribute_length, text_format); preedit_attributes.push_back (qt_attribute); } break; case SCIM_BRIDGE_ATTRIBUTE_DECORATE_UNDERLINE: { QTextCharFormat text_format; text_format.setProperty (QTextFormat::FontUnderline, true); QAttribute qt_attribute (QInputMethodEvent::TextFormat, attribute_begin, attribute_length, text_format); preedit_attributes.push_back (qt_attribute); } break; } break; case ATTRIBUTE_FOREGROUND: { QTextCharFormat text_format; const unsigned int red = scim_bridge_attribute_get_red (attribute); const unsigned int green = scim_bridge_attribute_get_green (attribute); const unsigned int blue = scim_bridge_attribute_get_blue (attribute); text_format.setForeground (QColor (red, green, blue)); QAttribute qt_attribute (QInputMethodEvent::TextFormat, attribute_begin, attribute_length, text_format); preedit_attributes.push_back (qt_attribute); } break; case ATTRIBUTE_BACKGROUND: { QTextCharFormat text_format; const unsigned int red = scim_bridge_attribute_get_red (attribute); const unsigned int green = scim_bridge_attribute_get_green (attribute); const unsigned int blue = scim_bridge_attribute_get_blue (attribute); text_format.setBackground (QColor (red, green, blue)); QAttribute qt_attribute (QInputMethodEvent::TextFormat, attribute_begin, attribute_length, text_format); preedit_attributes.push_back (qt_attribute); } break; default: break; } #else if (attribute_type == ATTRIBUTE_DECORATE && (attribute_value == SCIM_BRIDGE_ATTRIBUTE_DECORATE_HIGHLIGHT || attribute_value == SCIM_BRIDGE_ATTRIBUTE_DECORATE_REVERSE)) { preedit_selected_offset = attribute_begin; preedit_selected_length = attribute_end - attribute_begin; break; } #endif } } void ScimBridgeClientIMContextImpl::update_preedit () { scim_bridge_pdebugln (5, "ScimBridgeClientIMContextImpl::update_preedit ()"); #ifdef QT4 preedit_attributes[0] = QAttribute (QInputMethodEvent::Cursor, preedit_cursor_position, true, 0); QInputMethodEvent im_event (preedit_string, preedit_attributes); sendEvent (im_event); update (); #else if (preedit_shown) { if (!isComposing ()) sendIMEvent (QEvent::IMStart); const size_t preedit_length = preedit_string.length (); size_t cursor_position = preedit_cursor_position; if (cursor_position > preedit_length) cursor_position = preedit_length; size_t selected_length = preedit_selected_length; if (cursor_position + selected_length > preedit_length) selected_length = preedit_length - cursor_position; sendIMEvent (QEvent::IMCompose, preedit_string, cursor_position, selected_length); } else { if (isComposing ()) sendIMEvent (QEvent::IMEnd); } #endif } scim_bridge_imcontext_id_t ScimBridgeClientIMContextImpl::get_id () const { return id; } void ScimBridgeClientIMContextImpl::set_id (scim_bridge_imcontext_id_t new_id) { id = new_id; } /* Bindings */ scim_bridge_imcontext_id_t scim_bridge_client_imcontext_get_id (const ScimBridgeClientIMContext *imcontext) { const ScimBridgeClientIMContextImpl *imcontext_impl = static_cast (imcontext); return imcontext_impl->get_id (); } void scim_bridge_client_imcontext_set_id (ScimBridgeClientIMContext *imcontext, scim_bridge_imcontext_id_t new_id) { ScimBridgeClientIMContextImpl *imcontext_impl = static_cast (imcontext); imcontext_impl->set_id (new_id); } void scim_bridge_client_imcontext_beep (ScimBridgeClientIMContext *imcontext) { QApplication::beep (); } void scim_bridge_client_imcontext_focus_in (ScimBridgeClientIMContext *imcontext) { ScimBridgeClientIMContextImpl *imcontext_impl = static_cast (imcontext); imcontext_impl->focus_in (); } void scim_bridge_client_imcontext_focus_out (ScimBridgeClientIMContext *imcontext) { ScimBridgeClientIMContextImpl *imcontext_impl = static_cast (imcontext); imcontext_impl->focus_out (); } void scim_bridge_client_imcontext_set_commit_string (ScimBridgeClientIMContext *imcontext, const char *commit_string) { ScimBridgeClientIMContextImpl *imcontext_impl = static_cast (imcontext); imcontext_impl->set_commit_string (commit_string); } void scim_bridge_client_imcontext_commit (ScimBridgeClientIMContext *imcontext) { ScimBridgeClientIMContextImpl *imcontext_impl = static_cast (imcontext); imcontext_impl->commit (); } void scim_bridge_client_imcontext_forward_key_event (ScimBridgeClientIMContext *imcontext, const ScimBridgeKeyEvent *key_event) { ScimBridgeClientIMContextImpl *imcontext_impl = static_cast (imcontext); imcontext_impl->forward_key_event (key_event); } void scim_bridge_client_imcontext_set_preedit_shown (ScimBridgeClientIMContext *imcontext, boolean shown) { ScimBridgeClientIMContextImpl *imcontext_impl = static_cast (imcontext); imcontext_impl->set_preedit_shown (shown); } void scim_bridge_client_imcontext_set_preedit_string (ScimBridgeClientIMContext *imcontext, const char *preedit_string) { ScimBridgeClientIMContextImpl *imcontext_impl = static_cast (imcontext); imcontext_impl->set_preedit_string (preedit_string); } void scim_bridge_client_imcontext_set_preedit_cursor_position (ScimBridgeClientIMContext *imcontext, int cursor_position) { ScimBridgeClientIMContextImpl *imcontext_impl = static_cast (imcontext); imcontext_impl->set_preedit_cursor_position (cursor_position); } void scim_bridge_client_imcontext_set_preedit_attributes (ScimBridgeClientIMContext *imcontext, ScimBridgeAttribute** const attributes, int attribute_count) { ScimBridgeClientIMContextImpl *imcontext_impl = static_cast (imcontext); imcontext_impl->set_preedit_attributes (attributes, attribute_count); } void scim_bridge_client_imcontext_update_preedit (ScimBridgeClientIMContext *imcontext) { ScimBridgeClientIMContextImpl *imcontext_impl = static_cast (imcontext); imcontext_impl->update_preedit (); } boolean scim_bridge_client_imcontext_get_surrounding_text (ScimBridgeClientIMContext *imcontext, int before_max, int after_max, char **string, int *cursor_position) { #ifdef QT4 ScimBridgeClientIMContextImpl *imcontext_impl = static_cast (imcontext); return imcontext_impl->get_surrounding_text (before_max, after_max, string, cursor_position); #else scim_bridge_perrorln ("FIXME: scim_bridge_client_imcontext_get_surrounding_text () is not yet implemented."); return FALSE; #endif } boolean scim_bridge_client_imcontext_delete_surrounding_text (ScimBridgeClientIMContext *imcontext, int offset, int length) { #ifdef QT4 ScimBridgeClientIMContextImpl *imcontext_impl = static_cast (imcontext); return imcontext_impl->delete_surrounding_text (offset, length); #else scim_bridge_perrorln ("FIXME: scim_bridge_client_imcontext_delete_surrounding_text () is not yet implemented."); return FALSE; #endif } boolean scim_bridge_client_imcontext_replace_surrounding_text (ScimBridgeClientIMContext *imcontext, int cursor_position, const char *string) { #ifdef QT4 ScimBridgeClientIMContextImpl *imcontext_impl = static_cast (imcontext); return imcontext_impl->replace_surrounding_text (string, cursor_position); #else scim_bridge_perrorln ("FIXME: scim_bridge_client_imcontext_replace_surrounding_text () is not yet implemented."); return FALSE; #endif } void scim_bridge_client_imcontext_imengine_status_changed (ScimBridgeClientIMContext *imcontext, boolean enabled) { // Do nothing. } scim-1.4.14/extras/immodules/client-qt/scim-bridge-client-imcontext-qt.h000066400000000000000000000117401177210725600262170ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ /** * @file * @author Ryo Dairiki * @brief This is the header of the public interface of IMContexts. */ #ifndef SCIMBRIDGECLIENTIMCONTEXTQT_H_ #define SCIMBRIDGECLIENTIMCONTEXTQT_H_ #ifdef QT4 #include #include #include #include #include #include #include #include #else #include #include #include #include #include #include #include #include #endif #include "scim-bridge.h" #include "scim-bridge-attribute.h" #include "scim-bridge-client-imcontext.h" #include "scim-bridge-client-common-qt.h" /** * IMContext class for qt client. */ struct _ScimBridgeClientIMContext: public QInputContext { public: /** * Initialize the class itself. */ static void static_initialize (); /** * Finalize the class itself. */ static void static_finalize (); /** * The connection with the agent is opened. */ static void connection_opened (); /** * The connection with the agent is closed. */ static void connection_closed (); /** * Allocate a new IMContext. * * @return A new IMContext. */ static _ScimBridgeClientIMContext *alloc (); /** * Destructor. */ virtual ~_ScimBridgeClientIMContext () {} /** * Filter a event from X11. * * @param widget The widget. * @param A event from X11. * @return If this event is consumed or not. */ virtual bool x11FilterEvent (QWidget *widget, XEvent *event) = 0; /** * Filter a key event. * * @param event The key event. * @return If this event is consumed or not. */ virtual bool filterEvent (const QEvent *event) = 0; #ifdef QT4 /** * The focus has been changed. */ virtual void update () = 0; /** * Get the identifier name for this input context. * * @return The identifier name. */ virtual QString identifierName () = 0; /** * Get the languages for the input context. * * @return The languages for the input context. */ virtual QString language () = 0; /** * Filter a mouse event. * * @param offset The cursor offset in the preedit string. * @param event The mouse event. */ virtual void mouseHandler (int offset, QMouseEvent *event) = 0; /** * The current focused widget is destroied. * * @param widget The widget under destroying. */ virtual void widgetDestroyed (QWidget *widget) = 0; #else /** * Focus an IMContext. */ virtual void setFocus () = 0; /** * Unfocus an IMContext. */ virtual void unsetFocus () = 0; /** * Set the focused area in the display. * * @param x The X loation of the focused area. * @param y The Y loation of the focused area. * @param w The width of the focused area. * @param h The height of the focused area. * @param font The font. */ virtual void setMicroFocus (int x, int y, int w, int h, QFont *font = 0) = 0; /** * Filter a mouse event. * * @param offset The cursor offset in the preedit string. * @param type The type of the event. * @param button The button of this event. * @param state The state of the button. */ virtual void mouseHandler (int offset, QEvent::Type type, ButtonState button, ButtonState state) = 0; #endif /** * Reset the current IME. */ virtual void reset () = 0; protected: /** * Constructor. */ _ScimBridgeClientIMContext () {} }; #endif /*SCIMBRIDGECLIENTIMCONTEXTQT_H_*/ scim-1.4.14/extras/immodules/client-qt/scim-bridge-client-key-event-utility-qt.cpp000066400000000000000000000426661177210725600301630ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ #include #include #include #ifdef QT4 #include #include #include #include #else #include #include #endif #include "scim-bridge-output.h" #include "scim-bridge-client-key-event-utility-qt.h" using std::map; /* Static variables */ static bool initialized = false; static map qt_to_bridge_key_map; static map bridge_to_qt_key_map; /* Helper functions */ static void register_key (int qt_key_code, scim_bridge_key_code_t bridge_key_code) { qt_to_bridge_key_map[qt_key_code] = bridge_key_code; qt_to_bridge_key_map[bridge_key_code] = qt_key_code; } static void static_initialize () { if (initialized) return; register_key ('/', SCIM_BRIDGE_KEY_CODE_KP_Divide); register_key ('*', SCIM_BRIDGE_KEY_CODE_KP_Multiply); register_key ('-', SCIM_BRIDGE_KEY_CODE_KP_Subtract); register_key ('+', SCIM_BRIDGE_KEY_CODE_KP_Add); register_key (Qt::Key_Return, SCIM_BRIDGE_KEY_CODE_KP_Enter); register_key (Qt::Key_Escape, SCIM_BRIDGE_KEY_CODE_Escape); register_key (Qt::Key_Tab, SCIM_BRIDGE_KEY_CODE_Tab); register_key (Qt::Key_Backtab, SCIM_BRIDGE_KEY_CODE_ISO_Left_Tab); register_key (Qt::Key_Backspace, SCIM_BRIDGE_KEY_CODE_BackSpace); register_key (Qt::Key_Return, SCIM_BRIDGE_KEY_CODE_Return); register_key (Qt::Key_Enter, SCIM_BRIDGE_KEY_CODE_KP_Enter); register_key (Qt::Key_Insert, SCIM_BRIDGE_KEY_CODE_Insert); register_key (Qt::Key_Delete, SCIM_BRIDGE_KEY_CODE_Delete); register_key (Qt::Key_Pause, SCIM_BRIDGE_KEY_CODE_Pause); #ifdef sun register_key (Qt::Key_Print, SCIM_BRIDGE_KEY_CODE_F22); #else register_key (Qt::Key_Print, SCIM_BRIDGE_KEY_CODE_Print); #endif register_key (Qt::Key_SysReq, SCIM_BRIDGE_KEY_CODE_Sys_Req); register_key (Qt::Key_Home, SCIM_BRIDGE_KEY_CODE_Home); register_key (Qt::Key_End, SCIM_BRIDGE_KEY_CODE_End); register_key (Qt::Key_Left, SCIM_BRIDGE_KEY_CODE_Left); register_key (Qt::Key_Up, SCIM_BRIDGE_KEY_CODE_Up); register_key (Qt::Key_Right, SCIM_BRIDGE_KEY_CODE_Right); register_key (Qt::Key_Down, SCIM_BRIDGE_KEY_CODE_Down); #ifdef QT4 register_key (Qt::Key_PageUp, SCIM_BRIDGE_KEY_CODE_Prior); register_key (Qt::Key_PageUp, SCIM_BRIDGE_KEY_CODE_Next); #else register_key (Qt::Key_Prior, SCIM_BRIDGE_KEY_CODE_Prior); register_key (Qt::Key_Next, SCIM_BRIDGE_KEY_CODE_Next); #endif register_key (Qt::Key_CapsLock, SCIM_BRIDGE_KEY_CODE_Caps_Lock); register_key (Qt::Key_NumLock, SCIM_BRIDGE_KEY_CODE_Num_Lock); register_key (Qt::Key_ScrollLock, SCIM_BRIDGE_KEY_CODE_Scroll_Lock); register_key (Qt::Key_F1, SCIM_BRIDGE_KEY_CODE_F1); register_key (Qt::Key_F2, SCIM_BRIDGE_KEY_CODE_F2); register_key (Qt::Key_F3, SCIM_BRIDGE_KEY_CODE_F3); register_key (Qt::Key_F4, SCIM_BRIDGE_KEY_CODE_F4); register_key (Qt::Key_F5, SCIM_BRIDGE_KEY_CODE_F5); register_key (Qt::Key_F6, SCIM_BRIDGE_KEY_CODE_F6); register_key (Qt::Key_F7, SCIM_BRIDGE_KEY_CODE_F7); register_key (Qt::Key_F8, SCIM_BRIDGE_KEY_CODE_F8); register_key (Qt::Key_F9, SCIM_BRIDGE_KEY_CODE_F9); register_key (Qt::Key_F10, SCIM_BRIDGE_KEY_CODE_F10); register_key (Qt::Key_F11, SCIM_BRIDGE_KEY_CODE_F11); register_key (Qt::Key_F12, SCIM_BRIDGE_KEY_CODE_F12); register_key (Qt::Key_F13, SCIM_BRIDGE_KEY_CODE_F13); register_key (Qt::Key_F14, SCIM_BRIDGE_KEY_CODE_F14); register_key (Qt::Key_F15, SCIM_BRIDGE_KEY_CODE_F15); register_key (Qt::Key_F16, SCIM_BRIDGE_KEY_CODE_F16); register_key (Qt::Key_F17, SCIM_BRIDGE_KEY_CODE_F17); register_key (Qt::Key_F18, SCIM_BRIDGE_KEY_CODE_F18); register_key (Qt::Key_F19, SCIM_BRIDGE_KEY_CODE_F19); register_key (Qt::Key_F20, SCIM_BRIDGE_KEY_CODE_F20); register_key (Qt::Key_F21, SCIM_BRIDGE_KEY_CODE_F21); register_key (Qt::Key_F22, SCIM_BRIDGE_KEY_CODE_F22); register_key (Qt::Key_F23, SCIM_BRIDGE_KEY_CODE_F23); register_key (Qt::Key_F24, SCIM_BRIDGE_KEY_CODE_F24); register_key (Qt::Key_F25, SCIM_BRIDGE_KEY_CODE_F25); register_key (Qt::Key_F26, SCIM_BRIDGE_KEY_CODE_F26); register_key (Qt::Key_F27, SCIM_BRIDGE_KEY_CODE_F27); register_key (Qt::Key_F28, SCIM_BRIDGE_KEY_CODE_F28); register_key (Qt::Key_F29, SCIM_BRIDGE_KEY_CODE_F29); register_key (Qt::Key_F30, SCIM_BRIDGE_KEY_CODE_F30); register_key (Qt::Key_F31, SCIM_BRIDGE_KEY_CODE_F31); register_key (Qt::Key_F32, SCIM_BRIDGE_KEY_CODE_F32); register_key (Qt::Key_F33, SCIM_BRIDGE_KEY_CODE_F33); register_key (Qt::Key_F34, SCIM_BRIDGE_KEY_CODE_F34); register_key (Qt::Key_F35, SCIM_BRIDGE_KEY_CODE_F35); register_key (Qt::Key_Super_L, SCIM_BRIDGE_KEY_CODE_Super_L); register_key (Qt::Key_Super_R, SCIM_BRIDGE_KEY_CODE_Super_R); register_key (Qt::Key_Menu, SCIM_BRIDGE_KEY_CODE_Menu); register_key (Qt::Key_Hyper_L, SCIM_BRIDGE_KEY_CODE_Hyper_L); register_key (Qt::Key_Hyper_R, SCIM_BRIDGE_KEY_CODE_Hyper_R); register_key (Qt::Key_Help, SCIM_BRIDGE_KEY_CODE_Help); register_key (Qt::Key_Multi_key, SCIM_BRIDGE_KEY_CODE_Multi_key); register_key (Qt::Key_Codeinput, SCIM_BRIDGE_KEY_CODE_Codeinput); register_key (Qt::Key_SingleCandidate, SCIM_BRIDGE_KEY_CODE_SingleCandidate); register_key (Qt::Key_MultipleCandidate, SCIM_BRIDGE_KEY_CODE_MultipleCandidate); register_key (Qt::Key_PreviousCandidate , SCIM_BRIDGE_KEY_CODE_PreviousCandidate); register_key (Qt::Key_Mode_switch, SCIM_BRIDGE_KEY_CODE_Mode_switch); register_key (Qt::Key_Kanji, SCIM_BRIDGE_KEY_CODE_Kanji); register_key (Qt::Key_Muhenkan, SCIM_BRIDGE_KEY_CODE_Muhenkan); register_key (Qt::Key_Henkan, SCIM_BRIDGE_KEY_CODE_Henkan); register_key (Qt::Key_Romaji, SCIM_BRIDGE_KEY_CODE_Romaji); register_key (Qt::Key_Hiragana, SCIM_BRIDGE_KEY_CODE_Hiragana); register_key (Qt::Key_Katakana, SCIM_BRIDGE_KEY_CODE_Katakana); register_key (Qt::Key_Hiragana_Katakana, SCIM_BRIDGE_KEY_CODE_Hiragana_Katakana); register_key (Qt::Key_Zenkaku, SCIM_BRIDGE_KEY_CODE_Zenkaku); register_key (Qt::Key_Hankaku, SCIM_BRIDGE_KEY_CODE_Hankaku); register_key (Qt::Key_Zenkaku_Hankaku, SCIM_BRIDGE_KEY_CODE_Zenkaku_Hankaku); register_key (Qt::Key_Touroku, SCIM_BRIDGE_KEY_CODE_Touroku); register_key (Qt::Key_Massyo, SCIM_BRIDGE_KEY_CODE_Massyo); register_key (Qt::Key_Kana_Lock, SCIM_BRIDGE_KEY_CODE_Kana_Lock); register_key (Qt::Key_Kana_Shift, SCIM_BRIDGE_KEY_CODE_Kana_Shift); register_key (Qt::Key_Eisu_Shift, SCIM_BRIDGE_KEY_CODE_Eisu_Shift); register_key (Qt::Key_Eisu_toggle, SCIM_BRIDGE_KEY_CODE_Eisu_toggle); register_key (Qt::Key_Hangul, SCIM_BRIDGE_KEY_CODE_Hangul); register_key (Qt::Key_Hangul_Start, SCIM_BRIDGE_KEY_CODE_Hangul_Start); register_key (Qt::Key_Hangul_End, SCIM_BRIDGE_KEY_CODE_Hangul_End); register_key (Qt::Key_Hangul_Hanja, SCIM_BRIDGE_KEY_CODE_Hangul_Hanja); register_key (Qt::Key_Hangul_Jamo, SCIM_BRIDGE_KEY_CODE_Hangul_Jamo); register_key (Qt::Key_Hangul_Romaja, SCIM_BRIDGE_KEY_CODE_Hangul_Romaja); register_key (Qt::Key_Hangul_Jeonja, SCIM_BRIDGE_KEY_CODE_Hangul_Jeonja); register_key (Qt::Key_Hangul_Banja, SCIM_BRIDGE_KEY_CODE_Hangul_Banja); register_key (Qt::Key_Hangul_PreHanja, SCIM_BRIDGE_KEY_CODE_Hangul_PreHanja); register_key (Qt::Key_Hangul_Special, SCIM_BRIDGE_KEY_CODE_Hangul_Special); initialized = true; } /* Implementations */ QKeyEvent *scim_bridge_key_event_bridge_to_qt (const ScimBridgeKeyEvent *bridge_key_event) { if (!initialized) static_initialize (); const QEvent::Type type = scim_bridge_key_event_is_pressed (bridge_key_event) ? QEvent::KeyPress : QEvent::KeyRelease; const scim_bridge_key_code_t bridge_key_code = scim_bridge_key_event_get_code (bridge_key_event); unsigned int ascii_code = '\0'; unsigned int qt_key_code; if (bridge_key_code < 0x1000) { if (bridge_key_code >= SCIM_BRIDGE_KEY_CODE_a && bridge_key_code <= SCIM_BRIDGE_KEY_CODE_z) { ascii_code = bridge_key_code; #ifdef QT4 qt_key_code = QChar (ascii_code).toUpper ().toAscii (); #else qt_key_code = QChar (ascii_code).upper (); #endif } else { ascii_code = bridge_key_code; qt_key_code = bridge_key_code; } } else if (bridge_key_code < 0x3000) { #ifdef Q_WS_WIN qt_key_code = bridge_key_code; } else { qt_key_code = Key_unknown; } #else qt_key_code = bridge_key_code | Qt::UNICODE_ACCEL; } else { map::iterator iter = bridge_to_qt_key_map.find (bridge_key_code); if (iter != bridge_to_qt_key_map.end ()) { qt_key_code = iter->second; } else { qt_key_code = Qt::Key_unknown; } } #endif #ifdef QT4 Qt::KeyboardModifiers modifiers = Qt::NoModifier; if (scim_bridge_key_event_is_alt_down (bridge_key_event)) modifiers |= Qt::AltModifier; if (scim_bridge_key_event_is_shift_down (bridge_key_event)) modifiers |= Qt::ShiftModifier; if (scim_bridge_key_event_is_control_down (bridge_key_event)) modifiers |= Qt::ControlModifier; if (scim_bridge_key_event_is_meta_down (bridge_key_event)) modifiers |= Qt::MetaModifier; return new QKeyEvent (type, qt_key_code, modifiers); #else unsigned int modifiers = 0; if (scim_bridge_key_event_is_alt_down (bridge_key_event)) modifiers |= Qt::AltButton; if (scim_bridge_key_event_is_shift_down (bridge_key_event)) modifiers |= Qt::ShiftButton; if (scim_bridge_key_event_is_control_down (bridge_key_event)) modifiers |= Qt::ControlButton; if (scim_bridge_key_event_is_meta_down (bridge_key_event)) modifiers |= Qt::MetaButton; return new QKeyEvent (type, qt_key_code, ascii_code, modifiers); #endif } ScimBridgeKeyEvent *scim_bridge_key_event_qt_to_bridge (const QKeyEvent *key_event) { if (!initialized) static_initialize (); ScimBridgeKeyEvent *bridge_key_event = scim_bridge_alloc_key_event (); #ifdef QT4 const Qt::KeyboardModifiers modifiers = key_event->modifiers (); if (modifiers & Qt::ShiftModifier) { scim_bridge_key_event_set_shift_down (bridge_key_event, TRUE); } if (modifiers & Qt::ControlModifier) { scim_bridge_key_event_set_control_down (bridge_key_event, TRUE); } if (modifiers & Qt::AltModifier) { scim_bridge_key_event_set_alt_down (bridge_key_event, TRUE); } if (modifiers & Qt::MetaModifier) { scim_bridge_key_event_set_meta_down (bridge_key_event, TRUE); } #else const int modifiers = key_event->state (); if (modifiers & Qt::ShiftButton) { scim_bridge_key_event_set_shift_down (bridge_key_event, TRUE); } if (modifiers & Qt::ControlButton) { scim_bridge_key_event_set_control_down (bridge_key_event, TRUE); } if (modifiers & Qt::AltButton) { scim_bridge_key_event_set_alt_down (bridge_key_event, TRUE); } if (modifiers & Qt::MetaButton) { scim_bridge_key_event_set_meta_down (bridge_key_event, TRUE); } #endif const int qt_key_code = key_event->key (); int bridge_key_code; #ifdef SCIM_QT_IMMODULE_USE_KDE KKeyNative nk = KKey (qt_key_code); bridge_key_code = nk.sym (); #else if ((qt_key_code & Qt::UNICODE_ACCEL) || (qt_key_code & 0xffff) < 0x1000) { const QString qt_key_raw_str = QString (QChar (qt_key_code)); const QString qt_key_str = key_event->text (); if ((qt_key_str == qt_key_raw_str) ^ scim_bridge_key_event_is_shift_down (bridge_key_event)) { scim_bridge_pdebugln (5, "CapsLock: on"); scim_bridge_key_event_set_caps_lock_down (bridge_key_event, true); } else { scim_bridge_pdebugln (5, "CapsLock: off"); scim_bridge_key_event_set_caps_lock_down (bridge_key_event, false); } if (!scim_bridge_key_event_is_caps_lock_down (bridge_key_event) ^ scim_bridge_key_event_is_shift_down (bridge_key_event)) { #ifdef QT4 bridge_key_code = QChar (qt_key_code).toLower ().unicode (); #else bridge_key_code = QChar (qt_key_code).lower ().unicode (); #endif } else { #ifdef QT4 bridge_key_code = QChar (qt_key_code).toUpper ().unicode (); #else bridge_key_code = QChar (qt_key_code).upper ().unicode (); #endif } } else { map::iterator iter = qt_to_bridge_key_map.find (qt_key_code); if (iter != qt_to_bridge_key_map.end ()) { bridge_key_code = iter->second; } else { bridge_key_code = SCIM_BRIDGE_KEY_CODE_NullKey; } } #endif scim_bridge_key_event_set_code (bridge_key_event, bridge_key_code); scim_bridge_key_event_set_pressed (bridge_key_event, key_event->type () != QEvent::KeyRelease); return bridge_key_event; } #ifdef Q_WS_X11 XEvent *scim_bridge_key_event_bridge_to_x11 (const ScimBridgeKeyEvent *bridge_key_event, Display *display, WId window_id) { XEvent *x_event = static_cast (malloc (sizeof (XEvent))); XKeyEvent *x_key_event = &x_event->xkey; x_key_event->type = scim_bridge_key_event_is_pressed (bridge_key_event) ? XKeyPress : XKeyRelease; x_key_event->display = display; x_key_event->window = window_id; x_key_event->subwindow = window_id; x_key_event->serial = 0; x_key_event->send_event = FALSE; x_key_event->same_screen = FALSE; struct timeval current_time; gettimeofday (¤t_time, NULL); x_key_event->time = (current_time.tv_sec * 1000) + (current_time.tv_usec / 1000); if (display != NULL) { x_key_event->root = DefaultRootWindow (display); x_key_event->keycode = XKeysymToKeycode (display, (KeySym) scim_bridge_key_event_get_code (bridge_key_event)); } else { x_key_event->root = None; x_key_event->keycode = SCIM_BRIDGE_KEY_CODE_NullKey; } x_key_event->state = 0; if (scim_bridge_key_event_is_shift_down (bridge_key_event)) x_key_event->state |= ShiftMask; if (scim_bridge_key_event_is_control_down (bridge_key_event)) x_key_event->state |= ControlMask; if (scim_bridge_key_event_is_caps_lock_down (bridge_key_event)) x_key_event->state |= LockMask; if (scim_bridge_key_event_is_alt_down (bridge_key_event)) x_key_event->state |= Mod1Mask; if (scim_bridge_key_event_is_meta_down (bridge_key_event)) x_key_event->state |= Mod4Mask; return x_event; } ScimBridgeKeyEvent* scim_bridge_key_event_x11_to_bridge (const XEvent *x_event) { const XKeyEvent *x_key_event = &x_event->xkey; const int key_strlen = 32; char key_str[key_strlen]; KeySym keysym; if (XLookupString (const_cast (&x_event->xkey), key_str, key_strlen, &keysym, 0) <= 0) { keysym = XLookupKeysym (const_cast (&x_event->xkey), 0); } ScimBridgeKeyEvent *bridge_key_event = scim_bridge_alloc_key_event (); scim_bridge_key_event_set_code (bridge_key_event, keysym); if (x_key_event->type == XKeyRelease) { scim_bridge_key_event_set_pressed (bridge_key_event, false); } else { scim_bridge_key_event_set_pressed (bridge_key_event, true); } if (x_key_event->state & ShiftMask || (x_key_event->type == XKeyPress && (x_key_event->keycode == XK_Shift_L || x_key_event->keycode == XK_Shift_R))) { scim_bridge_key_event_set_shift_down (bridge_key_event, TRUE); } if (x_key_event->state & ControlMask || (x_key_event->type == XKeyPress && (x_key_event->keycode == XK_Control_L || x_key_event->keycode == XK_Control_R))) { scim_bridge_key_event_set_control_down (bridge_key_event, TRUE); } if (x_key_event->state & LockMask || (x_key_event->type == XKeyPress && (x_key_event->keycode == XK_Caps_Lock))) { scim_bridge_key_event_set_caps_lock_down (bridge_key_event, TRUE); } if (x_key_event->state & Mod1Mask || (x_key_event->type == XKeyPress && (x_key_event->keycode == XK_Alt_L || x_key_event->keycode == XK_Alt_R))) { scim_bridge_key_event_set_alt_down (bridge_key_event, TRUE); } if (x_key_event->state & Mod4Mask || (x_key_event->type == XKeyPress && (x_key_event->keycode == XK_Meta_L || x_key_event->keycode == XK_Meta_R))) { scim_bridge_key_event_set_meta_down (bridge_key_event, TRUE); } if (scim_bridge_key_event_get_code (bridge_key_event) == SCIM_BRIDGE_KEY_CODE_backslash) { boolean kana_ro = FALSE; int keysym_size = 0; KeySym *keysyms = XGetKeyboardMapping (x_key_event->display, x_key_event->keycode, 1, &keysym_size); if (keysyms != NULL) { kana_ro = (keysyms[0] == XK_backslash && keysyms[1] == XK_underscore); XFree (keysyms); } scim_bridge_key_event_set_quirk_enabled (bridge_key_event, SCIM_BRIDGE_KEY_QUIRK_KANA_RO, kana_ro); } return bridge_key_event; } #endif scim-1.4.14/extras/immodules/client-qt/scim-bridge-client-key-event-utility-qt.h000066400000000000000000000050671177210725600276220ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ /** * @file * @author Ryo Dairiki * @brief This is the header of the functions to translate key events between scim-bridge and qt. */ #ifndef SCIMBRIDGECLIENTKEYEVENTUTILITYQT_H_ #define SCIMBRIDGECLIENTKEYEVENTUTILITYQT_H_ #include "scim-bridge.h" #include "scim-bridge-key-code.h" #include "scim-bridge-key-event.h" #include "scim-bridge-client-common-qt.h" #ifdef Q_WS_X11 #include #include #include static const int XKeyPress = KeyPress; static const int XKeyRelease = KeyRelease; #undef KeyPress #undef KeyRelease #endif class QKeyEvent; /** * Translate a key event from scim-bridge into qt. * * @param bridge_key_event The key event from scim-bridge. * @return The key event for Qt. */ QKeyEvent *scim_bridge_key_event_bridge_to_qt (const ScimBridgeKeyEvent *bridge_key_event); /** * Translate a key event from qt into scim-bridge. * * @param qt_key_event The key event from Qt. * @return The key event from scim-bridge. */ ScimBridgeKeyEvent *scim_bridge_key_event_qt_to_bridge (const QKeyEvent *qt_key_event); #ifdef Q_WS_X11 /** * Translate a key event from scim-bridge into X11. * * @param bridge_key_event The key event from scim-bridge. * @param display The X11 display. * @param window_id The id for the focused window. * @return The key event for X11. */ XEvent *scim_bridge_key_event_bridge_to_x11 (const ScimBridgeKeyEvent *bridge_key_event, Display *display, WId window_id); /** * Translate a key event from X11 into scim-bridge. * * @param x11_event The event from X11. * @return The key event from scim-bridge. */ ScimBridgeKeyEvent* scim_bridge_key_event_x11_to_bridge (const XEvent *x11_event); #endif #endif /*SCIMBRIDGECLIENTKEYEVENTUTILITYQT_H_*/ scim-1.4.14/extras/immodules/client-qt/scim-bridge-client-qt.cpp000066400000000000000000000055141177210725600245440ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ #include "scim-bridge-client.h" #include "scim-bridge-client-protected.h" #include "scim-bridge-output.h" #include "scim-bridge-client-qt.h" #ifdef QT4 using namespace Qt; #endif /* Static variables */ static ScimBridgeClientQt *client = NULL; /* Bindings */ void scim_bridge_client_messenger_opened () { client->messenger_opened (); } void scim_bridge_client_messenger_closed () { client->messenger_closed (); } /* Implementations */ ScimBridgeClientQt::ScimBridgeClientQt (): socket_notifier (NULL) { client = this; if (scim_bridge_client_initialize ()) { scim_bridge_perrorln ("Failed to init scim bridge..."); } else { scim_bridge_client_open_messenger (); } ScimBridgeClientIMContext::static_initialize (); } ScimBridgeClientQt::~ScimBridgeClientQt () { if (scim_bridge_client_finalize ()) { scim_bridge_perrorln ("Failed to finalize scim bridge..."); } ScimBridgeClientIMContext::static_finalize (); client = NULL; } void ScimBridgeClientQt::messenger_opened () { const int fd = scim_bridge_client_get_messenger_fd (); socket_notifier = new QSocketNotifier (fd, QSocketNotifier::Read); connect (socket_notifier, SIGNAL (activated (int)), this, SLOT (handle_message ())); ScimBridgeClientIMContext::connection_opened (); } void ScimBridgeClientQt::messenger_closed () { if (socket_notifier) { socket_notifier->setEnabled (false); socket_notifier->deleteLater (); socket_notifier = NULL; } ScimBridgeClientIMContext::connection_closed (); } void ScimBridgeClientQt::handle_message () { const int socket_fd = scim_bridge_client_get_messenger_fd (); fd_set read_set; FD_ZERO (&read_set); FD_SET (socket_fd, &read_set); struct timeval timeout; timeout.tv_sec = 0; timeout.tv_usec = 0; if (select (socket_fd + 1, &read_set, NULL, NULL, &timeout) > 0) { if (scim_bridge_client_read_and_dispatch ()) { scim_bridge_perrorln ("An IOException occurred at handle_message ()"); return; } } } scim-1.4.14/extras/immodules/client-qt/scim-bridge-client-qt.h000066400000000000000000000037031177210725600242070ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ /** * @file * @author Ryo Dairiki * @brief This is the header for qt client of scim-bridge. */ #ifndef SCIMBRIDGECLIENTQT_H_ #define SCIMBRIDGECLIENTQT_H_ #ifdef QT4 #include #include #else #include #include #endif #include "scim-bridge.h" #include "scim-bridge-client-imcontext-qt.h" #include "scim-bridge-client-common-qt.h" /** * The public interface of scim-bridge-client for Qt apps. */ class ScimBridgeClientQt: public QObject { Q_OBJECT public slots: void handle_message (); public: /** * Constructor. */ ScimBridgeClientQt (); /** * Destructor. */ ~ScimBridgeClientQt (); /** * A messenger is opened. */ void messenger_opened (); /** * A messenger is closed. */ void messenger_closed (); private: /** * The notifier for the messenger socket. */ QSocketNotifier *socket_notifier; }; #endif /*SCIMBRIDGECLIENTQT_H_*/ scim-1.4.14/extras/immodules/common/000077500000000000000000000000001177210725600173405ustar00rootroot00000000000000scim-1.4.14/extras/immodules/common/Makefile.am000066400000000000000000000046021177210725600213760ustar00rootroot00000000000000## Makefile.am -- Process this file with automake to produce Makefile.in ## ## Copyright (C) 2006 Ryo Dairiki ## ## ## This library is free software; you can redistribute it and/or ## modify it under the terms of the GNU Lesser General Public ## License as published by the Free Software Foundation and ## appearing in the file LICENSE.LGPL included in the package of this file. ## You can also redistribute it and/or modify it under the terms of ## the GNU General Public License as published by the Free Software Foundation and ## appearing in the file LICENSE.GPL included in the package of this file. ## ## This library is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. MAINTAINERCLEANFILES = Makefile.in INCLUDES = -I$(top_builddir) \ -I$(top_builddir)/src \ -I$(top_srcdir) \ -I$(top_srcdir)/src \ -I$(top_srcdir)/intl \ -I$(top_srcdir)/data \ -I$(top_srcdir)/utils \ -I$(top_srcdir)/extras/panel \ -DSCIM_DATADIR=\"@SCIM_DATADIR@\" \ -DSCIM_LOCALEDIR=\"@SCIM_LOCALEDIR@\" \ -DSCIM_SYSCONFDIR=\"@SCIM_SYSCONFDIR@\" \ -DSCIM_LIBEXECDIR=\"@SCIM_LIBEXECDIR@\" \ -DSCIM_ICONDIR=\"@SCIM_ICONDIR@\" \ -DSCIM_MODULE_PATH=\"@SCIM_MODULE_PATH@\" \ -DSCIM_TEMPDIR=\"@SCIM_TEMPDIR@\" \ -DSCIM_KEYBOARD_ICON_FILE=\"@SCIM_ICONDIR@/keyboard.png\" noinst_HEADERS = scim-bridge-attribute.h \ scim-bridge-debug.h \ scim-bridge-display.h \ scim-bridge-imcontext.h \ scim-bridge-key-code.h \ scim-bridge-key-event.h \ scim-bridge-message.h \ scim-bridge-message-constant.h \ scim-bridge-messenger.h \ scim-bridge-output.h \ scim-bridge-path.h \ scim-bridge-string.h \ scim-bridge.h noinst_LTLIBRARIES = libscimbridgecommon.la libscimbridgecommon_la_SOURCES = scim-bridge-attribute.c \ scim-bridge-display.c \ scim-bridge-path.c \ scim-bridge-key-event.c \ scim-bridge-message.c \ scim-bridge-messenger.c \ scim-bridge-string.c #libscimbridgecommon_la_CFLAGS = @SCIM_CFLAGS@ #libscimbridgecommon_la_CXXFLAGS = @SCIM_CFLAGS@ #libscimbridgecommon_la_LDFLAGS = @SCIM_LIBS@ scim-1.4.14/extras/immodules/common/Makefile.in000066400000000000000000000520411177210725600214070ustar00rootroot00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = extras/immodules/common DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libscimbridgecommon_la_LIBADD = am_libscimbridgecommon_la_OBJECTS = scim-bridge-attribute.lo \ scim-bridge-display.lo scim-bridge-path.lo \ scim-bridge-key-event.lo scim-bridge-message.lo \ scim-bridge-messenger.lo scim-bridge-string.lo libscimbridgecommon_la_OBJECTS = $(am_libscimbridgecommon_la_OBJECTS) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libscimbridgecommon_la_SOURCES) DIST_SOURCES = $(libscimbridgecommon_la_SOURCES) HEADERS = $(noinst_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ ARGZ_H = @ARGZ_H@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CLUTTER_BINARY_VERSION = @CLUTTER_BINARY_VERSION@ CLUTTER_CFLAGS = @CLUTTER_CFLAGS@ CLUTTER_IMCONTEXT_LIBDIR = @CLUTTER_IMCONTEXT_LIBDIR@ CLUTTER_IM_MODULEDIR = @CLUTTER_IM_MODULEDIR@ CLUTTER_LIBDIR = @CLUTTER_LIBDIR@ CLUTTER_LIBS = @CLUTTER_LIBS@ CLUTTER_VERSION = @CLUTTER_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOCBOOK_XSL = @DOCBOOK_XSL@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@ GTHREAD2_LIBS = @GTHREAD2_LIBS@ GTK2_CFLAGS = @GTK2_CFLAGS@ GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@ GTK2_LIBS = @GTK2_LIBS@ GTK3_CFLAGS = @GTK3_CFLAGS@ GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@ GTK3_LIBS = @GTK3_LIBS@ GTK_BINARY_VERSION = @GTK_BINARY_VERSION@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBDIR = @GTK_LIBDIR@ GTK_LIBS = @GTK_LIBS@ GTK_MAJOR_VERSION = @GTK_MAJOR_VERSION@ GTK_VERSION = @GTK_VERSION@ HAVE_GRAPHVIZ = @HAVE_GRAPHVIZ@ INCLTDL = @INCLTDL@ INCLUDE_STDINT = @INCLUDE_STDINT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBLTDL = @LIBLTDL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_DEPS = @LIBTOOL_DEPS@ LIBTOOL_EXPORT_OPTIONS = @LIBTOOL_EXPORT_OPTIONS@ LIPO = @LIPO@ LN_S = @LN_S@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ QT3_CFLAGS = @QT3_CFLAGS@ QT3_IM_MODULEDIR = @QT3_IM_MODULEDIR@ QT3_LIBDIR = @QT3_LIBDIR@ QT3_LIBS = @QT3_LIBS@ QT3_MOC = @QT3_MOC@ QT3_PREFIX = @QT3_PREFIX@ QT4_CFLAGS = @QT4_CFLAGS@ QT4_IM_MODULEDIR = @QT4_IM_MODULEDIR@ QT4_LIBDIR = @QT4_LIBDIR@ QT4_LIBS = @QT4_LIBS@ QT4_MOC = @QT4_MOC@ QT4_PREFIX = @QT4_PREFIX@ RANLIB = @RANLIB@ SCIM_AGE = @SCIM_AGE@ SCIM_BINARY_VERSION = @SCIM_BINARY_VERSION@ SCIM_BRIDGE_MAJOR_VERSION = @SCIM_BRIDGE_MAJOR_VERSION@ SCIM_BRIDGE_MICRO_VERSION = @SCIM_BRIDGE_MICRO_VERSION@ SCIM_BRIDGE_MINOR_VERSION = @SCIM_BRIDGE_MINOR_VERSION@ SCIM_BRIDGE_VERSION = @SCIM_BRIDGE_VERSION@ SCIM_BUILD_CLUTTER_IMMODULE = @SCIM_BUILD_CLUTTER_IMMODULE@ SCIM_BUILD_CONFIG_SIMPLE = @SCIM_BUILD_CONFIG_SIMPLE@ SCIM_BUILD_CONFIG_SOCKET = @SCIM_BUILD_CONFIG_SOCKET@ SCIM_BUILD_DOCUMENTS = @SCIM_BUILD_DOCUMENTS@ SCIM_BUILD_FILTER_SCTC = @SCIM_BUILD_FILTER_SCTC@ SCIM_BUILD_FRONTEND_SOCKET = @SCIM_BUILD_FRONTEND_SOCKET@ SCIM_BUILD_FRONTEND_X11 = @SCIM_BUILD_FRONTEND_X11@ SCIM_BUILD_GTK2_IMMODULE = @SCIM_BUILD_GTK2_IMMODULE@ SCIM_BUILD_GTK3_IMMODULE = @SCIM_BUILD_GTK3_IMMODULE@ SCIM_BUILD_GTK_UTILS = @SCIM_BUILD_GTK_UTILS@ SCIM_BUILD_IMENGINE_RAWCODE = @SCIM_BUILD_IMENGINE_RAWCODE@ SCIM_BUILD_IMENGINE_SOCKET = @SCIM_BUILD_IMENGINE_SOCKET@ SCIM_BUILD_IMENGINE_TABLE = @SCIM_BUILD_IMENGINE_TABLE@ SCIM_BUILD_IMMODULE = @SCIM_BUILD_IMMODULE@ SCIM_BUILD_IM_AGENT = @SCIM_BUILD_IM_AGENT@ SCIM_BUILD_ORIG_GTK2_IMMODULE = @SCIM_BUILD_ORIG_GTK2_IMMODULE@ SCIM_BUILD_ORIG_GTK3_IMMODULE = @SCIM_BUILD_ORIG_GTK3_IMMODULE@ SCIM_BUILD_PANEL_GTK = @SCIM_BUILD_PANEL_GTK@ SCIM_BUILD_QT3_IMMODULE = @SCIM_BUILD_QT3_IMMODULE@ SCIM_BUILD_QT4_IMMODULE = @SCIM_BUILD_QT4_IMMODULE@ SCIM_BUILD_SCIM_SETUP = @SCIM_BUILD_SCIM_SETUP@ SCIM_BUILD_TESTS = @SCIM_BUILD_TESTS@ SCIM_BUILD_X11_UTILS = @SCIM_BUILD_X11_UTILS@ SCIM_CURRENT = @SCIM_CURRENT@ SCIM_DATADIR = @SCIM_DATADIR@ SCIM_EPOCH = @SCIM_EPOCH@ SCIM_ICONDIR = @SCIM_ICONDIR@ SCIM_LIBDIR = @SCIM_LIBDIR@ SCIM_LIBEXECDIR = @SCIM_LIBEXECDIR@ SCIM_LOCALEDIR = @SCIM_LOCALEDIR@ SCIM_LTDLADVISE = @SCIM_LTDLADVISE@ SCIM_MAJOR_VERSION = @SCIM_MAJOR_VERSION@ SCIM_MICRO_VERSION = @SCIM_MICRO_VERSION@ SCIM_MINOR_VERSION = @SCIM_MINOR_VERSION@ SCIM_MODULE_PATH = @SCIM_MODULE_PATH@ SCIM_PREFIX = @SCIM_PREFIX@ SCIM_REVISION = @SCIM_REVISION@ SCIM_SYSCONFDIR = @SCIM_SYSCONFDIR@ SCIM_TEMPDIR = @SCIM_TEMPDIR@ SCIM_VERSION = @SCIM_VERSION@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UINT16 = @UINT16@ UINT32 = @UINT32@ UINT64 = @UINT64@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XMKMF = @XMKMF@ XSLTPROC = @XSLTPROC@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_aux_dir = @ac_aux_dir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ MAINTAINERCLEANFILES = Makefile.in INCLUDES = -I$(top_builddir) \ -I$(top_builddir)/src \ -I$(top_srcdir) \ -I$(top_srcdir)/src \ -I$(top_srcdir)/intl \ -I$(top_srcdir)/data \ -I$(top_srcdir)/utils \ -I$(top_srcdir)/extras/panel \ -DSCIM_DATADIR=\"@SCIM_DATADIR@\" \ -DSCIM_LOCALEDIR=\"@SCIM_LOCALEDIR@\" \ -DSCIM_SYSCONFDIR=\"@SCIM_SYSCONFDIR@\" \ -DSCIM_LIBEXECDIR=\"@SCIM_LIBEXECDIR@\" \ -DSCIM_ICONDIR=\"@SCIM_ICONDIR@\" \ -DSCIM_MODULE_PATH=\"@SCIM_MODULE_PATH@\" \ -DSCIM_TEMPDIR=\"@SCIM_TEMPDIR@\" \ -DSCIM_KEYBOARD_ICON_FILE=\"@SCIM_ICONDIR@/keyboard.png\" noinst_HEADERS = scim-bridge-attribute.h \ scim-bridge-debug.h \ scim-bridge-display.h \ scim-bridge-imcontext.h \ scim-bridge-key-code.h \ scim-bridge-key-event.h \ scim-bridge-message.h \ scim-bridge-message-constant.h \ scim-bridge-messenger.h \ scim-bridge-output.h \ scim-bridge-path.h \ scim-bridge-string.h \ scim-bridge.h noinst_LTLIBRARIES = libscimbridgecommon.la libscimbridgecommon_la_SOURCES = scim-bridge-attribute.c \ scim-bridge-display.c \ scim-bridge-path.c \ scim-bridge-key-event.c \ scim-bridge-message.c \ scim-bridge-messenger.c \ scim-bridge-string.c all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu extras/immodules/common/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu extras/immodules/common/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libscimbridgecommon.la: $(libscimbridgecommon_la_OBJECTS) $(libscimbridgecommon_la_DEPENDENCIES) $(LINK) $(libscimbridgecommon_la_OBJECTS) $(libscimbridgecommon_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim-bridge-attribute.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim-bridge-display.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim-bridge-key-event.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim-bridge-message.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim-bridge-messenger.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim-bridge-path.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim-bridge-string.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am #libscimbridgecommon_la_CFLAGS = @SCIM_CFLAGS@ #libscimbridgecommon_la_CXXFLAGS = @SCIM_CFLAGS@ #libscimbridgecommon_la_LDFLAGS = @SCIM_LIBS@ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: scim-1.4.14/extras/immodules/common/scim-bridge-attribute.c000066400000000000000000000106121177210725600236720ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ #include #include #include "scim-bridge-attribute.h" /* Data type */ struct _ScimBridgeAttribute { size_t begin; size_t end; scim_bridge_attribute_type_t type; scim_bridge_attribute_value_t value; }; /* Functions */ ScimBridgeAttribute *scim_bridge_alloc_attribute () { ScimBridgeAttribute *attribute = malloc (sizeof (ScimBridgeAttribute)); attribute->begin = 0; attribute->end = 0; attribute->type = ATTRIBUTE_NONE; attribute->value = SCIM_BRIDGE_ATTRIBUTE_DECORATE_NONE; return attribute; } void scim_bridge_free_attribute (ScimBridgeAttribute *attribute) { if (attribute != NULL) free (attribute); } void scim_bridge_copy_attribute (ScimBridgeAttribute *dst, const ScimBridgeAttribute *src) { if (dst == src) return; memcpy (dst, src, sizeof (ScimBridgeAttribute)); } boolean scim_bridge_attribute_equals (const ScimBridgeAttribute *atr1, const ScimBridgeAttribute *atr2) { return atr1->begin == atr2->begin && atr1->end == atr2->end && atr1->type == atr2->type && atr1->value == atr2->value; } scim_bridge_attribute_type_t scim_bridge_attribute_get_type (const ScimBridgeAttribute *attribute) { return attribute->type; } void scim_bridge_attribute_set_type (ScimBridgeAttribute *attribute, scim_bridge_attribute_type_t type) { attribute->type = type; } size_t scim_bridge_attribute_get_begin (const ScimBridgeAttribute *attribute) { return attribute->begin; } void scim_bridge_attribute_set_begin (ScimBridgeAttribute *attribute, size_t begin) { attribute->begin = begin; } size_t scim_bridge_attribute_get_end (const ScimBridgeAttribute *attribute) { return attribute->end; } void scim_bridge_attribute_set_end (ScimBridgeAttribute *attribute, size_t end) { attribute->end = end; } scim_bridge_attribute_value_t scim_bridge_attribute_get_value (const ScimBridgeAttribute *attribute) { return attribute->value; } void scim_bridge_attribute_set_value (ScimBridgeAttribute *attribute, scim_bridge_attribute_value_t value) { attribute->value = value; } void scim_bridge_attribute_set_color (ScimBridgeAttribute *attribute, unsigned int red, unsigned int green, unsigned int blue) { attribute->value = (scim_bridge_attribute_value_t) (((red & 0xFF) << 16) | ((green & 0xFF) << 8) | ((blue & 0xFF) << 0)); } unsigned int scim_bridge_attribute_get_red (const ScimBridgeAttribute *attribute) { return ((unsigned int) (attribute->value & 0xFF0000)) >> 16; } void scim_bridge_attribute_set_red (ScimBridgeAttribute *attribute, unsigned int red) { unsigned int green = scim_bridge_attribute_get_green (attribute); unsigned int blue = scim_bridge_attribute_get_blue (attribute); scim_bridge_attribute_set_color (attribute, red, green, blue); } unsigned int scim_bridge_attribute_get_green (const ScimBridgeAttribute *attribute) { return ((unsigned int) (attribute->value & 0x00FF00)) >> 8; } void scim_bridge_attribute_set_green (ScimBridgeAttribute *attribute, unsigned int green) { unsigned int red = scim_bridge_attribute_get_red (attribute); unsigned int blue = scim_bridge_attribute_get_blue (attribute); scim_bridge_attribute_set_color (attribute, red, green, blue); } unsigned int scim_bridge_attribute_get_blue (const ScimBridgeAttribute *attribute) { return ((unsigned int) (attribute->value & 0x0000FF)) >> 0; } void scim_bridge_attribute_set_blue (ScimBridgeAttribute *attribute, unsigned int blue) { unsigned int red = scim_bridge_attribute_get_red (attribute); unsigned int green = scim_bridge_attribute_get_green (attribute); scim_bridge_attribute_set_color (attribute, red, green, blue); } scim-1.4.14/extras/immodules/common/scim-bridge-attribute.h000066400000000000000000000216711177210725600237060ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ /** * @file * @author Ryo Dairiki * @brief This header describes about attributes. * * Attributes are used to give the clients some hints how the preedit strings should be shown.\n * They are used to highlight the current segment in the convertion mode, * or to underline the newly-input-strings. */ #ifndef SCIMBRIDGEATTRIBUTE_H_ #define SCIMBRIDGEATTRIBUTE_H_ #include "scim-bridge.h" enum _scim_bridge_attribute_type_t { ATTRIBUTE_NONE, ATTRIBUTE_DECORATE, ATTRIBUTE_FOREGROUND, ATTRIBUTE_BACKGROUND }; /** * This is enumeration type for the type of attributes. */ typedef enum _scim_bridge_attribute_type_t scim_bridge_attribute_type_t; /** * This is type for the value or the color of attributes. */ typedef unsigned int scim_bridge_attribute_value_t; /** * This is the type of attribute. */ typedef struct _ScimBridgeAttribute ScimBridgeAttribute; /** * The attribute type, which means that the attribute is invalid. */ static const scim_bridge_attribute_value_t SCIM_BRIDGE_ATTRIBUTE_DECORATE_NONE = 0x1000000; /** * The attribute type, which means that the attribute provides an underline. */ static const scim_bridge_attribute_value_t SCIM_BRIDGE_ATTRIBUTE_DECORATE_UNDERLINE = 0x2000000; /** * The attribute type, which means that the attribute provides an highlight. */ static const scim_bridge_attribute_value_t SCIM_BRIDGE_ATTRIBUTE_DECORATE_HIGHLIGHT = 0x4000000; /** * The attribute type, which means that the attribute provides an reversed highlight. */ static const scim_bridge_attribute_value_t SCIM_BRIDGE_ATTRIBUTE_DECORATE_REVERSE = 0x8000000; #ifdef __cplusplus extern "C" { #endif /** * Allocate an attribute. * * @return a new attribute. */ ScimBridgeAttribute *scim_bridge_alloc_attribute (); /** * Free an attribute. * * @param attribute The attribute to free. * @note Do not use free (). It will cause memleaks. */ void scim_bridge_free_attribute (ScimBridgeAttribute *attribute); /** * Copy an attribute into another. * * @param src The attribute to duplicate. * @param dst The destination to copy in. */ void scim_bridge_copy_attribute (ScimBridgeAttribute *dst, const ScimBridgeAttribute *src); /** * See if one attribute equals the other. * * @param atr1 The attribute. * @param atr2 Another attribute. * @return true if the two attributes are the same. */ boolean scim_bridge_attribute_equals (const ScimBridgeAttribute *atr1, const ScimBridgeAttribute *atr2); /** * Get the type of an attribute. * * @param attribute The attribute. * @return The type of the attribute. */ scim_bridge_attribute_type_t scim_bridge_attribute_get_type (const ScimBridgeAttribute *attribute); /** * Set the type of an attribute. * * @param attribute The attribute. */ void scim_bridge_attribute_set_type (ScimBridgeAttribute *attribute, scim_bridge_attribute_type_t type); /** * Get the begining index of the attribute. * * @param attribute The attribute. * @return The index of the first wide-character to apply this attribute. */ size_t scim_bridge_attribute_get_begin (const ScimBridgeAttribute *attribute); /** * Set the begining index of the attribute. * * @param attribute The attribute. * @param begin The index of the first wide-character to apply this attribute. */ void scim_bridge_attribute_set_begin (ScimBridgeAttribute *attribute, size_t begin); /** * Get the ending index of the attribute. * * @param attribute The attribute. * @return The index of the end wide-character to apply this attribute. */ size_t scim_bridge_attribute_get_end (const ScimBridgeAttribute *attribute); /** * Set the ending index of the attribute. * * @param attribute The attribute. * @param end The index of the end wide-character to apply this attribute. */ void scim_bridge_attribute_set_end (ScimBridgeAttribute *attribute, size_t end); /** * Get the type of the attribute. * * @param attribute The attribute. * @return The type of the attribute. */ scim_bridge_attribute_type_t scim_bridge_attribute_get_type (const ScimBridgeAttribute *attribute); /** * Set the type of the attribute. * * @param attribute The attribute. * @param type The type of the attribute. */ void scim_bridge_attribute_set_type (ScimBridgeAttribute *attribute, scim_bridge_attribute_type_t type); /** * Get the value of the attribute.\n * Notice, the value stands for RGB color from 0x000000 to 0xFFFFFF\n * if the attribute type is ATTRIBUTE_FOREGROUND or ATTRIBUTE_BACKGROUND. * * @param attribute The attribute. * @return The value of the attribute. */ scim_bridge_attribute_value_t scim_bridge_attribute_get_value (const ScimBridgeAttribute *attribute); /** * Set the value of the attribute.\n * Notice, the value stands for RGB color from 0x000000 to 0xFFFFFF\n * if the attribute type is ATTRIBUTE_FOREGROUND or ATTRIBUTE_BACKGROUND. * * @param attribute The attribute. * @param value The value of the attribute. */ void scim_bridge_attribute_set_value (ScimBridgeAttribute *attribute, scim_bridge_attribute_value_t value); /** * Set the color of the attribute.\n * The color value will be ignored * when the attribute type is not ATTRIBUTE_FOREGROUND nor ATTRIBUTE_BACKGROUND. * * @param attribute The attribute. * @param red The red value, from 0x0 to 0xFF. * @param green The green value, from 0x0 to 0xFF. * @param blue The blue value, from 0x0 to 0xFF. */ void scim_bridge_attribute_set_color (ScimBridgeAttribute *attribute, unsigned int red, unsigned int green, unsigned int blue); /** * Get the red value of the attribute.\n * The color value has no meanings * when the attribute type is not ATTRIBUTE_FOREGROUND nor ATTRIBUTE_BACKGROUND. * * @param attribute The attribute. * @return The red value, from 0x0 to 0xFF. */ unsigned int scim_bridge_attribute_get_red (const ScimBridgeAttribute *attribute); /** * Set the red value of the attribute.\n * The color value has no meanings * when the attribute type is not ATTRIBUTE_FOREGROUND nor ATTRIBUTE_BACKGROUND. * * @param attribute The attribute. * @param red The red value, from 0x0 to 0xFF. */ void scim_bridge_attribute_set_red (ScimBridgeAttribute *attribute, unsigned int red); /** * Get the green value of the attribute.\n * The color value has no meanings * when the attribute type is not ATTRIBUTE_FOREGROUND nor ATTRIBUTE_BACKGROUND. * * @param attribute The attribute. * @return The green value, from 0x0 to 0xFF. */ unsigned int scim_bridge_attribute_get_green (const ScimBridgeAttribute *attribute); /** * Set the green value of the attribute.\n * The color value has no meanings * when the attribute type is not ATTRIBUTE_FOREGROUND nor ATTRIBUTE_BACKGROUND. * * @param attribute The attribute. * @param green The green value, from 0x0 to 0xFF. */ void scim_bridge_attribute_set_green (ScimBridgeAttribute *attribute, unsigned int green); /** * Get the blue value of the attribute.\n * The color value has no meanings * when the attribute type is not ATTRIBUTE_FOREGROUND nor ATTRIBUTE_BACKGROUND. * * @param attribute The attribute. * @return The blue value, from 0x0 to 0xFF. */ unsigned int scim_bridge_attribute_get_blue (const ScimBridgeAttribute *attribute); /** * Set the blue value of the attribute.\n * The color value has no meanings * when the attribute type is not ATTRIBUTE_FOREGROUND nor ATTRIBUTE_BACKGROUND. * * @param attribute The attribute. * @param blue The blue value, from 0x0 to 0xFF. */ void scim_bridge_attribute_set_blue (ScimBridgeAttribute *attribute, unsigned int blue); #ifdef __cplusplus } #endif #endif /*SCIMBRIDGEATTRIBUTE_H_*/ scim-1.4.14/extras/immodules/common/scim-bridge-debug.h000066400000000000000000000031241177210725600227620ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ /** * @file * @author Ryo Dairiki * @brief This header describes about debug related features. */ #ifndef SCIMBRIDGEDEBUG_H_ #define SCIMBRIDGEDEBUG_H_ #include "scim-bridge.h" /** * This is the type of debug level. */ typedef int scim_bridge_debug_level_t; /** * The maximum value of the debug level. */ static const scim_bridge_debug_level_t SCIM_BRIDGE_MAX_DEBUG_LEVEL = 9; /** * The minimum value of the debug level. */ static const scim_bridge_debug_level_t SCIM_BRIDGE_MIN_DEBUG_LEVEL = 0; #ifdef __cplusplus extern "C" { #endif /** * Get the debug level. * * @return The debug level. */ scim_bridge_debug_level_t scim_bridge_debug_get_level (); #ifdef __cplusplus } #endif #endif /*SCIMBRIDGEDEBUG_H_*/ scim-1.4.14/extras/immodules/common/scim-bridge-display.c000066400000000000000000000135131177210725600233370ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ #include #include #include "scim-bridge-display.h" #include "scim-bridge-output.h" /* Type definitions */ struct _ScimBridgeDisplay { char *name; int display_number; int screen_number; }; /* Implementations */ ScimBridgeDisplay *scim_bridge_alloc_display () { ScimBridgeDisplay *display = malloc (sizeof (ScimBridgeDisplay)); display->name = malloc (sizeof (char)); display->name[0] = '\0'; display->display_number = -1; display->screen_number = -1; return display; } void scim_bridge_free_display (ScimBridgeDisplay *display) { if (display == NULL) return; free (display->name); free (display); } void scim_bridge_copy_display (ScimBridgeDisplay *dst, const ScimBridgeDisplay *src) { if (dst == NULL || src == NULL) { scim_bridge_perrorln ("The pointer given as a display is NULL"); abort (); } const size_t str_length = strlen (src->name); dst->name = realloc (dst->name, sizeof (char) * (str_length + 1)); strcpy (dst->name, src->name); dst->display_number = src->display_number; dst->screen_number = src->screen_number; } boolean scim_bridge_display_equals (const ScimBridgeDisplay *dst, const ScimBridgeDisplay *src) { return dst->display_number == src->display_number && dst->screen_number == src->screen_number; } retval_t scim_bridge_display_fetch_current (ScimBridgeDisplay *display) { if (display == NULL) { scim_bridge_perrorln ("The pointer given as a display is NULL"); return RETVAL_FAILED; } int display_number = 0; int screen_number = 0; char *display_name = getenv ("DISPLAY"); if (display_name == NULL) { return RETVAL_FAILED; } else { const char *c; for (c = display_name; TRUE; ++c) { if (*c == ':') { break; } else if (*c == '\0') { return RETVAL_FAILED; } } boolean reading_display_number = TRUE; static char *digits = "0123456789"; for (c += sizeof (char); *c != '\0'; ++c) { switch (*c) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': if (reading_display_number) { display_number = display_number * 10 + (index (digits, *c) - digits); } else { screen_number = screen_number * 10 + (index (digits, *c) - digits); } break; case '.': if (reading_display_number) { reading_display_number = FALSE; } else { return RETVAL_FAILED; } break; default: return RETVAL_FAILED; } } const size_t display_name_str_length = strlen (display_name); free (display->name); display->name = malloc (sizeof (char) * (display_name_str_length + 1)); strcpy (display->name, display_name); display->display_number = display_number; display->screen_number = screen_number; return RETVAL_SUCCEEDED; } } const char *scim_bridge_display_get_name (const ScimBridgeDisplay *display) { if (display == NULL) { scim_bridge_perrorln ("The pointer given as a display is NULL"); return NULL; } return display->name; } void scim_bridge_display_set_name (ScimBridgeDisplay *display, const char *display_name) { if (display == NULL) { scim_bridge_perrorln ("The pointer given as a display is NULL"); abort (); } if (display_name == NULL) { scim_bridge_perrorln ("The pointer given as a string is NULL"); abort (); } free (display->name); display->name = malloc (sizeof (char) * (strlen (display_name) + 1)); strcpy (display->name, display_name); } int scim_bridge_display_get_display_number (const ScimBridgeDisplay *display) { if (display == NULL) { scim_bridge_perrorln ("The pointer given as a display is NULL"); abort (); } return display->display_number; } void scim_bridge_display_set_display_number (ScimBridgeDisplay *display, int display_number) { if (display == NULL) { scim_bridge_perrorln ("The pointer given as a display is NULL"); abort (); } display->display_number = display_number; } int scim_bridge_display_get_screen_number (const ScimBridgeDisplay *display) { if (display == NULL) { scim_bridge_perrorln ("The pointer given as a display is NULL"); abort (); } return display->screen_number; } void scim_bridge_display_set_screen_number (ScimBridgeDisplay *display, int screen_number) { if (display == NULL) { scim_bridge_perrorln ("The pointer given as a display is NULL"); abort (); } display->screen_number = screen_number; } scim-1.4.14/extras/immodules/common/scim-bridge-display.h000066400000000000000000000100541177210725600233410ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ /** * @file * @author Ryo Dairiki * @brief This header describes about the information of the display. */ #ifndef SCIMBRIDGEDISPLAY_H_ #define SCIMBRIDGEDISPLAY_H_ #include "scim-bridge.h" /** * The data type for display informations. */ typedef struct _ScimBridgeDisplay ScimBridgeDisplay; #ifdef __cplusplus extern "C" { #endif /** * Allocate a new display. * * @return The new display. */ ScimBridgeDisplay *scim_bridge_alloc_display (); /** * Free a display. * * @param display The display to free. */ void scim_bridge_free_display (ScimBridgeDisplay *display); /** * Copy a display into another. * * @param dst The destination to copy in. * @param src The source display. */ void scim_bridge_copy_display (ScimBridgeDisplay *dst, const ScimBridgeDisplay *src); /** * See the two display are the same or not. * * @param dst A display. * @param src Another display. * @return true if the two displays are the same. */ boolean scim_bridge_display_equals (const ScimBridgeDisplay *dst, const ScimBridgeDisplay *src); /** * Fetch the current display infomation. * * @param display The destination to write the data in. */ retval_t scim_bridge_display_fetch_current (ScimBridgeDisplay *display); /** * Get the name of a display.\n * A display name is usually the same as the environmental variable "DISPLAY".\n * When you are not in X, the value is undefined for now... * * @param display The display. * @return The display name. */ const char *scim_bridge_display_get_name (const ScimBridgeDisplay *display); /** * Set the name of a display. * * @param display The display. * @param name The display display_name. */ void scim_bridge_display_set_name (ScimBridgeDisplay *display, const char *display_name); /** * Get the display number of a display.\n * A display number is usually grabbed from the environmental variable "DISPLAY".\n * For example, this function returns "0" if "DISPLAY=localhost:0.1". * * @param display The display. * @return The display number. */ int scim_bridge_display_get_display_number (const ScimBridgeDisplay *display); /** * set the display number of a display. * * @param display The display. * @param display_number The display number. */ void scim_bridge_display_set_display_number (ScimBridgeDisplay *display, int display_number); /** * Get the screen number of a display.\n * A screen number is usually grabbed from the environmental variable "DISPLAY".\n * For example, this function returns "1" if "DISPLAY=localhost:0.1". * * @param display The display. * @return The screen number. */ int scim_bridge_display_get_screen_number (const ScimBridgeDisplay *display); /** * Set the screen number of a display. * * @param display The display. * @param The screen number of a display. */ void scim_bridge_display_set_screen_number (ScimBridgeDisplay *display, int screen_number); #ifdef __cplusplus } #endif #endif /*SCIMBRIDGEDISPLAY_H_*/ scim-1.4.14/extras/immodules/common/scim-bridge-imcontext.h000066400000000000000000000027151177210725600237130ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ #include /** * @file * @author Ryo Dairiki * @brief This header must be included by all the source codes which use IMContextes. */ #ifndef SCIMBRIDGEIMCONTEXT_H_ #define SCIMBRIDGEIMCONTEXT_H_ enum _scim_bridge_preedit_mode_t { PREEDIT_FLOATING, PREEDIT_HANGING, PREEDIT_EMBEDDED, PREEDIT_ANY, }; /** * The type for the way to show the preedit. */ typedef enum _scim_bridge_preedit_mode_t scim_bridge_preedit_mode_t; /** * This is the type for imcontext id. * Notice, every imcontext has the unique id. */ typedef int scim_bridge_imcontext_id_t; #endif /*SCIMBRIDGEIMCONTEXT_H_*/ scim-1.4.14/extras/immodules/common/scim-bridge-key-code.h000066400000000000000000004047421177210725600234070ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ /** * @file * @author Ryo Dairiki * @brief This header describes about key codes. */ #ifndef SCIM_BRIDGE_KEY_CODE_H_ #define SCIM_BRIDGE_KEY_CODE_H_ #include "scim-bridge.h" /** * This is the type of key codes. */ typedef unsigned int scim_bridge_key_code_t; /* All the key_codes are exactly the same as the scim key codes */ static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_NullKey = 0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_VoidSymbol = 0xFFFFFF; /* function keys */ static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_BackSpace = 0xFF08; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Tab = 0xFF09; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Linefeed = 0xFF0A; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Clear = 0xFF0B; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Return = 0xFF0D; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Pause = 0xFF13; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Scroll_Lock = 0xFF14; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Sys_Req = 0xFF15; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Escape = 0xFF1B; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Delete = 0xFFFF; /* International & multi-key character composition */ static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Multi_key = 0xFF20; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Codeinput = 0xFF37; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_SingleCandidate = 0xFF3C; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_MultipleCandidate = 0xFF3D; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_PreviousCandidate = 0xFF3E; /* Japanese keyboard support */ static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Kanji = 0xFF21; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Muhenkan = 0xFF22; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Henkan_Mode = 0xFF23; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Henkan = 0xFF23; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Romaji = 0xFF24; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hiragana = 0xFF25; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Katakana = 0xFF26; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hiragana_Katakana = 0xFF27; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Zenkaku = 0xFF28; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hankaku = 0xFF29; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Zenkaku_Hankaku = 0xFF2A; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Touroku = 0xFF2B; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Massyo = 0xFF2C; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Kana_Lock = 0xFF2D; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Kana_Shift = 0xFF2E; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Eisu_Shift = 0xFF2F; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Eisu_toggle = 0xFF30; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Kanji_Bangou = 0xFF37; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Zen_Koho = 0xFF3D; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Mae_Koho = 0xFF3E; /* Cursor control & motion */ static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Home = 0xFF50; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Left = 0xFF51; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Up = 0xFF52; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Right = 0xFF53; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Down = 0xFF54; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Prior = 0xFF55; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Page_Up = 0xFF55; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Next = 0xFF56; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Page_Down = 0xFF56; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_End = 0xFF57; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Begin = 0xFF58; /* Misc Functions */ static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Select = 0xFF60; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Print = 0xFF61; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Execute = 0xFF62; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Insert = 0xFF63; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Undo = 0xFF65; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Redo = 0xFF66; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Menu = 0xFF67; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Find = 0xFF68; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cancel = 0xFF69; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Help = 0xFF6A; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Break = 0xFF6B; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Mode_switch = 0xFF7E; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Num_Lock = 0xFF7F; /* Keypad */ static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_KP_Space = 0xFF80; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_KP_Tab = 0xFF89; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_KP_Enter = 0xFF8D; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_KP_F1 = 0xFF91; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_KP_F2 = 0xFF92; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_KP_F3 = 0xFF93; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_KP_F4 = 0xFF94; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_KP_Home = 0xFF95; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_KP_Left = 0xFF96; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_KP_Up = 0xFF97; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_KP_Right = 0xFF98; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_KP_Down = 0xFF99; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_KP_Prior = 0xFF9A; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_KP_Page_Up = 0xFF9A; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_KP_Next = 0xFF9B; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_KP_Page_Down = 0xFF9B; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_KP_End = 0xFF9C; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_KP_Begin = 0xFF9D; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_KP_Insert = 0xFF9E; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_KP_Delete = 0xFF9F; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_KP_Equal = 0xFFBD; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_KP_Multiply = 0xFFAA; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_KP_Add = 0xFFAB; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_KP_Separator = 0xFFAC; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_KP_Subtract = 0xFFAD; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_KP_Decimal = 0xFFAE; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_KP_Divide = 0xFFAF; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_KP_0 = 0xFFB0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_KP_1 = 0xFFB1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_KP_2 = 0xFFB2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_KP_3 = 0xFFB3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_KP_4 = 0xFFB4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_KP_5 = 0xFFB5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_KP_6 = 0xFFB6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_KP_7 = 0xFFB7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_KP_8 = 0xFFB8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_KP_9 = 0xFFB9; /* Auxilliary Functions */ static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_F1 = 0xFFBE; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_F2 = 0xFFBF; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_F3 = 0xFFC0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_F4 = 0xFFC1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_F5 = 0xFFC2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_F6 = 0xFFC3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_F7 = 0xFFC4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_F8 = 0xFFC5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_F9 = 0xFFC6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_F10 = 0xFFC7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_F11 = 0xFFC8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_F12 = 0xFFC9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_F13 = 0xFFCA; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_F14 = 0xFFCB; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_F15 = 0xFFCC; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_F16 = 0xFFCD; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_F17 = 0xFFCE; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_F18 = 0xFFCF; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_F19 = 0xFFD0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_F20 = 0xFFD1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_F21 = 0xFFD2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_F22 = 0xFFD3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_F23 = 0xFFD4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_F24 = 0xFFD5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_F25 = 0xFFD6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_F26 = 0xFFD7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_F27 = 0xFFD8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_F28 = 0xFFD9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_F29 = 0xFFDA; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_F30 = 0xFFDB; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_F31 = 0xFFDC; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_F32 = 0xFFDD; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_F33 = 0xFFDE; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_F34 = 0xFFDF; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_F35 = 0xFFE0; /* modifier keys */ static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Shift_L = 0xFFE1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Shift_R = 0xFFE2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Control_L = 0xFFE3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Control_R = 0xFFE4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Caps_Lock = 0xFFE5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Shift_Lock = 0xFFE6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Meta_L = 0xFFE7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Meta_R = 0xFFE8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Alt_L = 0xFFE9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Alt_R = 0xFFEA; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Super_L = 0xFFEB; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Super_R = 0xFFEC; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hyper_L = 0xFFED; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hyper_R = 0xFFEE; /* * ISO 9995 Function and Modifier Keys * Byte 3 = 0xFE */ static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ISO_Lock = 0xFE01; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ISO_Level2_Latch = 0xFE02; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ISO_Level3_Shift = 0xFE03; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ISO_Level3_Latch = 0xFE04; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ISO_Level3_Lock = 0xFE05; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ISO_Group_Shift = 0xFF7E; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ISO_Group_Latch = 0xFE06; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ISO_Group_Lock = 0xFE07; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ISO_Next_Group = 0xFE08; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ISO_Next_Group_Lock = 0xFE09; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ISO_Prev_Group = 0xFE0A; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ISO_Prev_Group_Lock = 0xFE0B; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ISO_First_Group = 0xFE0C; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ISO_First_Group_Lock = 0xFE0D; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ISO_Last_Group = 0xFE0E; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ISO_Last_Group_Lock = 0xFE0F; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ISO_Left_Tab = 0xFE20; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ISO_Move_Line_Up = 0xFE21; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ISO_Move_Line_Down = 0xFE22; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ISO_Partial_Line_Up = 0xFE23; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ISO_Partial_Line_Down = 0xFE24; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ISO_Partial_Space_Left = 0xFE25; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ISO_Partial_Space_Right = 0xFE26; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ISO_Set_Margin_Left = 0xFE27; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ISO_Set_Margin_Right = 0xFE28; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ISO_Release_Margin_Left = 0xFE29; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ISO_Release_Margin_Right = 0xFE2A; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ISO_Release_Both_Margins = 0xFE2B; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ISO_Fast_Cursor_Left = 0xFE2C; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ISO_Fast_Cursor_Right = 0xFE2D; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ISO_Fast_Cursor_Up = 0xFE2E; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ISO_Fast_Cursor_Down = 0xFE2F; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ISO_Continuous_Underline = 0xFE30; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ISO_Discontinuous_Underline = 0xFE31; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ISO_Emphasize = 0xFE32; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ISO_Center_Object = 0xFE33; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ISO_Enter = 0xFE34; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_dead_grave = 0xFE50; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_dead_acute = 0xFE51; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_dead_circumflex = 0xFE52; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_dead_tilde = 0xFE53; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_dead_macron = 0xFE54; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_dead_breve = 0xFE55; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_dead_abovedot = 0xFE56; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_dead_diaeresis = 0xFE57; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_dead_abovering = 0xFE58; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_dead_doubleacute = 0xFE59; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_dead_caron = 0xFE5A; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_dead_cedilla = 0xFE5B; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_dead_ogonek = 0xFE5C; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_dead_iota = 0xFE5D; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_dead_voiced_sound = 0xFE5E; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_dead_semivoiced_sound = 0xFE5F; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_dead_belowdot = 0xFE60; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_dead_hook = 0xFE61; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_dead_horn = 0xFE62; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_First_Virtual_Screen = 0xFED0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Prev_Virtual_Screen = 0xFED1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Next_Virtual_Screen = 0xFED2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Last_Virtual_Screen = 0xFED4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Terminate_Server = 0xFED5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_AccessX_Enable = 0xFE70; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_AccessX_Feedback_Enable = 0xFE71; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_RepeatKeys_Enable = 0xFE72; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_SlowKeys_Enable = 0xFE73; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_BounceKeys_Enable = 0xFE74; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_StickyKeys_Enable = 0xFE75; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_MouseKeys_Enable = 0xFE76; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_MouseKeys_Accel_Enable = 0xFE77; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Overlay1_Enable = 0xFE78; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Overlay2_Enable = 0xFE79; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_AudibleBell_Enable = 0xFE7A; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Pointer_Left = 0xFEE0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Pointer_Right = 0xFEE1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Pointer_Up = 0xFEE2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Pointer_Down = 0xFEE3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Pointer_UpLeft = 0xFEE4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Pointer_UpRight = 0xFEE5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Pointer_DownLeft = 0xFEE6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Pointer_DownRight = 0xFEE7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Pointer_Button_Dflt = 0xFEE8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Pointer_Button1 = 0xFEE9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Pointer_Button2 = 0xFEEA; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Pointer_Button3 = 0xFEEB; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Pointer_Button4 = 0xFEEC; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Pointer_Button5 = 0xFEED; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Pointer_DblClick_Dflt = 0xFEEE; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Pointer_DblClick1 = 0xFEEF; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Pointer_DblClick2 = 0xFEF0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Pointer_DblClick3 = 0xFEF1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Pointer_DblClick4 = 0xFEF2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Pointer_DblClick5 = 0xFEF3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Pointer_Drag_Dflt = 0xFEF4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Pointer_Drag1 = 0xFEF5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Pointer_Drag2 = 0xFEF6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Pointer_Drag3 = 0xFEF7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Pointer_Drag4 = 0xFEF8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Pointer_Drag5 = 0xFEFD; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Pointer_EnableKeys = 0xFEF9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Pointer_Accelerate = 0xFEFA; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Pointer_DfltBtnNext = 0xFEFB; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Pointer_DfltBtnPrev = 0xFEFC; /* * 3270 Terminal Keys * Byte 3 = 0xFD */ static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_3270_Duplicate = 0xFD01; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_3270_FieldMark = 0xFD02; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_3270_Right2 = 0xFD03; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_3270_Left2 = 0xFD04; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_3270_BackTab = 0xFD05; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_3270_EraseEOF = 0xFD06; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_3270_EraseInput = 0xFD07; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_3270_Reset = 0xFD08; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_3270_Quit = 0xFD09; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_3270_PA1 = 0xFD0A; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_3270_PA2 = 0xFD0B; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_3270_PA3 = 0xFD0C; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_3270_Test = 0xFD0D; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_3270_Attn = 0xFD0E; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_3270_CursorBlink = 0xFD0F; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_3270_AltCursor = 0xFD10; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_3270_KeyClick = 0xFD11; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_3270_Jump = 0xFD12; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_3270_Ident = 0xFD13; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_3270_Rule = 0xFD14; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_3270_Copy = 0xFD15; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_3270_Play = 0xFD16; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_3270_Setup = 0xFD17; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_3270_Record = 0xFD18; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_3270_ChangeScreen = 0xFD19; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_3270_DeleteWord = 0xFD1A; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_3270_ExSelect = 0xFD1B; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_3270_CursorSelect = 0xFD1C; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_3270_PrintScreen = 0xFD1D; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_3270_Enter = 0xFD1E; /* Latin 1 */ static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_space = 0x020; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_exclam = 0x021; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_quotedbl = 0x022; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_numbersign = 0x023; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_dollar = 0x024; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_percent = 0x025; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ampersand = 0x026; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_apostrophe = 0x027; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_quoteright = 0x027; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_parenleft = 0x028; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_parenright = 0x029; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_asterisk = 0x02a; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_plus = 0x02b; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_comma = 0x02c; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_minus = 0x02d; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_period = 0x02e; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_slash = 0x02f; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_0 = 0x030; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_1 = 0x031; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_2 = 0x032; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_3 = 0x033; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_4 = 0x034; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_5 = 0x035; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_6 = 0x036; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_7 = 0x037; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_8 = 0x038; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_9 = 0x039; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_colon = 0x03a; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_semicolon = 0x03b; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_less = 0x03c; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_equal = 0x03d; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_greater = 0x03e; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_question = 0x03f; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_at = 0x040; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_A = 0x041; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_B = 0x042; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_C = 0x043; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_D = 0x044; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_E = 0x045; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_F = 0x046; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_G = 0x047; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_H = 0x048; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_I = 0x049; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_J = 0x04a; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_K = 0x04b; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_L = 0x04c; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_M = 0x04d; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_N = 0x04e; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_O = 0x04f; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_P = 0x050; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Q = 0x051; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_R = 0x052; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_S = 0x053; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_T = 0x054; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_U = 0x055; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_V = 0x056; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_W = 0x057; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_X = 0x058; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Y = 0x059; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Z = 0x05a; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_bracketleft = 0x05b; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_backslash = 0x05c; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_bracketright = 0x05d; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_asciicircum = 0x05e; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_underscore = 0x05f; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_grave = 0x060; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_a = 0x061; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_b = 0x062; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_c = 0x063; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_d = 0x064; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_e = 0x065; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_f = 0x066; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_g = 0x067; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_h = 0x068; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_i = 0x069; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_j = 0x06a; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_k = 0x06b; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_l = 0x06c; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_m = 0x06d; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_n = 0x06e; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_o = 0x06f; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_p = 0x070; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_q = 0x071; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_r = 0x072; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_s = 0x073; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_t = 0x074; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_u = 0x075; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_v = 0x076; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_w = 0x077; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_x = 0x078; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_y = 0x079; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_z = 0x07a; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_braceleft = 0x07b; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_bar = 0x07c; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_braceright = 0x07d; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_asciitilde = 0x07e; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_nobreakspace = 0x0a0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_exclamdown = 0x0a1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_cent = 0x0a2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_sterling = 0x0a3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_currency = 0x0a4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_yen = 0x0a5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_brokenbar = 0x0a6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_section = 0x0a7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_diaeresis = 0x0a8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_copyright = 0x0a9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ordfeminine = 0x0aa; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_guillemotleft = 0x0ab; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_notsign = 0x0ac; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_hyphen = 0x0ad; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_registered = 0x0ae; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_macron = 0x0af; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_degree = 0x0b0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_plusminus = 0x0b1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_twosuperior = 0x0b2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_threesuperior = 0x0b3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_acute = 0x0b4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_mu = 0x0b5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_paragraph = 0x0b6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_periodcentered = 0x0b7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_cedilla = 0x0b8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_onesuperior = 0x0b9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_masculine = 0x0ba; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_guillemotright = 0x0bb; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_onequarter = 0x0bc; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_onehalf = 0x0bd; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_threequarters = 0x0be; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_questiondown = 0x0bf; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Agrave = 0x0c0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Aacute = 0x0c1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Acircumflex = 0x0c2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Atilde = 0x0c3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Adiaeresis = 0x0c4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Aring = 0x0c5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_AE = 0x0c6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Ccedilla = 0x0c7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Egrave = 0x0c8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Eacute = 0x0c9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Ecircumflex = 0x0ca; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Ediaeresis = 0x0cb; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Igrave = 0x0cc; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Iacute = 0x0cd; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Icircumflex = 0x0ce; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Idiaeresis = 0x0cf; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ETH = 0x0d0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Eth = 0x0d0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Ntilde = 0x0d1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Ograve = 0x0d2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Oacute = 0x0d3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Ocircumflex = 0x0d4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Otilde = 0x0d5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Odiaeresis = 0x0d6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_multiply = 0x0d7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Ooblique = 0x0d8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Oslash = 0x0d8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Ugrave = 0x0d9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Uacute = 0x0da; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Ucircumflex = 0x0db; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Udiaeresis = 0x0dc; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Yacute = 0x0dd; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_THORN = 0x0de; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thorn = 0x0de; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ssharp = 0x0df; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_agrave = 0x0e0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_aacute = 0x0e1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_acircumflex = 0x0e2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_atilde = 0x0e3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_adiaeresis = 0x0e4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_aring = 0x0e5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ae = 0x0e6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ccedilla = 0x0e7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_egrave = 0x0e8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_eacute = 0x0e9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ecircumflex = 0x0ea; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ediaeresis = 0x0eb; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_igrave = 0x0ec; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_iacute = 0x0ed; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_icircumflex = 0x0ee; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_idiaeresis = 0x0ef; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_eth = 0x0f0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ntilde = 0x0f1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ograve = 0x0f2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_oacute = 0x0f3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ocircumflex = 0x0f4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_otilde = 0x0f5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_odiaeresis = 0x0f6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_division = 0x0f7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_oslash = 0x0f8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ooblique = 0x0f8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ugrave = 0x0f9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_uacute = 0x0fa; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ucircumflex = 0x0fb; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_udiaeresis = 0x0fc; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_yacute = 0x0fd; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_thorn = 0x0fe; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ydiaeresis = 0x0ff; /* * Latin 2 * Byte 3 = 1 */ static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Aogonek = 0x1a1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_breve = 0x1a2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Lstroke = 0x1a3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Lcaron = 0x1a5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Sacute = 0x1a6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Scaron = 0x1a9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Scedilla = 0x1aa; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Tcaron = 0x1ab; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Zacute = 0x1ac; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Zcaron = 0x1ae; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Zabovedot = 0x1af; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_aogonek = 0x1b1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ogonek = 0x1b2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_lstroke = 0x1b3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_lcaron = 0x1b5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_sacute = 0x1b6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_caron = 0x1b7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_scaron = 0x1b9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_scedilla = 0x1ba; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_tcaron = 0x1bb; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_zacute = 0x1bc; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_doubleacute = 0x1bd; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_zcaron = 0x1be; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_zabovedot = 0x1bf; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Racute = 0x1c0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Abreve = 0x1c3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Lacute = 0x1c5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cacute = 0x1c6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Ccaron = 0x1c8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Eogonek = 0x1ca; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Ecaron = 0x1cc; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Dcaron = 0x1cf; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Dstroke = 0x1d0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Nacute = 0x1d1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Ncaron = 0x1d2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Odoubleacute = 0x1d5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Rcaron = 0x1d8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Uring = 0x1d9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Udoubleacute = 0x1db; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Tcedilla = 0x1de; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_racute = 0x1e0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_abreve = 0x1e3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_lacute = 0x1e5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_cacute = 0x1e6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ccaron = 0x1e8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_eogonek = 0x1ea; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ecaron = 0x1ec; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_dcaron = 0x1ef; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_dstroke = 0x1f0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_nacute = 0x1f1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ncaron = 0x1f2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_odoubleacute = 0x1f5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_udoubleacute = 0x1fb; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_rcaron = 0x1f8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_uring = 0x1f9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_tcedilla = 0x1fe; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_abovedot = 0x1ff; /* * Latin 3 * Byte 3 = 2 */ static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hstroke = 0x2a1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hcircumflex = 0x2a6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Iabovedot = 0x2a9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Gbreve = 0x2ab; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Jcircumflex = 0x2ac; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_hstroke = 0x2b1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_hcircumflex = 0x2b6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_idotless = 0x2b9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_gbreve = 0x2bb; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_jcircumflex = 0x2bc; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cabovedot = 0x2c5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Ccircumflex = 0x2c6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Gabovedot = 0x2d5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Gcircumflex = 0x2d8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Ubreve = 0x2dd; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Scircumflex = 0x2de; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_cabovedot = 0x2e5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ccircumflex = 0x2e6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_gabovedot = 0x2f5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_gcircumflex = 0x2f8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ubreve = 0x2fd; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_scircumflex = 0x2fe; /* * Latin 4 * Byte 3 = 3 */ static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kra = 0x3a2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kappa = 0x3a2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Rcedilla = 0x3a3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Itilde = 0x3a5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Lcedilla = 0x3a6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Emacron = 0x3aa; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Gcedilla = 0x3ab; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Tslash = 0x3ac; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_rcedilla = 0x3b3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_itilde = 0x3b5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_lcedilla = 0x3b6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_emacron = 0x3ba; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_gcedilla = 0x3bb; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_tslash = 0x3bc; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ENG = 0x3bd; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_eng = 0x3bf; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Amacron = 0x3c0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Iogonek = 0x3c7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Eabovedot = 0x3cc; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Imacron = 0x3cf; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Ncedilla = 0x3d1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Omacron = 0x3d2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Kcedilla = 0x3d3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Uogonek = 0x3d9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Utilde = 0x3dd; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Umacron = 0x3de; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_amacron = 0x3e0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_iogonek = 0x3e7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_eabovedot = 0x3ec; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_imacron = 0x3ef; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ncedilla = 0x3f1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_omacron = 0x3f2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kcedilla = 0x3f3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_uogonek = 0x3f9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_utilde = 0x3fd; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_umacron = 0x3fe; /* * Latin-8 * Byte 3 = 18 */ static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Babovedot = 0x12a1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_babovedot = 0x12a2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Dabovedot = 0x12a6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Wgrave = 0x12a8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Wacute = 0x12aa; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_dabovedot = 0x12ab; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Ygrave = 0x12ac; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Fabovedot = 0x12b0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_fabovedot = 0x12b1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Mabovedot = 0x12b4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_mabovedot = 0x12b5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Pabovedot = 0x12b7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_wgrave = 0x12b8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_pabovedot = 0x12b9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_wacute = 0x12ba; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Sabovedot = 0x12bb; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ygrave = 0x12bc; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Wdiaeresis = 0x12bd; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_wdiaeresis = 0x12be; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_sabovedot = 0x12bf; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Wcircumflex = 0x12d0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Tabovedot = 0x12d7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Ycircumflex = 0x12de; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_wcircumflex = 0x12f0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_tabovedot = 0x12f7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ycircumflex = 0x12fe; /* * Latin-9 (a.k.a.Latin-0) * Byte 3 = 19 */ static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_OE = 0x13bc; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_oe = 0x13bd; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Ydiaeresis = 0x13be; /* * Katakana * Byte 3 = 4 */ static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_overline = 0x47e; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_fullstop = 0x4a1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_openingbracket = 0x4a2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_closingbracket = 0x4a3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_comma = 0x4a4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_conjunctive = 0x4a5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_middledot = 0x4a5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_WO = 0x4a6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_a = 0x4a7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_i = 0x4a8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_u = 0x4a9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_e = 0x4aa; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_o = 0x4ab; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_ya = 0x4ac; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_yu = 0x4ad; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_yo = 0x4ae; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_tsu = 0x4af; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_tu = 0x4af; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_prolongedsound = 0x4b0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_A = 0x4b1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_I = 0x4b2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_U = 0x4b3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_E = 0x4b4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_O = 0x4b5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_KA = 0x4b6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_KI = 0x4b7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_KU = 0x4b8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_KE = 0x4b9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_KO = 0x4ba; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_SA = 0x4bb; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_SHI = 0x4bc; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_SU = 0x4bd; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_SE = 0x4be; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_SO = 0x4bf; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_TA = 0x4c0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_CHI = 0x4c1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_TI = 0x4c1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_TSU = 0x4c2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_TU = 0x4c2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_TE = 0x4c3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_TO = 0x4c4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_NA = 0x4c5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_NI = 0x4c6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_NU = 0x4c7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_NE = 0x4c8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_NO = 0x4c9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_HA = 0x4ca; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_HI = 0x4cb; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_FU = 0x4cc; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_HU = 0x4cc; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_HE = 0x4cd; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_HO = 0x4ce; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_MA = 0x4cf; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_MI = 0x4d0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_MU = 0x4d1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_ME = 0x4d2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_MO = 0x4d3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_YA = 0x4d4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_YU = 0x4d5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_YO = 0x4d6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_RA = 0x4d7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_RI = 0x4d8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_RU = 0x4d9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_RE = 0x4da; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_RO = 0x4db; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_WA = 0x4dc; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_N = 0x4dd; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_voicedsound = 0x4de; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_semivoicedsound = 0x4df; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_kana_switch = 0xFF7E; /* * Arabic * Byte 3 = 5 */ static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Farsi_0 = 0x590; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Farsi_1 = 0x591; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Farsi_2 = 0x592; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Farsi_3 = 0x593; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Farsi_4 = 0x594; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Farsi_5 = 0x595; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Farsi_6 = 0x596; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Farsi_7 = 0x597; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Farsi_8 = 0x598; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Farsi_9 = 0x599; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_percent = 0x5a5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_superscript_alef = 0x5a6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_tteh = 0x5a7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_peh = 0x5a8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_tcheh = 0x5a9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_ddal = 0x5aa; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_rreh = 0x5ab; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_comma = 0x5ac; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_fullstop = 0x5ae; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_0 = 0x5b0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_1 = 0x5b1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_2 = 0x5b2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_3 = 0x5b3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_4 = 0x5b4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_5 = 0x5b5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_6 = 0x5b6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_7 = 0x5b7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_8 = 0x5b8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_9 = 0x5b9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_semicolon = 0x5bb; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_question_mark = 0x5bf; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_hamza = 0x5c1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_maddaonalef = 0x5c2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_hamzaonalef = 0x5c3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_hamzaonwaw = 0x5c4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_hamzaunderalef = 0x5c5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_hamzaonyeh = 0x5c6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_alef = 0x5c7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_beh = 0x5c8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_tehmarbuta = 0x5c9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_teh = 0x5ca; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_theh = 0x5cb; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_jeem = 0x5cc; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_hah = 0x5cd; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_khah = 0x5ce; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_dal = 0x5cf; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_thal = 0x5d0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_ra = 0x5d1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_zain = 0x5d2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_seen = 0x5d3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_sheen = 0x5d4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_sad = 0x5d5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_dad = 0x5d6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_tah = 0x5d7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_zah = 0x5d8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_ain = 0x5d9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_ghain = 0x5da; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_tatweel = 0x5e0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_feh = 0x5e1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_qaf = 0x5e2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_kaf = 0x5e3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_lam = 0x5e4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_meem = 0x5e5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_noon = 0x5e6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_ha = 0x5e7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_heh = 0x5e7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_waw = 0x5e8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_alefmaksura = 0x5e9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_yeh = 0x5ea; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_fathatan = 0x5eb; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_dammatan = 0x5ec; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_kasratan = 0x5ed; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_fatha = 0x5ee; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_damma = 0x5ef; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_kasra = 0x5f0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_shadda = 0x5f1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_sukun = 0x5f2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_madda_above = 0x5f3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_hamza_above = 0x5f4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_hamza_below = 0x5f5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_jeh = 0x5f6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_veh = 0x5f7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_keheh = 0x5f8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_gaf = 0x5f9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_noon_ghunna = 0x5fa; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_heh_doachashmee = 0x5fb; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Farsi_yeh = 0x5fc; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_farsi_yeh = 0x5fc; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_yeh_baree = 0x5fd; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_heh_goal = 0x5fe; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Arabic_switch = 0xFF7E; /* * Cyrillic * Byte 3 = 6 */ static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_GHE_bar = 0x680; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_ghe_bar = 0x690; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_ZHE_descender = 0x681; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_zhe_descender = 0x691; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_KA_descender = 0x682; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_ka_descender = 0x692; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_KA_vertstroke = 0x683; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_ka_vertstroke = 0x693; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_EN_descender = 0x684; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_en_descender = 0x694; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_U_straight = 0x685; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_u_straight = 0x695; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_U_straight_bar = 0x686; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_u_straight_bar = 0x696; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_HA_descender = 0x687; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_ha_descender = 0x697; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_CHE_descender = 0x688; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_che_descender = 0x698; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_CHE_vertstroke = 0x689; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_che_vertstroke = 0x699; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_SHHA = 0x68a; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_shha = 0x69a; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_SCHWA = 0x68c; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_schwa = 0x69c; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_I_macron = 0x68d; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_i_macron = 0x69d; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_O_bar = 0x68e; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_o_bar = 0x69e; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_U_macron = 0x68f; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_u_macron = 0x69f; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Serbian_dje = 0x6a1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Macedonia_gje = 0x6a2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_io = 0x6a3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Ukrainian_ie = 0x6a4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Ukranian_je = 0x6a4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Macedonia_dse = 0x6a5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Ukrainian_i = 0x6a6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Ukranian_i = 0x6a6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Ukrainian_yi = 0x6a7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Ukranian_yi = 0x6a7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_je = 0x6a8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Serbian_je = 0x6a8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_lje = 0x6a9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Serbian_lje = 0x6a9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_nje = 0x6aa; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Serbian_nje = 0x6aa; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Serbian_tshe = 0x6ab; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Macedonia_kje = 0x6ac; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Ukrainian_ghe_with_upturn = 0x6ad; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Byelorussian_shortu = 0x6ae; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_dzhe = 0x6af; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Serbian_dze = 0x6af; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_numerosign = 0x6b0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Serbian_DJE = 0x6b1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Macedonia_GJE = 0x6b2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_IO = 0x6b3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Ukrainian_IE = 0x6b4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Ukranian_JE = 0x6b4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Macedonia_DSE = 0x6b5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Ukrainian_I = 0x6b6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Ukranian_I = 0x6b6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Ukrainian_YI = 0x6b7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Ukranian_YI = 0x6b7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_JE = 0x6b8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Serbian_JE = 0x6b8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_LJE = 0x6b9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Serbian_LJE = 0x6b9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_NJE = 0x6ba; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Serbian_NJE = 0x6ba; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Serbian_TSHE = 0x6bb; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Macedonia_KJE = 0x6bc; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Ukrainian_GHE_WITH_UPTURN = 0x6bd; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Byelorussian_SHORTU = 0x6be; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_DZHE = 0x6bf; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Serbian_DZE = 0x6bf; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_yu = 0x6c0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_a = 0x6c1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_be = 0x6c2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_tse = 0x6c3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_de = 0x6c4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_ie = 0x6c5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_ef = 0x6c6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_ghe = 0x6c7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_ha = 0x6c8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_i = 0x6c9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_shorti = 0x6ca; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_ka = 0x6cb; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_el = 0x6cc; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_em = 0x6cd; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_en = 0x6ce; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_o = 0x6cf; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_pe = 0x6d0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_ya = 0x6d1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_er = 0x6d2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_es = 0x6d3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_te = 0x6d4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_u = 0x6d5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_zhe = 0x6d6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_ve = 0x6d7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_softsign = 0x6d8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_yeru = 0x6d9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_ze = 0x6da; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_sha = 0x6db; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_e = 0x6dc; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_shcha = 0x6dd; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_che = 0x6de; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_hardsign = 0x6df; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_YU = 0x6e0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_A = 0x6e1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_BE = 0x6e2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_TSE = 0x6e3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_DE = 0x6e4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_IE = 0x6e5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_EF = 0x6e6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_GHE = 0x6e7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_HA = 0x6e8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_I = 0x6e9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_SHORTI = 0x6ea; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_KA = 0x6eb; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_EL = 0x6ec; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_EM = 0x6ed; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_EN = 0x6ee; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_O = 0x6ef; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_PE = 0x6f0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_YA = 0x6f1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_ER = 0x6f2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_ES = 0x6f3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_TE = 0x6f4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_U = 0x6f5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_ZHE = 0x6f6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_VE = 0x6f7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_SOFTSIGN = 0x6f8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_YERU = 0x6f9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_ZE = 0x6fa; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_SHA = 0x6fb; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_E = 0x6fc; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_SHCHA = 0x6fd; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_CHE = 0x6fe; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Cyrillic_HARDSIGN = 0x6ff; /* * Greek * Byte 3 = 7 */ static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_ALPHAaccent = 0x7a1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_EPSILONaccent = 0x7a2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_ETAaccent = 0x7a3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_IOTAaccent = 0x7a4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_IOTAdieresis = 0x7a5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_IOTAdiaeresis = 0x7a5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_OMICRONaccent = 0x7a7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_UPSILONaccent = 0x7a8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_UPSILONdieresis = 0x7a9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_OMEGAaccent = 0x7ab; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_accentdieresis = 0x7ae; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_horizbar = 0x7af; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_alphaaccent = 0x7b1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_epsilonaccent = 0x7b2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_etaaccent = 0x7b3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_iotaaccent = 0x7b4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_iotadieresis = 0x7b5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_iotaaccentdieresis = 0x7b6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_omicronaccent = 0x7b7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_upsilonaccent = 0x7b8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_upsilondieresis = 0x7b9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_upsilonaccentdieresis = 0x7ba; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_omegaaccent = 0x7bb; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_ALPHA = 0x7c1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_BETA = 0x7c2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_GAMMA = 0x7c3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_DELTA = 0x7c4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_EPSILON = 0x7c5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_ZETA = 0x7c6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_ETA = 0x7c7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_THETA = 0x7c8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_IOTA = 0x7c9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_KAPPA = 0x7ca; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_LAMDA = 0x7cb; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_LAMBDA = 0x7cb; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_MU = 0x7cc; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_NU = 0x7cd; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_XI = 0x7ce; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_OMICRON = 0x7cf; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_PI = 0x7d0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_RHO = 0x7d1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_SIGMA = 0x7d2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_TAU = 0x7d4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_UPSILON = 0x7d5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_PHI = 0x7d6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_CHI = 0x7d7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_PSI = 0x7d8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_OMEGA = 0x7d9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_alpha = 0x7e1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_beta = 0x7e2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_gamma = 0x7e3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_delta = 0x7e4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_epsilon = 0x7e5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_zeta = 0x7e6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_eta = 0x7e7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_theta = 0x7e8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_iota = 0x7e9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_kappa = 0x7ea; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_lamda = 0x7eb; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_lambda = 0x7eb; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_mu = 0x7ec; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_nu = 0x7ed; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_xi = 0x7ee; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_omicron = 0x7ef; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_pi = 0x7f0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_rho = 0x7f1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_sigma = 0x7f2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_finalsmallsigma = 0x7f3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_tau = 0x7f4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_upsilon = 0x7f5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_phi = 0x7f6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_chi = 0x7f7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_psi = 0x7f8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_omega = 0x7f9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Greek_switch = 0xFF7E; /* * Technical * Byte 3 = 8 */ static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_leftradical = 0x8a1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_topleftradical = 0x8a2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_horizconnector = 0x8a3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_topintegral = 0x8a4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_botintegral = 0x8a5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_vertconnector = 0x8a6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_topleftsqbracket = 0x8a7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_botleftsqbracket = 0x8a8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_toprightsqbracket = 0x8a9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_botrightsqbracket = 0x8aa; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_topleftparens = 0x8ab; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_botleftparens = 0x8ac; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_toprightparens = 0x8ad; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_botrightparens = 0x8ae; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_leftmiddlecurlybrace = 0x8af; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_rightmiddlecurlybrace = 0x8b0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_topleftsummation = 0x8b1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_botleftsummation = 0x8b2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_topvertsummationconnector = 0x8b3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_botvertsummationconnector = 0x8b4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_toprightsummation = 0x8b5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_botrightsummation = 0x8b6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_rightmiddlesummation = 0x8b7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_lessthanequal = 0x8bc; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_notequal = 0x8bd; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_greaterthanequal = 0x8be; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_integral = 0x8bf; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_therefore = 0x8c0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_variation = 0x8c1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_infinity = 0x8c2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_nabla = 0x8c5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_approximate = 0x8c8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_similarequal = 0x8c9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ifonlyif = 0x8cd; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_implies = 0x8ce; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_identical = 0x8cf; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_radical = 0x8d6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_includedin = 0x8da; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_includes = 0x8db; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_intersection = 0x8dc; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_union = 0x8dd; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_logicaland = 0x8de; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_logicalor = 0x8df; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_partialderivative = 0x8ef; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_function = 0x8f6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_leftarrow = 0x8fb; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_uparrow = 0x8fc; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_rightarrow = 0x8fd; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_downarrow = 0x8fe; /* * Special * Byte 3 = 9 */ static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_blank = 0x9df; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_soliddiamond = 0x9e0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_checkerboard = 0x9e1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ht = 0x9e2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ff = 0x9e3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_cr = 0x9e4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_lf = 0x9e5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_nl = 0x9e8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_vt = 0x9e9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_lowrightcorner = 0x9ea; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_uprightcorner = 0x9eb; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_upleftcorner = 0x9ec; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_lowleftcorner = 0x9ed; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_crossinglines = 0x9ee; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_horizlinescan1 = 0x9ef; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_horizlinescan3 = 0x9f0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_horizlinescan5 = 0x9f1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_horizlinescan7 = 0x9f2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_horizlinescan9 = 0x9f3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_leftt = 0x9f4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_rightt = 0x9f5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_bott = 0x9f6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_topt = 0x9f7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_vertbar = 0x9f8; /* * Publishing * Byte 3 = a */ static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_emspace = 0xaa1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_enspace = 0xaa2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_em3space = 0xaa3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_em4space = 0xaa4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_digitspace = 0xaa5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_punctspace = 0xaa6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_thinspace = 0xaa7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_hairspace = 0xaa8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_emdash = 0xaa9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_endash = 0xaaa; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_signifblank = 0xaac; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ellipsis = 0xaae; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_doubbaselinedot = 0xaaf; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_onethird = 0xab0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_twothirds = 0xab1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_onefifth = 0xab2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_twofifths = 0xab3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_threefifths = 0xab4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_fourfifths = 0xab5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_onesixth = 0xab6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_fivesixths = 0xab7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_careof = 0xab8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_figdash = 0xabb; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_leftanglebracket = 0xabc; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_decimalpoint = 0xabd; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_rightanglebracket = 0xabe; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_marker = 0xabf; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_oneeighth = 0xac3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_threeeighths = 0xac4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_fiveeighths = 0xac5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_seveneighths = 0xac6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_trademark = 0xac9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_signaturemark = 0xaca; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_trademarkincircle = 0xacb; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_leftopentriangle = 0xacc; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_rightopentriangle = 0xacd; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_emopencircle = 0xace; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_emopenrectangle = 0xacf; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_leftsinglequotemark = 0xad0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_rightsinglequotemark = 0xad1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_leftdoublequotemark = 0xad2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_rightdoublequotemark = 0xad3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_prescription = 0xad4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_minutes = 0xad6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_seconds = 0xad7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_latincross = 0xad9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_hexagram = 0xada; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_filledrectbullet = 0xadb; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_filledlefttribullet = 0xadc; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_filledrighttribullet = 0xadd; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_emfilledcircle = 0xade; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_emfilledrect = 0xadf; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_enopencircbullet = 0xae0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_enopensquarebullet = 0xae1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_openrectbullet = 0xae2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_opentribulletup = 0xae3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_opentribulletdown = 0xae4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_openstar = 0xae5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_enfilledcircbullet = 0xae6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_enfilledsqbullet = 0xae7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_filledtribulletup = 0xae8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_filledtribulletdown = 0xae9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_leftpointer = 0xaea; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_rightpointer = 0xaeb; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_club = 0xaec; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_diamond = 0xaed; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_heart = 0xaee; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_maltesecross = 0xaf0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_dagger = 0xaf1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_doubledagger = 0xaf2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_checkmark = 0xaf3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ballotcross = 0xaf4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_musicalsharp = 0xaf5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_musicalflat = 0xaf6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_malesymbol = 0xaf7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_femalesymbol = 0xaf8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_telephone = 0xaf9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_telephonerecorder = 0xafa; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_phonographcopyright = 0xafb; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_caret = 0xafc; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_singlelowquotemark = 0xafd; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_doublelowquotemark = 0xafe; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_cursor = 0xaff; /* * APL * Byte 3 = b */ static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_leftcaret = 0xba3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_rightcaret = 0xba6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_downcaret = 0xba8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_upcaret = 0xba9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_overbar = 0xbc0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_downtack = 0xbc2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_upshoe = 0xbc3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_downstile = 0xbc4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_underbar = 0xbc6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_jot = 0xbca; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_quad = 0xbcc; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_uptack = 0xbce; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_circle = 0xbcf; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_upstile = 0xbd3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_downshoe = 0xbd6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_rightshoe = 0xbd8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_leftshoe = 0xbda; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_lefttack = 0xbdc; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_righttack = 0xbfc; /* * Hebrew * Byte 3 = c */ static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_hebrew_doublelowline = 0xcdf; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_hebrew_aleph = 0xce0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_hebrew_bet = 0xce1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_hebrew_beth = 0xce1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_hebrew_gimel = 0xce2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_hebrew_gimmel = 0xce2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_hebrew_dalet = 0xce3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_hebrew_daleth = 0xce3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_hebrew_he = 0xce4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_hebrew_waw = 0xce5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_hebrew_zain = 0xce6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_hebrew_zayin = 0xce6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_hebrew_chet = 0xce7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_hebrew_het = 0xce7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_hebrew_tet = 0xce8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_hebrew_teth = 0xce8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_hebrew_yod = 0xce9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_hebrew_finalkaph = 0xcea; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_hebrew_kaph = 0xceb; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_hebrew_lamed = 0xcec; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_hebrew_finalmem = 0xced; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_hebrew_mem = 0xcee; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_hebrew_finalnun = 0xcef; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_hebrew_nun = 0xcf0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_hebrew_samech = 0xcf1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_hebrew_samekh = 0xcf1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_hebrew_ayin = 0xcf2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_hebrew_finalpe = 0xcf3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_hebrew_pe = 0xcf4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_hebrew_finalzade = 0xcf5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_hebrew_finalzadi = 0xcf5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_hebrew_zade = 0xcf6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_hebrew_zadi = 0xcf6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_hebrew_qoph = 0xcf7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_hebrew_kuf = 0xcf7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_hebrew_resh = 0xcf8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_hebrew_shin = 0xcf9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_hebrew_taw = 0xcfa; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_hebrew_taf = 0xcfa; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hebrew_switch = 0xFF7E; /* * Thai * Byte 3 = d */ static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_kokai = 0xda1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_khokhai = 0xda2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_khokhuat = 0xda3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_khokhwai = 0xda4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_khokhon = 0xda5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_khorakhang = 0xda6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_ngongu = 0xda7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_chochan = 0xda8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_choching = 0xda9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_chochang = 0xdaa; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_soso = 0xdab; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_chochoe = 0xdac; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_yoying = 0xdad; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_dochada = 0xdae; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_topatak = 0xdaf; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_thothan = 0xdb0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_thonangmontho = 0xdb1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_thophuthao = 0xdb2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_nonen = 0xdb3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_dodek = 0xdb4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_totao = 0xdb5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_thothung = 0xdb6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_thothahan = 0xdb7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_thothong = 0xdb8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_nonu = 0xdb9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_bobaimai = 0xdba; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_popla = 0xdbb; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_phophung = 0xdbc; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_fofa = 0xdbd; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_phophan = 0xdbe; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_fofan = 0xdbf; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_phosamphao = 0xdc0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_moma = 0xdc1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_yoyak = 0xdc2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_rorua = 0xdc3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_ru = 0xdc4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_loling = 0xdc5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_lu = 0xdc6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_wowaen = 0xdc7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_sosala = 0xdc8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_sorusi = 0xdc9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_sosua = 0xdca; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_hohip = 0xdcb; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_lochula = 0xdcc; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_oang = 0xdcd; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_honokhuk = 0xdce; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_paiyannoi = 0xdcf; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_saraa = 0xdd0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_maihanakat = 0xdd1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_saraaa = 0xdd2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_saraam = 0xdd3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_sarai = 0xdd4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_saraii = 0xdd5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_saraue = 0xdd6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_sarauee = 0xdd7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_sarau = 0xdd8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_sarauu = 0xdd9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_phinthu = 0xdda; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_maihanakat_maitho = 0xdde; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_baht = 0xddf; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_sarae = 0xde0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_saraae = 0xde1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_sarao = 0xde2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_saraaimaimuan = 0xde3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_saraaimaimalai = 0xde4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_lakkhangyao = 0xde5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_maiyamok = 0xde6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_maitaikhu = 0xde7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_maiek = 0xde8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_maitho = 0xde9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_maitri = 0xdea; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_maichattawa = 0xdeb; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_thanthakhat = 0xdec; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_nikhahit = 0xded; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_leksun = 0xdf0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_leknung = 0xdf1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_leksong = 0xdf2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_leksam = 0xdf3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_leksi = 0xdf4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_lekha = 0xdf5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_lekhok = 0xdf6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_lekchet = 0xdf7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_lekpaet = 0xdf8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Thai_lekkao = 0xdf9; /* * Korean * Byte 3 = e */ static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul = 0xff31; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_Start = 0xff32; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_End = 0xff33; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_Hanja = 0xff34; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_Jamo = 0xff35; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_Romaja = 0xff36; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_Codeinput = 0xff37; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_Jeonja = 0xff38; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_Banja = 0xff39; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_PreHanja = 0xff3a; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_PostHanja = 0xff3b; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_SingleCandidate = 0xff3c; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_MultipleCandidate = 0xff3d; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_PreviousCandidate = 0xff3e; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_Special = 0xff3f; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_switch = 0xFF7E; /* Hangul Consonant Characters */ static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_Kiyeog = 0xea1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_SsangKiyeog = 0xea2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_KiyeogSios = 0xea3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_Nieun = 0xea4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_NieunJieuj = 0xea5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_NieunHieuh = 0xea6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_Dikeud = 0xea7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_SsangDikeud = 0xea8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_Rieul = 0xea9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_RieulKiyeog = 0xeaa; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_RieulMieum = 0xeab; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_RieulPieub = 0xeac; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_RieulSios = 0xead; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_RieulTieut = 0xeae; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_RieulPhieuf = 0xeaf; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_RieulHieuh = 0xeb0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_Mieum = 0xeb1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_Pieub = 0xeb2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_SsangPieub = 0xeb3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_PieubSios = 0xeb4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_Sios = 0xeb5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_SsangSios = 0xeb6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_Ieung = 0xeb7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_Jieuj = 0xeb8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_SsangJieuj = 0xeb9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_Cieuc = 0xeba; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_Khieuq = 0xebb; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_Tieut = 0xebc; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_Phieuf = 0xebd; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_Hieuh = 0xebe; /* Hangul Vowel Characters */ static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_A = 0xebf; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_AE = 0xec0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_YA = 0xec1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_YAE = 0xec2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_EO = 0xec3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_E = 0xec4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_YEO = 0xec5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_YE = 0xec6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_O = 0xec7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_WA = 0xec8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_WAE = 0xec9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_OE = 0xeca; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_YO = 0xecb; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_U = 0xecc; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_WEO = 0xecd; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_WE = 0xece; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_WI = 0xecf; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_YU = 0xed0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_EU = 0xed1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_YI = 0xed2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_I = 0xed3; /* Hangul syllable-final (JongSeong) Characters */ static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_J_Kiyeog = 0xed4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_J_SsangKiyeog = 0xed5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_J_KiyeogSios = 0xed6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_J_Nieun = 0xed7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_J_NieunJieuj = 0xed8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_J_NieunHieuh = 0xed9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_J_Dikeud = 0xeda; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_J_Rieul = 0xedb; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_J_RieulKiyeog = 0xedc; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_J_RieulMieum = 0xedd; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_J_RieulPieub = 0xede; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_J_RieulSios = 0xedf; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_J_RieulTieut = 0xee0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_J_RieulPhieuf = 0xee1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_J_RieulHieuh = 0xee2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_J_Mieum = 0xee3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_J_Pieub = 0xee4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_J_PieubSios = 0xee5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_J_Sios = 0xee6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_J_SsangSios = 0xee7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_J_Ieung = 0xee8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_J_Jieuj = 0xee9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_J_Cieuc = 0xeea; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_J_Khieuq = 0xeeb; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_J_Tieut = 0xeec; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_J_Phieuf = 0xeed; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_J_Hieuh = 0xeee; /* Ancient Hangul Consonant Characters */ static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_RieulYeorinHieuh = 0xeef; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_SunkyeongeumMieum = 0xef0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_SunkyeongeumPieub = 0xef1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_PanSios = 0xef2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_KkogjiDalrinIeung = 0xef3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_SunkyeongeumPhieuf = 0xef4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_YeorinHieuh = 0xef5; /* Ancient Hangul Vowel Characters */ static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_AraeA = 0xef6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_AraeAE = 0xef7; /* Ancient Hangul syllable-final (JongSeong) Characters */ static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_J_PanSios = 0xef8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_J_KkogjiDalrinIeung = 0xef9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Hangul_J_YeorinHieuh = 0xefa; /* Korean currency symbol */ static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Korean_Won = 0xeff; /* * Armenian * Byte 3 = 0x14 */ static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_eternity = 0x14a1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_ligature_ew = 0x14a2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_full_stop = 0x14a3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_verjaket = 0x14a3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_parenright = 0x14a4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_parenleft = 0x14a5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_guillemotright = 0x14a6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_guillemotleft = 0x14a7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_em_dash = 0x14a8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_dot = 0x14a9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_mijaket = 0x14a9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_separation_mark = 0x14aa; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_but = 0x14aa; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_comma = 0x14ab; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_en_dash = 0x14ac; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_hyphen = 0x14ad; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_yentamna = 0x14ad; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_ellipsis = 0x14ae; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_exclam = 0x14af; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_amanak = 0x14af; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_accent = 0x14b0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_shesht = 0x14b0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_question = 0x14b1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_paruyk = 0x14b1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_AYB = 0x14b2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_ayb = 0x14b3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_BEN = 0x14b4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_ben = 0x14b5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_GIM = 0x14b6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_gim = 0x14b7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_DA = 0x14b8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_da = 0x14b9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_YECH = 0x14ba; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_yech = 0x14bb; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_ZA = 0x14bc; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_za = 0x14bd; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_E = 0x14be; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_e = 0x14bf; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_AT = 0x14c0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_at = 0x14c1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_TO = 0x14c2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_to = 0x14c3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_ZHE = 0x14c4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_zhe = 0x14c5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_INI = 0x14c6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_ini = 0x14c7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_LYUN = 0x14c8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_lyun = 0x14c9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_KHE = 0x14ca; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_khe = 0x14cb; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_TSA = 0x14cc; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_tsa = 0x14cd; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_KEN = 0x14ce; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_ken = 0x14cf; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_HO = 0x14d0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_ho = 0x14d1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_DZA = 0x14d2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_dza = 0x14d3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_GHAT = 0x14d4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_ghat = 0x14d5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_TCHE = 0x14d6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_tche = 0x14d7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_MEN = 0x14d8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_men = 0x14d9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_HI = 0x14da; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_hi = 0x14db; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_NU = 0x14dc; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_nu = 0x14dd; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_SHA = 0x14de; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_sha = 0x14df; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_VO = 0x14e0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_vo = 0x14e1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_CHA = 0x14e2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_cha = 0x14e3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_PE = 0x14e4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_pe = 0x14e5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_JE = 0x14e6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_je = 0x14e7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_RA = 0x14e8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_ra = 0x14e9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_SE = 0x14ea; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_se = 0x14eb; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_VEV = 0x14ec; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_vev = 0x14ed; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_TYUN = 0x14ee; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_tyun = 0x14ef; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_RE = 0x14f0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_re = 0x14f1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_TSO = 0x14f2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_tso = 0x14f3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_VYUN = 0x14f4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_vyun = 0x14f5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_PYUR = 0x14f6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_pyur = 0x14f7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_KE = 0x14f8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_ke = 0x14f9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_O = 0x14fa; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_o = 0x14fb; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_FE = 0x14fc; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_fe = 0x14fd; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_apostrophe = 0x14fe; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Armenian_section_sign = 0x14ff; /* * Georgian * Byte 3 = 0x15 */ static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Georgian_an = 0x15d0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Georgian_ban = 0x15d1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Georgian_gan = 0x15d2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Georgian_don = 0x15d3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Georgian_en = 0x15d4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Georgian_vin = 0x15d5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Georgian_zen = 0x15d6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Georgian_tan = 0x15d7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Georgian_in = 0x15d8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Georgian_kan = 0x15d9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Georgian_las = 0x15da; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Georgian_man = 0x15db; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Georgian_nar = 0x15dc; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Georgian_on = 0x15dd; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Georgian_par = 0x15de; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Georgian_zhar = 0x15df; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Georgian_rae = 0x15e0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Georgian_san = 0x15e1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Georgian_tar = 0x15e2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Georgian_un = 0x15e3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Georgian_phar = 0x15e4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Georgian_khar = 0x15e5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Georgian_ghan = 0x15e6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Georgian_qar = 0x15e7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Georgian_shin = 0x15e8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Georgian_chin = 0x15e9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Georgian_can = 0x15ea; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Georgian_jil = 0x15eb; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Georgian_cil = 0x15ec; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Georgian_char = 0x15ed; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Georgian_xan = 0x15ee; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Georgian_jhan = 0x15ef; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Georgian_hae = 0x15f0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Georgian_he = 0x15f1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Georgian_hie = 0x15f2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Georgian_we = 0x15f3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Georgian_har = 0x15f4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Georgian_hoe = 0x15f5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Georgian_fi = 0x15f6; /* * Azeri (and other Turkic or Caucasian languages of ex-USSR) * Byte 3 = 0x16 */ /* latin */ static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Ccedillaabovedot = 0x16a2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Xabovedot = 0x16a3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Qabovedot = 0x16a5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Ibreve = 0x16a6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_IE = 0x16a7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_UO = 0x16a8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Zstroke = 0x16a9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Gcaron = 0x16aa; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Obarred = 0x16af; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ccedillaabovedot = 0x16b2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_xabovedot = 0x16b3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Ocaron = 0x16b4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_qabovedot = 0x16b5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ibreve = 0x16b6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ie = 0x16b7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_uo = 0x16b8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_zstroke = 0x16b9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_gcaron = 0x16ba; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ocaron = 0x16bd; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_obarred = 0x16bf; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_SCHWA = 0x16c6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_schwa = 0x16f6; /* those are not really Caucasus; but I put them here for now */ /* For Inupiak */ static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Lbelowdot = 0x16d1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Lstrokebelowdot = 0x16d2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_lbelowdot = 0x16e1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_lstrokebelowdot = 0x16e2; /* For Guarani */ static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Gtilde = 0x16d3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_gtilde = 0x16e3; /* * Vietnamese * Byte 3 = 0x1e */ static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Abelowdot = 0x1ea0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_abelowdot = 0x1ea1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Ahook = 0x1ea2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ahook = 0x1ea3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Acircumflexacute = 0x1ea4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_acircumflexacute = 0x1ea5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Acircumflexgrave = 0x1ea6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_acircumflexgrave = 0x1ea7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Acircumflexhook = 0x1ea8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_acircumflexhook = 0x1ea9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Acircumflextilde = 0x1eaa; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_acircumflextilde = 0x1eab; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Acircumflexbelowdot = 0x1eac; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_acircumflexbelowdot = 0x1ead; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Abreveacute = 0x1eae; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_abreveacute = 0x1eaf; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Abrevegrave = 0x1eb0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_abrevegrave = 0x1eb1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Abrevehook = 0x1eb2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_abrevehook = 0x1eb3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Abrevetilde = 0x1eb4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_abrevetilde = 0x1eb5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Abrevebelowdot = 0x1eb6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_abrevebelowdot = 0x1eb7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Ebelowdot = 0x1eb8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ebelowdot = 0x1eb9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Ehook = 0x1eba; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ehook = 0x1ebb; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Etilde = 0x1ebc; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_etilde = 0x1ebd; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Ecircumflexacute = 0x1ebe; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ecircumflexacute = 0x1ebf; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Ecircumflexgrave = 0x1ec0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ecircumflexgrave = 0x1ec1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Ecircumflexhook = 0x1ec2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ecircumflexhook = 0x1ec3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Ecircumflextilde = 0x1ec4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ecircumflextilde = 0x1ec5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Ecircumflexbelowdot = 0x1ec6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ecircumflexbelowdot = 0x1ec7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Ihook = 0x1ec8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ihook = 0x1ec9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Ibelowdot = 0x1eca; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ibelowdot = 0x1ecb; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Obelowdot = 0x1ecc; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_obelowdot = 0x1ecd; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Ohook = 0x1ece; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ohook = 0x1ecf; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Ocircumflexacute = 0x1ed0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ocircumflexacute = 0x1ed1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Ocircumflexgrave = 0x1ed2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ocircumflexgrave = 0x1ed3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Ocircumflexhook = 0x1ed4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ocircumflexhook = 0x1ed5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Ocircumflextilde = 0x1ed6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ocircumflextilde = 0x1ed7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Ocircumflexbelowdot = 0x1ed8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ocircumflexbelowdot = 0x1ed9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Ohornacute = 0x1eda; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ohornacute = 0x1edb; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Ohorngrave = 0x1edc; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ohorngrave = 0x1edd; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Ohornhook = 0x1ede; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ohornhook = 0x1edf; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Ohorntilde = 0x1ee0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ohorntilde = 0x1ee1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Ohornbelowdot = 0x1ee2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ohornbelowdot = 0x1ee3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Ubelowdot = 0x1ee4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ubelowdot = 0x1ee5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Uhook = 0x1ee6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_uhook = 0x1ee7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Uhornacute = 0x1ee8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_uhornacute = 0x1ee9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Uhorngrave = 0x1eea; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_uhorngrave = 0x1eeb; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Uhornhook = 0x1eec; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_uhornhook = 0x1eed; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Uhorntilde = 0x1eee; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_uhorntilde = 0x1eef; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Uhornbelowdot = 0x1ef0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_uhornbelowdot = 0x1ef1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Ybelowdot = 0x1ef4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ybelowdot = 0x1ef5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Yhook = 0x1ef6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_yhook = 0x1ef7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Ytilde = 0x1ef8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ytilde = 0x1ef9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Ohorn = 0x1efa; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ohorn = 0x1efb; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_Uhorn = 0x1efc; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_uhorn = 0x1efd; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_combining_tilde = 0x1e9f; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_combining_grave = 0x1ef2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_combining_acute = 0x1ef3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_combining_hook = 0x1efe; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_combining_belowdot = 0x1eff; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_EcuSign = 0x20a0; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_ColonSign = 0x20a1; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_CruzeiroSign = 0x20a2; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_FFrancSign = 0x20a3; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_LiraSign = 0x20a4; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_MillSign = 0x20a5; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_NairaSign = 0x20a6; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_PesetaSign = 0x20a7; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_RupeeSign = 0x20a8; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_WonSign = 0x20a9; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_NewSheqelSign = 0x20aa; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_DongSign = 0x20ab; static const scim_bridge_key_code_t SCIM_BRIDGE_KEY_CODE_EuroSign = 0x20ac; #endif /*SCIM_BRIDGE_KEY_CODE_H_*/ scim-1.4.14/extras/immodules/common/scim-bridge-key-event.c000066400000000000000000000147041177210725600236040ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ #include #include #include "scim-bridge-key-event.h" #include "scim-bridge-message-constant.h" typedef unsigned int scim_bridge_key_modifier_t; #define SCIM_BRIDGE_MODIFIER_MASK_NULL (0) #define SCIM_BRIDGE_MODIFIER_MASK_SHIFT (1 << 0) #define SCIM_BRIDGE_MODIFIER_MASK_CAPS_LOCK (1 << 1) #define SCIM_BRIDGE_MODIFIER_MASK_CONTROL (1 << 2) #define SCIM_BRIDGE_MODIFIER_MASK_ALT (1 << 3) #define SCIM_BRIDGE_MODIFIER_MASK_META (1 << 4) #define SCIM_BRIDGE_MODIFIER_MASK_SUPER (1 << 5) #define SCIM_BRIDGE_MODIFIER_MASK_HYPER (1 << 6) #define SCIM_BRIDGE_MODIFIER_MASK_NUM_LOCK (1 << 7) struct _ScimBridgeKeyEvent { boolean pressed; scim_bridge_key_code_t code; scim_bridge_key_modifier_t mod_state; scim_bridge_key_quirk_t quirks; }; /* Functions */ ScimBridgeKeyEvent *scim_bridge_alloc_key_event () { ScimBridgeKeyEvent *key_event = malloc (sizeof (ScimBridgeKeyEvent)); key_event->pressed = FALSE; key_event->mod_state = SCIM_BRIDGE_MODIFIER_MASK_NULL; key_event->code = SCIM_BRIDGE_KEY_CODE_NullKey; key_event->quirks = SCIM_BRIDGE_KEY_NO_QUIRK; return key_event; } void scim_bridge_free_key_event (ScimBridgeKeyEvent *key_event) { free (key_event); } scim_bridge_key_code_t scim_bridge_key_event_get_code (const ScimBridgeKeyEvent *key_event) { return key_event->code; } void scim_bridge_key_event_set_code (ScimBridgeKeyEvent *key_event, scim_bridge_key_code_t key_code) { key_event->code = key_code; } boolean scim_bridge_key_event_is_pressed (const ScimBridgeKeyEvent *key_event) { return key_event->pressed; } void scim_bridge_key_event_set_pressed (ScimBridgeKeyEvent *key_event, boolean pressed) { key_event->pressed = pressed; } void scim_bridge_key_event_clear_modifiers (ScimBridgeKeyEvent *key_event) { key_event->mod_state = SCIM_BRIDGE_MODIFIER_MASK_NULL; } boolean scim_bridge_key_event_is_shift_down (const ScimBridgeKeyEvent *key_event) { return (key_event->mod_state & SCIM_BRIDGE_MODIFIER_MASK_SHIFT) != 0; } void scim_bridge_key_event_set_shift_down (ScimBridgeKeyEvent *key_event, boolean down) { if (down) { key_event->mod_state |= SCIM_BRIDGE_MODIFIER_MASK_SHIFT; } else { key_event->mod_state &= ~SCIM_BRIDGE_MODIFIER_MASK_SHIFT; } } boolean scim_bridge_key_event_is_caps_lock_down (const ScimBridgeKeyEvent *key_event) { return (key_event->mod_state & SCIM_BRIDGE_MODIFIER_MASK_CAPS_LOCK) != 0; } void scim_bridge_key_event_set_caps_lock_down (ScimBridgeKeyEvent *key_event, boolean down) { if (down) { key_event->mod_state |= SCIM_BRIDGE_MODIFIER_MASK_CAPS_LOCK; } else { key_event->mod_state &= ~SCIM_BRIDGE_MODIFIER_MASK_CAPS_LOCK; } } boolean scim_bridge_key_event_is_control_down (const ScimBridgeKeyEvent *key_event) { return (key_event->mod_state & SCIM_BRIDGE_MODIFIER_MASK_CONTROL) != 0; } void scim_bridge_key_event_set_control_down (ScimBridgeKeyEvent *key_event, boolean down) { if (down) { key_event->mod_state |= SCIM_BRIDGE_MODIFIER_MASK_CONTROL; } else { key_event->mod_state &= ~SCIM_BRIDGE_MODIFIER_MASK_CONTROL; } } boolean scim_bridge_key_event_is_alt_down (const ScimBridgeKeyEvent *key_event) { return (key_event->mod_state & SCIM_BRIDGE_MODIFIER_MASK_ALT) != 0; } void scim_bridge_key_event_set_alt_down (ScimBridgeKeyEvent *key_event, boolean down) { if (down) { key_event->mod_state |= SCIM_BRIDGE_MODIFIER_MASK_ALT; } else { key_event->mod_state &= ~SCIM_BRIDGE_MODIFIER_MASK_ALT; } } int scim_bridge_key_event_is_meta_down (const ScimBridgeKeyEvent *key_event) { return (key_event->mod_state & SCIM_BRIDGE_MODIFIER_MASK_META) != 0; } void scim_bridge_key_event_set_meta_down (ScimBridgeKeyEvent *key_event, boolean down) { if (down) { key_event->mod_state |= SCIM_BRIDGE_MODIFIER_MASK_META; } else { key_event->mod_state &= ~SCIM_BRIDGE_MODIFIER_MASK_META; } } int scim_bridge_key_event_is_super_down (const ScimBridgeKeyEvent *key_event) { return (key_event->mod_state & SCIM_BRIDGE_MODIFIER_MASK_SUPER) != 0; } void scim_bridge_key_event_set_super_down (ScimBridgeKeyEvent *key_event, boolean down) { if (down) { key_event->mod_state |= SCIM_BRIDGE_MODIFIER_MASK_SUPER; } else { key_event->mod_state &= ~SCIM_BRIDGE_MODIFIER_MASK_SUPER; } } int scim_bridge_key_event_is_hyper_down (const ScimBridgeKeyEvent *key_event) { return (key_event->mod_state & SCIM_BRIDGE_MODIFIER_MASK_HYPER) != 0; } void scim_bridge_key_event_set_hyper_down (ScimBridgeKeyEvent *key_event, boolean down) { if (down) { key_event->mod_state |= SCIM_BRIDGE_MODIFIER_MASK_HYPER; } else { key_event->mod_state &= ~SCIM_BRIDGE_MODIFIER_MASK_HYPER; } } int scim_bridge_key_event_is_num_lock_down (const ScimBridgeKeyEvent *key_event) { return (key_event->mod_state & SCIM_BRIDGE_MODIFIER_MASK_NUM_LOCK) != 0; } void scim_bridge_key_event_set_num_lock_down (ScimBridgeKeyEvent *key_event, boolean down) { if (down) { key_event->mod_state |= SCIM_BRIDGE_MODIFIER_MASK_NUM_LOCK; } else { key_event->mod_state &= ~SCIM_BRIDGE_MODIFIER_MASK_NUM_LOCK; } } boolean scim_bridge_key_event_is_quirk_enabled (const ScimBridgeKeyEvent *key_event, scim_bridge_key_quirk_t quirk) { return (key_event->quirks & quirk) != 0; } void scim_bridge_key_event_set_quirk_enabled (ScimBridgeKeyEvent *key_event, scim_bridge_key_quirk_t quirk, boolean enabled) { if (enabled) { key_event->quirks |= quirk; } else { key_event->quirks &= ~quirk; } } void scim_bridge_key_event_clear_all_quirks (ScimBridgeKeyEvent *key_event) { key_event->quirks = SCIM_BRIDGE_KEY_NO_QUIRK; } scim-1.4.14/extras/immodules/common/scim-bridge-key-event.h000066400000000000000000000205751177210725600236140ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ /** * @file * @author Ryo Dairiki * @brief This header describes about key events. */ #ifndef SCIM_BRIDGE_KEY_EVENT_H_ #define SCIM_BRIDGE_KEY_EVENT_H_ #include "scim-bridge.h" #include "scim-bridge-key-code.h" /** * The type for quirks of key events. */ typedef unsigned int scim_bridge_key_quirk_t; /** * There is no quirk on this key event. */ #define SCIM_BRIDGE_KEY_NO_QUIRK (0) /** * All quirks are set on this key event. */ #define SCIM_BRIDGE_KEY_ALL_QUIRKS (0xF) /** * This key is not simple backslash but Japanese kana_ro. */ #define SCIM_BRIDGE_KEY_QUIRK_KANA_RO (1 << 1) /** * This is the data type of KeyEvent. */ typedef struct _ScimBridgeKeyEvent ScimBridgeKeyEvent; #ifdef __cplusplus extern "C" { #endif /** * Allocate a new key event. * * @return The new key event. */ ScimBridgeKeyEvent *scim_bridge_alloc_key_event (); /** * Free a key event. * * @param key_event The key event to free. * @note Do not use free (). It will cause memleaks. */ void scim_bridge_free_key_event (ScimBridgeKeyEvent *key_event); /** * Get the key code of an event. * * @param key_event The key event. * @return The key code of the event. */ scim_bridge_key_code_t scim_bridge_key_event_get_code (const ScimBridgeKeyEvent *key_event); /** * Set the key code of an event. * * @param key_event The key event. * @param key_code The key code. */ void scim_bridge_key_event_set_code (ScimBridgeKeyEvent *key_event, scim_bridge_key_code_t key_code); /** * Get the key state of an event. * * @param key_event The key event. * @return TRUE if pressed, otherwise it returns FALSE. */ boolean scim_bridge_key_event_is_pressed (const ScimBridgeKeyEvent *key_event); /** * Set the key state of an event. * * @param key_event The key event. * @param pressed Give TRUE if pressed, otherwise give FALSE. */ void scim_bridge_key_event_set_pressed (ScimBridgeKeyEvent *key_event, boolean pressed); /** * Clear all the modifiers of a key event. * * @param key_event The key event. */ void scim_bridge_key_event_clear_modifiers (ScimBridgeKeyEvent *key_event); /** * Get the state of the shift key of an event. * * @param key_event The key event. * @return TRUE when the shift key is down, otherwise it returns FALSE. */ boolean scim_bridge_key_event_is_shift_down (const ScimBridgeKeyEvent *key_event); /** * Set the state of the shift key of an event. * * @param key_event The key event. * @param down Give TRUE when the shift key is down, otherwise give FALSE. */ void scim_bridge_key_event_set_shift_down (ScimBridgeKeyEvent *key_event, boolean down); /** * Get the state of the caps lock key of an event. * * @param key_event The key event. * @return TRUE when the caps lock key is down, otherwise it returns FALSE. */ boolean scim_bridge_key_event_is_caps_lock_down (const ScimBridgeKeyEvent *key_event); /** * Set the state of the caps lock key of an event. * * @param key_event The key event. * @param down Give TRUE when the caps lock key is down, otherwise give FALSE. */ void scim_bridge_key_event_set_caps_lock_down (ScimBridgeKeyEvent *key_event, boolean down); /** * Get the control state of an event. * * @param key_event The key event. * @return TRUE when the control key is down, otherwise it returns FALSE. */ boolean scim_bridge_key_event_is_control_down (const ScimBridgeKeyEvent *key_event); /** * Set the state of the control key of an event. * * @param key_event The key event. * @param down Give TRUE when the control is down, otherwise give FALSE. */ void scim_bridge_key_event_set_control_down (ScimBridgeKeyEvent *key_event, boolean down); /** * Get the state of the alt key of an event. * * @param key_event The key event. * @return TRUE when the alt key is down, otherwise it returns FALSE. */ boolean scim_bridge_key_event_is_alt_down (const ScimBridgeKeyEvent *key_event); /** * Set the state of the alt key of an event. * * @param key_event The key event. * @param down Give TRUE when the alt key is down, otherwise give FALSE. */ void scim_bridge_key_event_set_alt_down (ScimBridgeKeyEvent *key_event, boolean down); /** * Get the state of the meta key of an event. * * @param key_event The key event. * @return TRUE when the meta key is down, otherwise it returns FALSE. */ boolean scim_bridge_key_event_is_meta_down (const ScimBridgeKeyEvent *key_event); /** * Set the state of the meta key of an event. * * @param key_event The key event. * @param down Give TRUE when the meta key is down, otherwise give FALSE. */ void scim_bridge_key_event_set_meta_down (ScimBridgeKeyEvent *key_event, boolean down); /** * Get the state of the super key of an event. * * @param key_event The key event. * @return TRUE when the super key is down, otherwise it returns FALSE. */ boolean scim_bridge_key_event_is_super_down (const ScimBridgeKeyEvent *key_event); /** * Set the state of the super key of an event. * * @param key_event The key event. * @param down Give TRUE when the super key is down, otherwise give FALSE. */ void scim_bridge_key_event_set_super_down (ScimBridgeKeyEvent *key_event, boolean down); /** * Get the state of the hyper key of an event. * * @param key_event The key event. * @return TRUE when the hyper key is down, otherwise it returns FALSE. */ boolean scim_bridge_key_event_is_hyper_down (const ScimBridgeKeyEvent *key_event); /** * Set the state of the huper key of an event. * * @param key_event The key event. * @param down Give TRUE when the hyper key is down, otherwise give FALSE. */ void scim_bridge_key_event_set_hyper_down (ScimBridgeKeyEvent *key_event, boolean down); /** * Get the state of the num lock key of an event. * * @param key_event The key event. * @return TRUE when the num lock key is down, otherwise it returns FALSE. */ boolean scim_bridge_key_event_is_num_lock_down (const ScimBridgeKeyEvent *key_event); /** * Set the state of the num lock key of an event. * * @param key_event The key event. * @param down Give TRUE when the num lock key is down, otherwise give FALSE. */ void scim_bridge_key_event_set_num_lock_down (ScimBridgeKeyEvent *key_event, boolean down); /** * Check if the given quirk is enabled on this key event. * * @param key_event The key event. * @param quirk The quirk to check. */ boolean scim_bridge_key_event_is_quirk_enabled (const ScimBridgeKeyEvent *key_event, scim_bridge_key_quirk_t quirk); /** * Set the sate of the given quirk of this key event. * * @param key_event The key event. * @param quirk The quirk to change the state. * @param enabled The new state. */ void scim_bridge_key_event_set_quirk_enabled (ScimBridgeKeyEvent *key_event, scim_bridge_key_quirk_t quirk, boolean enabled); /** * Clear all the quirks of this key event. * * @param key_event The key event. */ void scim_bridge_key_event_clear_all_quirks (ScimBridgeKeyEvent *key_event); #ifdef __cplusplus } #endif #endif /*SCIM_BRIDGE_KEY_EVENT_H_*/ scim-1.4.14/extras/immodules/common/scim-bridge-message-constant.h000066400000000000000000000223541177210725600251550ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ /** * @file * @author Ryo Dairiki * @brief This header contains all the string constant used in communication between the agent and clients. */ #ifndef SCIMBRIDGEMESSAGECONSTANT_H_ #define SCIMBRIDGEMESSAGECONSTANT_H_ #include "scim-bridge.h" /** * The string constant of "set_preedit_mode" for messages. */ static const char SCIM_BRIDGE_MESSAGE_SET_PREEDIT_MODE[] = "set_preedit_mode"; /** * The string constant of "preedit_mode_changed" for messages. */ static const char SCIM_BRIDGE_MESSAGE_PREEDIT_MODE_CHANGED[] = "preedit_mode_changed"; /** * The string constant of "embedded" for messages. */ static const char SCIM_BRIDGE_MESSAGE_EMBEDDED[] = "embedded"; /** * The string constant of "floating" for messages. */ static const char SCIM_BRIDGE_MESSAGE_FLOATING[] = "floating"; /** * The string constant of "hanging" for messages. */ static const char SCIM_BRIDGE_MESSAGE_HANGING[] = "hanging"; /** * The string constant of "any" for messages. */ static const char SCIM_BRIDGE_MESSAGE_ANY[] = "any"; /** * The string constant of "update_preedit" for messages. */ static const char SCIM_BRIDGE_MESSAGE_UPDATE_PREEDIT[] = "update_preedit"; /** * The string constant of "preedit_updated" for messages. */ static const char SCIM_BRIDGE_MESSAGE_PREEDIT_UPDATED[] = "preedit_updated"; /** * The string constant of "set_preedit_string" for messages. */ static const char SCIM_BRIDGE_MESSAGE_SET_PREEDIT_STRING[] = "set_preedit_string"; /** * The string constant of "set_preedit_attributes" for messages. */ static const char SCIM_BRIDGE_MESSAGE_SET_PREEDIT_ATTRIBUTES[] = "set_preedit_attributes"; /** * The string constant of "set_preedit_cursor_position" for messages. */ static const char SCIM_BRIDGE_MESSAGE_SET_PREEDIT_CURSOR_POSITION[] = "set_preedit_cursor_position"; /** * The string constant of "set_preedit_shown" for messages. */ static const char SCIM_BRIDGE_MESSAGE_SET_PREEDIT_SHOWN[] = "set_preedit_shown"; /** * The string constant of "change_focus" for messages. */ static const char SCIM_BRIDGE_MESSAGE_CHANGE_FOCUS[] = "change_focus"; /** * The string constant of "focus_changed" for messages. */ static const char SCIM_BRIDGE_MESSAGE_FOCUS_CHANGED[] = "focus_changed"; /** * The string constant of "handle_key_event" for messages. */ static const char SCIM_BRIDGE_MESSAGE_HANDLE_KEY_EVENT[] = "handle_key_event"; /** * The string constant of "key_event_handled" for messages. */ static const char SCIM_BRIDGE_MESSAGE_KEY_EVENT_HANDLED[] ="key_event_handled"; /** * The string constant "set_cursor_location" for messages. */ static const char SCIM_BRIDGE_MESSAGE_SET_CURSOR_LOCATION[] = "set_cursor_location"; /** * The string constant "cursor_location_changed" for messages. */ static const char SCIM_BRIDGE_MESSAGE_CURSOR_LOCATION_CHANGED[] = "cursor_location_changed"; /** * The string constant of "register_imcontext" for messages. */ static const char SCIM_BRIDGE_MESSAGE_REGISTER_IMCONTEXT[] = "register_imcontext"; /** * The string constant of "imcontext_registered" for messages. */ static const char SCIM_BRIDGE_MESSAGE_IMCONTEXT_REGISTERED[] = "imcontext_registered"; /** * The string constant of "deregister_imcontext" for messages. */ static const char SCIM_BRIDGE_MESSAGE_DEREGISTER_IMCONTEXT[] = "deregister_imcontext"; /** * The string constant of "imcontext_registered" for messages. */ static const char SCIM_BRIDGE_MESSAGE_IMCONTEXT_DEREGISTERED[] = "imcontext_deregister"; /** * The string constant of "reset_imcontext" for messages. */ static const char SCIM_BRIDGE_MESSAGE_RESET_IMCONTEXT[] = "reset_imcontext"; /** * The string constant of "imcontext_reseted" for messages. */ static const char SCIM_BRIDGE_MESSAGE_IMCONTEXT_RESETED[] = "imcontext_reseted"; /** * The string constant of "forward_key_event" for messages. */ static const char SCIM_BRIDGE_MESSAGE_FORWARD_KEY_EVENT[] = "forward_key_event"; /** * The string constant of "set_commit_string" for messages. */ static const char SCIM_BRIDGE_MESSAGE_SET_COMMIT_STRING[] = "set_commit_string"; /** * The string constant of "commit_string" for messages. */ static const char SCIM_BRIDGE_MESSAGE_COMMIT_STRING[] = "commit_string"; /** * The string constant of "commit" for messages. */ static const char SCIM_BRIDGE_MESSAGE_STRING_COMMITED[] = "string_commited"; /** * The string constant of "beep" for messages. */ static const char SCIM_BRIDGE_MESSAGE_BEEP[] = "beep"; /** * The string constant of "get_surrounding_text" for messages. */ static const char SCIM_BRIDGE_MESSAGE_GET_SURROUNDING_TEXT[] = "get_surrounding_text"; /** * The string constant of "delete_surrounding_text" for messages. */ static const char SCIM_BRIDGE_MESSAGE_DELETE_SURROUNDING_TEXT[] = "delete_surrounding_text"; /** * The string constant of "replace_surrounding_text" for messages. */ static const char SCIM_BRIDGE_MESSAGE_REPLACE_SURROUNDING_TEXT[] = "replace_surrounding_text"; /** * The string constant of "surrounding_text_gotten" for messages. */ static const char SCIM_BRIDGE_MESSAGE_SURROUNDING_TEXT_GOTTEN[] = "surrounding_text_gotten"; /** * The string constant of "surrounding_text_deleted" for messages. */ static const char SCIM_BRIDGE_MESSAGE_SURROUNDING_TEXT_DELETED[] = "surrounding_text_deleted"; /** * The string constant of "surrounding_text_replaced" for messages. */ static const char SCIM_BRIDGE_MESSAGE_SURROUNDING_TEXT_REPLACED[] = "surrounding_text_replaced"; /** * The string constant of "imengine_status_changed" for messages. */ static const char SCIM_BRIDGE_MESSAGE_IMENGINE_STATUS_CHANGED[] = "imengine_status_changed"; /** * The string constant of "enable_imcontext" for messages. */ static const char SCIM_BRIDGE_MESSAGE_ENABLE_IMCONTEXT[] = "enable_imcontext"; /** * The string constant of "enabled" for messages. */ static const char SCIM_BRIDGE_MESSAGE_ENABLED[] = "enabled"; /** * The string constant of "disable_imcontext" for messages. */ static const char SCIM_BRIDGE_MESSAGE_DISABLE_IMCONTEXT[] = "disable_imcontext"; /** * The string constant of "disabled" for messages. */ static const char SCIM_BRIDGE_MESSAGE_DISABLED[] = "disabled"; /** * The string constant of "shift" for messages. */ static const char SCIM_BRIDGE_MESSAGE_SHIFT[] = "shift"; /** * The string constant of "control" for messages. */ static const char SCIM_BRIDGE_MESSAGE_CONTROL[] = "control"; /** * The string constant of "alt" for messages. */ static const char SCIM_BRIDGE_MESSAGE_ALT[] = "alt"; /** * The string constant of "meta" for messages. */ static const char SCIM_BRIDGE_MESSAGE_META[] = "meta"; /** * The string constant of "super" for messages. */ static const char SCIM_BRIDGE_MESSAGE_SUPER[] = "super"; /** * The string constant of "hyper" for messages. */ static const char SCIM_BRIDGE_MESSAGE_HYPER[] = "hyper"; /** * The string constant of "caps_lock" for messages. */ static const char SCIM_BRIDGE_MESSAGE_CAPS_LOCK[] = "caps_lock"; /** * The string constant of "num_lock" for messages. */ static const char SCIM_BRIDGE_MESSAGE_NUM_LOCK[] = "num_lock"; /** * The string constant of "kana_ro" for messages. */ static const char SCIM_BRIDGE_MESSAGE_KANA_RO[] = "kana_ro"; /** * The string constant of "unknown" for messages. */ static const char SCIM_BRIDGE_MESSAGE_UNKNOWN[] = "unknown"; /** * The string constant of "true" for messages. */ static const char SCIM_BRIDGE_MESSAGE_TRUE[] = "true"; /** * The string constant of "false" for messages. */ static const char SCIM_BRIDGE_MESSAGE_FALSE[] = "false"; /** * The string constant of "none" for messages. */ static const char SCIM_BRIDGE_MESSAGE_NONE[] = "none"; /** * The string constant of "decorate" for messages. */ static const char SCIM_BRIDGE_MESSAGE_DECORATE[] = "decoreate"; /** * The string constant of "foreground" for messages. */ static const char SCIM_BRIDGE_MESSAGE_FOREGROUND[] = "foreground"; /** * The string constant of "background" for messages. */ static const char SCIM_BRIDGE_MESSAGE_BACKGROUND[] = "background"; /** * The string constant of "color" for messages. */ static const char SCIM_BRIDGE_MESSAGE_COLOR[] = "#"; /** * The string constant of "underline" for messages. */ static const char SCIM_BRIDGE_MESSAGE_UNDERLINE[] = "underline"; /** * The string constant of "hilight" for messages. */ static const char SCIM_BRIDGE_MESSAGE_HIGHLIGHT[] = "highlight"; /** * The string constant of "reverse" for messages. */ static const char SCIM_BRIDGE_MESSAGE_REVERSE[] = "reverse"; #endif /*SCIMBRIDGEMESSAGECONSTANT_H_*/ scim-1.4.14/extras/immodules/common/scim-bridge-message.c000066400000000000000000000103031177210725600233100ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ #include #include #include #include "scim-bridge-message.h" #include "scim-bridge-output.h" /* Type definition */ struct _ScimBridgeMessage { char *header; char **arguments; size_t *argument_capacities; size_t argument_count; }; /* Implementations */ ScimBridgeMessage *scim_bridge_alloc_message (const char *header, size_t argument_count) { if (header == NULL) { scim_bridge_perrorln ("The given header of a message is NULL"); return NULL; } ScimBridgeMessage *message = malloc (sizeof (ScimBridgeMessage)); message->header = malloc (sizeof (char) * (strlen (header) + 1)); strcpy (message->header, header); message->argument_count = argument_count; if (argument_count > 0) { message->arguments = malloc (sizeof (char*) * message->argument_count); message->argument_capacities = malloc (sizeof (size_t) * message->argument_count); } else { message->arguments = NULL; message->argument_capacities = NULL; } int i; for (i = 0; i < message->argument_count; ++i) { message->argument_capacities[i] = 10; message->arguments[i] = malloc (sizeof (char) * (message->argument_capacities[i] + 1)); message->arguments[i][0] = '\0'; } return message; } void scim_bridge_free_message (ScimBridgeMessage *message) { if (message == NULL) return; free (message->header); int i; for (i = 0; i < message->argument_count; ++i) { free (message->arguments[i]); } if (message->argument_capacities) free (message->argument_capacities); if (message->arguments) free (message->arguments); free (message); } const char *scim_bridge_message_get_header (const ScimBridgeMessage *message) { return message->header; } size_t scim_bridge_message_get_argument_count (const ScimBridgeMessage *message) { return message->argument_count; } const char *scim_bridge_message_get_argument (const ScimBridgeMessage *message, size_t index) { if (message == NULL) { scim_bridge_perrorln ("The pointer given as a message is NULL"); return NULL; } if (index >= message->argument_count) { scim_bridge_perrorln ("An out of bounds exception occurred at scim_bridge_message_get_argument ()"); return NULL; } else { return message->arguments[index]; } } retval_t scim_bridge_message_set_argument (ScimBridgeMessage *message, size_t index, const char *argument) { if (argument == NULL) { scim_bridge_perrorln ("The pointer given as an argument is NULL"); return RETVAL_FAILED; } if (message == NULL) { scim_bridge_perrorln ("The pointer given as a message is NULL"); return RETVAL_FAILED; } if (index >= message->argument_count) { scim_bridge_perrorln ("An out of bounds exception occurred at scim_bridge_message_set_argument ()"); return RETVAL_FAILED; } else { const size_t argument_length = strlen (argument); if (argument_length > message->argument_capacities[index]) { const size_t new_argument_capacity = argument_length; free (message->arguments[index]); message->arguments[index] = malloc (sizeof (char) * (new_argument_capacity + 1)); message->argument_capacities[index] = new_argument_capacity; } strcpy (message->arguments[index], argument); return RETVAL_SUCCEEDED; } } scim-1.4.14/extras/immodules/common/scim-bridge-message.h000066400000000000000000000056341177210725600233300ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ /** * @file * @author Ryo Dairiki * @brief This header describes abut the data type of messages. */ #ifndef SCIMBRIDGEMESSAGE_H_ #define SCIMBRIDGEMESSAGE_H_ #include "scim-bridge.h" /** * The struct type of message. */ typedef struct _ScimBridgeMessage ScimBridgeMessage; #ifdef __cplusplus extern "C" { #endif /** * Allocate a message. * All the arguments are set to '\0'. * * @param header The header of the message. * @param argument_count The number of arguments. * @return The new message. */ ScimBridgeMessage *scim_bridge_alloc_message (const char *header, size_t argument_count); /** * Free a message. * * @param message The message to free. */ void scim_bridge_free_message (ScimBridgeMessage *message); /** * Get the header of a message. * * @param message The message. * @return The header of the message. */ const char *scim_bridge_message_get_header (const ScimBridgeMessage *message); /** * Get the number of message arguments. * * @param message The message. * @return The argument count of the message. */ size_t scim_bridge_message_get_argument_count (const ScimBridgeMessage *message); /** * Get the specific argument of the message. * * @param message The message. * @param index The index of the argument. * @return The argument if the index is valid. Otherwise it returns NULL. */ const char *scim_bridge_message_get_argument (const ScimBridgeMessage *message, size_t index); /** * Set the specific argument of the message. * * @param message The message. * @param index The index of the argument. If invalid index is give, it fails. * @param argument The new argument value. If NULL is give, it fails. * @return RETVAL_SUCCEEDED if succeeded, otherwise it returns RETVAL_FAILED. */ retval_t scim_bridge_message_set_argument (ScimBridgeMessage *message, size_t index, const char *argument); #ifdef __cplusplus } #endif #endif /*SCIMBRIDGEMESSAGE_H_*/ scim-1.4.14/extras/immodules/common/scim-bridge-messenger.c000066400000000000000000000476211177210725600236710ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ #include #include #include #include #include #include #include #include #include #include #include #include #include "scim-bridge-messenger.h" #include "scim-bridge-output.h" /* Type definition */ struct _ScimBridgeMessenger { int socket_fd; char *sending_buffer; size_t sending_buffer_offset; size_t sending_buffer_size; size_t sending_buffer_capacity; char *receiving_buffer; size_t receiving_buffer_offset; size_t receiving_buffer_size; size_t receiving_buffer_capacity; boolean has_received_message; }; /* Implementations */ ScimBridgeMessenger *scim_bridge_alloc_messenger (int socket_fd) { scim_bridge_pdebugln (4, "scim_bridge_alloc_messenger ()"); if (socket_fd < 0) { scim_bridge_perrorln ("An invalid file descriptor is given at scim_bridge_alloc_messenger ()"); return NULL; } const int socket_flags = fcntl (socket_fd, F_GETFL); if (socket_flags < 0) { scim_bridge_perrorln ("Failed to get the flags of the socket"); return NULL; } if (fcntl (socket_fd, F_SETFL, socket_flags | O_NONBLOCK)) { scim_bridge_perrorln ("Failed to set the flags of the socket"); return NULL; } ScimBridgeMessenger *messenger = malloc (sizeof (ScimBridgeMessenger)); messenger->socket_fd = socket_fd; messenger->sending_buffer_capacity = 20; messenger->sending_buffer = malloc (sizeof (char) * messenger->sending_buffer_capacity); messenger->sending_buffer_offset = 0; messenger->sending_buffer_size = 0; messenger->receiving_buffer_capacity = 20; messenger->receiving_buffer = malloc (sizeof (char) * messenger->receiving_buffer_capacity); messenger->receiving_buffer_offset = 0; messenger->receiving_buffer_size = 0; messenger->has_received_message = FALSE; return messenger; } void scim_bridge_free_messenger (ScimBridgeMessenger *messenger) { scim_bridge_pdebugln (4, "scim_bridge_free_messenger ()"); if (messenger == NULL) return; scim_bridge_close_messenger (messenger); free (messenger->sending_buffer); free (messenger->receiving_buffer); free (messenger); } retval_t scim_bridge_close_messenger (ScimBridgeMessenger *messenger) { scim_bridge_pdebugln (4, "scim_bridge_close_messenger ()"); if (messenger == NULL) { scim_bridge_perrorln ("The pointer given as a messenger is NULL"); return RETVAL_FAILED; } if (messenger->socket_fd < 0) return RETVAL_SUCCEEDED; shutdown (messenger->socket_fd, SHUT_RDWR); close (messenger->socket_fd); messenger->socket_fd = -1; return RETVAL_SUCCEEDED; } boolean scim_bridge_messenger_is_closed (const ScimBridgeMessenger *messenger) { if (messenger == NULL) { scim_bridge_perrorln ("The pointer given as a messenger is NULL"); return FALSE; } return messenger->socket_fd < 0; } int scim_bridge_messenger_get_socket_fd (const ScimBridgeMessenger *messenger) { scim_bridge_pdebugln (4, "scim_bridge_messenger_get_socket_fd ()"); if (messenger == NULL) { scim_bridge_perrorln ("The pointer given as a messenger is NULL"); return RETVAL_FAILED; } return messenger->socket_fd; } retval_t scim_bridge_messenger_push_message (ScimBridgeMessenger *messenger, const ScimBridgeMessage *message) { scim_bridge_pdebugln (4, "scim_bridge_messenger_push_message ()"); if (messenger == NULL) { scim_bridge_perrorln ("The pointer given as a messenger is NULL"); return RETVAL_FAILED; } if (message == NULL) { scim_bridge_perrorln ("The pointer given as a message is NULL"); return RETVAL_FAILED; } const ssize_t arg_count = (ssize_t) scim_bridge_message_get_argument_count (message); scim_bridge_pdebug (4, "message:"); int i; for (i = -1; i < arg_count; ++i) { const char *str; if (i == -1) { str = scim_bridge_message_get_header (message); } else { str = scim_bridge_message_get_argument (message, i); } scim_bridge_pdebug (4, " %s", str); const size_t str_length = strlen (str); int j; for (j = 0; j <= str_length; ++j) { const size_t buffer_size = messenger->sending_buffer_size; size_t buffer_capacity = messenger->sending_buffer_capacity; size_t buffer_offset = messenger->sending_buffer_offset; if (buffer_size + 2 >= buffer_capacity) { const size_t new_buffer_capacity = buffer_capacity + 20; char *new_buffer = malloc (sizeof (char) * new_buffer_capacity); memcpy (new_buffer, messenger->sending_buffer + buffer_offset, sizeof (char) * (buffer_capacity - buffer_offset)); memcpy (new_buffer + buffer_capacity - buffer_offset, messenger->sending_buffer, sizeof (char) * buffer_offset); free (messenger->sending_buffer); messenger->sending_buffer = new_buffer; buffer_capacity = new_buffer_capacity; messenger->sending_buffer_capacity = buffer_capacity; buffer_offset = 0; messenger->sending_buffer_offset = buffer_offset; } if (j < str_length) { switch (str[j]) { case '\n': messenger->sending_buffer[(buffer_offset + buffer_size) % buffer_capacity] = '\\'; messenger->sending_buffer[(buffer_offset + buffer_size + 1) % buffer_capacity] = 'n'; messenger->sending_buffer_size += 2; break; case ' ': messenger->sending_buffer[(buffer_offset + buffer_size) % buffer_capacity] = '\\'; messenger->sending_buffer[(buffer_offset + buffer_size + 1) % buffer_capacity] = 's'; messenger->sending_buffer_size += 2; break; case '\\': messenger->sending_buffer[(buffer_offset + buffer_size) % buffer_capacity] = '\\'; messenger->sending_buffer[(buffer_offset + buffer_size + 1) % buffer_capacity] = '\\'; messenger->sending_buffer_size += 2; break; default: messenger->sending_buffer[(buffer_offset + buffer_size) % buffer_capacity] = str[j]; messenger->sending_buffer_size += 1; } } else { if (i + 1 == arg_count) { messenger->sending_buffer[(buffer_offset + buffer_size) % buffer_capacity] = '\n'; } else { messenger->sending_buffer[(buffer_offset + buffer_size) % buffer_capacity] = ' '; } messenger->sending_buffer_size += 1; } } } scim_bridge_pdebug (4, "\n"); return RETVAL_SUCCEEDED; } retval_t scim_bridge_messenger_poll_message (ScimBridgeMessenger *messenger, ScimBridgeMessage **message) { scim_bridge_pdebugln (3, "scim_bridge_messenger_poll_message ()"); if (messenger == NULL) { scim_bridge_perrorln ("The pointer given as a messenger is NULL"); return RETVAL_FAILED; } if (message == NULL) { scim_bridge_perrorln ("The pointer given as a destination for a message is NULL"); return RETVAL_FAILED; } if (!messenger->has_received_message) { scim_bridge_pdebugln (2, "No message to poll"); return RETVAL_FAILED; } const size_t buffer_capacity = messenger->receiving_buffer_capacity; const size_t buffer_offset = messenger->receiving_buffer_offset; const size_t buffer_size = messenger->receiving_buffer_size; boolean escaped = FALSE; char *tmp_buffer = alloca (sizeof (char) * (buffer_size + 1)); size_t tmp_buffer_size = 0; int arg_count = -1; int arg_capacity = 10; char **args = alloca (sizeof (char*) * arg_capacity); args[0] = tmp_buffer; int i; for (i = 0; i < buffer_size; ++i) { if (arg_count + 2 >= arg_capacity) { const int new_arg_capacity = arg_capacity + 10; char **new_args = alloca (sizeof (char*) * new_arg_capacity); memcpy (new_args, args, sizeof (char*) * arg_capacity); args = new_args; arg_capacity = new_arg_capacity; } const char c = messenger->receiving_buffer[(buffer_offset + i) % buffer_capacity]; switch (c) { case '\\': if (escaped) { tmp_buffer[tmp_buffer_size] = c; ++tmp_buffer_size; escaped = FALSE; } else { escaped = TRUE; } break; case ' ': case '\n': escaped = FALSE; tmp_buffer[tmp_buffer_size] = '\0'; ++tmp_buffer_size; ++arg_count; args[arg_count + 1] = tmp_buffer + i + 1; if (c == '\n') { *message = scim_bridge_alloc_message (args[0], arg_count); scim_bridge_pdebug (5, "message: %s", args[0]); int j; for (j = 0; j < arg_count; ++j) { scim_bridge_pdebug (5, " %s", args[j + 1]); scim_bridge_message_set_argument (*message, j, args[j + 1]); } scim_bridge_pdebug (5, "\n"); messenger->receiving_buffer_offset = (buffer_offset + i + 1) % buffer_capacity; messenger->receiving_buffer_size -= i + 1; return RETVAL_SUCCEEDED; } break; default: if (escaped) { if (c == 'n') { tmp_buffer[tmp_buffer_size] = '\n'; } else if (c == 's') { tmp_buffer[tmp_buffer_size] = ' '; } else { tmp_buffer[tmp_buffer_size] = c; } } else { tmp_buffer[tmp_buffer_size] = c; } ++tmp_buffer_size; escaped = FALSE; } } scim_bridge_pdebugln (2, "The message is not completed"); messenger->has_received_message = FALSE; return RETVAL_FAILED; } retval_t scim_bridge_messenger_send_message (ScimBridgeMessenger *messenger, const struct timeval *timeout) { scim_bridge_pdebugln (3, "scim_bridge_messenger_send_message ()"); if (messenger == NULL) { scim_bridge_perrorln ("The pointer given as a messenger is NULL"); return RETVAL_FAILED; } const size_t buffer_capacity = messenger->sending_buffer_capacity; const size_t buffer_size = messenger->sending_buffer_size; const size_t buffer_offset = messenger->sending_buffer_offset; if (buffer_size == 0) return RETVAL_SUCCEEDED; size_t write_size; if (buffer_offset + buffer_size > buffer_capacity) { write_size = buffer_capacity - buffer_offset; } else { write_size = buffer_size; } const int fd = messenger->socket_fd; if (fd < 0) { scim_bridge_perrorln ("The socket is broken at scim_bridge_messenger_send_message ()"); return RETVAL_FAILED; } fd_set select_set; FD_ZERO (&select_set); FD_SET (fd, &select_set); if (timeout != NULL) { struct timeval polling_timeout; polling_timeout.tv_sec = timeout->tv_sec; polling_timeout.tv_usec = timeout->tv_usec; if (select (fd + 1, NULL, &select_set, &select_set, &polling_timeout) < 0) { if (errno == EINTR) { scim_bridge_pdebugln (2, "An interruption occurred at scim_bridge_messenger_send_message ()"); return RETVAL_SUCCEEDED; } else { scim_bridge_perrorln ("An IOException occurred at scim_bridge_messenger_send_message ()"); return RETVAL_FAILED; } } } else { if (select (fd + 1, NULL, &select_set, &select_set, NULL) < 0) { if (errno == EINTR) { scim_bridge_pdebugln (2, "An interruption occurred at scim_bridge_messenger_send_message ()"); return RETVAL_SUCCEEDED; } else { scim_bridge_perrorln ("An IOException occurred at scim_bridge_messenger_send_message ()"); return RETVAL_FAILED; } } } ssize_t written_bytes = send (fd, messenger->sending_buffer + buffer_offset, sizeof (char) * write_size, MSG_NOSIGNAL); if (written_bytes < 0) { if (errno == EINTR || errno == EAGAIN) { scim_bridge_pdebugln (2, "Cannot send for now at scim_bridge_messenger_send_message ()"); return RETVAL_SUCCEEDED; } else { scim_bridge_perrorln ("An IOException at scim_bridge_messenger_send_message (): %s", errno != 0 ? strerror (errno):"Unknown reason"); return RETVAL_FAILED; } } else { scim_bridge_pdebugln (1, "offset = %d, size = %d + %d (%d), capacity = %d", buffer_offset, buffer_size, written_bytes / sizeof (char), write_size, buffer_capacity); char *tmp_str = alloca (written_bytes + sizeof (char)); memcpy (tmp_str, messenger->sending_buffer + buffer_offset, written_bytes); tmp_str[written_bytes / sizeof (char)] = '\0'; scim_bridge_pdebugln (1, "<- %s", tmp_str); messenger->sending_buffer_size -= written_bytes / sizeof (char); messenger->sending_buffer_offset = (buffer_offset + written_bytes / sizeof (char)) % buffer_capacity; return RETVAL_SUCCEEDED; } } retval_t scim_bridge_messenger_receive_message (ScimBridgeMessenger *messenger, const struct timeval *timeout) { scim_bridge_pdebugln (4, "scim_bridge_messenger_receive_message ()"); const size_t buffer_size = messenger->receiving_buffer_size; size_t buffer_capacity = messenger->receiving_buffer_capacity; size_t buffer_offset = messenger->receiving_buffer_offset; if (buffer_size + 20 >= buffer_capacity) { const size_t new_buffer_capacity = buffer_capacity + 40; char *new_buffer = malloc (sizeof (char) * new_buffer_capacity); memcpy (new_buffer, messenger->receiving_buffer + buffer_offset, sizeof (char) * (buffer_capacity - buffer_offset)); memcpy (new_buffer + buffer_capacity - buffer_offset, messenger->receiving_buffer, sizeof (char) * buffer_offset); free (messenger->receiving_buffer); messenger->receiving_buffer = new_buffer; buffer_capacity = new_buffer_capacity; messenger->receiving_buffer_capacity = buffer_capacity; buffer_offset = 0; messenger->receiving_buffer_offset = buffer_offset; } size_t read_size; if (buffer_offset + buffer_size < buffer_capacity) { read_size = buffer_capacity - (buffer_offset + buffer_size); } else { read_size = buffer_offset - (buffer_offset + buffer_size) % buffer_capacity; } const int fd = messenger->socket_fd; if (fd < 0) { scim_bridge_perrorln ("The socket is broken at scim_bridge_messenger_receive_message ()"); return RETVAL_FAILED; } fd_set select_set; FD_ZERO (&select_set); FD_SET (fd, &select_set); if (timeout != NULL) { struct timeval polling_timeout; polling_timeout.tv_sec = timeout->tv_sec; polling_timeout.tv_usec = timeout->tv_usec; if (select (fd + 1, &select_set, NULL, &select_set, &polling_timeout) < 0) { if (errno == EINTR) { scim_bridge_pdebugln (2, "An interruption occurred at scim_bridge_messenger_receive_message ()"); return RETVAL_SUCCEEDED; } else { scim_bridge_perrorln ("An IOException occurred at scim_bridge_messenger_receive_message ()"); return RETVAL_FAILED; } } } else { if (select (fd + 1, &select_set, NULL, &select_set, NULL) < 0) { if (errno == EINTR) { scim_bridge_pdebugln (2, "An interruption occurred at scim_bridge_messenger_receive_message ()"); return RETVAL_SUCCEEDED; } else { scim_bridge_perrorln ("An IOException occurred at scim_bridge_messenger_receive_message ()"); return RETVAL_FAILED; } } } assert (read_size > 0); const ssize_t read_bytes = recv (fd, messenger->receiving_buffer + (buffer_offset + buffer_size) % buffer_capacity, sizeof (char) * read_size, 0); if (read_bytes == 0) { scim_bridge_pdebugln (9, "The socket is closed at scim_bridge_messenger_receive_message ()"); return RETVAL_FAILED; } else if (read_bytes < 0) { if (errno == EINTR || errno == EAGAIN) { scim_bridge_pdebugln (2, "Cannot read for now at scim_bridge_messenger_receive_message ()"); return RETVAL_SUCCEEDED; } else { scim_bridge_perrorln ("An IOException at scim_bridge_messenger_receive_message (): %s", errno != 0 ? strerror (errno):"Unknown reason"); return RETVAL_FAILED; } } else { scim_bridge_pdebugln (1, "offset = %d, size = %d + %d (%d), capacity = %d", buffer_offset, buffer_size, read_bytes / sizeof (char), read_size, buffer_capacity); char *tmp_str = alloca (read_bytes + sizeof (char)); memcpy (tmp_str, messenger->receiving_buffer + (buffer_offset + buffer_size) % buffer_capacity, read_bytes); tmp_str[read_bytes / sizeof (char)] = '\0'; scim_bridge_pdebugln (1, "-> %s", tmp_str); if (!messenger->has_received_message) { int i; for (i = 0; i < read_bytes / sizeof (char); ++i) { char c = messenger->receiving_buffer[(buffer_offset + buffer_size + i) % buffer_capacity]; if (c == '\n') { scim_bridge_pdebugln (3, "A message has arrived"); messenger->has_received_message = TRUE; break; } } } messenger->receiving_buffer_size += read_bytes / sizeof (char); return RETVAL_SUCCEEDED; } } ssize_t scim_bridge_messenger_get_sending_buffer_size (const ScimBridgeMessenger *messenger) { scim_bridge_pdebugln (3, "scim_bridge_messenger_get_sending_buffer_size ()"); if (messenger == NULL) { scim_bridge_perrorln ("The pointer given as a messenger is NULL"); return -1; } scim_bridge_pdebugln (2, "The sending buffer size: %d", messenger->sending_buffer_size); return messenger->sending_buffer_size; } ssize_t scim_bridge_messenger_get_receiving_buffer_size (const ScimBridgeMessenger *messenger) { scim_bridge_pdebugln (3, "scim_bridge_messenger_get_receiving_buffer_size ()"); if (messenger == NULL) { scim_bridge_perrorln ("The pointer given as a messenger is NULL"); return -1; } scim_bridge_pdebugln (2, "The receiving buffer size: %d", messenger->receiving_buffer_size); return messenger->receiving_buffer_size; } scim-1.4.14/extras/immodules/common/scim-bridge-messenger.h000066400000000000000000000114541177210725600236710ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ /** * @file * @author Ryo Dairiki * @brief This header describes abut fucntions used for sending and receving messages. */ #ifndef SCIMBRIDGEMESSAGENGER_H_ #define SCIMBRIDGEMESSAGENGER_H_ #include "scim-bridge.h" #include "scim-bridge-message.h" /** * The struct type of Messenger. */ typedef struct _ScimBridgeMessenger ScimBridgeMessenger; #ifdef __cplusplus extern "C" { #endif /** * Allocate a new messenger. * * @param socket_fd The file discriptor for the socket. * @return The new messenger. */ ScimBridgeMessenger *scim_bridge_alloc_messenger (int socket_fd); /** * Free a messenger, and close the socket if it's still open.\n * Do not use "free ()" for variables for this type. * * @param messenger The messenger. */ void scim_bridge_free_messenger (ScimBridgeMessenger *messenger); /** * Get the file descriptor which assosicates with this messenger. * * @param messenger The messenger. * @return The assosicated file descriptor. */ int scim_bridge_messenger_get_socket_fd (const ScimBridgeMessenger *messenger); /** * Close the socket of the messenger. * * @param messenger The messenger. * @return RETVAL_SUCCEEDED if no error has been occurred, otherwise it return RETVAL_FAILED. */ retval_t scim_bridge_close_messenger (ScimBridgeMessenger *messenger); /** * Check if the messenger is closed. * * @param messenger The messeger * @return TRUE if closed, otherwise it returns FALSE. */ boolean scim_bridge_messenger_is_closed (const ScimBridgeMessenger *messenger); /** * Push a messenge into the sending buffer. * * @param messenger The messenger. * @param message The message to send. * @return RETVAL_SUCCEEDED if it succeeded, otherwise it return RETVAL_FAILED. */ retval_t scim_bridge_messenger_push_message (ScimBridgeMessenger *messenger, const ScimBridgeMessage *message); /** * Poll a messenge from the received buffer. * * @param messenger The messenger. * @param message The pointer for the received message. It returns NULL if no message is available. * @return RETVAL_SUCCEEDED if it succeeded, otherwise it return RETVAL_FAILED. */ retval_t scim_bridge_messenger_poll_message (ScimBridgeMessenger *messenger, ScimBridgeMessage **message); /** * Send the oldest stored message if it can. * * @param messenger The messenger. * @param timeout The maximum time to block. It will blocks until all the stored messages is sent if you give NULL here. * @return RETVAL_SUCCEEDED if no error has been occurred, otherwise it return RETVAL_FAILED. */ retval_t scim_bridge_messenger_send_message (ScimBridgeMessenger *messenger, const struct timeval *timeout); /** * Receive a message and store it. * * @param messenger The messenger. * @param timeout The maximum time to block. It will blocks until one whole message is available if you give NULL here. * @return RETVAL_SUCCEEDED if no error has been occurred, otherwise it return RETVAL_FAILED. */ retval_t scim_bridge_messenger_receive_message (ScimBridgeMessenger *messenger, const struct timeval *timeout); /** * Get the size of sendig buffer. * it implies that there is a message to send if the retval is greater thatn 0. * * @param messenger The messenger. * @return The size of messages to send. */ ssize_t scim_bridge_messenger_get_sending_buffer_size (const ScimBridgeMessenger *messenger); /** * Get the size of receiving buffer. * It implies that there might be a message to poll if the retval is greater than 0. * * @param messenger The messenger. * @return The size of received messages. */ ssize_t scim_bridge_messenger_get_receiving_buffer_size (const ScimBridgeMessenger *messenger); #ifdef __cplusplus } #endif #endif /*SCIMBRIDGEMESSAGENGER_H_*/ scim-1.4.14/extras/immodules/common/scim-bridge-output.h000066400000000000000000000060141177210725600232350ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ /** * @file * @author Ryo Dairiki * @brief This header is used for print out error messages. */ #ifndef SCIMBRIDGEOUTPUT_H_ #define SCIMBRIDGEOUTPUT_H_ #include "scim-bridge.h" #include "scim-bridge-debug.h" #ifdef __cplusplus extern "C" { #endif /** * Print out a message and give a line feed ('\n'). * The messages will be shown in the stdout. * * @param format The message in printf style. */ void scim_bridge_println (const char *format,...); /** * Print out an error message and give a line feed ('\n'). * The error messages will be shown in the stderr. * * @param format The message in printf style. */ void scim_bridge_perrorln (const char *format,...); /** * Print out an debug message and give a line feed ('\n'). * The error messages will be shown in the stdout. * Note, the message will be ignored if the given debug level is lower than that of the preference. * @ ee scim_bridge_debug_get_level () * * @param level The debug level. * @param format The message in printf style. */ void scim_bridge_pdebugln (scim_bridge_debug_level_t level, const char *format,...); /** * Print out a message without giving a line feed ('\n'). * The messages will be shown in the stdout. * * @param format The message in printf style. */ void scim_bridge_print (const char *format,...); /** * Print out an error message without giving a line feed ('\n'). * The error messages will be shown in the stderr. * * @param format The message in printf style. */ void scim_bridge_perror (const char *format,...); /** * Print out an debug message without giving a line feed ('\n'). * The error messages will be shown in the stdout. * Note, the message will be ignored if the given debug level is lower than that of the preference. * @ ee scim_bridge_debug_get_level () * * @param level The debug level. * @param format The message in printf style. */ void scim_bridge_pdebug (scim_bridge_debug_level_t level, const char *format,...); #ifdef __cplusplus } #endif #endif /*SCIMBRIDGEOUTPUT_H_*/ scim-1.4.14/extras/immodules/common/scim-bridge-path.c000066400000000000000000000063501177210725600226270ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ #include #include #include #include #include #include #include "scim-bridge-display.h" #include "scim-bridge-path.h" /* Private variables */ static const char COMPAT_VERSION[] = "0.3.0"; static const char SOCKET_DIR[] = "/tmp/"; static const char SOCKET_NAME[] = "socket"; static const char LOCKFILE_DIR[] = "/tmp/"; static const char LOCKFILE_NAME[] = "lockfile"; static const char AGENT_DIR[] = ""; static const char AGENT_NAME[] = "scim-im-agent"; static const char HOST_NAME[] = "localhost"; static char *lockfile_path = NULL; static char *socket_path = NULL; static char *agent_path = NULL; /* Private function */ static void static_initialize () { ScimBridgeDisplay *display = scim_bridge_alloc_display (); scim_bridge_display_fetch_current (display); const int display_number = scim_bridge_display_get_display_number (display); const int screen_number = scim_bridge_display_get_screen_number (display); scim_bridge_free_display (display); const uid_t uid = geteuid (); const size_t lockfile_path_length = snprintf (NULL, 0, "%s%s-%s.%s-%d@%s:%d.%d", LOCKFILE_DIR, AGENT_NAME, COMPAT_VERSION, LOCKFILE_NAME, uid, HOST_NAME, display_number, screen_number); lockfile_path = malloc (sizeof (char) * (lockfile_path_length + 1)); sprintf (lockfile_path, "%s%s-%s.%s-%d@%s:%d.%d", LOCKFILE_DIR, AGENT_NAME, COMPAT_VERSION, LOCKFILE_NAME, uid, HOST_NAME, display_number, screen_number); const size_t socket_path_length = snprintf (NULL, 0, "%s%s-%s.%s-%d@%s:%d.%d", SOCKET_DIR, AGENT_NAME, COMPAT_VERSION, SOCKET_NAME, uid, HOST_NAME, display_number, screen_number); socket_path = malloc (sizeof (char) * (socket_path_length + 1)); sprintf (socket_path, "%s%s-%s.%s-%d@%s:%d.%d", SOCKET_DIR, AGENT_NAME, COMPAT_VERSION, SOCKET_NAME, uid, HOST_NAME, display_number, screen_number); const size_t agent_path_length = snprintf (NULL, 0, "%s%s", AGENT_DIR, AGENT_NAME); agent_path = malloc (sizeof (char) * (agent_path_length + 1)); sprintf (agent_path, "%s%s", AGENT_DIR, AGENT_NAME); } /* Implementations */ const char *scim_bridge_path_get_lockfile () { if (lockfile_path == NULL) static_initialize (); return lockfile_path; } const char *scim_bridge_path_get_socket () { if (socket_path == NULL) static_initialize (); return socket_path; } const char *scim_bridge_path_get_agent () { if (agent_path == NULL) static_initialize (); return agent_path; } scim-1.4.14/extras/immodules/common/scim-bridge-path.h000066400000000000000000000031371177210725600226340ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ /** * @file * @author Ryo Dairiki * @brief This header describes abut path related information. */ #ifndef SCIMBRIDGEPATH_H_ #define SCIMBRIDGEPATH_H_ #include "scim-bridge.h" #ifdef __cplusplus extern "C" { #endif /** * Get the socket path for messengers. * * @return The socket path. */ const char *scim_bridge_path_get_socket (); /** * Get the path for the lockfile of the agent. * * @return The path for the lockfile. */ const char *scim_bridge_path_get_lockfile (); /** * Get the path for the binary of the agent. * * @return The path for the binary of the agent. */ const char *scim_bridge_path_get_agent (); #ifdef __cplusplus } #endif #endif /*SCIMBRIDGEPATH_H_*/ scim-1.4.14/extras/immodules/common/scim-bridge-string.c000066400000000000000000000370051177210725600232020ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ #include #include #include #include #include #include #include #include "scim-bridge-string.h" #include "scim-bridge-output.h" ssize_t scim_bridge_string_to_wstring (wchar **wstr, const char *str) { if (str == NULL) { *wstr = NULL; scim_bridge_perrorln ("A NULL pointer is given as the UTF8 string at scim_bridge_string_to_wstring ()"); return RETVAL_FAILED; } const size_t str_length = strlen (str); size_t str_index = 0; size_t wstr_capacity = 10; wchar *wstr_buffer = alloca (sizeof (wchar) * (wstr_capacity + 1)); int i; for (i = 0; str_index <= str_length; ++i) { if (i > wstr_capacity) { const size_t new_wstr_capacity = wstr_capacity + 10; wchar *new_wstr_buffer = alloca (sizeof (wchar) * (new_wstr_capacity + 1)); memcpy (new_wstr_buffer, wstr_buffer, sizeof (wchar) * (wstr_capacity + 1)); wstr_buffer = new_wstr_buffer; wstr_capacity = new_wstr_capacity; } unsigned char a = '\0'; unsigned char b = '\0'; unsigned char c = '\0'; unsigned char d = '\0'; unsigned char e = '\0'; unsigned char f = '\0'; a = (unsigned char)str[str_index]; if (str_index + 1 <= str_length) b = (unsigned char)str[str_index + 1]; if (str_index + 2 <= str_length) c = (unsigned char)str[str_index + 2]; if (str_index + 3 <= str_length) d = (unsigned char)str[str_index + 3]; if (str_index + 4 <= str_length) e = (unsigned char)str[str_index + 4]; if (str_index + 5 <= str_length) f = (unsigned char)str[str_index + 5]; size_t wchar_size; if (a < 0x80) { wchar_size = 1; } else if (a < 0xc2) { wchar_size = 0; } else if (a < 0xe0) { wchar_size = 2; } else if (a < 0xf0) { wchar_size = 3; } else if (a < 0xf8) { wchar_size = 4; } else if (a < 0xfc) { wchar_size = 5; } else if (a < 0xfe) { wchar_size = 6; } else { wchar_size = 0; } switch (wchar_size) { case 1: wstr_buffer[i] = a; str_index += 1; break; case 2: if (str_index + 1 > str_length || ! ((b ^ 0x80) < 0x40)) { *wstr = NULL; scim_bridge_perrorln ("An invalid UTF8 string is given at scim_bridge_string_to_wstring ()"); return RETVAL_FAILED; } else { wstr_buffer[i] = ((wchar) (a & 0x1f) << 6) | (wchar) (b ^ 0x80); str_index += 2; } break; case 3: if (str_index + 2 > str_length || ! ((b ^ 0x80) < 0x40 && (c ^ 0x80) < 0x40 && (a >= 0xe1 || b >= 0xa0))) { *wstr = NULL; scim_bridge_perrorln ("An invalid UTF8 string is given at scim_bridge_string_to_wstring ()"); return RETVAL_FAILED; } else { wstr_buffer[i] = ((wchar) (a & 0x0f) << 12) | ((wchar) (b ^ 0x80) << 6) | (wchar) (c ^ 0x80); str_index += 3; } break; case 4: if (str_index + 3 > str_length || ! ((b ^ 0x80) < 0x40 && (c ^ 0x80) < 0x40 && (d ^ 0x80) < 0x40 && (a >= 0xf1 || b >= 0x90))) { *wstr = NULL; scim_bridge_perrorln ("An invalid UTF8 string is given at scim_bridge_string_to_wstring ()"); return RETVAL_FAILED; } else { wstr_buffer[i] = ((wchar) (a & 0x07) << 18) | ((wchar) (b ^ 0x80) << 12) | ((wchar) (c ^ 0x80) << 6) | (wchar) (d ^ 0x80); str_index += 4; } break; case 5: if (str_index + 4 > str_length || ! ((b ^ 0x80) < 0x40 && (c ^ 0x80) < 0x40 && (d ^ 0x80) < 0x40 && (e ^ 0x80) < 0x40 && (a >= 0xf9 || b >= 0x88))) { *wstr = NULL; scim_bridge_perrorln ("An invalid UTF8 string is given at scim_bridge_string_to_wstring ()"); return RETVAL_FAILED; } else { wstr_buffer[i] = ((wchar) (a & 0x03) << 24) | ((wchar) (b ^ 0x80) << 18) | ((wchar) (c ^ 0x80) << 12) | ((wchar) (d ^ 0x80) << 6) | (wchar) (e ^ 0x80); str_index +=5; } break; case 6: if (str_index + 5 > str_length || ! ((b ^ 0x80) < 0x40 && (c ^ 0x80) < 0x40 && (d ^ 0x80) < 0x40 && (e ^ 0x80) < 0x40 && (f ^ 0x80) < 0x40 && (a >= 0xfd || b >= 0x84))) { *wstr = NULL; scim_bridge_perrorln ("An invalid UTF8 string is given at scim_bridge_string_to_wstring ()"); return RETVAL_FAILED; } else { wstr_buffer[i] = ((wchar) (a & 0x01) << 30) | ((wchar) (b ^ 0x80) << 24) | ((wchar) (c ^ 0x80) << 18) | ((wchar) (d ^ 0x80) << 12) | ((wchar) (e ^ 0x80) << 6) | (wchar) (f ^ 0x80); str_index += 6; } default: *wstr = NULL; scim_bridge_perrorln ("An invalid UTF8 string is given at scim_bridge_string_to_wstring ()"); return RETVAL_FAILED; } } const size_t wstr_length = i - 1; *wstr = malloc (sizeof (wchar) * (wstr_length + 1)); memcpy (*wstr, wstr_buffer, sizeof (wchar) * (wstr_length + 1)); return wstr_length; } ssize_t scim_bridge_wstring_to_string (char **str, const wchar *wstr) { if (wstr == NULL) { *str = NULL; scim_bridge_perrorln ("A NULL pointer is given as the UCS4 string at scim_bridge_wstring_to_string ()"); return RETVAL_FAILED; } const size_t wstr_length = scim_bridge_wstring_get_length (wstr); size_t str_index = 0; size_t str_capacity = 10; char *str_buffer = alloca (sizeof (char) * (str_capacity + 1)); int i; for (i = 0; i <= wstr_length; ++i) { wchar wc = wstr[i]; size_t wc_size_in_utf8; if (wc < 0x80) { wc_size_in_utf8 = 1; } else if (wc < 0x800) { wc_size_in_utf8 = 2; } else if (wc < 0x10000) { wc_size_in_utf8 = 3; } else if (wc < 0x200000) { wc_size_in_utf8 = 4; } else if (wc < 0x4000000) { wc_size_in_utf8 = 5; } else if (wc <= 0x7fffffff) { wc_size_in_utf8 = 6; } else { wc_size_in_utf8 = 0; } if (wc_size_in_utf8 == 0) { *str = NULL; scim_bridge_perrorln ("An invalid UCS4 string is given at scim_bridge_wstring_to_string ()"); return RETVAL_FAILED; } if (str_index + wc_size_in_utf8 > str_capacity) { const size_t new_str_capacity = str_capacity + 10; char *new_str_buffer = alloca (sizeof (char) * (new_str_capacity + 1)); strncpy (new_str_buffer, str_buffer, str_capacity + 1); str_buffer = new_str_buffer; str_capacity = new_str_capacity; } /* note: code falls through cases! */ switch (wc_size_in_utf8) { case 6: str_buffer[str_index + 5] = 0x80 | (wc & 0x3f); wc = wc >> 6; wc |= 0x4000000; case 5: str_buffer[str_index + 4] = 0x80 | (wc & 0x3f); wc = wc >> 6; wc |= 0x200000; case 4: str_buffer[str_index + 3] = 0x80 | (wc & 0x3f); wc = wc >> 6; wc |= 0x10000; case 3: str_buffer[str_index + 2] = 0x80 | (wc & 0x3f); wc = wc >> 6; wc |= 0x800; case 2: str_buffer[str_index + 1] = 0x80 | (wc & 0x3f); wc = wc >> 6; wc |= 0xc0; case 1: str_buffer[str_index + 0] = wc; } str_index += wc_size_in_utf8; } const size_t str_length = str_index - 1; *str = malloc (sizeof (char) * (str_length + 1)); strcpy (*str, str_buffer); return str_length; } ssize_t scim_bridge_wstring_get_length (const wchar *wstr) { if (wstr == NULL) { scim_bridge_perrorln ("A NULL pointer is given as the UCS4 string at scim_bridge_wstring_get_length ()"); return RETVAL_FAILED; } size_t i; for (i = 0; wstr[i] != L'\0'; ++i); return i; } ssize_t scim_bridge_string_get_length (const char *str) { if (str == NULL) { scim_bridge_perrorln ("A NULL pointer is given as the UTF8 string at scim_bridge_string_get_length ()"); return RETVAL_FAILED; } return strlen (str); } retval_t scim_bridge_string_to_uint (unsigned int *dst, const char *str) { if (str == NULL) { scim_bridge_perrorln ("A NULL pointer is given as a string at scim_bridge_string_to_uint ()"); return RETVAL_FAILED; } else { unsigned long value = 0; size_t i; for (i = 0; str[i] != '\0'; ++i) { unsigned int digit; switch (str[i]) { case '0': digit = 0; break; case '1': digit = 1; break; case '2': digit = 2; break; case '3': digit = 3; break; case '4': digit = 4; break; case '5': digit = 5; break; case '6': digit = 6; break; case '7': digit = 7; break; case '8': digit = 8; break; case '9': digit = 9; break; default: scim_bridge_perrorln ("An invalid char is given at scim_bridge_string_to_uint (): %c", str[i]); return RETVAL_FAILED; } value *= 10; value += digit; if (value > UINT_MAX) { scim_bridge_perrorln ("An over flow exception occurred at scim_bridge_string_to_uint ()"); return RETVAL_FAILED; } } *dst = value; return RETVAL_SUCCEEDED; } } retval_t scim_bridge_string_to_int (int *dst, const char *str) { if (str == NULL) { scim_bridge_perrorln ("A NULL pointer is given as a string at scim_bridge_string_to_int ()"); return RETVAL_FAILED; } else { unsigned long value = 0; boolean negative = FALSE; size_t i; for (i = 0; str[i] != '\0'; ++i) { unsigned int digit; switch (str[i]) { case '-': if (i == 0) { negative = TRUE; } else { scim_bridge_perrorln ("Negative signs cannot be given at the middle of the number at scim_bridge_string_to_int (): %s", str); return RETVAL_FAILED; } case '0': digit = 0; break; case '1': digit = 1; break; case '2': digit = 2; break; case '3': digit = 3; break; case '4': digit = 4; break; case '5': digit = 5; break; case '6': digit = 6; break; case '7': digit = 7; break; case '8': digit = 8; break; case '9': digit = 9; break; default: scim_bridge_perrorln ("An invalid char is given at scim_bridge_string_to_int (): %c", str[i]); return RETVAL_FAILED; } value *= 10; value += digit; if (!negative) { if (value > INT_MAX) { scim_bridge_perrorln ("An over flow exception occurred at scim_bridge_string_to_int ()"); return RETVAL_FAILED; } } else { if (-((long) value) < INT_MIN) { scim_bridge_perrorln ("An over flow exception at scim_bridge_string_to_int ()"); return RETVAL_FAILED; } } } if (!negative) { *dst = value; } else { *dst = -value; } return RETVAL_SUCCEEDED; } } retval_t scim_bridge_string_to_boolean (boolean *dst, const char *str) { if (str == NULL) { scim_bridge_perrorln ("A NULL pointer is given as a string at scim_bridge_string_to_boolean ()"); return RETVAL_FAILED; } else { if (strcmp (str, "TRUE") == 0 || strcmp (str, "True") == 0 || strcmp (str, "true") == 0) { *dst = TRUE; return RETVAL_SUCCEEDED; } else if (strcmp (str, "FALSE") == 0 || strcmp (str, "False") == 0 || strcmp (str, "false") == 0) { *dst = FALSE; return RETVAL_SUCCEEDED; } else { scim_bridge_perrorln ("An invalid string is given at scim_bridge_string_to_boolean (): %s", str); return RETVAL_FAILED; } } } size_t scim_bridge_string_from_uint (char **str, unsigned int value) { const size_t str_length = snprintf (NULL, 0, "%u", value); *str = malloc (sizeof (char) * (str_length + 1)); sprintf (*str, "%u", value); return str_length; } size_t scim_bridge_string_from_int (char **str, int value) { const size_t str_length = snprintf (NULL, 0, "%d", value); *str = malloc (sizeof (char) * (str_length + 1)); sprintf (*str, "%d", value); return str_length; } size_t scim_bridge_string_from_boolean (char **str, boolean value) { if (value == TRUE) { *str = malloc (sizeof (char) * 5); strcpy (*str, "TRUE"); return 4; } else { *str = malloc (sizeof (char) * 6); strcpy (*str, "FALSE"); return 5; } } scim-1.4.14/extras/immodules/common/scim-bridge-string.h000066400000000000000000000105751177210725600232120ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ /** * @file * @author Ryo Dairiki * @brief This is the header for the functions to manupulate strings. */ #ifndef SCIMBRIDGESTRING_H_ #define SCIMBRIDGESTRING_H_ #include #include #include #include "scim-bridge.h" #ifdef __cplusplus extern "C" { #endif #ifndef __STDC_ISO_10646__ /** * The type for wide string. */ typedef uint32_t wchar; #else /** * The type for wide string. */ typedef wchar_t wchar; #endif /** * Translate an utf8 string into an ucs4 wide string. * * @param str String to translate. * @param wstr The destination for the new wide string. * @return The length of the new wide string. -1 means that it failed to translate. */ ssize_t scim_bridge_string_to_wstring (wchar **wstr, const char *str); /** * Translate an ucs4 wide string into an utf8 string. * * @param wstr Wide string to translate. * @param str The destination for the new string. * @return The length of the new string. -1 means that it failed to translate. */ ssize_t scim_bridge_wstring_to_string (char **str, const wchar *wstr); /** * Get the length of a string. * * @param str The string. * @return The length of the string. */ ssize_t scim_bridge_string_get_length (const char *str); /** * Get the length of a wide string. * * @param str The wide string. * @return The length of the wide string. */ ssize_t scim_bridge_wstring_get_length (const wchar *wstr); /** * Translate a string into an unsigned integer. * * @param str The string to translate. * @param dst The destination pointer of uint. * @return It returns RETVAL_SUCCEEDED if succeeded, otherwise it returns RETVAIL_FAILED. */ retval_t scim_bridge_string_to_uint (unsigned int *dst, const char *str); /** * Translate a string into a integer. * * @param str The string to translate. * @param dst The destination pointer of int. * @return It returns RETVAL_SUCCEEDED if succeeded, otherwise it returns RETVAIL_FAILED. */ retval_t scim_bridge_string_to_int (int *dst, const char *str); /** * Translate a string into a boolean. * * @param str The string to translate. * @param dst The destination pointer of boolean. * @return It returns RETVAL_SUCCEEDED if succeeded, otherwise it returns RETVAIL_FAILED. */ retval_t scim_bridge_string_to_boolean (boolean *dst, const char *str); /** * Translate an unsigned integer into a string. * * @param value The value to translate. * @param str The destination pointer for the new string. * @return The length of the new string if succeeded, otherwise it returns -1. */ size_t scim_bridge_string_from_uint (char **str, unsigned int value); /** * Translate a integer into a string. * * @param value The value to translate. * @param str The destination pointer for the new string. * @return The length of the new string if succeeded, otherwise it returns -1. */ size_t scim_bridge_string_from_int (char **str, int value); /** * Translate a boolean into a string. * * @param value The value to translate. * @param str The destination pointer for the new string. * @return The length of the new string if succeeded, otherwise it returns -1. */ size_t scim_bridge_string_from_boolean (char **str, boolean value); #ifdef __cplusplus } #endif #endif /*SCIMBRIDGESTRING_H_*/ scim-1.4.14/extras/immodules/common/scim-bridge.h000066400000000000000000000031141177210725600216750ustar00rootroot00000000000000/* * SCIM Bridge * * Copyright (c) 2006 Ryo Dairiki * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation and * appearing in the file LICENSE.LGPL included in the package of this file. * You can also redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation and * appearing in the file LICENSE.GPL included in the package of this file. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ /** * @file * @author Ryo Dairiki * @brief This header describes about fundamental definitions of scim-bridge. */ #ifndef SCIMBRIDE_H_ #define SCIMBRIDE_H_ #ifdef HAVE_CONFIG_H #include "config.h" #endif #include #ifndef SCIM_VERSION #define SCIM_VERSION "" #endif /** * The type of boolean. */ typedef int boolean; #ifndef TRUE #define TRUE 1 #endif #ifndef FALSE #define FALSE 0 #endif #ifndef NULL #define NULL 0 #endif /** * The type of retvals. */ typedef int retval_t; /** * The return value of failture. */ #define RETVAL_FAILED -1 /** * The return value of successness. */ #define RETVAL_SUCCEEDED 0 /** * The return value of ignoreness. */ #define RETVAL_IGNORED 1 #endif /*SCIMBRIDE_H_*/ scim-1.4.14/extras/immodules/config.rpath000077500000000000000000000436471177210725600203760ustar00rootroot00000000000000#! /bin/sh # Output a system dependent set of variables, describing how to set the # run time search path of shared libraries in an executable. # # Copyright 1996-2007 Free Software Foundation, Inc. # Taken from GNU libtool, 2001 # Originally by Gordon Matzigkeit , 1996 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # # The first argument passed to this file is the canonical host specification, # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld # should be set by the caller. # # The set of defined variables is at the end of this script. # Known limitations: # - On IRIX 6.5 with CC="cc", the run time search patch must not be longer # than 256 bytes, otherwise the compiler driver will dump core. The only # known workaround is to choose shorter directory names for the build # directory and/or the installation directory. # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a shrext=.so host="$1" host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` # Code taken from libtool.m4's _LT_CC_BASENAME. for cc_temp in $CC""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'` # Code taken from libtool.m4's AC_LIBTOOL_PROG_COMPILER_PIC. wl= if test "$GCC" = yes; then wl='-Wl,' else case "$host_os" in aix*) wl='-Wl,' ;; darwin*) case $cc_basename in xlc*) wl='-Wl,' ;; esac ;; mingw* | cygwin* | pw32* | os2*) ;; hpux9* | hpux10* | hpux11*) wl='-Wl,' ;; irix5* | irix6* | nonstopux*) wl='-Wl,' ;; newsos6) ;; linux* | k*bsd*-gnu) case $cc_basename in icc* | ecc*) wl='-Wl,' ;; pgcc | pgf77 | pgf90) wl='-Wl,' ;; ccc*) wl='-Wl,' ;; como) wl='-lopt=' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) wl='-Wl,' ;; esac ;; esac ;; osf3* | osf4* | osf5*) wl='-Wl,' ;; rdos*) ;; solaris*) wl='-Wl,' ;; sunos4*) wl='-Qoption ld ' ;; sysv4 | sysv4.2uw2* | sysv4.3*) wl='-Wl,' ;; sysv4*MP*) ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) wl='-Wl,' ;; unicos*) wl='-Wl,' ;; uts4*) ;; esac fi # Code taken from libtool.m4's AC_LIBTOOL_PROG_LD_SHLIBS. hardcode_libdir_flag_spec= hardcode_libdir_separator= hardcode_direct=no hardcode_minus_L=no case "$host_os" in cygwin* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs=yes if test "$with_gnu_ld" = yes; then # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. # Unlike libtool, we use -rpath here, not --rpath, since the documented # option of GNU ld is called -rpath, not --rpath. hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' case "$host_os" in aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no fi ;; amigaos*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we cannot use # them. ld_shlibs=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; cygwin* | mingw* | pw32*) # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then : else ld_shlibs=no fi ;; interix[3-9]*) hardcode_direct=no hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; gnu* | linux* | k*bsd*-gnu) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; netbsd*) ;; solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs=no elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' else ld_shlibs=no fi ;; esac ;; sunos4*) hardcode_direct=yes ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = no; then hardcode_libdir_flag_spec= fi else case "$host_os" in aix3*) # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac fi hardcode_direct=yes hardcode_libdir_separator=':' if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct=unsupported hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac fi # Begin _LT_AC_SYS_LIBPATH_AIX. echo 'int main () { return 0; }' > conftest.c ${CC} ${LDFLAGS} conftest.c -o conftest aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` fi if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib" fi rm -f conftest.c conftest # End _LT_AC_SYS_LIBPATH_AIX. if test "$aix_use_runtimelinking" = yes; then hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' else hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" fi fi ;; amigaos*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes # see comment about different semantics on the GNU ld section ld_shlibs=no ;; bsdi[45]*) ;; cygwin* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec=' ' libext=lib ;; darwin* | rhapsody*) hardcode_direct=no if test "$GCC" = yes ; then : else case $cc_basename in xlc*) ;; *) ld_shlibs=no ;; esac fi ;; dgux*) hardcode_libdir_flag_spec='-L$libdir' ;; freebsd1*) ld_shlibs=no ;; freebsd2.2*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; freebsd2*) hardcode_direct=yes hardcode_minus_L=yes ;; freebsd* | dragonfly*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; hpux9*) hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; hpux10*) if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_direct=no ;; *) hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; netbsd*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; newsos6) hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct=yes if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then hardcode_libdir_flag_spec='${wl}-rpath,$libdir' else case "$host_os" in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) hardcode_libdir_flag_spec='-R$libdir' ;; *) hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi else ld_shlibs=no fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; osf3*) hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) if test "$GCC" = yes; then hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else # Both cc and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi hardcode_libdir_separator=: ;; solaris*) hardcode_libdir_flag_spec='-R$libdir' ;; sunos4*) hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes ;; sysv4) case $host_vendor in sni) hardcode_direct=yes # is this really true??? ;; siemens) hardcode_direct=no ;; motorola) hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac ;; sysv4.3*) ;; sysv4*MP*) if test -d /usr/nec; then ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) ;; sysv5* | sco3.2v5* | sco5v6*) hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator=':' ;; uts4*) hardcode_libdir_flag_spec='-L$libdir' ;; *) ld_shlibs=no ;; esac fi # Check dynamic linker characteristics # Code taken from libtool.m4's AC_LIBTOOL_SYS_DYNAMIC_LINKER. # Unlike libtool.m4, here we don't care about _all_ names of the library, but # only about the one the linker finds when passed -lNAME. This is the last # element of library_names_spec in libtool.m4, or possibly two of them if the # linker has special search rules. library_names_spec= # the last element of library_names_spec in libtool.m4 libname_spec='lib$name' case "$host_os" in aix3*) library_names_spec='$libname.a' ;; aix4* | aix5*) library_names_spec='$libname$shrext' ;; amigaos*) library_names_spec='$libname.a' ;; beos*) library_names_spec='$libname$shrext' ;; bsdi[45]*) library_names_spec='$libname$shrext' ;; cygwin* | mingw* | pw32*) shrext=.dll library_names_spec='$libname.dll.a $libname.lib' ;; darwin* | rhapsody*) shrext=.dylib library_names_spec='$libname$shrext' ;; dgux*) library_names_spec='$libname$shrext' ;; freebsd1*) ;; freebsd* | dragonfly*) case "$host_os" in freebsd[123]*) library_names_spec='$libname$shrext$versuffix' ;; *) library_names_spec='$libname$shrext' ;; esac ;; gnu*) library_names_spec='$libname$shrext' ;; hpux9* | hpux10* | hpux11*) case $host_cpu in ia64*) shrext=.so ;; hppa*64*) shrext=.sl ;; *) shrext=.sl ;; esac library_names_spec='$libname$shrext' ;; interix[3-9]*) library_names_spec='$libname$shrext' ;; irix5* | irix6* | nonstopux*) library_names_spec='$libname$shrext' case "$host_os" in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;; *) libsuff= shlibsuff= ;; esac ;; esac ;; linux*oldld* | linux*aout* | linux*coff*) ;; linux* | k*bsd*-gnu) library_names_spec='$libname$shrext' ;; knetbsd*-gnu) library_names_spec='$libname$shrext' ;; netbsd*) library_names_spec='$libname$shrext' ;; newsos6) library_names_spec='$libname$shrext' ;; nto-qnx*) library_names_spec='$libname$shrext' ;; openbsd*) library_names_spec='$libname$shrext$versuffix' ;; os2*) libname_spec='$name' shrext=.dll library_names_spec='$libname.a' ;; osf3* | osf4* | osf5*) library_names_spec='$libname$shrext' ;; rdos*) ;; solaris*) library_names_spec='$libname$shrext' ;; sunos4*) library_names_spec='$libname$shrext$versuffix' ;; sysv4 | sysv4.3*) library_names_spec='$libname$shrext' ;; sysv4*MP*) library_names_spec='$libname$shrext' ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) library_names_spec='$libname$shrext' ;; uts4*) library_names_spec='$libname$shrext' ;; esac sed_quote_subst='s/\(["`$\\]\)/\\\1/g' escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"` shlibext=`echo "$shrext" | sed -e 's,^\.,,'` escaped_libname_spec=`echo "X$libname_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` escaped_library_names_spec=`echo "X$library_names_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' < Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. scim-1.4.14/extras/immodules/doc/LICENSE.LGPL000066400000000000000000000634761177210725600203770ustar00rootroot00000000000000 GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999 Copyright (C) 1991, 1999 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. [This is the first released version of the Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.] Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below. When we speak of free software, we are referring to freedom of use, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish); that you receive source code or can get it if you want it; that you can change the software and use pieces of it in new free programs; and that you are informed that you can do these things. To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights. We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library. To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others. Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs. When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library. We call this license the "Lesser" General Public License because it does Less to protect the user's freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances. For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License. In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system. Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, whereas the latter must be combined with the library in order to run. GNU LESSER GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called "this License"). Each licensee is addressed as "you". A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) "Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) The modified work must itself be a software library. b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. 6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with. c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License. 11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 13. The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Libraries If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License). To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the library `Frob' (a library for tweaking knobs) written by James Random Hacker. , 1 April 1990 Ty Coon, President of Vice That's all there is to it! scim-1.4.14/extras/immodules/doc/Makefile.am000066400000000000000000000023551177210725600206560ustar00rootroot00000000000000## Makefile.am -- Process this file with automake to produce Makefile.in ## ## Copyright (C) 2006 Ryo Dairiki ## ## ## This library is free software; you can redistribute it and/or ## modify it under the terms of the GNU Lesser General Public ## License as published by the Free Software Foundation and ## appearing in the file LICENSE.LGPL included in the package of this file. ## You can also redistribute it and/or modify it under the terms of ## the GNU General Public License as published by the Free Software Foundation and ## appearing in the file LICENSE.GPL included in the package of this file. ## ## This library is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. if SCIM_BUILD_DOCUMENTS api: -rm -rf api; cd ..; doxygen doc/doxygen.conf all: api clean: rm -rf api endif MAINTAINERCLEANFILES = Makefile.in api CLEANFILES = *.bak EXTRA_DIST = doxygen.conf index.html document.css LICENSE.LGPL LICENSE.GPL dist-hook: mkdir -p $(distdir)/user mkdir -p $(distdir)/developer mkdir -p $(distdir)/tests cp user/*.html $(distdir)/user cp developer/*.html $(distdir)/developer cp tests/*.txt $(distdir)/tests scim-1.4.14/extras/immodules/doc/Makefile.in000066400000000000000000000356341177210725600206750ustar00rootroot00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = extras/immodules/doc DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ ARGZ_H = @ARGZ_H@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CLUTTER_BINARY_VERSION = @CLUTTER_BINARY_VERSION@ CLUTTER_CFLAGS = @CLUTTER_CFLAGS@ CLUTTER_IMCONTEXT_LIBDIR = @CLUTTER_IMCONTEXT_LIBDIR@ CLUTTER_IM_MODULEDIR = @CLUTTER_IM_MODULEDIR@ CLUTTER_LIBDIR = @CLUTTER_LIBDIR@ CLUTTER_LIBS = @CLUTTER_LIBS@ CLUTTER_VERSION = @CLUTTER_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOCBOOK_XSL = @DOCBOOK_XSL@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@ GTHREAD2_LIBS = @GTHREAD2_LIBS@ GTK2_CFLAGS = @GTK2_CFLAGS@ GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@ GTK2_LIBS = @GTK2_LIBS@ GTK3_CFLAGS = @GTK3_CFLAGS@ GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@ GTK3_LIBS = @GTK3_LIBS@ GTK_BINARY_VERSION = @GTK_BINARY_VERSION@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBDIR = @GTK_LIBDIR@ GTK_LIBS = @GTK_LIBS@ GTK_MAJOR_VERSION = @GTK_MAJOR_VERSION@ GTK_VERSION = @GTK_VERSION@ HAVE_GRAPHVIZ = @HAVE_GRAPHVIZ@ INCLTDL = @INCLTDL@ INCLUDE_STDINT = @INCLUDE_STDINT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBLTDL = @LIBLTDL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_DEPS = @LIBTOOL_DEPS@ LIBTOOL_EXPORT_OPTIONS = @LIBTOOL_EXPORT_OPTIONS@ LIPO = @LIPO@ LN_S = @LN_S@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ QT3_CFLAGS = @QT3_CFLAGS@ QT3_IM_MODULEDIR = @QT3_IM_MODULEDIR@ QT3_LIBDIR = @QT3_LIBDIR@ QT3_LIBS = @QT3_LIBS@ QT3_MOC = @QT3_MOC@ QT3_PREFIX = @QT3_PREFIX@ QT4_CFLAGS = @QT4_CFLAGS@ QT4_IM_MODULEDIR = @QT4_IM_MODULEDIR@ QT4_LIBDIR = @QT4_LIBDIR@ QT4_LIBS = @QT4_LIBS@ QT4_MOC = @QT4_MOC@ QT4_PREFIX = @QT4_PREFIX@ RANLIB = @RANLIB@ SCIM_AGE = @SCIM_AGE@ SCIM_BINARY_VERSION = @SCIM_BINARY_VERSION@ SCIM_BRIDGE_MAJOR_VERSION = @SCIM_BRIDGE_MAJOR_VERSION@ SCIM_BRIDGE_MICRO_VERSION = @SCIM_BRIDGE_MICRO_VERSION@ SCIM_BRIDGE_MINOR_VERSION = @SCIM_BRIDGE_MINOR_VERSION@ SCIM_BRIDGE_VERSION = @SCIM_BRIDGE_VERSION@ SCIM_BUILD_CLUTTER_IMMODULE = @SCIM_BUILD_CLUTTER_IMMODULE@ SCIM_BUILD_CONFIG_SIMPLE = @SCIM_BUILD_CONFIG_SIMPLE@ SCIM_BUILD_CONFIG_SOCKET = @SCIM_BUILD_CONFIG_SOCKET@ SCIM_BUILD_DOCUMENTS = @SCIM_BUILD_DOCUMENTS@ SCIM_BUILD_FILTER_SCTC = @SCIM_BUILD_FILTER_SCTC@ SCIM_BUILD_FRONTEND_SOCKET = @SCIM_BUILD_FRONTEND_SOCKET@ SCIM_BUILD_FRONTEND_X11 = @SCIM_BUILD_FRONTEND_X11@ SCIM_BUILD_GTK2_IMMODULE = @SCIM_BUILD_GTK2_IMMODULE@ SCIM_BUILD_GTK3_IMMODULE = @SCIM_BUILD_GTK3_IMMODULE@ SCIM_BUILD_GTK_UTILS = @SCIM_BUILD_GTK_UTILS@ SCIM_BUILD_IMENGINE_RAWCODE = @SCIM_BUILD_IMENGINE_RAWCODE@ SCIM_BUILD_IMENGINE_SOCKET = @SCIM_BUILD_IMENGINE_SOCKET@ SCIM_BUILD_IMENGINE_TABLE = @SCIM_BUILD_IMENGINE_TABLE@ SCIM_BUILD_IMMODULE = @SCIM_BUILD_IMMODULE@ SCIM_BUILD_IM_AGENT = @SCIM_BUILD_IM_AGENT@ SCIM_BUILD_ORIG_GTK2_IMMODULE = @SCIM_BUILD_ORIG_GTK2_IMMODULE@ SCIM_BUILD_ORIG_GTK3_IMMODULE = @SCIM_BUILD_ORIG_GTK3_IMMODULE@ SCIM_BUILD_PANEL_GTK = @SCIM_BUILD_PANEL_GTK@ SCIM_BUILD_QT3_IMMODULE = @SCIM_BUILD_QT3_IMMODULE@ SCIM_BUILD_QT4_IMMODULE = @SCIM_BUILD_QT4_IMMODULE@ SCIM_BUILD_SCIM_SETUP = @SCIM_BUILD_SCIM_SETUP@ SCIM_BUILD_TESTS = @SCIM_BUILD_TESTS@ SCIM_BUILD_X11_UTILS = @SCIM_BUILD_X11_UTILS@ SCIM_CURRENT = @SCIM_CURRENT@ SCIM_DATADIR = @SCIM_DATADIR@ SCIM_EPOCH = @SCIM_EPOCH@ SCIM_ICONDIR = @SCIM_ICONDIR@ SCIM_LIBDIR = @SCIM_LIBDIR@ SCIM_LIBEXECDIR = @SCIM_LIBEXECDIR@ SCIM_LOCALEDIR = @SCIM_LOCALEDIR@ SCIM_LTDLADVISE = @SCIM_LTDLADVISE@ SCIM_MAJOR_VERSION = @SCIM_MAJOR_VERSION@ SCIM_MICRO_VERSION = @SCIM_MICRO_VERSION@ SCIM_MINOR_VERSION = @SCIM_MINOR_VERSION@ SCIM_MODULE_PATH = @SCIM_MODULE_PATH@ SCIM_PREFIX = @SCIM_PREFIX@ SCIM_REVISION = @SCIM_REVISION@ SCIM_SYSCONFDIR = @SCIM_SYSCONFDIR@ SCIM_TEMPDIR = @SCIM_TEMPDIR@ SCIM_VERSION = @SCIM_VERSION@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UINT16 = @UINT16@ UINT32 = @UINT32@ UINT64 = @UINT64@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XMKMF = @XMKMF@ XSLTPROC = @XSLTPROC@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_aux_dir = @ac_aux_dir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ MAINTAINERCLEANFILES = Makefile.in api CLEANFILES = *.bak EXTRA_DIST = doxygen.conf index.html document.css LICENSE.LGPL LICENSE.GPL all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu extras/immodules/doc/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu extras/immodules/doc/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" distdir="$(distdir)" \ dist-hook check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) @SCIM_BUILD_DOCUMENTS_FALSE@clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ dist-hook distclean distclean-generic distclean-libtool \ distdir dvi dvi-am html html-am info info-am install \ install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ uninstall uninstall-am @SCIM_BUILD_DOCUMENTS_TRUE@api: @SCIM_BUILD_DOCUMENTS_TRUE@ -rm -rf api; cd ..; doxygen doc/doxygen.conf @SCIM_BUILD_DOCUMENTS_TRUE@all: api @SCIM_BUILD_DOCUMENTS_TRUE@clean: @SCIM_BUILD_DOCUMENTS_TRUE@ rm -rf api dist-hook: mkdir -p $(distdir)/user mkdir -p $(distdir)/developer mkdir -p $(distdir)/tests cp user/*.html $(distdir)/user cp developer/*.html $(distdir)/developer cp tests/*.txt $(distdir)/tests # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: scim-1.4.14/extras/immodules/doc/developer/000077500000000000000000000000001177210725600206025ustar00rootroot00000000000000scim-1.4.14/extras/immodules/doc/developer/client.html000066400000000000000000000322471177210725600227560ustar00rootroot00000000000000 Scim Bridge: Developer Manual

    Scim Bridge Developer Manual: The clients

    Up

    The introduction

    The clients of scim-bridge communicates with the agent with utf8 string messages, but you don't have to understand them at all. There are the client library to handle them. All you have to do is to understand how to use this library.

    Let's learn about the event loop

    Most GUI applications have their own event loop. The event loop is unique for each process, and all the GUI events are handled in this big loop. Immodules could have another thread, but I don't recommand that because most GUI libraries are not "thread-safe". You should handle GUI events in the GUI thread and change the preedit only from the same thread. The most difficult point is the communication with the agent.

    How should I handle messages?

    The first step you should do is to add the pool trigger for your GUI library. This invokes an event when the message from the agent available. Creating another thread to pooling the socket is not recommanded as many GUI library is not thread safe. The ancient scim-bridge-0.1.* always has troubles with the violation of the GUI thread policy.

    Example:

    
    // This function is called while initializing the immodule.
    void scim_bridge_client_gtk_initialize ()
    {
        ...
    
        // Try to initialize scim client library.
        if (!scim_bridge_client_initialize ()) {
    
            // Add the IO channel for the socket.
            messenger_iochannel = g_io_channel_unix_new (scim_bridge_client_get_socket_fd ());
    
            // Register the IO channel to the GUI event loop, 
            // so that it calls handle_message () when the message is arrived.
            messenger_event_source = g_io_add_watch (messenger_iochannel, G_IO_IN, &handle_message, NULL);
    
        } else {
            scim_bridge_perrorln ("Error: Cannot initialize the client library");
            return;
        }
    
        ...
    }
                    

    In the event handler, you have to read_and_dispatch the message. It reads the message, translate it into C function calls for you. Note, read_and_dispatch might be block itself when there is no message at all.

    • retval_t scim_bridge_client_read_and_dispatch ()
      • Read and dispatch the message.
      • It returns RETVAL_SUCCEEDED if succeeded, otherwise it returns RETVAL_FAILED.

    Example:

    
    // This function is called when a message is arrived from the agent.
    static gboolean handle_message (GIOChannel *source, GIOCondition condition, gpointer data)
    {
        // Get the file discriptor for the socket.
        const int socket_fd = scim_bridge_client_get_socket_fd ();
    
        fd_set read_set;
        FD_ZERO (&read_set);
        FD_SET (socket_fd, &read_set);
    
        struct timeval timeout;
        timeout.tv_sec = 0;
        timeout.tv_usec = 0;
    
        // The GTK+ has some bug that it sometimes give us invalid pool events.
        // I have to check if an message is really available.
        if (select (socket_fd + 1, &read_set, NULL, NULL, &timeout) > 0) {
            
            // There should be an message arraived.
            // Now, read and dispatch the message.
            if (scim_bridge_client_read_and_dispatch ()) {
                // Error.
                scim_bridge_perrorln ("Error: IO exception");
            }
        }
    
        return TRUE;
    }
                    

    Note, some of the functions may block until the agent returns a response, but another message from the agent may interrupt to invoke the helper function while blocking. You might make a serious bug without understanding this feature. :<

    The registration

    When a new IMContext is allocated, you have to register it to the agent. You can get the unique ID for the IMContext if registration is succeeded. Of course, you also have to unregister it when it's freed. Note, the agent would free all the imcontext of the client when the connection is lost by accidents.

    • retval_t scim_bridge_client_register_imcontext (ScimBridgeClientIMContext *imcontext)
      • Register the new IMContext to the agent.
      • It gives the IMContext an uniqe ID if succeeded. Otherwise, the ID of the IMContext is set to -1.
    • retval_t scim_bridge_client_deregister_imcontext (ScimBridgeClientIMContext *imcontext)
      • Deregister the IMContext from the agent.
      • It sets the ID of the IMContext to -1.

    The preedit

    You can change the way to show the preedit for the client by following function. This is useful especially in the case the agent cannot show the preedit for you; The client can stop the agent showing the preedit and show the one by itself.

    • retval_t scim_bridge_client_set_preedit_mode (const ScimBridgeClientIMContext *imcontext, scim_bridge_preedit_mode_t mode)
      • Set the way to show the preedit.
      • The default value is SCIM_BRIDGE_PREEDIT_ANY, but you can chage that by giving NULL to imcontext.

    The key event

    As it says, the agent sometimes ignores the key events. In that case, the client can handle it by itself. If the "A" key is pressed and ignored, the client can commit "A" by its own. Otherwise, the client should not be handle it by its own. There is some arguments about the acclerator key events. Some say that the accelerator key events and nmemonic key events should not be passed the IM but be handled by the clients, while others say that IM should handle all the key events first. There is no standard for this, but I personally believe that the accelerators should be handled by the clients first and be passed to the agent later if it has not been consumed. :)

    • retval_t scim_bridge_handle_key_event (const ScimBridgeClientIMContext *imcontext, const ScimBridgeKeyEvent *key_event, boolean *consumed)
      • Request the agent to handle a key event.
      • When the event is consumed, The flag consumed gives TRUE.

    Example:

    
    // This function is called everytime a key event occures unless it's an accelerator key event.
    gboolean scim_bridge_client_imcontext_filter_key_event (GtkIMContext *context, GdkEventKey *event)
    {
        ...
    
        // Get the imcontext which is currently focused.
        ScimBridgeClientIMContext *imcontext = SCIM_BRIDGE_CLIENT_IMCONTEXT (context);
    
        // Check if the imcontext is valid.
        if (scim_bridge_client_is_active () && imcontext != NULL && !key_snooper_used) {
            ...
    
            // Translate the key event of Gtk+ into the one of scim-bridge.
            ScimBridgeKeyEvent *bridge_key_event = scim_bridge_alloc_key_event ();
            scim_bridge_key_event_gdk_to_bridge (bridge_key_event, imcontext->client_window, event);
    
            // Pass it to the agent.
            boolean consumed = FALSE;
            const retval_t retval_error = scim_bridge_client_handle_key_event (imcontext, bridge_key_event, &consumed);
    
            if (retval_error) {
                // Error
                scim_bridge_perrorln ("IO error occured");
            } else if (consumed) {
                // The key event has been consumed.
                // Do not handle it any more.
                return TRUE;
            }
        }
    
        // The key event has not been consumed.
        // Handle it by the fallback handler.
        return gtk_im_context_filter_keypress (fallback_imcontext, event);
    }
                    

    The focus and the cursor location

    The information about the focus is very important. Without it, the agent can't handle IM events properly. You have to tell the agent everytime an IMContext loses its focus or gains a focus. When the focus is moved from an IMContext to another one, please tell focus-out first and then tell focus-in.

    • retval_t scim_bridge_client_set_focus (const ScimBridgeClientIMContext *imcontext, boolean focus_in)
      • The focus of an IMContext has been changed.
      • focus_in stands for the type of this focus changing. Give it TRUE if the IMContext gets the focus newly, otherwise give it FALSE.

    Example:

    // This function is called when it gains the focus.
    void scim_bridge_client_imcontext_focus_in (GtkIMContext *context)
    {
        ...
    
        // Get the imcontex which gets the focus now.
        ScimBridgeClientIMContext *imcontext = SCIM_BRIDGE_CLIENT_IMCONTEXT (context);
    
        // If another IMContext still has the focus, get it back. 
        if (focused_imcontext != NULL && focused_imcontext != imcontext) {
            scim_bridge_client_imcontext_focus_out (GTK_IM_CONTEXT (focused_imcontext));
        }
    
        focused_imcontext = imcontext;
    
        ...
        if (scim_bridge_client_is_active () && imcontext != NULL) {
            
            // Tell the agent the focus changing.
            if (scim_bridge_client_set_focus (imcontext, TRUE)) {
                // Error
                scim_bridge_perrorln ("Cannot handle `focus-in` properly");
            }
        }
    
        ....
    }
    
    // This function is called when it loses the focus.
    void scim_bridge_client_imcontext_focus_out (GtkIMContext *context)
    {
        ...
    
        ScimBridgeClientIMContext *imcontext = SCIM_BRIDGE_CLIENT_IMCONTEXT (context);
    
        focused_imcontext = imcontext;
    
        // Hide the preedit. (Not necessary, but recommanded)
        if (imcontext->preedit_shown) {
            scim_bridge_client_imcontext_set_preedit_shown (imcontext, FALSE);
            scim_bridge_client_imcontext_update_preedit (imcontext);
        }
        if (scim_bridge_client_is_active () && imcontext != NULL) {
    
            // Tell the agent the focus changing.
            if (scim_bridge_client_set_focus (imcontext, FALSE)) {
                scim_bridge_perrorln ("Cannot handle `focus-out` properly");
            }
        }
    
        ...
        focused_imcontext = NULL;
    }
                    

    The cursor location is required by the agent when it shows the preedit and the lookup table. You have to tell the agent the cursor position in the display continually to update the location of them properly, otherwise they won't show up in the correct positions. On the other hand, you don't have to tell it when all of them are showen by the clients.

    • retval_t scim_bridge_client_set_cursor_location (const ScimBridgeClientIMContext *imcontext, int x, int y)
      • Change the cursor location in the display.


    scim-1.4.14/extras/immodules/doc/developer/imcontext.html000066400000000000000000000245071177210725600235120ustar00rootroot00000000000000 Scim Bridge: Developer Manual

    Scim Bridge Developer Manual: IMContexts

    Up

    About this datatype

    The IMContext is the data type for input methods. This contains context data of input method, such as focused widgets or current lines. IMContexts behave as interface between the client library of scim-bridge and GUI libraries. Every message from the agent invokes functions of the current IMContext, and GUI events should be treated as events from IMContexts (see the previous section). So basically, all the functions of IMContext is to be implemented by you.

    Registering and deregistering it

    In allocating and finalizing IMContexts, the client must call scim_bridge_client_register_imcontext and scim_bridge_client_degister_imcontext. See the previous section.

    Showing the preedit string

    In the embedded preedit mode, preedit related functions are called everytime the agent update the preedit. There are some functions to implement to show it.

    • void scim_bridge_client_imcontext_update_preedit (ScimBridgeClientIMContext *imcontext)
      • Update the preedit.
      • All the changes are applied by calling this function.
    • void scim_bridge_client_imcontext_set_preedit_shown (ScimBridgeClientIMContext *imcontext, boolean shown)
      • Set the visibility of the preedit.
      • shown stands for the visibility, TRUE to show it.
    • void scim_bridge_client_imcontext_set_preedit_string (ScimBridgeClientIMContext *imcontext, const char *string)
      • Set the contents of the preedit.
      • string is the utf8 encoded string for the preedit.
    • void scim_bridge_client_imcontext_set_preedit_attributes (ScimBridgeClientIMContext *imcontext, const ScimBridgeAttribute **attributes, int attribute_count)
      • Set the attributes (= appearance) of the preedit.
      • attributes is the array of the attributes for the preedit.
      • attribute_count is the number of the attributes.
    • void scim_bridge_client_imcontext_set_preedit_cursor_position (ScimBridgeClientIMContext *imcontext, int cursor_position)
      • Set the caret index in the preedit.
      • cursor_position is the caret index, 0 means that the caret is in the front of the preediting resion.

    Commiting a string

    Commit functions are called everytime you settle the preedit string.

    • void scim_bridge_client_imcontext_set_commit_string (ScimBridgeClientIMContext *imcontext, const char *string)
      • Set the string to commit.
    • void scim_bridge_client_imcontext_commit_string (ScimBridgeClientIMContext *imcontext)
      • Commit a string.

    Handling key events

    When the key is pressed, the client should call scim_bridge_handle_key_event. See the previous section.

    There are also forwarding key events from the agent. Please add it into the GUI event queue.

    • void scim_bridge_client_imcontext_forward_key_event (const ScimBridgeClientIMContext *imcontext, const ScimBridgeKeyEvent *key_event)
      • A key event is forwarded from the agent.

    Example:

    // This function is called when a key event is forwarded from the agent.
    void scim_bridge_client_imcontext_forward_key_event (const ScimBridgeClientIMContext *imcontext, const ScimBridgeKeyEvent *key_event)
    {
        // Translate it into GTK key event.
        GdkEventKey gdk_event;
        scim_bridge_key_event_bridge_to_gdk (&gdk_event, imcontext->client_window, key_event);
    
        // Then add it into gtk event queue.
        gdk_event_put ((GdkEvent*) &gdk_event);
    }
                    

    Handling the focus and the cursor location

    The focus information and the cursor locations should be send the agent. Follow the instruction in the previous section.

    Processing the surrounding text

    There are some IME which use the text around input cursor. The clients should be able to handle at least one paragraph before and after the cursor. This feature is very important for IMEs of some languages. They choose which character to insert following to the characters before and after the insertation position. The following functions are called when manupulation of the surrounding text is required.

    • boolean scim_bridge_client_imcontext_get_surrounding_text (ScimBridgeClientIMContext *imcontext, int before_max, int after_max, char **string, int *cursor_position)
      • The surrounding text is required from the agent.
      • Return TRUE if it succeeded to get the surrounding text, otherwise return FALSE.
      • before_max and after_max are the maximum wchars to get before and after the cursor.
      • string is the pointer for the gotten text. You can give it "NULL" if not available.
      • cursor_position is the cursor_position (in wchar) in the gotten text.
    • boolean scim_bridge_client_imcontext_delete_surrounding_text (ScimBridgeClientIMContext *imcontext, int offset, intlength)
      • Delete a part of the surrounding text.
      • This function is applied on the surrounding text, which is gotten by the previous call of get_surrounding_text ().
      • Return TRUE if it succeeded to delete that, otherwise return FALSE.
      • offset is the begining offset (in wchar) of the text to delete from the caret.
      • length is the length of the text to remove.
    • boolean scim_bridge_client_imcontext_replace_surrounding_text (ScimBridgeClientIMContext *imcontext, int cursor_position, const char *string)
      • Replace the surrounding text.
      • This function is applied on the surrounding text, which is gotten by the previous call of get_surrounding_text ().
      • Return TRUE if it succeeded to replace the surrounding text, otherwise return FALSE.
      • cursor_position is the cursor_position (in wchar) in the new text.
      • string is the new text to set as the surrounding text.

    Misc functions

    There are some functions you have to implement, but they can be ignored if you doesn't need it. If you wonder how to implement, leave them as dummy (empty) implimentations.

    • void scim_bridge_client_imcontext_beep (const ScimBridgeIMContext *imcontext)
      • Make a beep sound.


    scim-1.4.14/extras/immodules/doc/developer/index.html000066400000000000000000000070541177210725600226050ustar00rootroot00000000000000 Scim Bridge: Developer Manual

    Scim Bridge Developer Manual

    Up


    scim-1.4.14/extras/immodules/doc/developer/introduction.html000066400000000000000000000061001177210725600242060ustar00rootroot00000000000000 Scim Bridge: Developer Manual

    Scim Bridge Developer Manual: The introduction

    Up

    About the author

    This library is mainly written by one of a member of SCIM project, Ryo Dairiki.
    Please contact me freely if you find any bug.
    Any other reports are also welcomed.

    What is this for?

    Scim-bridge is wrapper library for SCIM, written in C. It is firstly written to solve problems occured by the ABI transition of GNU libstdc++ between 3.* branch and 4.* branch. That's not the problem in the most of cases because you usually used the same compiler for SCIM and GUI apps.

    But there are some cases you have to load the shared libraries into apps compiled on the different C++ ABI. For example, you cannot use SCIM compiled by g++ 4.* on acroread, which seems to be compiled by g++ 3.*. But you can load Scim-bridge even in that case, because it is written in C not C++.

    There is another benefit of it too, that is, you can reduce the complexity of dependency tree around SCIM by using Scim-bridge. Scim-bridge is seperated in two parts, the agent and the clients. The agent is the IME server which communicates with SCIM. The clients are IMModules which communicate only with the agent so that there is no binary dependency between the clients and SCIM. The binary dependency between the GUI apps and SCIM often cause problems, and difficult to solve. I hope this will help the packagers of SCIM.

    How does it work?

    The immodule of Scim-bridge, that is, scim-bridge-clients forward key events to the agent over the unix domain socket. And the agent handled them and send back the commands to update the preedit or show lookup table.

    The plan for the future

    There are some plans for the future.

    • Qt client
    • Console client
    • UIM agent


    scim-1.4.14/extras/immodules/doc/developer/protocol.html000066400000000000000000000476641177210725600233520ustar00rootroot00000000000000 Scim Bridge: Developer Manual

    Scim Bridge Developer Manual: The communication protocol

    Up

    Who does need this section?

    Basically, you don't have to know about the communication protocol between the agent and the clients because the client library interprets it for you. So, this section is mainly written for...

    • core developers of scim-bridge.
    • he or she who wants to write clients without using C language.
    • he or she who wants to write an alternative agent.

    Let's know about the fumdamental rules

    • Every message is described in UTF8, and it ends with '\n'.
    • Every message must begin with the header. It can also has some following arguments.
    • All the items (the header and the arguments) in a message are seperated by spaces (' ').
      Note, the seperator of two spaces indicate that there are a *NULL* argument between them.
    • Space characters (' ') or line feed characters ('\n') included in headers and arguments must be espaced by '\', like "\s" and "\n".
      Note, '\' itself must be espaced by itself.
    • Some commands expect response from the other. It will block until the responsive message arrives, so you have to send it as soon as possible.

    Now, you can communicate with the agent by open the unix domain socket in O_RDWR mode.

    The command list

    The following list describes all the commands go through the socket.

    From the agent to clients:

    • preedit_mode_changed
      • The way to show the preedit has been changed.
      • This message is the response of set_preedit_mode.
    • imcontext_registered id
      • An IMContext has been registered.
      • This message is the response of register_imcontext.
      • id stands for the ID for the new IMContext.
    • imcontext_deregistered
      • An IMContext has been deregistered.
      • This message is the response of deregister_imcontext.
    • imcontext_reseted
      • An IMContext has been reseted.
      • This message is the response of reset_imcontext.
    • focus_changed
      • The focus has been changed.
      • This message is the response of set_focus.
    • cursor_location_changed
      • The cursor position in the display has been changed.
      • This message is the response of set_cursor_location.
    • update_preedit id
      • Update the embedded preedit.
      • You should expect preedit_updated as the response.
      • id stands for the ID of IMContext.
    • set_preedit_shown id shown
      • Update visibility of the preedit.
      • id stands for the ID of IMContext.
      • shown stands for new visiblity. Give it "true" or "false".
      • Note that clients shouldn't change the preedit until update_preedit is called.
      • This command can be ignored if invalid IMContext is requested.
    • set_preedit_string id string
      • Update the preedit string.
      • id stands for the ID of IMContext.
      • string stands for new preedit string.
      • Note that clients shouldn't change the preedit until update_preedit is called.
      • This command can be ignored if invalid IMContext is requested, or the preedit is not shown.
    • set_preedit_attributes id begin1 end1 type1 value1 begin2 ...
      • Update the attributes of the preedit string.
      • id stands for the ID of IMContext.
      • begin* stands for begining index (in wcs) of the attribute.
      • end* stands for ending index (in wcs) of the attribute.
      • type* stands for the type of the attribute.
      • value* stands for the value of the attribute.
      • Please read here if you want to know what attributes are supported.
      • Note that clients shouldn't change the preedit until update_preedit is called.
      • This command can be ignored if invalid IMContext is requested, or the preedit is not shown.
    • commit_string id string
      • Commit a string into the focused widget.
      • You should expect string_committed as the response.
      • id stands for the ID of IMContext.
      • string stands for the string to commit.
    • get_surrounding_string id before_max after_max
      • Get the surrounding string of the caret.
      • You should expect surrounding_string_gotten as the response.
      • id stands for the ID of IMContext.
      • before_max is the maximum expected wide characters before the caret.
      • after_max is the maximum expected wide characters after the caret.
    • delete_surrounding_string id offset length
      • Delete a part of the surrounding string of the caret.
      • You have to get it by get_surrounding_string before using this.
      • You should expect surrounding_string_deleted as the response.
      • id stands for the ID of IMContext.
      • offset is the starting offset of the text to remove from the caret.
      • length is the length of the text to remove.
    • replace_surrounding_string id corsor_index string
      • Replace the surrounding string of the caret.
      • You have to get it by get_surrounding_string before using this.
      • You should expect surrounding_string_replaced as the response.
      • id stands for the ID of IMContext.
      • cursor_index is the new caret position in the new surrounding string.
      • string is the text to be set as the new surrounding string.
    • beep id
      • Make a beep sound.
      • You should expect beeped as the response.
      • id stands for the ID of IMContext.
    • key_event_handled consumed
      • The key event has been handled.
      • consumed stands for if the event has been consumed. You'll get "true" if the event has been consumed. Otherwise, you'll get "false".
      • Note, the events which has not been consumed must be passed to GUI library as the fallback key events.

    From the clients to agent:

    • set_preedit_mode id mode
      • Set the way to show the preedit.
      • You should expect preedit_mode_changed as the response.
      • id stands for the ID for the new IMContext. You can give it "-1" to change the default value for the client.
      • mode stands for how to show the preedit. See also here.
      • Note, the default mode is "any".
    • set_cursor_location x y
      • Change the cursor location in the screen.
      • Note, the location must be an abolute location in the screen.
      • You must send this message unless you use "embedded" or "floating" for all the preedits, the lookup tables.
    • register_imcontext
      • Register a new imcontext to the agent.
      • You should expect imcontext_registered as the response.
    • deregister_imcontext id
      • Request to deregister of an imcontext.
      • id stands for the ID of IMContext.
      • You should expect imcontext_reseted as the response.
    • reset_imcontext id
      • Request to reset of an imcontext.
      • id stands for the ID of IMContext.
      • You should expect imcontext_reseted as the response.
    • string_commited
      • A string is commited into the focused widget.
      • This messages is the response of commit_string.
    • preedit_updated
      • The embedded preedit has been updated.
      • This message is the response of update_preedit.
    • set_focus id focus_in
      • Request to focus or unfocus an IMContext.
      • You should expect focus_changed as the response.
      • id stands for the ID of IMContext.
      • focus_in stands for which request this is. Give it "true" if you want to focus this. Otherwise, give it "false".
    • handle_key_event id key_code key_pressed modifier1 modifier2 ...
      • Handle a key event.
      • You should expect key_event_handled as the response.
      • id stands for the ID of IMContext.
      • key_code stands for the code of the key. (I'll give you a list of them later...)
      • key_pressed stands for whether the key is pressed or not. Give it "true" if the key is pressed. Otherwise, give it "false".
      • modifier* stands for the modifier accompanied with the event key. (I'll give you a list of them later...)
    • forward_key_event id key_code key_pressed modifier1 modifier2 ...
      • A key event has been forwarded from the agent.
      • key_code stands for the code of the key. (I'll give you a list of them later...)
      • key_pressed stands for whether the key is pressed or not. You'll get "true" if the key is pressed. Otherwise, you'll get "false".
      • modifier* stands for the modifier accompanied with the event key. (I'll give you a list of them later...)
    • surrounding_string_gotten retval string cursor_position
      • The surrounding string has been gotten.
      • This is the response of get_surrounding_string.
      • retval returns "TRUE" if it succeeded, otherwise it returns "FALSE".
      • cursor_position is the caret position in the surrounding string. None is given if (retval) is FALSE.
      • string is the surrounding string. None is given if retval is "FALSE".
    • surrounding_string_deleted retval
      • The surrounding string of the caret has been deleted.
      • This is the response of delete_surrounding_string.
      • retval returns "TRUE" if it succeeded, otherwise it returns "FALSE".
    • surrounding_string_replaced retval
      • The surrounding string of the caret has been replaced.
      • This is the response of replace_surrounding_string.
      • retval returns "TRUE" if it succeeded, otherwise it returns "FALSE".


    Appendix: Supported attributes

    TypeDescriptionSupported values
    foregroundChange the text color of the preedit.Colors in the format of "#RRGGBB".
    backgroundChange the background color of the preedit.Colors in the format of "#RRGGBB".
    decoratationChange the background color of the preedit."reverse" to exchange the foreground color and background one.
    "hilight" to hilight the preedit.
    "underline" to add a line under the preedit.
    noneInvalid attribute."none" is recommanded.


    Appendix: Modes for the the preedit.

    TypeDescription
    embeddedThe clients show the one by itself. The agent must not show the one.
    hangingThe agent show the one just under the caret if the caret position is available. Otherwise, this is the same as "floating".
    floatingThe agent show the one in any position.
    anyThe agent uses it following to its preference.


    scim-1.4.14/extras/immodules/doc/document.css000066400000000000000000000014401177210725600211440ustar00rootroot00000000000000body { background-color: #FFFFFF; font-family: "sans"; font-size: medium; margin-top: 1em; margin-left: 1em; margin-right: 1em; margin-bottom: 1em; text-align: left; } ul { margin-bottom: 1em; } li { margin-top: 0.5em; margin-bottom: 0.5em; } td { padding: 0.5em; } table { border-width: 1; margin-left: 1em; } .example { margin-left: 2em; margin-right: 2em; background: #CCCCCC; } .description { margin: 1em; } .cauntion { font-size: large; font-weight: bold; font-style: italic; color: #FF0000; } .caption { margin-left: 1em; font-size: medium; font-weight: bold; } .bullet_in { font-size: large; text-align: left; } .copyright { font-size: medium; text-align: right; } scim-1.4.14/extras/immodules/doc/doxygen.conf000066400000000000000000001436641177210725600211570ustar00rootroot00000000000000# Doxyfile 1.4.6 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project # # All text after a hash (#) is considered a comment and will be ignored # The format is: # TAG = value [value, ...] # For lists items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (" ") #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- # The PROJECT_NAME tag is a single word (or a sequence of words surrounded # by quotes) that should identify the project. PROJECT_NAME = SCIM Bridge # The PROJECT_NUMBER tag can be used to enter a project or revision number. # This could be handy for archiving the generated documentation or # if some version control system is used. PROJECT_NUMBER = 0.4.x # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. # If a relative path is entered, it will be relative to the location # where doxygen was started. If left blank the current directory will be used. OUTPUT_DIRECTORY = doc/api # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create # 4096 sub-directories (in 2 levels) under the output directory of each output # format and will distribute the generated files over these directories. # Enabling this option can be useful when feeding doxygen a huge amount of # source files, where putting all generated files in the same directory would # otherwise cause performance problems for the file system. CREATE_SUBDIRS = NO # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # The default language is English, other supported languages are: # Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, # Dutch, Finnish, French, German, Greek, Hungarian, Italian, Japanese, # Japanese-en (Japanese with English messages), Korean, Korean-en, Norwegian, # Polish, Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, # Swedish, and Ukrainian. OUTPUT_LANGUAGE = English # This tag can be used to specify the encoding used in the generated output. # The encoding is not always determined by the language that is chosen, # but also whether or not the output is meant for Windows or non-Windows users. # In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES # forces the Windows encoding (this is the default for the Windows binary), # whereas setting the tag to NO uses a Unix-style encoding (the default for # all platforms other than Windows). USE_WINDOWS_ENCODING = NO # If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will # include brief member descriptions after the members that are listed in # the file and class documentation (similar to JavaDoc). # Set to NO to disable this. BRIEF_MEMBER_DESC = Yes # If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend # the brief description of a member or function before the detailed description. # Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. REPEAT_BRIEF = YES # This tag implements a quasi-intelligent brief description abbreviator # that is used to form the text in various listings. Each string # in this list, if found as the leading text of the brief description, will be # stripped from the text and the result after processing the whole list, is # used as the annotated text. Otherwise, the brief description is used as-is. # If left blank, the following values are used ("$name" is automatically # replaced with the name of the entity): "The $name class" "The $name widget" # "The $name file" "is" "provides" "specifies" "contains" # "represents" "a" "an" "the" ABBREVIATE_BRIEF = # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then # Doxygen will generate a detailed section even if there is only a brief # description. ALWAYS_DETAILED_SEC = NO # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all # inherited members of a class in the documentation of that class as if those # members were ordinary class members. Constructors, destructors and assignment # operators of the base classes will not be shown. INLINE_INHERITED_MEMB = NO # If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full # path before files name in the file list and in the header files. If set # to NO the shortest path that makes the file name unique will be used. FULL_PATH_NAMES = YES # If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag # can be used to strip a user-defined part of the path. Stripping is # only done if one of the specified strings matches the left-hand part of # the path. The tag can be used to show relative paths in the file list. # If left blank the directory from which doxygen is run is used as the # path to strip. STRIP_FROM_PATH = # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of # the path mentioned in the documentation of a class, which tells # the reader which header file to include in order to use a class. # If left blank only the name of the header file containing the class # definition is used. Otherwise one should specify the include paths that # are normally passed to the compiler using the -I flag. STRIP_FROM_INC_PATH = # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter # (but less readable) file names. This can be useful is your file systems # doesn't support long names like on DOS, Mac, or CD-ROM. SHORT_NAMES = NO # If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen # will interpret the first line (until the first dot) of a JavaDoc-style # comment as the brief description. If set to NO, the JavaDoc # comments will behave just like the Qt-style comments (thus requiring an # explicit @brief command for a brief description. JAVADOC_AUTOBRIEF = no # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen # treat a multi-line C++ special comment block (i.e. a block of //! or /// # comments) as a brief description. This used to be the default behaviour. # The new default is to treat a multi-line C++ comment block as a detailed # description. Set this tag to YES if you prefer the old behaviour instead. MULTILINE_CPP_IS_BRIEF = NO # If the DETAILS_AT_TOP tag is set to YES then Doxygen # will output the detailed description near the top, like JavaDoc. # If set to NO, the detailed description appears after the member # documentation. DETAILS_AT_TOP = YES # If the INHERIT_DOCS tag is set to YES (the default) then an undocumented # member inherits the documentation from any documented member that it # re-implements. INHERIT_DOCS = YES # If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce # a new page for each member. If set to NO, the documentation of a member will # be part of the file/class/namespace that contains it. SEPARATE_MEMBER_PAGES = YES # The TAB_SIZE tag can be used to set the number of spaces in a tab. # Doxygen uses this value to replace tabs by spaces in code fragments. TAB_SIZE = 4 # This tag can be used to specify a number of aliases that acts # as commands in the documentation. An alias has the form "name=value". # For example adding "sideeffect=\par Side Effects:\n" will allow you to # put the command \sideeffect (or @sideeffect) in the documentation, which # will result in a user-defined paragraph with heading "Side Effects:". # You can put \n's in the value part of an alias to insert newlines. ALIASES = # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C # sources only. Doxygen will then generate output that is more tailored for C. # For instance, some of the names that are used will be different. The list # of all members will be omitted, etc. OPTIMIZE_OUTPUT_FOR_C = NO # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java # sources only. Doxygen will then generate output that is more tailored for Java. # For instance, namespaces will be presented as packages, qualified scopes # will look different, etc. OPTIMIZE_OUTPUT_JAVA = NO # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want to # include (a tag file for) the STL sources as input, then you should # set this tag to YES in order to let doxygen match functions declarations and # definitions whose arguments contain STL classes (e.g. func(std::string); v.s. # func(std::string) {}). This also make the inheritance and collaboration # diagrams that involve STL classes more complete and accurate. BUILTIN_STL_SUPPORT = YES # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES, then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. DISTRIBUTE_GROUP_DOC = NO # Set the SUBGROUPING tag to YES (the default) to allow class member groups of # the same type (for instance a group of public functions) to be put as a # subgroup of that type (e.g. under the Public Functions section). Set it to # NO to prevent subgrouping. Alternatively, this can be done per class using # the \nosubgrouping command. SUBGROUPING = YES #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in # documentation are documented, even if no documentation was available. # Private class members and static file members will be hidden unless # the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES EXTRACT_ALL = NO # If the EXTRACT_PRIVATE tag is set to YES all private members of a class # will be included in the documentation. EXTRACT_PRIVATE = NO # If the EXTRACT_STATIC tag is set to YES all static members of a file # will be included in the documentation. EXTRACT_STATIC = YES # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) # defined locally in source files will be included in the documentation. # If set to NO only classes defined in header files are included. EXTRACT_LOCAL_CLASSES = YES # This flag is only useful for Objective-C code. When set to YES local # methods, which are defined in the implementation section but not in # the interface are included in the documentation. # If set to NO (the default) only methods in the interface are included. EXTRACT_LOCAL_METHODS = NO # If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all # undocumented members of documented classes, files or namespaces. # If set to NO (the default) these members will be included in the # various overviews, but no documentation section is generated. # This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_MEMBERS = NO # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. # If set to NO (the default) these classes will be included in the various # overviews. This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_CLASSES = NO # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all # friend (class|struct|union) declarations. # If set to NO (the default) these declarations will be included in the # documentation. HIDE_FRIEND_COMPOUNDS = NO # If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any # documentation blocks found inside the body of a function. # If set to NO (the default) these blocks will be appended to the # function's detailed documentation block. HIDE_IN_BODY_DOCS = NO # The INTERNAL_DOCS tag determines if documentation # that is typed after a \internal command is included. If the tag is set # to NO (the default) then the documentation will be excluded. # Set it to YES to include the internal documentation. INTERNAL_DOCS = NO # If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate # file names in lower-case letters. If set to YES upper-case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # and Mac users are advised to set this option to NO. CASE_SENSE_NAMES = YES # If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen # will show members with their full class and namespace scopes in the # documentation. If set to YES the scope will be hidden. HIDE_SCOPE_NAMES = NO # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen # will put a list of the files that are included by a file in the documentation # of that file. SHOW_INCLUDE_FILES = YES # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] # is inserted in the documentation for inline members. INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen # will sort the (detailed) documentation of file and class members # alphabetically by member name. If set to NO the members will appear in # declaration order. SORT_MEMBER_DOCS = YES # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the # brief documentation of file, namespace and class members alphabetically # by member name. If set to NO (the default) the members will appear in # declaration order. SORT_BRIEF_DOCS = NO # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be # sorted by fully-qualified names, including namespaces. If set to # NO (the default), the class list will be sorted only by class name, # not including the namespace part. # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. # Note: This option applies only to the class list, not to the # alphabetical list. SORT_BY_SCOPE_NAME = NO # The GENERATE_TODOLIST tag can be used to enable (YES) or # disable (NO) the todo list. This list is created by putting \todo # commands in the documentation. GENERATE_TODOLIST = YES # The GENERATE_TESTLIST tag can be used to enable (YES) or # disable (NO) the test list. This list is created by putting \test # commands in the documentation. GENERATE_TESTLIST = YES # The GENERATE_BUGLIST tag can be used to enable (YES) or # disable (NO) the bug list. This list is created by putting \bug # commands in the documentation. GENERATE_BUGLIST = YES # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or # disable (NO) the deprecated list. This list is created by putting # \deprecated commands in the documentation. GENERATE_DEPRECATEDLIST= YES # The ENABLED_SECTIONS tag can be used to enable conditional # documentation sections, marked by \if sectionname ... \endif. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines # the initial value of a variable or define consists of for it to appear in # the documentation. If the initializer consists of more lines than specified # here it will be hidden. Use a value of 0 to hide initializers completely. # The appearance of the initializer of individual variables and defines in the # documentation can be controlled using \showinitializer or \hideinitializer # command in the documentation regardless of this setting. MAX_INITIALIZER_LINES = 30 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated # at the bottom of the documentation of classes and structs. If set to YES the # list will mention the files that were used to generate the documentation. SHOW_USED_FILES = YES # If the sources in your project are distributed over multiple directories # then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy # in the documentation. The default is NO. SHOW_DIRECTORIES = NO # The FILE_VERSION_FILTER tag can be used to specify a program or script that # doxygen should invoke to get the current version for each file (typically from the # version control system). Doxygen will invoke the program by executing (via # popen()) the command , where is the value of # the FILE_VERSION_FILTER tag, and is the name of an input file # provided by doxygen. Whatever the program writes to standard output # is used as the file version. See the manual for examples. FILE_VERSION_FILTER = #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated # by doxygen. Possible values are YES and NO. If left blank NO is used. QUIET = NO # The WARNINGS tag can be used to turn on/off the warning messages that are # generated by doxygen. Possible values are YES and NO. If left blank # NO is used. WARNINGS = YES # If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings # for undocumented members. If EXTRACT_ALL is set to YES then this flag will # automatically be disabled. WARN_IF_UNDOCUMENTED = YES # If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for # potential errors in the documentation, such as not documenting some # parameters in a documented function, or documenting parameters that # don't exist or using markup commands wrongly. WARN_IF_DOC_ERROR = YES # This WARN_NO_PARAMDOC option can be abled to get warnings for # functions that are documented, but have no documentation for their parameters # or return value. If set to NO (the default) doxygen will only warn about # wrong or incomplete parameter documentation, but not about the absence of # documentation. WARN_NO_PARAMDOC = NO # The WARN_FORMAT tag determines the format of the warning messages that # doxygen can produce. The string should contain the $file, $line, and $text # tags, which will be replaced by the file and line number from which the # warning originated and the warning text. Optionally the format may contain # $version, which will be replaced by the version of the file (if it could # be obtained via FILE_VERSION_FILTER) WARN_FORMAT = "$file:$line: $text" # The WARN_LOGFILE tag can be used to specify a file to which warning # and error messages should be written. If left blank the output is written # to stderr. WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag can be used to specify the files and/or directories that contain # documented source files. You may enter file names like "myfile.cpp" or # directories like "/usr/src/myproject". Separate the files or directories # with spaces. INPUT = # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank the following patterns are tested: # *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx # *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py FILE_PATTERNS = # The RECURSIVE tag can be used to turn specify whether or not subdirectories # should be searched for input files as well. Possible values are YES and NO. # If left blank NO is used. RECURSIVE = YES # The EXCLUDE tag can be used to specify files and/or directories that should # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. EXCLUDE = # The EXCLUDE_SYMLINKS tag can be used select whether or not files or # directories that are symbolic links (a Unix filesystem feature) are excluded # from the input. EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. Note that the wildcards are matched # against the file with absolute path, so to exclude all test directories # for example use the pattern */test/* EXCLUDE_PATTERNS = # The EXAMPLE_PATH tag can be used to specify one or more files or # directories that contain example code fragments that are included (see # the \include command). EXAMPLE_PATH = # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank all files are included. EXAMPLE_PATTERNS = # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be # searched for input files to be used with the \include or \dontinclude # commands irrespective of the value of the RECURSIVE tag. # Possible values are YES and NO. If left blank NO is used. EXAMPLE_RECURSIVE = NO # The IMAGE_PATH tag can be used to specify one or more files or # directories that contain image that are included in the documentation (see # the \image command). IMAGE_PATH = # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command , where # is the value of the INPUT_FILTER tag, and is the name of an # input file. Doxygen will then use the output that the filter program writes # to standard output. If FILTER_PATTERNS is specified, this tag will be # ignored. INPUT_FILTER = # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern # basis. Doxygen will compare the file name with each pattern and apply the # filter if there is a match. The filters are a list of the form: # pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further # info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER # is applied to all files. FILTER_PATTERNS = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will be used to filter the input files when producing source # files to browse (i.e. when SOURCE_BROWSER is set to YES). FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to source browsing #--------------------------------------------------------------------------- # If the SOURCE_BROWSER tag is set to YES then a list of source files will # be generated. Documented entities will be cross-referenced with these sources. # Note: To get rid of all source code in the generated output, make sure also # VERBATIM_HEADERS is set to NO. SOURCE_BROWSER = NO # Setting the INLINE_SOURCES tag to YES will include the body # of functions and classes directly in the documentation. INLINE_SOURCES = NO # Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct # doxygen to hide any special comment blocks from generated source code # fragments. Normal C and C++ comments will always remain visible. STRIP_CODE_COMMENTS = YES # If the REFERENCED_BY_RELATION tag is set to YES (the default) # then for each documented function all documented # functions referencing it will be listed. REFERENCED_BY_RELATION = YES # If the REFERENCES_RELATION tag is set to YES (the default) # then for each documented function all documented entities # called/used by that function will be listed. REFERENCES_RELATION = YES # If the USE_HTAGS tag is set to YES then the references to source code # will point to the HTML generated by the htags(1) tool instead of doxygen # built-in source browser. The htags tool is part of GNU's global source # tagging system (see http://www.gnu.org/software/global/global.html). You # will need version 4.8.6 or higher. USE_HTAGS = NO # If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen # will generate a verbatim copy of the header file for each class for # which an include is specified. Set to NO to disable this. VERBATIM_HEADERS = YES #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index # of all compounds will be generated. Enable this if the project # contains a lot of classes, structs, unions or interfaces. ALPHABETICAL_INDEX = NO # If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns # in which this list will be split (can be a number in the range [1..20]) COLS_IN_ALPHA_INDEX = 5 # In case all classes in a project start with a common prefix, all # classes will be put under the same header in the alphabetical index. # The IGNORE_PREFIX tag can be used to specify one or more prefixes that # should be ignored while generating the index headers. IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES (the default) Doxygen will # generate HTML output. GENERATE_HTML = YES # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `html' will be used as the default path. HTML_OUTPUT = html # The HTML_FILE_EXTENSION tag can be used to specify the file extension for # each generated HTML page (for example: .htm,.php,.asp). If it is left blank # doxygen will generate files with .html extension. HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a personal HTML header for # each generated HTML page. If it is left blank doxygen will generate a # standard header. HTML_HEADER = # The HTML_FOOTER tag can be used to specify a personal HTML footer for # each generated HTML page. If it is left blank doxygen will generate a # standard footer. HTML_FOOTER = # The HTML_STYLESHEET tag can be used to specify a user-defined cascading # style sheet that is used by each HTML page. It can be used to # fine-tune the look of the HTML output. If the tag is left blank doxygen # will generate a default style sheet. Note that doxygen will try to copy # the style sheet file to the HTML output directory, so don't put your own # stylesheet in the HTML output directory as well, or it will be erased! HTML_STYLESHEET = # If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, # files or namespaces will be aligned in HTML using tables. If set to # NO a bullet list will be used. HTML_ALIGN_MEMBERS = NO # If the GENERATE_HTMLHELP tag is set to YES, additional index files # will be generated that can be used as input for tools like the # Microsoft HTML help workshop to generate a compressed HTML help file (.chm) # of the generated HTML documentation. GENERATE_HTMLHELP = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can # be used to specify the file name of the resulting .chm file. You # can add a path in front of the file if the result should not be # written to the html output directory. CHM_FILE = # If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can # be used to specify the location (absolute path including file name) of # the HTML help compiler (hhc.exe). If non-empty doxygen will try to run # the HTML help compiler on the generated index.hhp. HHC_LOCATION = # If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag # controls if a separate .chi index file is generated (YES) or that # it should be included in the master .chm file (NO). GENERATE_CHI = NO # If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag # controls whether a binary table of contents is generated (YES) or a # normal table of contents (NO) in the .chm file. BINARY_TOC = NO # The TOC_EXPAND flag can be set to YES to add extra items for group members # to the contents of the HTML help documentation and to the tree view. TOC_EXPAND = NO # The DISABLE_INDEX tag can be used to turn on/off the condensed index at # top of each HTML page. The value NO (the default) enables the index and # the value YES disables it. DISABLE_INDEX = NO # This tag can be used to set the number of enum values (range [1..20]) # that doxygen will group on one line in the generated HTML documentation. ENUM_VALUES_PER_LINE = 4 # If the GENERATE_TREEVIEW tag is set to YES, a side panel will be # generated containing a tree-like index structure (just like the one that # is generated for HTML Help). For this to work a browser that supports # JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, # Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are # probably better off using the HTML help feature. GENERATE_TREEVIEW = NO # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be # used to set the initial width (in pixels) of the frame in which the tree # is shown. TREEVIEW_WIDTH = 250 #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will # generate Latex output. GENERATE_LATEX = YES # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `latex' will be used as the default path. LATEX_OUTPUT = latex # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be # invoked. If left blank `latex' will be used as the default command name. LATEX_CMD_NAME = latex # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to # generate index for LaTeX. If left blank `makeindex' will be used as the # default command name. MAKEINDEX_CMD_NAME = makeindex # If the COMPACT_LATEX tag is set to YES Doxygen generates more compact # LaTeX documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_LATEX = NO # The PAPER_TYPE tag can be used to set the paper type that is used # by the printer. Possible values are: a4, a4wide, letter, legal and # executive. If left blank a4wide will be used. PAPER_TYPE = a4wide # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX # packages that should be included in the LaTeX output. EXTRA_PACKAGES = # The LATEX_HEADER tag can be used to specify a personal LaTeX header for # the generated latex document. The header should contain everything until # the first chapter. If it is left blank doxygen will generate a # standard header. Notice: only use this tag if you know what you are doing! LATEX_HEADER = # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated # is prepared for conversion to pdf (using ps2pdf). The pdf file will # contain links (just like the HTML output) instead of page references # This makes the output suitable for online browsing using a pdf viewer. PDF_HYPERLINKS = NO # If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of # plain latex in the generated Makefile. Set this option to YES to get a # higher quality PDF documentation. USE_PDFLATEX = NO # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. # command to the generated LaTeX files. This will instruct LaTeX to keep # running if errors occur, instead of asking the user for help. # This option is also used when generating formulas in HTML. LATEX_BATCHMODE = NO # If LATEX_HIDE_INDICES is set to YES then doxygen will not # include the index chapters (such as File Index, Compound Index, etc.) # in the output. LATEX_HIDE_INDICES = NO #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- # If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output # The RTF output is optimized for Word 97 and may not look very pretty with # other RTF readers or editors. GENERATE_RTF = NO # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `rtf' will be used as the default path. RTF_OUTPUT = rtf # If the COMPACT_RTF tag is set to YES Doxygen generates more compact # RTF documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_RTF = NO # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated # will contain hyperlink fields. The RTF file will # contain links (just like the HTML output) instead of page references. # This makes the output suitable for online browsing using WORD or other # programs which support those fields. # Note: wordpad (write) and others do not support links. RTF_HYPERLINKS = NO # Load stylesheet definitions from file. Syntax is similar to doxygen's # config file, i.e. a series of assignments. You only have to provide # replacements, missing definitions are set to their default value. RTF_STYLESHEET_FILE = # Set optional variables used in the generation of an rtf document. # Syntax is similar to doxygen's config file. RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- # If the GENERATE_MAN tag is set to YES (the default) Doxygen will # generate man pages GENERATE_MAN = NO # The MAN_OUTPUT tag is used to specify where the man pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `man' will be used as the default path. MAN_OUTPUT = man # The MAN_EXTENSION tag determines the extension that is added to # the generated man pages (default is the subroutine's section .3) MAN_EXTENSION = .3 # If the MAN_LINKS tag is set to YES and Doxygen generates man output, # then it will generate one additional man file for each entity # documented in the real man page(s). These additional files # only source the real man page, but without them the man command # would be unable to find the correct page. The default is NO. MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- # If the GENERATE_XML tag is set to YES Doxygen will # generate an XML file that captures the structure of # the code including all documentation. GENERATE_XML = NO # The XML_OUTPUT tag is used to specify where the XML pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `xml' will be used as the default path. XML_OUTPUT = xml # The XML_SCHEMA tag can be used to specify an XML schema, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_SCHEMA = # The XML_DTD tag can be used to specify an XML DTD, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_DTD = # If the XML_PROGRAMLISTING tag is set to YES Doxygen will # dump the program listings (including syntax highlighting # and cross-referencing information) to the XML output. Note that # enabling this will significantly increase the size of the XML output. XML_PROGRAMLISTING = YES #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- # If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will # generate an AutoGen Definitions (see autogen.sf.net) file # that captures the structure of the code including all # documentation. Note that this feature is still experimental # and incomplete at the moment. GENERATE_AUTOGEN_DEF = NO #--------------------------------------------------------------------------- # configuration options related to the Perl module output #--------------------------------------------------------------------------- # If the GENERATE_PERLMOD tag is set to YES Doxygen will # generate a Perl module file that captures the structure of # the code including all documentation. Note that this # feature is still experimental and incomplete at the # moment. GENERATE_PERLMOD = NO # If the PERLMOD_LATEX tag is set to YES Doxygen will generate # the necessary Makefile rules, Perl scripts and LaTeX code to be able # to generate PDF and DVI output from the Perl module output. PERLMOD_LATEX = NO # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be # nicely formatted so it can be parsed by a human reader. This is useful # if you want to understand what is going on. On the other hand, if this # tag is set to NO the size of the Perl module output will be much smaller # and Perl will parse it just the same. PERLMOD_PRETTY = YES # The names of the make variables in the generated doxyrules.make file # are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. # This is useful so different doxyrules.make files included by the same # Makefile don't overwrite each other's variables. PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- # If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will # evaluate all C-preprocessor directives found in the sources and include # files. ENABLE_PREPROCESSING = YES # If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro # names in the source code. If set to NO (the default) only conditional # compilation will be performed. Macro expansion can be done in a controlled # way by setting EXPAND_ONLY_PREDEF to YES. MACRO_EXPANSION = NO # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES # then the macro expansion is limited to the macros specified with the # PREDEFINED and EXPAND_AS_DEFINED tags. EXPAND_ONLY_PREDEF = NO # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files # in the INCLUDE_PATH (see below) will be search if a #include is found. SEARCH_INCLUDES = YES # The INCLUDE_PATH tag can be used to specify one or more directories that # contain include files that are not input files but should be processed by # the preprocessor. INCLUDE_PATH = # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard # patterns (like *.h and *.hpp) to filter out the header-files in the # directories. If left blank, the patterns specified with FILE_PATTERNS will # be used. INCLUDE_FILE_PATTERNS = # The PREDEFINED tag can be used to specify one or more macro names that # are defined before the preprocessor is started (similar to the -D option of # gcc). The argument of the tag is a list of macros of the form: name # or name=definition (no spaces). If the definition and the = are # omitted =1 is assumed. To prevent a macro definition from being # undefined via #undef or recursively expanded use the := operator # instead of the = operator. PREDEFINED = # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then # this tag can be used to specify a list of macro names that should be expanded. # The macro definition that is found in the sources will be used. # Use the PREDEFINED tag if you want to use a different macro definition. EXPAND_AS_DEFINED = # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then # doxygen's preprocessor will remove all function-like macros that are alone # on a line, have an all uppercase name, and do not end with a semicolon. Such # function macros are typically used for boiler-plate code, and will confuse # the parser if not removed. SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- # Configuration::additions related to external references #--------------------------------------------------------------------------- # The TAGFILES option can be used to specify one or more tagfiles. # Optionally an initial location of the external documentation # can be added for each tagfile. The format of a tag file without # this location is as follows: # TAGFILES = file1 file2 ... # Adding location for the tag files is done as follows: # TAGFILES = file1=loc1 "file2 = loc2" ... # where "loc1" and "loc2" can be relative or absolute paths or # URLs. If a location is present for each tag, the installdox tool # does not have to be run to correct the links. # Note that each tag file must have a unique name # (where the name does NOT include the path) # If a tag file is not located in the directory in which doxygen # is run, you must also specify the path to the tagfile here. TAGFILES = # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. GENERATE_TAGFILE = # If the ALLEXTERNALS tag is set to YES all external classes will be listed # in the class index. If set to NO only the inherited external classes # will be listed. ALLEXTERNALS = NO # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed # in the modules index. If set to NO, only the current project's groups will # be listed. EXTERNAL_GROUPS = YES # The PERL_PATH should be the absolute path and name of the perl script # interpreter (i.e. the result of `which perl'). PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will # generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base # or super classes. Setting the tag to NO turns the diagrams off. Note that # this option is superseded by the HAVE_DOT option below. This is only a # fallback. It is recommended to install and use dot, since it yields more # powerful graphs. CLASS_DIAGRAMS = YES # If set to YES, the inheritance and collaboration graphs will hide # inheritance and usage relations if the target is undocumented # or is not a class. HIDE_UNDOC_RELATIONS = YES # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is # available from the path. This tool is part of Graphviz, a graph visualization # toolkit from AT&T and Lucent Bell Labs. The other options in this section # have no effect if this option is set to NO (the default) HAVE_DOT = NO # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect inheritance relations. Setting this tag to YES will force the # the CLASS_DIAGRAMS tag to NO. CLASS_GRAPH = YES # If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect implementation dependencies (inheritance, containment, and # class references variables) of the class with other documented classes. COLLABORATION_GRAPH = YES # If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen # will generate a graph for groups, showing the direct groups dependencies GROUP_GRAPHS = YES # If the UML_LOOK tag is set to YES doxygen will generate inheritance and # collaboration diagrams in a style similar to the OMG's Unified Modeling # Language. UML_LOOK = NO # If set to YES, the inheritance and collaboration graphs will show the # relations between templates and their instances. TEMPLATE_RELATIONS = NO # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT # tags are set to YES then doxygen will generate a graph for each documented # file showing the direct and indirect include dependencies of the file with # other documented files. INCLUDE_GRAPH = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and # HAVE_DOT tags are set to YES then doxygen will generate a graph for each # documented header file showing the documented files that directly or # indirectly include this file. INCLUDED_BY_GRAPH = YES # If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will # generate a call dependency graph for every global function or class method. # Note that enabling this option will significantly increase the time of a run. # So in most cases it will be better to enable call graphs for selected # functions only using the \callgraph command. CALL_GRAPH = NO # If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen # will graphical hierarchy of all classes instead of a textual one. GRAPHICAL_HIERARCHY = YES # If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES # then doxygen will show the dependencies a directory has on other directories # in a graphical way. The dependency relations are determined by the #include # relations between the files in the directories. DIRECTORY_GRAPH = YES # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images # generated by dot. Possible values are png, jpg, or gif # If left blank png will be used. DOT_IMAGE_FORMAT = png # The tag DOT_PATH can be used to specify the path where the dot tool can be # found. If left blank, it is assumed the dot tool can be found in the path. DOT_PATH = # The DOTFILE_DIRS tag can be used to specify one or more directories that # contain dot files that are included in the documentation (see the # \dotfile command). DOTFILE_DIRS = # The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width # (in pixels) of the graphs generated by dot. If a graph becomes larger than # this value, doxygen will try to truncate the graph, so that it fits within # the specified constraint. Beware that most browsers cannot cope with very # large images. MAX_DOT_GRAPH_WIDTH = 1024 # The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height # (in pixels) of the graphs generated by dot. If a graph becomes larger than # this value, doxygen will try to truncate the graph, so that it fits within # the specified constraint. Beware that most browsers cannot cope with very # large images. MAX_DOT_GRAPH_HEIGHT = 1024 # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the # graphs generated by dot. A depth value of 3 means that only nodes reachable # from the root by following a path via at most 3 edges will be shown. Nodes # that lay further from the root node will be omitted. Note that setting this # option to 1 or 2 may greatly reduce the computation time needed for large # code bases. Also note that a graph may be further truncated if the graph's # image dimensions are not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH # and MAX_DOT_GRAPH_HEIGHT). If 0 is used for the depth value (the default), # the graph is not depth-constrained. MAX_DOT_GRAPH_DEPTH = 0 # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent # background. This is disabled by default, which results in a white background. # Warning: Depending on the platform used, enabling this option may lead to # badly anti-aliased labels on the edges of a graph (i.e. they become hard to # read). DOT_TRANSPARENT = NO # Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output # files in one run (i.e. multiple -o and -T options on the command line). This # makes dot run faster, but since only newer versions of dot (>1.8.10) # support this, this feature is disabled by default. DOT_MULTI_TARGETS = NO # If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will # generate a legend page explaining the meaning of the various boxes and # arrows in the dot generated graphs. GENERATE_LEGEND = YES # If the DOT_CLEANUP tag is set to YES (the default) Doxygen will # remove the intermediate dot files that are used to generate # the various graphs. DOT_CLEANUP = YES #--------------------------------------------------------------------------- # Configuration::additions related to the search engine #--------------------------------------------------------------------------- # The SEARCHENGINE tag specifies whether or not a search engine should be # used. If set to NO the values of all tags below this one will be ignored. SEARCHENGINE = NO scim-1.4.14/extras/immodules/doc/index.html000066400000000000000000000014601177210725600206130ustar00rootroot00000000000000 Scim Bridge: Developer Manual

    Scim Bridge Documents


    The developer manual
    The user manual
    The api manual


    scim-1.4.14/extras/immodules/doc/tests/000077500000000000000000000000001177210725600177575ustar00rootroot00000000000000scim-1.4.14/extras/immodules/doc/tests/basic.txt000066400000000000000000000032461177210725600216060ustar00rootroot00000000000000* Basic tests: Preparation: 1. Kill all the process of "scim-bridge" before the tests. 2. Confirm that the IME is currently turned off if you use "shared-imengine" mode. 3. Open a terminal on the X. 4. export the environmental variable, "GTK_IM_MODULE=scim-bridge". 5. export the environmental variable, "SCIM_BRIDGE_DEBUG_LEVEL=9". 6. Launch "gedit". Steps: 0-1. Confirm that the debug strings are appeared in the terminal. 0-3. Confirm that the IME is still deactivated. 0-4. Type "hello, world!" to check if SCIM-Bridge is correctly loaded. 0-5. Focus in and out the the window, and then type "hello, again". 0-6. Press "ctrl+F" to open the fiding dialog. 0-7. Switch the focus between the dialog and the main window. 0-8. Type other strings to confirm that focus transition is correctly handled. 0-9. Close the fiding dialog with the focus staying on the entry field of it. Expected results: - "scim-bridge" will be launched and it'll exit on quitting gedit. - Nothing special is occured. Steps: 1-1. Turn on the IME from the menu on the panel. (I use "scim-anthy" in the following case) 1-2. Check if the status display of the panel has been changed. 1-3. Type something to confirm the preedit is correctly shown. 1-4. Move the cursor in the preedit forward and backward. 1-5. Enter the coversation mode, and show the lookup table. The lookup table should be shown just under the cursor. 1-6. Shrink and expand the conversation segments to check the appearance of the preedit is correctly applied. 1-7. Commit it, and see if the string is correctly inserted. 1-8. Focus out the main window with the preedit shown. The preedit should be killed that time. Expected results: - Nothing to say. scim-1.4.14/extras/immodules/doc/tests/broken_clients.txt000066400000000000000000000017071177210725600235260ustar00rootroot00000000000000* Kill a client: Steps: 1. Open a terminal on the X. 2. export the environmental variable, "GTK_IM_MODULE=scim-bridge". 3. Launch "scim-bridge --verbose --standalone --noexit". 4. Launch "gedit" and "yelp". 5. Kill the client by "sleep 5; killall gedit". Please stay focusing or typing in gedit until it exits. Expected results: - The client exits. - The agent notices that the client is downed. (Such kind of messages are shown) - You are still able to use scim-bridge on "yelp". * Suspend a client. Steps: 1. Open a terminal on the X. 2. export the environmental variable, "GTK_IM_MODULE=scim-bridge". 3. Launch "scim-bridge --verbose --standalone --noexit". 4. Launch "gedit" and "yelp". 5. Kill the client by "sleep 5; killall -SIGSTOP gedit". Please stay focusing or typing in gedit until it exits. Expected results: - The client suspends. - You are still able to use scim-bridge on "yelp". - (You can resume the client by "killall -SIGCONT gedit" later) scim-1.4.14/extras/immodules/doc/tests/fallback.txt000066400000000000000000000013361177210725600222620ustar00rootroot00000000000000* Confirm that the fallback imengine in GTK behaves politely for SCIM: Steps: 1. Launch gedit on the X. 2. Choose US/Keyboard from SCIM panel, or disable SCIM by "ctrl+space". 3. Type "Ctrl+Shift+123" in gedit. (Ctrl and Shift are pressed while typing 1, 2, and 3) 4. Release Ctrl+Shift. 5. Repeat step3. 6. Click the desktop to focus out gedit. 7. Return the focus on gedit again. 8. Choose SCIM-Anthy or SCIM-Pinyin form SCIM panel. 9. Repeat step3. Expected results: - Underlined text, "u123" appears as a preedit in step3. - The preedit vanished, and the character for U+0123 ("g" with a dash mark) is inserted in step4. - The preedit canceled in step6. - No preedit or commitment on gedit in step7. - Nothing happens in step 9.scim-1.4.14/extras/immodules/doc/tests/im_status.txt000066400000000000000000000020041177210725600225240ustar00rootroot00000000000000* Turn on and off the IME in the shared IME mode: Steps: 1. Open the scim-setup and turn on "Share the same input method among all applications" in the "global" category, and exit. 2. Turn on the IME. 3. Shift the focus into another window. 4. Turn off the IME. 5. Shift the focus back to the previous window. Expected results: - The status of the IME are shared between the windows. - The on-and-off status is shared. - The always the same IME are selected. * Turn on and off the IME in the non-shared IME mode: Steps: 1. Open the scim-setup and turn off "Share the same input method among all applications" in the "global" category, and exit. 2. Turn on the IME. 3. Shift the focus into another window. 4. Turn off the IME. 5. Shift the focus back to the previous window. 6. Tuen on the IME, and choose another IME by the panel. 7. Focus back the other window. Expected results: - The IME are always off when you focus a window. - The IME are not shared between the window; You can choose different one for each window. scim-1.4.14/extras/immodules/doc/tests/launching.txt000066400000000000000000000024061177210725600224720ustar00rootroot00000000000000* Launch the scim-bridge in the "standalone" mode: Steps: 1. Open a terminal on the X. 2. export the environmental variable, "GTK_IM_MODULE=scim-bridge". 3. Launch "scim-bridge --verbose --standalone". Expected results: - The process of "scim-bridge" will be invoked. (You can check this by "ps -A | grep scim-bridge") - The lockfile, "scim-bridge-.lockfile-@localhost:." is created under "/tmp" dir. - The socket, "scim-bridge-.socket-@localhost:." is created under "/tmp" dir. - You'll see the startup messages from the scim-bridge. - "^c" (= ctrl-c) kills the agent process without any error. - The lockfile and the socket are removed on exiting. * Launch another process of scim-bridge in the "standalone" mode: Steps: 1. Open a terminal on the X. 2. export the environmental variable, "GTK_IM_MODULE=scim-bridge". 3. Launch "scim-bridge --verbose --standalone". 4. Open another terminal on the X, and repeat from 2 and 3 on the new terminal. Expected results: - The new process will exit automatically with the message of "Another agent is running, exitting...". - The old process still remains and is kicking. - The old lockfile and the socket remains under the directory of "/tmp". scim-1.4.14/extras/immodules/doc/user/000077500000000000000000000000001177210725600175735ustar00rootroot00000000000000scim-1.4.14/extras/immodules/doc/user/index.html000066400000000000000000000107631177210725600215770ustar00rootroot00000000000000 Scim Bridge: User Manual

    Scim Bridge User Manual

    Up

    How to install?

    The most component of scim-bridge can be installed just by "make install". However, there are some steps you have to do before you use it.

    The first step is registering the IMModule. Please run "update-gtk-immodules (host-triplet)" for GTK+ from the terminal with the root privilege. "(host-triplet)" is the architecture you use, for example, "x86_64-redhat-linux-gnu" in my case. If you have no error, go for the next step.

    The second step is choosing the new IMModule as the default IMModule. This is achived by exporting an environmental value as "GTK_IM_MODULE=scim-bridge" for GTK+. You can test this temporary from a X terminal. Please export it and launch "gedit". If the scim-bridge works correctly, you see "scim-bridge-agent" in the output of "ps -A". Most os have their own ways to export it it a X session. There seems no standard way to achieve this. Please follow the instruction of yours. :(

    How to debug it?

    The debug output from the client is easily gotten by exporting environmental variables, that is "SCIM_BRIDGE_DEBUG_LEVEL". This variable decides the verbosity of the debug output. If you set it "9", you get all the debug output from the client. On the other hand, "0" makes it quiet, kills all the debug output.

    On the other hand, the debug output from the agent is difficult to get, because it detaches itself from the console and fork as soon as it launches. You can disable this feature by launch it manually (kill the agent process beforehand) with the argument "--standalone", which prevent the process to daemonize itself. You can get the debug output by giving the argument "--verbose". There is also another usefull argument for debugging. That is "--noexit". Without it, the agent exits automatically when the last client is gone.

    Is there any undocumnented features?

    There are some undocumented features in scim-bridge. They are written only for dealing with bugs of famous (infamous?) applications, so they might be removed in the feature releases without any notification.

    • Key snooper. (enabled by the environmental variable, "SCIM_BRIDGE_KEY_SNOOPER=true")
      • Use "key snooper" to sneak all the key events in gtk+ apps.
      • Please use it for OpenOffice.org, which doesn't pass the key releasing events to IMModules.
      • Note, it might kill key accelerators of the applications.

    Where can I send a bug report?

    Scim-bridge is developed as the part of SCIM project. You can report it directly into the mailing list of that. (The most recommanded one is scim-devel-list, I won't miss it if you post there) But please note that you have to tell the distributors first if you use the package included in the distribution, or the package maden by someone else. They might know the better way to solve your problem than I do. :)


    scim-1.4.14/extras/panel/000077500000000000000000000000001177210725600151515ustar00rootroot00000000000000scim-1.4.14/extras/panel/Makefile.am000066400000000000000000000017651177210725600172160ustar00rootroot00000000000000MAINTAINERCLEANFILES = Makefile.in INCLUDES = -I$(top_builddir) \ -I$(top_builddir)/src \ -I$(top_srcdir) \ -I$(top_srcdir)/src \ -I$(top_srcdir)/intl \ -I$(top_srcdir)/data \ -I$(top_srcdir)/utils \ -DSCIM_DATADIR=\"@SCIM_DATADIR@\" \ -DSCIM_LOCALEDIR=\"@SCIM_LOCALEDIR@\" \ -DSCIM_SYSCONFDIR=\"@SCIM_SYSCONFDIR@\" \ -DSCIM_LIBEXECDIR=\"@SCIM_LIBEXECDIR@\" \ -DSCIM_ICONDIR=\"@SCIM_ICONDIR@\" \ -DSCIM_MODULE_PATH=\"@SCIM_MODULE_PATH@\" \ -DSCIM_TEMPDIR=\"@SCIM_TEMPDIR@\" if SCIM_BUILD_PANEL_GTK CONFIG_SCIM_PANEL_GTK = scim-panel-gtk endif libexecdir = $(libdir)/scim@SCIM_EPOCH@ libexec_PROGRAMS = $(CONFIG_SCIM_PANEL_GTK) scim_panel_gtk_SOURCES = scim_panel_gtk.cpp scim_panel_gtk_CXXFLAGS = @GTK_CFLAGS@ @GTHREAD2_CFLAGS@ scim_panel_gtk_LDFLAGS = @GTK_LIBS@ @GTHREAD2_LIBS@ @LTLIBINTL@ scim_panel_gtk_LDADD = $(top_builddir)/src/libscim@SCIM_EPOCH@.la \ $(top_builddir)/utils/libscim-gtkutils@SCIM_EPOCH@.la scim-1.4.14/extras/panel/Makefile.in000066400000000000000000000576341177210725600172350ustar00rootroot00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ libexec_PROGRAMS = $(am__EXEEXT_1) subdir = extras/panel DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = @SCIM_BUILD_PANEL_GTK_TRUE@am__EXEEXT_1 = scim-panel-gtk$(EXEEXT) am__installdirs = "$(DESTDIR)$(libexecdir)" PROGRAMS = $(libexec_PROGRAMS) am_scim_panel_gtk_OBJECTS = scim_panel_gtk-scim_panel_gtk.$(OBJEXT) scim_panel_gtk_OBJECTS = $(am_scim_panel_gtk_OBJECTS) scim_panel_gtk_DEPENDENCIES = \ $(top_builddir)/src/libscim@SCIM_EPOCH@.la \ $(top_builddir)/utils/libscim-gtkutils@SCIM_EPOCH@.la scim_panel_gtk_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(scim_panel_gtk_CXXFLAGS) $(CXXFLAGS) \ $(scim_panel_gtk_LDFLAGS) $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(scim_panel_gtk_SOURCES) DIST_SOURCES = $(scim_panel_gtk_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ ARGZ_H = @ARGZ_H@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CLUTTER_BINARY_VERSION = @CLUTTER_BINARY_VERSION@ CLUTTER_CFLAGS = @CLUTTER_CFLAGS@ CLUTTER_IMCONTEXT_LIBDIR = @CLUTTER_IMCONTEXT_LIBDIR@ CLUTTER_IM_MODULEDIR = @CLUTTER_IM_MODULEDIR@ CLUTTER_LIBDIR = @CLUTTER_LIBDIR@ CLUTTER_LIBS = @CLUTTER_LIBS@ CLUTTER_VERSION = @CLUTTER_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOCBOOK_XSL = @DOCBOOK_XSL@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@ GTHREAD2_LIBS = @GTHREAD2_LIBS@ GTK2_CFLAGS = @GTK2_CFLAGS@ GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@ GTK2_LIBS = @GTK2_LIBS@ GTK3_CFLAGS = @GTK3_CFLAGS@ GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@ GTK3_LIBS = @GTK3_LIBS@ GTK_BINARY_VERSION = @GTK_BINARY_VERSION@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBDIR = @GTK_LIBDIR@ GTK_LIBS = @GTK_LIBS@ GTK_MAJOR_VERSION = @GTK_MAJOR_VERSION@ GTK_VERSION = @GTK_VERSION@ HAVE_GRAPHVIZ = @HAVE_GRAPHVIZ@ INCLTDL = @INCLTDL@ INCLUDE_STDINT = @INCLUDE_STDINT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBLTDL = @LIBLTDL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_DEPS = @LIBTOOL_DEPS@ LIBTOOL_EXPORT_OPTIONS = @LIBTOOL_EXPORT_OPTIONS@ LIPO = @LIPO@ LN_S = @LN_S@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ QT3_CFLAGS = @QT3_CFLAGS@ QT3_IM_MODULEDIR = @QT3_IM_MODULEDIR@ QT3_LIBDIR = @QT3_LIBDIR@ QT3_LIBS = @QT3_LIBS@ QT3_MOC = @QT3_MOC@ QT3_PREFIX = @QT3_PREFIX@ QT4_CFLAGS = @QT4_CFLAGS@ QT4_IM_MODULEDIR = @QT4_IM_MODULEDIR@ QT4_LIBDIR = @QT4_LIBDIR@ QT4_LIBS = @QT4_LIBS@ QT4_MOC = @QT4_MOC@ QT4_PREFIX = @QT4_PREFIX@ RANLIB = @RANLIB@ SCIM_AGE = @SCIM_AGE@ SCIM_BINARY_VERSION = @SCIM_BINARY_VERSION@ SCIM_BRIDGE_MAJOR_VERSION = @SCIM_BRIDGE_MAJOR_VERSION@ SCIM_BRIDGE_MICRO_VERSION = @SCIM_BRIDGE_MICRO_VERSION@ SCIM_BRIDGE_MINOR_VERSION = @SCIM_BRIDGE_MINOR_VERSION@ SCIM_BRIDGE_VERSION = @SCIM_BRIDGE_VERSION@ SCIM_BUILD_CLUTTER_IMMODULE = @SCIM_BUILD_CLUTTER_IMMODULE@ SCIM_BUILD_CONFIG_SIMPLE = @SCIM_BUILD_CONFIG_SIMPLE@ SCIM_BUILD_CONFIG_SOCKET = @SCIM_BUILD_CONFIG_SOCKET@ SCIM_BUILD_DOCUMENTS = @SCIM_BUILD_DOCUMENTS@ SCIM_BUILD_FILTER_SCTC = @SCIM_BUILD_FILTER_SCTC@ SCIM_BUILD_FRONTEND_SOCKET = @SCIM_BUILD_FRONTEND_SOCKET@ SCIM_BUILD_FRONTEND_X11 = @SCIM_BUILD_FRONTEND_X11@ SCIM_BUILD_GTK2_IMMODULE = @SCIM_BUILD_GTK2_IMMODULE@ SCIM_BUILD_GTK3_IMMODULE = @SCIM_BUILD_GTK3_IMMODULE@ SCIM_BUILD_GTK_UTILS = @SCIM_BUILD_GTK_UTILS@ SCIM_BUILD_IMENGINE_RAWCODE = @SCIM_BUILD_IMENGINE_RAWCODE@ SCIM_BUILD_IMENGINE_SOCKET = @SCIM_BUILD_IMENGINE_SOCKET@ SCIM_BUILD_IMENGINE_TABLE = @SCIM_BUILD_IMENGINE_TABLE@ SCIM_BUILD_IMMODULE = @SCIM_BUILD_IMMODULE@ SCIM_BUILD_IM_AGENT = @SCIM_BUILD_IM_AGENT@ SCIM_BUILD_ORIG_GTK2_IMMODULE = @SCIM_BUILD_ORIG_GTK2_IMMODULE@ SCIM_BUILD_ORIG_GTK3_IMMODULE = @SCIM_BUILD_ORIG_GTK3_IMMODULE@ SCIM_BUILD_PANEL_GTK = @SCIM_BUILD_PANEL_GTK@ SCIM_BUILD_QT3_IMMODULE = @SCIM_BUILD_QT3_IMMODULE@ SCIM_BUILD_QT4_IMMODULE = @SCIM_BUILD_QT4_IMMODULE@ SCIM_BUILD_SCIM_SETUP = @SCIM_BUILD_SCIM_SETUP@ SCIM_BUILD_TESTS = @SCIM_BUILD_TESTS@ SCIM_BUILD_X11_UTILS = @SCIM_BUILD_X11_UTILS@ SCIM_CURRENT = @SCIM_CURRENT@ SCIM_DATADIR = @SCIM_DATADIR@ SCIM_EPOCH = @SCIM_EPOCH@ SCIM_ICONDIR = @SCIM_ICONDIR@ SCIM_LIBDIR = @SCIM_LIBDIR@ SCIM_LIBEXECDIR = @SCIM_LIBEXECDIR@ SCIM_LOCALEDIR = @SCIM_LOCALEDIR@ SCIM_LTDLADVISE = @SCIM_LTDLADVISE@ SCIM_MAJOR_VERSION = @SCIM_MAJOR_VERSION@ SCIM_MICRO_VERSION = @SCIM_MICRO_VERSION@ SCIM_MINOR_VERSION = @SCIM_MINOR_VERSION@ SCIM_MODULE_PATH = @SCIM_MODULE_PATH@ SCIM_PREFIX = @SCIM_PREFIX@ SCIM_REVISION = @SCIM_REVISION@ SCIM_SYSCONFDIR = @SCIM_SYSCONFDIR@ SCIM_TEMPDIR = @SCIM_TEMPDIR@ SCIM_VERSION = @SCIM_VERSION@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UINT16 = @UINT16@ UINT32 = @UINT32@ UINT64 = @UINT64@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XMKMF = @XMKMF@ XSLTPROC = @XSLTPROC@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_aux_dir = @ac_aux_dir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = $(libdir)/scim@SCIM_EPOCH@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ MAINTAINERCLEANFILES = Makefile.in INCLUDES = -I$(top_builddir) \ -I$(top_builddir)/src \ -I$(top_srcdir) \ -I$(top_srcdir)/src \ -I$(top_srcdir)/intl \ -I$(top_srcdir)/data \ -I$(top_srcdir)/utils \ -DSCIM_DATADIR=\"@SCIM_DATADIR@\" \ -DSCIM_LOCALEDIR=\"@SCIM_LOCALEDIR@\" \ -DSCIM_SYSCONFDIR=\"@SCIM_SYSCONFDIR@\" \ -DSCIM_LIBEXECDIR=\"@SCIM_LIBEXECDIR@\" \ -DSCIM_ICONDIR=\"@SCIM_ICONDIR@\" \ -DSCIM_MODULE_PATH=\"@SCIM_MODULE_PATH@\" \ -DSCIM_TEMPDIR=\"@SCIM_TEMPDIR@\" @SCIM_BUILD_PANEL_GTK_TRUE@CONFIG_SCIM_PANEL_GTK = scim-panel-gtk scim_panel_gtk_SOURCES = scim_panel_gtk.cpp scim_panel_gtk_CXXFLAGS = @GTK_CFLAGS@ @GTHREAD2_CFLAGS@ scim_panel_gtk_LDFLAGS = @GTK_LIBS@ @GTHREAD2_LIBS@ @LTLIBINTL@ scim_panel_gtk_LDADD = $(top_builddir)/src/libscim@SCIM_EPOCH@.la \ $(top_builddir)/utils/libscim-gtkutils@SCIM_EPOCH@.la all: all-am .SUFFIXES: .SUFFIXES: .cpp .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu extras/panel/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu extras/panel/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libexecPROGRAMS: $(libexec_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(libexecdir)" || $(MKDIR_P) "$(DESTDIR)$(libexecdir)" @list='$(libexec_PROGRAMS)'; test -n "$(libexecdir)" || list=; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p || test -f $$p1; \ then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(libexecdir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(libexecdir)$$dir" || exit $$?; \ } \ ; done uninstall-libexecPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(libexec_PROGRAMS)'; test -n "$(libexecdir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(libexecdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(libexecdir)" && rm -f $$files clean-libexecPROGRAMS: @list='$(libexec_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list scim-panel-gtk$(EXEEXT): $(scim_panel_gtk_OBJECTS) $(scim_panel_gtk_DEPENDENCIES) @rm -f scim-panel-gtk$(EXEEXT) $(scim_panel_gtk_LINK) $(scim_panel_gtk_OBJECTS) $(scim_panel_gtk_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim_panel_gtk-scim_panel_gtk.Po@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cpp.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cpp.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< scim_panel_gtk-scim_panel_gtk.o: scim_panel_gtk.cpp @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scim_panel_gtk_CXXFLAGS) $(CXXFLAGS) -MT scim_panel_gtk-scim_panel_gtk.o -MD -MP -MF $(DEPDIR)/scim_panel_gtk-scim_panel_gtk.Tpo -c -o scim_panel_gtk-scim_panel_gtk.o `test -f 'scim_panel_gtk.cpp' || echo '$(srcdir)/'`scim_panel_gtk.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/scim_panel_gtk-scim_panel_gtk.Tpo $(DEPDIR)/scim_panel_gtk-scim_panel_gtk.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='scim_panel_gtk.cpp' object='scim_panel_gtk-scim_panel_gtk.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scim_panel_gtk_CXXFLAGS) $(CXXFLAGS) -c -o scim_panel_gtk-scim_panel_gtk.o `test -f 'scim_panel_gtk.cpp' || echo '$(srcdir)/'`scim_panel_gtk.cpp scim_panel_gtk-scim_panel_gtk.obj: scim_panel_gtk.cpp @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scim_panel_gtk_CXXFLAGS) $(CXXFLAGS) -MT scim_panel_gtk-scim_panel_gtk.obj -MD -MP -MF $(DEPDIR)/scim_panel_gtk-scim_panel_gtk.Tpo -c -o scim_panel_gtk-scim_panel_gtk.obj `if test -f 'scim_panel_gtk.cpp'; then $(CYGPATH_W) 'scim_panel_gtk.cpp'; else $(CYGPATH_W) '$(srcdir)/scim_panel_gtk.cpp'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/scim_panel_gtk-scim_panel_gtk.Tpo $(DEPDIR)/scim_panel_gtk-scim_panel_gtk.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='scim_panel_gtk.cpp' object='scim_panel_gtk-scim_panel_gtk.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(scim_panel_gtk_CXXFLAGS) $(CXXFLAGS) -c -o scim_panel_gtk-scim_panel_gtk.obj `if test -f 'scim_panel_gtk.cpp'; then $(CYGPATH_W) 'scim_panel_gtk.cpp'; else $(CYGPATH_W) '$(srcdir)/scim_panel_gtk.cpp'; fi` mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) installdirs: for dir in "$(DESTDIR)$(libexecdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic clean-libexecPROGRAMS clean-libtool \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-libexecPROGRAMS install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-libexecPROGRAMS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libexecPROGRAMS clean-libtool ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am \ install-libexecPROGRAMS install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-libexecPROGRAMS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: scim-1.4.14/extras/panel/scim_panel_gtk.cpp000066400000000000000000004502271177210725600206460ustar00rootroot00000000000000/** @file scim_panel_gtk.cpp */ /* * Smart Common Input Method * * Copyright (c) 2002-2005 James Su * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this program; if not, write to the * Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, MA 02111-1307 USA * * $Id: scim_panel_gtk.cpp,v 1.118.2.15 2007/04/11 11:30:31 suzhe Exp $ */ #include #include #include #include #include #include #include #include #ifdef GDK_WINDOWING_X11 #include #endif #include #include #include #define Uses_C_STDIO #define Uses_C_STDLIB #define Uses_SCIM_LOOKUP_TABLE #define Uses_SCIM_SOCKET #define Uses_SCIM_TRANSACTION #define Uses_SCIM_TRANS_COMMANDS #define Uses_SCIM_CONFIG #define Uses_SCIM_CONFIG_MODULE #define Uses_SCIM_DEBUG #define Uses_SCIM_HELPER #define Uses_SCIM_HELPER_MODULE #define Uses_SCIM_PANEL_AGENT #include "scim_private.h" #include "scim.h" #include "scim_stl_map.h" #include "scimstringview.h" #if ENABLE_TRAY_ICON // #include "scimtrayicon.h" #endif using namespace scim; #include "icons/up.xpm" #include "icons/down.xpm" #include "icons/left.xpm" #include "icons/right.xpm" #include "icons/setup.xpm" #include "icons/help.xpm" #include "icons/trademark.xpm" #include "icons/pin-up.xpm" #include "icons/pin-down.xpm" #include "icons/menu.xpm" #define SCIM_CONFIG_PANEL_GTK_FONT "/Panel/Gtk/Font" #define SCIM_CONFIG_PANEL_GTK_COLOR_NORMAL_BG "/Panel/Gtk/Color/NormalBackground" #define SCIM_CONFIG_PANEL_GTK_COLOR_ACTIVE_BG "/Panel/Gtk/Color/ActiveBackground" #define SCIM_CONFIG_PANEL_GTK_COLOR_NORMAL_TEXT "/Panel/Gtk/Color/NormalText" #define SCIM_CONFIG_PANEL_GTK_COLOR_ACTIVE_TEXT "/Panel/Gtk/Color/ActiveText" #define SCIM_CONFIG_PANEL_GTK_TOOLBAR_ALWAYS_SHOW "/Panel/Gtk/ToolBar/AlwaysShow" #define SCIM_CONFIG_PANEL_GTK_TOOLBAR_ALWAYS_HIDDEN "/Panel/Gtk/ToolBar/AlwaysHidden" #define SCIM_CONFIG_PANEL_GTK_TOOLBAR_AUTO_SNAP "/Panel/Gtk/ToolBar/AutoSnap" #define SCIM_CONFIG_PANEL_GTK_TOOLBAR_HIDE_TIMEOUT "/Panel/Gtk/ToolBar/HideTimeout" #define SCIM_CONFIG_PANEL_GTK_TOOLBAR_POS_X "/Panel/Gtk/ToolBar/POS_X" #define SCIM_CONFIG_PANEL_GTK_TOOLBAR_POS_Y "/Panel/Gtk/ToolBar/POS_Y" #define SCIM_CONFIG_PANEL_GTK_TOOLBAR_SHOW_FACTORY_ICON "/Panel/Gtk/ToolBar/ShowFactoryIcon" #define SCIM_CONFIG_PANEL_GTK_TOOLBAR_SHOW_FACTORY_NAME "/Panel/Gtk/ToolBar/ShowFactoryName" #define SCIM_CONFIG_PANEL_GTK_TOOLBAR_SHOW_STICK_ICON "/Panel/Gtk/ToolBar/ShowStickIcon" #define SCIM_CONFIG_PANEL_GTK_TOOLBAR_SHOW_HELP_ICON "/Panel/Gtk/ToolBar/ShowHelpIcon" #define SCIM_CONFIG_PANEL_GTK_TOOLBAR_SHOW_MENU_ICON "/Panel/Gtk/ToolBar/ShowMenuIcon" #define SCIM_CONFIG_PANEL_GTK_TOOLBAR_SHOW_PROPERTY_LABEL "/Panel/Gtk/ToolBar/ShowPropertyLabel" #define SCIM_CONFIG_PANEL_GTK_LOOKUP_TABLE_EMBEDDED "/Panel/Gtk/LookupTableEmbedded" #define SCIM_CONFIG_PANEL_GTK_LOOKUP_TABLE_VERTICAL "/Panel/Gtk/LookupTableVertical" #define SCIM_CONFIG_PANEL_GTK_DEFAULT_STICKED "/Panel/Gtk/DefaultSticked" #define SCIM_CONFIG_PANEL_GTK_SHOW_TRAY_ICON "/Panel/Gtk/ShowTrayIcon" #define SCIM_KEYBOARD_ICON_FILE (SCIM_ICONDIR "/keyboard.png") #define SCIM_TRADEMARK_ICON_FILE (SCIM_ICONDIR "/trademark.png") #define SCIM_SETUP_ICON_FILE (SCIM_ICONDIR "/setup.png") #define SCIM_HELP_ICON_FILE (SCIM_ICONDIR "/help.png") #define SCIM_MENU_ICON_FILE (SCIM_ICONDIR "/menu.png") #define SCIM_UP_ICON_FILE (SCIM_ICONDIR "/up.png") #define SCIM_DOWN_ICON_FILE (SCIM_ICONDIR "/down.png") #define SCIM_LEFT_ICON_FILE (SCIM_ICONDIR "/left.png") #define SCIM_RIGHT_ICON_FILE (SCIM_ICONDIR "/right.png") #define SCIM_PIN_UP_ICON_FILE (SCIM_ICONDIR "/pin-up.png") #define SCIM_PIN_DOWN_ICON_FILE (SCIM_ICONDIR "/pin-down.png") #define TOOLBAR_ICON_SIZE 16 #define TRAY_ICON_SIZE 11 #define LOOKUP_ICON_SIZE 12 ///////////////////////////////////////////////////////////////////////////// // Declaration of internal data types. ///////////////////////////////////////////////////////////////////////////// struct PropertyInfo { Property property; GtkWidget *widget; PropertyInfo () : widget (0) { } }; typedef std::vector PropertyRepository; struct HelperPropertyInfo { GtkWidget *holder; PropertyRepository repository; HelperPropertyInfo () : holder (0) { } }; #if SCIM_USE_STL_EXT_HASH_MAP typedef __gnu_cxx::hash_map > HelperPropertyRepository; typedef __gnu_cxx::hash_map , scim_hash_string> MapStringVectorSizeT; #elif SCIM_USE_STL_HASH_MAP typedef std::hash_map > HelperPropertyRepository; typedef std::hash_map , scim_hash_string> MapStringVectorSizeT; #else typedef std::map HelperPropertyRepository; typedef std::map > MapStringVectorSizeT; #endif ///////////////////////////////////////////////////////////////////////////// // Declaration of internal functions. ///////////////////////////////////////////////////////////////////////////// static void ui_config_reload_callback (const ConfigPointer &config); static void ui_load_config (void); static void ui_initialize (void); static void ui_settle_input_window (bool relative = false, bool force = false); static void ui_settle_lookup_table_window (bool force = false); static void ui_settle_toolbar_window (bool force = false); static bool ui_get_screen_rect (GdkRectangle &rect); static int ui_multi_monitor_width (void); static int ui_multi_monitor_height (void); static int ui_screen_width (void); static int ui_screen_height (void); static void ui_get_workarea (int &x, int &y, int &width, int &height); #if ENABLE_TRAY_ICON static gboolean ui_create_tray_icon_when_idle (gpointer data); #endif #if GTK_CHECK_VERSION(2, 2, 0) static void ui_switch_screen (GdkScreen *screen); #endif static GdkPixbuf* ui_scale_pixbuf (GdkPixbuf *pixbuf, int width, int height); static GtkWidget* ui_create_label (const String &name, const String &iconfile, const char **xpm, bool show_icon_only = false, bool force_icon = false); static GtkWidget* ui_create_icon (const String &iconfile, const char **xpm = NULL, int width = -1, int height = -1, bool force_create = false); static GtkWidget* ui_create_trademark_icon (void); static GtkWidget* ui_create_stick_icon (bool sticked); static GtkWidget* ui_create_help_icon (void); static GtkWidget* ui_create_menu_icon (void); static GtkWidget* ui_create_up_icon (void); static GtkWidget* ui_create_down_icon (void); static GtkWidget* ui_create_left_icon (void); static GtkWidget* ui_create_right_icon (void); static GtkWidget* ui_create_factory_menu_entry (const PanelFactoryInfo &info, int id, GtkMenuShell *menu, bool show_lang, bool show_name); // callback functions static void ui_preedit_area_move_cursor_cb (ScimStringView *view, guint position); static void ui_help_button_click_cb (GtkButton *button, gpointer user_data); static void ui_menu_button_click_cb (GtkButton *button, gpointer user_data); static gboolean ui_factory_button_click_cb (GtkWidget *button, GdkEvent *event, gpointer user_data); static void ui_factory_menu_activate_cb (GtkMenuItem *item, gpointer user_data); static void ui_factory_menu_deactivate_cb (GtkMenuItem *item, gpointer user_data); static gboolean ui_lookup_table_vertical_click_cb (GtkWidget *item, GdkEventButton *event, gpointer user_data); static void ui_lookup_table_horizontal_click_cb (GtkWidget *item, guint position); static void ui_lookup_table_up_button_click_cb (GtkButton *button, gpointer user_data); static void ui_lookup_table_down_button_click_cb (GtkButton *button, gpointer user_data); static void ui_window_stick_button_click_cb (GtkButton *button, gpointer user_data); static gboolean ui_input_window_motion_cb (GtkWidget *window, GdkEventMotion *event, gpointer user_data); static gboolean ui_input_window_click_cb (GtkWidget *window, GdkEventButton *event, gpointer user_data); static gboolean ui_toolbar_window_crossing_cb (GtkWidget *window, GdkEventCrossing *event, gpointer user_data); static gboolean ui_toolbar_window_motion_cb (GtkWidget *window, GdkEventMotion *event, gpointer user_data); static gboolean ui_toolbar_window_click_cb (GtkWidget *window, GdkEventButton *event, gpointer user_data); static gboolean ui_lookup_table_window_motion_cb (GtkWidget *window, GdkEventMotion *event, gpointer user_data); static gboolean ui_lookup_table_window_click_cb (GtkWidget *window, GdkEventButton *event, gpointer user_data); static gboolean ui_hide_window_timeout_cb (gpointer data); static void ui_command_menu_exit_activate_cb (GtkMenuItem *item, gpointer user_data); static void ui_command_menu_reload_activate_cb (GtkMenuItem *item, gpointer user_data); static void ui_command_menu_stick_activate_cb (GtkMenuItem *item, gpointer user_data); static void ui_command_menu_hide_toolbar_toggled_cb (GtkMenuItem *item, gpointer user_data); static void ui_command_menu_help_activate_cb (GtkMenuItem *item, gpointer user_data); static void ui_command_menu_helper_activate_cb (GtkWidget *item, gpointer user_data); static void ui_command_menu_deactivate_cb (GtkWidget *item, gpointer user_data); #if ENABLE_TRAY_ICON #if GTK_CHECK_VERSION(3, 0, 0) static void ui_tray_icon_destroy_cb (GtkWidget *object, #else static void ui_tray_icon_destroy_cb (GtkObject *object, #endif gpointer user_data); static void ui_tray_icon_popup_menu_cb (GtkStatusIcon *status_icon, guint button, guint activate_time, gpointer user_data); static void ui_tray_icon_activate_cb (GtkStatusIcon *status_icon, gpointer user_data); #endif // Client Property Callback static void ui_property_activate_cb (GtkWidget *widget, gpointer user_data); static void ui_property_menu_deactivate_cb (GtkWidget *item, gpointer user_data); static bool ui_can_hide_input_window (void); static bool ui_any_menu_activated (void); static void ui_show_help (const String &help); static PangoAttrList * create_pango_attrlist (const String &str, const AttributeList &attrs); // Action function static void action_request_help (void); static void action_toggle_window_stick (void); static void action_show_command_menu (void); // PanelAgent related functions static bool initialize_panel_agent (const String &config, const String &display, bool resident); static bool run_panel_agent (void); static gpointer panel_agent_thread_func (gpointer data); static void start_auto_start_helpers (void); static void slot_transaction_start (void); static void slot_transaction_end (void); static void slot_reload_config (void); static void slot_turn_on (void); static void slot_turn_off (void); static void slot_update_screen (int screen); static void slot_update_spot_location (int x, int y); static void slot_update_factory_info (const PanelFactoryInfo &info); static void slot_show_help (const String &help); static void slot_show_factory_menu (const std::vector &menu); static void slot_show_preedit_string (void); static void slot_show_aux_string (void); static void slot_show_lookup_table (void); static void slot_hide_preedit_string (void); static void slot_hide_aux_string (void); static void slot_hide_lookup_table (void); static void slot_update_preedit_string (const String &str, const AttributeList &attrs); static void slot_update_preedit_caret (int caret); static void slot_update_aux_string (const String &str, const AttributeList &attrs); static void slot_update_lookup_table (const LookupTable &table); static void slot_register_properties (const PropertyList &props); static void slot_update_property (const Property &prop); static void slot_register_helper_properties (int id, const PropertyList &props); static void slot_update_helper_property (int id, const Property &prop); static void slot_register_helper (int id, const HelperInfo &helper); static void slot_remove_helper (int id); static void slot_lock (void); static void slot_unlock (void); static void create_properties (GtkWidget *container, PropertyRepository &repository, const PropertyList &properties, int client, int level); static GtkWidget* create_properties_node (PropertyRepository &repository, PropertyList::const_iterator begin, PropertyList::const_iterator end, int client, int level); static void register_frontend_properties (const PropertyList &properties); static void update_frontend_property (const Property &property); static void register_helper_properties (int client, const PropertyList &properties); static void update_helper_property (int client, const Property &property); static void update_property (PropertyRepository &repository, const Property &property); static void restore_properties (void); static gboolean check_exit_timeout_cb (gpointer data); ///////////////////////////////////////////////////////////////////////////// // Declaration of internal variables. ///////////////////////////////////////////////////////////////////////////// #if GTK_CHECK_VERSION(2, 2, 0) static GdkScreen *_current_screen = 0; #endif static GtkWidget *_input_window = 0; static GtkWidget *_preedit_area = 0; static GtkWidget *_aux_area = 0; static GtkWidget *_lookup_table_window = 0; static GtkWidget *_lookup_table_up_button = 0; static GtkWidget *_lookup_table_down_button = 0; static GtkWidget *_lookup_table_items [SCIM_LOOKUP_TABLE_MAX_PAGESIZE]; static GtkWidget *_toolbar_window = 0; static GtkWidget *_window_stick_button = 0; static GtkWidget *_factory_button = 0; static GtkWidget *_factory_menu = 0; static GtkWidget *_help_button = 0; static GtkWidget *_menu_button = 0; static GtkWidget *_client_properties_area = 0; static GtkWidget *_frontend_properties_area = 0; static GtkWidget *_help_dialog = 0; static GtkWidget *_help_scroll = 0; static GtkWidget *_help_area = 0; static GtkWidget *_command_menu = 0; #if GTK_CHECK_VERSION(2, 12, 0) #else static GtkTooltips *_tooltips = 0; #endif static PangoFontDescription *_default_font_desc = 0; #if ENABLE_TRAY_ICON static GtkStatusIcon *_tray_icon = 0; // static GtkWidget *_tray_icon_factory_button = 0; // static gulong _tray_icon_destroy_signal_id = 0; static bool _tray_icon_clicked = false; static guint _tray_icon_clicked_time = 0; #endif static gboolean _input_window_draging = FALSE; static gint _input_window_drag_x = 0; static gint _input_window_drag_y = 0; static gint _input_window_x = 0; static gint _input_window_y = 0; static gboolean _toolbar_window_draging = FALSE; static gint _toolbar_window_drag_x = 0; static gint _toolbar_window_drag_y = 0; static gboolean _lookup_table_window_draging = FALSE; static gint _lookup_table_window_drag_x = 0; static gint _lookup_table_window_drag_y = 0; static gint _lookup_table_window_x = 0; static gint _lookup_table_window_y = 0; static bool _lookup_table_embedded = true; static bool _lookup_table_vertical = false; static bool _window_sticked = false; #if ENABLE_TRAY_ICON static bool _show_tray_icon = true; #endif static bool _toolbar_always_show = false; static bool _toolbar_always_hidden = false; static bool _toolbar_auto_snap = true; static bool _toolbar_show_factory_icon = true; static bool _toolbar_show_factory_name = false; static bool _toolbar_show_stick_icon = false; static bool _toolbar_show_help_icon = false; static bool _toolbar_show_menu_icon = false; static bool _toolbar_show_property_label = false; static bool _toolbar_should_hide = false; static bool _toolbar_hidden = false; static bool _factory_menu_activated = false; static bool _command_menu_activated = false; static bool _property_menu_activated = false; static int _spot_location_x = -1; static int _spot_location_y = -1; static int _toolbar_window_x = -1; static int _toolbar_window_y = -1; static int _toolbar_hide_timeout_max = 0; static int _toolbar_hide_timeout_count = 0; static guint _toolbar_hide_timeout = 0; static bool _ui_initialized = false; static int _lookup_table_index [SCIM_LOOKUP_TABLE_MAX_PAGESIZE+1]; #if GTK_CHECK_VERSION(3, 0, 0) static GdkRGBA _normal_bg; static GdkRGBA _normal_text; static GdkRGBA _active_bg; static GdkRGBA _active_text; #else static GdkColor _normal_bg; static GdkColor _normal_text; static GdkColor _active_bg; static GdkColor _active_text; #endif static ConfigModule *_config_module = 0; static ConfigPointer _config; static guint _check_exit_timeout = 0; static bool _should_exit = false; static bool _panel_is_on = false; static GThread *_panel_agent_thread = 0; static PanelAgent *_panel_agent = 0; static std::vector _factory_menu_uuids; static std::list _recent_factory_uuids; static struct timeval _last_menu_deactivate_time = {0, 0}; static bool _multi_monitors = false; // client repository static PropertyRepository _frontend_property_repository; static HelperPropertyRepository _helper_property_repository; static std::vector _helper_list; G_LOCK_DEFINE_STATIC (_global_resource_lock); G_LOCK_DEFINE_STATIC (_panel_agent_lock); ///////////////////////////////////////////////////////////////////////////// // Implementation of internal functions. ///////////////////////////////////////////////////////////////////////////// static void ui_config_reload_callback (const ConfigPointer &config) { _config = config; ui_initialize (); restore_properties (); } static void ui_load_config (void) { String str; // Read configurations. #if GTK_CHECK_VERSION(3, 0, 0) gdk_rgba_parse (&_normal_bg, "gray92"); gdk_rgba_parse (&_normal_text, "black"); gdk_rgba_parse (&_active_bg, "light blue"); gdk_rgba_parse (&_active_text, "black"); #else gdk_color_parse ("gray92", &_normal_bg); gdk_color_parse ("black", &_normal_text); gdk_color_parse ("light blue", &_active_bg); gdk_color_parse ("black", &_active_text); #endif if (_default_font_desc) { pango_font_description_free (_default_font_desc); _default_font_desc = 0; } if (!_config.null ()) { str = _config->read (String (SCIM_CONFIG_PANEL_GTK_FONT), String ("default")); if (str != String ("default")) _default_font_desc = pango_font_description_from_string (str.c_str ()); str = _config->read (String (SCIM_CONFIG_PANEL_GTK_COLOR_NORMAL_BG), String ("gray92")); #if GTK_CHECK_VERSION(3, 0, 0) gdk_rgba_parse (&_normal_bg, str.c_str ()); #else gdk_color_parse (str.c_str (), &_normal_bg); #endif str = _config->read (String (SCIM_CONFIG_PANEL_GTK_COLOR_NORMAL_TEXT), String ("black")); #if GTK_CHECK_VERSION(3, 0, 0) gdk_rgba_parse (&_normal_text, str.c_str ()); #else gdk_color_parse (str.c_str (), &_normal_text); #endif str = _config->read (String (SCIM_CONFIG_PANEL_GTK_COLOR_ACTIVE_BG), String ("light blue")); #if GTK_CHECK_VERSION(3, 0, 0) gdk_rgba_parse (&_active_bg, str.c_str ()); #else gdk_color_parse (str.c_str (), &_active_bg); #endif str = _config->read (String (SCIM_CONFIG_PANEL_GTK_COLOR_ACTIVE_TEXT), String ("black")); #if GTK_CHECK_VERSION(3, 0, 0) gdk_rgba_parse (&_active_text, str.c_str ()); #else gdk_color_parse (str.c_str (), &_active_text); #endif _toolbar_window_x = _config->read (String (SCIM_CONFIG_PANEL_GTK_TOOLBAR_POS_X), _toolbar_window_x); _toolbar_window_y = _config->read (String (SCIM_CONFIG_PANEL_GTK_TOOLBAR_POS_Y), _toolbar_window_y); _window_sticked = _config->read (String (SCIM_CONFIG_PANEL_GTK_DEFAULT_STICKED), _window_sticked); _lookup_table_vertical = _config->read (String (SCIM_CONFIG_PANEL_GTK_LOOKUP_TABLE_VERTICAL), _lookup_table_vertical); _lookup_table_embedded = _config->read (String (SCIM_CONFIG_PANEL_GTK_LOOKUP_TABLE_EMBEDDED), _lookup_table_embedded); _toolbar_always_show = _config->read (String (SCIM_CONFIG_PANEL_GTK_TOOLBAR_ALWAYS_SHOW), _toolbar_always_show); _toolbar_always_hidden = _config->read (String (SCIM_CONFIG_PANEL_GTK_TOOLBAR_ALWAYS_HIDDEN), _toolbar_always_hidden); // Impossible if (_toolbar_always_show && _toolbar_always_hidden) _toolbar_always_hidden = false; _toolbar_auto_snap = _config->read (String (SCIM_CONFIG_PANEL_GTK_TOOLBAR_AUTO_SNAP), _toolbar_auto_snap); _toolbar_show_factory_icon = _config->read (String (SCIM_CONFIG_PANEL_GTK_TOOLBAR_SHOW_FACTORY_ICON), _toolbar_show_factory_icon); _toolbar_show_factory_name = _config->read (String (SCIM_CONFIG_PANEL_GTK_TOOLBAR_SHOW_FACTORY_NAME), _toolbar_show_factory_name); _toolbar_show_stick_icon = _config->read (String (SCIM_CONFIG_PANEL_GTK_TOOLBAR_SHOW_STICK_ICON), _toolbar_show_stick_icon); _toolbar_show_help_icon = _config->read (String (SCIM_CONFIG_PANEL_GTK_TOOLBAR_SHOW_HELP_ICON), _toolbar_show_help_icon); _toolbar_show_menu_icon = _config->read (String (SCIM_CONFIG_PANEL_GTK_TOOLBAR_SHOW_MENU_ICON), _toolbar_show_menu_icon); _toolbar_show_property_label = _config->read (String (SCIM_CONFIG_PANEL_GTK_TOOLBAR_SHOW_PROPERTY_LABEL), _toolbar_show_property_label); _toolbar_hide_timeout_max = _config->read (String (SCIM_CONFIG_PANEL_GTK_TOOLBAR_HIDE_TIMEOUT), _toolbar_hide_timeout_max); #if ENABLE_TRAY_ICON _show_tray_icon = _config->read (String (SCIM_CONFIG_PANEL_GTK_SHOW_TRAY_ICON), _show_tray_icon); #endif } } #ifdef GDK_WINDOWING_X11 static GdkFilterReturn ui_event_filter (GdkXEvent *gdk_xevent, GdkEvent *event, gpointer data) { g_return_val_if_fail (gdk_xevent, GDK_FILTER_CONTINUE); XEvent *xev = (XEvent*)gdk_xevent; if (xev->type == PropertyNotify) { if (xev->xproperty.atom == gdk_x11_get_xatom_by_name ("_NET_WORKAREA") || xev->xproperty.atom == gdk_x11_get_xatom_by_name ("_NET_CURRENT_DESKTOP")) { ui_settle_toolbar_window (); } } return GDK_FILTER_CONTINUE; } #endif static void ui_initialize (void) { SCIM_DEBUG_MAIN (1) << "Initialize UI...\n"; GtkWidget *input_window_vbox; ui_load_config (); _toolbar_hidden = false; if (_lookup_table_window) gtk_widget_destroy (_lookup_table_window); if (_input_window) gtk_widget_destroy (_input_window); if (_toolbar_window) gtk_widget_destroy (_toolbar_window); if (_help_dialog) gtk_widget_destroy (_help_dialog); #if GTK_CHECK_VERSION(2, 12, 0) #else if (_tooltips) gtk_object_destroy (GTK_OBJECT (_tooltips)); #endif #if ENABLE_TRAY_ICON if (_tray_icon) { // g_signal_handler_disconnect (G_OBJECT (_tray_icon), // _tray_icon_destroy_signal_id); g_object_unref (_tray_icon); } _tray_icon = 0; #endif _lookup_table_window = 0; _input_window = 0; _toolbar_window = 0; _help_dialog = 0; #if GTK_CHECK_VERSION(2, 12, 0) #else _tooltips = 0; #endif #if GTK_CHECK_VERSION(2, 2, 0) // Initialize the Display and Screen. _current_screen = gdk_screen_get_default (); #endif // Create input window { GtkWidget *vbox; GtkWidget *hbox; GtkWidget *frame; _input_window = gtk_window_new (GTK_WINDOW_POPUP); #if GTK_CHECK_VERSION(3, 0, 0) gtk_widget_override_background_color (_input_window, GTK_STATE_FLAG_NORMAL, &_normal_bg); #else gtk_widget_modify_bg (_input_window, GTK_STATE_NORMAL, &_normal_bg); #endif gtk_window_set_resizable (GTK_WINDOW (_input_window), FALSE); gtk_widget_add_events (_input_window,GDK_BUTTON_PRESS_MASK); gtk_widget_add_events (_input_window,GDK_BUTTON_RELEASE_MASK); gtk_widget_add_events (_input_window,GDK_POINTER_MOTION_MASK); g_signal_connect (G_OBJECT (_input_window), "button-press-event", G_CALLBACK (ui_input_window_click_cb), GINT_TO_POINTER (0)); g_signal_connect (G_OBJECT (_input_window), "button-release-event", G_CALLBACK (ui_input_window_click_cb), GINT_TO_POINTER (1)); frame = gtk_frame_new (0); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_ETCHED_OUT); gtk_container_add (GTK_CONTAINER (_input_window), frame); #if GTK_CHECK_VERSION(3, 2, 0) hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); #else hbox = gtk_hbox_new (FALSE, 0); #endif gtk_container_add (GTK_CONTAINER (frame), hbox); #if GTK_CHECK_VERSION(3, 2, 0) vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); #else vbox = gtk_vbox_new (FALSE, 0); #endif gtk_box_pack_start (GTK_BOX (hbox), vbox, TRUE, TRUE, 0); input_window_vbox = vbox; //Create preedit area _preedit_area = scim_string_view_new (); if (_default_font_desc) #if GTK_CHECK_VERSION(3, 0, 0) gtk_widget_override_font (_preedit_area, _default_font_desc); #else gtk_widget_modify_font (_preedit_area, _default_font_desc); #endif #if GTK_CHECK_VERSION(3, 0, 0) gtk_widget_override_background_color (_preedit_area, GTK_STATE_FLAG_NORMAL, &_normal_bg); gtk_widget_override_background_color (_preedit_area, GTK_STATE_FLAG_ACTIVE, &_active_bg); gtk_widget_override_color (_preedit_area, GTK_STATE_FLAG_NORMAL, &_normal_text); gtk_widget_override_color (_preedit_area, GTK_STATE_FLAG_ACTIVE, &_active_text); #else gtk_widget_modify_base (_preedit_area, GTK_STATE_NORMAL, &_normal_bg); gtk_widget_modify_base (_preedit_area, GTK_STATE_ACTIVE, &_active_bg); gtk_widget_modify_text (_preedit_area, GTK_STATE_NORMAL, &_normal_text); gtk_widget_modify_text (_preedit_area, GTK_STATE_ACTIVE, &_active_text); #endif scim_string_view_set_width_chars (SCIM_STRING_VIEW (_preedit_area), 24); scim_string_view_set_forward_event (SCIM_STRING_VIEW (_preedit_area), TRUE); scim_string_view_set_auto_resize (SCIM_STRING_VIEW (_preedit_area), TRUE); scim_string_view_set_has_frame (SCIM_STRING_VIEW (_preedit_area), FALSE); g_signal_connect (G_OBJECT (_preedit_area), "move_cursor", G_CALLBACK (ui_preedit_area_move_cursor_cb), 0); gtk_box_pack_start (GTK_BOX (vbox), _preedit_area, TRUE, TRUE, 0); //Create aux area _aux_area = scim_string_view_new (); if (_default_font_desc) #if GTK_CHECK_VERSION(3, 0, 0) gtk_widget_override_font (_aux_area, _default_font_desc); #else gtk_widget_modify_font (_aux_area, _default_font_desc); #endif #if GTK_CHECK_VERSION(3, 0, 0) gtk_widget_override_background_color (_aux_area, GTK_STATE_FLAG_NORMAL, &_normal_bg); gtk_widget_override_background_color (_aux_area, GTK_STATE_FLAG_ACTIVE, &_active_bg); gtk_widget_override_color (_aux_area, GTK_STATE_FLAG_NORMAL, &_normal_text); gtk_widget_override_color (_aux_area, GTK_STATE_FLAG_ACTIVE, &_active_text); #else gtk_widget_modify_base (_aux_area, GTK_STATE_NORMAL, &_normal_bg); gtk_widget_modify_base (_aux_area, GTK_STATE_ACTIVE, &_active_bg); gtk_widget_modify_text (_aux_area, GTK_STATE_NORMAL, &_normal_text); gtk_widget_modify_text (_aux_area, GTK_STATE_ACTIVE, &_active_text); #endif scim_string_view_set_width_chars (SCIM_STRING_VIEW (_aux_area), 24); scim_string_view_set_draw_cursor (SCIM_STRING_VIEW (_aux_area), FALSE); scim_string_view_set_forward_event (SCIM_STRING_VIEW (_aux_area), TRUE); scim_string_view_set_auto_resize (SCIM_STRING_VIEW (_aux_area), TRUE); scim_string_view_set_has_frame (SCIM_STRING_VIEW (_aux_area), FALSE); gtk_box_pack_start (GTK_BOX (vbox), _aux_area, TRUE, TRUE, 0); gtk_window_move (GTK_WINDOW (_input_window), ui_screen_width (), ui_screen_height ()); gtk_widget_show_all (_input_window); gtk_widget_hide (_input_window); } //Create lookup table window { GtkWidget *vbox; GtkWidget *hbox; GtkWidget *frame; GtkWidget *lookup_table_parent; GtkWidget *image; GtkWidget *separator; if (_lookup_table_embedded) { #if GTK_CHECK_VERSION(3, 2, 0) _lookup_table_window = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); #else _lookup_table_window = gtk_vbox_new (FALSE, 0); #endif gtk_box_pack_start (GTK_BOX (input_window_vbox), _lookup_table_window, TRUE, TRUE, 0); lookup_table_parent = _lookup_table_window; #if GTK_CHECK_VERSION(3, 2, 0) separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); #else separator = gtk_hseparator_new (); #endif gtk_box_pack_start (GTK_BOX (lookup_table_parent), separator, FALSE, FALSE, 0); } else { _lookup_table_window = gtk_window_new (GTK_WINDOW_POPUP); #if GTK_CHECK_VERSION(3, 0, 0) gtk_widget_override_background_color (_lookup_table_window, GTK_STATE_FLAG_NORMAL, &_normal_bg); #else gtk_widget_modify_bg (_lookup_table_window, GTK_STATE_NORMAL, &_normal_bg); #endif gtk_window_set_resizable (GTK_WINDOW (_lookup_table_window), FALSE); gtk_widget_add_events (_lookup_table_window,GDK_BUTTON_PRESS_MASK); gtk_widget_add_events (_lookup_table_window,GDK_BUTTON_RELEASE_MASK); gtk_widget_add_events (_lookup_table_window,GDK_POINTER_MOTION_MASK); g_signal_connect (G_OBJECT (_lookup_table_window), "button-press-event", G_CALLBACK (ui_lookup_table_window_click_cb), GINT_TO_POINTER (0)); g_signal_connect (G_OBJECT (_lookup_table_window), "button-release-event", G_CALLBACK (ui_lookup_table_window_click_cb), GINT_TO_POINTER (1)); gtk_container_set_border_width (GTK_CONTAINER (_lookup_table_window), 0); frame = gtk_frame_new (0); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_ETCHED_OUT); gtk_container_add (GTK_CONTAINER (_lookup_table_window), frame); lookup_table_parent = frame; } //Vertical lookup table if (_lookup_table_vertical) { #if GTK_CHECK_VERSION(3, 2, 0) vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); #else vbox = gtk_vbox_new (FALSE, 0); #endif gtk_container_add (GTK_CONTAINER (lookup_table_parent), vbox); //New table items for (int i=0; i 0) { _toolbar_hide_timeout = g_timeout_add (1000, ui_hide_window_timeout_cb, NULL); g_signal_connect (G_OBJECT (_toolbar_window), "enter-notify-event", G_CALLBACK (ui_toolbar_window_crossing_cb), GINT_TO_POINTER (0)); g_signal_connect (G_OBJECT (_toolbar_window), "leave-notify-event", G_CALLBACK (ui_toolbar_window_crossing_cb), GINT_TO_POINTER (1)); } // Init the tooltips { #if GTK_CHECK_VERSION(2, 12, 0) #else _tooltips = gtk_tooltips_new (); gtk_tooltips_set_delay (_tooltips, 1000); #endif if (_window_stick_button) #if GTK_CHECK_VERSION(2, 12, 0) gtk_widget_set_tooltip_text (_window_stick_button, _("Stick/unstick the input window and the toolbar.")); #else gtk_tooltips_set_tip (_tooltips, _window_stick_button, _("Stick/unstick the input window and the toolbar."), NULL); #endif if (_help_button) #if GTK_CHECK_VERSION(2, 12, 0) gtk_widget_set_tooltip_text (_help_button, _("Show a brief help about SCIM and the current input method.")); #else gtk_tooltips_set_tip (_tooltips, _help_button, _("Show a brief help about SCIM and the current input method."), #endif if (_menu_button) #if GTK_CHECK_VERSION(2, 12, 0) gtk_widget_set_tooltip_text (_menu_button, _("Show command menu.")); #else gtk_tooltips_set_tip (_tooltips, _menu_button, _("Show command menu."), NULL); #endif } #ifdef GDK_WINDOWING_X11 // Add an event filter function to observe X root window's properties. GdkWindow *root_window = gdk_get_default_root_window (); GdkEventMask event_mask; #if GTK_CHECK_VERSION(2, 2, 0) if (_current_screen) root_window = gdk_screen_get_root_window (_current_screen); #endif event_mask = (GdkEventMask) (gdk_window_get_events (root_window) | GDK_PROPERTY_NOTIFY); gdk_window_set_events (root_window, event_mask); gdk_window_add_filter (root_window, ui_event_filter, NULL); #endif _ui_initialized = true; } static void ui_settle_input_window (bool relative, bool force) { SCIM_DEBUG_MAIN (2) << " Settle input window...\n"; if (_window_sticked) { if (force) gtk_window_move (GTK_WINDOW (_input_window), _input_window_x, _input_window_y); return; } GtkRequisition ws; gint spot_x, spot_y; #if GTK_CHECK_VERSION(3, 0, 0) gtk_widget_get_preferred_size (_input_window, &ws, NULL); #else gtk_widget_size_request (_input_window, &ws); #endif if (!relative) { spot_x = _spot_location_x; spot_y = _spot_location_y; } else { spot_x = _input_window_x; spot_y = _input_window_y; } if (spot_x < 0) spot_x = 0; if (spot_y < 0) spot_y = 0; if (spot_x + ws.width > ui_screen_width () - 4) spot_x = ui_screen_width () - ws.width - 4; if (spot_y + ws.height + 8 > ui_screen_height () - 4) spot_y = ui_screen_height () - ws.height - 4; if (spot_x != _input_window_x || spot_y != _input_window_y || force) { gtk_window_move (GTK_WINDOW (_input_window), spot_x, spot_y); _input_window_x = spot_x; _input_window_y = spot_y; } } static void ui_settle_lookup_table_window(bool force) { SCIM_DEBUG_MAIN (2) << " Settle lookup table window...\n"; if (_lookup_table_embedded) return; if (_window_sticked) { if (force) gtk_window_move (GTK_WINDOW (_lookup_table_window), _lookup_table_window_x, _lookup_table_window_y); return; } gint pos_x, pos_y; GtkRequisition iws; GtkRequisition ws; #if GTK_CHECK_VERSION(3, 0, 0) gtk_widget_get_preferred_size (_input_window, &iws, NULL); gtk_widget_get_preferred_size (_lookup_table_window, &ws, NULL); #else gtk_widget_size_request (_input_window, &iws); gtk_widget_size_request (_lookup_table_window, &ws); #endif pos_x = _input_window_x; pos_y = _input_window_y + iws.height + 8; if (pos_x + ws.width > ui_screen_width () - 8) { pos_x = ui_screen_width () - ws.width - 8; } if (pos_y + ws.height > ui_screen_height () - 8) { pos_y = ui_screen_height () - ws.height - 40; } // input window and lookup table window are overlapped. if (pos_y < _input_window_y + iws.height && pos_y + ws.height > _input_window_y) { pos_y = _input_window_y - ws.height - 8; } if (_lookup_table_window_x != pos_x || _lookup_table_window_y != pos_y || force) { gtk_window_move (GTK_WINDOW (_lookup_table_window), pos_x, pos_y); _lookup_table_window_x = pos_x; _lookup_table_window_y = pos_y; } } static void ui_settle_toolbar_window (bool force) { SCIM_DEBUG_MAIN (2) << " Settle toolbar window...\n"; if (_window_sticked) { if (force) gtk_window_move (GTK_WINDOW (_toolbar_window), _toolbar_window_x, _toolbar_window_y); return; } gint workarea_x, workarea_y, workarea_width, workarea_height; ui_get_workarea (workarea_x, workarea_y, workarea_width, workarea_height); GtkRequisition ws; gint pos_x, pos_y; #if GTK_CHECK_VERSION(3, 0, 0) gtk_widget_get_preferred_size (_toolbar_window, &ws, NULL); #else gtk_widget_size_request (_toolbar_window, &ws); #endif pos_x = _config->read (String (SCIM_CONFIG_PANEL_GTK_TOOLBAR_POS_X), workarea_x + workarea_width - ws.width); pos_y = _config->read (String (SCIM_CONFIG_PANEL_GTK_TOOLBAR_POS_Y), workarea_y + workarea_height - ws.height); if (_multi_monitors) { pos_x = -1; pos_y = -1; } if (pos_x == -1 && pos_y == -1) { pos_x = workarea_x + workarea_width - ws.width; pos_y = workarea_y + workarea_height - ws.height; } if (_toolbar_auto_snap) { if ((ui_screen_width () - (pos_x + ws.width)) < pos_x) pos_x = ui_screen_width () - ws.width; else pos_x = 0; } else if (pos_x + ws.width > ui_screen_width ()) { pos_x = ui_screen_width () - ws.width; } else if (pos_x < 0) { pos_x = 0; } if (pos_y + ws.height > ui_screen_height ()) pos_y = ui_screen_height () - ws.height; else if (pos_y < 0) pos_y = 0; if (_toolbar_window_x != pos_x || _toolbar_window_y != pos_y || force) { gtk_window_move (GTK_WINDOW (_toolbar_window), pos_x, pos_y); _toolbar_window_x = pos_x; _toolbar_window_y = pos_y; } } static bool ui_get_screen_rect (GdkRectangle &rect) { #if GTK_CHECK_VERSION(2, 2, 0) GdkWindow * active_window; int index; if (_current_screen) { if ( gdk_screen_get_n_monitors (_current_screen) > 1) { _multi_monitors = true; active_window = gdk_screen_get_active_window(_current_screen); index = gdk_screen_get_monitor_at_window(_current_screen, active_window); gdk_screen_get_monitor_geometry(_current_screen, index, &rect); return TRUE; } } #endif return FALSE; } static int ui_multi_monitor_width () { #if GTK_CHECK_VERSION(2, 2, 0) GdkRectangle rect; if (_current_screen) { if ( ui_get_screen_rect (rect) ) { return rect.x + rect.width; } return gdk_screen_get_width (_current_screen); } #endif return 0; } static int ui_multi_monitor_height () { #if GTK_CHECK_VERSION(2, 2, 0) GdkRectangle rect; if (_current_screen) { if ( ui_get_screen_rect (rect) ) { return rect.y + rect.height; } return gdk_screen_get_height (_current_screen); } #endif return 0; } static int ui_screen_width (void) { #if GTK_CHECK_VERSION(2, 2, 0) if (_current_screen) return ui_multi_monitor_width (); #endif return gdk_screen_width (); } static int ui_screen_height (void) { #if GTK_CHECK_VERSION(2, 2, 0) if (_current_screen) return ui_multi_monitor_height (); #endif return gdk_screen_height (); } static void ui_get_workarea (int &x, int &y, int &width, int &height) { static GdkAtom net_current_desktop_atom = gdk_atom_intern ("_NET_CURRENT_DESKTOP", TRUE);; static GdkAtom net_workarea_atom = gdk_atom_intern ("_NET_WORKAREA", TRUE); GdkWindow *root_window = gdk_get_default_root_window (); GdkAtom atom_ret; gint format, length, current_desktop = 0; guchar *data; #if GTK_CHECK_VERSION(2, 2, 0) if (_current_screen) root_window = gdk_screen_get_root_window (_current_screen); #endif x = 0; y = 0; width = ui_screen_width (); height = ui_screen_height (); if (net_current_desktop_atom != GDK_NONE) { gboolean found = gdk_property_get (root_window, net_current_desktop_atom, GDK_NONE, 0, G_MAXLONG, FALSE, &atom_ret, &format, &length, &data); if (found && format == 32 && length / sizeof(glong) > 0) current_desktop = ((glong*)data)[0]; if (found) g_free (data); } if (net_workarea_atom != GDK_NONE) { gboolean found = gdk_property_get (root_window, net_workarea_atom, GDK_NONE, 0, G_MAXLONG, FALSE, &atom_ret, &format, &length, &data); if (found && format == 32 && length / sizeof(glong) >= (current_desktop + 1) * 4) { x = ((glong*)data)[current_desktop * 4]; y = ((glong*)data)[current_desktop * 4 + 1]; width = ((glong*)data)[current_desktop * 4 + 2]; height = ((glong*)data)[current_desktop * 4 + 3]; } if (found) g_free (data); } } #if GTK_CHECK_VERSION(2, 2, 0) static void ui_switch_screen (GdkScreen *screen) { if (screen) { if (_input_window) { gtk_window_set_screen (GTK_WINDOW (_input_window), screen); _input_window_x = ui_screen_width (); _input_window_y = ui_screen_height (); gtk_window_move (GTK_WINDOW (_input_window), _input_window_x, _input_window_y); } if (_toolbar_window) { gtk_window_set_screen (GTK_WINDOW (_toolbar_window), screen); ui_settle_toolbar_window (); } if (!_lookup_table_embedded && _lookup_table_window) { gtk_window_set_screen (GTK_WINDOW (_lookup_table_window), screen); _lookup_table_window_x = ui_screen_width (); _lookup_table_window_y = ui_screen_height (); gtk_window_move (GTK_WINDOW (_lookup_table_window), _lookup_table_window_x, _lookup_table_window_y); } #if ENABLE_TRAY_ICON // if (_tray_icon) { // gtk_window_set_screen (GTK_WINDOW (_tray_icon), screen); // } #endif if (_help_dialog) { gtk_window_set_screen (GTK_WINDOW (_help_dialog), screen); } #ifdef GDK_WINDOWING_X11 GdkWindow *root_window = gdk_get_default_root_window (); GdkEventMask event_mask; if (_current_screen) root_window = gdk_screen_get_root_window (_current_screen); event_mask = (GdkEventMask) (gdk_window_get_events (root_window) | GDK_PROPERTY_NOTIFY); gdk_window_set_events (root_window, event_mask); gdk_window_add_filter (root_window, ui_event_filter, NULL); #endif ui_settle_input_window (); ui_settle_lookup_table_window (); ui_settle_toolbar_window (); } } #endif #if ENABLE_TRAY_ICON // static gboolean // ui_tray_icon_expose_event_cb (GtkWidget *widget, GdkEventExpose *event) // { // gdk_window_clear_area (widget->window, event->area.x, event->area.y, // event->area.width, event->area.height); // return FALSE; // } // // static void // ui_tray_icon_style_set_cb (GtkWidget *widget, GtkStyle *previous_style) // { // gdk_window_set_back_pixmap (widget->window, NULL, TRUE); // } // // static void // ui_tray_icon_realize_cb (GtkWidget *widget) // { // #if GTK_CHECK_VERSION(2, 18, 0) // if (!gtk_widget_get_has_window (widget) || gtk_widget_get_app_paintable (widget)) // #else // if (GTK_WIDGET_NO_WINDOW (widget) || GTK_WIDGET_APP_PAINTABLE (widget)) // #endif // return; // // gtk_widget_set_app_paintable (widget, TRUE); // gtk_widget_set_double_buffered (widget, FALSE); // gdk_window_set_back_pixmap (widget->window, NULL, TRUE); // g_signal_connect (widget, "expose_event", // G_CALLBACK (ui_tray_icon_expose_event_cb), NULL); // g_signal_connect_after (widget, "style_set", // G_CALLBACK (ui_tray_icon_style_set_cb), NULL); // } static gboolean ui_create_tray_icon_when_idle (gpointer data) { GtkWidget *image; _tray_icon = gtk_status_icon_new_from_file (SCIM_KEYBOARD_ICON_FILE); // g_signal_connect (G_OBJECT (_tray_icon), "realize", // G_CALLBACK (ui_tray_icon_realize_cb), NULL); // _tray_icon_destroy_signal_id = // g_signal_connect (G_OBJECT (_tray_icon), "destroy", // G_CALLBACK (ui_tray_icon_destroy_cb), // 0); // image = ui_create_icon (SCIM_KEYBOARD_ICON_FILE, // NULL, // TRAY_ICON_SIZE, // TRAY_ICON_SIZE, // true); // _tray_icon_factory_button = gtk_event_box_new (); // g_signal_connect (G_OBJECT (_tray_icon_factory_button), "realize", // G_CALLBACK (ui_tray_icon_realize_cb), NULL); // gtk_container_add (GTK_CONTAINER (_tray_icon_factory_button), image); // gtk_container_add (GTK_CONTAINER (_tray_icon), _tray_icon_factory_button); // g_signal_connect (G_OBJECT (_tray_icon_factory_button), "button-release-event", // G_CALLBACK (ui_factory_button_click_cb), // 0); g_signal_connect (G_OBJECT (_tray_icon), "popup-menu", G_CALLBACK (ui_tray_icon_popup_menu_cb), 0); g_signal_connect (G_OBJECT (_tray_icon), "activate", G_CALLBACK (ui_tray_icon_activate_cb), 0); gtk_status_icon_set_visible (_tray_icon, TRUE); return FALSE; } #endif static GdkPixbuf * ui_scale_pixbuf (GdkPixbuf *pixbuf, int width, int height) { if (pixbuf) { if (gdk_pixbuf_get_width (pixbuf) != width || gdk_pixbuf_get_height (pixbuf) != height) { GdkPixbuf *dest = gdk_pixbuf_scale_simple (pixbuf, width, height, GDK_INTERP_BILINEAR); g_object_unref (pixbuf); pixbuf = dest; } } return pixbuf; } static GtkWidget * ui_create_label (const String &name, const String &iconfile, const char **xpm, bool show_icon_only, bool force_icon) { #if GTK_CHECK_VERSION(3, 2, 0) GtkWidget * hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); #else GtkWidget * hbox = gtk_hbox_new (FALSE, 0); #endif GtkWidget * label = gtk_label_new (name.c_str ()); gint width, height; if (_default_font_desc) #if GTK_CHECK_VERSION(3, 0, 0) gtk_widget_override_font (label, _default_font_desc); #else gtk_widget_modify_font (label, _default_font_desc); #endif gtk_icon_size_lookup (GTK_ICON_SIZE_MENU, &width, &height); GtkWidget *icon = ui_create_icon (iconfile, xpm, width, height, force_icon); if (icon) { gtk_box_pack_start (GTK_BOX (hbox), icon, FALSE, FALSE, 0); if (!show_icon_only) gtk_box_set_spacing (GTK_BOX (hbox), 4); } if (!show_icon_only || !icon) gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0); else gtk_widget_destroy (label); gtk_widget_show_all (hbox); return hbox; } static GtkWidget * ui_create_icon (const String &iconfile, const char **xpm, int width, int height, bool force_create) { String path = iconfile; GdkPixbuf *pixbuf = 0; if (path.length ()) { // Not a absolute path, prepend SCIM_ICONDIR if (path [0] != SCIM_PATH_DELIM) path = String (SCIM_ICONDIR) + String (SCIM_PATH_DELIM_STRING) + path; pixbuf = gdk_pixbuf_new_from_file (path.c_str (), 0); } if (!pixbuf && xpm) { pixbuf = gdk_pixbuf_new_from_xpm_data (xpm); } if (!pixbuf && force_create) { if (width <= 0 || height <= 0) return 0; pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, true, 8, width, height); if (!pixbuf) return 0; gdk_pixbuf_fill (pixbuf, 0); } if (pixbuf) { if (width <= 0) width = gdk_pixbuf_get_width (pixbuf); if (height <= 0) height = gdk_pixbuf_get_height (pixbuf); pixbuf = ui_scale_pixbuf (pixbuf, width, height); GtkWidget *icon = gtk_image_new_from_pixbuf (pixbuf); gtk_widget_show (icon); g_object_unref (pixbuf); return icon; } return 0; } static GtkWidget * ui_create_trademark_icon (void) { return ui_create_icon (SCIM_TRADEMARK_ICON_FILE, (const char **) trademark_xpm, TOOLBAR_ICON_SIZE + 4, TOOLBAR_ICON_SIZE + 4); } static GtkWidget * ui_create_stick_icon (bool sticked) { return ui_create_icon ((sticked ? SCIM_PIN_DOWN_ICON_FILE : SCIM_PIN_UP_ICON_FILE), (const char **) (sticked ? pin_down_xpm : pin_up_xpm), TOOLBAR_ICON_SIZE, TOOLBAR_ICON_SIZE); } static GtkWidget * ui_create_help_icon (void) { return ui_create_icon (SCIM_HELP_ICON_FILE, (const char **) help_xpm, TOOLBAR_ICON_SIZE, TOOLBAR_ICON_SIZE); } static GtkWidget * ui_create_menu_icon (void) { return ui_create_icon (SCIM_MENU_ICON_FILE, (const char **) menu_xpm, TOOLBAR_ICON_SIZE, TOOLBAR_ICON_SIZE); } static GtkWidget * ui_create_up_icon (void) { return ui_create_icon (SCIM_UP_ICON_FILE, (const char **) up_xpm, LOOKUP_ICON_SIZE, LOOKUP_ICON_SIZE); } static GtkWidget * ui_create_left_icon (void) { return ui_create_icon (SCIM_LEFT_ICON_FILE, (const char **) left_xpm, LOOKUP_ICON_SIZE, LOOKUP_ICON_SIZE); } static GtkWidget * ui_create_right_icon (void) { return ui_create_icon (SCIM_RIGHT_ICON_FILE, (const char **) right_xpm, LOOKUP_ICON_SIZE, LOOKUP_ICON_SIZE); } static GtkWidget * ui_create_down_icon (void) { return ui_create_icon (SCIM_DOWN_ICON_FILE, (const char **) down_xpm, LOOKUP_ICON_SIZE, LOOKUP_ICON_SIZE); } static GtkWidget* ui_create_factory_menu_entry (const PanelFactoryInfo &info, gint id, GtkMenuShell *menu, bool show_lang, bool show_name) { gint width, height; GtkWidget *menu_item; GtkWidget *icon_image; String text, tooltip; if ((!show_lang && show_name) || (show_lang && !show_name && (info.lang == "C" || info.lang == "~other"))) { text = info.name; tooltip = ""; } else if (show_lang && !show_name) { text = scim_get_language_name (info.lang); tooltip = info.name; } else { text = scim_get_language_name (info.lang) + " - " + info.name; tooltip = ""; } menu_item = gtk_image_menu_item_new_with_label (text.c_str ()); gtk_icon_size_lookup (GTK_ICON_SIZE_MENU, &width, &height); icon_image = ui_create_icon (info.icon, NULL, width, height, false); if (icon_image) gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item), icon_image); g_signal_connect (G_OBJECT (menu_item), "activate", G_CALLBACK (ui_factory_menu_activate_cb), GINT_TO_POINTER ((gint)id)); gtk_widget_show (menu_item); gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); if (tooltip != "") #if GTK_CHECK_VERSION(2, 12, 0) gtk_widget_set_tooltip_text (menu_item, tooltip.c_str ()); #else gtk_tooltips_set_tip (_tooltips, menu_item, tooltip.c_str (), NULL); #endif return menu_item; } /* Implementation of callback functions */ static void ui_preedit_area_move_cursor_cb (ScimStringView *view, guint position) { SCIM_DEBUG_MAIN (3) << " ui_preedit_area_move_cursor_cb...\n"; _panel_agent->move_preedit_caret (position); } static void ui_help_button_click_cb (GtkButton *button, gpointer user_data) { SCIM_DEBUG_MAIN (3) << " ui_help_button_click_cb...\n"; #if GTK_CHECK_VERSION(2, 18, 0) if (gtk_widget_get_visible (_help_dialog)) { #else if (GTK_WIDGET_VISIBLE (_help_dialog)) { #endif gtk_widget_hide (_help_dialog); } else { action_request_help (); } } static void ui_menu_button_click_cb (GtkButton *button, gpointer user_data) { SCIM_DEBUG_MAIN (3) << " ui_menu_button_click_cb...\n"; struct timeval cur_time; gettimeofday (&cur_time, 0); if (cur_time.tv_sec < _last_menu_deactivate_time.tv_sec || (cur_time.tv_sec == _last_menu_deactivate_time.tv_sec && cur_time.tv_usec < _last_menu_deactivate_time.tv_usec + 200000)) return; action_show_command_menu (); } static gboolean ui_factory_button_click_cb (GtkWidget *button, GdkEvent *event, gpointer user_data) { SCIM_DEBUG_MAIN (3) << " ui_factory_button_click_cb...\n"; GdkEventButton *bevent = (GdkEventButton *) event; struct timeval cur_time; gettimeofday (&cur_time, 0); if (cur_time.tv_sec < _last_menu_deactivate_time.tv_sec || (cur_time.tv_sec == _last_menu_deactivate_time.tv_sec && cur_time.tv_usec < _last_menu_deactivate_time.tv_usec + 200000)) return FALSE; if (bevent->button <= 1) _panel_agent->request_factory_menu (); else action_show_command_menu (); return FALSE; } static void ui_tray_icon_popup_menu_cb (GtkStatusIcon *status_icon, guint button, guint activate_time, gpointer user_data) { _tray_icon_clicked = true; _tray_icon_clicked_time = activate_time; action_show_command_menu (); } static void ui_tray_icon_activate_cb (GtkStatusIcon *status_icon, gpointer user_data) { _tray_icon_clicked = true; _tray_icon_clicked_time = gtk_get_current_event_time (); _panel_agent->request_factory_menu (); } static void ui_factory_menu_activate_cb (GtkMenuItem *item, gpointer user_data) { int id = GPOINTER_TO_INT (user_data); if (id >= 0 && id < (int) _factory_menu_uuids.size ()) _panel_agent->change_factory (_factory_menu_uuids [id]); else _panel_agent->change_factory (""); } static void ui_factory_menu_deactivate_cb (GtkMenuItem *item, gpointer user_data) { _factory_menu_activated = false; gettimeofday (&_last_menu_deactivate_time, 0); } static gboolean ui_lookup_table_vertical_click_cb (GtkWidget *item, GdkEventButton *event, gpointer user_data) { SCIM_DEBUG_MAIN (3) << " ui_lookup_table_vertical_click_cb...\n"; _panel_agent->select_candidate ((uint32)GPOINTER_TO_INT (user_data)); return TRUE; } static void ui_lookup_table_horizontal_click_cb (GtkWidget *item, guint position) { SCIM_DEBUG_MAIN (3) << " ui_lookup_table_horizontal_click_cb...\n"; int *index = _lookup_table_index; int pos = (int) position; for (int i=0; i= 0; ++i) { if (pos >= index [i] && pos < index [i+1]) { _panel_agent->select_candidate ((uint32) i); return; } } } static void ui_lookup_table_up_button_click_cb (GtkButton *button, gpointer user_data) { SCIM_DEBUG_MAIN (3) << " ui_lookup_table_up_button_click_cb...\n"; _panel_agent->lookup_table_page_up (); } static void ui_lookup_table_down_button_click_cb (GtkButton *button, gpointer user_data) { SCIM_DEBUG_MAIN (3) << " ui_lookup_table_down_button_click_cb...\n"; _panel_agent->lookup_table_page_down (); } static void ui_window_stick_button_click_cb (GtkButton *button, gpointer user_data) { action_toggle_window_stick (); } static gboolean ui_input_window_motion_cb (GtkWidget *window, GdkEventMotion *event, gpointer user_data) { gint pos_x, pos_y; if ((event->state & (GDK_BUTTON1_MASK | GDK_BUTTON2_MASK | GDK_BUTTON3_MASK)) != 0 && _input_window_draging) { gtk_window_get_position (GTK_WINDOW (window), &pos_x, &pos_y); gtk_window_move (GTK_WINDOW (window), pos_x + ((gint) event->x_root - _input_window_drag_x), pos_y + ((gint) event->y_root - _input_window_drag_y)); _input_window_drag_x = (gint) event->x_root; _input_window_drag_y = (gint) event->y_root; return TRUE; } return FALSE; } static gboolean ui_input_window_click_cb (GtkWidget *window, GdkEventButton *event, gpointer user_data) { int click_type = GPOINTER_TO_INT (user_data); static gulong motion_handler; GdkCursor *cursor; if (click_type == 0) { if (_input_window_draging) return FALSE; // Connection pointer motion handler to this window. motion_handler = g_signal_connect (G_OBJECT (window), "motion-notify-event", G_CALLBACK (ui_input_window_motion_cb), NULL); _input_window_draging = TRUE; _input_window_drag_x = (gint) event->x_root; _input_window_drag_y = (gint) event->y_root; cursor = gdk_cursor_new (GDK_TOP_LEFT_ARROW); // Grab the cursor to prevent losing events. #if GTK_CHECK_VERSION(3, 0, 0) GdkDisplay *display; GdkDevice *pointer; GdkDeviceManager *device_manager; display = gdk_window_get_display (gtk_widget_get_window (window)); device_manager = gdk_display_get_device_manager (display); pointer = gdk_device_manager_get_client_pointer (device_manager); /* FIXME Not sure if report to GDK_OWNERSHIP_WINDOW or GDK_OWNERSHIP_APPLICATION */ gdk_device_grab (pointer, gtk_widget_get_window (window), GDK_OWNERSHIP_WINDOW, TRUE, GdkEventMask (GDK_BUTTON_RELEASE_MASK | GDK_POINTER_MOTION_MASK), cursor, event->time); #else gdk_pointer_grab (window->window, TRUE, (GdkEventMask) (GDK_BUTTON_RELEASE_MASK | GDK_POINTER_MOTION_MASK), NULL, cursor, event->time); #endif gdk_cursor_unref (cursor); return TRUE; } else if (click_type == 1) { if (!_input_window_draging) return FALSE; g_signal_handler_disconnect (G_OBJECT (window), motion_handler); gdk_pointer_ungrab (event->time); _input_window_draging = FALSE; gtk_window_get_position (GTK_WINDOW (window), &_input_window_x, &_input_window_y); return TRUE; } return FALSE; } static gboolean ui_toolbar_window_crossing_cb (GtkWidget *window, GdkEventCrossing *event, gpointer user_data) { if (!_toolbar_always_show || _panel_is_on || _toolbar_window_draging) return FALSE; int crossing_type = GPOINTER_TO_INT (user_data); // 0 == enter, otherwise leave if (crossing_type == 0) { if (_toolbar_hidden) { if (_window_stick_button) gtk_widget_show (_window_stick_button); if (_factory_button) gtk_widget_show (_factory_button); if (_client_properties_area) gtk_widget_show (_client_properties_area); if (_menu_button) gtk_widget_show (_menu_button); if (_help_button) gtk_widget_show (_help_button); _toolbar_hidden = false; ui_settle_toolbar_window (); } _toolbar_should_hide = false; } else { _toolbar_should_hide = true; } return FALSE; } static gboolean ui_toolbar_window_motion_cb (GtkWidget *window, GdkEventMotion *event, gpointer user_data) { gint pos_x, pos_y; if ((event->state & (GDK_BUTTON1_MASK | GDK_BUTTON2_MASK | GDK_BUTTON3_MASK)) != 0 && _toolbar_window_draging) { gtk_window_get_position (GTK_WINDOW (window), &pos_x, &pos_y); gtk_window_move (GTK_WINDOW (window), pos_x + ((gint) event->x_root - _toolbar_window_drag_x), pos_y + ((gint) event->y_root - _toolbar_window_drag_y)); _toolbar_window_drag_x = (gint) event->x_root; _toolbar_window_drag_y = (gint) event->y_root; return TRUE; } return FALSE; } static gboolean ui_toolbar_window_click_cb (GtkWidget *window, GdkEventButton *event, gpointer user_data) { int click_type = GPOINTER_TO_INT (user_data); static gulong motion_handler; GdkCursor *cursor; if (click_type == 0 && event->button <= 1) { if (_toolbar_window_draging) return FALSE; // Connection pointer motion handler to this window. motion_handler = g_signal_connect (G_OBJECT (window), "motion-notify-event", G_CALLBACK (ui_toolbar_window_motion_cb), NULL); _toolbar_window_draging = TRUE; _toolbar_window_drag_x = (gint) event->x_root; _toolbar_window_drag_y = (gint) event->y_root; cursor = gdk_cursor_new (GDK_TOP_LEFT_ARROW); // Grab the cursor to prevent losing events. #if GTK_CHECK_VERSION(3, 0, 0) GdkDisplay *display; GdkDevice *pointer; GdkDeviceManager *device_manager; display = gdk_window_get_display (gtk_widget_get_window (window)); device_manager = gdk_display_get_device_manager (display); pointer = gdk_device_manager_get_client_pointer (device_manager); /* FIXME Not sure if report to GDK_OWNERSHIP_WINDOW or GDK_OWNERSHIP_APPLICATION */ gdk_device_grab (pointer, gtk_widget_get_window (window), GDK_OWNERSHIP_WINDOW, TRUE, GdkEventMask (GDK_BUTTON_RELEASE_MASK | GDK_POINTER_MOTION_MASK), cursor, event->time); #else gdk_pointer_grab (window->window, TRUE, (GdkEventMask) (GDK_BUTTON_RELEASE_MASK | GDK_POINTER_MOTION_MASK), NULL, cursor, event->time); #endif gdk_cursor_unref (cursor); return TRUE; } else if (click_type == 1 && event->button <= 1) { if (!_toolbar_window_draging) return FALSE; g_signal_handler_disconnect (G_OBJECT (window), motion_handler); gdk_pointer_ungrab (event->time); _toolbar_window_draging = FALSE; gint pos_x, pos_y; gtk_window_get_position (GTK_WINDOW (window), &pos_x, &pos_y); if (!_config.null () && (_toolbar_window_x != pos_x || _toolbar_window_y != pos_y)) { if (_multi_monitors) { pos_x = -1; pos_y = -1; } _config->write ( SCIM_CONFIG_PANEL_GTK_TOOLBAR_POS_X, pos_x); _config->write ( SCIM_CONFIG_PANEL_GTK_TOOLBAR_POS_Y, pos_y); } _toolbar_window_x = pos_x; _toolbar_window_y = pos_y; return TRUE; } else if (click_type == 1 && event->button > 1) { action_show_command_menu (); return TRUE; } return FALSE; } static gboolean ui_lookup_table_window_motion_cb (GtkWidget *window, GdkEventMotion *event, gpointer user_data) { gint pos_x, pos_y; if ((event->state & (GDK_BUTTON1_MASK | GDK_BUTTON2_MASK | GDK_BUTTON3_MASK)) != 0 && _lookup_table_window_draging) { gtk_window_get_position (GTK_WINDOW (window), &pos_x, &pos_y); gtk_window_move (GTK_WINDOW (window), pos_x + ((gint) event->x_root - _lookup_table_window_drag_x), pos_y + ((gint) event->y_root - _lookup_table_window_drag_y)); _lookup_table_window_drag_x = (gint) event->x_root; _lookup_table_window_drag_y = (gint) event->y_root; return TRUE; } return FALSE; } static gboolean ui_lookup_table_window_click_cb (GtkWidget *window, GdkEventButton *event, gpointer user_data) { int click_type = GPOINTER_TO_INT (user_data); static gulong motion_handler; GdkCursor *cursor; if (click_type == 0) { if (_lookup_table_window_draging) return FALSE; // Connection pointer motion handler to this window. motion_handler = g_signal_connect (G_OBJECT (window), "motion-notify-event", G_CALLBACK (ui_lookup_table_window_motion_cb), NULL); _lookup_table_window_draging = TRUE; _lookup_table_window_drag_x = (gint) event->x_root; _lookup_table_window_drag_y = (gint) event->y_root; cursor = gdk_cursor_new (GDK_TOP_LEFT_ARROW); // Grab the cursor to prevent losing events. #if GTK_CHECK_VERSION(3, 0, 0) GdkDisplay *display; GdkDevice *pointer; GdkDeviceManager *device_manager; display = gdk_window_get_display (gtk_widget_get_window (window)); device_manager = gdk_display_get_device_manager (display); pointer = gdk_device_manager_get_client_pointer (device_manager); /* FIXME Not sure if report to GDK_OWNERSHIP_WINDOW or GDK_OWNERSHIP_APPLICATION */ gdk_device_grab (pointer, gtk_widget_get_window (window), GDK_OWNERSHIP_WINDOW, TRUE, GdkEventMask (GDK_BUTTON_RELEASE_MASK | GDK_POINTER_MOTION_MASK), cursor, event->time); #else gdk_pointer_grab (window->window, TRUE, (GdkEventMask) (GDK_BUTTON_RELEASE_MASK | GDK_POINTER_MOTION_MASK), NULL, cursor, event->time); #endif gdk_cursor_unref (cursor); return TRUE; } else if (click_type == 1) { if (!_lookup_table_window_draging) return FALSE; g_signal_handler_disconnect (G_OBJECT (window), motion_handler); gdk_pointer_ungrab (event->time); _lookup_table_window_draging = FALSE; gtk_window_get_position (GTK_WINDOW (window), &_lookup_table_window_x, &_lookup_table_window_y); return TRUE; } return FALSE; } static gboolean ui_hide_window_timeout_cb (gpointer data) { gdk_threads_enter (); if (!_toolbar_always_show) { gdk_threads_leave (); return TRUE; } if (!_toolbar_should_hide || _panel_is_on || _toolbar_window_draging || _toolbar_hidden || ui_any_menu_activated ()) { _toolbar_hide_timeout_count = 0; gdk_threads_leave (); return TRUE; } _toolbar_hide_timeout_count ++; if (_toolbar_hide_timeout_count > _toolbar_hide_timeout_max) { _toolbar_hide_timeout_count = 0; if (_help_button) gtk_widget_hide (_help_button); if (_menu_button) gtk_widget_hide (_menu_button); if (_client_properties_area) gtk_widget_hide (_client_properties_area); if (_factory_button) gtk_widget_hide (_factory_button); if (_window_stick_button) gtk_widget_hide (_window_stick_button); _toolbar_hidden = true; ui_settle_toolbar_window (); } gdk_threads_leave (); return TRUE; } static bool ui_can_hide_input_window (void) { if (!_panel_is_on) return true; #if GTK_CHECK_VERSION(2, 18, 0) if (gtk_widget_get_visible (_preedit_area) || gtk_widget_get_visible (_aux_area) || (_lookup_table_embedded && gtk_widget_get_visible (_lookup_table_window))) #else if (GTK_WIDGET_VISIBLE (_preedit_area) || GTK_WIDGET_VISIBLE (_aux_area) || (_lookup_table_embedded && GTK_WIDGET_VISIBLE (_lookup_table_window))) #endif return false; return true; } static bool ui_any_menu_activated (void) { return _factory_menu_activated || _command_menu_activated || _property_menu_activated; } static void ui_show_help (const String &help) { if (!help.length () || !_help_dialog || !_help_scroll || !_help_area) return; GtkRequisition size; gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (_help_scroll), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); gtk_label_set_text (GTK_LABEL (_help_area), help.c_str ()); #if GTK_CHECK_VERSION(3, 0, 0) gtk_widget_get_preferred_size (_help_area, &size, NULL); #else gtk_widget_size_request (_help_area, &size); #endif if (size.width > ui_screen_width ()/2) { size.width = ui_screen_width ()/2; gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (_help_scroll), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); } if (size.height > ui_screen_height ()/2) size.height = ui_screen_height ()/2; if (size.height < size.width/2) size.height = size.width/2; gtk_widget_set_size_request (_help_scroll, size.width, size.height); gtk_window_set_position (GTK_WINDOW (_help_dialog), GTK_WIN_POS_CENTER_ALWAYS); gtk_widget_show (_help_dialog); } static PangoAttrList * create_pango_attrlist (const String &mbs, const AttributeList &attrs) { PangoAttrList *attrlist = pango_attr_list_new (); PangoAttribute *attr; guint start_index, end_index; guint wlen = g_utf8_strlen (mbs.c_str (), mbs.length ()); for (int i=0; i < (int) attrs.size (); ++i) { start_index = attrs[i].get_start (); end_index = attrs[i].get_end (); if (end_index <= wlen && start_index < end_index) { start_index = g_utf8_offset_to_pointer (mbs.c_str (), attrs[i].get_start ()) - mbs.c_str (); end_index = g_utf8_offset_to_pointer (mbs.c_str (), attrs[i].get_end ()) - mbs.c_str (); if (attrs[i].get_type () == SCIM_ATTR_DECORATE) { if (attrs[i].get_value () == SCIM_ATTR_DECORATE_UNDERLINE) { attr = pango_attr_underline_new (PANGO_UNDERLINE_SINGLE); attr->start_index = start_index; attr->end_index = end_index; pango_attr_list_insert (attrlist, attr); } else if (attrs[i].get_value () == SCIM_ATTR_DECORATE_REVERSE) { attr = pango_attr_foreground_new (_normal_bg.red, _normal_bg.green, _normal_bg.blue); attr->start_index = start_index; attr->end_index = end_index; pango_attr_list_insert (attrlist, attr); attr = pango_attr_background_new (_normal_text.red, _normal_text.green, _normal_text.blue); attr->start_index = start_index; attr->end_index = end_index; pango_attr_list_insert (attrlist, attr); } else if (attrs[i].get_value () == SCIM_ATTR_DECORATE_HIGHLIGHT) { attr = pango_attr_foreground_new (_active_text.red, _active_text.green, _active_text.blue); attr->start_index = start_index; attr->end_index = end_index; pango_attr_list_insert (attrlist, attr); #if GTK_CHECK_VERSION(3, 0, 0) attr = pango_attr_background_new (65536*_active_bg.red, 65536*_active_bg.green, 65536*_active_bg.blue); #else attr = pango_attr_background_new (_active_bg.red, _active_bg.green, _active_bg.blue); #endif attr->start_index = start_index; attr->end_index = end_index; pango_attr_list_insert (attrlist, attr); } } else if (attrs[i].get_type () == SCIM_ATTR_FOREGROUND) { unsigned int color = attrs[i].get_value (); attr = pango_attr_foreground_new (SCIM_RGB_COLOR_RED(color) * 256, SCIM_RGB_COLOR_GREEN(color) * 256, SCIM_RGB_COLOR_BLUE(color) * 256); attr->start_index = start_index; attr->end_index = end_index; pango_attr_list_insert (attrlist, attr); } else if (attrs[i].get_type () == SCIM_ATTR_BACKGROUND) { unsigned int color = attrs[i].get_value (); attr = pango_attr_background_new (SCIM_RGB_COLOR_RED(color) * 256, SCIM_RGB_COLOR_GREEN(color) * 256, SCIM_RGB_COLOR_BLUE(color) * 256); attr->start_index = start_index; attr->end_index = end_index; pango_attr_list_insert (attrlist, attr); } } } return attrlist; } static void ui_command_menu_exit_activate_cb (GtkMenuItem *item, gpointer user_data) { _panel_agent->exit (); } static void ui_command_menu_reload_activate_cb (GtkMenuItem *item, gpointer user_data) { _panel_agent->reload_config (); if (!_config.null ()) _config->reload (); } static void ui_command_menu_stick_activate_cb (GtkMenuItem *item, gpointer user_data) { action_toggle_window_stick (); } static void ui_command_menu_hide_toolbar_toggled_cb (GtkMenuItem *item, gpointer user_data) { _toolbar_always_hidden = ! _toolbar_always_hidden; if (_toolbar_always_hidden && !_toolbar_hidden) { gtk_widget_hide (_toolbar_window); _toolbar_hidden = true; } else if (!_toolbar_always_hidden && _panel_is_on) { gtk_widget_show (_toolbar_window); _toolbar_hidden = false; } } static void ui_command_menu_help_activate_cb (GtkMenuItem *item, gpointer user_data) { #if GTK_CHECK_VERSION(2, 18, 0) if (gtk_widget_get_visible (_help_dialog)) { #else if (GTK_WIDGET_VISIBLE (_help_dialog)) { #endif gtk_widget_hide (_help_dialog); } else { action_request_help (); } } static void ui_command_menu_helper_activate_cb (GtkWidget *item, gpointer user_data) { size_t i = (size_t) GPOINTER_TO_INT (user_data); if (i < _helper_list.size ()) _panel_agent->start_helper (_helper_list [i].uuid); } static void ui_command_menu_deactivate_cb (GtkWidget *item, gpointer user_data) { _command_menu_activated = false; gettimeofday (&_last_menu_deactivate_time, 0); } #if ENABLE_TRAY_ICON // static void // ui_tray_icon_destroy_cb (GtkObject *object, // gpointer user_data) // { // SCIM_DEBUG_MAIN (1) << "Tray Icon destroyed!\n"; // // gtk_widget_destroy (GTK_WIDGET (object)); // // _tray_icon = 0; // _tray_icon_factory_button = 0; // // g_idle_add (ui_create_tray_icon_when_idle, NULL); // } #endif static void ui_property_activate_cb (GtkWidget *widget, gpointer user_data) { GtkWidget *submenu = (GtkWidget *) g_object_get_data (G_OBJECT (widget), "property_submenu"); if (submenu) { #if GTK_CHECK_VERSION(2, 2, 0) if (_current_screen) gtk_menu_set_screen (GTK_MENU (submenu), _current_screen); #endif guint32 activate_time = gtk_get_current_event_time (); _property_menu_activated = true; gtk_menu_popup (GTK_MENU (submenu), 0, 0, 0, 0, 1, activate_time); return; } gchar * key = (gchar *) g_object_get_data (G_OBJECT (widget), "property_key"); if (key) { int client = GPOINTER_TO_INT (user_data); if (client < 0) _panel_agent->trigger_property (key); else _panel_agent->trigger_helper_property (client, key); } } static void ui_property_menu_deactivate_cb (GtkWidget *item, gpointer user_data) { _property_menu_activated = false; } //Implementation of the action functions static void action_request_help (void) { if (!_panel_agent->request_help ()) { String help; help = String (_("Smart Common Input Method platform ")) + String (SCIM_VERSION) + String (_("\n(C) 2002-2005 James Su ")); ui_show_help (help); } } static void action_toggle_window_stick (void) { GtkWidget *image; _window_sticked = ! _window_sticked; if (_window_stick_button) { image = gtk_bin_get_child (GTK_BIN (_window_stick_button)); gtk_container_remove (GTK_CONTAINER (_window_stick_button), image); image = ui_create_stick_icon (_window_sticked); gtk_container_add (GTK_CONTAINER (_window_stick_button), image); } } static void action_show_command_menu (void) { if (_command_menu_activated) return; _command_menu_activated = true; guint32 activate_time = gtk_get_current_event_time (); if (_command_menu) { gtk_widget_destroy (_command_menu); _command_menu = 0; } _command_menu = gtk_menu_new (); #if GTK_CHECK_VERSION(2, 2, 0) if (_current_screen) gtk_menu_set_screen (GTK_MENU (_command_menu), _current_screen); #endif GtkWidget *menu_item; GtkWidget *icon; gint width, height; gtk_icon_size_lookup (GTK_ICON_SIZE_MENU, &width, &height); // Add Helper object items. for (size_t i = 0; i < _helper_list.size (); ++i) { if ((_helper_list [i].option & SCIM_HELPER_STAND_ALONE) != 0 && (_helper_list [i].option & SCIM_HELPER_AUTO_START) == 0) { menu_item = gtk_image_menu_item_new_with_label (_helper_list [i].name.c_str ()); #if GTK_CHECK_VERSION(2, 12, 0) gtk_widget_set_tooltip_text (menu_item, _helper_list [i].description.c_str ()); #else gtk_tooltips_set_tip (_tooltips, menu_item, _helper_list [i].description.c_str (), NULL); #endif icon = ui_create_icon (_helper_list [i].icon, NULL, width, height, false); if (icon) gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item), icon); gtk_menu_shell_append (GTK_MENU_SHELL (_command_menu), menu_item); g_signal_connect (G_OBJECT (menu_item), "activate", G_CALLBACK (ui_command_menu_helper_activate_cb), GINT_TO_POINTER ((int)i)); gtk_widget_show (menu_item); } } if (_helper_list.size ()) { menu_item = gtk_separator_menu_item_new (); gtk_menu_shell_append (GTK_MENU_SHELL (_command_menu), menu_item); gtk_widget_show (menu_item); } //Reload Configuration. menu_item = gtk_image_menu_item_new_with_label (_("Reload Configuration")); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item), gtk_image_new_from_stock (GTK_STOCK_REFRESH, GTK_ICON_SIZE_MENU)); gtk_menu_shell_append (GTK_MENU_SHELL (_command_menu), menu_item); g_signal_connect (G_OBJECT (menu_item), "activate", G_CALLBACK (ui_command_menu_reload_activate_cb), 0); gtk_widget_show_all (menu_item); //Stick menu_item = gtk_check_menu_item_new_with_label (_("Stick Windows")); gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menu_item), _window_sticked); gtk_menu_shell_append (GTK_MENU_SHELL (_command_menu), menu_item); g_signal_connect (G_OBJECT (menu_item), "activate", G_CALLBACK (ui_command_menu_stick_activate_cb), 0); gtk_widget_show_all (menu_item); //Toolbar menu_item = gtk_check_menu_item_new_with_label (_("Hide Toolbar")); gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menu_item), _toolbar_always_hidden); gtk_menu_shell_append (GTK_MENU_SHELL (_command_menu), menu_item); g_signal_connect (G_OBJECT (menu_item), "toggled", G_CALLBACK (ui_command_menu_hide_toolbar_toggled_cb), 0); gtk_widget_show_all (menu_item); //Help menu_item = gtk_image_menu_item_new_with_label (_("Help ...")); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item), gtk_image_new_from_stock (GTK_STOCK_HELP, GTK_ICON_SIZE_MENU)); gtk_menu_shell_append (GTK_MENU_SHELL (_command_menu), menu_item); g_signal_connect (G_OBJECT (menu_item), "activate", G_CALLBACK (ui_command_menu_help_activate_cb), 0); gtk_widget_show_all (menu_item); g_signal_connect (G_OBJECT (_command_menu), "deactivate", G_CALLBACK (ui_command_menu_deactivate_cb), NULL); menu_item = gtk_separator_menu_item_new (); gtk_menu_shell_append (GTK_MENU_SHELL (_command_menu), menu_item); gtk_widget_show (menu_item); //Clients exit. menu_item = gtk_image_menu_item_new_with_label (_("Exit")); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item), gtk_image_new_from_stock (GTK_STOCK_QUIT, GTK_ICON_SIZE_MENU)); gtk_menu_shell_append (GTK_MENU_SHELL (_command_menu), menu_item); g_signal_connect (G_OBJECT (menu_item), "activate", G_CALLBACK (ui_command_menu_exit_activate_cb), 0); gtk_widget_show_all (menu_item); if (_tray_icon_clicked && _tray_icon) { gtk_menu_popup (GTK_MENU (_command_menu), 0, 0, gtk_status_icon_position_menu, _tray_icon, 2, _tray_icon_clicked_time); } else gtk_menu_popup (GTK_MENU (_command_menu), 0, 0, 0, 0, 2, activate_time); _tray_icon_clicked = false; } ////////////////////////////////////////////////////////////////////// // Start of PanelAgent Functions ////////////////////////////////////////////////////////////////////// static bool initialize_panel_agent (const String &config, const String &display, bool resident) { _panel_agent = new PanelAgent (); if (!_panel_agent->initialize (config, display, resident)) return false; _panel_agent->signal_connect_transaction_start (slot (slot_transaction_start)); _panel_agent->signal_connect_transaction_end (slot (slot_transaction_end)); _panel_agent->signal_connect_reload_config (slot (slot_reload_config)); _panel_agent->signal_connect_turn_on (slot (slot_turn_on)); _panel_agent->signal_connect_turn_off (slot (slot_turn_off)); _panel_agent->signal_connect_update_screen (slot (slot_update_screen)); _panel_agent->signal_connect_update_spot_location (slot (slot_update_spot_location)); _panel_agent->signal_connect_update_factory_info (slot (slot_update_factory_info)); _panel_agent->signal_connect_show_help (slot (slot_show_help)); _panel_agent->signal_connect_show_factory_menu (slot (slot_show_factory_menu)); _panel_agent->signal_connect_show_preedit_string (slot (slot_show_preedit_string)); _panel_agent->signal_connect_show_aux_string (slot (slot_show_aux_string)); _panel_agent->signal_connect_show_lookup_table (slot (slot_show_lookup_table)); _panel_agent->signal_connect_hide_preedit_string (slot (slot_hide_preedit_string)); _panel_agent->signal_connect_hide_aux_string (slot (slot_hide_aux_string)); _panel_agent->signal_connect_hide_lookup_table (slot (slot_hide_lookup_table)); _panel_agent->signal_connect_update_preedit_string (slot (slot_update_preedit_string)); _panel_agent->signal_connect_update_preedit_caret (slot (slot_update_preedit_caret)); _panel_agent->signal_connect_update_aux_string (slot (slot_update_aux_string)); _panel_agent->signal_connect_update_lookup_table (slot (slot_update_lookup_table)); _panel_agent->signal_connect_register_properties (slot (slot_register_properties)); _panel_agent->signal_connect_update_property (slot (slot_update_property)); _panel_agent->signal_connect_register_helper_properties (slot (slot_register_helper_properties)); _panel_agent->signal_connect_update_helper_property (slot (slot_update_helper_property)); _panel_agent->signal_connect_register_helper (slot (slot_register_helper)); _panel_agent->signal_connect_remove_helper (slot (slot_remove_helper)); _panel_agent->signal_connect_lock (slot (slot_lock)); _panel_agent->signal_connect_unlock (slot (slot_unlock)); _panel_agent->get_helper_list (_helper_list); return true; } static bool run_panel_agent (void) { SCIM_DEBUG_MAIN(1) << "run_panel_agent ()\n"; _panel_agent_thread = NULL; if (_panel_agent && _panel_agent->valid ()) _panel_agent_thread = g_thread_create (panel_agent_thread_func, NULL, TRUE, NULL); return (_panel_agent_thread != NULL); } static gpointer panel_agent_thread_func (gpointer data) { SCIM_DEBUG_MAIN(1) << "panel_agent_thread_func ()\n"; if (!_panel_agent->run ()) std::cerr << "Failed to run Panel.\n"; /* G_LOCK (_global_resource_lock); _should_exit = true; G_UNLOCK (_global_resource_lock); */ gdk_threads_enter (); gtk_main_quit (); gdk_threads_leave (); g_thread_exit (NULL); return ((gpointer) NULL); } static void start_auto_start_helpers (void) { SCIM_DEBUG_MAIN(1) << "start_auto_start_helpers ()\n"; // Add Helper object items. for (size_t i = 0; i < _helper_list.size (); ++i) { if ((_helper_list [i].option & SCIM_HELPER_AUTO_START) != 0) { _panel_agent->start_helper (_helper_list [i].uuid); } } } static void slot_transaction_start (void) { gdk_threads_enter (); } static void slot_transaction_end (void) { gdk_threads_leave (); } static void slot_reload_config (void) { if (!_config.null ()) _config->reload (); } static void slot_turn_on (void) { _toolbar_should_hide = false; _toolbar_hidden = false; _panel_is_on = true; gtk_widget_hide (_lookup_table_window); gtk_widget_hide (_input_window); gtk_widget_hide (_preedit_area); gtk_widget_hide (_aux_area); if (_toolbar_always_hidden) return; if (_frontend_properties_area) gtk_widget_hide (_frontend_properties_area); if (_window_stick_button) gtk_widget_show (_window_stick_button); if (_factory_button) gtk_widget_show (_factory_button); if (_client_properties_area) gtk_widget_show (_client_properties_area); if (_menu_button) gtk_widget_show (_menu_button); if (_help_button) gtk_widget_show (_help_button); if (!_toolbar_always_hidden) gtk_widget_show (_toolbar_window); ui_settle_toolbar_window (true); } static void slot_turn_off (void) { if (ui_any_menu_activated ()) return; _panel_is_on = false; gtk_widget_hide (_input_window); gtk_widget_hide (_lookup_table_window); gtk_widget_hide (_preedit_area); gtk_widget_hide (_aux_area); if (_frontend_properties_area) gtk_widget_hide (_frontend_properties_area); if (_toolbar_always_show) { if (!_toolbar_hidden) { if (_window_stick_button) gtk_widget_show (_window_stick_button); if (_factory_button) gtk_widget_show (_factory_button); if (_client_properties_area) gtk_widget_show (_client_properties_area); if (_menu_button) gtk_widget_show (_menu_button); if (_help_button) gtk_widget_show (_help_button); } gtk_widget_show (_toolbar_window); ui_settle_toolbar_window (true); _toolbar_should_hide = true; } else { gtk_widget_hide (_toolbar_window); _toolbar_hidden = true; } } static void slot_update_screen (int num) { #if GTK_CHECK_VERSION(2, 2, 0) if (gdk_display_get_n_screens (gdk_display_get_default ()) > num) { GdkScreen *screen = gdk_display_get_screen (gdk_display_get_default (), num); if (screen) { #ifdef GDK_WINDOWING_X11 GdkWindow *root_window = gdk_get_default_root_window (); if (_current_screen) root_window = gdk_screen_get_root_window (_current_screen); gdk_window_remove_filter (root_window, ui_event_filter, NULL); #endif _current_screen = screen; ui_switch_screen (screen); } } #endif } static void slot_update_factory_info (const PanelFactoryInfo &info) { if (_factory_button) { GtkWidget * newlabel = 0; if (_toolbar_show_factory_icon) { newlabel = ui_create_label (info.name, info.icon, 0, !_toolbar_show_factory_name, false); } else { newlabel = gtk_label_new (info.name.c_str ()); if (_default_font_desc) #if GTK_CHECK_VERSION(3, 0, 0) gtk_widget_override_font (newlabel, _default_font_desc); #else gtk_widget_modify_font (newlabel, _default_font_desc); #endif gtk_widget_show (newlabel); } if (newlabel) { GtkWidget * old = gtk_bin_get_child (GTK_BIN (_factory_button)); if (old) gtk_container_remove (GTK_CONTAINER (_factory_button), old); gtk_container_add (GTK_CONTAINER (_factory_button), newlabel); } #if GTK_CHECK_VERSION(2, 18, 0) if (!gtk_widget_get_visible (_factory_button) && !_toolbar_hidden) #else if (!GTK_WIDGET_VISIBLE (_factory_button) && !_toolbar_hidden) #endif gtk_widget_show (_factory_button); #if GTK_CHECK_VERSION(2, 12, 0) gtk_widget_set_tooltip_text (_factory_button, info.name.c_str ()); #else if (_tooltips) gtk_tooltips_set_tip (_tooltips, _factory_button, info.name.c_str (), NULL); #endif ui_settle_toolbar_window (); } #if ENABLE_TRAY_ICON // if (_tray_icon_factory_button) { // GtkWidget *icon = gtk_bin_get_child (GTK_BIN (_tray_icon_factory_button)); // if (icon) // gtk_container_remove (GTK_CONTAINER (_tray_icon_factory_button), icon); // icon = ui_create_icon (info.icon, NULL, TRAY_ICON_SIZE, TRAY_ICON_SIZE, true); // gtk_container_add (GTK_CONTAINER (_tray_icon_factory_button), icon); // gtk_widget_set_tooltip_text (_tray_icon_factory_button, info.name.c_str ()); // } if (_tray_icon) { gtk_status_icon_set_from_file (_tray_icon, info.icon.c_str()); } #endif if (info.uuid != "") { _recent_factory_uuids.remove(info.uuid); _recent_factory_uuids.push_front(info.uuid); if (_recent_factory_uuids.size () > 5) _recent_factory_uuids.pop_back (); } } static void slot_show_help (const String &help) { ui_show_help (help); } static void slot_show_factory_menu (const std::vector &factories) { if (!_factory_menu_activated && factories.size ()) { size_t i; MapStringVectorSizeT groups; std::map langs, recents; _factory_menu_uuids.clear (); _factory_menu_activated = true; bool use_submenus = false; bool show_recent = (factories.size () > 5 && _recent_factory_uuids.size ()); for (i = 0; i < factories.size (); ++i) { _factory_menu_uuids.push_back (factories [i].uuid); langs [factories [i].lang]++; if (show_recent && std::find (_recent_factory_uuids.begin (), _recent_factory_uuids.end (), factories [i].uuid) != _recent_factory_uuids.end ()) { recents [factories [i].uuid] = i; } else { groups [factories [i].lang].push_back (i); if (groups [factories [i].lang].size () > 1) use_submenus = true; } } use_submenus = (use_submenus && factories.size () > 9); if (_factory_menu) { gtk_widget_destroy (_factory_menu); _factory_menu = 0; } _factory_menu = gtk_menu_new (); #if GTK_CHECK_VERSION(2, 2, 0) if (_current_screen) gtk_menu_set_screen (GTK_MENU (_factory_menu), _current_screen); #endif GtkWidget *submenu; GtkWidget *menu_item; guint id; PanelFactoryInfo info; // recently used factories if (show_recent && recents.size ()) { for (std::list::iterator it = _recent_factory_uuids.begin (); it != _recent_factory_uuids.end (); ++it) { id = recents [*it]; info = factories [id]; ui_create_factory_menu_entry (info, id, GTK_MENU_SHELL (_factory_menu), true, (langs [info.lang] > 1)); if (use_submenus) { MapStringVectorSizeT::iterator g = groups.find (info.lang); if (g != groups.end () && g->second.size () >= 1) { g->second.push_back (id); } } } menu_item = gtk_separator_menu_item_new (); gtk_menu_shell_append (GTK_MENU_SHELL (_factory_menu), menu_item); gtk_widget_show (menu_item); } for (MapStringVectorSizeT::iterator it = groups.begin (); it != groups.end (); ++ it) { if (use_submenus && it->second.size () > 1) { String lang = it->first; menu_item = gtk_menu_item_new_with_label (scim_get_language_name (lang).c_str ()); submenu = gtk_menu_new (); } else { menu_item = 0; submenu = 0; } for (i = 0; i < it->second.size (); ++i) { id = it->second [i]; info = factories [id]; ui_create_factory_menu_entry (info, id, GTK_MENU_SHELL (submenu ? submenu : _factory_menu), !submenu, (langs [info.lang] > 1)); } if (menu_item && submenu) { gtk_menu_shell_append (GTK_MENU_SHELL (_factory_menu), menu_item); gtk_widget_show (menu_item); gtk_menu_item_set_submenu (GTK_MENU_ITEM (menu_item), submenu); gtk_widget_show (submenu); } } //Append an entry for forward mode. info = PanelFactoryInfo (String (""), String (_("English/Keyboard")), String ("C"), String (SCIM_KEYBOARD_ICON_FILE)); ui_create_factory_menu_entry (info, -1, GTK_MENU_SHELL (_factory_menu), false, true); g_signal_connect (G_OBJECT (_factory_menu), "deactivate", G_CALLBACK (ui_factory_menu_deactivate_cb), NULL); if (_tray_icon_clicked && _tray_icon) { while (gtk_main_iteration_do (FALSE)); gtk_menu_popup (GTK_MENU (_factory_menu), 0, 0, gtk_status_icon_position_menu, _tray_icon, 1, _tray_icon_clicked_time); } else { gtk_menu_popup (GTK_MENU (_factory_menu), 0, 0, 0, 0, 1, gtk_get_current_event_time ()); } _tray_icon_clicked = false; } } static void slot_update_spot_location (int x, int y) { if (x > 0 && x < ui_screen_width () && y > 0 && y < ui_screen_height ()) { _spot_location_x = x; _spot_location_y = y; ui_settle_input_window (); ui_settle_lookup_table_window (); } } static void slot_show_preedit_string (void) { gtk_widget_show (_preedit_area); #if GTK_CHECK_VERSION(2, 18, 0) if (_panel_is_on && !gtk_widget_get_visible (_input_window)) #else if (_panel_is_on && !GTK_WIDGET_VISIBLE (_input_window)) #endif gtk_widget_show (_input_window); ui_settle_input_window (true, true); ui_settle_lookup_table_window (); } static void slot_show_aux_string (void) { gtk_widget_show (_aux_area); #if GTK_CHECK_VERSION(2, 18, 0) if (_panel_is_on && !gtk_widget_get_visible (_input_window)) #else if (_panel_is_on && !gtk_widget_get_visible (_input_window)) #endif gtk_widget_show (_input_window); ui_settle_input_window (true, true); ui_settle_lookup_table_window (); } static void slot_show_lookup_table (void) { gtk_widget_show (_lookup_table_window); #if GTK_CHECK_VERSION(2, 18, 0) if (_panel_is_on && _lookup_table_embedded && !gtk_widget_get_visible (_input_window)) { #else if (_panel_is_on && _lookup_table_embedded && !GTK_WIDGET_VISIBLE (_input_window)) { #endif gtk_widget_show (_input_window); ui_settle_input_window (true, true); } ui_settle_lookup_table_window (true); } static void slot_hide_preedit_string (void) { gtk_widget_hide (_preedit_area); scim_string_view_set_text (SCIM_STRING_VIEW (_preedit_area), ""); if (ui_can_hide_input_window ()) gtk_widget_hide (_input_window); ui_settle_lookup_table_window (); } static void slot_hide_aux_string (void) { gtk_widget_hide (_aux_area); scim_string_view_set_text (SCIM_STRING_VIEW (_aux_area), ""); if (ui_can_hide_input_window ()) gtk_widget_hide (_input_window); ui_settle_lookup_table_window (); } static void slot_hide_lookup_table (void) { gtk_widget_hide (_lookup_table_window); if (_lookup_table_embedded && ui_can_hide_input_window ()) gtk_widget_hide (_input_window); } static void slot_update_preedit_string (const String &str, const AttributeList &attrs) { PangoAttrList *attrlist = create_pango_attrlist (str, attrs); scim_string_view_set_attributes (SCIM_STRING_VIEW (_preedit_area), attrlist); scim_string_view_set_text (SCIM_STRING_VIEW (_preedit_area), str.c_str ()); pango_attr_list_unref (attrlist); ui_settle_input_window (true); ui_settle_lookup_table_window (); } static void slot_update_preedit_caret (int caret) { scim_string_view_set_position (SCIM_STRING_VIEW (_preedit_area), caret); } static void slot_update_aux_string (const String &str, const AttributeList &attrs) { PangoAttrList *attrlist = create_pango_attrlist (str, attrs); scim_string_view_set_attributes (SCIM_STRING_VIEW (_aux_area), attrlist); scim_string_view_set_text (SCIM_STRING_VIEW (_aux_area), str.c_str ()); pango_attr_list_unref (attrlist); ui_settle_input_window (true); ui_settle_lookup_table_window (); } static void slot_update_lookup_table (const LookupTable &table) { size_t i; size_t item_num = table.get_current_page_size (); String mbs; WideString wcs; WideString label; GtkRequisition size; AttributeList attrs; PangoAttrList *attrlist; if (_lookup_table_vertical) { for (i = 0; i < SCIM_LOOKUP_TABLE_MAX_PAGESIZE; ++ i) { if (i < item_num) { mbs = String (); wcs = table.get_candidate_in_current_page (i); label = table.get_candidate_label (i); if (label.length ()) { label += utf8_mbstowcs (". "); } else { label = utf8_mbstowcs (" "); } mbs = utf8_wcstombs (label+wcs); scim_string_view_set_text (SCIM_STRING_VIEW (_lookup_table_items [i]), mbs.c_str ()); // Update attributes; attrs = table.get_attributes_in_current_page (i); if (attrs.size ()) { for (AttributeList::iterator ait = attrs.begin (); ait != attrs.end (); ++ait) ait->set_start (ait->get_start () + label.length ()); attrlist = create_pango_attrlist (mbs, attrs); scim_string_view_set_attributes (SCIM_STRING_VIEW (_lookup_table_items [i]), attrlist); pango_attr_list_unref (attrlist); } else { scim_string_view_set_attributes (SCIM_STRING_VIEW (_lookup_table_items [i]), 0); } if (i == table.get_cursor_pos_in_current_page () && table.is_cursor_visible ()) scim_string_view_set_highlight (SCIM_STRING_VIEW (_lookup_table_items [i]), 0, wcs.length () + 3); else scim_string_view_set_highlight (SCIM_STRING_VIEW (_lookup_table_items [i]), -1, -1); gtk_widget_show (_lookup_table_items [i]); } else { gtk_widget_hide (_lookup_table_items [i]); } } } else { _lookup_table_index [0] = 0; for (i=0; i= ui_screen_width () / 3 && !table.is_page_size_fixed ()) { item_num = i+1; } if (item_attrs.size ()) { for (AttributeList::iterator ait = item_attrs.begin (); ait != item_attrs.end (); ++ait) { ait->set_start (ait->get_start () + attr_start); if (ait->get_end () + attr_start > attr_end) ait->set_length (attr_end - ait->get_start ()); } attrs.insert (attrs.end (), item_attrs.begin (), item_attrs.end ()); } } else { _lookup_table_index [i+1] = -1; } } if (attrs.size ()) { attrlist = create_pango_attrlist (mbs, attrs); scim_string_view_set_attributes (SCIM_STRING_VIEW (_lookup_table_items [0]), attrlist); pango_attr_list_unref (attrlist); } else { scim_string_view_set_attributes (SCIM_STRING_VIEW (_lookup_table_items [0]), 0); } if (table.is_cursor_visible ()) { int start = _lookup_table_index [table.get_cursor_pos_in_current_page ()]; int end = _lookup_table_index [table.get_cursor_pos_in_current_page ()+1] - 1; scim_string_view_set_highlight (SCIM_STRING_VIEW (_lookup_table_items [0]), start, end); } else { scim_string_view_set_highlight (SCIM_STRING_VIEW (_lookup_table_items [0]), -1, -1); } } if (table.get_current_page_start ()) gtk_widget_set_sensitive (_lookup_table_up_button, TRUE); else gtk_widget_set_sensitive (_lookup_table_up_button, FALSE); if (table.get_current_page_start () + item_num < table.number_of_candidates ()) gtk_widget_set_sensitive (_lookup_table_down_button, TRUE); else gtk_widget_set_sensitive (_lookup_table_down_button, FALSE); if (item_num < table.get_current_page_size ()) _panel_agent->update_lookup_table_page_size (item_num); if (_lookup_table_embedded) ui_settle_input_window (true); else ui_settle_lookup_table_window (); } static void slot_register_properties (const PropertyList &props) { register_frontend_properties (props); } static void slot_update_property (const Property &prop) { update_frontend_property (prop); } static void slot_register_helper_properties (int id, const PropertyList &props) { register_helper_properties (id, props); } static void slot_update_helper_property (int id, const Property &prop) { update_helper_property (id, prop); } static void slot_register_helper (int id, const HelperInfo &helper) { } static void slot_remove_helper (int id) { HelperPropertyRepository::iterator it = _helper_property_repository.find (id); if (it != _helper_property_repository.end () && it->second.holder) gtk_widget_destroy (it->second.holder); _helper_property_repository.erase (id); } static void slot_lock (void) { G_LOCK (_panel_agent_lock); } static void slot_unlock (void) { G_UNLOCK (_panel_agent_lock); } ////////////////////////////////////////////////////////////////////// // End of PanelAgent-Functions ////////////////////////////////////////////////////////////////////// static GtkWidget * create_properties_node (PropertyRepository &repository, PropertyList::const_iterator begin, PropertyList::const_iterator end, int client, int level) { PropertyList::const_iterator it; PropertyList::const_iterator next; GtkWidget * node; PropertyInfo info; bool leaf = true; if (begin >= end) return 0; // If the level is zero, then create the this node as button, otherwise create as a menu item. if (!level) { GtkWidget * label = ui_create_label (begin->get_label (), begin->get_icon (), 0, !_toolbar_show_property_label, false); node = gtk_button_new (); gtk_container_add (GTK_CONTAINER (node), label); gtk_button_set_relief (GTK_BUTTON (node), GTK_RELIEF_NONE); } else { gint width, height; gtk_icon_size_lookup (GTK_ICON_SIZE_MENU, &width, &height); GtkWidget * icon = ui_create_icon (begin->get_icon (), NULL, width, height, false); node = gtk_image_menu_item_new_with_label (begin->get_label ().c_str ()); if (icon) gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (node), icon); } if (begin->visible ()) gtk_widget_show (node); else gtk_widget_hide (node); gtk_widget_set_sensitive (node, begin->active ()); #if GTK_CHECK_VERSION(2, 12, 0) if (begin->get_tip ().length ()) gtk_widget_set_tooltip_text (node, begin->get_tip ().c_str ()); #else if (_tooltips && begin->get_tip ().length ()) gtk_tooltips_set_tip (_tooltips, node, begin->get_tip ().c_str (), NULL); #endif g_object_set_data_full (G_OBJECT (node), "property_key", g_strdup (begin->get_key ().c_str ()), g_free); info.property = *begin; info.widget = node; repository.push_back (info); it = begin + 1; if (it != end) { GtkWidget * submenu = gtk_menu_new (); GtkWidget * child; int menu_item_idx = 0; // Create all leafs of the first child. while (it != end) { // Find all leafs of the first child. for (next = it + 1; next != end; ++ next) if (!next->is_a_leaf_of (*it)) break; child = create_properties_node (repository, it, next, client, level + 1); if (child) { gtk_menu_shell_append (GTK_MENU_SHELL (submenu), child); g_object_set_data (G_OBJECT (child), "menu_item_idx", GINT_TO_POINTER (menu_item_idx)); ++ menu_item_idx; } it = next; } // The node is a button, so attach the submenu as its data. if (!level) { g_object_set_data_full (G_OBJECT (node), "property_submenu", submenu, (void (*)(void*)) gtk_widget_destroy); g_signal_connect (G_OBJECT (submenu), "deactivate", G_CALLBACK (ui_property_menu_deactivate_cb), NULL); } else // The node is a menu item, so attach the submenu directly. gtk_menu_item_set_submenu (GTK_MENU_ITEM (node), submenu); leaf = false; } if (leaf || level == 0) { g_signal_connect (G_OBJECT (node), ((level > 0) ? "activate" : "clicked"), G_CALLBACK (ui_property_activate_cb), GINT_TO_POINTER (client)); } return node; } static void create_properties (GtkWidget *container, PropertyRepository &repository, const PropertyList &properties, int client, int level) { PropertyList::const_iterator it; PropertyList::const_iterator next; PropertyList::const_iterator begin = properties.begin (); PropertyList::const_iterator end = properties.end (); GtkWidget *root; int menu_item_idx = 0; if (begin == end) return; #if GTK_CHECK_VERSION(3, 2, 0) root = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); #else root = gtk_hbox_new (FALSE, 0); #endif it = begin; next = begin + 1; while (it != end) { if (next == end || !next->is_a_leaf_of (*it)) { GtkWidget * node = create_properties_node (repository, it, next, client, level); if (node) { // The container is a hbox. if (!level) gtk_box_pack_start (GTK_BOX (container), node, TRUE, TRUE, 0); // The container is a menu. else { gtk_menu_shell_append (GTK_MENU_SHELL (container), node); g_object_set_data (G_OBJECT (node), "menu_item_idx", GINT_TO_POINTER (menu_item_idx)); ++ menu_item_idx; } } it = next; } ++ next; } } static void register_frontend_properties (const PropertyList &properties) { bool same = true; PropertyList::const_iterator pit = properties.begin (); if (properties.size () == 0) { same = false; } else if (properties.size () == _frontend_property_repository.size ()) { // Check if the properties are same as old ones. PropertyRepository::iterator it = _frontend_property_repository.begin (); for (; it != _frontend_property_repository.end (); ++it, ++pit) { if (it->property != *pit) { same = false; break; } } } else { same = false; } // Only update the properties. if (same) { for (pit = properties.begin (); pit != properties.end (); ++pit) update_frontend_property (*pit); gtk_widget_show (_frontend_properties_area); } else { // Construct all properties. if (_frontend_properties_area) gtk_widget_destroy (_frontend_properties_area); _frontend_properties_area = 0; _frontend_property_repository.clear (); if (properties.size ()) { #if GTK_CHECK_VERSION(3, 2, 0) _frontend_properties_area = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); #else _frontend_properties_area = gtk_hbox_new (FALSE, 0); #endif create_properties (_frontend_properties_area, _frontend_property_repository, properties, -1, 0); gtk_widget_show (_frontend_properties_area); gtk_box_pack_start (GTK_BOX (_client_properties_area), _frontend_properties_area, TRUE,TRUE, 0); } } ui_settle_toolbar_window (); } static void update_frontend_property (const Property &property) { update_property (_frontend_property_repository, property); } static void register_helper_properties (int client, const PropertyList &properties) { HelperPropertyRepository::iterator it = _helper_property_repository.find (client); if (it == _helper_property_repository.end ()) { _helper_property_repository [client] = HelperPropertyInfo (); it = _helper_property_repository.find (client); } if (it->second.holder) gtk_widget_destroy (it->second.holder); it->second.holder = 0; if (properties.size ()) { #if GTK_CHECK_VERSION(3, 2, 0) it->second.holder = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); #else it->second.holder = gtk_hbox_new (FALSE, 0); #endif create_properties (it->second.holder, it->second.repository, properties, client, 0); gtk_widget_show (it->second.holder); gtk_box_pack_end (GTK_BOX (_client_properties_area), it->second.holder, TRUE,TRUE, 0); } ui_settle_toolbar_window (); } static void update_helper_property (int client, const Property &property) { update_property (_helper_property_repository [client].repository, property); } static void update_property (PropertyRepository &repository, const Property &property) { PropertyRepository::iterator it = repository.begin (); for (; it != repository.end (); ++ it) { if (it->property == property) { if (!it->widget) break; if (it->property.get_label () != property.get_label () || it->property.get_icon () != property.get_icon ()) { if (GTK_IS_BUTTON (it->widget)) { GtkWidget *label = ui_create_label (property.get_label (), property.get_icon (), 0, !_toolbar_show_property_label, false); GtkWidget *old = gtk_bin_get_child (GTK_BIN (it->widget)); gtk_container_remove (GTK_CONTAINER (it->widget), old); gtk_container_add (GTK_CONTAINER (it->widget), label); } else if (GTK_IS_MENU_ITEM (it->widget)) { gint width, height; gtk_icon_size_lookup (GTK_ICON_SIZE_MENU, &width, &height); GtkWidget * menu = gtk_widget_get_parent (it->widget); int menu_item_idx = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (it->widget), "menu_item_idx")); GtkWidget * icon = ui_create_icon (property.get_icon (), NULL, width, height, false); GtkWidget * new_item = gtk_image_menu_item_new_with_label (property.get_label ().c_str ()); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (new_item), icon); GtkWidget * submenu = gtk_menu_item_get_submenu (GTK_MENU_ITEM (it->widget)); gtk_menu_item_set_submenu (GTK_MENU_ITEM (new_item), submenu); g_object_set_data_full (G_OBJECT (new_item), "property_key", g_strdup (property.get_key ().c_str ()), g_free); g_object_set_data (G_OBJECT (new_item), "menu_item_idx", GINT_TO_POINTER (menu_item_idx)); gtk_widget_destroy (it->widget); it->widget = new_item; gtk_menu_shell_insert (GTK_MENU_SHELL (menu), new_item, menu_item_idx); } } if (property.visible ()) gtk_widget_show (it->widget); else gtk_widget_hide (it->widget); gtk_widget_set_sensitive (it->widget, property.active ()); #if GTK_CHECK_VERSION(2, 12, 0) if (property.get_tip ().length ()) gtk_widget_set_tooltip_text (it->widget, property.get_tip ().c_str ()); #else if (_tooltips && property.get_tip ().length ()) gtk_tooltips_set_tip (_tooltips, it->widget, property.get_tip ().c_str (), NULL); #endif it->property = property; break; } } ui_settle_toolbar_window (); } static void restore_properties (void) { PropertyList properties; _frontend_properties_area = 0; PropertyRepository::iterator it = _frontend_property_repository.begin (); HelperPropertyRepository::iterator helper_it = _helper_property_repository.begin (); for (; it != _frontend_property_repository.end (); ++it) properties.push_back (it->property); if (properties.size ()) { _frontend_property_repository.clear (); register_frontend_properties (properties); } for (; helper_it != _helper_property_repository.end (); ++ helper_it) { helper_it->second.holder = 0; properties.clear (); for (it = helper_it->second.repository.begin (); it != helper_it->second.repository.end (); ++it) properties.push_back (it->property); if (properties.size ()) { helper_it->second.repository.clear (); register_helper_properties (helper_it->first, properties); } } } static gboolean check_exit_timeout_cb (gpointer data) { G_LOCK (_global_resource_lock); if (_should_exit) { gdk_threads_enter (); gtk_main_quit (); gdk_threads_leave (); } G_UNLOCK (_global_resource_lock); return TRUE; } static void signalhandler(int sig) { SCIM_DEBUG_MAIN (1) << "In signal handler...\n"; if (_panel_agent != NULL) { _panel_agent->stop (); } } int main (int argc, char *argv []) { std::vector config_list; int i; bool daemon = false; int new_argc = 0; char **new_argv = new char * [40]; String config_name ("simple"); String display_name; bool should_resident = true; //Display version info std::cerr << "GTK Panel of SCIM " << SCIM_VERSION << "\n\n"; //get modules list scim_get_config_module_list (config_list); //Add a dummy config module, it's not really a module! config_list.push_back ("dummy"); //Use socket Config module as default if available. if (config_list.size ()) { if (std::find (config_list.begin (), config_list.end (), config_name) == config_list.end ()) config_name = config_list [0]; } DebugOutput::disable_debug (SCIM_DEBUG_AllMask); DebugOutput::enable_debug (SCIM_DEBUG_MainMask); //parse command options i = 0; while (i= argc) break; if (String ("-l") == argv [i] || String ("--list") == argv [i]) { std::vector::iterator it; std::cout << "\n"; std::cout << "Available Config module:\n"; for (it = config_list.begin (); it != config_list.end (); it++) std::cout << " " << *it << "\n"; return 0; } if (String ("-c") == argv [i] || String ("--config") == argv [i]) { if (++i >= argc) { std::cerr << "no argument for option " << argv [i-1] << "\n"; return -1; } config_name = argv [i]; continue; } if (String ("-h") == argv [i] || String ("--help") == argv [i]) { std::cout << "Usage: " << argv [0] << " [option]...\n\n" << "The options are: \n" << " --display DISPLAY Run on display DISPLAY.\n" << " -l, --list List all of available config modules.\n" << " -c, --config NAME Uses specified Config module.\n" << " -d, --daemon Run " << argv [0] << " as a daemon.\n" << " -ns, --no-stay Quit if no connected client.\n" #if ENABLE_DEBUG << " -v, --verbose LEVEL Enable debug info, to specific LEVEL.\n" << " -o, --output FILE Output debug information into FILE.\n" #endif << " -h, --help Show this help message.\n"; return 0; } if (String ("-d") == argv [i] || String ("--daemon") == argv [i]) { daemon = true; continue; } if (String ("-ns") == argv [i] || String ("--no-stay") == argv [i]) { should_resident = false; continue; } if (String ("-v") == argv [i] || String ("--verbose") == argv [i]) { if (++i >= argc) { std::cerr << "no argument for option " << argv [i-1] << "\n"; return -1; } DebugOutput::set_verbose_level (atoi (argv [i])); continue; } if (String ("-o") == argv [i] || String ("--output") == argv [i]) { if (++i >= argc) { std::cerr << "No argument for option " << argv [i-1] << "\n"; return -1; } DebugOutput::set_output (argv [i]); continue; } if (String ("--display") == argv [i]) { if (++i >= argc) { std::cerr << "No argument for option " << argv [i-1] << "\n"; return -1; } display_name = argv [i]; continue; } if (String ("--") == argv [i]) break; std::cerr << "Invalid command line option: " << argv [i] << "\n"; return -1; } //End of command line parsing. new_argv [new_argc ++] = argv [0]; // Store the rest argvs into new_argv. for (++i; i < argc && new_argc < 40; ++i) { new_argv [new_argc ++] = argv [i]; } // Make up DISPLAY env. if (display_name.length ()) { new_argv [new_argc ++] = const_cast ("--display"); new_argv [new_argc ++] = const_cast (display_name.c_str ()); setenv ("DISPLAY", display_name.c_str (), 1); } new_argv [new_argc] = 0; if (!config_name.length ()) { std::cerr << "No Config module is available!\n"; return -1; } if (config_name != "dummy") { //load config module _config_module = new ConfigModule (config_name); if (!_config_module || !_config_module->valid ()) { std::cerr << "Can not load " << config_name << " Config module.\n"; return -1; } //create config instance _config = _config_module->create_config (); } else { _config = new DummyConfig (); } if (_config.null ()) { std::cerr << "Failed to create Config instance from " << config_name << " Config module.\n"; return -1; } /* init threads */ g_thread_init (NULL); gdk_threads_init (); signal(SIGQUIT, signalhandler); signal(SIGTERM, signalhandler); signal(SIGINT, signalhandler); signal(SIGHUP, signalhandler); gtk_init (&new_argc, &new_argv); ui_initialize (); // get current display. { #if GTK_CHECK_VERSION(2, 2, 0) const char *p = gdk_display_get_name (gdk_display_get_default ()); #else const char *p = getenv ("DISPLAY"); #endif if (p) display_name = String (p); } if (!initialize_panel_agent (config_name, display_name, should_resident)) { std::cerr << "Failed to initialize Panel Agent!\n"; return -1; } if (daemon) scim_daemon (); // connect the configuration reload signal. _config->signal_connect_reload (slot (ui_config_reload_callback)); if (!run_panel_agent()) { std::cerr << "Failed to run Socket Server!\n"; return -1; } start_auto_start_helpers (); // _check_exit_timeout = g_timeout_add (500, check_exit_timeout_cb, NULL); gdk_threads_enter (); gtk_main (); gdk_threads_leave (); // Exiting... g_thread_join (_panel_agent_thread); _config.reset (); std::cerr << "Successfully exited.\n"; return 0; } /* vi:ts=4:nowrap:expandtab */ scim-1.4.14/extras/setup/000077500000000000000000000000001177210725600152125ustar00rootroot00000000000000scim-1.4.14/extras/setup/Makefile.am000066400000000000000000000044711177210725600172540ustar00rootroot00000000000000## Makefile.am -- Process this file with automake to produce Makefile.in ## Copyright (C) 2002 James Su ## ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2, or (at your option) ## any later version. ## ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. MAINTAINERCLEANFILES = Makefile.in CLEANFILES = *.bak scim-setup.desktop scim-setup INCLUDES = -I$(top_builddir) \ -I$(top_builddir)/src \ -I$(top_srcdir) \ -I$(top_srcdir)/src \ -I$(top_srcdir)/intl \ -DSCIM_DATADIR=\"@SCIM_DATADIR@\" \ -DSCIM_LOCALEDIR=\"@SCIM_LOCALEDIR@\" \ -DSCIM_SYSCONFDIR=\"@SCIM_SYSCONFDIR@\" \ -DSCIM_LIBEXECDIR=\"@SCIM_LIBEXECDIR@\" \ -DSCIM_ICONDIR=\"@SCIM_ICONDIR@\" \ -DSCIM_MODULE_PATH=\"@SCIM_MODULE_PATH@\" \ -DSCIM_TEMPDIR=\"@SCIM_TEMPDIR@\" noinst_HEADERS = scim_setup_module.h \ scim_setup_ui.h if SCIM_BUILD_SCIM_SETUP CONFIG_SCIM_SETUP = scim-setup CONFIG_SCIM_SETUP_HELPER = setup.la endif bin_SCRIPTS = $(CONFIG_SCIM_SETUP) moduledir = $(libdir)/scim@SCIM_EPOCH@/$(SCIM_BINARY_VERSION)/Helper module_LTLIBRARIES = $(CONFIG_SCIM_SETUP_HELPER) setup_la_SOURCES = scim_setup_ui.cpp \ scim_setup_module.cpp \ scim_setup_helper.cpp setup_la_CXXFLAGS = @GTK_CFLAGS@ setup_la_LDFLAGS = -avoid-version \ -rpath $(moduledir) \ -module \ @LIBTOOL_EXPORT_OPTIONS@ \ @GTK_LIBS@ \ @LTLIBINTL@ setup_la_LIBADD = $(top_builddir)/src/libscim@SCIM_EPOCH@.la if SCIM_BUILD_SCIM_SETUP @INTLTOOL_DESKTOP_RULE@ desktopdir = $(datadir)/applications desktop_in_files = scim-setup.desktop.in desktop_DATA = $(desktop_in_files:.desktop.in=.desktop) gnomeccdir = $(datadir)/control-center-2.0/capplets gnomecc_DATA = $(desktop_in_files:.desktop.in=.desktop) endif EXTRA_DIST = $(desktop_in_files) scim-setup.in scim-1.4.14/extras/setup/Makefile.in000066400000000000000000000736311177210725600172710ustar00rootroot00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = extras/setup DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/scim-setup.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = scim-setup CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(moduledir)" "$(DESTDIR)$(bindir)" \ "$(DESTDIR)$(desktopdir)" "$(DESTDIR)$(gnomeccdir)" LTLIBRARIES = $(module_LTLIBRARIES) setup_la_DEPENDENCIES = $(top_builddir)/src/libscim@SCIM_EPOCH@.la am_setup_la_OBJECTS = setup_la-scim_setup_ui.lo \ setup_la-scim_setup_module.lo setup_la-scim_setup_helper.lo setup_la_OBJECTS = $(am_setup_la_OBJECTS) setup_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(setup_la_CXXFLAGS) \ $(CXXFLAGS) $(setup_la_LDFLAGS) $(LDFLAGS) -o $@ @SCIM_BUILD_SCIM_SETUP_TRUE@am_setup_la_rpath = -rpath $(moduledir) SCRIPTS = $(bin_SCRIPTS) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(setup_la_SOURCES) DIST_SOURCES = $(setup_la_SOURCES) DATA = $(desktop_DATA) $(gnomecc_DATA) HEADERS = $(noinst_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ ARGZ_H = @ARGZ_H@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CLUTTER_BINARY_VERSION = @CLUTTER_BINARY_VERSION@ CLUTTER_CFLAGS = @CLUTTER_CFLAGS@ CLUTTER_IMCONTEXT_LIBDIR = @CLUTTER_IMCONTEXT_LIBDIR@ CLUTTER_IM_MODULEDIR = @CLUTTER_IM_MODULEDIR@ CLUTTER_LIBDIR = @CLUTTER_LIBDIR@ CLUTTER_LIBS = @CLUTTER_LIBS@ CLUTTER_VERSION = @CLUTTER_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOCBOOK_XSL = @DOCBOOK_XSL@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@ GTHREAD2_LIBS = @GTHREAD2_LIBS@ GTK2_CFLAGS = @GTK2_CFLAGS@ GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@ GTK2_LIBS = @GTK2_LIBS@ GTK3_CFLAGS = @GTK3_CFLAGS@ GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@ GTK3_LIBS = @GTK3_LIBS@ GTK_BINARY_VERSION = @GTK_BINARY_VERSION@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBDIR = @GTK_LIBDIR@ GTK_LIBS = @GTK_LIBS@ GTK_MAJOR_VERSION = @GTK_MAJOR_VERSION@ GTK_VERSION = @GTK_VERSION@ HAVE_GRAPHVIZ = @HAVE_GRAPHVIZ@ INCLTDL = @INCLTDL@ INCLUDE_STDINT = @INCLUDE_STDINT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBLTDL = @LIBLTDL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_DEPS = @LIBTOOL_DEPS@ LIBTOOL_EXPORT_OPTIONS = @LIBTOOL_EXPORT_OPTIONS@ LIPO = @LIPO@ LN_S = @LN_S@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ QT3_CFLAGS = @QT3_CFLAGS@ QT3_IM_MODULEDIR = @QT3_IM_MODULEDIR@ QT3_LIBDIR = @QT3_LIBDIR@ QT3_LIBS = @QT3_LIBS@ QT3_MOC = @QT3_MOC@ QT3_PREFIX = @QT3_PREFIX@ QT4_CFLAGS = @QT4_CFLAGS@ QT4_IM_MODULEDIR = @QT4_IM_MODULEDIR@ QT4_LIBDIR = @QT4_LIBDIR@ QT4_LIBS = @QT4_LIBS@ QT4_MOC = @QT4_MOC@ QT4_PREFIX = @QT4_PREFIX@ RANLIB = @RANLIB@ SCIM_AGE = @SCIM_AGE@ SCIM_BINARY_VERSION = @SCIM_BINARY_VERSION@ SCIM_BRIDGE_MAJOR_VERSION = @SCIM_BRIDGE_MAJOR_VERSION@ SCIM_BRIDGE_MICRO_VERSION = @SCIM_BRIDGE_MICRO_VERSION@ SCIM_BRIDGE_MINOR_VERSION = @SCIM_BRIDGE_MINOR_VERSION@ SCIM_BRIDGE_VERSION = @SCIM_BRIDGE_VERSION@ SCIM_BUILD_CLUTTER_IMMODULE = @SCIM_BUILD_CLUTTER_IMMODULE@ SCIM_BUILD_CONFIG_SIMPLE = @SCIM_BUILD_CONFIG_SIMPLE@ SCIM_BUILD_CONFIG_SOCKET = @SCIM_BUILD_CONFIG_SOCKET@ SCIM_BUILD_DOCUMENTS = @SCIM_BUILD_DOCUMENTS@ SCIM_BUILD_FILTER_SCTC = @SCIM_BUILD_FILTER_SCTC@ SCIM_BUILD_FRONTEND_SOCKET = @SCIM_BUILD_FRONTEND_SOCKET@ SCIM_BUILD_FRONTEND_X11 = @SCIM_BUILD_FRONTEND_X11@ SCIM_BUILD_GTK2_IMMODULE = @SCIM_BUILD_GTK2_IMMODULE@ SCIM_BUILD_GTK3_IMMODULE = @SCIM_BUILD_GTK3_IMMODULE@ SCIM_BUILD_GTK_UTILS = @SCIM_BUILD_GTK_UTILS@ SCIM_BUILD_IMENGINE_RAWCODE = @SCIM_BUILD_IMENGINE_RAWCODE@ SCIM_BUILD_IMENGINE_SOCKET = @SCIM_BUILD_IMENGINE_SOCKET@ SCIM_BUILD_IMENGINE_TABLE = @SCIM_BUILD_IMENGINE_TABLE@ SCIM_BUILD_IMMODULE = @SCIM_BUILD_IMMODULE@ SCIM_BUILD_IM_AGENT = @SCIM_BUILD_IM_AGENT@ SCIM_BUILD_ORIG_GTK2_IMMODULE = @SCIM_BUILD_ORIG_GTK2_IMMODULE@ SCIM_BUILD_ORIG_GTK3_IMMODULE = @SCIM_BUILD_ORIG_GTK3_IMMODULE@ SCIM_BUILD_PANEL_GTK = @SCIM_BUILD_PANEL_GTK@ SCIM_BUILD_QT3_IMMODULE = @SCIM_BUILD_QT3_IMMODULE@ SCIM_BUILD_QT4_IMMODULE = @SCIM_BUILD_QT4_IMMODULE@ SCIM_BUILD_SCIM_SETUP = @SCIM_BUILD_SCIM_SETUP@ SCIM_BUILD_TESTS = @SCIM_BUILD_TESTS@ SCIM_BUILD_X11_UTILS = @SCIM_BUILD_X11_UTILS@ SCIM_CURRENT = @SCIM_CURRENT@ SCIM_DATADIR = @SCIM_DATADIR@ SCIM_EPOCH = @SCIM_EPOCH@ SCIM_ICONDIR = @SCIM_ICONDIR@ SCIM_LIBDIR = @SCIM_LIBDIR@ SCIM_LIBEXECDIR = @SCIM_LIBEXECDIR@ SCIM_LOCALEDIR = @SCIM_LOCALEDIR@ SCIM_LTDLADVISE = @SCIM_LTDLADVISE@ SCIM_MAJOR_VERSION = @SCIM_MAJOR_VERSION@ SCIM_MICRO_VERSION = @SCIM_MICRO_VERSION@ SCIM_MINOR_VERSION = @SCIM_MINOR_VERSION@ SCIM_MODULE_PATH = @SCIM_MODULE_PATH@ SCIM_PREFIX = @SCIM_PREFIX@ SCIM_REVISION = @SCIM_REVISION@ SCIM_SYSCONFDIR = @SCIM_SYSCONFDIR@ SCIM_TEMPDIR = @SCIM_TEMPDIR@ SCIM_VERSION = @SCIM_VERSION@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UINT16 = @UINT16@ UINT32 = @UINT32@ UINT64 = @UINT64@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XMKMF = @XMKMF@ XSLTPROC = @XSLTPROC@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_aux_dir = @ac_aux_dir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ MAINTAINERCLEANFILES = Makefile.in CLEANFILES = *.bak scim-setup.desktop scim-setup INCLUDES = -I$(top_builddir) \ -I$(top_builddir)/src \ -I$(top_srcdir) \ -I$(top_srcdir)/src \ -I$(top_srcdir)/intl \ -DSCIM_DATADIR=\"@SCIM_DATADIR@\" \ -DSCIM_LOCALEDIR=\"@SCIM_LOCALEDIR@\" \ -DSCIM_SYSCONFDIR=\"@SCIM_SYSCONFDIR@\" \ -DSCIM_LIBEXECDIR=\"@SCIM_LIBEXECDIR@\" \ -DSCIM_ICONDIR=\"@SCIM_ICONDIR@\" \ -DSCIM_MODULE_PATH=\"@SCIM_MODULE_PATH@\" \ -DSCIM_TEMPDIR=\"@SCIM_TEMPDIR@\" noinst_HEADERS = scim_setup_module.h \ scim_setup_ui.h @SCIM_BUILD_SCIM_SETUP_TRUE@CONFIG_SCIM_SETUP = scim-setup @SCIM_BUILD_SCIM_SETUP_TRUE@CONFIG_SCIM_SETUP_HELPER = setup.la bin_SCRIPTS = $(CONFIG_SCIM_SETUP) moduledir = $(libdir)/scim@SCIM_EPOCH@/$(SCIM_BINARY_VERSION)/Helper module_LTLIBRARIES = $(CONFIG_SCIM_SETUP_HELPER) setup_la_SOURCES = scim_setup_ui.cpp \ scim_setup_module.cpp \ scim_setup_helper.cpp setup_la_CXXFLAGS = @GTK_CFLAGS@ setup_la_LDFLAGS = -avoid-version \ -rpath $(moduledir) \ -module \ @LIBTOOL_EXPORT_OPTIONS@ \ @GTK_LIBS@ \ @LTLIBINTL@ setup_la_LIBADD = $(top_builddir)/src/libscim@SCIM_EPOCH@.la @SCIM_BUILD_SCIM_SETUP_TRUE@desktopdir = $(datadir)/applications @SCIM_BUILD_SCIM_SETUP_TRUE@desktop_in_files = scim-setup.desktop.in @SCIM_BUILD_SCIM_SETUP_TRUE@desktop_DATA = $(desktop_in_files:.desktop.in=.desktop) @SCIM_BUILD_SCIM_SETUP_TRUE@gnomeccdir = $(datadir)/control-center-2.0/capplets @SCIM_BUILD_SCIM_SETUP_TRUE@gnomecc_DATA = $(desktop_in_files:.desktop.in=.desktop) EXTRA_DIST = $(desktop_in_files) scim-setup.in all: all-am .SUFFIXES: .SUFFIXES: .cpp .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu extras/setup/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu extras/setup/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): scim-setup: $(top_builddir)/config.status $(srcdir)/scim-setup.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ install-moduleLTLIBRARIES: $(module_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(moduledir)" || $(MKDIR_P) "$(DESTDIR)$(moduledir)" @list='$(module_LTLIBRARIES)'; test -n "$(moduledir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(moduledir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(moduledir)"; \ } uninstall-moduleLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(module_LTLIBRARIES)'; test -n "$(moduledir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(moduledir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(moduledir)/$$f"; \ done clean-moduleLTLIBRARIES: -test -z "$(module_LTLIBRARIES)" || rm -f $(module_LTLIBRARIES) @list='$(module_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done setup.la: $(setup_la_OBJECTS) $(setup_la_DEPENDENCIES) $(setup_la_LINK) $(am_setup_la_rpath) $(setup_la_OBJECTS) $(setup_la_LIBADD) $(LIBS) install-binSCRIPTS: $(bin_SCRIPTS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n' \ -e 'h;s|.*|.|' \ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) { files[d] = files[d] " " $$1; \ if (++n[d] == $(am__install_max)) { \ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ else { print "f", d "/" $$4, $$1 } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binSCRIPTS: @$(NORMAL_UNINSTALL) @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 's,.*/,,;$(transform)'`; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/setup_la-scim_setup_helper.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/setup_la-scim_setup_module.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/setup_la-scim_setup_ui.Plo@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cpp.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cpp.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< setup_la-scim_setup_ui.lo: scim_setup_ui.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(setup_la_CXXFLAGS) $(CXXFLAGS) -MT setup_la-scim_setup_ui.lo -MD -MP -MF $(DEPDIR)/setup_la-scim_setup_ui.Tpo -c -o setup_la-scim_setup_ui.lo `test -f 'scim_setup_ui.cpp' || echo '$(srcdir)/'`scim_setup_ui.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/setup_la-scim_setup_ui.Tpo $(DEPDIR)/setup_la-scim_setup_ui.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='scim_setup_ui.cpp' object='setup_la-scim_setup_ui.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(setup_la_CXXFLAGS) $(CXXFLAGS) -c -o setup_la-scim_setup_ui.lo `test -f 'scim_setup_ui.cpp' || echo '$(srcdir)/'`scim_setup_ui.cpp setup_la-scim_setup_module.lo: scim_setup_module.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(setup_la_CXXFLAGS) $(CXXFLAGS) -MT setup_la-scim_setup_module.lo -MD -MP -MF $(DEPDIR)/setup_la-scim_setup_module.Tpo -c -o setup_la-scim_setup_module.lo `test -f 'scim_setup_module.cpp' || echo '$(srcdir)/'`scim_setup_module.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/setup_la-scim_setup_module.Tpo $(DEPDIR)/setup_la-scim_setup_module.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='scim_setup_module.cpp' object='setup_la-scim_setup_module.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(setup_la_CXXFLAGS) $(CXXFLAGS) -c -o setup_la-scim_setup_module.lo `test -f 'scim_setup_module.cpp' || echo '$(srcdir)/'`scim_setup_module.cpp setup_la-scim_setup_helper.lo: scim_setup_helper.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(setup_la_CXXFLAGS) $(CXXFLAGS) -MT setup_la-scim_setup_helper.lo -MD -MP -MF $(DEPDIR)/setup_la-scim_setup_helper.Tpo -c -o setup_la-scim_setup_helper.lo `test -f 'scim_setup_helper.cpp' || echo '$(srcdir)/'`scim_setup_helper.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/setup_la-scim_setup_helper.Tpo $(DEPDIR)/setup_la-scim_setup_helper.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='scim_setup_helper.cpp' object='setup_la-scim_setup_helper.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(setup_la_CXXFLAGS) $(CXXFLAGS) -c -o setup_la-scim_setup_helper.lo `test -f 'scim_setup_helper.cpp' || echo '$(srcdir)/'`scim_setup_helper.cpp mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-desktopDATA: $(desktop_DATA) @$(NORMAL_INSTALL) test -z "$(desktopdir)" || $(MKDIR_P) "$(DESTDIR)$(desktopdir)" @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(desktopdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(desktopdir)" || exit $$?; \ done uninstall-desktopDATA: @$(NORMAL_UNINSTALL) @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(desktopdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(desktopdir)" && rm -f $$files install-gnomeccDATA: $(gnomecc_DATA) @$(NORMAL_INSTALL) test -z "$(gnomeccdir)" || $(MKDIR_P) "$(DESTDIR)$(gnomeccdir)" @list='$(gnomecc_DATA)'; test -n "$(gnomeccdir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(gnomeccdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(gnomeccdir)" || exit $$?; \ done uninstall-gnomeccDATA: @$(NORMAL_UNINSTALL) @list='$(gnomecc_DATA)'; test -n "$(gnomeccdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(gnomeccdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(gnomeccdir)" && rm -f $$files ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(SCRIPTS) $(DATA) $(HEADERS) installdirs: for dir in "$(DESTDIR)$(moduledir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(desktopdir)" "$(DESTDIR)$(gnomeccdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic clean-libtool clean-moduleLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-desktopDATA install-gnomeccDATA \ install-moduleLTLIBRARIES install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binSCRIPTS install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binSCRIPTS uninstall-desktopDATA \ uninstall-gnomeccDATA uninstall-moduleLTLIBRARIES .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-moduleLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-binSCRIPTS install-data \ install-data-am install-desktopDATA install-dvi install-dvi-am \ install-exec install-exec-am install-gnomeccDATA install-html \ install-html-am install-info install-info-am install-man \ install-moduleLTLIBRARIES install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-binSCRIPTS \ uninstall-desktopDATA uninstall-gnomeccDATA \ uninstall-moduleLTLIBRARIES @SCIM_BUILD_SCIM_SETUP_TRUE@@INTLTOOL_DESKTOP_RULE@ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: scim-1.4.14/extras/setup/scim-setup.desktop.in000066400000000000000000000003671177210725600213110ustar00rootroot00000000000000[Desktop Entry] _Name=SCIM Input Method _Comment=Configure the Smart Common Input Method platform Exec=scim-setup Icon=scim-setup Terminal=false Type=Application StartupNotify=true Categories=Settings; NotShowIn=KDE; X-Ubuntu-Gettext-Domain=scim scim-1.4.14/extras/setup/scim-setup.in000066400000000000000000000021451177210725600176350ustar00rootroot00000000000000#!/bin/sh # Smart Common Input Method # # Copyright (c) 2002-2004 James Su # # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this program; if not, write to the # Free Software Foundation, Inc., 59 Temple Place, Suite 330, # Boston, MA 02111-1307 USA # $Id: scim-setup.in,v 1.1 2005/01/03 03:41:06 suzhe Exp $ prefix=@prefix@ exec_prefix=@exec_prefix@ libdir=@libdir@ includedir=@includedir@ localedir=@datadir@/locale datadir=@datadir@ sysconfdir=@sysconfdir@ @SCIM_LIBEXECDIR@/scim-helper-launcher setup 8034d025-bdfc-4a10-86a4-82b9461b32b0 $* scim-1.4.14/extras/setup/scim_setup_helper.cpp000066400000000000000000000067101177210725600214340ustar00rootroot00000000000000/** @file scim_setup_helper.cpp * implementation of Setup Helper module. */ /* * Smart Common Input Method * * Copyright (c) 2005 James Su * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this program; if not, write to the * Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, MA 02111-1307 USA * * $Id: scim_setup_helper.cpp,v 1.5 2005/01/13 14:54:18 suzhe Exp $ */ #define Uses_SCIM_CONFIG_BASE #define Uses_SCIM_CONFIG_PATH #define Uses_SCIM_MODULE #define Uses_SCIM_IMENGINE_MODULE #define Uses_SCIM_HELPER #define Uses_STL_MAP #include "scim_private.h" #include "scim.h" #include "scim_setup_module.h" #include "scim_setup_ui.h" #define scim_module_init setup_LTX_scim_module_init #define scim_module_exit setup_LTX_scim_module_exit #define scim_helper_module_number_of_helpers setup_LTX_scim_helper_module_number_of_helpers #define scim_helper_module_get_helper_info setup_LTX_scim_helper_module_get_helper_info #define scim_helper_module_run_helper setup_LTX_scim_helper_module_run_helper using namespace scim; static HelperInfo __helper_info (String ("8034d025-bdfc-4a10-86a4-82b9461b32b0"), String (_("SCIM Setup")), String (SCIM_ICONDIR "/setup.png"), String (_("Integrated Setup Utility based on GTK Widget library.")), SCIM_HELPER_STAND_ALONE); //Module Interface extern "C" { void scim_module_init (void) { } void scim_module_exit (void) { } unsigned int scim_helper_module_number_of_helpers (void) { return 1; } bool scim_helper_module_get_helper_info (unsigned int idx, HelperInfo &info) { if (idx == 0) { info = __helper_info; return true; } return false; } void scim_helper_module_run_helper (const String &uuid, const ConfigPointer &config, const String &display) { SCIM_DEBUG_MAIN(1) << "setup_LTX_scim_helper_module_run_helper ()\n"; if (uuid == "8034d025-bdfc-4a10-86a4-82b9461b32b0") { SetupUI * setup_ui = new SetupUI (config, display, __helper_info); std::vector setup_list; SetupModule *setup_module = 0; scim_get_setup_module_list (setup_list); for (size_t i = 0; i < setup_list.size (); ++ i) { setup_module = new SetupModule (setup_list [i]); if (setup_module && setup_module->valid ()) { setup_ui->add_module (setup_module); } else if (setup_module) { delete setup_module; } } setup_ui->run (); delete setup_ui; } SCIM_DEBUG_MAIN(1) << "exit setup_LTX_scim_helper_module_run_helper ()\n"; } } /* vi:ts=4:nowrap:ai:expandtab */ scim-1.4.14/extras/setup/scim_setup_module.cpp000066400000000000000000000073761177210725600214530ustar00rootroot00000000000000/* * Smart Common Input Method * * Copyright (c) 2002-2005 James Su * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this program; if not, write to the * Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, MA 02111-1307 USA * * $Id: scim_setup_module.cpp,v 1.9 2005/01/10 08:30:45 suzhe Exp $ * */ #define Uses_SCIM_CONFIG_BASE #define Uses_SCIM_MODULE #include "scim_private.h" #include "scim.h" #include "scim_setup_module.h" SetupModule::SetupModule () : m_create_ui (0), m_get_category (0), m_get_name (0), m_get_description (0), m_load_config (0), m_save_config (0) { } SetupModule::SetupModule (const String &name) : m_create_ui (0), m_get_category (0), m_get_name (0), m_get_description (0), m_load_config (0), m_save_config (0) { load (name); } bool SetupModule::load (const String &name) { if (!m_module.load (name, "SetupUI")) return false; m_create_ui = (SetupModuleCreateUIFunc) m_module.symbol ("scim_setup_module_create_ui"); m_get_category = (SetupModuleGetCategoryFunc) m_module.symbol ("scim_setup_module_get_category"); m_get_name = (SetupModuleGetNameFunc) m_module.symbol ("scim_setup_module_get_name"); m_get_description = (SetupModuleGetDescriptionFunc) m_module.symbol ("scim_setup_module_get_description"); m_load_config = (SetupModuleLoadConfigFunc) m_module.symbol ("scim_setup_module_load_config"); m_save_config = (SetupModuleSaveConfigFunc) m_module.symbol ("scim_setup_module_save_config"); m_query_changed = (SetupModuleQueryChangedFunc) m_module.symbol ("scim_setup_module_query_changed"); if (!m_create_ui || !m_get_category || !m_get_name || !m_load_config || !m_save_config) { m_module.unload (); m_create_ui = 0; m_get_category = 0; m_get_name = 0; m_get_description = 0; m_load_config = 0; m_save_config = 0; return false; } return true; } bool SetupModule::valid () const { return (m_module.valid () && m_create_ui && m_get_category && m_get_name && m_load_config && m_save_config); } GtkWidget * SetupModule::create_ui () const { if (valid ()) return m_create_ui (); return 0; } String SetupModule::get_category () const { if (valid ()) return m_get_category (); return String (); } String SetupModule::get_name () const { if (valid ()) return m_get_name (); return String (); } String SetupModule::get_description () const { if (valid () && m_get_description) return m_get_description (); return String (); } void SetupModule::load_config (const ConfigPointer &config) const { if (valid ()) m_load_config (config); } void SetupModule::save_config (const ConfigPointer &config) const { if (valid ()) m_save_config (config); } bool SetupModule::query_changed () const { if (valid () && m_query_changed) return m_query_changed (); return false; } int scim_get_setup_module_list (std::vector & mod_list) { return scim_get_module_list (mod_list, "SetupUI"); } /* vi:ts=4:nowrap:ai:expandtab */ scim-1.4.14/extras/setup/scim_setup_module.h000066400000000000000000000050111177210725600211000ustar00rootroot00000000000000/** @file scim_setup_module.h * @brief definition of SetupModule related classes. */ /* * Smart Common Input Method * * Copyright (c) 2002-2005 James Su * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this program; if not, write to the * Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, MA 02111-1307 USA * * $Id: scim_setup_module.h,v 1.9 2005/01/10 08:30:45 suzhe Exp $ */ #if !defined (__SCIM_SETUP_MODULE_H) #define __SCIM_SETUP_MODULE_H #include using namespace scim; typedef GtkWidget * (*SetupModuleCreateUIFunc) (void); typedef String (*SetupModuleGetCategoryFunc) (void); typedef String (*SetupModuleGetNameFunc) (void); typedef String (*SetupModuleGetDescriptionFunc) (void); typedef void (*SetupModuleLoadConfigFunc) (const ConfigPointer &config); typedef void (*SetupModuleSaveConfigFunc) (const ConfigPointer &config); typedef bool (*SetupModuleQueryChangedFunc) (void); class SetupModule { Module m_module; SetupModuleCreateUIFunc m_create_ui; SetupModuleGetCategoryFunc m_get_category; SetupModuleGetNameFunc m_get_name; SetupModuleGetDescriptionFunc m_get_description; SetupModuleLoadConfigFunc m_load_config; SetupModuleSaveConfigFunc m_save_config; SetupModuleQueryChangedFunc m_query_changed; SetupModule (const SetupModule &); SetupModule & operator= (const SetupModule &); public: SetupModule (); SetupModule (const String &name); bool load (const String &name); bool valid () const; GtkWidget * create_ui () const; String get_category () const; String get_name () const; String get_description () const; void load_config (const ConfigPointer &config) const; void save_config (const ConfigPointer &config) const; bool query_changed () const; }; int scim_get_setup_module_list (std::vector & mod_list); #endif // __SCIM_SETUP_MODULE_H /* vi:ts=4:ai:nowrap:expandtab */ scim-1.4.14/extras/setup/scim_setup_ui.cpp000066400000000000000000000525361177210725600206010ustar00rootroot00000000000000/* * Smart Common Input Method * * Copyright (c) 2002-2005 James Su * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this program; if not, write to the * Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, MA 02111-1307 USA * * $Id: scim_setup_ui.cpp,v 1.52 2005/06/23 05:12:58 suzhe Exp $ * */ #include #include #define Uses_SCIM_COMPOSE_KEY #define Uses_SCIM_CONFIG_BASE #define Uses_SCIM_CONFIG_PATH #define Uses_SCIM_MODULE #define Uses_SCIM_IMENGINE_MODULE #define Uses_SCIM_HELPER #include "scim_private.h" #include "scim.h" #include "scim_setup_module.h" #include "scim_setup_ui.h" #define LIST_ICON_SIZE 20 #define SCIM_TRADEMARK_ICON_FILE (SCIM_ICONDIR "/trademark.png") const gchar * scim_setup_module_categories [] = { N_("SCIM"), N_("FrontEnd"), N_("IMEngine"), N_("Panel"), N_("Extra"), NULL }; enum { MODULE_LIST_LABEL = 0, MODULE_LIST_CATEGORY, MODULE_LIST_MODULE, MODULE_LIST_WIDGET, MODULE_LIST_NUM_COLUMNS }; SetupUI::SetupUI (const ConfigPointer &config, const String &display, const HelperInfo &helper_info) : m_main_window (0), m_work_area (0), m_apply_button (0), m_restore_button (0), m_status_bar (0), m_module_list_view (0), m_module_list_selection (0), m_module_list_model (0), m_current_widget (0), m_current_module (0), m_config (config), m_query_changed_timeout (0), m_changes_applied (false) { char **argv = new char * [4]; int argc = 1; argv [0] = const_cast("scim-setup"); argv [1] = 0; if (display.length ()) { argv [argc ++] = const_cast ("--display"); argv [argc ++] = const_cast (display.c_str ()); argv [argc] = 0; setenv ("DISPLAY", display.c_str (), 1); } gtk_init (&argc, &argv); create_main_ui (); create_module_list_model (); m_query_changed_timeout = g_timeout_add (200, query_changed_timeout_cb, this); m_helper_agent.open_connection (helper_info, display); delete [] argv; } SetupUI::~SetupUI () { g_source_remove (m_query_changed_timeout); gtk_widget_destroy (m_main_window); m_helper_agent.close_connection (); } bool SetupUI::add_module (SetupModule *module) { if (!module || !module->valid ()) return false; GtkTreeIter iter, parent; GtkWidget *module_widget = module->create_ui (); String module_label = module->get_name (); String module_category = module->get_category (); if (!module_widget || !module_label.length () || !module_category.length ()) return false; if (!m_config.null ()) module->load_config (m_config); gtk_box_pack_start (GTK_BOX (m_work_area), module_widget, TRUE, TRUE, 0); gtk_widget_hide (module_widget); if (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (m_module_list_model), &parent)) { gchar *category; do { gtk_tree_model_get (GTK_TREE_MODEL (m_module_list_model), &parent, MODULE_LIST_CATEGORY, &category, -1); // Find the right category and append the module. if (category && !strcmp (category, module_category.c_str ())) { gtk_tree_store_append (m_module_list_model, &iter, &parent); gtk_tree_store_set ( m_module_list_model, &iter, MODULE_LIST_LABEL, module_label.c_str (), MODULE_LIST_CATEGORY, NULL, MODULE_LIST_MODULE, module, MODULE_LIST_WIDGET, module_widget, -1); g_free (category); gtk_tree_view_expand_all (GTK_TREE_VIEW (m_module_list_view)); return true; } g_free (category); } while (gtk_tree_model_iter_next (GTK_TREE_MODEL (m_module_list_model), &parent)); } GtkWidget *cover; cover = create_setup_cover (module_category.c_str ()); gtk_box_pack_start (GTK_BOX (m_work_area), cover, TRUE, TRUE, 0); // No suitable category available, add one. gtk_tree_store_append (m_module_list_model, &parent, NULL); gtk_tree_store_set ( m_module_list_model, &parent, MODULE_LIST_LABEL, _(module_category.c_str ()), MODULE_LIST_CATEGORY, module_category.c_str (), MODULE_LIST_MODULE, NULL, MODULE_LIST_WIDGET, cover, -1); gtk_tree_store_append (m_module_list_model, &iter, &parent); gtk_tree_store_set ( m_module_list_model, &iter, MODULE_LIST_LABEL, module_label.c_str (), MODULE_LIST_CATEGORY, NULL, MODULE_LIST_MODULE, module, MODULE_LIST_WIDGET, module_widget, -1); gtk_tree_view_expand_all (GTK_TREE_VIEW (m_module_list_view)); return true; } void SetupUI::run () { SCIM_DEBUG_MAIN(1) << "SetupUI::run ()\n"; if (m_main_window) { gtk_widget_show (m_main_window); gtk_main (); } if (m_changes_applied) { // Flush the global config before sending reload config event. scim_global_config_flush (); m_helper_agent.reload_config (); } SCIM_DEBUG_MAIN(1) << "exit SetupUI::run ()\n"; } void SetupUI::create_main_ui () { GtkWidget *hpaned1; GtkWidget *scrolledwindow1; GtkWidget *vbox1; GtkWidget *vbox2; GtkWidget *frame1; GtkWidget *hbox1; GtkWidget *ok_button; GtkWidget *exit_button; GtkWidget *vseparator1; GdkPixbuf *icon; GtkCellRenderer *module_list_cell; GtkTreeViewColumn *module_list_column; // Create main window. m_main_window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (m_main_window), _("SCIM Input Method Setup")); gtk_window_set_position (GTK_WINDOW (m_main_window), GTK_WIN_POS_CENTER); gtk_window_set_modal (GTK_WINDOW (m_main_window), TRUE); gtk_window_set_destroy_with_parent (GTK_WINDOW (m_main_window), TRUE); gtk_window_set_resizable (GTK_WINDOW (m_main_window), TRUE); // Set the window icon icon = gdk_pixbuf_new_from_file (SCIM_TRADEMARK_ICON_FILE, NULL); if (icon) { gtk_window_set_icon (GTK_WINDOW (m_main_window), icon); g_object_unref (icon); } #if GTK_CHECK_VERSION(3, 2, 0) vbox1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); #else vbox1 = gtk_vbox_new (FALSE, 0); #endif gtk_widget_show (vbox1); gtk_container_add (GTK_CONTAINER (m_main_window), vbox1); // Create paned window. hpaned1 = gtk_hpaned_new (); gtk_widget_show (hpaned1); gtk_box_pack_start (GTK_BOX (vbox1), hpaned1, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (hpaned1), 4); // Create statusbar. m_status_bar = gtk_statusbar_new (); #if GTK_CHECK_VERSION(3, 0, 0) gtk_window_set_has_resize_grip (GTK_WINDOW(m_main_window), TRUE); #else gtk_statusbar_set_has_resize_grip (GTK_STATUSBAR (m_status_bar), TRUE); #endif gtk_widget_show (m_status_bar); gtk_box_pack_start (GTK_BOX (vbox1), m_status_bar, FALSE, FALSE, 0); // Create scrollwindow for module list. scrolledwindow1 = gtk_scrolled_window_new (NULL, NULL); gtk_widget_show (scrolledwindow1); gtk_paned_pack1 (GTK_PANED (hpaned1), scrolledwindow1, FALSE, FALSE); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow1), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow1), GTK_SHADOW_ETCHED_IN); // Create module list view. m_module_list_view = gtk_tree_view_new (); gtk_widget_show (m_module_list_view); gtk_container_add (GTK_CONTAINER (scrolledwindow1), m_module_list_view); gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (m_module_list_view), FALSE); gtk_tree_view_set_enable_search (GTK_TREE_VIEW (m_module_list_view), FALSE); // Get module list selection. m_module_list_selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (m_module_list_view)); gtk_tree_selection_set_mode (m_module_list_selection, GTK_SELECTION_BROWSE); // Create module list column. module_list_cell = gtk_cell_renderer_text_new (); module_list_column = gtk_tree_view_column_new_with_attributes ( NULL, module_list_cell, "text", MODULE_LIST_LABEL, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW (m_module_list_view), module_list_column); // Create vbox for work area and button area. #if GTK_CHECK_VERSION(3, 2, 0) vbox2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); #else vbox2 = gtk_vbox_new (FALSE, 0); #endif gtk_widget_show (vbox2); gtk_paned_pack2 (GTK_PANED (hpaned1), vbox2, TRUE, FALSE); // Create frame for work area. frame1 = gtk_frame_new (NULL); gtk_widget_show (frame1); gtk_box_pack_start (GTK_BOX (vbox2), frame1, TRUE, TRUE, 0); #if GTK_CHECK_VERSION(3, 2, 0) m_work_area = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); #else m_work_area = gtk_vbox_new (FALSE, 0); #endif gtk_widget_show (m_work_area); gtk_container_add (GTK_CONTAINER (frame1), m_work_area); // Create hbox for button area. #if GTK_CHECK_VERSION(3, 2, 0) hbox1 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); #else hbox1 = gtk_hbox_new (FALSE, 0); #endif gtk_widget_show (hbox1); gtk_box_pack_end (GTK_BOX (vbox2), hbox1, FALSE, FALSE, 8); ok_button = gtk_button_new_from_stock ("gtk-ok"); gtk_widget_show (ok_button); gtk_box_pack_end (GTK_BOX (hbox1), ok_button, FALSE, FALSE, 4); exit_button = gtk_button_new_from_stock ("gtk-cancel"); gtk_widget_show (exit_button); gtk_box_pack_end (GTK_BOX (hbox1), exit_button, FALSE, FALSE, 4); vseparator1 = gtk_vseparator_new (); gtk_widget_show (vseparator1); gtk_box_pack_end (GTK_BOX (hbox1), vseparator1, FALSE, FALSE, 4); m_apply_button = gtk_button_new_from_stock ("gtk-apply"); gtk_widget_show (m_apply_button); gtk_box_pack_end (GTK_BOX (hbox1), m_apply_button, FALSE, FALSE, 4); #if GTK_CHECK_VERSION(2, 18, 0) gtk_widget_set_can_default (m_apply_button, TRUE); #else GTK_WIDGET_SET_FLAGS (m_apply_button, GTK_CAN_DEFAULT); #endif gtk_widget_set_sensitive (m_apply_button, FALSE); m_restore_button = gtk_button_new_from_stock ("gtk-revert-to-saved"); gtk_widget_show (m_restore_button); gtk_box_pack_end (GTK_BOX (hbox1), m_restore_button, FALSE, FALSE, 4); gtk_widget_set_sensitive (m_restore_button, FALSE); g_signal_connect ((gpointer) ok_button, "clicked", G_CALLBACK (SetupUI::ok_button_clicked_callback), this); g_signal_connect ((gpointer) exit_button, "clicked", G_CALLBACK (SetupUI::exit_button_clicked_callback), this); g_signal_connect ((gpointer) m_apply_button, "clicked", G_CALLBACK (SetupUI::apply_button_clicked_callback), this); g_signal_connect ((gpointer) m_restore_button, "clicked", G_CALLBACK (SetupUI::restore_button_clicked_callback), this); g_signal_connect (G_OBJECT (m_main_window), "delete_event", G_CALLBACK (main_window_delete_callback), this); g_signal_connect (G_OBJECT (m_module_list_selection), "changed", G_CALLBACK (module_list_selection_changed_callback), this); gtk_widget_grab_default (m_apply_button); } GtkWidget * SetupUI::create_splash_view () { GtkRequisition size; GtkWidget *vbox; GtkWidget *hbox; GtkWidget *view; GtkWidget *combo; GtkWidget *label; GtkWidget *separator; #if GTK_CHECK_VERSION(3, 2, 0) vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); #else vbox = gtk_vbox_new (FALSE, 0); #endif gtk_widget_show (vbox); view = gtk_label_new (NULL); gtk_widget_show (view); gtk_label_set_justify (GTK_LABEL (view), GTK_JUSTIFY_CENTER); gtk_label_set_markup (GTK_LABEL (view), _( " Smart Common Input Method platform \n\n" "GUI Setup Utility\n\n\n\n" "Copyright 2002-2004, James Su <suzhe@tsinghua.org.cn>")); gtk_box_pack_start (GTK_BOX (vbox), view, TRUE, TRUE, 4); gtk_widget_size_request (vbox, &size); if (size.width < 320) size.width = 320; if (size.height < 240) size.height = 240; gtk_widget_set_size_request (vbox, size.width, size.height); gtk_widget_hide (vbox); return vbox; } GtkWidget * SetupUI::create_setup_cover (const char *category) { GtkRequisition size; GtkWidget *cover; char buf [128]; snprintf (buf, 127, _("The Setup for %s modules."), _(category)); cover = gtk_label_new (NULL); gtk_label_set_markup (GTK_LABEL (cover), buf); gtk_label_set_justify (GTK_LABEL (cover), GTK_JUSTIFY_CENTER); gtk_widget_show (cover); gtk_widget_size_request (cover, &size); if (size.width < 320) size.width = 320; if (size.height < 240) size.height = 240; gtk_widget_set_size_request (cover, size.width, size.height); gtk_widget_hide (cover); return cover; } void SetupUI::create_module_list_model () { GtkTreeIter iter; GtkWidget *widget; widget = create_splash_view (); gtk_box_pack_start (GTK_BOX (m_work_area), widget, TRUE, TRUE, 0); m_module_list_model = gtk_tree_store_new ( MODULE_LIST_NUM_COLUMNS, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_POINTER, GTK_TYPE_WIDGET); gtk_tree_store_append (m_module_list_model, &iter, NULL); gtk_tree_store_set (m_module_list_model, &iter, MODULE_LIST_LABEL, _(scim_setup_module_categories [0]), MODULE_LIST_CATEGORY, scim_setup_module_categories [0], MODULE_LIST_MODULE, NULL, MODULE_LIST_WIDGET, widget, -1); gtk_tree_view_set_model (GTK_TREE_VIEW (m_module_list_view), GTK_TREE_MODEL (m_module_list_model)); } gboolean SetupUI::module_list_hide_widget_iter_func (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data) { GtkWidget *widget; gtk_tree_model_get (model, iter, MODULE_LIST_WIDGET, &widget, -1); if (widget) gtk_widget_hide (widget); g_object_unref (widget); return FALSE; } void SetupUI::module_list_selection_changed_callback (GtkTreeSelection *selection, gpointer user_data) { GtkTreeModel *model; GtkTreeIter iter; GtkWidget *widget; SetupModule *module; gchar *label; gchar *category; SetupUI * ui = (SetupUI *) user_data; if (gtk_tree_selection_get_selected (selection, &model, &iter)) { gtk_tree_model_get (model, &iter, MODULE_LIST_LABEL, &label, MODULE_LIST_CATEGORY, &category, MODULE_LIST_MODULE, &module, MODULE_LIST_WIDGET, &widget, -1); if (widget != ui->m_current_widget) { //Hide all other widgets gtk_tree_model_foreach (model, module_list_hide_widget_iter_func, NULL); gtk_widget_show (widget); ui->m_current_widget = widget; } if (module != ui->m_current_module || !module) { gtk_statusbar_pop (GTK_STATUSBAR (ui->m_status_bar), 1); gtk_widget_set_sensitive (ui->m_apply_button, FALSE); gtk_widget_set_sensitive (ui->m_restore_button, FALSE); if (module) { String desc = module->get_description (); if (desc.length ()) gtk_statusbar_push (GTK_STATUSBAR (ui->m_status_bar), 1, desc.c_str ()); if (module->query_changed () && !ui->m_config.null ()) { gtk_widget_set_sensitive (ui->m_apply_button, TRUE); gtk_widget_set_sensitive (ui->m_restore_button, TRUE); } } ui->m_current_module = module; } g_free (label); if (category) g_free (category); g_object_unref (widget); } } void SetupUI::restore_button_clicked_callback (GtkButton *button, gpointer user_data) { SetupUI *ui = (SetupUI*) user_data; if (ui->m_config.null ()) return; if (ui->m_current_module) { ui->m_current_module->load_config (ui->m_config); gtk_widget_set_sensitive (ui->m_apply_button, FALSE); gtk_widget_set_sensitive (ui->m_restore_button, FALSE); } } void SetupUI::apply_button_clicked_callback (GtkButton *button, gpointer user_data) { SetupUI *ui = (SetupUI*) user_data; if (ui->m_config.null ()) return; if (ui->m_current_module) { ui->m_current_module->save_config (ui->m_config); ui->m_config->flush (); ui->m_changes_applied = true; gtk_widget_set_sensitive (ui->m_apply_button, FALSE); gtk_widget_set_sensitive (ui->m_restore_button, FALSE); } } gboolean SetupUI::module_list_save_config_iter_func (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data) { SetupModule *module; SetupUI *ui = (SetupUI *) data; gtk_tree_model_get (model, iter, MODULE_LIST_MODULE, &module, -1); if (module && module->query_changed () && ui && !ui->m_config.null ()) { module->save_config (ui->m_config); ui->m_changes_applied = true; } return FALSE; } gboolean SetupUI::module_list_load_config_iter_func (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data) { SetupModule *module; SetupUI *ui = (SetupUI *) data; gtk_tree_model_get (model, iter, MODULE_LIST_MODULE, &module, -1); if (module && ui && !ui->m_config.null ()) module->load_config (ui->m_config); return FALSE; } void SetupUI::ok_button_clicked_callback (GtkButton *button, gpointer user_data) { SetupUI *ui = (SetupUI *) user_data; if (!ui->m_config.null ()) { gtk_tree_model_foreach (GTK_TREE_MODEL (ui->m_module_list_model), module_list_save_config_iter_func, user_data); ui->m_config->flush (); if (ui->m_changes_applied) ui->show_restart_hint (); } gtk_main_quit (); } void SetupUI::exit_button_clicked_callback (GtkButton *button, gpointer user_data) { SetupUI *ui = (SetupUI*) user_data; if (ui->m_changes_applied) ui->show_restart_hint (); gtk_main_quit (); } gboolean SetupUI::main_window_delete_callback (GtkWidget *widget, GdkEvent *event, gpointer user_data) { SetupUI *ui = (SetupUI*) user_data; if (ui->m_changes_applied) ui->show_restart_hint (); gtk_main_quit (); return TRUE; } gboolean SetupUI::query_changed_timeout_cb (gpointer data) { SetupUI *ui = (SetupUI *) data; if (ui->m_helper_agent.has_pending_event ()) ui->m_helper_agent.filter_event (); bool modified = false; if (!ui->m_config.null () && ui->m_config->valid () && ui->m_current_module && ui->m_current_module->query_changed ()) modified = true; #if GTK_CHECK_VERSION(2, 18, 0) if (gtk_widget_get_sensitive (ui->m_apply_button) != modified) #else if (GTK_WIDGET_SENSITIVE (ui->m_apply_button) != modified) #endif gtk_widget_set_sensitive (ui->m_apply_button, modified); #if GTK_CHECK_VERSION(2, 18, 0) if (gtk_widget_get_sensitive (ui->m_restore_button) != modified) #else if (GTK_WIDGET_SENSITIVE (ui->m_restore_button) != modified) #endif gtk_widget_set_sensitive (ui->m_restore_button, modified); return TRUE; } void SetupUI::show_restart_hint () const { GtkWidget *dialog; dialog = gtk_message_dialog_new (GTK_WINDOW (m_main_window), GTK_DIALOG_MODAL, GTK_MESSAGE_INFO, GTK_BUTTONS_OK, _("Not all configuration can be reloaded on the fly. " "Don't forget to restart SCIM in order to let all of " "the new configuration take effect.")); gtk_dialog_run (GTK_DIALOG (dialog)); gtk_widget_destroy (dialog); } /* vi:ts=4:nowrap:ai:expandtab */ scim-1.4.14/extras/setup/scim_setup_ui.h000066400000000000000000000063721177210725600202430ustar00rootroot00000000000000/** @file scim_setup_ui.h */ /* * Smart Common Input Method * * Copyright (c) 2002-2005 James Su * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this program; if not, write to the * Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, MA 02111-1307 USA * * $Id: scim_setup_ui.h,v 1.23 2005/01/10 08:30:45 suzhe Exp $ */ #if !defined (__SCIM_SETUP_UI_H) #define __SCIM_SETUP_UI_H #include using namespace scim; class SetupUI { GtkWidget *m_main_window; GtkWidget *m_work_area; GtkWidget *m_apply_button; GtkWidget *m_restore_button; GtkWidget *m_status_bar; GtkWidget *m_module_list_view; GtkTreeSelection *m_module_list_selection; GtkTreeStore *m_module_list_model; GtkWidget *m_current_widget; SetupModule *m_current_module; ConfigPointer m_config; guint m_query_changed_timeout; bool m_changes_applied; HelperAgent m_helper_agent; SetupUI (const SetupUI &); SetupUI & operator= (const SetupUI &); public: SetupUI (const ConfigPointer &config, const String &display, const HelperInfo &helper_info); ~SetupUI (); bool add_module (SetupModule *module); // Return true if the changes have been applied. void run (); private: void create_main_ui (); void create_module_list_model (); GtkWidget * create_splash_view (); GtkWidget * create_setup_cover (const char *category); void show_restart_hint () const; static void module_list_selection_changed_callback (GtkTreeSelection *selection, gpointer user_data); static void apply_button_clicked_callback (GtkButton *button, gpointer user_data); static void restore_button_clicked_callback (GtkButton *button, gpointer user_data); static void ok_button_clicked_callback (GtkButton *button, gpointer user_data); static void exit_button_clicked_callback (GtkButton *button, gpointer user_data); static void config_changed_callback (GtkEditable *editable, gpointer user_data); static gboolean main_window_delete_callback (GtkWidget *widget, GdkEvent *event, gpointer user_data); static gboolean query_changed_timeout_cb (gpointer data); static gboolean module_list_hide_widget_iter_func (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data); static gboolean module_list_save_config_iter_func (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data); static gboolean module_list_load_config_iter_func (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data); }; #endif // __SCIM_SETUP_UI_H /* vi:ts=4:ai:nowrap:expandtab */ scim-1.4.14/install-sh000077500000000000000000000325371177210725600145620ustar00rootroot00000000000000#!/bin/sh # install - install a program, script, or datafile scriptversion=2009-04-28.21; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. nl=' ' IFS=" "" $nl" # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-} if test -z "$doit"; then doit_exec=exec else doit_exec=$doit fi # Put in absolute file names if you don't have them in your path; # or use environment vars. chgrpprog=${CHGRPPROG-chgrp} chmodprog=${CHMODPROG-chmod} chownprog=${CHOWNPROG-chown} cmpprog=${CMPPROG-cmp} cpprog=${CPPROG-cp} mkdirprog=${MKDIRPROG-mkdir} mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} posix_glob='?' initialize_posix_glob=' test "$posix_glob" != "?" || { if (set -f) 2>/dev/null; then posix_glob= else posix_glob=: fi } ' posix_mkdir= # Desired mode of installed file. mode=0755 chgrpcmd= chmodcmd=$chmodprog chowncmd= mvcmd=$mvprog rmcmd="$rmprog -f" stripcmd= src= dst= dir_arg= dst_arg= copy_on_change=false no_target_directory= usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: --help display this help and exit. --version display version info and exit. -c (ignored) -C install only if different (preserve the last data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test $# -ne 0; do case $1 in -c) ;; -C) copy_on_change=true;; -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 case $mode in *' '* | *' '* | *' '* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) dst_arg=$2 shift;; -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then trap '(exit $?); exit' 1 2 13 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names starting with `-'. case $src in -*) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # Protect names starting with `-'. case $dst in -*) dst=./$dst;; esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else # Prefer dirname, but fall back on a substitute if dirname fails. dstdir=` (dirname "$dst") 2>/dev/null || expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$dst" : 'X\(//\)[^/]' \| \ X"$dst" : 'X\(//\)$' \| \ X"$dst" : 'X\(/\)' \| . 2>/dev/null || echo X"$dst" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q' ` test -d "$dstdir" dstdir_status=$? fi fi obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 if (umask $mkdir_umask && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writeable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/d" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; -*) prefix='./';; *) prefix='';; esac eval "$initialize_posix_glob" oIFS=$IFS IFS=/ $posix_glob set -f set fnord $dstdir shift $posix_glob set +f IFS=$oIFS prefixes= for d do test -z "$d" && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && eval "$initialize_posix_glob" && $posix_glob set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && $posix_glob set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: scim-1.4.14/intltool-extract.in000066400000000000000000000000001177210725600163760ustar00rootroot00000000000000scim-1.4.14/intltool-merge.in000066400000000000000000000000001177210725600160230ustar00rootroot00000000000000scim-1.4.14/intltool-update.in000066400000000000000000000000001177210725600162060ustar00rootroot00000000000000scim-1.4.14/ltmain.sh000077500000000000000000007331001177210725600143730ustar00rootroot00000000000000# Generated from ltmain.m4sh. # ltmain.sh (GNU libtool) 2.2.6b # Written by Gordon Matzigkeit , 1996 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # GNU Libtool is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, # or obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # Usage: $progname [OPTION]... [MODE-ARG]... # # Provide generalized library-building support services. # # --config show all configuration variables # --debug enable verbose shell tracing # -n, --dry-run display commands without modifying any files # --features display basic configuration information and exit # --mode=MODE use operation mode MODE # --preserve-dup-deps don't remove duplicate dependency libraries # --quiet, --silent don't print informational messages # --tag=TAG use configuration variables from tag TAG # -v, --verbose print informational messages (default) # --version print version information # -h, --help print short or long help message # # MODE must be one of the following: # # clean remove files from the build directory # compile compile a source file into a libtool object # execute automatically set library path, then run a program # finish complete the installation of libtool libraries # install install libraries or executables # link create a library or an executable # uninstall remove libraries from an installed directory # # MODE-ARGS vary depending on the MODE. # Try `$progname --help --mode=MODE' for a more detailed description of MODE. # # When reporting a bug, please describe a test case to reproduce it and # include the following information: # # host-triplet: $host # shell: $SHELL # compiler: $LTCC # compiler flags: $LTCFLAGS # linker: $LD (gnu? $with_gnu_ld) # $progname: (GNU libtool) 2.2.6b # automake: $automake_version # autoconf: $autoconf_version # # Report bugs to . PROGRAM=ltmain.sh PACKAGE=libtool VERSION=2.2.6b TIMESTAMP="" package_revision=1.3018 # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # NLS nuisances: We save the old values to restore during execute mode. # Only set LANG and LC_ALL to C if already set. # These must not be set unconditionally because not all systems understand # e.g. LANG=C (notably SCO). lt_user_locale= lt_safe_locale= for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${$lt_var+set}\" = set; then save_$lt_var=\$$lt_var $lt_var=C export $lt_var lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" fi" done $lt_unset CDPATH : ${CP="cp -f"} : ${ECHO="echo"} : ${EGREP="/usr/bin/grep -E"} : ${FGREP="/usr/bin/grep -F"} : ${GREP="/usr/bin/grep"} : ${LN_S="ln -s"} : ${MAKE="make"} : ${MKDIR="mkdir"} : ${MV="mv -f"} : ${RM="rm -f"} : ${SED="/usr/bin/sed"} : ${SHELL="${CONFIG_SHELL-/bin/sh}"} : ${Xsed="$SED -e 1s/^X//"} # Global variables: EXIT_SUCCESS=0 EXIT_FAILURE=1 EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. exit_status=$EXIT_SUCCESS # Make sure IFS has a sensible default lt_nl=' ' IFS=" $lt_nl" dirname="s,/[^/]*$,," basename="s,^.*/,," # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` } # Generated shell functions inserted here. # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh # is ksh but when the shell is invoked as "sh" and the current value of # the _XPG environment variable is not equal to 1 (one), the special # positional parameter $0, within a function call, is the name of the # function. progpath="$0" # The name of this program: # In the unlikely event $progname began with a '-', it would play havoc with # func_echo (imagine progname=-n), so we prepend ./ in that case: func_dirname_and_basename "$progpath" progname=$func_basename_result case $progname in -*) progname=./$progname ;; esac # Make sure we have an absolute path for reexecution: case $progpath in [\\/]*|[A-Za-z]:\\*) ;; *[\\/]*) progdir=$func_dirname_result progdir=`cd "$progdir" && pwd` progpath="$progdir/$progname" ;; *) save_IFS="$IFS" IFS=: for progdir in $PATH; do IFS="$save_IFS" test -x "$progdir/$progname" && break done IFS="$save_IFS" test -n "$progdir" || progdir=`pwd` progpath="$progdir/$progname" ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed="${SED}"' -e 1s/^X//' sed_quote_subst='s/\([`"$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Re-`\' parameter expansions in output of double_quote_subst that were # `\'-ed in input to the same. If an odd number of `\' preceded a '$' # in input to double_quote_subst, that '$' was protected from expansion. # Since each input `\' is now two `\'s, look for any number of runs of # four `\'s followed by two `\'s and then a '$'. `\' that '$'. bs='\\' bs2='\\\\' bs4='\\\\\\\\' dollar='\$' sed_double_backslash="\ s/$bs4/&\\ /g s/^$bs2$dollar/$bs&/ s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g s/\n//g" # Standard options: opt_dry_run=false opt_help=false opt_quiet=false opt_verbose=false opt_warning=: # func_echo arg... # Echo program name prefixed message, along with the current mode # name if it has been set yet. func_echo () { $ECHO "$progname${mode+: }$mode: $*" } # func_verbose arg... # Echo program name prefixed message in verbose mode only. func_verbose () { $opt_verbose && func_echo ${1+"$@"} # A bug in bash halts the script if the last line of a function # fails when set -e is in force, so we need another command to # work around that: : } # func_error arg... # Echo program name prefixed message to standard error. func_error () { $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2 } # func_warning arg... # Echo program name prefixed warning message to standard error. func_warning () { $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2 # bash bug again: : } # func_fatal_error arg... # Echo program name prefixed message to standard error, and exit. func_fatal_error () { func_error ${1+"$@"} exit $EXIT_FAILURE } # func_fatal_help arg... # Echo program name prefixed message to standard error, followed by # a help hint, and exit. func_fatal_help () { func_error ${1+"$@"} func_fatal_error "$help" } help="Try \`$progname --help' for more information." ## default # func_grep expression filename # Check whether EXPRESSION matches any line of FILENAME, without output. func_grep () { $GREP "$1" "$2" >/dev/null 2>&1 } # func_mkdir_p directory-path # Make sure the entire path to DIRECTORY-PATH is available. func_mkdir_p () { my_directory_path="$1" my_dir_list= if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then # Protect directory names starting with `-' case $my_directory_path in -*) my_directory_path="./$my_directory_path" ;; esac # While some portion of DIR does not yet exist... while test ! -d "$my_directory_path"; do # ...make a list in topmost first order. Use a colon delimited # list incase some portion of path contains whitespace. my_dir_list="$my_directory_path:$my_dir_list" # If the last portion added has no slash in it, the list is done case $my_directory_path in */*) ;; *) break ;; esac # ...otherwise throw away the child directory and loop my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"` done my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'` save_mkdir_p_IFS="$IFS"; IFS=':' for my_dir in $my_dir_list; do IFS="$save_mkdir_p_IFS" # mkdir can fail with a `File exist' error if two processes # try to create one of the directories concurrently. Don't # stop in that case! $MKDIR "$my_dir" 2>/dev/null || : done IFS="$save_mkdir_p_IFS" # Bail out if we (or some other process) failed to create a directory. test -d "$my_directory_path" || \ func_fatal_error "Failed to create \`$1'" fi } # func_mktempdir [string] # Make a temporary directory that won't clash with other running # libtool processes, and avoids race conditions if possible. If # given, STRING is the basename for that directory. func_mktempdir () { my_template="${TMPDIR-/tmp}/${1-$progname}" if test "$opt_dry_run" = ":"; then # Return a directory name, but don't create it in dry-run mode my_tmpdir="${my_template}-$$" else # If mktemp works, use that first and foremost my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` if test ! -d "$my_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race my_tmpdir="${my_template}-${RANDOM-0}$$" save_mktempdir_umask=`umask` umask 0077 $MKDIR "$my_tmpdir" umask $save_mktempdir_umask fi # If we're not in dry-run mode, bomb out on failure test -d "$my_tmpdir" || \ func_fatal_error "cannot create temporary directory \`$my_tmpdir'" fi $ECHO "X$my_tmpdir" | $Xsed } # func_quote_for_eval arg # Aesthetically quote ARG to be evaled later. # This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT # is double-quoted, suitable for a subsequent eval, whereas # FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters # which are still active within double quotes backslashified. func_quote_for_eval () { case $1 in *[\\\`\"\$]*) func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;; *) func_quote_for_eval_unquoted_result="$1" ;; esac case $func_quote_for_eval_unquoted_result in # Double-quote args containing shell metacharacters to delay # word splitting, command substitution and and variable # expansion for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" ;; *) func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" esac } # func_quote_for_expand arg # Aesthetically quote ARG to be evaled later; same as above, # but do not quote variable references. func_quote_for_expand () { case $1 in *[\\\`\"]*) my_arg=`$ECHO "X$1" | $Xsed \ -e "$double_quote_subst" -e "$sed_double_backslash"` ;; *) my_arg="$1" ;; esac case $my_arg in # Double-quote args containing shell metacharacters to delay # word splitting and command substitution for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") my_arg="\"$my_arg\"" ;; esac func_quote_for_expand_result="$my_arg" } # func_show_eval cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. func_show_eval () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$my_cmd" my_status=$? if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_show_eval_locale cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. Use the saved locale for evaluation. func_show_eval_locale () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$lt_user_locale $my_cmd" my_status=$? eval "$lt_safe_locale" if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_version # Echo version message to standard output and exit. func_version () { $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / { s/^# // s/^# *$// s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ p }' < "$progpath" exit $? } # func_usage # Echo short help message to standard output and exit. func_usage () { $SED -n '/^# Usage:/,/# -h/ { s/^# // s/^# *$// s/\$progname/'$progname'/ p }' < "$progpath" $ECHO $ECHO "run \`$progname --help | more' for full usage" exit $? } # func_help # Echo long help message to standard output and exit. func_help () { $SED -n '/^# Usage:/,/# Report bugs to/ { s/^# // s/^# *$// s*\$progname*'$progname'* s*\$host*'"$host"'* s*\$SHELL*'"$SHELL"'* s*\$LTCC*'"$LTCC"'* s*\$LTCFLAGS*'"$LTCFLAGS"'* s*\$LD*'"$LD"'* s/\$with_gnu_ld/'"$with_gnu_ld"'/ s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/ s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/ p }' < "$progpath" exit $? } # func_missing_arg argname # Echo program name prefixed message to standard error and set global # exit_cmd. func_missing_arg () { func_error "missing argument for $1" exit_cmd=exit } exit_cmd=: # Check that we have a working $ECHO. if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then # Yippee, $ECHO works! : else # Restart under the correct shell, and then maybe $ECHO will work. exec $SHELL "$progpath" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat </dev/null 2>&1; then taglist="$taglist $tagname" # Evaluate the configuration. Be careful to quote the path # and the sed script, to avoid splitting on whitespace, but # also don't use non-portable quotes within backquotes within # quotes we have to do it in 2 steps: extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` eval "$extractedcf" else func_error "ignoring unknown tag $tagname" fi ;; esac } # Parse options once, thoroughly. This comes as soon as possible in # the script to make things like `libtool --version' happen quickly. { # Shorthand for --mode=foo, only valid as the first argument case $1 in clean|clea|cle|cl) shift; set dummy --mode clean ${1+"$@"}; shift ;; compile|compil|compi|comp|com|co|c) shift; set dummy --mode compile ${1+"$@"}; shift ;; execute|execut|execu|exec|exe|ex|e) shift; set dummy --mode execute ${1+"$@"}; shift ;; finish|finis|fini|fin|fi|f) shift; set dummy --mode finish ${1+"$@"}; shift ;; install|instal|insta|inst|ins|in|i) shift; set dummy --mode install ${1+"$@"}; shift ;; link|lin|li|l) shift; set dummy --mode link ${1+"$@"}; shift ;; uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) shift; set dummy --mode uninstall ${1+"$@"}; shift ;; esac # Parse non-mode specific arguments: while test "$#" -gt 0; do opt="$1" shift case $opt in --config) func_config ;; --debug) preserve_args="$preserve_args $opt" func_echo "enabling shell trace mode" opt_debug='set -x' $opt_debug ;; -dlopen) test "$#" -eq 0 && func_missing_arg "$opt" && break execute_dlfiles="$execute_dlfiles $1" shift ;; --dry-run | -n) opt_dry_run=: ;; --features) func_features ;; --finish) mode="finish" ;; --mode) test "$#" -eq 0 && func_missing_arg "$opt" && break case $1 in # Valid mode arguments: clean) ;; compile) ;; execute) ;; finish) ;; install) ;; link) ;; relink) ;; uninstall) ;; # Catch anything else as an error *) func_error "invalid argument for $opt" exit_cmd=exit break ;; esac mode="$1" shift ;; --preserve-dup-deps) opt_duplicate_deps=: ;; --quiet|--silent) preserve_args="$preserve_args $opt" opt_silent=: ;; --verbose| -v) preserve_args="$preserve_args $opt" opt_silent=false ;; --tag) test "$#" -eq 0 && func_missing_arg "$opt" && break preserve_args="$preserve_args $opt $1" func_enable_tag "$1" # tagname is set here shift ;; # Separate optargs to long options: -dlopen=*|--mode=*|--tag=*) func_opt_split "$opt" set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"} shift ;; -\?|-h) func_usage ;; --help) opt_help=: ;; --version) func_version ;; -*) func_fatal_help "unrecognized option \`$opt'" ;; *) nonopt="$opt" break ;; esac done case $host in *cygwin* | *mingw* | *pw32* | *cegcc*) # don't eliminate duplications in $postdeps and $predeps opt_duplicate_compiler_generated_deps=: ;; *) opt_duplicate_compiler_generated_deps=$opt_duplicate_deps ;; esac # Having warned about all mis-specified options, bail out if # anything was wrong. $exit_cmd $EXIT_FAILURE } # func_check_version_match # Ensure that we are using m4 macros, and libtool script from the same # release of libtool. func_check_version_match () { if test "$package_revision" != "$macro_revision"; then if test "$VERSION" != "$macro_version"; then if test -z "$macro_version"; then cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from an older release. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from $PACKAGE $macro_version. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF fi else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, $progname: but the definition of this LT_INIT comes from revision $macro_revision. $progname: You should recreate aclocal.m4 with macros from revision $package_revision $progname: of $PACKAGE $VERSION and run autoconf again. _LT_EOF fi exit $EXIT_MISMATCH fi } ## ----------- ## ## Main. ## ## ----------- ## $opt_help || { # Sanity checks first: func_check_version_match if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then func_fatal_configuration "not configured to build any kind of library" fi test -z "$mode" && func_fatal_error "error: you must specify a MODE." # Darwin sucks eval std_shrext=\"$shrext_cmds\" # Only execute mode is allowed to have -dlopen flags. if test -n "$execute_dlfiles" && test "$mode" != execute; then func_error "unrecognized option \`-dlopen'" $ECHO "$help" 1>&2 exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. generic_help="$help" help="Try \`$progname --help --mode=$mode' for more information." } # func_lalib_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_lalib_p () { test -f "$1" && $SED -e 4q "$1" 2>/dev/null \ | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 } # func_lalib_unsafe_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function implements the same check as func_lalib_p without # resorting to external programs. To this end, it redirects stdin and # closes it afterwards, without saving the original file descriptor. # As a safety measure, use it only where a negative result would be # fatal anyway. Works if `file' does not exist. func_lalib_unsafe_p () { lalib_p=no if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then for lalib_p_l in 1 2 3 4 do read lalib_p_line case "$lalib_p_line" in \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; esac done exec 0<&5 5<&- fi test "$lalib_p" = yes } # func_ltwrapper_script_p file # True iff FILE is a libtool wrapper script # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_script_p () { func_lalib_p "$1" } # func_ltwrapper_executable_p file # True iff FILE is a libtool wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_executable_p () { func_ltwrapper_exec_suffix= case $1 in *.exe) ;; *) func_ltwrapper_exec_suffix=.exe ;; esac $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 } # func_ltwrapper_scriptname file # Assumes file is an ltwrapper_executable # uses $file to determine the appropriate filename for a # temporary ltwrapper_script. func_ltwrapper_scriptname () { func_ltwrapper_scriptname_result="" if func_ltwrapper_executable_p "$1"; then func_dirname_and_basename "$1" "" "." func_stripname '' '.exe' "$func_basename_result" func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" fi } # func_ltwrapper_p file # True iff FILE is a libtool wrapper script or wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_p () { func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" } # func_execute_cmds commands fail_cmd # Execute tilde-delimited COMMANDS. # If FAIL_CMD is given, eval that upon failure. # FAIL_CMD may read-access the current command in variable CMD! func_execute_cmds () { $opt_debug save_ifs=$IFS; IFS='~' for cmd in $1; do IFS=$save_ifs eval cmd=\"$cmd\" func_show_eval "$cmd" "${2-:}" done IFS=$save_ifs } # func_source file # Source FILE, adding directory component if necessary. # Note that it is not necessary on cygwin/mingw to append a dot to # FILE even if both FILE and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # `FILE.' does not work on cygwin managed mounts. func_source () { $opt_debug case $1 in */* | *\\*) . "$1" ;; *) . "./$1" ;; esac } # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. # Only attempt this if the compiler in the base compile # command doesn't match the default compiler. # arg is usually of the form 'gcc ...' func_infer_tag () { $opt_debug if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do func_quote_for_eval "$arg" CC_quoted="$CC_quoted $func_quote_for_eval_result" done case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) for z in $available_tags; do if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. func_quote_for_eval "$arg" CC_quoted="$CC_quoted $func_quote_for_eval_result" done case "$@ " in " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. tagname=$z break ;; esac fi done # If $tagname still isn't set, then no tagged configuration # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then func_echo "unable to infer tagged configuration" func_fatal_error "specify a tag with \`--tag'" # else # func_verbose "using $tagname tagged configuration" fi ;; esac fi } # func_write_libtool_object output_name pic_name nonpic_name # Create a libtool object file (analogous to a ".la" file), # but don't create it if we're doing a dry run. func_write_libtool_object () { write_libobj=${1} if test "$build_libtool_libs" = yes; then write_lobj=\'${2}\' else write_lobj=none fi if test "$build_old_libs" = yes; then write_oldobj=\'${3}\' else write_oldobj=none fi $opt_dry_run || { cat >${write_libobj}T <?"'"'"' &()|`$[]' \ && func_warning "libobj name \`$libobj' may not contain shell special characters." func_dirname_and_basename "$obj" "/" "" objname="$func_basename_result" xdir="$func_dirname_result" lobj=${xdir}$objdir/$objname test -z "$base_compile" && \ func_fatal_help "you must specify a compilation command" # Delete any leftover library objects. if test "$build_old_libs" = yes; then removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" fi # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2* | cegcc*) pic_mode=default ;; esac if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then # non-PIC code in shared libraries is not supported pic_mode=default fi # Calculate the filename of the output object if compiler does # not support -o with -c if test "$compiler_c_o" = no; then output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" else output_obj= need_locks=no lockfile= fi # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test "$need_locks" = yes; then until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done elif test "$need_locks" = warn; then if test -f "$lockfile"; then $ECHO "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi removelist="$removelist $output_obj" $ECHO "$srcfile" > "$lockfile" fi $opt_dry_run || $RM $removelist removelist="$removelist $lockfile" trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 if test -n "$fix_srcfile_path"; then eval srcfile=\"$fix_srcfile_path\" fi func_quote_for_eval "$srcfile" qsrcfile=$func_quote_for_eval_result # Only build a PIC object if we are building libtool libraries. if test "$build_libtool_libs" = yes; then # Without this assignment, base_compile gets emptied. fbsd_hideous_sh_bug=$base_compile if test "$pic_mode" != no; then command="$base_compile $qsrcfile $pic_flag" else # Don't build PIC code command="$base_compile $qsrcfile" fi func_mkdir_p "$xdir$objdir" if test -z "$output_obj"; then # Place PIC objects in $objdir command="$command -o $lobj" fi func_show_eval_locale "$command" \ 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed, then go on to compile the next one if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then func_show_eval '$MV "$output_obj" "$lobj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi # Allow error messages only from the first compilation. if test "$suppress_opt" = yes; then suppress_output=' >/dev/null 2>&1' fi fi # Only build a position-dependent object if we build old libraries. if test "$build_old_libs" = yes; then if test "$pic_mode" != yes; then # Don't build PIC code command="$base_compile $qsrcfile$pie_flag" else command="$base_compile $qsrcfile $pic_flag" fi if test "$compiler_c_o" = yes; then command="$command -o $obj" fi # Suppress compiler output if we already did a PIC compilation. command="$command$suppress_output" func_show_eval_locale "$command" \ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then func_show_eval '$MV "$output_obj" "$obj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi fi $opt_dry_run || { func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" # Unlock the critical section if it was locked if test "$need_locks" != no; then removelist=$lockfile $RM "$lockfile" fi } exit $EXIT_SUCCESS } $opt_help || { test "$mode" = compile && func_mode_compile ${1+"$@"} } func_mode_help () { # We need to display help for each of the modes. case $mode in "") # Generic help is extracted from the usage comments # at the start of this file. func_help ;; clean) $ECHO \ "Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... Remove files from the build directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, object or program, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; compile) $ECHO \ "Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE Compile a source file into a libtool library object. This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -no-suppress do not suppress compiler output for multiple passes -prefer-pic try to building PIC objects only -prefer-non-pic try to building non-PIC objects only -shared do not build a \`.o' file suitable for static linking -static only build a \`.o' file suitable for static linking COMPILE-COMMAND is a command to be used in creating a \`standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from SOURCEFILE, then substituting the C source code suffix \`.c' with the library object suffix, \`.lo'." ;; execute) $ECHO \ "Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... Automatically set library path, then run a program. This mode accepts the following additional options: -dlopen FILE add the directory containing FILE to the library path This mode sets the library path environment variable according to \`-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated into their corresponding uninstalled binary, and any of their required library directories are added to the library path. Then, COMMAND is executed, with ARGS as arguments." ;; finish) $ECHO \ "Usage: $progname [OPTION]... --mode=finish [LIBDIR]... Complete the installation of libtool libraries. Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use the \`--dry-run' option if you just want to see what would be executed." ;; install) $ECHO \ "Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be either the \`install' or \`cp' program. The following components of INSTALL-COMMAND are treated specially: -inst-prefix PREFIX-DIR Use PREFIX-DIR as a staging area for installation The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $ECHO \ "Usage: $progname [OPTION]... --mode=link LINK-COMMAND... Link object files or libraries together to form another library, or to create an executable program. LINK-COMMAND is a command using the C compiler that you would use to create a program from several object files. The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened -no-fast-install disable the fast-install mode -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -objectlist FILE Use a list of object files found in FILE to specify objects -precious-files-regex REGEX don't remove output files matching REGEX -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -shared only do dynamic linking of libtool libraries -shrext SUFFIX override the standard shared library file extension -static do not do any dynamic linking of uninstalled libtool libraries -static-libtool-libs do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] -weak LIBNAME declare that the target provides the LIBNAME interface All other options (arguments beginning with \`-') are ignored. Every other argument is treated as a filename. Files ending in \`.la' are treated as uninstalled libtool libraries, other files are standard or library object files. If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only library objects (\`.lo' files) may be specified, and \`-rpath' is required, except when creating a convenience library. If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created using \`ar' and \`ranlib', or on Windows using \`lib'. If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file is created, otherwise an executable program is created." ;; uninstall) $ECHO \ "Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; *) func_fatal_help "invalid operation mode \`$mode'" ;; esac $ECHO $ECHO "Try \`$progname --help' for more information about other modes." exit $? } # Now that we've collected a possible --mode arg, show help if necessary $opt_help && func_mode_help # func_mode_execute arg... func_mode_execute () { $opt_debug # The first argument is the command name. cmd="$nonopt" test -z "$cmd" && \ func_fatal_help "you must specify a COMMAND" # Handle -dlopen flags immediately. for file in $execute_dlfiles; do test -f "$file" \ || func_fatal_help "\`$file' is not a file" dir= case $file in *.la) # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$lib' is not a valid libtool archive" # Read the libtool library. dlname= library_names= func_source "$file" # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && \ func_warning "\`$file' was not linked with \`-export-dynamic'" continue fi func_dirname "$file" "" "." dir="$func_dirname_result" if test -f "$dir/$objdir/$dlname"; then dir="$dir/$objdir" else if test ! -f "$dir/$dlname"; then func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" fi fi ;; *.lo) # Just add the directory containing the .lo file. func_dirname "$file" "" "." dir="$func_dirname_result" ;; *) func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` test -n "$absdir" && dir="$absdir" # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then eval "$shlibpath_var=\"\$dir\"" else eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" fi done # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. libtool_execute_magic="$magic" # Check if any of the arguments is a wrapper script. args= for file do case $file in -*) ;; *) # Do a test to see if this is really a libtool program. if func_ltwrapper_script_p "$file"; then func_source "$file" # Transform arg to wrapped name. file="$progdir/$program" elif func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" func_source "$func_ltwrapper_scriptname_result" # Transform arg to wrapped name. file="$progdir/$program" fi ;; esac # Quote arguments (to preserve shell metacharacters). func_quote_for_eval "$file" args="$args $func_quote_for_eval_result" done if test "X$opt_dry_run" = Xfalse; then if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved environment variables for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${save_$lt_var+set}\" = set; then $lt_var=\$save_$lt_var; export $lt_var else $lt_unset $lt_var fi" done # Now prepare to actually exec the command. exec_cmd="\$cmd$args" else # Display what would be done. if test -n "$shlibpath_var"; then eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" $ECHO "export $shlibpath_var" fi $ECHO "$cmd$args" exit $EXIT_SUCCESS fi } test "$mode" = execute && func_mode_execute ${1+"$@"} # func_mode_finish arg... func_mode_finish () { $opt_debug libdirs="$nonopt" admincmds= if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for dir do libdirs="$libdirs $dir" done for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. func_execute_cmds "$finish_cmds" 'admincmds="$admincmds '"$cmd"'"' fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $opt_dry_run || eval "$cmds" || admincmds="$admincmds $cmds" fi done fi # Exit here if they wanted silent mode. $opt_silent && exit $EXIT_SUCCESS $ECHO "X----------------------------------------------------------------------" | $Xsed $ECHO "Libraries have been installed in:" for libdir in $libdirs; do $ECHO " $libdir" done $ECHO $ECHO "If you ever happen to want to link against installed libraries" $ECHO "in a given directory, LIBDIR, you must either use libtool, and" $ECHO "specify the full pathname of the library, or use the \`-LLIBDIR'" $ECHO "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then $ECHO " - add LIBDIR to the \`$shlibpath_var' environment variable" $ECHO " during execution" fi if test -n "$runpath_var"; then $ECHO " - add LIBDIR to the \`$runpath_var' environment variable" $ECHO " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" $ECHO " - use the \`$flag' linker flag" fi if test -n "$admincmds"; then $ECHO " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then $ECHO " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" fi $ECHO $ECHO "See any operating system documentation about shared libraries for" case $host in solaris2.[6789]|solaris2.1[0-9]) $ECHO "more information, such as the ld(1), crle(1) and ld.so(8) manual" $ECHO "pages." ;; *) $ECHO "more information, such as the ld(1) and ld.so(8) manual pages." ;; esac $ECHO "X----------------------------------------------------------------------" | $Xsed exit $EXIT_SUCCESS } test "$mode" = finish && func_mode_finish ${1+"$@"} # func_mode_install arg... func_mode_install () { $opt_debug # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || # Allow the use of GNU shtool's install command. $ECHO "X$nonopt" | $GREP shtool >/dev/null; then # Aesthetically quote it. func_quote_for_eval "$nonopt" install_prog="$func_quote_for_eval_result " arg=$1 shift else install_prog= arg=$nonopt fi # The real first argument should be the name of the installation program. # Aesthetically quote it. func_quote_for_eval "$arg" install_prog="$install_prog$func_quote_for_eval_result" # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=no stripme= for arg do if test -n "$dest"; then files="$files $dest" dest=$arg continue fi case $arg in -d) isdir=yes ;; -f) case " $install_prog " in *[\\\ /]cp\ *) ;; *) prev=$arg ;; esac ;; -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then prev= else dest=$arg continue fi ;; esac # Aesthetically quote the argument. func_quote_for_eval "$arg" install_prog="$install_prog $func_quote_for_eval_result" done test -z "$install_prog" && \ func_fatal_help "you must specify an install program" test -n "$prev" && \ func_fatal_help "the \`$prev' option requires an argument" if test -z "$files"; then if test -z "$dest"; then func_fatal_help "no file or destination specified" else func_fatal_help "you must specify a destination" fi fi # Strip any trailing slash from the destination. func_stripname '' '/' "$dest" dest=$func_stripname_result # Check to see that the destination is a directory. test -d "$dest" && isdir=yes if test "$isdir" = yes; then destdir="$dest" destname= else func_dirname_and_basename "$dest" "" "." destdir="$func_dirname_result" destname="$func_basename_result" # Not a directory, so check to see that there is only one file specified. set dummy $files; shift test "$#" -gt 1 && \ func_fatal_help "\`$dest' is not a directory" fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) func_fatal_help "\`$destdir' must be an absolute directory name" ;; esac done ;; esac # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" staticlibs= future_libdirs= current_libdirs= for file in $files; do # Do each installation. case $file in *.$libext) # Do the static libraries later. staticlibs="$staticlibs $file" ;; *.la) # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$file' is not a valid libtool archive" library_names= old_library= relink_command= func_source "$file" # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) current_libdirs="$current_libdirs $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) future_libdirs="$future_libdirs $libdir" ;; esac fi func_dirname "$file" "/" "" dir="$func_dirname_result" dir="$dir$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that # are installed to the same prefix. # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. test "$inst_prefix_dir" = "$destdir" && \ func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"` fi func_warning "relinking \`$file'" func_show_eval "$relink_command" \ 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' fi # See the names of the shared library. set dummy $library_names; shift if test -n "$1"; then realname="$1" shift srcname="$realname" test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \ 'exit $?' tstripme="$stripme" case $host_os in cygwin* | mingw* | pw32* | cegcc*) case $realname in *.dll.a) tstripme="" ;; esac ;; esac if test -n "$tstripme" && test -n "$striplib"; then func_show_eval "$striplib $destdir/$realname" 'exit $?' fi if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. # Try `ln -sf' first, because the `ln' binary might depend on # the symlink we replace! Solaris /bin/ln does not understand -f, # so we also need to try rm && ln -s. for linkname do test "$linkname" != "$realname" \ && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" done fi # Do each command in the postinstall commands. lib="$destdir/$realname" func_execute_cmds "$postinstall_cmds" 'exit $?' fi # Install the pseudo-library for information purposes. func_basename "$file" name="$func_basename_result" instname="$dir/$name"i func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' # Maybe install the static library, too. test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" ;; *.lo) # Install (i.e. copy) a libtool object. # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) func_lo2o "$destfile" staticdest=$func_lo2o_result ;; *.$objext) staticdest="$destfile" destfile= ;; *) func_fatal_help "cannot copy a libtool object to \`$destfile'" ;; esac # Install the libtool object if requested. test -n "$destfile" && \ func_show_eval "$install_prog $file $destfile" 'exit $?' # Install the old object if enabled. if test "$build_old_libs" = yes; then # Deduce the name of the old-style object file. func_lo2o "$file" staticobj=$func_lo2o_result func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' fi exit $EXIT_SUCCESS ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # If the file is missing, and there is a .exe on the end, strip it # because it is most likely a libtool script we actually want to # install stripped_ext="" case $file in *.exe) if test ! -f "$file"; then func_stripname '' '.exe' "$file" file=$func_stripname_result stripped_ext=".exe" fi ;; esac # Do a test to see if this is really a libtool program. case $host in *cygwin* | *mingw*) if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" wrapper=$func_ltwrapper_scriptname_result else func_stripname '' '.exe' "$file" wrapper=$func_stripname_result fi ;; *) wrapper=$file ;; esac if func_ltwrapper_script_p "$wrapper"; then notinst_deplibs= relink_command= func_source "$wrapper" # Check the variables that should have been set. test -z "$generated_by_libtool_version" && \ func_fatal_error "invalid libtool wrapper script \`$wrapper'" finalize=yes for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then func_source "$lib" fi libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then func_warning "\`$lib' has not been installed in \`$libdir'" finalize=no fi done relink_command= func_source "$wrapper" outputname= if test "$fast_install" = no && test -n "$relink_command"; then $opt_dry_run || { if test "$finalize" = yes; then tmpdir=`func_mktempdir` func_basename "$file$stripped_ext" file="$func_basename_result" outputname="$tmpdir/$file" # Replace the output file specification. relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` $opt_silent || { func_quote_for_expand "$relink_command" eval "func_echo $func_quote_for_expand_result" } if eval "$relink_command"; then : else func_error "error: relink \`$file' with the above command before installing it" $opt_dry_run || ${RM}r "$tmpdir" continue fi file="$outputname" else func_warning "cannot relink \`$file'" fi } else # Install the binary that we compiled earlier. file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another # one anyway case $install_prog,$host in */usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) func_stripname '' '.exe' "$destfile" destfile=$func_stripname_result ;; esac ;; esac func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' $opt_dry_run || if test -n "$outputname"; then ${RM}r "$tmpdir" fi ;; esac done for file in $staticlibs; do func_basename "$file" name="$func_basename_result" # Set up the ranlib parameters. oldlib="$destdir/$name" func_show_eval "$install_prog \$file \$oldlib" 'exit $?' if test -n "$stripme" && test -n "$old_striplib"; then func_show_eval "$old_striplib $oldlib" 'exit $?' fi # Do each command in the postinstall commands. func_execute_cmds "$old_postinstall_cmds" 'exit $?' done test -n "$future_libdirs" && \ func_warning "remember to run \`$progname --finish$future_libdirs'" if test -n "$current_libdirs"; then # Maybe just do a dry run. $opt_dry_run && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi } test "$mode" = install && func_mode_install ${1+"$@"} # func_generate_dlsyms outputname originator pic_p # Extract symbols from dlprefiles and create ${outputname}S.o with # a dlpreopen symbol table. func_generate_dlsyms () { $opt_debug my_outputname="$1" my_originator="$2" my_pic_p="${3-no}" my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` my_dlsyms= if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then if test -n "$NM" && test -n "$global_symbol_pipe"; then my_dlsyms="${my_outputname}S.c" else func_error "not configured to extract global symbols from dlpreopened files" fi fi if test -n "$my_dlsyms"; then case $my_dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist="$output_objdir/${my_outputname}.nm" func_show_eval "$RM $nlist ${nlist}S ${nlist}T" # Parse the name list into a source file. func_verbose "creating $output_objdir/$my_dlsyms" $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ /* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ /* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ #ifdef __cplusplus extern \"C\" { #endif /* External symbol declarations for the compiler. */\ " if test "$dlself" = yes; then func_verbose "generating symbol list for \`$output'" $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` for progfile in $progfiles; do func_verbose "extracting global C symbols from \`$progfile'" $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $opt_dry_run || { eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi if test -n "$export_symbols_regex"; then $opt_dry_run || { eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols="$output_objdir/$outputname.exp" $opt_dry_run || { $RM $export_symbols eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;; esac } else $opt_dry_run || { eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' case $host in *cygwin | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; esac } fi fi for dlprefile in $dlprefiles; do func_verbose "extracting global C symbols from \`$dlprefile'" func_basename "$dlprefile" name="$func_basename_result" $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'" } done $opt_dry_run || { # Make sure we have at least an empty file. test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $MV "$nlist"T "$nlist" fi # Try sorting and uniquifying the output. if $GREP -v "^: " < "$nlist" | if sort -k 3 /dev/null 2>&1; then sort -k 3 else sort +2 fi | uniq > "$nlist"S; then : else $GREP -v "^: " < "$nlist" > "$nlist"S fi if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' else $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms" fi $ECHO >> "$output_objdir/$my_dlsyms" "\ /* The mapping between symbol names and symbols. */ typedef struct { const char *name; void *address; } lt_dlsymlist; " case $host in *cygwin* | *mingw* | *cegcc* ) $ECHO >> "$output_objdir/$my_dlsyms" "\ /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */" lt_dlsym_const= ;; *osf5*) echo >> "$output_objdir/$my_dlsyms" "\ /* This system does not cope well with relocations in const data */" lt_dlsym_const= ;; *) lt_dlsym_const=const ;; esac $ECHO >> "$output_objdir/$my_dlsyms" "\ extern $lt_dlsym_const lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[]; $lt_dlsym_const lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[] = {\ { \"$my_originator\", (void *) 0 }," case $need_lib_prefix in no) eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; *) eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; esac $ECHO >> "$output_objdir/$my_dlsyms" "\ {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_${my_prefix}_LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " } # !$opt_dry_run pic_flag_for_symtable= case "$compile_command " in *" -static "*) ;; *) case $host in # compiling the symbol table file with pic_flag works around # a FreeBSD bug that causes programs to crash when -lm is # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; *-*-hpux*) pic_flag_for_symtable=" $pic_flag" ;; *) if test "X$my_pic_p" != Xno; then pic_flag_for_symtable=" $pic_flag" fi ;; esac ;; esac symtab_cflags= for arg in $LTCFLAGS; do case $arg in -pie | -fpie | -fPIE) ;; *) symtab_cflags="$symtab_cflags $arg" ;; esac done # Now compile the dynamic symbol file. func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' # Clean up the generated files. func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' # Transform the symbol file into the correct name. symfileobj="$output_objdir/${my_outputname}S.$objext" case $host in *cygwin* | *mingw* | *cegcc* ) if test -f "$output_objdir/$my_outputname.def"; then compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` else compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` fi ;; *) compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` ;; esac ;; *) func_fatal_error "unknown suffix for \`$my_dlsyms'" ;; esac else # We keep going just in case the user didn't refer to # lt_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. # Nullify the symbol file. compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` fi } # func_win32_libid arg # return the library type of file 'arg' # # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. func_win32_libid () { $opt_debug win32_libid_type="unknown" win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in *ar\ archive\ import\ library*) # definitely import win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then win32_nmres=`eval $NM -f posix -A $1 | $SED -n -e ' 1,100{ / I /{ s,.*,import, p q } }'` case $win32_nmres in import*) win32_libid_type="x86 archive import";; *) win32_libid_type="x86 archive static";; esac fi ;; *DLL*) win32_libid_type="x86 DLL" ;; *executable*) # but shell scripts are "executable" too... case $win32_fileres in *MS\ Windows\ PE\ Intel*) win32_libid_type="x86 DLL" ;; esac ;; esac $ECHO "$win32_libid_type" } # func_extract_an_archive dir oldlib func_extract_an_archive () { $opt_debug f_ex_an_ar_dir="$1"; shift f_ex_an_ar_oldlib="$1" func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" 'exit $?' if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" fi } # func_extract_archives gentop oldlib ... func_extract_archives () { $opt_debug my_gentop="$1"; shift my_oldlibs=${1+"$@"} my_oldobjs="" my_xlib="" my_xabs="" my_xdir="" for my_xlib in $my_oldlibs; do # Extract the objects. case $my_xlib in [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; *) my_xabs=`pwd`"/$my_xlib" ;; esac func_basename "$my_xlib" my_xlib="$func_basename_result" my_xlib_u=$my_xlib while :; do case " $extracted_archives " in *" $my_xlib_u "*) func_arith $extracted_serial + 1 extracted_serial=$func_arith_result my_xlib_u=lt$extracted_serial-$my_xlib ;; *) break ;; esac done extracted_archives="$extracted_archives $my_xlib_u" my_xdir="$my_gentop/$my_xlib_u" func_mkdir_p "$my_xdir" case $host in *-darwin*) func_verbose "Extracting $my_xabs" # Do not bother doing anything if just a dry run $opt_dry_run || { darwin_orig_dir=`pwd` cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` darwin_base_archive=`basename "$darwin_archive"` darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` if test -n "$darwin_arches"; then darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` darwin_arch= func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" for darwin_arch in $darwin_arches ; do func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" func_extract_an_archive "`pwd`" "${darwin_base_archive}" cd "$darwin_curdir" $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" done # $darwin_arches ## Okay now we've a bunch of thin objects, gotta fatten them up :) darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` $LIPO -create -output "$darwin_file" $darwin_files done # $darwin_filelist $RM -rf unfat-$$ cd "$darwin_orig_dir" else cd $darwin_orig_dir func_extract_an_archive "$my_xdir" "$my_xabs" fi # $darwin_arches } # !$opt_dry_run ;; *) func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` done func_extract_archives_result="$my_oldobjs" } # func_emit_wrapper_part1 [arg=no] # # Emit the first part of a libtool wrapper script on stdout. # For more information, see the description associated with # func_emit_wrapper(), below. func_emit_wrapper_part1 () { func_emit_wrapper_part1_arg1=no if test -n "$1" ; then func_emit_wrapper_part1_arg1=$1 fi $ECHO "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. # # This wrapper script should never be moved out of the build directory. # If it is, it will not operate correctly. # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed='${SED} -e 1s/^X//' sed_quote_subst='$sed_quote_subst' # Be Bourne compatible if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variables: generated_by_libtool_version='$macro_version' notinst_deplibs='$notinst_deplibs' else # When we are sourced in execute mode, \$file and \$ECHO are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then ECHO=\"$qecho\" file=\"\$0\" # Make sure echo works. if test \"X\$1\" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then # Yippee, \$ECHO works! : else # Restart under the correct shell, and then maybe \$ECHO will work. exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} fi fi\ " $ECHO "\ # Find the directory that this script lives in. thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` while test -n \"\$file\"; do destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then case \"\$destdir\" in [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` done " } # end: func_emit_wrapper_part1 # func_emit_wrapper_part2 [arg=no] # # Emit the second part of a libtool wrapper script on stdout. # For more information, see the description associated with # func_emit_wrapper(), below. func_emit_wrapper_part2 () { func_emit_wrapper_part2_arg1=no if test -n "$1" ; then func_emit_wrapper_part2_arg1=$1 fi $ECHO "\ # Usually 'no', except on cygwin/mingw when embedded into # the cwrapper. WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_arg1 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then # special case for '.' if test \"\$thisdir\" = \".\"; then thisdir=\`pwd\` fi # remove .libs from thisdir case \"\$thisdir\" in *[\\\\/]$objdir ) thisdir=\`\$ECHO \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;; $objdir ) thisdir=. ;; esac fi # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test "$fast_install" = yes; then $ECHO "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" if test ! -d \"\$progdir\"; then $MKDIR \"\$progdir\" else $RM \"\$progdir/\$file\" fi" $ECHO "\ # relink executable if necessary if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else $ECHO \"\$relink_command_output\" >&2 $RM \"\$progdir/\$file\" exit 1 fi fi $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $RM \"\$progdir/\$program\"; $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } $RM \"\$progdir/\$file\" fi" else $ECHO "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi $ECHO "\ if test -f \"\$progdir/\$program\"; then" # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $ECHO "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed $shlibpath_var=\`\$ECHO \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` export $shlibpath_var " fi # fixup the dll searchpath if we need to. if test -n "$dllsearchpath"; then $ECHO "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi $ECHO "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2* | *-cegcc*) $ECHO "\ exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $ECHO "\ exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $ECHO "\ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 exit 1 fi else # The program doesn't exist. \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 $ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 exit 1 fi fi\ " } # end: func_emit_wrapper_part2 # func_emit_wrapper [arg=no] # # Emit a libtool wrapper script on stdout. # Don't directly open a file because we may want to # incorporate the script contents within a cygwin/mingw # wrapper executable. Must ONLY be called from within # func_mode_link because it depends on a number of variables # set therein. # # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR # variable will take. If 'yes', then the emitted script # will assume that the directory in which it is stored is # the $objdir directory. This is a cygwin/mingw-specific # behavior. func_emit_wrapper () { func_emit_wrapper_arg1=no if test -n "$1" ; then func_emit_wrapper_arg1=$1 fi # split this up so that func_emit_cwrapperexe_src # can call each part independently. func_emit_wrapper_part1 "${func_emit_wrapper_arg1}" func_emit_wrapper_part2 "${func_emit_wrapper_arg1}" } # func_to_host_path arg # # Convert paths to host format when used with build tools. # Intended for use with "native" mingw (where libtool itself # is running under the msys shell), or in the following cross- # build environments: # $build $host # mingw (msys) mingw [e.g. native] # cygwin mingw # *nix + wine mingw # where wine is equipped with the `winepath' executable. # In the native mingw case, the (msys) shell automatically # converts paths for any non-msys applications it launches, # but that facility isn't available from inside the cwrapper. # Similar accommodations are necessary for $host mingw and # $build cygwin. Calling this function does no harm for other # $host/$build combinations not listed above. # # ARG is the path (on $build) that should be converted to # the proper representation for $host. The result is stored # in $func_to_host_path_result. func_to_host_path () { func_to_host_path_result="$1" if test -n "$1" ; then case $host in *mingw* ) lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' case $build in *mingw* ) # actually, msys # awkward: cmd appends spaces to result lt_sed_strip_trailing_spaces="s/[ ]*\$//" func_to_host_path_tmp1=`( cmd //c echo "$1" |\ $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ $SED -e "$lt_sed_naive_backslashify"` ;; *cygwin* ) func_to_host_path_tmp1=`cygpath -w "$1"` func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ $SED -e "$lt_sed_naive_backslashify"` ;; * ) # Unfortunately, winepath does not exit with a non-zero # error code, so we are forced to check the contents of # stdout. On the other hand, if the command is not # found, the shell will set an exit code of 127 and print # *an error message* to stdout. So we must check for both # error code of zero AND non-empty stdout, which explains # the odd construction: func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null` if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ $SED -e "$lt_sed_naive_backslashify"` else # Allow warning below. func_to_host_path_result="" fi ;; esac if test -z "$func_to_host_path_result" ; then func_error "Could not determine host path corresponding to" func_error " '$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback: func_to_host_path_result="$1" fi ;; esac fi } # end: func_to_host_path # func_to_host_pathlist arg # # Convert pathlists to host format when used with build tools. # See func_to_host_path(), above. This function supports the # following $build/$host combinations (but does no harm for # combinations not listed here): # $build $host # mingw (msys) mingw [e.g. native] # cygwin mingw # *nix + wine mingw # # Path separators are also converted from $build format to # $host format. If ARG begins or ends with a path separator # character, it is preserved (but converted to $host format) # on output. # # ARG is a pathlist (on $build) that should be converted to # the proper representation on $host. The result is stored # in $func_to_host_pathlist_result. func_to_host_pathlist () { func_to_host_pathlist_result="$1" if test -n "$1" ; then case $host in *mingw* ) lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' # Remove leading and trailing path separator characters from # ARG. msys behavior is inconsistent here, cygpath turns them # into '.;' and ';.', and winepath ignores them completely. func_to_host_pathlist_tmp2="$1" # Once set for this call, this variable should not be # reassigned. It is used in tha fallback case. func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\ $SED -e 's|^:*||' -e 's|:*$||'` case $build in *mingw* ) # Actually, msys. # Awkward: cmd appends spaces to result. lt_sed_strip_trailing_spaces="s/[ ]*\$//" func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\ $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ $SED -e "$lt_sed_naive_backslashify"` ;; *cygwin* ) func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"` func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ $SED -e "$lt_sed_naive_backslashify"` ;; * ) # unfortunately, winepath doesn't convert pathlists func_to_host_pathlist_result="" func_to_host_pathlist_oldIFS=$IFS IFS=: for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do IFS=$func_to_host_pathlist_oldIFS if test -n "$func_to_host_pathlist_f" ; then func_to_host_path "$func_to_host_pathlist_f" if test -n "$func_to_host_path_result" ; then if test -z "$func_to_host_pathlist_result" ; then func_to_host_pathlist_result="$func_to_host_path_result" else func_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result" fi fi fi IFS=: done IFS=$func_to_host_pathlist_oldIFS ;; esac if test -z "$func_to_host_pathlist_result" ; then func_error "Could not determine the host path(s) corresponding to" func_error " '$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback. This may break if $1 contains DOS-style drive # specifications. The fix is not to complicate the expression # below, but for the user to provide a working wine installation # with winepath so that path translation in the cross-to-mingw # case works properly. lt_replace_pathsep_nix_to_dos="s|:|;|g" func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\ $SED -e "$lt_replace_pathsep_nix_to_dos"` fi # Now, add the leading and trailing path separators back case "$1" in :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result" ;; esac case "$1" in *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;" ;; esac ;; esac fi } # end: func_to_host_pathlist # func_emit_cwrapperexe_src # emit the source code for a wrapper executable on stdout # Must ONLY be called from within func_mode_link because # it depends on a number of variable set therein. func_emit_cwrapperexe_src () { cat < #include #ifdef _MSC_VER # include # include # include # define setmode _setmode #else # include # include # ifdef __CYGWIN__ # include # define HAVE_SETENV # ifdef __STRICT_ANSI__ char *realpath (const char *, char *); int putenv (char *); int setenv (const char *, const char *, int); # endif # endif #endif #include #include #include #include #include #include #include #include #if defined(PATH_MAX) # define LT_PATHMAX PATH_MAX #elif defined(MAXPATHLEN) # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 #endif #ifndef S_IXOTH # define S_IXOTH 0 #endif #ifndef S_IXGRP # define S_IXGRP 0 #endif #ifdef _MSC_VER # define S_IXUSR _S_IEXEC # define stat _stat # ifndef _INTPTR_T_DEFINED # define intptr_t int # endif #endif #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' #endif #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ defined (__OS2__) # define HAVE_DOS_BASED_FILE_SYSTEM # define FOPEN_WB "wb" # ifndef DIR_SEPARATOR_2 # define DIR_SEPARATOR_2 '\\' # endif # ifndef PATH_SEPARATOR_2 # define PATH_SEPARATOR_2 ';' # endif #endif #ifndef DIR_SEPARATOR_2 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) #else /* DIR_SEPARATOR_2 */ # define IS_DIR_SEPARATOR(ch) \ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) #endif /* DIR_SEPARATOR_2 */ #ifndef PATH_SEPARATOR_2 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) #else /* PATH_SEPARATOR_2 */ # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) #endif /* PATH_SEPARATOR_2 */ #ifdef __CYGWIN__ # define FOPEN_WB "wb" #endif #ifndef FOPEN_WB # define FOPEN_WB "w" #endif #ifndef _O_BINARY # define _O_BINARY 0 #endif #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free ((void *) stale); stale = 0; } \ } while (0) #undef LTWRAPPER_DEBUGPRINTF #if defined DEBUGWRAPPER # define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args static void ltwrapper_debugprintf (const char *fmt, ...) { va_list args; va_start (args, fmt); (void) vfprintf (stderr, fmt, args); va_end (args); } #else # define LTWRAPPER_DEBUGPRINTF(args) #endif const char *program_name = NULL; void *xmalloc (size_t num); char *xstrdup (const char *string); const char *base_name (const char *name); char *find_executable (const char *wrapper); char *chase_symlinks (const char *pathspec); int make_executable (const char *path); int check_executable (const char *path); char *strendzap (char *str, const char *pat); void lt_fatal (const char *message, ...); void lt_setenv (const char *name, const char *value); char *lt_extend_str (const char *orig_value, const char *add, int to_end); void lt_opt_process_env_set (const char *arg); void lt_opt_process_env_prepend (const char *arg); void lt_opt_process_env_append (const char *arg); int lt_split_name_value (const char *arg, char** name, char** value); void lt_update_exe_path (const char *name, const char *value); void lt_update_lib_path (const char *name, const char *value); static const char *script_text_part1 = EOF func_emit_wrapper_part1 yes | $SED -e 's/\([\\"]\)/\\\1/g' \ -e 's/^/ "/' -e 's/$/\\n"/' echo ";" cat <"))); for (i = 0; i < newargc; i++) { LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d] : %s\n", i, (newargz[i] ? newargz[i] : ""))); } EOF case $host_os in mingw*) cat <<"EOF" /* execv doesn't actually work on mingw as expected on unix */ rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz); if (rval == -1) { /* failed to start process */ LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno)); return 127; } return rval; EOF ;; *) cat <<"EOF" execv (lt_argv_zero, newargz); return rval; /* =127, but avoids unused variable warning */ EOF ;; esac cat <<"EOF" } void * xmalloc (size_t num) { void *p = (void *) malloc (num); if (!p) lt_fatal ("Memory exhausted"); return p; } char * xstrdup (const char *string) { return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL; } const char * base_name (const char *name) { const char *base; #if defined (HAVE_DOS_BASED_FILE_SYSTEM) /* Skip over the disk name in MSDOS pathnames. */ if (isalpha ((unsigned char) name[0]) && name[1] == ':') name += 2; #endif for (base = name; *name; name++) if (IS_DIR_SEPARATOR (*name)) base = name + 1; return base; } int check_executable (const char *path) { struct stat st; LTWRAPPER_DEBUGPRINTF (("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!")); if ((!path) || (!*path)) return 0; if ((stat (path, &st) >= 0) && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) return 1; else return 0; } int make_executable (const char *path) { int rval = 0; struct stat st; LTWRAPPER_DEBUGPRINTF (("(make_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!")); if ((!path) || (!*path)) return 0; if (stat (path, &st) >= 0) { rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); } return rval; } /* Searches for the full path of the wrapper. Returns newly allocated full path name if found, NULL otherwise Does not chase symlinks, even on platforms that support them. */ char * find_executable (const char *wrapper) { int has_slash = 0; const char *p; const char *p_next; /* static buffer for getcwd */ char tmp[LT_PATHMAX + 1]; int tmp_len; char *concat_name; LTWRAPPER_DEBUGPRINTF (("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!")); if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; /* Absolute path? */ #if defined (HAVE_DOS_BASED_FILE_SYSTEM) if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } else { #endif if (IS_DIR_SEPARATOR (wrapper[0])) { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } #if defined (HAVE_DOS_BASED_FILE_SYSTEM) } #endif for (p = wrapper; *p; p++) if (*p == '/') { has_slash = 1; break; } if (!has_slash) { /* no slashes; search PATH */ const char *path = getenv ("PATH"); if (path != NULL) { for (p = path; *p; p = p_next) { const char *q; size_t p_len; for (q = p; *q; q++) if (IS_PATH_SEPARATOR (*q)) break; p_len = q - p; p_next = (*q == '\0' ? q : q + 1); if (p_len == 0) { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); } else { concat_name = XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, p, p_len); concat_name[p_len] = '/'; strcpy (concat_name + p_len + 1, wrapper); } if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } } /* not found in PATH; assume curdir */ } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); return NULL; } char * chase_symlinks (const char *pathspec) { #ifndef S_ISLNK return xstrdup (pathspec); #else char buf[LT_PATHMAX]; struct stat s; char *tmp_pathspec = xstrdup (pathspec); char *p; int has_symlinks = 0; while (strlen (tmp_pathspec) && !has_symlinks) { LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n", tmp_pathspec)); if (lstat (tmp_pathspec, &s) == 0) { if (S_ISLNK (s.st_mode) != 0) { has_symlinks = 1; break; } /* search backwards for last DIR_SEPARATOR */ p = tmp_pathspec + strlen (tmp_pathspec) - 1; while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) p--; if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) { /* no more DIR_SEPARATORS left */ break; } *p = '\0'; } else { char *errstr = strerror (errno); lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr); } } XFREE (tmp_pathspec); if (!has_symlinks) { return xstrdup (pathspec); } tmp_pathspec = realpath (pathspec, buf); if (tmp_pathspec == 0) { lt_fatal ("Could not follow symlinks for %s", pathspec); } return xstrdup (tmp_pathspec); #endif } char * strendzap (char *str, const char *pat) { size_t len, patlen; assert (str != NULL); assert (pat != NULL); len = strlen (str); patlen = strlen (pat); if (patlen <= len) { str += len - patlen; if (strcmp (str, pat) == 0) *str = '\0'; } return str; } static void lt_error_core (int exit_status, const char *mode, const char *message, va_list ap) { fprintf (stderr, "%s: %s: ", program_name, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, "FATAL", message, ap); va_end (ap); } void lt_setenv (const char *name, const char *value) { LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n", (name ? name : ""), (value ? value : ""))); { #ifdef HAVE_SETENV /* always make a copy, for consistency with !HAVE_SETENV */ char *str = xstrdup (value); setenv (name, str, 1); #else int len = strlen (name) + 1 + strlen (value) + 1; char *str = XMALLOC (char, len); sprintf (str, "%s=%s", name, value); if (putenv (str) != EXIT_SUCCESS) { XFREE (str); } #endif } } char * lt_extend_str (const char *orig_value, const char *add, int to_end) { char *new_value; if (orig_value && *orig_value) { int orig_value_len = strlen (orig_value); int add_len = strlen (add); new_value = XMALLOC (char, add_len + orig_value_len + 1); if (to_end) { strcpy (new_value, orig_value); strcpy (new_value + orig_value_len, add); } else { strcpy (new_value, add); strcpy (new_value + add_len, orig_value); } } else { new_value = xstrdup (add); } return new_value; } int lt_split_name_value (const char *arg, char** name, char** value) { const char *p; int len; if (!arg || !*arg) return 1; p = strchr (arg, (int)'='); if (!p) return 1; *value = xstrdup (++p); len = strlen (arg) - strlen (*value); *name = XMALLOC (char, len); strncpy (*name, arg, len-1); (*name)[len - 1] = '\0'; return 0; } void lt_opt_process_env_set (const char *arg) { char *name = NULL; char *value = NULL; if (lt_split_name_value (arg, &name, &value) != 0) { XFREE (name); XFREE (value); lt_fatal ("bad argument for %s: '%s'", env_set_opt, arg); } lt_setenv (name, value); XFREE (name); XFREE (value); } void lt_opt_process_env_prepend (const char *arg) { char *name = NULL; char *value = NULL; char *new_value = NULL; if (lt_split_name_value (arg, &name, &value) != 0) { XFREE (name); XFREE (value); lt_fatal ("bad argument for %s: '%s'", env_prepend_opt, arg); } new_value = lt_extend_str (getenv (name), value, 0); lt_setenv (name, new_value); XFREE (new_value); XFREE (name); XFREE (value); } void lt_opt_process_env_append (const char *arg) { char *name = NULL; char *value = NULL; char *new_value = NULL; if (lt_split_name_value (arg, &name, &value) != 0) { XFREE (name); XFREE (value); lt_fatal ("bad argument for %s: '%s'", env_append_opt, arg); } new_value = lt_extend_str (getenv (name), value, 1); lt_setenv (name, new_value); XFREE (new_value); XFREE (name); XFREE (value); } void lt_update_exe_path (const char *name, const char *value) { LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n", (name ? name : ""), (value ? value : ""))); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); /* some systems can't cope with a ':'-terminated path #' */ int len = strlen (new_value); while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) { new_value[len-1] = '\0'; } lt_setenv (name, new_value); XFREE (new_value); } } void lt_update_lib_path (const char *name, const char *value) { LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n", (name ? name : ""), (value ? value : ""))); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); lt_setenv (name, new_value); XFREE (new_value); } } EOF } # end: func_emit_cwrapperexe_src # func_mode_link arg... func_mode_link () { $opt_debug case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) # It is impossible to link a dll without this setting, and # we shouldn't force the makefile maintainer to figure out # which system we are compiling for in order to pass an extra # flag for every libtool invocation. # allow_undefined=no # FIXME: Unfortunately, there are problems with the above when trying # to make a dll which has undefined symbols, in which case not # even a static library is built. For now, we need to specify # -no-undefined on the libtool link line when we can be certain # that all symbols are satisfied, otherwise we get a static library. allow_undefined=yes ;; *) allow_undefined=yes ;; esac libtool_args=$nonopt base_compile="$nonopt $@" compile_command=$nonopt finalize_command=$nonopt compile_rpath= finalize_rpath= compile_shlibpath= finalize_shlibpath= convenience= old_convenience= deplibs= old_deplibs= compiler_flags= linker_flags= dllsearchpath= lib_search_path=`pwd` inst_prefix_dir= new_inherited_linker_flags= avoid_version=no dlfiles= dlprefiles= dlself=no export_dynamic=no export_symbols= export_symbols_regex= generated= libobjs= ltlibs= module=no no_install=no objs= non_pic_objects= precious_files_regex= prefer_static_libs=no preload=no prev= prevarg= release= rpath= xrpath= perm_rpath= temp_rpath= thread_safe=no vinfo= vinfo_number=no weak_libs= single_module="${wl}-single_module" func_infer_tag $base_compile # We need to know -static, to get the right output filenames. for arg do case $arg in -shared) test "$build_libtool_libs" != yes && \ func_fatal_configuration "can not build a shared library" build_old_libs=no break ;; -all-static | -static | -static-libtool-libs) case $arg in -all-static) if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then func_warning "complete static linking is impossible in this configuration" fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; -static) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=built ;; -static-libtool-libs) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; esac build_libtool_libs=no build_old_libs=yes break ;; esac done # See if our shared archives depend on static archives. test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do arg="$1" shift func_quote_for_eval "$arg" qarg=$func_quote_for_eval_unquoted_result func_append libtool_args " $func_quote_for_eval_result" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) func_append compile_command " @OUTPUT@" func_append finalize_command " @OUTPUT@" ;; esac case $prev in dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. func_append compile_command " @SYMFILE@" func_append finalize_command " @SYMFILE@" preload=yes fi case $arg in *.la | *.lo) ;; # We handle these cases below. force) if test "$dlself" = no; then dlself=needless export_dynamic=yes fi prev= continue ;; self) if test "$prev" = dlprefiles; then dlself=yes elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then dlself=yes else dlself=needless export_dynamic=yes fi prev= continue ;; *) if test "$prev" = dlfiles; then dlfiles="$dlfiles $arg" else dlprefiles="$dlprefiles $arg" fi prev= continue ;; esac ;; expsyms) export_symbols="$arg" test -f "$arg" \ || func_fatal_error "symbol file \`$arg' does not exist" prev= continue ;; expsyms_regex) export_symbols_regex="$arg" prev= continue ;; framework) case $host in *-*-darwin*) case "$deplibs " in *" $qarg.ltframework "*) ;; *) deplibs="$deplibs $qarg.ltframework" # this is fixed later ;; esac ;; esac prev= continue ;; inst_prefix) inst_prefix_dir="$arg" prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat "$save_arg"` do # moreargs="$moreargs $fil" arg=$fil # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi done else func_fatal_error "link input file \`$arg' does not exist" fi arg=$save_arg prev= continue ;; precious_regex) precious_files_regex="$arg" prev= continue ;; release) release="-$arg" prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;; *) rpath="$rpath $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) xrpath="$xrpath $arg" ;; esac fi prev= continue ;; shrext) shrext_cmds="$arg" prev= continue ;; weak) weak_libs="$weak_libs $arg" prev= continue ;; xcclinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xcompiler) compiler_flags="$compiler_flags $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xlinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $wl$qarg" prev= func_append compile_command " $wl$qarg" func_append finalize_command " $wl$qarg" continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac fi # test -n "$prev" prevarg="$arg" case $arg in -all-static) if test -n "$link_static_flag"; then # See comment for -static flag below, for more details. func_append compile_command " $link_static_flag" func_append finalize_command " $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. func_fatal_error "\`-allow-undefined' must not be used because it is the default" ;; -avoid-version) avoid_version=yes continue ;; -dlopen) prev=dlfiles continue ;; -dlpreopen) prev=dlprefiles continue ;; -export-dynamic) export_dynamic=yes continue ;; -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then func_fatal_error "more than one -exported-symbols argument is not allowed" fi if test "X$arg" = "X-export-symbols"; then prev=expsyms else prev=expsyms_regex fi continue ;; -framework) prev=framework continue ;; -inst-prefix-dir) prev=inst_prefix continue ;; # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) case $with_gcc/$host in no/*-*-irix* | /*-*-irix*) func_append compile_command " $arg" func_append finalize_command " $arg" ;; esac continue ;; -L*) func_stripname '-L' '' "$arg" dir=$func_stripname_result if test -z "$dir"; then if test "$#" -gt 0; then func_fatal_error "require no space between \`-L' and \`$1'" else func_fatal_error "need path for \`-L' option" fi fi # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` test -z "$absdir" && \ func_fatal_error "cannot determine absolute directory name of \`$dir'" dir="$absdir" ;; esac case "$deplibs " in *" -L$dir "*) ;; *) deplibs="$deplibs -L$dir" lib_search_path="$lib_search_path $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; ::) dllsearchpath=$dir;; *) dllsearchpath="$dllsearchpath:$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac continue ;; -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc*) # These systems don't actually have a C or math library (as such) continue ;; *-*-os2*) # These systems don't actually have a C library (as such) test "X$arg" = "X-lc" && continue ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. test "X$arg" = "X-lc" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework deplibs="$deplibs System.ltframework" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype test "X$arg" = "X-lc" && continue ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work test "X$arg" = "X-lc" && continue ;; esac elif test "X$arg" = "X-lc_r"; then case $host in *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi deplibs="$deplibs $arg" continue ;; -module) module=yes continue ;; # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. # Darwin uses the -arch flag to determine output architecture. -model|-arch|-isysroot) compiler_flags="$compiler_flags $arg" func_append compile_command " $arg" func_append finalize_command " $arg" prev=xcompiler continue ;; -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) compiler_flags="$compiler_flags $arg" func_append compile_command " $arg" func_append finalize_command " $arg" case "$new_inherited_linker_flags " in *" $arg "*) ;; * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;; esac continue ;; -multi_module) single_module="${wl}-multi_module" continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) # The PATH hackery in wrapper scripts is required on Windows # and Darwin in order for the loader to find any dlls it needs. func_warning "\`-no-install' is ignored for $host" func_warning "assuming \`-no-fast-install' instead" fast_install=no ;; *) no_install=yes ;; esac continue ;; -no-undefined) allow_undefined=no continue ;; -objectlist) prev=objectlist continue ;; -o) prev=output ;; -precious-files-regex) prev=precious_regex continue ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) func_stripname '-R' '' "$arg" dir=$func_stripname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac continue ;; -shared) # The effects of -shared are defined in a previous loop. continue ;; -shrext) prev=shrext continue ;; -static | -static-libtool-libs) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects # would be equivalent was wrong. It would break on at least # Digital Unix and AIX. continue ;; -thread-safe) thread_safe=yes continue ;; -version-info) prev=vinfo continue ;; -version-number) prev=vinfo vinfo_number=yes continue ;; -weak) prev=weak continue ;; -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" arg="$arg $wl$func_quote_for_eval_result" compiler_flags="$compiler_flags $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Wl,*) func_stripname '-Wl,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" arg="$arg $wl$func_quote_for_eval_result" compiler_flags="$compiler_flags $wl$func_quote_for_eval_result" linker_flags="$linker_flags $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; -XCClinker) prev=xcclinker continue ;; # -msg_* for osf cc -msg_*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; # -64, -mips[0-9] enable 64-bit mode on the SGI compiler # -r[0-9][0-9]* specifies the processor on the SGI compiler # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler # +DA*, +DD* enable 64-bit mode on the HP compiler # -q* pass through compiler args for the IBM compiler # -m*, -t[45]*, -txscale* pass through architecture-specific # compiler args for GCC # -F/path gives path to uninstalled frameworks, gcc on darwin # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC # @file GCC response files -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" func_append compile_command " $arg" func_append finalize_command " $arg" compiler_flags="$compiler_flags $arg" continue ;; # Some other compiler flag. -* | +*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; *.$objext) # A standard object. objs="$objs $arg" ;; *.lo) # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi ;; *.$libext) # An archive. deplibs="$deplibs $arg" old_deplibs="$old_deplibs $arg" continue ;; *.la) # A libtool-controlled library. if test "$prev" = dlfiles; then # This library was specified with -dlopen. dlfiles="$dlfiles $arg" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. dlprefiles="$dlprefiles $arg" prev= else deplibs="$deplibs $arg" fi continue ;; # Some other compiler argument. *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then func_append compile_command " $arg" func_append finalize_command " $arg" fi done # argument parsing loop test -n "$prev" && \ func_fatal_help "the \`$prevarg' option requires an argument" if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" func_append compile_command " $arg" func_append finalize_command " $arg" fi oldlibs= # calculate the name of the file, without its directory func_basename "$output" outputname="$func_basename_result" libobjs_save="$libobjs" if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` else shlib_search_path= fi eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" func_dirname "$output" "/" "" output_objdir="$func_dirname_result$objdir" # Create the object directory. func_mkdir_p "$output_objdir" # Determine the type of output case $output in "") func_fatal_help "you must specify an output file" ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *.la) linkmode=lib ;; *) linkmode=prog ;; # Anything else should be a program. esac specialdeplibs= libs= # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do if $opt_duplicate_deps ; then case "$libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi libs="$libs $deplib" done if test "$linkmode" = lib; then libs="$predeps $libs $compiler_lib_search_path $postdeps" # Compute libraries that are listed more than once in $predeps # $postdeps and mark them as special (i.e., whose duplicates are # not to be eliminated). pre_post_deps= if $opt_duplicate_compiler_generated_deps; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; esac pre_post_deps="$pre_post_deps $pre_post_dep" done fi pre_post_deps= fi deplibs= newdependency_libs= newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries notinst_path= # paths that contain not-installed libtool libraries case $linkmode in lib) passes="conv dlpreopen link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" ;; esac done ;; prog) compile_deplibs= finalize_deplibs= alldeplibs=no newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" ;; *) passes="conv" ;; esac for pass in $passes; do # The preopen pass in lib mode reverses $deplibs; put it back here # so that -L comes before libs that need it for instance... if test "$linkmode,$pass" = "lib,link"; then ## FIXME: Find the place where the list is rebuilt in the wrong ## order, and fix it there properly tmp_deplibs= for deplib in $deplibs; do tmp_deplibs="$deplib $tmp_deplibs" done deplibs="$tmp_deplibs" fi if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan"; then libs="$deplibs" deplibs= fi if test "$linkmode" = prog; then case $pass in dlopen) libs="$dlfiles" ;; dlpreopen) libs="$dlprefiles" ;; link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; esac fi if test "$linkmode,$pass" = "lib,dlpreopen"; then # Collect and forward deplibs of preopened libtool libs for lib in $dlprefiles; do # Ignore non-libtool-libs dependency_libs= case $lib in *.la) func_source "$lib" ;; esac # Collect preopened libtool deplibs, except any this library # has declared as weak libs for deplib in $dependency_libs; do deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"` case " $weak_libs " in *" $deplib_base "*) ;; *) deplibs="$deplibs $deplib" ;; esac done done libs="$dlprefiles" fi if test "$pass" = dlopen; then # Collect dlpreopened libraries save_deplibs="$deplibs" deplibs= fi for deplib in $libs; do lib= found=no case $deplib in -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else compiler_flags="$compiler_flags $deplib" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; esac fi fi continue ;; -l*) if test "$linkmode" != lib && test "$linkmode" != prog; then func_warning "\`-l' is ignored for archives/objects" continue fi func_stripname '-l' '' "$deplib" name=$func_stripname_result if test "$linkmode" = lib; then searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" else searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" fi for searchdir in $searchdirs; do for search_ext in .la $std_shrext .so .a; do # Search the libtool library lib="$searchdir/lib${name}${search_ext}" if test -f "$lib"; then if test "$search_ext" = ".la"; then found=yes else found=no fi break 2 fi done done if test "$found" != yes; then # deplib doesn't seem to be a libtool library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue else # deplib is a libtool library # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, # We need to do some special things here, and not later. if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $deplib "*) if func_lalib_p "$lib"; then library_names= old_library= func_source "$lib" for l in $old_library $library_names; do ll="$l" done if test "X$ll" = "X$old_library" ; then # only static version available found=no func_dirname "$lib" "" "." ladir="$func_dirname_result" lib=$ladir/$old_library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue fi fi ;; *) ;; esac fi fi ;; # -l *.ltframework) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; esac fi fi continue ;; -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" func_stripname '-L' '' "$deplib" newlib_search_path="$newlib_search_path $func_stripname_result" ;; prog) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi if test "$pass" = scan; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi func_stripname '-L' '' "$deplib" newlib_search_path="$newlib_search_path $func_stripname_result" ;; *) func_warning "\`-L' is ignored for archives/objects" ;; esac # linkmode continue ;; # -L -R*) if test "$pass" = link; then func_stripname '-R' '' "$deplib" dir=$func_stripname_result # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) lib="$deplib" ;; *.$libext) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) # Linking convenience modules into shared libraries is allowed, # but linking other static libraries is non-portable. case " $dlpreconveniencelibs " in *" $deplib "*) ;; *) valid_a_lib=no case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=yes fi ;; pass_all) valid_a_lib=yes ;; esac if test "$valid_a_lib" != yes; then $ECHO $ECHO "*** Warning: Trying to link with static lib archive $deplib." $ECHO "*** I have the capability to make that library automatically link in when" $ECHO "*** you link to this library. But I can only do this if you have a" $ECHO "*** shared version of the library, which you do not appear to have" $ECHO "*** because the file extensions .$libext of this argument makes me believe" $ECHO "*** that it is just a static archive that I should not use here." else $ECHO $ECHO "*** Warning: Linking the shared library $output against the" $ECHO "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" fi ;; esac continue ;; prog) if test "$pass" != link; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi continue ;; esac # linkmode ;; # *.$libext *.lo | *.$objext) if test "$pass" = conv; then deplibs="$deplib $deplibs" elif test "$linkmode" = prog; then if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlopen support or we're linking statically, # we need to preload. newdlprefiles="$newdlprefiles $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else newdlfiles="$newdlfiles $deplib" fi fi continue ;; %DEPLIBS%) alldeplibs=yes continue ;; esac # case $deplib if test "$found" = yes || test -f "$lib"; then : else func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" fi # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$lib" \ || func_fatal_error "\`$lib' is not a valid libtool archive" func_dirname "$lib" "" "." ladir="$func_dirname_result" dlname= dlopen= dlpreopen= libdir= library_names= old_library= inherited_linker_flags= # If the library was installed with an old release of libtool, # it will not redefine variables installed, or shouldnotlink installed=yes shouldnotlink=no avoidtemprpath= # Read the .la file func_source "$lib" # Convert "-framework foo" to "foo.ltframework" if test -n "$inherited_linker_flags"; then tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'` for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do case " $new_inherited_linker_flags " in *" $tmp_inherited_linker_flag "*) ;; *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";; esac done fi dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then test -n "$dlopen" && dlfiles="$dlfiles $dlopen" test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" fi if test "$pass" = conv; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # It is a libtool convenience library, so add in its objects. convenience="$convenience $ladir/$objdir/$old_library" old_convenience="$old_convenience $ladir/$objdir/$old_library" elif test "$linkmode" != prog && test "$linkmode" != lib; then func_fatal_error "\`$lib' is not a convenience library" fi tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if $opt_duplicate_deps ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done continue fi # $pass = conv # Get the name of the library we link against. linklib= for l in $old_library $library_names; do linklib="$l" done if test -z "$linklib"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # This library was specified with -dlopen. if test "$pass" = dlopen; then if test -z "$libdir"; then func_fatal_error "cannot -dlopen a convenience library: \`$lib'" fi if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase. dlprefiles="$dlprefiles $lib $dependency_libs" else newdlfiles="$newdlfiles $lib" fi continue fi # $pass = dlopen # We need an absolute path. case $ladir in [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then func_warning "cannot determine absolute directory name of \`$ladir'" func_warning "passing it literally to the linker, although it might fail" abs_ladir="$ladir" fi ;; esac func_basename "$lib" laname="$func_basename_result" # Find the relevant object directory and library name. if test "X$installed" = Xyes; then if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then func_warning "library \`$lib' was moved." dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else dir="$libdir" absdir="$libdir" fi test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes else if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then dir="$ladir" absdir="$abs_ladir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" fi fi # $installed = yes func_stripname 'lib' '.la' "$laname" name=$func_stripname_result # This library was specified with -dlpreopen. if test "$pass" = dlpreopen; then if test -z "$libdir" && test "$linkmode" = prog; then func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" fi # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then newdlprefiles="$newdlprefiles $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then newdlprefiles="$newdlprefiles $dir/$dlname" else newdlprefiles="$newdlprefiles $dir/$linklib" fi fi # $pass = dlpreopen if test -z "$libdir"; then # Link the convenience library if test "$linkmode" = lib; then deplibs="$dir/$old_library $deplibs" elif test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else deplibs="$lib $deplibs" # used for prog,scan pass fi continue fi if test "$linkmode" = prog && test "$pass" != link; then newlib_search_path="$newlib_search_path $ladir" deplibs="$lib $deplibs" linkalldeplibs=no if test "$link_all_deplibs" != no || test -z "$library_names" || test "$build_libtool_libs" = no; then linkalldeplibs=yes fi tmp_libs= for deplib in $dependency_libs; do case $deplib in -L*) func_stripname '-L' '' "$deplib" newlib_search_path="$newlib_search_path $func_stripname_result" ;; esac # Need to link against all dependency_libs? if test "$linkalldeplibs" = yes; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi if $opt_duplicate_deps ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done # for deplib continue fi # $linkmode = prog... if test "$linkmode,$pass" = "prog,link"; then if test -n "$library_names" && { { test "$prefer_static_libs" = no || test "$prefer_static_libs,$installed" = "built,yes"; } || test -z "$old_library"; }; then # We need to hardcode the library path if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then # Make sure the rpath contains only unique directories. case "$temp_rpath:" in *"$absdir:"*) ;; *) temp_rpath="$temp_rpath$absdir:" ;; esac fi # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi # $linkmode,$pass = prog,link... if test "$alldeplibs" = yes && { test "$deplibs_check_method" = pass_all || { test "$build_libtool_libs" = yes && test -n "$library_names"; }; }; then # We only need to search for static libraries continue fi fi link_static=no # Whether the deplib will be linked statically use_static_libs=$prefer_static_libs if test "$use_static_libs" = built && test "$installed" = yes; then use_static_libs=no fi if test -n "$library_names" && { test "$use_static_libs" = no || test -z "$old_library"; }; then case $host in *cygwin* | *mingw* | *cegcc*) # No point in relinking DLLs because paths are not encoded notinst_deplibs="$notinst_deplibs $lib" need_relink=no ;; *) if test "$installed" = no; then notinst_deplibs="$notinst_deplibs $lib" need_relink=yes fi ;; esac # This is a shared library # Warn about portability, can't link against -module's on some # systems (darwin). Don't bleat about dlopened modules though! dlopenmodule="" for dlpremoduletest in $dlprefiles; do if test "X$dlpremoduletest" = "X$lib"; then dlopenmodule="$dlpremoduletest" break fi done if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then $ECHO if test "$linkmode" = prog; then $ECHO "*** Warning: Linking the executable $output against the loadable module" else $ECHO "*** Warning: Linking the shared library $output against the loadable module" fi $ECHO "*** $linklib is not portable!" fi if test "$linkmode" = lib && test "$hardcode_into_libs" = yes; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names shift realname="$1" shift libname=`eval "\\$ECHO \"$libname_spec\""` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then soname="$dlname" elif test -n "$soname_spec"; then # bleh windows case $host in *cygwin* | mingw* | *cegcc*) func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; esac eval soname=\"$soname_spec\" else soname="$realname" fi # Make a new name for the extract_expsyms_cmds to use soroot="$soname" func_basename "$soroot" soname="$func_basename_result" func_stripname 'lib' '.dll' "$soname" newlib=libimp-$func_stripname_result.a # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else func_verbose "extracting exported symbol list from \`$soname'" func_execute_cmds "$extract_expsyms_cmds" 'exit $?' fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else func_verbose "generating import library for \`$soname'" func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' fi # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" if test "$linkmode" = prog || test "$mode" != relink; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) if test "$hardcode_direct" = no; then add="$dir/$linklib" case $host in *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; *-*-sysv4*uw2*) add_dir="-L$dir" ;; *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ *-*-unixware7*) add_dir="-L$dir" ;; *-*-darwin* ) # if the lib is a (non-dlopened) module then we can not # link against it, someone is ignoring the earlier warnings if /usr/bin/file -L $add 2> /dev/null | $GREP ": [^:]* bundle" >/dev/null ; then if test "X$dlopenmodule" != "X$lib"; then $ECHO "*** Warning: lib $linklib is a module, not a shared library" if test -z "$old_library" ; then $ECHO $ECHO "*** And there doesn't seem to be a static archive available" $ECHO "*** The link will probably fail, sorry" else add="$dir/$old_library" fi elif test -n "$old_library"; then add="$dir/$old_library" fi fi esac elif test "$hardcode_minus_L" = no; then case $host in *-*-sunos*) add_shlibpath="$dir" ;; esac add_dir="-L$dir" add="-l$name" elif test "$hardcode_shlibpath_var" = no; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; relink) if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$dir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; *) lib_linked=no ;; esac if test "$lib_linked" != yes; then func_fatal_configuration "unsupported hardcode properties" fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; esac fi if test "$linkmode" = prog; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" if test "$hardcode_direct" != yes && test "$hardcode_minus_L" != yes && test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac fi fi fi if test "$linkmode" = prog || test "$mode" = relink; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$libdir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$libdir" add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac add="-l$name" elif test "$hardcode_automatic" = yes; then if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then add="$inst_prefix_dir$libdir/$linklib" else add="$libdir/$linklib" fi else # We cannot seem to hardcode it, guess we'll fake it. add_dir="-L$libdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" fi if test "$linkmode" = prog; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" fi fi elif test "$linkmode" = prog; then # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. if test "$hardcode_direct" != unsupported; then test -n "$old_library" && linklib="$old_library" compile_deplibs="$dir/$linklib $compile_deplibs" finalize_deplibs="$dir/$linklib $finalize_deplibs" else compile_deplibs="-l$name -L$dir $compile_deplibs" finalize_deplibs="-l$name -L$dir $finalize_deplibs" fi elif test "$build_libtool_libs" = yes; then # Not a shared library if test "$deplibs_check_method" != pass_all; then # We're trying link a shared library against a static one # but the system doesn't support it. # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. $ECHO $ECHO "*** Warning: This system can not link to static lib archive $lib." $ECHO "*** I have the capability to make that library automatically link in when" $ECHO "*** you link to this library. But I can only do this if you have a" $ECHO "*** shared version of the library, which you do not appear to have." if test "$module" = yes; then $ECHO "*** But as you try to build a module library, libtool will still create " $ECHO "*** a static module, that should work as long as the dlopening application" $ECHO "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then $ECHO $ECHO "*** However, this would only work if libtool was able to extract symbol" $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" $ECHO "*** not find such a program. So, this module is probably useless." $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi else deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? if test "$linkmode" = lib; then if test -n "$dependency_libs" && { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes || test "$link_static" = yes; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do case $libdir in -R*) func_stripname '-R' '' "$libdir" temp_xrpath=$func_stripname_result case " $xrpath " in *" $temp_xrpath "*) ;; *) xrpath="$xrpath $temp_xrpath";; esac;; *) temp_deplibs="$temp_deplibs $libdir";; esac done dependency_libs="$temp_deplibs" fi newlib_search_path="$newlib_search_path $absdir" # Link against this library test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" if $opt_duplicate_deps ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done if test "$link_all_deplibs" != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do case $deplib in -L*) path="$deplib" ;; *.la) func_dirname "$deplib" "" "." dir="$func_dirname_result" # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then func_warning "cannot determine absolute directory name of \`$dir'" absdir="$dir" fi ;; esac if $GREP "^installed=no" $deplib > /dev/null; then case $host in *-*-darwin*) depdepl= eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` if test -n "$deplibrary_names" ; then for tmp in $deplibrary_names ; do depdepl=$tmp done if test -f "$absdir/$objdir/$depdepl" ; then depdepl="$absdir/$objdir/$depdepl" darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` if test -z "$darwin_install_name"; then darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` fi compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}" path= fi fi ;; *) path="-L$absdir/$objdir" ;; esac else eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" test "$absdir" != "$libdir" && \ func_warning "\`$deplib' seems to be moved" path="-L$absdir" fi ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$path $deplibs" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs if test "$pass" = link; then if test "$linkmode" = "prog"; then compile_deplibs="$new_inherited_linker_flags $compile_deplibs" finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" else compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` fi fi dependency_libs="$newdependency_libs" if test "$pass" = dlpreopen; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi if test "$pass" != dlopen; then if test "$pass" != conv; then # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; *) lib_search_path="$lib_search_path $dir" ;; esac done newlib_search_path= fi if test "$linkmode,$pass" != "prog,link"; then vars="deplibs" else vars="compile_deplibs finalize_deplibs" fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order eval tmp_libs=\"\$$var\" new_libs= for deplib in $tmp_libs; do # FIXME: Pedantically, this is the right thing to do, so # that some nasty dependency loop isn't accidentally # broken: #new_libs="$deplib $new_libs" # Pragmatically, this seems to cause very few problems in # practice: case $deplib in -L*) new_libs="$deplib $new_libs" ;; -R*) ;; *) # And here is the reason: when a library appears more # than once as an explicit dependence of a library, or # is implicitly linked in more than once by the # compiler, it is considered special, and multiple # occurrences thereof are not removed. Compare this # with having the same library being listed as a # dependency of multiple other libraries: in this case, # we know (pedantically, we assume) the library does not # need to be listed more than once, so we keep only the # last copy. This is not always right, but it is rare # enough that we require users that really mean to play # such unportable linking tricks to link the library # using -Wl,-lname, so that libtool does not consider it # for duplicate removal. case " $specialdeplibs " in *" $deplib "*) new_libs="$deplib $new_libs" ;; *) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$deplib $new_libs" ;; esac ;; esac ;; esac done tmp_libs= for deplib in $new_libs; do case $deplib in -L*) case " $tmp_libs " in *" $deplib "*) ;; *) tmp_libs="$tmp_libs $deplib" ;; esac ;; *) tmp_libs="$tmp_libs $deplib" ;; esac done eval $var=\"$tmp_libs\" done # for var fi # Last step: remove runtime libs from dependency_libs # (they stay in deplibs) tmp_libs= for i in $dependency_libs ; do case " $predeps $postdeps $compiler_lib_search_path " in *" $i "*) i="" ;; esac if test -n "$i" ; then tmp_libs="$tmp_libs $i" fi done dependency_libs=$tmp_libs done # for pass if test "$linkmode" = prog; then dlfiles="$newdlfiles" fi if test "$linkmode" = prog || test "$linkmode" = lib; then dlprefiles="$newdlprefiles" fi case $linkmode in oldlib) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for archives" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for archives" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for archives" test -n "$xrpath" && \ func_warning "\`-R' is ignored for archives" test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for archives" test -n "$release" && \ func_warning "\`-release' is ignored for archives" test -n "$export_symbols$export_symbols_regex" && \ func_warning "\`-export-symbols' is ignored for archives" # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" objs="$objs$old_deplibs" ;; lib) # Make sure we only generate libraries of the form `libNAME.la'. case $outputname in lib*) func_stripname 'lib' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) test "$module" = no && \ func_fatal_help "libtool library \`$output' must begin with \`lib'" if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required func_stripname '' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else func_stripname '' '.la' "$outputname" libname=$func_stripname_result fi ;; esac if test -n "$objs"; then if test "$deplibs_check_method" != pass_all; then func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" else $ECHO $ECHO "*** Warning: Linking the shared library $output against the non-libtool" $ECHO "*** objects $objs is not portable!" libobjs="$libobjs $objs" fi fi test "$dlself" != no && \ func_warning "\`-dlopen self' is ignored for libtool libraries" set dummy $rpath shift test "$#" -gt 1 && \ func_warning "ignoring multiple \`-rpath's for a libtool library" install_libdir="$1" oldlibs= if test -z "$rpath"; then if test "$build_libtool_libs" = yes; then # Building a libtool convenience library. # Some compilers have problems with a `.al' extension so # convenience libraries should have the same extension an # archive normally would. oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for convenience libraries" test -n "$release" && \ func_warning "\`-release' is ignored for convenience libraries" else # Parse the version information argument. save_ifs="$IFS"; IFS=':' set dummy $vinfo 0 0 0 shift IFS="$save_ifs" test -n "$7" && \ func_fatal_help "too many parameters to \`-version-info'" # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts # to make the code below a bit more comprehensible case $vinfo_number in yes) number_major="$1" number_minor="$2" number_revision="$3" # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix # which has an extra 1 added just for fun # case $version_type in darwin|linux|osf|windows|none) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_revision" ;; freebsd-aout|freebsd-elf|sunos) current="$number_major" revision="$number_minor" age="0" ;; irix|nonstopux) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_minor" lt_irix_increment=no ;; esac ;; no) current="$1" revision="$2" age="$3" ;; esac # Check that each of the things are valid numbers. case $current in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "CURRENT \`$current' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $revision in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "REVISION \`$revision' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $age in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "AGE \`$age' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac if test "$age" -gt "$current"; then func_error "AGE \`$age' is greater than the current interface number \`$current'" func_fatal_error "\`$vinfo' is not valid version information" fi # Calculate the version variables. major= versuffix= verstring= case $version_type in none) ;; darwin) # Like Linux, but with the current version available in # verstring for coding it into the library header func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" # Darwin ld doesn't like 0 for these options... func_arith $current + 1 minor_current=$func_arith_result xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" ;; freebsd-aout) major=".$current" versuffix=".$current.$revision"; ;; freebsd-elf) major=".$current" versuffix=".$current" ;; irix | nonstopux) if test "X$lt_irix_increment" = "Xno"; then func_arith $current - $age else func_arith $current - $age + 1 fi major=$func_arith_result case $version_type in nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac verstring="$verstring_prefix$major.$revision" # Add in all the interfaces that we are compatible with. loop=$revision while test "$loop" -ne 0; do func_arith $revision - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring_prefix$major.$iface:$verstring" done # Before this point, $major must not contain `.'. major=.$major versuffix="$major.$revision" ;; linux) func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" ;; osf) func_arith $current - $age major=.$func_arith_result versuffix=".$current.$age.$revision" verstring="$current.$age.$revision" # Add in all the interfaces that we are compatible with. loop=$age while test "$loop" -ne 0; do func_arith $current - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring:${iface}.0" done # Make executables depend on our current version. verstring="$verstring:${current}.0" ;; qnx) major=".$current" versuffix=".$current" ;; sunos) major=".$current" versuffix=".$current.$revision" ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 filesystems. func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; *) func_fatal_configuration "unknown library version type \`$version_type'" ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely verstring= ;; *) verstring="0.0" ;; esac if test "$need_version" = no; then versuffix= else versuffix=".0.0" fi fi # Remove version info from name if versioning should be avoided if test "$avoid_version" = yes && test "$need_version" = no; then major= versuffix= verstring="" fi # Check to see if the archive will have undefined symbols. if test "$allow_undefined" = yes; then if test "$allow_undefined_flag" = unsupported; then func_warning "undefined symbols not allowed in $host shared libraries" build_libtool_libs=no build_old_libs=yes fi else # Don't allow undefined symbols. allow_undefined_flag="$no_undefined_flag" fi fi func_generate_dlsyms "$libname" "$libname" "yes" libobjs="$libobjs $symfileobj" test "X$libobjs" = "X " && libobjs= if test "$mode" != relink; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= tempremovelist=`$ECHO "$output_objdir/*"` for p in $tempremovelist; do case $p in *.$objext | *.gcno) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) if test "X$precious_files_regex" != "X"; then if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue fi fi removelist="$removelist $p" ;; *) ;; esac done test -n "$removelist" && \ func_show_eval "${RM}r \$removelist" fi # Now set the variables for building old libraries. if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then oldlibs="$oldlibs $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` fi # Eliminate all temporary directories. #for path in $notinst_path; do # lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"` # deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"` # dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"` #done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do temp_xrpath="$temp_xrpath -R$libdir" case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then dependency_libs="$temp_xrpath $dependency_libs" fi fi # Make sure dlfiles contains only unique files that won't be dlpreopened old_dlfiles="$dlfiles" dlfiles= for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; *) dlfiles="$dlfiles $lib" ;; esac done # Make sure dlprefiles contains only unique files old_dlprefiles="$dlprefiles" dlprefiles= for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; *) dlprefiles="$dlprefiles $lib" ;; esac done if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework deplibs="$deplibs System.ltframework" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work ;; *) # Add libc to deplibs on all other systems if necessary. if test "$build_libtool_need_lc" = "yes"; then deplibs="$deplibs -lc" fi ;; esac fi # Transform deplibs into only deplibs that can be linked in shared. name_save=$name libname_save=$libname release_save=$release versuffix_save=$versuffix major_save=$major # I'm not sure if I'm treating the release correctly. I think # release should show up in the -l (ie -lgmp5) so we don't want to # add it in twice. Is that correct? release="" versuffix="" major="" newdeplibs= droppeddeps=no case $deplibs_check_method in pass_all) # Don't check for shared/static. Everything works. # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just # implementing what was already the behavior. newdeplibs=$deplibs ;; test_compile) # This code stresses the "libraries are programs" paradigm to its # limits. Maybe even breaks it. We compile a program, linking it # against the deplibs as a proxy for the library. Then we can check # whether they linked in statically or dynamically with ldd. $opt_dry_run || $RM conftest.c cat > conftest.c </dev/null` for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null | $GREP " -> " >/dev/null; then continue fi # The statement above tries to avoid entering an # endless loop below, in case of cyclic links. # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? potlib="$potent_lib" while test -h "$potlib" 2>/dev/null; do potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; *) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | $SED -e 10q | $EGREP "$file_magic_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $ECHO $ECHO "*** Warning: linker path does not have real file for library $a_deplib." $ECHO "*** I have the capability to make that library automatically link in when" $ECHO "*** you link to this library. But I can only do this if you have a" $ECHO "*** shared version of the library, which you do not appear to have" $ECHO "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for file magic test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a file magic. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" ;; esac done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` for a_deplib in $deplibs; do case $a_deplib in -l*) func_stripname -l '' "$a_deplib" name=$func_stripname_result if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) newdeplibs="$newdeplibs $a_deplib" a_deplib="" ;; esac fi if test -n "$a_deplib" ; then libname=`eval "\\$ECHO \"$libname_spec\""` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib="$potent_lib" # see symlink-check above in file_magic test if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \ $EGREP "$match_pattern_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $ECHO $ECHO "*** Warning: linker path does not have real file for library $a_deplib." $ECHO "*** I have the capability to make that library automatically link in when" $ECHO "*** you link to this library. But I can only do this if you have a" $ECHO "*** shared version of the library, which you do not appear to have" $ECHO "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a regex pattern. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" ;; esac done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \ -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then for i in $predeps $postdeps ; do # can't use Xsed below, because $i might contain '/' tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"` done fi if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' | $GREP . >/dev/null; then $ECHO if test "X$deplibs_check_method" = "Xnone"; then $ECHO "*** Warning: inter-library dependencies are not supported in this platform." else $ECHO "*** Warning: inter-library dependencies are not known to be supported." fi $ECHO "*** All declared inter-library dependencies are being dropped." droppeddeps=yes fi ;; esac versuffix=$versuffix_save major=$major_save release=$release_save libname=$libname_save name=$name_save case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library with the System framework newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'` ;; esac if test "$droppeddeps" = yes; then if test "$module" = yes; then $ECHO $ECHO "*** Warning: libtool could not satisfy all declared inter-library" $ECHO "*** dependencies of module $libname. Therefore, libtool will create" $ECHO "*** a static module, that should work as long as the dlopening" $ECHO "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then $ECHO $ECHO "*** However, this would only work if libtool was able to extract symbol" $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" $ECHO "*** not find such a program. So, this module is probably useless." $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi else $ECHO "*** The inter-library dependencies that have been dropped here will be" $ECHO "*** automatically added whenever a program is linked with this library" $ECHO "*** or is declared to -dlopen it." if test "$allow_undefined" = no; then $ECHO $ECHO "*** Since this library must not contain undefined symbols," $ECHO "*** because either the platform does not support them or" $ECHO "*** it was explicitly requested with -no-undefined," $ECHO "*** libtool will only create a static version of it." if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi fi fi # Done checking deplibs! deplibs=$newdeplibs fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" case $host in *-*-darwin*) newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done deplibs="$new_libs" # All the library-specific variables (install_libdir is set above). library_names= old_library= dlname= # Test again, we may have decided not to build it any more if test "$build_libtool_libs" = yes; then if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" test "$mode" != relink && rpath="$compile_rpath$rpath" for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" dep_rpath="$dep_rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" if test -n "$hardcode_libdir_flag_spec_ld"; then eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" else eval dep_rpath=\"$hardcode_libdir_flag_spec\" fi fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi shlibpath="$finalize_shlibpath" test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi # Get the real and link names of the library. eval shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" set dummy $library_names shift realname="$1" shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else soname="$realname" fi if test -z "$dlname"; then dlname=$soname fi lib="$output_objdir/$realname" linknames= for link do linknames="$linknames $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` test "X$libobjs" = "X " && libobjs= delfiles= if test -n "$export_symbols" && test -n "$include_expsyms"; then $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" export_symbols="$output_objdir/$libname.uexp" delfiles="$delfiles $export_symbols" fi orig_export_symbols= case $host_os in cygwin* | mingw* | cegcc*) if test -n "$export_symbols" && test -z "$export_symbols_regex"; then # exporting using user supplied symfile if test "x`$SED 1q $export_symbols`" != xEXPORTS; then # and it's NOT already a .def file. Must figure out # which of the given symbols are data symbols and tag # them as such. So, trigger use of export_symbols_cmds. # export_symbols gets reassigned inside the "prepare # the list of exported symbols" if statement, so the # include_expsyms logic still works. orig_export_symbols="$export_symbols" export_symbols= always_export_symbols=yes fi fi ;; esac # Prepare the list of exported symbols if test -z "$export_symbols"; then if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" func_len " $cmd" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then func_show_eval "$cmd" 'exit $?' skipped_export=false else # The command line is too long to execute in one step. func_verbose "using reloadable object file for export list..." skipped_export=: # Break out early, otherwise skipped_export may be # set to false by a later but shorter cmd. break fi done IFS="$save_ifs" if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' fi if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi tmp_deplibs= for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; *) tmp_deplibs="$tmp_deplibs $test_deplib" ;; esac done deplibs="$tmp_deplibs" if test -n "$convenience"; then if test -n "$whole_archive_flag_spec" && test "$compiler_needs_object" = yes && test -z "$libobjs"; then # extract the archives, so we have objects to list. # TODO: could optimize this to just extract one archive. whole_archive_flag_spec= fi if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= else gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $convenience libobjs="$libobjs $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" linker_flags="$linker_flags $flag" fi # Make a backup of the uninstalled library when relinking if test "$mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? fi # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then eval test_cmds=\"$module_expsym_cmds\" cmds=$module_expsym_cmds else eval test_cmds=\"$module_cmds\" cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval test_cmds=\"$archive_expsym_cmds\" cmds=$archive_expsym_cmds else eval test_cmds=\"$archive_cmds\" cmds=$archive_cmds fi fi if test "X$skipped_export" != "X:" && func_len " $test_cmds" && len=$func_len_result && test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else # The command line is too long to link in one step, link piecewise # or, if using GNU ld and skipped_export is not :, use a linker # script. # Save the value of $output and $libobjs because we want to # use them later. If we have whole_archive_flag_spec, we # want to use save_libobjs as it was before # whole_archive_flag_spec was expanded, because we can't # assume the linker understands whole_archive_flag_spec. # This may have to be revisited, in case too many # convenience libraries get linked in and end up exceeding # the spec. if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then save_libobjs=$libobjs fi save_output=$output output_la=`$ECHO "X$output" | $Xsed -e "$basename"` # Clear the reloadable object creation command queue and # initialize k to one. test_cmds= concat_cmds= objlist= last_robj= k=1 if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then output=${output_objdir}/${output_la}.lnkscript func_verbose "creating GNU ld script: $output" $ECHO 'INPUT (' > $output for obj in $save_libobjs do $ECHO "$obj" >> $output done $ECHO ')' >> $output delfiles="$delfiles $output" elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then output=${output_objdir}/${output_la}.lnk func_verbose "creating linker input file list: $output" : > $output set x $save_libobjs shift firstobj= if test "$compiler_needs_object" = yes; then firstobj="$1 " shift fi for obj do $ECHO "$obj" >> $output done delfiles="$delfiles $output" output=$firstobj\"$file_list_spec$output\" else if test -n "$save_libobjs"; then func_verbose "creating reloadable object files..." output=$output_objdir/$output_la-${k}.$objext eval test_cmds=\"$reload_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 # Loop over the list of objects to be linked. for obj in $save_libobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result if test "X$objlist" = X || test "$len" -lt "$max_cmd_len"; then func_append objlist " $obj" else # The command $test_cmds is almost too long, add a # command to the queue. if test "$k" -eq 1 ; then # The first file doesn't have a previous command to add. eval concat_cmds=\"$reload_cmds $objlist $last_robj\" else # All subsequent reloadable object files will link in # the last one created. eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$RM $last_robj\" fi last_robj=$output_objdir/$output_la-${k}.$objext func_arith $k + 1 k=$func_arith_result output=$output_objdir/$output_la-${k}.$objext objlist=$obj func_len " $last_robj" func_arith $len0 + $func_len_result len=$func_arith_result fi done # Handle the remaining objects by creating one last # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" if test -n "$last_robj"; then eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" fi delfiles="$delfiles $output" else output= fi if ${skipped_export-false}; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols libobjs=$output # Append the command to create the export file. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" fi fi test -n "$save_libobjs" && func_verbose "creating a temporary reloadable object file: $output" # Loop through the commands generated above and execute them. save_ifs="$IFS"; IFS='~' for cmd in $concat_cmds; do IFS="$save_ifs" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" if test -n "$export_symbols_regex" && ${skipped_export-false}; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi if ${skipped_export-false}; then if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' fi if test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi fi libobjs=$output # Restore the value of output. output=$save_output if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= fi # Expand the library linking commands again to reset the # value of $libobjs for piecewise linking. # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then cmds=$module_expsym_cmds else cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then cmds=$archive_expsym_cmds else cmds=$archive_cmds fi fi fi if test -n "$delfiles"; then # Append the command to remove temporary files to $cmds. eval cmds=\"\$cmds~\$RM $delfiles\" fi # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $dlprefiles libobjs="$libobjs $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" # Restore the uninstalled library and exit if test "$mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? if test -n "$convenience"; then if test -z "$whole_archive_flag_spec"; then func_show_eval '${RM}r "$gentop"' fi fi exit $EXIT_SUCCESS fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' fi done # If -module or -export-dynamic was specified, set the dlname. if test "$module" = yes || test "$export_dynamic" = yes; then # On all known operating systems, these are identical. dlname="$soname" fi fi ;; obj) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for objects" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for objects" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for objects" test -n "$xrpath" && \ func_warning "\`-R' is ignored for objects" test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for objects" test -n "$release" && \ func_warning "\`-release' is ignored for objects" case $output in *.lo) test -n "$objs$old_deplibs" && \ func_fatal_error "cannot build library object \`$output' from non-libtool objects" libobj=$output func_lo2o "$libobj" obj=$func_lo2o_result ;; *) libobj= obj="$output" ;; esac # Delete the old objects. $opt_dry_run || $RM $obj $libobj # Objects from convenience libraries. This assumes # single-version convenience libraries. Whenever we create # different ones for PIC/non-PIC, this we'll have to duplicate # the extraction. reload_conv_objs= gentop= # reload_cmds runs $LD directly, so let us get rid of # -Wl from whole_archive_flag_spec and hope we can get by with # turning comma into space.. wl= if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'` else gentop="$output_objdir/${obj}x" generated="$generated $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # Create the old-style object. reload_objs="$objs$old_deplibs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" func_execute_cmds "$reload_cmds" 'exit $?' # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS fi if test "$build_libtool_libs" != yes; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. # $show "echo timestamp > $libobj" # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? exit $EXIT_SUCCESS fi if test -n "$pic_flag" || test "$pic_mode" != default; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output="$libobj" func_execute_cmds "$reload_cmds" 'exit $?' fi if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS ;; prog) case $host in *cygwin*) func_stripname '' '.exe' "$output" output=$func_stripname_result.exe;; esac test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for programs" test -n "$release" && \ func_warning "\`-release' is ignored for programs" test "$preload" = yes \ && test "$dlopen_support" = unknown \ && test "$dlopen_self" = unknown \ && test "$dlopen_self_static" = unknown && \ func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` ;; esac case $host in *-*-darwin*) # Don't allow lazy linking, it breaks C++ global constructors # But is supposedly fixed on 10.4 or later (yay!). if test "$tagname" = CXX ; then case ${MACOSX_DEPLOYMENT_TARGET-10.0} in 10.[0123]) compile_command="$compile_command ${wl}-bind_at_load" finalize_command="$finalize_command ${wl}-bind_at_load" ;; esac fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $compile_deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $compile_deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done compile_deplibs="$new_libs" compile_command="$compile_command $compile_deplibs" finalize_command="$finalize_command $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. for libdir in $rpath $xrpath; do # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done fi # Now hardcode the library paths rpath= hardcode_libdirs= for libdir in $compile_rpath $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; ::) dllsearchpath=$libdir;; *) dllsearchpath="$dllsearchpath:$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi compile_rpath="$rpath" rpath= hardcode_libdirs= for libdir in $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi finalize_rpath="$rpath" if test -n "$libobjs" && test "$build_old_libs" = yes; then # Transform all the library objects into standard objects. compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` fi func_generate_dlsyms "$outputname" "@PROGRAM@" "no" # template prelinking step if test -n "$prelink_cmds"; then func_execute_cmds "$prelink_cmds" 'exit $?' fi wrappers_required=yes case $host in *cygwin* | *mingw* ) if test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; *cegcc) # Disable wrappers for cegcc, we are cross compiling anyway. wrappers_required=no ;; *) if test "$need_relink" = no || test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; esac if test "$wrappers_required" = no; then # Replace the output file specification. compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. exit_status=0 func_show_eval "$link_command" 'exit_status=$?' # Delete the generated files. if test -f "$output_objdir/${outputname}S.${objext}"; then func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' fi exit $exit_status fi if test -n "$compile_shlibpath$finalize_shlibpath"; then compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" fi if test -n "$finalize_shlibpath"; then finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi compile_var= finalize_var= if test -n "$runpath_var"; then if test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi if test -n "$finalize_perm_rpath"; then # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do rpath="$rpath$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi fi if test "$no_install" = yes; then # We don't need to create a wrapper script. link_command="$compile_var$compile_command$compile_rpath" # Replace the output file specification. link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $opt_dry_run || $RM $output # Link the executable and exit func_show_eval "$link_command" 'exit $?' exit $EXIT_SUCCESS fi if test "$hardcode_action" = relink; then # Fast installation is not supported link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" func_warning "this platform does not like uninstalled shared libraries" func_warning "\`$output' will be relinked during installation" else if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` else # fast_install is set to needless relink_command= fi else link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" fi fi # Replace the output file specification. link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname func_show_eval "$link_command" 'exit $?' # Now create the wrapper script. func_verbose "creating $output" # Quote the relink command for shipping. if test -n "$relink_command"; then # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done relink_command="(cd `pwd`; $relink_command)" relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` fi # Quote $ECHO for shipping. if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then case $progpath in [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; esac qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"` else qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"` fi # Only actually do things if not in dry run mode. $opt_dry_run || { # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) func_stripname '' '.exe' "$output" output=$func_stripname_result ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe func_stripname '' '.exe' "$outputname" outputname=$func_stripname_result ;; *) exeext= ;; esac case $host in *cygwin* | *mingw* ) func_dirname_and_basename "$output" "" "." output_name=$func_basename_result output_path=$func_dirname_result cwrappersource="$output_path/$objdir/lt-$output_name.c" cwrapper="$output_path/$output_name.exe" $RM $cwrappersource $cwrapper trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 func_emit_cwrapperexe_src > $cwrappersource # The wrapper executable is built using the $host compiler, # because it contains $host paths and files. If cross- # compiling, it, like the target executable, must be # executed on the $host or under an emulation environment. $opt_dry_run || { $LTCC $LTCFLAGS -o $cwrapper $cwrappersource $STRIP $cwrapper } # Now, create the wrapper script for func_source use: func_ltwrapper_scriptname $cwrapper $RM $func_ltwrapper_scriptname_result trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 $opt_dry_run || { # note: this script will not be executed, so do not chmod. if test "x$build" = "x$host" ; then $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result else func_emit_wrapper no > $func_ltwrapper_scriptname_result fi } ;; * ) $RM $output trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 func_emit_wrapper no > $output chmod +x $output ;; esac } exit $EXIT_SUCCESS ;; esac # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do if test "$build_libtool_libs" = convenience; then oldobjs="$libobjs_save $symfileobj" addlibs="$convenience" build_libtool_libs=no else if test "$build_libtool_libs" = module; then oldobjs="$libobjs_save" build_libtool_libs=no else oldobjs="$old_deplibs $non_pic_objects" if test "$preload" = yes && test -f "$symfileobj"; then oldobjs="$oldobjs $symfileobj" fi fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $addlibs oldobjs="$oldobjs $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then cmds=$old_archive_from_new_cmds else # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $dlprefiles oldobjs="$oldobjs $func_extract_archives_result" fi # POSIX demands no paths to be encoded in archives. We have # to avoid creating archives with duplicate basenames if we # might have to extract them afterwards, e.g., when creating a # static archive out of a convenience library, or when linking # the entirety of a libtool archive into another (currently # not supported by libtool). if (for obj in $oldobjs do func_basename "$obj" $ECHO "$func_basename_result" done | sort | sort -uc >/dev/null 2>&1); then : else $ECHO "copying selected object files to avoid basename conflicts..." gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_mkdir_p "$gentop" save_oldobjs=$oldobjs oldobjs= counter=1 for obj in $save_oldobjs do func_basename "$obj" objbase="$func_basename_result" case " $oldobjs " in " ") oldobjs=$obj ;; *[\ /]"$objbase "*) while :; do # Make sure we don't pick an alternate name that also # overlaps. newobj=lt$counter-$objbase func_arith $counter + 1 counter=$func_arith_result case " $oldobjs " in *[\ /]"$newobj "*) ;; *) if test ! -f "$gentop/$newobj"; then break; fi ;; esac done func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" oldobjs="$oldobjs $gentop/$newobj" ;; *) oldobjs="$oldobjs $obj" ;; esac done fi eval cmds=\"$old_archive_cmds\" func_len " $cmds" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts func_verbose "using piecewise archive linking..." save_RANLIB=$RANLIB RANLIB=: objlist= concat_cmds= save_oldobjs=$oldobjs oldobjs= # Is there a better way of finding the last object in the list? for obj in $save_oldobjs do last_oldobj=$obj done eval test_cmds=\"$old_archive_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 for obj in $save_oldobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result func_append objlist " $obj" if test "$len" -lt "$max_cmd_len"; then : else # the above command should be used before it gets too long oldobjs=$objlist if test "$obj" = "$last_oldobj" ; then RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" objlist= len=$len0 fi done RANLIB=$save_RANLIB oldobjs=$objlist if test "X$oldobjs" = "X" ; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~\$old_archive_cmds\" fi fi fi func_execute_cmds "$cmds" 'exit $?' done test -n "$generated" && \ func_show_eval "${RM}r$generated" # Now create the libtool archive. case $output in *.la) old_library= test "$build_old_libs" = yes && old_library="$libname.$libext" func_verbose "creating $output" # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` if test "$hardcode_automatic" = yes ; then relink_command= fi # Only create the output if not a dry run. $opt_dry_run || { for installed in no yes; do if test "$installed" = yes; then if test -z "$install_libdir"; then break fi output="$output_objdir/$outputname"i # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do case $deplib in *.la) func_basename "$deplib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" newdependency_libs="$newdependency_libs $libdir/$name" ;; *) newdependency_libs="$newdependency_libs $deplib" ;; esac done dependency_libs="$newdependency_libs" newdlfiles= for lib in $dlfiles; do case $lib in *.la) func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" newdlfiles="$newdlfiles $libdir/$name" ;; *) newdlfiles="$newdlfiles $lib" ;; esac done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in *.la) # Only pass preopened files to the pseudo-archive (for # eventual linking with the app. that links it) if we # didn't already link the preopened objects directly into # the library: func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" newdlprefiles="$newdlprefiles $libdir/$name" ;; esac done dlprefiles="$newdlprefiles" else newdlfiles= for lib in $dlfiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlfiles="$newdlfiles $abs" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlprefiles="$newdlprefiles $abs" done dlprefiles="$newdlprefiles" fi $RM $output # place dlname in correct position for cygwin tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; esac $ECHO > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='$tdlname' # Names of this library. library_names='$library_names' # The name of the static archive. old_library='$old_library' # Linker flags that can not go in dependency_libs. inherited_linker_flags='$new_inherited_linker_flags' # Libraries that this one depends upon. dependency_libs='$dependency_libs' # Names of additional weak libraries provided by this library weak_library_names='$weak_libs' # Version information for $libname. current=$current age=$age revision=$revision # Is this an already installed library? installed=$installed # Should we warn about portability when linking against -modules? shouldnotlink=$module # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" if test "$installed" = no && test "$need_relink" = yes; then $ECHO >> $output "\ relink_command=\"$relink_command\"" fi done } # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' ;; esac exit $EXIT_SUCCESS } { test "$mode" = link || test "$mode" = relink; } && func_mode_link ${1+"$@"} # func_mode_uninstall arg... func_mode_uninstall () { $opt_debug RM="$nonopt" files= rmforce= exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" for arg do case $arg in -f) RM="$RM $arg"; rmforce=yes ;; -*) RM="$RM $arg" ;; *) files="$files $arg" ;; esac done test -z "$RM" && \ func_fatal_help "you must specify an RM program" rmdirs= origobjdir="$objdir" for file in $files; do func_dirname "$file" "" "." dir="$func_dirname_result" if test "X$dir" = X.; then objdir="$origobjdir" else objdir="$dir/$origobjdir" fi func_basename "$file" name="$func_basename_result" test "$mode" = uninstall && objdir="$dir" # Remember objdir for removal later, being careful to avoid duplicates if test "$mode" = clean; then case " $rmdirs " in *" $objdir "*) ;; *) rmdirs="$rmdirs $objdir" ;; esac fi # Don't error if the file doesn't exist and rm -f was used. if { test -L "$file"; } >/dev/null 2>&1 || { test -h "$file"; } >/dev/null 2>&1 || test -f "$file"; then : elif test -d "$file"; then exit_status=1 continue elif test "$rmforce" = yes; then continue fi rmfiles="$file" case $name in *.la) # Possibly a libtool archive, so verify it. if func_lalib_p "$file"; then func_source $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do rmfiles="$rmfiles $objdir/$n" done test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" case "$mode" in clean) case " $library_names " in # " " in the beginning catches empty $dlname *" $dlname "*) ;; *) rmfiles="$rmfiles $objdir/$dlname" ;; esac test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" ;; uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi # FIXME: should reinstall the best remaining shared library. ;; esac fi ;; *.lo) # Possibly a libtool object, so verify it. if func_lalib_p "$file"; then # Read the .lo file func_source $dir/$name # Add PIC object to the list of files to remove. if test -n "$pic_object" && test "$pic_object" != none; then rmfiles="$rmfiles $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" && test "$non_pic_object" != none; then rmfiles="$rmfiles $dir/$non_pic_object" fi fi ;; *) if test "$mode" = clean ; then noexename=$name case $file in *.exe) func_stripname '' '.exe' "$file" file=$func_stripname_result func_stripname '' '.exe' "$name" noexename=$func_stripname_result # $file with .exe has already been added to rmfiles, # add $file without .exe rmfiles="$rmfiles $file" ;; esac # Do a test to see if this is a libtool program. if func_ltwrapper_p "$file"; then if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" relink_command= func_source $func_ltwrapper_scriptname_result rmfiles="$rmfiles $func_ltwrapper_scriptname_result" else relink_command= func_source $dir/$noexename fi # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then rmfiles="$rmfiles $objdir/lt-$name" fi if test "X$noexename" != "X$name" ; then rmfiles="$rmfiles $objdir/lt-${noexename}.c" fi fi fi ;; esac func_show_eval "$RM $rmfiles" 'exit_status=1' done objdir="$origobjdir" # Try to remove the ${objdir}s in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then func_show_eval "rmdir $dir >/dev/null 2>&1" fi done exit $exit_status } { test "$mode" = uninstall || test "$mode" = clean; } && func_mode_uninstall ${1+"$@"} test -z "$mode" && { help="$generic_help" func_fatal_help "you must specify a MODE" } test -z "$exec_cmd" && \ func_fatal_help "invalid operation mode \`$mode'" if test -n "$exec_cmd"; then eval exec "$exec_cmd" exit $EXIT_FAILURE fi exit $exit_status # The TAGs below are defined such that we never get into a situation # in which we disable both kinds of libraries. Given conflicting # choices, we go for a static library, that is the most portable, # since we can't tell whether shared libraries were disabled because # the user asked for that or because the platform doesn't support # them. This is particularly important on AIX, because we don't # support having both static and shared libraries enabled at the same # time on that platform, so we default to a shared-only configuration. # If a disable-shared tag is given, we'll fallback to a static-only # configuration. But we'll never go from static-only to shared-only. # ### BEGIN LIBTOOL TAG CONFIG: disable-shared build_libtool_libs=no build_old_libs=yes # ### END LIBTOOL TAG CONFIG: disable-shared # ### BEGIN LIBTOOL TAG CONFIG: disable-static build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` # ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script # sh-indentation:2 # End: # vi:sw=2 scim-1.4.14/m4/000077500000000000000000000000001177210725600130645ustar00rootroot00000000000000scim-1.4.14/m4/argz.m4000066400000000000000000000050671177210725600143010ustar00rootroot00000000000000# Portability macros for glibc argz. -*- Autoconf -*- # # Copyright (C) 2004, 2005, 2006, 2007 Free Software Foundation, Inc. # Written by Gary V. Vaughan # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 5 argz.m4 AC_DEFUN([gl_FUNC_ARGZ], [gl_PREREQ_ARGZ AC_CHECK_HEADERS([argz.h], [], [], [AC_INCLUDES_DEFAULT]) AC_CHECK_TYPES([error_t], [], [AC_DEFINE([error_t], [int], [Define to a type to use for `error_t' if it is not otherwise available.]) AC_DEFINE([__error_t_defined], [1], [Define so that glibc/gnulib argp.h does not typedef error_t.])], [#if defined(HAVE_ARGZ_H) # include #endif]) ARGZ_H= AC_CHECK_FUNCS([argz_add argz_append argz_count argz_create_sep argz_insert \ argz_next argz_stringify], [], [ARGZ_H=argz.h; AC_LIBOBJ([argz])]) dnl if have system argz functions, allow forced use of dnl libltdl-supplied implementation (and default to do so dnl on "known bad" systems). Could use a runtime check, but dnl (a) detecting malloc issues is notoriously unreliable dnl (b) only known system that declares argz functions, dnl provides them, yet they are broken, is cygwin dnl releases prior to 16-Mar-2007 (1.5.24 and earlier) dnl So, it's more straightforward simply to special case dnl this for known bad systems. AS_IF([test -z "$ARGZ_H"], [AC_CACHE_CHECK( [if argz actually works], [lt_cv_sys_argz_works], [[case $host_os in #( *cygwin*) lt_cv_sys_argz_works=no if test "$cross_compiling" != no; then lt_cv_sys_argz_works="guessing no" else lt_sed_extract_leading_digits='s/^\([0-9\.]*\).*/\1/' save_IFS=$IFS IFS=-. set x `uname -r | sed -e "$lt_sed_extract_leading_digits"` IFS=$save_IFS lt_os_major=${2-0} lt_os_minor=${3-0} lt_os_micro=${4-0} if test "$lt_os_major" -gt 1 \ || { test "$lt_os_major" -eq 1 \ && { test "$lt_os_minor" -gt 5 \ || { test "$lt_os_minor" -eq 5 \ && test "$lt_os_micro" -gt 24; }; }; }; then lt_cv_sys_argz_works=yes fi fi ;; #( *) lt_cv_sys_argz_works=yes ;; esac]]) AS_IF([test $lt_cv_sys_argz_works = yes], [AC_DEFINE([HAVE_WORKING_ARGZ], 1, [This value is set to 1 to indicate that the system argz facility works])], [ARGZ_H=argz.h AC_LIBOBJ([argz])])]) AC_SUBST([ARGZ_H]) ]) # Prerequisites of lib/argz.c. AC_DEFUN([gl_PREREQ_ARGZ], [:]) scim-1.4.14/m4/gettext.m4000066400000000000000000000451301177210725600150150ustar00rootroot00000000000000# gettext.m4 serial 28 (gettext-0.13) dnl Copyright (C) 1995-2003 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995-2000. dnl Bruno Haible , 2000-2003. dnl Macro to add for using GNU gettext. dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]). dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The dnl default (if it is not specified or empty) is 'no-libtool'. dnl INTLSYMBOL should be 'external' for packages with no intl directory, dnl and 'no-libtool' or 'use-libtool' for packages with an intl directory. dnl If INTLSYMBOL is 'use-libtool', then a libtool library dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static, dnl depending on --{enable,disable}-{shared,static} and on the presence of dnl AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library dnl $(top_builddir)/intl/libintl.a will be created. dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext dnl implementations (in libc or libintl) without the ngettext() function dnl will be ignored. If NEEDSYMBOL is specified and is dnl 'need-formatstring-macros', then GNU gettext implementations that don't dnl support the ISO C 99 formatstring macros will be ignored. dnl INTLDIR is used to find the intl libraries. If empty, dnl the value `$(top_builddir)/intl/' is used. dnl dnl The result of the configuration is one of three cases: dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled dnl and used. dnl Catalog format: GNU --> install in $(datadir) dnl Catalog extension: .mo after installation, .gmo in source tree dnl 2) GNU gettext has been found in the system's C library. dnl Catalog format: GNU --> install in $(datadir) dnl Catalog extension: .mo after installation, .gmo in source tree dnl 3) No internationalization, always use English msgid. dnl Catalog format: none dnl Catalog extension: none dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur. dnl The use of .gmo is historical (it was needed to avoid overwriting the dnl GNU format catalogs when building on a platform with an X/Open gettext), dnl but we keep it in order not to force irrelevant filename changes on the dnl maintainers. dnl AC_DEFUN([AM_GNU_GETTEXT], [ dnl Argument checking. ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], , [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT ])])])])]) ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], , [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT ])])])]) define(gt_included_intl, ifelse([$1], [external], [no], [yes])) define(gt_libtool_suffix_prefix, ifelse([$1], [use-libtool], [l], [])) AC_REQUIRE([AM_PO_SUBDIRS])dnl ifelse(gt_included_intl, yes, [ AC_REQUIRE([AM_INTL_SUBDIR])dnl ]) dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) dnl Sometimes libintl requires libiconv, so first search for libiconv. dnl Ideally we would do this search only after the dnl if test "$USE_NLS" = "yes"; then dnl if test "$gt_cv_func_gnugettext_libc" != "yes"; then dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT dnl the configure script would need to contain the same shell code dnl again, outside any 'if'. There are two solutions: dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'. dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE. dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not dnl documented, we avoid it. ifelse(gt_included_intl, yes, , [ AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) ]) dnl Set USE_NLS. AM_NLS ifelse(gt_included_intl, yes, [ BUILD_INCLUDED_LIBINTL=no USE_INCLUDED_LIBINTL=no ]) LIBINTL= LTLIBINTL= POSUB= dnl If we use NLS figure out what method if test "$USE_NLS" = "yes"; then gt_use_preinstalled_gnugettext=no ifelse(gt_included_intl, yes, [ AC_MSG_CHECKING([whether included gettext is requested]) AC_ARG_WITH(included-gettext, [ --with-included-gettext use the GNU gettext library included here], nls_cv_force_use_gnu_gettext=$withval, nls_cv_force_use_gnu_gettext=no) AC_MSG_RESULT($nls_cv_force_use_gnu_gettext) nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" if test "$nls_cv_force_use_gnu_gettext" != "yes"; then ]) dnl User does not insist on using GNU NLS library. Figure out what dnl to use. If GNU gettext is available we use this. Else we have dnl to fall back to GNU NLS library. dnl Add a version number to the cache macros. define([gt_api_version], ifelse([$2], [need-formatstring-macros], 3, ifelse([$2], [need-ngettext], 2, 1))) define([gt_cv_func_gnugettext_libc], [gt_cv_func_gnugettext]gt_api_version[_libc]) define([gt_cv_func_gnugettext_libintl], [gt_cv_func_gnugettext]gt_api_version[_libintl]) AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc, [AC_TRY_LINK([#include ]ifelse([$2], [need-formatstring-macros], [#ifndef __GNU_GETTEXT_SUPPORTED_REVISION #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) #endif changequote(,)dnl typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; changequote([,])dnl ], [])[extern int _nl_msg_cat_cntr; extern int *_nl_domain_bindings;], [bindtextdomain ("", ""); return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_domain_bindings], gt_cv_func_gnugettext_libc=yes, gt_cv_func_gnugettext_libc=no)]) if test "$gt_cv_func_gnugettext_libc" != "yes"; then dnl Sometimes libintl requires libiconv, so first search for libiconv. ifelse(gt_included_intl, yes, , [ AM_ICONV_LINK ]) dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv]) dnl because that would add "-liconv" to LIBINTL and LTLIBINTL dnl even if libiconv doesn't exist. AC_LIB_LINKFLAGS_BODY([intl]) AC_CACHE_CHECK([for GNU gettext in libintl], gt_cv_func_gnugettext_libintl, [gt_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $INCINTL" gt_save_LIBS="$LIBS" LIBS="$LIBS $LIBINTL" dnl Now see whether libintl exists and does not depend on libiconv. AC_TRY_LINK([#include ]ifelse([$2], [need-formatstring-macros], [#ifndef __GNU_GETTEXT_SUPPORTED_REVISION #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) #endif changequote(,)dnl typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; changequote([,])dnl ], [])[extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias ();], [bindtextdomain ("", ""); return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias (0)], gt_cv_func_gnugettext_libintl=yes, gt_cv_func_gnugettext_libintl=no) dnl Now see whether libintl exists and depends on libiconv. if test "$gt_cv_func_gnugettext_libintl" != yes && test -n "$LIBICONV"; then LIBS="$LIBS $LIBICONV" AC_TRY_LINK([#include ]ifelse([$2], [need-formatstring-macros], [#ifndef __GNU_GETTEXT_SUPPORTED_REVISION #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) #endif changequote(,)dnl typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; changequote([,])dnl ], [])[extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias ();], [bindtextdomain ("", ""); return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias (0)], [LIBINTL="$LIBINTL $LIBICONV" LTLIBINTL="$LTLIBINTL $LTLIBICONV" gt_cv_func_gnugettext_libintl=yes ]) fi CPPFLAGS="$gt_save_CPPFLAGS" LIBS="$gt_save_LIBS"]) fi dnl If an already present or preinstalled GNU gettext() is found, dnl use it. But if this macro is used in GNU gettext, and GNU dnl gettext is already preinstalled in libintl, we update this dnl libintl. (Cf. the install rule in intl/Makefile.in.) if test "$gt_cv_func_gnugettext_libc" = "yes" \ || { test "$gt_cv_func_gnugettext_libintl" = "yes" \ && test "$PACKAGE" != gettext-runtime \ && test "$PACKAGE" != gettext-tools; }; then gt_use_preinstalled_gnugettext=yes else dnl Reset the values set by searching for libintl. LIBINTL= LTLIBINTL= INCINTL= fi ifelse(gt_included_intl, yes, [ if test "$gt_use_preinstalled_gnugettext" != "yes"; then dnl GNU gettext is not found in the C library. dnl Fall back on included GNU gettext library. nls_cv_use_gnu_gettext=yes fi fi if test "$nls_cv_use_gnu_gettext" = "yes"; then dnl Mark actions used to generate GNU NLS library. BUILD_INCLUDED_LIBINTL=yes USE_INCLUDED_LIBINTL=yes LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV" LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV" LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` fi if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then dnl Mark actions to use GNU gettext tools. CATOBJEXT=.gmo fi ]) if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then AC_DEFINE(ENABLE_NLS, 1, [Define to 1 if translation of program messages to the user's native language is requested.]) else USE_NLS=no fi fi AC_MSG_CHECKING([whether to use NLS]) AC_MSG_RESULT([$USE_NLS]) if test "$USE_NLS" = "yes"; then AC_MSG_CHECKING([where the gettext function comes from]) if test "$gt_use_preinstalled_gnugettext" = "yes"; then if test "$gt_cv_func_gnugettext_libintl" = "yes"; then gt_source="external libintl" else gt_source="libc" fi else gt_source="included intl directory" fi AC_MSG_RESULT([$gt_source]) fi if test "$USE_NLS" = "yes"; then if test "$gt_use_preinstalled_gnugettext" = "yes"; then if test "$gt_cv_func_gnugettext_libintl" = "yes"; then AC_MSG_CHECKING([how to link with libintl]) AC_MSG_RESULT([$LIBINTL]) AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL]) fi dnl For backward compatibility. Some packages may be using this. AC_DEFINE(HAVE_GETTEXT, 1, [Define if the GNU gettext() function is already present or preinstalled.]) AC_DEFINE(HAVE_DCGETTEXT, 1, [Define if the GNU dcgettext() function is already present or preinstalled.]) fi dnl We need to process the po/ directory. POSUB=po fi ifelse(gt_included_intl, yes, [ dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL dnl to 'yes' because some of the testsuite requires it. if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then BUILD_INCLUDED_LIBINTL=yes fi dnl Make all variables we use known to autoconf. AC_SUBST(BUILD_INCLUDED_LIBINTL) AC_SUBST(USE_INCLUDED_LIBINTL) AC_SUBST(CATOBJEXT) dnl For backward compatibility. Some configure.ins may be using this. nls_cv_header_intl= nls_cv_header_libgt= dnl For backward compatibility. Some Makefiles may be using this. DATADIRNAME=share AC_SUBST(DATADIRNAME) dnl For backward compatibility. Some Makefiles may be using this. INSTOBJEXT=.mo AC_SUBST(INSTOBJEXT) dnl For backward compatibility. Some Makefiles may be using this. GENCAT=gencat AC_SUBST(GENCAT) dnl For backward compatibility. Some Makefiles may be using this. if test "$USE_INCLUDED_LIBINTL" = yes; then INTLOBJS="\$(GETTOBJS)" fi AC_SUBST(INTLOBJS) dnl Enable libtool support if the surrounding package wishes it. INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX) ]) dnl For backward compatibility. Some Makefiles may be using this. INTLLIBS="$LIBINTL" AC_SUBST(INTLLIBS) dnl Make all documented variables known to autoconf. AC_SUBST(LIBINTL) AC_SUBST(LTLIBINTL) AC_SUBST(POSUB) ]) dnl Checks for all prerequisites of the intl subdirectory, dnl except for INTL_LIBTOOL_SUFFIX_PREFIX (and possibly LIBTOOL), INTLOBJS, dnl USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL. AC_DEFUN([AM_INTL_SUBDIR], [ AC_REQUIRE([AC_PROG_INSTALL])dnl AC_REQUIRE([AM_MKINSTALLDIRS])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_PROG_RANLIB])dnl AC_REQUIRE([AC_ISC_POSIX])dnl AC_REQUIRE([AC_HEADER_STDC])dnl AC_REQUIRE([AC_C_CONST])dnl AC_REQUIRE([bh_C_SIGNED])dnl AC_REQUIRE([AC_C_INLINE])dnl AC_REQUIRE([AC_TYPE_OFF_T])dnl AC_REQUIRE([AC_TYPE_SIZE_T])dnl AC_REQUIRE([jm_AC_TYPE_LONG_LONG])dnl AC_REQUIRE([gt_TYPE_LONGDOUBLE])dnl AC_REQUIRE([gt_TYPE_WCHAR_T])dnl AC_REQUIRE([gt_TYPE_WINT_T])dnl AC_REQUIRE([jm_AC_HEADER_INTTYPES_H]) AC_REQUIRE([jm_AC_HEADER_STDINT_H]) AC_REQUIRE([gt_TYPE_INTMAX_T]) AC_REQUIRE([gt_PRINTF_POSIX]) AC_REQUIRE([AC_FUNC_ALLOCA])dnl AC_REQUIRE([AC_FUNC_MMAP])dnl AC_REQUIRE([jm_GLIBC21])dnl AC_REQUIRE([gt_INTDIV0])dnl AC_REQUIRE([jm_AC_TYPE_UINTMAX_T])dnl AC_REQUIRE([gt_HEADER_INTTYPES_H])dnl AC_REQUIRE([gt_INTTYPES_PRI])dnl AC_REQUIRE([gl_XSIZE])dnl AC_CHECK_TYPE([ptrdiff_t], , [AC_DEFINE([ptrdiff_t], [long], [Define as the type of the result of subtracting two pointers, if the system doesn't define it.]) ]) AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \ stdlib.h string.h unistd.h sys/param.h]) AC_CHECK_FUNCS([asprintf fwprintf getcwd getegid geteuid getgid getuid \ mempcpy munmap putenv setenv setlocale snprintf stpcpy strcasecmp strdup \ strtoul tsearch wcslen __argz_count __argz_stringify __argz_next \ __fsetlocking]) dnl Use the _snprintf function only if it is declared (because on NetBSD it dnl is defined as a weak alias of snprintf; we prefer to use the latter). gt_CHECK_DECL(_snprintf, [#include ]) gt_CHECK_DECL(_snwprintf, [#include ]) dnl Use the *_unlocked functions only if they are declared. dnl (because some of them were defined without being declared in Solaris dnl 2.5.1 but were removed in Solaris 2.6, whereas we want binaries built dnl on Solaris 2.5.1 to run on Solaris 2.6). dnl Don't use AC_CHECK_DECLS because it isn't supported in autoconf-2.13. gt_CHECK_DECL(feof_unlocked, [#include ]) gt_CHECK_DECL(fgets_unlocked, [#include ]) gt_CHECK_DECL(getc_unlocked, [#include ]) case $gt_cv_func_printf_posix in *yes) HAVE_POSIX_PRINTF=1 ;; *) HAVE_POSIX_PRINTF=0 ;; esac AC_SUBST([HAVE_POSIX_PRINTF]) if test "$ac_cv_func_asprintf" = yes; then HAVE_ASPRINTF=1 else HAVE_ASPRINTF=0 fi AC_SUBST([HAVE_ASPRINTF]) if test "$ac_cv_func_snprintf" = yes; then HAVE_SNPRINTF=1 else HAVE_SNPRINTF=0 fi AC_SUBST([HAVE_SNPRINTF]) if test "$ac_cv_func_wprintf" = yes; then HAVE_WPRINTF=1 else HAVE_WPRINTF=0 fi AC_SUBST([HAVE_WPRINTF]) AM_ICONV AM_LANGINFO_CODESET if test $ac_cv_header_locale_h = yes; then AM_LC_MESSAGES fi dnl intl/plural.c is generated from intl/plural.y. It requires bison, dnl because plural.y uses bison specific features. It requires at least dnl bison-1.26 because earlier versions generate a plural.c that doesn't dnl compile. dnl bison is only needed for the maintainer (who touches plural.y). But in dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put dnl the rule in general Makefile. Now, some people carelessly touch the dnl files or have a broken "make" program, hence the plural.c rule will dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not dnl present or too old. AC_CHECK_PROGS([INTLBISON], [bison]) if test -z "$INTLBISON"; then ac_verc_fail=yes else dnl Found it, now check the version. AC_MSG_CHECKING([version of bison]) changequote(<<,>>)dnl ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'` case $ac_prog_version in '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; 1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*) changequote([,])dnl ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; esac AC_MSG_RESULT([$ac_prog_version]) fi if test $ac_verc_fail = yes; then INTLBISON=: fi ]) dnl gt_CHECK_DECL(FUNC, INCLUDES) dnl Check whether a function is declared. AC_DEFUN([gt_CHECK_DECL], [ AC_CACHE_CHECK([whether $1 is declared], ac_cv_have_decl_$1, [AC_TRY_COMPILE([$2], [ #ifndef $1 char *p = (char *) $1; #endif ], ac_cv_have_decl_$1=yes, ac_cv_have_decl_$1=no)]) if test $ac_cv_have_decl_$1 = yes; then gt_value=1 else gt_value=0 fi AC_DEFINE_UNQUOTED([HAVE_DECL_]translit($1, [a-z], [A-Z]), [$gt_value], [Define to 1 if you have the declaration of `$1', and to 0 if you don't.]) ]) dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version]) AC_DEFUN([AM_GNU_GETTEXT_VERSION], []) scim-1.4.14/m4/iconv.m4000066400000000000000000000066531177210725600144560ustar00rootroot00000000000000# iconv.m4 serial AM4 (gettext-0.11.3) dnl Copyright (C) 2000-2002 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl From Bruno Haible. AC_DEFUN([AM_ICONV_LINKFLAGS_BODY], [ dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV dnl accordingly. AC_LIB_LINKFLAGS_BODY([iconv]) ]) AC_DEFUN([AM_ICONV_LINK], [ dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and dnl those with the standalone portable GNU libiconv installed). dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV dnl accordingly. AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) dnl Add $INCICONV to CPPFLAGS before performing the following checks, dnl because if the user has installed libiconv and not disabled its use dnl via --without-libiconv-prefix, he wants to use it. The first dnl AC_TRY_LINK will then fail, the second AC_TRY_LINK will succeed. am_save_CPPFLAGS="$CPPFLAGS" AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV]) AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [ am_cv_func_iconv="no, consider installing GNU libiconv" am_cv_lib_iconv=no AC_TRY_LINK([#include #include ], [iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd);], am_cv_func_iconv=yes) if test "$am_cv_func_iconv" != yes; then am_save_LIBS="$LIBS" LIBS="$LIBS $LIBICONV" AC_TRY_LINK([#include #include ], [iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd);], am_cv_lib_iconv=yes am_cv_func_iconv=yes) LIBS="$am_save_LIBS" fi ]) if test "$am_cv_func_iconv" = yes; then AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.]) fi if test "$am_cv_lib_iconv" = yes; then AC_MSG_CHECKING([how to link with libiconv]) AC_MSG_RESULT([$LIBICONV]) else dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV dnl either. CPPFLAGS="$am_save_CPPFLAGS" LIBICONV= LTLIBICONV= fi AC_SUBST(LIBICONV) AC_SUBST(LTLIBICONV) ]) AC_DEFUN([AM_ICONV], [ AM_ICONV_LINK if test "$am_cv_func_iconv" = yes; then AC_MSG_CHECKING([for iconv declaration]) AC_CACHE_VAL(am_cv_proto_iconv, [ AC_TRY_COMPILE([ #include #include extern #ifdef __cplusplus "C" #endif #if defined(__STDC__) || defined(__cplusplus) size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); #else size_t iconv(); #endif ], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const") am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"]) am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` AC_MSG_RESULT([$]{ac_t:- }[$]am_cv_proto_iconv) AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1, [Define as const if the declaration of iconv() needs const.]) fi ]) scim-1.4.14/m4/lib-ld.m4000066400000000000000000000067561177210725600145070ustar00rootroot00000000000000# lib-ld.m4 serial 3 (gettext-0.13) dnl Copyright (C) 1996-2003 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl Subroutines of libtool.m4, dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision dnl with libtool.m4. dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no. AC_DEFUN([AC_LIB_PROG_LD_GNU], [AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld, [# I'd rather use --version here, but apparently some GNU ld's only accept -v. case `$LD -v 2>&1 conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. AC_MSG_CHECKING([for ld used by GCC]) case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [[\\/]* | [A-Za-z]:[\\/]*)] [re_direlt='/[^/][^/]*/\.\./'] # Canonicalize the path of ld ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi AC_CACHE_VAL(acl_cv_path_LD, [if test -z "$LD"; then IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then acl_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some GNU ld's only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in *GNU* | *'with BFD'*) test "$with_gnu_ld" != no && break ;; *) test "$with_gnu_ld" != yes && break ;; esac fi done IFS="$ac_save_ifs" else acl_cv_path_LD="$LD" # Let the user override the test with a path. fi]) LD="$acl_cv_path_LD" if test -n "$LD"; then AC_MSG_RESULT($LD) else AC_MSG_RESULT(no) fi test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) AC_LIB_PROG_LD_GNU ]) scim-1.4.14/m4/lib-link.m4000066400000000000000000000553431177210725600150410ustar00rootroot00000000000000# lib-link.m4 serial 4 (gettext-0.12) dnl Copyright (C) 2001-2003 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl From Bruno Haible. dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and dnl the libraries corresponding to explicit and implicit dependencies. dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and dnl augments the CPPFLAGS variable. AC_DEFUN([AC_LIB_LINKFLAGS], [ AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) define([Name],[translit([$1],[./-], [___])]) define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [ AC_LIB_LINKFLAGS_BODY([$1], [$2]) ac_cv_lib[]Name[]_libs="$LIB[]NAME" ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME" ac_cv_lib[]Name[]_cppflags="$INC[]NAME" ]) LIB[]NAME="$ac_cv_lib[]Name[]_libs" LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs" INC[]NAME="$ac_cv_lib[]Name[]_cppflags" AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) AC_SUBST([LIB]NAME) AC_SUBST([LTLIB]NAME) dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the dnl results of this search when this library appears as a dependency. HAVE_LIB[]NAME=yes undefine([Name]) undefine([NAME]) ]) dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode) dnl searches for libname and the libraries corresponding to explicit and dnl implicit dependencies, together with the specified include files and dnl the ability to compile and link the specified testcode. If found, it dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty. AC_DEFUN([AC_LIB_HAVE_LINKFLAGS], [ AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) define([Name],[translit([$1],[./-], [___])]) define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME dnl accordingly. AC_LIB_LINKFLAGS_BODY([$1], [$2]) dnl Add $INC[]NAME to CPPFLAGS before performing the following checks, dnl because if the user has installed lib[]Name and not disabled its use dnl via --without-lib[]Name-prefix, he wants to use it. ac_save_CPPFLAGS="$CPPFLAGS" AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [ ac_save_LIBS="$LIBS" LIBS="$LIBS $LIB[]NAME" AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no]) LIBS="$ac_save_LIBS" ]) if test "$ac_cv_lib[]Name" = yes; then HAVE_LIB[]NAME=yes AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.]) AC_MSG_CHECKING([how to link with lib[]$1]) AC_MSG_RESULT([$LIB[]NAME]) else HAVE_LIB[]NAME=no dnl If $LIB[]NAME didn't lead to a usable library, we don't need dnl $INC[]NAME either. CPPFLAGS="$ac_save_CPPFLAGS" LIB[]NAME= LTLIB[]NAME= fi AC_SUBST([HAVE_LIB]NAME) AC_SUBST([LIB]NAME) AC_SUBST([LTLIB]NAME) undefine([Name]) undefine([NAME]) ]) dnl Determine the platform dependent parameters needed to use rpath: dnl libext, shlibext, hardcode_libdir_flag_spec, hardcode_libdir_separator, dnl hardcode_direct, hardcode_minus_L. AC_DEFUN([AC_LIB_RPATH], [ AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [ CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh . ./conftest.sh rm -f ./conftest.sh acl_cv_rpath=done ]) wl="$acl_cv_wl" libext="$acl_cv_libext" shlibext="$acl_cv_shlibext" hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" hardcode_direct="$acl_cv_hardcode_direct" hardcode_minus_L="$acl_cv_hardcode_minus_L" dnl Determine whether the user wants rpath handling at all. AC_ARG_ENABLE(rpath, [ --disable-rpath do not hardcode runtime library paths], :, enable_rpath=yes) ]) dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and dnl the libraries corresponding to explicit and implicit dependencies. dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables. AC_DEFUN([AC_LIB_LINKFLAGS_BODY], [ define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) dnl By default, look in $includedir and $libdir. use_additional=yes AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) AC_LIB_ARG_WITH([lib$1-prefix], [ --with-lib$1-prefix[=DIR] search for lib$1 in DIR/include and DIR/lib --without-lib$1-prefix don't search for lib$1 in includedir and libdir], [ if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) else additional_includedir="$withval/include" additional_libdir="$withval/lib" fi fi ]) dnl Search the library and its dependencies in $additional_libdir and dnl $LDFLAGS. Using breadth-first-seach. LIB[]NAME= LTLIB[]NAME= INC[]NAME= rpathdirs= ltrpathdirs= names_already_handled= names_next_round='$1 $2' while test -n "$names_next_round"; do names_this_round="$names_next_round" names_next_round= for name in $names_this_round; do already_handled= for n in $names_already_handled; do if test "$n" = "$name"; then already_handled=yes break fi done if test -z "$already_handled"; then names_already_handled="$names_already_handled $name" dnl See if it was already located by an earlier AC_LIB_LINKFLAGS dnl or AC_LIB_HAVE_LINKFLAGS call. uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` eval value=\"\$HAVE_LIB$uppername\" if test -n "$value"; then if test "$value" = yes; then eval value=\"\$LIB$uppername\" test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value" eval value=\"\$LTLIB$uppername\" test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value" else dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined dnl that this library doesn't exist. So just drop it. : fi else dnl Search the library lib$name in $additional_libdir and $LDFLAGS dnl and the already constructed $LIBNAME/$LTLIBNAME. found_dir= found_la= found_so= found_a= if test $use_additional = yes; then if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then found_dir="$additional_libdir" found_so="$additional_libdir/lib$name.$shlibext" if test -f "$additional_libdir/lib$name.la"; then found_la="$additional_libdir/lib$name.la" fi else if test -f "$additional_libdir/lib$name.$libext"; then found_dir="$additional_libdir" found_a="$additional_libdir/lib$name.$libext" if test -f "$additional_libdir/lib$name.la"; then found_la="$additional_libdir/lib$name.la" fi fi fi fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then found_dir="$dir" found_so="$dir/lib$name.$shlibext" if test -f "$dir/lib$name.la"; then found_la="$dir/lib$name.la" fi else if test -f "$dir/lib$name.$libext"; then found_dir="$dir" found_a="$dir/lib$name.$libext" if test -f "$dir/lib$name.la"; then found_la="$dir/lib$name.la" fi fi fi ;; esac if test "X$found_dir" != "X"; then break fi done fi if test "X$found_dir" != "X"; then dnl Found the library. LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name" if test "X$found_so" != "X"; then dnl Linking with a shared library. We attempt to hardcode its dnl directory into the executable's runpath, unless it's the dnl standard /usr/lib. if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then dnl No hardcoding is needed. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else dnl Use an explicit option to hardcode DIR into the resulting dnl binary. dnl Potentially add DIR to ltrpathdirs. dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. haveit= for x in $ltrpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $found_dir" fi dnl The hardcoding into $LIBNAME is system dependent. if test "$hardcode_direct" = yes; then dnl Using DIR/libNAME.so during linking hardcodes DIR into the dnl resulting binary. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then dnl Use an explicit option to hardcode DIR into the resulting dnl binary. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" dnl Potentially add DIR to rpathdirs. dnl The rpathdirs will be appended to $LIBNAME at the end. haveit= for x in $rpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $found_dir" fi else dnl Rely on "-L$found_dir". dnl But don't add it if it's already contained in the LDFLAGS dnl or the already constructed $LIBNAME haveit= for x in $LDFLAGS $LIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir" fi if test "$hardcode_minus_L" != no; then dnl FIXME: Not sure whether we should use dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" dnl here. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else dnl We cannot use $hardcode_runpath_var and LD_RUN_PATH dnl here, because this doesn't fit in flags passed to the dnl compiler. So give up. No hardcoding. This affects only dnl very old systems. dnl FIXME: Not sure whether we should use dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" dnl here. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" fi fi fi fi else if test "X$found_a" != "X"; then dnl Linking with a static library. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a" else dnl We shouldn't come here, but anyway it's good to have a dnl fallback. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name" fi fi dnl Assume the include files are nearby. additional_includedir= case "$found_dir" in */lib | */lib/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'` additional_includedir="$basedir/include" ;; esac if test "X$additional_includedir" != "X"; then dnl Potentially add $additional_includedir to $INCNAME. dnl But don't add it dnl 1. if it's the standard /usr/include, dnl 2. if it's /usr/local/include and we are using GCC on Linux, dnl 3. if it's already present in $CPPFLAGS or the already dnl constructed $INCNAME, dnl 4. if it doesn't exist as a directory. if test "X$additional_includedir" != "X/usr/include"; then haveit= if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux*) haveit=yes;; esac fi fi if test -z "$haveit"; then for x in $CPPFLAGS $INC[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_includedir"; then dnl Really add $additional_includedir to $INCNAME. INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir" fi fi fi fi fi dnl Look for dependencies. if test -n "$found_la"; then dnl Read the .la file. It defines the variables dnl dlname, library_names, old_library, dependency_libs, current, dnl age, revision, installed, dlopen, dlpreopen, libdir. save_libdir="$libdir" case "$found_la" in */* | *\\*) . "$found_la" ;; *) . "./$found_la" ;; esac libdir="$save_libdir" dnl We use only dependency_libs. for dep in $dependency_libs; do case "$dep" in -L*) additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME. dnl But don't add it dnl 1. if it's the standard /usr/lib, dnl 2. if it's /usr/local/lib and we are using GCC on Linux, dnl 3. if it's already present in $LDFLAGS or the already dnl constructed $LIBNAME, dnl 4. if it doesn't exist as a directory. if test "X$additional_libdir" != "X/usr/lib"; then haveit= if test "X$additional_libdir" = "X/usr/local/lib"; then if test -n "$GCC"; then case $host_os in linux*) haveit=yes;; esac fi fi if test -z "$haveit"; then haveit= for x in $LDFLAGS $LIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LIBNAME. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir" fi fi haveit= for x in $LDFLAGS $LTLIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LTLIBNAME. LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir" fi fi fi fi ;; -R*) dir=`echo "X$dep" | sed -e 's/^X-R//'` if test "$enable_rpath" != no; then dnl Potentially add DIR to rpathdirs. dnl The rpathdirs will be appended to $LIBNAME at the end. haveit= for x in $rpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $dir" fi dnl Potentially add DIR to ltrpathdirs. dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. haveit= for x in $ltrpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $dir" fi fi ;; -l*) dnl Handle this in the next round. names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` ;; *.la) dnl Handle this in the next round. Throw away the .la's dnl directory; it is already contained in a preceding -L dnl option. names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` ;; *) dnl Most likely an immediate library name. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep" LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep" ;; esac done fi else dnl Didn't find the library; assume it is in the system directories dnl known to the linker and runtime loader. (All the system dnl directories known to the linker should also be known to the dnl runtime loader, otherwise the system is severely misconfigured.) LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name" fi fi fi done done if test "X$rpathdirs" != "X"; then if test -n "$hardcode_libdir_separator"; then dnl Weird platform: only the last -rpath option counts, the user must dnl pass all path elements in one option. We can arrange that for a dnl single library, but not when more than one $LIBNAMEs are used. alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir" done dnl Note: hardcode_libdir_flag_spec uses $libdir and $wl. acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" else dnl The -rpath options are cumulative. for found_dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$found_dir" eval flag=\"$hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" done fi fi if test "X$ltrpathdirs" != "X"; then dnl When using libtool, the option that works for both libraries and dnl executables is -R. The -R options are cumulative. for found_dir in $ltrpathdirs; do LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" done fi ]) dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR, dnl unless already present in VAR. dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes dnl contains two or three consecutive elements that belong together. AC_DEFUN([AC_LIB_APPENDTOVAR], [ for element in [$2]; do haveit= for x in $[$1]; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then [$1]="${[$1]}${[$1]:+ }$element" fi done ]) scim-1.4.14/m4/lib-prefix.m4000066400000000000000000000125071177210725600153740ustar00rootroot00000000000000# lib-prefix.m4 serial 3 (gettext-0.13) dnl Copyright (C) 2001-2003 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl From Bruno Haible. dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't dnl require excessive bracketing. ifdef([AC_HELP_STRING], [AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])], [AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])]) dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed dnl to access previously installed libraries. The basic assumption is that dnl a user will want packages to use other packages he previously installed dnl with the same --prefix option. dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate dnl libraries, but is otherwise very convenient. AC_DEFUN([AC_LIB_PREFIX], [ AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) dnl By default, look in $includedir and $libdir. use_additional=yes AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) AC_LIB_ARG_WITH([lib-prefix], [ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib --without-lib-prefix don't search for libraries in includedir and libdir], [ if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) else additional_includedir="$withval/include" additional_libdir="$withval/lib" fi fi ]) if test $use_additional = yes; then dnl Potentially add $additional_includedir to $CPPFLAGS. dnl But don't add it dnl 1. if it's the standard /usr/include, dnl 2. if it's already present in $CPPFLAGS, dnl 3. if it's /usr/local/include and we are using GCC on Linux, dnl 4. if it doesn't exist as a directory. if test "X$additional_includedir" != "X/usr/include"; then haveit= for x in $CPPFLAGS; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux*) haveit=yes;; esac fi fi if test -z "$haveit"; then if test -d "$additional_includedir"; then dnl Really add $additional_includedir to $CPPFLAGS. CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir" fi fi fi fi dnl Potentially add $additional_libdir to $LDFLAGS. dnl But don't add it dnl 1. if it's the standard /usr/lib, dnl 2. if it's already present in $LDFLAGS, dnl 3. if it's /usr/local/lib and we are using GCC on Linux, dnl 4. if it doesn't exist as a directory. if test "X$additional_libdir" != "X/usr/lib"; then haveit= for x in $LDFLAGS; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test "X$additional_libdir" = "X/usr/local/lib"; then if test -n "$GCC"; then case $host_os in linux*) haveit=yes;; esac fi fi if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LDFLAGS. LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir" fi fi fi fi fi ]) dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix, dnl acl_final_exec_prefix, containing the values to which $prefix and dnl $exec_prefix will expand at the end of the configure script. AC_DEFUN([AC_LIB_PREPARE_PREFIX], [ dnl Unfortunately, prefix and exec_prefix get only finally determined dnl at the end of configure. if test "X$prefix" = "XNONE"; then acl_final_prefix="$ac_default_prefix" else acl_final_prefix="$prefix" fi if test "X$exec_prefix" = "XNONE"; then acl_final_exec_prefix='${prefix}' else acl_final_exec_prefix="$exec_prefix" fi acl_save_prefix="$prefix" prefix="$acl_final_prefix" eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" prefix="$acl_save_prefix" ]) dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the dnl variables prefix and exec_prefix bound to the values they will have dnl at the end of the configure script. AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], [ acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" $1 exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" ]) scim-1.4.14/m4/libtool.m4000066400000000000000000007734361177210725600150160ustar00rootroot00000000000000# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008 Free Software Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. m4_define([_LT_COPYING], [dnl # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008 Free Software Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. # # GNU Libtool is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2 of # the License, or (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, or # obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ]) # serial 56 LT_INIT # LT_PREREQ(VERSION) # ------------------ # Complain and exit if this libtool version is less that VERSION. m4_defun([LT_PREREQ], [m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, [m4_default([$3], [m4_fatal([Libtool version $1 or higher is required], 63)])], [$2])]) # _LT_CHECK_BUILDDIR # ------------------ # Complain if the absolute build directory name contains unusual characters m4_defun([_LT_CHECK_BUILDDIR], [case `pwd` in *\ * | *\ *) AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; esac ]) # LT_INIT([OPTIONS]) # ------------------ AC_DEFUN([LT_INIT], [AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT AC_BEFORE([$0], [LT_LANG])dnl AC_BEFORE([$0], [LT_OUTPUT])dnl AC_BEFORE([$0], [LTDL_INIT])dnl m4_require([_LT_CHECK_BUILDDIR])dnl dnl Autoconf doesn't catch unexpanded LT_ macros by default: m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 dnl unless we require an AC_DEFUNed macro: AC_REQUIRE([LTOPTIONS_VERSION])dnl AC_REQUIRE([LTSUGAR_VERSION])dnl AC_REQUIRE([LTVERSION_VERSION])dnl AC_REQUIRE([LTOBSOLETE_VERSION])dnl m4_require([_LT_PROG_LTMAIN])dnl dnl Parse OPTIONS _LT_SET_OPTIONS([$0], [$1]) # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ltmain" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' AC_SUBST(LIBTOOL)dnl _LT_SETUP # Only expand once: m4_define([LT_INIT]) ])# LT_INIT # Old names: AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PROG_LIBTOOL], []) dnl AC_DEFUN([AM_PROG_LIBTOOL], []) # _LT_CC_BASENAME(CC) # ------------------- # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. m4_defun([_LT_CC_BASENAME], [for cc_temp in $1""; do case $cc_temp in compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` ]) # _LT_FILEUTILS_DEFAULTS # ---------------------- # It is okay to use these file commands and assume they have been set # sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'. m4_defun([_LT_FILEUTILS_DEFAULTS], [: ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} ])# _LT_FILEUTILS_DEFAULTS # _LT_SETUP # --------- m4_defun([_LT_SETUP], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl _LT_DECL([], [host_alias], [0], [The host system])dnl _LT_DECL([], [host], [0])dnl _LT_DECL([], [host_os], [0])dnl dnl _LT_DECL([], [build_alias], [0], [The build system])dnl _LT_DECL([], [build], [0])dnl _LT_DECL([], [build_os], [0])dnl dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl dnl AC_REQUIRE([AC_PROG_LN_S])dnl test -z "$LN_S" && LN_S="ln -s" _LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl dnl AC_REQUIRE([LT_CMD_MAX_LEN])dnl _LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl _LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl m4_require([_LT_CMD_RELOAD])dnl m4_require([_LT_CHECK_MAGIC_METHOD])dnl m4_require([_LT_CMD_OLD_ARCHIVE])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl _LT_CONFIG_LIBTOOL_INIT([ # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi ]) if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi _LT_CHECK_OBJDIR m4_require([_LT_TAG_COMPILER])dnl _LT_PROG_ECHO_BACKSLASH case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\([["`\\]]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld="$lt_cv_prog_gnu_ld" old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o _LT_CC_BASENAME([$compiler]) # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then _LT_PATH_MAGIC fi ;; esac # Use C for the default configuration in the libtool script LT_SUPPORTED_TAG([CC]) _LT_LANG_C_CONFIG _LT_LANG_DEFAULT_CONFIG _LT_CONFIG_COMMANDS ])# _LT_SETUP # _LT_PROG_LTMAIN # --------------- # Note that this code is called both from `configure', and `config.status' # now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, # `config.status' has no value for ac_aux_dir unless we are using Automake, # so we pass a copy along to make sure it has a sensible value anyway. m4_defun([_LT_PROG_LTMAIN], [m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl _LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) ltmain="$ac_aux_dir/ltmain.sh" ])# _LT_PROG_LTMAIN ## ------------------------------------- ## ## Accumulate code for creating libtool. ## ## ------------------------------------- ## # So that we can recreate a full libtool script including additional # tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS # in macros and then make a single call at the end using the `libtool' # label. # _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) # ---------------------------------------- # Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL_INIT], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_INIT], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_INIT]) # _LT_CONFIG_LIBTOOL([COMMANDS]) # ------------------------------ # Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) # _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) # ----------------------------------------------------- m4_defun([_LT_CONFIG_SAVE_COMMANDS], [_LT_CONFIG_LIBTOOL([$1]) _LT_CONFIG_LIBTOOL_INIT([$2]) ]) # _LT_FORMAT_COMMENT([COMMENT]) # ----------------------------- # Add leading comment marks to the start of each line, and a trailing # full-stop to the whole comment if one is not present already. m4_define([_LT_FORMAT_COMMENT], [m4_ifval([$1], [ m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) )]) ## ------------------------ ## ## FIXME: Eliminate VARNAME ## ## ------------------------ ## # _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) # ------------------------------------------------------------------- # CONFIGNAME is the name given to the value in the libtool script. # VARNAME is the (base) name used in the configure script. # VALUE may be 0, 1 or 2 for a computed quote escaped value based on # VARNAME. Any other value will be used directly. m4_define([_LT_DECL], [lt_if_append_uniq([lt_decl_varnames], [$2], [, ], [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], [m4_ifval([$1], [$1], [$2])]) lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) m4_ifval([$4], [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) lt_dict_add_subkey([lt_decl_dict], [$2], [tagged?], [m4_ifval([$5], [yes], [no])])]) ]) # _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) # -------------------------------------------------------- m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) # lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_tag_varnames], [_lt_decl_filter([tagged?], [yes], $@)]) # _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) # --------------------------------------------------------- m4_define([_lt_decl_filter], [m4_case([$#], [0], [m4_fatal([$0: too few arguments: $#])], [1], [m4_fatal([$0: too few arguments: $#: $1])], [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], [lt_dict_filter([lt_decl_dict], $@)])[]dnl ]) # lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) # -------------------------------------------------- m4_define([lt_decl_quote_varnames], [_lt_decl_filter([value], [1], $@)]) # lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_dquote_varnames], [_lt_decl_filter([value], [2], $@)]) # lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_varnames_tagged], [m4_assert([$# <= 2])dnl _$0(m4_quote(m4_default([$1], [[, ]])), m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) m4_define([_lt_decl_varnames_tagged], [m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) # lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_all_varnames], [_$0(m4_quote(m4_default([$1], [[, ]])), m4_if([$2], [], m4_quote(lt_decl_varnames), m4_quote(m4_shift($@))))[]dnl ]) m4_define([_lt_decl_all_varnames], [lt_join($@, lt_decl_varnames_tagged([$1], lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl ]) # _LT_CONFIG_STATUS_DECLARE([VARNAME]) # ------------------------------------ # Quote a variable value, and forward it to `config.status' so that its # declaration there will have the same value as in `configure'. VARNAME # must have a single quote delimited value for this to work. m4_define([_LT_CONFIG_STATUS_DECLARE], [$1='`$ECHO "X$][$1" | $Xsed -e "$delay_single_quote_subst"`']) # _LT_CONFIG_STATUS_DECLARATIONS # ------------------------------ # We delimit libtool config variables with single quotes, so when # we write them to config.status, we have to be sure to quote all # embedded single quotes properly. In configure, this macro expands # each variable declared with _LT_DECL (and _LT_TAGDECL) into: # # ='`$ECHO "X$" | $Xsed -e "$delay_single_quote_subst"`' m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], [m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAGS # ---------------- # Output comment and list of tags supported by the script m4_defun([_LT_LIBTOOL_TAGS], [_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl available_tags="_LT_TAGS"dnl ]) # _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) # ----------------------------------- # Extract the dictionary values for VARNAME (optionally with TAG) and # expand to a commented shell variable setting: # # # Some comment about what VAR is for. # visible_name=$lt_internal_name m4_define([_LT_LIBTOOL_DECLARE], [_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [description])))[]dnl m4_pushdef([_libtool_name], m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), [0], [_libtool_name=[$]$1], [1], [_libtool_name=$lt_[]$1], [2], [_libtool_name=$lt_[]$1], [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl ]) # _LT_LIBTOOL_CONFIG_VARS # ----------------------- # Produce commented declarations of non-tagged libtool config variables # suitable for insertion in the LIBTOOL CONFIG section of the `libtool' # script. Tagged libtool config variables (even for the LIBTOOL CONFIG # section) are produced by _LT_LIBTOOL_TAG_VARS. m4_defun([_LT_LIBTOOL_CONFIG_VARS], [m4_foreach([_lt_var], m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAG_VARS(TAG) # ------------------------- m4_define([_LT_LIBTOOL_TAG_VARS], [m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) # _LT_TAGVAR(VARNAME, [TAGNAME]) # ------------------------------ m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) # _LT_CONFIG_COMMANDS # ------------------- # Send accumulated output to $CONFIG_STATUS. Thanks to the lists of # variables for single and double quote escaping we saved from calls # to _LT_DECL, we can put quote escaped variables declarations # into `config.status', and then the shell code to quote escape them in # for loops in `config.status'. Finally, any additional code accumulated # from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. m4_defun([_LT_CONFIG_COMMANDS], [AC_PROVIDE_IFELSE([LT_OUTPUT], dnl If the libtool generation code has been placed in $CONFIG_LT, dnl instead of duplicating it all over again into config.status, dnl then we will have config.status run $CONFIG_LT later, so it dnl needs to know what name is stored there: [AC_CONFIG_COMMANDS([libtool], [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], dnl If the libtool generation code is destined for config.status, dnl expand the accumulated commands and init code now: [AC_CONFIG_COMMANDS([libtool], [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) ])#_LT_CONFIG_COMMANDS # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], [ # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' _LT_CONFIG_STATUS_DECLARATIONS LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # Quote evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_quote_varnames); do case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_dquote_varnames); do case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Fix-up fallback echo if it was mangled by the above quoting rules. case \$lt_ECHO in *'\\\[$]0 --fallback-echo"')dnl " lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\[$]0 --fallback-echo"\[$]/\[$]0 --fallback-echo"/'\` ;; esac _LT_OUTPUT_LIBTOOL_INIT ]) # LT_OUTPUT # --------- # This macro allows early generation of the libtool script (before # AC_OUTPUT is called), incase it is used in configure for compilation # tests. AC_DEFUN([LT_OUTPUT], [: ${CONFIG_LT=./config.lt} AC_MSG_NOTICE([creating $CONFIG_LT]) cat >"$CONFIG_LT" <<_LTEOF #! $SHELL # Generated by $as_me. # Run this file to recreate a libtool stub with the current configuration. lt_cl_silent=false SHELL=\${CONFIG_SHELL-$SHELL} _LTEOF cat >>"$CONFIG_LT" <<\_LTEOF AS_SHELL_SANITIZE _AS_PREPARE exec AS_MESSAGE_FD>&1 exec AS_MESSAGE_LOG_FD>>config.log { echo AS_BOX([Running $as_me.]) } >&AS_MESSAGE_LOG_FD lt_cl_help="\ \`$as_me' creates a local libtool stub from the current configuration, for use in further configure time tests before the real libtool is generated. Usage: $[0] [[OPTIONS]] -h, --help print this help, then exit -V, --version print version number, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files Report bugs to ." lt_cl_version="\ m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) configured by $[0], generated by m4_PACKAGE_STRING. Copyright (C) 2008 Free Software Foundation, Inc. This config.lt script is free software; the Free Software Foundation gives unlimited permision to copy, distribute and modify it." while test $[#] != 0 do case $[1] in --version | --v* | -V ) echo "$lt_cl_version"; exit 0 ;; --help | --h* | -h ) echo "$lt_cl_help"; exit 0 ;; --debug | --d* | -d ) debug=: ;; --quiet | --q* | --silent | --s* | -q ) lt_cl_silent=: ;; -*) AC_MSG_ERROR([unrecognized option: $[1] Try \`$[0] --help' for more information.]) ;; *) AC_MSG_ERROR([unrecognized argument: $[1] Try \`$[0] --help' for more information.]) ;; esac shift done if $lt_cl_silent; then exec AS_MESSAGE_FD>/dev/null fi _LTEOF cat >>"$CONFIG_LT" <<_LTEOF _LT_OUTPUT_LIBTOOL_COMMANDS_INIT _LTEOF cat >>"$CONFIG_LT" <<\_LTEOF AC_MSG_NOTICE([creating $ofile]) _LT_OUTPUT_LIBTOOL_COMMANDS AS_EXIT(0) _LTEOF chmod +x "$CONFIG_LT" # configure is writing to config.log, but config.lt does its own redirection, # appending to config.log, which fails on DOS, as config.log is still kept # open by configure. Here we exec the FD to /dev/null, effectively closing # config.log, so it can be properly (re)opened and appended to by config.lt. if test "$no_create" != yes; then lt_cl_success=: test "$silent" = yes && lt_config_lt_args="$lt_config_lt_args --quiet" exec AS_MESSAGE_LOG_FD>/dev/null $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false exec AS_MESSAGE_LOG_FD>>config.log $lt_cl_success || AS_EXIT(1) fi ])# LT_OUTPUT # _LT_CONFIG(TAG) # --------------- # If TAG is the built-in tag, create an initial libtool script with a # default configuration from the untagged config vars. Otherwise add code # to config.status for appending the configuration named by TAG from the # matching tagged config vars. m4_defun([_LT_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_CONFIG_SAVE_COMMANDS([ m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl m4_if(_LT_TAG, [C], [ # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi cfgfile="${ofile}T" trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION # NOTE: Changes made to this file will be lost: look at ltmain.sh. # _LT_COPYING _LT_LIBTOOL_TAGS # ### BEGIN LIBTOOL CONFIG _LT_LIBTOOL_CONFIG_VARS _LT_LIBTOOL_TAG_VARS # ### END LIBTOOL CONFIG _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac _LT_PROG_LTMAIN # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) _LT_PROG_XSI_SHELLFNS sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ], [cat <<_LT_EOF >> "$ofile" dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded dnl in a comment (ie after a #). # ### BEGIN LIBTOOL TAG CONFIG: $1 _LT_LIBTOOL_TAG_VARS(_LT_TAG) # ### END LIBTOOL TAG CONFIG: $1 _LT_EOF ])dnl /m4_if ], [m4_if([$1], [], [ PACKAGE='$PACKAGE' VERSION='$VERSION' TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile'], []) ])dnl /_LT_CONFIG_SAVE_COMMANDS ])# _LT_CONFIG # LT_SUPPORTED_TAG(TAG) # --------------------- # Trace this macro to discover what tags are supported by the libtool # --tag option, using: # autoconf --trace 'LT_SUPPORTED_TAG:$1' AC_DEFUN([LT_SUPPORTED_TAG], []) # C support is built-in for now m4_define([_LT_LANG_C_enabled], []) m4_define([_LT_TAGS], []) # LT_LANG(LANG) # ------------- # Enable libtool support for the given language if not already enabled. AC_DEFUN([LT_LANG], [AC_BEFORE([$0], [LT_OUTPUT])dnl m4_case([$1], [C], [_LT_LANG(C)], [C++], [_LT_LANG(CXX)], [Java], [_LT_LANG(GCJ)], [Fortran 77], [_LT_LANG(F77)], [Fortran], [_LT_LANG(FC)], [Windows Resource], [_LT_LANG(RC)], [m4_ifdef([_LT_LANG_]$1[_CONFIG], [_LT_LANG($1)], [m4_fatal([$0: unsupported language: "$1"])])])dnl ])# LT_LANG # _LT_LANG(LANGNAME) # ------------------ m4_defun([_LT_LANG], [m4_ifdef([_LT_LANG_]$1[_enabled], [], [LT_SUPPORTED_TAG([$1])dnl m4_append([_LT_TAGS], [$1 ])dnl m4_define([_LT_LANG_]$1[_enabled], [])dnl _LT_LANG_$1_CONFIG($1)])dnl ])# _LT_LANG # _LT_LANG_DEFAULT_CONFIG # ----------------------- m4_defun([_LT_LANG_DEFAULT_CONFIG], [AC_PROVIDE_IFELSE([AC_PROG_CXX], [LT_LANG(CXX)], [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) AC_PROVIDE_IFELSE([AC_PROG_F77], [LT_LANG(F77)], [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) AC_PROVIDE_IFELSE([AC_PROG_FC], [LT_LANG(FC)], [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal dnl pulling things in needlessly. AC_PROVIDE_IFELSE([AC_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([LT_PROG_GCJ], [LT_LANG(GCJ)], [m4_ifdef([AC_PROG_GCJ], [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([A][M_PROG_GCJ], [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([LT_PROG_GCJ], [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) AC_PROVIDE_IFELSE([LT_PROG_RC], [LT_LANG(RC)], [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) ])# _LT_LANG_DEFAULT_CONFIG # Obsolete macros: AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_CXX], []) dnl AC_DEFUN([AC_LIBTOOL_F77], []) dnl AC_DEFUN([AC_LIBTOOL_FC], []) dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) # _LT_TAG_COMPILER # ---------------- m4_defun([_LT_TAG_COMPILER], [AC_REQUIRE([AC_PROG_CC])dnl _LT_DECL([LTCC], [CC], [1], [A C compiler])dnl _LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl _LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl _LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC ])# _LT_TAG_COMPILER # _LT_COMPILER_BOILERPLATE # ------------------------ # Check for compiler boilerplate output or warnings with # the simple compiler test code. m4_defun([_LT_COMPILER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ])# _LT_COMPILER_BOILERPLATE # _LT_LINKER_BOILERPLATE # ---------------------- # Check for linker boilerplate output or warnings with # the simple link test code. m4_defun([_LT_LINKER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ])# _LT_LINKER_BOILERPLATE # _LT_REQUIRED_DARWIN_CHECKS # ------------------------- m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ case $host_os in rhapsody* | darwin*) AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) AC_CHECK_TOOL([LIPO], [lipo], [:]) AC_CHECK_TOOL([OTOOL], [otool], [:]) AC_CHECK_TOOL([OTOOL64], [otool64], [:]) _LT_DECL([], [DSYMUTIL], [1], [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) _LT_DECL([], [NMEDIT], [1], [Tool to change global to local symbols on Mac OS X]) _LT_DECL([], [LIPO], [1], [Tool to manipulate fat objects and archives on Mac OS X]) _LT_DECL([], [OTOOL], [1], [ldd/readelf like tool for Mach-O binaries on Mac OS X]) _LT_DECL([], [OTOOL64], [1], [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], [lt_cv_apple_cc_single_mod=no if test -z "${LT_MULTI_MODULE}"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -rf libconftest.dylib* rm -f conftest.* fi]) AC_CACHE_CHECK([for -exported_symbols_list linker flag], [lt_cv_ld_exported_symbols_list], [lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [lt_cv_ld_exported_symbols_list=yes], [lt_cv_ld_exported_symbols_list=no]) LDFLAGS="$save_LDFLAGS" ]) case $host_os in rhapsody* | darwin1.[[012]]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 10.[[012]]*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test "$lt_cv_apple_cc_single_mod" = "yes"; then _lt_dar_single_mod='$single_module' fi if test "$lt_cv_ld_exported_symbols_list" = "yes"; then _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi if test "$DSYMUTIL" != ":"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac ]) # _LT_DARWIN_LINKER_FEATURES # -------------------------- # Checks for linker and compiler features on darwin m4_defun([_LT_DARWIN_LINKER_FEATURES], [ m4_require([_LT_REQUIRED_DARWIN_CHECKS]) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(whole_archive_flag_spec, $1)='' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=echo _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" m4_if([$1], [CXX], [ if test "$lt_cv_apple_cc_single_mod" != "yes"; then _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" fi ],[]) else _LT_TAGVAR(ld_shlibs, $1)=no fi ]) # _LT_SYS_MODULE_PATH_AIX # ----------------------- # Links a minimal program and checks the executable # for the system default hardcoded library path. In most cases, # this is /usr/lib:/lib, but when the MPI compilers are used # the location of the communication and MPI libs are included too. # If we don't find anything, use the default library path according # to the aix ld manual. m4_defun([_LT_SYS_MODULE_PATH_AIX], [m4_require([_LT_DECL_SED])dnl AC_LINK_IFELSE([AC_LANG_PROGRAM],[ lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi],[]) if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ])# _LT_SYS_MODULE_PATH_AIX # _LT_SHELL_INIT(ARG) # ------------------- m4_define([_LT_SHELL_INIT], [ifdef([AC_DIVERSION_NOTICE], [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], [AC_DIVERT_PUSH(NOTICE)]) $1 AC_DIVERT_POP ])# _LT_SHELL_INIT # _LT_PROG_ECHO_BACKSLASH # ----------------------- # Add some code to the start of the generated configure script which # will find an echo command which doesn't interpret backslashes. m4_defun([_LT_PROG_ECHO_BACKSLASH], [_LT_SHELL_INIT([ # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} case X$lt_ECHO in X*--fallback-echo) # Remove one level of quotation (which was required for Make). ECHO=`echo "$lt_ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` ;; esac ECHO=${lt_ECHO-echo} if test "X[$]1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X[$]1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then # Yippee, $ECHO works! : else # Restart under the correct shell. exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} fi if test "X[$]1" = X--fallback-echo; then # used as fallback echo shift cat <<_LT_EOF [$]* _LT_EOF exit 0 fi # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH if test -z "$lt_ECHO"; then if test "X${echo_test_string+set}" != Xset; then # find a string as large as possible, as long as the shell can cope with it for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... if { echo_test_string=`eval $cmd`; } 2>/dev/null && { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null then break fi done fi if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then : else # The Solaris, AIX, and Digital Unix default echo programs unquote # backslashes. This makes it impossible to quote backslashes using # echo "$something" | sed 's/\\/\\\\/g' # # So, first we look for a working echo in the user's PATH. lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for dir in $PATH /usr/ucb; do IFS="$lt_save_ifs" if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then ECHO="$dir/echo" break fi done IFS="$lt_save_ifs" if test "X$ECHO" = Xecho; then # We didn't find a better echo, so look for alternatives. if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # This shell has a builtin print -r that does the trick. ECHO='print -r' elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } && test "X$CONFIG_SHELL" != X/bin/ksh; then # If we have ksh, try running configure again with it. ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} export ORIGINAL_CONFIG_SHELL CONFIG_SHELL=/bin/ksh export CONFIG_SHELL exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} else # Try using printf. ECHO='printf %s\n' if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # Cool, printf works : elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL export CONFIG_SHELL SHELL="$CONFIG_SHELL" export SHELL ECHO="$CONFIG_SHELL [$]0 --fallback-echo" elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then ECHO="$CONFIG_SHELL [$]0 --fallback-echo" else # maybe with a smaller string... prev=: for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null then break fi prev="$cmd" done if test "$prev" != 'sed 50q "[$]0"'; then echo_test_string=`eval $prev` export echo_test_string exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} else # Oops. We lost completely, so just stick with echo. ECHO=echo fi fi fi fi fi fi # Copy echo and quote the copy suitably for passing to libtool from # the Makefile, instead of quoting the original, which is used later. lt_ECHO=$ECHO if test "X$lt_ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then lt_ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" fi AC_SUBST(lt_ECHO) ]) _LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) _LT_DECL([], [ECHO], [1], [An echo program that does not interpret backslashes]) ])# _LT_PROG_ECHO_BACKSLASH # _LT_ENABLE_LOCK # --------------- m4_defun([_LT_ENABLE_LOCK], [AC_ARG_ENABLE([libtool-lock], [AS_HELP_STRING([--disable-libtool-lock], [avoid locking (might break parallel builds)])]) test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '[#]line __oline__ "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, [AC_LANG_PUSH(C) AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) AC_LANG_POP]) if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; sparc*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) LD="${LD-ld} -m elf64_sparc" ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" ])# _LT_ENABLE_LOCK # _LT_CMD_OLD_ARCHIVE # ------------------- m4_defun([_LT_CMD_OLD_ARCHIVE], [AC_CHECK_TOOL(AR, ar, false) test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru _LT_DECL([], [AR], [1], [The archiver]) _LT_DECL([], [AR_FLAGS], [1]) AC_CHECK_TOOL(STRIP, strip, :) test -z "$STRIP" && STRIP=: _LT_DECL([], [STRIP], [1], [A symbol stripping program]) AC_CHECK_TOOL(RANLIB, ranlib, :) test -z "$RANLIB" && RANLIB=: _LT_DECL([], [RANLIB], [1], [Commands used to install an old-style archive]) # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi _LT_DECL([], [old_postinstall_cmds], [2]) _LT_DECL([], [old_postuninstall_cmds], [2]) _LT_TAGDECL([], [old_archive_cmds], [2], [Commands used to build an old-style archive]) ])# _LT_CMD_OLD_ARCHIVE # _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------------------- # Check whether the given compiler option works AC_DEFUN([_LT_COMPILER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$3" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi fi $RM conftest* ]) if test x"[$]$2" = xyes; then m4_if([$5], , :, [$5]) else m4_if([$6], , :, [$6]) fi ])# _LT_COMPILER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) # _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------- # Check whether the given linker option works AC_DEFUN([_LT_LINKER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $3" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&AS_MESSAGE_LOG_FD $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi else $2=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" ]) if test x"[$]$2" = xyes; then m4_if([$4], , :, [$4]) else m4_if([$5], , :, [$5]) fi ])# _LT_LINKER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) # LT_CMD_MAX_LEN #--------------- AC_DEFUN([LT_CMD_MAX_LEN], [AC_REQUIRE([AC_CANONICAL_HOST])dnl # find the maximum length of command line arguments AC_MSG_CHECKING([the maximum length of command line arguments]) AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8 ; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test "X"`$SHELL [$]0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ = "XX$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac ]) if test -n $lt_cv_sys_max_cmd_len ; then AC_MSG_RESULT($lt_cv_sys_max_cmd_len) else AC_MSG_RESULT(none) fi max_cmd_len=$lt_cv_sys_max_cmd_len _LT_DECL([], [max_cmd_len], [0], [What is the maximum length of a command?]) ])# LT_CMD_MAX_LEN # Old name: AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) # _LT_HEADER_DLFCN # ---------------- m4_defun([_LT_HEADER_DLFCN], [AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl ])# _LT_HEADER_DLFCN # _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, # ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) # ---------------------------------------------------------------- m4_defun([_LT_TRY_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test "$cross_compiling" = yes; then : [$4] else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF [#line __oline__ "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } else puts (dlerror ()); return status; }] _LT_EOF if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) $1 ;; x$lt_dlneed_uscore) $2 ;; x$lt_dlunknown|x*) $3 ;; esac else : # compilation failed $3 fi fi rm -fr conftest* ])# _LT_TRY_DLOPEN_SELF # LT_SYS_DLOPEN_SELF # ------------------ AC_DEFUN([LT_SYS_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ]) ;; *) AC_CHECK_FUNC([shl_load], [lt_cv_dlopen="shl_load"], [AC_CHECK_LIB([dld], [shl_load], [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], [AC_CHECK_FUNC([dlopen], [lt_cv_dlopen="dlopen"], [AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], [AC_CHECK_LIB([svld], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], [AC_CHECK_LIB([dld], [dld_link], [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"]) ]) ]) ]) ]) ]) ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" AC_CACHE_CHECK([whether a program can dlopen itself], lt_cv_dlopen_self, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) ]) if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" AC_CACHE_CHECK([whether a statically linked program can dlopen itself], lt_cv_dlopen_self_static, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) ]) fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi _LT_DECL([dlopen_support], [enable_dlopen], [0], [Whether dlopen is supported]) _LT_DECL([dlopen_self], [enable_dlopen_self], [0], [Whether dlopen of programs is supported]) _LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], [Whether dlopen of statically linked programs is supported]) ])# LT_SYS_DLOPEN_SELF # Old name: AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) # _LT_COMPILER_C_O([TAGNAME]) # --------------------------- # Check to see if options -c and -o are simultaneously supported by compiler. # This macro does not hard code the compiler like AC_PROG_CC_C_O. m4_defun([_LT_COMPILER_C_O], [m4_require([_LT_DECL_SED])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes fi fi chmod u+w . 2>&AS_MESSAGE_LOG_FD $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* ]) _LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], [Does compiler simultaneously support -c and -o options?]) ])# _LT_COMPILER_C_O # _LT_COMPILER_FILE_LOCKS([TAGNAME]) # ---------------------------------- # Check to see if we can do hard links to lock some files if needed m4_defun([_LT_COMPILER_FILE_LOCKS], [m4_require([_LT_ENABLE_LOCK])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_COMPILER_C_O([$1]) hard_links="nottested" if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user AC_MSG_CHECKING([if we can lock with hard links]) hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no AC_MSG_RESULT([$hard_links]) if test "$hard_links" = no; then AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) need_locks=warn fi else need_locks=no fi _LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) ])# _LT_COMPILER_FILE_LOCKS # _LT_CHECK_OBJDIR # ---------------- m4_defun([_LT_CHECK_OBJDIR], [AC_CACHE_CHECK([for objdir], [lt_cv_objdir], [rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null]) objdir=$lt_cv_objdir _LT_DECL([], [objdir], [0], [The name of the directory that contains temporary libtool files])dnl m4_pattern_allow([LT_OBJDIR])dnl AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/", [Define to the sub-directory in which libtool stores uninstalled libraries.]) ])# _LT_CHECK_OBJDIR # _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) # -------------------------------------- # Check hardcoding attributes. m4_defun([_LT_LINKER_HARDCODE_LIBPATH], [AC_MSG_CHECKING([how to hardcode library paths into programs]) _LT_TAGVAR(hardcode_action, $1)= if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || test -n "$_LT_TAGVAR(runpath_var, $1)" || test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then # We can hardcode non-existent directories. if test "$_LT_TAGVAR(hardcode_direct, $1)" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no && test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then # Linking always hardcodes the temporary library directory. _LT_TAGVAR(hardcode_action, $1)=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. _LT_TAGVAR(hardcode_action, $1)=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. _LT_TAGVAR(hardcode_action, $1)=unsupported fi AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) if test "$_LT_TAGVAR(hardcode_action, $1)" = relink || test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi _LT_TAGDECL([], [hardcode_action], [0], [How to hardcode a shared library path into an executable]) ])# _LT_LINKER_HARDCODE_LIBPATH # _LT_CMD_STRIPLIB # ---------------- m4_defun([_LT_CMD_STRIPLIB], [m4_require([_LT_DECL_EGREP]) striplib= old_striplib= AC_MSG_CHECKING([whether stripping libraries is possible]) if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" AC_MSG_RESULT([yes]) else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fi ;; *) AC_MSG_RESULT([no]) ;; esac fi _LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) _LT_DECL([], [striplib], [1]) ])# _LT_CMD_STRIPLIB # _LT_SYS_DYNAMIC_LINKER([TAG]) # ----------------------------- # PORTME Fill in your ld.so characteristics m4_defun([_LT_SYS_DYNAMIC_LINKER], [AC_REQUIRE([AC_CANONICAL_HOST])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_OBJDUMP])dnl m4_require([_LT_DECL_SED])dnl AC_MSG_CHECKING([dynamic linker characteristics]) m4_if([$1], [], [ if test "$GCC" = yes; then case $host_os in darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'` else lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path/$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" else test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo="/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[[lt_foo]]++; } if (lt_freq[[lt_foo]] == 1) { print lt_foo; } }'` sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi]) library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[[4-9]]*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[[01]] | aix4.[[01]].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[[45]]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[[123]]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[[01]]* | freebsdelf3.[[01]]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix[[3-9]]*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux* | k*bsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], [shlibpath_overrides_runpath=yes])]) LDFLAGS=$save_LDFLAGS libdir=$save_libdir # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[[89]] | openbsd2.[[89]].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac AC_MSG_RESULT([$dynamic_linker]) test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi _LT_DECL([], [variables_saved_for_relink], [1], [Variables whose values should be saved in libtool wrapper scripts and restored at link time]) _LT_DECL([], [need_lib_prefix], [0], [Do we need the "lib" prefix for modules?]) _LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) _LT_DECL([], [version_type], [0], [Library versioning type]) _LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) _LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) _LT_DECL([], [shlibpath_overrides_runpath], [0], [Is shlibpath searched before the hard-coded library search path?]) _LT_DECL([], [libname_spec], [1], [Format of library name prefix]) _LT_DECL([], [library_names_spec], [1], [[List of archive names. First name is the real one, the rest are links. The last name is the one that the linker finds with -lNAME]]) _LT_DECL([], [soname_spec], [1], [[The coded name of the library, if different from the real name]]) _LT_DECL([], [postinstall_cmds], [2], [Command to use after installation of a shared archive]) _LT_DECL([], [postuninstall_cmds], [2], [Command to use after uninstallation of a shared archive]) _LT_DECL([], [finish_cmds], [2], [Commands used to finish a libtool library installation in a directory]) _LT_DECL([], [finish_eval], [1], [[As "finish_cmds", except a single script fragment to be evaled but not shown]]) _LT_DECL([], [hardcode_into_libs], [0], [Whether we should hardcode library paths into libraries]) _LT_DECL([], [sys_lib_search_path_spec], [2], [Compile-time system search path for libraries]) _LT_DECL([], [sys_lib_dlsearch_path_spec], [2], [Run-time system search path for libraries]) ])# _LT_SYS_DYNAMIC_LINKER # _LT_PATH_TOOL_PREFIX(TOOL) # -------------------------- # find a file program which can recognize shared library AC_DEFUN([_LT_PATH_TOOL_PREFIX], [m4_require([_LT_DECL_EGREP])dnl AC_MSG_CHECKING([for $1]) AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, [case $MAGIC_CMD in [[\\/*] | ?:[\\/]*]) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR dnl $ac_dummy forces splitting on constant user-supplied paths. dnl POSIX.2 word splitting is done only on the output of word expansions, dnl not every word. This closes a longstanding sh security hole. ac_dummy="m4_if([$2], , $PATH, [$2])" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$1; then lt_cv_path_MAGIC_CMD="$ac_dir/$1" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac]) MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then AC_MSG_RESULT($MAGIC_CMD) else AC_MSG_RESULT(no) fi _LT_DECL([], [MAGIC_CMD], [0], [Used to examine libraries when file_magic_cmd begins with "file"])dnl ])# _LT_PATH_TOOL_PREFIX # Old name: AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) # _LT_PATH_MAGIC # -------------- # find a file program which can recognize a shared library m4_defun([_LT_PATH_MAGIC], [_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) else MAGIC_CMD=: fi fi ])# _LT_PATH_MAGIC # LT_PATH_LD # ---------- # find the pathname to the GNU or non-GNU linker AC_DEFUN([LT_PATH_LD], [AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl AC_ARG_WITH([gnu-ld], [AS_HELP_STRING([--with-gnu-ld], [assume the C compiler uses GNU ld @<:@default=no@:>@])], [test "$withval" = no || with_gnu_ld=yes], [with_gnu_ld=no])dnl ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. AC_MSG_CHECKING([for ld used by $CC]) case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [[\\/]]* | ?:[[\\/]]*) re_direlt='/[[^/]][[^/]]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi AC_CACHE_VAL(lt_cv_path_LD, [if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'] lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[[3-9]]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be Linux ELF. linux* | k*bsd*-gnu) lt_cv_deplibs_check_method=pass_all ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; esac ]) file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown _LT_DECL([], [deplibs_check_method], [1], [Method to check whether dependent libraries are shared objects]) _LT_DECL([], [file_magic_cmd], [1], [Command to use when deplibs_check_method == "file_magic"]) ])# _LT_CHECK_MAGIC_METHOD # LT_PATH_NM # ---------- # find the pathname to a BSD- or MS-compatible name lister AC_DEFUN([LT_PATH_NM], [AC_REQUIRE([AC_PROG_CC])dnl AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, [if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done : ${lt_cv_path_NM=no} fi]) if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. AC_CHECK_TOOLS(DUMPBIN, ["dumpbin -symbols" "link -dump -symbols"], :) AC_SUBST([DUMPBIN]) if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" fi fi test -z "$NM" && NM=nm AC_SUBST([NM]) _LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], [lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:__oline__: $ac_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:__oline__: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:__oline__: output\"" >&AS_MESSAGE_LOG_FD) cat conftest.out >&AS_MESSAGE_LOG_FD if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest*]) ])# LT_PATH_NM # Old names: AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_PROG_NM], []) dnl AC_DEFUN([AC_PROG_NM], []) # LT_LIB_M # -------- # check for math library AC_DEFUN([LT_LIB_M], [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in *-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*) # These system don't have libm, or don't need it ;; *-ncr-sysv4.3*) AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") ;; *) AC_CHECK_LIB(m, cos, LIBM="-lm") ;; esac AC_SUBST([LIBM]) ])# LT_LIB_M # Old name: AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_CHECK_LIBM], []) # _LT_COMPILER_NO_RTTI([TAGNAME]) # ------------------------------- m4_defun([_LT_COMPILER_NO_RTTI], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= if test "$GCC" = yes; then _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], lt_cv_prog_compiler_rtti_exceptions, [-fno-rtti -fno-exceptions], [], [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) fi _LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], [Compiler flag to turn off builtin functions]) ])# _LT_COMPILER_NO_RTTI # _LT_CMD_GLOBAL_SYMBOLS # ---------------------- m4_defun([_LT_CMD_GLOBAL_SYMBOLS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([LT_PATH_NM])dnl AC_REQUIRE([LT_PATH_LD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_TAG_COMPILER])dnl # Check for command to grab the raw symbol name followed by C symbol from nm. AC_MSG_CHECKING([command to parse $NM output from $compiler object]) AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], [ # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[[BCDEGRST]]' # Regexp to match symbols that can be accessed directly from C. sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[[BCDT]]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[[ABCDGISTW]]' ;; hpux*) if test "$host_cpu" = ia64; then symcode='[[ABCDEGRST]]' fi ;; irix* | nonstopux*) symcode='[[BCDEGRST]]' ;; osf*) symcode='[[BCDEGQRST]]' ;; solaris*) symcode='[[BDRT]]' ;; sco3.2v5*) symcode='[[DT]]' ;; sysv4.2uw2*) symcode='[[DT]]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[[ABDT]]' ;; sysv4) symcode='[[DFNSTU]]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[[ABCDGIRSTW]]' ;; esac # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function # and D for any global variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK ['"\ " {last_section=section; section=\$ 3};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ " {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ " s[1]~/^[@?]/{print s[1], s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx]" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if AC_TRY_EVAL(ac_compile); then # Now try to grab the symbols. nlist=conftest.nm if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ const struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[[]] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_save_LIBS="$LIBS" lt_save_CFLAGS="$CFLAGS" LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS="$lt_save_LIBS" CFLAGS="$lt_save_CFLAGS" else echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD fi else echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done ]) if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then AC_MSG_RESULT(failed) else AC_MSG_RESULT(ok) fi _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], [Take the output of nm and produce a listing of raw symbols and C names]) _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], [Transform the output of nm in a proper C declaration]) _LT_DECL([global_symbol_to_c_name_address], [lt_cv_sys_global_symbol_to_c_name_address], [1], [Transform the output of nm in a C name address pair]) _LT_DECL([global_symbol_to_c_name_address_lib_prefix], [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], [Transform the output of nm in a C name address pair when lib prefix is needed]) ]) # _LT_CMD_GLOBAL_SYMBOLS # _LT_COMPILER_PIC([TAGNAME]) # --------------------------- m4_defun([_LT_COMPILER_PIC], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_wl, $1)= _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)= AC_MSG_CHECKING([for $compiler option to produce PIC]) m4_if([$1], [CXX], [ # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else case $host_os in aix[[4-9]]*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; dgux*) case $cc_basename in ec++*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; ghcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; freebsd* | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' fi ;; aCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux* | k*bsd*-gnu) case $cc_basename in KCC*) # KAI C++ Compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; ecpc* ) # old Intel C++ for x86_64 which still supported -KPIC. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; icpc* ) # Intel C++, used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; pgCC* | pgcpp*) # Portland Group C++ compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xlc* | xlC*) # IBM XL 8.0 on PPC _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; esac ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' ;; *) ;; esac ;; netbsd*) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; cxx*) # Digital/Compaq C++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; lcc*) # Lucid _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; *) ;; esac ;; vxworks*) ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ], [ if test "$GCC" = yes; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; hpux9* | hpux10* | hpux11*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC (with -KPIC) is the default. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; linux* | k*bsd*-gnu) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # Lahey Fortran 8.1. lf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; ccc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All Alpha code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xl*) # IBM XL C 8.0/Fortran 10.1 on PPC _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ;; *Sun\ F*) # Sun Fortran 8.3 passes all unrecognized flags to the linker _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='' ;; esac ;; esac ;; newsos6) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All OSF/1 code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; rdos*) _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; solaris*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' case $cc_basename in f77* | f90* | f95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; *) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; esac ;; sunos4*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; unicos*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; uts4*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ]) case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" ;; esac AC_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) _LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], [How to pass a linker flag through the compiler]) # # Check to make sure the PIC flag actually works. # if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in "" | " "*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; esac], [_LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) fi _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], [Additional compiler flags for building library objects]) # # Check to make sure the static flag actually works. # wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" _LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), $lt_tmp_static_flag, [], [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) _LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], [Compiler flag to prevent dynamic linking]) ])# _LT_COMPILER_PIC # _LT_LINKER_SHLIBS([TAGNAME]) # ---------------------------- # See if the linker supports building shared libraries. m4_defun([_LT_LINKER_SHLIBS], [AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) m4_if([$1], [CXX], [ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' case $host_os in aix[[4-9]]*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" ;; cygwin* | mingw* | cegcc*) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] ], [ runpath_var= _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_cmds, $1)= _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(old_archive_from_new_cmds, $1)= _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= _LT_TAGVAR(thread_safe_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list _LT_TAGVAR(include_expsyms, $1)= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. dnl Note also adjust exclude_expsyms for C++ above. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac _LT_TAGVAR(ld_shlibs, $1)=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi supports_anon_versioning=no case `$LD -v 2>&1` in *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[[3-9]]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then tmp_addflag= tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 _LT_TAGVAR(whole_archive_flag_spec, $1)= tmp_sharedflag='--shared' ;; xl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi case $cc_basename in xlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; sunos4*) _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then runpath_var= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. _LT_TAGVAR(hardcode_minus_L, $1)=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. _LT_TAGVAR(hardcode_direct, $1)=unsupported fi ;; aix[[4-9]]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' if test "$GCC" = yes; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. _LT_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; bsdi[[45]]*) _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' # FIXME: Should let the user specify the lib program. _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; freebsd1*) _LT_TAGVAR(ld_shlibs, $1)=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; hpux9*) if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" AC_LINK_IFELSE( [AC_LANG_SOURCE( [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], [C++], [[int foo (void) { return 0; }]], [Fortran 77], [[ subroutine foo end]], [Fortran], [[ subroutine foo end]])])], [ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' ]) LDFLAGS="$save_LDFLAGS" else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes _LT_TAGVAR(link_all_deplibs, $1)=yes ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; newsos6) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' else case $host_os in openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' ;; esac fi else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; os2*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; solaris*) _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='${wl}' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' fi ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4) case $host_vendor in sni) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' _LT_TAGVAR(hardcode_direct, $1)=no ;; motorola) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4.3*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes _LT_TAGVAR(ld_shlibs, $1)=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(ld_shlibs, $1)=no ;; esac if test x$host_vendor = xsni; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym' ;; esac fi fi ]) AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld _LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl _LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl _LT_DECL([], [extract_expsyms_cmds], [2], [The commands to extract the exported symbol list from a shared archive]) # # Do we need to explicitly link libc? # case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in x|xyes) # Assume -lc should be added _LT_TAGVAR(archive_cmds_need_lc, $1)=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $_LT_TAGVAR(archive_cmds, $1) in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. AC_MSG_CHECKING([whether -lc should be explicitly linked in]) $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if AC_TRY_EVAL(ac_compile) 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) _LT_TAGVAR(allow_undefined_flag, $1)= if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) then _LT_TAGVAR(archive_cmds_need_lc, $1)=no else _LT_TAGVAR(archive_cmds_need_lc, $1)=yes fi _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* AC_MSG_RESULT([$_LT_TAGVAR(archive_cmds_need_lc, $1)]) ;; esac fi ;; esac _LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], [Whether or not to add -lc for building shared libraries]) _LT_TAGDECL([allow_libtool_libs_with_static_runtimes], [enable_shared_with_static_runtimes], [0], [Whether or not to disallow shared libs when runtime libs are static]) _LT_TAGDECL([], [export_dynamic_flag_spec], [1], [Compiler flag to allow reflexive dlopens]) _LT_TAGDECL([], [whole_archive_flag_spec], [1], [Compiler flag to generate shared objects directly from archives]) _LT_TAGDECL([], [compiler_needs_object], [1], [Whether the compiler copes with passing no objects directly]) _LT_TAGDECL([], [old_archive_from_new_cmds], [2], [Create an old-style archive from a shared archive]) _LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], [Create a temporary old-style archive to link instead of a shared archive]) _LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) _LT_TAGDECL([], [archive_expsym_cmds], [2]) _LT_TAGDECL([], [module_cmds], [2], [Commands used to build a loadable module if different from building a shared archive.]) _LT_TAGDECL([], [module_expsym_cmds], [2]) _LT_TAGDECL([], [with_gnu_ld], [1], [Whether we are building with GNU ld or not]) _LT_TAGDECL([], [allow_undefined_flag], [1], [Flag that allows shared libraries with undefined symbols to be built]) _LT_TAGDECL([], [no_undefined_flag], [1], [Flag that enforces no undefined symbols]) _LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], [Flag to hardcode $libdir into a binary during linking. This must work even if $libdir does not exist]) _LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1], [[If ld is used when linking, flag to hardcode $libdir into a binary during linking. This must work even if $libdir does not exist]]) _LT_TAGDECL([], [hardcode_libdir_separator], [1], [Whether we need a single "-rpath" flag with a separated argument]) _LT_TAGDECL([], [hardcode_direct], [0], [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_direct_absolute], [0], [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the resulting binary and the resulting library dependency is "absolute", i.e impossible to change by setting ${shlibpath_var} if the library is relocated]) _LT_TAGDECL([], [hardcode_minus_L], [0], [Set to "yes" if using the -LDIR flag during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_shlibpath_var], [0], [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_automatic], [0], [Set to "yes" if building a shared library automatically hardcodes DIR into the library and all subsequent libraries and executables linked against it]) _LT_TAGDECL([], [inherit_rpath], [0], [Set to yes if linker adds runtime paths of dependent libraries to runtime path list]) _LT_TAGDECL([], [link_all_deplibs], [0], [Whether libtool must link a program against all its dependency libraries]) _LT_TAGDECL([], [fix_srcfile_path], [1], [Fix the shell variable $srcfile for the compiler]) _LT_TAGDECL([], [always_export_symbols], [0], [Set to "yes" if exported symbols are required]) _LT_TAGDECL([], [export_symbols_cmds], [2], [The commands to list exported symbols]) _LT_TAGDECL([], [exclude_expsyms], [1], [Symbols that should not be listed in the preloaded symbols]) _LT_TAGDECL([], [include_expsyms], [1], [Symbols that must always be exported]) _LT_TAGDECL([], [prelink_cmds], [2], [Commands necessary for linking programs (against libraries) with templates]) _LT_TAGDECL([], [file_list_spec], [1], [Specify filename containing input files]) dnl FIXME: Not yet implemented dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], dnl [Compiler flag to generate thread safe objects]) ])# _LT_LINKER_SHLIBS # _LT_LANG_C_CONFIG([TAG]) # ------------------------ # Ensure that the configuration variables for a C compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_C_CONFIG], [m4_require([_LT_DECL_EGREP])dnl lt_save_CC="$CC" AC_LANG_PUSH(C) # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' _LT_TAG_COMPILER # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) LT_SYS_DLOPEN_SELF _LT_CMD_STRIPLIB # Report which library types will actually be built AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_CONFIG($1) fi AC_LANG_POP CC="$lt_save_CC" ])# _LT_LANG_C_CONFIG # _LT_PROG_CXX # ------------ # Since AC_PROG_CXX is broken, in that it returns g++ if there is no c++ # compiler, we have our own version here. m4_defun([_LT_PROG_CXX], [ pushdef([AC_MSG_ERROR], [_lt_caught_CXX_error=yes]) AC_PROG_CXX if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then AC_PROG_CXXCPP else _lt_caught_CXX_error=yes fi popdef([AC_MSG_ERROR]) ])# _LT_PROG_CXX dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([_LT_PROG_CXX], []) # _LT_LANG_CXX_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a C++ compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_CXX_CONFIG], [AC_REQUIRE([_LT_PROG_CXX])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl AC_LANG_PUSH(C++) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the CXX compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_caught_CXX_error" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then # We don't want -fno-exception when compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' else _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration LT_PATH_LD # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='${wl}' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) _LT_TAGVAR(ld_shlibs, $1)=yes case $host_os in aix3*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aix[[4-9]]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' if test "$GXX" = yes; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to # export. _LT_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an empty # executable. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared # libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; freebsd[[12]]*) # C++ shared libraries reported to be fairly broken before # switch to ELF _LT_TAGVAR(ld_shlibs, $1)=no ;; freebsd-elf*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; freebsd* | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions _LT_TAGVAR(ld_shlibs, $1)=yes ;; gnu*) ;; hpux9*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) ;; *) _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib' fi fi _LT_TAGVAR(link_all_deplibs, $1)=yes ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes ;; linux* | k*bsd*-gnu) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc* | ecpc* ) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; esac _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in *pgCC\ [[1-5]]* | *pgcpp\ [[1-5]]*) _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ $RANLIB $oldlib' _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; *) # Version 6 will use weak symbols _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; xl*) # IBM XL 8.0 on PPC, with GNU ld _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. output_verbose_link_cmd='echo' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; esac ;; esac ;; lynxos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; m88k*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; *nto* | *qnx*) _LT_TAGVAR(ld_shlibs, $1)=yes ;; openbsd2*) # C++ shared libraries are fairly broken _LT_TAGVAR(ld_shlibs, $1)=no ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd=echo else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Archives containing C++ object files must be created using # the KAI C++ compiler. case $host in osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; esac ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; cxx*) case $host in osf3*) _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' ;; *) _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~ $RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' ;; esac _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' case $host in osf3*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(archive_cmds_need_lc,$1)=yes _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. # Supported since Solaris 2.6 (maybe 2.5.1?) _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes output_verbose_link_cmd='echo' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;; esac fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_TAGVAR(GCC, $1)="$GXX" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" CC=$lt_save_CC LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld fi # test "$_lt_caught_CXX_error" != yes AC_LANG_POP ])# _LT_LANG_CXX_CONFIG # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) # --------------------------------- # Figure out "hidden" library dependencies from verbose # compiler output when linking a shared library. # Parse the compiler output and extract the necessary # objects, libraries and library flags. m4_defun([_LT_SYS_HIDDEN_LIBDEPS], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl # Dependencies to place before and after the object being linked: _LT_TAGVAR(predep_objects, $1)= _LT_TAGVAR(postdep_objects, $1)= _LT_TAGVAR(predeps, $1)= _LT_TAGVAR(postdeps, $1)= _LT_TAGVAR(compiler_lib_search_path, $1)= dnl we can't use the lt_simple_compile_test_code here, dnl because it contains code intended for an executable, dnl not a library. It's possible we should let each dnl tag define a new lt_????_link_test_code variable, dnl but it's only used here... m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF int a; void foo (void) { a = 0; } _LT_EOF ], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF class Foo { public: Foo (void) { a = 0; } private: int a; }; _LT_EOF ], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer*4 a a=0 return end _LT_EOF ], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer a a=0 return end _LT_EOF ], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF public class foo { private int a; public void bar (void) { a = 0; } }; _LT_EOF ]) dnl Parse the compiler output and extract the necessary dnl objects, libraries and library flags. if AC_TRY_EVAL(ac_compile); then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do case $p in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test $p = "-L" || test $p = "-R"; then prev=$p continue else prev= fi if test "$pre_test_object_deps_done" = no; then case $p in -L* | -R*) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" else _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$_LT_TAGVAR(postdeps, $1)"; then _LT_TAGVAR(postdeps, $1)="${prev}${p}" else _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" fi fi ;; *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test "$pre_test_object_deps_done" = no; then if test -z "$_LT_TAGVAR(predep_objects, $1)"; then _LT_TAGVAR(predep_objects, $1)="$p" else _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" fi else if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then _LT_TAGVAR(postdep_objects, $1)="$p" else _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling $1 test program" fi $RM -f confest.$objext # PORTME: override above test on systems where it is broken m4_if([$1], [CXX], [case $host_os in interix[[3-9]]*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. _LT_TAGVAR(predep_objects,$1)= _LT_TAGVAR(postdep_objects,$1)= _LT_TAGVAR(postdeps,$1)= ;; linux*) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac if test "$solaris_use_stlport4" != yes; then _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; solaris*) case $cc_basename in CC*) # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. if test "$solaris_use_stlport4" != yes; then _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; esac ]) case " $_LT_TAGVAR(postdeps, $1) " in *" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; esac _LT_TAGVAR(compiler_lib_search_dirs, $1)= if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` fi _LT_TAGDECL([], [compiler_lib_search_dirs], [1], [The directories searched by this compiler when creating a shared library]) _LT_TAGDECL([], [predep_objects], [1], [Dependencies to place before and after the objects being linked to create a shared library]) _LT_TAGDECL([], [postdep_objects], [1]) _LT_TAGDECL([], [predeps], [1]) _LT_TAGDECL([], [postdeps], [1]) _LT_TAGDECL([], [compiler_lib_search_path], [1], [The library search path used internally by the compiler when linking a shared library]) ])# _LT_SYS_HIDDEN_LIBDEPS # _LT_PROG_F77 # ------------ # Since AC_PROG_F77 is broken, in that it returns the empty string # if there is no fortran compiler, we have our own version here. m4_defun([_LT_PROG_F77], [ pushdef([AC_MSG_ERROR], [_lt_disable_F77=yes]) AC_PROG_F77 if test -z "$F77" || test "X$F77" = "Xno"; then _lt_disable_F77=yes fi popdef([AC_MSG_ERROR]) ])# _LT_PROG_F77 dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([_LT_PROG_F77], []) # _LT_LANG_F77_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a Fortran 77 compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_F77_CONFIG], [AC_REQUIRE([_LT_PROG_F77])dnl AC_LANG_PUSH(Fortran 77) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for f77 test sources. ac_ext=f # Object file extension for compiled f77 test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the F77 compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_disable_F77" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC CC=${F77-"f77"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) GCC=$G77 if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)="$G77" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC="$lt_save_CC" fi # test "$_lt_disable_F77" != yes AC_LANG_POP ])# _LT_LANG_F77_CONFIG # _LT_PROG_FC # ----------- # Since AC_PROG_FC is broken, in that it returns the empty string # if there is no fortran compiler, we have our own version here. m4_defun([_LT_PROG_FC], [ pushdef([AC_MSG_ERROR], [_lt_disable_FC=yes]) AC_PROG_FC if test -z "$FC" || test "X$FC" = "Xno"; then _lt_disable_FC=yes fi popdef([AC_MSG_ERROR]) ])# _LT_PROG_FC dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([_LT_PROG_FC], []) # _LT_LANG_FC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for a Fortran compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_FC_CONFIG], [AC_REQUIRE([_LT_PROG_FC])dnl AC_LANG_PUSH(Fortran) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for fc test sources. ac_ext=${ac_fc_srcext-f} # Object file extension for compiled fc test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the FC compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_disable_FC" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC CC=${FC-"f95"} compiler=$CC GCC=$ac_cv_fc_compiler_gnu _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC="$lt_save_CC" fi # test "$_lt_disable_FC" != yes AC_LANG_POP ])# _LT_LANG_FC_CONFIG # _LT_LANG_GCJ_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for the GNU Java Compiler compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_GCJ_CONFIG], [AC_REQUIRE([LT_PROG_GCJ])dnl AC_LANG_SAVE # Source file extension for Java test sources. ac_ext=java # Object file extension for compiled Java test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="class foo {}" # Code to be used in simple link tests lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC GCC=yes CC=${GCJ-"gcj"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)="$LD" _LT_CC_BASENAME([$compiler]) # GCJ did not exist at the time GCC didn't implicitly link libc in. _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi AC_LANG_RESTORE GCC=$lt_save_GCC CC="$lt_save_CC" ])# _LT_LANG_GCJ_CONFIG # _LT_LANG_RC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for the Windows resource compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_RC_CONFIG], [AC_REQUIRE([LT_PROG_RC])dnl AC_LANG_SAVE # Source file extension for RC test sources. ac_ext=rc # Object file extension for compiled RC test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' # Code to be used in simple link tests lt_simple_link_test_code="$lt_simple_compile_test_code" # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC GCC= CC=${RC-"windres"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes if test -n "$compiler"; then : _LT_CONFIG($1) fi GCC=$lt_save_GCC AC_LANG_RESTORE CC="$lt_save_CC" ])# _LT_LANG_RC_CONFIG # LT_PROG_GCJ # ----------- AC_DEFUN([LT_PROG_GCJ], [m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], [AC_CHECK_TOOL(GCJ, gcj,) test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" AC_SUBST(GCJFLAGS)])])[]dnl ]) # Old name: AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_GCJ], []) # LT_PROG_RC # ---------- AC_DEFUN([LT_PROG_RC], [AC_CHECK_TOOL(RC, windres,) ]) # Old name: AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_RC], []) # _LT_DECL_EGREP # -------------- # If we don't have a new enough Autoconf to choose the best grep # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_EGREP], [AC_REQUIRE([AC_PROG_EGREP])dnl AC_REQUIRE([AC_PROG_FGREP])dnl test -z "$GREP" && GREP=grep _LT_DECL([], [GREP], [1], [A grep program that handles long lines]) _LT_DECL([], [EGREP], [1], [An ERE matcher]) _LT_DECL([], [FGREP], [1], [A literal string matcher]) dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too AC_SUBST([GREP]) ]) # _LT_DECL_OBJDUMP # -------------- # If we don't have a new enough Autoconf to choose the best objdump # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_OBJDUMP], [AC_CHECK_TOOL(OBJDUMP, objdump, false) test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) AC_SUBST([OBJDUMP]) ]) # _LT_DECL_SED # ------------ # Check for a fully-functional sed program, that truncates # as few characters as possible. Prefer GNU sed if found. m4_defun([_LT_DECL_SED], [AC_PROG_SED test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" _LT_DECL([], [SED], [1], [A sed program that does not truncate output]) _LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], [Sed that helps us avoid accidentally triggering echo(1) options like -n]) ])# _LT_DECL_SED m4_ifndef([AC_PROG_SED], [ ############################################################ # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_SED. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # ############################################################ m4_defun([AC_PROG_SED], [AC_MSG_CHECKING([for a sed that does not truncate output]) AC_CACHE_VAL(lt_cv_path_SED, [# Loop through the user's path and test for sed and gsed. # Then use that list of sed's as ones to test for truncation. as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for lt_ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" fi done done done IFS=$as_save_IFS lt_ac_max=0 lt_ac_count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris # along with /bin/sed that truncates output. for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do test ! -f $lt_ac_sed && continue cat /dev/null > conftest.in lt_ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >conftest.in # Check for GNU sed and select it if it is found. if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then lt_cv_path_SED=$lt_ac_sed break fi while true; do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo >>conftest.nl $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break cmp -s conftest.out conftest.nl || break # 10000 chars as input seems more than enough test $lt_ac_count -gt 10 && break lt_ac_count=`expr $lt_ac_count + 1` if test $lt_ac_count -gt $lt_ac_max; then lt_ac_max=$lt_ac_count lt_cv_path_SED=$lt_ac_sed fi done done ]) SED=$lt_cv_path_SED AC_SUBST([SED]) AC_MSG_RESULT([$SED]) ])#AC_PROG_SED ])#m4_ifndef # Old name: AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_SED], []) # _LT_CHECK_SHELL_FEATURES # ------------------------ # Find out whether the shell is Bourne or XSI compatible, # or has some other useful features. m4_defun([_LT_CHECK_SHELL_FEATURES], [AC_MSG_CHECKING([whether the shell understands some XSI constructs]) # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ = c,a/b,, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes AC_MSG_RESULT([$xsi_shell]) _LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell']) AC_MSG_CHECKING([whether the shell understands "+="]) lt_shell_append=no ( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \ >/dev/null 2>&1 \ && lt_shell_append=yes AC_MSG_RESULT([$lt_shell_append]) _LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append']) if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi _LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac _LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl _LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl ])# _LT_CHECK_SHELL_FEATURES # _LT_PROG_XSI_SHELLFNS # --------------------- # Bourne and XSI compatible variants of some useful shell functions. m4_defun([_LT_PROG_XSI_SHELLFNS], [case $xsi_shell in yes) cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac } # func_basename file func_basename () { func_basename_result="${1##*/}" } # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac func_basename_result="${1##*/}" } # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). func_stripname () { # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are # positional parameters, so assign one to ordinary parameter first. func_stripname_result=${3} func_stripname_result=${func_stripname_result#"${1}"} func_stripname_result=${func_stripname_result%"${2}"} } # func_opt_split func_opt_split () { func_opt_split_opt=${1%%=*} func_opt_split_arg=${1#*=} } # func_lo2o object func_lo2o () { case ${1} in *.lo) func_lo2o_result=${1%.lo}.${objext} ;; *) func_lo2o_result=${1} ;; esac } # func_xform libobj-or-source func_xform () { func_xform_result=${1%.*}.lo } # func_arith arithmetic-term... func_arith () { func_arith_result=$(( $[*] )) } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=${#1} } _LT_EOF ;; *) # Bourne compatible functions. cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi } # func_basename file func_basename () { func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` } dnl func_dirname_and_basename dnl A portable version of this function is already defined in general.m4sh dnl so there is no need for it here. # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # func_strip_suffix prefix name func_stripname () { case ${2} in .*) func_stripname_result=`$ECHO "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; esac } # sed scripts: my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q' my_sed_long_arg='1s/^-[[^=]]*=//' # func_opt_split func_opt_split () { func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` } # func_lo2o object func_lo2o () { func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` } # func_xform libobj-or-source func_xform () { func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[[^.]]*$/.lo/'` } # func_arith arithmetic-term... func_arith () { func_arith_result=`expr "$[@]"` } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len` } _LT_EOF esac case $lt_shell_append in yes) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$[1]+=\$[2]" } _LT_EOF ;; *) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$[1]=\$$[1]\$[2]" } _LT_EOF ;; esac ]) scim-1.4.14/m4/ltdl.m4000066400000000000000000000637311177210725600142770ustar00rootroot00000000000000# ltdl.m4 - Configure ltdl for the target system. -*-Autoconf-*- # # Copyright (C) 1999-2006, 2007, 2008 Free Software Foundation, Inc. # Written by Thomas Tanner, 1999 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 17 LTDL_INIT # LT_CONFIG_LTDL_DIR(DIRECTORY, [LTDL-MODE]) # ------------------------------------------ # DIRECTORY contains the libltdl sources. It is okay to call this # function multiple times, as long as the same DIRECTORY is always given. AC_DEFUN([LT_CONFIG_LTDL_DIR], [AC_BEFORE([$0], [LTDL_INIT]) _$0($*) ])# LT_CONFIG_LTDL_DIR # We break this out into a separate macro, so that we can call it safely # internally without being caught accidentally by the sed scan in libtoolize. m4_defun([_LT_CONFIG_LTDL_DIR], [dnl remove trailing slashes m4_pushdef([_ARG_DIR], m4_bpatsubst([$1], [/*$])) m4_case(_LTDL_DIR, [], [dnl only set lt_ltdl_dir if _ARG_DIR is not simply `.' m4_if(_ARG_DIR, [.], [], [m4_define([_LTDL_DIR], _ARG_DIR) _LT_SHELL_INIT([lt_ltdl_dir=']_ARG_DIR['])])], [m4_if(_ARG_DIR, _LTDL_DIR, [], [m4_fatal([multiple libltdl directories: `]_LTDL_DIR[', `]_ARG_DIR['])])]) m4_popdef([_ARG_DIR]) ])# _LT_CONFIG_LTDL_DIR # Initialise: m4_define([_LTDL_DIR], []) # _LT_BUILD_PREFIX # ---------------- # If Autoconf is new enough, expand to `${top_build_prefix}', otherwise # to `${top_builddir}/'. m4_define([_LT_BUILD_PREFIX], [m4_ifdef([AC_AUTOCONF_VERSION], [m4_if(m4_version_compare(m4_defn([AC_AUTOCONF_VERSION]), [2.62]), [-1], [m4_ifdef([_AC_HAVE_TOP_BUILD_PREFIX], [${top_build_prefix}], [${top_builddir}/])], [${top_build_prefix}])], [${top_builddir}/])[]dnl ]) # LTDL_CONVENIENCE # ---------------- # sets LIBLTDL to the link flags for the libltdl convenience library and # LTDLINCL to the include flags for the libltdl header and adds # --enable-ltdl-convenience to the configure arguments. Note that # AC_CONFIG_SUBDIRS is not called here. LIBLTDL will be prefixed with # '${top_build_prefix}' if available, otherwise with '${top_builddir}/', # and LTDLINCL will be prefixed with '${top_srcdir}/' (note the single # quotes!). If your package is not flat and you're not using automake, # define top_build_prefix, top_builddir, and top_srcdir appropriately # in your Makefiles. AC_DEFUN([LTDL_CONVENIENCE], [AC_BEFORE([$0], [LTDL_INIT])dnl dnl Although the argument is deprecated and no longer documented, dnl LTDL_CONVENIENCE used to take a DIRECTORY orgument, if we have one dnl here make sure it is the same as any other declaration of libltdl's dnl location! This also ensures lt_ltdl_dir is set when configure.ac is dnl not yet using an explicit LT_CONFIG_LTDL_DIR. m4_ifval([$1], [_LT_CONFIG_LTDL_DIR([$1])])dnl _$0() ])# LTDL_CONVENIENCE # AC_LIBLTDL_CONVENIENCE accepted a directory argument in older libtools, # now we have LT_CONFIG_LTDL_DIR: AU_DEFUN([AC_LIBLTDL_CONVENIENCE], [_LT_CONFIG_LTDL_DIR([m4_default([$1], [libltdl])]) _LTDL_CONVENIENCE]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBLTDL_CONVENIENCE], []) # _LTDL_CONVENIENCE # ----------------- # Code shared by LTDL_CONVENIENCE and LTDL_INIT([convenience]). m4_defun([_LTDL_CONVENIENCE], [case $enable_ltdl_convenience in no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;; "") enable_ltdl_convenience=yes ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;; esac LIBLTDL='_LT_BUILD_PREFIX'"${lt_ltdl_dir+$lt_ltdl_dir/}libltdlc.la" LTDLDEPS=$LIBLTDL LTDLINCL='-I${top_srcdir}'"${lt_ltdl_dir+/$lt_ltdl_dir}" AC_SUBST([LIBLTDL]) AC_SUBST([LTDLDEPS]) AC_SUBST([LTDLINCL]) # For backwards non-gettext consistent compatibility... INCLTDL="$LTDLINCL" AC_SUBST([INCLTDL]) ])# _LTDL_CONVENIENCE # LTDL_INSTALLABLE # ---------------- # sets LIBLTDL to the link flags for the libltdl installable library # and LTDLINCL to the include flags for the libltdl header and adds # --enable-ltdl-install to the configure arguments. Note that # AC_CONFIG_SUBDIRS is not called from here. If an installed libltdl # is not found, LIBLTDL will be prefixed with '${top_build_prefix}' if # available, otherwise with '${top_builddir}/', and LTDLINCL will be # prefixed with '${top_srcdir}/' (note the single quotes!). If your # package is not flat and you're not using automake, define top_build_prefix, # top_builddir, and top_srcdir appropriately in your Makefiles. # In the future, this macro may have to be called after LT_INIT. AC_DEFUN([LTDL_INSTALLABLE], [AC_BEFORE([$0], [LTDL_INIT])dnl dnl Although the argument is deprecated and no longer documented, dnl LTDL_INSTALLABLE used to take a DIRECTORY orgument, if we have one dnl here make sure it is the same as any other declaration of libltdl's dnl location! This also ensures lt_ltdl_dir is set when configure.ac is dnl not yet using an explicit LT_CONFIG_LTDL_DIR. m4_ifval([$1], [_LT_CONFIG_LTDL_DIR([$1])])dnl _$0() ])# LTDL_INSTALLABLE # AC_LIBLTDL_INSTALLABLE accepted a directory argument in older libtools, # now we have LT_CONFIG_LTDL_DIR: AU_DEFUN([AC_LIBLTDL_INSTALLABLE], [_LT_CONFIG_LTDL_DIR([m4_default([$1], [libltdl])]) _LTDL_INSTALLABLE]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBLTDL_INSTALLABLE], []) # _LTDL_INSTALLABLE # ----------------- # Code shared by LTDL_INSTALLABLE and LTDL_INIT([installable]). m4_defun([_LTDL_INSTALLABLE], [if test -f $prefix/lib/libltdl.la; then lt_save_LDFLAGS="$LDFLAGS" LDFLAGS="-L$prefix/lib $LDFLAGS" AC_CHECK_LIB([ltdl], [lt_dlinit], [lt_lib_ltdl=yes]) LDFLAGS="$lt_save_LDFLAGS" if test x"${lt_lib_ltdl-no}" = xyes; then if test x"$enable_ltdl_install" != xyes; then # Don't overwrite $prefix/lib/libltdl.la without --enable-ltdl-install AC_MSG_WARN([not overwriting libltdl at $prefix, force with `--enable-ltdl-install']) enable_ltdl_install=no fi elif test x"$enable_ltdl_install" = xno; then AC_MSG_WARN([libltdl not installed, but installation disabled]) fi fi # If configure.ac declared an installable ltdl, and the user didn't override # with --disable-ltdl-install, we will install the shipped libltdl. case $enable_ltdl_install in no) ac_configure_args="$ac_configure_args --enable-ltdl-install=no" LIBLTDL="-lltdl" LTDLDEPS= LTDLINCL= ;; *) enable_ltdl_install=yes ac_configure_args="$ac_configure_args --enable-ltdl-install" LIBLTDL='_LT_BUILD_PREFIX'"${lt_ltdl_dir+$lt_ltdl_dir/}libltdl.la" LTDLDEPS=$LIBLTDL LTDLINCL='-I${top_srcdir}'"${lt_ltdl_dir+/$lt_ltdl_dir}" ;; esac AC_SUBST([LIBLTDL]) AC_SUBST([LTDLDEPS]) AC_SUBST([LTDLINCL]) # For backwards non-gettext consistent compatibility... INCLTDL="$LTDLINCL" AC_SUBST([INCLTDL]) ])# LTDL_INSTALLABLE # _LTDL_MODE_DISPATCH # ------------------- m4_define([_LTDL_MODE_DISPATCH], [dnl If _LTDL_DIR is `.', then we are configuring libltdl itself: m4_if(_LTDL_DIR, [], [], dnl if _LTDL_MODE was not set already, the default value is `subproject': [m4_case(m4_default(_LTDL_MODE, [subproject]), [subproject], [AC_CONFIG_SUBDIRS(_LTDL_DIR) _LT_SHELL_INIT([lt_dlopen_dir="$lt_ltdl_dir"])], [nonrecursive], [_LT_SHELL_INIT([lt_dlopen_dir="$lt_ltdl_dir"; lt_libobj_prefix="$lt_ltdl_dir/"])], [recursive], [], [m4_fatal([unknown libltdl mode: ]_LTDL_MODE)])])dnl dnl Be careful not to expand twice: m4_define([$0], []) ])# _LTDL_MODE_DISPATCH # _LT_LIBOBJ(MODULE_NAME) # ----------------------- # Like AC_LIBOBJ, except that MODULE_NAME goes into _LT_LIBOBJS instead # of into LIBOBJS. AC_DEFUN([_LT_LIBOBJ], [ m4_pattern_allow([^_LT_LIBOBJS$]) _LT_LIBOBJS="$_LT_LIBOBJS $1.$ac_objext" ])# _LT_LIBOBJS # LTDL_INIT([OPTIONS]) # -------------------- # Clients of libltdl can use this macro to allow the installer to # choose between a shipped copy of the ltdl sources or a preinstalled # version of the library. If the shipped ltdl sources are not in a # subdirectory named libltdl, the directory name must be given by # LT_CONFIG_LTDL_DIR. AC_DEFUN([LTDL_INIT], [dnl Parse OPTIONS _LT_SET_OPTIONS([$0], [$1]) dnl We need to keep our own list of libobjs separate from our parent project, dnl and the easiest way to do that is redefine the AC_LIBOBJs macro while dnl we look for our own LIBOBJs. m4_pushdef([AC_LIBOBJ], m4_defn([_LT_LIBOBJ])) m4_pushdef([AC_LIBSOURCES]) dnl If not otherwise defined, default to the 1.5.x compatible subproject mode: m4_if(_LTDL_MODE, [], [m4_define([_LTDL_MODE], m4_default([$2], [subproject])) m4_if([-1], [m4_bregexp(_LTDL_MODE, [\(subproject\|\(non\)?recursive\)])], [m4_fatal([unknown libltdl mode: ]_LTDL_MODE)])]) AC_ARG_WITH([included_ltdl], [AS_HELP_STRING([--with-included-ltdl], [use the GNU ltdl sources included here])]) if test "x$with_included_ltdl" != xyes; then # We are not being forced to use the included libltdl sources, so # decide whether there is a useful installed version we can use. AC_CHECK_HEADER([ltdl.h], [AC_CHECK_DECL([lt_dlinterface_register], [AC_CHECK_LIB([ltdl], [lt_dladvise_preload], [with_included_ltdl=no], [with_included_ltdl=yes])], [with_included_ltdl=yes], [AC_INCLUDES_DEFAULT #include ])], [with_included_ltdl=yes], [AC_INCLUDES_DEFAULT] ) fi dnl If neither LT_CONFIG_LTDL_DIR, LTDL_CONVENIENCE nor LTDL_INSTALLABLE dnl was called yet, then for old times' sake, we assume libltdl is in an dnl eponymous directory: AC_PROVIDE_IFELSE([LT_CONFIG_LTDL_DIR], [], [_LT_CONFIG_LTDL_DIR([libltdl])]) AC_ARG_WITH([ltdl_include], [AS_HELP_STRING([--with-ltdl-include=DIR], [use the ltdl headers installed in DIR])]) if test -n "$with_ltdl_include"; then if test -f "$with_ltdl_include/ltdl.h"; then : else AC_MSG_ERROR([invalid ltdl include directory: `$with_ltdl_include']) fi else with_ltdl_include=no fi AC_ARG_WITH([ltdl_lib], [AS_HELP_STRING([--with-ltdl-lib=DIR], [use the libltdl.la installed in DIR])]) if test -n "$with_ltdl_lib"; then if test -f "$with_ltdl_lib/libltdl.la"; then : else AC_MSG_ERROR([invalid ltdl library directory: `$with_ltdl_lib']) fi else with_ltdl_lib=no fi case ,$with_included_ltdl,$with_ltdl_include,$with_ltdl_lib, in ,yes,no,no,) m4_case(m4_default(_LTDL_TYPE, [convenience]), [convenience], [_LTDL_CONVENIENCE], [installable], [_LTDL_INSTALLABLE], [m4_fatal([unknown libltdl build type: ]_LTDL_TYPE)]) ;; ,no,no,no,) # If the included ltdl is not to be used, then use the # preinstalled libltdl we found. AC_DEFINE([HAVE_LTDL], [1], [Define this if a modern libltdl is already installed]) LIBLTDL=-lltdl LTDLDEPS= LTDLINCL= ;; ,no*,no,*) AC_MSG_ERROR([`--with-ltdl-include' and `--with-ltdl-lib' options must be used together]) ;; *) with_included_ltdl=no LIBLTDL="-L$with_ltdl_lib -lltdl" LTDLDEPS= LTDLINCL="-I$with_ltdl_include" ;; esac INCLTDL="$LTDLINCL" # Report our decision... AC_MSG_CHECKING([where to find libltdl headers]) AC_MSG_RESULT([$LTDLINCL]) AC_MSG_CHECKING([where to find libltdl library]) AC_MSG_RESULT([$LIBLTDL]) _LTDL_SETUP dnl restore autoconf definition. m4_popdef([AC_LIBOBJ]) m4_popdef([AC_LIBSOURCES]) AC_CONFIG_COMMANDS_PRE([ _ltdl_libobjs= _ltdl_ltlibobjs= if test -n "$_LT_LIBOBJS"; then # Remove the extension. _lt_sed_drop_objext='s/\.o$//;s/\.obj$//' for i in `for i in $_LT_LIBOBJS; do echo "$i"; done | sed "$_lt_sed_drop_objext" | sort -u`; do _ltdl_libobjs="$_ltdl_libobjs $lt_libobj_prefix$i.$ac_objext" _ltdl_ltlibobjs="$_ltdl_ltlibobjs $lt_libobj_prefix$i.lo" done fi AC_SUBST([ltdl_LIBOBJS], [$_ltdl_libobjs]) AC_SUBST([ltdl_LTLIBOBJS], [$_ltdl_ltlibobjs]) ]) # Only expand once: m4_define([LTDL_INIT]) ])# LTDL_INIT # Old names: AU_DEFUN([AC_LIB_LTDL], [LTDL_INIT($@)]) AU_DEFUN([AC_WITH_LTDL], [LTDL_INIT($@)]) AU_DEFUN([LT_WITH_LTDL], [LTDL_INIT($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIB_LTDL], []) dnl AC_DEFUN([AC_WITH_LTDL], []) dnl AC_DEFUN([LT_WITH_LTDL], []) # _LTDL_SETUP # ----------- # Perform all the checks necessary for compilation of the ltdl objects # -- including compiler checks and header checks. This is a public # interface mainly for the benefit of libltdl's own configure.ac, most # other users should call LTDL_INIT instead. AC_DEFUN([_LTDL_SETUP], [AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([LT_SYS_MODULE_EXT])dnl AC_REQUIRE([LT_SYS_MODULE_PATH])dnl AC_REQUIRE([LT_SYS_DLSEARCH_PATH])dnl AC_REQUIRE([LT_LIB_DLLOAD])dnl AC_REQUIRE([LT_SYS_SYMBOL_USCORE])dnl AC_REQUIRE([LT_FUNC_DLSYM_USCORE])dnl AC_REQUIRE([LT_SYS_DLOPEN_DEPLIBS])dnl AC_REQUIRE([gl_FUNC_ARGZ])dnl m4_require([_LT_CHECK_OBJDIR])dnl m4_require([_LT_HEADER_DLFCN])dnl m4_require([_LT_CHECK_DLPREOPEN])dnl m4_require([_LT_DECL_SED])dnl dnl Don't require this, or it will be expanded earlier than the code dnl that sets the variables it relies on: _LT_ENABLE_INSTALL dnl _LTDL_MODE specific code must be called at least once: _LTDL_MODE_DISPATCH # In order that ltdl.c can compile, find out the first AC_CONFIG_HEADERS # the user used. This is so that ltdl.h can pick up the parent projects # config.h file, The first file in AC_CONFIG_HEADERS must contain the # definitions required by ltdl.c. # FIXME: Remove use of undocumented AC_LIST_HEADERS (2.59 compatibility). AC_CONFIG_COMMANDS_PRE([dnl m4_pattern_allow([^LT_CONFIG_H$])dnl m4_ifset([AH_HEADER], [LT_CONFIG_H=AH_HEADER], [m4_ifset([AC_LIST_HEADERS], [LT_CONFIG_H=`echo "AC_LIST_HEADERS" | $SED 's,^[[ ]]*,,;s,[[ :]].*$,,'`], [])])]) AC_SUBST([LT_CONFIG_H]) AC_CHECK_HEADERS([unistd.h dl.h sys/dl.h dld.h mach-o/dyld.h dirent.h], [], [], [AC_INCLUDES_DEFAULT]) AC_CHECK_FUNCS([closedir opendir readdir], [], [AC_LIBOBJ([lt__dirent])]) AC_CHECK_FUNCS([strlcat strlcpy], [], [AC_LIBOBJ([lt__strl])]) AC_DEFINE_UNQUOTED([LT_LIBEXT],["$libext"],[The archive extension]) name=ltdl LTDLOPEN=`eval "\\$ECHO \"$libname_spec\""` AC_SUBST([LTDLOPEN]) ])# _LTDL_SETUP # _LT_ENABLE_INSTALL # ------------------ m4_define([_LT_ENABLE_INSTALL], [AC_ARG_ENABLE([ltdl-install], [AS_HELP_STRING([--enable-ltdl-install], [install libltdl])]) case ,${enable_ltdl_install},${enable_ltdl_convenience} in *yes*) ;; *) enable_ltdl_convenience=yes ;; esac m4_ifdef([AM_CONDITIONAL], [AM_CONDITIONAL(INSTALL_LTDL, test x"${enable_ltdl_install-no}" != xno) AM_CONDITIONAL(CONVENIENCE_LTDL, test x"${enable_ltdl_convenience-no}" != xno)]) ])# _LT_ENABLE_INSTALL # LT_SYS_DLOPEN_DEPLIBS # --------------------- AC_DEFUN([LT_SYS_DLOPEN_DEPLIBS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_CACHE_CHECK([whether deplibs are loaded by dlopen], [lt_cv_sys_dlopen_deplibs], [# PORTME does your system automatically load deplibs for dlopen? # or its logical equivalent (e.g. shl_load for HP-UX < 11) # For now, we just catch OSes we know something about -- in the # future, we'll try test this programmatically. lt_cv_sys_dlopen_deplibs=unknown case $host_os in aix3*|aix4.1.*|aix4.2.*) # Unknown whether this is true for these versions of AIX, but # we want this `case' here to explicitly catch those versions. lt_cv_sys_dlopen_deplibs=unknown ;; aix[[4-9]]*) lt_cv_sys_dlopen_deplibs=yes ;; amigaos*) case $host_cpu in powerpc) lt_cv_sys_dlopen_deplibs=no ;; esac ;; darwin*) # Assuming the user has installed a libdl from somewhere, this is true # If you are looking for one http://www.opendarwin.org/projects/dlcompat lt_cv_sys_dlopen_deplibs=yes ;; freebsd* | dragonfly*) lt_cv_sys_dlopen_deplibs=yes ;; gnu* | linux* | k*bsd*-gnu) # GNU and its variants, using gnu ld.so (Glibc) lt_cv_sys_dlopen_deplibs=yes ;; hpux10*|hpux11*) lt_cv_sys_dlopen_deplibs=yes ;; interix*) lt_cv_sys_dlopen_deplibs=yes ;; irix[[12345]]*|irix6.[[01]]*) # Catch all versions of IRIX before 6.2, and indicate that we don't # know how it worked for any of those versions. lt_cv_sys_dlopen_deplibs=unknown ;; irix*) # The case above catches anything before 6.2, and it's known that # at 6.2 and later dlopen does load deplibs. lt_cv_sys_dlopen_deplibs=yes ;; netbsd*) lt_cv_sys_dlopen_deplibs=yes ;; openbsd*) lt_cv_sys_dlopen_deplibs=yes ;; osf[[1234]]*) # dlopen did load deplibs (at least at 4.x), but until the 5.x series, # it did *not* use an RPATH in a shared library to find objects the # library depends on, so we explicitly say `no'. lt_cv_sys_dlopen_deplibs=no ;; osf5.0|osf5.0a|osf5.1) # dlopen *does* load deplibs and with the right loader patch applied # it even uses RPATH in a shared library to search for shared objects # that the library depends on, but there's no easy way to know if that # patch is installed. Since this is the case, all we can really # say is unknown -- it depends on the patch being installed. If # it is, this changes to `yes'. Without it, it would be `no'. lt_cv_sys_dlopen_deplibs=unknown ;; osf*) # the two cases above should catch all versions of osf <= 5.1. Read # the comments above for what we know about them. # At > 5.1, deplibs are loaded *and* any RPATH in a shared library # is used to find them so we can finally say `yes'. lt_cv_sys_dlopen_deplibs=yes ;; qnx*) lt_cv_sys_dlopen_deplibs=yes ;; solaris*) lt_cv_sys_dlopen_deplibs=yes ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) libltdl_cv_sys_dlopen_deplibs=yes ;; esac ]) if test "$lt_cv_sys_dlopen_deplibs" != yes; then AC_DEFINE([LTDL_DLOPEN_DEPLIBS], [1], [Define if the OS needs help to load dependent libraries for dlopen().]) fi ])# LT_SYS_DLOPEN_DEPLIBS # Old name: AU_ALIAS([AC_LTDL_SYS_DLOPEN_DEPLIBS], [LT_SYS_DLOPEN_DEPLIBS]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LTDL_SYS_DLOPEN_DEPLIBS], []) # LT_SYS_MODULE_EXT # ----------------- AC_DEFUN([LT_SYS_MODULE_EXT], [m4_require([_LT_SYS_DYNAMIC_LINKER])dnl AC_CACHE_CHECK([which extension is used for runtime loadable modules], [libltdl_cv_shlibext], [ module=yes eval libltdl_cv_shlibext=$shrext_cmds ]) if test -n "$libltdl_cv_shlibext"; then m4_pattern_allow([LT_MODULE_EXT])dnl AC_DEFINE_UNQUOTED([LT_MODULE_EXT], ["$libltdl_cv_shlibext"], [Define to the extension used for runtime loadable modules, say, ".so".]) fi ])# LT_SYS_MODULE_EXT # Old name: AU_ALIAS([AC_LTDL_SHLIBEXT], [LT_SYS_MODULE_EXT]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LTDL_SHLIBEXT], []) # LT_SYS_MODULE_PATH # ------------------ AC_DEFUN([LT_SYS_MODULE_PATH], [m4_require([_LT_SYS_DYNAMIC_LINKER])dnl AC_CACHE_CHECK([which variable specifies run-time module search path], [lt_cv_module_path_var], [lt_cv_module_path_var="$shlibpath_var"]) if test -n "$lt_cv_module_path_var"; then m4_pattern_allow([LT_MODULE_PATH_VAR])dnl AC_DEFINE_UNQUOTED([LT_MODULE_PATH_VAR], ["$lt_cv_module_path_var"], [Define to the name of the environment variable that determines the run-time module search path.]) fi ])# LT_SYS_MODULE_PATH # Old name: AU_ALIAS([AC_LTDL_SHLIBPATH], [LT_SYS_MODULE_PATH]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LTDL_SHLIBPATH], []) # LT_SYS_DLSEARCH_PATH # -------------------- AC_DEFUN([LT_SYS_DLSEARCH_PATH], [m4_require([_LT_SYS_DYNAMIC_LINKER])dnl AC_CACHE_CHECK([for the default library search path], [lt_cv_sys_dlsearch_path], [lt_cv_sys_dlsearch_path="$sys_lib_dlsearch_path_spec"]) if test -n "$lt_cv_sys_dlsearch_path"; then sys_dlsearch_path= for dir in $lt_cv_sys_dlsearch_path; do if test -z "$sys_dlsearch_path"; then sys_dlsearch_path="$dir" else sys_dlsearch_path="$sys_dlsearch_path$PATH_SEPARATOR$dir" fi done m4_pattern_allow([LT_DLSEARCH_PATH])dnl AC_DEFINE_UNQUOTED([LT_DLSEARCH_PATH], ["$sys_dlsearch_path"], [Define to the system default library search path.]) fi ])# LT_SYS_DLSEARCH_PATH # Old name: AU_ALIAS([AC_LTDL_SYSSEARCHPATH], [LT_SYS_DLSEARCH_PATH]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LTDL_SYSSEARCHPATH], []) # _LT_CHECK_DLPREOPEN # ------------------- m4_defun([_LT_CHECK_DLPREOPEN], [m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl AC_CACHE_CHECK([whether libtool supports -dlopen/-dlpreopen], [libltdl_cv_preloaded_symbols], [if test -n "$lt_cv_sys_global_symbol_pipe"; then libltdl_cv_preloaded_symbols=yes else libltdl_cv_preloaded_symbols=no fi ]) if test x"$libltdl_cv_preloaded_symbols" = xyes; then AC_DEFINE([HAVE_PRELOADED_SYMBOLS], [1], [Define if libtool can extract symbol lists from object files.]) fi ])# _LT_CHECK_DLPREOPEN # LT_LIB_DLLOAD # ------------- AC_DEFUN([LT_LIB_DLLOAD], [m4_pattern_allow([^LT_DLLOADERS$]) LT_DLLOADERS= AC_SUBST([LT_DLLOADERS]) AC_LANG_PUSH([C]) LIBADD_DLOPEN= AC_SEARCH_LIBS([dlopen], [dl], [AC_DEFINE([HAVE_LIBDL], [1], [Define if you have the libdl library or equivalent.]) if test "$ac_cv_search_dlopen" != "none required" ; then LIBADD_DLOPEN="-ldl" fi libltdl_cv_lib_dl_dlopen="yes" LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dlopen.la"], [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#if HAVE_DLFCN_H # include #endif ]], [[dlopen(0, 0);]])], [AC_DEFINE([HAVE_LIBDL], [1], [Define if you have the libdl library or equivalent.]) libltdl_cv_func_dlopen="yes" LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dlopen.la"], [AC_CHECK_LIB([svld], [dlopen], [AC_DEFINE([HAVE_LIBDL], [1], [Define if you have the libdl library or equivalent.]) LIBADD_DLOPEN="-lsvld" libltdl_cv_func_dlopen="yes" LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dlopen.la"])])]) if test x"$libltdl_cv_func_dlopen" = xyes || test x"$libltdl_cv_lib_dl_dlopen" = xyes then lt_save_LIBS="$LIBS" LIBS="$LIBS $LIBADD_DLOPEN" AC_CHECK_FUNCS([dlerror]) LIBS="$lt_save_LIBS" fi AC_SUBST([LIBADD_DLOPEN]) LIBADD_SHL_LOAD= AC_CHECK_FUNC([shl_load], [AC_DEFINE([HAVE_SHL_LOAD], [1], [Define if you have the shl_load function.]) LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}shl_load.la"], [AC_CHECK_LIB([dld], [shl_load], [AC_DEFINE([HAVE_SHL_LOAD], [1], [Define if you have the shl_load function.]) LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}shl_load.la" LIBADD_SHL_LOAD="-ldld"])]) AC_SUBST([LIBADD_SHL_LOAD]) case $host_os in darwin[[1567]].*) # We only want this for pre-Mac OS X 10.4. AC_CHECK_FUNC([_dyld_func_lookup], [AC_DEFINE([HAVE_DYLD], [1], [Define if you have the _dyld_func_lookup function.]) LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dyld.la"]) ;; beos*) LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}load_add_on.la" ;; cygwin* | mingw* | os2* | pw32*) AC_CHECK_DECLS([cygwin_conv_path], [], [], [[#include ]]) LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}loadlibrary.la" ;; esac AC_CHECK_LIB([dld], [dld_link], [AC_DEFINE([HAVE_DLD], [1], [Define if you have the GNU dld library.]) LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dld_link.la"]) AC_SUBST([LIBADD_DLD_LINK]) m4_pattern_allow([^LT_DLPREOPEN$]) LT_DLPREOPEN= if test -n "$LT_DLLOADERS" then for lt_loader in $LT_DLLOADERS; do LT_DLPREOPEN="$LT_DLPREOPEN-dlpreopen $lt_loader " done AC_DEFINE([HAVE_LIBDLLOADER], [1], [Define if libdlloader will be built on this platform]) fi AC_SUBST([LT_DLPREOPEN]) dnl This isn't used anymore, but set it for backwards compatibility LIBADD_DL="$LIBADD_DLOPEN $LIBADD_SHL_LOAD" AC_SUBST([LIBADD_DL]) AC_LANG_POP ])# LT_LIB_DLLOAD # Old name: AU_ALIAS([AC_LTDL_DLLIB], [LT_LIB_DLLOAD]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LTDL_DLLIB], []) # LT_SYS_SYMBOL_USCORE # -------------------- # does the compiler prefix global symbols with an underscore? AC_DEFUN([LT_SYS_SYMBOL_USCORE], [m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl AC_CACHE_CHECK([for _ prefix in compiled symbols], [lt_cv_sys_symbol_underscore], [lt_cv_sys_symbol_underscore=no cat > conftest.$ac_ext <<_LT_EOF void nm_test_func(){} int main(){nm_test_func;return 0;} _LT_EOF if AC_TRY_EVAL(ac_compile); then # Now try to grab the symbols. ac_nlist=conftest.nm if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $ac_nlist) && test -s "$ac_nlist"; then # See whether the symbols have a leading underscore. if grep '^. _nm_test_func' "$ac_nlist" >/dev/null; then lt_cv_sys_symbol_underscore=yes else if grep '^. nm_test_func ' "$ac_nlist" >/dev/null; then : else echo "configure: cannot find nm_test_func in $ac_nlist" >&AS_MESSAGE_LOG_FD fi fi else echo "configure: cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD fi else echo "configure: failed program was:" >&AS_MESSAGE_LOG_FD cat conftest.c >&AS_MESSAGE_LOG_FD fi rm -rf conftest* ]) sys_symbol_underscore=$lt_cv_sys_symbol_underscore AC_SUBST([sys_symbol_underscore]) ])# LT_SYS_SYMBOL_USCORE # Old name: AU_ALIAS([AC_LTDL_SYMBOL_USCORE], [LT_SYS_SYMBOL_USCORE]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LTDL_SYMBOL_USCORE], []) # LT_FUNC_DLSYM_USCORE # -------------------- AC_DEFUN([LT_FUNC_DLSYM_USCORE], [AC_REQUIRE([LT_SYS_SYMBOL_USCORE])dnl if test x"$lt_cv_sys_symbol_underscore" = xyes; then if test x"$libltdl_cv_func_dlopen" = xyes || test x"$libltdl_cv_lib_dl_dlopen" = xyes ; then AC_CACHE_CHECK([whether we have to add an underscore for dlsym], [libltdl_cv_need_uscore], [libltdl_cv_need_uscore=unknown save_LIBS="$LIBS" LIBS="$LIBS $LIBADD_DLOPEN" _LT_TRY_DLOPEN_SELF( [libltdl_cv_need_uscore=no], [libltdl_cv_need_uscore=yes], [], [libltdl_cv_need_uscore=cross]) LIBS="$save_LIBS" ]) fi fi if test x"$libltdl_cv_need_uscore" = xyes; then AC_DEFINE([NEED_USCORE], [1], [Define if dlsym() requires a leading underscore in symbol names.]) fi ])# LT_FUNC_DLSYM_USCORE # Old name: AU_ALIAS([AC_LTDL_DLSYM_USCORE], [LT_FUNC_DLSYM_USCORE]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LTDL_DLSYM_USCORE], []) scim-1.4.14/m4/ltoptions.m4000066400000000000000000000272421177210725600153700ustar00rootroot00000000000000# Helper functions for option handling. -*- Autoconf -*- # # Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 6 ltoptions.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) # _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) # ------------------------------------------ m4_define([_LT_MANGLE_OPTION], [[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) # _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) # --------------------------------------- # Set option OPTION-NAME for macro MACRO-NAME, and if there is a # matching handler defined, dispatch to it. Other OPTION-NAMEs are # saved as a flag. m4_define([_LT_SET_OPTION], [m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), _LT_MANGLE_DEFUN([$1], [$2]), [m4_warning([Unknown $1 option `$2'])])[]dnl ]) # _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) # ------------------------------------------------------------ # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. m4_define([_LT_IF_OPTION], [m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) # _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) # ------------------------------------------------------- # Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME # are set. m4_define([_LT_UNLESS_OPTIONS], [m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), [m4_define([$0_found])])])[]dnl m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 ])[]dnl ]) # _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) # ---------------------------------------- # OPTION-LIST is a space-separated list of Libtool options associated # with MACRO-NAME. If any OPTION has a matching handler declared with # LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about # the unknown option and exit. m4_defun([_LT_SET_OPTIONS], [# Set options m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [_LT_SET_OPTION([$1], _LT_Option)]) m4_if([$1],[LT_INIT],[ dnl dnl Simply set some default values (i.e off) if boolean options were not dnl specified: _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no ]) _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no ]) dnl dnl If no reference was made to various pairs of opposing options, then dnl we run the default mode handler for the pair. For example, if neither dnl `shared' nor `disable-shared' was passed, we enable building of shared dnl archives by default: _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], [_LT_ENABLE_FAST_INSTALL]) ]) ])# _LT_SET_OPTIONS ## --------------------------------- ## ## Macros to handle LT_INIT options. ## ## --------------------------------- ## # _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) # ----------------------------------------- m4_define([_LT_MANGLE_DEFUN], [[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) # LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) # ----------------------------------------------- m4_define([LT_OPTION_DEFINE], [m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl ])# LT_OPTION_DEFINE # dlopen # ------ LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes ]) AU_DEFUN([AC_LIBTOOL_DLOPEN], [_LT_SET_OPTION([LT_INIT], [dlopen]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `dlopen' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) # win32-dll # --------- # Declare package support for building win32 dll's. LT_OPTION_DEFINE([LT_INIT], [win32-dll], [enable_win32_dll=yes case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*) AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(OBJDUMP, objdump, false) ;; esac test -z "$AS" && AS=as _LT_DECL([], [AS], [0], [Assembler program])dnl test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [0], [Object dumper program])dnl ])# win32-dll AU_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_REQUIRE([AC_CANONICAL_HOST])dnl _LT_SET_OPTION([LT_INIT], [win32-dll]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `win32-dll' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) # _LT_ENABLE_SHARED([DEFAULT]) # ---------------------------- # implement the --enable-shared flag, and supports the `shared' and # `disable-shared' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_SHARED], [m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([shared], [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) _LT_DECL([build_libtool_libs], [enable_shared], [0], [Whether or not to build shared libraries]) ])# _LT_ENABLE_SHARED LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) # Old names: AC_DEFUN([AC_ENABLE_SHARED], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) ]) AC_DEFUN([AC_DISABLE_SHARED], [_LT_SET_OPTION([LT_INIT], [disable-shared]) ]) AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_SHARED], []) dnl AC_DEFUN([AM_DISABLE_SHARED], []) # _LT_ENABLE_STATIC([DEFAULT]) # ---------------------------- # implement the --enable-static flag, and support the `static' and # `disable-static' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_STATIC], [m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([static], [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_static=]_LT_ENABLE_STATIC_DEFAULT) _LT_DECL([build_old_libs], [enable_static], [0], [Whether or not to build static libraries]) ])# _LT_ENABLE_STATIC LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) # Old names: AC_DEFUN([AC_ENABLE_STATIC], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) ]) AC_DEFUN([AC_DISABLE_STATIC], [_LT_SET_OPTION([LT_INIT], [disable-static]) ]) AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_STATIC], []) dnl AC_DEFUN([AM_DISABLE_STATIC], []) # _LT_ENABLE_FAST_INSTALL([DEFAULT]) # ---------------------------------- # implement the --enable-fast-install flag, and support the `fast-install' # and `disable-fast-install' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_FAST_INSTALL], [m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([fast-install], [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) _LT_DECL([fast_install], [enable_fast_install], [0], [Whether or not to optimize for fast installation])dnl ])# _LT_ENABLE_FAST_INSTALL LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) # Old names: AU_DEFUN([AC_ENABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `fast-install' option into LT_INIT's first parameter.]) ]) AU_DEFUN([AC_DISABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], [disable-fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `disable-fast-install' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) # _LT_WITH_PIC([MODE]) # -------------------- # implement the --with-pic flag, and support the `pic-only' and `no-pic' # LT_INIT options. # MODE is either `yes' or `no'. If omitted, it defaults to `both'. m4_define([_LT_WITH_PIC], [AC_ARG_WITH([pic], [AS_HELP_STRING([--with-pic], [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], [pic_mode="$withval"], [pic_mode=default]) test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) _LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl ])# _LT_WITH_PIC LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) # Old name: AU_DEFUN([AC_LIBTOOL_PICMODE], [_LT_SET_OPTION([LT_INIT], [pic-only]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `pic-only' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) ## ----------------- ## ## LTDL_INIT Options ## ## ----------------- ## m4_define([_LTDL_MODE], []) LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], [m4_define([_LTDL_MODE], [nonrecursive])]) LT_OPTION_DEFINE([LTDL_INIT], [recursive], [m4_define([_LTDL_MODE], [recursive])]) LT_OPTION_DEFINE([LTDL_INIT], [subproject], [m4_define([_LTDL_MODE], [subproject])]) m4_define([_LTDL_TYPE], []) LT_OPTION_DEFINE([LTDL_INIT], [installable], [m4_define([_LTDL_TYPE], [installable])]) LT_OPTION_DEFINE([LTDL_INIT], [convenience], [m4_define([_LTDL_TYPE], [convenience])]) scim-1.4.14/m4/ltsugar.m4000066400000000000000000000104241177210725600150100ustar00rootroot00000000000000# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 6 ltsugar.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) # lt_join(SEP, ARG1, [ARG2...]) # ----------------------------- # Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their # associated separator. # Needed until we can rely on m4_join from Autoconf 2.62, since all earlier # versions in m4sugar had bugs. m4_define([lt_join], [m4_if([$#], [1], [], [$#], [2], [[$2]], [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) m4_define([_lt_join], [m4_if([$#$2], [2], [], [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) # lt_car(LIST) # lt_cdr(LIST) # ------------ # Manipulate m4 lists. # These macros are necessary as long as will still need to support # Autoconf-2.59 which quotes differently. m4_define([lt_car], [[$1]]) m4_define([lt_cdr], [m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], [$#], 1, [], [m4_dquote(m4_shift($@))])]) m4_define([lt_unquote], $1) # lt_append(MACRO-NAME, STRING, [SEPARATOR]) # ------------------------------------------ # Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'. # Note that neither SEPARATOR nor STRING are expanded; they are appended # to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). # No SEPARATOR is output if MACRO-NAME was previously undefined (different # than defined and empty). # # This macro is needed until we can rely on Autoconf 2.62, since earlier # versions of m4sugar mistakenly expanded SEPARATOR but not STRING. m4_define([lt_append], [m4_define([$1], m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) # lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) # ---------------------------------------------------------- # Produce a SEP delimited list of all paired combinations of elements of # PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list # has the form PREFIXmINFIXSUFFIXn. # Needed until we can rely on m4_combine added in Autoconf 2.62. m4_define([lt_combine], [m4_if(m4_eval([$# > 3]), [1], [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl [[m4_foreach([_Lt_prefix], [$2], [m4_foreach([_Lt_suffix], ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) # lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) # ----------------------------------------------------------------------- # Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited # by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. m4_define([lt_if_append_uniq], [m4_ifdef([$1], [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], [lt_append([$1], [$2], [$3])$4], [$5])], [lt_append([$1], [$2], [$3])$4])]) # lt_dict_add(DICT, KEY, VALUE) # ----------------------------- m4_define([lt_dict_add], [m4_define([$1($2)], [$3])]) # lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) # -------------------------------------------- m4_define([lt_dict_add_subkey], [m4_define([$1($2:$3)], [$4])]) # lt_dict_fetch(DICT, KEY, [SUBKEY]) # ---------------------------------- m4_define([lt_dict_fetch], [m4_ifval([$3], m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) # lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) # ----------------------------------------------------------------- m4_define([lt_if_dict_fetch], [m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], [$5], [$6])]) # lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) # -------------------------------------------------------------- m4_define([lt_dict_filter], [m4_if([$5], [], [], [lt_join(m4_quote(m4_default([$4], [[, ]])), lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl ]) scim-1.4.14/m4/ltversion.m4000066400000000000000000000012771177210725600153620ustar00rootroot00000000000000# ltversion.m4 -- version numbers -*- Autoconf -*- # # Copyright (C) 2004 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # Generated from ltversion.in. # serial 3018 ltversion.m4 # This file is part of GNU Libtool m4_define([LT_PACKAGE_VERSION], [2.2.6b]) m4_define([LT_PACKAGE_REVISION], [1.3018]) AC_DEFUN([LTVERSION_VERSION], [macro_version='2.2.6b' macro_revision='1.3018' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) scim-1.4.14/m4/lt~obsolete.m4000066400000000000000000000131131177210725600156770ustar00rootroot00000000000000# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004. # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 4 lt~obsolete.m4 # These exist entirely to fool aclocal when bootstrapping libtool. # # In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN) # which have later been changed to m4_define as they aren't part of the # exported API, or moved to Autoconf or Automake where they belong. # # The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN # in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us # using a macro with the same name in our local m4/libtool.m4 it'll # pull the old libtool.m4 in (it doesn't see our shiny new m4_define # and doesn't know about Autoconf macros at all.) # # So we provide this file, which has a silly filename so it's always # included after everything else. This provides aclocal with the # AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything # because those macros already exist, or will be overwritten later. # We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. # # Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. # Yes, that means every name once taken will need to remain here until # we give up compatibility with versions before 1.7, at which point # we need to keep only those names which we still refer to. # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) m4_ifndef([AC_LIBTOOL_RC], [AC_DEFUN([AC_LIBTOOL_RC])]) m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) scim-1.4.14/m4/nls.m4000066400000000000000000000035051177210725600141250ustar00rootroot00000000000000# nls.m4 serial 1 (gettext-0.12) dnl Copyright (C) 1995-2003 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995-2000. dnl Bruno Haible , 2000-2003. AC_DEFUN([AM_NLS], [ AC_MSG_CHECKING([whether NLS is requested]) dnl Default is enabled NLS AC_ARG_ENABLE(nls, [ --disable-nls do not use Native Language Support], USE_NLS=$enableval, USE_NLS=yes) AC_MSG_RESULT($USE_NLS) AC_SUBST(USE_NLS) ]) AC_DEFUN([AM_MKINSTALLDIRS], [ dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly dnl find the mkinstalldirs script in another subdir but $(top_srcdir). dnl Try to locate it. MKINSTALLDIRS= if test -n "$ac_aux_dir"; then case "$ac_aux_dir" in /*) MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" ;; *) MKINSTALLDIRS="\$(top_builddir)/$ac_aux_dir/mkinstalldirs" ;; esac fi if test -z "$MKINSTALLDIRS"; then MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" fi AC_SUBST(MKINSTALLDIRS) ]) scim-1.4.14/m4/po.m4000066400000000000000000000426521177210725600137550ustar00rootroot00000000000000# po.m4 serial 3 (gettext-0.14) dnl Copyright (C) 1995-2003 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995-2000. dnl Bruno Haible , 2000-2003. dnl Checks for all prerequisites of the po subdirectory. AC_DEFUN([AM_PO_SUBDIRS], [ AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl AC_REQUIRE([AM_MKINSTALLDIRS])dnl AC_REQUIRE([AM_NLS])dnl dnl Perform the following tests also if --disable-nls has been given, dnl because they are needed for "make dist" to work. dnl Search for GNU msgfmt in the PATH. dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions. dnl The second test excludes FreeBSD msgfmt. AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 && (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], :) AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) dnl Search for GNU xgettext 0.12 or newer in the PATH. dnl The first test excludes Solaris xgettext and early GNU xgettext versions. dnl The second test excludes FreeBSD xgettext. AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 && (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], :) dnl Remove leftover from FreeBSD xgettext call. rm -f messages.po dnl Search for GNU msgmerge 0.11 or newer in the PATH. AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge, [$ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1], :) dnl This could go away some day; the PATH_PROG_WITH_TEST already does it. dnl Test whether we really found GNU msgfmt. if test "$GMSGFMT" != ":"; then dnl If it is no GNU msgfmt we define it as : so that the dnl Makefiles still can work. if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 && (if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then : ; else GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'` AC_MSG_RESULT( [found $GMSGFMT program is not GNU msgfmt; ignore it]) GMSGFMT=":" fi fi dnl This could go away some day; the PATH_PROG_WITH_TEST already does it. dnl Test whether we really found GNU xgettext. if test "$XGETTEXT" != ":"; then dnl If it is no GNU xgettext we define it as : so that the dnl Makefiles still can work. if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 && (if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then : ; else AC_MSG_RESULT( [found xgettext program is not GNU xgettext; ignore it]) XGETTEXT=":" fi dnl Remove leftover from FreeBSD xgettext call. rm -f messages.po fi AC_OUTPUT_COMMANDS([ for ac_file in $CONFIG_FILES; do # Support "outfile[:infile[:infile...]]" case "$ac_file" in *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; esac # PO directories have a Makefile.in generated from Makefile.in.in. case "$ac_file" in */Makefile.in) # Adjust a relative srcdir. ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` # In autoconf-2.13 it is called $ac_given_srcdir. # In autoconf-2.50 it is called $srcdir. test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" case "$ac_given_srcdir" in .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; /*) top_srcdir="$ac_given_srcdir" ;; *) top_srcdir="$ac_dots$ac_given_srcdir" ;; esac if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then rm -f "$ac_dir/POTFILES" test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" POMAKEFILEDEPS="POTFILES.in" # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend # on $ac_dir but don't depend on user-specified configuration # parameters. if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then # The LINGUAS file contains the set of available languages. if test -n "$OBSOLETE_ALL_LINGUAS"; then test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" fi ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"` # Hide the ALL_LINGUAS assigment from automake. eval 'ALL_LINGUAS''=$ALL_LINGUAS_' POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" else # The set of available languages was given in configure.in. eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' fi # Compute POFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) # Compute UPDATEPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) # Compute DUMMYPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) # Compute GMOFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) case "$ac_given_srcdir" in .) srcdirpre= ;; *) srcdirpre='$(srcdir)/' ;; esac POFILES= UPDATEPOFILES= DUMMYPOFILES= GMOFILES= for lang in $ALL_LINGUAS; do POFILES="$POFILES $srcdirpre$lang.po" UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" DUMMYPOFILES="$DUMMYPOFILES $lang.nop" GMOFILES="$GMOFILES $srcdirpre$lang.gmo" done # CATALOGS depends on both $ac_dir and the user's LINGUAS # environment variable. INST_LINGUAS= if test -n "$ALL_LINGUAS"; then for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "$LINGUAS"; then desiredlanguages="$LINGUAS" else desiredlanguages="$ALL_LINGUAS" fi for desiredlang in $desiredlanguages; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then INST_LINGUAS="$INST_LINGUAS $presentlang" fi done fi CATALOGS= if test -n "$INST_LINGUAS"; then for lang in $INST_LINGUAS; do CATALOGS="$CATALOGS $lang.gmo" done fi test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do if test -f "$f"; then case "$f" in *.orig | *.bak | *~) ;; *) cat "$f" >> "$ac_dir/Makefile" ;; esac fi done fi ;; esac done], [# Capture the value of obsolete ALL_LINGUAS because we need it to compute # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it # from automake. eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' # Capture the value of LINGUAS because we need it to compute CATALOGS. LINGUAS="${LINGUAS-%UNSET%}" ]) ]) dnl Postprocesses a Makefile in a directory containing PO files. AC_DEFUN([AM_POSTPROCESS_PO_MAKEFILE], [ # When this code is run, in config.status, two variables have already been # set: # - OBSOLETE_ALL_LINGUAS is the value of LINGUAS set in configure.in, # - LINGUAS is the value of the environment variable LINGUAS at configure # time. changequote(,)dnl # Adjust a relative srcdir. ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` # In autoconf-2.13 it is called $ac_given_srcdir. # In autoconf-2.50 it is called $srcdir. test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" case "$ac_given_srcdir" in .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; /*) top_srcdir="$ac_given_srcdir" ;; *) top_srcdir="$ac_dots$ac_given_srcdir" ;; esac # Find a way to echo strings without interpreting backslash. if test "X`(echo '\t') 2>/dev/null`" = 'X\t'; then gt_echo='echo' else if test "X`(printf '%s\n' '\t') 2>/dev/null`" = 'X\t'; then gt_echo='printf %s\n' else echo_func () { cat < "$ac_file.tmp" if grep -l '@TCLCATALOGS@' "$ac_file" > /dev/null; then # Add dependencies that cannot be formulated as a simple suffix rule. for lang in $ALL_LINGUAS; do frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` cat >> "$ac_file.tmp" < /dev/null; then # Add dependencies that cannot be formulated as a simple suffix rule. for lang in $ALL_LINGUAS; do frobbedlang=`echo $lang | sed -e 's/_/-/g'` cat >> "$ac_file.tmp" <> "$ac_file.tmp" <, 1996. # Search path for a program which passes the given test. dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) AC_DEFUN([AM_PATH_PROG_WITH_TEST], [ # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Find out how to test for executable files. Don't use a zero-byte file, # as systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "$2", so it can be a program name with args. set dummy $2; ac_word=[$]2 AC_MSG_CHECKING([for $ac_word]) AC_CACHE_VAL(ac_cv_path_$1, [case "[$]$1" in [[\\/]]* | ?:[[\\/]]*) ac_cv_path_$1="[$]$1" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in ifelse([$5], , $PATH, [$5]); do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then if [$3]; then ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done done IFS="$ac_save_IFS" dnl If no 4th arg is given, leave the cache variable unset, dnl so AC_PATH_PROGS will keep looking. ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" ])dnl ;; esac])dnl $1="$ac_cv_path_$1" if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then AC_MSG_RESULT([$]$1) else AC_MSG_RESULT(no) fi AC_SUBST($1)dnl ]) scim-1.4.14/missing000077500000000000000000000262331177210725600141510ustar00rootroot00000000000000#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2009-04-28.21; # UTC # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, # 2008, 2009 Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' sed_minuso='s/.* -o \([^ ]*\).*/\1/p' # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case $1 in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' autom4te touch the output file, or create a stub one automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and \`g' are ignored when checking the name. Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; esac # normalize program name to check for. program=`echo "$1" | sed ' s/^gnu-//; t s/^gnu//; t s/^g//; t'` # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). This is about non-GNU programs, so use $1 not # $program. case $1 in lex*|yacc*) # Not GNU programs, they don't have --version. ;; tar*) if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then exit 1 fi ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case $program in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case $f in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te*) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison*|yacc*) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.h fi ;; esac fi if test ! -f y.tab.h; then echo >y.tab.h fi if test ! -f y.tab.c; then echo 'main() { return 0; }' >y.tab.c fi ;; lex*|flex*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if test ! -f lex.yy.c; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit $? fi ;; makeinfo*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n ' /^@setfilename/{ s/.* \([^ ]*\) *$/\1/ p q }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi # If the file does not exist, the user really needs makeinfo; # let's fail without touching anything. test -f $file || exit 1 touch $file ;; tar*) shift # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar "$@" && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar "$@" && exit 0 fi firstarg="$1" if shift; then case $firstarg in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac case $firstarg in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 ;; esac fi echo 1>&2 "\ WARNING: I can't seem to be able to run \`tar' with the given arguments. You may want to install GNU tar or Free paxutils, or check the command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: scim-1.4.14/mkinstalldirs000077500000000000000000000067221177210725600153610ustar00rootroot00000000000000#! /bin/sh # mkinstalldirs --- make directory hierarchy scriptversion=2009-04-28.21; # UTC # Original author: Noah Friedman # Created: 1993-05-16 # Public domain. # # This file is maintained in Automake, please report # bugs to or send patches to # . nl=' ' IFS=" "" $nl" errstatus=0 dirmode= usage="\ Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ... Create each directory DIR (with mode MODE, if specified), including all leading file name components. Report bugs to ." # process command line arguments while test $# -gt 0 ; do case $1 in -h | --help | --h*) # -h for help echo "$usage" exit $? ;; -m) # -m PERM arg shift test $# -eq 0 && { echo "$usage" 1>&2; exit 1; } dirmode=$1 shift ;; --version) echo "$0 $scriptversion" exit $? ;; --) # stop option processing shift break ;; -*) # unknown option echo "$usage" 1>&2 exit 1 ;; *) # first non-opt arg break ;; esac done for file do if test -d "$file"; then shift else break fi done case $# in 0) exit 0 ;; esac # Solaris 8's mkdir -p isn't thread-safe. If you mkdir -p a/b and # mkdir -p a/c at the same time, both will detect that a is missing, # one will create a, then the other will try to create a and die with # a "File exists" error. This is a problem when calling mkinstalldirs # from a parallel make. We use --version in the probe to restrict # ourselves to GNU mkdir, which is thread-safe. case $dirmode in '') if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then echo "mkdir -p -- $*" exec mkdir -p -- "$@" else # On NextStep and OpenStep, the `mkdir' command does not # recognize any option. It will interpret all options as # directories to create, and then abort because `.' already # exists. test -d ./-p && rmdir ./-p test -d ./--version && rmdir ./--version fi ;; *) if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 && test ! -d ./--version; then echo "mkdir -m $dirmode -p -- $*" exec mkdir -m "$dirmode" -p -- "$@" else # Clean up after NextStep and OpenStep mkdir. for d in ./-m ./-p ./--version "./$dirmode"; do test -d $d && rmdir $d done fi ;; esac for file do case $file in /*) pathcomp=/ ;; *) pathcomp= ;; esac oIFS=$IFS IFS=/ set fnord $file shift IFS=$oIFS for d do test "x$d" = x && continue pathcomp=$pathcomp$d case $pathcomp in -*) pathcomp=./$pathcomp ;; esac if test ! -d "$pathcomp"; then echo "mkdir $pathcomp" mkdir "$pathcomp" || lasterr=$? if test ! -d "$pathcomp"; then errstatus=$lasterr else if test ! -z "$dirmode"; then echo "chmod $dirmode $pathcomp" lasterr= chmod "$dirmode" "$pathcomp" || lasterr=$? if test ! -z "$lasterr"; then errstatus=$lasterr fi fi fi fi pathcomp=$pathcomp/ done done exit $errstatus # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: scim-1.4.14/modules/000077500000000000000000000000001177210725600142145ustar00rootroot00000000000000scim-1.4.14/modules/Config/000077500000000000000000000000001177210725600154215ustar00rootroot00000000000000scim-1.4.14/modules/Config/Makefile.am000066400000000000000000000044321177210725600174600ustar00rootroot00000000000000## Makefile.am -- Process this file with automake to produce Makefile.in ## Copyright (C) 2002 James Su ## ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2, or (at your option) ## any later version. ## ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. MAINTAINERCLEANFILES = Makefile.in CLEANFILES = *.bak EXTRA_DIST = config.version-script INCLUDES = -I$(top_builddir) \ -I$(top_builddir)/src \ -I$(top_srcdir) \ -I$(top_srcdir)/src \ -I$(top_srcdir)/intl \ -DSCIM_DATADIR=\"@SCIM_DATADIR@\" \ -DSCIM_LOCALEDIR=\"@SCIM_LOCALEDIR@\" \ -DSCIM_SYSCONFDIR=\"@SCIM_SYSCONFDIR@\" \ -DSCIM_LIBEXECDIR=\"@SCIM_LIBEXECDIR@\" \ -DSCIM_ICONDIR=\"@SCIM_ICONDIR@\" \ -DSCIM_MODULE_PATH=\"@SCIM_MODULE_PATH@\" moduledir = $(libdir)/scim@SCIM_EPOCH@/$(SCIM_BINARY_VERSION)/Config noinst_HEADERS = scim_simple_config.h \ scim_socket_config.h if SCIM_BUILD_CONFIG_SIMPLE CONFIG_SIMPLE_MODULE = simple.la endif if SCIM_BUILD_CONFIG_SOCKET CONFIG_SOCKET_MODULE = socket.la endif if SCIM_LD_VERSION_SCRIPT LD_VERSION_SCRIPT_OPTION="-Wl,--version-script=$(srcdir)/config.version-script" endif module_LTLIBRARIES = \ $(CONFIG_SIMPLE_MODULE) \ $(CONFIG_SOCKET_MODULE) simple_la_SOURCES = scim_simple_config.cpp simple_la_LDFLAGS = -avoid-version \ -rpath $(moduledir) \ -module \ $(LD_VERSION_SCRIPT_OPTION) \ @LIBTOOL_EXPORT_OPTIONS@ \ @LTLIBINTL@ simple_la_LIBADD = $(top_builddir)/src/libscim@SCIM_EPOCH@.la socket_la_SOURCES = scim_socket_config.cpp socket_la_LDFLAGS = -avoid-version \ -rpath $(moduledir) \ -module \ $(LD_VERSION_SCRIPT_OPTION) \ @LIBTOOL_EXPORT_OPTIONS@ \ @LTLIBINTL@ socket_la_LIBADD = $(top_builddir)/src/libscim@SCIM_EPOCH@.la scim-1.4.14/modules/Config/Makefile.in000066400000000000000000000566711177210725600175050ustar00rootroot00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = modules/Config DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(moduledir)" LTLIBRARIES = $(module_LTLIBRARIES) simple_la_DEPENDENCIES = $(top_builddir)/src/libscim@SCIM_EPOCH@.la am_simple_la_OBJECTS = scim_simple_config.lo simple_la_OBJECTS = $(am_simple_la_OBJECTS) simple_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(simple_la_LDFLAGS) $(LDFLAGS) -o $@ @SCIM_BUILD_CONFIG_SIMPLE_TRUE@am_simple_la_rpath = -rpath \ @SCIM_BUILD_CONFIG_SIMPLE_TRUE@ $(moduledir) socket_la_DEPENDENCIES = $(top_builddir)/src/libscim@SCIM_EPOCH@.la am_socket_la_OBJECTS = scim_socket_config.lo socket_la_OBJECTS = $(am_socket_la_OBJECTS) socket_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(socket_la_LDFLAGS) $(LDFLAGS) -o $@ @SCIM_BUILD_CONFIG_SOCKET_TRUE@am_socket_la_rpath = -rpath \ @SCIM_BUILD_CONFIG_SOCKET_TRUE@ $(moduledir) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(simple_la_SOURCES) $(socket_la_SOURCES) DIST_SOURCES = $(simple_la_SOURCES) $(socket_la_SOURCES) HEADERS = $(noinst_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ ARGZ_H = @ARGZ_H@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CLUTTER_BINARY_VERSION = @CLUTTER_BINARY_VERSION@ CLUTTER_CFLAGS = @CLUTTER_CFLAGS@ CLUTTER_IMCONTEXT_LIBDIR = @CLUTTER_IMCONTEXT_LIBDIR@ CLUTTER_IM_MODULEDIR = @CLUTTER_IM_MODULEDIR@ CLUTTER_LIBDIR = @CLUTTER_LIBDIR@ CLUTTER_LIBS = @CLUTTER_LIBS@ CLUTTER_VERSION = @CLUTTER_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOCBOOK_XSL = @DOCBOOK_XSL@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@ GTHREAD2_LIBS = @GTHREAD2_LIBS@ GTK2_CFLAGS = @GTK2_CFLAGS@ GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@ GTK2_LIBS = @GTK2_LIBS@ GTK3_CFLAGS = @GTK3_CFLAGS@ GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@ GTK3_LIBS = @GTK3_LIBS@ GTK_BINARY_VERSION = @GTK_BINARY_VERSION@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBDIR = @GTK_LIBDIR@ GTK_LIBS = @GTK_LIBS@ GTK_MAJOR_VERSION = @GTK_MAJOR_VERSION@ GTK_VERSION = @GTK_VERSION@ HAVE_GRAPHVIZ = @HAVE_GRAPHVIZ@ INCLTDL = @INCLTDL@ INCLUDE_STDINT = @INCLUDE_STDINT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBLTDL = @LIBLTDL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_DEPS = @LIBTOOL_DEPS@ LIBTOOL_EXPORT_OPTIONS = @LIBTOOL_EXPORT_OPTIONS@ LIPO = @LIPO@ LN_S = @LN_S@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ QT3_CFLAGS = @QT3_CFLAGS@ QT3_IM_MODULEDIR = @QT3_IM_MODULEDIR@ QT3_LIBDIR = @QT3_LIBDIR@ QT3_LIBS = @QT3_LIBS@ QT3_MOC = @QT3_MOC@ QT3_PREFIX = @QT3_PREFIX@ QT4_CFLAGS = @QT4_CFLAGS@ QT4_IM_MODULEDIR = @QT4_IM_MODULEDIR@ QT4_LIBDIR = @QT4_LIBDIR@ QT4_LIBS = @QT4_LIBS@ QT4_MOC = @QT4_MOC@ QT4_PREFIX = @QT4_PREFIX@ RANLIB = @RANLIB@ SCIM_AGE = @SCIM_AGE@ SCIM_BINARY_VERSION = @SCIM_BINARY_VERSION@ SCIM_BRIDGE_MAJOR_VERSION = @SCIM_BRIDGE_MAJOR_VERSION@ SCIM_BRIDGE_MICRO_VERSION = @SCIM_BRIDGE_MICRO_VERSION@ SCIM_BRIDGE_MINOR_VERSION = @SCIM_BRIDGE_MINOR_VERSION@ SCIM_BRIDGE_VERSION = @SCIM_BRIDGE_VERSION@ SCIM_BUILD_CLUTTER_IMMODULE = @SCIM_BUILD_CLUTTER_IMMODULE@ SCIM_BUILD_CONFIG_SIMPLE = @SCIM_BUILD_CONFIG_SIMPLE@ SCIM_BUILD_CONFIG_SOCKET = @SCIM_BUILD_CONFIG_SOCKET@ SCIM_BUILD_DOCUMENTS = @SCIM_BUILD_DOCUMENTS@ SCIM_BUILD_FILTER_SCTC = @SCIM_BUILD_FILTER_SCTC@ SCIM_BUILD_FRONTEND_SOCKET = @SCIM_BUILD_FRONTEND_SOCKET@ SCIM_BUILD_FRONTEND_X11 = @SCIM_BUILD_FRONTEND_X11@ SCIM_BUILD_GTK2_IMMODULE = @SCIM_BUILD_GTK2_IMMODULE@ SCIM_BUILD_GTK3_IMMODULE = @SCIM_BUILD_GTK3_IMMODULE@ SCIM_BUILD_GTK_UTILS = @SCIM_BUILD_GTK_UTILS@ SCIM_BUILD_IMENGINE_RAWCODE = @SCIM_BUILD_IMENGINE_RAWCODE@ SCIM_BUILD_IMENGINE_SOCKET = @SCIM_BUILD_IMENGINE_SOCKET@ SCIM_BUILD_IMENGINE_TABLE = @SCIM_BUILD_IMENGINE_TABLE@ SCIM_BUILD_IMMODULE = @SCIM_BUILD_IMMODULE@ SCIM_BUILD_IM_AGENT = @SCIM_BUILD_IM_AGENT@ SCIM_BUILD_ORIG_GTK2_IMMODULE = @SCIM_BUILD_ORIG_GTK2_IMMODULE@ SCIM_BUILD_ORIG_GTK3_IMMODULE = @SCIM_BUILD_ORIG_GTK3_IMMODULE@ SCIM_BUILD_PANEL_GTK = @SCIM_BUILD_PANEL_GTK@ SCIM_BUILD_QT3_IMMODULE = @SCIM_BUILD_QT3_IMMODULE@ SCIM_BUILD_QT4_IMMODULE = @SCIM_BUILD_QT4_IMMODULE@ SCIM_BUILD_SCIM_SETUP = @SCIM_BUILD_SCIM_SETUP@ SCIM_BUILD_TESTS = @SCIM_BUILD_TESTS@ SCIM_BUILD_X11_UTILS = @SCIM_BUILD_X11_UTILS@ SCIM_CURRENT = @SCIM_CURRENT@ SCIM_DATADIR = @SCIM_DATADIR@ SCIM_EPOCH = @SCIM_EPOCH@ SCIM_ICONDIR = @SCIM_ICONDIR@ SCIM_LIBDIR = @SCIM_LIBDIR@ SCIM_LIBEXECDIR = @SCIM_LIBEXECDIR@ SCIM_LOCALEDIR = @SCIM_LOCALEDIR@ SCIM_LTDLADVISE = @SCIM_LTDLADVISE@ SCIM_MAJOR_VERSION = @SCIM_MAJOR_VERSION@ SCIM_MICRO_VERSION = @SCIM_MICRO_VERSION@ SCIM_MINOR_VERSION = @SCIM_MINOR_VERSION@ SCIM_MODULE_PATH = @SCIM_MODULE_PATH@ SCIM_PREFIX = @SCIM_PREFIX@ SCIM_REVISION = @SCIM_REVISION@ SCIM_SYSCONFDIR = @SCIM_SYSCONFDIR@ SCIM_TEMPDIR = @SCIM_TEMPDIR@ SCIM_VERSION = @SCIM_VERSION@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UINT16 = @UINT16@ UINT32 = @UINT32@ UINT64 = @UINT64@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XMKMF = @XMKMF@ XSLTPROC = @XSLTPROC@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_aux_dir = @ac_aux_dir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ MAINTAINERCLEANFILES = Makefile.in CLEANFILES = *.bak EXTRA_DIST = config.version-script INCLUDES = -I$(top_builddir) \ -I$(top_builddir)/src \ -I$(top_srcdir) \ -I$(top_srcdir)/src \ -I$(top_srcdir)/intl \ -DSCIM_DATADIR=\"@SCIM_DATADIR@\" \ -DSCIM_LOCALEDIR=\"@SCIM_LOCALEDIR@\" \ -DSCIM_SYSCONFDIR=\"@SCIM_SYSCONFDIR@\" \ -DSCIM_LIBEXECDIR=\"@SCIM_LIBEXECDIR@\" \ -DSCIM_ICONDIR=\"@SCIM_ICONDIR@\" \ -DSCIM_MODULE_PATH=\"@SCIM_MODULE_PATH@\" moduledir = $(libdir)/scim@SCIM_EPOCH@/$(SCIM_BINARY_VERSION)/Config noinst_HEADERS = scim_simple_config.h \ scim_socket_config.h @SCIM_BUILD_CONFIG_SIMPLE_TRUE@CONFIG_SIMPLE_MODULE = simple.la @SCIM_BUILD_CONFIG_SOCKET_TRUE@CONFIG_SOCKET_MODULE = socket.la @SCIM_LD_VERSION_SCRIPT_TRUE@LD_VERSION_SCRIPT_OPTION = "-Wl,--version-script=$(srcdir)/config.version-script" module_LTLIBRARIES = \ $(CONFIG_SIMPLE_MODULE) \ $(CONFIG_SOCKET_MODULE) simple_la_SOURCES = scim_simple_config.cpp simple_la_LDFLAGS = -avoid-version \ -rpath $(moduledir) \ -module \ $(LD_VERSION_SCRIPT_OPTION) \ @LIBTOOL_EXPORT_OPTIONS@ \ @LTLIBINTL@ simple_la_LIBADD = $(top_builddir)/src/libscim@SCIM_EPOCH@.la socket_la_SOURCES = scim_socket_config.cpp socket_la_LDFLAGS = -avoid-version \ -rpath $(moduledir) \ -module \ $(LD_VERSION_SCRIPT_OPTION) \ @LIBTOOL_EXPORT_OPTIONS@ \ @LTLIBINTL@ socket_la_LIBADD = $(top_builddir)/src/libscim@SCIM_EPOCH@.la all: all-am .SUFFIXES: .SUFFIXES: .cpp .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu modules/Config/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu modules/Config/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-moduleLTLIBRARIES: $(module_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(moduledir)" || $(MKDIR_P) "$(DESTDIR)$(moduledir)" @list='$(module_LTLIBRARIES)'; test -n "$(moduledir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(moduledir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(moduledir)"; \ } uninstall-moduleLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(module_LTLIBRARIES)'; test -n "$(moduledir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(moduledir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(moduledir)/$$f"; \ done clean-moduleLTLIBRARIES: -test -z "$(module_LTLIBRARIES)" || rm -f $(module_LTLIBRARIES) @list='$(module_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done simple.la: $(simple_la_OBJECTS) $(simple_la_DEPENDENCIES) $(simple_la_LINK) $(am_simple_la_rpath) $(simple_la_OBJECTS) $(simple_la_LIBADD) $(LIBS) socket.la: $(socket_la_OBJECTS) $(socket_la_DEPENDENCIES) $(socket_la_LINK) $(am_socket_la_rpath) $(socket_la_OBJECTS) $(socket_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim_simple_config.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim_socket_config.Plo@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cpp.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cpp.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: for dir in "$(DESTDIR)$(moduledir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic clean-libtool clean-moduleLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-moduleLTLIBRARIES install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-moduleLTLIBRARIES .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-moduleLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-moduleLTLIBRARIES install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-moduleLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: scim-1.4.14/modules/Config/config.version-script000066400000000000000000000005111177210725600215740ustar00rootroot00000000000000SCIM_CONFIG_1.0 { global: extern "C" { *scim_config_module_create_config*; *scim_config_module_init*; *scim_module_exit*; *scim_module_init*; }; local: extern "C++" { scim::*; std::*; __gnu_cxx::*; }; }; scim-1.4.14/modules/Config/scim_simple_config.cpp000066400000000000000000000365301177210725600217650ustar00rootroot00000000000000/** @file scim_simple_config.cpp * implementation of SimpleConfig class. */ /* * Smart Common Input Method * * Copyright (c) 2002-2005 James Su * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this program; if not, write to the * Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, MA 02111-1307 USA * * $Id: scim_simple_config.cpp,v 1.35 2005/07/06 03:57:04 suzhe Exp $ */ #define Uses_SCIM_CONFIG_BASE #define Uses_SCIM_CONFIG_PATH #define Uses_STL_IOSTREAM #define Uses_STL_FSTREAM #define Uses_C_STDIO #include #include #include #include #include "scim_private.h" #include "scim.h" #include "scim_simple_config.h" #ifndef SCIM_SYSCONFDIR #define SCIM_SYSCONFDIR "/etc" #endif #define scim_module_init simple_LTX_scim_module_init #define scim_module_exit simple_LTX_scim_module_exit #define scim_config_module_init simple_LTX_scim_config_module_init #define scim_config_module_create_config simple_LTX_scim_config_module_create_config using namespace scim; extern "C" { void scim_module_init (void) { SCIM_DEBUG_CONFIG(1) << "Initializing Simple Config module...\n"; } void scim_module_exit (void) { SCIM_DEBUG_CONFIG(1) << "Exiting Simple Config module...\n"; } void scim_config_module_init () { SCIM_DEBUG_CONFIG(1) << "Initializing Simple Config module (more)...\n"; } ConfigPointer scim_config_module_create_config () { SCIM_DEBUG_CONFIG(1) << "Creating a Simple Config instance...\n"; return new SimpleConfig (); } } namespace scim { SimpleConfig::SimpleConfig () : m_need_reload (false) { m_update_timestamp.tv_sec = 0; m_update_timestamp.tv_usec = 0; load_all_config (); } SimpleConfig::~SimpleConfig () { flush (); } bool SimpleConfig::valid () const { return ConfigBase::valid(); } String SimpleConfig::get_name () const { return "simple"; } // String bool SimpleConfig::read (const String& key, String *pStr) const { if (!valid () || !pStr || key.empty()) return false; KeyValueRepository::const_iterator i = m_new_config.find (key); KeyValueRepository::const_iterator end = m_new_config.end (); if (i == end) { i = m_config.find (key); end = m_config.end (); } if (i != end) { *pStr = i->second; return true; } *pStr = String (""); return false; } // int bool SimpleConfig::read (const String& key, int *pl) const { if (!valid () || !pl || key.empty()) return false; KeyValueRepository::const_iterator i = m_new_config.find (key); KeyValueRepository::const_iterator end = m_new_config.end (); if (i == end || !i->second.length ()) { i = m_config.find (key); end = m_config.end (); } if (i != end && i->second.length ()) { *pl = strtol (i->second.c_str (), (char**) NULL, 10); return true; } *pl = 0; return false; } // double bool SimpleConfig::read (const String& key, double* val) const { if (!valid () || !val || key.empty()) return false; KeyValueRepository::const_iterator i = m_new_config.find (key); KeyValueRepository::const_iterator end = m_new_config.end (); if (i == end || !i->second.length ()) { i = m_config.find (key); end = m_config.end (); } if (i != end && i->second.length ()) { *val = strtod (i->second.c_str (), (char**) NULL); return true; } *val = 0; return false; } // bool bool SimpleConfig::read (const String& key, bool* val) const { if (!valid () || !val || key.empty()) return false; KeyValueRepository::const_iterator i = m_new_config.find (key); KeyValueRepository::const_iterator end = m_new_config.end (); if (i == end || !i->second.length ()) { i = m_config.find (key); end = m_config.end (); } if (i != end && i->second.length ()) { if (i->second == "true" || i->second == "TRUE" || i->second == "True" || i->second == "1") { *val = true; return true; } else if (i->second == "false" || i->second == "FALSE" || i->second == "False" || i->second == "0") { *val = false; return true; } } *val = false; return false; } //String list bool SimpleConfig::read (const String& key, std::vector * val) const { if (!valid () || !val || key.empty()) return false; KeyValueRepository::const_iterator i = m_new_config.find (key); KeyValueRepository::const_iterator end = m_new_config.end (); if (i == end) { i = m_config.find (key); end = m_config.end (); } val->clear (); if (i != end) { scim_split_string_list (*val, i->second, ','); return true; } return false; } //int list bool SimpleConfig::read (const String& key, std::vector * val) const { if (!valid () || !val || key.empty()) return false; KeyValueRepository::const_iterator i = m_new_config.find (key); KeyValueRepository::const_iterator end = m_new_config.end (); if (i == end) { i = m_config.find (key); end = m_config.end (); } val->clear(); if (i != end) { std::vector vec; scim_split_string_list (vec, i->second, ','); for (std::vector ::iterator j = vec.begin (); j != vec.end (); ++j) { int result = strtol (j->c_str (), (char**)NULL, 10); val->push_back (result); } return true; } return false; } // write the value (return true on success) bool SimpleConfig::write (const String& key, const String& value) { if (!valid () || key.empty()) return false; m_new_config [key] = value; remove_key_from_erased_list (key); m_need_reload = true; return true; } bool SimpleConfig::write (const String& key, int value) { if (!valid () || key.empty()) return false; char buf [256]; snprintf (buf, 255, "%d", value); m_new_config [key] = String (buf); remove_key_from_erased_list (key); m_need_reload = true; return true; } bool SimpleConfig::write (const String& key, double value) { if (!valid () || key.empty()) return false; char buf [256]; snprintf (buf, 255, "%lf", value); m_new_config [key] = String (buf); remove_key_from_erased_list (key); m_need_reload = true; return true; } bool SimpleConfig::write (const String& key, bool value) { if (!valid () || key.empty()) return false; if (value) m_new_config [key] = String ("true"); else m_new_config [key] = String ("false"); remove_key_from_erased_list (key); m_need_reload = true; return true; } bool SimpleConfig::write (const String& key, const std::vector & value) { if (!valid () || key.empty()) return false; m_new_config [key] = scim_combine_string_list (value, ','); remove_key_from_erased_list (key); m_need_reload = true; return true; } bool SimpleConfig::write (const String& key, const std::vector & value) { if (!valid () || key.empty()) return false; std::vector vec; char buf [256]; for (std::vector ::const_iterator i = value.begin (); i != value.end (); ++i) { snprintf (buf, 255, "%d", *i); vec.push_back (String (buf)); } m_new_config [key] = scim_combine_string_list (vec, ','); remove_key_from_erased_list (key); m_need_reload = true; return true; } // permanently writes all changes bool SimpleConfig::flush() { if (!valid ()) return false; // If no config has been modified, then just return. if (!m_new_config.size () && !m_erased_keys.size ()) return true; String userconf = get_userconf_filename (); String userconf_dir = get_userconf_dir (); if (access (userconf_dir.c_str (), R_OK | W_OK) != 0) { mkdir (userconf_dir.c_str (), S_IRUSR | S_IWUSR | S_IXUSR); if (access (userconf_dir.c_str (), R_OK | W_OK) != 0) return false; } if (userconf.length ()) { // Reload config to ensure user made modification won't lost. load_all_config (); std::ofstream os (userconf.c_str ()); if (!os) return false; KeyValueRepository::iterator i; std::vector::iterator j; // Merge new config with old ones. for (i = m_new_config.begin (); i != m_new_config.end (); ++i) m_config [i->first] = i->second; // Remove all erased keys. for (j = m_erased_keys.begin (); j != m_erased_keys.end (); ++j) { if ((i = m_config.find (*j)) != m_config.end ()) m_config.erase (i); } m_new_config.clear (); m_erased_keys.clear (); gettimeofday (&m_update_timestamp, 0); char buf [128]; snprintf (buf, 128, "%lu:%lu", m_update_timestamp.tv_sec, m_update_timestamp.tv_usec); m_config [String (SCIM_CONFIG_UPDATE_TIMESTAMP)] = String (buf); save_config (os); return true; } return false; } // delete entries bool SimpleConfig::erase (const String& key) { if (!valid ()) return false; KeyValueRepository::iterator i = m_new_config.find(key); KeyValueRepository::iterator j = m_config.find(key); bool ok = false; if (i != m_new_config.end ()) { m_new_config.erase (i); ok = true; } if (j != m_config.end ()) { m_config.erase (j); ok = true; } if (ok && std::find (m_erased_keys.begin (), m_erased_keys.end (), key) == m_erased_keys.end ()) m_erased_keys.push_back (key); m_need_reload = true; return ok; } bool SimpleConfig::reload () { if (!valid ()) return false; if (load_all_config ()) { m_new_config.clear (); m_erased_keys.clear (); m_need_reload = true; } if (m_need_reload) { m_need_reload = false; return ConfigBase::reload (); } return false; } String SimpleConfig::get_sysconf_dir () { return String (SCIM_SYSCONFDIR) + String (SCIM_PATH_DELIM_STRING) + String ("scim"); } String SimpleConfig::get_userconf_dir () { return scim_get_user_data_dir (); } String SimpleConfig::get_sysconf_filename () { return get_sysconf_dir () + String (SCIM_PATH_DELIM_STRING) + String ("config"); } String SimpleConfig::get_userconf_filename () { return get_userconf_dir () + String (SCIM_PATH_DELIM_STRING) + String ("config"); } String SimpleConfig::trim_blank (const String &str) { String::size_type begin, len; begin = str.find_first_not_of (" \t\n\v"); if (begin == String::npos) return String (); len = str.find_last_not_of (" \t\n\v") - begin + 1; return str.substr (begin, len); } String SimpleConfig::get_param_portion (const String &str) { String::size_type begin = str.find_first_of (" \t\n\v="); if (begin == String::npos) return str; return str.substr (0, begin); } String SimpleConfig::get_value_portion (const String &str) { String::size_type begin = str.find_first_of ("="); if (begin == String::npos || (begin + 1) == str.length ()) return String (""); return trim_blank (str.substr (begin + 1, String::npos)); } void SimpleConfig::parse_config (std::istream &is, KeyValueRepository &config) { char *conf_line = new char [SCIM_MAX_CONFIG_LINE_LENGTH]; while (!is.eof()) { is.getline(conf_line, SCIM_MAX_CONFIG_LINE_LENGTH); if (!is.eof()) { String normalized_line = trim_blank(conf_line); if ((normalized_line.find_first_of("#") > 0) && (normalized_line.length() != 0)) { if (normalized_line.find_first_of("=") == String::npos) { SCIM_DEBUG_CONFIG(2) << " Invalid config line : " << normalized_line << "\n"; continue; } if (normalized_line[0] == '=') { SCIM_DEBUG_CONFIG(2) << " Invalid config line : " << normalized_line << "\n"; continue; } String param = get_param_portion(normalized_line); KeyValueRepository::iterator i = config.find(param); if (i != config.end()) { SCIM_DEBUG_CONFIG(2) << " Config entry " << normalized_line << " has been read.\n"; } else { String value = get_value_portion (normalized_line); config [param] = value; SCIM_DEBUG_CONFIG(2) << " Config entry " << param << "=" << value << " is successfully read.\n"; } } } } delete [] conf_line; } void SimpleConfig::save_config (std::ostream &os) { KeyValueRepository::iterator i; for (i = m_config.begin (); i != m_config.end (); ++i) { os << i->first << " = " << i->second << "\n"; } } bool SimpleConfig::load_all_config () { String sysconf = get_sysconf_filename (); String userconf = get_userconf_filename (); KeyValueRepository config; if (userconf.length ()) { std::ifstream is (userconf.c_str ()); if (is) { SCIM_DEBUG_CONFIG(1) << "Parsing user config file: " << userconf << "\n"; parse_config (is, config); } } if (sysconf.length ()) { std::ifstream is (sysconf.c_str ()); if (is) { SCIM_DEBUG_CONFIG(1) << "Parsing system config file: " << sysconf << "\n"; parse_config (is, config); } } if (!m_config.size () || (m_update_timestamp.tv_sec == 0 && m_update_timestamp.tv_usec == 0)) { m_config.swap (config); gettimeofday (&m_update_timestamp, 0); return true; } KeyValueRepository::iterator it = config.find (String (SCIM_CONFIG_UPDATE_TIMESTAMP)); if (it != config.end ()) { std::vector strs; if (scim_split_string_list (strs, it->second, ':') == 2) { time_t sec = (time_t) strtol (strs [0].c_str (), 0, 10); suseconds_t usec = (suseconds_t) strtol (strs [1].c_str (), 0, 10); // The config file is newer, so load it. if (m_update_timestamp.tv_sec < sec || (m_update_timestamp.tv_sec == sec && m_update_timestamp.tv_usec < usec)) { m_config.swap (config); m_update_timestamp.tv_sec = (time_t) sec; m_update_timestamp.tv_usec = (suseconds_t) usec; return true; } } } return false; } void SimpleConfig::remove_key_from_erased_list (const String &key) { std::vector ::iterator it = std::find (m_erased_keys.begin (), m_erased_keys.end (), key); if (it != m_erased_keys.end ()) m_erased_keys.erase (it); } } // namespace scim /* vi:ts=4:nowrap:ai:expandtab */ scim-1.4.14/modules/Config/scim_simple_config.h000066400000000000000000000067131177210725600214320ustar00rootroot00000000000000/** @file scim_simple_config.h * definition of SimpleConfig class. */ /* * Smart Common Input Method * * Copyright (c) 2002-2005 James Su * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this program; if not, write to the * Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, MA 02111-1307 USA * * $Id: scim_simple_config.h,v 1.22 2005/07/06 03:57:04 suzhe Exp $ */ #if !defined (__SCIM_SIMPLE_CONFIG_H) #define __SCIM_SIMPLE_CONFIG_H #include #include "scim_stl_map.h" namespace scim { const int SCIM_MAX_CONFIG_LINE_LENGTH = 16384; class SimpleConfig : public ConfigBase { #if SCIM_USE_STL_EXT_HASH_MAP typedef __gnu_cxx::hash_map KeyValueRepository; #elif SCIM_USE_STL_HASH_MAP typedef std::hash_map KeyValueRepository; #else typedef std::map KeyValueRepository; #endif KeyValueRepository m_config; KeyValueRepository m_new_config; std::vector m_erased_keys; timeval m_update_timestamp; bool m_need_reload; public: SimpleConfig (); virtual ~SimpleConfig (); virtual bool valid () const; virtual String get_name () const; // String virtual bool read (const String& key, String *pStr) const; // int virtual bool read (const String& key, int *pl) const; // double virtual bool read (const String& key, double* val) const; // bool virtual bool read (const String& key, bool* val) const; //String list virtual bool read (const String& key, std::vector * val) const; //int list virtual bool read (const String& key, std::vector * val) const; // write the value (return true on success) virtual bool write (const String& key, const String& value); virtual bool write (const String& key, int value); virtual bool write (const String& key, double value); virtual bool write (const String& key, bool value); virtual bool write (const String& key, const std::vector & value); virtual bool write (const String& key, const std::vector & value); // permanently writes all changes virtual bool flush(); // delete entries virtual bool erase (const String& key ); // reload the configurations. virtual bool reload (); private: String get_sysconf_dir (); String get_userconf_dir (); String get_sysconf_filename (); String get_userconf_filename (); String trim_blank (const String &str); String get_param_portion (const String &str); String get_value_portion (const String &str); void parse_config (std::istream &is, KeyValueRepository &config); void save_config (std::ostream &os); bool load_all_config (); void remove_key_from_erased_list (const String &key); }; } // namespace scim #endif /* vi:ts=4:nowrap:ai:expandtab */ scim-1.4.14/modules/Config/scim_socket_config.cpp000066400000000000000000000426771177210725600217750ustar00rootroot00000000000000/** @file scim_socket_config.cpp * implementation of SocketConfig class. */ /* * Smart Common Input Method * * Copyright (c) 2002-2005 James Su * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this program; if not, write to the * Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, MA 02111-1307 USA * * $Id: scim_socket_config.cpp,v 1.23 2005/12/16 11:12:26 suzhe Exp $ */ #define Uses_SCIM_CONFIG_BASE #define Uses_SCIM_CONFIG_PATH #define Uses_SCIM_SOCKET #define Uses_SCIM_TRANSACTION #define Uses_C_STDIO #define Uses_C_STDLIB #include "scim_private.h" #include "scim.h" #include "scim_socket_config.h" #define scim_module_init socket_LTX_scim_module_init #define scim_module_exit socket_LTX_scim_module_exit #define scim_config_module_init socket_LTX_scim_config_module_init #define scim_config_module_create_config socket_LTX_scim_config_module_create_config using namespace scim; extern "C" { void scim_module_init (void) { SCIM_DEBUG_CONFIG(1) << "Initializing Socket Config module...\n"; } void scim_module_exit (void) { SCIM_DEBUG_CONFIG(1) << "Exiting Socket Config module...\n"; } void scim_config_module_init () { SCIM_DEBUG_CONFIG(1) << "Initializing Socket Config module (more)...\n"; } ConfigPointer scim_config_module_create_config () { SCIM_DEBUG_CONFIG(1) << "Creating a Socket Config instance...\n"; return new SocketConfig (); } } namespace scim { SocketConfig::SocketConfig () : m_valid (false), m_socket_address (scim_get_default_socket_config_address ()), m_socket_timeout (scim_get_default_socket_timeout ()), m_connected (false) { SCIM_DEBUG_CONFIG (2) << " Construct SocketConfig object.\n"; m_valid = open_connection (); } SocketConfig::~SocketConfig () { m_socket_client.close (); } bool SocketConfig::valid () const { return ConfigBase::valid() && m_valid; } String SocketConfig::get_name () const { return "socket"; } // String bool SocketConfig::read (const String& key, String *pStr) const { if (!valid () || !pStr || key.empty()) return false; if (!m_connected && !open_connection ()) return false; Transaction trans; int cmd; for (int retry = 0; retry < 3; ++retry) { init_transaction (trans); trans.put_command (SCIM_TRANS_CMD_GET_CONFIG_STRING); trans.put_data (key); if (trans.write_to_socket (m_socket_client) && trans.read_from_socket (m_socket_client, m_socket_timeout)) { if (trans.get_command (cmd) && cmd == SCIM_TRANS_CMD_REPLY && trans.get_data (*pStr) && trans.get_command (cmd) && cmd == SCIM_TRANS_CMD_OK) return true; break; } if (!open_connection ()) break; } *pStr = String (""); return false; } // int bool SocketConfig::read (const String& key, int *pl) const { if (!valid () || !pl || key.empty()) return false; if (!m_connected && !open_connection ()) return false; Transaction trans; int cmd; for (int retry = 0; retry < 3; ++retry) { init_transaction (trans); trans.put_command (SCIM_TRANS_CMD_GET_CONFIG_INT); trans.put_data (key); if (trans.write_to_socket (m_socket_client) && trans.read_from_socket (m_socket_client, m_socket_timeout)) { uint32 val; if (trans.get_command (cmd) && cmd == SCIM_TRANS_CMD_REPLY && trans.get_data (val) && trans.get_command (cmd) && cmd == SCIM_TRANS_CMD_OK) { *pl = val; return true; } break; } if (!open_connection ()) break; } *pl = 0; return false; } // double bool SocketConfig::read (const String& key, double* val) const { if (!valid () || !val || key.empty()) return false; if (!m_connected && !open_connection ()) return false; Transaction trans; int cmd; for (int retry = 0; retry < 3; ++retry) { init_transaction (trans); trans.put_command (SCIM_TRANS_CMD_GET_CONFIG_DOUBLE); trans.put_data (key); if (trans.write_to_socket (m_socket_client) && trans.read_from_socket (m_socket_client, m_socket_timeout)) { String str; if (trans.get_command (cmd) && cmd == SCIM_TRANS_CMD_REPLY && trans.get_data (str) && trans.get_command (cmd) && cmd == SCIM_TRANS_CMD_OK) { sscanf (str.c_str (), "%lE", val); return true; } break; } if (!open_connection ()) break; } *val = 0; return false; } // bool bool SocketConfig::read (const String& key, bool* val) const { if (!valid () || !val || key.empty()) return false; if (!m_connected && !open_connection ()) return false; Transaction trans; int cmd; for (int retry = 0; retry < 3; ++retry) { init_transaction (trans); trans.put_command (SCIM_TRANS_CMD_GET_CONFIG_BOOL); trans.put_data (key); if (trans.write_to_socket (m_socket_client) && trans.read_from_socket (m_socket_client, m_socket_timeout)) { uint32 tmp; if (trans.get_command (cmd) && cmd == SCIM_TRANS_CMD_REPLY && trans.get_data (tmp) && trans.get_command (cmd) && cmd == SCIM_TRANS_CMD_OK) { *val = (bool)tmp; return true; } break; } if (!open_connection ()) break; } *val = false; return false; } //String list bool SocketConfig::read (const String& key, std::vector * val) const { if (!valid () || !val || key.empty()) return false; if (!m_connected && !open_connection ()) return false; val->clear (); Transaction trans; int cmd; for (int retry = 0; retry < 3; ++retry) { init_transaction (trans); trans.put_command (SCIM_TRANS_CMD_GET_CONFIG_VECTOR_STRING); trans.put_data (key); if (trans.write_to_socket (m_socket_client) && trans.read_from_socket (m_socket_client, m_socket_timeout)) { if (trans.get_command (cmd) && cmd == SCIM_TRANS_CMD_REPLY && trans.get_data (*val) && trans.get_command (cmd) && cmd == SCIM_TRANS_CMD_OK) { return true; } break; } if (!open_connection ()) break; } return false; } //int list bool SocketConfig::read (const String& key, std::vector * val) const { if (!valid () || !val || key.empty()) return false; if (!m_connected && !open_connection ()) return false; val->clear(); Transaction trans; int cmd; for (int retry = 0; retry < 3; ++retry) { init_transaction (trans); trans.put_command (SCIM_TRANS_CMD_GET_CONFIG_VECTOR_INT); trans.put_data (key); if (trans.write_to_socket (m_socket_client) && trans.read_from_socket (m_socket_client, m_socket_timeout)) { std::vector vec; if (trans.get_command (cmd) && cmd == SCIM_TRANS_CMD_REPLY && trans.get_data (vec) && trans.get_command (cmd) && cmd == SCIM_TRANS_CMD_OK) { for (uint32 i=0; ipush_back ((int) vec[i]); return true; } break; } if (!open_connection ()) break; } return false; } // write the value (return true on success) bool SocketConfig::write (const String& key, const String& value) { if (!valid () || key.empty()) return false; if (!m_connected && !open_connection ()) return false; Transaction trans; int cmd; for (int retry = 0; retry < 3; ++retry) { init_transaction (trans); trans.put_command (SCIM_TRANS_CMD_SET_CONFIG_STRING); trans.put_data (key); trans.put_data (value); if (trans.write_to_socket (m_socket_client) && trans.read_from_socket (m_socket_client, m_socket_timeout)) { if (trans.get_command (cmd) && cmd == SCIM_TRANS_CMD_REPLY && trans.get_command (cmd) && cmd == SCIM_TRANS_CMD_OK) return true; break; } if (!open_connection ()) break; } return false; } bool SocketConfig::write (const String& key, int value) { if (!valid () || key.empty()) return false; if (!m_connected && !open_connection ()) return false; Transaction trans; int cmd; for (int retry = 0; retry < 3; ++retry) { init_transaction (trans); trans.put_command (SCIM_TRANS_CMD_SET_CONFIG_INT); trans.put_data (key); trans.put_data ((uint32)value); if (trans.write_to_socket (m_socket_client) && trans.read_from_socket (m_socket_client, m_socket_timeout)) { if (trans.get_command (cmd) && cmd == SCIM_TRANS_CMD_REPLY && trans.get_command (cmd) && cmd == SCIM_TRANS_CMD_OK) return true; break; } if (!open_connection ()) break; } return false; } bool SocketConfig::write (const String& key, double value) { if (!valid () || key.empty()) return false; if (!m_connected && !open_connection ()) return false; char buf [256]; snprintf (buf, 255, "%lE", value); Transaction trans; int cmd; for (int retry = 0; retry < 3; ++retry) { init_transaction (trans); trans.put_command (SCIM_TRANS_CMD_SET_CONFIG_DOUBLE); trans.put_data (key); trans.put_data (String (buf)); if (trans.write_to_socket (m_socket_client) && trans.read_from_socket (m_socket_client, m_socket_timeout)) { if (trans.get_command (cmd) && cmd == SCIM_TRANS_CMD_REPLY && trans.get_command (cmd) && cmd == SCIM_TRANS_CMD_OK) return true; break; } if (!open_connection ()) break; } return false; } bool SocketConfig::write (const String& key, bool value) { if (!valid () || key.empty()) return false; if (!m_connected && !open_connection ()) return false; Transaction trans; int cmd; for (int retry = 0; retry < 3; ++retry) { init_transaction (trans); trans.put_command (SCIM_TRANS_CMD_SET_CONFIG_BOOL); trans.put_data (key); trans.put_data ((uint32)value); if (trans.write_to_socket (m_socket_client) && trans.read_from_socket (m_socket_client, m_socket_timeout)) { if (trans.get_command (cmd) && cmd == SCIM_TRANS_CMD_REPLY && trans.get_command (cmd) && cmd == SCIM_TRANS_CMD_OK) return true; break; } if (!open_connection ()) break; } return false; } bool SocketConfig::write (const String& key, const std::vector & value) { if (!valid () || key.empty()) return false; if (!m_connected && !open_connection ()) return false; Transaction trans; int cmd; for (int retry = 0; retry < 3; ++retry) { init_transaction (trans); trans.put_command (SCIM_TRANS_CMD_SET_CONFIG_VECTOR_STRING); trans.put_data (key); trans.put_data (value); if (trans.write_to_socket (m_socket_client) && trans.read_from_socket (m_socket_client, m_socket_timeout)) { if (trans.get_command (cmd) && cmd == SCIM_TRANS_CMD_REPLY && trans.get_command (cmd) && cmd == SCIM_TRANS_CMD_OK) return true; break; } if (!open_connection ()) break; } return false; } bool SocketConfig::write (const String& key, const std::vector & value) { if (!valid () || key.empty()) return false; if (!m_connected && !open_connection ()) return false; std::vector vec; for (uint32 i=0; i strs; if (scim_split_string_list (strs, str, ':') == 2) { time_t sec = (time_t) strtol (strs [0].c_str (), 0, 10); suseconds_t usec = (suseconds_t) strtol (strs [1].c_str (), 0, 10); // The config file is newer, so load it. if (m_update_timestamp.tv_sec < sec || (m_update_timestamp.tv_sec == sec && m_update_timestamp.tv_usec < usec)) { m_update_timestamp.tv_sec = sec; m_update_timestamp.tv_usec = usec; return ConfigBase::reload (); } } } } break; } if (!open_connection ()) break; } return false; } void SocketConfig::init_transaction (Transaction &trans) const { trans.clear (); trans.put_command (SCIM_TRANS_CMD_REQUEST); trans.put_data (m_socket_magic_key); } bool SocketConfig::open_connection () const { SocketAddress socket_address (m_socket_address); m_connected = false; // Connect to SocketFrontEnd. if (!m_socket_client.connect (socket_address)) { SCIM_DEBUG_CONFIG (2) << " Cannot connect to SocketFrontEnd (" << m_socket_address << ").\n"; return false; } // Init the connection, if (!scim_socket_open_connection (m_socket_magic_key, String ("SocketConfig"), String ("SocketFrontEnd"), m_socket_client, m_socket_timeout)) { m_socket_client.close (); return false; } m_connected = true; gettimeofday (&m_update_timestamp, 0); return true; } } // namespace scim /* vi:ts=4:nowrap:ai:expandtab */ scim-1.4.14/modules/Config/scim_socket_config.h000066400000000000000000000054411177210725600214260ustar00rootroot00000000000000/** @file scim_socket_config.h * definition of SocketConfig class. */ /* * Smart Common Input Method * * Copyright (c) 2002-2005 James Su * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this program; if not, write to the * Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, MA 02111-1307 USA * * $Id: scim_socket_config.h,v 1.11 2005/07/06 03:57:04 suzhe Exp $ */ #if !defined (__SCIM_SOCKET_CONFIG_H) #define __SCIM_SOCKET_CONFIG_H #include namespace scim { class SocketConfig : public ConfigBase { String m_socket_address; int m_socket_timeout; bool m_valid; mutable SocketClient m_socket_client; mutable uint32 m_socket_magic_key; mutable bool m_connected; mutable timeval m_update_timestamp; public: SocketConfig (); virtual ~SocketConfig (); virtual bool valid () const; virtual String get_name () const; // String virtual bool read (const String& key, String *pStr) const; // int virtual bool read (const String& key, int *pl) const; // double virtual bool read (const String& key, double* val) const; // bool virtual bool read (const String& key, bool* val) const; //String list virtual bool read (const String& key, std::vector * val) const; //int list virtual bool read (const String& key, std::vector * val) const; // write the value (return true on success) virtual bool write (const String& key, const String& value); virtual bool write (const String& key, int value); virtual bool write (const String& key, double value); virtual bool write (const String& key, bool value); virtual bool write (const String& key, const std::vector & value); virtual bool write (const String& key, const std::vector & value); // permanently writes all changes virtual bool flush(); // delete entries virtual bool erase (const String& key ); // reload the configurations. virtual bool reload (); private: void init_transaction (Transaction &trans) const; bool open_connection () const; }; } // namespace scim #endif /* vi:ts=4:nowrap:ai:expandtab */ scim-1.4.14/modules/Filter/000077500000000000000000000000001177210725600154415ustar00rootroot00000000000000scim-1.4.14/modules/Filter/Makefile.am000066400000000000000000000034201177210725600174740ustar00rootroot00000000000000## Makefile.am -- Process this file with automake to produce Makefile.in ## Copyright (C) 2002 James Su ## ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2, or (at your option) ## any later version. ## ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. MAINTAINERCLEANFILES = Makefile.in CLEANFILES = *.bak INCLUDES = -I$(top_builddir) \ -I$(top_builddir)/src \ -I$(top_srcdir) \ -I$(top_srcdir)/src \ -I$(top_srcdir)/intl \ -I$(top_srcdir)/utils \ -DSCIM_DATADIR=\"@SCIM_DATADIR@\" \ -DSCIM_LOCALEDIR=\"@SCIM_LOCALEDIR@\" \ -DSCIM_SYSCONFDIR=\"@SCIM_SYSCONFDIR@\" \ -DSCIM_LIBEXECDIR=\"@SCIM_LIBEXECDIR@\" \ -DSCIM_ICONDIR=\"@SCIM_ICONDIR@\" \ -DSCIM_MODULE_PATH=\"@SCIM_MODULE_PATH@\" \ -DSCIM_TEMPDIR=\"@SCIM_TEMPDIR@\" if SCIM_BUILD_FILTER_SCTC CONFIG_FILTER_SCTC = sctc.la endif noinst_HEADERS = scim_sctc_filter.h \ scim_sctc_filter_data.h moduledir = $(libdir)/scim@SCIM_EPOCH@/$(SCIM_BINARY_VERSION)/Filter module_LTLIBRARIES = $(CONFIG_FILTER_SCTC) sctc_la_SOURCES = scim_sctc_filter.cpp sctc_la_LDFLAGS = -avoid-version \ -rpath $(moduledir) \ -module \ @LIBTOOL_EXPORT_OPTIONS@ \ @LTLIBINTL@ sctc_la_LIBADD = $(top_builddir)/src/libscim@SCIM_EPOCH@.la scim-1.4.14/modules/Filter/Makefile.in000066400000000000000000000542621177210725600175170ustar00rootroot00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = modules/Filter DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(moduledir)" LTLIBRARIES = $(module_LTLIBRARIES) sctc_la_DEPENDENCIES = $(top_builddir)/src/libscim@SCIM_EPOCH@.la am_sctc_la_OBJECTS = scim_sctc_filter.lo sctc_la_OBJECTS = $(am_sctc_la_OBJECTS) sctc_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(sctc_la_LDFLAGS) $(LDFLAGS) -o $@ @SCIM_BUILD_FILTER_SCTC_TRUE@am_sctc_la_rpath = -rpath $(moduledir) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(sctc_la_SOURCES) DIST_SOURCES = $(sctc_la_SOURCES) HEADERS = $(noinst_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ ARGZ_H = @ARGZ_H@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CLUTTER_BINARY_VERSION = @CLUTTER_BINARY_VERSION@ CLUTTER_CFLAGS = @CLUTTER_CFLAGS@ CLUTTER_IMCONTEXT_LIBDIR = @CLUTTER_IMCONTEXT_LIBDIR@ CLUTTER_IM_MODULEDIR = @CLUTTER_IM_MODULEDIR@ CLUTTER_LIBDIR = @CLUTTER_LIBDIR@ CLUTTER_LIBS = @CLUTTER_LIBS@ CLUTTER_VERSION = @CLUTTER_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOCBOOK_XSL = @DOCBOOK_XSL@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@ GTHREAD2_LIBS = @GTHREAD2_LIBS@ GTK2_CFLAGS = @GTK2_CFLAGS@ GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@ GTK2_LIBS = @GTK2_LIBS@ GTK3_CFLAGS = @GTK3_CFLAGS@ GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@ GTK3_LIBS = @GTK3_LIBS@ GTK_BINARY_VERSION = @GTK_BINARY_VERSION@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBDIR = @GTK_LIBDIR@ GTK_LIBS = @GTK_LIBS@ GTK_MAJOR_VERSION = @GTK_MAJOR_VERSION@ GTK_VERSION = @GTK_VERSION@ HAVE_GRAPHVIZ = @HAVE_GRAPHVIZ@ INCLTDL = @INCLTDL@ INCLUDE_STDINT = @INCLUDE_STDINT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBLTDL = @LIBLTDL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_DEPS = @LIBTOOL_DEPS@ LIBTOOL_EXPORT_OPTIONS = @LIBTOOL_EXPORT_OPTIONS@ LIPO = @LIPO@ LN_S = @LN_S@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ QT3_CFLAGS = @QT3_CFLAGS@ QT3_IM_MODULEDIR = @QT3_IM_MODULEDIR@ QT3_LIBDIR = @QT3_LIBDIR@ QT3_LIBS = @QT3_LIBS@ QT3_MOC = @QT3_MOC@ QT3_PREFIX = @QT3_PREFIX@ QT4_CFLAGS = @QT4_CFLAGS@ QT4_IM_MODULEDIR = @QT4_IM_MODULEDIR@ QT4_LIBDIR = @QT4_LIBDIR@ QT4_LIBS = @QT4_LIBS@ QT4_MOC = @QT4_MOC@ QT4_PREFIX = @QT4_PREFIX@ RANLIB = @RANLIB@ SCIM_AGE = @SCIM_AGE@ SCIM_BINARY_VERSION = @SCIM_BINARY_VERSION@ SCIM_BRIDGE_MAJOR_VERSION = @SCIM_BRIDGE_MAJOR_VERSION@ SCIM_BRIDGE_MICRO_VERSION = @SCIM_BRIDGE_MICRO_VERSION@ SCIM_BRIDGE_MINOR_VERSION = @SCIM_BRIDGE_MINOR_VERSION@ SCIM_BRIDGE_VERSION = @SCIM_BRIDGE_VERSION@ SCIM_BUILD_CLUTTER_IMMODULE = @SCIM_BUILD_CLUTTER_IMMODULE@ SCIM_BUILD_CONFIG_SIMPLE = @SCIM_BUILD_CONFIG_SIMPLE@ SCIM_BUILD_CONFIG_SOCKET = @SCIM_BUILD_CONFIG_SOCKET@ SCIM_BUILD_DOCUMENTS = @SCIM_BUILD_DOCUMENTS@ SCIM_BUILD_FILTER_SCTC = @SCIM_BUILD_FILTER_SCTC@ SCIM_BUILD_FRONTEND_SOCKET = @SCIM_BUILD_FRONTEND_SOCKET@ SCIM_BUILD_FRONTEND_X11 = @SCIM_BUILD_FRONTEND_X11@ SCIM_BUILD_GTK2_IMMODULE = @SCIM_BUILD_GTK2_IMMODULE@ SCIM_BUILD_GTK3_IMMODULE = @SCIM_BUILD_GTK3_IMMODULE@ SCIM_BUILD_GTK_UTILS = @SCIM_BUILD_GTK_UTILS@ SCIM_BUILD_IMENGINE_RAWCODE = @SCIM_BUILD_IMENGINE_RAWCODE@ SCIM_BUILD_IMENGINE_SOCKET = @SCIM_BUILD_IMENGINE_SOCKET@ SCIM_BUILD_IMENGINE_TABLE = @SCIM_BUILD_IMENGINE_TABLE@ SCIM_BUILD_IMMODULE = @SCIM_BUILD_IMMODULE@ SCIM_BUILD_IM_AGENT = @SCIM_BUILD_IM_AGENT@ SCIM_BUILD_ORIG_GTK2_IMMODULE = @SCIM_BUILD_ORIG_GTK2_IMMODULE@ SCIM_BUILD_ORIG_GTK3_IMMODULE = @SCIM_BUILD_ORIG_GTK3_IMMODULE@ SCIM_BUILD_PANEL_GTK = @SCIM_BUILD_PANEL_GTK@ SCIM_BUILD_QT3_IMMODULE = @SCIM_BUILD_QT3_IMMODULE@ SCIM_BUILD_QT4_IMMODULE = @SCIM_BUILD_QT4_IMMODULE@ SCIM_BUILD_SCIM_SETUP = @SCIM_BUILD_SCIM_SETUP@ SCIM_BUILD_TESTS = @SCIM_BUILD_TESTS@ SCIM_BUILD_X11_UTILS = @SCIM_BUILD_X11_UTILS@ SCIM_CURRENT = @SCIM_CURRENT@ SCIM_DATADIR = @SCIM_DATADIR@ SCIM_EPOCH = @SCIM_EPOCH@ SCIM_ICONDIR = @SCIM_ICONDIR@ SCIM_LIBDIR = @SCIM_LIBDIR@ SCIM_LIBEXECDIR = @SCIM_LIBEXECDIR@ SCIM_LOCALEDIR = @SCIM_LOCALEDIR@ SCIM_LTDLADVISE = @SCIM_LTDLADVISE@ SCIM_MAJOR_VERSION = @SCIM_MAJOR_VERSION@ SCIM_MICRO_VERSION = @SCIM_MICRO_VERSION@ SCIM_MINOR_VERSION = @SCIM_MINOR_VERSION@ SCIM_MODULE_PATH = @SCIM_MODULE_PATH@ SCIM_PREFIX = @SCIM_PREFIX@ SCIM_REVISION = @SCIM_REVISION@ SCIM_SYSCONFDIR = @SCIM_SYSCONFDIR@ SCIM_TEMPDIR = @SCIM_TEMPDIR@ SCIM_VERSION = @SCIM_VERSION@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UINT16 = @UINT16@ UINT32 = @UINT32@ UINT64 = @UINT64@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XMKMF = @XMKMF@ XSLTPROC = @XSLTPROC@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_aux_dir = @ac_aux_dir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ MAINTAINERCLEANFILES = Makefile.in CLEANFILES = *.bak INCLUDES = -I$(top_builddir) \ -I$(top_builddir)/src \ -I$(top_srcdir) \ -I$(top_srcdir)/src \ -I$(top_srcdir)/intl \ -I$(top_srcdir)/utils \ -DSCIM_DATADIR=\"@SCIM_DATADIR@\" \ -DSCIM_LOCALEDIR=\"@SCIM_LOCALEDIR@\" \ -DSCIM_SYSCONFDIR=\"@SCIM_SYSCONFDIR@\" \ -DSCIM_LIBEXECDIR=\"@SCIM_LIBEXECDIR@\" \ -DSCIM_ICONDIR=\"@SCIM_ICONDIR@\" \ -DSCIM_MODULE_PATH=\"@SCIM_MODULE_PATH@\" \ -DSCIM_TEMPDIR=\"@SCIM_TEMPDIR@\" @SCIM_BUILD_FILTER_SCTC_TRUE@CONFIG_FILTER_SCTC = sctc.la noinst_HEADERS = scim_sctc_filter.h \ scim_sctc_filter_data.h moduledir = $(libdir)/scim@SCIM_EPOCH@/$(SCIM_BINARY_VERSION)/Filter module_LTLIBRARIES = $(CONFIG_FILTER_SCTC) sctc_la_SOURCES = scim_sctc_filter.cpp sctc_la_LDFLAGS = -avoid-version \ -rpath $(moduledir) \ -module \ @LIBTOOL_EXPORT_OPTIONS@ \ @LTLIBINTL@ sctc_la_LIBADD = $(top_builddir)/src/libscim@SCIM_EPOCH@.la all: all-am .SUFFIXES: .SUFFIXES: .cpp .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu modules/Filter/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu modules/Filter/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-moduleLTLIBRARIES: $(module_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(moduledir)" || $(MKDIR_P) "$(DESTDIR)$(moduledir)" @list='$(module_LTLIBRARIES)'; test -n "$(moduledir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(moduledir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(moduledir)"; \ } uninstall-moduleLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(module_LTLIBRARIES)'; test -n "$(moduledir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(moduledir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(moduledir)/$$f"; \ done clean-moduleLTLIBRARIES: -test -z "$(module_LTLIBRARIES)" || rm -f $(module_LTLIBRARIES) @list='$(module_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done sctc.la: $(sctc_la_OBJECTS) $(sctc_la_DEPENDENCIES) $(sctc_la_LINK) $(am_sctc_la_rpath) $(sctc_la_OBJECTS) $(sctc_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim_sctc_filter.Plo@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cpp.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cpp.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: for dir in "$(DESTDIR)$(moduledir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic clean-libtool clean-moduleLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-moduleLTLIBRARIES install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-moduleLTLIBRARIES .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-moduleLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-moduleLTLIBRARIES install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-moduleLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: scim-1.4.14/modules/Filter/scim_sctc_filter.cpp000066400000000000000000000502371177210725600214700ustar00rootroot00000000000000/** @file scim_sctc_filter.cpp */ /* * Smart Common Input Method * * Copyright (c) 2005 James Su * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this program; if not, write to the * Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, MA 02111-1307 USA * * $Id: scim_sctc_filter.cpp,v 1.7.2.1 2006/01/09 13:37:25 suzhe Exp $ * */ #define Uses_SCIM_FILTER #define Uses_SCIM_FILTER_MODULE #define Uses_SCIM_CONFIG_BASE #include "scim_private.h" #include "scim.h" #include "scim_stl_map.h" #include "scim_sctc_filter.h" #include "scim_sctc_filter_data.h" #define scim_module_init sctc_LTX_scim_module_init #define scim_module_exit sctc_LTX_scim_module_exit #define scim_filter_module_init sctc_LTX_scim_filter_module_init #define scim_filter_module_create_filter sctc_LTX_scim_filter_module_create_filter #define scim_filter_module_get_filter_info sctc_LTX_scim_filter_module_get_filter_info using namespace scim; // Private datatype definition. #if SCIM_USE_STL_EXT_HASH_MAP typedef __gnu_cxx::hash_map > UUMap; #elif SCIM_USE_STL_HASH_MAP typedef std::hash_map > UUMap; #else typedef std::map UUMap; #endif // Private data definition. static FilterInfo __filter_info (String ("adb861a9-76da-454c-941b-1957e644a94e"), String (_("Simplified-Traditional Chinese Conversion")), String ("zh_CN,zh_TW,zh_SG,zh_HK"), String (SCIM_ICONDIR "/sctc.png"), String (_("Convert between Simplified Chinese and Traditional Chinese"))); static std::vector __sc_encodings; static std::vector __tc_encodings; static UUMap __sc_to_tc_map; static UUMap __tc_to_sc_map; static bool __sc_to_tc_initialized = false; static bool __tc_to_sc_initialized = false; static Property __prop_root (String ("/Filter/SCTC"), String (_("SC-TC")), String (SCIM_ICONDIR "/sctc.png"), String (_("Simplified-Traditional Chinese conversion"))); static Property __prop_off (String ("/Filter/SCTC/Off"), String (_("No Conversion")), String (SCIM_ICONDIR "/sctc.png"), String (_("Simplified-Traditional Chinese conversion"))); static Property __prop_sc_to_tc (String ("/Filter/SCTC/SC-TC"), String (_("Simplified to Traditional")), String (SCIM_ICONDIR "/sctc-sc-to-tc.png"), String (_("Convert Simplified Chinese to Traditional Chinese"))); static Property __prop_tc_to_sc (String ("/Filter/SCTC/TC-SC"), String (_("Traditional to Simplified")), String (SCIM_ICONDIR "/sctc-tc-to-sc.png"), String (_("Convert Traditional Chinese to Simplified Chinese"))); //Private functions definition. static void __init_sc_to_tc (); static void __init_tc_to_sc (); static bool __is_sc_encoding (const String &encoding); static bool __is_tc_encoding (const String &encoding); static WideString __sc_to_tc (const WideString &sc); static WideString __tc_to_sc (const WideString &tc); //Module Interface extern "C" { void scim_module_init (void) { //Initialize encoding information. __sc_encodings.push_back ("GB2312"); __sc_encodings.push_back ("GBK"); __sc_encodings.push_back ("GB18030"); __sc_encodings.push_back ("EUC-CN"); __tc_encodings.push_back ("BIG5"); __tc_encodings.push_back ("BIG5-HKSCS"); __tc_encodings.push_back ("EUC-TW"); } void scim_module_exit (void) { } unsigned int scim_filter_module_init (const ConfigPointer &config) { return 1; } FilterFactoryPointer scim_filter_module_create_filter (unsigned int index) { if (index == 0) return new SCTCFilterFactory (); return FilterFactoryPointer (0); } bool scim_filter_module_get_filter_info (unsigned int index, FilterInfo &info) { if (index == 0) { info = __filter_info; return true; } return false; } } //Implementation of private functions static void __init_sc_to_tc () { if (__sc_to_tc_initialized) return; __sc_to_tc_map.clear (); for (size_t i = 0; __sc_to_tc_table [i].first; ++i) __sc_to_tc_map [__sc_to_tc_table [i].first] = __sc_to_tc_table [i].second; __sc_to_tc_initialized = true; } static void __init_tc_to_sc () { if (__tc_to_sc_initialized) return; __tc_to_sc_map.clear (); for (size_t i = 0; __tc_to_sc_table [i].first; ++i) __tc_to_sc_map [__tc_to_sc_table [i].first] = __tc_to_sc_table [i].second; __tc_to_sc_initialized = true; } static WideString __sc_to_tc (const WideString &sc) { WideString tc; if (!__sc_to_tc_initialized) __init_sc_to_tc (); UUMap::const_iterator mapit; WideString::const_iterator sit; for (sit = sc.begin (); sit != sc.end (); ++sit) { if (*sit <= 0xFFFF) { mapit = __sc_to_tc_map.find ((unsigned short) (*sit)); if (mapit != __sc_to_tc_map.end ()) { tc.push_back (static_cast (mapit->second)); } else { tc.push_back (*sit); } } else { tc.push_back (*sit); } } return tc; } static WideString __tc_to_sc (const WideString &tc) { WideString sc; if (!__tc_to_sc_initialized) __init_tc_to_sc (); UUMap::const_iterator mapit; WideString::const_iterator sit; for (sit = tc.begin (); sit != tc.end (); ++sit) { if (*sit <= 0xFFFF) { mapit = __tc_to_sc_map.find ((unsigned short) (*sit)); if (mapit != __tc_to_sc_map.end ()) { sc.push_back (static_cast (mapit->second)); } else { sc.push_back (*sit); } } else { sc.push_back (*sit); } } return sc; } static bool __is_sc_encoding (const String &encoding) { return std::find (__sc_encodings.begin (), __sc_encodings.end (), encoding) != __sc_encodings.end (); } static bool __is_tc_encoding (const String &encoding) { return std::find (__tc_encodings.begin (), __tc_encodings.end (), encoding) != __tc_encodings.end (); } //Implementation of SCTCFilterFactory. SCTCFilterFactory::SCTCFilterFactory () : m_sc_ok(false), m_tc_ok(false) { } void SCTCFilterFactory::attach_imengine_factory (const IMEngineFactoryPointer &orig) { size_t i; FilterFactoryBase::attach_imengine_factory (orig); for (i = 0; i < __sc_encodings.size (); ++i) { if (orig->validate_encoding (__sc_encodings [i])) { m_sc_ok = true; if (orig->validate_encoding ("GB18030")) m_sc_encoding = "GB18030"; else m_sc_encoding = __sc_encodings [i]; break; } } for (i = 0; i < __tc_encodings.size (); ++i) { if (orig->validate_encoding (__tc_encodings [i])) { m_tc_ok = true; if (orig->validate_encoding ("BIG5")) m_tc_encoding = "BIG5"; else m_tc_encoding = __tc_encodings [i]; break; } } if (m_sc_ok || m_tc_ok) { String locales = orig->get_locales (); locales = locales + String (",") + scim_get_language_locales ("zh_CN"); locales = locales + String (",") + scim_get_language_locales ("zh_TW"); locales = locales + String (",") + scim_get_language_locales ("zh_SG"); locales = locales + String (",") + scim_get_language_locales ("zh_HK"); set_locales (locales); } } WideString SCTCFilterFactory::get_name () const { WideString name = FilterFactoryBase::get_name (); return name.length () ? name : utf8_mbstowcs (__filter_info.name); } String SCTCFilterFactory::get_uuid () const { String uuid = FilterFactoryBase::get_uuid (); return uuid.length () ? uuid : __filter_info.uuid; } String SCTCFilterFactory::get_icon_file () const { String icon = FilterFactoryBase::get_icon_file (); return icon.length () ? icon : __filter_info.icon; } WideString SCTCFilterFactory::get_authors () const { WideString authors = FilterFactoryBase::get_authors (); return authors.length () ? authors : utf8_mbstowcs (_("James Su ")); } WideString SCTCFilterFactory::get_help () const { // No help yet. WideString help = FilterFactoryBase::get_help (); return help; } bool SCTCFilterFactory::validate_encoding (const String& encoding) const { // Bypass the original IMEngineFactory. return IMEngineFactoryBase::validate_encoding (encoding); } bool SCTCFilterFactory::validate_locale (const String& locale) const { // Bypass the original IMEngineFactory. return IMEngineFactoryBase::validate_locale (locale); } IMEngineInstancePointer SCTCFilterFactory::create_instance (const String& encoding, int id) { if (m_sc_ok || m_tc_ok) { SCTCWorkMode mode = SCTC_MODE_OFF; String orig_encoding = encoding; // If the original IMEngineFactory doesn't support this encoding, // then we must use another encoding to create the original IMEngineInstance. // It means we must use a conversion mode. if (!FilterFactoryBase::validate_encoding (encoding)) { // The client encoding is Simplified Chinese encoding, but is not supported by the IMEngine. // So use Traditional Chinese encoding instead. if (__is_sc_encoding (encoding)) { if (FilterFactoryBase::validate_encoding (m_sc_encoding)) { orig_encoding = m_sc_encoding; } else { orig_encoding = m_tc_encoding; mode = SCTC_MODE_FORCE_TC_TO_SC; } } else if (__is_tc_encoding (encoding)) { if (FilterFactoryBase::validate_encoding (m_tc_encoding)) { orig_encoding = m_tc_encoding; } else { orig_encoding = m_sc_encoding; mode = SCTC_MODE_FORCE_SC_TO_TC; } } } else if ((__is_sc_encoding (encoding) && !FilterFactoryBase::validate_encoding (m_tc_encoding)) || (__is_tc_encoding (encoding) && !FilterFactoryBase::validate_encoding (m_sc_encoding))) { mode = SCTC_MODE_FORCE_OFF; } return new SCTCFilterInstance (this, mode, encoding, FilterFactoryBase::create_instance (orig_encoding, id)); } return FilterFactoryBase::create_instance (encoding, id); } //Implementation of SCTCFilterInstance SCTCFilterInstance::SCTCFilterInstance (SCTCFilterFactory *factory, const SCTCWorkMode &mode, const String &client_encoding, const IMEngineInstancePointer &orig_inst) : FilterInstanceBase (factory, orig_inst), m_factory (factory), m_props_registered (false), m_work_mode (mode) { IMEngineInstanceBase::set_encoding (client_encoding); } bool SCTCFilterInstance::set_encoding (const String &encoding) { if (m_work_mode == SCTC_MODE_SC_TO_TC || m_work_mode == SCTC_MODE_FORCE_SC_TO_TC) { if (__is_tc_encoding (encoding)) FilterInstanceBase::set_encoding (m_factory->m_sc_encoding); } else if (m_work_mode == SCTC_MODE_TC_TO_SC || m_work_mode == SCTC_MODE_FORCE_TC_TO_SC) { if (__is_sc_encoding (encoding)) FilterInstanceBase::set_encoding (m_factory->m_tc_encoding); } else { FilterInstanceBase::set_encoding (encoding); } reset (); return IMEngineInstanceBase::set_encoding (encoding); } void SCTCFilterInstance::focus_in () { m_props_registered = false; FilterInstanceBase::focus_in (); if (!m_props_registered) { PropertyList props; filter_register_properties (props); } } void SCTCFilterInstance::trigger_property (const String &property) { if (property != __prop_off.get_key () && property != __prop_sc_to_tc.get_key () && property != __prop_tc_to_sc.get_key ()) { FilterInstanceBase::trigger_property (property); return; } if (m_work_mode == SCTC_MODE_FORCE_SC_TO_TC || m_work_mode == SCTC_MODE_FORCE_TC_TO_SC || m_work_mode == SCTC_MODE_FORCE_OFF) return; Property prop = __prop_root; bool changed = false; if (property == __prop_off.get_key () && (m_work_mode == SCTC_MODE_SC_TO_TC || m_work_mode == SCTC_MODE_TC_TO_SC)) { m_work_mode = SCTC_MODE_OFF; changed = true; } else if (property == __prop_sc_to_tc.get_key () && m_factory->m_sc_ok && !__is_sc_encoding (get_encoding ()) && (m_work_mode == SCTC_MODE_OFF || m_work_mode == SCTC_MODE_TC_TO_SC)) { m_work_mode = SCTC_MODE_SC_TO_TC; prop.set_icon (__prop_sc_to_tc.get_icon ()); prop.set_label (_("SC->TC")); changed = true; } else if (property == __prop_tc_to_sc.get_key () && m_factory->m_tc_ok && !__is_tc_encoding (get_encoding ()) && (m_work_mode == SCTC_MODE_OFF || m_work_mode == SCTC_MODE_SC_TO_TC)) { m_work_mode = SCTC_MODE_TC_TO_SC; prop.set_icon (__prop_tc_to_sc.get_icon ()); prop.set_label (_("TC->SC")); changed = true; } if (changed) { set_encoding (get_encoding ()); update_property (prop); } } void SCTCFilterInstance::filter_update_preedit_string (const WideString &str, const AttributeList &attrs) { WideString nstr = str; if (m_work_mode == SCTC_MODE_SC_TO_TC || m_work_mode == SCTC_MODE_FORCE_SC_TO_TC) nstr = __sc_to_tc (str); if (m_work_mode == SCTC_MODE_TC_TO_SC || m_work_mode == SCTC_MODE_FORCE_TC_TO_SC) nstr = __tc_to_sc (str); update_preedit_string (nstr, attrs); } void SCTCFilterInstance::filter_update_aux_string (const WideString &str, const AttributeList &attrs) { WideString nstr = str; if (m_work_mode == SCTC_MODE_SC_TO_TC || m_work_mode == SCTC_MODE_FORCE_SC_TO_TC) nstr = __sc_to_tc (str); if (m_work_mode == SCTC_MODE_TC_TO_SC || m_work_mode == SCTC_MODE_FORCE_TC_TO_SC) nstr = __tc_to_sc (str); update_aux_string (nstr, attrs); } void SCTCFilterInstance::filter_update_lookup_table (const LookupTable &table) { if (m_work_mode == SCTC_MODE_OFF) { update_lookup_table (table); } else { CommonLookupTable ntable; std::vector labels; size_t i; // Can be paged up. if (table.get_current_page_start ()) ntable.append_candidate (0x3400); if (m_work_mode == SCTC_MODE_SC_TO_TC || m_work_mode == SCTC_MODE_FORCE_SC_TO_TC) { for (i = 0; i < table.get_current_page_size (); ++i) { ntable.append_candidate (__sc_to_tc (table.get_candidate_in_current_page (i)), table.get_attributes_in_current_page (i)); labels.push_back (__sc_to_tc (table.get_candidate_label (i))); } } else { for (i = 0; i < table.get_current_page_size (); ++i) { ntable.append_candidate (__tc_to_sc (table.get_candidate_in_current_page (i)), table.get_attributes_in_current_page (i)); labels.push_back (__tc_to_sc (table.get_candidate_label (i))); } } if (table.get_current_page_start () + table.get_current_page_size () < table.number_of_candidates ()) ntable.append_candidate (0x3400); if (table.get_current_page_start ()) { ntable.set_page_size (1); ntable.page_down (); } ntable.set_page_size (table.get_current_page_size ()); ntable.set_cursor_pos_in_current_page (table.get_cursor_pos_in_current_page ()); ntable.show_cursor (table.is_cursor_visible ()); ntable.fix_page_size (table.is_page_size_fixed ()); ntable.set_candidate_labels (labels); update_lookup_table (ntable); } } void SCTCFilterInstance::filter_commit_string (const WideString &str) { WideString nstr = str; if (m_work_mode == SCTC_MODE_SC_TO_TC || m_work_mode == SCTC_MODE_FORCE_SC_TO_TC) nstr = __sc_to_tc (str); if (m_work_mode == SCTC_MODE_TC_TO_SC || m_work_mode == SCTC_MODE_FORCE_TC_TO_SC) nstr = __tc_to_sc (str); commit_string (nstr); } void SCTCFilterInstance::filter_register_properties (const PropertyList &properties) { PropertyList props; if (m_work_mode == SCTC_MODE_SC_TO_TC || m_work_mode == SCTC_MODE_FORCE_SC_TO_TC) { for (size_t i = 0; i < properties.size (); ++i) { Property prop = properties [i]; prop.set_label (utf8_wcstombs (__sc_to_tc (utf8_mbstowcs (prop.get_label ())))); prop.set_tip (utf8_wcstombs (__sc_to_tc (utf8_mbstowcs (prop.get_tip ())))); props.push_back (prop); } } else if (m_work_mode == SCTC_MODE_TC_TO_SC || m_work_mode == SCTC_MODE_FORCE_TC_TO_SC) { for (size_t i = 0; i < properties.size (); ++i) { Property prop = properties [i]; prop.set_label (utf8_wcstombs (__tc_to_sc (utf8_mbstowcs (prop.get_label ())))); prop.set_tip (utf8_wcstombs (__tc_to_sc (utf8_mbstowcs (prop.get_tip ())))); props.push_back (prop); } } else { props = properties; } if (m_work_mode == SCTC_MODE_OFF || m_work_mode == SCTC_MODE_SC_TO_TC || m_work_mode == SCTC_MODE_TC_TO_SC) { Property root = __prop_root; if (m_work_mode == SCTC_MODE_SC_TO_TC) { root.set_icon (__prop_sc_to_tc.get_icon ()); root.set_tip (__prop_sc_to_tc.get_tip ()); root.set_label (_("SC->TC")); } else if (m_work_mode == SCTC_MODE_TC_TO_SC) { root.set_icon (__prop_tc_to_sc.get_icon ()); root.set_tip (__prop_tc_to_sc.get_tip ()); root.set_label (_("TC->SC")); } props.push_back (root); props.push_back (__prop_off); if (!__is_sc_encoding (get_encoding ()) && m_factory->m_sc_ok) props.push_back (__prop_sc_to_tc); if (!__is_tc_encoding (get_encoding ()) && m_factory->m_tc_ok) props.push_back (__prop_tc_to_sc); } else if (m_work_mode == SCTC_MODE_FORCE_SC_TO_TC) { Property root = __prop_sc_to_tc; root.set_label (_("SC->TC")); props.push_back (root); } else if (m_work_mode == SCTC_MODE_FORCE_TC_TO_SC) { Property root = __prop_tc_to_sc; root.set_label (_("TC->SC")); props.push_back (root); } register_properties (props); m_props_registered = true; } void SCTCFilterInstance::filter_update_property (const Property &property) { Property prop = property; if (m_work_mode == SCTC_MODE_SC_TO_TC || m_work_mode == SCTC_MODE_FORCE_SC_TO_TC) { prop.set_label (utf8_wcstombs (__sc_to_tc (utf8_mbstowcs (prop.get_label ())))); prop.set_tip (utf8_wcstombs (__sc_to_tc (utf8_mbstowcs (prop.get_tip ())))); } else if (m_work_mode == SCTC_MODE_TC_TO_SC || m_work_mode == SCTC_MODE_FORCE_TC_TO_SC) { prop.set_label (utf8_wcstombs (__tc_to_sc (utf8_mbstowcs (prop.get_label ())))); prop.set_tip (utf8_wcstombs (__tc_to_sc (utf8_mbstowcs (prop.get_tip ())))); } update_property (prop); } /* vi:ts=4:nowrap:ai:expandtab */ scim-1.4.14/modules/Filter/scim_sctc_filter.h000066400000000000000000000063401177210725600211310ustar00rootroot00000000000000/** @file scim_sctc_filter.h * definition of SCTCFilter (Simplified Chinese <-> Traditional Chinese Filter) related classes. */ /* * Smart Common Input Method * * Copyright (c) 2005 James Su * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this program; if not, write to the * Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, MA 02111-1307 USA * * $Id: scim_sctc_filter.h,v 1.2 2005/05/17 14:56:39 suzhe Exp $ */ #if !defined (__SCIM_SCTC_FILTER_H) #define __SCIM_SCTC_FILTER_H using namespace scim; enum SCTCWorkMode { SCTC_MODE_OFF = 0, SCTC_MODE_SC_TO_TC, SCTC_MODE_TC_TO_SC, SCTC_MODE_FORCE_OFF, SCTC_MODE_FORCE_SC_TO_TC, SCTC_MODE_FORCE_TC_TO_SC }; class SCTCFilterFactory : public FilterFactoryBase { bool m_sc_ok; String m_sc_encoding; bool m_tc_ok; String m_tc_encoding; friend class SCTCFilterInstance; public: SCTCFilterFactory (); virtual void attach_imengine_factory (const IMEngineFactoryPointer &orig); virtual WideString get_name () const; virtual String get_uuid () const; virtual String get_icon_file () const; virtual WideString get_authors () const; virtual WideString get_help () const; virtual bool validate_encoding (const String& encoding) const; virtual bool validate_locale (const String& locale) const; virtual IMEngineInstancePointer create_instance (const String& encoding, int id = -1); }; class SCTCFilterInstance : public FilterInstanceBase { SCTCFilterFactory *m_factory; bool m_props_registered; SCTCWorkMode m_work_mode; public: SCTCFilterInstance (SCTCFilterFactory *factory, const SCTCWorkMode &mode, const String &client_encoding, const IMEngineInstancePointer &orig_inst); virtual bool set_encoding (const String &encoding); public: virtual void focus_in (); virtual void trigger_property (const String &property); protected: virtual void filter_update_preedit_string (const WideString &str, const AttributeList &attrs = AttributeList ()); virtual void filter_update_aux_string (const WideString &str, const AttributeList &attrs = AttributeList ()); virtual void filter_update_lookup_table (const LookupTable &table); virtual void filter_commit_string (const WideString &str); virtual void filter_register_properties (const PropertyList &properties); virtual void filter_update_property (const Property &property); }; #endif /* vi:ts=4:nowrap:ai:expandtab */ scim-1.4.14/modules/Filter/scim_sctc_filter_data.h000066400000000000000000003047711177210725600221330ustar00rootroot00000000000000/** @file scim_sctc_filter_data.h */ /* * Smart Common Input Method * * Copyright (c) 2005 James Su * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this program; if not, write to the * Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, MA 02111-1307 USA * * $Id: scim_sctc_filter_data.h,v 1.1 2005/05/16 05:22:49 suzhe Exp $ */ #if !defined (__SCIM_SCTC_FILTER_DATA_H) #define __SCIM_SCTC_FILTER_DATA_H struct UShortPair { unsigned short first; unsigned short second; }; static UShortPair __sc_to_tc_table [] = { { 0x00a8, 0x2025 },{ 0x2015, 0x2500 },{ 0x2016, 0x2225 },{ 0x2033, 0x301e }, { 0x220f, 0x03a0 },{ 0x2211, 0x03a3 },{ 0x2227, 0xfe3f },{ 0x2228, 0xfe40 }, { 0x2236, 0xfe30 },{ 0x2248, 0x2252 },{ 0x2264, 0x2266 },{ 0x2265, 0x2267 }, { 0x2501, 0x2500 },{ 0x2503, 0x2502 },{ 0x250f, 0x250c },{ 0x2513, 0x2510 }, { 0x2517, 0x2514 },{ 0x251b, 0x2518 },{ 0x2523, 0x251c },{ 0x252b, 0x2524 }, { 0x2533, 0x252c },{ 0x253b, 0x2534 },{ 0x254b, 0x253c },{ 0x30fb, 0x00b7 }, { 0x4e07, 0x842c },{ 0x4e0e, 0x8207 },{ 0x4e11, 0x919c },{ 0x4e13, 0x5c08 }, { 0x4e1a, 0x696d },{ 0x4e1b, 0x53e2 },{ 0x4e1c, 0x6771 },{ 0x4e1d, 0x7d72 }, { 0x4e22, 0x4e1f },{ 0x4e24, 0x5169 },{ 0x4e25, 0x56b4 },{ 0x4e27, 0x55aa }, { 0x4e2a, 0x500b },{ 0x4e2c, 0x723f },{ 0x4e30, 0x8c50 },{ 0x4e34, 0x81e8 }, { 0x4e3a, 0x70ba },{ 0x4e3d, 0x9e97 },{ 0x4e3e, 0x8209 },{ 0x4e48, 0x9ebc }, { 0x4e49, 0x7fa9 },{ 0x4e4c, 0x70cf },{ 0x4e50, 0x6a02 },{ 0x4e54, 0x55ac }, { 0x4e60, 0x7fd2 },{ 0x4e61, 0x9109 },{ 0x4e66, 0x66f8 },{ 0x4e70, 0x8cb7 }, { 0x4e71, 0x4e82 },{ 0x4e89, 0x722d },{ 0x4e8f, 0x8667 },{ 0x4e91, 0x96f2 }, { 0x4e98, 0x4e99 },{ 0x4e9a, 0x4e9e },{ 0x4ea7, 0x7522 },{ 0x4ea9, 0x755d }, { 0x4eb2, 0x89aa },{ 0x4eb5, 0x893b },{ 0x4ebb, 0x4eba },{ 0x4ebf, 0x5104 }, { 0x4ec5, 0x50c5 },{ 0x4ec6, 0x50d5 },{ 0x4ece, 0x5f9e },{ 0x4ed1, 0x4f96 }, { 0x4ed3, 0x5009 },{ 0x4eea, 0x5100 },{ 0x4eec, 0x5011 },{ 0x4ef7, 0x50f9 }, { 0x4f17, 0x773e },{ 0x4f18, 0x512a },{ 0x4f1a, 0x6703 },{ 0x4f1b, 0x50b4 }, { 0x4f1e, 0x5098 },{ 0x4f1f, 0x5049 },{ 0x4f20, 0x50b3 },{ 0x4f24, 0x50b7 }, { 0x4f25, 0x5000 },{ 0x4f26, 0x502b },{ 0x4f27, 0x5096 },{ 0x4f2a, 0x507d }, { 0x4f2b, 0x4f47 },{ 0x4f32, 0x4f60 },{ 0x4f53, 0x9ad4 },{ 0x4f59, 0x9918 }, { 0x4f63, 0x50ad },{ 0x4f65, 0x50c9 },{ 0x4f84, 0x59ea },{ 0x4fa0, 0x4fe0 }, { 0x4fa3, 0x4fb6 },{ 0x4fa5, 0x50e5 },{ 0x4fa6, 0x5075 },{ 0x4fa7, 0x5074 }, { 0x4fa8, 0x50d1 },{ 0x4fa9, 0x5108 },{ 0x4faa, 0x5115 },{ 0x4fac, 0x5102 }, { 0x4fe3, 0x4fc1 },{ 0x4fe6, 0x5114 },{ 0x4fe8, 0x513c },{ 0x4fe9, 0x5006 }, { 0x4fea, 0x5137 },{ 0x4fed, 0x5109 },{ 0x502e, 0x88f8 },{ 0x503a, 0x50b5 }, { 0x503e, 0x50be },{ 0x506c, 0x50af },{ 0x507b, 0x50c2 },{ 0x507e, 0x50e8 }, { 0x507f, 0x511f },{ 0x50a5, 0x513b },{ 0x50a7, 0x5110 },{ 0x50a8, 0x5132 }, { 0x50a9, 0x513a },{ 0x513f, 0x5152 },{ 0x5151, 0x514c },{ 0x5156, 0x5157 }, { 0x515a, 0x9ee8 },{ 0x5170, 0x862d },{ 0x5173, 0x95dc },{ 0x5174, 0x8208 }, { 0x5179, 0x8332 },{ 0x517b, 0x990a },{ 0x517d, 0x7378 },{ 0x5181, 0x56c5 }, { 0x5185, 0x5167 },{ 0x5188, 0x5ca1 },{ 0x518c, 0x518a },{ 0x5199, 0x5beb }, { 0x519b, 0x8ecd },{ 0x519c, 0x8fb2 },{ 0x51a2, 0x585a },{ 0x51af, 0x99ae }, { 0x51b2, 0x885d },{ 0x51b3, 0x6c7a },{ 0x51b5, 0x6cc1 },{ 0x51bb, 0x51cd }, { 0x51c0, 0x6de8 },{ 0x51c4, 0x6dd2 },{ 0x51c6, 0x6e96 },{ 0x51c7, 0x6dde }, { 0x51c9, 0x6dbc },{ 0x51cf, 0x6e1b },{ 0x51d1, 0x6e4a },{ 0x51db, 0x51dc }, { 0x51e0, 0x5e7e },{ 0x51e4, 0x9cf3 },{ 0x51eb, 0x9ce7 },{ 0x51ed, 0x6191 }, { 0x51ef, 0x51f1 },{ 0x51f6, 0x5147 },{ 0x51fb, 0x64ca },{ 0x51fc, 0x5e7d }, { 0x51ff, 0x947f },{ 0x5202, 0x5200 },{ 0x520d, 0x82bb },{ 0x5212, 0x5283 }, { 0x5218, 0x5289 },{ 0x5219, 0x5247 },{ 0x521a, 0x525b },{ 0x521b, 0x5275 }, { 0x5220, 0x522a },{ 0x522b, 0x5225 },{ 0x522d, 0x5244 },{ 0x5239, 0x524e }, { 0x523d, 0x528a },{ 0x523f, 0x528c },{ 0x5240, 0x5274 },{ 0x5242, 0x5291 }, { 0x5250, 0x526e },{ 0x5251, 0x528d },{ 0x5265, 0x525d },{ 0x5267, 0x5287 }, { 0x527f, 0x52e6 },{ 0x529d, 0x52f8 },{ 0x529e, 0x8fa6 },{ 0x52a1, 0x52d9 }, { 0x52a2, 0x52f1 },{ 0x52a8, 0x52d5 },{ 0x52b1, 0x52f5 },{ 0x52b2, 0x52c1 }, { 0x52b3, 0x52de },{ 0x52bf, 0x52e2 },{ 0x52cb, 0x52f3 },{ 0x52d6, 0x52d7 }, { 0x5300, 0x52fb },{ 0x5326, 0x532d },{ 0x532e, 0x5331 },{ 0x533a, 0x5340 }, { 0x533b, 0x91ab },{ 0x534e, 0x83ef },{ 0x534f, 0x5354 },{ 0x5355, 0x55ae }, { 0x5356, 0x8ce3 },{ 0x5360, 0x4f54 },{ 0x5362, 0x76e7 },{ 0x5364, 0x6ef7 }, { 0x5367, 0x81e5 },{ 0x5369, 0x90e8 },{ 0x536b, 0x885b },{ 0x5374, 0x537b }, { 0x537a, 0x5df9 },{ 0x5382, 0x5ee0 },{ 0x5385, 0x5ef3 },{ 0x5386, 0x6b77 }, { 0x5389, 0x53b2 },{ 0x538b, 0x58d3 },{ 0x538c, 0x53ad },{ 0x538d, 0x5399 }, { 0x5395, 0x5ec1 },{ 0x5398, 0x91d0 },{ 0x53a2, 0x5ec2 },{ 0x53a3, 0x53b4 }, { 0x53a6, 0x5ec8 },{ 0x53a8, 0x5eda },{ 0x53a9, 0x5ec4 },{ 0x53ae, 0x5edd }, { 0x53b6, 0x79c1 },{ 0x53bf, 0x7e23 },{ 0x53c1, 0x53c3 },{ 0x53c2, 0x53c3 }, { 0x53cc, 0x96d9 },{ 0x53d1, 0x767c },{ 0x53d8, 0x8b8a },{ 0x53d9, 0x6558 }, { 0x53e0, 0x758a },{ 0x53f6, 0x8449 },{ 0x53f7, 0x865f },{ 0x53f9, 0x5606 }, { 0x53fd, 0x5630 },{ 0x5401, 0x7c72 },{ 0x540e, 0x5f8c },{ 0x5413, 0x5687 }, { 0x5415, 0x5442 },{ 0x5417, 0x55ce },{ 0x5428, 0x5678 },{ 0x542c, 0x807d }, { 0x542f, 0x555f },{ 0x5434, 0x5433 },{ 0x5450, 0x5436 },{ 0x5452, 0x5638 }, { 0x5453, 0x56c8 },{ 0x5455, 0x5614 },{ 0x5456, 0x56a6 },{ 0x5457, 0x5504 }, { 0x5458, 0x54e1 },{ 0x5459, 0x54bc },{ 0x545b, 0x55c6 },{ 0x545c, 0x55da }, { 0x5468, 0x9031 },{ 0x548f, 0x8a60 },{ 0x5499, 0x56a8 },{ 0x549b, 0x5680 }, { 0x54b8, 0x9e79 },{ 0x54cc, 0x5471 },{ 0x54cd, 0x97ff },{ 0x54d1, 0x555e }, { 0x54d2, 0x5660 },{ 0x54d3, 0x5635 },{ 0x54d4, 0x55f6 },{ 0x54d5, 0x5666 }, { 0x54d7, 0x5629 },{ 0x54d9, 0x5672 },{ 0x54dc, 0x568c },{ 0x54dd, 0x5665 }, { 0x54df, 0x55b2 },{ 0x551b, 0x561c },{ 0x5520, 0x562e },{ 0x5522, 0x55e9 }, { 0x5524, 0x559a },{ 0x5567, 0x5616 },{ 0x556c, 0x55c7 },{ 0x556d, 0x56c0 }, { 0x556e, 0x56d3 },{ 0x5578, 0x562f },{ 0x55b7, 0x5674 },{ 0x55bd, 0x560d }, { 0x55be, 0x56b3 },{ 0x55eb, 0x56c1 },{ 0x55ec, 0x5475 },{ 0x55f3, 0x566f }, { 0x5618, 0x5653 },{ 0x5624, 0x56b6 },{ 0x5631, 0x56d1 },{ 0x565c, 0x5695 }, { 0x56a3, 0x56c2 },{ 0x56e2, 0x5718 },{ 0x56ed, 0x5712 },{ 0x56f1, 0x56ea }, { 0x56f4, 0x570d },{ 0x56f5, 0x5707 },{ 0x56fd, 0x570b },{ 0x56fe, 0x5716 }, { 0x5706, 0x5713 },{ 0x5723, 0x8056 },{ 0x5739, 0x58d9 },{ 0x573a, 0x5834 }, { 0x5742, 0x962a },{ 0x574f, 0x58de },{ 0x5757, 0x584a },{ 0x575a, 0x5805 }, { 0x575b, 0x58c7 },{ 0x575c, 0x58e2 },{ 0x575d, 0x58e9 },{ 0x575e, 0x5862 }, { 0x575f, 0x58b3 },{ 0x5760, 0x589c },{ 0x5784, 0x58df },{ 0x5785, 0x58df }, { 0x5786, 0x58da },{ 0x5792, 0x58d8 },{ 0x57a6, 0x58be },{ 0x57a9, 0x580a }, { 0x57ab, 0x588a },{ 0x57ad, 0x57e1 },{ 0x57b2, 0x584f },{ 0x57d8, 0x5852 }, { 0x57d9, 0x58ce },{ 0x57da, 0x581d },{ 0x5811, 0x5879 },{ 0x5815, 0x58ae }, { 0x5892, 0x5891 },{ 0x5899, 0x7246 },{ 0x58ee, 0x58ef },{ 0x58f0, 0x8072 }, { 0x58f3, 0x6bbc },{ 0x58f6, 0x58fa },{ 0x5904, 0x8655 },{ 0x5907, 0x5099 }, { 0x590d, 0x5fa9 },{ 0x591f, 0x5920 },{ 0x5934, 0x982d },{ 0x5938, 0x8a87 }, { 0x5939, 0x593e },{ 0x593a, 0x596a },{ 0x5941, 0x5969 },{ 0x5942, 0x5950 }, { 0x594b, 0x596e },{ 0x5956, 0x734e },{ 0x5965, 0x5967 },{ 0x5986, 0x599d }, { 0x5987, 0x5a66 },{ 0x5988, 0x5abd },{ 0x59a9, 0x5af5 },{ 0x59aa, 0x5ad7 }, { 0x59ab, 0x5aaf },{ 0x59d7, 0x59cd },{ 0x5a04, 0x5a41 },{ 0x5a05, 0x5a6d }, { 0x5a06, 0x5b08 },{ 0x5a07, 0x5b0c },{ 0x5a08, 0x5b4c },{ 0x5a31, 0x5a1b }, { 0x5a32, 0x5aa7 },{ 0x5a34, 0x5afb },{ 0x5a74, 0x5b30 },{ 0x5a75, 0x5b0b }, { 0x5a76, 0x5b38 },{ 0x5aaa, 0x5abc },{ 0x5ad2, 0x5b21 },{ 0x5ad4, 0x5b2a }, { 0x5af1, 0x5b19 },{ 0x5b37, 0x5b24 },{ 0x5b59, 0x5b6b },{ 0x5b66, 0x5b78 }, { 0x5b6a, 0x5b7f },{ 0x5b81, 0x5be7 },{ 0x5b9d, 0x5bf6 },{ 0x5b9e, 0x5be6 }, { 0x5ba0, 0x5bf5 },{ 0x5ba1, 0x5be9 },{ 0x5baa, 0x61b2 },{ 0x5bab, 0x5bae }, { 0x5bbd, 0x5bec },{ 0x5bbe, 0x8cd3 },{ 0x5bdd, 0x5be2 },{ 0x5bf9, 0x5c0d }, { 0x5bfb, 0x5c0b },{ 0x5bfc, 0x5c0e },{ 0x5bff, 0x58fd },{ 0x5c06, 0x5c07 }, { 0x5c14, 0x723e },{ 0x5c18, 0x5875 },{ 0x5c1c, 0x560e },{ 0x5c1d, 0x5617 }, { 0x5c27, 0x582f },{ 0x5c34, 0x5c37 },{ 0x5c38, 0x5c4d },{ 0x5c3d, 0x76e1 }, { 0x5c42, 0x5c64 },{ 0x5c49, 0x5c5c },{ 0x5c4a, 0x5c46 },{ 0x5c5e, 0x5c6c }, { 0x5c61, 0x5c62 },{ 0x5c66, 0x5c68 },{ 0x5c7f, 0x5dbc },{ 0x5c81, 0x6b72 }, { 0x5c82, 0x8c48 },{ 0x5c96, 0x5d87 },{ 0x5c97, 0x5d17 },{ 0x5c98, 0x5cf4 }, { 0x5c9a, 0x5d50 },{ 0x5c9b, 0x5cf6 },{ 0x5cad, 0x5dba },{ 0x5cbd, 0x5d20 }, { 0x5cbf, 0x5dcb },{ 0x5cc4, 0x5da7 },{ 0x5ce1, 0x5cfd },{ 0x5ce4, 0x5da0 }, { 0x5ce5, 0x5d22 },{ 0x5ce6, 0x5dd2 },{ 0x5d02, 0x5d97 },{ 0x5d03, 0x5d0d }, { 0x5d2d, 0x5d84 },{ 0x5d58, 0x5db8 },{ 0x5d5b, 0x5d33 },{ 0x5d5d, 0x5d81 }, { 0x5dc5, 0x5dd4 },{ 0x5de9, 0x978f },{ 0x5def, 0x5df0 },{ 0x5e01, 0x5e63 }, { 0x5e05, 0x5e25 },{ 0x5e08, 0x5e2b },{ 0x5e0f, 0x5e43 },{ 0x5e10, 0x5e33 }, { 0x5e18, 0x7c3e },{ 0x5e1c, 0x5e5f },{ 0x5e26, 0x5e36 },{ 0x5e27, 0x5e40 }, { 0x5e2e, 0x5e6b },{ 0x5e31, 0x5e6c },{ 0x5e3b, 0x5e58 },{ 0x5e3c, 0x5e57 }, { 0x5e42, 0x51aa },{ 0x5e72, 0x5e79 },{ 0x5e76, 0x4e26 },{ 0x5e7a, 0x4e48 }, { 0x5e7f, 0x5ee3 },{ 0x5e84, 0x838a },{ 0x5e86, 0x6176 },{ 0x5e90, 0x5eec }, { 0x5e91, 0x5ee1 },{ 0x5e93, 0x5eab },{ 0x5e94, 0x61c9 },{ 0x5e99, 0x5edf }, { 0x5e9e, 0x9f90 },{ 0x5e9f, 0x5ee2 },{ 0x5eea, 0x5ee9 },{ 0x5f00, 0x958b }, { 0x5f02, 0x7570 },{ 0x5f03, 0x68c4 },{ 0x5f11, 0x5f12 },{ 0x5f20, 0x5f35 }, { 0x5f25, 0x5f4c },{ 0x5f2a, 0x5f33 },{ 0x5f2f, 0x5f4e },{ 0x5f39, 0x5f48 }, { 0x5f3a, 0x5f37 },{ 0x5f52, 0x6b78 },{ 0x5f53, 0x7576 },{ 0x5f55, 0x9304 }, { 0x5f66, 0x5f65 },{ 0x5f7b, 0x5fb9 },{ 0x5f84, 0x5f91 },{ 0x5f95, 0x5fa0 }, { 0x5fa1, 0x79a6 },{ 0x5fc4, 0x5fc3 },{ 0x5fc6, 0x61b6 },{ 0x5fcf, 0x61fa }, { 0x5fe7, 0x6182 },{ 0x5ffe, 0x613e },{ 0x6000, 0x61f7 },{ 0x6001, 0x614b }, { 0x6002, 0x616b },{ 0x6003, 0x61ae },{ 0x6004, 0x616a },{ 0x6005, 0x60b5 }, { 0x6006, 0x6134 },{ 0x601c, 0x6190 },{ 0x603b, 0x7e3d },{ 0x603c, 0x61df }, { 0x603f, 0x61cc },{ 0x604b, 0x6200 },{ 0x6052, 0x6046 },{ 0x6073, 0x61c7 }, { 0x6076, 0x60e1 },{ 0x6078, 0x615f },{ 0x6079, 0x61e8 },{ 0x607a, 0x6137 }, { 0x607b, 0x60fb },{ 0x607c, 0x60f1 },{ 0x607d, 0x60f2 },{ 0x60a6, 0x6085 }, { 0x60ab, 0x6128 },{ 0x60ac, 0x61f8 },{ 0x60ad, 0x6173 },{ 0x60af, 0x61ab }, { 0x60ca, 0x9a5a },{ 0x60e7, 0x61fc },{ 0x60e8, 0x6158 },{ 0x60e9, 0x61f2 }, { 0x60eb, 0x618a },{ 0x60ec, 0x611c },{ 0x60ed, 0x615a },{ 0x60ee, 0x619a }, { 0x60ef, 0x6163 },{ 0x6120, 0x614d },{ 0x6124, 0x61a4 },{ 0x6126, 0x6192 }, { 0x613f, 0x9858 },{ 0x6151, 0x61fe },{ 0x61d1, 0x61e3 },{ 0x61d2, 0x61f6 }, { 0x61d4, 0x61cd },{ 0x6206, 0x6207 },{ 0x620b, 0x6214 },{ 0x620f, 0x6232 }, { 0x6217, 0x6227 },{ 0x6218, 0x6230 },{ 0x622c, 0x6229 },{ 0x6237, 0x6236 }, { 0x624c, 0x624b },{ 0x6251, 0x64b2 },{ 0x6258, 0x8a17 },{ 0x6267, 0x57f7 }, { 0x6269, 0x64f4 },{ 0x626a, 0x636b },{ 0x626b, 0x6383 },{ 0x626c, 0x63da }, { 0x6270, 0x64fe },{ 0x629a, 0x64ab },{ 0x629b, 0x62cb },{ 0x629f, 0x6476 }, { 0x62a0, 0x6473 },{ 0x62a1, 0x6384 },{ 0x62a2, 0x6436 },{ 0x62a4, 0x8b77 }, { 0x62a5, 0x5831 },{ 0x62c5, 0x64d4 },{ 0x62df, 0x64ec },{ 0x62e2, 0x650f }, { 0x62e3, 0x63c0 },{ 0x62e5, 0x64c1 },{ 0x62e6, 0x6514 },{ 0x62e7, 0x64f0 }, { 0x62e8, 0x64a5 },{ 0x62e9, 0x64c7 },{ 0x6302, 0x639b },{ 0x631a, 0x646f }, { 0x631b, 0x6523 },{ 0x631d, 0x64be },{ 0x631e, 0x64bb },{ 0x631f, 0x633e }, { 0x6320, 0x6493 },{ 0x6321, 0x64cb },{ 0x6322, 0x649f },{ 0x6323, 0x6399 }, { 0x6324, 0x64e0 },{ 0x6325, 0x63ee },{ 0x6342, 0x6440 },{ 0x635e, 0x6488 }, { 0x635f, 0x640d },{ 0x6361, 0x64bf },{ 0x6362, 0x63db },{ 0x6363, 0x6417 }, { 0x636e, 0x64da },{ 0x63b3, 0x64c4 },{ 0x63b4, 0x6451 },{ 0x63b7, 0x64f2 }, { 0x63b8, 0x64a2 },{ 0x63ba, 0x647b },{ 0x63bc, 0x645c },{ 0x63fd, 0x652c }, { 0x63ff, 0x64b3 },{ 0x6400, 0x6519 },{ 0x6401, 0x64f1 },{ 0x6402, 0x645f }, { 0x6405, 0x652a },{ 0x643a, 0x651c },{ 0x6444, 0x651d },{ 0x6445, 0x6504 }, { 0x6446, 0x64fa },{ 0x6447, 0x6416 },{ 0x6448, 0x64ef },{ 0x644a, 0x6524 }, { 0x6484, 0x6516 },{ 0x6491, 0x6490 },{ 0x64b5, 0x6506 },{ 0x64b7, 0x64f7 }, { 0x64b8, 0x64fc },{ 0x64ba, 0x651b },{ 0x64c0, 0x641f },{ 0x64de, 0x64fb }, { 0x6512, 0x6522 },{ 0x6534, 0x64b2 },{ 0x654c, 0x6575 },{ 0x655b, 0x6582 }, { 0x6570, 0x6578 },{ 0x658b, 0x9f4b },{ 0x6593, 0x6595 },{ 0x6597, 0x9b25 }, { 0x65a9, 0x65ac },{ 0x65ad, 0x65b7 },{ 0x65e0, 0x7121 },{ 0x65e7, 0x820a }, { 0x65f6, 0x6642 },{ 0x65f7, 0x66e0 },{ 0x6619, 0x66c7 },{ 0x6635, 0x66b1 }, { 0x663c, 0x665d },{ 0x663e, 0x986f },{ 0x664b, 0x6649 },{ 0x6652, 0x66ec }, { 0x6653, 0x66c9 },{ 0x6654, 0x66c4 },{ 0x6655, 0x6688 },{ 0x6656, 0x6689 }, { 0x6682, 0x66ab },{ 0x66a7, 0x66d6 },{ 0x6710, 0x80ca },{ 0x672f, 0x8853 }, { 0x6734, 0x6a38 },{ 0x673a, 0x6a5f },{ 0x6740, 0x6bba },{ 0x6742, 0x96dc }, { 0x6743, 0x6b0a },{ 0x6746, 0x687f },{ 0x6760, 0x69d3 },{ 0x6761, 0x689d }, { 0x6765, 0x4f86 },{ 0x6768, 0x694a },{ 0x6769, 0x69aa },{ 0x6770, 0x5091 }, { 0x677e, 0x9b06 },{ 0x6781, 0x6975 },{ 0x6784, 0x69cb },{ 0x679e, 0x6a05 }, { 0x67a2, 0x6a1e },{ 0x67a3, 0x68d7 },{ 0x67a5, 0x6aea },{ 0x67a8, 0x68d6 }, { 0x67aa, 0x69cd },{ 0x67ab, 0x6953 },{ 0x67ad, 0x689f },{ 0x67dc, 0x6ac3 }, { 0x67e0, 0x6ab8 },{ 0x67fd, 0x6a89 },{ 0x6800, 0x6894 },{ 0x6805, 0x67f5 }, { 0x6807, 0x6a19 },{ 0x6808, 0x68e7 },{ 0x6809, 0x6adb },{ 0x680a, 0x6af3 }, { 0x680b, 0x68df },{ 0x680c, 0x6ae8 },{ 0x680e, 0x6adf },{ 0x680f, 0x6b04 }, { 0x6811, 0x6a39 },{ 0x6816, 0x68f2 },{ 0x6837, 0x6a23 },{ 0x683e, 0x6b12 }, { 0x6860, 0x690f },{ 0x6861, 0x6a48 },{ 0x6862, 0x6968 },{ 0x6863, 0x6a94 }, { 0x6864, 0x69bf },{ 0x6865, 0x6a4b },{ 0x6866, 0x6a3a },{ 0x6867, 0x6a9c }, { 0x6868, 0x69f3 },{ 0x6869, 0x6a01 },{ 0x68a6, 0x5922 },{ 0x68c0, 0x6aa2 }, { 0x68c2, 0x6afa },{ 0x68f0, 0x7ba0 },{ 0x68f1, 0x7a1c },{ 0x6901, 0x69e8 }, { 0x691f, 0x6add },{ 0x6920, 0x69e7 },{ 0x6924, 0x6b0f },{ 0x692d, 0x6a62 }, { 0x697c, 0x6a13 },{ 0x6984, 0x6b16 },{ 0x6987, 0x6aec },{ 0x6988, 0x6ada }, { 0x6989, 0x6af8 },{ 0x6998, 0x77e9 },{ 0x69db, 0x6abb },{ 0x69df, 0x6ab3 }, { 0x69e0, 0x6ae7 },{ 0x6a2a, 0x6a6b },{ 0x6a2f, 0x6aa3 },{ 0x6a31, 0x6afb }, { 0x6a65, 0x6aeb },{ 0x6a71, 0x6ae5 },{ 0x6a79, 0x6ad3 },{ 0x6a7c, 0x6ade }, { 0x6a90, 0x7c37 },{ 0x6aa9, 0x6a81 },{ 0x6b22, 0x6b61 },{ 0x6b24, 0x6b5f }, { 0x6b27, 0x6b50 },{ 0x6b7c, 0x6bb2 },{ 0x6b81, 0x6b7f },{ 0x6b87, 0x6ba4 }, { 0x6b8b, 0x6b98 },{ 0x6b92, 0x6b9e },{ 0x6b93, 0x6bae },{ 0x6b9a, 0x6bab }, { 0x6ba1, 0x6baf },{ 0x6bb4, 0x6bc6 },{ 0x6bc1, 0x6bc0 },{ 0x6bc2, 0x8f42 }, { 0x6bd5, 0x7562 },{ 0x6bd9, 0x6583 },{ 0x6be1, 0x6c08 },{ 0x6bf5, 0x6bff }, { 0x6c07, 0x6c0c },{ 0x6c14, 0x6c23 },{ 0x6c22, 0x6c2b },{ 0x6c29, 0x6c2c }, { 0x6c32, 0x6c33 },{ 0x6c35, 0x6c34 },{ 0x6c3d, 0x6c46 },{ 0x6c47, 0x532f }, { 0x6c49, 0x6f22 },{ 0x6c64, 0x6e6f },{ 0x6c79, 0x6d36 },{ 0x6c9f, 0x6e9d }, { 0x6ca1, 0x6c92 },{ 0x6ca3, 0x7043 },{ 0x6ca4, 0x6f1a },{ 0x6ca5, 0x701d }, { 0x6ca6, 0x6dea },{ 0x6ca7, 0x6ec4 },{ 0x6ca9, 0x6e88 },{ 0x6caa, 0x6eec }, { 0x6cb2, 0x6cb1 },{ 0x6cc4, 0x6d29 },{ 0x6cde, 0x6fd8 },{ 0x6cea, 0x6dda }, { 0x6cf6, 0x6fa9 },{ 0x6cf7, 0x7027 },{ 0x6cf8, 0x7018 },{ 0x6cfa, 0x6ffc }, { 0x6cfb, 0x7009 },{ 0x6cfc, 0x6f51 },{ 0x6cfd, 0x6fa4 },{ 0x6cfe, 0x6d87 }, { 0x6d01, 0x6f54 },{ 0x6d12, 0x7051 },{ 0x6d3c, 0x7aaa },{ 0x6d43, 0x6d79 }, { 0x6d45, 0x6dfa },{ 0x6d46, 0x6f3f },{ 0x6d47, 0x6f86 },{ 0x6d48, 0x6e5e }, { 0x6d4a, 0x6fc1 },{ 0x6d4b, 0x6e2c },{ 0x6d4d, 0x6fae },{ 0x6d4e, 0x6fdf }, { 0x6d4f, 0x700f },{ 0x6d51, 0x6e3e },{ 0x6d52, 0x6ef8 },{ 0x6d53, 0x6fc3 }, { 0x6d54, 0x6f6f },{ 0x6d5c, 0x6ff1 },{ 0x6d82, 0x5857 },{ 0x6d8c, 0x6e67 }, { 0x6d9b, 0x6fe4 },{ 0x6d9d, 0x6f87 },{ 0x6d9e, 0x6df6 },{ 0x6d9f, 0x6f23 }, { 0x6da0, 0x6f7f },{ 0x6da1, 0x6e26 },{ 0x6da3, 0x6e19 },{ 0x6da4, 0x6ecc }, { 0x6da6, 0x6f64 },{ 0x6da7, 0x6f97 },{ 0x6da8, 0x6f32 },{ 0x6da9, 0x6f80 }, { 0x6dc0, 0x6fb1 },{ 0x6e0a, 0x6df5 },{ 0x6e0c, 0x6de5 },{ 0x6e0d, 0x6f2c }, { 0x6e0e, 0x7006 },{ 0x6e10, 0x6f38 },{ 0x6e11, 0x6fa0 },{ 0x6e14, 0x6f01 }, { 0x6e16, 0x700b },{ 0x6e17, 0x6ef2 },{ 0x6e29, 0x6eab },{ 0x6e38, 0x904a }, { 0x6e7e, 0x7063 },{ 0x6e7f, 0x6fd5 },{ 0x6e83, 0x6f70 },{ 0x6e85, 0x6ffa }, { 0x6e86, 0x6f35 },{ 0x6ed7, 0x6f77 },{ 0x6eda, 0x6efe },{ 0x6ede, 0x6eef }, { 0x6edf, 0x7069 },{ 0x6ee0, 0x7044 },{ 0x6ee1, 0x6eff },{ 0x6ee2, 0x7005 }, { 0x6ee4, 0x6ffe },{ 0x6ee5, 0x6feb },{ 0x6ee6, 0x7064 },{ 0x6ee8, 0x6ff1 }, { 0x6ee9, 0x7058 },{ 0x6f46, 0x7020 },{ 0x6f47, 0x701f },{ 0x6f4b, 0x7032 }, { 0x6f4d, 0x6ff0 },{ 0x6f5c, 0x6f5b },{ 0x6f74, 0x7026 },{ 0x6f9c, 0x703e }, { 0x6fd1, 0x7028 },{ 0x6fd2, 0x7015 },{ 0x704f, 0x705d },{ 0x706c, 0x706b }, { 0x706d, 0x6ec5 },{ 0x706f, 0x71c8 },{ 0x7075, 0x9748 },{ 0x707e, 0x707d }, { 0x707f, 0x71e6 },{ 0x7080, 0x716c },{ 0x7089, 0x7210 },{ 0x7096, 0x71c9 }, { 0x709c, 0x7152 },{ 0x709d, 0x7197 },{ 0x70ae, 0x7832 },{ 0x70b9, 0x9ede }, { 0x70bc, 0x934a },{ 0x70bd, 0x71be },{ 0x70c1, 0x720d },{ 0x70c2, 0x721b }, { 0x70c3, 0x70f4 },{ 0x70db, 0x71ed },{ 0x70df, 0x7159 },{ 0x70e6, 0x7169 }, { 0x70e7, 0x71d2 },{ 0x70e8, 0x71c1 },{ 0x70e9, 0x71f4 },{ 0x70eb, 0x71d9 }, { 0x70ec, 0x71fc },{ 0x70ed, 0x71b1 },{ 0x7115, 0x7165 },{ 0x7116, 0x71dc }, { 0x7118, 0x71fe },{ 0x7130, 0x71c4 },{ 0x7145, 0x935b },{ 0x718f, 0x71fb }, { 0x7231, 0x611b },{ 0x7237, 0x723a },{ 0x724d, 0x7258 },{ 0x7266, 0x729b }, { 0x7275, 0x727d },{ 0x727a, 0x72a7 },{ 0x728a, 0x72a2 },{ 0x72ad, 0x72ac }, { 0x72b6, 0x72c0 },{ 0x72b7, 0x7377 },{ 0x72b9, 0x7336 },{ 0x72c8, 0x72fd }, { 0x72de, 0x7370 },{ 0x72ec, 0x7368 },{ 0x72ed, 0x72f9 },{ 0x72ee, 0x7345 }, { 0x72ef, 0x736a },{ 0x72f0, 0x7319 },{ 0x72f1, 0x7344 },{ 0x72f2, 0x733b }, { 0x7303, 0x736b },{ 0x730e, 0x7375 },{ 0x7315, 0x737c },{ 0x7321, 0x7380 }, { 0x732a, 0x8c6c },{ 0x732b, 0x8c93 },{ 0x732c, 0x875f },{ 0x732e, 0x737b }, { 0x736d, 0x737a },{ 0x7391, 0x74a3 },{ 0x739b, 0x746a },{ 0x73ae, 0x744b }, { 0x73af, 0x74b0 },{ 0x73b0, 0x73fe },{ 0x73ba, 0x74bd },{ 0x73c9, 0x739f }, { 0x73cf, 0x73a8 },{ 0x73d0, 0x743a },{ 0x73d1, 0x74cf },{ 0x73f2, 0x743f }, { 0x740f, 0x7489 },{ 0x7410, 0x7463 },{ 0x743c, 0x74ca },{ 0x7476, 0x7464 }, { 0x7477, 0x74a6 },{ 0x748e, 0x74d4 },{ 0x74d2, 0x74da },{ 0x74ee, 0x7515 }, { 0x74ef, 0x750c },{ 0x7535, 0x96fb },{ 0x753b, 0x756b },{ 0x7545, 0x66a2 }, { 0x7572, 0x756c },{ 0x7574, 0x7587 },{ 0x7596, 0x7664 },{ 0x7597, 0x7642 }, { 0x759f, 0x7627 },{ 0x75a0, 0x7658 },{ 0x75a1, 0x760d },{ 0x75ae, 0x7621 }, { 0x75af, 0x760b },{ 0x75b1, 0x76b0 },{ 0x75b4, 0x75fe },{ 0x75c8, 0x7670 }, { 0x75c9, 0x75d9 },{ 0x75d2, 0x7662 },{ 0x75e8, 0x7646 },{ 0x75ea, 0x7613 }, { 0x75eb, 0x7647 },{ 0x75f4, 0x7661 },{ 0x75f9, 0x75fa },{ 0x7605, 0x7649 }, { 0x7617, 0x761e },{ 0x7618, 0x763a },{ 0x762a, 0x765f },{ 0x762b, 0x7671 }, { 0x763e, 0x766e },{ 0x763f, 0x766d },{ 0x765e, 0x7669 },{ 0x7663, 0x766c }, { 0x766b, 0x7672 },{ 0x7691, 0x769a },{ 0x76b1, 0x76ba },{ 0x76b2, 0x76b8 }, { 0x76cf, 0x76de },{ 0x76d0, 0x9e7d },{ 0x76d1, 0x76e3 },{ 0x76d6, 0x84cb }, { 0x76d7, 0x76dc },{ 0x76d8, 0x76e4 },{ 0x7726, 0x7725 },{ 0x772f, 0x7787 }, { 0x7740, 0x8457 },{ 0x7741, 0x775c },{ 0x7750, 0x775e },{ 0x7751, 0x77bc }, { 0x777e, 0x776a },{ 0x777f, 0x53e1 },{ 0x7792, 0x779e },{ 0x77a9, 0x77da }, { 0x77eb, 0x77ef },{ 0x77f6, 0x78ef },{ 0x77fe, 0x792c },{ 0x77ff, 0x7926 }, { 0x7800, 0x78ad },{ 0x7801, 0x78bc },{ 0x7816, 0x78da },{ 0x7817, 0x7868 }, { 0x781a, 0x786f },{ 0x783a, 0x792a },{ 0x783b, 0x7931 },{ 0x783e, 0x792b }, { 0x7840, 0x790e },{ 0x7855, 0x78a9 },{ 0x7856, 0x7864 },{ 0x7857, 0x78fd }, { 0x786e, 0x78ba },{ 0x7877, 0x9e7c },{ 0x788d, 0x7919 },{ 0x789b, 0x78e7 }, { 0x789c, 0x78e3 },{ 0x78b1, 0x583f },{ 0x7934, 0x7921 },{ 0x793b, 0x793a }, { 0x793c, 0x79ae },{ 0x795b, 0x88aa },{ 0x7962, 0x79b0 },{ 0x796f, 0x798e }, { 0x7977, 0x79b1 },{ 0x7978, 0x798d },{ 0x7980, 0x7a1f },{ 0x7984, 0x797f }, { 0x7985, 0x79aa },{ 0x79bb, 0x96e2 },{ 0x79c3, 0x79bf },{ 0x79c6, 0x7a08 }, { 0x79cd, 0x7a2e },{ 0x79ef, 0x7a4d },{ 0x79f0, 0x7a31 },{ 0x79fd, 0x7a62 }, { 0x7a0e, 0x7a05 },{ 0x7a23, 0x7a4c },{ 0x7a33, 0x7a69 },{ 0x7a51, 0x7a61 }, { 0x7a77, 0x7aae },{ 0x7a83, 0x7aca },{ 0x7a8d, 0x7ac5 },{ 0x7a91, 0x7aaf }, { 0x7a9c, 0x7ac4 },{ 0x7a9d, 0x7aa9 },{ 0x7aa5, 0x7aba },{ 0x7aa6, 0x7ac7 }, { 0x7aad, 0x7ab6 },{ 0x7ad6, 0x8c4e },{ 0x7ade, 0x7af6 },{ 0x7b03, 0x7be4 }, { 0x7b0b, 0x7b4d },{ 0x7b14, 0x7b46 },{ 0x7b15, 0x7b67 },{ 0x7b3a, 0x7b8b }, { 0x7b3c, 0x7c60 },{ 0x7b3e, 0x7c69 },{ 0x7b47, 0x7b3b },{ 0x7b51, 0x7bc9 }, { 0x7b5a, 0x7bf3 },{ 0x7b5b, 0x7be9 },{ 0x7b5d, 0x7b8f },{ 0x7b71, 0x7be0 }, { 0x7b79, 0x7c4c },{ 0x7b7e, 0x7c3d },{ 0x7b80, 0x7c21 },{ 0x7ba6, 0x7c00 }, { 0x7ba7, 0x7bcb },{ 0x7ba8, 0x7c5c },{ 0x7ba9, 0x7c6e },{ 0x7baa, 0x7c1e }, { 0x7bab, 0x7c2b },{ 0x7bd1, 0x7c23 },{ 0x7bd3, 0x7c0d },{ 0x7bee, 0x7c43 }, { 0x7bf1, 0x7c6c },{ 0x7c16, 0x7c6a },{ 0x7c41, 0x7c5f },{ 0x7c74, 0x7cf4 }, { 0x7c7b, 0x985e },{ 0x7c7c, 0x79c8 },{ 0x7c9c, 0x7cf6 },{ 0x7c9d, 0x7cf2 }, { 0x7ca4, 0x7cb5 },{ 0x7caa, 0x7cde },{ 0x7cae, 0x7ce7 },{ 0x7cc1, 0x7cdd }, { 0x7cc7, 0x9931 },{ 0x7ccd, 0x9908 },{ 0x7d27, 0x7dca },{ 0x7d77, 0x7e36 }, { 0x7e9f, 0x7d72 },{ 0x7ea0, 0x7cfe },{ 0x7ea1, 0x7d06 },{ 0x7ea2, 0x7d05 }, { 0x7ea3, 0x7d02 },{ 0x7ea4, 0x7e96 },{ 0x7ea5, 0x7d07 },{ 0x7ea6, 0x7d04 }, { 0x7ea7, 0x7d1a },{ 0x7ea8, 0x7d08 },{ 0x7ea9, 0x7e8a },{ 0x7eaa, 0x7d00 }, { 0x7eab, 0x7d09 },{ 0x7eac, 0x7def },{ 0x7ead, 0x7d1c },{ 0x7eaf, 0x7d14 }, { 0x7eb0, 0x7d15 },{ 0x7eb1, 0x7d17 },{ 0x7eb2, 0x7db1 },{ 0x7eb3, 0x7d0d }, { 0x7eb5, 0x7e31 },{ 0x7eb6, 0x7db8 },{ 0x7eb7, 0x7d1b },{ 0x7eb8, 0x7d19 }, { 0x7eb9, 0x7d0b },{ 0x7eba, 0x7d21 },{ 0x7ebd, 0x7d10 },{ 0x7ebe, 0x7d13 }, { 0x7ebf, 0x7dda },{ 0x7ec0, 0x7d3a },{ 0x7ec1, 0x7d32 },{ 0x7ec2, 0x7d31 }, { 0x7ec3, 0x7df4 },{ 0x7ec4, 0x7d44 },{ 0x7ec5, 0x7d33 },{ 0x7ec6, 0x7d30 }, { 0x7ec7, 0x7e54 },{ 0x7ec8, 0x7d42 },{ 0x7ec9, 0x7e10 },{ 0x7eca, 0x7d46 }, { 0x7ecb, 0x7d3c },{ 0x7ecc, 0x7d40 },{ 0x7ecd, 0x7d39 },{ 0x7ece, 0x7e79 }, { 0x7ecf, 0x7d93 },{ 0x7ed0, 0x7d3f },{ 0x7ed1, 0x7d81 },{ 0x7ed2, 0x7d68 }, { 0x7ed3, 0x7d50 },{ 0x7ed4, 0x8932 },{ 0x7ed5, 0x7e5e },{ 0x7ed7, 0x7d4e }, { 0x7ed8, 0x7e6a },{ 0x7ed9, 0x7d66 },{ 0x7eda, 0x7d62 },{ 0x7edb, 0x7d73 }, { 0x7edc, 0x7d61 },{ 0x7edd, 0x7d55 },{ 0x7ede, 0x7d5e },{ 0x7edf, 0x7d71 }, { 0x7ee0, 0x7d86 },{ 0x7ee1, 0x7d83 },{ 0x7ee2, 0x7d79 },{ 0x7ee3, 0x7e61 }, { 0x7ee5, 0x7d8f },{ 0x7ee6, 0x7d5b },{ 0x7ee7, 0x7e7c },{ 0x7ee8, 0x7d88 }, { 0x7ee9, 0x7e3e },{ 0x7eea, 0x7dd2 },{ 0x7eeb, 0x7dbe },{ 0x7eed, 0x7e8c }, { 0x7eee, 0x7dba },{ 0x7eef, 0x7dcb },{ 0x7ef0, 0x7dbd },{ 0x7ef2, 0x7dc4 }, { 0x7ef3, 0x7e69 },{ 0x7ef4, 0x7dad },{ 0x7ef5, 0x7dbf },{ 0x7ef6, 0x7dac }, { 0x7ef7, 0x7e43 },{ 0x7ef8, 0x7da2 },{ 0x7efa, 0x7db9 },{ 0x7efb, 0x7da3 }, { 0x7efc, 0x7d9c },{ 0x7efd, 0x7dbb },{ 0x7efe, 0x7db0 },{ 0x7eff, 0x7da0 }, { 0x7f00, 0x7db4 },{ 0x7f01, 0x7dc7 },{ 0x7f02, 0x7dd9 },{ 0x7f03, 0x7dd7 }, { 0x7f04, 0x7dd8 },{ 0x7f05, 0x7dec },{ 0x7f06, 0x7e9c },{ 0x7f07, 0x7df9 }, { 0x7f08, 0x7df2 },{ 0x7f09, 0x7ddd },{ 0x7f0b, 0x7e62 },{ 0x7f0c, 0x7de6 }, { 0x7f0d, 0x7d9e },{ 0x7f0e, 0x7dde },{ 0x7f0f, 0x7df6 },{ 0x7f11, 0x7df1 }, { 0x7f12, 0x7e0b },{ 0x7f13, 0x7de9 },{ 0x7f14, 0x7de0 },{ 0x7f15, 0x7e37 }, { 0x7f16, 0x7de8 },{ 0x7f17, 0x7de1 },{ 0x7f18, 0x7de3 },{ 0x7f19, 0x7e09 }, { 0x7f1a, 0x7e1b },{ 0x7f1b, 0x7e1f },{ 0x7f1c, 0x7e1d },{ 0x7f1d, 0x7e2b }, { 0x7f1f, 0x7e1e },{ 0x7f20, 0x7e8f },{ 0x7f21, 0x7e2d },{ 0x7f22, 0x7e0a }, { 0x7f23, 0x7e11 },{ 0x7f24, 0x7e7d },{ 0x7f25, 0x7e39 },{ 0x7f26, 0x7e35 }, { 0x7f27, 0x7e32 },{ 0x7f28, 0x7e93 },{ 0x7f29, 0x7e2e },{ 0x7f2a, 0x7e46 }, { 0x7f2b, 0x7e45 },{ 0x7f2c, 0x7e88 },{ 0x7f2d, 0x7e5a },{ 0x7f2e, 0x7e55 }, { 0x7f2f, 0x7e52 },{ 0x7f30, 0x97c1 },{ 0x7f31, 0x7e7e },{ 0x7f32, 0x7e70 }, { 0x7f33, 0x7e6f },{ 0x7f34, 0x7e73 },{ 0x7f35, 0x7e98 },{ 0x7f42, 0x7f4c }, { 0x7f51, 0x7db2 },{ 0x7f57, 0x7f85 },{ 0x7f5a, 0x7f70 },{ 0x7f62, 0x7f77 }, { 0x7f74, 0x7f86 },{ 0x7f81, 0x7f88 },{ 0x7f9f, 0x7fa5 },{ 0x7fa1, 0x7fa8 }, { 0x7fd8, 0x7ff9 },{ 0x8027, 0x802c },{ 0x8038, 0x8073 },{ 0x803b, 0x6065 }, { 0x8042, 0x8076 },{ 0x804b, 0x807e },{ 0x804c, 0x8077 },{ 0x804d, 0x8079 }, { 0x8054, 0x806f },{ 0x8069, 0x8075 },{ 0x806a, 0x8070 },{ 0x8080, 0x807f }, { 0x8083, 0x8085 },{ 0x80a0, 0x8178 },{ 0x80a4, 0x819a },{ 0x80ae, 0x9aaf }, { 0x80b4, 0x991a },{ 0x80be, 0x814e },{ 0x80bf, 0x816b },{ 0x80c0, 0x8139 }, { 0x80c1, 0x8105 },{ 0x80c4, 0x5191 },{ 0x80c6, 0x81bd },{ 0x80dc, 0x52dd }, { 0x80e7, 0x6727 },{ 0x80ea, 0x81da },{ 0x80eb, 0x811b },{ 0x80f6, 0x81a0 }, { 0x8109, 0x8108 },{ 0x810d, 0x81be },{ 0x810f, 0x9ad2 },{ 0x8110, 0x81cd }, { 0x8111, 0x8166 },{ 0x8113, 0x81bf },{ 0x8114, 0x81e0 },{ 0x811a, 0x8173 }, { 0x8131, 0x812b },{ 0x8132, 0x5c3f },{ 0x8136, 0x8161 },{ 0x8138, 0x81c9 }, { 0x814a, 0x81d8 },{ 0x814c, 0x9183 },{ 0x816d, 0x9f76 },{ 0x817b, 0x81a9 }, { 0x817c, 0x9766 },{ 0x817d, 0x8183 },{ 0x817e, 0x9a30 },{ 0x8191, 0x81cf }, { 0x8206, 0x8f3f },{ 0x8223, 0x8264 },{ 0x8230, 0x8266 },{ 0x8231, 0x8259 }, { 0x823b, 0x826b },{ 0x8270, 0x8271 },{ 0x8273, 0x8c54 },{ 0x8279, 0x8278 }, { 0x827a, 0x85dd },{ 0x8282, 0x7bc0 },{ 0x8288, 0x7f8b },{ 0x8297, 0x858c }, { 0x829c, 0x856a },{ 0x82a6, 0x8606 },{ 0x82c1, 0x84ef },{ 0x82c7, 0x8466 }, { 0x82c8, 0x85f6 },{ 0x82cb, 0x83a7 },{ 0x82cc, 0x8407 },{ 0x82cd, 0x84bc }, { 0x82ce, 0x82e7 },{ 0x82cf, 0x8607 },{ 0x82f9, 0x860b },{ 0x8303, 0x7bc4 }, { 0x830e, 0x8396 },{ 0x830f, 0x8622 },{ 0x8311, 0x8526 },{ 0x8314, 0x584b }, { 0x8315, 0x7162 },{ 0x8327, 0x7e6d },{ 0x8346, 0x834a },{ 0x8350, 0x85a6 }, { 0x835a, 0x83a2 },{ 0x835b, 0x8558 },{ 0x835c, 0x84fd },{ 0x835e, 0x854e }, { 0x835f, 0x8588 },{ 0x8360, 0x85ba },{ 0x8361, 0x8569 },{ 0x8363, 0x69ae }, { 0x8364, 0x8477 },{ 0x8365, 0x6ece },{ 0x8366, 0x7296 },{ 0x8367, 0x7192 }, { 0x8368, 0x8541 },{ 0x8369, 0x85ce },{ 0x836a, 0x84c0 },{ 0x836b, 0x852d }, { 0x836c, 0x85da },{ 0x836d, 0x8452 },{ 0x836f, 0x85e5 },{ 0x8385, 0x849e }, { 0x83b1, 0x840a },{ 0x83b2, 0x84ee },{ 0x83b3, 0x8494 },{ 0x83b4, 0x8435 }, { 0x83b6, 0x859f },{ 0x83b7, 0x7372 },{ 0x83b8, 0x8555 },{ 0x83b9, 0x7469 }, { 0x83ba, 0x9daf },{ 0x83bc, 0x84f4 },{ 0x841d, 0x863f },{ 0x8424, 0x87a2 }, { 0x8425, 0x71df },{ 0x8426, 0x7e08 },{ 0x8427, 0x856d },{ 0x8428, 0x85a9 }, { 0x8471, 0x8525 },{ 0x8487, 0x8546 },{ 0x8489, 0x8562 },{ 0x848b, 0x8523 }, { 0x848c, 0x851e },{ 0x84d1, 0x7c11 },{ 0x84dd, 0x85cd },{ 0x84df, 0x858a }, { 0x84e0, 0x863a },{ 0x84e3, 0x8577 },{ 0x84e5, 0x93a3 },{ 0x84e6, 0x9a40 }, { 0x8537, 0x8594 },{ 0x8539, 0x861e },{ 0x853a, 0x85fa },{ 0x853c, 0x85f9 }, { 0x8572, 0x8604 },{ 0x8574, 0x860a },{ 0x85ae, 0x85ea },{ 0x85d3, 0x861a }, { 0x8616, 0x8617 },{ 0x864f, 0x865c },{ 0x8651, 0x616e },{ 0x865a, 0x865b }, { 0x866b, 0x87f2 },{ 0x866c, 0x866f },{ 0x866e, 0x87e3 },{ 0x867d, 0x96d6 }, { 0x867e, 0x8766 },{ 0x867f, 0x8806 },{ 0x8680, 0x8755 },{ 0x8681, 0x87fb }, { 0x8682, 0x879e },{ 0x8695, 0x8836 },{ 0x869d, 0x8814 },{ 0x86ac, 0x8706 }, { 0x86ca, 0x8831 },{ 0x86ce, 0x8823 },{ 0x86cf, 0x87f6 },{ 0x86ee, 0x883b }, { 0x86f0, 0x87c4 },{ 0x86f1, 0x86fa },{ 0x86f2, 0x87ef },{ 0x86f3, 0x8784 }, { 0x86f4, 0x8810 },{ 0x8715, 0x86fb },{ 0x8717, 0x8778 },{ 0x8721, 0x881f }, { 0x8747, 0x8805 },{ 0x8748, 0x87c8 },{ 0x8749, 0x87ec },{ 0x874e, 0x880d }, { 0x8770, 0x867a },{ 0x877c, 0x87bb },{ 0x877e, 0x8811 },{ 0x87ee, 0x87fa }, { 0x8845, 0x91c1 },{ 0x8854, 0x929c },{ 0x8864, 0x8863 },{ 0x8865, 0x88dc }, { 0x886c, 0x896f },{ 0x886e, 0x889e },{ 0x8884, 0x8956 },{ 0x8885, 0x88ca }, { 0x889c, 0x896a },{ 0x88ad, 0x8972 },{ 0x88c5, 0x88dd },{ 0x88c6, 0x8960 }, { 0x88e2, 0x8933 },{ 0x88e3, 0x895d },{ 0x88e4, 0x8932 },{ 0x88e5, 0x8949 }, { 0x891b, 0x8938 },{ 0x8934, 0x8964 },{ 0x89c1, 0x898b },{ 0x89c2, 0x89c0 }, { 0x89c4, 0x898f },{ 0x89c5, 0x8993 },{ 0x89c6, 0x8996 },{ 0x89c7, 0x8998 }, { 0x89c8, 0x89bd },{ 0x89c9, 0x89ba },{ 0x89ca, 0x89ac },{ 0x89cb, 0x89a1 }, { 0x89cc, 0x89bf },{ 0x89ce, 0x89a6 },{ 0x89cf, 0x89af },{ 0x89d0, 0x89b2 }, { 0x89d1, 0x89b7 },{ 0x89de, 0x89f4 },{ 0x89e6, 0x89f8 },{ 0x89ef, 0x89f6 }, { 0x8a89, 0x8b7d },{ 0x8a8a, 0x8b04 },{ 0x8ba0, 0x8a00 },{ 0x8ba1, 0x8a08 }, { 0x8ba2, 0x8a02 },{ 0x8ba3, 0x8a03 },{ 0x8ba4, 0x8a8d },{ 0x8ba5, 0x8b4f }, { 0x8ba6, 0x8a10 },{ 0x8ba7, 0x8a0c },{ 0x8ba8, 0x8a0e },{ 0x8ba9, 0x8b93 }, { 0x8baa, 0x8a15 },{ 0x8bab, 0x8a16 },{ 0x8bad, 0x8a13 },{ 0x8bae, 0x8b70 }, { 0x8baf, 0x8a0a },{ 0x8bb0, 0x8a18 },{ 0x8bb2, 0x8b1b },{ 0x8bb3, 0x8af1 }, { 0x8bb4, 0x8b33 },{ 0x8bb5, 0x8a4e },{ 0x8bb6, 0x8a1d },{ 0x8bb7, 0x8a25 }, { 0x8bb8, 0x8a31 },{ 0x8bb9, 0x8a1b },{ 0x8bba, 0x8ad6 },{ 0x8bbc, 0x8a1f }, { 0x8bbd, 0x8af7 },{ 0x8bbe, 0x8a2d },{ 0x8bbf, 0x8a2a },{ 0x8bc0, 0x8a23 }, { 0x8bc1, 0x8b49 },{ 0x8bc2, 0x8a41 },{ 0x8bc3, 0x8a36 },{ 0x8bc4, 0x8a55 }, { 0x8bc5, 0x8a5b },{ 0x8bc6, 0x8b58 },{ 0x8bc8, 0x8a50 },{ 0x8bc9, 0x8a34 }, { 0x8bca, 0x8a3a },{ 0x8bcb, 0x8a46 },{ 0x8bcc, 0x8b05 },{ 0x8bcd, 0x8a5e }, { 0x8bce, 0x8a58 },{ 0x8bcf, 0x8a54 },{ 0x8bd1, 0x8b6f },{ 0x8bd2, 0x8a52 }, { 0x8bd3, 0x8a86 },{ 0x8bd4, 0x8a84 },{ 0x8bd5, 0x8a66 },{ 0x8bd6, 0x8a7f }, { 0x8bd7, 0x8a69 },{ 0x8bd8, 0x8a70 },{ 0x8bd9, 0x8a7c },{ 0x8bda, 0x8aa0 }, { 0x8bdb, 0x8a85 },{ 0x8bdc, 0x8a75 },{ 0x8bdd, 0x8a71 },{ 0x8bde, 0x8a95 }, { 0x8bdf, 0x8a6c },{ 0x8be0, 0x8a6e },{ 0x8be1, 0x8a6d },{ 0x8be2, 0x8a62 }, { 0x8be3, 0x8a63 },{ 0x8be4, 0x8acd },{ 0x8be5, 0x8a72 },{ 0x8be6, 0x8a73 }, { 0x8be7, 0x8a6b },{ 0x8be8, 0x8ae2 },{ 0x8be9, 0x8a61 },{ 0x8beb, 0x8aa1 }, { 0x8bec, 0x8aa3 },{ 0x8bed, 0x8a9e },{ 0x8bee, 0x8a9a },{ 0x8bef, 0x8aa4 }, { 0x8bf0, 0x8aa5 },{ 0x8bf1, 0x8a98 },{ 0x8bf2, 0x8aa8 },{ 0x8bf3, 0x8a91 }, { 0x8bf4, 0x8aaa },{ 0x8bf5, 0x8aa6 },{ 0x8bf6, 0x8a92 },{ 0x8bf7, 0x8acb }, { 0x8bf8, 0x8af8 },{ 0x8bf9, 0x8acf },{ 0x8bfa, 0x8afe },{ 0x8bfb, 0x8b80 }, { 0x8bfc, 0x8ad1 },{ 0x8bfd, 0x8ab9 },{ 0x8bfe, 0x8ab2 },{ 0x8bff, 0x8ac9 }, { 0x8c00, 0x8adb },{ 0x8c01, 0x8ab0 },{ 0x8c02, 0x8ad7 },{ 0x8c03, 0x8abf }, { 0x8c04, 0x8ac2 },{ 0x8c05, 0x8ad2 },{ 0x8c06, 0x8ac4 },{ 0x8c07, 0x8ab6 }, { 0x8c08, 0x8ac7 },{ 0x8c0a, 0x8abc },{ 0x8c0b, 0x8b00 },{ 0x8c0c, 0x8af6 }, { 0x8c0d, 0x8adc },{ 0x8c0e, 0x8b0a },{ 0x8c0f, 0x8aeb },{ 0x8c10, 0x8ae7 }, { 0x8c11, 0x8b14 },{ 0x8c12, 0x8b01 },{ 0x8c13, 0x8b02 },{ 0x8c14, 0x8ae4 }, { 0x8c15, 0x8aed },{ 0x8c16, 0x8afc },{ 0x8c17, 0x8b92 },{ 0x8c18, 0x8aee }, { 0x8c19, 0x8af3 },{ 0x8c1a, 0x8afa },{ 0x8c1b, 0x8ae6 },{ 0x8c1c, 0x8b0e }, { 0x8c1d, 0x8ade },{ 0x8c1f, 0x8b28 },{ 0x8c20, 0x8b9c },{ 0x8c21, 0x8b16 }, { 0x8c22, 0x8b1d },{ 0x8c23, 0x8b20 },{ 0x8c24, 0x8b17 },{ 0x8c25, 0x8b1a }, { 0x8c26, 0x8b19 },{ 0x8c27, 0x8b10 },{ 0x8c28, 0x8b39 },{ 0x8c29, 0x8b3e }, { 0x8c2a, 0x8b2b },{ 0x8c2b, 0x8b7e },{ 0x8c2c, 0x8b2c },{ 0x8c2d, 0x8b5a }, { 0x8c2e, 0x8b56 },{ 0x8c2f, 0x8b59 },{ 0x8c30, 0x8b95 },{ 0x8c31, 0x8b5c }, { 0x8c32, 0x8b4e },{ 0x8c33, 0x8b9e },{ 0x8c34, 0x8b74 },{ 0x8c35, 0x8b6b }, { 0x8c36, 0x8b96 },{ 0x8d1d, 0x8c9d },{ 0x8d1e, 0x8c9e },{ 0x8d1f, 0x8ca0 }, { 0x8d21, 0x8ca2 },{ 0x8d22, 0x8ca1 },{ 0x8d23, 0x8cac },{ 0x8d24, 0x8ce2 }, { 0x8d25, 0x6557 },{ 0x8d26, 0x8cec },{ 0x8d27, 0x8ca8 },{ 0x8d28, 0x8cea }, { 0x8d29, 0x8ca9 },{ 0x8d2a, 0x8caa },{ 0x8d2b, 0x8ca7 },{ 0x8d2c, 0x8cb6 }, { 0x8d2d, 0x8cfc },{ 0x8d2e, 0x8caf },{ 0x8d2f, 0x8cab },{ 0x8d30, 0x8cb3 }, { 0x8d31, 0x8ce4 },{ 0x8d32, 0x8cc1 },{ 0x8d33, 0x8cb0 },{ 0x8d34, 0x8cbc }, { 0x8d35, 0x8cb4 },{ 0x8d36, 0x8cba },{ 0x8d37, 0x8cb8 },{ 0x8d38, 0x8cbf }, { 0x8d39, 0x8cbb },{ 0x8d3a, 0x8cc0 },{ 0x8d3b, 0x8cbd },{ 0x8d3c, 0x8cca }, { 0x8d3d, 0x8d04 },{ 0x8d3e, 0x8cc8 },{ 0x8d3f, 0x8cc4 },{ 0x8d40, 0x8cb2 }, { 0x8d41, 0x8cc3 },{ 0x8d42, 0x8cc2 },{ 0x8d43, 0x8d13 },{ 0x8d44, 0x8cc7 }, { 0x8d45, 0x8cc5 },{ 0x8d46, 0x8d10 },{ 0x8d47, 0x8cd5 },{ 0x8d48, 0x8cd1 }, { 0x8d49, 0x8cda },{ 0x8d4a, 0x8cd2 },{ 0x8d4b, 0x8ce6 },{ 0x8d4c, 0x8ced }, { 0x8d4d, 0x9f4e },{ 0x8d4e, 0x8d16 },{ 0x8d4f, 0x8cde },{ 0x8d50, 0x8cdc }, { 0x8d53, 0x8ce1 },{ 0x8d54, 0x8ce0 },{ 0x8d55, 0x8ce7 },{ 0x8d56, 0x8cf4 }, { 0x8d58, 0x8d05 },{ 0x8d59, 0x8cfb },{ 0x8d5a, 0x8cfa },{ 0x8d5b, 0x8cfd }, { 0x8d5c, 0x8cfe },{ 0x8d5d, 0x8d17 },{ 0x8d5e, 0x8d0a },{ 0x8d60, 0x8d08 }, { 0x8d61, 0x8d0d },{ 0x8d62, 0x8d0f },{ 0x8d63, 0x8d1b },{ 0x8d75, 0x8d99 }, { 0x8d76, 0x8d95 },{ 0x8d8b, 0x8da8 },{ 0x8db1, 0x8db2 },{ 0x8db8, 0x8e89 }, { 0x8dc3, 0x8e8d },{ 0x8dc4, 0x8e4c },{ 0x8dde, 0x8e92 },{ 0x8df5, 0x8e10 }, { 0x8df7, 0x8e7a },{ 0x8df8, 0x8e55 },{ 0x8df9, 0x8e9a },{ 0x8dfb, 0x8e8b }, { 0x8e0a, 0x8e34 },{ 0x8e0c, 0x8e8a },{ 0x8e2a, 0x8e64 },{ 0x8e2c, 0x8e93 }, { 0x8e2f, 0x8e91 },{ 0x8e51, 0x8ea1 },{ 0x8e52, 0x8e63 },{ 0x8e70, 0x8e95 }, { 0x8e7f, 0x8ea5 },{ 0x8e8f, 0x8eaa },{ 0x8e9c, 0x8ea6 },{ 0x8eaf, 0x8ec0 }, { 0x8f66, 0x8eca },{ 0x8f67, 0x8ecb },{ 0x8f68, 0x8ecc },{ 0x8f69, 0x8ed2 }, { 0x8f6b, 0x8ed4 },{ 0x8f6c, 0x8f49 },{ 0x8f6d, 0x8edb },{ 0x8f6e, 0x8f2a }, { 0x8f6f, 0x8edf },{ 0x8f70, 0x8f5f },{ 0x8f72, 0x8efb },{ 0x8f73, 0x8f64 }, { 0x8f74, 0x8ef8 },{ 0x8f75, 0x8ef9 },{ 0x8f76, 0x8efc },{ 0x8f78, 0x8eeb }, { 0x8f79, 0x8f62 },{ 0x8f7a, 0x8efa },{ 0x8f7b, 0x8f15 },{ 0x8f7c, 0x8efe }, { 0x8f7d, 0x8f09 },{ 0x8f7e, 0x8f0a },{ 0x8f7f, 0x8f4e },{ 0x8f81, 0x8f07 }, { 0x8f82, 0x8f05 },{ 0x8f83, 0x8f03 },{ 0x8f84, 0x8f12 },{ 0x8f85, 0x8f14 }, { 0x8f86, 0x8f1b },{ 0x8f87, 0x8f26 },{ 0x8f88, 0x8f29 },{ 0x8f89, 0x8f1d }, { 0x8f8a, 0x8f25 },{ 0x8f8b, 0x8f1e },{ 0x8f8d, 0x8f1f },{ 0x8f8e, 0x8f1c }, { 0x8f8f, 0x8f33 },{ 0x8f90, 0x8f3b },{ 0x8f91, 0x8f2f },{ 0x8f93, 0x8f38 }, { 0x8f94, 0x8f61 },{ 0x8f95, 0x8f45 },{ 0x8f96, 0x8f44 },{ 0x8f97, 0x8f3e }, { 0x8f98, 0x8f46 },{ 0x8f99, 0x8f4d },{ 0x8f9a, 0x8f54 },{ 0x8f9e, 0x8fad }, { 0x8f9f, 0x95e2 },{ 0x8fa9, 0x8faf },{ 0x8fab, 0x8fae },{ 0x8fb9, 0x908a }, { 0x8fbd, 0x907c },{ 0x8fbe, 0x9054 },{ 0x8fc1, 0x9077 },{ 0x8fc7, 0x904e }, { 0x8fc8, 0x9081 },{ 0x8fd0, 0x904b },{ 0x8fd8, 0x9084 },{ 0x8fd9, 0x9019 }, { 0x8fdb, 0x9032 },{ 0x8fdc, 0x9060 },{ 0x8fdd, 0x9055 },{ 0x8fde, 0x9023 }, { 0x8fdf, 0x9072 },{ 0x8fe9, 0x9087 },{ 0x8ff3, 0x9015 },{ 0x8ff9, 0x8e5f }, { 0x9002, 0x9069 },{ 0x9009, 0x9078 },{ 0x900a, 0x905c },{ 0x9012, 0x905e }, { 0x9026, 0x9090 },{ 0x903b, 0x908f },{ 0x9057, 0x907a },{ 0x9065, 0x9059 }, { 0x9093, 0x9127 },{ 0x909d, 0x913a },{ 0x90ac, 0x9114 },{ 0x90ae, 0x90f5 }, { 0x90b9, 0x9112 },{ 0x90ba, 0x9134 },{ 0x90bb, 0x9130 },{ 0x90c1, 0x9b31 }, { 0x90c4, 0x9699 },{ 0x90cf, 0x90df },{ 0x90d0, 0x9136 },{ 0x90d1, 0x912d }, { 0x90d3, 0x9106 },{ 0x90e6, 0x9148 },{ 0x90e7, 0x9116 },{ 0x90f8, 0x9132 }, { 0x915d, 0x919e },{ 0x9171, 0x91ac },{ 0x917d, 0x91c5 },{ 0x917e, 0x91c3 }, { 0x917f, 0x91c0 },{ 0x91c7, 0x63a1 },{ 0x91ca, 0x91cb },{ 0x91cc, 0x88e1 }, { 0x9274, 0x9451 },{ 0x92ae, 0x947e },{ 0x933e, 0x93e8 },{ 0x9485, 0x91d1 }, { 0x9486, 0x91d3 },{ 0x9487, 0x91d4 },{ 0x9488, 0x91dd },{ 0x9489, 0x91d8 }, { 0x948a, 0x91d7 },{ 0x948b, 0x91d9 },{ 0x948c, 0x91d5 },{ 0x948d, 0x91f7 }, { 0x948e, 0x91ec },{ 0x948f, 0x91e7 },{ 0x9490, 0x91e4 },{ 0x9492, 0x91e9 }, { 0x9493, 0x91e3 },{ 0x9494, 0x9346 },{ 0x9495, 0x91f9 },{ 0x9497, 0x91f5 }, { 0x9499, 0x9223 },{ 0x949b, 0x9226 },{ 0x949c, 0x9245 },{ 0x949d, 0x920d }, { 0x949e, 0x9214 },{ 0x949f, 0x9418 },{ 0x94a0, 0x9209 },{ 0x94a1, 0x92c7 }, { 0x94a2, 0x92fc },{ 0x94a3, 0x9211 },{ 0x94a4, 0x9210 },{ 0x94a5, 0x9470 }, { 0x94a6, 0x6b3d },{ 0x94a7, 0x921e },{ 0x94a8, 0x93a2 },{ 0x94a9, 0x9264 }, { 0x94aa, 0x9227 },{ 0x94ab, 0x9201 },{ 0x94ac, 0x9225 },{ 0x94ad, 0x9204 }, { 0x94ae, 0x9215 },{ 0x94af, 0x9200 },{ 0x94b0, 0x923a },{ 0x94b1, 0x9322 }, { 0x94b2, 0x9266 },{ 0x94b3, 0x9257 },{ 0x94b4, 0x9237 },{ 0x94b5, 0x7f3d }, { 0x94b6, 0x9233 },{ 0x94b8, 0x923d },{ 0x94b9, 0x9238 },{ 0x94ba, 0x925e }, { 0x94bb, 0x947d },{ 0x94bc, 0x926c },{ 0x94bd, 0x926d },{ 0x94be, 0x9240 }, { 0x94bf, 0x923f },{ 0x94c0, 0x923e },{ 0x94c1, 0x9435 },{ 0x94c2, 0x9251 }, { 0x94c3, 0x9234 },{ 0x94c4, 0x9460 },{ 0x94c5, 0x925b },{ 0x94c6, 0x925a }, { 0x94c8, 0x9230 },{ 0x94c9, 0x9249 },{ 0x94ca, 0x9248 },{ 0x94cb, 0x924d }, { 0x94cc, 0x922e },{ 0x94cd, 0x9239 },{ 0x94ce, 0x9438 },{ 0x94d0, 0x92ac }, { 0x94d1, 0x92a0 },{ 0x94d2, 0x927a },{ 0x94d5, 0x92aa },{ 0x94d6, 0x92ee }, { 0x94d7, 0x92cf },{ 0x94d9, 0x9403 },{ 0x94db, 0x943a },{ 0x94dc, 0x9285 }, { 0x94dd, 0x92c1 },{ 0x94df, 0x92a6 },{ 0x94e0, 0x93a7 },{ 0x94e1, 0x9358 }, { 0x94e2, 0x9296 },{ 0x94e3, 0x9291 },{ 0x94e4, 0x92cc },{ 0x94e5, 0x92a9 }, { 0x94e7, 0x93f5 },{ 0x94e8, 0x9293 },{ 0x94e9, 0x93a9 },{ 0x94ea, 0x927f }, { 0x94eb, 0x929a },{ 0x94ec, 0x927b },{ 0x94ed, 0x9298 },{ 0x94ee, 0x931a }, { 0x94ef, 0x92ab },{ 0x94f0, 0x9278 },{ 0x94f1, 0x92a5 },{ 0x94f2, 0x93df }, { 0x94f3, 0x9283 },{ 0x94f4, 0x940b },{ 0x94f5, 0x92a8 },{ 0x94f6, 0x9280 }, { 0x94f7, 0x92a3 },{ 0x94f8, 0x9444 },{ 0x94f9, 0x9412 },{ 0x94fa, 0x92ea }, { 0x94fc, 0x9338 },{ 0x94fd, 0x92f1 },{ 0x94fe, 0x93c8 },{ 0x94ff, 0x93d7 }, { 0x9500, 0x92b7 },{ 0x9501, 0x9396 },{ 0x9502, 0x92f0 },{ 0x9504, 0x92e4 }, { 0x9505, 0x934b },{ 0x9506, 0x92ef },{ 0x9507, 0x92e8 },{ 0x9508, 0x93fd }, { 0x9509, 0x92bc },{ 0x950a, 0x92dd },{ 0x950b, 0x92d2 },{ 0x950c, 0x92c5 }, { 0x9510, 0x92b3 },{ 0x9511, 0x92bb },{ 0x9512, 0x92c3 },{ 0x9513, 0x92df }, { 0x9514, 0x92e6 },{ 0x9515, 0x9312 },{ 0x9516, 0x9306 },{ 0x9517, 0x937a }, { 0x9519, 0x932f },{ 0x951a, 0x9328 },{ 0x951b, 0x931b },{ 0x951e, 0x9301 }, { 0x951f, 0x9315 },{ 0x9521, 0x932b },{ 0x9522, 0x932e },{ 0x9523, 0x947c }, { 0x9524, 0x939a },{ 0x9525, 0x9310 },{ 0x9526, 0x9326 },{ 0x9529, 0x9308 }, { 0x952c, 0x931f },{ 0x952d, 0x9320 },{ 0x952e, 0x9375 },{ 0x952f, 0x92f8 }, { 0x9530, 0x9333 },{ 0x9531, 0x9319 },{ 0x9532, 0x9365 },{ 0x9534, 0x9347 }, { 0x9535, 0x93d8 },{ 0x9536, 0x9376 },{ 0x9537, 0x9354 },{ 0x9538, 0x9364 }, { 0x9539, 0x936c },{ 0x953a, 0x937e },{ 0x953b, 0x935b },{ 0x953c, 0x93aa }, { 0x953e, 0x9370 },{ 0x9540, 0x934d },{ 0x9541, 0x9382 },{ 0x9542, 0x93e4 }, { 0x9544, 0x9428 },{ 0x9546, 0x93cc },{ 0x9547, 0x93ae },{ 0x9549, 0x9398 }, { 0x954a, 0x9477 },{ 0x954c, 0x942b },{ 0x954d, 0x93b3 },{ 0x954f, 0x93a6 }, { 0x9550, 0x93ac },{ 0x9551, 0x938a },{ 0x9552, 0x93b0 },{ 0x9553, 0x93b5 }, { 0x9554, 0x944c },{ 0x9556, 0x93e2 },{ 0x9557, 0x93dc },{ 0x9558, 0x93dd }, { 0x9559, 0x93cd },{ 0x955b, 0x93de },{ 0x955c, 0x93e1 },{ 0x955d, 0x93d1 }, { 0x955e, 0x93c3 },{ 0x955f, 0x93c7 },{ 0x9561, 0x9414 },{ 0x9563, 0x9410 }, { 0x9564, 0x93f7 },{ 0x9566, 0x9413 },{ 0x9567, 0x946d },{ 0x9568, 0x9420 }, { 0x956a, 0x93f9 },{ 0x956b, 0x9419 },{ 0x956c, 0x944a },{ 0x956d, 0x9433 }, { 0x956f, 0x9432 },{ 0x9570, 0x942e },{ 0x9571, 0x943f },{ 0x9573, 0x9463 }, { 0x9576, 0x9472 },{ 0x957f, 0x9577 },{ 0x95e8, 0x9580 },{ 0x95e9, 0x9582 }, { 0x95ea, 0x9583 },{ 0x95eb, 0x9586 },{ 0x95ed, 0x9589 },{ 0x95ee, 0x554f }, { 0x95ef, 0x95d6 },{ 0x95f0, 0x958f },{ 0x95f1, 0x95c8 },{ 0x95f2, 0x9592 }, { 0x95f3, 0x958e },{ 0x95f4, 0x9593 },{ 0x95f5, 0x9594 },{ 0x95f6, 0x958c }, { 0x95f7, 0x60b6 },{ 0x95f8, 0x9598 },{ 0x95f9, 0x9b27 },{ 0x95fa, 0x95a8 }, { 0x95fb, 0x805e },{ 0x95fc, 0x95e5 },{ 0x95fd, 0x95a9 },{ 0x95fe, 0x95ad }, { 0x9600, 0x95a5 },{ 0x9601, 0x95a3 },{ 0x9602, 0x95a1 },{ 0x9603, 0x95ab }, { 0x9604, 0x9b2e },{ 0x9605, 0x95b1 },{ 0x9606, 0x95ac },{ 0x9608, 0x95be }, { 0x9609, 0x95b9 },{ 0x960a, 0x95b6 },{ 0x960b, 0x9b29 },{ 0x960c, 0x95bf }, { 0x960d, 0x95bd },{ 0x960e, 0x95bb },{ 0x960f, 0x95bc },{ 0x9610, 0x95e1 }, { 0x9611, 0x95cc },{ 0x9612, 0x95c3 },{ 0x9614, 0x95ca },{ 0x9615, 0x95cb }, { 0x9616, 0x95d4 },{ 0x9617, 0x95d0 },{ 0x9619, 0x95d5 },{ 0x961a, 0x95de }, { 0x961d, 0x961c },{ 0x961f, 0x968a },{ 0x9633, 0x967d },{ 0x9634, 0x9670 }, { 0x9635, 0x9663 },{ 0x9636, 0x968e },{ 0x9645, 0x969b },{ 0x9646, 0x9678 }, { 0x9647, 0x96b4 },{ 0x9648, 0x9673 },{ 0x9649, 0x9658 },{ 0x9655, 0x965d }, { 0x9667, 0x9689 },{ 0x9668, 0x9695 },{ 0x9669, 0x96aa },{ 0x968f, 0x96a8 }, { 0x9690, 0x96b1 },{ 0x96b6, 0x96b8 },{ 0x96bd, 0x96cb },{ 0x96be, 0x96e3 }, { 0x96cf, 0x96db },{ 0x96e0, 0x8b8e },{ 0x96f3, 0x9742 },{ 0x96fe, 0x9727 }, { 0x9701, 0x973d },{ 0x972d, 0x9744 },{ 0x9753, 0x975a },{ 0x9759, 0x975c }, { 0x9765, 0x9768 },{ 0x9791, 0x97c3 },{ 0x9792, 0x6a47 },{ 0x97af, 0x97c9 }, { 0x97e6, 0x97cb },{ 0x97e7, 0x97cc },{ 0x97e9, 0x97d3 },{ 0x97ea, 0x97d9 }, { 0x97eb, 0x97de },{ 0x97ec, 0x97dc },{ 0x97f5, 0x97fb },{ 0x9875, 0x9801 }, { 0x9876, 0x9802 },{ 0x9877, 0x9803 },{ 0x9878, 0x9807 },{ 0x9879, 0x9805 }, { 0x987a, 0x9806 },{ 0x987b, 0x9808 },{ 0x987c, 0x980a },{ 0x987d, 0x9811 }, { 0x987e, 0x9867 },{ 0x987f, 0x9813 },{ 0x9880, 0x980e },{ 0x9881, 0x9812 }, { 0x9882, 0x980c },{ 0x9883, 0x980f },{ 0x9884, 0x9810 },{ 0x9885, 0x9871 }, { 0x9886, 0x9818 },{ 0x9887, 0x9817 },{ 0x9888, 0x9838 },{ 0x9889, 0x9821 }, { 0x988a, 0x9830 },{ 0x988c, 0x981c },{ 0x988d, 0x6f41 },{ 0x988f, 0x9826 }, { 0x9890, 0x9824 },{ 0x9891, 0x983b },{ 0x9893, 0x9839 },{ 0x9894, 0x9837 }, { 0x9896, 0x7a4e },{ 0x9897, 0x9846 },{ 0x9898, 0x984c },{ 0x989a, 0x984e }, { 0x989b, 0x9853 },{ 0x989c, 0x984f },{ 0x989d, 0x984d },{ 0x989e, 0x9873 }, { 0x989f, 0x9862 },{ 0x98a0, 0x985b },{ 0x98a1, 0x9859 },{ 0x98a2, 0x9865 }, { 0x98a4, 0x986b },{ 0x98a6, 0x9870 },{ 0x98a7, 0x9874 },{ 0x98ce, 0x98a8 }, { 0x98d1, 0x98ae },{ 0x98d2, 0x98af },{ 0x98d3, 0x98b6 },{ 0x98d5, 0x98bc }, { 0x98d8, 0x98c4 },{ 0x98d9, 0x98c6 },{ 0x98de, 0x98db },{ 0x98e8, 0x9957 }, { 0x990d, 0x995c },{ 0x9963, 0x98df },{ 0x9965, 0x98e2 },{ 0x9967, 0x9933 }, { 0x9968, 0x98e9 },{ 0x9969, 0x993c },{ 0x996a, 0x98ea },{ 0x996b, 0x98eb }, { 0x996c, 0x98ed },{ 0x996d, 0x98ef },{ 0x996e, 0x98f2 },{ 0x996f, 0x991e }, { 0x9970, 0x98fe },{ 0x9971, 0x98fd },{ 0x9972, 0x98fc },{ 0x9974, 0x98f4 }, { 0x9975, 0x990c },{ 0x9976, 0x9952 },{ 0x9977, 0x9909 },{ 0x997a, 0x9903 }, { 0x997c, 0x9905 },{ 0x997d, 0x9911 },{ 0x997f, 0x9913 },{ 0x9980, 0x9918 }, { 0x9981, 0x9912 },{ 0x9984, 0x991b },{ 0x9985, 0x9921 },{ 0x9986, 0x9928 }, { 0x9988, 0x994b },{ 0x998a, 0x993f },{ 0x998b, 0x995e },{ 0x998d, 0x7ce2 }, { 0x998f, 0x993e },{ 0x9990, 0x9948 },{ 0x9991, 0x9949 },{ 0x9992, 0x9945 }, { 0x9994, 0x994c },{ 0x9a6c, 0x99ac },{ 0x9a6d, 0x99ad },{ 0x9a6e, 0x99b1 }, { 0x9a6f, 0x99b4 },{ 0x9a70, 0x99b3 },{ 0x9a71, 0x9a45 },{ 0x9a73, 0x99c1 }, { 0x9a74, 0x9a62 },{ 0x9a75, 0x99d4 },{ 0x9a76, 0x99db },{ 0x9a77, 0x99df }, { 0x9a78, 0x99d9 },{ 0x9a79, 0x99d2 },{ 0x9a7a, 0x9a36 },{ 0x9a7b, 0x99d0 }, { 0x9a7c, 0x99dd },{ 0x9a7d, 0x99d1 },{ 0x9a7e, 0x99d5 },{ 0x9a7f, 0x9a5b }, { 0x9a80, 0x99d8 },{ 0x9a81, 0x9a4d },{ 0x9a82, 0x7f75 },{ 0x9a84, 0x9a55 }, { 0x9a85, 0x9a4a },{ 0x9a86, 0x99f1 },{ 0x9a87, 0x99ed },{ 0x9a88, 0x99e2 }, { 0x9a8a, 0x9a6a },{ 0x9a8b, 0x9a01 },{ 0x9a8c, 0x9a57 },{ 0x9a8f, 0x99ff }, { 0x9a90, 0x9a0f },{ 0x9a91, 0x9a0e },{ 0x9a92, 0x9a0d },{ 0x9a93, 0x9a05 }, { 0x9a96, 0x9a42 },{ 0x9a97, 0x9a19 },{ 0x9a98, 0x9a2d },{ 0x9a9a, 0x9a37 }, { 0x9a9b, 0x9a16 },{ 0x9a9c, 0x9a41 },{ 0x9a9d, 0x9a2e },{ 0x9a9e, 0x9a2b }, { 0x9a9f, 0x9a38 },{ 0x9aa0, 0x9a43 },{ 0x9aa1, 0x9a3e },{ 0x9aa2, 0x9a44 }, { 0x9aa3, 0x9a4f },{ 0x9aa4, 0x9a5f },{ 0x9aa5, 0x9a65 },{ 0x9aa7, 0x9a64 }, { 0x9ac5, 0x9acf },{ 0x9acb, 0x9ad6 },{ 0x9acc, 0x9ad5 },{ 0x9b13, 0x9b22 }, { 0x9b47, 0x9b58 },{ 0x9b49, 0x9b4e },{ 0x9c7c, 0x9b5a },{ 0x9c7f, 0x9b77 }, { 0x9c81, 0x9b6f },{ 0x9c82, 0x9b74 },{ 0x9c87, 0x9bf0 },{ 0x9c88, 0x9c78 }, { 0x9c8b, 0x9b92 },{ 0x9c8d, 0x9b91 },{ 0x9c8e, 0x9c5f },{ 0x9c90, 0x9b90 }, { 0x9c91, 0x9bad },{ 0x9c92, 0x9b9a },{ 0x9c94, 0x9baa },{ 0x9c95, 0x9b9e }, { 0x9c9a, 0x9c6d },{ 0x9c9b, 0x9bab },{ 0x9c9c, 0x9bae },{ 0x9c9e, 0x9bd7 }, { 0x9c9f, 0x9c58 },{ 0x9ca0, 0x9bc1 },{ 0x9ca1, 0x9c7a },{ 0x9ca2, 0x9c31 }, { 0x9ca3, 0x9c39 },{ 0x9ca4, 0x9bc9 },{ 0x9ca5, 0x9c23 },{ 0x9ca6, 0x9c37 }, { 0x9ca7, 0x9bc0 },{ 0x9ca8, 0x9bca },{ 0x9ca9, 0x9bc7 },{ 0x9cab, 0x9bfd }, { 0x9cad, 0x9bd6 },{ 0x9cae, 0x9bea },{ 0x9cb0, 0x9beb },{ 0x9cb1, 0x9be1 }, { 0x9cb2, 0x9be4 },{ 0x9cb3, 0x9be7 },{ 0x9cb5, 0x9be2 },{ 0x9cb6, 0x9bf0 }, { 0x9cb7, 0x9bdb },{ 0x9cb8, 0x9be8 },{ 0x9cbb, 0x9bd4 },{ 0x9cbd, 0x9c08 }, { 0x9cc3, 0x9c13 },{ 0x9cc4, 0x9c77 },{ 0x9cc5, 0x9c0d },{ 0x9cc6, 0x9c12 }, { 0x9cc7, 0x9c09 },{ 0x9ccc, 0x9c32 },{ 0x9ccd, 0x9c2d },{ 0x9cce, 0x9c28 }, { 0x9ccf, 0x9c25 },{ 0x9cd0, 0x9c29 },{ 0x9cd3, 0x9c33 },{ 0x9cd4, 0x9c3e }, { 0x9cd5, 0x9c48 },{ 0x9cd6, 0x9c49 },{ 0x9cd7, 0x9c3b },{ 0x9cdc, 0x9c56 }, { 0x9cdd, 0x9c54 },{ 0x9cde, 0x9c57 },{ 0x9cdf, 0x9c52 },{ 0x9ce2, 0x9c67 }, { 0x9e1f, 0x9ce5 },{ 0x9e20, 0x9ce9 },{ 0x9e21, 0x96de },{ 0x9e22, 0x9cf6 }, { 0x9e23, 0x9cf4 },{ 0x9e25, 0x9dd7 },{ 0x9e26, 0x9d09 },{ 0x9e28, 0x9d07 }, { 0x9e29, 0x9d06 },{ 0x9e2a, 0x9d23 },{ 0x9e2b, 0x9d87 },{ 0x9e2c, 0x9e15 }, { 0x9e2d, 0x9d28 },{ 0x9e2f, 0x9d26 },{ 0x9e31, 0x9d1f },{ 0x9e32, 0x9d1d }, { 0x9e33, 0x9d1b },{ 0x9e35, 0x9d15 },{ 0x9e36, 0x9de5 },{ 0x9e37, 0x9dd9 }, { 0x9e38, 0x9d2f },{ 0x9e39, 0x9d30 },{ 0x9e3a, 0x9d42 },{ 0x9e3d, 0x9d3f }, { 0x9e3e, 0x9e1e },{ 0x9e3f, 0x9d3b },{ 0x9e41, 0x9d53 },{ 0x9e42, 0x9e1d }, { 0x9e43, 0x9d51 },{ 0x9e44, 0x9d60 },{ 0x9e45, 0x9d5d },{ 0x9e46, 0x9d52 }, { 0x9e47, 0x9df4 },{ 0x9e48, 0x9d5c },{ 0x9e49, 0x9d61 },{ 0x9e4a, 0x9d72 }, { 0x9e4c, 0x9d6a },{ 0x9e4e, 0x9d6f },{ 0x9e4f, 0x9d6c },{ 0x9e51, 0x9d89 }, { 0x9e55, 0x9d98 },{ 0x9e57, 0x9d9a },{ 0x9e58, 0x9dbb },{ 0x9e5a, 0x9dbf }, { 0x9e5c, 0x9da9 },{ 0x9e5e, 0x9dc2 },{ 0x9e63, 0x9dbc },{ 0x9e64, 0x9db4 }, { 0x9e66, 0x9e1a },{ 0x9e67, 0x9dd3 },{ 0x9e68, 0x9dda },{ 0x9e69, 0x9def }, { 0x9e6a, 0x9de6 },{ 0x9e6b, 0x9df2 },{ 0x9e6c, 0x9df8 },{ 0x9e6d, 0x9dfa }, { 0x9e70, 0x9df9 },{ 0x9e73, 0x9e1b },{ 0x9e7e, 0x9e7a },{ 0x9ea6, 0x9ea5 }, { 0x9eb8, 0x9ea9 },{ 0x9ebd, 0x9ebc },{ 0x9ec4, 0x9ec3 },{ 0x9ec9, 0x9ecc }, { 0x9ee9, 0x9ef7 },{ 0x9eea, 0x9ef2 },{ 0x9efe, 0x9efd },{ 0x9f0b, 0x9eff }, { 0x9f0d, 0x9f09 },{ 0x9f39, 0x9f34 },{ 0x9f50, 0x9f4a },{ 0x9f51, 0x9f4f }, { 0x9f7f, 0x9f52 },{ 0x9f80, 0x9f54 },{ 0x9f83, 0x9f5f },{ 0x9f84, 0x9f61 }, { 0x9f85, 0x9f59 },{ 0x9f86, 0x9f60 },{ 0x9f87, 0x9f5c },{ 0x9f88, 0x9f66 }, { 0x9f89, 0x9f6c },{ 0x9f8a, 0x9f6a },{ 0x9f8b, 0x9f72 },{ 0x9f8c, 0x9f77 }, { 0x9f99, 0x9f8d },{ 0x9f9a, 0x9f94 },{ 0x9f9b, 0x9f95 },{ 0x9f9f, 0x9f9c }, { 0xff02, 0x301e },{ 0xff3b, 0xfe5d },{ 0xff3d, 0xfe5e },{ 0xff40, 0x2035 }, { 0, 0 } }; static UShortPair __tc_to_sc_table [] = { { 0x00af, 0x02c9 },{ 0x00b7, 0x30fb },{ 0x03a0, 0x220f },{ 0x03a3, 0x2211 }, { 0x2025, 0x00a8 },{ 0x2027, 0x30fb },{ 0x2035, 0xff40 },{ 0x2225, 0x2016 }, { 0x2252, 0x2248 },{ 0x2266, 0x2264 },{ 0x2267, 0x2265 },{ 0x2500, 0x2015 }, { 0x2571, 0xff0f },{ 0x2572, 0xff3c },{ 0x2574, 0xff3f },{ 0x301d, 0xff02 }, { 0x301e, 0x2033 },{ 0x4e1f, 0x4e22 },{ 0x4e26, 0x5e76 },{ 0x4e3c, 0x4e95 }, { 0x4e7e, 0x5e72 },{ 0x4e82, 0x4e71 },{ 0x4e99, 0x4e98 },{ 0x4e9e, 0x4e9a }, { 0x4f15, 0x592b },{ 0x4f47, 0x4f2b },{ 0x4f48, 0x5e03 },{ 0x4f54, 0x5360 }, { 0x4f6a, 0x5f8a },{ 0x4f75, 0x5e76 },{ 0x4f86, 0x6765 },{ 0x4f96, 0x4ed1 }, { 0x4f9a, 0x5f87 },{ 0x4fb6, 0x4fa3 },{ 0x4fb7, 0x5c40 },{ 0x4fc1, 0x4fe3 }, { 0x4fc2, 0x7cfb },{ 0x4fe0, 0x4fa0 },{ 0x5000, 0x4f25 },{ 0x5006, 0x4fe9 }, { 0x5009, 0x4ed3 },{ 0x500b, 0x4e2a },{ 0x5011, 0x4eec },{ 0x5016, 0x5e78 }, { 0x5023, 0x4eff },{ 0x502b, 0x4f26 },{ 0x5049, 0x4f1f },{ 0x506a, 0x903c }, { 0x5074, 0x4fa7 },{ 0x5075, 0x4fa6 },{ 0x507a, 0x54b1 },{ 0x507d, 0x4f2a }, { 0x5091, 0x6770 },{ 0x5096, 0x4f27 },{ 0x5098, 0x4f1e },{ 0x5099, 0x5907 }, { 0x509a, 0x6548 },{ 0x50a2, 0x5bb6 },{ 0x50ad, 0x4f63 },{ 0x50af, 0x506c }, { 0x50b3, 0x4f20 },{ 0x50b4, 0x4f1b },{ 0x50b5, 0x503a },{ 0x50b7, 0x4f24 }, { 0x50be, 0x503e },{ 0x50c2, 0x507b },{ 0x50c5, 0x4ec5 },{ 0x50c9, 0x4f65 }, { 0x50ca, 0x4ed9 },{ 0x50d1, 0x4fa8 },{ 0x50d5, 0x4ec6 },{ 0x50e3, 0x50ed }, { 0x50e5, 0x4fa5 },{ 0x50e8, 0x507e },{ 0x50f1, 0x96c7 },{ 0x50f9, 0x4ef7 }, { 0x5100, 0x4eea },{ 0x5102, 0x4fac },{ 0x5104, 0x4ebf },{ 0x5105, 0x5f53 }, { 0x5108, 0x4fa9 },{ 0x5109, 0x4fed },{ 0x5110, 0x50a7 },{ 0x5114, 0x4fe6 }, { 0x5115, 0x4faa },{ 0x5118, 0x5c3d },{ 0x511f, 0x507f },{ 0x512a, 0x4f18 }, { 0x5132, 0x50a8 },{ 0x5137, 0x4fea },{ 0x5138, 0x7f57 },{ 0x513a, 0x50a9 }, { 0x513b, 0x50a5 },{ 0x513c, 0x4fe8 },{ 0x5147, 0x51f6 },{ 0x514c, 0x5151 }, { 0x5152, 0x513f },{ 0x5157, 0x5156 },{ 0x5167, 0x5185 },{ 0x5169, 0x4e24 }, { 0x518a, 0x518c },{ 0x5191, 0x80c4 },{ 0x51aa, 0x5e42 },{ 0x51c5, 0x6db8 }, { 0x51c8, 0x51c0 },{ 0x51cd, 0x51bb },{ 0x51dc, 0x51db },{ 0x51f1, 0x51ef }, { 0x5225, 0x522b },{ 0x522a, 0x5220 },{ 0x5244, 0x522d },{ 0x5247, 0x5219 }, { 0x5249, 0x9509 },{ 0x524b, 0x514b },{ 0x524e, 0x5239 },{ 0x525b, 0x521a }, { 0x525d, 0x5265 },{ 0x526e, 0x5250 },{ 0x5274, 0x5240 },{ 0x5275, 0x521b }, { 0x5277, 0x94f2 },{ 0x5283, 0x5212 },{ 0x5284, 0x672d },{ 0x5287, 0x5267 }, { 0x5289, 0x5218 },{ 0x528a, 0x523d },{ 0x528c, 0x523f },{ 0x528d, 0x5251 }, { 0x5291, 0x5242 },{ 0x52bb, 0x5321 },{ 0x52c1, 0x52b2 },{ 0x52d5, 0x52a8 }, { 0x52d7, 0x52d6 },{ 0x52d9, 0x52a1 },{ 0x52db, 0x52cb },{ 0x52dd, 0x80dc }, { 0x52de, 0x52b3 },{ 0x52e2, 0x52bf },{ 0x52e3, 0x7ee9 },{ 0x52e6, 0x527f }, { 0x52f1, 0x52a2 },{ 0x52f3, 0x52cb },{ 0x52f5, 0x52b1 },{ 0x52f8, 0x529d }, { 0x52fb, 0x5300 },{ 0x530b, 0x9676 },{ 0x532d, 0x5326 },{ 0x532f, 0x6c47 }, { 0x5331, 0x532e },{ 0x5340, 0x533a },{ 0x5344, 0x5eff },{ 0x5354, 0x534f }, { 0x536c, 0x6602 },{ 0x5379, 0x6064 },{ 0x537b, 0x5374 },{ 0x5399, 0x538d }, { 0x53ad, 0x538c },{ 0x53b2, 0x5389 },{ 0x53b4, 0x53a3 },{ 0x53c3, 0x53c2 }, { 0x53e1, 0x777f },{ 0x53e2, 0x4e1b },{ 0x540b, 0x5bf8 },{ 0x5433, 0x5434 }, { 0x5436, 0x5450 },{ 0x5442, 0x5415 },{ 0x544e, 0x5c3a },{ 0x54b7, 0x5555 }, { 0x54bc, 0x5459 },{ 0x54e1, 0x5458 },{ 0x5504, 0x5457 },{ 0x5538, 0x5ff5 }, { 0x554f, 0x95ee },{ 0x5557, 0x5556 },{ 0x555e, 0x54d1 },{ 0x555f, 0x542f }, { 0x5563, 0x8854 },{ 0x559a, 0x5524 },{ 0x55aa, 0x4e27 },{ 0x55ab, 0x5403 }, { 0x55ac, 0x4e54 },{ 0x55ae, 0x5355 },{ 0x55b2, 0x54df },{ 0x55c6, 0x545b }, { 0x55c7, 0x556c },{ 0x55ce, 0x5417 },{ 0x55da, 0x545c },{ 0x55e9, 0x5522 }, { 0x55f6, 0x54d4 },{ 0x5606, 0x53f9 },{ 0x560d, 0x55bd },{ 0x5614, 0x5455 }, { 0x5616, 0x5567 },{ 0x5617, 0x5c1d },{ 0x561c, 0x551b },{ 0x5629, 0x54d7 }, { 0x562e, 0x5520 },{ 0x562f, 0x5578 },{ 0x5630, 0x53fd },{ 0x5635, 0x54d3 }, { 0x5638, 0x5452 },{ 0x5641, 0x6076 },{ 0x5653, 0x5618 },{ 0x5660, 0x54d2 }, { 0x5665, 0x54dd },{ 0x5666, 0x54d5 },{ 0x566f, 0x55f3 },{ 0x5672, 0x54d9 }, { 0x5674, 0x55b7 },{ 0x5678, 0x5428 },{ 0x5679, 0x5f53 },{ 0x5680, 0x549b }, { 0x5687, 0x5413 },{ 0x568c, 0x54dc },{ 0x5690, 0x5c1d },{ 0x5695, 0x565c }, { 0x5699, 0x556e },{ 0x56a5, 0x54bd },{ 0x56a6, 0x5456 },{ 0x56a8, 0x5499 }, { 0x56ae, 0x5411 },{ 0x56b3, 0x55be },{ 0x56b4, 0x4e25 },{ 0x56b6, 0x5624 }, { 0x56c0, 0x556d },{ 0x56c1, 0x55eb },{ 0x56c2, 0x56a3 },{ 0x56c5, 0x5181 }, { 0x56c8, 0x5453 },{ 0x56c9, 0x7f57 },{ 0x56cc, 0x82cf },{ 0x56d1, 0x5631 }, { 0x56d3, 0x556e },{ 0x56ea, 0x56f1 },{ 0x5707, 0x56f5 },{ 0x570b, 0x56fd }, { 0x570d, 0x56f4 },{ 0x5712, 0x56ed },{ 0x5713, 0x5706 },{ 0x5716, 0x56fe }, { 0x5718, 0x56e2 },{ 0x5775, 0x4e18 },{ 0x57dc, 0x91ce },{ 0x57e1, 0x57ad }, { 0x57f7, 0x6267 },{ 0x57fc, 0x5d0e },{ 0x5805, 0x575a },{ 0x580a, 0x57a9 }, { 0x581d, 0x57da },{ 0x582f, 0x5c27 },{ 0x5831, 0x62a5 },{ 0x5834, 0x573a }, { 0x583f, 0x78b1 },{ 0x584a, 0x5757 },{ 0x584b, 0x8314 },{ 0x584f, 0x57b2 }, { 0x5852, 0x57d8 },{ 0x5857, 0x6d82 },{ 0x585a, 0x51a2 },{ 0x5862, 0x575e }, { 0x5864, 0x57d9 },{ 0x5875, 0x5c18 },{ 0x5879, 0x5811 },{ 0x588a, 0x57ab }, { 0x5891, 0x5892 },{ 0x589c, 0x5760 },{ 0x58ab, 0x6a3d },{ 0x58ae, 0x5815 }, { 0x58b3, 0x575f },{ 0x58bb, 0x5899 },{ 0x58be, 0x57a6 },{ 0x58c7, 0x575b }, { 0x58ce, 0x57d9 },{ 0x58d3, 0x538b },{ 0x58d8, 0x5792 },{ 0x58d9, 0x5739 }, { 0x58da, 0x5786 },{ 0x58de, 0x574f },{ 0x58df, 0x5784 },{ 0x58e2, 0x575c }, { 0x58e9, 0x575d },{ 0x58ef, 0x58ee },{ 0x58fa, 0x58f6 },{ 0x58fd, 0x5bff }, { 0x5920, 0x591f },{ 0x5922, 0x68a6 },{ 0x5925, 0x4f19 },{ 0x593e, 0x5939 }, { 0x5950, 0x5942 },{ 0x5967, 0x5965 },{ 0x5969, 0x5941 },{ 0x596a, 0x593a }, { 0x596e, 0x594b },{ 0x599d, 0x5986 },{ 0x59b3, 0x4f60 },{ 0x59cd, 0x59d7 }, { 0x59e6, 0x5978 },{ 0x59ea, 0x4f84 },{ 0x5a1b, 0x5a31 },{ 0x5a41, 0x5a04 }, { 0x5a66, 0x5987 },{ 0x5a6c, 0x6deb },{ 0x5a6d, 0x5a05 },{ 0x5aa7, 0x5a32 }, { 0x5aae, 0x5077 },{ 0x5aaf, 0x59ab },{ 0x5abc, 0x5aaa },{ 0x5abd, 0x5988 }, { 0x5abf, 0x6127 },{ 0x5acb, 0x8885 },{ 0x5ad7, 0x59aa },{ 0x5af5, 0x59a9 }, { 0x5afb, 0x5a34 },{ 0x5b08, 0x5a06 },{ 0x5b0b, 0x5a75 },{ 0x5b0c, 0x5a07 }, { 0x5b19, 0x5af1 },{ 0x5b1d, 0x8885 },{ 0x5b21, 0x5ad2 },{ 0x5b24, 0x5b37 }, { 0x5b2a, 0x5ad4 },{ 0x5b2d, 0x5976 },{ 0x5b30, 0x5a74 },{ 0x5b38, 0x5a76 }, { 0x5b43, 0x5a18 },{ 0x5b4c, 0x5a08 },{ 0x5b6b, 0x5b59 },{ 0x5b78, 0x5b66 }, { 0x5b7f, 0x5b6a },{ 0x5bae, 0x5bab },{ 0x5bd8, 0x7f6e },{ 0x5be2, 0x5bdd }, { 0x5be6, 0x5b9e },{ 0x5be7, 0x5b81 },{ 0x5be9, 0x5ba1 },{ 0x5beb, 0x5199 }, { 0x5bec, 0x5bbd },{ 0x5bf5, 0x5ba0 },{ 0x5bf6, 0x5b9d },{ 0x5c07, 0x5c06 }, { 0x5c08, 0x4e13 },{ 0x5c0b, 0x5bfb },{ 0x5c0d, 0x5bf9 },{ 0x5c0e, 0x5bfc }, { 0x5c37, 0x5c34 },{ 0x5c46, 0x5c4a },{ 0x5c4d, 0x5c38 },{ 0x5c5c, 0x5c49 }, { 0x5c5d, 0x6249 },{ 0x5c62, 0x5c61 },{ 0x5c64, 0x5c42 },{ 0x5c68, 0x5c66 }, { 0x5c6c, 0x5c5e },{ 0x5ca1, 0x5188 },{ 0x5cf4, 0x5c98 },{ 0x5cf6, 0x5c9b }, { 0x5cfd, 0x5ce1 },{ 0x5d0d, 0x5d03 },{ 0x5d11, 0x6606 },{ 0x5d17, 0x5c97 }, { 0x5d19, 0x4ed1 },{ 0x5d20, 0x5cbd },{ 0x5d22, 0x5ce5 },{ 0x5d33, 0x5d5b }, { 0x5d50, 0x5c9a },{ 0x5d52, 0x5ca9 },{ 0x5d81, 0x5d5d },{ 0x5d84, 0x5d2d }, { 0x5d87, 0x5c96 },{ 0x5d97, 0x5d02 },{ 0x5da0, 0x5ce4 },{ 0x5da7, 0x5cc4 }, { 0x5db8, 0x5d58 },{ 0x5dba, 0x5cad },{ 0x5dbc, 0x5c7f },{ 0x5dbd, 0x5cb3 }, { 0x5dcb, 0x5cbf },{ 0x5dd2, 0x5ce6 },{ 0x5dd4, 0x5dc5 },{ 0x5dd6, 0x5ca9 }, { 0x5df0, 0x5def },{ 0x5df9, 0x537a },{ 0x5e25, 0x5e05 },{ 0x5e2b, 0x5e08 }, { 0x5e33, 0x5e10 },{ 0x5e36, 0x5e26 },{ 0x5e40, 0x5e27 },{ 0x5e43, 0x5e0f }, { 0x5e57, 0x5e3c },{ 0x5e58, 0x5e3b },{ 0x5e5f, 0x5e1c },{ 0x5e63, 0x5e01 }, { 0x5e6b, 0x5e2e },{ 0x5e6c, 0x5e31 },{ 0x5e75, 0x5f00 },{ 0x5e79, 0x5e72 }, { 0x5e7e, 0x51e0 },{ 0x5e82, 0x4ec4 },{ 0x5eab, 0x5e93 },{ 0x5ec1, 0x5395 }, { 0x5ec2, 0x53a2 },{ 0x5ec4, 0x53a9 },{ 0x5ec8, 0x53a6 },{ 0x5eda, 0x53a8 }, { 0x5edd, 0x53ae },{ 0x5edf, 0x5e99 },{ 0x5ee0, 0x5382 },{ 0x5ee1, 0x5e91 }, { 0x5ee2, 0x5e9f },{ 0x5ee3, 0x5e7f },{ 0x5ee9, 0x5eea },{ 0x5eec, 0x5e90 }, { 0x5ef1, 0x75c8 },{ 0x5ef3, 0x5385 },{ 0x5f12, 0x5f11 },{ 0x5f14, 0x540a }, { 0x5f33, 0x5f2a },{ 0x5f35, 0x5f20 },{ 0x5f37, 0x5f3a },{ 0x5f46, 0x522b }, { 0x5f48, 0x5f39 },{ 0x5f4a, 0x5f3a },{ 0x5f4c, 0x5f25 },{ 0x5f4e, 0x5f2f }, { 0x5f59, 0x6c47 },{ 0x5f65, 0x5f66 },{ 0x5f6b, 0x96d5 },{ 0x5f7f, 0x4f5b }, { 0x5f8c, 0x540e },{ 0x5f91, 0x5f84 },{ 0x5f9e, 0x4ece },{ 0x5fa0, 0x5f95 }, { 0x5fa9, 0x590d },{ 0x5fac, 0x65c1 },{ 0x5fb9, 0x5f7b },{ 0x6046, 0x6052 }, { 0x6065, 0x803b },{ 0x6085, 0x60a6 },{ 0x60b5, 0x6005 },{ 0x60b6, 0x95f7 }, { 0x60bd, 0x51c4 },{ 0x60c7, 0x6566 },{ 0x60e1, 0x6076 },{ 0x60f1, 0x607c }, { 0x60f2, 0x607d },{ 0x60f7, 0x8822 },{ 0x60fb, 0x607b },{ 0x611b, 0x7231 }, { 0x611c, 0x60ec },{ 0x6128, 0x60ab },{ 0x6134, 0x6006 },{ 0x6137, 0x607a }, { 0x613e, 0x5ffe },{ 0x6144, 0x6817 },{ 0x6147, 0x6bb7 },{ 0x614b, 0x6001 }, { 0x614d, 0x6120 },{ 0x6158, 0x60e8 },{ 0x615a, 0x60ed },{ 0x615f, 0x6078 }, { 0x6163, 0x60ef },{ 0x616a, 0x6004 },{ 0x616b, 0x6002 },{ 0x616e, 0x8651 }, { 0x6173, 0x60ad },{ 0x6176, 0x5e86 },{ 0x617c, 0x621a },{ 0x617e, 0x6b32 }, { 0x6182, 0x5fe7 },{ 0x618a, 0x60eb },{ 0x6190, 0x601c },{ 0x6191, 0x51ed }, { 0x6192, 0x6126 },{ 0x619a, 0x60ee },{ 0x61a4, 0x6124 },{ 0x61ab, 0x60af }, { 0x61ae, 0x6003 },{ 0x61b2, 0x5baa },{ 0x61b6, 0x5fc6 },{ 0x61c3, 0x52e4 }, { 0x61c7, 0x6073 },{ 0x61c9, 0x5e94 },{ 0x61cc, 0x603f },{ 0x61cd, 0x61d4 }, { 0x61de, 0x8499 },{ 0x61df, 0x603c },{ 0x61e3, 0x61d1 },{ 0x61e8, 0x6079 }, { 0x61f2, 0x60e9 },{ 0x61f6, 0x61d2 },{ 0x61f7, 0x6000 },{ 0x61f8, 0x60ac }, { 0x61fa, 0x5fcf },{ 0x61fc, 0x60e7 },{ 0x61fe, 0x6151 },{ 0x6200, 0x604b }, { 0x6207, 0x6206 },{ 0x6209, 0x94ba },{ 0x6214, 0x620b },{ 0x6227, 0x6217 }, { 0x6229, 0x622c },{ 0x6230, 0x6218 },{ 0x6232, 0x620f },{ 0x6236, 0x6237 }, { 0x6250, 0x4ec2 },{ 0x625e, 0x634d },{ 0x6271, 0x63d2 },{ 0x627a, 0x62b5 }, { 0x6283, 0x62da },{ 0x6294, 0x62b1 },{ 0x62b4, 0x66f3 },{ 0x62cb, 0x629b }, { 0x62d1, 0x94b3 },{ 0x630c, 0x683c },{ 0x6336, 0x5c40 },{ 0x633e, 0x631f }, { 0x6368, 0x820d },{ 0x636b, 0x626a },{ 0x6372, 0x5377 },{ 0x6383, 0x626b }, { 0x6384, 0x62a1 },{ 0x6399, 0x6323 },{ 0x639b, 0x6302 },{ 0x63a1, 0x91c7 }, { 0x63c0, 0x62e3 },{ 0x63da, 0x626c },{ 0x63db, 0x6362 },{ 0x63ee, 0x6325 }, { 0x63f9, 0x80cc },{ 0x6406, 0x6784 },{ 0x640d, 0x635f },{ 0x6416, 0x6447 }, { 0x6417, 0x6363 },{ 0x641f, 0x64c0 },{ 0x6425, 0x6376 },{ 0x6428, 0x6253 }, { 0x642f, 0x638f },{ 0x6436, 0x62a2 },{ 0x643e, 0x69a8 },{ 0x6440, 0x6342 }, { 0x6443, 0x625b },{ 0x6451, 0x63b4 },{ 0x645c, 0x63bc },{ 0x645f, 0x6402 }, { 0x646f, 0x631a },{ 0x6473, 0x62a0 },{ 0x6476, 0x629f },{ 0x647b, 0x63ba }, { 0x6488, 0x635e },{ 0x6490, 0x6491 },{ 0x6493, 0x6320 },{ 0x649a, 0x637b }, { 0x649f, 0x6322 },{ 0x64a2, 0x63b8 },{ 0x64a3, 0x63b8 },{ 0x64a5, 0x62e8 }, { 0x64a6, 0x626f },{ 0x64ab, 0x629a },{ 0x64b2, 0x6251 },{ 0x64b3, 0x63ff }, { 0x64bb, 0x631e },{ 0x64be, 0x631d },{ 0x64bf, 0x6361 },{ 0x64c1, 0x62e5 }, { 0x64c4, 0x63b3 },{ 0x64c7, 0x62e9 },{ 0x64ca, 0x51fb },{ 0x64cb, 0x6321 }, { 0x64d4, 0x62c5 },{ 0x64da, 0x636e },{ 0x64e0, 0x6324 },{ 0x64e3, 0x6363 }, { 0x64ec, 0x62df },{ 0x64ef, 0x6448 },{ 0x64f0, 0x62e7 },{ 0x64f1, 0x6401 }, { 0x64f2, 0x63b7 },{ 0x64f4, 0x6269 },{ 0x64f7, 0x64b7 },{ 0x64fa, 0x6446 }, { 0x64fb, 0x64de },{ 0x64fc, 0x64b8 },{ 0x64fe, 0x6270 },{ 0x6504, 0x6445 }, { 0x6506, 0x64b5 },{ 0x650f, 0x62e2 },{ 0x6514, 0x62e6 },{ 0x6516, 0x6484 }, { 0x6519, 0x6400 },{ 0x651b, 0x64ba },{ 0x651c, 0x643a },{ 0x651d, 0x6444 }, { 0x6522, 0x6512 },{ 0x6523, 0x631b },{ 0x6524, 0x644a },{ 0x652a, 0x6405 }, { 0x652c, 0x63fd },{ 0x6537, 0x8003 },{ 0x6557, 0x8d25 },{ 0x6558, 0x53d9 }, { 0x6575, 0x654c },{ 0x6578, 0x6570 },{ 0x6582, 0x655b },{ 0x6583, 0x6bd9 }, { 0x6595, 0x6593 },{ 0x65ac, 0x65a9 },{ 0x65b7, 0x65ad },{ 0x65c2, 0x65d7 }, { 0x65db, 0x5e61 },{ 0x6607, 0x5347 },{ 0x6642, 0x65f6 },{ 0x6649, 0x664b }, { 0x665d, 0x663c },{ 0x665e, 0x66e6 },{ 0x6662, 0x6670 },{ 0x667b, 0x6697 }, { 0x6688, 0x6655 },{ 0x6689, 0x6656 },{ 0x6698, 0x9633 },{ 0x66a2, 0x7545 }, { 0x66ab, 0x6682 },{ 0x66b1, 0x6635 },{ 0x66b8, 0x4e86 },{ 0x66c4, 0x6654 }, { 0x66c6, 0x5386 },{ 0x66c7, 0x6619 },{ 0x66c9, 0x6653 },{ 0x66cf, 0x5411 }, { 0x66d6, 0x66a7 },{ 0x66e0, 0x65f7 },{ 0x66ec, 0x6652 },{ 0x66f8, 0x4e66 }, { 0x6703, 0x4f1a },{ 0x6722, 0x671b },{ 0x6727, 0x80e7 },{ 0x672e, 0x672f }, { 0x6747, 0x572c },{ 0x6771, 0x4e1c },{ 0x67b4, 0x62d0 },{ 0x67f5, 0x6805 }, { 0x67fa, 0x62d0 },{ 0x6812, 0x65ec },{ 0x686e, 0x676f },{ 0x687f, 0x6746 }, { 0x6894, 0x6800 },{ 0x689d, 0x6761 },{ 0x689f, 0x67ad },{ 0x68b1, 0x6346 }, { 0x68c4, 0x5f03 },{ 0x68d6, 0x67a8 },{ 0x68d7, 0x67a3 },{ 0x68df, 0x680b }, { 0x68e7, 0x6808 },{ 0x68f2, 0x6816 },{ 0x690f, 0x6860 },{ 0x6944, 0x533e }, { 0x694a, 0x6768 },{ 0x6953, 0x67ab },{ 0x6959, 0x8302 },{ 0x695c, 0x80e1 }, { 0x6968, 0x6862 },{ 0x696d, 0x4e1a },{ 0x6975, 0x6781 },{ 0x69a6, 0x5e72 }, { 0x69aa, 0x6769 },{ 0x69ae, 0x8363 },{ 0x69bf, 0x6864 },{ 0x69c3, 0x76d8 }, { 0x69cb, 0x6784 },{ 0x69cd, 0x67aa },{ 0x69d3, 0x6760 },{ 0x69e7, 0x6920 }, { 0x69e8, 0x6901 },{ 0x69f3, 0x6868 },{ 0x6a01, 0x6869 },{ 0x6a02, 0x4e50 }, { 0x6a05, 0x679e },{ 0x6a11, 0x6881 },{ 0x6a13, 0x697c },{ 0x6a19, 0x6807 }, { 0x6a1e, 0x67a2 },{ 0x6a23, 0x6837 },{ 0x6a38, 0x6734 },{ 0x6a39, 0x6811 }, { 0x6a3a, 0x6866 },{ 0x6a48, 0x6861 },{ 0x6a4b, 0x6865 },{ 0x6a5f, 0x673a }, { 0x6a62, 0x692d },{ 0x6a66, 0x5e62 },{ 0x6a6b, 0x6a2a },{ 0x6a81, 0x6aa9 }, { 0x6a89, 0x67fd },{ 0x6a94, 0x6863 },{ 0x6a9c, 0x6867 },{ 0x6aa2, 0x68c0 }, { 0x6aa3, 0x6a2f },{ 0x6aaf, 0x53f0 },{ 0x6ab3, 0x69df },{ 0x6ab8, 0x67e0 }, { 0x6abb, 0x69db },{ 0x6ac2, 0x68f9 },{ 0x6ac3, 0x67dc },{ 0x6ad0, 0x7d2f }, { 0x6ad3, 0x6a79 },{ 0x6ada, 0x6988 },{ 0x6adb, 0x6809 },{ 0x6add, 0x691f }, { 0x6ade, 0x6a7c },{ 0x6adf, 0x680e },{ 0x6ae5, 0x6a71 },{ 0x6ae7, 0x69e0 }, { 0x6ae8, 0x680c },{ 0x6aea, 0x67a5 },{ 0x6aeb, 0x6a65 },{ 0x6aec, 0x6987 }, { 0x6af3, 0x680a },{ 0x6af8, 0x6989 },{ 0x6afa, 0x68c2 },{ 0x6afb, 0x6a31 }, { 0x6b04, 0x680f },{ 0x6b0a, 0x6743 },{ 0x6b0f, 0x6924 },{ 0x6b12, 0x683e }, { 0x6b16, 0x6984 },{ 0x6b1e, 0x68c2 },{ 0x6b38, 0x5509 },{ 0x6b3d, 0x94a6 }, { 0x6b4e, 0x53f9 },{ 0x6b50, 0x6b27 },{ 0x6b5f, 0x6b24 },{ 0x6b61, 0x6b22 }, { 0x6b72, 0x5c81 },{ 0x6b77, 0x5386 },{ 0x6b78, 0x5f52 },{ 0x6b7f, 0x6b81 }, { 0x6b80, 0x592d },{ 0x6b98, 0x6b8b },{ 0x6b9e, 0x6b92 },{ 0x6ba4, 0x6b87 }, { 0x6bab, 0x6b9a },{ 0x6bad, 0x50f5 },{ 0x6bae, 0x6b93 },{ 0x6baf, 0x6ba1 }, { 0x6bb2, 0x6b7c },{ 0x6bba, 0x6740 },{ 0x6bbc, 0x58f3 },{ 0x6bbd, 0x80b4 }, { 0x6bc0, 0x6bc1 },{ 0x6bc6, 0x6bb4 },{ 0x6bcc, 0x6bcb },{ 0x6bd8, 0x6bd7 }, { 0x6bec, 0x7403 },{ 0x6bff, 0x6bf5 },{ 0x6c08, 0x6be1 },{ 0x6c0c, 0x6c07 }, { 0x6c23, 0x6c14 },{ 0x6c2b, 0x6c22 },{ 0x6c2c, 0x6c29 },{ 0x6c33, 0x6c32 }, { 0x6c3e, 0x6cdb },{ 0x6c46, 0x6c3d },{ 0x6c4d, 0x4e38 },{ 0x6c4e, 0x6cdb }, { 0x6c59, 0x6c61 },{ 0x6c7a, 0x51b3 },{ 0x6c8d, 0x51b1 },{ 0x6c92, 0x6ca1 }, { 0x6c96, 0x51b2 },{ 0x6cc1, 0x51b5 },{ 0x6cdd, 0x6eaf },{ 0x6d1f, 0x6d95 }, { 0x6d29, 0x6cc4 },{ 0x6d36, 0x6c79 },{ 0x6d6c, 0x91cc },{ 0x6d79, 0x6d43 }, { 0x6d87, 0x6cfe },{ 0x6dbc, 0x51c9 },{ 0x6dd2, 0x51c4 },{ 0x6dda, 0x6cea }, { 0x6de5, 0x6e0c },{ 0x6de8, 0x51c0 },{ 0x6dea, 0x6ca6 },{ 0x6df5, 0x6e0a }, { 0x6df6, 0x6d9e },{ 0x6dfa, 0x6d45 },{ 0x6e19, 0x6da3 },{ 0x6e1b, 0x51cf }, { 0x6e26, 0x6da1 },{ 0x6e2c, 0x6d4b },{ 0x6e3e, 0x6d51 },{ 0x6e4a, 0x51d1 }, { 0x6e5e, 0x6d48 },{ 0x6e63, 0x95f5 },{ 0x6e67, 0x6d8c },{ 0x6e6f, 0x6c64 }, { 0x6e88, 0x6ca9 },{ 0x6e96, 0x51c6 },{ 0x6e9d, 0x6c9f },{ 0x6eab, 0x6e29 }, { 0x6ebc, 0x6e7f },{ 0x6ec4, 0x6ca7 },{ 0x6ec5, 0x706d },{ 0x6ecc, 0x6da4 }, { 0x6ece, 0x8365 },{ 0x6eec, 0x6caa },{ 0x6eef, 0x6ede },{ 0x6ef2, 0x6e17 }, { 0x6ef7, 0x5364 },{ 0x6ef8, 0x6d52 },{ 0x6efe, 0x6eda },{ 0x6eff, 0x6ee1 }, { 0x6f01, 0x6e14 },{ 0x6f1a, 0x6ca4 },{ 0x6f22, 0x6c49 },{ 0x6f23, 0x6d9f }, { 0x6f2c, 0x6e0d },{ 0x6f32, 0x6da8 },{ 0x6f35, 0x6e86 },{ 0x6f38, 0x6e10 }, { 0x6f3f, 0x6d46 },{ 0x6f41, 0x988d },{ 0x6f51, 0x6cfc },{ 0x6f54, 0x6d01 }, { 0x6f5b, 0x6f5c },{ 0x6f5f, 0x8204 },{ 0x6f64, 0x6da6 },{ 0x6f6f, 0x6d54 }, { 0x6f70, 0x6e83 },{ 0x6f77, 0x6ed7 },{ 0x6f7f, 0x6da0 },{ 0x6f80, 0x6da9 }, { 0x6f82, 0x6f84 },{ 0x6f86, 0x6d47 },{ 0x6f87, 0x6d9d },{ 0x6f94, 0x6d69 }, { 0x6f97, 0x6da7 },{ 0x6fa0, 0x6e11 },{ 0x6fa4, 0x6cfd },{ 0x6fa9, 0x6cf6 }, { 0x6fae, 0x6d4d },{ 0x6fb1, 0x6dc0 },{ 0x6fc1, 0x6d4a },{ 0x6fc3, 0x6d53 }, { 0x6fd5, 0x6e7f },{ 0x6fd8, 0x6cde },{ 0x6fdb, 0x8499 },{ 0x6fdf, 0x6d4e }, { 0x6fe4, 0x6d9b },{ 0x6feb, 0x6ee5 },{ 0x6fec, 0x6d5a },{ 0x6ff0, 0x6f4d }, { 0x6ff1, 0x6ee8 },{ 0x6ffa, 0x6e85 },{ 0x6ffc, 0x6cfa },{ 0x6ffe, 0x6ee4 }, { 0x7001, 0x6f3e },{ 0x7005, 0x6ee2 },{ 0x7006, 0x6e0e },{ 0x7009, 0x6cfb }, { 0x700b, 0x6c88 },{ 0x700f, 0x6d4f },{ 0x7015, 0x6fd2 },{ 0x7018, 0x6cf8 }, { 0x701d, 0x6ca5 },{ 0x701f, 0x6f47 },{ 0x7020, 0x6f46 },{ 0x7026, 0x6f74 }, { 0x7027, 0x6cf7 },{ 0x7028, 0x6fd1 },{ 0x7030, 0x5f25 },{ 0x7032, 0x6f4b }, { 0x703e, 0x6f9c },{ 0x7043, 0x6ca3 },{ 0x7044, 0x6ee0 },{ 0x7051, 0x6d12 }, { 0x7055, 0x6f13 },{ 0x7058, 0x6ee9 },{ 0x705d, 0x704f },{ 0x7063, 0x6e7e }, { 0x7064, 0x6ee6 },{ 0x7069, 0x6edf },{ 0x707d, 0x707e },{ 0x70a4, 0x7167 }, { 0x70b0, 0x70ae },{ 0x70ba, 0x4e3a },{ 0x70cf, 0x4e4c },{ 0x70f4, 0x70c3 }, { 0x7121, 0x65e0 },{ 0x7149, 0x70bc },{ 0x7152, 0x709c },{ 0x7156, 0x6696 }, { 0x7159, 0x70df },{ 0x7162, 0x8315 },{ 0x7165, 0x7115 },{ 0x7169, 0x70e6 }, { 0x716c, 0x7080 },{ 0x7192, 0x8367 },{ 0x7197, 0x709d },{ 0x71b1, 0x70ed }, { 0x71be, 0x70bd },{ 0x71c1, 0x70e8 },{ 0x71c4, 0x7130 },{ 0x71c8, 0x706f }, { 0x71c9, 0x7096 },{ 0x71d0, 0x78f7 },{ 0x71d2, 0x70e7 },{ 0x71d9, 0x70eb }, { 0x71dc, 0x7116 },{ 0x71df, 0x8425 },{ 0x71e6, 0x707f },{ 0x71ec, 0x6bc1 }, { 0x71ed, 0x70db },{ 0x71f4, 0x70e9 },{ 0x71fb, 0x718f },{ 0x71fc, 0x70ec }, { 0x71fe, 0x7118 },{ 0x71ff, 0x8000 },{ 0x720d, 0x70c1 },{ 0x7210, 0x7089 }, { 0x721b, 0x70c2 },{ 0x722d, 0x4e89 },{ 0x723a, 0x7237 },{ 0x723e, 0x5c14 }, { 0x7246, 0x5899 },{ 0x7258, 0x724d },{ 0x7260, 0x5b83 },{ 0x7274, 0x62b5 }, { 0x727d, 0x7275 },{ 0x7296, 0x8366 },{ 0x729b, 0x7266 },{ 0x72a2, 0x728a }, { 0x72a7, 0x727a },{ 0x72c0, 0x72b6 },{ 0x72da, 0x65e6 },{ 0x72f9, 0x72ed }, { 0x72fd, 0x72c8 },{ 0x7319, 0x72f0 },{ 0x7336, 0x72b9 },{ 0x733b, 0x72f2 }, { 0x7343, 0x5446 },{ 0x7344, 0x72f1 },{ 0x7345, 0x72ee },{ 0x734e, 0x5956 }, { 0x7368, 0x72ec },{ 0x736a, 0x72ef },{ 0x736b, 0x7303 },{ 0x7370, 0x72de }, { 0x7372, 0x83b7 },{ 0x7375, 0x730e },{ 0x7377, 0x72b7 },{ 0x7378, 0x517d }, { 0x737a, 0x736d },{ 0x737b, 0x732e },{ 0x737c, 0x7315 },{ 0x7380, 0x7321 }, { 0x7385, 0x5999 },{ 0x7386, 0x5179 },{ 0x73a8, 0x73cf },{ 0x73ea, 0x572d }, { 0x73ee, 0x4f69 },{ 0x73fe, 0x73b0 },{ 0x7431, 0x96d5 },{ 0x743a, 0x73d0 }, { 0x743f, 0x73f2 },{ 0x744b, 0x73ae },{ 0x7463, 0x7410 },{ 0x7464, 0x7476 }, { 0x7469, 0x83b9 },{ 0x746a, 0x739b },{ 0x746f, 0x7405 },{ 0x7489, 0x740f }, { 0x74a3, 0x7391 },{ 0x74a6, 0x7477 },{ 0x74b0, 0x73af },{ 0x74bd, 0x73ba }, { 0x74bf, 0x7487 },{ 0x74ca, 0x743c },{ 0x74cf, 0x73d1 },{ 0x74d4, 0x748e }, { 0x74d6, 0x9576 },{ 0x74da, 0x74d2 },{ 0x750c, 0x74ef },{ 0x7515, 0x74ee }, { 0x7522, 0x4ea7 },{ 0x7526, 0x82cf },{ 0x752a, 0x89d2 },{ 0x752f, 0x5b81 }, { 0x755d, 0x4ea9 },{ 0x7562, 0x6bd5 },{ 0x756b, 0x753b },{ 0x756c, 0x7572 }, { 0x7570, 0x5f02 },{ 0x7576, 0x5f53 },{ 0x7587, 0x7574 },{ 0x758a, 0x53e0 }, { 0x75bf, 0x75f1 },{ 0x75d9, 0x75c9 },{ 0x75e0, 0x9178 },{ 0x75f2, 0x9ebb }, { 0x75f3, 0x9ebb },{ 0x75fa, 0x75f9 },{ 0x75fe, 0x75b4 },{ 0x7609, 0x6108 }, { 0x760b, 0x75af },{ 0x760d, 0x75a1 },{ 0x7613, 0x75ea },{ 0x761e, 0x7617 }, { 0x7621, 0x75ae },{ 0x7627, 0x759f },{ 0x763a, 0x7618 },{ 0x7642, 0x7597 }, { 0x7646, 0x75e8 },{ 0x7647, 0x75eb },{ 0x7649, 0x7605 },{ 0x7652, 0x6108 }, { 0x7658, 0x75a0 },{ 0x765f, 0x762a },{ 0x7661, 0x75f4 },{ 0x7662, 0x75d2 }, { 0x7664, 0x7596 },{ 0x7665, 0x75c7 },{ 0x7669, 0x765e },{ 0x766c, 0x7663 }, { 0x766d, 0x763f },{ 0x766e, 0x763e },{ 0x7670, 0x75c8 },{ 0x7671, 0x762b }, { 0x7672, 0x766b },{ 0x767c, 0x53d1 },{ 0x7681, 0x7682 },{ 0x769a, 0x7691 }, { 0x76b0, 0x75b1 },{ 0x76b8, 0x76b2 },{ 0x76ba, 0x76b1 },{ 0x76c3, 0x676f }, { 0x76dc, 0x76d7 },{ 0x76de, 0x76cf },{ 0x76e1, 0x5c3d },{ 0x76e3, 0x76d1 }, { 0x76e4, 0x76d8 },{ 0x76e7, 0x5362 },{ 0x76ea, 0x8361 },{ 0x7725, 0x7726 }, { 0x773e, 0x4f17 },{ 0x774f, 0x56f0 },{ 0x775c, 0x7741 },{ 0x775e, 0x7750 }, { 0x776a, 0x777e },{ 0x7787, 0x772f },{ 0x779e, 0x7792 },{ 0x77ad, 0x4e86 }, { 0x77bc, 0x7751 },{ 0x77c7, 0x8499 },{ 0x77d3, 0x80e7 },{ 0x77da, 0x77a9 }, { 0x77ef, 0x77eb },{ 0x7832, 0x70ae },{ 0x7843, 0x6731 },{ 0x7864, 0x7856 }, { 0x7868, 0x7817 },{ 0x786f, 0x781a },{ 0x7881, 0x68cb },{ 0x7895, 0x5d0e }, { 0x78a9, 0x7855 },{ 0x78aa, 0x7827 },{ 0x78ad, 0x7800 },{ 0x78ba, 0x786e }, { 0x78bc, 0x7801 },{ 0x78da, 0x7816 },{ 0x78e3, 0x789c },{ 0x78e7, 0x789b }, { 0x78ef, 0x77f6 },{ 0x78fd, 0x7857 },{ 0x790e, 0x7840 },{ 0x7919, 0x788d }, { 0x7921, 0x7934 },{ 0x7926, 0x77ff },{ 0x792a, 0x783a },{ 0x792b, 0x783e }, { 0x792c, 0x77fe },{ 0x7931, 0x783b },{ 0x7942, 0x4ed6 },{ 0x7945, 0x7946 }, { 0x7947, 0x53ea },{ 0x7950, 0x4f51 },{ 0x7955, 0x79d8 },{ 0x797c, 0x88f8 }, { 0x797f, 0x7984 },{ 0x798d, 0x7978 },{ 0x798e, 0x796f },{ 0x79a6, 0x5fa1 }, { 0x79aa, 0x7985 },{ 0x79ae, 0x793c },{ 0x79b0, 0x7962 },{ 0x79b1, 0x7977 }, { 0x79bf, 0x79c3 },{ 0x79c8, 0x7c7c },{ 0x79cf, 0x8017 },{ 0x7a05, 0x7a0e }, { 0x7a08, 0x79c6 },{ 0x7a1c, 0x68f1 },{ 0x7a1f, 0x7980 },{ 0x7a28, 0x6241 }, { 0x7a2e, 0x79cd },{ 0x7a31, 0x79f0 },{ 0x7a40, 0x8c37 },{ 0x7a4c, 0x7a23 }, { 0x7a4d, 0x79ef },{ 0x7a4e, 0x9896 },{ 0x7a61, 0x7a51 },{ 0x7a62, 0x79fd }, { 0x7a68, 0x9893 },{ 0x7a69, 0x7a33 },{ 0x7a6b, 0x83b7 },{ 0x7aa9, 0x7a9d }, { 0x7aaa, 0x6d3c },{ 0x7aae, 0x7a77 },{ 0x7aaf, 0x7a91 },{ 0x7ab6, 0x7aad }, { 0x7aba, 0x7aa5 },{ 0x7ac4, 0x7a9c },{ 0x7ac5, 0x7a8d },{ 0x7ac7, 0x7aa6 }, { 0x7aca, 0x7a83 },{ 0x7af6, 0x7ade },{ 0x7b3b, 0x7b47 },{ 0x7b46, 0x7b14 }, { 0x7b4d, 0x7b0b },{ 0x7b67, 0x7b15 },{ 0x7b74, 0x7b56 },{ 0x7b84, 0x7b85 }, { 0x7b87, 0x4e2a },{ 0x7b8b, 0x7b3a },{ 0x7b8f, 0x7b5d },{ 0x7ba0, 0x68f0 }, { 0x7bc0, 0x8282 },{ 0x7bc4, 0x8303 },{ 0x7bc9, 0x7b51 },{ 0x7bcb, 0x7ba7 }, { 0x7bdb, 0x7bac },{ 0x7be0, 0x7b71 },{ 0x7be4, 0x7b03 },{ 0x7be9, 0x7b5b }, { 0x7bf2, 0x5f57 },{ 0x7bf3, 0x7b5a },{ 0x7c00, 0x7ba6 },{ 0x7c0d, 0x7bd3 }, { 0x7c11, 0x84d1 },{ 0x7c1e, 0x7baa },{ 0x7c21, 0x7b80 },{ 0x7c23, 0x7bd1 }, { 0x7c2b, 0x7bab },{ 0x7c37, 0x6a90 },{ 0x7c3d, 0x7b7e },{ 0x7c3e, 0x5e18 }, { 0x7c43, 0x7bee },{ 0x7c4c, 0x7b79 },{ 0x7c50, 0x85e4 },{ 0x7c5c, 0x7ba8 }, { 0x7c5f, 0x7c41 },{ 0x7c60, 0x7b3c },{ 0x7c64, 0x7b7e },{ 0x7c65, 0x9fa0 }, { 0x7c69, 0x7b3e },{ 0x7c6a, 0x7c16 },{ 0x7c6c, 0x7bf1 },{ 0x7c6e, 0x7ba9 }, { 0x7c72, 0x5401 },{ 0x7ca7, 0x5986 },{ 0x7cb5, 0x7ca4 },{ 0x7cdd, 0x7cc1 }, { 0x7cde, 0x7caa },{ 0x7ce2, 0x998d },{ 0x7ce7, 0x7cae },{ 0x7cf0, 0x56e2 }, { 0x7cf2, 0x7c9d },{ 0x7cf4, 0x7c74 },{ 0x7cf6, 0x7c9c },{ 0x7cfe, 0x7ea0 }, { 0x7d00, 0x7eaa },{ 0x7d02, 0x7ea3 },{ 0x7d04, 0x7ea6 },{ 0x7d05, 0x7ea2 }, { 0x7d06, 0x7ea1 },{ 0x7d07, 0x7ea5 },{ 0x7d08, 0x7ea8 },{ 0x7d09, 0x7eab }, { 0x7d0b, 0x7eb9 },{ 0x7d0d, 0x7eb3 },{ 0x7d10, 0x7ebd },{ 0x7d13, 0x7ebe }, { 0x7d14, 0x7eaf },{ 0x7d15, 0x7eb0 },{ 0x7d17, 0x7eb1 },{ 0x7d19, 0x7eb8 }, { 0x7d1a, 0x7ea7 },{ 0x7d1b, 0x7eb7 },{ 0x7d1c, 0x7ead },{ 0x7d21, 0x7eba }, { 0x7d2e, 0x624e },{ 0x7d30, 0x7ec6 },{ 0x7d31, 0x7ec2 },{ 0x7d32, 0x7ec1 }, { 0x7d33, 0x7ec5 },{ 0x7d39, 0x7ecd },{ 0x7d3a, 0x7ec0 },{ 0x7d3c, 0x7ecb }, { 0x7d3f, 0x7ed0 },{ 0x7d40, 0x7ecc },{ 0x7d42, 0x7ec8 },{ 0x7d43, 0x5f26 }, { 0x7d44, 0x7ec4 },{ 0x7d46, 0x7eca },{ 0x7d4e, 0x7ed7 },{ 0x7d50, 0x7ed3 }, { 0x7d55, 0x7edd },{ 0x7d5b, 0x7ee6 },{ 0x7d5e, 0x7ede },{ 0x7d61, 0x7edc }, { 0x7d62, 0x7eda },{ 0x7d66, 0x7ed9 },{ 0x7d68, 0x7ed2 },{ 0x7d71, 0x7edf }, { 0x7d72, 0x4e1d },{ 0x7d73, 0x7edb },{ 0x7d79, 0x7ee2 },{ 0x7d81, 0x7ed1 }, { 0x7d83, 0x7ee1 },{ 0x7d86, 0x7ee0 },{ 0x7d88, 0x7ee8 },{ 0x7d8f, 0x7ee5 }, { 0x7d91, 0x6346 },{ 0x7d93, 0x7ecf },{ 0x7d9c, 0x7efc },{ 0x7d9e, 0x7f0d }, { 0x7da0, 0x7eff },{ 0x7da2, 0x7ef8 },{ 0x7da3, 0x7efb },{ 0x7dac, 0x7ef6 }, { 0x7dad, 0x7ef4 },{ 0x7db0, 0x7efe },{ 0x7db1, 0x7eb2 },{ 0x7db2, 0x7f51 }, { 0x7db4, 0x7f00 },{ 0x7db5, 0x5f69 },{ 0x7db8, 0x7eb6 },{ 0x7db9, 0x7efa }, { 0x7dba, 0x7eee },{ 0x7dbb, 0x7efd },{ 0x7dbd, 0x7ef0 },{ 0x7dbe, 0x7eeb }, { 0x7dbf, 0x7ef5 },{ 0x7dc4, 0x7ef2 },{ 0x7dc7, 0x7f01 },{ 0x7dca, 0x7d27 }, { 0x7dcb, 0x7eef },{ 0x7dd2, 0x7eea },{ 0x7dd7, 0x7f03 },{ 0x7dd8, 0x7f04 }, { 0x7dd9, 0x7f02 },{ 0x7dda, 0x7ebf },{ 0x7ddd, 0x7f09 },{ 0x7dde, 0x7f0e }, { 0x7de0, 0x7f14 },{ 0x7de1, 0x7f17 },{ 0x7de3, 0x7f18 },{ 0x7de6, 0x7f0c }, { 0x7de8, 0x7f16 },{ 0x7de9, 0x7f13 },{ 0x7dec, 0x7f05 },{ 0x7def, 0x7eac }, { 0x7df1, 0x7f11 },{ 0x7df2, 0x7f08 },{ 0x7df4, 0x7ec3 },{ 0x7df6, 0x7f0f }, { 0x7df9, 0x7f07 },{ 0x7dfb, 0x81f4 },{ 0x7e08, 0x8426 },{ 0x7e09, 0x7f19 }, { 0x7e0a, 0x7f22 },{ 0x7e0b, 0x7f12 },{ 0x7e10, 0x7ec9 },{ 0x7e11, 0x7f23 }, { 0x7e1a, 0x7ee6 },{ 0x7e1b, 0x7f1a },{ 0x7e1d, 0x7f1c },{ 0x7e1e, 0x7f1f }, { 0x7e1f, 0x7f1b },{ 0x7e23, 0x53bf },{ 0x7e2b, 0x7f1d },{ 0x7e2d, 0x7f21 }, { 0x7e2e, 0x7f29 },{ 0x7e2f, 0x6f14 },{ 0x7e31, 0x7eb5 },{ 0x7e32, 0x7f27 }, { 0x7e33, 0x7f1a },{ 0x7e34, 0x7ea4 },{ 0x7e35, 0x7f26 },{ 0x7e36, 0x7d77 }, { 0x7e37, 0x7f15 },{ 0x7e39, 0x7f25 },{ 0x7e3d, 0x603b },{ 0x7e3e, 0x7ee9 }, { 0x7e43, 0x7ef7 },{ 0x7e45, 0x7f2b },{ 0x7e46, 0x7f2a },{ 0x7e48, 0x8941 }, { 0x7e52, 0x7f2f },{ 0x7e54, 0x7ec7 },{ 0x7e55, 0x7f2e },{ 0x7e59, 0x7ffb }, { 0x7e5a, 0x7f2d },{ 0x7e5e, 0x7ed5 },{ 0x7e61, 0x7ee3 },{ 0x7e62, 0x7f0b }, { 0x7e69, 0x7ef3 },{ 0x7e6a, 0x7ed8 },{ 0x7e6b, 0x7cfb },{ 0x7e6d, 0x8327 }, { 0x7e6f, 0x7f33 },{ 0x7e70, 0x7f32 },{ 0x7e73, 0x7f34 },{ 0x7e79, 0x7ece }, { 0x7e7c, 0x7ee7 },{ 0x7e7d, 0x7f24 },{ 0x7e7e, 0x7f31 },{ 0x7e88, 0x7f2c }, { 0x7e8a, 0x7ea9 },{ 0x7e8c, 0x7eed },{ 0x7e8d, 0x7d2f },{ 0x7e8f, 0x7f20 }, { 0x7e93, 0x7f28 },{ 0x7e94, 0x624d },{ 0x7e96, 0x7ea4 },{ 0x7e98, 0x7f35 }, { 0x7e9c, 0x7f06 },{ 0x7f3d, 0x94b5 },{ 0x7f3e, 0x74f6 },{ 0x7f48, 0x575b }, { 0x7f4c, 0x7f42 },{ 0x7f66, 0x7f58 },{ 0x7f70, 0x7f5a },{ 0x7f75, 0x9a82 }, { 0x7f77, 0x7f62 },{ 0x7f85, 0x7f57 },{ 0x7f86, 0x7f74 },{ 0x7f88, 0x7f81 }, { 0x7f8b, 0x8288 },{ 0x7fa5, 0x7f9f },{ 0x7fa8, 0x7fa1 },{ 0x7fa9, 0x4e49 }, { 0x7fb6, 0x81bb },{ 0x7fd2, 0x4e60 },{ 0x7ff9, 0x7fd8 },{ 0x8011, 0x7aef }, { 0x8021, 0x52a9 },{ 0x8024, 0x85c9 },{ 0x802c, 0x8027 },{ 0x8056, 0x5723 }, { 0x805e, 0x95fb },{ 0x806f, 0x8054 },{ 0x8070, 0x806a },{ 0x8072, 0x58f0 }, { 0x8073, 0x8038 },{ 0x8075, 0x8069 },{ 0x8076, 0x8042 },{ 0x8077, 0x804c }, { 0x8079, 0x804d },{ 0x807d, 0x542c },{ 0x807e, 0x804b },{ 0x8085, 0x8083 }, { 0x808f, 0x64cd },{ 0x8090, 0x80f3 },{ 0x80c7, 0x80ba },{ 0x80ca, 0x6710 }, { 0x8105, 0x80c1 },{ 0x8108, 0x8109 },{ 0x811b, 0x80eb },{ 0x8123, 0x5507 }, { 0x8129, 0x4fee },{ 0x812b, 0x8131 },{ 0x8139, 0x80c0 },{ 0x814e, 0x80be }, { 0x8161, 0x8136 },{ 0x8166, 0x8111 },{ 0x816b, 0x80bf },{ 0x8173, 0x811a }, { 0x8178, 0x80a0 },{ 0x8183, 0x817d },{ 0x8186, 0x55c9 },{ 0x819a, 0x80a4 }, { 0x81a0, 0x80f6 },{ 0x81a9, 0x817b },{ 0x81bd, 0x80c6 },{ 0x81be, 0x810d }, { 0x81bf, 0x8113 },{ 0x81c9, 0x8138 },{ 0x81cd, 0x8110 },{ 0x81cf, 0x8191 }, { 0x81d5, 0x8198 },{ 0x81d8, 0x814a },{ 0x81d9, 0x80ed },{ 0x81da, 0x80ea }, { 0x81df, 0x810f },{ 0x81e0, 0x8114 },{ 0x81e5, 0x5367 },{ 0x81e8, 0x4e34 }, { 0x81fa, 0x53f0 },{ 0x8207, 0x4e0e },{ 0x8208, 0x5174 },{ 0x8209, 0x4e3e }, { 0x820a, 0x65e7 },{ 0x820b, 0x8845 },{ 0x8216, 0x94fa },{ 0x8259, 0x8231 }, { 0x8263, 0x6a79 },{ 0x8264, 0x8223 },{ 0x8266, 0x8230 },{ 0x826b, 0x823b }, { 0x8271, 0x8270 },{ 0x8277, 0x8273 },{ 0x8278, 0x8279 },{ 0x82bb, 0x520d }, { 0x82e7, 0x82ce },{ 0x82fa, 0x8393 },{ 0x830d, 0x82df },{ 0x8332, 0x5179 }, { 0x8345, 0x7b54 },{ 0x834a, 0x8346 },{ 0x8373, 0x8c46 },{ 0x838a, 0x5e84 }, { 0x8396, 0x830e },{ 0x83a2, 0x835a },{ 0x83a7, 0x82cb },{ 0x83eb, 0x5807 }, { 0x83ef, 0x534e },{ 0x83f4, 0x5eb5 },{ 0x8407, 0x82cc },{ 0x840a, 0x83b1 }, { 0x842c, 0x4e07 },{ 0x8435, 0x83b4 },{ 0x8449, 0x53f6 },{ 0x8452, 0x836d }, { 0x8466, 0x82c7 },{ 0x846f, 0x836f },{ 0x8477, 0x8364 },{ 0x8490, 0x641c }, { 0x8494, 0x83b3 },{ 0x849e, 0x8385 },{ 0x84bc, 0x82cd },{ 0x84c0, 0x836a }, { 0x84c6, 0x5e2d },{ 0x84cb, 0x76d6 },{ 0x84ee, 0x83b2 },{ 0x84ef, 0x82c1 }, { 0x84f4, 0x83bc },{ 0x84fd, 0x835c },{ 0x8506, 0x83f1 },{ 0x8514, 0x535c }, { 0x851e, 0x848c },{ 0x8523, 0x848b },{ 0x8525, 0x8471 },{ 0x8526, 0x8311 }, { 0x852d, 0x836b },{ 0x8541, 0x8368 },{ 0x8546, 0x8487 },{ 0x854e, 0x835e }, { 0x8553, 0x82b8 },{ 0x8555, 0x83b8 },{ 0x8558, 0x835b },{ 0x8562, 0x8489 }, { 0x8569, 0x8361 },{ 0x856a, 0x829c },{ 0x856d, 0x8427 },{ 0x8577, 0x84e3 }, { 0x8588, 0x835f },{ 0x858a, 0x84df },{ 0x858c, 0x8297 },{ 0x8591, 0x59dc }, { 0x8594, 0x8537 },{ 0x8599, 0x5243 },{ 0x859f, 0x83b6 },{ 0x85a6, 0x8350 }, { 0x85a9, 0x8428 },{ 0x85ba, 0x8360 },{ 0x85cd, 0x84dd },{ 0x85ce, 0x8369 }, { 0x85da, 0x836c },{ 0x85dd, 0x827a },{ 0x85e5, 0x836f },{ 0x85ea, 0x85ae }, { 0x85f6, 0x82c8 },{ 0x85f7, 0x85af },{ 0x85f9, 0x853c },{ 0x85fa, 0x853a }, { 0x8604, 0x8572 },{ 0x8606, 0x82a6 },{ 0x8607, 0x82cf },{ 0x860a, 0x8574 }, { 0x860b, 0x82f9 },{ 0x8617, 0x8616 },{ 0x861a, 0x85d3 },{ 0x861e, 0x8539 }, { 0x8622, 0x830f },{ 0x862d, 0x5170 },{ 0x863a, 0x84e0 },{ 0x863f, 0x841d }, { 0x8655, 0x5904 },{ 0x8656, 0x547c },{ 0x865b, 0x865a },{ 0x865c, 0x864f }, { 0x865f, 0x53f7 },{ 0x8667, 0x4e8f },{ 0x866f, 0x866c },{ 0x86fa, 0x86f1 }, { 0x86fb, 0x8715 },{ 0x8706, 0x86ac },{ 0x873a, 0x9713 },{ 0x8755, 0x8680 }, { 0x875f, 0x732c },{ 0x8766, 0x867e },{ 0x8768, 0x8671 },{ 0x8778, 0x8717 }, { 0x8784, 0x86f3 },{ 0x879e, 0x8682 },{ 0x87a2, 0x8424 },{ 0x87bb, 0x877c }, { 0x87c4, 0x86f0 },{ 0x87c8, 0x8748 },{ 0x87e3, 0x866e },{ 0x87ec, 0x8749 }, { 0x87ef, 0x86f2 },{ 0x87f2, 0x866b },{ 0x87f6, 0x86cf },{ 0x87fa, 0x87ee }, { 0x87fb, 0x8681 },{ 0x8805, 0x8747 },{ 0x8806, 0x867f },{ 0x880d, 0x874e }, { 0x8810, 0x86f4 },{ 0x8811, 0x877e },{ 0x8814, 0x869d },{ 0x881f, 0x8721 }, { 0x8823, 0x86ce },{ 0x8831, 0x86ca },{ 0x8836, 0x8695 },{ 0x8837, 0x883c }, { 0x883b, 0x86ee },{ 0x884a, 0x8511 },{ 0x8852, 0x70ab },{ 0x8853, 0x672f }, { 0x885a, 0x80e1 },{ 0x885b, 0x536b },{ 0x885d, 0x51b2 },{ 0x8879, 0x53ea }, { 0x889e, 0x886e },{ 0x88aa, 0x795b },{ 0x88ca, 0x8885 },{ 0x88cf, 0x91cc }, { 0x88dc, 0x8865 },{ 0x88dd, 0x88c5 },{ 0x88e1, 0x91cc },{ 0x88fd, 0x5236 }, { 0x8907, 0x590d },{ 0x890e, 0x8896 },{ 0x8932, 0x88e4 },{ 0x8933, 0x88e2 }, { 0x8938, 0x891b },{ 0x893b, 0x4eb5 },{ 0x8949, 0x88e5 },{ 0x8956, 0x8884 }, { 0x895d, 0x88e3 },{ 0x8960, 0x88c6 },{ 0x8964, 0x8934 },{ 0x896a, 0x889c }, { 0x896c, 0x6446 },{ 0x896f, 0x886c },{ 0x8972, 0x88ad },{ 0x897e, 0x897f }, { 0x8988, 0x6838 },{ 0x898b, 0x89c1 },{ 0x898f, 0x89c4 },{ 0x8993, 0x89c5 }, { 0x8996, 0x89c6 },{ 0x8998, 0x89c7 },{ 0x899c, 0x773a },{ 0x89a1, 0x89cb }, { 0x89a6, 0x89ce },{ 0x89aa, 0x4eb2 },{ 0x89ac, 0x89ca },{ 0x89af, 0x89cf }, { 0x89b2, 0x89d0 },{ 0x89b7, 0x89d1 },{ 0x89ba, 0x89c9 },{ 0x89bd, 0x89c8 }, { 0x89bf, 0x89cc },{ 0x89c0, 0x89c2 },{ 0x89d4, 0x7b4b },{ 0x89dd, 0x62b5 }, { 0x89f4, 0x89de },{ 0x89f6, 0x89ef },{ 0x89f8, 0x89e6 },{ 0x8a02, 0x8ba2 }, { 0x8a03, 0x8ba3 },{ 0x8a08, 0x8ba1 },{ 0x8a0a, 0x8baf },{ 0x8a0c, 0x8ba7 }, { 0x8a0e, 0x8ba8 },{ 0x8a10, 0x8ba6 },{ 0x8a13, 0x8bad },{ 0x8a15, 0x8baa }, { 0x8a16, 0x8bab },{ 0x8a17, 0x6258 },{ 0x8a18, 0x8bb0 },{ 0x8a1b, 0x8bb9 }, { 0x8a1d, 0x8bb6 },{ 0x8a1f, 0x8bbc },{ 0x8a22, 0x6b23 },{ 0x8a23, 0x8bc0 }, { 0x8a25, 0x8bb7 },{ 0x8a2a, 0x8bbf },{ 0x8a2d, 0x8bbe },{ 0x8a31, 0x8bb8 }, { 0x8a34, 0x8bc9 },{ 0x8a36, 0x8bc3 },{ 0x8a3a, 0x8bca },{ 0x8a3b, 0x6ce8 }, { 0x8a3c, 0x8bc1 },{ 0x8a41, 0x8bc2 },{ 0x8a46, 0x8bcb },{ 0x8a4e, 0x8bb5 }, { 0x8a50, 0x8bc8 },{ 0x8a52, 0x8bd2 },{ 0x8a54, 0x8bcf },{ 0x8a55, 0x8bc4 }, { 0x8a58, 0x8bce },{ 0x8a5b, 0x8bc5 },{ 0x8a5e, 0x8bcd },{ 0x8a60, 0x548f }, { 0x8a61, 0x8be9 },{ 0x8a62, 0x8be2 },{ 0x8a63, 0x8be3 },{ 0x8a66, 0x8bd5 }, { 0x8a69, 0x8bd7 },{ 0x8a6b, 0x8be7 },{ 0x8a6c, 0x8bdf },{ 0x8a6d, 0x8be1 }, { 0x8a6e, 0x8be0 },{ 0x8a70, 0x8bd8 },{ 0x8a71, 0x8bdd },{ 0x8a72, 0x8be5 }, { 0x8a73, 0x8be6 },{ 0x8a75, 0x8bdc },{ 0x8a76, 0x916c },{ 0x8a7b, 0x54af }, { 0x8a7c, 0x8bd9 },{ 0x8a7f, 0x8bd6 },{ 0x8a84, 0x8bd4 },{ 0x8a85, 0x8bdb }, { 0x8a86, 0x8bd3 },{ 0x8a87, 0x5938 },{ 0x8a8c, 0x5fd7 },{ 0x8a8d, 0x8ba4 }, { 0x8a91, 0x8bf3 },{ 0x8a92, 0x8bf6 },{ 0x8a95, 0x8bde },{ 0x8a98, 0x8bf1 }, { 0x8a9a, 0x8bee },{ 0x8a9e, 0x8bed },{ 0x8aa0, 0x8bda },{ 0x8aa1, 0x8beb }, { 0x8aa3, 0x8bec },{ 0x8aa4, 0x8bef },{ 0x8aa5, 0x8bf0 },{ 0x8aa6, 0x8bf5 }, { 0x8aa8, 0x8bf2 },{ 0x8aaa, 0x8bf4 },{ 0x8ab0, 0x8c01 },{ 0x8ab2, 0x8bfe }, { 0x8ab6, 0x8c07 },{ 0x8ab9, 0x8bfd },{ 0x8abc, 0x8c0a },{ 0x8abf, 0x8c03 }, { 0x8ac2, 0x8c04 },{ 0x8ac4, 0x8c06 },{ 0x8ac7, 0x8c08 },{ 0x8ac9, 0x8bff }, { 0x8acb, 0x8bf7 },{ 0x8acd, 0x8be4 },{ 0x8acf, 0x8bf9 },{ 0x8ad1, 0x8bfc }, { 0x8ad2, 0x8c05 },{ 0x8ad6, 0x8bba },{ 0x8ad7, 0x8c02 },{ 0x8adb, 0x8c00 }, { 0x8adc, 0x8c0d },{ 0x8ade, 0x8c1d },{ 0x8ae0, 0x55a7 },{ 0x8ae2, 0x8be8 }, { 0x8ae4, 0x8c14 },{ 0x8ae6, 0x8c1b },{ 0x8ae7, 0x8c10 },{ 0x8aeb, 0x8c0f }, { 0x8aed, 0x8c15 },{ 0x8aee, 0x8c18 },{ 0x8af1, 0x8bb3 },{ 0x8af3, 0x8c19 }, { 0x8af6, 0x8c0c },{ 0x8af7, 0x8bbd },{ 0x8af8, 0x8bf8 },{ 0x8afa, 0x8c1a }, { 0x8afc, 0x8c16 },{ 0x8afe, 0x8bfa },{ 0x8b00, 0x8c0b },{ 0x8b01, 0x8c12 }, { 0x8b02, 0x8c13 },{ 0x8b04, 0x8a8a },{ 0x8b05, 0x8bcc },{ 0x8b0a, 0x8c0e }, { 0x8b0e, 0x8c1c },{ 0x8b10, 0x8c27 },{ 0x8b14, 0x8c11 },{ 0x8b16, 0x8c21 }, { 0x8b17, 0x8c24 },{ 0x8b19, 0x8c26 },{ 0x8b1a, 0x8c25 },{ 0x8b1b, 0x8bb2 }, { 0x8b1d, 0x8c22 },{ 0x8b20, 0x8c23 },{ 0x8b28, 0x8c1f },{ 0x8b2b, 0x8c2a }, { 0x8b2c, 0x8c2c },{ 0x8b33, 0x8bb4 },{ 0x8b39, 0x8c28 },{ 0x8b3c, 0x547c }, { 0x8b3e, 0x8c29 },{ 0x8b41, 0x54d7 },{ 0x8b46, 0x563b },{ 0x8b49, 0x8bc1 }, { 0x8b4e, 0x8c32 },{ 0x8b4f, 0x8ba5 },{ 0x8b54, 0x64b0 },{ 0x8b56, 0x8c2e }, { 0x8b58, 0x8bc6 },{ 0x8b59, 0x8c2f },{ 0x8b5a, 0x8c2d },{ 0x8b5c, 0x8c31 }, { 0x8b5f, 0x566a },{ 0x8b6b, 0x8c35 },{ 0x8b6d, 0x6bc1 },{ 0x8b6f, 0x8bd1 }, { 0x8b70, 0x8bae },{ 0x8b74, 0x8c34 },{ 0x8b77, 0x62a4 },{ 0x8b7d, 0x8a89 }, { 0x8b7e, 0x8c2b },{ 0x8b80, 0x8bfb },{ 0x8b8a, 0x53d8 },{ 0x8b8c, 0x5bb4 }, { 0x8b8e, 0x96e0 },{ 0x8b92, 0x8c17 },{ 0x8b93, 0x8ba9 },{ 0x8b95, 0x8c30 }, { 0x8b96, 0x8c36 },{ 0x8b9a, 0x8d5e },{ 0x8b9c, 0x8c20 },{ 0x8b9e, 0x8c33 }, { 0x8c3f, 0x6eaa },{ 0x8c48, 0x5c82 },{ 0x8c4e, 0x7ad6 },{ 0x8c50, 0x4e30 }, { 0x8c54, 0x8273 },{ 0x8c56, 0x4e8d },{ 0x8c6c, 0x732a },{ 0x8c8d, 0x72f8 }, { 0x8c93, 0x732b },{ 0x8c9d, 0x8d1d },{ 0x8c9e, 0x8d1e },{ 0x8ca0, 0x8d1f }, { 0x8ca1, 0x8d22 },{ 0x8ca2, 0x8d21 },{ 0x8ca7, 0x8d2b },{ 0x8ca8, 0x8d27 }, { 0x8ca9, 0x8d29 },{ 0x8caa, 0x8d2a },{ 0x8cab, 0x8d2f },{ 0x8cac, 0x8d23 }, { 0x8caf, 0x8d2e },{ 0x8cb0, 0x8d33 },{ 0x8cb2, 0x8d40 },{ 0x8cb3, 0x8d30 }, { 0x8cb4, 0x8d35 },{ 0x8cb6, 0x8d2c },{ 0x8cb7, 0x4e70 },{ 0x8cb8, 0x8d37 }, { 0x8cba, 0x8d36 },{ 0x8cbb, 0x8d39 },{ 0x8cbc, 0x8d34 },{ 0x8cbd, 0x8d3b }, { 0x8cbf, 0x8d38 },{ 0x8cc0, 0x8d3a },{ 0x8cc1, 0x8d32 },{ 0x8cc2, 0x8d42 }, { 0x8cc3, 0x8d41 },{ 0x8cc4, 0x8d3f },{ 0x8cc5, 0x8d45 },{ 0x8cc7, 0x8d44 }, { 0x8cc8, 0x8d3e },{ 0x8cca, 0x8d3c },{ 0x8cd1, 0x8d48 },{ 0x8cd2, 0x8d4a }, { 0x8cd3, 0x5bbe },{ 0x8cd5, 0x8d47 },{ 0x8cd9, 0x5468 },{ 0x8cda, 0x8d49 }, { 0x8cdc, 0x8d50 },{ 0x8cde, 0x8d4f },{ 0x8ce0, 0x8d54 },{ 0x8ce1, 0x8d53 }, { 0x8ce2, 0x8d24 },{ 0x8ce3, 0x5356 },{ 0x8ce4, 0x8d31 },{ 0x8ce6, 0x8d4b }, { 0x8ce7, 0x8d55 },{ 0x8cea, 0x8d28 },{ 0x8cec, 0x8d26 },{ 0x8ced, 0x8d4c }, { 0x8cf4, 0x8d56 },{ 0x8cf8, 0x5269 },{ 0x8cfa, 0x8d5a },{ 0x8cfb, 0x8d59 }, { 0x8cfc, 0x8d2d },{ 0x8cfd, 0x8d5b },{ 0x8cfe, 0x8d5c },{ 0x8d04, 0x8d3d }, { 0x8d05, 0x8d58 },{ 0x8d08, 0x8d60 },{ 0x8d0a, 0x8d5e },{ 0x8d0d, 0x8d61 }, { 0x8d0f, 0x8d62 },{ 0x8d10, 0x8d46 },{ 0x8d13, 0x8d43 },{ 0x8d16, 0x8d4e }, { 0x8d17, 0x8d5d },{ 0x8d1b, 0x8d63 },{ 0x8d95, 0x8d76 },{ 0x8d99, 0x8d75 }, { 0x8da8, 0x8d8b },{ 0x8db2, 0x8db1 },{ 0x8de1, 0x8ff9 },{ 0x8dfc, 0x5c40 }, { 0x8e10, 0x8df5 },{ 0x8e21, 0x8737 },{ 0x8e2b, 0x78b0 },{ 0x8e30, 0x903e }, { 0x8e34, 0x8e0a },{ 0x8e4c, 0x8dc4 },{ 0x8e55, 0x8df8 },{ 0x8e5f, 0x8ff9 }, { 0x8e60, 0x8dd6 },{ 0x8e63, 0x8e52 },{ 0x8e64, 0x8e2a },{ 0x8e67, 0x7cdf }, { 0x8e7a, 0x8df7 },{ 0x8e89, 0x8db8 },{ 0x8e8a, 0x8e0c },{ 0x8e8b, 0x8dfb }, { 0x8e8d, 0x8dc3 },{ 0x8e91, 0x8e2f },{ 0x8e92, 0x8dde },{ 0x8e93, 0x8e2c }, { 0x8e95, 0x8e70 },{ 0x8e9a, 0x8df9 },{ 0x8ea1, 0x8e51 },{ 0x8ea5, 0x8e7f }, { 0x8ea6, 0x8e9c },{ 0x8eaa, 0x8e8f },{ 0x8ec0, 0x8eaf },{ 0x8eca, 0x8f66 }, { 0x8ecb, 0x8f67 },{ 0x8ecc, 0x8f68 },{ 0x8ecd, 0x519b },{ 0x8ed2, 0x8f69 }, { 0x8ed4, 0x8f6b },{ 0x8edb, 0x8f6d },{ 0x8edf, 0x8f6f },{ 0x8eeb, 0x8f78 }, { 0x8ef8, 0x8f74 },{ 0x8ef9, 0x8f75 },{ 0x8efa, 0x8f7a },{ 0x8efb, 0x8f72 }, { 0x8efc, 0x8f76 },{ 0x8efe, 0x8f7c },{ 0x8f03, 0x8f83 },{ 0x8f05, 0x8f82 }, { 0x8f07, 0x8f81 },{ 0x8f09, 0x8f7d },{ 0x8f0a, 0x8f7e },{ 0x8f12, 0x8f84 }, { 0x8f13, 0x633d },{ 0x8f14, 0x8f85 },{ 0x8f15, 0x8f7b },{ 0x8f1b, 0x8f86 }, { 0x8f1c, 0x8f8e },{ 0x8f1d, 0x8f89 },{ 0x8f1e, 0x8f8b },{ 0x8f1f, 0x8f8d }, { 0x8f25, 0x8f8a },{ 0x8f26, 0x8f87 },{ 0x8f29, 0x8f88 },{ 0x8f2a, 0x8f6e }, { 0x8f2f, 0x8f91 },{ 0x8f33, 0x8f8f },{ 0x8f38, 0x8f93 },{ 0x8f3b, 0x8f90 }, { 0x8f3e, 0x8f97 },{ 0x8f3f, 0x8206 },{ 0x8f42, 0x6bc2 },{ 0x8f44, 0x8f96 }, { 0x8f45, 0x8f95 },{ 0x8f46, 0x8f98 },{ 0x8f49, 0x8f6c },{ 0x8f4d, 0x8f99 }, { 0x8f4e, 0x8f7f },{ 0x8f54, 0x8f9a },{ 0x8f5f, 0x8f70 },{ 0x8f61, 0x8f94 }, { 0x8f62, 0x8f79 },{ 0x8f64, 0x8f73 },{ 0x8fa6, 0x529e },{ 0x8fad, 0x8f9e }, { 0x8fae, 0x8fab },{ 0x8faf, 0x8fa9 },{ 0x8fb2, 0x519c },{ 0x8fc6, 0x8fe4 }, { 0x8ff4, 0x56de },{ 0x8ffa, 0x4e43 },{ 0x9015, 0x8ff3 },{ 0x9019, 0x8fd9 }, { 0x9023, 0x8fde },{ 0x9031, 0x5468 },{ 0x9032, 0x8fdb },{ 0x904a, 0x6e38 }, { 0x904b, 0x8fd0 },{ 0x904e, 0x8fc7 },{ 0x9054, 0x8fbe },{ 0x9055, 0x8fdd }, { 0x9059, 0x9065 },{ 0x905c, 0x900a },{ 0x905e, 0x9012 },{ 0x9060, 0x8fdc }, { 0x9069, 0x9002 },{ 0x9072, 0x8fdf },{ 0x9077, 0x8fc1 },{ 0x9078, 0x9009 }, { 0x907a, 0x9057 },{ 0x907c, 0x8fbd },{ 0x9081, 0x8fc8 },{ 0x9084, 0x8fd8 }, { 0x9087, 0x8fe9 },{ 0x908a, 0x8fb9 },{ 0x908f, 0x903b },{ 0x9090, 0x9026 }, { 0x90df, 0x90cf },{ 0x90f5, 0x90ae },{ 0x9106, 0x90d3 },{ 0x9109, 0x4e61 }, { 0x9112, 0x90b9 },{ 0x9114, 0x90ac },{ 0x9116, 0x90e7 },{ 0x9127, 0x9093 }, { 0x912d, 0x90d1 },{ 0x9130, 0x90bb },{ 0x9132, 0x90f8 },{ 0x9134, 0x90ba }, { 0x9136, 0x90d0 },{ 0x913a, 0x909d },{ 0x9148, 0x90e6 },{ 0x9156, 0x9e29 }, { 0x9183, 0x814c },{ 0x9186, 0x76cf },{ 0x919c, 0x4e11 },{ 0x919e, 0x915d }, { 0x91ab, 0x533b },{ 0x91ac, 0x9171 },{ 0x91b1, 0x53d1 },{ 0x91bc, 0x5bb4 }, { 0x91c0, 0x917f },{ 0x91c1, 0x8845 },{ 0x91c3, 0x917e },{ 0x91c5, 0x917d }, { 0x91c6, 0x91c7 },{ 0x91cb, 0x91ca },{ 0x91d0, 0x5398 },{ 0x91d3, 0x9486 }, { 0x91d4, 0x9487 },{ 0x91d5, 0x948c },{ 0x91d7, 0x948a },{ 0x91d8, 0x9489 }, { 0x91d9, 0x948b },{ 0x91dd, 0x9488 },{ 0x91e3, 0x9493 },{ 0x91e4, 0x9490 }, { 0x91e6, 0x6263 },{ 0x91e7, 0x948f },{ 0x91e9, 0x9492 },{ 0x91ec, 0x948e }, { 0x91f5, 0x9497 },{ 0x91f7, 0x948d },{ 0x91f9, 0x9495 },{ 0x9200, 0x94af }, { 0x9201, 0x94ab },{ 0x9204, 0x94ad },{ 0x9209, 0x94a0 },{ 0x920d, 0x949d }, { 0x9210, 0x94a4 },{ 0x9211, 0x94a3 },{ 0x9214, 0x949e },{ 0x9215, 0x94ae }, { 0x921e, 0x94a7 },{ 0x9223, 0x9499 },{ 0x9225, 0x94ac },{ 0x9226, 0x949b }, { 0x9227, 0x94aa },{ 0x922e, 0x94cc },{ 0x9230, 0x94c8 },{ 0x9233, 0x94b6 }, { 0x9234, 0x94c3 },{ 0x9237, 0x94b4 },{ 0x9238, 0x94b9 },{ 0x9239, 0x94cd }, { 0x923a, 0x94b0 },{ 0x923d, 0x94b8 },{ 0x923e, 0x94c0 },{ 0x923f, 0x94bf }, { 0x9240, 0x94be },{ 0x9245, 0x5de8 },{ 0x9246, 0x94bb },{ 0x9248, 0x94ca }, { 0x9249, 0x94c9 },{ 0x924b, 0x5228 },{ 0x924d, 0x94cb },{ 0x9251, 0x94c2 }, { 0x9257, 0x94b3 },{ 0x925a, 0x94c6 },{ 0x925b, 0x94c5 },{ 0x925e, 0x94ba }, { 0x9264, 0x94a9 },{ 0x9266, 0x94b2 },{ 0x926c, 0x94bc },{ 0x926d, 0x94bd }, { 0x9278, 0x94f0 },{ 0x927a, 0x94d2 },{ 0x927b, 0x94ec },{ 0x927f, 0x94ea }, { 0x9280, 0x94f6 },{ 0x9283, 0x94f3 },{ 0x9285, 0x94dc },{ 0x9291, 0x94e3 }, { 0x9293, 0x94e8 },{ 0x9296, 0x94e2 },{ 0x9298, 0x94ed },{ 0x929a, 0x94eb }, { 0x929c, 0x8854 },{ 0x92a0, 0x94d1 },{ 0x92a3, 0x94f7 },{ 0x92a5, 0x94f1 }, { 0x92a6, 0x94df },{ 0x92a8, 0x94f5 },{ 0x92a9, 0x94e5 },{ 0x92aa, 0x94d5 }, { 0x92ab, 0x94ef },{ 0x92ac, 0x94d0 },{ 0x92b2, 0x710a },{ 0x92b3, 0x9510 }, { 0x92b7, 0x9500 },{ 0x92b9, 0x9508 },{ 0x92bb, 0x9511 },{ 0x92bc, 0x9509 }, { 0x92c1, 0x94dd },{ 0x92c3, 0x9512 },{ 0x92c5, 0x950c },{ 0x92c7, 0x94a1 }, { 0x92cc, 0x94e4 },{ 0x92cf, 0x94d7 },{ 0x92d2, 0x950b },{ 0x92dd, 0x950a }, { 0x92df, 0x9513 },{ 0x92e4, 0x9504 },{ 0x92e6, 0x9514 },{ 0x92e8, 0x9507 }, { 0x92ea, 0x94fa },{ 0x92ee, 0x94d6 },{ 0x92ef, 0x9506 },{ 0x92f0, 0x9502 }, { 0x92f1, 0x94fd },{ 0x92f8, 0x952f },{ 0x92fb, 0x9274 },{ 0x92fc, 0x94a2 }, { 0x9301, 0x951e },{ 0x9304, 0x5f55 },{ 0x9306, 0x9516 },{ 0x9308, 0x9529 }, { 0x9310, 0x9525 },{ 0x9312, 0x9515 },{ 0x9315, 0x951f },{ 0x9318, 0x9524 }, { 0x9319, 0x9531 },{ 0x931a, 0x94ee },{ 0x931b, 0x951b },{ 0x931f, 0x952c }, { 0x9320, 0x952d },{ 0x9322, 0x94b1 },{ 0x9326, 0x9526 },{ 0x9328, 0x951a }, { 0x932b, 0x9521 },{ 0x932e, 0x9522 },{ 0x932f, 0x9519 },{ 0x9333, 0x9530 }, { 0x9336, 0x8868 },{ 0x9338, 0x94fc },{ 0x9346, 0x9494 },{ 0x9347, 0x9534 }, { 0x934a, 0x70bc },{ 0x934b, 0x9505 },{ 0x934d, 0x9540 },{ 0x9354, 0x9537 }, { 0x9358, 0x94e1 },{ 0x935b, 0x953b },{ 0x9364, 0x9538 },{ 0x9365, 0x9532 }, { 0x936c, 0x9539 },{ 0x9370, 0x953e },{ 0x9375, 0x952e },{ 0x9376, 0x9536 }, { 0x937a, 0x9517 },{ 0x937c, 0x9488 },{ 0x937e, 0x949f },{ 0x9382, 0x9541 }, { 0x938a, 0x9551 },{ 0x938c, 0x9570 },{ 0x9394, 0x7194 },{ 0x9396, 0x9501 }, { 0x9397, 0x67aa },{ 0x9398, 0x9549 },{ 0x939a, 0x9524 },{ 0x93a2, 0x94a8 }, { 0x93a3, 0x84e5 },{ 0x93a6, 0x954f },{ 0x93a7, 0x94e0 },{ 0x93a9, 0x94e9 }, { 0x93aa, 0x953c },{ 0x93ac, 0x9550 },{ 0x93ae, 0x9547 },{ 0x93b0, 0x9552 }, { 0x93b3, 0x954d },{ 0x93b5, 0x9553 },{ 0x93c3, 0x955e },{ 0x93c7, 0x955f }, { 0x93c8, 0x94fe },{ 0x93cc, 0x9546 },{ 0x93cd, 0x9559 },{ 0x93d1, 0x955d }, { 0x93d7, 0x94ff },{ 0x93d8, 0x9535 },{ 0x93dc, 0x9557 },{ 0x93dd, 0x9558 }, { 0x93de, 0x955b },{ 0x93df, 0x94f2 },{ 0x93e1, 0x955c },{ 0x93e2, 0x9556 }, { 0x93e4, 0x9542 },{ 0x93e8, 0x933e },{ 0x93f5, 0x94e7 },{ 0x93f7, 0x9564 }, { 0x93f9, 0x956a },{ 0x93fd, 0x9508 },{ 0x9403, 0x94d9 },{ 0x9409, 0x94e3 }, { 0x940b, 0x94f4 },{ 0x9410, 0x9563 },{ 0x9412, 0x94f9 },{ 0x9413, 0x9566 }, { 0x9414, 0x9561 },{ 0x9418, 0x949f },{ 0x9419, 0x956b },{ 0x9420, 0x9568 }, { 0x9428, 0x9544 },{ 0x942b, 0x954c },{ 0x942e, 0x9570 },{ 0x9432, 0x956f }, { 0x9433, 0x956d },{ 0x9435, 0x94c1 },{ 0x9436, 0x73af },{ 0x9438, 0x94ce }, { 0x943a, 0x94db },{ 0x943f, 0x9571 },{ 0x9444, 0x94f8 },{ 0x944a, 0x956c }, { 0x944c, 0x9554 },{ 0x9451, 0x9274 },{ 0x9452, 0x9274 },{ 0x9460, 0x94c4 }, { 0x9463, 0x9573 },{ 0x9464, 0x5228 },{ 0x946a, 0x7089 },{ 0x946d, 0x9567 }, { 0x9470, 0x94a5 },{ 0x9472, 0x9576 },{ 0x9475, 0x7f50 },{ 0x9477, 0x954a }, { 0x947c, 0x9523 },{ 0x947d, 0x94bb },{ 0x947e, 0x92ae },{ 0x947f, 0x51ff }, { 0x9577, 0x957f },{ 0x9580, 0x95e8 },{ 0x9582, 0x95e9 },{ 0x9583, 0x95ea }, { 0x9586, 0x95eb },{ 0x9589, 0x95ed },{ 0x958b, 0x5f00 },{ 0x958c, 0x95f6 }, { 0x958e, 0x95f3 },{ 0x958f, 0x95f0 },{ 0x9591, 0x95f2 },{ 0x9592, 0x95f2 }, { 0x9593, 0x95f4 },{ 0x9594, 0x95f5 },{ 0x9598, 0x95f8 },{ 0x95a1, 0x9602 }, { 0x95a3, 0x9601 },{ 0x95a4, 0x5408 },{ 0x95a5, 0x9600 },{ 0x95a8, 0x95fa }, { 0x95a9, 0x95fd },{ 0x95ab, 0x9603 },{ 0x95ac, 0x9606 },{ 0x95ad, 0x95fe }, { 0x95b1, 0x9605 },{ 0x95b6, 0x960a },{ 0x95b9, 0x9609 },{ 0x95bb, 0x960e }, { 0x95bc, 0x960f },{ 0x95bd, 0x960d },{ 0x95be, 0x9608 },{ 0x95bf, 0x960c }, { 0x95c3, 0x9612 },{ 0x95c6, 0x677f },{ 0x95c7, 0x6697 },{ 0x95c8, 0x95f1 }, { 0x95ca, 0x9614 },{ 0x95cb, 0x9615 },{ 0x95cc, 0x9611 },{ 0x95d0, 0x9617 }, { 0x95d4, 0x9616 },{ 0x95d5, 0x9619 },{ 0x95d6, 0x95ef },{ 0x95dc, 0x5173 }, { 0x95de, 0x961a },{ 0x95e1, 0x9610 },{ 0x95e2, 0x8f9f },{ 0x95e5, 0x95fc }, { 0x9628, 0x5384 },{ 0x962c, 0x5751 },{ 0x962f, 0x5740 },{ 0x964f, 0x968b }, { 0x9658, 0x9649 },{ 0x965d, 0x9655 },{ 0x965e, 0x5347 },{ 0x9663, 0x9635 }, { 0x9670, 0x9634 },{ 0x9673, 0x9648 },{ 0x9678, 0x9646 },{ 0x967d, 0x9633 }, { 0x9684, 0x5824 },{ 0x9689, 0x9667 },{ 0x968a, 0x961f },{ 0x968e, 0x9636 }, { 0x9695, 0x9668 },{ 0x969b, 0x9645 },{ 0x96a4, 0x9893 },{ 0x96a8, 0x968f }, { 0x96aa, 0x9669 },{ 0x96b1, 0x9690 },{ 0x96b4, 0x9647 },{ 0x96b8, 0x96b6 }, { 0x96bb, 0x53ea },{ 0x96cb, 0x96bd },{ 0x96d6, 0x867d },{ 0x96d9, 0x53cc }, { 0x96db, 0x96cf },{ 0x96dc, 0x6742 },{ 0x96de, 0x9e21 },{ 0x96e2, 0x79bb }, { 0x96e3, 0x96be },{ 0x96f2, 0x4e91 },{ 0x96fb, 0x7535 },{ 0x9711, 0x6cbe }, { 0x9724, 0x6e9c },{ 0x9727, 0x96fe },{ 0x973d, 0x9701 },{ 0x9742, 0x96f3 }, { 0x9744, 0x972d },{ 0x9748, 0x7075 },{ 0x975a, 0x9753 },{ 0x975c, 0x9759 }, { 0x9766, 0x817c },{ 0x9768, 0x9765 },{ 0x978f, 0x5de9 },{ 0x97a6, 0x79cb }, { 0x97c1, 0x7f30 },{ 0x97c3, 0x9791 },{ 0x97c6, 0x5343 },{ 0x97c9, 0x97af }, { 0x97cb, 0x97e6 },{ 0x97cc, 0x97e7 },{ 0x97d3, 0x97e9 },{ 0x97d9, 0x97ea }, { 0x97dc, 0x97ec },{ 0x97de, 0x97eb },{ 0x97fb, 0x97f5 },{ 0x97ff, 0x54cd }, { 0x9801, 0x9875 },{ 0x9802, 0x9876 },{ 0x9803, 0x9877 },{ 0x9805, 0x9879 }, { 0x9806, 0x987a },{ 0x9807, 0x9878 },{ 0x9808, 0x987b },{ 0x980a, 0x987c }, { 0x980c, 0x9882 },{ 0x980e, 0x9880 },{ 0x980f, 0x9883 },{ 0x9810, 0x9884 }, { 0x9811, 0x987d },{ 0x9812, 0x9881 },{ 0x9813, 0x987f },{ 0x9817, 0x9887 }, { 0x9818, 0x9886 },{ 0x981c, 0x988c },{ 0x9821, 0x9889 },{ 0x9824, 0x9890 }, { 0x9826, 0x988f },{ 0x982b, 0x4fef },{ 0x982d, 0x5934 },{ 0x9830, 0x988a }, { 0x9837, 0x9894 },{ 0x9838, 0x9888 },{ 0x9839, 0x9893 },{ 0x983b, 0x9891 }, { 0x9846, 0x9897 },{ 0x984c, 0x9898 },{ 0x984d, 0x989d },{ 0x984e, 0x989a }, { 0x984f, 0x989c },{ 0x9853, 0x989b },{ 0x9858, 0x613f },{ 0x9859, 0x98a1 }, { 0x985b, 0x98a0 },{ 0x985e, 0x7c7b },{ 0x9862, 0x989f },{ 0x9865, 0x98a2 }, { 0x9867, 0x987e },{ 0x986b, 0x98a4 },{ 0x986f, 0x663e },{ 0x9870, 0x98a6 }, { 0x9871, 0x9885 },{ 0x9873, 0x989e },{ 0x9874, 0x98a7 },{ 0x98a8, 0x98ce }, { 0x98ae, 0x98d1 },{ 0x98af, 0x98d2 },{ 0x98b1, 0x53f0 },{ 0x98b3, 0x522e }, { 0x98b6, 0x98d3 },{ 0x98ba, 0x626c },{ 0x98bc, 0x98d5 },{ 0x98c4, 0x98d8 }, { 0x98c6, 0x98d9 },{ 0x98db, 0x98de },{ 0x98e2, 0x9965 },{ 0x98e9, 0x9968 }, { 0x98ea, 0x996a },{ 0x98eb, 0x996b },{ 0x98ed, 0x996c },{ 0x98ef, 0x996d }, { 0x98f2, 0x996e },{ 0x98f4, 0x9974 },{ 0x98fc, 0x9972 },{ 0x98fd, 0x9971 }, { 0x98fe, 0x9970 },{ 0x9903, 0x997a },{ 0x9905, 0x997c },{ 0x9908, 0x7ccd }, { 0x9909, 0x9977 },{ 0x990a, 0x517b },{ 0x990c, 0x9975 },{ 0x9911, 0x997d }, { 0x9912, 0x9981 },{ 0x9913, 0x997f },{ 0x9914, 0x54fa },{ 0x9918, 0x4f59 }, { 0x991a, 0x80b4 },{ 0x991b, 0x9984 },{ 0x991e, 0x996f },{ 0x9921, 0x9985 }, { 0x9928, 0x9986 },{ 0x992c, 0x7cca },{ 0x9931, 0x7cc7 },{ 0x9933, 0x9967 }, { 0x9935, 0x5582 },{ 0x993c, 0x9969 },{ 0x993d, 0x9988 },{ 0x993e, 0x998f }, { 0x993f, 0x998a },{ 0x9943, 0x998d },{ 0x9945, 0x9992 },{ 0x9948, 0x9990 }, { 0x9949, 0x9991 },{ 0x994b, 0x9988 },{ 0x994c, 0x9994 },{ 0x9951, 0x9965 }, { 0x9952, 0x9976 },{ 0x9957, 0x98e8 },{ 0x995c, 0x990d },{ 0x995e, 0x998b }, { 0x995f, 0x9977 },{ 0x99ac, 0x9a6c },{ 0x99ad, 0x9a6d },{ 0x99ae, 0x51af }, { 0x99b1, 0x9a6e },{ 0x99b3, 0x9a70 },{ 0x99b4, 0x9a6f },{ 0x99c1, 0x9a73 }, { 0x99d0, 0x9a7b },{ 0x99d1, 0x9a7d },{ 0x99d2, 0x9a79 },{ 0x99d4, 0x9a75 }, { 0x99d5, 0x9a7e },{ 0x99d8, 0x9a80 },{ 0x99d9, 0x9a78 },{ 0x99db, 0x9a76 }, { 0x99dd, 0x9a7c },{ 0x99df, 0x9a77 },{ 0x99e2, 0x9a88 },{ 0x99ed, 0x9a87 }, { 0x99ee, 0x9a73 },{ 0x99f1, 0x9a86 },{ 0x99ff, 0x9a8f },{ 0x9a01, 0x9a8b }, { 0x9a03, 0x5446 },{ 0x9a05, 0x9a93 },{ 0x9a0d, 0x9a92 },{ 0x9a0e, 0x9a91 }, { 0x9a0f, 0x9a90 },{ 0x9a16, 0x9a9b },{ 0x9a19, 0x9a97 },{ 0x9a23, 0x9b03 }, { 0x9a2b, 0x9a9e },{ 0x9a2d, 0x9a98 },{ 0x9a2e, 0x9a9d },{ 0x9a30, 0x817e }, { 0x9a36, 0x9a7a },{ 0x9a37, 0x9a9a },{ 0x9a38, 0x9a9f },{ 0x9a3e, 0x9aa1 }, { 0x9a40, 0x84e6 },{ 0x9a41, 0x9a9c },{ 0x9a42, 0x9a96 },{ 0x9a43, 0x9aa0 }, { 0x9a44, 0x9aa2 },{ 0x9a45, 0x9a71 },{ 0x9a4a, 0x9a85 },{ 0x9a4d, 0x9a81 }, { 0x9a4f, 0x9aa3 },{ 0x9a55, 0x9a84 },{ 0x9a57, 0x9a8c },{ 0x9a5a, 0x60ca }, { 0x9a5b, 0x9a7f },{ 0x9a5f, 0x9aa4 },{ 0x9a62, 0x9a74 },{ 0x9a64, 0x9aa7 }, { 0x9a65, 0x9aa5 },{ 0x9a6a, 0x9a8a },{ 0x9aaf, 0x80ae },{ 0x9acf, 0x9ac5 }, { 0x9ad2, 0x810f },{ 0x9ad4, 0x4f53 },{ 0x9ad5, 0x9acc },{ 0x9ad6, 0x9acb }, { 0x9ae3, 0x4eff },{ 0x9aee, 0x53d1 },{ 0x9b06, 0x677e },{ 0x9b0d, 0x80e1 }, { 0x9b1a, 0x987b },{ 0x9b22, 0x9b13 },{ 0x9b25, 0x6597 },{ 0x9b27, 0x95f9 }, { 0x9b28, 0x54c4 },{ 0x9b29, 0x960b },{ 0x9b2e, 0x9604 },{ 0x9b31, 0x90c1 }, { 0x9b4e, 0x9b49 },{ 0x9b58, 0x9b47 },{ 0x9b5a, 0x9c7c },{ 0x9b68, 0x8c5a }, { 0x9b6f, 0x9c81 },{ 0x9b74, 0x9c82 },{ 0x9b77, 0x9c7f },{ 0x9b90, 0x9c90 }, { 0x9b91, 0x9c8d },{ 0x9b92, 0x9c8b },{ 0x9b9a, 0x9c92 },{ 0x9b9e, 0x9c95 }, { 0x9baa, 0x9c94 },{ 0x9bab, 0x9c9b },{ 0x9bad, 0x9c91 },{ 0x9bae, 0x9c9c }, { 0x9bc0, 0x9ca7 },{ 0x9bc1, 0x9ca0 },{ 0x9bc7, 0x9ca9 },{ 0x9bc9, 0x9ca4 }, { 0x9bca, 0x9ca8 },{ 0x9bd4, 0x9cbb },{ 0x9bd6, 0x9cad },{ 0x9bd7, 0x9c9e }, { 0x9bdb, 0x9cb7 },{ 0x9be1, 0x9cb1 },{ 0x9be2, 0x9cb5 },{ 0x9be4, 0x9cb2 }, { 0x9be7, 0x9cb3 },{ 0x9be8, 0x9cb8 },{ 0x9bea, 0x9cae },{ 0x9beb, 0x9cb0 }, { 0x9bf0, 0x9c87 },{ 0x9bfd, 0x9cab },{ 0x9c08, 0x9cbd },{ 0x9c09, 0x9cc7 }, { 0x9c0d, 0x9cc5 },{ 0x9c12, 0x9cc6 },{ 0x9c13, 0x9cc3 },{ 0x9c23, 0x9ca5 }, { 0x9c25, 0x9ccf },{ 0x9c28, 0x9cce },{ 0x9c29, 0x9cd0 },{ 0x9c2d, 0x9ccd }, { 0x9c31, 0x9ca2 },{ 0x9c32, 0x9ccc },{ 0x9c33, 0x9cd3 },{ 0x9c37, 0x9ca6 }, { 0x9c39, 0x9ca3 },{ 0x9c3b, 0x9cd7 },{ 0x9c3e, 0x9cd4 },{ 0x9c48, 0x9cd5 }, { 0x9c49, 0x9cd6 },{ 0x9c52, 0x9cdf },{ 0x9c54, 0x9cdd },{ 0x9c56, 0x9cdc }, { 0x9c57, 0x9cde },{ 0x9c58, 0x9c9f },{ 0x9c5f, 0x9c8e },{ 0x9c67, 0x9ce2 }, { 0x9c6d, 0x9c9a },{ 0x9c77, 0x9cc4 },{ 0x9c78, 0x9c88 },{ 0x9c7a, 0x9ca1 }, { 0x9ce5, 0x9e1f },{ 0x9ce7, 0x51eb },{ 0x9ce9, 0x9e20 },{ 0x9cf3, 0x51e4 }, { 0x9cf4, 0x9e23 },{ 0x9cf6, 0x9e22 },{ 0x9d06, 0x9e29 },{ 0x9d07, 0x9e28 }, { 0x9d08, 0x96c1 },{ 0x9d09, 0x9e26 },{ 0x9d15, 0x9e35 },{ 0x9d1b, 0x9e33 }, { 0x9d1d, 0x9e32 },{ 0x9d1f, 0x9e31 },{ 0x9d23, 0x9e2a },{ 0x9d26, 0x9e2f }, { 0x9d28, 0x9e2d },{ 0x9d2f, 0x9e38 },{ 0x9d30, 0x9e39 },{ 0x9d3b, 0x9e3f }, { 0x9d3f, 0x9e3d },{ 0x9d42, 0x9e3a },{ 0x9d51, 0x9e43 },{ 0x9d52, 0x9e46 }, { 0x9d53, 0x9e41 },{ 0x9d5c, 0x9e48 },{ 0x9d5d, 0x9e45 },{ 0x9d60, 0x9e44 }, { 0x9d61, 0x9e49 },{ 0x9d6a, 0x9e4c },{ 0x9d6c, 0x9e4f },{ 0x9d6f, 0x9e4e }, { 0x9d70, 0x96d5 },{ 0x9d72, 0x9e4a },{ 0x9d87, 0x9e2b },{ 0x9d89, 0x9e51 }, { 0x9d98, 0x9e55 },{ 0x9d9a, 0x9e57 },{ 0x9da9, 0x9e5c },{ 0x9daf, 0x83ba }, { 0x9db1, 0x9a9e },{ 0x9db4, 0x9e64 },{ 0x9dbb, 0x9e58 },{ 0x9dbc, 0x9e63 }, { 0x9dbf, 0x9e5a },{ 0x9dc2, 0x9e5e },{ 0x9dd3, 0x9e67 },{ 0x9dd7, 0x9e25 }, { 0x9dd9, 0x9e37 },{ 0x9dda, 0x9e68 },{ 0x9de5, 0x9e36 },{ 0x9de6, 0x9e6a }, { 0x9def, 0x9e69 },{ 0x9df0, 0x71d5 },{ 0x9df2, 0x9e6b },{ 0x9df3, 0x9e47 }, { 0x9df4, 0x9e47 },{ 0x9df8, 0x9e6c },{ 0x9df9, 0x9e70 },{ 0x9dfa, 0x9e6d }, { 0x9e15, 0x9e2c },{ 0x9e1a, 0x9e66 },{ 0x9e1b, 0x9e73 },{ 0x9e1d, 0x9e42 }, { 0x9e1e, 0x9e3e },{ 0x9e75, 0x5364 },{ 0x9e79, 0x54b8 },{ 0x9e7a, 0x9e7e }, { 0x9e7c, 0x7877 },{ 0x9e7d, 0x76d0 },{ 0x9e97, 0x4e3d },{ 0x9ea5, 0x9ea6 }, { 0x9ea9, 0x9eb8 },{ 0x9eb5, 0x9762 },{ 0x9ebc, 0x4e48 },{ 0x9ec3, 0x9ec4 }, { 0x9ecc, 0x9ec9 },{ 0x9ede, 0x70b9 },{ 0x9ee8, 0x515a },{ 0x9ef2, 0x9eea }, { 0x9ef4, 0x9709 },{ 0x9ef7, 0x9ee9 },{ 0x9efd, 0x9efe },{ 0x9eff, 0x9f0b }, { 0x9f07, 0x9ccc },{ 0x9f09, 0x9f0d },{ 0x9f15, 0x51ac },{ 0x9f34, 0x9f39 }, { 0x9f4a, 0x9f50 },{ 0x9f4b, 0x658b },{ 0x9f4e, 0x8d4d },{ 0x9f4f, 0x9f51 }, { 0x9f52, 0x9f7f },{ 0x9f54, 0x9f80 },{ 0x9f59, 0x9f85 },{ 0x9f5c, 0x9f87 }, { 0x9f5f, 0x9f83 },{ 0x9f60, 0x9f86 },{ 0x9f61, 0x9f84 },{ 0x9f63, 0x51fa }, { 0x9f66, 0x9f88 },{ 0x9f67, 0x556e },{ 0x9f6a, 0x9f8a },{ 0x9f6c, 0x9f89 }, { 0x9f72, 0x9f8b },{ 0x9f76, 0x816d },{ 0x9f77, 0x9f8c },{ 0x9f8d, 0x9f99 }, { 0x9f90, 0x5e9e },{ 0x9f94, 0x9f9a },{ 0x9f95, 0x9f9b },{ 0x9f9c, 0x9f9f }, { 0x9fa2, 0x548c },{ 0xfa0c, 0x5140 },{ 0xfe30, 0x2236 },{ 0xfe31, 0xff5c }, { 0xfe33, 0xff5c },{ 0xfe3f, 0x2227 },{ 0xfe40, 0x2228 },{ 0xfe50, 0xff0c }, { 0xfe51, 0x3001 },{ 0xfe52, 0xff0e },{ 0xfe54, 0xff1b },{ 0xfe55, 0xff1a }, { 0xfe56, 0xff1f },{ 0xfe57, 0xff01 },{ 0xfe59, 0xff08 },{ 0xfe5a, 0xff09 }, { 0xfe5b, 0xff5b },{ 0xfe5c, 0xff5d },{ 0xfe5d, 0xff3b },{ 0xfe5e, 0xff3d }, { 0xfe5f, 0xff03 },{ 0xfe60, 0xff06 },{ 0xfe61, 0xff0a },{ 0xfe62, 0xff0b }, { 0xfe63, 0xff0d },{ 0xfe64, 0xff1c },{ 0xfe65, 0xff1e },{ 0xfe66, 0xff1d }, { 0xfe69, 0xff04 },{ 0xfe6a, 0xff05 },{ 0xfe6b, 0xff20 },{ 0, 0} }; #endif /* vi:ts=4:nowrap:ai:expandtab */ scim-1.4.14/modules/FrontEnd/000077500000000000000000000000001177210725600157335ustar00rootroot00000000000000scim-1.4.14/modules/FrontEnd/IMdkit/000077500000000000000000000000001177210725600171145ustar00rootroot00000000000000scim-1.4.14/modules/FrontEnd/IMdkit/FrameMgr.c000066400000000000000000001671171177210725600207750ustar00rootroot00000000000000/****************************************************************** Copyright 1993, 1994 by Digital Equipment Corporation, Maynard, Massachusetts, All Rights Reserved Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the names of Digital or MIT not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. Author: Hiroyuki Miyamoto Digital Equipment Corporation miyamoto@jrd.dec.com This version tidied and debugged by Steve Underwood May 1999 ******************************************************************/ #include #include #include "FrameMgr.h" /* Convenient macro */ #define _UNIT(n) ((int)(n) & 0xFF) #define _NUMBER(n) (((int)(n) >> 8) & 0xFF) /* For byte swapping */ #define Swap16(p, n) ((p)->byte_swap ? \ (((n) << 8 & 0xFF00) | \ ((n) >> 8 & 0xFF) \ ) : n) #define Swap32(p, n) ((p)->byte_swap ? \ (((n) << 24 & 0xFF000000) | \ ((n) << 8 & 0xFF0000) | \ ((n) >> 8 & 0xFF00) | \ ((n) >> 24 & 0xFF) \ ) : n) #define Swap64(p, n) ((p)->byte_swap ? \ (((n) << 56 & 0xFF00000000000000) | \ ((n) << 40 & 0xFF000000000000) | \ ((n) << 24 & 0xFF0000000000) | \ ((n) << 8 & 0xFF00000000) | \ ((n) >> 8 & 0xFF000000) | \ ((n) >> 24 & 0xFF0000) | \ ((n) >> 40 & 0xFF00) | \ ((n) >> 56 & 0xFF) \ ) : n) /* Type definition */ typedef struct _Iter *Iter; typedef struct _FrameInst *FrameInst; typedef union { int num; /* For BARRAY */ FrameInst fi; /* For POINTER */ Iter iter; /* For ITER */ } ExtraDataRec, *ExtraData; typedef struct _Chain { ExtraDataRec d; int frame_no; struct _Chain *next; } ChainRec, *Chain; typedef struct _ChainMgr { Chain top; Chain tail; } ChainMgrRec, *ChainMgr; typedef struct _ChainIter { Chain cur; } ChainIterRec, *ChainIter; typedef struct _FrameIter { Iter iter; Bool counting; unsigned int counter; int end; struct _FrameIter* next; } FrameIterRec, *FrameIter; typedef struct _FrameInst { XimFrame template; ChainMgrRec cm; int cur_no; } FrameInstRec; typedef void (*IterStartWatchProc) (Iter it, void *client_data); typedef struct _Iter { XimFrame template; int max_count; Bool allow_expansion; ChainMgrRec cm; int cur_no; IterStartWatchProc start_watch_proc; void *client_data; Bool start_counter; } IterRec; typedef struct _FrameMgr { XimFrame frame; FrameInst fi; char *area; int idx; Bool byte_swap; int total_size; FrameIter iters; } FrameMgrRec; typedef union { int num; /* For BARRAY and PAD */ struct { /* For COUNTER_* */ Iter iter; Bool is_byte_len; } counter; } XimFrameTypeInfoRec, *XimFrameTypeInfo; /* Special values */ #define NO_VALUE -1 #define NO_VALID_FIELD -2 static FrameInst FrameInstInit(XimFrame frame); static void FrameInstFree(FrameInst fi); static XimFrameType FrameInstGetNextType(FrameInst fi, XimFrameTypeInfo info); static XimFrameType FrameInstPeekNextType(FrameInst fi, XimFrameTypeInfo info); static FmStatus FrameInstSetSize(FrameInst fi, int num); static FmStatus FrameInstSetIterCount(FrameInst fi, int num); static int FrameInstGetTotalSize(FrameInst fi); static void FrameInstReset(FrameInst fi); static Iter IterInit(XimFrame frame, int count); static void IterFree(Iter it); static int FrameInstGetSize(FrameInst fi); static int IterGetSize(Iter it); static XimFrameType IterGetNextType(Iter it, XimFrameTypeInfo info); static XimFrameType IterPeekNextType(Iter it, XimFrameTypeInfo info); static FmStatus IterSetSize(Iter it, int num); static FmStatus IterSetIterCount(Iter it, int num); static int IterGetTotalSize(Iter it); static void IterReset(Iter it); static Bool IterIsLoopEnd(Iter it, Bool* myself); static void IterSetStartWatch(Iter it, IterStartWatchProc proc, void* client_data); static void _IterStartWatch(Iter it, void* client_data); static ExtraData ChainMgrGetExtraData(ChainMgr cm, int frame_no); static ExtraData ChainMgrSetData(ChainMgr cm, int frame_no, ExtraDataRec data); static Bool ChainIterGetNext(ChainIter ci, int* frame_no, ExtraData d); static int _FrameInstIncrement(XimFrame frame, int count); static int _FrameInstDecrement(XimFrame frame, int count); static int _FrameInstGetItemSize(FrameInst fi, int cur_no); static Bool FrameInstIsIterLoopEnd(FrameInst fi); static FrameIter _FrameMgrAppendIter(FrameMgr fm, Iter it, int end); static FrameIter _FrameIterCounterIncr(FrameIter fitr, int i); static void _FrameMgrRemoveIter(FrameMgr fm, FrameIter it); static Bool _FrameMgrIsIterLoopEnd(FrameMgr fm); static Bool _FrameMgrProcessPadding(FrameMgr fm, FmStatus* status); #define IterGetIterCount(it) ((it)->allow_expansion ? \ NO_VALUE : (it)->max_count) #define IterFixIteration(it) ((it)->allow_expansion = False) #define IterSetStarter(it) ((it)->start_counter = True) #define ChainMgrInit(cm) (cm)->top = (cm)->tail = NULL #define ChainMgrFree(cm) \ { \ Chain tmp; \ Chain cur = (cm)->top; \ \ while (cur) \ { \ tmp = cur->next; \ Xfree (cur); \ cur = tmp; \ } \ } #define ChainIterInit(ci, cm) \ { \ (ci)->cur = (cm)->top; \ } /* ChainIterFree has nothing to do. */ #define ChainIterFree(ci) #define FrameInstIsEnd(fi) ((fi)->template[(fi)->cur_no].type == EOL) FrameMgr FrameMgrInit (XimFrame frame, char* area, Bool byte_swap) { FrameMgr fm; fm = (FrameMgr) Xmalloc (sizeof (FrameMgrRec)); fm->frame = frame; fm->fi = FrameInstInit (frame); fm->area = (char *) area; fm->idx = 0; fm->byte_swap = byte_swap; fm->total_size = NO_VALUE; fm->iters = NULL; return fm; } void FrameMgrInitWithData (FrameMgr fm, XimFrame frame, void * area, Bool byte_swap) { fm->frame = frame; fm->fi = FrameInstInit (frame); fm->area = (char *) area; fm->idx = 0; fm->byte_swap = byte_swap; fm->total_size = NO_VALUE; } void FrameMgrFree (FrameMgr fm) { FrameIter p, cur; p = fm->iters; cur = p; while (p) { p = p->next; Xfree (cur); cur = p; } /*endwhile*/ FrameInstFree (fm->fi); Xfree (fm); } FmStatus FrameMgrSetBuffer (FrameMgr fm, void* area) { if (fm->area) return FmBufExist; fm->area = (char *) area; return FmSuccess; } FmStatus _FrameMgrPutToken (FrameMgr fm, void *data, int data_size) { XimFrameType type; XimFrameTypeInfoRec info; if (fm->total_size != NO_VALUE && fm->idx >= fm->total_size) return FmNoMoreData; /*endif*/ type = FrameInstGetNextType(fm->fi, &info); if (type & COUNTER_MASK) { unsigned long input_length; if (info.counter.is_byte_len) { if ((input_length = IterGetTotalSize (info.counter.iter)) == NO_VALUE) { return FmCannotCalc; } /*endif*/ } else { if ((input_length = IterGetIterCount (info.counter.iter)) == NO_VALUE) { return FmCannotCalc; } /*endif*/ } /*endif*/ switch (type) { case COUNTER_BIT8: *(CARD8 *) (fm->area + fm->idx) = input_length; fm->idx++; break; case COUNTER_BIT16: *(CARD16 *) (fm->area + fm->idx) = Swap16 (fm, input_length); fm->idx += 2; break; case COUNTER_BIT32: *(CARD32 *) (fm->area + fm->idx) = Swap32 (fm, input_length); fm->idx += 4; break; #if defined(_NEED64BIT) case COUNTER_BIT64: *(CARD64 *) (fm->area + fm->idx) = Swap64 (fm, input_length); fm->idx += 8; break; #endif default: break; } /*endswitch*/ _FrameMgrPutToken(fm, data, data_size); return FmSuccess; } /*endif*/ switch (type) { case BIT8: if (data_size == sizeof (unsigned char)) { unsigned long num = *(unsigned char *) data; *(CARD8 *) (fm->area + fm->idx) = num; } else if (data_size == sizeof (unsigned short)) { unsigned long num = *(unsigned short *) data; *(CARD8 *) (fm->area + fm->idx) = num; } else if (data_size == sizeof (unsigned int)) { unsigned long num = *(unsigned int *) data; *(CARD8 *) (fm->area + fm->idx) = num; } else if (data_size == sizeof (unsigned long)) { unsigned long num = *(unsigned long *) data; *(CARD8 *) (fm->area + fm->idx) = num; } else { ; /* Should never be reached */ } /*endif*/ fm->idx++; return FmSuccess; case BIT16: if (data_size == sizeof (unsigned char)) { unsigned long num = *(unsigned char *) data; *(CARD16*)(fm->area + fm->idx) = Swap16 (fm, num); } else if (data_size == sizeof (unsigned short)) { unsigned long num = *(unsigned short *) data; *(CARD16 *) (fm->area + fm->idx) = Swap16 (fm, num); } else if (data_size == sizeof (unsigned int)) { unsigned long num = *(unsigned int *) data; *(CARD16 *) (fm->area + fm->idx) = Swap16 (fm, num); } else if (data_size == sizeof (unsigned long)) { unsigned long num = *(unsigned long *) data; *(CARD16 *) (fm->area + fm->idx) = Swap16 (fm, num); } else { ; /* Should never reached */ } /*endif*/ fm->idx += 2; return FmSuccess; case BIT32: if (data_size == sizeof (unsigned char)) { unsigned long num = *(unsigned char *) data; *(CARD32 *) (fm->area + fm->idx) = Swap32 (fm, num); } else if (data_size == sizeof (unsigned short)) { unsigned long num = *(unsigned short *) data; *(CARD32 *) (fm->area + fm->idx) = Swap32 (fm, num); } else if (data_size == sizeof (unsigned int)) { unsigned long num = *(unsigned int *) data; *(CARD32 *) (fm->area + fm->idx) = Swap32 (fm, num); } else if (data_size == sizeof (unsigned long)) { unsigned long num = *(unsigned long *) data; *(CARD32 *) (fm->area + fm->idx) = Swap32 (fm, num); } else { ; /* Should never reached */ } /*endif*/ fm->idx += 4; return FmSuccess; #if defined(_NEED64BIT) case BIT64: if (data_size == sizeof (unsigned char)) { unsigned long num = *(unsigned char *) data; *(CARD64 *) (fm->area + fm->idx) = Swap64 (fm, num); } else if (data_size == sizeof (unsigned short)) { unsigned long num = *(unsigned short *) data; *(CARD64 *) (fm->area + fm->idx) = Swap64 (fm, num); } else if (data_size == sizeof (unsigned int)) { unsigned long num = *(unsigned int *) data; *(CARD64 *) (fm->area + fm->idx) = Swap64 (fm, num); } else if (data_size == sizeof (unsigned long)) { unsigned long num = *(unsigned long *) data; *(CARD64 *) (fm->area + fm->idx) = Swap64 (fm, num); } else { ; /* Should never reached */ } /*endif*/ fm->idx += 4; return FmSuccess; #endif case BARRAY: if (info.num == NO_VALUE) return FmInvalidCall; /*endif*/ if (info.num > 0) { bcopy (*(char **) data, fm->area + fm->idx, info.num); fm->idx += info.num; } /*endif*/ return FmSuccess; case PADDING: if (info.num == NO_VALUE) return FmInvalidCall; /*endif*/ fm->idx += info.num; return _FrameMgrPutToken(fm, data, data_size); case ITER: return FmInvalidCall; case EOL: return FmEOD; default: break; } /*endswitch*/ return (FmStatus) NULL; /* Should never be reached */ } FmStatus _FrameMgrGetToken (FrameMgr fm , void* data, int data_size) { XimFrameType type; static XimFrameTypeInfoRec info; /* memory */ FrameIter fitr; if (fm->total_size != NO_VALUE && fm->idx >= fm->total_size) return FmNoMoreData; /*endif*/ type = FrameInstGetNextType(fm->fi, &info); if (type & COUNTER_MASK) { int end=0; FrameIter client_data; type &= ~COUNTER_MASK; switch (type) { case BIT8: end = *(CARD8 *) (fm->area + fm->idx); break; case BIT16: end = Swap16 (fm, *(CARD16 *) (fm->area + fm->idx)); break; case BIT32: end = Swap32 (fm, *(CARD32 *) (fm->area + fm->idx)); break; #if defined(_NEED64BIT) case BIT64: end = Swap64 (fm, *(CARD64 *) (fm->area + fm->idx)); break; #endif default: break; } /*endswitch*/ if ((client_data = _FrameMgrAppendIter (fm, info.counter.iter, end))) { IterSetStarter (info.counter.iter); IterSetStartWatch (info.counter.iter, _IterStartWatch, (void *) client_data); } /*endif*/ } /*endif*/ type &= ~COUNTER_MASK; switch (type) { case BIT8: if (data_size == sizeof (unsigned char)) { *(unsigned char*) data = *(CARD8 *) (fm->area + fm->idx); } else if (data_size == sizeof (unsigned short)) { *(unsigned short *) data = *(CARD8 *) (fm->area + fm->idx); } else if (data_size == sizeof (unsigned int)) { *(unsigned int *) data = *(CARD8 *) (fm->area + fm->idx); } else if (data_size == sizeof (unsigned long)) { *(unsigned long *) data = *(CARD8 *) (fm->area + fm->idx); } else { ; /* Should never reached */ } /*endif*/ fm->idx++; if ((fitr = _FrameIterCounterIncr (fm->iters, 1/*BIT8*/))) _FrameMgrRemoveIter (fm, fitr); /*endif*/ return FmSuccess; case BIT16: if (data_size == sizeof (unsigned char)) { *(unsigned char *) data = Swap16 (fm, *(CARD16 *) (fm->area + fm->idx)); } else if (data_size == sizeof (unsigned short)) { *(unsigned short *) data = Swap16 (fm, *(CARD16 *) (fm->area + fm->idx)); } else if (data_size == sizeof (unsigned int)) { *(unsigned int *) data = Swap16 (fm, *(CARD16 *) (fm->area + fm->idx)); } else if (data_size == sizeof (unsigned long)) { *(unsigned long *) data = Swap16 (fm, *(CARD16 *) (fm->area + fm->idx)); } else { ; /* Should never reached */ } /*endif*/ fm->idx += 2; if ((fitr = _FrameIterCounterIncr (fm->iters, 2/*BIT16*/))) _FrameMgrRemoveIter(fm, fitr); /*endif*/ return FmSuccess; case BIT32: if (data_size == sizeof (unsigned char)) { *(unsigned char *) data = Swap32 (fm, *(CARD32 *) (fm->area + fm->idx)); } else if (data_size == sizeof (unsigned short)) { *(unsigned short *) data = Swap32 (fm, *(CARD32 *) (fm->area + fm->idx)); } else if (data_size == sizeof (unsigned int)) { *(unsigned int *) data = Swap32 (fm, *(CARD32 *) (fm->area + fm->idx)); } else if (data_size == sizeof (unsigned long)) { *(unsigned long *) data = Swap32 (fm, *(CARD32 *) (fm->area + fm->idx)); } else { ; /* Should never reached */ } /*endif*/ fm->idx += 4; if ((fitr = _FrameIterCounterIncr (fm->iters, 4/*BIT32*/))) _FrameMgrRemoveIter (fm, fitr); /*endif*/ return FmSuccess; #if defined(_NEED64BIT) case BIT64: if (data_size == sizeof (unsigned char)) { *(unsigned char *) data = Swap64 (fm, *(CARD64 *) (fm->area + fm->idx)); } else if (data_size == sizeof (unsigned short)) { *(unsigned short *) data = Swap64 (fm, *(CARD64 *) (fm->area + fm->idx)); } else if (data_size == sizeof (unsigned int)) { *(unsigned int *) data = Swap64 (fm, *(CARD64 *) (fm->area + fm->idx)); } else if (data_size == sizeof (unsigned long)) { *(unsigned long *) data = Swap64 (fm, *(CARD64 *) (fm->area + fm->idx)); } else { ; /* Should never reached */ } /*endif*/ fm->idx += 8; if ((fitr = _FrameIterCounterIncr (fm->iters, 8/*BIT64*/))) _FrameMgrRemoveIter (fm, fitr); /*endif*/ return FmSuccess; #endif case BARRAY: if (info.num == NO_VALUE) return FmInvalidCall; /*endif*/ if (info.num > 0) { *(char **) data = fm->area + fm->idx; fm->idx += info.num; if ((fitr = _FrameIterCounterIncr (fm->iters, info.num))) _FrameMgrRemoveIter (fm, fitr); /*endif*/ } else { *(char **) data = NULL; } /*endif*/ return FmSuccess; case PADDING: if (info.num == NO_VALUE) return FmInvalidCall; /*endif*/ fm->idx += info.num; if ((fitr = _FrameIterCounterIncr (fm->iters, info.num))) _FrameMgrRemoveIter (fm, fitr); /*endif*/ return _FrameMgrGetToken (fm, data, data_size); case ITER: return FmInvalidCall; /* if comes here, it's a bug! */ case EOL: return FmEOD; default: break; } /*endswitch*/ return (FmStatus) NULL; /* Should never be reached */ } FmStatus FrameMgrSetSize (FrameMgr fm, int barray_size) { if (FrameInstSetSize (fm->fi, barray_size) == FmSuccess) return FmSuccess; /*endif*/ return FmNoMoreData; } FmStatus FrameMgrSetIterCount (FrameMgr fm, int count) { if (FrameInstSetIterCount (fm->fi, count) == FmSuccess) return FmSuccess; /*endif*/ return FmNoMoreData; } FmStatus FrameMgrSetTotalSize (FrameMgr fm, int total_size) { fm->total_size = total_size; return FmSuccess; } int FrameMgrGetTotalSize (FrameMgr fm) { return FrameInstGetTotalSize (fm->fi); } int FrameMgrGetSize (FrameMgr fm) { register int ret_size; ret_size = FrameInstGetSize (fm->fi); if (ret_size == NO_VALID_FIELD) return NO_VALUE; /*endif*/ return ret_size; } FmStatus FrameMgrSkipToken (FrameMgr fm, int skip_count) { XimFrameType type; XimFrameTypeInfoRec info; register int i; if (fm->total_size != NO_VALUE && fm->idx >= fm->total_size) return FmNoMoreData; /*endif*/ for (i = 0; i < skip_count; i++) { type = FrameInstGetNextType (fm->fi, &info); type &= ~COUNTER_MASK; switch (type) { case BIT8: fm->idx++; break; case BIT16: fm->idx += 2; break; case BIT32: fm->idx += 4; break; case BIT64: fm->idx += 8; break; case BARRAY: if (info.num == NO_VALUE) return FmInvalidCall; /*endif*/ fm->idx += info.num; break; case PADDING: if (info.num == NO_VALUE) return FmInvalidCall; /*endif*/ fm->idx += info.num; return FrameMgrSkipToken (fm, skip_count); case ITER: return FmInvalidCall; case EOL: return FmEOD; default: break; } /*endswitch*/ } /*endfor*/ return FmSuccess; } void FrameMgrReset (FrameMgr fm) { fm->idx = 0; FrameInstReset (fm->fi); } Bool FrameMgrIsIterLoopEnd (FrameMgr fm, FmStatus* status) { do { if (_FrameMgrIsIterLoopEnd (fm)) return True; /*endif*/ } while (_FrameMgrProcessPadding (fm, status)); return False; } /* Internal routines */ static Bool _FrameMgrIsIterLoopEnd (FrameMgr fm) { return FrameInstIsIterLoopEnd (fm->fi); } static Bool _FrameMgrProcessPadding (FrameMgr fm, FmStatus* status) { XimFrameTypeInfoRec info; XimFrameType next_type = FrameInstPeekNextType (fm->fi, &info); FrameIter fitr; if (next_type == PADDING) { if (info.num == NO_VALUE) { *status = FmInvalidCall; return True; } /*endif*/ next_type = FrameInstGetNextType (fm->fi, &info); fm->idx += info.num; if ((fitr = _FrameIterCounterIncr (fm->iters, info.num))) _FrameMgrRemoveIter (fm, fitr); /*endif*/ *status = FmSuccess; return True; } /*endif*/ *status = FmSuccess; return False; } static FrameInst FrameInstInit (XimFrame frame) { FrameInst fi; fi = (FrameInst) Xmalloc (sizeof (FrameInstRec)); fi->template = frame; fi->cur_no = 0; ChainMgrInit (&fi->cm); return fi; } static void FrameInstFree (FrameInst fi) { ChainIterRec ci; int frame_no; ExtraDataRec d; ChainIterInit (&ci, &fi->cm); while (ChainIterGetNext (&ci, &frame_no, &d)) { register XimFrameType type; type = fi->template[frame_no].type; if (type == ITER) { if (d.iter) IterFree (d.iter); /*endif*/ } else if (type == POINTER) { if (d.fi) FrameInstFree (d.fi); /*endif*/ } /*endif*/ } /*endwhile*/ ChainIterFree (&ci); ChainMgrFree (&fi->cm); Xfree (fi); } static XimFrameType FrameInstGetNextType(FrameInst fi, XimFrameTypeInfo info) { XimFrameType ret_type; ret_type = fi->template[fi->cur_no].type; switch (ret_type) { case BIT8: case BIT16: case BIT32: case BIT64: case EOL: fi->cur_no = _FrameInstIncrement(fi->template, fi->cur_no); break; case COUNTER_BIT8: case COUNTER_BIT16: case COUNTER_BIT32: case COUNTER_BIT64: if (info) { register int offset, iter_idx; info->counter.is_byte_len = (((long) fi->template[fi->cur_no].data & 0xFF)) == FmCounterByte; offset = ((long) fi->template[fi->cur_no].data) >> 8; iter_idx = fi->cur_no + offset; if (fi->template[iter_idx].type == ITER) { ExtraData d; ExtraDataRec dr; if ((d = ChainMgrGetExtraData (&fi->cm, iter_idx)) == NULL) { dr.iter = IterInit (&fi->template[iter_idx + 1], NO_VALUE); d = ChainMgrSetData (&fi->cm, iter_idx, dr); } /*endif*/ info->counter.iter = d->iter; } else { /* Should never reach here */ } /*endif*/ } /*endif*/ fi->cur_no = _FrameInstIncrement (fi->template, fi->cur_no); break; case BARRAY: if (info) { ExtraData d; if ((d = ChainMgrGetExtraData (&fi->cm, fi->cur_no)) == NULL) info->num = NO_VALUE; else info->num = d->num; /*endif*/ } /*endif*/ fi->cur_no = _FrameInstIncrement (fi->template, fi->cur_no); break; case PADDING: if (info) { register int unit; register int number; register int size; register int i; unit = _UNIT ((long) fi->template[fi->cur_no].data); number = _NUMBER ((long) fi->template[fi->cur_no].data); i = fi->cur_no; size = 0; while (number > 0) { i = _FrameInstDecrement (fi->template, i); size += _FrameInstGetItemSize (fi, i); number--; } /*endwhile*/ info->num = (unit - (size%unit))%unit; } /*endif*/ fi->cur_no = _FrameInstIncrement (fi->template, fi->cur_no); break; case ITER: { ExtraData d; ExtraDataRec dr; XimFrameType sub_type; if ((d = ChainMgrGetExtraData (&fi->cm, fi->cur_no)) == NULL) { dr.iter = IterInit (&fi->template[fi->cur_no + 1], NO_VALUE); d = ChainMgrSetData (&fi->cm, fi->cur_no, dr); } /*endif*/ sub_type = IterGetNextType (d->iter, info); if (sub_type == EOL) { fi->cur_no = _FrameInstIncrement (fi->template, fi->cur_no); ret_type = FrameInstGetNextType (fi, info); } else { ret_type = sub_type; } /*endif*/ } break; case POINTER: { ExtraData d; ExtraDataRec dr; XimFrameType sub_type; if ((d = ChainMgrGetExtraData (&fi->cm, fi->cur_no)) == NULL) { dr.fi = FrameInstInit (fi->template[fi->cur_no + 1].data); d = ChainMgrSetData (&fi->cm, fi->cur_no, dr); } /*endif*/ sub_type = FrameInstGetNextType (d->fi, info); if (sub_type == EOL) { fi->cur_no = _FrameInstIncrement (fi->template, fi->cur_no); ret_type = FrameInstGetNextType (fi, info); } else { ret_type = sub_type; } /*endif*/ } break; default: break; } /*endswitch*/ return ret_type; } static XimFrameType FrameInstPeekNextType (FrameInst fi, XimFrameTypeInfo info) { XimFrameType ret_type; ret_type = fi->template[fi->cur_no].type; switch (ret_type) { case BIT8: case BIT16: case BIT32: case BIT64: case EOL: break; case COUNTER_BIT8: case COUNTER_BIT16: case COUNTER_BIT32: case COUNTER_BIT64: if (info) { register int offset; register int iter_idx; info->counter.is_byte_len = (((long) fi->template[fi->cur_no].data) & 0xFF) == FmCounterByte; offset = ((long)fi->template[fi->cur_no].data) >> 8; iter_idx = fi->cur_no + offset; if (fi->template[iter_idx].type == ITER) { ExtraData d; ExtraDataRec dr; if ((d = ChainMgrGetExtraData (&fi->cm, iter_idx)) == NULL) { dr.iter = IterInit (&fi->template[iter_idx + 1], NO_VALUE); d = ChainMgrSetData (&fi->cm, iter_idx, dr); } /*endif*/ info->counter.iter = d->iter; } else { /* Should not be reached here */ } /*endif*/ } /*endif*/ break; case BARRAY: if (info) { ExtraData d; if ((d = ChainMgrGetExtraData (&fi->cm, fi->cur_no)) == NULL) info->num = NO_VALUE; else info->num = d->num; /*endif*/ } /*endif*/ break; case PADDING: if (info) { register int unit; register int number; register int size; register int i; unit = _UNIT ((long) fi->template[fi->cur_no].data); number = _NUMBER ((long) fi->template[fi->cur_no].data); i = fi->cur_no; size = 0; while (number > 0) { i = _FrameInstDecrement (fi->template, i); size += _FrameInstGetItemSize (fi, i); number--; } /*endwhile*/ info->num = (unit - (size%unit))%unit; } /*endif*/ break; case ITER: { ExtraData d; ExtraDataRec dr; XimFrameType sub_type; if ((d = ChainMgrGetExtraData (&fi->cm, fi->cur_no)) == NULL) { dr.iter = IterInit (&fi->template[fi->cur_no + 1], NO_VALUE); d = ChainMgrSetData (&fi->cm, fi->cur_no, dr); } /*endif*/ sub_type = IterPeekNextType (d->iter, info); if (sub_type == EOL) ret_type = FrameInstPeekNextType (fi, info); else ret_type = sub_type; /*endif*/ } break; case POINTER: { ExtraData d; ExtraDataRec dr; XimFrameType sub_type; if ((d = ChainMgrGetExtraData (&fi->cm, fi->cur_no)) == NULL) { dr.fi = FrameInstInit (fi->template[fi->cur_no + 1].data); d = ChainMgrSetData (&fi->cm, fi->cur_no, dr); } /*endif*/ sub_type = FrameInstPeekNextType (d->fi, info); if (sub_type == EOL) ret_type = FrameInstPeekNextType (fi, info); else ret_type = sub_type; /*endif*/ default: break; } break; } /*endswitch*/ return ret_type; } static Bool FrameInstIsIterLoopEnd (FrameInst fi) { Bool ret = False; if (fi->template[fi->cur_no].type == ITER) { ExtraData d = ChainMgrGetExtraData (&fi->cm, fi->cur_no); Bool yourself; if (d) { ret = IterIsLoopEnd (d->iter, &yourself); if (ret && yourself) fi->cur_no = _FrameInstIncrement (fi->template, fi->cur_no); /*endif*/ } /*endif*/ } /*endif*/ return (ret); } static FrameIter _FrameMgrAppendIter (FrameMgr fm, Iter it, int end) { FrameIter p = fm->iters; while (p && p->next) p = p->next; /*endwhile*/ if (!p) { fm->iters = p = (FrameIter) Xmalloc (sizeof (FrameIterRec)); } else { p->next = (FrameIter) Xmalloc (sizeof (FrameIterRec)); p = p->next; } /*endif*/ if (p) { p->iter = it; p->counting = False; p->counter = 0; p->end = end; p->next = NULL; } /*endif*/ return (p); } static void _FrameMgrRemoveIter (FrameMgr fm, FrameIter it) { FrameIter prev; FrameIter p; prev = NULL; p = fm->iters; while (p) { if (p == it) { if (prev) prev->next = p->next; else fm->iters = p->next; /*endif*/ Xfree (p); break; } /*endif*/ prev = p; p = p->next; } /*endwhile*/ } static FrameIter _FrameIterCounterIncr (FrameIter fitr, int i) { FrameIter p = fitr; while (p) { if (p->counting) { p->counter += i; if (p->counter >= p->end) { IterFixIteration (p->iter); return (p); } /*endif*/ } /*endif*/ p = p->next; } /*endwhile*/ return (NULL); } static void _IterStartWatch (Iter it, void *client_data) { FrameIter p = (FrameIter) client_data; p->counting = True; } static FmStatus FrameInstSetSize (FrameInst fi, int num) { ExtraData d; ExtraDataRec dr; XimFrameType type; register int i; i = 0; while ((type = fi->template[i].type) != EOL) { switch (type) { case BARRAY: if ((d = ChainMgrGetExtraData (&fi->cm, i)) == NULL) { dr.num = -1; d = ChainMgrSetData (&fi->cm, i, dr); } /*endif*/ if (d->num == NO_VALUE) { d->num = num; return FmSuccess; } /*endif*/ break; case ITER: if ((d = ChainMgrGetExtraData (&fi->cm, i)) == NULL) { dr.iter = IterInit (&fi->template[i + 1], NO_VALUE); d = ChainMgrSetData (&fi->cm, i, dr); } /*endif*/ if (IterSetSize (d->iter, num) == FmSuccess) return FmSuccess; /*endif*/ break; case POINTER: if ((d = ChainMgrGetExtraData(&fi->cm, i)) == NULL) { dr.fi = FrameInstInit(fi->template[i + 1].data); d = ChainMgrSetData(&fi->cm, i, dr); } /*endif*/ if (FrameInstSetSize(d->fi, num) == FmSuccess) return FmSuccess; /*endif*/ break; default: break; } /*endswitch*/ i = _FrameInstIncrement(fi->template, i); } /*endwhile*/ return FmNoMoreData; } static int FrameInstGetSize (FrameInst fi) { XimFrameType type; register int i; ExtraData d; ExtraDataRec dr; int ret_size; i = fi->cur_no; while ((type = fi->template[i].type) != EOL) { switch (type) { case BARRAY: if ((d = ChainMgrGetExtraData (&fi->cm, i)) == NULL) return NO_VALUE; /*endif*/ return d->num; case ITER: if ((d = ChainMgrGetExtraData (&fi->cm, i)) == NULL) { dr.iter = IterInit (&fi->template[i + 1], NO_VALUE); d = ChainMgrSetData (&fi->cm, i, dr); } /*endif*/ ret_size = IterGetSize(d->iter); if (ret_size != NO_VALID_FIELD) return ret_size; /*endif*/ break; case POINTER: if ((d = ChainMgrGetExtraData (&fi->cm, i)) == NULL) { dr.fi = FrameInstInit (fi->template[i + 1].data); d = ChainMgrSetData (&fi->cm, i, dr); } /*endif*/ ret_size = FrameInstGetSize (d->fi); if (ret_size != NO_VALID_FIELD) return ret_size; /*endif*/ break; default: break; } /*endswitch*/ i = _FrameInstIncrement (fi->template, i); } /*endwhile*/ return NO_VALID_FIELD; } static FmStatus FrameInstSetIterCount (FrameInst fi, int num) { ExtraData d; ExtraDataRec dr; register int i; XimFrameType type; i = 0; while ((type = fi->template[i].type) != EOL) { switch (type) { case ITER: if ((d = ChainMgrGetExtraData (&fi->cm, i)) == NULL) { dr.iter = IterInit (&fi->template[i + 1], num); (void)ChainMgrSetData (&fi->cm, i, dr); return FmSuccess; } /*endif*/ if (IterSetIterCount (d->iter, num) == FmSuccess) return FmSuccess; /*endif*/ break; case POINTER: if ((d = ChainMgrGetExtraData (&fi->cm, i)) == NULL) { dr.fi = FrameInstInit (fi->template[i + 1].data); d = ChainMgrSetData (&fi->cm, i, dr); } /*endif*/ if (FrameInstSetIterCount (d->fi, num) == FmSuccess) return FmSuccess; /*endif*/ break; default: break; } /*endswitch*/ i = _FrameInstIncrement (fi->template, i); } /*endwhile*/ return FmNoMoreData; } static int FrameInstGetTotalSize (FrameInst fi) { register int size; register int i; size = 0; i = 0; while (fi->template[i].type != EOL) { size += _FrameInstGetItemSize (fi, i); i = _FrameInstIncrement (fi->template, i); } /*endwhile*/ return size; } static void FrameInstReset (FrameInst fi) { ChainIterRec ci; int frame_no; ExtraDataRec d; ChainIterInit (&ci, &fi->cm); while (ChainIterGetNext (&ci, &frame_no, &d)) { register XimFrameType type; type = fi->template[frame_no].type; if (type == ITER) { if (d.iter) IterReset (d.iter); /*endif*/ } else if (type == POINTER) { if (d.fi) FrameInstReset (d.fi); /*endif*/ } /*endif*/ } /*endwhile*/ ChainIterFree (&ci); fi->cur_no = 0; } static Iter IterInit (XimFrame frame, int count) { Iter it; register XimFrameType type; it = (Iter) Xmalloc (sizeof (IterRec)); it->template = frame; it->max_count = (count == NO_VALUE) ? 0 : count; it->allow_expansion = (count == NO_VALUE); it->cur_no = 0; it->start_watch_proc = NULL; it->client_data = NULL; it->start_counter = False; type = frame->type; if (type & COUNTER_MASK) { /* COUNTER_XXX cannot be an item of a ITER */ Xfree (it); return NULL; } /*endif*/ switch (type) { case BIT8: case BIT16: case BIT32: case BIT64: /* Do nothing */ break; case BARRAY: case ITER: case POINTER: ChainMgrInit (&it->cm); break; default: Xfree (it); return NULL; /* This should never occur */ } /*endswitch*/ return it; } static void IterFree (Iter it) { switch (it->template->type) { case BARRAY: ChainMgrFree (&it->cm); break; case ITER: { ChainIterRec ci; int count; ExtraDataRec d; ChainIterInit (&ci, &it->cm); while (ChainIterGetNext (&ci, &count, &d)) IterFree (d.iter); /*endwhile*/ ChainIterFree (&ci); ChainMgrFree (&it->cm); } break; case POINTER: { ChainIterRec ci; int count; ExtraDataRec dr; ChainIterInit (&ci, &it->cm); while (ChainIterGetNext (&ci, &count, &dr)) FrameInstFree (dr.fi); /*endwhile*/ ChainIterFree (&ci); ChainMgrFree (&it->cm); } break; default: break; } /*endswitch*/ Xfree (it); } static Bool IterIsLoopEnd (Iter it, Bool *myself) { Bool ret = False; *myself = False; if (!it->allow_expansion && (it->cur_no == it->max_count)) { *myself = True; return True; } /*endif*/ if (it->template->type == POINTER) { ExtraData d = ChainMgrGetExtraData (&it->cm, it->cur_no); if (d) { if (FrameInstIsIterLoopEnd (d->fi)) { ret = True; } else { if (FrameInstIsEnd (d->fi)) { it->cur_no++; if (!it->allow_expansion && it->cur_no == it->max_count) { *myself = True; ret = True; } /*endif*/ } /*endif*/ } /*endif*/ } /*endif*/ } else if (it->template->type == ITER) { ExtraData d = ChainMgrGetExtraData (&it->cm, it->cur_no); if (d) { Bool yourself; if (IterIsLoopEnd (d->iter, &yourself)) ret = True; /*endif*/ } /*endif*/ } /*endif*/ return ret; } static XimFrameType IterGetNextType (Iter it, XimFrameTypeInfo info) { XimFrameType type = it->template->type; if (it->start_counter) { (*it->start_watch_proc) (it, it->client_data); it->start_counter = False; } /*endif*/ if (it->cur_no >= it->max_count) { if (it->allow_expansion) it->max_count = it->cur_no + 1; else return EOL; /*endif*/ } /*endif*/ switch (type) { case BIT8: case BIT16: case BIT32: case BIT64: it->cur_no++; return type; case BARRAY: if (info) { ExtraData d; if ((d = ChainMgrGetExtraData (&it->cm, it->cur_no)) == NULL) info->num = NO_VALUE; else info->num = d->num; /*endif*/ } /*endif*/ it->cur_no++; return BARRAY; case ITER: { XimFrameType ret_type; ExtraData d; ExtraDataRec dr; if ((d = ChainMgrGetExtraData (&it->cm, it->cur_no)) == NULL) { dr.iter = IterInit (it->template + 1, NO_VALUE); d = ChainMgrSetData (&it->cm, it->cur_no, dr); } /*endif*/ ret_type = IterGetNextType (d->iter, info); if (ret_type == EOL) { it->cur_no++; ret_type = IterGetNextType (it, info); } /*endif*/ return ret_type; } case POINTER: { XimFrameType ret_type; ExtraData d; ExtraDataRec dr; if ((d = ChainMgrGetExtraData (&it->cm, it->cur_no)) == NULL) { dr.fi = FrameInstInit (it->template[1].data); d = ChainMgrSetData (&it->cm, it->cur_no, dr); } /*endif*/ ret_type = FrameInstGetNextType (d->fi, info); if (ret_type == EOL) { it->cur_no++; ret_type = IterGetNextType (it, info); } /*endif*/ return ret_type; } default: return (XimFrameType) NULL; } /*endswitch*/ return (XimFrameType) NULL; /* This should never occur */ } static XimFrameType IterPeekNextType (Iter it, XimFrameTypeInfo info) { XimFrameType type = it->template->type; if (!it->allow_expansion && it->cur_no >= it->max_count) return (EOL); /*endif*/ switch (type) { case BIT8: case BIT16: case BIT32: case BIT64: return type; case BARRAY: if (info) { ExtraData d; if ((d = ChainMgrGetExtraData (&it->cm, it->cur_no)) == NULL) info->num = NO_VALUE; else info->num = d->num; /*endif*/ } /*endif*/ return BARRAY; case ITER: { XimFrameType ret_type; ExtraData d; ExtraDataRec dr; if ((d = ChainMgrGetExtraData (&it->cm, it->cur_no)) == NULL) { dr.iter = IterInit (it->template + 1, NO_VALUE); d = ChainMgrSetData (&it->cm, it->cur_no, dr); } /*endif*/ ret_type = IterPeekNextType (d->iter, info); if (ret_type == EOL) ret_type = IterPeekNextType (it, info); /*endif*/ return ret_type; } case POINTER: { XimFrameType ret_type; ExtraData d; ExtraDataRec dr; if ((d = ChainMgrGetExtraData (&it->cm, it->cur_no)) == NULL) { dr.fi = FrameInstInit (it->template[1].data); d = ChainMgrSetData (&it->cm, it->cur_no, dr); } /*endif*/ ret_type = FrameInstPeekNextType (d->fi, info); if (ret_type == EOL) ret_type = IterPeekNextType (it, info); /*endif*/ return (ret_type); } default: break; } /*endswitch*/ /* Reaching here is a bug! */ return (XimFrameType) NULL; } static FmStatus IterSetSize (Iter it, int num) { XimFrameType type; register int i; if (!it->allow_expansion && it->max_count == 0) return FmNoMoreData; /*endif*/ type = it->template->type; switch (type) { case BARRAY: { ExtraData d; ExtraDataRec dr; for (i = 0; i < it->max_count; i++) { if ((d = ChainMgrGetExtraData (&it->cm, i)) == NULL) { dr.num = NO_VALUE; d = ChainMgrSetData (&it->cm, i, dr); } /*endif*/ if (d->num == NO_VALUE) { d->num = num; return FmSuccess; } /*endif*/ } /*endfor*/ if (it->allow_expansion) { ExtraDataRec dr; dr.num = num; ChainMgrSetData (&it->cm, it->max_count, dr); it->max_count++; return FmSuccess; } /*endif*/ } return FmNoMoreData; case ITER: { ExtraData d; ExtraDataRec dr; for (i = 0; i < it->max_count; i++) { if ((d = ChainMgrGetExtraData (&it->cm, i)) == NULL) { dr.iter = IterInit (it->template + 1, NO_VALUE); d = ChainMgrSetData (&it->cm, i, dr); } /*endif*/ if (IterSetSize (d->iter, num) == FmSuccess) return FmSuccess; /*endif*/ } /*endfor*/ if (it->allow_expansion) { ExtraDataRec dr; dr.iter = IterInit (it->template + 1, NO_VALUE); ChainMgrSetData (&it->cm, it->max_count, dr); it->max_count++; if (IterSetSize(dr.iter, num) == FmSuccess) return FmSuccess; /*endif*/ } /*endif*/ } return FmNoMoreData; case POINTER: { ExtraData d; ExtraDataRec dr; for (i = 0; i < it->max_count; i++) { if ((d = ChainMgrGetExtraData (&it->cm, i)) == NULL) { dr.fi = FrameInstInit (it->template[1].data); d = ChainMgrSetData (&it->cm, i, dr); } /*endif*/ if (FrameInstSetSize (d->fi, num) == FmSuccess) return FmSuccess; /*endif*/ } /*endfor*/ if (it->allow_expansion) { ExtraDataRec dr; dr.fi = FrameInstInit (it->template[1].data); ChainMgrSetData (&it->cm, it->max_count, dr); it->max_count++; if (FrameInstSetSize (dr.fi, num) == FmSuccess) return FmSuccess; /*endif*/ } /*endif*/ } return FmNoMoreData; default: break; } /*endswitch*/ return FmNoMoreData; } static int IterGetSize (Iter it) { register int i; ExtraData d; ExtraDataRec dr; if (it->cur_no >= it->max_count) return NO_VALID_FIELD; /*endif*/ switch (it->template->type) { case BARRAY: if ((d = ChainMgrGetExtraData (&it->cm, it->cur_no)) == NULL) return NO_VALUE; /*endif*/ return d->num; case ITER: for (i = it->cur_no; i < it->max_count; i++) { int ret_size; if ((d = ChainMgrGetExtraData (&it->cm, i)) == NULL) { dr.iter = IterInit (it->template + 1, NO_VALUE); d = ChainMgrSetData (&it->cm, i, dr); } /*endif*/ ret_size = IterGetSize (d->iter); if (ret_size != NO_VALID_FIELD) return ret_size; /*endif*/ } /*endfor*/ return NO_VALID_FIELD; case POINTER: for (i = it->cur_no; i < it->max_count; i++) { int ret_size; if ((d = ChainMgrGetExtraData (&it->cm, i)) == NULL) { dr.fi = FrameInstInit (it->template[1].data); d = ChainMgrSetData (&it->cm, i, dr); } /*endif*/ ret_size = FrameInstGetSize (d->fi); if (ret_size != NO_VALID_FIELD) return ret_size; /*endif*/ } /*endfor*/ return NO_VALID_FIELD; default: break; } /*endswitch*/ return NO_VALID_FIELD; } static FmStatus IterSetIterCount (Iter it, int num) { register int i; if (it->allow_expansion) { it->max_count = num; it->allow_expansion = False; return FmSuccess; } /*endif*/ if (it->max_count == 0) return FmNoMoreData; /*endif*/ switch (it->template->type) { case ITER: for (i = 0; i < it->max_count; i++) { ExtraData d; ExtraDataRec dr; if ((d = ChainMgrGetExtraData(&it->cm, i)) == NULL) { dr.iter = IterInit(it->template + 1, num); (void)ChainMgrSetData(&it->cm, i, dr); return FmSuccess; } /*endif*/ if (IterSetIterCount(d->iter, num) == FmSuccess) return FmSuccess; /*endif*/ } /*endfor*/ if (it->allow_expansion) { ExtraDataRec dr; dr.iter = IterInit (it->template + 1, num); ChainMgrSetData (&it->cm, it->max_count, dr); it->max_count++; return FmSuccess; } /*endif*/ break; case POINTER: for (i = 0; i < it->max_count; i++) { ExtraData d; ExtraDataRec dr; if ((d = ChainMgrGetExtraData (&it->cm, i)) == NULL) { dr.fi = FrameInstInit (it->template[1].data); d = ChainMgrSetData (&it->cm, i, dr); } /*endif*/ if (FrameInstSetIterCount (d->fi, num) == FmSuccess) return FmSuccess; /*endif*/ } /*endfor*/ if (it->allow_expansion) { ExtraDataRec dr; dr.fi = FrameInstInit (it->template[1].data); ChainMgrSetData (&it->cm, it->max_count, dr); it->max_count++; if (FrameInstSetIterCount (dr.fi, num) == FmSuccess) return FmSuccess; /*endif*/ } /*endif*/ break; default: break; } /*endswitch*/ return FmNoMoreData; } static int IterGetTotalSize (Iter it) { register int size, i; XimFrameType type; if (it->allow_expansion) return NO_VALUE; /*endif*/ if (it->max_count == 0) return 0; /*endif*/ size = 0; type = it->template->type; switch (type) { case BIT8: size = it->max_count; break; case BIT16: size = it->max_count*2; break; case BIT32: size = it->max_count*4; break; case BIT64: size = it->max_count*8; break; case BARRAY: for (i = 0; i < it->max_count; i++) { register int num; ExtraData d; if ((d = ChainMgrGetExtraData (&it->cm, i)) == NULL) return NO_VALUE; /*endif*/ if ((num = d->num) == NO_VALUE) return NO_VALUE; /*endif*/ size += num; } /*endfor*/ break; case ITER: for (i = 0; i < it->max_count; i++) { register int num; ExtraData d; if ((d = ChainMgrGetExtraData (&it->cm, i)) == NULL) return NO_VALUE; /*endif*/ if ((num = IterGetTotalSize (d->iter)) == NO_VALUE) return NO_VALUE; /*endif*/ size += num; } /*endfor*/ break; case POINTER: for (i = 0; i < it->max_count; i++) { register int num; ExtraData d; ExtraDataRec dr; if ((d = ChainMgrGetExtraData (&it->cm, i)) == NULL) { dr.fi = FrameInstInit (it->template[1].data); d = ChainMgrSetData (&it->cm, i, dr); } /*endif*/ if ((num = FrameInstGetTotalSize (d->fi)) == NO_VALUE) return NO_VALUE; /*endif*/ size += num; } /*endfor*/ break; default: break; } /*endswitch*/ return size; } static void IterReset (Iter it) { ChainIterRec ci; int count; ExtraDataRec d; switch (it->template->type) { case ITER: ChainIterInit (&ci, &it->cm); while (ChainIterGetNext (&ci, &count, &d)) IterReset (d.iter); /*endwhile*/ ChainIterFree (&ci); break; case POINTER: ChainIterInit (&ci, &it->cm); while (ChainIterGetNext (&ci, &count, &d)) FrameInstReset (d.fi); /*endwhile*/ ChainIterFree (&ci); break; default: break; } /*endswitch*/ it->cur_no = 0; } static void IterSetStartWatch (Iter it, IterStartWatchProc proc, void *client_data) { it->start_watch_proc = proc; it->client_data = client_data; } static ExtraData ChainMgrSetData (ChainMgr cm, int frame_no, ExtraDataRec data) { Chain cur = (Chain) Xmalloc (sizeof (ChainRec)); cur->frame_no = frame_no; cur->d = data; cur->next = NULL; if (cm->top == NULL) { cm->top = cm->tail = cur; } else { cm->tail->next = cur; cm->tail = cur; } /*endif*/ return &cur->d; } static ExtraData ChainMgrGetExtraData (ChainMgr cm, int frame_no) { Chain cur; cur = cm->top; while (cur) { if (cur->frame_no == frame_no) return &cur->d; /*endif*/ cur = cur->next; } /*endwhile*/ return NULL; } static Bool ChainIterGetNext (ChainIter ci, int *frame_no, ExtraData d) { if (ci->cur == NULL) return False; /*endif*/ *frame_no = ci->cur->frame_no; *d = ci->cur->d; ci->cur = ci->cur->next; return True; } static int _FrameInstIncrement (XimFrame frame, int count) { XimFrameType type; type = frame[count].type; type &= ~COUNTER_MASK; switch (type) { case BIT8: case BIT16: case BIT32: case BIT64: case BARRAY: case PADDING: return count + 1; case POINTER: return count + 2; case ITER: return _FrameInstIncrement (frame, count + 1); default: break; } /*endswitch*/ return - 1; /* Error */ } static int _FrameInstDecrement (XimFrame frame, int count) { register int i; XimFrameType type; if (count == 0) return - 1; /* cannot decrement */ /*endif*/ if (count == 1) return 0; /* BOGUS - It should check the contents of data */ /*endif*/ type = frame[count - 2].type; type &= ~COUNTER_MASK; switch (type) { case BIT8: case BIT16: case BIT32: case BIT64: case BARRAY: case PADDING: case PTR_ITEM: return count - 1; case POINTER: case ITER: i = count - 3; while (i >= 0) { if (frame[i].type != ITER) return i + 1; /*endif*/ i--; } /*endwhile*/ return 0; default: break; } /*enswitch*/ return - 1; /* Error */ } static int _FrameInstGetItemSize (FrameInst fi, int cur_no) { XimFrameType type; type = fi->template[cur_no].type; type &= ~COUNTER_MASK; switch (type) { case BIT8: return 1; case BIT16: return 2; case BIT32: return 4; case BIT64: return 8; case BARRAY: { ExtraData d; if ((d = ChainMgrGetExtraData (&fi->cm, cur_no)) == NULL) return NO_VALUE; /*endif*/ if (d->num == NO_VALUE) return NO_VALUE; /*endif*/ return d->num; } case PADDING: { register int unit; register int number; register int size; register int i; unit = _UNIT ((long) fi->template[cur_no].data); number = _NUMBER ((long) fi->template[cur_no].data); i = cur_no; size = 0; while (number > 0) { i = _FrameInstDecrement (fi->template, i); size += _FrameInstGetItemSize (fi, i); number--; } /*endwhile*/ size = (unit - (size%unit))%unit; return size; } case ITER: { ExtraData d; int sub_size; if ((d = ChainMgrGetExtraData (&fi->cm, cur_no)) == NULL) return NO_VALUE; /*endif*/ sub_size = IterGetTotalSize (d->iter); if (sub_size == NO_VALUE) return NO_VALUE; /*endif*/ return sub_size; } case POINTER: { ExtraData d; int sub_size; if ((d = ChainMgrGetExtraData (&fi->cm, cur_no)) == NULL) return NO_VALUE; /*endif*/ sub_size = FrameInstGetTotalSize (d->fi); if (sub_size == NO_VALUE) return NO_VALUE; /*endif*/ return sub_size; } default: break; } /*endswitch*/ return NO_VALUE; } scim-1.4.14/modules/FrontEnd/IMdkit/FrameMgr.h000066400000000000000000000107271177210725600207740ustar00rootroot00000000000000/****************************************************************** Copyright 1993, 1994 by Digital Equipment Corporation, Maynard, Massachusetts, All Rights Reserved Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the names of Digital or MIT not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. Author: Hiroyuki Miyamoto Digital Equipment Corporation miyamoto@jrd.dec.com This version tidied and debugged by Steve Underwood May 1999 ******************************************************************/ #ifndef FRAMEMGR_H #define FRAMEMGR_H #include #include #include #if defined(VAXC) && !defined(__DECC) #define xim_externalref globalref #define xim_externaldef globaldef #else #define xim_externalref extern #define xim_externaldef #endif /* Definitions for FrameMgr */ #define COUNTER_MASK 0x10 typedef enum { BIT8 = 0x1, /* {CARD8* | INT8*} */ BIT16 = 0x2, /* {CARD16* | INT16*} */ BIT32 = 0x3, /* {CARD32* | INT32*} */ BIT64 = 0x4, /* {CARD64* | INT64*} */ BARRAY = 0x5, /* int*, void* */ ITER = 0x6, /* int* */ POINTER = 0x7, /* specifies next item is a PTR_ITEM */ PTR_ITEM = 0x8, /* specifies the item has a pointer */ /* BOGUS - POINTER and PTR_ITEM * In the current implementation, PTR_ITEM should be lead by * POINTER. But actually, it's just redundant logically. Someone * may remove this redundancy and POINTER from the enum member but he * should also modify the logic in FrameMgr program. */ PADDING = 0x9, /* specifies that a padding is needed. * This requires extra data in data field. */ EOL = 0xA, /* specifies the end of list */ COUNTER_BIT8 = COUNTER_MASK | 0x1, COUNTER_BIT16 = COUNTER_MASK | 0x2, COUNTER_BIT32 = COUNTER_MASK | 0x3, COUNTER_BIT64 = COUNTER_MASK | 0x4 } XimFrameType; /* Convenient macro */ #define _FRAME(a) {a, NULL} #define _PTR(p) {PTR_ITEM, (void *)p} /* PADDING's usage of data field * B15-B8 : Shows the number of effective items. * B7-B0 : Shows padding unit. ex) 04 shows 4 unit padding. */ #define _PAD2(n) {PADDING, (void*)((n)<<8|2)} #define _PAD4(n) {PADDING, (void*)((n)<<8|4)} #define FmCounterByte 0 #define FmCounterNumber 1 #define _BYTE_COUNTER(type, offset) \ {(COUNTER_MASK|type), (void*)((offset)<<8|FmCounterByte)} #define _NUMBER_COUNTER(type, offset) \ {(COUNTER_MASK|type), (void*)((offset)<<8|FmCounterNumber)} typedef struct _XimFrame { XimFrameType type; void* data; /* For PTR_ITEM and PADDING */ } XimFrameRec, *XimFrame; typedef enum { FmSuccess, FmEOD, FmInvalidCall, FmBufExist, FmCannotCalc, FmNoMoreData } FmStatus; typedef struct _FrameMgr *FrameMgr; FrameMgr FrameMgrInit(XimFrame frame, char* area, Bool byte_swap); void FrameMgrInitWithData(FrameMgr fm, XimFrame frame, void* area, Bool byte_swap); void FrameMgrFree(FrameMgr fm); FmStatus FrameMgrSetBuffer(FrameMgr, void*); FmStatus _FrameMgrPutToken(FrameMgr, void*, int); FmStatus _FrameMgrGetToken(FrameMgr, void*, int); FmStatus FrameMgrSetSize(FrameMgr, int); FmStatus FrameMgrSetIterCount(FrameMgr, int); FmStatus FrameMgrSetTotalSize(FrameMgr, int); int FrameMgrGetTotalSize(FrameMgr); int FrameMgrGetSize(FrameMgr); FmStatus FrameMgrSkipToken(FrameMgr, int); void FrameMgrReset(FrameMgr); Bool FrameMgrIsIterLoopEnd(FrameMgr, FmStatus*); #define FrameMgrPutToken(fm, obj) _FrameMgrPutToken((fm), &(obj), sizeof(obj)) #define FrameMgrGetToken(fm, obj) _FrameMgrGetToken((fm), &(obj), sizeof(obj)) #endif /* FRAMEMGR_H */ scim-1.4.14/modules/FrontEnd/IMdkit/IMConn.c000066400000000000000000000102021177210725600203760ustar00rootroot00000000000000/****************************************************************** Copyright 1994, 1995 by Sun Microsystems, Inc. Copyright 1993, 1994 by Hewlett-Packard Company Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of Sun Microsystems, Inc. and Hewlett-Packard not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. Sun Microsystems, Inc. and Hewlett-Packard make no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty. SUN MICROSYSTEMS INC. AND HEWLETT-PACKARD COMPANY DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SUN MICROSYSTEMS, INC. AND HEWLETT-PACKARD COMPANY BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. Author: Hidetoshi Tajima(tajima@Eng.Sun.COM) Sun Microsystems, Inc. This version tidied and debugged by Steve Underwood May 1999 ******************************************************************/ #include #include #include #include "IMdkit.h" #include #define Va_start(a,b) va_start(a,b) static void _IMCountVaList(va_list var, int *total_count) { char *attr; *total_count = 0; for (attr = va_arg (var, char*); attr; attr = va_arg (var, char*)) { (void)va_arg (var, XIMArg *); ++(*total_count); } /*endfor*/ } static void _IMVaToNestedList(va_list var, int max_count, XIMArg **args_return) { XIMArg *args; char *attr; if (max_count <= 0) { *args_return = (XIMArg *) NULL; return; } /*endif*/ args = (XIMArg *) malloc ((unsigned) (max_count + 1)*sizeof (XIMArg)); *args_return = args; if (!args) return; /*endif*/ for (attr = va_arg (var, char*); attr; attr = va_arg (var, char *)) { args->name = attr; args->value = va_arg (var, XPointer); args++; } /*endfor*/ args->name = (char*)NULL; } static char *_FindModifiers (XIMArg *args) { char *modifiers; while (args->name) { if (strcmp (args->name, IMModifiers) == 0) { modifiers = args->value; return modifiers; } else { args++; } /*endif*/ } /*endwhile*/ return NULL; } XIMS _GetIMS (char *modifiers) { XIMS ims; extern IMMethodsRec Xi18n_im_methods; if ((ims = (XIMS) malloc (sizeof (XIMProtocolRec))) == (XIMS) NULL) return ((XIMS) NULL); /*endif*/ memset ((void *) ims, 0, sizeof (XIMProtocolRec)); if (modifiers == NULL || modifiers[0] == '\0' || strcmp (modifiers, "Xi18n") == 0) { ims->methods = &Xi18n_im_methods; return ims; } /*endif*/ XFree (ims); return (XIMS) NULL; } XIMS IMOpenIM (Display *display, ...) { va_list var; int total_count; XIMArg *args; XIMS ims; char *modifiers; Status ret; Va_start (var, display); _IMCountVaList (var, &total_count); va_end (var); Va_start (var, display); _IMVaToNestedList (var, total_count, &args); va_end (var); modifiers = _FindModifiers (args); ims = _GetIMS (modifiers); if (ims == (XIMS) NULL) return (XIMS) NULL; /*endif*/ ims->core.display = display; ims->protocol = (*ims->methods->setup) (display, args); XFree (args); if (ims->protocol == (void *) NULL) { XFree (ims); return (XIMS) NULL; } /*endif*/ ret = (ims->methods->openIM) (ims); if (ret == False) { XFree (ims); return (XIMS) NULL; } /*endif*/ return (XIMS) ims; } Status IMCloseIM (XIMS ims) { (ims->methods->closeIM) (ims); XFree (ims); return True; } scim-1.4.14/modules/FrontEnd/IMdkit/IMMethod.c000066400000000000000000000044301177210725600207270ustar00rootroot00000000000000/****************************************************************** Copyright 1994, 1995 by Sun Microsystems, Inc. Copyright 1993, 1994 by Hewlett-Packard Company Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of Sun Microsystems, Inc. and Hewlett-Packard not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. Sun Microsystems, Inc. and Hewlett-Packard make no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty. SUN MICROSYSTEMS INC. AND HEWLETT-PACKARD COMPANY DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SUN MICROSYSTEMS, INC. AND HEWLETT-PACKARD COMPANY BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. Author: Hidetoshi Tajima(tajima@Eng.Sun.COM) Sun Microsystems, Inc. This version tidied and debugged by Steve Underwood May 1999 ******************************************************************/ #include #include "IMdkit.h" /* Public Function */ void IMForwardEvent (XIMS ims, XPointer call_data) { (ims->methods->forwardEvent) (ims, call_data); } void IMCommitString (XIMS ims, XPointer call_data) { (ims->methods->commitString) (ims, call_data); } int IMCallCallback (XIMS ims, XPointer call_data) { return (ims->methods->callCallback) (ims, call_data); } int IMPreeditStart (XIMS ims, XPointer call_data) { return (ims->methods->preeditStart) (ims, call_data); } int IMPreeditEnd (XIMS ims, XPointer call_data) { return (ims->methods->preeditEnd) (ims, call_data); } int IMSyncXlib(XIMS ims, XPointer call_data) { ims->sync = True; return (ims->methods->syncXlib) (ims, call_data); } scim-1.4.14/modules/FrontEnd/IMdkit/IMValues.c000066400000000000000000000064451177210725600207560ustar00rootroot00000000000000/****************************************************************** Copyright 1994, 1995 by Sun Microsystems, Inc. Copyright 1993, 1994 by Hewlett-Packard Company Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of Sun Microsystems, Inc. and Hewlett-Packard not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. Sun Microsystems, Inc. and Hewlett-Packard make no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty. SUN MICROSYSTEMS INC. AND HEWLETT-PACKARD COMPANY DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SUN MICROSYSTEMS, INC. AND HEWLETT-PACKARD COMPANY BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. Author: Hidetoshi Tajima(tajima@Eng.Sun.COM) Sun Microsystems, Inc. This version tidied and debugged by Steve Underwood May 1999 ******************************************************************/ #include #include #include "IMdkit.h" #include #define Va_start(a,b) va_start(a,b) static void _IMCountVaList (va_list var, int *total_count) { char *attr; *total_count = 0; for (attr = va_arg (var, char *); attr; attr = va_arg (var, char *)) { (void)va_arg (var, XIMArg *); ++(*total_count); } /*endfor*/ } static void _IMVaToNestedList (va_list var, int max_count, XIMArg **args_return) { XIMArg *args; char *attr; if (max_count <= 0) { *args_return = (XIMArg *) NULL; return; } /*endif*/ args = (XIMArg *) malloc ((unsigned) (max_count + 1)*sizeof (XIMArg)); *args_return = args; if (!args) return; /*endif*/ for (attr = va_arg (var, char *); attr; attr = va_arg (var, char *)) { args->name = attr; args->value = va_arg (var, XPointer); args++; } /*endfor*/ args->name = (char *) NULL; } char *IMGetIMValues (XIMS ims, ...) { va_list var; int total_count; XIMArg *args; char *ret; Va_start (var, ims); _IMCountVaList (var, &total_count); va_end (var); Va_start (var, ims); _IMVaToNestedList (var, total_count, &args); va_end (var); ret = (*ims->methods->getIMValues) (ims, args); if (args) XFree ((char *) args); /*endif*/ return ret; } char *IMSetIMValues (XIMS ims, ...) { va_list var; int total_count; XIMArg *args; char *ret; Va_start (var, ims); _IMCountVaList (var, &total_count); va_end (var); Va_start (var, ims); _IMVaToNestedList (var, total_count, &args); va_end (var); ret = (*ims->methods->setIMValues) (ims, args); if (args) XFree ((char *) args); /*endif*/ return ret; } scim-1.4.14/modules/FrontEnd/IMdkit/IMdkit.h000066400000000000000000000103731177210725600204520ustar00rootroot00000000000000/****************************************************************** Copyright 1994, 1995 by Sun Microsystems, Inc. Copyright 1993, 1994 by Hewlett-Packard Company Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of Sun Microsystems, Inc. and Hewlett-Packard not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. Sun Microsystems, Inc. and Hewlett-Packard make no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty. SUN MICROSYSTEMS INC. AND HEWLETT-PACKARD COMPANY DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SUN MICROSYSTEMS, INC. AND HEWLETT-PACKARD COMPANY BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. Author: Hidetoshi Tajima(tajima@Eng.Sun.COM) Sun Microsystems, Inc. This version tidied and debugged by Steve Underwood May 1999 ******************************************************************/ #ifndef _IMdkit_h #define _IMdkit_h #include #ifdef __cplusplus extern "C" { #endif /* IM Attributes Name */ #define IMModifiers "modifiers" #define IMServerWindow "serverWindow" #define IMServerName "serverName" #define IMServerTransport "serverTransport" #define IMLocale "locale" #define IMInputStyles "inputStyles" #define IMProtocolHandler "protocolHandler" #define IMOnKeysList "onKeysList" #define IMOffKeysList "offKeysList" #define IMEncodingList "encodingList" #define IMFilterEventMask "filterEventMask" #define IMProtocolDepend "protocolDepend" /* Masks for IM Attributes Name */ #define I18N_IMSERVER_WIN 0x0001 /* IMServerWindow */ #define I18N_IM_NAME 0x0002 /* IMServerName */ #define I18N_IM_LOCALE 0x0004 /* IMLocale */ #define I18N_IM_ADDRESS 0x0008 /* IMServerTransport */ #define I18N_INPUT_STYLES 0x0010 /* IMInputStyles */ #define I18N_ON_KEYS 0x0020 /* IMOnKeysList */ #define I18N_OFF_KEYS 0x0040 /* IMOffKeysList */ #define I18N_IM_HANDLER 0x0080 /* IMProtocolHander */ #define I18N_ENCODINGS 0x0100 /* IMEncodingList */ #define I18N_FILTERMASK 0x0200 /* IMFilterEventMask */ #define I18N_PROTO_DEPEND 0x0400 /* IMProtoDepend */ typedef struct { char *name; XPointer value; } XIMArg; typedef struct { CARD32 keysym; CARD32 modifier; CARD32 modifier_mask; } XIMTriggerKey; typedef struct { unsigned short count_keys; XIMTriggerKey *keylist; } XIMTriggerKeys; typedef char *XIMEncoding; typedef struct { unsigned short count_encodings; XIMEncoding *supported_encodings; } XIMEncodings; typedef struct _XIMS *XIMS; typedef struct { void* (*setup) (Display *, XIMArg *); Status (*openIM) (XIMS); Status (*closeIM) (XIMS); char* (*setIMValues) (XIMS, XIMArg *); char* (*getIMValues) (XIMS, XIMArg *); Status (*forwardEvent) (XIMS, XPointer); Status (*commitString) (XIMS, XPointer); int (*callCallback) (XIMS, XPointer); int (*preeditStart) (XIMS, XPointer); int (*preeditEnd) (XIMS, XPointer); int (*syncXlib) (XIMS, XPointer); } IMMethodsRec, *IMMethods; typedef struct { Display *display; int screen; } IMCoreRec, *IMCore; typedef struct _XIMS { IMMethods methods; IMCoreRec core; Bool sync; void *protocol; } XIMProtocolRec; /* * X function declarations. */ extern XIMS IMOpenIM (Display *, ...); extern Status IMCloseIM (XIMS); extern char *IMSetIMValues (XIMS, ...); extern char *IMGetIMValues (XIMS, ...); void IMForwardEvent (XIMS, XPointer); void IMCommitString (XIMS, XPointer); int IMCallCallback (XIMS, XPointer); int IMPreeditStart (XIMS, XPointer); int IMPreeditEnd (XIMS, XPointer); int IMSyncXlib (XIMS, XPointer); #ifdef __cplusplus } #endif #endif /* IMdkit_h */ scim-1.4.14/modules/FrontEnd/IMdkit/Makefile.am000066400000000000000000000024121177210725600211470ustar00rootroot00000000000000## Makefile.am -- Process this file with automake to produce Makefile.in ## Copyright (C) 2002 James Su ## ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2, or (at your option) ## any later version. ## ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. MAINTAINERCLEANFILES = Makefile.in noinst_HEADERS = FrameMgr.h \ Xi18n.h \ Xi18nX.h \ XimProto.h \ IMdkit.h \ XimFunc.h \ Xtrans.h noinst_LTLIBRARIES = libXimd.la libXimd_la_SOURCES = FrameMgr.c \ i18nIc.c \ i18nPtHdr.c \ i18nX.c \ IMValues.c \ i18nAttr.c \ i18nIMProto.c \ IMConn.c \ i18nClbk.c \ i18nMethod.c \ i18nUtil.c \ IMMethod.c libXimd_la_CFLAGS = @X_CFLAGS@ libXimd_la_LDFLAGS = @X_LIBS@ scim-1.4.14/modules/FrontEnd/IMdkit/Makefile.in000066400000000000000000000776301177210725600211760ustar00rootroot00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = modules/FrontEnd/IMdkit DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libXimd_la_LIBADD = am_libXimd_la_OBJECTS = libXimd_la-FrameMgr.lo libXimd_la-i18nIc.lo \ libXimd_la-i18nPtHdr.lo libXimd_la-i18nX.lo \ libXimd_la-IMValues.lo libXimd_la-i18nAttr.lo \ libXimd_la-i18nIMProto.lo libXimd_la-IMConn.lo \ libXimd_la-i18nClbk.lo libXimd_la-i18nMethod.lo \ libXimd_la-i18nUtil.lo libXimd_la-IMMethod.lo libXimd_la_OBJECTS = $(am_libXimd_la_OBJECTS) libXimd_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libXimd_la_CFLAGS) \ $(CFLAGS) $(libXimd_la_LDFLAGS) $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libXimd_la_SOURCES) DIST_SOURCES = $(libXimd_la_SOURCES) HEADERS = $(noinst_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ ARGZ_H = @ARGZ_H@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CLUTTER_BINARY_VERSION = @CLUTTER_BINARY_VERSION@ CLUTTER_CFLAGS = @CLUTTER_CFLAGS@ CLUTTER_IMCONTEXT_LIBDIR = @CLUTTER_IMCONTEXT_LIBDIR@ CLUTTER_IM_MODULEDIR = @CLUTTER_IM_MODULEDIR@ CLUTTER_LIBDIR = @CLUTTER_LIBDIR@ CLUTTER_LIBS = @CLUTTER_LIBS@ CLUTTER_VERSION = @CLUTTER_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOCBOOK_XSL = @DOCBOOK_XSL@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@ GTHREAD2_LIBS = @GTHREAD2_LIBS@ GTK2_CFLAGS = @GTK2_CFLAGS@ GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@ GTK2_LIBS = @GTK2_LIBS@ GTK3_CFLAGS = @GTK3_CFLAGS@ GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@ GTK3_LIBS = @GTK3_LIBS@ GTK_BINARY_VERSION = @GTK_BINARY_VERSION@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBDIR = @GTK_LIBDIR@ GTK_LIBS = @GTK_LIBS@ GTK_MAJOR_VERSION = @GTK_MAJOR_VERSION@ GTK_VERSION = @GTK_VERSION@ HAVE_GRAPHVIZ = @HAVE_GRAPHVIZ@ INCLTDL = @INCLTDL@ INCLUDE_STDINT = @INCLUDE_STDINT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBLTDL = @LIBLTDL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_DEPS = @LIBTOOL_DEPS@ LIBTOOL_EXPORT_OPTIONS = @LIBTOOL_EXPORT_OPTIONS@ LIPO = @LIPO@ LN_S = @LN_S@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ QT3_CFLAGS = @QT3_CFLAGS@ QT3_IM_MODULEDIR = @QT3_IM_MODULEDIR@ QT3_LIBDIR = @QT3_LIBDIR@ QT3_LIBS = @QT3_LIBS@ QT3_MOC = @QT3_MOC@ QT3_PREFIX = @QT3_PREFIX@ QT4_CFLAGS = @QT4_CFLAGS@ QT4_IM_MODULEDIR = @QT4_IM_MODULEDIR@ QT4_LIBDIR = @QT4_LIBDIR@ QT4_LIBS = @QT4_LIBS@ QT4_MOC = @QT4_MOC@ QT4_PREFIX = @QT4_PREFIX@ RANLIB = @RANLIB@ SCIM_AGE = @SCIM_AGE@ SCIM_BINARY_VERSION = @SCIM_BINARY_VERSION@ SCIM_BRIDGE_MAJOR_VERSION = @SCIM_BRIDGE_MAJOR_VERSION@ SCIM_BRIDGE_MICRO_VERSION = @SCIM_BRIDGE_MICRO_VERSION@ SCIM_BRIDGE_MINOR_VERSION = @SCIM_BRIDGE_MINOR_VERSION@ SCIM_BRIDGE_VERSION = @SCIM_BRIDGE_VERSION@ SCIM_BUILD_CLUTTER_IMMODULE = @SCIM_BUILD_CLUTTER_IMMODULE@ SCIM_BUILD_CONFIG_SIMPLE = @SCIM_BUILD_CONFIG_SIMPLE@ SCIM_BUILD_CONFIG_SOCKET = @SCIM_BUILD_CONFIG_SOCKET@ SCIM_BUILD_DOCUMENTS = @SCIM_BUILD_DOCUMENTS@ SCIM_BUILD_FILTER_SCTC = @SCIM_BUILD_FILTER_SCTC@ SCIM_BUILD_FRONTEND_SOCKET = @SCIM_BUILD_FRONTEND_SOCKET@ SCIM_BUILD_FRONTEND_X11 = @SCIM_BUILD_FRONTEND_X11@ SCIM_BUILD_GTK2_IMMODULE = @SCIM_BUILD_GTK2_IMMODULE@ SCIM_BUILD_GTK3_IMMODULE = @SCIM_BUILD_GTK3_IMMODULE@ SCIM_BUILD_GTK_UTILS = @SCIM_BUILD_GTK_UTILS@ SCIM_BUILD_IMENGINE_RAWCODE = @SCIM_BUILD_IMENGINE_RAWCODE@ SCIM_BUILD_IMENGINE_SOCKET = @SCIM_BUILD_IMENGINE_SOCKET@ SCIM_BUILD_IMENGINE_TABLE = @SCIM_BUILD_IMENGINE_TABLE@ SCIM_BUILD_IMMODULE = @SCIM_BUILD_IMMODULE@ SCIM_BUILD_IM_AGENT = @SCIM_BUILD_IM_AGENT@ SCIM_BUILD_ORIG_GTK2_IMMODULE = @SCIM_BUILD_ORIG_GTK2_IMMODULE@ SCIM_BUILD_ORIG_GTK3_IMMODULE = @SCIM_BUILD_ORIG_GTK3_IMMODULE@ SCIM_BUILD_PANEL_GTK = @SCIM_BUILD_PANEL_GTK@ SCIM_BUILD_QT3_IMMODULE = @SCIM_BUILD_QT3_IMMODULE@ SCIM_BUILD_QT4_IMMODULE = @SCIM_BUILD_QT4_IMMODULE@ SCIM_BUILD_SCIM_SETUP = @SCIM_BUILD_SCIM_SETUP@ SCIM_BUILD_TESTS = @SCIM_BUILD_TESTS@ SCIM_BUILD_X11_UTILS = @SCIM_BUILD_X11_UTILS@ SCIM_CURRENT = @SCIM_CURRENT@ SCIM_DATADIR = @SCIM_DATADIR@ SCIM_EPOCH = @SCIM_EPOCH@ SCIM_ICONDIR = @SCIM_ICONDIR@ SCIM_LIBDIR = @SCIM_LIBDIR@ SCIM_LIBEXECDIR = @SCIM_LIBEXECDIR@ SCIM_LOCALEDIR = @SCIM_LOCALEDIR@ SCIM_LTDLADVISE = @SCIM_LTDLADVISE@ SCIM_MAJOR_VERSION = @SCIM_MAJOR_VERSION@ SCIM_MICRO_VERSION = @SCIM_MICRO_VERSION@ SCIM_MINOR_VERSION = @SCIM_MINOR_VERSION@ SCIM_MODULE_PATH = @SCIM_MODULE_PATH@ SCIM_PREFIX = @SCIM_PREFIX@ SCIM_REVISION = @SCIM_REVISION@ SCIM_SYSCONFDIR = @SCIM_SYSCONFDIR@ SCIM_TEMPDIR = @SCIM_TEMPDIR@ SCIM_VERSION = @SCIM_VERSION@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UINT16 = @UINT16@ UINT32 = @UINT32@ UINT64 = @UINT64@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XMKMF = @XMKMF@ XSLTPROC = @XSLTPROC@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_aux_dir = @ac_aux_dir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ MAINTAINERCLEANFILES = Makefile.in noinst_HEADERS = FrameMgr.h \ Xi18n.h \ Xi18nX.h \ XimProto.h \ IMdkit.h \ XimFunc.h \ Xtrans.h noinst_LTLIBRARIES = libXimd.la libXimd_la_SOURCES = FrameMgr.c \ i18nIc.c \ i18nPtHdr.c \ i18nX.c \ IMValues.c \ i18nAttr.c \ i18nIMProto.c \ IMConn.c \ i18nClbk.c \ i18nMethod.c \ i18nUtil.c \ IMMethod.c libXimd_la_CFLAGS = @X_CFLAGS@ libXimd_la_LDFLAGS = @X_LIBS@ all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu modules/FrontEnd/IMdkit/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu modules/FrontEnd/IMdkit/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libXimd.la: $(libXimd_la_OBJECTS) $(libXimd_la_DEPENDENCIES) $(libXimd_la_LINK) $(libXimd_la_OBJECTS) $(libXimd_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libXimd_la-FrameMgr.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libXimd_la-IMConn.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libXimd_la-IMMethod.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libXimd_la-IMValues.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libXimd_la-i18nAttr.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libXimd_la-i18nClbk.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libXimd_la-i18nIMProto.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libXimd_la-i18nIc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libXimd_la-i18nMethod.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libXimd_la-i18nPtHdr.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libXimd_la-i18nUtil.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libXimd_la-i18nX.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< libXimd_la-FrameMgr.lo: FrameMgr.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libXimd_la_CFLAGS) $(CFLAGS) -MT libXimd_la-FrameMgr.lo -MD -MP -MF $(DEPDIR)/libXimd_la-FrameMgr.Tpo -c -o libXimd_la-FrameMgr.lo `test -f 'FrameMgr.c' || echo '$(srcdir)/'`FrameMgr.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libXimd_la-FrameMgr.Tpo $(DEPDIR)/libXimd_la-FrameMgr.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='FrameMgr.c' object='libXimd_la-FrameMgr.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libXimd_la_CFLAGS) $(CFLAGS) -c -o libXimd_la-FrameMgr.lo `test -f 'FrameMgr.c' || echo '$(srcdir)/'`FrameMgr.c libXimd_la-i18nIc.lo: i18nIc.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libXimd_la_CFLAGS) $(CFLAGS) -MT libXimd_la-i18nIc.lo -MD -MP -MF $(DEPDIR)/libXimd_la-i18nIc.Tpo -c -o libXimd_la-i18nIc.lo `test -f 'i18nIc.c' || echo '$(srcdir)/'`i18nIc.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libXimd_la-i18nIc.Tpo $(DEPDIR)/libXimd_la-i18nIc.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='i18nIc.c' object='libXimd_la-i18nIc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libXimd_la_CFLAGS) $(CFLAGS) -c -o libXimd_la-i18nIc.lo `test -f 'i18nIc.c' || echo '$(srcdir)/'`i18nIc.c libXimd_la-i18nPtHdr.lo: i18nPtHdr.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libXimd_la_CFLAGS) $(CFLAGS) -MT libXimd_la-i18nPtHdr.lo -MD -MP -MF $(DEPDIR)/libXimd_la-i18nPtHdr.Tpo -c -o libXimd_la-i18nPtHdr.lo `test -f 'i18nPtHdr.c' || echo '$(srcdir)/'`i18nPtHdr.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libXimd_la-i18nPtHdr.Tpo $(DEPDIR)/libXimd_la-i18nPtHdr.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='i18nPtHdr.c' object='libXimd_la-i18nPtHdr.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libXimd_la_CFLAGS) $(CFLAGS) -c -o libXimd_la-i18nPtHdr.lo `test -f 'i18nPtHdr.c' || echo '$(srcdir)/'`i18nPtHdr.c libXimd_la-i18nX.lo: i18nX.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libXimd_la_CFLAGS) $(CFLAGS) -MT libXimd_la-i18nX.lo -MD -MP -MF $(DEPDIR)/libXimd_la-i18nX.Tpo -c -o libXimd_la-i18nX.lo `test -f 'i18nX.c' || echo '$(srcdir)/'`i18nX.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libXimd_la-i18nX.Tpo $(DEPDIR)/libXimd_la-i18nX.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='i18nX.c' object='libXimd_la-i18nX.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libXimd_la_CFLAGS) $(CFLAGS) -c -o libXimd_la-i18nX.lo `test -f 'i18nX.c' || echo '$(srcdir)/'`i18nX.c libXimd_la-IMValues.lo: IMValues.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libXimd_la_CFLAGS) $(CFLAGS) -MT libXimd_la-IMValues.lo -MD -MP -MF $(DEPDIR)/libXimd_la-IMValues.Tpo -c -o libXimd_la-IMValues.lo `test -f 'IMValues.c' || echo '$(srcdir)/'`IMValues.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libXimd_la-IMValues.Tpo $(DEPDIR)/libXimd_la-IMValues.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='IMValues.c' object='libXimd_la-IMValues.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libXimd_la_CFLAGS) $(CFLAGS) -c -o libXimd_la-IMValues.lo `test -f 'IMValues.c' || echo '$(srcdir)/'`IMValues.c libXimd_la-i18nAttr.lo: i18nAttr.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libXimd_la_CFLAGS) $(CFLAGS) -MT libXimd_la-i18nAttr.lo -MD -MP -MF $(DEPDIR)/libXimd_la-i18nAttr.Tpo -c -o libXimd_la-i18nAttr.lo `test -f 'i18nAttr.c' || echo '$(srcdir)/'`i18nAttr.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libXimd_la-i18nAttr.Tpo $(DEPDIR)/libXimd_la-i18nAttr.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='i18nAttr.c' object='libXimd_la-i18nAttr.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libXimd_la_CFLAGS) $(CFLAGS) -c -o libXimd_la-i18nAttr.lo `test -f 'i18nAttr.c' || echo '$(srcdir)/'`i18nAttr.c libXimd_la-i18nIMProto.lo: i18nIMProto.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libXimd_la_CFLAGS) $(CFLAGS) -MT libXimd_la-i18nIMProto.lo -MD -MP -MF $(DEPDIR)/libXimd_la-i18nIMProto.Tpo -c -o libXimd_la-i18nIMProto.lo `test -f 'i18nIMProto.c' || echo '$(srcdir)/'`i18nIMProto.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libXimd_la-i18nIMProto.Tpo $(DEPDIR)/libXimd_la-i18nIMProto.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='i18nIMProto.c' object='libXimd_la-i18nIMProto.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libXimd_la_CFLAGS) $(CFLAGS) -c -o libXimd_la-i18nIMProto.lo `test -f 'i18nIMProto.c' || echo '$(srcdir)/'`i18nIMProto.c libXimd_la-IMConn.lo: IMConn.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libXimd_la_CFLAGS) $(CFLAGS) -MT libXimd_la-IMConn.lo -MD -MP -MF $(DEPDIR)/libXimd_la-IMConn.Tpo -c -o libXimd_la-IMConn.lo `test -f 'IMConn.c' || echo '$(srcdir)/'`IMConn.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libXimd_la-IMConn.Tpo $(DEPDIR)/libXimd_la-IMConn.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='IMConn.c' object='libXimd_la-IMConn.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libXimd_la_CFLAGS) $(CFLAGS) -c -o libXimd_la-IMConn.lo `test -f 'IMConn.c' || echo '$(srcdir)/'`IMConn.c libXimd_la-i18nClbk.lo: i18nClbk.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libXimd_la_CFLAGS) $(CFLAGS) -MT libXimd_la-i18nClbk.lo -MD -MP -MF $(DEPDIR)/libXimd_la-i18nClbk.Tpo -c -o libXimd_la-i18nClbk.lo `test -f 'i18nClbk.c' || echo '$(srcdir)/'`i18nClbk.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libXimd_la-i18nClbk.Tpo $(DEPDIR)/libXimd_la-i18nClbk.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='i18nClbk.c' object='libXimd_la-i18nClbk.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libXimd_la_CFLAGS) $(CFLAGS) -c -o libXimd_la-i18nClbk.lo `test -f 'i18nClbk.c' || echo '$(srcdir)/'`i18nClbk.c libXimd_la-i18nMethod.lo: i18nMethod.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libXimd_la_CFLAGS) $(CFLAGS) -MT libXimd_la-i18nMethod.lo -MD -MP -MF $(DEPDIR)/libXimd_la-i18nMethod.Tpo -c -o libXimd_la-i18nMethod.lo `test -f 'i18nMethod.c' || echo '$(srcdir)/'`i18nMethod.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libXimd_la-i18nMethod.Tpo $(DEPDIR)/libXimd_la-i18nMethod.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='i18nMethod.c' object='libXimd_la-i18nMethod.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libXimd_la_CFLAGS) $(CFLAGS) -c -o libXimd_la-i18nMethod.lo `test -f 'i18nMethod.c' || echo '$(srcdir)/'`i18nMethod.c libXimd_la-i18nUtil.lo: i18nUtil.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libXimd_la_CFLAGS) $(CFLAGS) -MT libXimd_la-i18nUtil.lo -MD -MP -MF $(DEPDIR)/libXimd_la-i18nUtil.Tpo -c -o libXimd_la-i18nUtil.lo `test -f 'i18nUtil.c' || echo '$(srcdir)/'`i18nUtil.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libXimd_la-i18nUtil.Tpo $(DEPDIR)/libXimd_la-i18nUtil.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='i18nUtil.c' object='libXimd_la-i18nUtil.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libXimd_la_CFLAGS) $(CFLAGS) -c -o libXimd_la-i18nUtil.lo `test -f 'i18nUtil.c' || echo '$(srcdir)/'`i18nUtil.c libXimd_la-IMMethod.lo: IMMethod.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libXimd_la_CFLAGS) $(CFLAGS) -MT libXimd_la-IMMethod.lo -MD -MP -MF $(DEPDIR)/libXimd_la-IMMethod.Tpo -c -o libXimd_la-IMMethod.lo `test -f 'IMMethod.c' || echo '$(srcdir)/'`IMMethod.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libXimd_la-IMMethod.Tpo $(DEPDIR)/libXimd_la-IMMethod.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='IMMethod.c' object='libXimd_la-IMMethod.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libXimd_la_CFLAGS) $(CFLAGS) -c -o libXimd_la-IMMethod.lo `test -f 'IMMethod.c' || echo '$(srcdir)/'`IMMethod.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: scim-1.4.14/modules/FrontEnd/IMdkit/Xi18n.h000066400000000000000000000254761177210725600202120ustar00rootroot00000000000000/****************************************************************** Copyright 1994, 1995 by Sun Microsystems, Inc. Copyright 1993, 1994 by Hewlett-Packard Company Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of Sun Microsystems, Inc. and Hewlett-Packard not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. Sun Microsystems, Inc. and Hewlett-Packard make no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty. SUN MICROSYSTEMS INC. AND HEWLETT-PACKARD COMPANY DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SUN MICROSYSTEMS, INC. AND HEWLETT-PACKARD COMPANY BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. Author: Hidetoshi Tajima(tajima@Eng.Sun.COM) Sun Microsystems, Inc. This version tidied and debugged by Steve Underwood May 1999 ******************************************************************/ #ifndef _Xi18n_h #define _Xi18n_h #include #include #include #include "XimProto.h" /* * Minor Protocol Number for Extension Protocol */ #define XIM_EXTENSION 128 #define XIM_EXT_SET_EVENT_MASK (0x30) #define XIM_EXT_FORWARD_KEYEVENT (0x32) #define XIM_EXT_MOVE (0x33) #define COMMON_EXTENSIONS_NUM 3 #include #include "IMdkit.h" /* XI18N Valid Attribute Name Definition */ #define ExtForwardKeyEvent "extForwardKeyEvent" #define ExtMove "extMove" #define ExtSetEventMask "extSetEventMask" /* * Padding macro */ #define IMPAD(length) ((4 - ((length)%4))%4) /* * Target Atom for Transport Connection */ #define LOCALES "LOCALES" #define TRANSPORT "TRANSPORT" #define I18N_OPEN 0 #define I18N_SET 1 #define I18N_GET 2 typedef struct { char *transportname; int namelen; Bool (*checkAddr) (); } TransportSW; typedef struct _XIMPending { unsigned char *p; struct _XIMPending *next; } XIMPending; typedef struct _XimProtoHdr { CARD8 major_opcode; CARD8 minor_opcode; CARD16 length; } XimProtoHdr; typedef struct { CARD16 attribute_id; CARD16 type; CARD16 length; char *name; } XIMAttr; typedef struct { CARD16 attribute_id; CARD16 type; CARD16 length; char *name; } XICAttr; typedef struct { int attribute_id; CARD16 name_length; char *name; int value_length; void *value; int type; } XIMAttribute; typedef struct { int attribute_id; CARD16 name_length; char *name; int value_length; void *value; int type; } XICAttribute; typedef struct { int length; char *name; } XIMStr; typedef struct { CARD16 major_opcode; CARD16 minor_opcode; CARD16 length; char *name; } XIMExt; typedef struct _Xi18nClient { int connect_id; CARD8 byte_order; /* '?': initial value 'B': for Big-Endian 'l': for little-endian */ int sync; XIMPending *pending; /* property offset to read next data */ long property_offset; void *trans_rec; /* contains transport specific data */ struct _Xi18nClient *next; } Xi18nClient; typedef struct _Xi18nCore *Xi18n; /* * Callback Struct for XIM Protocol */ typedef struct { int major_code; int minor_code; CARD16 connect_id; } IMAnyStruct; typedef struct { int major_code; int minor_code; CARD16 connect_id; CARD8 byte_order; CARD16 major_version; CARD16 minor_version; } IMConnectStruct; typedef struct { int major_code; int minor_code; CARD16 connect_id; } IMDisConnectStruct; typedef struct { int major_code; int minor_code; CARD16 connect_id; XIMStr lang; } IMOpenStruct; typedef struct { int major_code; int minor_code; CARD16 connect_id; } IMCloseStruct; typedef struct { int major_code; int minor_code; CARD16 connect_id; CARD16 number; XIMStr *extension; } IMQueryExtensionStruct; typedef struct { int major_code; int minor_code; CARD16 connect_id; CARD16 number; char **im_attr_list; } IMGetIMValuesStruct; typedef struct { int major_code; int minor_code; CARD16 connect_id; CARD16 icid; CARD16 preedit_attr_num; CARD16 status_attr_num; CARD16 ic_attr_num; XICAttribute *preedit_attr; XICAttribute *status_attr; XICAttribute *ic_attr; } IMChangeICStruct; typedef struct { int major_code; int minor_code; CARD16 connect_id; CARD16 icid; } IMDestroyICStruct; typedef struct { int major_code; int minor_code; CARD16 connect_id; CARD16 icid; CARD16 length; char *commit_string; } IMResetICStruct; typedef struct { int major_code; int minor_code; CARD16 connect_id; CARD16 icid; } IMChangeFocusStruct; typedef struct { int major_code; int minor_code; CARD16 connect_id; CARD16 icid; BITMASK16 sync_bit; CARD16 serial_number; XEvent event; } IMForwardEventStruct; typedef struct { int major_code; int minor_code; CARD16 connect_id; CARD16 icid; CARD16 flag; KeySym keysym; char *commit_string; } IMCommitStruct; typedef struct { int major_code; int minor_code; CARD16 connect_id; CARD16 icid; CARD32 flag; CARD32 key_index; CARD32 event_mask; } IMTriggerNotifyStruct; typedef struct { int major_code; int minor_code; CARD16 connect_id; CARD16 encoding_number; XIMStr *encoding; /* name information */ CARD16 encoding_info_number; XIMStr *encodinginfo; /* detailed information */ CARD16 category; /* #0 for name, #1 for detail */ INT16 enc_index; /* index of the encoding determined */ } IMEncodingNegotiationStruct; typedef struct { int major_code; int minor_code; CARD16 connect_id; CARD16 icid; CARD32 flag; CARD32 forward_event_mask; CARD32 sync_event_mask; } IMSetEventMaskStruct; typedef struct { int major_code; int minor_code; CARD16 connect_id; CARD16 icid; CARD32 filter_event_mask; CARD32 intercept_event_mask; CARD32 select_event_mask; CARD32 forward_event_mask; CARD32 sync_event_mask; } IMExtSetEventMaskStruct; typedef struct { int major_code; int minor_code; CARD16 connect_id; CARD16 icid; CARD16 x; CARD16 y; } IMMoveStruct; typedef struct { int major_code; int minor_code; CARD16 connect_id; CARD16 icid; BITMASK16 flag; CARD16 error_code; CARD16 str_length; CARD16 error_type; char *error_detail; } IMErrorStruct; typedef struct { int major_code; int minor_code; CARD16 connect_id; CARD16 icid; } IMPreeditStateStruct; /* Callbacks */ typedef struct { int major_code; int minor_code; CARD16 connect_id; CARD16 icid; } IMGeometryCBStruct; typedef struct { int major_code; int minor_code; CARD16 connect_id; CARD16 icid; union { int return_value; /* PreeditStart */ XIMPreeditDrawCallbackStruct draw; /* PreeditDraw */ XIMPreeditCaretCallbackStruct caret; /* PreeditCaret */ } todo; } IMPreeditCBStruct; typedef struct { int major_code; int minor_code; CARD16 connect_id; CARD16 icid; union { XIMStatusDrawCallbackStruct draw; /* StatusDraw */ } todo; } IMStatusCBStruct; typedef struct { int major_code; int minor_code; CARD16 connect_id; CARD16 icid; XIMStringConversionCallbackStruct strconv; } IMStrConvCBStruct; typedef struct { int major_code; int minor_code; CARD16 connect_id; CARD16 icid; } IMSyncXlibStruct; typedef union _IMProtocol { int major_code; IMAnyStruct any; IMConnectStruct imconnect; IMDisConnectStruct imdisconnect; IMOpenStruct imopen; IMCloseStruct imclose; IMQueryExtensionStruct queryext; IMGetIMValuesStruct getim; IMEncodingNegotiationStruct encodingnego; IMExtSetEventMaskStruct extsetevent; IMMoveStruct extmove; IMSetEventMaskStruct setevent; IMChangeICStruct changeic; IMDestroyICStruct destroyic; IMResetICStruct resetic; IMChangeFocusStruct changefocus; IMCommitStruct commitstring; IMForwardEventStruct forwardevent; IMTriggerNotifyStruct triggernotify; IMPreeditStateStruct preedit_state; IMErrorStruct imerror; IMGeometryCBStruct geometry_callback; IMPreeditCBStruct preedit_callback; IMStatusCBStruct status_callback; IMStrConvCBStruct strconv_callback; IMSyncXlibStruct sync_xlib; long pad[32]; } IMProtocol; typedef int (*IMProtoHandler) (XIMS, IMProtocol*); #define DEFAULT_FILTER_MASK (KeyPressMask) /* Xi18nAddressRec structure */ typedef struct _Xi18nAddressRec { Display *dpy; CARD8 im_byteOrder; /* byte order 'B' or 'l' */ /* IM Values */ long imvalue_mask; Window im_window; /* IMServerWindow */ char *im_name; /* IMServerName */ char *im_locale; /* IMLocale */ char *im_addr; /* IMServerTransport */ XIMStyles input_styles; /* IMInputStyles */ XIMTriggerKeys on_keys; /* IMOnKeysList */ XIMTriggerKeys off_keys; /* IMOffKeysList */ XIMEncodings encoding_list; /* IMEncodingList */ IMProtoHandler improto; /* IMProtocolHander */ long filterevent_mask; /* IMFilterEventMask */ /* XIM_SERVERS target Atoms */ Atom selection; Atom Localename; Atom Transportname; /* XIM/XIC Attr */ int im_attr_num; XIMAttr *xim_attr; int ic_attr_num; XICAttr *xic_attr; CARD16 preeditAttr_id; CARD16 statusAttr_id; CARD16 separatorAttr_id; /* XIMExtension List */ int ext_num; XIMExt extension[COMMON_EXTENSIONS_NUM]; /* transport specific connection address */ void *connect_addr; /* actual data is defined: XSpecRec in Xi18nX.h for X-based connection. TransSpecRec in Xi18nTr.h for Socket-based connection. */ /* clients table */ Xi18nClient *clients; Xi18nClient *free_clients; } Xi18nAddressRec; typedef struct _Xi18nMethodsRec { Bool (*begin) (XIMS); Bool (*end) (XIMS); Bool (*send) (XIMS, CARD16, unsigned char*, long); Bool (*wait) (XIMS, CARD16, CARD8, CARD8); Bool (*disconnect) (XIMS, CARD16); } Xi18nMethodsRec; typedef struct _Xi18nCore { Xi18nAddressRec address; Xi18nMethodsRec methods; } Xi18nCore; #endif scim-1.4.14/modules/FrontEnd/IMdkit/Xi18nX.h000066400000000000000000000036541177210725600203340ustar00rootroot00000000000000/****************************************************************** Copyright 1994, 1995 by Sun Microsystems, Inc. Copyright 1993, 1994 by Hewlett-Packard Company Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of Sun Microsystems, Inc. and Hewlett-Packard not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. Sun Microsystems, Inc. and Hewlett-Packard make no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty. SUN MICROSYSTEMS INC. AND HEWLETT-PACKARD COMPANY DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SUN MICROSYSTEMS, INC. AND HEWLETT-PACKARD COMPANY BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. Author: Hidetoshi Tajima(tajima@Eng.Sun.COM) Sun Microsystems, Inc. This version tidied and debugged by Steve Underwood May 1999 ******************************************************************/ #ifndef _Xi18nTrX_h #define _Xi18nTrX_h #define _XIM_PROTOCOL "_XIM_PROTOCOL" #define _XIM_XCONNECT "_XIM_XCONNECT" #define XCM_DATA_LIMIT 20 typedef struct _XClient { Window client_win; /* client window */ Window accept_win; /* accept window */ } XClient; typedef struct { Atom xim_request; Atom connect_request; } XSpecRec; #endif scim-1.4.14/modules/FrontEnd/IMdkit/XimFunc.h000066400000000000000000000065111177210725600206410ustar00rootroot00000000000000/****************************************************************** Copyright 1994, 1995 by Sun Microsystems, Inc. Copyright 1993, 1994 by Hewlett-Packard Company Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of Sun Microsystems, Inc. and Hewlett-Packard not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. Sun Microsystems, Inc. and Hewlett-Packard make no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty. SUN MICROSYSTEMS INC. AND HEWLETT-PACKARD COMPANY DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SUN MICROSYSTEMS, INC. AND HEWLETT-PACKARD COMPANY BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. Author: Hidetoshi Tajima(tajima@Eng.Sun.COM) Sun Microsystems, Inc. This version tidied and debugged by Steve Underwood May 1999 ******************************************************************/ #ifndef _XimFunc_h #define _XimFunc_h /* i18nAttr.c */ void _Xi18nInitAttrList (Xi18n i18n_core); void _Xi18nInitExtension(Xi18n i18n_core); /* i18nClbk.c */ int _Xi18nGeometryCallback (XIMS ims, IMProtocol *call_data); int _Xi18nPreeditStartCallback (XIMS ims, IMProtocol *call_data); int _Xi18nPreeditDrawCallback (XIMS ims, IMProtocol *call_data); int _Xi18nPreeditCaretCallback (XIMS ims, IMProtocol *call_data); int _Xi18nPreeditDoneCallback (XIMS ims, IMProtocol *call_data); int _Xi18nStatusStartCallback (XIMS ims, IMProtocol *call_data); int _Xi18nStatusDrawCallback (XIMS ims, IMProtocol *call_data); int _Xi18nStatusDoneCallback (XIMS ims, IMProtocol *call_data); int _Xi18nStringConversionCallback (XIMS ims, IMProtocol *call_data); /* i18nIc.c */ void _Xi18nChangeIC (XIMS ims, IMProtocol *call_data, unsigned char *p, int create_flag); void _Xi18nGetIC (XIMS ims, IMProtocol *call_data, unsigned char *p); /* i18nUtil.c */ int _Xi18nNeedSwap (Xi18n i18n_core, CARD16 connect_id); Xi18nClient *_Xi18nNewClient(Xi18n i18n_core); Xi18nClient *_Xi18nFindClient (Xi18n i18n_core, CARD16 connect_id); void _Xi18nDeleteClient (Xi18n i18n_core, CARD16 connect_id); void _Xi18nSendMessage (XIMS ims, CARD16 connect_id, CARD8 major_opcode, CARD8 minor_opcode, unsigned char *data, long length); void _Xi18nSendTriggerKey (XIMS ims, CARD16 connect_id); void _Xi18nSetEventMask (XIMS ims, CARD16 connect_id, CARD16 im_id, CARD16 ic_id, CARD32 forward_mask, CARD32 sync_mask); /* Xlib internal */ void _XRegisterFilterByType(Display*, Window, int, int, Bool (*filter)(Display*, Window, XEvent*, XPointer), XPointer); void _XUnregisterFilter(Display*, Window, Bool (*filter)(Display*, Window, XEvent*, XPointer), XPointer); #endif scim-1.4.14/modules/FrontEnd/IMdkit/XimProto.h000066400000000000000000000141611177210725600210510ustar00rootroot00000000000000/* $XConsortium: XimProto.h,v 1.2 94/01/20 18:02:24 rws Exp $ */ /****************************************************************** Copyright 1992, 1993, 1994 by FUJITSU LIMITED Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of FUJITSU LIMITED not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. FUJITSU LIMITED makes no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty. FUJITSU LIMITED DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL FUJITSU LIMITED BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. Author: Takashi Fujiwara FUJITSU LIMITED fujiwara@a80.tech.yk.fujitsu.co.jp This version tidied and debugged by Steve Underwood May 1999 ******************************************************************/ #ifndef _XIMPROTO_H #define _XIMPROTO_H /* * Default Preconnection selection target */ #define XIM_SERVERS "XIM_SERVERS" #define XIM_LOCALES "LOCALES" #define XIM_TRANSPORT "TRANSPORT" /* * categories in XIM_SERVERS */ #define XIM_SERVER_CATEGORY "@server=" #define XIM_LOCAL_CATEGORY "@locale=" #define XIM_TRANSPORT_CATEGORY "@transport=" /* * Xim implementation revision */ #define PROTOCOLMAJORVERSION 0 #define PROTOCOLMINORVERSION 0 /* * Major Protocol number */ #define XIM_CONNECT 1 #define XIM_CONNECT_REPLY 2 #define XIM_DISCONNECT 3 #define XIM_DISCONNECT_REPLY 4 #define XIM_AUTH_REQUIRED 10 #define XIM_AUTH_REPLY 11 #define XIM_AUTH_NEXT 12 #define XIM_AUTH_SETUP 13 #define XIM_AUTH_NG 14 #define XIM_ERROR 20 #define XIM_OPEN 30 #define XIM_OPEN_REPLY 31 #define XIM_CLOSE 32 #define XIM_CLOSE_REPLY 33 #define XIM_REGISTER_TRIGGERKEYS 34 #define XIM_TRIGGER_NOTIFY 35 #define XIM_TRIGGER_NOTIFY_REPLY 36 #define XIM_SET_EVENT_MASK 37 #define XIM_ENCODING_NEGOTIATION 38 #define XIM_ENCODING_NEGOTIATION_REPLY 39 #define XIM_QUERY_EXTENSION 40 #define XIM_QUERY_EXTENSION_REPLY 41 #define XIM_SET_IM_VALUES 42 #define XIM_SET_IM_VALUES_REPLY 43 #define XIM_GET_IM_VALUES 44 #define XIM_GET_IM_VALUES_REPLY 45 #define XIM_CREATE_IC 50 #define XIM_CREATE_IC_REPLY 51 #define XIM_DESTROY_IC 52 #define XIM_DESTROY_IC_REPLY 53 #define XIM_SET_IC_VALUES 54 #define XIM_SET_IC_VALUES_REPLY 55 #define XIM_GET_IC_VALUES 56 #define XIM_GET_IC_VALUES_REPLY 57 #define XIM_SET_IC_FOCUS 58 #define XIM_UNSET_IC_FOCUS 59 #define XIM_FORWARD_EVENT 60 #define XIM_SYNC 61 #define XIM_SYNC_REPLY 62 #define XIM_COMMIT 63 #define XIM_RESET_IC 64 #define XIM_RESET_IC_REPLY 65 #define XIM_GEOMETRY 70 #define XIM_STR_CONVERSION 71 #define XIM_STR_CONVERSION_REPLY 72 #define XIM_PREEDIT_START 73 #define XIM_PREEDIT_START_REPLY 74 #define XIM_PREEDIT_DRAW 75 #define XIM_PREEDIT_CARET 76 #define XIM_PREEDIT_CARET_REPLY 77 #define XIM_PREEDIT_DONE 78 #define XIM_STATUS_START 79 #define XIM_STATUS_DRAW 80 #define XIM_STATUS_DONE 81 /* * values for the flag of XIM_ERROR */ #define XIM_IMID_VALID 0x0001 #define XIM_ICID_VALID 0x0002 /* * XIM Error Code */ #define XIM_BadAlloc 1 #define XIM_BadStyle 2 #define XIM_BadClientWindow 3 #define XIM_BadFocusWindow 4 #define XIM_BadArea 5 #define XIM_BadSpotLocation 6 #define XIM_BadColormap 7 #define XIM_BadAtom 8 #define XIM_BadPixel 9 #define XIM_BadPixmap 10 #define XIM_BadName 11 #define XIM_BadCursor 12 #define XIM_BadProtocol 13 #define XIM_BadForeground 14 #define XIM_BadBackground 15 #define XIM_LocaleNotSupported 16 #define XIM_BadSomething 999 /* * byte order */ #define BIGENDIAN (CARD8) 0x42 /* MSB first */ #define LITTLEENDIAN (CARD8) 0x6c /* LSB first */ /* * values for the type of XIMATTR & XICATTR */ #define XimType_SeparatorOfNestedList 0 #define XimType_CARD8 1 #define XimType_CARD16 2 #define XimType_CARD32 3 #define XimType_STRING8 4 #define XimType_Window 5 #define XimType_XIMStyles 10 #define XimType_XRectangle 11 #define XimType_XPoint 12 #define XimType_XFontSet 13 #define XimType_XIMOptions 14 #define XimType_XIMHotKeyTriggers 15 #define XimType_XIMHotKeyState 16 #define XimType_XIMStringConversion 17 #define XimType_XIMValuesList 18 #define XimType_NEST 0x7FFF /* * values for the category of XIM_ENCODING_NEGOTIATON_REPLY */ #define XIM_Encoding_NameCategory 0 #define XIM_Encoding_DetailCategory 1 /* * value for the index of XIM_ENCODING_NEGOTIATON_REPLY */ #define XIM_Default_Encoding_IDX -1 /* * value for the flag of XIM_FORWARD_EVENT, XIM_COMMIT */ #define XimSYNCHRONUS 0x0001 #define XimLookupChars 0x0002 #define XimLookupKeySym 0x0004 #define XimLookupBoth 0x0006 /* * request packet header size */ #define XIM_HEADER_SIZE \ sizeof(CARD8) /* sizeof mejor-opcode */ \ + sizeof(CARD8) /* sizeof minor-opcode */ \ + sizeof(INT16) /* sizeof length */ /* * Client Message data size */ #define XIM_CM_DATA_SIZE 20 /* * XIM data structure */ typedef CARD16 BITMASK16; typedef CARD32 BITMASK32; typedef CARD32 EVENTMASK; typedef CARD16 XIMID; /* Input Method ID */ typedef CARD16 XICID; /* Input Context ID */ /* * Padding macro */ #define XIM_PAD(length) ((4 - ((length) % 4)) % 4) #define XIM_SET_PAD(ptr, length) \ { \ register int Counter = XIM_PAD((int)length); \ if (Counter) { \ register char *Ptr = (char *)(ptr) + (length); \ length += Counter; \ for (; Counter; --Counter, ++Ptr) \ *Ptr = '\0'; \ } \ } #endif scim-1.4.14/modules/FrontEnd/IMdkit/Xtrans.h000066400000000000000000000233661177210725600205560ustar00rootroot00000000000000/* $XConsortium: Xtrans.h,v 1.24 94/05/02 10:45:32 mor Exp $ */ /* Copyright (c) 1993, 1994 X Consortium Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. Except as contained in this notice, the name of the X Consortium shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from the X Consortium. */ /* Copyright (c) 1993, 1994 NCR Corporation - Dayton, Ohio, USA * * All Rights Reserved * * Permission to use, copy, modify, and distribute this software and its * documentation for any purpose and without fee is hereby granted, provided * that the above copyright notice appear in all copies and that both that * copyright notice and this permission notice appear in supporting * documentation, and that the name NCR not be used in advertising * or publicity pertaining to distribution of the software without specific, * written prior permission. NCR makes no representations about the * suitability of this software for any purpose. It is provided "as is" * without express or implied warranty. * * NCR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN * NO EVENT SHALL NCR BE LIABLE FOR ANY SPECIAL, INDIRECT OR * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ #ifndef _XTRANS_H_ #define _XTRANS_H_ #include #include /* * Set the functions names according to where this code is being compiled. */ #ifdef X11_t #if (__STDC__ && !defined(UNIXCPP)) || defined(ANSICPP) #define TRANS(func) _X11Trans##func #else #define TRANS(func) _X11Trans/**/func #endif #endif /* X11_t */ #ifdef XSERV_t #if (__STDC__ && !defined(UNIXCPP)) || defined(ANSICPP) #define TRANS(func) _XSERVTrans##func #else #define TRANS(func) _XSERVTrans/**/func #endif #define X11_t #endif /* X11_t */ #ifdef XIM_t #if (__STDC__ && !defined(UNIXCPP)) || defined(ANSICPP) #define TRANS(func) _XimdXTrans##func #else #define TRANS(func) _XimdXTrans/**/func #endif #endif /* XIM_t */ #ifdef FS_t #if (__STDC__ && !defined(UNIXCPP)) || defined(ANSICPP) #define TRANS(func) _FSTrans##func #else #define TRANS(func) _FSTrans/**/func #endif #endif /* FS_t */ #ifdef FONT_t #if (__STDC__ && !defined(UNIXCPP)) || defined(ANSICPP) #define TRANS(func) _FontTrans##func #else #define TRANS(func) _FontTrans/**/func #endif #endif /* FONT_t */ #ifdef ICE_t #if (__STDC__ && !defined(UNIXCPP)) || defined(ANSICPP) #define TRANS(func) _IceTrans##func #else #define TRANS(func) _IceTrans/**/func #endif #endif /* ICE_t */ #ifdef TEST_t #if (__STDC__ && !defined(UNIXCPP)) || defined(ANSICPP) #define TRANS(func) _TESTTrans##func #else #define TRANS(func) _TESTTrans/**/func #endif #endif /* TEST_t */ #if !defined(TRANS) #if (__STDC__ && !defined(UNIXCPP)) || defined(ANSICPP) #define TRANS(func) _XTrans##func #else #define TRANS(func) _XTrans/**/func #endif #endif /* !TRANS */ /* * Create a single address structure that can be used wherever * an address structure is needed. struct sockaddr is not big enough * to hold a sockadd_un, so we create this definition to have a single * structure that is big enough for all the structures we might need. * * This structure needs to be independent of the socket/TLI interface used. */ #define XTRANS_MAX_ADDR_LEN 128 /* large enough to hold sun_path */ typedef struct { unsigned char addr[XTRANS_MAX_ADDR_LEN]; } Xtransaddr; #ifdef LONG64 typedef int BytesReadable_t; #else typedef long BytesReadable_t; #endif #if defined(WIN32) || (defined(USG) && !defined(CRAY) && !defined(umips) && !defined(MOTOROLA) && !defined(uniosu) && !defined(__sxg__)) /* * TRANS(Readv) and TRANS(Writev) use struct iovec, normally found * in Berkeley systems in . See the readv(2) and writev(2) * manual pages for details. */ struct iovec { caddr_t iov_base; int iov_len; }; #else #include #endif typedef struct _XtransConnInfo *XtransConnInfo; /* * Transport Option definitions */ #define TRANS_NONBLOCKING 1 #define TRANS_CLOSEONEXEC 2 /* * Return values of Connect (0 is success) */ #define TRANS_CONNECT_FAILED -1 #define TRANS_TRY_CONNECT_AGAIN -2 /* * Return values of Accept (0 is success) */ #define TRANS_ACCEPT_BAD_MALLOC -1 #define TRANS_ACCEPT_FAILED -2 #define TRANS_ACCEPT_MISC_ERROR -3 /* * ResetListener return values */ #define TRANS_RESET_NOOP 1 #define TRANS_RESET_NEW_FD 2 #define TRANS_RESET_FAILURE 3 /* * Function prototypes for the exposed interface */ #ifdef TRANS_CLIENT XtransConnInfo TRANS(OpenCOTSClient)( #if NeedFunctionPrototypes char * /* address */ #endif ); #endif /* TRANS_CLIENT */ #ifdef TRANS_SERVER XtransConnInfo TRANS(OpenCOTSServer)( #if NeedFunctionPrototypes char * /* address */ #endif ); #endif /* TRANS_SERVER */ #ifdef TRANS_CLIENT XtransConnInfo TRANS(OpenCLTSClient)( #if NeedFunctionPrototypes char * /* address */ #endif ); #endif /* TRANS_CLIENT */ #ifdef TRANS_SERVER XtransConnInfo TRANS(OpenCLTSServer)( #if NeedFunctionPrototypes char * /* address */ #endif ); #endif /* TRANS_SERVER */ #ifdef TRANS_REOPEN XtransConnInfo TRANS(ReopenCOTSServer)( #if NeedFunctionPrototypes int, /* trans_id */ int, /* fd */ char * /* port */ #endif ); XtransConnInfo TRANS(ReopenCLTSServer)( #if NeedFunctionPrototypes int, /* trans_id */ int, /* fd */ char * /* port */ #endif ); int TRANS(GetReopenInfo)( #if NeedFunctionPrototypes XtransConnInfo, /* ciptr */ int *, /* trans_id */ int *, /* fd */ char ** /* port */ #endif ); #endif /* TRANS_REOPEN */ int TRANS(SetOption)( #if NeedFunctionPrototypes XtransConnInfo, /* ciptr */ int, /* option */ int /* arg */ #endif ); #ifdef TRANS_SERVER int TRANS(CreateListener)( #if NeedFunctionPrototypes XtransConnInfo, /* ciptr */ char * /* port */ #endif ); int TRANS(ResetListener)( #if NeedFunctionPrototypes XtransConnInfo /* ciptr */ #endif ); XtransConnInfo TRANS(Accept)( #if NeedFunctionPrototypes XtransConnInfo, /* ciptr */ int * /* status */ #endif ); #endif /* TRANS_SERVER */ #ifdef TRANS_CLIENT int TRANS(Connect)( #if NeedFunctionPrototypes XtransConnInfo, /* ciptr */ char * /* address */ #endif ); #endif /* TRANS_CLIENT */ int TRANS(BytesReadable)( #if NeedFunctionPrototypes XtransConnInfo, /* ciptr */ BytesReadable_t * /* pend */ #endif ); int TRANS(Read)( #if NeedFunctionPrototypes XtransConnInfo, /* ciptr */ char *, /* buf */ int /* size */ #endif ); int TRANS(Write)( #if NeedFunctionPrototypes XtransConnInfo, /* ciptr */ char *, /* buf */ int /* size */ #endif ); int TRANS(Readv)( #if NeedFunctionPrototypes XtransConnInfo, /* ciptr */ struct iovec *, /* buf */ int /* size */ #endif ); int TRANS(Writev)( #if NeedFunctionPrototypes XtransConnInfo, /* ciptr */ struct iovec *, /* buf */ int /* size */ #endif ); int TRANS(Disconnect)( #if NeedFunctionPrototypes XtransConnInfo /* ciptr */ #endif ); int TRANS(Close)( #if NeedFunctionPrototypes XtransConnInfo /* ciptr */ #endif ); int TRANS(CloseForCloning)( #if NeedFunctionPrototypes XtransConnInfo /* ciptr */ #endif ); int TRANS(IsLocal)( #if NeedFunctionPrototypes XtransConnInfo /* ciptr */ #endif ); int TRANS(GetMyAddr)( #if NeedFunctionPrototypes XtransConnInfo, /* ciptr */ int *, /* familyp */ int *, /* addrlenp */ Xtransaddr ** /* addrp */ #endif ); int TRANS(GetPeerAddr)( #if NeedFunctionPrototypes XtransConnInfo, /* ciptr */ int *, /* familyp */ int *, /* addrlenp */ Xtransaddr ** /* addrp */ #endif ); int TRANS(GetConnectionNumber)( #if NeedFunctionPrototypes XtransConnInfo /* ciptr */ #endif ); #ifdef TRANS_SERVER int TRANS(MakeAllCOTSServerListeners)( #if NeedFunctionPrototypes char *, /* port */ int *, /* partial */ int *, /* count_ret */ XtransConnInfo ** /* ciptrs_ret */ #endif ); int TRANS(MakeAllCLTSServerListeners)( #if NeedFunctionPrototypes char *, /* port */ int *, /* partial */ int *, /* count_ret */ XtransConnInfo ** /* ciptrs_ret */ #endif ); #endif /* TRANS_SERVER */ /* * Function Prototypes for Utility Functions. */ #ifdef X11_t int TRANS(ConvertAddress)( #if NeedFunctionPrototypes int *, /* familyp */ int *, /* addrlenp */ Xtransaddr * /* addrp */ #endif ); #endif /* X11_t */ #ifdef ICE_t char * TRANS(GetMyNetworkId)( #if NeedFunctionPrototypes XtransConnInfo /* ciptr */ #endif ); char * TRANS(GetPeerNetworkId)( #if NeedFunctionPrototypes XtransConnInfo /* ciptr */ #endif ); #endif /* ICE_t */ #endif /* _XTRANS_H_ */ scim-1.4.14/modules/FrontEnd/IMdkit/i18nAttr.c000066400000000000000000000132451177210725600206770ustar00rootroot00000000000000/****************************************************************** Copyright 1994, 1995 by Sun Microsystems, Inc. Copyright 1993, 1994 by Hewlett-Packard Company Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of Sun Microsystems, Inc. and Hewlett-Packard not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. Sun Microsystems, Inc. and Hewlett-Packard make no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty. SUN MICROSYSTEMS INC. AND HEWLETT-PACKARD COMPANY DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SUN MICROSYSTEMS, INC. AND HEWLETT-PACKARD COMPANY BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. Author: Hidetoshi Tajima(tajima@Eng.Sun.COM) Sun Microsystems, Inc. This version tidied and debugged by Steve Underwood May 1999 ******************************************************************/ #include #include #include "IMdkit.h" #include "Xi18n.h" #include "XimFunc.h" typedef struct { char *name; CARD16 type; } IMListOfAttr; typedef struct { char *name; CARD8 major_opcode; CARD8 minor_opcode; } IMExtList; IMListOfAttr Default_IMattr[] = { {XNQueryInputStyle, XimType_XIMStyles}, /* {XNQueryIMValuesList, XimType_XIMValuesList}, */ {(char *) NULL, (CARD16) 0} }; IMListOfAttr Default_ICattr[] = { {XNInputStyle, XimType_CARD32}, {XNClientWindow, XimType_Window}, {XNFocusWindow, XimType_Window}, {XNFilterEvents, XimType_CARD32}, {XNPreeditAttributes, XimType_NEST}, {XNStatusAttributes, XimType_NEST}, {XNFontSet, XimType_XFontSet}, {XNArea, XimType_XRectangle}, {XNAreaNeeded, XimType_XRectangle}, {XNColormap, XimType_CARD32}, {XNStdColormap, XimType_CARD32}, {XNForeground, XimType_CARD32}, {XNBackground, XimType_CARD32}, {XNBackgroundPixmap, XimType_CARD32}, {XNSpotLocation, XimType_XPoint}, {XNLineSpace, XimType_CARD32}, {XNPreeditState, XimType_CARD32}, {XNSeparatorofNestedList, XimType_SeparatorOfNestedList}, {(char *) NULL, 0} }; IMExtList Default_Extension[] = { {"XIM_EXT_MOVE", XIM_EXTENSION, XIM_EXT_MOVE}, {"XIM_EXT_SET_EVENT_MASK", XIM_EXTENSION, XIM_EXT_SET_EVENT_MASK}, {"XIM_EXT_FORWARD_KEYEVENT", XIM_EXTENSION, XIM_EXT_FORWARD_KEYEVENT}, {(char *) NULL, 0, 0} }; static void CountAttrList(IMListOfAttr *attr, int *total_count) { *total_count = 0; while (attr->name != NULL) { attr++; ++(*total_count); } } static XIMAttr *CreateAttrList (Xi18n i18n_core, IMListOfAttr *attr, int *total_count) { XIMAttr *args, *p; unsigned int buf_size; CountAttrList(attr, total_count); buf_size = (unsigned) (*total_count + 1)*sizeof (XIMAttr); args = (XIMAttr *) malloc (buf_size); if (!args) return (XIMAttr *) NULL; /*endif*/ memset (args, 0, buf_size); for (p = args; attr->name != NULL; attr++, p++) { p->name = attr->name; p->length = strlen (attr->name); p->type = (CARD16) attr->type; p->attribute_id = XrmStringToQuark (p->name); if (strcmp (p->name, XNPreeditAttributes) == 0) i18n_core->address.preeditAttr_id = p->attribute_id; else if (strcmp (p->name, XNStatusAttributes) == 0) i18n_core->address.statusAttr_id = p->attribute_id; else if (strcmp (p->name, XNSeparatorofNestedList) == 0) i18n_core->address.separatorAttr_id = p->attribute_id; /*endif*/ } /*endfor*/ p->name = (char *) NULL; return args; } void _Xi18nInitAttrList (Xi18n i18n_core) { XIMAttr *args; int total_count; /* init IMAttr list */ if (i18n_core->address.xim_attr) XFree ((char *)i18n_core->address.xim_attr); /*endif*/ args = CreateAttrList (i18n_core, Default_IMattr, &total_count); i18n_core->address.im_attr_num = total_count; i18n_core->address.xim_attr = (XIMAttr *)args; /* init ICAttr list */ if (i18n_core->address.xic_attr) XFree ((char *) i18n_core->address.xic_attr); /*endif*/ args = CreateAttrList (i18n_core, Default_ICattr, &total_count); i18n_core->address.ic_attr_num = total_count; i18n_core->address.xic_attr = (XICAttr *) args; } void _Xi18nInitExtension(Xi18n i18n_core) { register int i; IMExtList *extensions = (IMExtList *) Default_Extension; XIMExt *ext_list = (XIMExt *) i18n_core->address.extension; for (i = 0; extensions->name; i++, ext_list++, extensions++) { ext_list->major_opcode = extensions->major_opcode; ext_list->minor_opcode = extensions->minor_opcode; ext_list->name = extensions->name; ext_list->length = strlen(ext_list->name); } /*endfor*/ i18n_core->address.ext_num = i; } scim-1.4.14/modules/FrontEnd/IMdkit/i18nClbk.c000066400000000000000000000374641177210725600206510ustar00rootroot00000000000000/****************************************************************** Copyright 1994, 1995 by Sun Microsystems, Inc. Copyright 1993, 1994 by Hewlett-Packard Company Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of Sun Microsystems, Inc. and Hewlett-Packard not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. Sun Microsystems, Inc. and Hewlett-Packard make no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty. SUN MICROSYSTEMS INC. AND HEWLETT-PACKARD COMPANY DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SUN MICROSYSTEMS, INC. AND HEWLETT-PACKARD COMPANY BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. Author: Hidetoshi Tajima(tajima@Eng.Sun.COM) Sun Microsystems, Inc. This version tidied and debugged by Steve Underwood May 1999 ******************************************************************/ #include #include "IMdkit.h" #include "Xi18n.h" #include "FrameMgr.h" #include "XimFunc.h" int _Xi18nGeometryCallback (XIMS ims, IMProtocol *call_data) { Xi18n i18n_core = ims->protocol; FrameMgr fm; extern XimFrameRec geometry_fr[]; register int total_size; unsigned char *reply = NULL; IMGeometryCBStruct *geometry_CB = (IMGeometryCBStruct *) &call_data->geometry_callback; CARD16 connect_id = call_data->any.connect_id; fm = FrameMgrInit (geometry_fr, NULL, _Xi18nNeedSwap (i18n_core, connect_id)); total_size = FrameMgrGetTotalSize (fm); reply = (unsigned char *) malloc (total_size); if (!reply) { _Xi18nSendMessage (ims, connect_id, XIM_ERROR, 0, 0, 0); return False; } /*endif*/ memset (reply, 0, total_size); FrameMgrSetBuffer (fm, reply); FrameMgrPutToken (fm, connect_id); FrameMgrPutToken (fm, geometry_CB->icid); _Xi18nSendMessage (ims, connect_id, XIM_GEOMETRY, 0, reply, total_size); FrameMgrFree (fm); XFree (reply); /* XIM_GEOMETRY is an asyncronous protocol, so return immediately. */ return True; } int _Xi18nPreeditStartCallback (XIMS ims, IMProtocol *call_data) { Xi18n i18n_core = ims->protocol; FrameMgr fm; extern XimFrameRec preedit_start_fr[]; register int total_size; unsigned char *reply = NULL; IMPreeditCBStruct *preedit_CB = (IMPreeditCBStruct*) &call_data->preedit_callback; CARD16 connect_id = call_data->any.connect_id; fm = FrameMgrInit (preedit_start_fr, NULL, _Xi18nNeedSwap (i18n_core, connect_id)); total_size = FrameMgrGetTotalSize (fm); reply = (unsigned char *) malloc (total_size); if (!reply) { _Xi18nSendMessage(ims, connect_id, XIM_ERROR, 0, 0, 0); return False; } /*endif*/ memset (reply, 0, total_size); FrameMgrSetBuffer (fm, reply); FrameMgrPutToken (fm, connect_id); FrameMgrPutToken (fm, preedit_CB->icid); _Xi18nSendMessage (ims, connect_id, XIM_PREEDIT_START, 0, reply, total_size); FrameMgrFree (fm); XFree (reply); return True; } int _Xi18nPreeditDrawCallback (XIMS ims, IMProtocol *call_data) { Xi18n i18n_core = ims->protocol; FrameMgr fm; extern XimFrameRec preedit_draw_fr[]; register int total_size; unsigned char *reply = NULL; IMPreeditCBStruct *preedit_CB = (IMPreeditCBStruct *) &call_data->preedit_callback; XIMPreeditDrawCallbackStruct *draw = (XIMPreeditDrawCallbackStruct *) &preedit_CB->todo.draw; CARD16 connect_id = call_data->any.connect_id; register int feedback_count; register int i; BITMASK32 status = 0x0; if (draw->text->length == 0) status = 0x00000001; else if (draw->text->feedback[0] == 0) status = 0x00000002; /*endif*/ fm = FrameMgrInit (preedit_draw_fr, NULL, _Xi18nNeedSwap (i18n_core, connect_id)); /* set length of preedit string */ FrameMgrSetSize (fm, draw->text->length); /* set iteration count for list of feedback */ for (i = 0; draw->text->feedback[i] != 0; i++) ; /*endfor*/ feedback_count = i; FrameMgrSetIterCount (fm, feedback_count); total_size = FrameMgrGetTotalSize (fm); reply = (unsigned char *) malloc (total_size); if (!reply) { _Xi18nSendMessage (ims, connect_id, XIM_ERROR, 0, 0, 0); return False; } /*endif*/ memset (reply, 0, total_size); FrameMgrSetBuffer (fm, reply); FrameMgrPutToken (fm, connect_id); FrameMgrPutToken (fm, preedit_CB->icid); FrameMgrPutToken (fm, draw->caret); FrameMgrPutToken (fm, draw->chg_first); FrameMgrPutToken (fm, draw->chg_length); FrameMgrPutToken (fm, status); FrameMgrPutToken (fm, draw->text->length); FrameMgrPutToken (fm, draw->text->string); for (i = 0; i < feedback_count; i++) FrameMgrPutToken (fm, draw->text->feedback[i]); /*endfor*/ _Xi18nSendMessage (ims, connect_id, XIM_PREEDIT_DRAW, 0, reply, total_size); FrameMgrFree (fm); XFree (reply); /* XIM_PREEDIT_DRAW is an asyncronous protocol, so return immediately. */ return True; } int _Xi18nPreeditCaretCallback (XIMS ims, IMProtocol *call_data) { Xi18n i18n_core = ims->protocol; FrameMgr fm; extern XimFrameRec preedit_caret_fr[]; register int total_size; unsigned char *reply = NULL; IMPreeditCBStruct *preedit_CB = (IMPreeditCBStruct*) &call_data->preedit_callback; XIMPreeditCaretCallbackStruct *caret = (XIMPreeditCaretCallbackStruct *) &preedit_CB->todo.caret; CARD16 connect_id = call_data->any.connect_id; fm = FrameMgrInit (preedit_caret_fr, NULL, _Xi18nNeedSwap (i18n_core, connect_id)); total_size = FrameMgrGetTotalSize (fm); reply = (unsigned char *) malloc (total_size); if (!reply) { _Xi18nSendMessage (ims, connect_id, XIM_ERROR, 0, 0, 0); return False; } /*endif*/ memset (reply, 0, total_size); FrameMgrSetBuffer (fm, reply); FrameMgrPutToken (fm, connect_id); FrameMgrPutToken (fm, preedit_CB->icid); FrameMgrPutToken (fm, caret->position); FrameMgrPutToken (fm, caret->direction); FrameMgrPutToken (fm, caret->style); _Xi18nSendMessage (ims, connect_id, XIM_PREEDIT_CARET, 0, reply, total_size); FrameMgrFree (fm); XFree (reply); return True; } int _Xi18nPreeditDoneCallback (XIMS ims, IMProtocol *call_data) { Xi18n i18n_core = ims->protocol; FrameMgr fm; extern XimFrameRec preedit_done_fr[]; register int total_size; unsigned char *reply = NULL; IMPreeditCBStruct *preedit_CB = (IMPreeditCBStruct *) &call_data->preedit_callback; CARD16 connect_id = call_data->any.connect_id; fm = FrameMgrInit (preedit_done_fr, NULL, _Xi18nNeedSwap (i18n_core, connect_id)); total_size = FrameMgrGetTotalSize (fm); reply = (unsigned char *) malloc (total_size); if (!reply) { _Xi18nSendMessage (ims, connect_id, XIM_ERROR, 0, 0, 0); return False; } /*endif*/ memset (reply, 0, total_size); FrameMgrSetBuffer (fm, reply); FrameMgrPutToken (fm, connect_id); FrameMgrPutToken (fm, preedit_CB->icid); _Xi18nSendMessage (ims, connect_id, XIM_PREEDIT_DONE, 0, reply, total_size); FrameMgrFree (fm); XFree (reply); /* XIM_PREEDIT_DONE is an asyncronous protocol, so return immediately. */ return True; } int _Xi18nStatusStartCallback (XIMS ims, IMProtocol *call_data) { Xi18n i18n_core = ims->protocol; FrameMgr fm; extern XimFrameRec status_start_fr[]; register int total_size; unsigned char *reply = NULL; IMStatusCBStruct *status_CB = (IMStatusCBStruct*) &call_data->status_callback; CARD16 connect_id = call_data->any.connect_id; fm = FrameMgrInit (status_start_fr, NULL, _Xi18nNeedSwap (i18n_core, connect_id)); total_size = FrameMgrGetTotalSize (fm); reply = (unsigned char *) malloc (total_size); if (!reply) { _Xi18nSendMessage (ims, connect_id, XIM_ERROR, 0, 0, 0); return False; } /*endif*/ memset (reply, 0, total_size); FrameMgrSetBuffer (fm, reply); FrameMgrPutToken (fm, connect_id); FrameMgrPutToken (fm, status_CB->icid); _Xi18nSendMessage (ims, connect_id, XIM_STATUS_START, 0, reply, total_size); FrameMgrFree (fm); XFree (reply); /* XIM_STATUS_START is an asyncronous protocol, so return immediately. */ return True; } int _Xi18nStatusDrawCallback (XIMS ims, IMProtocol *call_data) { Xi18n i18n_core = ims->protocol; FrameMgr fm = (FrameMgr)0; extern XimFrameRec status_draw_text_fr[]; extern XimFrameRec status_draw_bitmap_fr[]; register int total_size = 0; unsigned char *reply = NULL; IMStatusCBStruct *status_CB = (IMStatusCBStruct *) &call_data->status_callback; XIMStatusDrawCallbackStruct *draw = (XIMStatusDrawCallbackStruct *) &status_CB->todo.draw; CARD16 connect_id = call_data->any.connect_id; register int feedback_count; register int i; BITMASK32 status = 0x0; switch (draw->type) { case XIMTextType: fm = FrameMgrInit (status_draw_text_fr, NULL, _Xi18nNeedSwap (i18n_core, connect_id)); if (draw->data.text->length == 0) status = 0x00000001; else if (draw->data.text->feedback[0] == 0) status = 0x00000002; /*endif*/ /* set length of status string */ FrameMgrSetSize(fm, draw->data.text->length); /* set iteration count for list of feedback */ for (i = 0; draw->data.text->feedback[i] != 0; i++) ; /*endfor*/ feedback_count = i; FrameMgrSetIterCount (fm, feedback_count); total_size = FrameMgrGetTotalSize (fm); reply = (unsigned char *) malloc (total_size); if (!reply) { _Xi18nSendMessage (ims, connect_id, XIM_ERROR, 0, 0, 0); return False; } /*endif*/ memset (reply, 0, total_size); FrameMgrSetBuffer (fm, reply); FrameMgrPutToken (fm, connect_id); FrameMgrPutToken (fm, status_CB->icid); FrameMgrPutToken (fm, draw->type); FrameMgrPutToken (fm, status); FrameMgrPutToken (fm, draw->data.text->length); FrameMgrPutToken (fm, draw->data.text->string); for (i = 0; i < feedback_count; i++) FrameMgrPutToken (fm, draw->data.text->feedback[i]); /*endfor*/ break; case XIMBitmapType: fm = FrameMgrInit (status_draw_bitmap_fr, NULL, _Xi18nNeedSwap (i18n_core, connect_id)); total_size = FrameMgrGetTotalSize (fm); reply = (unsigned char *) malloc (total_size); if (!reply) { _Xi18nSendMessage (ims, connect_id, XIM_ERROR, 0, 0, 0); return False; } /*endif*/ memset (reply, 0, total_size); FrameMgrSetBuffer (fm, reply); FrameMgrPutToken (fm, connect_id); FrameMgrPutToken (fm, status_CB->icid); FrameMgrPutToken (fm, draw->data.bitmap); break; } /*endswitch*/ _Xi18nSendMessage (ims, connect_id, XIM_STATUS_DRAW, 0, reply, total_size); FrameMgrFree (fm); XFree (reply); /* XIM_STATUS_DRAW is an asyncronous protocol, so return immediately. */ return True; } int _Xi18nStatusDoneCallback (XIMS ims, IMProtocol *call_data) { Xi18n i18n_core = ims->protocol; FrameMgr fm; extern XimFrameRec status_done_fr[]; register int total_size; unsigned char *reply = NULL; IMStatusCBStruct *status_CB = (IMStatusCBStruct *) &call_data->status_callback; CARD16 connect_id = call_data->any.connect_id; fm = FrameMgrInit (status_done_fr, NULL, _Xi18nNeedSwap (i18n_core, connect_id)); total_size = FrameMgrGetTotalSize (fm); reply = (unsigned char *) malloc (total_size); if (!reply) { _Xi18nSendMessage (ims, connect_id, XIM_ERROR, 0, 0, 0); return False; } /*endif*/ memset (reply, 0, total_size); FrameMgrSetBuffer (fm, reply); FrameMgrPutToken (fm, connect_id); FrameMgrPutToken (fm, status_CB->icid); _Xi18nSendMessage (ims, connect_id, XIM_STATUS_DONE, 0, reply, total_size); FrameMgrFree (fm); XFree (reply); /* XIM_STATUS_DONE is an asyncronous protocol, so return immediately. */ return True; } int _Xi18nStringConversionCallback (XIMS ims, IMProtocol *call_data) { Xi18n i18n_core = ims->protocol; FrameMgr fm; extern XimFrameRec str_conversion_fr[]; register int total_size; unsigned char *reply = NULL; IMStrConvCBStruct *call_back = (IMStrConvCBStruct *) &call_data->strconv_callback; XIMStringConversionCallbackStruct *strconv = (XIMStringConversionCallbackStruct *) &call_back->strconv; CARD16 connect_id = call_data->any.connect_id; fm = FrameMgrInit (str_conversion_fr, NULL, _Xi18nNeedSwap (i18n_core, connect_id)); total_size = FrameMgrGetTotalSize (fm); reply = (unsigned char *) malloc (total_size); if (!reply) { _Xi18nSendMessage (ims, connect_id, XIM_ERROR, 0, 0, 0); return False; } /*endif*/ memset (reply, 0, total_size); FrameMgrSetBuffer (fm, reply); FrameMgrPutToken (fm, connect_id); FrameMgrPutToken (fm, call_back->icid); FrameMgrPutToken (fm, strconv->position); FrameMgrPutToken (fm, strconv->direction); FrameMgrPutToken (fm, strconv->operation); _Xi18nSendMessage (ims, connect_id, XIM_STR_CONVERSION, 0, reply, total_size); FrameMgrFree (fm); XFree (reply); /* XIM_STR_CONVERSION is a syncronous protocol, so should wait here for XIM_STR_CONVERSION_REPLY. */ if (i18n_core->methods.wait (ims, connect_id, XIM_STR_CONVERSION_REPLY, 0) == False) { return False; } /*endif*/ return True; } scim-1.4.14/modules/FrontEnd/IMdkit/i18nIMProto.c000066400000000000000000000476201177210725600213220ustar00rootroot00000000000000/****************************************************************** Copyright 1993, 1994 by Digital Equipment Corporation, Maynard, Massachusetts, Copyright 1993, 1994 by Hewlett-Packard Company Copyright 1994, 1995 by Sun Microsystems, Inc. All Rights Reserved Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the names of Digital or MIT not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. DIGITAL AND HEWLETT-PACKARD COMPANY DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL DIGITAL AND HEWLETT-PACKARD COMPANY BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. Author: Hiroyuki Miyamoto Digital Equipment Corporation miyamoto@jrd.dec.com Hidetoshi Tajima(tajima@Eng.Sun.COM) Sun Microsystems, Inc. This version tidied and debugged by Steve Underwood May 1999 ******************************************************************/ /* Protocol Packet frames */ #include "FrameMgr.h" /* Data type definitions */ static XimFrameRec ximattr_fr[] = { _FRAME(BIT16), /* attribute ID */ _FRAME(BIT16), /* type of the value */ _FRAME(BIT16), /* length of im-attribute */ _FRAME(BARRAY), /* im-attribute */ _PAD4(2), _FRAME(EOL), }; static XimFrameRec xicattr_fr[] = { _FRAME(BIT16), /* attribute ID */ _FRAME(BIT16), /* type of the value */ _FRAME(BIT16), /* length of ic-attribute */ _FRAME(BARRAY), /* ic-attribute */ _PAD4(2), _FRAME(EOL), }; static XimFrameRec ximattribute_fr[] = { _FRAME(BIT16), /* attribute ID */ _FRAME(BIT16), /* value length */ _FRAME(BARRAY), /* value */ _PAD4(1), _FRAME(EOL), }; static XimFrameRec xicattribute_fr[] = { _FRAME(BIT16), /* attribute ID */ _FRAME(BIT16), /* value length */ _FRAME(BARRAY), /* value */ _PAD4(1), _FRAME(EOL), }; static XimFrameRec ximtriggerkey_fr[] = { _FRAME(BIT32), /* keysym */ _FRAME(BIT32), /* modifier */ _FRAME(BIT32), /* modifier mask */ _FRAME(EOL), }; static XimFrameRec encodinginfo_fr[] = { _FRAME(BIT16), /* length of encoding info */ _FRAME(BARRAY), /* encoding info */ _PAD4(2), _FRAME(EOL), }; static XimFrameRec str_fr[] = { _FRAME(BIT8), /* number of byte */ _FRAME(BARRAY), /* string */ _FRAME(EOL), }; static XimFrameRec xpcs_fr[] = { _FRAME(BIT16), /* length of string in bytes */ _FRAME(BARRAY), /* string */ _PAD4(2), }; static XimFrameRec ext_fr[] = { _FRAME(BIT8), /* extension major-opcode */ _FRAME(BIT8), /* extension minor-opcode */ _FRAME(BIT16), /* length of extension name */ _FRAME(BARRAY), /* extension name */ _PAD4(1), _FRAME(EOL), }; static XimFrameRec inputstyle_fr[] = { _FRAME(BIT32), /* inputstyle */ _FRAME(EOL), }; /* Protocol definitions */ xim_externaldef XimFrameRec attr_head_fr[] = { _FRAME(BIT16), /* attribute id */ _FRAME(BIT16), /* attribute length */ _FRAME(EOL), }; xim_externaldef XimFrameRec short_fr[] = { _FRAME(BIT16), /* value */ _FRAME(EOL), }; xim_externaldef XimFrameRec long_fr[] = { _FRAME(BIT32), /* value */ _FRAME(EOL), }; xim_externaldef XimFrameRec xrectangle_fr[] = { _FRAME(BIT16), /* x */ _FRAME(BIT16), /* y */ _FRAME(BIT16), /* width */ _FRAME(BIT16), /* height */ _FRAME(EOL), }; xim_externaldef XimFrameRec xpoint_fr[] = { _FRAME(BIT16), /* x */ _FRAME(BIT16), /* y */ _FRAME(EOL), }; xim_externaldef XimFrameRec fontset_fr[] = { _FRAME(BIT16), /* length of base font name */ _FRAME(BARRAY), /* base font name list */ _PAD4(2), /* unused */ _FRAME(EOL), }; xim_externaldef XimFrameRec input_styles_fr[] = { _FRAME(BIT16), /* number of list */ _PAD4(1), /* unused */ _FRAME(ITER), /* XIMStyle list */ _FRAME(POINTER), _PTR(inputstyle_fr), _FRAME(EOL), }; xim_externaldef XimFrameRec packet_header_fr[] = { _FRAME(BIT8), /* major-opcode */ _FRAME(BIT8), /* minor-opcode */ _FRAME(BIT16), /* length */ _FRAME(EOL), }; xim_externaldef XimFrameRec error_fr[] = { _FRAME(BIT16), /* input-method-ID */ _FRAME(BIT16), /* input-context-ID */ _FRAME(BIT16), /* flag */ _FRAME(BIT16), /* Error Code */ _FRAME(BIT16), /* length of error detail */ _FRAME(BIT16), /* type of error detail */ _FRAME(BARRAY), /* error detail */ _PAD4(1), _FRAME(EOL), }; xim_externaldef XimFrameRec connect_fr[] = { _FRAME(BIT8), /* byte order */ _PAD2(1), /* unused */ _FRAME(BIT16), /* client-major-protocol-version */ _FRAME(BIT16), /* client-minor-protocol-version */ _BYTE_COUNTER(BIT16, 1), /* length of client-auth-protocol-names */ _FRAME(ITER), /* client-auth-protocol-names */ _FRAME(POINTER), _PTR(xpcs_fr), _FRAME(EOL), }; xim_externaldef XimFrameRec connect_reply_fr[] = { _FRAME(BIT16), /* server-major-protocol-version */ _FRAME(BIT16), /* server-minor-protocol-version */ _FRAME(EOL), }; xim_externaldef XimFrameRec auth_required_fr[] = { _FRAME(BIT8), /* auth-protocol-index */ _FRAME(BIT8), /* auth-data1 */ _FRAME(BARRAY), /* auth-data2 */ _PAD4(3), _FRAME(EOL), }; xim_externaldef XimFrameRec auth_reply_fr[] = { _FRAME(BIT8), _FRAME(BARRAY), _PAD4(2), _FRAME(EOL), }; xim_externaldef XimFrameRec auth_next_fr[] = { _FRAME(BIT8), /* auth-data1 */ _FRAME(BARRAY), /* auth-data2 */ _PAD4(2), _FRAME(EOL), }; xim_externaldef XimFrameRec auth_setup_fr[] = { _BYTE_COUNTER(BIT16, 2), /* number of client-auth-protocol-names */ _PAD4(1), /* unused */ _FRAME(ITER), /* server-auth-protocol-names */ _FRAME(POINTER), _PTR(xpcs_fr), _FRAME(EOL), }; xim_externaldef XimFrameRec auth_ng_fr[] = { _FRAME(EOL), }; xim_externaldef XimFrameRec disconnect_fr[] = { _FRAME(EOL), }; xim_externaldef XimFrameRec disconnect_reply_fr[] = { _FRAME(EOL), }; xim_externaldef XimFrameRec open_fr[] = { _FRAME(POINTER), /* locale name */ _PTR(str_fr), _PAD4(1), _FRAME(EOL), }; xim_externaldef XimFrameRec open_reply_fr[] = { _FRAME(BIT16), /* input-method-ID */ _BYTE_COUNTER(BIT16, 1), /* byte length of IM attributes supported */ _FRAME(ITER), /* IM attribute supported */ _FRAME(POINTER), _PTR(ximattr_fr), _BYTE_COUNTER(BIT16, 2), /* number of IC attribute supported */ _PAD4(1), /* unused */ _FRAME(ITER), /* IC attribute supported */ _FRAME(POINTER), _PTR(xicattr_fr), _FRAME(EOL), }; xim_externaldef XimFrameRec close_fr[] = { _FRAME(BIT16), /* input-method-ID */ _PAD4(1), /* unused */ _FRAME(EOL), }; xim_externaldef XimFrameRec close_reply_fr[] = { _FRAME(BIT16), /* input-method-ID */ _PAD4(1), /* unused */ _FRAME(EOL), }; xim_externaldef XimFrameRec register_triggerkeys_fr[] = { _FRAME(BIT16), /* input-method-ID */ _PAD4(1), /* unused */ _BYTE_COUNTER(BIT32, 1), /* byte length of on-keys */ _FRAME(ITER), /* on-keys list */ _FRAME(POINTER), _PTR(ximtriggerkey_fr), _BYTE_COUNTER(BIT32, 1), /* byte length of off-keys */ _FRAME(ITER), /* off-keys list */ _FRAME(POINTER), _PTR(ximtriggerkey_fr), _FRAME(EOL), }; xim_externaldef XimFrameRec trigger_notify_fr[] = { _FRAME(BIT16), /* input-mehotd-ID */ _FRAME(BIT16), /* input-context-ID */ _FRAME(BIT32), /* flag */ _FRAME(BIT32), /* index of keys list */ _FRAME(BIT32), /* client-select-event-mask */ _FRAME(EOL), }; xim_externaldef XimFrameRec trigger_notify_reply_fr[] = { _FRAME(BIT16), /* input-method-ID */ _FRAME(BIT16), /* input-context-ID */ _FRAME(EOL), }; xim_externaldef XimFrameRec set_event_mask_fr[] = { _FRAME(BIT16), /* input-method-ID */ _FRAME(BIT16), /* input-context-ID */ _FRAME(BIT32), /* forward-event-mask */ _FRAME(BIT32), /* synchronous-event-mask */ _FRAME(EOL), }; xim_externaldef XimFrameRec encoding_negotiation_fr[] = { _FRAME(BIT16), /* input-method-ID */ _BYTE_COUNTER(BIT16, 1), /* byte length of encodings listed by name */ _FRAME(ITER), /* supported list of encoding in IM library */ _FRAME(POINTER), _PTR(str_fr), _PAD4(1), _BYTE_COUNTER(BIT16, 2), /* byte length of encodings listed by detailed data */ _PAD4(1), _FRAME(ITER), /* list of encodings supported in the IM library */ _FRAME(POINTER), _PTR(encodinginfo_fr), _FRAME(EOL), }; xim_externaldef XimFrameRec encoding_negotiation_reply_fr[] = { _FRAME(BIT16), /* input-method-ID */ _FRAME(BIT16), /* category of the encoding determined */ _FRAME(BIT16), /* index of the encoding dterminated */ _PAD4(1), _FRAME(EOL), }; xim_externaldef XimFrameRec query_extension_fr[] = { _FRAME(BIT16), /* input-method-ID */ _BYTE_COUNTER(BIT16, 1), /* byte length of extensions supported by the IM library */ _FRAME(ITER), /* extensions supported by the IM library */ _FRAME(POINTER), _PTR(str_fr), _PAD4(1), _FRAME(EOL), }; xim_externaldef XimFrameRec query_extension_reply_fr[] = { _FRAME(BIT16), /* input-method-ID */ _BYTE_COUNTER(BIT16, 1), /* byte length of extensions supported by the IM server */ _FRAME(ITER), /* list of extensions supported by the IM server */ _FRAME(POINTER), _PTR(ext_fr), _FRAME(EOL), }; xim_externaldef XimFrameRec get_im_values_fr[] = { _FRAME(BIT16), /* input-method-ID */ _BYTE_COUNTER(BIT16, 1), /* byte length of im-attribute-id */ _FRAME(ITER), /* im-attribute-id */ _FRAME(BIT16), _PAD4(1), _FRAME(EOL), }; xim_externaldef XimFrameRec get_im_values_reply_fr[] = { _FRAME(BIT16), /* input-method-ID */ _BYTE_COUNTER(BIT16, 1), /* byte length of im-attribute returned */ _FRAME(ITER), /* im-attribute returned */ _FRAME(POINTER), _PTR(ximattribute_fr), _FRAME(EOL), }; xim_externaldef XimFrameRec create_ic_fr[] = { _FRAME(BIT16), /* input-method-ID */ _BYTE_COUNTER(BIT16, 1), /* byte length of ic-attributes */ _FRAME(ITER), /* ic-attributes */ _FRAME(POINTER), _PTR(xicattribute_fr), _FRAME(EOL), }; xim_externaldef XimFrameRec create_ic_reply_fr[] = { _FRAME(BIT16), /* input-method-ID */ _FRAME(BIT16), /* input-context-ID */ _FRAME(EOL), }; xim_externaldef XimFrameRec destroy_ic_fr[] = { _FRAME(BIT16), /* input-method-ID */ _FRAME(BIT16), /* input-context-ID */ _FRAME(EOL), }; xim_externaldef XimFrameRec destroy_ic_reply_fr[] = { _FRAME(BIT16), /* input-method-ID */ _FRAME(BIT16), /* input-context-ID */ _FRAME(EOL), }; xim_externaldef XimFrameRec set_ic_values_fr[] = { _FRAME(BIT16), /* input-method-ID */ _FRAME(BIT16), /* input-context-ID */ _BYTE_COUNTER(BIT16, 2), /* byte length of ic-attributes */ _PAD4(1), _FRAME(ITER), /* ic-attribute */ _FRAME(POINTER), _PTR(xicattribute_fr), _FRAME(EOL), }; xim_externaldef XimFrameRec set_ic_values_reply_fr[] = { _FRAME(BIT16), /* input-method-ID */ _FRAME(BIT16), /* input-context-ID */ _FRAME(EOL), }; xim_externaldef XimFrameRec get_ic_values_fr[] = { _FRAME(BIT16), /* input-method-ID */ _FRAME(BIT16), /* input-context-ID */ _BYTE_COUNTER(BIT16, 1), /* byte length of ic-attribute-id */ _FRAME(ITER), /* ic-attribute */ _FRAME(BIT16), _PAD4(2), _FRAME(EOL), }; xim_externaldef XimFrameRec get_ic_values_reply_fr[] = { _FRAME(BIT16), /* input-method-ID */ _FRAME(BIT16), /* input-context-ID */ _BYTE_COUNTER(BIT16, 2), /* byte length of ic-attribute */ _PAD4(1), _FRAME(ITER), /* ic-attribute */ _FRAME(POINTER), _PTR(xicattribute_fr), _FRAME(EOL), }; xim_externaldef XimFrameRec set_ic_focus_fr[] = { _FRAME(BIT16), /* input-method-ID */ _FRAME(BIT16), /* input-context-ID */ _FRAME(EOL), }; xim_externaldef XimFrameRec unset_ic_focus_fr[] = { _FRAME(BIT16), /* input-method-ID */ _FRAME(BIT16), /* input-context-ID */ _FRAME(EOL), }; xim_externaldef XimFrameRec forward_event_fr[] = { _FRAME(BIT16), /* input-method-ID */ _FRAME(BIT16), /* input-context-ID */ _FRAME(BIT16), /* flag */ _FRAME(BIT16), /* sequence number */ _FRAME(EOL), }; xim_externaldef XimFrameRec wire_keyevent_fr[] = { _FRAME(BIT8), /* type */ _FRAME(BIT8), /* detail */ _FRAME(BIT16), /* serial number */ _FRAME(BIT32), /* time */ _FRAME(BIT32), /* root */ _FRAME(BIT32), /* window */ _FRAME(BIT32), /* subwindow */ _FRAME(BIT16), /* rootX */ _FRAME(BIT16), /* rootY */ _FRAME(BIT16), /* X */ _FRAME(BIT16), /* Y */ _FRAME(BIT16), /* state */ _FRAME(BIT8), /* sameScreen */ _FRAME(EOL), }; xim_externaldef XimFrameRec sync_fr[] = { _FRAME(BIT16), /* input-method-ID */ _FRAME(BIT16), /* input-context-ID */ _FRAME(EOL), }; xim_externaldef XimFrameRec sync_reply_fr[] = { _FRAME(BIT16), /* input-method-ID */ _FRAME(BIT16), /* input-context-ID */ _FRAME(EOL), }; #if 0 xim_externaldef XimFrameRec commit_fr[] = { _FRAME(BIT16), /* input-method-ID */ _FRAME(BIT16), /* input-context-ID */ _FRAME(BIT16), /* flag */ _FRAME(BIT16), /* byte length of committed string */ _FRAME(BARRAY), /* committed string */ _PAD4(1), _BYTE_COUNTER(BIT16, 1), /* byte length of keysym */ _FRAME(ITER), /* keysym */ _FRAME(BIT32), _PAD4(1), _FRAME(EOL), }; #endif xim_externaldef XimFrameRec commit_chars_fr[] = { _FRAME(BIT16), /* input-method-ID */ _FRAME(BIT16), /* input-context-ID */ _FRAME(BIT16), /* flag */ _FRAME(BIT16), /* byte length of committed string */ _FRAME(BARRAY), /* committed string */ _PAD4(1), _FRAME(EOL), }; xim_externaldef XimFrameRec commit_both_fr[] = { _FRAME(BIT16), /* input-method-ID */ _FRAME(BIT16), /* input-context-ID */ _FRAME(BIT16), /* flag */ _PAD4(1), /* unused */ _FRAME(BIT32), /* keysym */ _FRAME(BIT16), /* byte length of committed string */ _FRAME(BARRAY), /* committed string */ _PAD4(2), _FRAME(EOL), }; xim_externaldef XimFrameRec reset_ic_fr[] = { _FRAME(BIT16), /* input-method-ID */ _FRAME(BIT16), /* input-context-ID */ _FRAME(EOL), }; xim_externaldef XimFrameRec reset_ic_reply_fr[] = { _FRAME(BIT16), /* input-method-ID */ _FRAME(BIT16), /* input-context-ID */ _FRAME(BIT16), /* byte length of committed string */ _FRAME(BARRAY), /* committed string */ _PAD4(2), _FRAME(EOL), }; xim_externaldef XimFrameRec geometry_fr[] = { _FRAME(BIT16), /* input-method-ID */ _FRAME(BIT16), /* input-context-ID */ _FRAME(EOL), }; xim_externaldef XimFrameRec str_conversion_fr[] = { _FRAME(BIT16), /* input-method-ID */ _FRAME(BIT16), /* input-context-ID */ _FRAME(BIT32), /* XIMStringConversionPosition */ _FRAME(BIT32), /* XIMStringConversionType */ _FRAME(BIT32), /* XIMStringConversionOperation */ _FRAME(BIT16), /* length to multiply the XIMStringConversionType */ _FRAME(BIT16), /* length of the string to be substituted */ #if 0 _FRAME(BARRAY), /* string */ _PAD4(1), #endif _FRAME(EOL), }; xim_externaldef XimFrameRec str_conversion_reply_fr[] = { _FRAME(BIT16), /* input-method-ID */ _FRAME(BIT16), /* input-context-ID */ _FRAME(BIT32), /* XIMStringConversionFeedback */ _FRAME(BIT16), /* length of the retrieved string */ _FRAME(BARRAY), /* retrieved string */ _PAD4(2), _BYTE_COUNTER(BIT16, 2), /* number of feedback array */ _PAD4(1), _FRAME(ITER), /* feedback array */ _FRAME(BIT32), _FRAME(EOL), }; xim_externaldef XimFrameRec preedit_start_fr[] = { _FRAME(BIT16), /* input-method-ID */ _FRAME(BIT16), /* input-context-ID */ _FRAME(EOL), }; xim_externaldef XimFrameRec preedit_start_reply_fr[] = { _FRAME(BIT16), /* input-method-ID */ _FRAME(BIT16), /* input-context-ID */ _FRAME(BIT32), /* return value */ _FRAME(EOL), }; xim_externaldef XimFrameRec preedit_draw_fr[] = { _FRAME(BIT16), /* input-method-ID */ _FRAME(BIT16), /* input-context-ID */ _FRAME(BIT32), /* caret */ _FRAME(BIT32), /* chg_first */ _FRAME(BIT32), /* chg_length */ _FRAME(BIT32), /* status */ _FRAME(BIT16), /* length of preedit string */ _FRAME(BARRAY), /* preedit string */ _PAD4(2), _BYTE_COUNTER(BIT16, 2), /* number of feedback array */ _PAD4(1), _FRAME(ITER), /* feedback array */ _FRAME(BIT32), _FRAME(EOL), }; xim_externaldef XimFrameRec preedit_caret_fr[] = { _FRAME(BIT16), /* input-method-ID */ _FRAME(BIT16), /* input-context-ID */ _FRAME(BIT32), /* position */ _FRAME(BIT32), /* direction */ _FRAME(BIT32), /* style */ _FRAME(EOL), }; xim_externaldef XimFrameRec preedit_caret_reply_fr[] = { _FRAME(BIT16), /* input-method-ID */ _FRAME(BIT16), /* input-context-ID */ _FRAME(BIT32), /* position */ _FRAME(EOL), }; xim_externaldef XimFrameRec preedit_done_fr[] = { _FRAME(BIT16), /* input-method-ID */ _FRAME(BIT16), /* input-context-ID */ _FRAME(EOL), }; xim_externaldef XimFrameRec status_start_fr[] = { _FRAME(BIT16), /* input-method-ID */ _FRAME(BIT16), /* input-context-ID */ _FRAME(EOL), }; xim_externaldef XimFrameRec status_draw_text_fr[] = { _FRAME(BIT16), /* input-method-ID */ _FRAME(BIT16), /* input-context-ID */ _FRAME(BIT32), /* type */ _FRAME(BIT32), /* status */ _FRAME(BIT16), /* length of status string */ _FRAME(BARRAY), /* status string */ _PAD4(2), _BYTE_COUNTER(BIT16, 2), /* number of feedback array */ _PAD4(1), _FRAME(ITER), /* feedback array */ _FRAME(BIT32), _FRAME(EOL), }; xim_externaldef XimFrameRec status_draw_bitmap_fr[] = { _FRAME(BIT16), /* input-method-ID */ _FRAME(BIT16), /* input-context-ID */ _FRAME(BIT32), /* type */ _FRAME(BIT32), /* pixmap data */ _FRAME(EOL), }; xim_externaldef XimFrameRec status_done_fr[] = { _FRAME(BIT16), /* input-method-ID */ _FRAME(BIT16), /* input-context-ID */ _FRAME(EOL), }; xim_externaldef XimFrameRec ext_set_event_mask_fr[] = { _FRAME(BIT16), /* input-method-ID */ _FRAME(BIT16), /* input-context-ID */ _FRAME(BIT32), /* filter-event-mask */ _FRAME(BIT32), /* intercept-event-mask */ _FRAME(BIT32), /* select-event-mask */ _FRAME(BIT32), /* forward-event-mask */ _FRAME(BIT32), /* synchronous-event-mask */ _FRAME(EOL), }; xim_externaldef XimFrameRec ext_forward_keyevent_fr[] = { _FRAME(BIT16), /* input-method-ID */ _FRAME(BIT16), /* input-context-ID */ _FRAME(BIT16), /* flag */ _FRAME(BIT16), /* sequence number */ _FRAME(BIT8), /* xEvent.u.u.type */ _FRAME(BIT8), /* keycode */ _FRAME(BIT16), /* state */ _FRAME(BIT32), /* time */ _FRAME(BIT32), /* window */ _FRAME(EOL), }; xim_externaldef XimFrameRec ext_move_fr[] = { _FRAME(BIT16), /* input-method-ID */ _FRAME(BIT16), /* input-context-ID */ _FRAME(BIT16), /* X */ _FRAME(BIT16), /* Y */ _FRAME(EOL), }; scim-1.4.14/modules/FrontEnd/IMdkit/i18nIc.c000066400000000000000000001015361177210725600203210ustar00rootroot00000000000000/****************************************************************** Copyright 1994, 1995 by Sun Microsystems, Inc. Copyright 1993, 1994 by Hewlett-Packard Company Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of Sun Microsystems, Inc. and Hewlett-Packard not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. Sun Microsystems, Inc. and Hewlett-Packard make no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty. SUN MICROSYSTEMS INC. AND HEWLETT-PACKARD COMPANY DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SUN MICROSYSTEMS, INC. AND HEWLETT-PACKARD COMPANY BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. Author: Hidetoshi Tajima(tajima@Eng.Sun.COM) Sun Microsystems, Inc. This version tidied and debugged by Steve Underwood May 1999 ******************************************************************/ #include #include "IMdkit.h" #include "Xi18n.h" #include "FrameMgr.h" #include "XimFunc.h" #define IC_SIZE 64 /* Set IC values */ static void SetCardAttribute (XICAttribute *value_ret, char *p, XICAttr *ic_attr, int value_length, int need_swap, void **value_buf) { FrameMgr fm; /*endif*/ if (value_length == sizeof (CARD8)) { memmove (*value_buf, p, value_length); } else if (value_length == sizeof (CARD16)) { INT16 value; extern XimFrameRec short_fr[]; fm = FrameMgrInit (short_fr, (char *) p, need_swap); /* get data */ FrameMgrGetToken (fm, value); FrameMgrFree (fm); memmove (*value_buf, &value, value_length); } else if (value_length == sizeof(CARD32)) { INT32 value; extern XimFrameRec long_fr[]; fm = FrameMgrInit (long_fr, (char *) p, need_swap); /* get data */ FrameMgrGetToken (fm, value); FrameMgrFree (fm); memmove (*value_buf, &value, value_length); } /*endif*/ value_ret->attribute_id = ic_attr->attribute_id; value_ret->name = ic_attr->name; value_ret->name_length = ic_attr->length; value_ret->type = ic_attr->type; value_ret->value_length = value_length; value_ret->value = *value_buf; *value_buf += value_length; } static void SetFontAttribute (XICAttribute *value_ret, char *p, XICAttr *ic_attr, int value_length, int need_swap, void **value_buf) { char *base_name; CARD16 base_length; FrameMgr fm; extern XimFrameRec fontset_fr[]; fm = FrameMgrInit (fontset_fr, (char *) p, need_swap); /* get data */ FrameMgrGetToken (fm, base_length); FrameMgrSetSize (fm, base_length); /*endif*/ FrameMgrGetToken (fm, base_name); FrameMgrFree(fm); strncpy ((char *) (*value_buf), base_name, base_length); ((char *) *value_buf)[base_length] = (char) 0; value_ret->attribute_id = ic_attr->attribute_id; value_ret->name = ic_attr->name; value_ret->name_length = ic_attr->length; value_ret->type = ic_attr->type; value_ret->value_length = value_length; value_ret->value = *value_buf; *value_buf += (base_length + 1); } static void SetPointAttribute (XICAttribute *value_ret, char *p, XICAttr *ic_attr, int value_length, int need_swap, void **value_buf) { XPoint *buf; FrameMgr fm; extern XimFrameRec xpoint_fr[]; buf = (XPoint *) (*value_buf); fm = FrameMgrInit (xpoint_fr, (char *) p, need_swap); /* get data */ FrameMgrGetToken (fm, buf->x); FrameMgrGetToken (fm, buf->y); FrameMgrFree (fm); value_ret->attribute_id = ic_attr->attribute_id; value_ret->name = ic_attr->name; value_ret->name_length = ic_attr->length; value_ret->type = ic_attr->type; value_ret->value_length = value_length; value_ret->value = (char *) buf; *value_buf += value_length; } static void SetRectAttribute (XICAttribute *value_ret, char *p, XICAttr *ic_attr, int value_length, int need_swap, void **value_buf) { XRectangle *buf; FrameMgr fm; extern XimFrameRec xrectangle_fr[]; buf = (XRectangle *) (*value_buf); fm = FrameMgrInit (xrectangle_fr, (char *) p, need_swap); /* get data */ FrameMgrGetToken (fm, buf->x); FrameMgrGetToken (fm, buf->y); FrameMgrGetToken (fm, buf->width); FrameMgrGetToken (fm, buf->height); FrameMgrFree (fm); value_ret->attribute_id = ic_attr->attribute_id; value_ret->name = ic_attr->name; value_ret->name_length = ic_attr->length; value_ret->type = ic_attr->type; value_ret->value_length = value_length; value_ret->value = (char *) buf; *value_buf += value_length; } #if 0 static void SetHotKeyAttribute (XICAttribute *value_ret, char *p, XICAttr *ic_attr, int value_length, int need_swap, void **value_buf) { INT32 list_number; XIMTriggerKey *hotkeys; memmove (&list_number, p, sizeof(INT32)); p += sizeof(INT32); hotkeys = (XIMTriggerKey *) (*value_buf); memmove (hotkeys, p, list_number*sizeof (XIMTriggerKey)); value_ret->attribute_id = ic_attr->attribute_id; value_ret->name = ic_attr->name; value_ret->name_length = ic_attr->length; value_ret->type = ic_attr->type; value_ret->value_length = value_length; value_ret->value = (char *) hotkeys; *value_buf += value_length; } #endif /* get IC values */ static void GetAttrHeader (unsigned char *rec, XICAttribute *list, int need_swap) { FrameMgr fm; extern XimFrameRec attr_head_fr[]; fm = FrameMgrInit (attr_head_fr, (char *) rec, need_swap); /* put data */ FrameMgrPutToken (fm, list->attribute_id); FrameMgrPutToken (fm, list->value_length); FrameMgrFree (fm); } static void GetCardAttribute (char *rec, XICAttribute *list, int need_swap) { FrameMgr fm; unsigned char *recp = (unsigned char *) rec; GetAttrHeader (recp, list, need_swap); recp += sizeof (CARD16)*2; if (list->value_length == sizeof (CARD8)) { memmove (recp, list->value, list->value_length); } else if (list->value_length == sizeof (CARD16)) { INT16 *value = (INT16 *) list->value; extern XimFrameRec short_fr[]; fm = FrameMgrInit (short_fr, (char *) recp, need_swap); /* put data */ FrameMgrPutToken (fm, *value); FrameMgrFree (fm); } else if (list->value_length == sizeof (CARD32)) { INT32 *value = (INT32 *) list->value; extern XimFrameRec long_fr[]; fm = FrameMgrInit (long_fr, (char *) recp, need_swap); /* put data */ FrameMgrPutToken (fm, *value); FrameMgrFree (fm); } /*endif*/ } static void GetFontAttribute(char *rec, XICAttribute *list, int need_swap) { FrameMgr fm; extern XimFrameRec fontset_fr[]; char *base_name = (char *) list->value; unsigned char *recp = (unsigned char *) rec; GetAttrHeader (recp, list, need_swap); recp += sizeof (CARD16)*2; fm = FrameMgrInit (fontset_fr, (char *)recp, need_swap); /* put data */ FrameMgrSetSize (fm, list->value_length); FrameMgrPutToken (fm, list->value_length); FrameMgrPutToken (fm, base_name); FrameMgrFree (fm); } static void GetRectAttribute (char *rec, XICAttribute *list, int need_swap) { FrameMgr fm; extern XimFrameRec xrectangle_fr[]; XRectangle *rect = (XRectangle *) list->value; unsigned char *recp = (unsigned char *) rec; GetAttrHeader (recp, list, need_swap); recp += sizeof(CARD16)*2; fm = FrameMgrInit (xrectangle_fr, (char *) recp, need_swap); /* put data */ FrameMgrPutToken (fm, rect->x); FrameMgrPutToken (fm, rect->y); FrameMgrPutToken (fm, rect->width); FrameMgrPutToken (fm, rect->height); FrameMgrFree (fm); } static void GetPointAttribute (char *rec, XICAttribute *list, int need_swap) { FrameMgr fm; extern XimFrameRec xpoint_fr[]; XPoint *rect = (XPoint *) list->value; unsigned char *recp = (unsigned char *) rec; GetAttrHeader (recp, list, need_swap); recp += sizeof(CARD16)*2; fm = FrameMgrInit (xpoint_fr, (char *) recp, need_swap); /* put data */ FrameMgrPutToken (fm, rect->x); FrameMgrPutToken (fm, rect->y); FrameMgrFree (fm); } static int ReadICValue (Xi18n i18n_core, CARD16 icvalue_id, int value_length, void *p, XICAttribute *value_ret, CARD16 *number_ret, int need_swap, void **value_buf) { XICAttr *ic_attr = i18n_core->address.xic_attr; int i; *number_ret = (CARD16) 0; for (i = 0; i < i18n_core->address.ic_attr_num; i++, ic_attr++) { if (ic_attr->attribute_id == icvalue_id) break; /*endif*/ } /*endfor*/ switch (ic_attr->type) { case XimType_NEST: { int total_length = 0; CARD16 attribute_ID; INT16 attribute_length; unsigned char *p1 = (unsigned char *) p; CARD16 ic_len = 0; CARD16 number; FrameMgr fm; extern XimFrameRec attr_head_fr[]; while (total_length < value_length) { fm = FrameMgrInit (attr_head_fr, (char *) p1, need_swap); /* get data */ FrameMgrGetToken (fm, attribute_ID); FrameMgrGetToken (fm, attribute_length); FrameMgrFree (fm); p1 += sizeof (CARD16)*2; ReadICValue (i18n_core, attribute_ID, attribute_length, p1, (value_ret + ic_len), &number, need_swap, value_buf); ic_len++; *number_ret += number; p1 += attribute_length; p1 += IMPAD (attribute_length); total_length += (CARD16) sizeof(CARD16)*2 + (INT16) attribute_length + IMPAD (attribute_length); } /*endwhile*/ return ic_len; } case XimType_CARD8: case XimType_CARD16: case XimType_CARD32: case XimType_Window: SetCardAttribute (value_ret, p, ic_attr, value_length, need_swap, value_buf); *number_ret = (CARD16) 1; return *number_ret; case XimType_XFontSet: SetFontAttribute (value_ret, p, ic_attr, value_length, need_swap, value_buf); *number_ret = (CARD16) 1; return *number_ret; case XimType_XRectangle: SetRectAttribute (value_ret, p, ic_attr, value_length, need_swap, value_buf); *number_ret = (CARD16) 1; return *number_ret; case XimType_XPoint: SetPointAttribute(value_ret, p, ic_attr, value_length, need_swap, value_buf); *number_ret = (CARD16) 1; return *number_ret; #if 0 case XimType_XIMHotKeyTriggers: SetHotKeyAttribute (value_ret, p, ic_attr, value_length, need_swap, value_buf); *number_ret = (CARD16) 1; return *number_ret; #endif } /*endswitch*/ return 0; } static XICAttribute *CreateNestedList (CARD16 attr_id, XICAttribute *list, int number, int need_swap) { XICAttribute *nest_list = NULL; register int i; char *values = NULL; char *valuesp; int value_length = 0; if (number == 0) return NULL; /*endif*/ for (i = 0; i < number; i++) { value_length += sizeof (CARD16)*2; value_length += list[i].value_length; value_length += IMPAD (list[i].value_length); } /*endfor*/ if ((values = (char *) malloc (value_length)) == NULL) return NULL; /*endif*/ memset (values, 0, value_length); valuesp = values; for (i = 0; i < number; i++) { switch (list[i].type) { case XimType_CARD8: case XimType_CARD16: case XimType_CARD32: case XimType_Window: GetCardAttribute (valuesp, &list[i], need_swap); break; case XimType_XFontSet: GetFontAttribute (valuesp, &list[i], need_swap); break; case XimType_XRectangle: GetRectAttribute (valuesp, &list[i], need_swap); break; case XimType_XPoint: GetPointAttribute (valuesp, &list[i], need_swap); break; #if 0 case XimType_XIMHotKeyTriggers: GetHotKeyAttribute (valuesp, &list[i], need_swap); break; #endif } /*endswitch*/ valuesp += sizeof (CARD16)*2; valuesp += list[i].value_length; valuesp += IMPAD(list[i].value_length); } /*endfor*/ nest_list = (XICAttribute *) malloc (sizeof (XICAttribute)); if (nest_list == NULL) return NULL; /*endif*/ memset (nest_list, 0, sizeof (XICAttribute)); nest_list->value = (void *) malloc (value_length); if (nest_list->value == NULL) return NULL; /*endif*/ memset (nest_list->value, 0, sizeof (value_length)); nest_list->attribute_id = attr_id; nest_list->value_length = value_length; memmove (nest_list->value, values, value_length); XFree (values); return nest_list; } static Bool IsNestedList (Xi18n i18n_core, CARD16 icvalue_id) { XICAttr *ic_attr = i18n_core->address.xic_attr; int i; for (i = 0; i < i18n_core->address.ic_attr_num; i++, ic_attr++) { if (ic_attr->attribute_id == icvalue_id) { if (ic_attr->type == XimType_NEST) return True; /*endif*/ return False; } /*endif*/ } /*endfor*/ return False; } static Bool IsSeparator (Xi18n i18n_core, CARD16 icvalue_id) { return (i18n_core->address.separatorAttr_id == icvalue_id); } static int GetICValue (Xi18n i18n_core, XICAttribute *attr_ret, CARD16 *id_list, int list_num) { XICAttr *xic_attr = i18n_core->address.xic_attr; register int i; register int j; register int n; i = n = 0; if (IsNestedList (i18n_core, id_list[i])) { i++; while (i < list_num && !IsSeparator (i18n_core, id_list[i])) { for (j = 0; j < i18n_core->address.ic_attr_num; j++) { if (xic_attr[j].attribute_id == id_list[i]) { attr_ret[n].attribute_id = xic_attr[j].attribute_id; attr_ret[n].name_length = xic_attr[j].length; attr_ret[n].name = malloc (xic_attr[j].length + 1); strcpy(attr_ret[n].name, xic_attr[j].name); attr_ret[n].type = xic_attr[j].type; n++; i++; break; } /*endif*/ } /*endfor*/ } /*endwhile*/ } else { for (j = 0; j < i18n_core->address.ic_attr_num; j++) { if (xic_attr[j].attribute_id == id_list[i]) { attr_ret[n].attribute_id = xic_attr[j].attribute_id; attr_ret[n].name_length = xic_attr[j].length; attr_ret[n].name = malloc (xic_attr[j].length + 1); strcpy(attr_ret[n].name, xic_attr[j].name); attr_ret[n].type = xic_attr[j].type; n++; break; } /*endif*/ } /*endfor*/ } /*endif*/ return n; } static void SwapAttributes (XICAttribute *list, int number){ FrameMgr fm; CARD16 c16; extern XimFrameRec short_fr[]; CARD32 c32; extern XimFrameRec long_fr[]; XPoint xpoint; extern XimFrameRec xpoint_fr[]; XRectangle xrect; extern XimFrameRec xrectangle_fr[]; int i; for (i = 0; i < number; ++i, ++list) { if (list->value == NULL) continue; switch (list->type) { case XimType_CARD16: fm = FrameMgrInit (short_fr, (char *)list->value, 1); FrameMgrGetToken (fm, c16); memmove(list->value, &c16, sizeof(CARD16)); FrameMgrFree (fm); break; case XimType_CARD32: case XimType_Window: fm = FrameMgrInit (long_fr, (char *)list->value, 1); FrameMgrGetToken (fm, c32); memmove(list->value, &c32, sizeof(CARD32)); FrameMgrFree (fm); break; case XimType_XRectangle: fm = FrameMgrInit (xrectangle_fr, (char *)list->value, 1); FrameMgrGetToken (fm, xrect); memmove(list->value, &xrect, sizeof(XRectangle)); FrameMgrFree (fm); break; case XimType_XPoint: fm = FrameMgrInit (xpoint_fr, (char *)list->value, 1); FrameMgrGetToken (fm, xpoint); memmove(list->value, &xpoint, sizeof(XPoint)); FrameMgrFree (fm); break; default: break; } } } /* called from CreateICMessageProc and SetICValueMessageProc */ void _Xi18nChangeIC (XIMS ims, IMProtocol *call_data, unsigned char *p, int create_flag) { Xi18n i18n_core = ims->protocol; FrameMgr fm; FmStatus status; CARD16 byte_length; register int total_size; unsigned char *reply = NULL; register int i; register int attrib_num; XICAttribute *attrib_list; XICAttribute pre_attr[IC_SIZE]; XICAttribute sts_attr[IC_SIZE]; XICAttribute ic_attr[IC_SIZE]; CARD16 preedit_ic_num = 0; CARD16 status_ic_num = 0; CARD16 ic_num = 0; CARD16 connect_id = call_data->any.connect_id; IMChangeICStruct *changeic = (IMChangeICStruct *) &call_data->changeic; extern XimFrameRec create_ic_fr[]; extern XimFrameRec create_ic_reply_fr[]; extern XimFrameRec set_ic_values_fr[]; extern XimFrameRec set_ic_values_reply_fr[]; CARD16 input_method_ID; void *value_buf = NULL; void *value_buf_ptr; register int total_value_length = 0; memset (pre_attr, 0, sizeof (XICAttribute)*IC_SIZE); memset (sts_attr, 0, sizeof (XICAttribute)*IC_SIZE); memset (ic_attr, 0, sizeof (XICAttribute)*IC_SIZE); if (create_flag == True) { fm = FrameMgrInit (create_ic_fr, (char *) p, _Xi18nNeedSwap (i18n_core, connect_id)); /* get data */ FrameMgrGetToken (fm, input_method_ID); FrameMgrGetToken (fm, byte_length); } else { fm = FrameMgrInit (set_ic_values_fr, (char *) p, _Xi18nNeedSwap (i18n_core, connect_id)); /* get data */ FrameMgrGetToken (fm, input_method_ID); FrameMgrGetToken (fm, changeic->icid); FrameMgrGetToken (fm, byte_length); } /*endif*/ attrib_list = (XICAttribute *) malloc (sizeof (XICAttribute)*IC_SIZE); if (!attrib_list) { _Xi18nSendMessage (ims, connect_id, XIM_ERROR, 0, 0, 0); return; } /*endif*/ memset (attrib_list, 0, sizeof(XICAttribute)*IC_SIZE); attrib_num = 0; while (FrameMgrIsIterLoopEnd (fm, &status) == False) { void *value; int value_length; FrameMgrGetToken (fm, attrib_list[attrib_num].attribute_id); FrameMgrGetToken (fm, value_length); FrameMgrSetSize (fm, value_length); attrib_list[attrib_num].value_length = value_length; FrameMgrGetToken (fm, value); attrib_list[attrib_num].value = (void *) malloc (value_length + 1); memmove (attrib_list[attrib_num].value, value, value_length); ((char *)attrib_list[attrib_num].value)[value_length] = '\0'; attrib_num++; total_value_length += (value_length + 1); } /*endwhile*/ value_buf = (void *) malloc (total_value_length); value_buf_ptr = value_buf; if (!value_buf) { _Xi18nSendMessage (ims, connect_id, XIM_ERROR, 0, 0, 0); for (i = 0; i < attrib_num; i++) XFree (attrib_list[i].value); /*endfor*/ XFree (attrib_list); return; } /*endif*/ for (i = 0; i < attrib_num; i++) { CARD16 number; if (IsNestedList (i18n_core, attrib_list[i].attribute_id)) { if (attrib_list[i].attribute_id == i18n_core->address.preeditAttr_id) { ReadICValue (i18n_core, attrib_list[i].attribute_id, attrib_list[i].value_length, attrib_list[i].value, &pre_attr[preedit_ic_num], &number, _Xi18nNeedSwap(i18n_core, connect_id), &value_buf_ptr); preedit_ic_num += number; } else if (attrib_list[i].attribute_id == i18n_core->address.statusAttr_id) { ReadICValue (i18n_core, attrib_list[i].attribute_id, attrib_list[i].value_length, attrib_list[i].value, &sts_attr[status_ic_num], &number, _Xi18nNeedSwap (i18n_core, connect_id), &value_buf_ptr); status_ic_num += number; } else { /* another nested list.. possible? */ } /*endif*/ } else { ReadICValue (i18n_core, attrib_list[i].attribute_id, attrib_list[i].value_length, attrib_list[i].value, &ic_attr[ic_num], &number, _Xi18nNeedSwap (i18n_core, connect_id), &value_buf_ptr); ic_num += number; } /*endif*/ } /*endfor*/ for (i = 0; i < attrib_num; i++) XFree (attrib_list[i].value); /*endfor*/ XFree (attrib_list); FrameMgrFree (fm); changeic->preedit_attr_num = preedit_ic_num; changeic->status_attr_num = status_ic_num; changeic->ic_attr_num = ic_num; changeic->preedit_attr = pre_attr; changeic->status_attr = sts_attr; changeic->ic_attr = ic_attr; if (i18n_core->address.improto) { if (!(i18n_core->address.improto(ims, call_data))) { XFree (value_buf); return; } /*endif*/ } XFree (value_buf); /*endif*/ if (create_flag == True) { fm = FrameMgrInit (create_ic_reply_fr, NULL, _Xi18nNeedSwap (i18n_core, connect_id)); } else { fm = FrameMgrInit (set_ic_values_reply_fr, NULL, _Xi18nNeedSwap (i18n_core, connect_id)); } /*endif*/ total_size = FrameMgrGetTotalSize (fm); reply = (unsigned char *) malloc (total_size); if (!reply) { _Xi18nSendMessage (ims, connect_id, XIM_ERROR, 0, 0, 0); return; } /*endif*/ memset (reply, 0, total_size); FrameMgrSetBuffer (fm, reply); FrameMgrPutToken (fm, input_method_ID); FrameMgrPutToken (fm, changeic->icid); if (create_flag == True) { _Xi18nSendMessage (ims, connect_id, XIM_CREATE_IC_REPLY, 0, reply, total_size); } else { _Xi18nSendMessage (ims, connect_id, XIM_SET_IC_VALUES_REPLY, 0, reply, total_size); } /*endif*/ if (create_flag == True) { int on_key_num = i18n_core->address.on_keys.count_keys; int off_key_num = i18n_core->address.off_keys.count_keys; if (on_key_num == 0 && off_key_num == 0) { long mask; if (i18n_core->address.imvalue_mask & I18N_FILTERMASK) mask = i18n_core->address.filterevent_mask; else mask = DEFAULT_FILTER_MASK; /*endif*/ /* static event flow is default */ _Xi18nSetEventMask (ims, connect_id, input_method_ID, changeic->icid, mask, ~mask); } /*endif*/ } /*endif*/ FrameMgrFree (fm); XFree(reply); } /* called from GetICValueMessageProc */ void _Xi18nGetIC (XIMS ims, IMProtocol *call_data, unsigned char *p) { Xi18n i18n_core = ims->protocol; FrameMgr fm; FmStatus status; extern XimFrameRec get_ic_values_fr[]; extern XimFrameRec get_ic_values_reply_fr[]; CARD16 byte_length; register int total_size; unsigned char *reply = NULL; XICAttribute *preedit_ret = NULL; XICAttribute *status_ret = NULL; register int i; register int number; int iter_count; CARD16 *attrID_list; XICAttribute pre_attr[IC_SIZE]; XICAttribute sts_attr[IC_SIZE]; XICAttribute ic_attr[IC_SIZE]; CARD16 pre_count = 0; CARD16 sts_count = 0; CARD16 ic_count = 0; IMChangeICStruct *getic = (IMChangeICStruct *) &call_data->changeic; CARD16 connect_id = call_data->any.connect_id; CARD16 input_method_ID; memset (pre_attr, 0, sizeof (XICAttribute)*IC_SIZE); memset (sts_attr, 0, sizeof (XICAttribute)*IC_SIZE); memset (ic_attr, 0, sizeof (XICAttribute)*IC_SIZE); fm = FrameMgrInit (get_ic_values_fr, (char *) p, _Xi18nNeedSwap (i18n_core, connect_id)); /* get data */ FrameMgrGetToken (fm, input_method_ID); FrameMgrGetToken (fm, getic->icid); FrameMgrGetToken (fm, byte_length); attrID_list = (CARD16 *) malloc (sizeof (CARD16)*IC_SIZE); /* bogus */ memset (attrID_list, 0, sizeof (CARD16)*IC_SIZE); number = 0; while (FrameMgrIsIterLoopEnd (fm, &status) == False) FrameMgrGetToken (fm, attrID_list[number++]); /*endwhile*/ FrameMgrFree (fm); i = 0; while (i < number) { int read_number; if (IsNestedList (i18n_core, attrID_list[i])) { if (attrID_list[i] == i18n_core->address.preeditAttr_id) { read_number = GetICValue (i18n_core, &pre_attr[pre_count], &attrID_list[i], number); i += read_number + 1; pre_count += read_number; } else if (attrID_list[i] == i18n_core->address.statusAttr_id) { read_number = GetICValue (i18n_core, &sts_attr[sts_count], &attrID_list[i], number); i += read_number + 1; sts_count += read_number; } else { /* another nested list.. possible? */ } /*endif*/ } else { read_number = GetICValue (i18n_core, &ic_attr[ic_count], &attrID_list[i], number); i += read_number; ic_count += read_number; } /*endif*/ } /*endwhile*/ getic->preedit_attr_num = pre_count; getic->status_attr_num = sts_count; getic->ic_attr_num = ic_count; getic->preedit_attr = pre_attr; getic->status_attr = sts_attr; getic->ic_attr = ic_attr; if (i18n_core->address.improto) { if (!(i18n_core->address.improto (ims, call_data))) return; /*endif*/ if (_Xi18nNeedSwap (i18n_core, connect_id)) SwapAttributes(getic->ic_attr, getic->ic_attr_num); } /*endif*/ iter_count = getic->ic_attr_num; preedit_ret = CreateNestedList (i18n_core->address.preeditAttr_id, getic->preedit_attr, getic->preedit_attr_num, _Xi18nNeedSwap (i18n_core, connect_id)); if (preedit_ret) iter_count++; /*endif*/ status_ret = CreateNestedList (i18n_core->address.statusAttr_id, getic->status_attr, getic->status_attr_num, _Xi18nNeedSwap (i18n_core, connect_id)); if (status_ret) iter_count++; /*endif*/ fm = FrameMgrInit (get_ic_values_reply_fr, NULL, _Xi18nNeedSwap (i18n_core, connect_id)); /* set iteration count for list of ic_attribute */ FrameMgrSetIterCount (fm, iter_count); /* set length of BARRAY item in xicattribute_fr */ for (i = 0; i < (int) getic->ic_attr_num; i++) FrameMgrSetSize (fm, ic_attr[i].value_length); /*endfor*/ if (preedit_ret) FrameMgrSetSize (fm, preedit_ret->value_length); /*endif*/ if (status_ret) FrameMgrSetSize (fm, status_ret->value_length); /*endif*/ total_size = FrameMgrGetTotalSize (fm); reply = (unsigned char *) malloc (total_size); if (reply == NULL) { _Xi18nSendMessage (ims, connect_id, XIM_ERROR, 0, 0, 0); return; } /*endif*/ memset (reply, 0, total_size); FrameMgrSetBuffer (fm, reply); FrameMgrPutToken (fm, input_method_ID); FrameMgrPutToken (fm, getic->icid); for (i = 0; i < (int) getic->ic_attr_num; i++) { FrameMgrPutToken (fm, ic_attr[i].attribute_id); FrameMgrPutToken (fm, ic_attr[i].value_length); FrameMgrPutToken (fm, ic_attr[i].value); } /*endfor*/ if (preedit_ret) { FrameMgrPutToken (fm, preedit_ret->attribute_id); FrameMgrPutToken (fm, preedit_ret->value_length); FrameMgrPutToken (fm, preedit_ret->value); } /*endif*/ if (status_ret) { FrameMgrPutToken (fm, status_ret->attribute_id); FrameMgrPutToken (fm, status_ret->value_length); FrameMgrPutToken (fm, status_ret->value); } /*endif*/ _Xi18nSendMessage (ims, connect_id, XIM_GET_IC_VALUES_REPLY, 0, reply, total_size); XFree (reply); XFree (attrID_list); for (i = 0; i < (int) getic->ic_attr_num; i++) { if (getic->ic_attr[i].name) XFree (getic->ic_attr[i].name); /*endif*/ if (getic->ic_attr[i].value) XFree (getic->ic_attr[i].value); /*endif*/ } /*endfor*/ for (i = 0; i < (int) getic->preedit_attr_num; i++) { if (getic->preedit_attr[i].name) XFree (getic->preedit_attr[i].name); /*endif*/ if (getic->preedit_attr[i].value) XFree (getic->preedit_attr[i].value); /*endif*/ } /*endfor*/ for (i = 0; i < (int) getic->status_attr_num; i++) { if (getic->status_attr[i].name) XFree (getic->status_attr[i].name); /*endif*/ if (getic->status_attr[i].value) XFree (getic->status_attr[i].value); /*endif*/ } /*endfor*/ if (preedit_ret) { XFree (preedit_ret->value); XFree (preedit_ret); } /*endif*/ if (status_ret) { XFree (status_ret->value); XFree (status_ret); } /*endif*/ FrameMgrFree (fm); } scim-1.4.14/modules/FrontEnd/IMdkit/i18nMethod.c000066400000000000000000001106521177210725600212050ustar00rootroot00000000000000/****************************************************************** Copyright 1994, 1995 by Sun Microsystems, Inc. Copyright 1993, 1994 by Hewlett-Packard Company Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of Sun Microsystems, Inc. and Hewlett-Packard not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. Sun Microsystems, Inc. and Hewlett-Packard make no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty. SUN MICROSYSTEMS INC. AND HEWLETT-PACKARD COMPANY DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SUN MICROSYSTEMS, INC. AND HEWLETT-PACKARD COMPANY BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. Author: Hidetoshi Tajima(tajima@Eng.Sun.COM) Sun Microsystems, Inc. This version tidied and debugged by Steve Underwood May 1999 ******************************************************************/ #include #include #ifndef NEED_EVENTS #define NEED_EVENTS #endif #include #undef NEED_EVENTS #include "FrameMgr.h" #include "IMdkit.h" #include "Xi18n.h" #include "XimFunc.h" extern Xi18nClient *_Xi18nFindClient (Xi18n, CARD16); static void *xi18n_setup (Display *, XIMArg *); static Status xi18n_openIM (XIMS); static Status xi18n_closeIM (XIMS); static char *xi18n_setIMValues (XIMS, XIMArg *); static char *xi18n_getIMValues (XIMS, XIMArg *); static Status xi18n_forwardEvent (XIMS, XPointer); static Status xi18n_commit (XIMS, XPointer); static int xi18n_callCallback (XIMS, XPointer); static int xi18n_preeditStart (XIMS, XPointer); static int xi18n_preeditEnd (XIMS, XPointer); static int xi18n_syncXlib (XIMS, XPointer); #ifndef XIM_SERVERS #define XIM_SERVERS "XIM_SERVERS" #endif static Atom XIM_Servers = None; IMMethodsRec Xi18n_im_methods = { xi18n_setup, xi18n_openIM, xi18n_closeIM, xi18n_setIMValues, xi18n_getIMValues, xi18n_forwardEvent, xi18n_commit, xi18n_callCallback, xi18n_preeditStart, xi18n_preeditEnd, xi18n_syncXlib, }; extern Bool _Xi18nCheckXAddress (Xi18n, TransportSW *, char *); extern Bool _Xi18nCheckTransAddress (Xi18n, TransportSW *, char *); TransportSW _TransR[] = { {"X", 1, _Xi18nCheckXAddress}, #ifdef TCPCONN {"tcp", 3, _Xi18nCheckTransAddress}, {"local", 5, _Xi18nCheckTransAddress}, #endif #ifdef DNETCONN {"decnet", 6, _Xi18nCheckTransAddress}, #endif {(char *) NULL, 0, (Bool (*) ()) NULL} }; static Bool GetInputStyles (Xi18n i18n_core, XIMStyles **p_style) { Xi18nAddressRec *address = (Xi18nAddressRec *) &i18n_core->address; XIMStyles *p; int i; p = &address->input_styles; if ((*p_style = (XIMStyles *) malloc (sizeof (XIMStyles) + p->count_styles*sizeof (XIMStyle))) == NULL) { return False; } /*endif*/ (*p_style)->count_styles = p->count_styles; (*p_style)->supported_styles = (XIMStyle *) ((XPointer) *p_style + sizeof (XIMStyles)); for (i = 0; i < (int) p->count_styles; i++) (*p_style)->supported_styles[i] = p->supported_styles[i]; /*endfor*/ return True; } static Bool GetOnOffKeys (Xi18n i18n_core, long mask, XIMTriggerKeys **p_key) { Xi18nAddressRec *address = (Xi18nAddressRec *) &i18n_core->address; XIMTriggerKeys *p; int i; if (mask & I18N_ON_KEYS) p = &address->on_keys; else p = &address->off_keys; /*endif*/ if ((*p_key = (XIMTriggerKeys *) malloc (sizeof(XIMTriggerKeys) + p->count_keys*sizeof(XIMTriggerKey))) == NULL) { return False; } /*endif*/ (*p_key)->count_keys = p->count_keys; (*p_key)->keylist = (XIMTriggerKey *) ((XPointer) *p_key + sizeof(XIMTriggerKeys)); for (i = 0; i < (int) p->count_keys; i++) { (*p_key)->keylist[i].keysym = p->keylist[i].keysym; (*p_key)->keylist[i].modifier = p->keylist[i].modifier; (*p_key)->keylist[i].modifier_mask = p->keylist[i].modifier_mask; } /*endfor*/ return True; } static Bool GetEncodings(Xi18n i18n_core, XIMEncodings **p_encoding) { Xi18nAddressRec *address = (Xi18nAddressRec *) &i18n_core->address; XIMEncodings *p; int i; p = &address->encoding_list; if ((*p_encoding = (XIMEncodings *) malloc (sizeof (XIMEncodings) + p->count_encodings*sizeof(XIMEncoding))) == NULL) { return False; } /*endif*/ (*p_encoding)->count_encodings = p->count_encodings; (*p_encoding)->supported_encodings = (XIMEncoding *) ((XPointer)*p_encoding + sizeof (XIMEncodings)); for (i = 0; i < (int) p->count_encodings; i++) { (*p_encoding)->supported_encodings[i] = (char *) malloc (strlen (p->supported_encodings[i]) + 1); strcpy ((*p_encoding)->supported_encodings[i], p->supported_encodings[i]); } /*endif*/ return True; } static char *ParseArgs (Xi18n i18n_core, int mode, XIMArg *args) { Xi18nAddressRec *address = (Xi18nAddressRec *) &i18n_core->address; XIMArg *p; if (mode == I18N_OPEN || mode == I18N_SET) { for (p = args; p->name != NULL; p++) { if (strcmp (p->name, IMLocale) == 0) { if (address->imvalue_mask & I18N_IM_LOCALE) return IMLocale; /*endif*/ address->im_locale = (char *) malloc (strlen (p->value) + 1); if (!address->im_locale) return IMLocale; /*endif*/ strcpy (address->im_locale, p->value); address->imvalue_mask |= I18N_IM_LOCALE; } else if (strcmp (p->name, IMServerTransport) == 0) { if (address->imvalue_mask & I18N_IM_ADDRESS) return IMServerTransport; /*endif*/ address->im_addr = (char *) malloc (strlen (p->value) + 1); if (!address->im_addr) return IMServerTransport; /*endif*/ strcpy(address->im_addr, p->value); address->imvalue_mask |= I18N_IM_ADDRESS; } else if (strcmp (p->name, IMServerName) == 0) { if (address->imvalue_mask & I18N_IM_NAME) return IMServerName; /*endif*/ address->im_name = (char *) malloc (strlen (p->value) + 1); if (!address->im_name) return IMServerName; /*endif*/ strcpy (address->im_name, p->value); address->imvalue_mask |= I18N_IM_NAME; } else if (strcmp (p->name, IMServerWindow) == 0) { if (address->imvalue_mask & I18N_IMSERVER_WIN) return IMServerWindow; /*endif*/ address->im_window = (Window) p->value; address->imvalue_mask |= I18N_IMSERVER_WIN; } else if (strcmp (p->name, IMInputStyles) == 0) { if (address->imvalue_mask & I18N_INPUT_STYLES) return IMInputStyles; /*endif*/ address->input_styles.count_styles = ((XIMStyles*)p->value)->count_styles; address->input_styles.supported_styles = (XIMStyle *) malloc (sizeof (XIMStyle)*address->input_styles.count_styles); if (address->input_styles.supported_styles == (XIMStyle *) NULL) return IMInputStyles; /*endif*/ memmove (address->input_styles.supported_styles, ((XIMStyles *) p->value)->supported_styles, sizeof (XIMStyle)*address->input_styles.count_styles); address->imvalue_mask |= I18N_INPUT_STYLES; } else if (strcmp (p->name, IMProtocolHandler) == 0) { address->improto = (IMProtoHandler) p->value; address->imvalue_mask |= I18N_IM_HANDLER; } else if (strcmp (p->name, IMOnKeysList) == 0) { if (address->imvalue_mask & I18N_ON_KEYS) return IMOnKeysList; /*endif*/ address->on_keys.count_keys = ((XIMTriggerKeys *) p->value)->count_keys; address->on_keys.keylist = (XIMTriggerKey *) malloc (sizeof (XIMTriggerKey)*address->on_keys.count_keys); if (address->on_keys.keylist == (XIMTriggerKey *) NULL) return IMOnKeysList; /*endif*/ memmove (address->on_keys.keylist, ((XIMTriggerKeys *) p->value)->keylist, sizeof (XIMTriggerKey)*address->on_keys.count_keys); address->imvalue_mask |= I18N_ON_KEYS; } else if (strcmp (p->name, IMOffKeysList) == 0) { if (address->imvalue_mask & I18N_OFF_KEYS) return IMOffKeysList; /*endif*/ address->off_keys.count_keys = ((XIMTriggerKeys *) p->value)->count_keys; address->off_keys.keylist = (XIMTriggerKey *) malloc (sizeof (XIMTriggerKey)*address->off_keys.count_keys); if (address->off_keys.keylist == (XIMTriggerKey *) NULL) return IMOffKeysList; /*endif*/ memmove (address->off_keys.keylist, ((XIMTriggerKeys *) p->value)->keylist, sizeof (XIMTriggerKey)*address->off_keys.count_keys); address->imvalue_mask |= I18N_OFF_KEYS; } else if (strcmp (p->name, IMEncodingList) == 0) { if (address->imvalue_mask & I18N_ENCODINGS) return IMEncodingList; /*endif*/ address->encoding_list.count_encodings = ((XIMEncodings *) p->value)->count_encodings; address->encoding_list.supported_encodings = (XIMEncoding *) malloc (sizeof (XIMEncoding)*address->encoding_list.count_encodings); if (address->encoding_list.supported_encodings == (XIMEncoding *) NULL) { return IMEncodingList; } /*endif*/ memmove (address->encoding_list.supported_encodings, ((XIMEncodings *) p->value)->supported_encodings, sizeof (XIMEncoding)*address->encoding_list.count_encodings); address->imvalue_mask |= I18N_ENCODINGS; } else if (strcmp (p->name, IMFilterEventMask) == 0) { if (address->imvalue_mask & I18N_FILTERMASK) return IMFilterEventMask; /*endif*/ address->filterevent_mask = (long) p->value; address->imvalue_mask |= I18N_FILTERMASK; } /*endif*/ } /*endfor*/ if (mode == I18N_OPEN) { /* check mandatory IM values */ if (!(address->imvalue_mask & I18N_IM_LOCALE)) { /* locales must be set in IMOpenIM */ return IMLocale; } /*endif*/ if (!(address->imvalue_mask & I18N_IM_ADDRESS)) { /* address must be set in IMOpenIM */ return IMServerTransport; } /*endif*/ } /*endif*/ } else if (mode == I18N_GET) { for (p = args; p->name != NULL; p++) { if (strcmp (p->name, IMLocale) == 0) { p->value = (char *) malloc (strlen (address->im_locale) + 1); if (!p->value) return IMLocale; /*endif*/ strcpy (p->value, address->im_locale); } else if (strcmp (p->name, IMServerTransport) == 0) { p->value = (char *) malloc (strlen (address->im_addr) + 1); if (!p->value) return IMServerTransport; /*endif*/ strcpy (p->value, address->im_addr); } else if (strcmp (p->name, IMServerName) == 0) { if (address->imvalue_mask & I18N_IM_NAME) { p->value = (char *) malloc (strlen (address->im_name) + 1); if (!p->value) return IMServerName; /*endif*/ strcpy (p->value, address->im_name); } else { return IMServerName; } /*endif*/ } else if (strcmp (p->name, IMServerWindow) == 0) { if (address->imvalue_mask & I18N_IMSERVER_WIN) *((Window *) (p->value)) = address->im_window; else return IMServerWindow; /*endif*/ } else if (strcmp (p->name, IMInputStyles) == 0) { if (GetInputStyles (i18n_core, (XIMStyles **) p->value) == False) { return IMInputStyles; } /*endif*/ } else if (strcmp (p->name, IMProtocolHandler) == 0) { if (address->imvalue_mask & I18N_IM_HANDLER) *((IMProtoHandler *) (p->value)) = address->improto; else return IMProtocolHandler; /*endif*/ } else if (strcmp (p->name, IMOnKeysList) == 0) { if (address->imvalue_mask & I18N_ON_KEYS) { if (GetOnOffKeys (i18n_core, I18N_ON_KEYS, (XIMTriggerKeys **) p->value) == False) { return IMOnKeysList; } /*endif*/ } else { return IMOnKeysList; } /*endif*/ } else if (strcmp (p->name, IMOffKeysList) == 0) { if (address->imvalue_mask & I18N_OFF_KEYS) { if (GetOnOffKeys (i18n_core, I18N_OFF_KEYS, (XIMTriggerKeys **) p->value) == False) { return IMOffKeysList; } /*endif*/ } else { return IMOffKeysList; } /*endif*/ } else if (strcmp (p->name, IMEncodingList) == 0) { if (address->imvalue_mask & I18N_ENCODINGS) { if (GetEncodings (i18n_core, (XIMEncodings **) p->value) == False) { return IMEncodingList; } /*endif*/ } else { return IMEncodingList; } /*endif*/ } else if (strcmp (p->name, IMFilterEventMask) == 0) { if (address->imvalue_mask & I18N_FILTERMASK) *((long *) (p->value)) = address->filterevent_mask; else return IMFilterEventMask; /*endif*/ } /*endif*/ } /*endfor*/ } /*endif*/ return NULL; } static int CheckIMName (Xi18n i18n_core) { char *address = i18n_core->address.im_addr; int i; for (i = 0; _TransR[i].transportname; i++) { while (*address == ' ' || *address == '\t') address++; /*endwhile*/ if (strncmp (address, _TransR[i].transportname, _TransR[i].namelen) == 0 && address[_TransR[i].namelen] == '/') { if (_TransR[i].checkAddr (i18n_core, &_TransR[i], address + _TransR[i].namelen + 1) == True) { return True; } /*endif*/ return False; } /*endif*/ } /*endfor*/ return False; } static int SetXi18nSelectionOwner(Xi18n i18n_core) { Display *dpy = i18n_core->address.dpy; Window ims_win = i18n_core->address.im_window; Window root = RootWindow (dpy, DefaultScreen (dpy)); Atom realtype; int realformat; unsigned long bytesafter; long *data=NULL; unsigned long length; Atom atom; int i; int found; int forse = False; char buf[256]; (void)snprintf(buf, 256, "@server=%s", i18n_core->address.im_name); if ((atom = XInternAtom(dpy, buf, False)) == 0) return False; i18n_core->address.selection = atom; if (XIM_Servers == None) XIM_Servers = XInternAtom (dpy, XIM_SERVERS, False); /*endif*/ XGetWindowProperty (dpy, root, XIM_Servers, 0L, 1000000L, False, XA_ATOM, &realtype, &realformat, &length, &bytesafter, (unsigned char **) (&data)); if (realtype != None && (realtype != XA_ATOM || realformat != 32)) { if (data != NULL) XFree ((char *) data); return False; } found = False; for (i = 0; i < length; i++) { if (data[i] == atom) { Window owner; found = True; if ((owner = XGetSelectionOwner (dpy, atom)) != ims_win) { if (owner == None || forse == True) XSetSelectionOwner (dpy, atom, ims_win, CurrentTime); else return False; } break; } } if (found == False) { XSetSelectionOwner (dpy, atom, ims_win, CurrentTime); XChangeProperty (dpy, root, XIM_Servers, XA_ATOM, 32, PropModePrepend, (unsigned char *) &atom, 1); } else { /* * We always need to generate the PropertyNotify to the Root Window */ XChangeProperty (dpy, root, XIM_Servers, XA_ATOM, 32, PropModePrepend, (unsigned char *) data, 0); } if (data != NULL) XFree ((char *) data); /* Intern "LOCALES" and "TRANSOPORT" Target Atoms */ i18n_core->address.Localename = XInternAtom (dpy, LOCALES, False); i18n_core->address.Transportname = XInternAtom (dpy, TRANSPORT, False); return (XGetSelectionOwner (dpy, atom) == ims_win); } static int DeleteXi18nAtom(Xi18n i18n_core) { Display *dpy = i18n_core->address.dpy; Window root = RootWindow (dpy, DefaultScreen (dpy)); Atom realtype; int realformat; unsigned long bytesafter; long *data=NULL; unsigned long length; Atom atom; int i, ret; int found; char buf[256]; (void)snprintf(buf, 256, "@server=%s", i18n_core->address.im_name); if ((atom = XInternAtom(dpy, buf, False)) == 0) return False; i18n_core->address.selection = atom; if (XIM_Servers == None) XIM_Servers = XInternAtom (dpy, XIM_SERVERS, False); XGetWindowProperty (dpy, root, XIM_Servers, 0L, 1000000L, False, XA_ATOM, &realtype, &realformat, &length, &bytesafter, (unsigned char **) (&data)); if (realtype != XA_ATOM || realformat != 32) { if (data != NULL) XFree ((char *) data); return False; } found = False; for (i = 0; i < length; i++) { if (data[i] == atom) { found = True; break; } } if (found == True) { for (i=i+1; iaddress.dpy = dpy; if (ParseArgs (i18n_core, I18N_OPEN, args) != NULL) { XFree (i18n_core); return NULL; } /*endif*/ if (*(char *) &endian) i18n_core->address.im_byteOrder = 'l'; else i18n_core->address.im_byteOrder = 'B'; /*endif*/ /* install IMAttr and ICAttr list in i18n_core */ _Xi18nInitAttrList (i18n_core); /* install IMExtension list in i18n_core */ _Xi18nInitExtension (i18n_core); return i18n_core; } static void ReturnSelectionNotify (Xi18n i18n_core, XSelectionRequestEvent *ev) { XEvent event; Display *dpy = i18n_core->address.dpy; char buf[4096]; event.type = SelectionNotify; event.xselection.requestor = ev->requestor; event.xselection.selection = ev->selection; event.xselection.target = ev->target; event.xselection.time = ev->time; event.xselection.property = ev->property; if (ev->target == i18n_core->address.Localename) { snprintf (buf, 4096, "@locale=%s", i18n_core->address.im_locale); } else if (ev->target == i18n_core->address.Transportname) { snprintf (buf, 4096, "@transport=%s", i18n_core->address.im_addr); } /*endif*/ XChangeProperty (dpy, event.xselection.requestor, ev->target, ev->target, 8, PropModeReplace, (unsigned char *) buf, strlen (buf)); XSendEvent (dpy, event.xselection.requestor, False, NoEventMask, &event); XFlush (i18n_core->address.dpy); } static Bool WaitXSelectionRequest (Display *dpy, Window win, XEvent *ev, XPointer client_data) { XIMS ims = (XIMS) client_data; Xi18n i18n_core = ims->protocol; if (((XSelectionRequestEvent *) ev)->selection == i18n_core->address.selection) { ReturnSelectionNotify (i18n_core, (XSelectionRequestEvent *) ev); return True; } /*endif*/ return False; } static Status xi18n_openIM(XIMS ims) { Xi18n i18n_core = ims->protocol; Display *dpy = i18n_core->address.dpy; if (!CheckIMName (i18n_core) || !SetXi18nSelectionOwner (i18n_core) || !i18n_core->methods.begin (ims)) { XFree (i18n_core->address.im_name); XFree (i18n_core->address.im_locale); XFree (i18n_core->address.im_addr); XFree (i18n_core); return False; } /*endif*/ _XRegisterFilterByType (dpy, i18n_core->address.im_window, SelectionRequest, SelectionRequest, WaitXSelectionRequest, (XPointer)ims); XFlush(dpy); return True; } static Status xi18n_closeIM(XIMS ims) { Xi18n i18n_core = ims->protocol; Display *dpy = i18n_core->address.dpy; DeleteXi18nAtom(i18n_core); if (!i18n_core->methods.end (ims)) return False; _XUnregisterFilter (dpy, i18n_core->address.im_window, WaitXSelectionRequest, (XPointer)ims); XFree (i18n_core->address.im_name); XFree (i18n_core->address.im_locale); XFree (i18n_core->address.im_addr); XFree (i18n_core); return True; } static char *xi18n_setIMValues (XIMS ims, XIMArg *args) { Xi18n i18n_core = ims->protocol; char *ret; if ((ret = ParseArgs (i18n_core, I18N_SET, args)) != NULL) return ret; /*endif*/ return NULL; } static char *xi18n_getIMValues (XIMS ims, XIMArg *args) { Xi18n i18n_core = ims->protocol; char *ret; if ((ret = ParseArgs (i18n_core, I18N_GET, args)) != NULL) return ret; /*endif*/ return NULL; } static void EventToWireEvent (XEvent *ev, xEvent *event, CARD16 *serial, Bool byte_swap) { FrameMgr fm; extern XimFrameRec wire_keyevent_fr[]; extern XimFrameRec short_fr[]; BYTE b; CARD16 c16; CARD32 c32; *serial = (CARD16)(ev->xany.serial >> 16); switch (ev->type) { case KeyPress: case KeyRelease: { XKeyEvent *kev = (XKeyEvent*)ev; /* create FrameMgr */ fm = FrameMgrInit(wire_keyevent_fr, (char *)(&(event->u)), byte_swap); /* set values */ b = (BYTE)kev->type; FrameMgrPutToken(fm, b); b = (BYTE)kev->keycode; FrameMgrPutToken(fm, b); c16 = (CARD16)(kev->serial & (unsigned long)0xffff); FrameMgrPutToken(fm, c16); c32 = (CARD32)kev->time; FrameMgrPutToken(fm, c32); c32 = (CARD32)kev->root; FrameMgrPutToken(fm, c32); c32 = (CARD32)kev->window; FrameMgrPutToken(fm, c32); c32 = (CARD32)kev->subwindow; FrameMgrPutToken(fm, c32); c16 = (CARD16)kev->x_root; FrameMgrPutToken(fm, c16); c16 = (CARD16)kev->y_root; FrameMgrPutToken(fm, c16); c16 = (CARD16)kev->x; FrameMgrPutToken(fm, c16); c16 = (CARD16)kev->y; FrameMgrPutToken(fm, c16); c16 = (CARD16)kev->state; FrameMgrPutToken(fm, c16); b = (BYTE)kev->same_screen; FrameMgrPutToken(fm, b); } break; default: /* create FrameMgr */ fm = FrameMgrInit(short_fr, (char *)(&(event->u.u.sequenceNumber)), byte_swap); c16 = (CARD16)(ev->xany.serial & (unsigned long)0xffff); FrameMgrPutToken(fm, c16); break; } /* free FrameMgr */ FrameMgrFree(fm); } static Status xi18n_forwardEvent (XIMS ims, XPointer xp) { Xi18n i18n_core = ims->protocol; IMForwardEventStruct *call_data = (IMForwardEventStruct *)xp; FrameMgr fm; extern XimFrameRec forward_event_fr[]; register int total_size; unsigned char *reply = NULL; unsigned char *replyp; CARD16 serial; int event_size; Xi18nClient *client; client = (Xi18nClient *) _Xi18nFindClient (i18n_core, call_data->connect_id); /* create FrameMgr */ fm = FrameMgrInit (forward_event_fr, NULL, _Xi18nNeedSwap (i18n_core, call_data->connect_id)); total_size = FrameMgrGetTotalSize (fm); event_size = sizeof (xEvent); reply = (unsigned char *) malloc (total_size + event_size); if (!reply) { _Xi18nSendMessage (ims, call_data->connect_id, XIM_ERROR, 0, 0, 0); return False; } /*endif*/ memset (reply, 0, total_size + event_size); FrameMgrSetBuffer (fm, reply); replyp = reply; call_data->sync_bit = 1; /* always sync */ client->sync = True; FrameMgrPutToken (fm, call_data->connect_id); FrameMgrPutToken (fm, call_data->icid); FrameMgrPutToken (fm, call_data->sync_bit); replyp += total_size; EventToWireEvent (&(call_data->event), (xEvent *) replyp, &serial, _Xi18nNeedSwap (i18n_core, call_data->connect_id)); FrameMgrPutToken (fm, serial); _Xi18nSendMessage (ims, call_data->connect_id, XIM_FORWARD_EVENT, 0, reply, total_size + event_size); XFree (reply); FrameMgrFree (fm); return True; } static Status xi18n_commit (XIMS ims, XPointer xp) { Xi18n i18n_core = ims->protocol; IMCommitStruct *call_data = (IMCommitStruct *)xp; FrameMgr fm; extern XimFrameRec commit_chars_fr[]; extern XimFrameRec commit_both_fr[]; register int total_size; unsigned char *reply = NULL; CARD16 str_length; call_data->flag |= XimSYNCHRONUS; /* always sync */ if (!(call_data->flag & XimLookupKeySym) && (call_data->flag & XimLookupChars)) { fm = FrameMgrInit (commit_chars_fr, NULL, _Xi18nNeedSwap (i18n_core, call_data->connect_id)); /* set length of STRING8 */ str_length = strlen (call_data->commit_string); FrameMgrSetSize (fm, str_length); total_size = FrameMgrGetTotalSize (fm); reply = (unsigned char *) malloc (total_size); if (!reply) { _Xi18nSendMessage (ims, call_data->connect_id, XIM_ERROR, 0, 0, 0); return False; } /*endif*/ memset (reply, 0, total_size); FrameMgrSetBuffer (fm, reply); str_length = FrameMgrGetSize (fm); FrameMgrPutToken (fm, call_data->connect_id); FrameMgrPutToken (fm, call_data->icid); FrameMgrPutToken (fm, call_data->flag); FrameMgrPutToken (fm, str_length); FrameMgrPutToken (fm, call_data->commit_string); } else { fm = FrameMgrInit (commit_both_fr, NULL, _Xi18nNeedSwap (i18n_core, call_data->connect_id)); /* set length of STRING8 */ str_length = strlen (call_data->commit_string); if (str_length > 0) FrameMgrSetSize (fm, str_length); /*endif*/ total_size = FrameMgrGetTotalSize (fm); reply = (unsigned char *) malloc (total_size); if (!reply) { _Xi18nSendMessage (ims, call_data->connect_id, XIM_ERROR, 0, 0, 0); return False; } /*endif*/ FrameMgrSetBuffer (fm, reply); FrameMgrPutToken (fm, call_data->connect_id); FrameMgrPutToken (fm, call_data->icid); FrameMgrPutToken (fm, call_data->flag); FrameMgrPutToken (fm, call_data->keysym); if (str_length > 0) { str_length = FrameMgrGetSize (fm); FrameMgrPutToken (fm, str_length); FrameMgrPutToken (fm, call_data->commit_string); } /*endif*/ } /*endif*/ _Xi18nSendMessage (ims, call_data->connect_id, XIM_COMMIT, 0, reply, total_size); FrameMgrFree (fm); XFree (reply); return True; } static int xi18n_callCallback (XIMS ims, XPointer xp) { IMProtocol *call_data = (IMProtocol *)xp; switch (call_data->major_code) { case XIM_GEOMETRY: return _Xi18nGeometryCallback (ims, call_data); case XIM_PREEDIT_START: return _Xi18nPreeditStartCallback (ims, call_data); case XIM_PREEDIT_DRAW: return _Xi18nPreeditDrawCallback (ims, call_data); case XIM_PREEDIT_CARET: return _Xi18nPreeditCaretCallback (ims, call_data); case XIM_PREEDIT_DONE: return _Xi18nPreeditDoneCallback (ims, call_data); case XIM_STATUS_START: return _Xi18nStatusStartCallback (ims, call_data); case XIM_STATUS_DRAW: return _Xi18nStatusDrawCallback (ims, call_data); case XIM_STATUS_DONE: return _Xi18nStatusDoneCallback (ims, call_data); case XIM_STR_CONVERSION: return _Xi18nStringConversionCallback (ims, call_data); } /*endswitch*/ return False; } /* preeditStart and preeditEnd are used only for Dynamic Event Flow. */ static int xi18n_preeditStart (XIMS ims, XPointer xp) { IMProtocol *call_data = (IMProtocol *)xp; Xi18n i18n_core = ims->protocol; IMPreeditStateStruct *preedit_state = (IMPreeditStateStruct *) &call_data->preedit_state; long mask; int on_key_num = i18n_core->address.on_keys.count_keys; int off_key_num = i18n_core->address.off_keys.count_keys; if (on_key_num == 0 && off_key_num == 0) return False; /*endif*/ if (i18n_core->address.imvalue_mask & I18N_FILTERMASK) mask = i18n_core->address.filterevent_mask; else mask = DEFAULT_FILTER_MASK; /*endif*/ _Xi18nSetEventMask (ims, preedit_state->connect_id, preedit_state->connect_id, preedit_state->icid, mask, ~mask); return True; } static int xi18n_preeditEnd (XIMS ims, XPointer xp) { IMProtocol *call_data = (IMProtocol *)xp; Xi18n i18n_core = ims->protocol; int on_key_num = i18n_core->address.on_keys.count_keys; int off_key_num = i18n_core->address.off_keys.count_keys; IMPreeditStateStruct *preedit_state; preedit_state = (IMPreeditStateStruct *) &call_data->preedit_state; if (on_key_num == 0 && off_key_num == 0) return False; /*endif*/ _Xi18nSetEventMask (ims, preedit_state->connect_id, preedit_state->connect_id, preedit_state->icid, 0, 0); return True; } static int xi18n_syncXlib (XIMS ims, XPointer xp) { IMProtocol *call_data = (IMProtocol *)xp; Xi18n i18n_core = ims->protocol; IMSyncXlibStruct *sync_xlib; extern XimFrameRec sync_fr[]; FrameMgr fm; CARD16 connect_id = call_data->any.connect_id; int total_size; unsigned char *reply; sync_xlib = (IMSyncXlibStruct *) &call_data->sync_xlib; fm = FrameMgrInit (sync_fr, NULL, _Xi18nNeedSwap (i18n_core, connect_id)); total_size = FrameMgrGetTotalSize(fm); reply = (unsigned char *) malloc (total_size); if (!reply) { _Xi18nSendMessage (ims, connect_id, XIM_ERROR, 0, 0, 0); return False; } memset (reply, 0, total_size); FrameMgrSetBuffer (fm, reply); /* input input-method ID */ FrameMgrPutToken (fm, connect_id); /* input input-context ID */ FrameMgrPutToken (fm, sync_xlib->icid); _Xi18nSendMessage (ims, connect_id, XIM_SYNC, 0, reply, total_size); FrameMgrFree (fm); XFree(reply); return True; } scim-1.4.14/modules/FrontEnd/IMdkit/i18nPtHdr.c000066400000000000000000001545511177210725600210140ustar00rootroot00000000000000/****************************************************************** Copyright 1994, 1995 by Sun Microsystems, Inc. Copyright 1993, 1994 by Hewlett-Packard Company Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of Sun Microsystems, Inc. and Hewlett-Packard not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. Sun Microsystems, Inc. and Hewlett-Packard make no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty. SUN MICROSYSTEMS INC. AND HEWLETT-PACKARD COMPANY DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SUN MICROSYSTEMS, INC. AND HEWLETT-PACKARD COMPANY BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. Author: Hidetoshi Tajima(tajima@Eng.Sun.COM) Sun Microsystems, Inc. This version tidied and debugged by Steve Underwood May 1999 ******************************************************************/ #include #include #include #ifndef NEED_EVENTS #define NEED_EVENTS #endif #include #undef NEED_EVENTS #include "FrameMgr.h" #include "IMdkit.h" #include "Xi18n.h" #include "XimFunc.h" #ifdef XIM_DEBUG #include static void DebugLog(char * msg) { fprintf(stderr, msg); } #endif extern Xi18nClient *_Xi18nFindClient (Xi18n, CARD16); static void DiscardQueue (XIMS ims, CARD16 connect_id) { Xi18n i18n_core = ims->protocol; Xi18nClient *client = (Xi18nClient *) _Xi18nFindClient (i18n_core, connect_id); if (client != NULL) { client->sync = False; while (client->pending != NULL) { XIMPending* pending = client->pending; client->pending = pending->next; XFree(pending->p); XFree(pending); } } } static void DiscardAllQueue(XIMS ims) { Xi18n i18n_core = ims->protocol; Xi18nClient* client = i18n_core->address.clients; while (client != NULL) { if (client->sync) { DiscardQueue(ims, client->connect_id); } client = client->next; } } static void GetProtocolVersion (CARD16 client_major, CARD16 client_minor, CARD16 *server_major, CARD16 *server_minor) { *server_major = client_major; *server_minor = client_minor; } static void ConnectMessageProc (XIMS ims, IMProtocol *call_data, unsigned char *p) { Xi18n i18n_core = ims->protocol; FrameMgr fm; extern XimFrameRec connect_fr[], connect_reply_fr[]; register int total_size; CARD16 server_major_version, server_minor_version; unsigned char *reply = NULL; IMConnectStruct *imconnect = (IMConnectStruct*) &call_data->imconnect; CARD16 connect_id = call_data->any.connect_id; fm = FrameMgrInit (connect_fr, (char *) p, _Xi18nNeedSwap (i18n_core, connect_id)); /* get data */ FrameMgrGetToken (fm, imconnect->byte_order); FrameMgrGetToken (fm, imconnect->major_version); FrameMgrGetToken (fm, imconnect->minor_version); FrameMgrFree (fm); GetProtocolVersion (imconnect->major_version, imconnect->minor_version, &server_major_version, &server_minor_version); #ifdef PROTOCOL_RICH if (i18n_core->address.improto) { if (!(i18n_core->address.improto(ims, call_data))) return; /*endif*/ } /*endif*/ #endif /* PROTOCOL_RICH */ fm = FrameMgrInit (connect_reply_fr, NULL, _Xi18nNeedSwap (i18n_core, connect_id)); total_size = FrameMgrGetTotalSize (fm); reply = (unsigned char *) malloc (total_size); if (!reply) { _Xi18nSendMessage (ims, connect_id, XIM_ERROR, 0, 0, 0); return; } /*endif*/ memset (reply, 0, total_size); FrameMgrSetBuffer (fm, reply); FrameMgrPutToken (fm, server_major_version); FrameMgrPutToken (fm, server_minor_version); _Xi18nSendMessage (ims, connect_id, XIM_CONNECT_REPLY, 0, reply, total_size); FrameMgrFree (fm); XFree (reply); } static void DisConnectMessageProc (XIMS ims, IMProtocol *call_data) { Xi18n i18n_core = ims->protocol; unsigned char *reply = NULL; CARD16 connect_id = call_data->any.connect_id; #ifdef PROTOCOL_RICH if (i18n_core->address.improto) { if (!(i18n_core->address.improto (ims, call_data))) return; /*endif*/ } /*endif*/ #endif /* PROTOCOL_RICH */ _Xi18nSendMessage (ims, connect_id, XIM_DISCONNECT_REPLY, 0, reply, 0); i18n_core->methods.disconnect (ims, connect_id); } static void OpenMessageProc(XIMS ims, IMProtocol *call_data, unsigned char *p) { Xi18n i18n_core = ims->protocol; FrameMgr fm; extern XimFrameRec open_fr[]; extern XimFrameRec open_reply_fr[]; unsigned char *reply = NULL; int str_size; register int i, total_size; CARD16 connect_id = call_data->any.connect_id; int str_length; char *name; IMOpenStruct *imopen = (IMOpenStruct *) &call_data->imopen; fm = FrameMgrInit (open_fr, (char *) p, _Xi18nNeedSwap (i18n_core, connect_id)); /* get data */ FrameMgrGetToken (fm, str_length); FrameMgrSetSize (fm, str_length); FrameMgrGetToken (fm, name); imopen->lang.length = str_length; imopen->lang.name = malloc (str_length + 1); strncpy (imopen->lang.name, name, str_length); imopen->lang.name[str_length] = (char) 0; FrameMgrFree (fm); if (i18n_core->address.improto) { if (!(i18n_core->address.improto(ims, call_data))) return; /*endif*/ } /*endif*/ if ((i18n_core->address.imvalue_mask & I18N_ON_KEYS) || (i18n_core->address.imvalue_mask & I18N_OFF_KEYS)) { _Xi18nSendTriggerKey (ims, connect_id); } /*endif*/ XFree (imopen->lang.name); fm = FrameMgrInit (open_reply_fr, NULL, _Xi18nNeedSwap (i18n_core, connect_id)); /* set iteration count for list of imattr */ FrameMgrSetIterCount (fm, i18n_core->address.im_attr_num); /* set length of BARRAY item in ximattr_fr */ for (i = 0; i < i18n_core->address.im_attr_num; i++) { str_size = strlen (i18n_core->address.xim_attr[i].name); FrameMgrSetSize (fm, str_size); } /*endfor*/ /* set iteration count for list of icattr */ FrameMgrSetIterCount (fm, i18n_core->address.ic_attr_num); /* set length of BARRAY item in xicattr_fr */ for (i = 0; i < i18n_core->address.ic_attr_num; i++) { str_size = strlen (i18n_core->address.xic_attr[i].name); FrameMgrSetSize (fm, str_size); } /*endfor*/ total_size = FrameMgrGetTotalSize (fm); reply = (unsigned char *) malloc (total_size); if (!reply) { _Xi18nSendMessage (ims, connect_id, XIM_ERROR, 0, 0, 0); return; } /*endif*/ memset (reply, 0, total_size); FrameMgrSetBuffer (fm, reply); /* input input-method ID */ FrameMgrPutToken (fm, connect_id); for (i = 0; i < i18n_core->address.im_attr_num; i++) { str_size = FrameMgrGetSize (fm); FrameMgrPutToken (fm, i18n_core->address.xim_attr[i].attribute_id); FrameMgrPutToken (fm, i18n_core->address.xim_attr[i].type); FrameMgrPutToken (fm, str_size); FrameMgrPutToken (fm, i18n_core->address.xim_attr[i].name); } /*endfor*/ for (i = 0; i < i18n_core->address.ic_attr_num; i++) { str_size = FrameMgrGetSize (fm); FrameMgrPutToken (fm, i18n_core->address.xic_attr[i].attribute_id); FrameMgrPutToken (fm, i18n_core->address.xic_attr[i].type); FrameMgrPutToken (fm, str_size); FrameMgrPutToken (fm, i18n_core->address.xic_attr[i].name); } /*endfor*/ _Xi18nSendMessage (ims, connect_id, XIM_OPEN_REPLY, 0, reply, total_size); FrameMgrFree (fm); XFree (reply); } static void CloseMessageProc (XIMS ims, IMProtocol *call_data, unsigned char *p) { Xi18n i18n_core = ims->protocol; FrameMgr fm; extern XimFrameRec close_fr[]; extern XimFrameRec close_reply_fr[]; unsigned char *reply = NULL; register int total_size; CARD16 connect_id = call_data->any.connect_id; CARD16 input_method_ID; fm = FrameMgrInit (close_fr, (char *) p, _Xi18nNeedSwap (i18n_core, connect_id)); FrameMgrGetToken (fm, input_method_ID); FrameMgrFree (fm); if (i18n_core->address.improto) { if (!(i18n_core->address.improto (ims, call_data))) return; /*endif*/ } /*endif*/ fm = FrameMgrInit (close_reply_fr, NULL, _Xi18nNeedSwap (i18n_core, connect_id)); total_size = FrameMgrGetTotalSize (fm); reply = (unsigned char *) malloc (total_size); if (!reply) { _Xi18nSendMessage (ims, connect_id, XIM_ERROR, 0, 0, 0); return; } /*endif*/ memset (reply, 0, total_size); FrameMgrSetBuffer (fm, reply); FrameMgrPutToken (fm, input_method_ID); _Xi18nSendMessage (ims, connect_id, XIM_CLOSE_REPLY, 0, reply, total_size); FrameMgrFree (fm); XFree (reply); } static XIMExt *MakeExtensionList (Xi18n i18n_core, XIMStr *lib_extension, int number, int *reply_number) { XIMExt *ext_list; XIMExt *im_ext = (XIMExt *) i18n_core->address.extension; int im_ext_len = i18n_core->address.ext_num; int i; int j; *reply_number = 0; if (number == 0) { /* query all extensions */ *reply_number = im_ext_len; } else { for (i = 0; i < im_ext_len; i++) { for (j = 0; j < (int) number; j++) { if (strcmp (lib_extension[j].name, im_ext[i].name) == 0) { (*reply_number)++; break; } /*endif*/ } /*endfor*/ } /*endfor*/ } /*endif*/ if (!(*reply_number)) return NULL; /*endif*/ ext_list = (XIMExt *) malloc (sizeof (XIMExt)*(*reply_number)); if (!ext_list) return NULL; /*endif*/ memset (ext_list, 0, sizeof (XIMExt)*(*reply_number)); if (number == 0) { /* query all extensions */ for (i = 0; i < im_ext_len; i++) { ext_list[i].major_opcode = im_ext[i].major_opcode; ext_list[i].minor_opcode = im_ext[i].minor_opcode; ext_list[i].length = im_ext[i].length; ext_list[i].name = malloc (im_ext[i].length + 1); strcpy (ext_list[i].name, im_ext[i].name); } /*endfor*/ } else { int n = 0; for (i = 0; i < im_ext_len; i++) { for (j = 0; j < (int)number; j++) { if (strcmp (lib_extension[j].name, im_ext[i].name) == 0) { ext_list[n].major_opcode = im_ext[i].major_opcode; ext_list[n].minor_opcode = im_ext[i].minor_opcode; ext_list[n].length = im_ext[i].length; ext_list[n].name = malloc (im_ext[i].length + 1); strcpy (ext_list[n].name, im_ext[i].name); n++; break; } /*endif*/ } /*endfor*/ } /*endfor*/ } /*endif*/ return ext_list; } static void QueryExtensionMessageProc (XIMS ims, IMProtocol *call_data, unsigned char *p) { Xi18n i18n_core = ims->protocol; FrameMgr fm; FmStatus status; extern XimFrameRec query_extension_fr[]; extern XimFrameRec query_extension_reply_fr[]; unsigned char *reply = NULL; int str_size; register int i; register int number; register int total_size; int byte_length; int reply_number = 0; XIMExt *ext_list; IMQueryExtensionStruct *query_ext = (IMQueryExtensionStruct *) &call_data->queryext; CARD16 connect_id = call_data->any.connect_id; CARD16 input_method_ID; fm = FrameMgrInit (query_extension_fr, (char *) p, _Xi18nNeedSwap (i18n_core, connect_id)); FrameMgrGetToken (fm, input_method_ID); FrameMgrGetToken (fm, byte_length); query_ext->extension = (XIMStr *) malloc (sizeof (XIMStr)*10); memset (query_ext->extension, 0, sizeof (XIMStr)*10); number = 0; while (FrameMgrIsIterLoopEnd (fm, &status) == False) { char *name; int str_length; FrameMgrGetToken (fm, str_length); FrameMgrSetSize (fm, str_length); query_ext->extension[number].length = str_length; FrameMgrGetToken (fm, name); query_ext->extension[number].name = malloc (str_length + 1); strncpy (query_ext->extension[number].name, name, str_length); query_ext->extension[number].name[str_length] = (char) 0; number++; } /*endwhile*/ query_ext->number = number; #ifdef PROTOCOL_RICH if (i18n_core->address.improto) { if (!(i18n_core->address.improto(ims, call_data))) return; /*endif*/ } /*endif*/ #endif /* PROTOCOL_RICH */ FrameMgrFree (fm); ext_list = MakeExtensionList (i18n_core, query_ext->extension, number, &reply_number); for (i = 0; i < number; i++) XFree (query_ext->extension[i].name); /*endfor*/ XFree (query_ext->extension); fm = FrameMgrInit (query_extension_reply_fr, NULL, _Xi18nNeedSwap (i18n_core, connect_id)); /* set iteration count for list of extensions */ FrameMgrSetIterCount (fm, reply_number); /* set length of BARRAY item in ext_fr */ for (i = 0; i < reply_number; i++) { str_size = strlen (ext_list[i].name); FrameMgrSetSize (fm, str_size); } /*endfor*/ total_size = FrameMgrGetTotalSize (fm); reply = (unsigned char *) malloc (total_size); if (!reply) { _Xi18nSendMessage (ims, connect_id, XIM_ERROR, 0, 0, 0); return; } /*endif*/ memset (reply, 0, total_size); FrameMgrSetBuffer (fm, reply); FrameMgrPutToken (fm, input_method_ID); for (i = 0; i < reply_number; i++) { str_size = FrameMgrGetSize (fm); FrameMgrPutToken (fm, ext_list[i].major_opcode); FrameMgrPutToken (fm, ext_list[i].minor_opcode); FrameMgrPutToken (fm, str_size); FrameMgrPutToken (fm, ext_list[i].name); } /*endfor*/ _Xi18nSendMessage (ims, connect_id, XIM_QUERY_EXTENSION_REPLY, 0, reply, total_size); FrameMgrFree (fm); XFree (reply); for (i = 0; i < reply_number; i++) XFree (ext_list[i].name); /*endfor*/ XFree ((char *) ext_list); } static void SyncReplyMessageProc (XIMS ims, IMProtocol *call_data, unsigned char *p) { Xi18n i18n_core = ims->protocol; FrameMgr fm; extern XimFrameRec sync_reply_fr[]; CARD16 connect_id = call_data->any.connect_id; Xi18nClient *client; CARD16 input_method_ID; CARD16 input_context_ID; client = (Xi18nClient *)_Xi18nFindClient (i18n_core, connect_id); fm = FrameMgrInit (sync_reply_fr, (char *) p, _Xi18nNeedSwap (i18n_core, connect_id)); FrameMgrGetToken (fm, input_method_ID); FrameMgrGetToken (fm, input_context_ID); FrameMgrFree (fm); client->sync = False; if (ims->sync == True) { ims->sync = False; if (i18n_core->address.improto) { call_data->sync_xlib.major_code = XIM_SYNC_REPLY; call_data->sync_xlib.minor_code = 0; call_data->sync_xlib.connect_id = input_method_ID; call_data->sync_xlib.icid = input_context_ID; i18n_core->address.improto(ims, call_data); } } } static void GetIMValueFromName (Xi18n i18n_core, CARD16 connect_id, char *buf, char *name, int *length) { register int i; if (strcmp (name, XNQueryInputStyle) == 0) { XIMStyles *styles = (XIMStyles *) &i18n_core->address.input_styles; *length = sizeof (CARD16)*2; /* count_styles, unused */ *length += styles->count_styles*sizeof (CARD32); if (buf != NULL) { FrameMgr fm; extern XimFrameRec input_styles_fr[]; unsigned char *data = NULL; int total_size; fm = FrameMgrInit (input_styles_fr, NULL, _Xi18nNeedSwap (i18n_core, connect_id)); /* set iteration count for list of input_style */ FrameMgrSetIterCount (fm, styles->count_styles); total_size = FrameMgrGetTotalSize (fm); data = (unsigned char *) malloc (total_size); if (!data) return; /*endif*/ memset (data, 0, total_size); FrameMgrSetBuffer (fm, data); FrameMgrPutToken (fm, styles->count_styles); for (i = 0; i < (int) styles->count_styles; i++) FrameMgrPutToken (fm, styles->supported_styles[i]); /*endfor*/ memmove (buf, data, total_size); FrameMgrFree (fm); /* ADDED BY SUZHE */ free (data); /* ADDED BY SUZHE */ } /*endif*/ } /*endif*/ else if (strcmp (name, XNQueryIMValuesList) == 0) { } } static XIMAttribute *MakeIMAttributeList (Xi18n i18n_core, CARD16 connect_id, CARD16 *list, int *number, int *length) { XIMAttribute *attrib_list; int list_num; XIMAttr *attr = i18n_core->address.xim_attr; int list_len = i18n_core->address.im_attr_num; register int i; register int j; int value_length; int number_ret = 0; *length = 0; list_num = 0; for (i = 0; i < *number; i++) { for (j = 0; j < list_len; j++) { if (attr[j].attribute_id == list[i]) { list_num++; break; } /*endif*/ } /*endfor*/ } /*endfor*/ attrib_list = (XIMAttribute *) malloc (sizeof (XIMAttribute)*list_num); if (!attrib_list) return NULL; /*endif*/ memset (attrib_list, 0, sizeof (XIMAttribute)*list_num); number_ret = list_num; list_num = 0; for (i = 0; i < *number; i++) { for (j = 0; j < list_len; j++) { if (attr[j].attribute_id == list[i]) { attrib_list[list_num].attribute_id = attr[j].attribute_id; attrib_list[list_num].name_length = attr[j].length; attrib_list[list_num].name = attr[j].name; attrib_list[list_num].type = attr[j].type; GetIMValueFromName (i18n_core, connect_id, NULL, attr[j].name, &value_length); attrib_list[list_num].value_length = value_length; attrib_list[list_num].value = (void *) malloc (value_length); memset(attrib_list[list_num].value, 0, value_length); GetIMValueFromName (i18n_core, connect_id, attrib_list[list_num].value, attr[j].name, &value_length); *length += sizeof (CARD16)*2; *length += value_length; *length += IMPAD (value_length); list_num++; break; } /*endif*/ } /*endfor*/ } /*endfor*/ *number = number_ret; return attrib_list; } static void GetIMValuesMessageProc (XIMS ims, IMProtocol *call_data, unsigned char *p) { Xi18n i18n_core = ims->protocol; FrameMgr fm; FmStatus status; extern XimFrameRec get_im_values_fr[]; extern XimFrameRec get_im_values_reply_fr[]; CARD16 byte_length; int list_len, total_size; unsigned char *reply = NULL; int iter_count; register int i; register int j; int number; CARD16 *im_attrID_list; char **name_list; CARD16 name_number; XIMAttribute *im_attribute_list; IMGetIMValuesStruct *getim = (IMGetIMValuesStruct *)&call_data->getim; CARD16 connect_id = call_data->any.connect_id; CARD16 input_method_ID; /* create FrameMgr */ fm = FrameMgrInit (get_im_values_fr, (char *) p, _Xi18nNeedSwap (i18n_core, connect_id)); FrameMgrGetToken (fm, input_method_ID); FrameMgrGetToken (fm, byte_length); im_attrID_list = (CARD16 *) malloc (sizeof (CARD16)*20); memset (im_attrID_list, 0, sizeof (CARD16)*20); name_list = (char **)malloc(sizeof(char *) * 20); memset(name_list, 0, sizeof(char *) * 20); number = 0; while (FrameMgrIsIterLoopEnd (fm, &status) == False) { FrameMgrGetToken (fm, im_attrID_list[number]); number++; } FrameMgrFree (fm); name_number = 0; for (i = 0; i < number; i++) { for (j = 0; j < i18n_core->address.im_attr_num; j++) { if (i18n_core->address.xim_attr[j].attribute_id == im_attrID_list[i]) { name_list[name_number++] = i18n_core->address.xim_attr[j].name; break; } } } getim->number = name_number; getim->im_attr_list = name_list; XFree (name_list); #ifdef PROTOCOL_RICH if (i18n_core->address.improto) { if (!(i18n_core->address.improto (ims, call_data))) return; } #endif /* PROTOCOL_RICH */ im_attribute_list = MakeIMAttributeList (i18n_core, connect_id, im_attrID_list, &number, &list_len); if (im_attrID_list) XFree (im_attrID_list); /*endif*/ fm = FrameMgrInit (get_im_values_reply_fr, NULL, _Xi18nNeedSwap (i18n_core, connect_id)); iter_count = number; /* set iteration count for list of im_attribute */ FrameMgrSetIterCount (fm, iter_count); /* set length of BARRAY item in ximattribute_fr */ for (i = 0; i < iter_count; i++) FrameMgrSetSize (fm, im_attribute_list[i].value_length); /*endfor*/ total_size = FrameMgrGetTotalSize (fm); reply = (unsigned char *) malloc (total_size); if (!reply) { _Xi18nSendMessage (ims, connect_id, XIM_ERROR, 0, 0, 0); return; } /*endif*/ memset (reply, 0, total_size); FrameMgrSetBuffer (fm, reply); FrameMgrPutToken (fm, input_method_ID); for (i = 0; i < iter_count; i++) { FrameMgrPutToken (fm, im_attribute_list[i].attribute_id); FrameMgrPutToken (fm, im_attribute_list[i].value_length); FrameMgrPutToken (fm, im_attribute_list[i].value); } /*endfor*/ _Xi18nSendMessage (ims, connect_id, XIM_GET_IM_VALUES_REPLY, 0, reply, total_size); FrameMgrFree (fm); XFree (reply); for (i = 0; i < iter_count; i++) XFree(im_attribute_list[i].value); XFree (im_attribute_list); } static void CreateICMessageProc (XIMS ims, IMProtocol *call_data, unsigned char *p) { _Xi18nChangeIC (ims, call_data, p, True); } static void SetICValuesMessageProc (XIMS ims, IMProtocol *call_data, unsigned char *p) { _Xi18nChangeIC (ims, call_data, p, False); } static void GetICValuesMessageProc (XIMS ims, IMProtocol *call_data, unsigned char *p) { _Xi18nGetIC (ims, call_data, p); } static void SetICFocusMessageProc (XIMS ims, IMProtocol *call_data, unsigned char *p) { Xi18n i18n_core = ims->protocol; FrameMgr fm; extern XimFrameRec set_ic_focus_fr[]; IMChangeFocusStruct *setfocus; CARD16 connect_id = call_data->any.connect_id; CARD16 input_method_ID; /* some buggy xim clients do not send XIM_SYNC_REPLY for synchronous * events. In such case, xim server is waiting for XIM_SYNC_REPLY * forever. So the xim server is blocked to waiting sync reply. * It prevents further input. * Usually it happens when a client calls XSetICFocus() with another ic * before passing an event to XFilterEvent(), where the event is needed * by the old focused ic to sync its state. * To avoid such problem, remove the whole clients queue and set them * as asynchronous. * * See: * http://bugs.freedesktop.org/show_bug.cgi?id=7869 */ DiscardAllQueue(ims); setfocus = (IMChangeFocusStruct *) &call_data->changefocus; fm = FrameMgrInit (set_ic_focus_fr, (char *) p, _Xi18nNeedSwap (i18n_core, connect_id)); /* get data */ FrameMgrGetToken (fm, input_method_ID); FrameMgrGetToken (fm, setfocus->icid); FrameMgrFree (fm); if (i18n_core->address.improto) { if (!(i18n_core->address.improto (ims, call_data))) return; /*endif*/ } /*endif*/ } static void UnsetICFocusMessageProc (XIMS ims, IMProtocol *call_data, unsigned char *p) { Xi18n i18n_core = ims->protocol; FrameMgr fm; extern XimFrameRec unset_ic_focus_fr[]; IMChangeFocusStruct *unsetfocus; CARD16 connect_id = call_data->any.connect_id; CARD16 input_method_ID; Xi18nClient *client = _Xi18nFindClient (i18n_core, connect_id); /* some buggy clients unset focus ic before the ic answer the sync reply, * so the xim server may be blocked to waiting sync reply. To avoid * this problem, remove the client queue and set it asynchronous * * See: SetICFocusMessageProc */ if (client != NULL && client->sync) { DiscardQueue(ims, client->connect_id); } unsetfocus = (IMChangeFocusStruct *) &call_data->changefocus; fm = FrameMgrInit (unset_ic_focus_fr, (char *) p, _Xi18nNeedSwap (i18n_core, connect_id)); /* get data */ FrameMgrGetToken (fm, input_method_ID); FrameMgrGetToken (fm, unsetfocus->icid); FrameMgrFree (fm); if (i18n_core->address.improto) { if (!(i18n_core->address.improto (ims, call_data))) return; /*endif*/ } /*endif*/ } static void DestroyICMessageProc (XIMS ims, IMProtocol *call_data, unsigned char *p) { Xi18n i18n_core = ims->protocol; FrameMgr fm; extern XimFrameRec destroy_ic_fr[]; extern XimFrameRec destroy_ic_reply_fr[]; register int total_size; unsigned char *reply = NULL; IMDestroyICStruct *destroy = (IMDestroyICStruct *) &call_data->destroyic; CARD16 connect_id = call_data->any.connect_id; CARD16 input_method_ID; fm = FrameMgrInit (destroy_ic_fr, (char *) p, _Xi18nNeedSwap (i18n_core, connect_id)); /* get data */ FrameMgrGetToken (fm, input_method_ID); FrameMgrGetToken (fm, destroy->icid); FrameMgrFree (fm); if (i18n_core->address.improto) { if (!(i18n_core->address.improto (ims, call_data))) return; /*endif*/ } /*endif*/ fm = FrameMgrInit (destroy_ic_reply_fr, NULL, _Xi18nNeedSwap (i18n_core, connect_id)); total_size = FrameMgrGetTotalSize (fm); reply = (unsigned char *) malloc (total_size); if (!reply) { _Xi18nSendMessage (ims, connect_id, XIM_ERROR, 0, 0, 0); return; } /*endif*/ memset (reply, 0, total_size); FrameMgrSetBuffer (fm, reply); FrameMgrPutToken (fm, input_method_ID); FrameMgrPutToken (fm, destroy->icid); _Xi18nSendMessage (ims, connect_id, XIM_DESTROY_IC_REPLY, 0, reply, total_size); XFree(reply); FrameMgrFree (fm); } static void ResetICMessageProc (XIMS ims, IMProtocol *call_data, unsigned char *p) { Xi18n i18n_core = ims->protocol; FrameMgr fm; extern XimFrameRec reset_ic_fr[]; extern XimFrameRec reset_ic_reply_fr[]; register int total_size; unsigned char *reply = NULL; IMResetICStruct *resetic = (IMResetICStruct *) &call_data->resetic; CARD16 connect_id = call_data->any.connect_id; CARD16 input_method_ID; fm = FrameMgrInit (reset_ic_fr, (char *) p, _Xi18nNeedSwap (i18n_core, connect_id)); /* get data */ FrameMgrGetToken (fm, input_method_ID); FrameMgrGetToken (fm, resetic->icid); FrameMgrFree (fm); if (i18n_core->address.improto) { if (!(i18n_core->address.improto(ims, call_data))) return; /*endif*/ } /*endif*/ /* create FrameMgr */ fm = FrameMgrInit (reset_ic_reply_fr, NULL, _Xi18nNeedSwap (i18n_core, connect_id)); /* set length of STRING8 */ FrameMgrSetSize (fm, resetic->length); total_size = FrameMgrGetTotalSize (fm); reply = (unsigned char *) malloc (total_size); if (!reply) { _Xi18nSendMessage (ims, connect_id, XIM_ERROR, 0, 0, 0); return; } /*endif*/ memset (reply, 0, total_size); FrameMgrSetBuffer (fm, reply); FrameMgrPutToken (fm, input_method_ID); FrameMgrPutToken (fm, resetic->icid); FrameMgrPutToken(fm, resetic->length); FrameMgrPutToken (fm, resetic->commit_string); _Xi18nSendMessage (ims, connect_id, XIM_RESET_IC_REPLY, 0, reply, total_size); FrameMgrFree (fm); XFree(reply); } static int WireEventToEvent (Xi18n i18n_core, xEvent *event, CARD16 serial, XEvent *ev, Bool byte_swap) { FrameMgr fm; extern XimFrameRec wire_keyevent_fr[]; BYTE b; CARD16 c16; CARD32 c32; int ret = False; /* create FrameMgr */ fm = FrameMgrInit(wire_keyevent_fr, (char *)(&(event->u)), byte_swap); /* get & set type */ FrameMgrGetToken(fm, b); ev->type = (unsigned int)b; /* get detail */ FrameMgrGetToken(fm, b); /* get & set serial */ FrameMgrGetToken(fm, c16); ev->xany.serial = (unsigned long)c16; ev->xany.serial |= serial << 16; ev->xany.send_event = False; ev->xany.display = i18n_core->address.dpy; /* Remove SendEvent flag from event type to emulate KeyPress/Release */ ev->type &= 0x7F; switch (ev->type) { case KeyPress: case KeyRelease: { XKeyEvent *kev = (XKeyEvent*)ev; /* set keycode (detail) */ kev->keycode = (unsigned int)b; /* get & set values */ FrameMgrGetToken(fm, c32); kev->time = (Time)c32; FrameMgrGetToken(fm, c32); kev->root = (Window)c32; FrameMgrGetToken(fm, c32); kev->window = (Window)c32; FrameMgrGetToken(fm, c32); kev->subwindow = (Window)c32; FrameMgrGetToken(fm, c16); kev->x_root = (int)c16; FrameMgrGetToken(fm, c16); kev->y_root = (int)c16; FrameMgrGetToken(fm, c16); kev->x = (int)c16; FrameMgrGetToken(fm, c16); kev->y = (int)c16; FrameMgrGetToken(fm, c16); kev->state = (unsigned int)c16; FrameMgrGetToken(fm, b); kev->same_screen = (Bool)b; } ret = True; break; default: break; } /* free FrameMgr */ FrameMgrFree(fm); return ret; } static void ForwardEventMessageProc (XIMS ims, IMProtocol *call_data, unsigned char *p) { Xi18n i18n_core = ims->protocol; FrameMgr fm; extern XimFrameRec forward_event_fr[]; xEvent wire_event; IMForwardEventStruct *forward = (IMForwardEventStruct*) &call_data->forwardevent; CARD16 connect_id = call_data->any.connect_id; CARD16 input_method_ID; fm = FrameMgrInit (forward_event_fr, (char *) p, _Xi18nNeedSwap (i18n_core, connect_id)); /* get data */ FrameMgrGetToken (fm, input_method_ID); FrameMgrGetToken (fm, forward->icid); FrameMgrGetToken (fm, forward->sync_bit); FrameMgrGetToken (fm, forward->serial_number); p += sizeof (CARD16)*4; memmove (&wire_event, p, sizeof (xEvent)); FrameMgrFree (fm); if (WireEventToEvent (i18n_core, &wire_event, forward->serial_number, &forward->event, _Xi18nNeedSwap (i18n_core, connect_id)) == True) { if (i18n_core->address.improto) { if (!(i18n_core->address.improto(ims, call_data))) return; /*endif*/ } /*endif*/ } /*endif*/ } static void ExtForwardKeyEventMessageProc (XIMS ims, IMProtocol *call_data, unsigned char *p) { Xi18n i18n_core = ims->protocol; FrameMgr fm; extern XimFrameRec ext_forward_keyevent_fr[]; CARD8 type, keycode; CARD16 state; CARD32 ev_time, window; IMForwardEventStruct *forward = (IMForwardEventStruct *) &call_data->forwardevent; XEvent *ev = (XEvent *) &forward->event; CARD16 connect_id = call_data->any.connect_id; CARD16 input_method_ID; fm = FrameMgrInit (ext_forward_keyevent_fr, (char *) p, _Xi18nNeedSwap (i18n_core, connect_id)); /* get data */ FrameMgrGetToken (fm, input_method_ID); FrameMgrGetToken (fm, forward->icid); FrameMgrGetToken (fm, forward->sync_bit); FrameMgrGetToken (fm, forward->serial_number); FrameMgrGetToken (fm, type); FrameMgrGetToken (fm, keycode); FrameMgrGetToken (fm, state); FrameMgrGetToken (fm, ev_time); FrameMgrGetToken (fm, window); FrameMgrFree (fm); if (type != KeyPress) { _Xi18nSendMessage (ims, connect_id, XIM_ERROR, 0, 0, 0); return; } /*endif*/ /* make a faked keypress event */ ev->type = (int)type; ev->xany.send_event = True; ev->xany.display = i18n_core->address.dpy; ev->xany.serial = (unsigned long) forward->serial_number; ((XKeyEvent *) ev)->keycode = (unsigned int) keycode; ((XKeyEvent *) ev)->state = (unsigned int) state; ((XKeyEvent *) ev)->time = (Time) ev_time; ((XKeyEvent *) ev)->window = (Window) window; ((XKeyEvent *) ev)->root = DefaultRootWindow (ev->xany.display); ((XKeyEvent *) ev)->x = 0; ((XKeyEvent *) ev)->y = 0; ((XKeyEvent *) ev)->x_root = 0; ((XKeyEvent *) ev)->y_root = 0; if (i18n_core->address.improto) { if (!(i18n_core->address.improto (ims, call_data))) return; /*endif*/ } /*endif*/ } static void ExtMoveMessageProc (XIMS ims, IMProtocol *call_data, unsigned char *p) { Xi18n i18n_core = ims->protocol; FrameMgr fm; extern XimFrameRec ext_move_fr[]; IMMoveStruct *extmove = (IMMoveStruct*) & call_data->extmove; CARD16 connect_id = call_data->any.connect_id; CARD16 input_method_ID; fm = FrameMgrInit (ext_move_fr, (char *) p, _Xi18nNeedSwap (i18n_core, connect_id)); /* get data */ FrameMgrGetToken (fm, input_method_ID); FrameMgrGetToken (fm, extmove->icid); FrameMgrGetToken (fm, extmove->x); FrameMgrGetToken (fm, extmove->y); FrameMgrFree (fm); if (i18n_core->address.improto) { if (!(i18n_core->address.improto (ims, call_data))) return; /*endif*/ } /*endif*/ } static void ExtensionMessageProc (XIMS ims, IMProtocol *call_data, unsigned char *p) { switch (call_data->any.minor_code) { case XIM_EXT_FORWARD_KEYEVENT: ExtForwardKeyEventMessageProc (ims, call_data, p); break; case XIM_EXT_MOVE: ExtMoveMessageProc (ims, call_data, p); break; } /*endswitch*/ } static void TriggerNotifyMessageProc (XIMS ims, IMProtocol *call_data, unsigned char *p) { Xi18n i18n_core = ims->protocol; FrameMgr fm; extern XimFrameRec trigger_notify_fr[], trigger_notify_reply_fr[]; register int total_size; unsigned char *reply = NULL; IMTriggerNotifyStruct *trigger = (IMTriggerNotifyStruct *) &call_data->triggernotify; CARD16 connect_id = call_data->any.connect_id; CARD16 input_method_ID; CARD32 flag; fm = FrameMgrInit (trigger_notify_fr, (char *) p, _Xi18nNeedSwap (i18n_core, connect_id)); /* get data */ FrameMgrGetToken (fm, input_method_ID); FrameMgrGetToken (fm, trigger->icid); FrameMgrGetToken (fm, trigger->flag); FrameMgrGetToken (fm, trigger->key_index); FrameMgrGetToken (fm, trigger->event_mask); /* In order to support Front End Method, this event_mask must be saved per clients so that it should be restored by an XIM_EXT_SET_EVENT_MASK call when preediting mode is reset to off. */ flag = trigger->flag; FrameMgrFree (fm); fm = FrameMgrInit (trigger_notify_reply_fr, NULL, _Xi18nNeedSwap (i18n_core, connect_id)); total_size = FrameMgrGetTotalSize (fm); reply = (unsigned char *) malloc (total_size); if (!reply) { _Xi18nSendMessage (ims, connect_id, XIM_ERROR, 0, 0, 0); return; } /*endif*/ memset (reply, 0, total_size); FrameMgrSetBuffer (fm, reply); FrameMgrPutToken (fm, input_method_ID); FrameMgrPutToken (fm, trigger->icid); /* NOTE: XIM_TRIGGER_NOTIFY_REPLY should be sent before XIM_SET_EVENT_MASK in case of XIM_TRIGGER_NOTIFY(flag == ON), while it should be sent after XIM_SET_EVENT_MASK in case of XIM_TRIGGER_NOTIFY(flag == OFF). */ if (flag == 0) { /* on key */ _Xi18nSendMessage (ims, connect_id, XIM_TRIGGER_NOTIFY_REPLY, 0, reply, total_size); IMPreeditStart (ims, (XPointer)call_data); } /*endif*/ if (i18n_core->address.improto) { if (!(i18n_core->address.improto(ims, call_data))) return; /*endif*/ } /*endif*/ if (flag == 1) { /* off key */ IMPreeditEnd (ims, (XPointer) call_data); _Xi18nSendMessage (ims, connect_id, XIM_TRIGGER_NOTIFY_REPLY, 0, reply, total_size); } /*endif*/ FrameMgrFree (fm); XFree (reply); } static INT16 ChooseEncoding (Xi18n i18n_core, IMEncodingNegotiationStruct *enc_nego) { Xi18nAddressRec *address = (Xi18nAddressRec *) & i18n_core->address; XIMEncodings *p; int i, j; int enc_index=0; p = (XIMEncodings *) &address->encoding_list; for (i = 0; i < (int) p->count_encodings; i++) { for (j = 0; j < (int) enc_nego->encoding_number; j++) { if (strcmp (p->supported_encodings[i], enc_nego->encoding[j].name) == 0) { enc_index = j; break; } /*endif*/ } /*endfor*/ } /*endfor*/ return (INT16) enc_index; #if 0 return (INT16) XIM_Default_Encoding_IDX; #endif } static void EncodingNegotiatonMessageProc (XIMS ims, IMProtocol *call_data, unsigned char *p) { Xi18n i18n_core = ims->protocol; FrameMgr fm; FmStatus status; CARD16 byte_length; extern XimFrameRec encoding_negotiation_fr[]; extern XimFrameRec encoding_negotiation_reply_fr[]; register int i, total_size; unsigned char *reply = NULL; IMEncodingNegotiationStruct *enc_nego = (IMEncodingNegotiationStruct *) &call_data->encodingnego; CARD16 connect_id = call_data->any.connect_id; CARD16 input_method_ID; fm = FrameMgrInit (encoding_negotiation_fr, (char *) p, _Xi18nNeedSwap (i18n_core, connect_id)); FrameMgrGetToken (fm, input_method_ID); /* get ENCODING STR field */ FrameMgrGetToken (fm, byte_length); if (byte_length > 0) { enc_nego->encoding = (XIMStr *) malloc (sizeof (XIMStr)*10); memset (enc_nego->encoding, 0, sizeof (XIMStr)*10); i = 0; while (FrameMgrIsIterLoopEnd (fm, &status) == False) { char *name; int str_length; FrameMgrGetToken (fm, str_length); FrameMgrSetSize (fm, str_length); enc_nego->encoding[i].length = str_length; FrameMgrGetToken (fm, name); enc_nego->encoding[i].name = malloc (str_length + 1); strncpy (enc_nego->encoding[i].name, name, str_length); enc_nego->encoding[i].name[str_length] = '\0'; i++; } /*endwhile*/ enc_nego->encoding_number = i; } /*endif*/ /* get ENCODING INFO field */ FrameMgrGetToken (fm, byte_length); if (byte_length > 0) { enc_nego->encodinginfo = (XIMStr *) malloc (sizeof (XIMStr)*10); memset (enc_nego->encoding, 0, sizeof (XIMStr)*10); i = 0; while (FrameMgrIsIterLoopEnd (fm, &status) == False) { char *name; int str_length; FrameMgrGetToken (fm, str_length); FrameMgrSetSize (fm, str_length); enc_nego->encodinginfo[i].length = str_length; FrameMgrGetToken (fm, name); enc_nego->encodinginfo[i].name = malloc (str_length + 1); strncpy (enc_nego->encodinginfo[i].name, name, str_length); enc_nego->encodinginfo[i].name[str_length] = '\0'; i++; } /*endwhile*/ enc_nego->encoding_info_number = i; } /*endif*/ enc_nego->enc_index = ChooseEncoding (i18n_core, enc_nego); enc_nego->category = 0; #ifdef PROTOCOL_RICH if (i18n_core->address.improto) { if (!(i18n_core->address.improto(ims, call_data))) return; /*endif*/ } /*endif*/ #endif /* PROTOCOL_RICH */ FrameMgrFree (fm); fm = FrameMgrInit (encoding_negotiation_reply_fr, NULL, _Xi18nNeedSwap (i18n_core, connect_id)); total_size = FrameMgrGetTotalSize (fm); reply = (unsigned char *) malloc (total_size); if (!reply) { _Xi18nSendMessage (ims, connect_id, XIM_ERROR, 0, 0, 0); return; } /*endif*/ memset (reply, 0, total_size); FrameMgrSetBuffer (fm, reply); FrameMgrPutToken (fm, input_method_ID); FrameMgrPutToken (fm, enc_nego->category); FrameMgrPutToken (fm, enc_nego->enc_index); _Xi18nSendMessage (ims, connect_id, XIM_ENCODING_NEGOTIATION_REPLY, 0, reply, total_size); XFree (reply); /* free data for encoding list */ if (enc_nego->encoding) { for (i = 0; i < (int) enc_nego->encoding_number; i++) XFree (enc_nego->encoding[i].name); /*endfor*/ XFree (enc_nego->encoding); } /*endif*/ if (enc_nego->encodinginfo) { for (i = 0; i < (int) enc_nego->encoding_info_number; i++) XFree (enc_nego->encodinginfo[i].name); /*endfor*/ XFree (enc_nego->encodinginfo); } /*endif*/ FrameMgrFree (fm); } void PreeditStartReplyMessageProc (XIMS ims, IMProtocol *call_data, unsigned char *p) { Xi18n i18n_core = ims->protocol; FrameMgr fm; extern XimFrameRec preedit_start_reply_fr[]; IMPreeditCBStruct *preedit_CB = (IMPreeditCBStruct *) &call_data->preedit_callback; CARD16 connect_id = call_data->any.connect_id; CARD16 input_method_ID; fm = FrameMgrInit (preedit_start_reply_fr, (char *) p, _Xi18nNeedSwap (i18n_core, connect_id)); /* get data */ FrameMgrGetToken (fm, input_method_ID); FrameMgrGetToken (fm, preedit_CB->icid); FrameMgrGetToken (fm, preedit_CB->todo.return_value); FrameMgrFree (fm); if (i18n_core->address.improto) { if (!(i18n_core->address.improto (ims, call_data))) return; /*endif*/ } /*endif*/ } void PreeditCaretReplyMessageProc (XIMS ims, IMProtocol *call_data, unsigned char *p) { Xi18n i18n_core = ims->protocol; FrameMgr fm; extern XimFrameRec preedit_caret_reply_fr[]; IMPreeditCBStruct *preedit_CB = (IMPreeditCBStruct *) &call_data->preedit_callback; XIMPreeditCaretCallbackStruct *caret = (XIMPreeditCaretCallbackStruct *) & preedit_CB->todo.caret; CARD16 connect_id = call_data->any.connect_id; CARD16 input_method_ID; fm = FrameMgrInit (preedit_caret_reply_fr, (char *) p, _Xi18nNeedSwap (i18n_core, connect_id)); /* get data */ FrameMgrGetToken (fm, input_method_ID); FrameMgrGetToken (fm, preedit_CB->icid); FrameMgrGetToken (fm, caret->position); FrameMgrFree (fm); if (i18n_core->address.improto) { if (!(i18n_core->address.improto(ims, call_data))) return; /*endif*/ } /*endif*/ } void StrConvReplyMessageProc (XIMS ims, IMProtocol *call_data, unsigned char *p) { return; } static void AddQueue (Xi18nClient *client, unsigned char *p) { XIMPending *new; XIMPending *last; if ((new = (XIMPending *) malloc (sizeof (XIMPending))) == NULL) return; /*endif*/ new->p = p; new->next = (XIMPending *) NULL; if (!client->pending) { client->pending = new; } else { for (last = client->pending; last->next; last = last->next) ; /*endfor*/ last->next = new; } /*endif*/ return; } static void ProcessQueue (XIMS ims, CARD16 connect_id) { Xi18n i18n_core = ims->protocol; Xi18nClient *client = (Xi18nClient *) _Xi18nFindClient (i18n_core, connect_id); while (client->sync == False && client->pending) { XimProtoHdr *hdr = (XimProtoHdr *) client->pending->p; unsigned char *p1 = (unsigned char *) (hdr + 1); IMProtocol call_data; call_data.major_code = hdr->major_opcode; call_data.any.minor_code = hdr->minor_opcode; call_data.any.connect_id = connect_id; switch (hdr->major_opcode) { case XIM_FORWARD_EVENT: ForwardEventMessageProc(ims, &call_data, p1); break; } /*endswitch*/ XFree (hdr); { XIMPending *old = client->pending; client->pending = old->next; XFree (old); } } /*endwhile*/ return; } void _Xi18nMessageHandler (XIMS ims, CARD16 connect_id, unsigned char *p, Bool *delete) { XimProtoHdr *hdr = (XimProtoHdr *)p; unsigned char *p1 = (unsigned char *)(hdr + 1); IMProtocol call_data; Xi18n i18n_core = ims->protocol; Xi18nClient *client; client = (Xi18nClient *) _Xi18nFindClient (i18n_core, connect_id); if (hdr == (XimProtoHdr *) NULL) return; /*endif*/ memset (&call_data, 0, sizeof(IMProtocol)); call_data.major_code = hdr->major_opcode; call_data.any.minor_code = hdr->minor_opcode; call_data.any.connect_id = connect_id; switch (call_data.major_code) { case XIM_CONNECT: #ifdef XIM_DEBUG DebugLog("-- XIM_CONNECT\n"); #endif ConnectMessageProc (ims, &call_data, p1); break; case XIM_DISCONNECT: #ifdef XIM_DEBUG DebugLog("-- XIM_DISCONNECT\n"); #endif DisConnectMessageProc (ims, &call_data); break; case XIM_OPEN: #ifdef XIM_DEBUG DebugLog("-- XIM_OPEN\n"); #endif OpenMessageProc (ims, &call_data, p1); break; case XIM_CLOSE: #ifdef XIM_DEBUG DebugLog("-- XIM_CLOSE\n"); #endif CloseMessageProc (ims, &call_data, p1); break; case XIM_QUERY_EXTENSION: #ifdef XIM_DEBUG DebugLog("-- XIM_QUERY_EXTENSION\n"); #endif QueryExtensionMessageProc (ims, &call_data, p1); break; case XIM_GET_IM_VALUES: #ifdef XIM_DEBUG DebugLog("-- XIM_GET_IM_VALUES\n"); #endif GetIMValuesMessageProc (ims, &call_data, p1); break; case XIM_CREATE_IC: #ifdef XIM_DEBUG DebugLog("-- XIM_CREATE_IC\n"); #endif CreateICMessageProc (ims, &call_data, p1); break; case XIM_SET_IC_VALUES: #ifdef XIM_DEBUG DebugLog("-- XIM_SET_IC_VALUES\n"); #endif SetICValuesMessageProc (ims, &call_data, p1); break; case XIM_GET_IC_VALUES: #ifdef XIM_DEBUG DebugLog("-- XIM_GET_IC_VALUES\n"); #endif GetICValuesMessageProc (ims, &call_data, p1); break; case XIM_SET_IC_FOCUS: #ifdef XIM_DEBUG DebugLog("-- XIM_SET_IC_FOCUS\n"); #endif SetICFocusMessageProc (ims, &call_data, p1); break; case XIM_UNSET_IC_FOCUS: #ifdef XIM_DEBUG DebugLog("-- XIM_UNSET_IC_FOCUS\n"); #endif UnsetICFocusMessageProc (ims, &call_data, p1); break; case XIM_DESTROY_IC: #ifdef XIM_DEBUG DebugLog("-- XIM_DESTROY_IC\n"); #endif DestroyICMessageProc (ims, &call_data, p1); break; case XIM_RESET_IC: #ifdef XIM_DEBUG DebugLog("-- XIM_RESET_IC\n"); #endif ResetICMessageProc (ims, &call_data, p1); break; case XIM_FORWARD_EVENT: #ifdef XIM_DEBUG DebugLog("-- XIM_FORWARD_EVENT\n"); #endif if (client->sync == True) { AddQueue (client, p); *delete = False; } else { ForwardEventMessageProc (ims, &call_data, p1); } break; case XIM_EXTENSION: #ifdef XIM_DEBUG DebugLog("-- XIM_EXTENSION\n"); #endif ExtensionMessageProc (ims, &call_data, p1); break; case XIM_SYNC: #ifdef XIM_DEBUG DebugLog("-- XIM_SYNC\n"); #endif break; case XIM_SYNC_REPLY: #ifdef XIM_DEBUG DebugLog("-- XIM_SYNC_REPLY\n"); #endif SyncReplyMessageProc (ims, &call_data, p1); ProcessQueue (ims, connect_id); break; case XIM_TRIGGER_NOTIFY: #ifdef XIM_DEBUG DebugLog("-- XIM_TRIGGER_NOTIFY\n"); #endif TriggerNotifyMessageProc (ims, &call_data, p1); break; case XIM_ENCODING_NEGOTIATION: #ifdef XIM_DEBUG DebugLog("-- XIM_ENCODING_NEGOTIATION\n"); #endif EncodingNegotiatonMessageProc (ims, &call_data, p1); break; case XIM_PREEDIT_START_REPLY: #ifdef XIM_DEBUG DebugLog("-- XIM_PREEDIT_START_REPLY\n"); #endif PreeditStartReplyMessageProc (ims, &call_data, p1); break; case XIM_PREEDIT_CARET_REPLY: #ifdef XIM_DEBUG DebugLog("-- XIM_PREEDIT_CARET_REPLY\n"); #endif PreeditCaretReplyMessageProc (ims, &call_data, p1); break; case XIM_STR_CONVERSION_REPLY: #ifdef XIM_DEBUG DebugLog("-- XIM_STR_CONVERSION_REPLY\n"); #endif StrConvReplyMessageProc (ims, &call_data, p1); break; } /*endswitch*/ } scim-1.4.14/modules/FrontEnd/IMdkit/i18nUtil.c000066400000000000000000000207341177210725600207030ustar00rootroot00000000000000/****************************************************************** Copyright 1994, 1995 by Sun Microsystems, Inc. Copyright 1993, 1994 by Hewlett-Packard Company Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of Sun Microsystems, Inc. and Hewlett-Packard not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. Sun Microsystems, Inc. and Hewlett-Packard make no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty. SUN MICROSYSTEMS INC. AND HEWLETT-PACKARD COMPANY DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SUN MICROSYSTEMS, INC. AND HEWLETT-PACKARD COMPANY BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. Author: Hidetoshi Tajima(tajima@Eng.Sun.COM) Sun Microsystems, Inc. This version tidied and debugged by Steve Underwood May 1999 ******************************************************************/ #include #include "IMdkit.h" #include "Xi18n.h" #include "FrameMgr.h" #include "XimFunc.h" Xi18nClient *_Xi18nFindClient (Xi18n, CARD16); int _Xi18nNeedSwap (Xi18n i18n_core, CARD16 connect_id) { CARD8 im_byteOrder = i18n_core->address.im_byteOrder; Xi18nClient *client = _Xi18nFindClient (i18n_core, connect_id); return (client->byte_order != im_byteOrder); } Xi18nClient *_Xi18nNewClient(Xi18n i18n_core) { static CARD16 connect_id = 0; int new_connect_id; Xi18nClient *client; if (i18n_core->address.free_clients) { client = i18n_core->address.free_clients; i18n_core->address.free_clients = client->next; new_connect_id = client->connect_id; } else { client = (Xi18nClient *) malloc (sizeof (Xi18nClient)); new_connect_id = ++connect_id; } /*endif*/ memset (client, 0, sizeof (Xi18nClient)); client->connect_id = new_connect_id; client->pending = (XIMPending *) NULL; client->sync = False; client->byte_order = '?'; /* initial value */ memset (&client->pending, 0, sizeof (XIMPending *)); client->property_offset = 0; client->next = i18n_core->address.clients; i18n_core->address.clients = client; return (Xi18nClient *) client; } Xi18nClient *_Xi18nFindClient (Xi18n i18n_core, CARD16 connect_id) { Xi18nClient *client = i18n_core->address.clients; while (client) { if (client->connect_id == connect_id) return client; /*endif*/ client = client->next; } /*endwhile*/ return NULL; } void _Xi18nDeleteClient (Xi18n i18n_core, CARD16 connect_id) { Xi18nClient *target = _Xi18nFindClient (i18n_core, connect_id); Xi18nClient *ccp; Xi18nClient *ccp0; for (ccp = i18n_core->address.clients, ccp0 = NULL; ccp != NULL; ccp0 = ccp, ccp = ccp->next) { if (ccp == target) { if (ccp0 == NULL) i18n_core->address.clients = ccp->next; else ccp0->next = ccp->next; /*endif*/ /* put it back to free list */ target->next = i18n_core->address.free_clients; i18n_core->address.free_clients = target; return; } /*endif*/ } /*endfor*/ } void _Xi18nSendMessage (XIMS ims, CARD16 connect_id, CARD8 major_opcode, CARD8 minor_opcode, unsigned char *data, long length) { Xi18n i18n_core = ims->protocol; FrameMgr fm; extern XimFrameRec packet_header_fr[]; unsigned char *reply_hdr = NULL; int header_size; unsigned char *reply = NULL; unsigned char *replyp; int reply_length; long p_len = length/4; fm = FrameMgrInit (packet_header_fr, NULL, _Xi18nNeedSwap (i18n_core, connect_id)); header_size = FrameMgrGetTotalSize (fm); reply_hdr = (unsigned char *) malloc (header_size); if (reply_hdr == NULL) { _Xi18nSendMessage (ims, connect_id, XIM_ERROR, 0, 0, 0); return; } /*endif*/ FrameMgrSetBuffer (fm, reply_hdr); /* put data */ FrameMgrPutToken (fm, major_opcode); FrameMgrPutToken (fm, minor_opcode); FrameMgrPutToken (fm, p_len); reply_length = header_size + length; reply = (unsigned char *) malloc (reply_length); replyp = reply; memmove (reply, reply_hdr, header_size); replyp += header_size; memmove (replyp, data, length); i18n_core->methods.send (ims, connect_id, reply, reply_length); XFree (reply); XFree (reply_hdr); FrameMgrFree (fm); } void _Xi18nSendTriggerKey (XIMS ims, CARD16 connect_id) { Xi18n i18n_core = ims->protocol; FrameMgr fm; extern XimFrameRec register_triggerkeys_fr[]; XIMTriggerKey *on_keys = i18n_core->address.on_keys.keylist; XIMTriggerKey *off_keys = i18n_core->address.off_keys.keylist; int on_key_num = i18n_core->address.on_keys.count_keys; int off_key_num = i18n_core->address.off_keys.count_keys; unsigned char *reply = NULL; register int i, total_size; CARD16 im_id; if (on_key_num == 0 && off_key_num == 0) return; /*endif*/ fm = FrameMgrInit (register_triggerkeys_fr, NULL, _Xi18nNeedSwap (i18n_core, connect_id)); /* set iteration count for on-keys list */ FrameMgrSetIterCount (fm, on_key_num); /* set iteration count for off-keys list */ FrameMgrSetIterCount (fm, off_key_num); /* get total_size */ total_size = FrameMgrGetTotalSize (fm); reply = (unsigned char *) malloc (total_size); if (!reply) return; /*endif*/ memset (reply, 0, total_size); FrameMgrSetBuffer (fm, reply); /* Right now XIM_OPEN_REPLY hasn't been sent to this new client, so the input-method-id is still invalid, and should be set to zero... Reter to $(XC)/lib/X11/imDefLkup.c:_XimRegisterTriggerKeysCallback */ im_id = 0; FrameMgrPutToken (fm, im_id); /* input-method-id */ for (i = 0; i < on_key_num; i++) { FrameMgrPutToken (fm, on_keys[i].keysym); FrameMgrPutToken (fm, on_keys[i].modifier); FrameMgrPutToken (fm, on_keys[i].modifier_mask); } /*endfor*/ for (i = 0; i < off_key_num; i++) { FrameMgrPutToken (fm, off_keys[i].keysym); FrameMgrPutToken (fm, off_keys[i].modifier); FrameMgrPutToken (fm, off_keys[i].modifier_mask); } /*endfor*/ _Xi18nSendMessage (ims, connect_id, XIM_REGISTER_TRIGGERKEYS, 0, reply, total_size); FrameMgrFree (fm); XFree(reply); } void _Xi18nSetEventMask (XIMS ims, CARD16 connect_id, CARD16 im_id, CARD16 ic_id, CARD32 forward_mask, CARD32 sync_mask) { Xi18n i18n_core = ims->protocol; FrameMgr fm; extern XimFrameRec set_event_mask_fr[]; unsigned char *reply = NULL; register int total_size; fm = FrameMgrInit (set_event_mask_fr, NULL, _Xi18nNeedSwap (i18n_core, connect_id)); total_size = FrameMgrGetTotalSize (fm); reply = (unsigned char *) malloc (total_size); if (!reply) return; /*endif*/ memset (reply, 0, total_size); FrameMgrSetBuffer (fm, reply); FrameMgrPutToken (fm, im_id); /* input-method-id */ FrameMgrPutToken (fm, ic_id); /* input-context-id */ FrameMgrPutToken (fm, forward_mask); FrameMgrPutToken (fm, sync_mask); _Xi18nSendMessage (ims, connect_id, XIM_SET_EVENT_MASK, 0, reply, total_size); FrameMgrFree (fm); XFree(reply); } scim-1.4.14/modules/FrontEnd/IMdkit/i18nX.c000066400000000000000000000417301177210725600201740ustar00rootroot00000000000000/****************************************************************** Copyright 1994, 1995 by Sun Microsystems, Inc. Copyright 1993, 1994 by Hewlett-Packard Company Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of Sun Microsystems, Inc. and Hewlett-Packard not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. Sun Microsystems, Inc. and Hewlett-Packard make no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty. SUN MICROSYSTEMS INC. AND HEWLETT-PACKARD COMPANY DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SUN MICROSYSTEMS, INC. AND HEWLETT-PACKARD COMPANY BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. Author: Hidetoshi Tajima(tajima@Eng.Sun.COM) Sun Microsystems, Inc. This version tidied and debugged by Steve Underwood May 1999 ******************************************************************/ #include #include #include #include "FrameMgr.h" #include "IMdkit.h" #include "Xi18n.h" #include "Xi18nX.h" #include "XimFunc.h" extern Xi18nClient *_Xi18nFindClient(Xi18n, CARD16); extern Xi18nClient *_Xi18nNewClient(Xi18n); extern void _Xi18nDeleteClient(Xi18n, CARD16); static Bool WaitXConnectMessage(Display*, Window, XEvent*, XPointer); static Bool WaitXIMProtocol(Display*, Window, XEvent*, XPointer); static XClient *NewXClient (Xi18n i18n_core, Window new_client) { Display *dpy = i18n_core->address.dpy; Xi18nClient *client = _Xi18nNewClient (i18n_core); XClient *x_client; x_client = (XClient *) malloc (sizeof (XClient)); x_client->client_win = new_client; x_client->accept_win = XCreateSimpleWindow (dpy, DefaultRootWindow(dpy), 0, 0, 1, 1, 1, 0, 0); client->trans_rec = x_client; return ((XClient *) x_client); } static unsigned char *ReadXIMMessage (XIMS ims, XClientMessageEvent *ev, int *connect_id) { Xi18n i18n_core = ims->protocol; Xi18nClient *client = i18n_core->address.clients; XClient *x_client = NULL; FrameMgr fm; extern XimFrameRec packet_header_fr[]; unsigned char *p = NULL; unsigned char *p1; while (client != NULL) { x_client = (XClient *) client->trans_rec; if (x_client->accept_win == ev->window) { *connect_id = client->connect_id; break; } client = client->next; } if (ev->format == 8) { /* ClientMessage only */ XimProtoHdr *hdr = (XimProtoHdr *) ev->data.b; unsigned char *rec = (unsigned char *) (hdr + 1); register int total_size; CARD8 major_opcode; CARD8 minor_opcode; CARD16 length; extern int _Xi18nNeedSwap (Xi18n, CARD16); if (client->byte_order == '?') { if (hdr->major_opcode != XIM_CONNECT) return (unsigned char *) NULL; /* can do nothing */ client->byte_order = (CARD8) rec[0]; } fm = FrameMgrInit (packet_header_fr, (char *) hdr, _Xi18nNeedSwap (i18n_core, *connect_id)); total_size = FrameMgrGetTotalSize (fm); /* get data */ FrameMgrGetToken (fm, major_opcode); FrameMgrGetToken (fm, minor_opcode); FrameMgrGetToken (fm, length); FrameMgrFree (fm); if ((p = (unsigned char *) malloc (total_size + length * 4)) == NULL) return (unsigned char *) NULL; p1 = p; memmove (p1, &major_opcode, sizeof (CARD8)); p1 += sizeof (CARD8); memmove (p1, &minor_opcode, sizeof (CARD8)); p1 += sizeof (CARD8); memmove (p1, &length, sizeof (CARD16)); p1 += sizeof (CARD16); memmove (p1, rec, length * 4); } else if (ev->format == 32) { /* ClientMessage and WindowProperty */ unsigned long length = (unsigned long) ev->data.l[0]; unsigned long get_length; Atom atom = (Atom) ev->data.l[1]; int return_code; Atom actual_type_ret; int actual_format_ret; unsigned long bytes_after_ret; unsigned char *prop; unsigned long nitems; /* Round up length to next 4 byte value. */ get_length = length + 3; if (get_length > LONG_MAX) get_length = LONG_MAX; get_length /= 4; if (get_length == 0) { fprintf(stderr, "%s: invalid length 0\n", __FUNCTION__); return NULL; } return_code = XGetWindowProperty (i18n_core->address.dpy, x_client->accept_win, atom, client->property_offset / 4, get_length, True, AnyPropertyType, &actual_type_ret, &actual_format_ret, &nitems, &bytes_after_ret, &prop); if (return_code != Success || actual_format_ret == 0 || nitems == 0) { if (return_code == Success) XFree (prop); client->property_offset = 0; return (unsigned char *) NULL; } /* Update the offset to read next time as needed */ if (bytes_after_ret > 0) client->property_offset += length; else client->property_offset = 0; switch (actual_format_ret) { case 8: case 16: case 32: length = nitems * actual_format_ret / 8; break; default: fprintf(stderr, "%s: unknown property return format: %d\n", __FUNCTION__, actual_format_ret); XFree(prop); client->property_offset = 0; return NULL; } /* if hit, it might be an error */ if ((p = (unsigned char *) malloc (length)) == NULL) return (unsigned char *) NULL; memmove (p, prop, length); XFree (prop); } return (unsigned char *) p; } static void ReadXConnectMessage (XIMS ims, XClientMessageEvent *ev) { Xi18n i18n_core = ims->protocol; XSpecRec *spec = (XSpecRec *) i18n_core->address.connect_addr; XEvent event; Display *dpy = i18n_core->address.dpy; Window new_client = ev->data.l[0]; CARD32 major_version = ev->data.l[1]; CARD32 minor_version = ev->data.l[2]; XClient *x_client = NewXClient (i18n_core, new_client); if (ev->window != i18n_core->address.im_window) return; /* incorrect connection request */ /*endif*/ if (major_version != 0 || minor_version != 0) { major_version = minor_version = 0; /* Only supporting only-CM & Property-with-CM method */ } /*endif*/ _XRegisterFilterByType (dpy, x_client->accept_win, ClientMessage, ClientMessage, WaitXIMProtocol, (XPointer)ims); event.xclient.type = ClientMessage; event.xclient.display = dpy; event.xclient.window = new_client; event.xclient.message_type = spec->connect_request; event.xclient.format = 32; event.xclient.data.l[0] = x_client->accept_win; event.xclient.data.l[1] = major_version; event.xclient.data.l[2] = minor_version; event.xclient.data.l[3] = XCM_DATA_LIMIT; XSendEvent (dpy, new_client, False, NoEventMask, &event); XFlush (dpy); } static Bool Xi18nXBegin (XIMS ims) { Xi18n i18n_core = ims->protocol; Display *dpy = i18n_core->address.dpy; XSpecRec *spec = (XSpecRec *) i18n_core->address.connect_addr; spec->xim_request = XInternAtom (i18n_core->address.dpy, _XIM_PROTOCOL, False); spec->connect_request = XInternAtom (i18n_core->address.dpy, _XIM_XCONNECT, False); _XRegisterFilterByType (dpy, i18n_core->address.im_window, ClientMessage, ClientMessage, WaitXConnectMessage, (XPointer)ims); return True; } static Bool Xi18nXEnd(XIMS ims) { Xi18n i18n_core = ims->protocol; Display *dpy = i18n_core->address.dpy; _XUnregisterFilter (dpy, i18n_core->address.im_window, WaitXConnectMessage, (XPointer)ims); return True; } static char *MakeNewAtom (CARD16 connect_id, char *atomName) { static int sequence = 0; sprintf (atomName, "_server%d_%d", connect_id, ((sequence > 20) ? (sequence = 0) : sequence++)); return atomName; } static Bool Xi18nXSend (XIMS ims, CARD16 connect_id, unsigned char *reply, long length) { Xi18n i18n_core = ims->protocol; Xi18nClient *client = _Xi18nFindClient (i18n_core, connect_id); XSpecRec *spec = (XSpecRec *) i18n_core->address.connect_addr; XClient *x_client = (XClient *) client->trans_rec; XEvent event; event.type = ClientMessage; event.xclient.window = x_client->client_win; event.xclient.message_type = spec->xim_request; if (length > XCM_DATA_LIMIT) { Atom atom; char atomName[16]; Atom actual_type_ret; int actual_format_ret; int return_code; unsigned long nitems_ret; unsigned long bytes_after_ret; unsigned char *win_data; event.xclient.format = 32; atom = XInternAtom (i18n_core->address.dpy, MakeNewAtom (connect_id, atomName), False); return_code = XGetWindowProperty (i18n_core->address.dpy, x_client->client_win, atom, 0L, 10000L, False, XA_STRING, &actual_type_ret, &actual_format_ret, &nitems_ret, &bytes_after_ret, &win_data); if (return_code != Success) return False; /*endif*/ if (win_data) XFree ((char *) win_data); /*endif*/ XChangeProperty (i18n_core->address.dpy, x_client->client_win, atom, XA_STRING, 8, PropModeAppend, (unsigned char *) reply, length); event.xclient.data.l[0] = length; event.xclient.data.l[1] = atom; } else { unsigned char buffer[XCM_DATA_LIMIT]; int i; event.xclient.format = 8; /* Clear unused field with NULL */ memmove(buffer, reply, length); for (i = length; i < XCM_DATA_LIMIT; i++) buffer[i] = (char) 0; /*endfor*/ length = XCM_DATA_LIMIT; memmove (event.xclient.data.b, buffer, length); } XSendEvent (i18n_core->address.dpy, x_client->client_win, False, NoEventMask, &event); XFlush (i18n_core->address.dpy); return True; } static Bool CheckCMEvent (Display *display, XEvent *event, XPointer xi18n_core) { Xi18n i18n_core = (Xi18n) ((void *) xi18n_core); XSpecRec *spec = (XSpecRec *) i18n_core->address.connect_addr; if ((event->type == ClientMessage) && (event->xclient.message_type == spec->xim_request)) { return True; } /*endif*/ return False; } static Bool Xi18nXWait (XIMS ims, CARD16 connect_id, CARD8 major_opcode, CARD8 minor_opcode) { Xi18n i18n_core = ims->protocol; XEvent event; Xi18nClient *client = _Xi18nFindClient (i18n_core, connect_id); XClient *x_client = (XClient *) client->trans_rec; for (;;) { unsigned char *packet; XimProtoHdr *hdr; int connect_id_ret; XIfEvent (i18n_core->address.dpy, &event, CheckCMEvent, (XPointer) i18n_core); if (event.xclient.window == x_client->accept_win) { if ((packet = ReadXIMMessage (ims, (XClientMessageEvent *) & event, &connect_id_ret)) == (unsigned char*) NULL) { return False; } /*endif*/ hdr = (XimProtoHdr *)packet; if ((hdr->major_opcode == major_opcode) && (hdr->minor_opcode == minor_opcode)) { return True; } else if (hdr->major_opcode == XIM_ERROR) { return False; } /*endif*/ } /*endif*/ } /*endfor*/ } static Bool Xi18nXDisconnect (XIMS ims, CARD16 connect_id) { Xi18n i18n_core = ims->protocol; Display *dpy = i18n_core->address.dpy; Xi18nClient *client = _Xi18nFindClient (i18n_core, connect_id); XClient *x_client = (XClient *) client->trans_rec; XDestroyWindow (dpy, x_client->accept_win); _XUnregisterFilter (dpy, x_client->accept_win, WaitXIMProtocol, (XPointer)ims); XFree (x_client); _Xi18nDeleteClient (i18n_core, connect_id); return True; } Bool _Xi18nCheckXAddress (Xi18n i18n_core, TransportSW *transSW, char *address) { XSpecRec *spec; if (!(spec = (XSpecRec *) malloc (sizeof (XSpecRec)))) return False; /*endif*/ i18n_core->address.connect_addr = (XSpecRec *) spec; i18n_core->methods.begin = Xi18nXBegin; i18n_core->methods.end = Xi18nXEnd; i18n_core->methods.send = Xi18nXSend; i18n_core->methods.wait = Xi18nXWait; i18n_core->methods.disconnect = Xi18nXDisconnect; return True; } static Bool WaitXConnectMessage (Display *dpy, Window win, XEvent *ev, XPointer client_data) { XIMS ims = (XIMS)client_data; Xi18n i18n_core = ims->protocol; XSpecRec *spec = (XSpecRec *) i18n_core->address.connect_addr; if (((XClientMessageEvent *) ev)->message_type == spec->connect_request) { ReadXConnectMessage (ims, (XClientMessageEvent *) ev); return True; } /*endif*/ return False; } static Bool WaitXIMProtocol (Display *dpy, Window win, XEvent *ev, XPointer client_data) { extern void _Xi18nMessageHandler (XIMS, CARD16, unsigned char *, Bool *); XIMS ims = (XIMS) client_data; Xi18n i18n_core = ims->protocol; XSpecRec *spec = (XSpecRec *) i18n_core->address.connect_addr; Bool delete = True; unsigned char *packet; int connect_id; if (((XClientMessageEvent *) ev)->message_type == spec->xim_request) { if ((packet = ReadXIMMessage (ims, (XClientMessageEvent *) ev, &connect_id)) == (unsigned char *) NULL) { return False; } /*endif*/ _Xi18nMessageHandler (ims, connect_id, packet, &delete); if (delete == True) XFree (packet); /*endif*/ return True; } /*endif*/ return False; } scim-1.4.14/modules/FrontEnd/Makefile.am000066400000000000000000000045731177210725600200000ustar00rootroot00000000000000## Makefile.am -- Process this file with automake to produce Makefile.in ## Copyright (C) 2002 James Su ## ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2, or (at your option) ## any later version. ## ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. MAINTAINERCLEANFILES = Makefile.in CLEANFILES = *.bak INCLUDES = -I$(top_builddir) \ -I$(top_builddir)/src \ -I$(top_srcdir) \ -I$(top_srcdir)/src \ -I$(top_srcdir)/intl \ -I$(top_srcdir)/data \ -I$(top_srcdir)/utils \ -I$(top_srcdir)/extras/panel \ -DSCIM_DATADIR=\"@SCIM_DATADIR@\" \ -DSCIM_LOCALEDIR=\"@SCIM_LOCALEDIR@\" \ -DSCIM_SYSCONFDIR=\"@SCIM_SYSCONFDIR@\" \ -DSCIM_LIBEXECDIR=\"@SCIM_LIBEXECDIR@\" \ -DSCIM_ICONDIR=\"@SCIM_ICONDIR@\" \ -DSCIM_MODULE_PATH=\"@SCIM_MODULE_PATH@\" if SCIM_BUILD_FRONTEND_X11 CONFIG_FRONTEND_X11_MODULE = x11.la SUBDIRS = IMdkit endif if SCIM_BUILD_FRONTEND_SOCKET CONFIG_FRONTEND_SOCKET_MODULE = socket.la endif noinst_HEADERS = scim_x11_ic.h \ scim_x11_frontend.h \ scim_socket_frontend.h moduledir = $(libdir)/scim@SCIM_EPOCH@/$(SCIM_BINARY_VERSION)/FrontEnd module_LTLIBRARIES = $(CONFIG_FRONTEND_X11_MODULE) \ $(CONFIG_FRONTEND_SOCKET_MODULE) x11_la_SOURCES = scim_x11_frontend.cpp \ scim_x11_ic.cpp x11_la_CFLAGS = @X_CFLAGS@ x11_la_CXXFLAGS = @X_CFLAGS@ x11_la_LDFLAGS = -avoid-version \ -rpath $(moduledir) \ -module \ @LIBTOOL_EXPORT_OPTIONS@ \ @X_LIBS@ \ @LTLIBINTL@ x11_la_LIBADD = IMdkit/libXimd.la \ $(top_builddir)/src/libscim@SCIM_EPOCH@.la \ $(top_builddir)/utils/libscim-x11utils@SCIM_EPOCH@.la socket_la_SOURCES = scim_socket_frontend.cpp socket_la_LDFLAGS = -avoid-version \ -rpath $(moduledir) \ -module \ @LIBTOOL_EXPORT_OPTIONS@ socket_la_LIBADD = $(top_builddir)/src/libscim@SCIM_EPOCH@.la scim-1.4.14/modules/FrontEnd/Makefile.in000066400000000000000000000760671177210725600200200ustar00rootroot00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = modules/FrontEnd DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(moduledir)" LTLIBRARIES = $(module_LTLIBRARIES) socket_la_DEPENDENCIES = $(top_builddir)/src/libscim@SCIM_EPOCH@.la am_socket_la_OBJECTS = scim_socket_frontend.lo socket_la_OBJECTS = $(am_socket_la_OBJECTS) socket_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(socket_la_LDFLAGS) $(LDFLAGS) -o $@ @SCIM_BUILD_FRONTEND_SOCKET_TRUE@am_socket_la_rpath = -rpath \ @SCIM_BUILD_FRONTEND_SOCKET_TRUE@ $(moduledir) x11_la_DEPENDENCIES = IMdkit/libXimd.la \ $(top_builddir)/src/libscim@SCIM_EPOCH@.la \ $(top_builddir)/utils/libscim-x11utils@SCIM_EPOCH@.la am_x11_la_OBJECTS = x11_la-scim_x11_frontend.lo x11_la-scim_x11_ic.lo x11_la_OBJECTS = $(am_x11_la_OBJECTS) x11_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(x11_la_CXXFLAGS) $(CXXFLAGS) \ $(x11_la_LDFLAGS) $(LDFLAGS) -o $@ @SCIM_BUILD_FRONTEND_X11_TRUE@am_x11_la_rpath = -rpath $(moduledir) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(socket_la_SOURCES) $(x11_la_SOURCES) DIST_SOURCES = $(socket_la_SOURCES) $(x11_la_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive HEADERS = $(noinst_HEADERS) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = IMdkit DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ ARGZ_H = @ARGZ_H@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CLUTTER_BINARY_VERSION = @CLUTTER_BINARY_VERSION@ CLUTTER_CFLAGS = @CLUTTER_CFLAGS@ CLUTTER_IMCONTEXT_LIBDIR = @CLUTTER_IMCONTEXT_LIBDIR@ CLUTTER_IM_MODULEDIR = @CLUTTER_IM_MODULEDIR@ CLUTTER_LIBDIR = @CLUTTER_LIBDIR@ CLUTTER_LIBS = @CLUTTER_LIBS@ CLUTTER_VERSION = @CLUTTER_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOCBOOK_XSL = @DOCBOOK_XSL@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@ GTHREAD2_LIBS = @GTHREAD2_LIBS@ GTK2_CFLAGS = @GTK2_CFLAGS@ GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@ GTK2_LIBS = @GTK2_LIBS@ GTK3_CFLAGS = @GTK3_CFLAGS@ GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@ GTK3_LIBS = @GTK3_LIBS@ GTK_BINARY_VERSION = @GTK_BINARY_VERSION@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBDIR = @GTK_LIBDIR@ GTK_LIBS = @GTK_LIBS@ GTK_MAJOR_VERSION = @GTK_MAJOR_VERSION@ GTK_VERSION = @GTK_VERSION@ HAVE_GRAPHVIZ = @HAVE_GRAPHVIZ@ INCLTDL = @INCLTDL@ INCLUDE_STDINT = @INCLUDE_STDINT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBLTDL = @LIBLTDL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_DEPS = @LIBTOOL_DEPS@ LIBTOOL_EXPORT_OPTIONS = @LIBTOOL_EXPORT_OPTIONS@ LIPO = @LIPO@ LN_S = @LN_S@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ QT3_CFLAGS = @QT3_CFLAGS@ QT3_IM_MODULEDIR = @QT3_IM_MODULEDIR@ QT3_LIBDIR = @QT3_LIBDIR@ QT3_LIBS = @QT3_LIBS@ QT3_MOC = @QT3_MOC@ QT3_PREFIX = @QT3_PREFIX@ QT4_CFLAGS = @QT4_CFLAGS@ QT4_IM_MODULEDIR = @QT4_IM_MODULEDIR@ QT4_LIBDIR = @QT4_LIBDIR@ QT4_LIBS = @QT4_LIBS@ QT4_MOC = @QT4_MOC@ QT4_PREFIX = @QT4_PREFIX@ RANLIB = @RANLIB@ SCIM_AGE = @SCIM_AGE@ SCIM_BINARY_VERSION = @SCIM_BINARY_VERSION@ SCIM_BRIDGE_MAJOR_VERSION = @SCIM_BRIDGE_MAJOR_VERSION@ SCIM_BRIDGE_MICRO_VERSION = @SCIM_BRIDGE_MICRO_VERSION@ SCIM_BRIDGE_MINOR_VERSION = @SCIM_BRIDGE_MINOR_VERSION@ SCIM_BRIDGE_VERSION = @SCIM_BRIDGE_VERSION@ SCIM_BUILD_CLUTTER_IMMODULE = @SCIM_BUILD_CLUTTER_IMMODULE@ SCIM_BUILD_CONFIG_SIMPLE = @SCIM_BUILD_CONFIG_SIMPLE@ SCIM_BUILD_CONFIG_SOCKET = @SCIM_BUILD_CONFIG_SOCKET@ SCIM_BUILD_DOCUMENTS = @SCIM_BUILD_DOCUMENTS@ SCIM_BUILD_FILTER_SCTC = @SCIM_BUILD_FILTER_SCTC@ SCIM_BUILD_FRONTEND_SOCKET = @SCIM_BUILD_FRONTEND_SOCKET@ SCIM_BUILD_FRONTEND_X11 = @SCIM_BUILD_FRONTEND_X11@ SCIM_BUILD_GTK2_IMMODULE = @SCIM_BUILD_GTK2_IMMODULE@ SCIM_BUILD_GTK3_IMMODULE = @SCIM_BUILD_GTK3_IMMODULE@ SCIM_BUILD_GTK_UTILS = @SCIM_BUILD_GTK_UTILS@ SCIM_BUILD_IMENGINE_RAWCODE = @SCIM_BUILD_IMENGINE_RAWCODE@ SCIM_BUILD_IMENGINE_SOCKET = @SCIM_BUILD_IMENGINE_SOCKET@ SCIM_BUILD_IMENGINE_TABLE = @SCIM_BUILD_IMENGINE_TABLE@ SCIM_BUILD_IMMODULE = @SCIM_BUILD_IMMODULE@ SCIM_BUILD_IM_AGENT = @SCIM_BUILD_IM_AGENT@ SCIM_BUILD_ORIG_GTK2_IMMODULE = @SCIM_BUILD_ORIG_GTK2_IMMODULE@ SCIM_BUILD_ORIG_GTK3_IMMODULE = @SCIM_BUILD_ORIG_GTK3_IMMODULE@ SCIM_BUILD_PANEL_GTK = @SCIM_BUILD_PANEL_GTK@ SCIM_BUILD_QT3_IMMODULE = @SCIM_BUILD_QT3_IMMODULE@ SCIM_BUILD_QT4_IMMODULE = @SCIM_BUILD_QT4_IMMODULE@ SCIM_BUILD_SCIM_SETUP = @SCIM_BUILD_SCIM_SETUP@ SCIM_BUILD_TESTS = @SCIM_BUILD_TESTS@ SCIM_BUILD_X11_UTILS = @SCIM_BUILD_X11_UTILS@ SCIM_CURRENT = @SCIM_CURRENT@ SCIM_DATADIR = @SCIM_DATADIR@ SCIM_EPOCH = @SCIM_EPOCH@ SCIM_ICONDIR = @SCIM_ICONDIR@ SCIM_LIBDIR = @SCIM_LIBDIR@ SCIM_LIBEXECDIR = @SCIM_LIBEXECDIR@ SCIM_LOCALEDIR = @SCIM_LOCALEDIR@ SCIM_LTDLADVISE = @SCIM_LTDLADVISE@ SCIM_MAJOR_VERSION = @SCIM_MAJOR_VERSION@ SCIM_MICRO_VERSION = @SCIM_MICRO_VERSION@ SCIM_MINOR_VERSION = @SCIM_MINOR_VERSION@ SCIM_MODULE_PATH = @SCIM_MODULE_PATH@ SCIM_PREFIX = @SCIM_PREFIX@ SCIM_REVISION = @SCIM_REVISION@ SCIM_SYSCONFDIR = @SCIM_SYSCONFDIR@ SCIM_TEMPDIR = @SCIM_TEMPDIR@ SCIM_VERSION = @SCIM_VERSION@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UINT16 = @UINT16@ UINT32 = @UINT32@ UINT64 = @UINT64@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XMKMF = @XMKMF@ XSLTPROC = @XSLTPROC@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_aux_dir = @ac_aux_dir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ MAINTAINERCLEANFILES = Makefile.in CLEANFILES = *.bak INCLUDES = -I$(top_builddir) \ -I$(top_builddir)/src \ -I$(top_srcdir) \ -I$(top_srcdir)/src \ -I$(top_srcdir)/intl \ -I$(top_srcdir)/data \ -I$(top_srcdir)/utils \ -I$(top_srcdir)/extras/panel \ -DSCIM_DATADIR=\"@SCIM_DATADIR@\" \ -DSCIM_LOCALEDIR=\"@SCIM_LOCALEDIR@\" \ -DSCIM_SYSCONFDIR=\"@SCIM_SYSCONFDIR@\" \ -DSCIM_LIBEXECDIR=\"@SCIM_LIBEXECDIR@\" \ -DSCIM_ICONDIR=\"@SCIM_ICONDIR@\" \ -DSCIM_MODULE_PATH=\"@SCIM_MODULE_PATH@\" @SCIM_BUILD_FRONTEND_X11_TRUE@CONFIG_FRONTEND_X11_MODULE = x11.la @SCIM_BUILD_FRONTEND_X11_TRUE@SUBDIRS = IMdkit @SCIM_BUILD_FRONTEND_SOCKET_TRUE@CONFIG_FRONTEND_SOCKET_MODULE = socket.la noinst_HEADERS = scim_x11_ic.h \ scim_x11_frontend.h \ scim_socket_frontend.h moduledir = $(libdir)/scim@SCIM_EPOCH@/$(SCIM_BINARY_VERSION)/FrontEnd module_LTLIBRARIES = $(CONFIG_FRONTEND_X11_MODULE) \ $(CONFIG_FRONTEND_SOCKET_MODULE) x11_la_SOURCES = scim_x11_frontend.cpp \ scim_x11_ic.cpp x11_la_CFLAGS = @X_CFLAGS@ x11_la_CXXFLAGS = @X_CFLAGS@ x11_la_LDFLAGS = -avoid-version \ -rpath $(moduledir) \ -module \ @LIBTOOL_EXPORT_OPTIONS@ \ @X_LIBS@ \ @LTLIBINTL@ x11_la_LIBADD = IMdkit/libXimd.la \ $(top_builddir)/src/libscim@SCIM_EPOCH@.la \ $(top_builddir)/utils/libscim-x11utils@SCIM_EPOCH@.la socket_la_SOURCES = scim_socket_frontend.cpp socket_la_LDFLAGS = -avoid-version \ -rpath $(moduledir) \ -module \ @LIBTOOL_EXPORT_OPTIONS@ socket_la_LIBADD = $(top_builddir)/src/libscim@SCIM_EPOCH@.la all: all-recursive .SUFFIXES: .SUFFIXES: .cpp .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu modules/FrontEnd/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu modules/FrontEnd/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-moduleLTLIBRARIES: $(module_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(moduledir)" || $(MKDIR_P) "$(DESTDIR)$(moduledir)" @list='$(module_LTLIBRARIES)'; test -n "$(moduledir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(moduledir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(moduledir)"; \ } uninstall-moduleLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(module_LTLIBRARIES)'; test -n "$(moduledir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(moduledir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(moduledir)/$$f"; \ done clean-moduleLTLIBRARIES: -test -z "$(module_LTLIBRARIES)" || rm -f $(module_LTLIBRARIES) @list='$(module_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done socket.la: $(socket_la_OBJECTS) $(socket_la_DEPENDENCIES) $(socket_la_LINK) $(am_socket_la_rpath) $(socket_la_OBJECTS) $(socket_la_LIBADD) $(LIBS) x11.la: $(x11_la_OBJECTS) $(x11_la_DEPENDENCIES) $(x11_la_LINK) $(am_x11_la_rpath) $(x11_la_OBJECTS) $(x11_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim_socket_frontend.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/x11_la-scim_x11_frontend.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/x11_la-scim_x11_ic.Plo@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cpp.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cpp.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< x11_la-scim_x11_frontend.lo: scim_x11_frontend.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(x11_la_CXXFLAGS) $(CXXFLAGS) -MT x11_la-scim_x11_frontend.lo -MD -MP -MF $(DEPDIR)/x11_la-scim_x11_frontend.Tpo -c -o x11_la-scim_x11_frontend.lo `test -f 'scim_x11_frontend.cpp' || echo '$(srcdir)/'`scim_x11_frontend.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/x11_la-scim_x11_frontend.Tpo $(DEPDIR)/x11_la-scim_x11_frontend.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='scim_x11_frontend.cpp' object='x11_la-scim_x11_frontend.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(x11_la_CXXFLAGS) $(CXXFLAGS) -c -o x11_la-scim_x11_frontend.lo `test -f 'scim_x11_frontend.cpp' || echo '$(srcdir)/'`scim_x11_frontend.cpp x11_la-scim_x11_ic.lo: scim_x11_ic.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(x11_la_CXXFLAGS) $(CXXFLAGS) -MT x11_la-scim_x11_ic.lo -MD -MP -MF $(DEPDIR)/x11_la-scim_x11_ic.Tpo -c -o x11_la-scim_x11_ic.lo `test -f 'scim_x11_ic.cpp' || echo '$(srcdir)/'`scim_x11_ic.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/x11_la-scim_x11_ic.Tpo $(DEPDIR)/x11_la-scim_x11_ic.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='scim_x11_ic.cpp' object='x11_la-scim_x11_ic.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(x11_la_CXXFLAGS) $(CXXFLAGS) -c -o x11_la-scim_x11_ic.lo `test -f 'scim_x11_ic.cpp' || echo '$(srcdir)/'`scim_x11_ic.cpp mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(moduledir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-recursive clean-am: clean-generic clean-libtool clean-moduleLTLIBRARIES \ mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-moduleLTLIBRARIES install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-moduleLTLIBRARIES .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ clean-moduleLTLIBRARIES ctags ctags-recursive distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-moduleLTLIBRARIES install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-recursive uninstall uninstall-am \ uninstall-moduleLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: scim-1.4.14/modules/FrontEnd/scim_socket_frontend.cpp000066400000000000000000001213671177210725600226530ustar00rootroot00000000000000/** @file scim_socket_frontend.cpp * implementation of class SocketFrontEnd. */ /* * Smart Common Input Method * * Copyright (c) 2002-2005 James Su * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this program; if not, write to the * Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, MA 02111-1307 USA * * $Id: scim_socket_frontend.cpp,v 1.37 2005/07/03 08:36:42 suzhe Exp $ * */ #define Uses_SCIM_CONFIG_PATH #define Uses_SCIM_FRONTEND #define Uses_SCIM_SOCKET #define Uses_SCIM_TRANSACTION #define Uses_STL_UTILITY #define Uses_C_STDIO #define Uses_C_STDLIB #include #include "scim_private.h" #include "scim.h" #include "scim_socket_frontend.h" #include #define scim_module_init socket_LTX_scim_module_init #define scim_module_exit socket_LTX_scim_module_exit #define scim_frontend_module_init socket_LTX_scim_frontend_module_init #define scim_frontend_module_run socket_LTX_scim_frontend_module_run #define SCIM_CONFIG_FRONTEND_SOCKET_CONFIG_READONLY "/FrontEnd/Socket/ConfigReadOnly" #define SCIM_CONFIG_FRONTEND_SOCKET_MAXCLIENTS "/FrontEnd/Socket/MaxClients" using namespace scim; static Pointer _scim_frontend (0); static int _argc; static char **_argv; //Module Interface extern "C" { void scim_module_init (void) { SCIM_DEBUG_FRONTEND(1) << "Initializing Socket FrontEnd module...\n"; } void scim_module_exit (void) { SCIM_DEBUG_FRONTEND(1) << "Exiting Socket FrontEnd module...\n"; _scim_frontend.reset (); } void scim_frontend_module_init (const BackEndPointer &backend, const ConfigPointer &config, int argc, char **argv) { if (_scim_frontend.null ()) { SCIM_DEBUG_FRONTEND(1) << "Initializing Socket FrontEnd module (more)...\n"; _scim_frontend = new SocketFrontEnd (backend, config); _argc = argc; _argv = argv; } } void scim_frontend_module_run (void) { if (!_scim_frontend.null ()) { SCIM_DEBUG_FRONTEND(1) << "Starting Socket FrontEnd module...\n"; _scim_frontend->init (_argc, _argv); _scim_frontend->run (); } } } SocketFrontEnd::SocketFrontEnd (const BackEndPointer &backend, const ConfigPointer &config) : FrontEndBase (backend), m_config (config), m_stay (true), m_config_readonly (false), m_socket_timeout (scim_get_default_socket_timeout ()), m_current_instance (-1), m_current_socket_client (-1), m_current_socket_client_key (0) { SCIM_DEBUG_FRONTEND (2) << " Constructing SocketFrontEnd object...\n"; } SocketFrontEnd::~SocketFrontEnd () { SCIM_DEBUG_FRONTEND (2) << " Destructing SocketFrontEnd object...\n"; if (m_socket_server.is_running ()) m_socket_server.shutdown (); } void SocketFrontEnd::show_preedit_string (int id) { if (m_current_instance == id) m_send_trans.put_command (SCIM_TRANS_CMD_SHOW_PREEDIT_STRING); } void SocketFrontEnd::show_aux_string (int id) { if (m_current_instance == id) m_send_trans.put_command (SCIM_TRANS_CMD_SHOW_AUX_STRING); } void SocketFrontEnd::show_lookup_table (int id) { if (m_current_instance == id) m_send_trans.put_command (SCIM_TRANS_CMD_SHOW_LOOKUP_TABLE); } void SocketFrontEnd::hide_preedit_string (int id) { if (m_current_instance == id) m_send_trans.put_command (SCIM_TRANS_CMD_HIDE_PREEDIT_STRING); } void SocketFrontEnd::hide_aux_string (int id) { if (m_current_instance == id) m_send_trans.put_command (SCIM_TRANS_CMD_HIDE_AUX_STRING); } void SocketFrontEnd::hide_lookup_table (int id) { if (m_current_instance == id) m_send_trans.put_command (SCIM_TRANS_CMD_HIDE_LOOKUP_TABLE); } void SocketFrontEnd::update_preedit_caret (int id, int caret) { if (m_current_instance == id) { m_send_trans.put_command (SCIM_TRANS_CMD_UPDATE_PREEDIT_CARET); m_send_trans.put_data ((uint32) caret); } } void SocketFrontEnd::update_preedit_string (int id, const WideString & str, const AttributeList & attrs) { if (m_current_instance == id) { m_send_trans.put_command (SCIM_TRANS_CMD_UPDATE_PREEDIT_STRING); m_send_trans.put_data (str); m_send_trans.put_data (attrs); } } void SocketFrontEnd::update_aux_string (int id, const WideString & str, const AttributeList & attrs) { if (m_current_instance == id) { m_send_trans.put_command (SCIM_TRANS_CMD_UPDATE_AUX_STRING); m_send_trans.put_data (str); m_send_trans.put_data (attrs); } } void SocketFrontEnd::commit_string (int id, const WideString & str) { if (m_current_instance == id) { m_send_trans.put_command (SCIM_TRANS_CMD_COMMIT_STRING); m_send_trans.put_data (str); } } void SocketFrontEnd::forward_key_event (int id, const KeyEvent & key) { if (m_current_instance == id) { m_send_trans.put_command (SCIM_TRANS_CMD_FORWARD_KEY_EVENT); m_send_trans.put_data (key); } } void SocketFrontEnd::update_lookup_table (int id, const LookupTable & table) { if (m_current_instance == id) { m_send_trans.put_command (SCIM_TRANS_CMD_UPDATE_LOOKUP_TABLE); m_send_trans.put_data (table); } } void SocketFrontEnd::register_properties (int id, const PropertyList &properties) { if (m_current_instance == id) { m_send_trans.put_command (SCIM_TRANS_CMD_REGISTER_PROPERTIES); m_send_trans.put_data (properties); } } void SocketFrontEnd::update_property (int id, const Property &property) { if (m_current_instance == id) { m_send_trans.put_command (SCIM_TRANS_CMD_UPDATE_PROPERTY); m_send_trans.put_data (property); } } void SocketFrontEnd::beep (int id) { if (m_current_instance == id) { m_send_trans.put_command (SCIM_TRANS_CMD_BEEP); } } void SocketFrontEnd::start_helper (int id, const String &helper_uuid) { SCIM_DEBUG_FRONTEND (2) << "start_helper (" << helper_uuid << ")\n"; if (m_current_instance == id) { m_send_trans.put_command (SCIM_TRANS_CMD_START_HELPER); m_send_trans.put_data (helper_uuid); } } void SocketFrontEnd::stop_helper (int id, const String &helper_uuid) { SCIM_DEBUG_FRONTEND (2) << "stop_helper (" << helper_uuid << ")\n"; if (m_current_instance == id) { m_send_trans.put_command (SCIM_TRANS_CMD_STOP_HELPER); m_send_trans.put_data (helper_uuid); } } void SocketFrontEnd::send_helper_event (int id, const String &helper_uuid, const Transaction &trans) { if (m_current_instance == id) { m_send_trans.put_command (SCIM_TRANS_CMD_SEND_HELPER_EVENT); m_send_trans.put_data (helper_uuid); m_send_trans.put_data (trans); } } bool SocketFrontEnd::get_surrounding_text (int id, WideString &text, int &cursor, int maxlen_before, int maxlen_after) { text.clear (); cursor = 0; if (m_current_instance == id && m_current_socket_client >= 0 && (maxlen_before != 0 || maxlen_after != 0)) { if (maxlen_before < 0) maxlen_before = -1; if (maxlen_after < 0) maxlen_after = -1; m_temp_trans.clear (); m_temp_trans.put_command (SCIM_TRANS_CMD_REPLY); m_temp_trans.put_command (SCIM_TRANS_CMD_GET_SURROUNDING_TEXT); m_temp_trans.put_data ((uint32) maxlen_before); m_temp_trans.put_data ((uint32) maxlen_after); Socket socket_client (m_current_socket_client); if (m_temp_trans.write_to_socket (socket_client) && m_temp_trans.read_from_socket (socket_client, m_socket_timeout)) { int cmd; uint32 key; uint32 cur; if (m_temp_trans.get_command (cmd) && cmd == SCIM_TRANS_CMD_REQUEST && m_temp_trans.get_data (key) && key == m_current_socket_client_key && m_temp_trans.get_command (cmd) && cmd == SCIM_TRANS_CMD_GET_SURROUNDING_TEXT && m_temp_trans.get_data (text) && m_temp_trans.get_data (cur)) { cursor = (int) cur; return true; } } } return false; } bool SocketFrontEnd::delete_surrounding_text (int id, int offset, int len) { if (m_current_instance == id && m_current_socket_client >= 0 && len > 0) { m_temp_trans.clear (); m_temp_trans.put_command (SCIM_TRANS_CMD_REPLY); m_temp_trans.put_command (SCIM_TRANS_CMD_DELETE_SURROUNDING_TEXT); m_temp_trans.put_data ((uint32) offset); m_temp_trans.put_data ((uint32) len); Socket socket_client (m_current_socket_client); if (m_temp_trans.write_to_socket (socket_client) && m_temp_trans.read_from_socket (socket_client, m_socket_timeout)) { int cmd; uint32 key; if (m_temp_trans.get_command (cmd) && cmd == SCIM_TRANS_CMD_REQUEST && m_temp_trans.get_data (key) && key == m_current_socket_client_key && m_temp_trans.get_command (cmd) && cmd == SCIM_TRANS_CMD_DELETE_SURROUNDING_TEXT && m_temp_trans.get_command (cmd) && cmd == SCIM_TRANS_CMD_OK) return true; } } return false; } void SocketFrontEnd::init (int argc, char **argv) { int max_clients = -1; if (!m_config.null ()) { String str; m_config_readonly = m_config->read (String (SCIM_CONFIG_FRONTEND_SOCKET_CONFIG_READONLY), false); max_clients = m_config->read (String (SCIM_CONFIG_FRONTEND_SOCKET_MAXCLIENTS), -1); m_config->signal_connect_reload (slot (this, &SocketFrontEnd::reload_config_callback)); } else { m_config_readonly = false; max_clients = -1; } if (!m_socket_server.create (scim_get_default_socket_frontend_address ())) throw FrontEndError ("SocketFrontEnd -- Cannot create SocketServer."); m_socket_server.set_max_clients (max_clients); m_socket_server.signal_connect_accept ( slot (this, &SocketFrontEnd::socket_accept_callback)); m_socket_server.signal_connect_receive ( slot (this, &SocketFrontEnd::socket_receive_callback)); m_socket_server.signal_connect_exception( slot (this, &SocketFrontEnd::socket_exception_callback)); if (argv && argc > 1) { for (int i = 1; i < argc && argv [i]; ++i) { if (String ("--no-stay") == argv [i]) m_stay = false; } } /** * initialize the random number generator. */ srand (time (0)); } void SocketFrontEnd::run () { if (m_socket_server.valid ()) m_socket_server.run (); } uint32 SocketFrontEnd::generate_key () const { return rand (); } bool SocketFrontEnd::check_client_connection (const Socket &client) const { SCIM_DEBUG_FRONTEND (1) << "check_client_connection (" << client.get_id () << ").\n"; unsigned char buf [sizeof(uint32)]; int nbytes = client.read_with_timeout (buf, sizeof(uint32), m_socket_timeout); if (nbytes == sizeof (uint32)) return true; if (nbytes < 0) { SCIM_DEBUG_FRONTEND (2) << " Error occurred when reading socket (" << client.get_id () << "):" << client.get_error_message () << "\n"; } else { SCIM_DEBUG_FRONTEND (2) << " Timeout when reading socket (" << client.get_id () << ").\n"; } return false; } void SocketFrontEnd::socket_accept_callback (SocketServer *server, const Socket &client) { SCIM_DEBUG_FRONTEND (1) << "socket_accept_callback (" << client.get_id () << ").\n"; } void SocketFrontEnd::socket_receive_callback (SocketServer *server, const Socket &client) { int id = client.get_id (); int cmd; uint32 key; ClientInfo client_info; SCIM_DEBUG_FRONTEND (1) << "socket_receive_callback (" << id << ").\n"; // Check if the client is closed. if (!check_client_connection (client)) { SCIM_DEBUG_FRONTEND (2) << " closing client connection.\n"; socket_close_connection (server, client); return; } client_info = socket_get_client_info (client); // If it's a new client, then request to open the connection first. if (client_info.type == UNKNOWN_CLIENT) { socket_open_connection (server, client); return; } // If can not read the transaction, // or the transaction is not started with SCIM_TRANS_CMD_REQUEST, // or the key is mismatch, // just return. if (!m_receive_trans.read_from_socket (client, m_socket_timeout) || !m_receive_trans.get_command (cmd) || cmd != SCIM_TRANS_CMD_REQUEST || !m_receive_trans.get_data (key) || key != (uint32) client_info.key) return; m_current_socket_client = id; m_current_socket_client_key = key; m_send_trans.clear (); m_send_trans.put_command (SCIM_TRANS_CMD_REPLY); // Move the read ptr to the end. m_send_trans.get_command (cmd); while (m_receive_trans.get_command (cmd)) { if (cmd == SCIM_TRANS_CMD_PROCESS_KEY_EVENT) socket_process_key_event (id); else if (cmd == SCIM_TRANS_CMD_MOVE_PREEDIT_CARET) socket_move_preedit_caret (id); else if (cmd == SCIM_TRANS_CMD_SELECT_CANDIDATE) socket_select_candidate (id); else if (cmd == SCIM_TRANS_CMD_UPDATE_LOOKUP_TABLE_PAGE_SIZE) socket_update_lookup_table_page_size (id); else if (cmd == SCIM_TRANS_CMD_LOOKUP_TABLE_PAGE_UP) socket_lookup_table_page_up (id); else if (cmd == SCIM_TRANS_CMD_LOOKUP_TABLE_PAGE_DOWN) socket_lookup_table_page_down (id); else if (cmd == SCIM_TRANS_CMD_RESET) socket_reset (id); else if (cmd == SCIM_TRANS_CMD_FOCUS_IN) socket_focus_in (id); else if (cmd == SCIM_TRANS_CMD_FOCUS_OUT) socket_focus_out (id); else if (cmd == SCIM_TRANS_CMD_TRIGGER_PROPERTY) socket_trigger_property (id); else if (cmd == SCIM_TRANS_CMD_PROCESS_HELPER_EVENT) socket_process_helper_event (id); else if (cmd == SCIM_TRANS_CMD_UPDATE_CLIENT_CAPABILITIES) socket_update_client_capabilities (id); else if (cmd == SCIM_TRANS_CMD_GET_FACTORY_LIST) socket_get_factory_list (id); else if (cmd == SCIM_TRANS_CMD_GET_FACTORY_NAME) socket_get_factory_name (id); else if (cmd == SCIM_TRANS_CMD_GET_FACTORY_AUTHORS) socket_get_factory_authors (id); else if (cmd == SCIM_TRANS_CMD_GET_FACTORY_CREDITS) socket_get_factory_credits (id); else if (cmd == SCIM_TRANS_CMD_GET_FACTORY_HELP) socket_get_factory_help (id); else if (cmd == SCIM_TRANS_CMD_GET_FACTORY_LOCALES) socket_get_factory_locales (id); else if (cmd == SCIM_TRANS_CMD_GET_FACTORY_ICON_FILE) socket_get_factory_icon_file (id); else if (cmd == SCIM_TRANS_CMD_GET_FACTORY_LANGUAGE) socket_get_factory_language (id); else if (cmd == SCIM_TRANS_CMD_NEW_INSTANCE) socket_new_instance (id); else if (cmd == SCIM_TRANS_CMD_DELETE_INSTANCE) socket_delete_instance (id); else if (cmd == SCIM_TRANS_CMD_DELETE_ALL_INSTANCES) socket_delete_all_instances (id); else if (cmd == SCIM_TRANS_CMD_FLUSH_CONFIG) socket_flush_config (id); else if (cmd == SCIM_TRANS_CMD_ERASE_CONFIG) socket_erase_config (id); else if (cmd == SCIM_TRANS_CMD_RELOAD_CONFIG) socket_reload_config (id); else if (cmd == SCIM_TRANS_CMD_GET_CONFIG_STRING) socket_get_config_string (id); else if (cmd == SCIM_TRANS_CMD_SET_CONFIG_STRING) socket_set_config_string (id); else if (cmd == SCIM_TRANS_CMD_GET_CONFIG_INT) socket_get_config_int (id); else if (cmd == SCIM_TRANS_CMD_SET_CONFIG_INT) socket_set_config_int (id); else if (cmd == SCIM_TRANS_CMD_GET_CONFIG_BOOL) socket_get_config_bool (id); else if (cmd == SCIM_TRANS_CMD_SET_CONFIG_BOOL) socket_set_config_bool (id); else if (cmd == SCIM_TRANS_CMD_GET_CONFIG_DOUBLE) socket_get_config_double (id); else if (cmd == SCIM_TRANS_CMD_SET_CONFIG_DOUBLE) socket_set_config_double (id); else if (cmd == SCIM_TRANS_CMD_GET_CONFIG_VECTOR_STRING) socket_get_config_vector_string (id); else if (cmd == SCIM_TRANS_CMD_SET_CONFIG_VECTOR_STRING) socket_set_config_vector_string (id); else if (cmd == SCIM_TRANS_CMD_GET_CONFIG_VECTOR_INT) socket_get_config_vector_int (id); else if (cmd == SCIM_TRANS_CMD_SET_CONFIG_VECTOR_INT) socket_set_config_vector_int (id); else if (cmd == SCIM_TRANS_CMD_LOAD_FILE) socket_load_file (id); else if (cmd == SCIM_TRANS_CMD_CLOSE_CONNECTION) { socket_close_connection (server, client); m_current_socket_client = -1; m_current_socket_client_key = 0; return; } } // Send reply to client if (m_send_trans.get_data_type () == SCIM_TRANS_DATA_UNKNOWN) m_send_trans.put_command (SCIM_TRANS_CMD_FAIL); m_send_trans.write_to_socket (client); m_current_socket_client = -1; m_current_socket_client_key = 0; SCIM_DEBUG_FRONTEND (1) << "End of socket_receive_callback (" << id << ").\n"; } bool SocketFrontEnd::socket_open_connection (SocketServer *server, const Socket &client) { SCIM_DEBUG_FRONTEND (2) << " Open socket connection for client " << client.get_id () << " number of clients=" << m_socket_client_repository.size () << ".\n"; uint32 key; String type = scim_socket_accept_connection (key, String ("SocketFrontEnd"), String ("SocketIMEngine,SocketConfig"), client, m_socket_timeout); if (type.length ()) { ClientInfo info; info.key = key; info.type = ((type == "SocketIMEngine") ? IMENGINE_CLIENT : CONFIG_CLIENT); SCIM_DEBUG_MAIN (2) << " Add client to repository. Type=" << type << " key=" << key << "\n"; m_socket_client_repository [client.get_id ()] = info; return true; } // Client did not pass the registration process, close it. SCIM_DEBUG_FRONTEND (2) << " Failed to create new connection.\n"; server->close_connection (client); return false; } void SocketFrontEnd::socket_close_connection (SocketServer *server, const Socket &client) { SCIM_DEBUG_FRONTEND (2) << " Close client connection " << client.get_id () << " number of clients=" << m_socket_client_repository.size () << ".\n"; ClientInfo client_info = socket_get_client_info (client); server->close_connection (client); if (client_info.type != UNKNOWN_CLIENT) { m_socket_client_repository.erase (client.get_id ()); if (client_info.type == IMENGINE_CLIENT) socket_delete_all_instances (client.get_id ()); if (!m_socket_client_repository.size () && !m_stay) server->shutdown (); } } SocketFrontEnd::ClientInfo SocketFrontEnd::socket_get_client_info (const Socket &client) { static ClientInfo null_client = { 0, UNKNOWN_CLIENT }; SocketClientRepository::iterator it = m_socket_client_repository.find (client.get_id ()); if (it != m_socket_client_repository.end ()) return it->second; return null_client; } void SocketFrontEnd::socket_exception_callback (SocketServer *server, const Socket &client) { SCIM_DEBUG_FRONTEND (1) << "socket_exception_callback (" << client.get_id () << ").\n"; socket_close_connection (server, client); } //client_id is client's socket id void SocketFrontEnd::socket_get_factory_list (int /*client_id*/) { String encoding; SCIM_DEBUG_FRONTEND (2) << " socket_get_factory_list.\n"; if (m_receive_trans.get_data (encoding)) { std::vector uuids; get_factory_list_for_encoding (uuids, encoding); SCIM_DEBUG_FRONTEND (3) << " Encoding (" << encoding << ") Num(" << uuids.size () << ").\n"; m_send_trans.put_data (uuids); m_send_trans.put_command (SCIM_TRANS_CMD_OK); } } void SocketFrontEnd::socket_get_factory_name (int /*client_id*/) { String sfid; SCIM_DEBUG_FRONTEND (2) << " socket_get_factory_name.\n"; if (m_receive_trans.get_data (sfid)) { WideString name = get_factory_name (sfid); m_send_trans.put_data (name); m_send_trans.put_command (SCIM_TRANS_CMD_OK); } } void SocketFrontEnd::socket_get_factory_authors (int /*client_id*/) { String sfid; SCIM_DEBUG_FRONTEND (2) << " socket_get_factory_authors.\n"; if (m_receive_trans.get_data (sfid)) { WideString authors = get_factory_authors (sfid); m_send_trans.put_data (authors); m_send_trans.put_command (SCIM_TRANS_CMD_OK); } } void SocketFrontEnd::socket_get_factory_credits (int /*client_id*/) { String sfid; SCIM_DEBUG_FRONTEND (2) << " socket_get_factory_credits.\n"; if (m_receive_trans.get_data (sfid)) { WideString credits = get_factory_credits (sfid); m_send_trans.put_data (credits); m_send_trans.put_command (SCIM_TRANS_CMD_OK); } } void SocketFrontEnd::socket_get_factory_help (int /*client_id*/) { String sfid; SCIM_DEBUG_FRONTEND (2) << " socket_get_factory_help.\n"; if (m_receive_trans.get_data (sfid)) { WideString help = get_factory_help (sfid); m_send_trans.put_data (help); m_send_trans.put_command (SCIM_TRANS_CMD_OK); } } void SocketFrontEnd::socket_get_factory_locales (int /*client_id*/) { String sfid; SCIM_DEBUG_FRONTEND (2) << " socket_get_factory_locales.\n"; if (m_receive_trans.get_data (sfid)) { String locales = get_factory_locales (sfid); SCIM_DEBUG_FRONTEND (3) << " Locales (" << locales << ").\n"; m_send_trans.put_data (locales); m_send_trans.put_command (SCIM_TRANS_CMD_OK); } } void SocketFrontEnd::socket_get_factory_icon_file (int /*client_id*/) { String sfid; SCIM_DEBUG_FRONTEND (2) << " socket_get_factory_icon_file.\n"; if (m_receive_trans.get_data (sfid)) { String iconfile = get_factory_icon_file (sfid); SCIM_DEBUG_FRONTEND (3) << " ICON File (" << iconfile << ").\n"; m_send_trans.put_data (iconfile); m_send_trans.put_command (SCIM_TRANS_CMD_OK); } } void SocketFrontEnd::socket_get_factory_language (int /*client_id*/) { String sfid; SCIM_DEBUG_FRONTEND (2) << " socket_get_factory_language.\n"; if (m_receive_trans.get_data (sfid)) { String language = get_factory_language (sfid); SCIM_DEBUG_FRONTEND (3) << " Language (" << language << ").\n"; m_send_trans.put_data (language); m_send_trans.put_command (SCIM_TRANS_CMD_OK); } } void SocketFrontEnd::socket_new_instance (int client_id) { String sfid; String encoding; SCIM_DEBUG_FRONTEND (2) << " socket_new_instance.\n"; if (m_receive_trans.get_data (sfid) && m_receive_trans.get_data (encoding)) { int siid = new_instance (sfid, encoding); // Instance created OK. if (siid >= 0) { SocketInstanceRepository::iterator it = std::lower_bound (m_socket_instance_repository.begin (), m_socket_instance_repository.end (), std::pair (client_id, siid)); if (it == m_socket_instance_repository.end ()) m_socket_instance_repository.push_back (std::pair (client_id, siid)); else m_socket_instance_repository.insert (it, std::pair (client_id, siid)); SCIM_DEBUG_FRONTEND (3) << " InstanceID (" << siid << ").\n"; m_send_trans.put_data ((uint32)siid); m_send_trans.put_command (SCIM_TRANS_CMD_OK); } } } void SocketFrontEnd::socket_delete_instance (int client_id) { uint32 siid; SCIM_DEBUG_FRONTEND (2) << " socket_delete_instance.\n"; if (m_receive_trans.get_data (siid)) { SCIM_DEBUG_FRONTEND (3) << " InstanceID (" << siid << ").\n"; m_current_instance = (int) siid; delete_instance ((int) siid); m_current_instance = -1; SocketInstanceRepository::iterator it = std::lower_bound (m_socket_instance_repository.begin (), m_socket_instance_repository.end (), std::pair (client_id, siid)); if (it != m_socket_instance_repository.end () && *it == std::pair (client_id, siid)) m_socket_instance_repository.erase (it); m_send_trans.put_command (SCIM_TRANS_CMD_OK); } } void SocketFrontEnd::socket_delete_all_instances (int client_id) { SCIM_DEBUG_FRONTEND (2) << " socket_delete_all_instances.\n"; SocketInstanceRepository::iterator it; SocketInstanceRepository::iterator lit = std::lower_bound (m_socket_instance_repository.begin (), m_socket_instance_repository.end (), std::pair (client_id, 0)); SocketInstanceRepository::iterator uit = std::upper_bound (m_socket_instance_repository.begin (), m_socket_instance_repository.end (), std::pair (client_id, INT_MAX)); if (lit != uit) { for (it = lit; it != uit; ++it) { m_current_instance = it->second; delete_instance (it->second); } m_current_instance = -1; m_socket_instance_repository.erase (lit, uit); m_send_trans.put_command (SCIM_TRANS_CMD_OK); } } void SocketFrontEnd::socket_process_key_event (int /*client_id*/) { uint32 siid; KeyEvent event; SCIM_DEBUG_FRONTEND (2) << " socket_process_key_event.\n"; if (m_receive_trans.get_data (siid) && m_receive_trans.get_data (event)) { SCIM_DEBUG_FRONTEND (3) << " SI (" << siid << ") KeyEvent (" << event.code << "," << event.mask << ").\n"; m_current_instance = (int) siid; if (process_key_event ((int) siid, event)) m_send_trans.put_command (SCIM_TRANS_CMD_OK); else m_send_trans.put_command (SCIM_TRANS_CMD_FAIL); m_current_instance = -1; } } void SocketFrontEnd::socket_move_preedit_caret (int /*client_id*/) { uint32 siid; uint32 caret; SCIM_DEBUG_FRONTEND (2) << " socket_move_preedit_caret.\n"; if (m_receive_trans.get_data (siid) && m_receive_trans.get_data (caret)) { SCIM_DEBUG_FRONTEND (3) << " SI (" << siid << ") Caret (" << caret << ").\n"; m_current_instance = (int) siid; move_preedit_caret ((int) siid, caret); m_send_trans.put_command (SCIM_TRANS_CMD_OK); m_current_instance = -1; } } void SocketFrontEnd::socket_select_candidate (int /*client_id*/) { uint32 siid; uint32 item; SCIM_DEBUG_FRONTEND (2) << " socket_select_candidate.\n"; if (m_receive_trans.get_data (siid) && m_receive_trans.get_data (item)) { SCIM_DEBUG_FRONTEND (3) << " SI (" << siid << ") Item (" << item << ").\n"; m_current_instance = (int) siid; select_candidate ((int) siid, item); m_send_trans.put_command (SCIM_TRANS_CMD_OK); m_current_instance = -1; } } void SocketFrontEnd::socket_update_lookup_table_page_size (int /*client_id*/) { uint32 siid; uint32 size; SCIM_DEBUG_FRONTEND (2) << " socket_update_lookup_table_page_size.\n"; if (m_receive_trans.get_data (siid) && m_receive_trans.get_data (size)) { SCIM_DEBUG_FRONTEND (3) << " SI (" << siid << ") PageSize (" << size << ").\n"; m_current_instance = (int) siid; update_lookup_table_page_size ((int) siid, size); m_send_trans.put_command (SCIM_TRANS_CMD_OK); m_current_instance = -1; } } void SocketFrontEnd::socket_lookup_table_page_up (int /*client_id*/) { uint32 siid; SCIM_DEBUG_FRONTEND (2) << " socket_lookup_table_page_up.\n"; if (m_receive_trans.get_data (siid)) { SCIM_DEBUG_FRONTEND (3) << " SI (" << siid << ").\n"; m_current_instance = (int) siid; lookup_table_page_up ((int) siid); m_send_trans.put_command (SCIM_TRANS_CMD_OK); m_current_instance = -1; } } void SocketFrontEnd::socket_lookup_table_page_down (int /*client_id*/) { uint32 siid; SCIM_DEBUG_FRONTEND (2) << " socket_lookup_table_page_down.\n"; if (m_receive_trans.get_data (siid)) { SCIM_DEBUG_FRONTEND (3) << " SI (" << siid << ").\n"; m_current_instance = (int) siid; lookup_table_page_down ((int) siid); m_send_trans.put_command (SCIM_TRANS_CMD_OK); m_current_instance = -1; } } void SocketFrontEnd::socket_reset (int /*client_id*/) { uint32 siid; SCIM_DEBUG_FRONTEND (2) << " socket_reset.\n"; if (m_receive_trans.get_data (siid)) { SCIM_DEBUG_FRONTEND (3) << " SI (" << siid << ").\n"; m_current_instance = (int) siid; reset ((int) siid); m_send_trans.put_command (SCIM_TRANS_CMD_OK); m_current_instance = -1; } } void SocketFrontEnd::socket_focus_in (int /*client_id*/) { uint32 siid; SCIM_DEBUG_FRONTEND (2) << " socket_focus_in.\n"; if (m_receive_trans.get_data (siid)) { SCIM_DEBUG_FRONTEND (3) << " SI (" << siid << ").\n"; m_current_instance = (int) siid; focus_in ((int) siid); m_send_trans.put_command (SCIM_TRANS_CMD_OK); m_current_instance = -1; } } void SocketFrontEnd::socket_focus_out (int /*client_id*/) { uint32 siid; SCIM_DEBUG_FRONTEND (2) << " socket_focus_out.\n"; if (m_receive_trans.get_data (siid)) { SCIM_DEBUG_FRONTEND (3) << " SI (" << siid << ").\n"; m_current_instance = (int) siid; focus_out ((int) siid); m_send_trans.put_command (SCIM_TRANS_CMD_OK); m_current_instance = -1; } } void SocketFrontEnd::socket_trigger_property (int /*client_id*/) { uint32 siid; String property; SCIM_DEBUG_FRONTEND (2) << " socket_trigger_property.\n"; if (m_receive_trans.get_data (siid) && m_receive_trans.get_data (property)) { SCIM_DEBUG_FRONTEND (3) << " SI (" << siid << ").\n"; m_current_instance = (int) siid; trigger_property ((int) siid, property); m_send_trans.put_command (SCIM_TRANS_CMD_OK); m_current_instance = -1; } } void SocketFrontEnd::socket_process_helper_event (int /*client_id*/) { uint32 siid; String helper_uuid; Transaction trans; SCIM_DEBUG_FRONTEND (2) << " socket_process_helper_event.\n"; if (m_receive_trans.get_data (siid) && m_receive_trans.get_data (helper_uuid) && m_receive_trans.get_data (trans)) { SCIM_DEBUG_FRONTEND (3) << " SI (" << siid << ").\n"; m_current_instance = (int) siid; process_helper_event ((int) siid, helper_uuid, trans); m_send_trans.put_command (SCIM_TRANS_CMD_OK); m_current_instance = -1; } } void SocketFrontEnd::socket_update_client_capabilities (int /*client_id*/) { uint32 siid; uint32 cap; SCIM_DEBUG_FRONTEND (2) << " socket_update_client_capabilities.\n"; if (m_receive_trans.get_data (siid) && m_receive_trans.get_data (cap)) { SCIM_DEBUG_FRONTEND (3) << " SI (" << siid << ").\n"; m_current_instance = (int) siid; update_client_capabilities ((int) siid, cap); m_send_trans.put_command (SCIM_TRANS_CMD_OK); m_current_instance = -1; } } void SocketFrontEnd::socket_flush_config (int /*client_id*/) { if (m_config_readonly || m_config.null ()) return; SCIM_DEBUG_FRONTEND (2) << " socket_flush_config.\n"; if (m_config->flush ()) m_send_trans.put_command (SCIM_TRANS_CMD_OK); } void SocketFrontEnd::socket_erase_config (int /*client_id*/) { if (m_config_readonly || m_config.null ()) return; String key; SCIM_DEBUG_FRONTEND (2) << " socket_erase_config.\n"; if (m_receive_trans.get_data (key)) { SCIM_DEBUG_FRONTEND (3) << " Key (" << key << ").\n"; if (m_config->erase (key)) m_send_trans.put_command (SCIM_TRANS_CMD_OK); } } void SocketFrontEnd::socket_reload_config (int /*client_id*/) { static timeval last_timestamp = {0, 0}; if (m_config.null ()) return; SCIM_DEBUG_FRONTEND (2) << " socket_reload_config.\n"; timeval timestamp; gettimeofday (×tamp, 0); if (timestamp.tv_sec > last_timestamp.tv_sec + 1) m_config->reload (); gettimeofday (&last_timestamp, 0); m_send_trans.put_command (SCIM_TRANS_CMD_OK); } void SocketFrontEnd::socket_get_config_string (int /*client_id*/) { if (m_config.null ()) return; String key; SCIM_DEBUG_FRONTEND (2) << " socket_get_config_string.\n"; if (m_receive_trans.get_data (key)) { String value; SCIM_DEBUG_FRONTEND (3) << " Key (" << key << ").\n"; if (m_config->read (key, &value)) { m_send_trans.put_data (value); m_send_trans.put_command (SCIM_TRANS_CMD_OK); } } } void SocketFrontEnd::socket_set_config_string (int /*client_id*/) { if (m_config_readonly || m_config.null ()) return; String key; String value; SCIM_DEBUG_FRONTEND (2) << " socket_set_config_string.\n"; if (m_receive_trans.get_data (key) && m_receive_trans.get_data (value)) { SCIM_DEBUG_FRONTEND (3) << " Key (" << key << ").\n"; SCIM_DEBUG_FRONTEND (3) << " Value (" << value << ").\n"; if (m_config->write (key, value)) m_send_trans.put_command (SCIM_TRANS_CMD_OK); } } void SocketFrontEnd::socket_get_config_int (int /*client_id*/) { if (m_config.null ()) return; String key; SCIM_DEBUG_FRONTEND (2) << " socket_get_config_int.\n"; if (m_receive_trans.get_data (key)) { SCIM_DEBUG_FRONTEND (3) << " Key (" << key << ").\n"; int value; if (m_config->read (key, &value)) { m_send_trans.put_data ((uint32) value); m_send_trans.put_command (SCIM_TRANS_CMD_OK); } } } void SocketFrontEnd::socket_set_config_int (int /*client_id*/) { if (m_config_readonly || m_config.null ()) return; String key; uint32 value; SCIM_DEBUG_FRONTEND (2) << " socket_set_config_int.\n"; if (m_receive_trans.get_data (key) && m_receive_trans.get_data (value)) { SCIM_DEBUG_FRONTEND (3) << " Key (" << key << ").\n"; SCIM_DEBUG_FRONTEND (3) << " Value (" << value << ").\n"; if (m_config->write (key, (int) value)) m_send_trans.put_command (SCIM_TRANS_CMD_OK); } } void SocketFrontEnd::socket_get_config_bool (int /*client_id*/) { if (m_config.null ()) return; String key; SCIM_DEBUG_FRONTEND (2) << " socket_get_config_bool.\n"; if (m_receive_trans.get_data (key)) { bool value; SCIM_DEBUG_FRONTEND (3) << " Key (" << key << ").\n"; if (m_config->read (key, &value)) { m_send_trans.put_data ((uint32) value); m_send_trans.put_command (SCIM_TRANS_CMD_OK); } } } void SocketFrontEnd::socket_set_config_bool (int /*client_id*/) { if (m_config_readonly || m_config.null ()) return; String key; uint32 value; SCIM_DEBUG_FRONTEND (2) << " socket_set_config_bool.\n"; if (m_receive_trans.get_data (key) && m_receive_trans.get_data (value)) { SCIM_DEBUG_FRONTEND (3) << " Key (" << key << ").\n"; SCIM_DEBUG_FRONTEND (3) << " Value (" << value << ").\n"; if (m_config->write (key, (bool) value)) m_send_trans.put_command (SCIM_TRANS_CMD_OK); } } void SocketFrontEnd::socket_get_config_double (int /*client_id*/) { if (m_config.null ()) return; String key; SCIM_DEBUG_FRONTEND (2) << " socket_get_config_double.\n"; if (m_receive_trans.get_data (key)) { double value; SCIM_DEBUG_FRONTEND (3) << " Key (" << key << ").\n"; if (m_config->read (key, &value)) { char buf [80]; snprintf (buf, 79, "%lE", value); m_send_trans.put_data (String (buf)); m_send_trans.put_command (SCIM_TRANS_CMD_OK); } } } void SocketFrontEnd::socket_set_config_double (int /*client_id*/) { if (m_config_readonly || m_config.null ()) return; String key; String str; SCIM_DEBUG_FRONTEND (2) << " socket_set_config_double.\n"; if (m_receive_trans.get_data (key) && m_receive_trans.get_data (str)) { double value; sscanf (str.c_str (), "%lE", &value); SCIM_DEBUG_FRONTEND (3) << " Key (" << key << ").\n"; SCIM_DEBUG_FRONTEND (3) << " Value (" << value << ").\n"; if (m_config->write (key, value)) m_send_trans.put_command (SCIM_TRANS_CMD_OK); } } void SocketFrontEnd::socket_get_config_vector_string (int /*client_id*/) { if (m_config.null ()) return; String key; SCIM_DEBUG_FRONTEND (2) << " socket_get_config_vector_string.\n"; if (m_receive_trans.get_data (key)) { std::vector vec; SCIM_DEBUG_FRONTEND (3) << " Key (" << key << ").\n"; if (m_config->read (key, &vec)) { m_send_trans.put_data (vec); m_send_trans.put_command (SCIM_TRANS_CMD_OK); } } } void SocketFrontEnd::socket_set_config_vector_string (int /*client_id*/) { if (m_config_readonly || m_config.null ()) return; String key; std::vector vec; SCIM_DEBUG_FRONTEND (2) << " socket_set_config_vector_string.\n"; if (m_receive_trans.get_data (key) && m_receive_trans.get_data (vec)) { SCIM_DEBUG_FRONTEND (3) << " Key (" << key << ").\n"; if (m_config->write (key, vec)) m_send_trans.put_command (SCIM_TRANS_CMD_OK); } } void SocketFrontEnd::socket_get_config_vector_int (int /*client_id*/) { if (m_config.null ()) return; String key; SCIM_DEBUG_FRONTEND (2) << " socket_get_config_vector_int.\n"; if (m_receive_trans.get_data (key)) { std::vector vec; SCIM_DEBUG_FRONTEND (3) << " Key (" << key << ").\n"; if (m_config->read (key, &vec)) { std::vector reply; for (uint32 i=0; i vec; SCIM_DEBUG_FRONTEND (2) << " socket_set_config_vector_int.\n"; if (m_receive_trans.get_data (key) && m_receive_trans.get_data (vec)) { std::vector req; SCIM_DEBUG_FRONTEND (3) << " Key (" << key << ").\n"; for (uint32 i=0; iwrite (key, req)) m_send_trans.put_command (SCIM_TRANS_CMD_OK); } } void SocketFrontEnd::socket_load_file (int /*client_id*/) { String filename; char *bufptr = 0; size_t filesize = 0; SCIM_DEBUG_FRONTEND (2) << " socket_load_file.\n"; if (m_receive_trans.get_data (filename)) { SCIM_DEBUG_FRONTEND (3) << " File (" << filename << ").\n"; if ((filesize = scim_load_file (filename, &bufptr)) > 0) { m_send_trans.put_data (bufptr, filesize); m_send_trans.put_command (SCIM_TRANS_CMD_OK); } delete [] bufptr; } } void SocketFrontEnd::reload_config_callback (const ConfigPointer &config) { SCIM_DEBUG_FRONTEND (1) << "Reload configuration.\n"; int max_clients = -1; m_config_readonly = config->read (String (SCIM_CONFIG_FRONTEND_SOCKET_CONFIG_READONLY), false); max_clients = config->read (String (SCIM_CONFIG_FRONTEND_SOCKET_MAXCLIENTS), -1); m_socket_server.set_max_clients (max_clients); } /* vi:ts=4:nowrap:expandtab */ scim-1.4.14/modules/FrontEnd/scim_socket_frontend.h000066400000000000000000000160321177210725600223100ustar00rootroot00000000000000/** * @file scim_socket_frontend.h * @brief definition of SocketFrontEnd related classes. */ /* * Smart Common Input Method * * Copyright (c) 2002-2005 James Su * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this program; if not, write to the * Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, MA 02111-1307 USA * * $Id: scim_socket_frontend.h,v 1.26 2005/04/14 17:01:56 suzhe Exp $ */ #if !defined (__SCIM_SOCKET_FRONTEND_H) #define __SCIM_SOCKET_FRONTEND_H #include "scim_stl_map.h" using namespace scim; class SocketFrontEnd : public FrontEndBase { enum ClientType { UNKNOWN_CLIENT, IMENGINE_CLIENT, CONFIG_CLIENT }; struct ClientInfo { uint32 key; ClientType type; }; /** * ::first = socket id, ::second = instance id. */ typedef std::vector > SocketInstanceRepository; #if SCIM_USE_STL_EXT_HASH_MAP typedef __gnu_cxx::hash_map > SocketClientRepository; #elif SCIM_USE_STL_HASH_MAP typedef std::hash_map > SocketClientRepository; #else typedef std::map SocketClientRepository; #endif ConfigPointer m_config; SocketServer m_socket_server; Transaction m_send_trans; Transaction m_receive_trans; Transaction m_temp_trans; SocketInstanceRepository m_socket_instance_repository; SocketClientRepository m_socket_client_repository; bool m_stay; bool m_config_readonly; int m_socket_timeout; int m_current_instance; int m_current_socket_client; uint32 m_current_socket_client_key; public: SocketFrontEnd (const BackEndPointer &backend, const ConfigPointer &config); virtual ~SocketFrontEnd (); protected: virtual void show_preedit_string (int id); virtual void show_aux_string (int id); virtual void show_lookup_table (int id); virtual void hide_preedit_string (int id); virtual void hide_aux_string (int id); virtual void hide_lookup_table (int id); virtual void update_preedit_caret (int id, int caret); virtual void update_preedit_string (int id, const WideString & str, const AttributeList & attrs); virtual void update_aux_string (int id, const WideString & str, const AttributeList & attrs); virtual void commit_string (int id, const WideString & str); virtual void forward_key_event (int id, const KeyEvent & key); virtual void update_lookup_table (int id, const LookupTable & table); virtual void register_properties (int id, const PropertyList & properties); virtual void update_property (int id, const Property & property); virtual void beep (int id); virtual void start_helper (int id, const String &helper_uuid); virtual void stop_helper (int id, const String &helper_uuid); virtual void send_helper_event (int id, const String &helper_uuid, const Transaction &trans); virtual bool get_surrounding_text (int id, WideString &text, int &cursor, int maxlen_before, int maxlen_after); virtual bool delete_surrounding_text (int id, int offset, int len); public: virtual void init (int argc, char **argv); virtual void run (); private: uint32 generate_key () const; bool check_client_connection (const Socket &client) const; void socket_accept_callback (SocketServer *server, const Socket &client); void socket_receive_callback (SocketServer *server, const Socket &client); void socket_exception_callback (SocketServer *server, const Socket &client); bool socket_open_connection (SocketServer *server, const Socket &client); void socket_close_connection (SocketServer *server, const Socket &client); ClientInfo socket_get_client_info (const Socket &client); //client_id is client's socket id void socket_get_factory_list (int client_id); void socket_get_factory_name (int client_id); void socket_get_factory_authors (int client_id); void socket_get_factory_credits (int client_id); void socket_get_factory_help (int client_id); void socket_get_factory_locales (int client_id); void socket_get_factory_icon_file (int client_id); void socket_get_factory_language (int client_id); void socket_new_instance (int client_id); void socket_delete_instance (int client_id); void socket_delete_all_instances (int client_id); void socket_process_key_event (int client_id); void socket_move_preedit_caret (int client_id); void socket_select_candidate (int client_id); void socket_update_lookup_table_page_size (int client_id); void socket_lookup_table_page_up (int client_id); void socket_lookup_table_page_down (int client_id); void socket_reset (int client_id); void socket_focus_in (int client_id); void socket_focus_out (int client_id); void socket_trigger_property (int client_id); void socket_process_helper_event (int client_id); void socket_update_client_capabilities (int client_id); void socket_flush_config (int client_id); void socket_erase_config (int client_id); void socket_get_config_string (int client_id); void socket_set_config_string (int client_id); void socket_get_config_int (int client_id); void socket_set_config_int (int client_id); void socket_get_config_bool (int client_id); void socket_set_config_bool (int client_id); void socket_get_config_double (int client_id); void socket_set_config_double (int client_id); void socket_get_config_vector_string (int client_id); void socket_set_config_vector_string (int client_id); void socket_get_config_vector_int (int client_id); void socket_set_config_vector_int (int client_id); void socket_reload_config (int client_id); void socket_load_file (int client_id); void reload_config_callback (const ConfigPointer &config); }; #endif /* vi:ts=4:nowrap:ai:expandtab */ scim-1.4.14/modules/FrontEnd/scim_x11_frontend.cpp000066400000000000000000001731431177210725600217730ustar00rootroot00000000000000/** @file scim_x11_frontend.cpp * implementation of class X11FrontEnd. */ /* * Smart Common Input Method * * Copyright (c) 2002-2005 James Su * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this program; if not, write to the * Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, MA 02111-1307 USA * * $Id: scim_x11_frontend.cpp,v 1.179.2.6 2007/06/16 06:23:38 suzhe Exp $ * */ #define Uses_SCIM_CONFIG_PATH #define Uses_SCIM_FRONTEND #define Uses_SCIM_ICONV #define Uses_SCIM_SOCKET #define Uses_SCIM_TRANSACTION #define Uses_SCIM_HOTKEY #define Uses_SCIM_PANEL_CLIENT #define Uses_C_LOCALE #define Uses_C_STDIO #define Uses_C_STDLIB #include #include #include #include #include #include #include #include #include "IMdkit/IMdkit.h" #include "IMdkit/Xi18n.h" #include "scim_private.h" #include "scim.h" #include "scim_x11_ic.h" #include "scim_x11_frontend.h" #include "scim_x11_utils.h" #define scim_module_init x11_LTX_scim_module_init #define scim_module_exit x11_LTX_scim_module_exit #define scim_frontend_module_init x11_LTX_scim_frontend_module_init #define scim_frontend_module_run x11_LTX_scim_frontend_module_run #define SCIM_CONFIG_FRONTEND_X11_BROKEN_WCHAR "/FrontEnd/X11/BrokenWchar" #define SCIM_CONFIG_FRONTEND_X11_DYNAMIC "/FrontEnd/X11/Dynamic" #define SCIM_CONFIG_FRONTEND_X11_SERVER_NAME "/FrontEnd/X11/ServerName" #define SCIM_CONFIG_FRONTEND_X11_ONTHESPOT "/FrontEnd/X11/OnTheSpot" #define SCIM_KEYBOARD_ICON_FILE (SCIM_ICONDIR "/keyboard.png") using namespace scim; //Local static data static Pointer _scim_frontend (0); //Module Interface extern "C" { void scim_module_init (void) { SCIM_DEBUG_FRONTEND(1) << "Initializing X11 FrontEnd module...\n"; } void scim_module_exit (void) { SCIM_DEBUG_FRONTEND(1) << "Exiting X11 FrontEnd module...\n"; _scim_frontend.reset (); } void scim_frontend_module_init (const BackEndPointer &backend, const ConfigPointer &config, int argc, char **argv) { if (config.null () || backend.null ()) throw FrontEndError (String ("X11 FrontEnd couldn't run without Config and BackEnd.\n")); if (_scim_frontend.null ()) { SCIM_DEBUG_FRONTEND(1) << "Initializing X11 FrontEnd module (more)...\n"; _scim_frontend = new X11FrontEnd (backend, config); _scim_frontend->init (argc, argv); } } void scim_frontend_module_run (void) { if (!_scim_frontend.null ()) { SCIM_DEBUG_FRONTEND(1) << "Starting X11 FrontEnd module...\n"; _scim_frontend->run (); } } } X11FrontEnd::X11FrontEnd (const BackEndPointer &backend, const ConfigPointer &config, const String& server_name) : FrontEndBase (backend), m_xims (0), m_display (0), m_xims_window (0), m_server_name (server_name), m_focus_ic (0), m_xims_dynamic (true), m_wchar_ucs4_equal (scim_if_wchar_ucs4_equal ()), m_broken_wchar (false), m_shared_input_method (false), m_keyboard_layout (SCIM_KEYBOARD_Default), m_valid_key_mask (SCIM_KEY_AllMasks), m_should_exit (false), m_iconv (String ()), m_config (config), m_old_x_error_handler (0) { if (!_scim_frontend.null () && _scim_frontend != this) { throw FrontEndError ( String ("X11 -- only one frontend can be created!")); } if (!m_server_name.length ()) m_server_name = String ("SCIM"); // Attach Panel Client signal. m_panel_client.signal_connect_reload_config (slot (this, &X11FrontEnd::panel_slot_reload_config)); m_panel_client.signal_connect_exit (slot (this, &X11FrontEnd::panel_slot_exit)); m_panel_client.signal_connect_update_lookup_table_page_size (slot (this, &X11FrontEnd::panel_slot_update_lookup_table_page_size)); m_panel_client.signal_connect_lookup_table_page_up (slot (this, &X11FrontEnd::panel_slot_lookup_table_page_up)); m_panel_client.signal_connect_lookup_table_page_down (slot (this, &X11FrontEnd::panel_slot_lookup_table_page_down)); m_panel_client.signal_connect_trigger_property (slot (this, &X11FrontEnd::panel_slot_trigger_property)); m_panel_client.signal_connect_process_helper_event (slot (this, &X11FrontEnd::panel_slot_process_helper_event)); m_panel_client.signal_connect_move_preedit_caret (slot (this, &X11FrontEnd::panel_slot_move_preedit_caret)); m_panel_client.signal_connect_select_candidate (slot (this, &X11FrontEnd::panel_slot_select_candidate)); m_panel_client.signal_connect_process_key_event (slot (this, &X11FrontEnd::panel_slot_process_key_event)); m_panel_client.signal_connect_commit_string (slot (this, &X11FrontEnd::panel_slot_commit_string)); m_panel_client.signal_connect_forward_key_event (slot (this, &X11FrontEnd::panel_slot_forward_key_event)); m_panel_client.signal_connect_request_help (slot (this, &X11FrontEnd::panel_slot_request_help)); m_panel_client.signal_connect_request_factory_menu (slot (this, &X11FrontEnd::panel_slot_request_factory_menu)); m_panel_client.signal_connect_change_factory (slot (this, &X11FrontEnd::panel_slot_change_factory)); } X11FrontEnd::~X11FrontEnd () { if (m_xims) { if (validate_ic (m_focus_ic)) { m_panel_client.prepare (m_focus_ic->icid); focus_out (m_focus_ic->siid); m_panel_client.turn_off (m_focus_ic->icid); m_panel_client.send (); ims_sync_ic (m_focus_ic); } XSync(m_display, False); IMCloseIM (m_xims); } if (m_display && m_xims_window) { XDestroyWindow (m_display, m_xims_window); XCloseDisplay (m_display); } m_panel_client.close_connection (); } void X11FrontEnd::show_preedit_string (int siid) { SCIM_DEBUG_FRONTEND(2) << " Show preedit string, siid=" << siid << "\n"; if (is_inputing_ic (siid)) { if (ims_is_preedit_callback_mode (m_focus_ic)) ims_preedit_callback_start (m_focus_ic); else m_panel_client.show_preedit_string (m_focus_ic->icid); } } void X11FrontEnd::show_aux_string (int siid) { SCIM_DEBUG_FRONTEND(2) << " Show aux string, siid=" << siid << "\n"; if (is_inputing_ic (siid)) m_panel_client.show_aux_string (m_focus_ic->icid); } void X11FrontEnd::show_lookup_table (int siid) { SCIM_DEBUG_FRONTEND(2) << " Show lookup table, siid=" << siid << "\n"; if (is_inputing_ic (siid)) m_panel_client.show_lookup_table (m_focus_ic->icid); } void X11FrontEnd::hide_preedit_string (int siid) { SCIM_DEBUG_FRONTEND(2) << " Hide preedit string, siid=" << siid << "\n"; if (is_focused_ic (siid)) { if (ims_is_preedit_callback_mode (m_focus_ic)) ims_preedit_callback_done (m_focus_ic); else m_panel_client.hide_preedit_string (m_focus_ic->icid); } } void X11FrontEnd::hide_aux_string (int siid) { SCIM_DEBUG_FRONTEND(2) << " Hide aux string, siid=" << siid << "\n"; if (is_focused_ic (siid)) m_panel_client.hide_aux_string (m_focus_ic->icid); } void X11FrontEnd::hide_lookup_table (int siid) { SCIM_DEBUG_FRONTEND(2) << " Hide lookup table, siid=" << siid << "\n"; if (is_focused_ic (siid)) m_panel_client.hide_lookup_table (m_focus_ic->icid); } void X11FrontEnd::update_preedit_caret (int siid, int caret) { SCIM_DEBUG_FRONTEND(2) << " Update preedit caret, siid=" << siid << " caret=" << caret << "\n"; if (is_inputing_ic (siid)) { if (ims_is_preedit_callback_mode (m_focus_ic)) ims_preedit_callback_caret (m_focus_ic, caret); else m_panel_client.update_preedit_caret (m_focus_ic->icid, caret); } } void X11FrontEnd::update_preedit_string (int siid, const WideString & str, const AttributeList & attrs) { SCIM_DEBUG_FRONTEND(2) << " Update preedit string, siid=" << siid << "\n"; if (is_inputing_ic (siid)) { if (ims_is_preedit_callback_mode (m_focus_ic)) ims_preedit_callback_draw (m_focus_ic, str, attrs); else m_panel_client.update_preedit_string (m_focus_ic->icid, str, attrs); } } void X11FrontEnd::update_aux_string (int siid, const WideString & str, const AttributeList & attrs) { SCIM_DEBUG_FRONTEND(2) << " Update aux string, siid=" << siid << "\n"; if (is_inputing_ic (siid)) m_panel_client.update_aux_string (m_focus_ic->icid, str, attrs); } void X11FrontEnd::update_lookup_table (int siid, const LookupTable & table) { SCIM_DEBUG_FRONTEND(2) << " Update lookup table, siid=" << siid << "\n"; if (is_inputing_ic (siid)) m_panel_client.update_lookup_table (m_focus_ic->icid, table); } void X11FrontEnd::commit_string (int siid, const WideString & str) { SCIM_DEBUG_FRONTEND(2) << " Commit string, siid=" << siid << "\n"; if (is_focused_ic (siid)) ims_commit_string (m_focus_ic, str); } void X11FrontEnd::forward_key_event (int siid, const KeyEvent & key) { SCIM_DEBUG_FRONTEND(2) << " Forward keyevent, siid=" << siid << "\n"; if (is_focused_ic (siid)) ims_forward_key_event (m_focus_ic, key); } void X11FrontEnd::register_properties (int siid, const PropertyList &properties) { SCIM_DEBUG_FRONTEND(2) << " Register properties, siid=" << siid << "\n"; if (is_inputing_ic (siid)) m_panel_client.register_properties (m_focus_ic->icid, properties); } void X11FrontEnd::update_property (int siid, const Property &property) { SCIM_DEBUG_FRONTEND(2) << " Update property, siid=" << siid << "\n"; if (is_inputing_ic (siid)) m_panel_client.update_property (m_focus_ic->icid, property); } void X11FrontEnd::beep (int siid) { SCIM_DEBUG_FRONTEND(2) << " Beep, siid=" << siid << "\n"; if (is_inputing_ic (siid)) XBell (m_display, 0); } void X11FrontEnd::start_helper (int siid, const String &helper_uuid) { SCIM_DEBUG_FRONTEND(2) << " Start helper, siid=" << siid << " Helper=" << helper_uuid << "\n"; X11IC *ic = m_ic_manager.find_ic_by_siid (siid); if (validate_ic (ic)) m_panel_client.start_helper (ic->icid, helper_uuid); } void X11FrontEnd::stop_helper (int siid, const String &helper_uuid) { SCIM_DEBUG_FRONTEND(2) << " Stop helper, siid=" << siid << " Helper=" << helper_uuid << "\n"; X11IC *ic = m_ic_manager.find_ic_by_siid (siid); if (validate_ic (ic)) m_panel_client.stop_helper (ic->icid, helper_uuid); } void X11FrontEnd::send_helper_event (int siid, const String &helper_uuid, const Transaction &trans) { SCIM_DEBUG_FRONTEND(2) << " Send helper event, siid=" << siid << " Helper=" << helper_uuid << "\n"; X11IC *ic = m_ic_manager.find_ic_by_siid (siid); if (validate_ic (ic)) m_panel_client.send_helper_event (ic->icid, helper_uuid, trans); } bool X11FrontEnd::get_surrounding_text (int siid, WideString &text, int &cursor, int maxlen_before, int maxlen_after) { SCIM_DEBUG_FRONTEND(2) << " Get surrounding text, siid=" << siid << "\n"; text.clear (); cursor = 0; if (is_inputing_ic (siid)) { // return ims_string_conversion_callback_retrieval (m_focus_ic, text, cursor, maxlen_before, maxlen_after); return false; } return false; } bool X11FrontEnd::delete_surrounding_text (int siid, int offset, int len) { SCIM_DEBUG_FRONTEND(2) << " Delete surrounding text, siid=" << siid << " offset = " << offset << " len = " << len << "\n"; if (is_inputing_ic (siid)) { // return ims_string_conversion_callback_substitution (m_focus_ic, offset, len); return false; } return false; } void X11FrontEnd::init (int argc, char **argv) { String str; SCIM_DEBUG_FRONTEND (1) << "X11 -- Loading configuration.\n"; //Read settings. reload_config_callback (m_config); m_server_name = m_config->read (String (SCIM_CONFIG_FRONTEND_X11_SERVER_NAME), m_server_name); m_xims_dynamic = m_config->read (String (SCIM_CONFIG_FRONTEND_X11_DYNAMIC), true); m_config->signal_connect_reload (slot (this, &X11FrontEnd::reload_config_callback)); m_display_name = init_ims (); SCIM_DEBUG_FRONTEND (1) << "X11 -- Connecting to panel daemon.\n"; if (m_panel_client.open_connection (m_config->get_name (), m_display_name) < 0) throw FrontEndError (String ("X11 -- failed to connect to the panel daemon!")); // Only use ComposeKeyFactory when it's enabled. if (validate_factory (SCIM_COMPOSE_KEY_FACTORY_UUID, "UTF-8")) m_fallback_factory = new ComposeKeyFactory (); else m_fallback_factory = new DummyIMEngineFactory (); m_fallback_instance = m_fallback_factory->create_instance (String ("UTF-8"), 0); m_fallback_instance->signal_connect_commit_string (slot (this, &X11FrontEnd::fallback_commit_string_cb)); } void X11FrontEnd::run () { if (!m_display || !m_xims_window || !m_xims || m_panel_client.get_connection_number () < 0) { SCIM_DEBUG_FRONTEND(1) << "X11 -- Cannot run without initialization!\n"; return; } XEvent event; fd_set read_fds, active_fds; int panel_fd = m_panel_client.get_connection_number (); int xserver_fd = ConnectionNumber (m_display); int max_fd = (panel_fd > xserver_fd) ? panel_fd : xserver_fd; FD_ZERO (&active_fds); FD_SET (panel_fd, &active_fds); FD_SET (xserver_fd, &active_fds); m_should_exit = false; // Select between the X Server and the Panel GUI. while (!m_should_exit) { int ret; read_fds = active_fds; // Process the events which are already send to me from the X Server // before calling select. while (XPending (m_display)) { XNextEvent (m_display, &event); XFilterEvent (&event, None); } if ((ret = select (max_fd + 1, &read_fds, NULL, NULL, NULL)) < 0) { SCIM_DEBUG_FRONTEND(1) << "X11 -- Error when watching events!\n"; return; } if (m_should_exit) break; if (FD_ISSET (panel_fd, &read_fds)) { if (!m_panel_client.filter_event ()) { SCIM_DEBUG_FRONTEND(1) << "X11 -- Lost connection with panel daemon, re-establish it!\n"; m_panel_client.close_connection (); max_fd = xserver_fd; FD_ZERO (&active_fds); FD_SET (xserver_fd, &active_fds); if (m_panel_client.open_connection (m_config->get_name (), m_display_name) >= 0) { panel_fd = m_panel_client.get_connection_number (); FD_SET (panel_fd, &active_fds); max_fd = (panel_fd > xserver_fd) ? panel_fd : xserver_fd; } else { panel_fd = -1; SCIM_DEBUG_FRONTEND(1) << "X11 -- Lost connection with panel daemon, can't re-establish it!\n"; } } } // X Events will be processed at beginning of the loop. } } String X11FrontEnd::get_supported_locales (void) { std::vector all_locales; std::vector supported_locales; scim_split_string_list (all_locales, get_all_locales (), ','); String last = String (setlocale (LC_CTYPE, 0)); for (size_t i = 0; i < all_locales.size (); ++i) { if (setlocale (LC_CTYPE, all_locales [i].c_str ()) && XSupportsLocale ()) supported_locales.push_back (all_locales [i]); } setlocale (LC_CTYPE, last.c_str ()); return scim_combine_string_list (supported_locales, ','); } int X11FrontEnd::get_default_instance (const String &language, const String &encoding) { DefaultInstanceMap::iterator it = m_default_instance_map.find (encoding); String sfid = get_default_factory (language, encoding); if (it == m_default_instance_map.end ()) { int siid = new_instance (sfid, encoding); m_default_instance_map [encoding] = siid; return siid; } else if (get_instance_uuid (it->second) != sfid) { replace_instance (it->second, sfid); } return it->second; } String X11FrontEnd::init_ims (void) { XIMStyle ims_styles_overspot [] = { XIMPreeditPosition | XIMStatusNothing, XIMPreeditNothing | XIMStatusNothing, XIMPreeditPosition | XIMStatusCallbacks, XIMPreeditNothing | XIMStatusCallbacks, 0 }; XIMStyle ims_styles_onspot [] = { XIMPreeditPosition | XIMStatusNothing, XIMPreeditCallbacks | XIMStatusNothing, XIMPreeditNothing | XIMStatusNothing, XIMPreeditPosition | XIMStatusCallbacks, XIMPreeditCallbacks | XIMStatusCallbacks, XIMPreeditNothing | XIMStatusCallbacks, 0 }; XIMEncoding ims_encodings[] = { const_cast ("COMPOUND_TEXT"), 0 }; XIMStyles styles; XIMEncodings encodings; String locales; locales = get_supported_locales (); SCIM_DEBUG_FRONTEND(1) << "Initializing XIMS: " << m_server_name << " with locale (" << locales.length () << "): " << locales << " ...\n"; // Initialize X Display and Root Windows. if (m_xims != (XIMS) 0) { throw FrontEndError (String ("X11 -- XIMS already initialized!")); } m_display = XOpenDisplay (NULL); if (!m_display) throw FrontEndError (String ("X11 -- Cannot open Display!")); m_xims_window = XCreateSimpleWindow (m_display, DefaultRootWindow (m_display), -1, -1, 1, 1, 0, 0, 0); if (!m_xims_window) throw FrontEndError (String ("X11 -- Cannot create IMS Window!")); XSetWindowAttributes attrs; unsigned long attrmask; attrs.override_redirect = true; attrmask = CWOverrideRedirect; XChangeWindowAttributes (m_display, m_xims_window, attrmask, &attrs); XSelectInput (m_display, m_xims_window, KeyPressMask | KeyReleaseMask); m_old_x_error_handler = XSetErrorHandler (x_error_handler); // Initialize XIMS. if (m_config->read (String (SCIM_CONFIG_FRONTEND_ON_THE_SPOT), true) && m_config->read (String (SCIM_CONFIG_FRONTEND_X11_ONTHESPOT), true)) { styles.count_styles = sizeof (ims_styles_onspot)/sizeof (XIMStyle) - 1; styles.supported_styles = ims_styles_onspot; } else { styles.count_styles = sizeof (ims_styles_overspot)/sizeof (XIMStyle) - 1; styles.supported_styles = ims_styles_overspot; } encodings.count_encodings = sizeof (ims_encodings)/sizeof (XIMEncoding) - 1; encodings.supported_encodings = ims_encodings; m_xims = IMOpenIM(m_display, IMModifiers, "Xi18n", IMServerWindow, m_xims_window, IMServerName, m_server_name.c_str (), IMLocale, locales.c_str (), IMServerTransport, "X/", IMInputStyles, &styles, IMEncodingList, &encodings, IMProtocolHandler, ims_protocol_handler, IMFilterEventMask, KeyPressMask | KeyReleaseMask, NULL); if (m_xims == (XIMS)NULL) throw FrontEndError (String ("X11 -- failed to initialize XIM Server!")); if (m_xims_dynamic) { XIMTriggerKey xim_on_key_list[10]; XIMTriggerKey xim_off_key_list[10]; XIMTriggerKeys xim_on_keys; XIMTriggerKeys xim_off_keys; uint32 count_trigger_keys, count_on_keys, count_off_keys; KeyEventList keys; m_frontend_hotkey_matcher.find_hotkeys (SCIM_FRONTEND_HOTKEY_TRIGGER, keys); for (count_trigger_keys=0; count_trigger_keys < 10 && count_trigger_keys < keys.size (); ++count_trigger_keys) { XKeyEvent xkey = scim_x11_keyevent_scim_to_x11 (m_display, keys [count_trigger_keys]); xim_on_key_list [count_trigger_keys].keysym = keys [count_trigger_keys].code; xim_on_key_list [count_trigger_keys].modifier = xkey.state; xim_on_key_list [count_trigger_keys].modifier_mask = xkey.state; } m_frontend_hotkey_matcher.find_hotkeys (SCIM_FRONTEND_HOTKEY_ON, keys); for (count_on_keys=count_trigger_keys; count_on_keys < 10 && (count_on_keys - count_trigger_keys) < keys.size (); ++count_on_keys) { XKeyEvent xkey = scim_x11_keyevent_scim_to_x11 (m_display, keys [count_on_keys - count_trigger_keys]); xim_on_key_list [count_on_keys].keysym = keys [count_on_keys - count_trigger_keys].code; xim_on_key_list [count_on_keys].modifier = xkey.state; xim_on_key_list [count_on_keys].modifier_mask = xkey.state; } m_frontend_hotkey_matcher.find_hotkeys (SCIM_FRONTEND_HOTKEY_OFF, keys); for (count_off_keys=0; count_off_keys < 10 && count_off_keys < keys.size (); ++count_off_keys) { XKeyEvent xkey = scim_x11_keyevent_scim_to_x11 (m_display, keys [count_off_keys]); xim_off_key_list [count_off_keys].keysym = keys [count_off_keys].code; xim_off_key_list [count_off_keys].modifier = xkey.state; xim_off_key_list [count_off_keys].modifier_mask = xkey.state; } xim_on_keys.count_keys = count_on_keys; xim_on_keys.keylist = xim_on_key_list; xim_off_keys.count_keys = count_off_keys; xim_off_keys.keylist = xim_off_key_list; IMSetIMValues(m_xims, IMOnKeysList, &xim_on_keys, IMOffKeysList, &xim_off_keys, NULL); } return String (DisplayString (m_display)); } bool X11FrontEnd::filter_hotkeys (X11IC *ic, const KeyEvent &scimkey) { bool ok = false; if (!is_focused_ic (ic)) return false; m_frontend_hotkey_matcher.push_key_event (scimkey); m_imengine_hotkey_matcher.push_key_event (scimkey); FrontEndHotkeyAction hotkey_action = m_frontend_hotkey_matcher.get_match_result (); // Match trigger and show factory menu hotkeys. if (hotkey_action == SCIM_FRONTEND_HOTKEY_TRIGGER) { if (!ic->xims_on) ims_turn_on_ic (ic); else ims_turn_off_ic (ic); ok = true; } else if (hotkey_action == SCIM_FRONTEND_HOTKEY_ON) { if (!ic->xims_on) ims_turn_on_ic (ic); ok = true; } else if (hotkey_action == SCIM_FRONTEND_HOTKEY_OFF) { if (ic->xims_on) ims_turn_off_ic (ic); ok = true; } else if (hotkey_action == SCIM_FRONTEND_HOTKEY_NEXT_FACTORY) { String encoding = scim_get_locale_encoding (ic->locale); String language = scim_get_locale_language (ic->locale); String sfid = get_next_factory ("", encoding, get_instance_uuid (ic->siid)); if (validate_factory (sfid, encoding)) { ims_turn_off_ic (ic); replace_instance (ic->siid, sfid); m_panel_client.register_input_context (ic->icid, get_instance_uuid (ic->siid)); set_ic_capabilities (ic); set_default_factory (language, sfid); ims_turn_on_ic (ic); } ok = true; } else if (hotkey_action == SCIM_FRONTEND_HOTKEY_PREVIOUS_FACTORY) { String encoding = scim_get_locale_encoding (ic->locale); String language = scim_get_locale_language (ic->locale); String sfid = get_previous_factory ("", encoding, get_instance_uuid (ic->siid)); if (validate_factory (sfid, encoding)) { ims_turn_off_ic (ic); replace_instance (ic->siid, sfid); m_panel_client.register_input_context (ic->icid, get_instance_uuid (ic->siid)); set_ic_capabilities (ic); set_default_factory (language, sfid); ims_turn_on_ic (ic); } ok = true; } else if (hotkey_action == SCIM_FRONTEND_HOTKEY_SHOW_FACTORY_MENU) { panel_req_show_factory_menu (ic); ok = true; } else if (m_imengine_hotkey_matcher.is_matched ()) { String encoding = scim_get_locale_encoding (ic->locale); String language = scim_get_locale_language (ic->locale); String sfid = m_imengine_hotkey_matcher.get_match_result (); if (validate_factory (sfid, encoding)) { ims_turn_off_ic (ic); replace_instance (ic->siid, sfid); m_panel_client.register_input_context (ic->icid, get_instance_uuid (ic->siid)); set_ic_capabilities (ic); set_default_factory (language, sfid); ims_turn_on_ic (ic); } ok = true; } return ok; } int X11FrontEnd::ims_open_handler (XIMS ims, IMOpenStruct *call_data) { SCIM_DEBUG_FRONTEND(2) << " IMS Open handler: LANG=" << call_data->lang.name << " Connect ID=" << call_data->connect_id << "\n"; m_ic_manager.new_connection (call_data); return 1; } int X11FrontEnd::ims_close_handler (XIMS ims, IMCloseStruct *call_data) { SCIM_DEBUG_FRONTEND(2) << " IMS Close handler: Connect ID=" << call_data->connect_id << "\n"; m_ic_manager.delete_connection (call_data); return 1; } int X11FrontEnd::ims_create_ic_handler (XIMS ims, IMChangeICStruct *call_data) { String locale = m_ic_manager.get_connection_locale (call_data->connect_id); String language = scim_get_locale_language (locale); String encoding = scim_get_locale_encoding (locale); SCIM_DEBUG_FRONTEND(2) << " IMS Create handler: Encoding=" << encoding << "\n"; if (language.empty () || encoding.empty ()) return 0; int siid = -1; if (m_shared_input_method) { siid = get_default_instance (language, encoding); } else { String sfid = get_default_factory (language, encoding); siid = new_instance (sfid, encoding); } if (siid >= 0) { uint32 attrs = m_ic_manager.create_ic (call_data, siid); X11IC *ic = m_ic_manager.find_ic (call_data->icid); SCIM_DEBUG_FRONTEND(2) << " IMS Create handler OK: SIID=" << siid << " ICID = " << ic->icid << " Connect ID=" << call_data->connect_id << "\n"; m_panel_client.prepare (ic->icid); m_panel_client.register_input_context (ic->icid, get_instance_uuid (siid)); if (attrs & SCIM_X11_IC_INPUT_STYLE) set_ic_capabilities (ic); m_panel_client.send (); if (m_shared_input_method) { ic->xims_on = m_config->read (String (SCIM_CONFIG_FRONTEND_IM_OPENED_BY_DEFAULT), ic->xims_on); ic->shared_siid = true; } return 1; } else { SCIM_DEBUG_FRONTEND(2) << " IMS Create handler Failed: " << " Connect ID=" << call_data->connect_id << "\n"; } return 0; } int X11FrontEnd::ims_set_ic_values_handler (XIMS ims, IMChangeICStruct *call_data) { uint32 changes; X11IC *ic = m_ic_manager.find_ic (call_data->icid); if (!validate_ic (ic)) { SCIM_DEBUG_FRONTEND(1) << "Cannot find IC for icid " << call_data->icid << "\n"; return 0; } changes = m_ic_manager.set_ic_values (call_data); if (changes & SCIM_X11_IC_ENCODING) { SCIM_DEBUG_FRONTEND(1) << "Cannot change IC encoding on the fly!\n"; return 0; } SCIM_DEBUG_FRONTEND(2) << " IMS Set IC values handler, ICID=" << call_data->icid << " Connect ID=" << call_data->connect_id << " Changes=" << changes << "\n"; m_panel_client.prepare (ic->icid); //It's focus IC if (is_focused_ic (ic)) { if (changes & SCIM_X11_IC_PRE_SPOT_LOCATION) panel_req_update_spot_location (ic); } // Update the client capabilities, if the input style was changed. if (changes & SCIM_X11_IC_INPUT_STYLE) set_ic_capabilities (ic); m_panel_client.send (); return 1; } int X11FrontEnd::ims_get_ic_values_handler (XIMS ims, IMChangeICStruct *call_data) { SCIM_DEBUG_FRONTEND(2) << " IMS Get IC values handler, ICID=" << call_data->icid << " Connect ID=" << call_data->connect_id << "\n"; m_ic_manager.get_ic_values (call_data); return 1; } int X11FrontEnd::ims_destroy_ic_handler (XIMS ims, IMDestroyICStruct *call_data) { X11IC *ic = m_ic_manager.find_ic (call_data->icid); SCIM_DEBUG_FRONTEND(2) << " IMS Destroy IC handler, ICID=" << call_data->icid << " Connect ID=" << call_data->connect_id << "\n"; if (!validate_ic (ic)) { SCIM_DEBUG_FRONTEND(1) << "Cannot find IC for icid " << call_data->icid << "\n"; return 0; } m_panel_client.prepare (ic->icid); if (is_focused_ic (ic)) { focus_out (ic->siid); m_panel_client.turn_off (ic->icid); m_panel_client.focus_out (ic->icid); } X11IC *old_focus = m_focus_ic; m_focus_ic = ic; if (!ic->shared_siid) delete_instance (ic->siid); m_panel_client.remove_input_context (ic->icid); m_panel_client.send (); if (is_focused_ic (ic)) m_focus_ic = 0; else m_focus_ic = old_focus; m_ic_manager.destroy_ic (call_data); return 1; } int X11FrontEnd::ims_set_ic_focus_handler (XIMS ims, IMChangeFocusStruct *call_data) { SCIM_DEBUG_FRONTEND(2) << " IMS Set IC focus handler, ID=" << call_data->icid << " Connect ID=" << call_data->connect_id << "\n"; X11IC *ic =m_ic_manager.find_ic (call_data->icid); if (!validate_ic (ic)) { SCIM_DEBUG_FRONTEND(1) << "Cannot find IC for icid " << call_data->icid << "\n"; return 0; } if (validate_ic (m_focus_ic) && m_focus_ic->icid != ic->icid) { m_panel_client.prepare (m_focus_ic->icid); stop_ic (m_focus_ic); m_panel_client.focus_out (m_focus_ic->icid); m_panel_client.send (); } String encoding = scim_get_locale_encoding (ic->locale); String language = scim_get_locale_language (ic->locale); bool need_reg = false; bool need_cap = false; bool need_reset = false; m_focus_ic = ic; m_panel_client.prepare (ic->icid); if (m_shared_input_method) { SCIM_DEBUG_FRONTEND(3) << "Shared input method.\n"; if (!ic->shared_siid) { delete_instance (ic->siid); ic->shared_siid = true; } ic->siid = get_default_instance (language, encoding); ic->onspot_preedit_started = false; ic->onspot_preedit_length = 0; ic->onspot_caret = 0; ic->xims_on = m_config->read (String (SCIM_CONFIG_FRONTEND_IM_OPENED_BY_DEFAULT), ic->xims_on); need_reg = true; need_cap = true; need_reset = true; } else if (ic->shared_siid) { String sfid = get_default_factory (language, encoding); ic->siid = new_instance (sfid, encoding); ic->onspot_preedit_started = false; ic->onspot_preedit_length = 0; ic->onspot_caret = 0; ic->shared_siid = false; need_reg = true; need_cap = true; } panel_req_focus_in (ic); if (need_reset) reset (ic->siid); if (need_cap) set_ic_capabilities (ic); if (need_reg) m_panel_client.register_input_context (ic->icid, get_instance_uuid (ic->siid)); if (ic->xims_on) { start_ic (ic); } else { panel_req_update_factory_info (ic); m_panel_client.turn_off (ic->icid); } m_panel_client.send (); return 1; } int X11FrontEnd::ims_unset_ic_focus_handler (XIMS ims, IMChangeFocusStruct *call_data) { SCIM_DEBUG_FRONTEND(2) << " IMS Unset IC focus handler, ID=" << call_data->icid << " Connect ID=" << call_data->connect_id << "\n"; X11IC *ic =m_ic_manager.find_ic (call_data->icid); if (!validate_ic (ic)) { SCIM_DEBUG_FRONTEND(1) << "Cannot find IC for icid " << call_data->icid << "\n"; return 0; } if (is_focused_ic (ic)) { m_panel_client.prepare (ic->icid); stop_ic (ic); m_panel_client.focus_out (ic->icid); m_panel_client.send (); m_focus_ic = 0; } return 1; } int X11FrontEnd::ims_reset_ic_handler (XIMS ims, IMResetICStruct *call_data) { SCIM_DEBUG_FRONTEND(2) << " IMS Reset IC handler, ID=" << call_data->icid << " Connect ID=" << call_data->connect_id << "\n"; X11IC *ic =m_ic_manager.find_ic (call_data->icid); if (!validate_ic (ic)) { SCIM_DEBUG_FRONTEND(1) << "Cannot find IC for icid " << call_data->icid << "\n"; return 0; } m_panel_client.prepare (ic->icid); reset (ic->siid); m_panel_client.send (); return 1; } int X11FrontEnd::ims_trigger_notify_handler (XIMS ims, IMTriggerNotifyStruct *call_data) { SCIM_DEBUG_FRONTEND(2) << " IMS Trigger notify handler, Flag=" << call_data->flag << " KeyIndex=" << call_data->key_index << " EventMask=" << call_data->event_mask << "\n"; X11IC *ic =m_ic_manager.find_ic (call_data->icid); if (!validate_ic (ic)) { SCIM_DEBUG_FRONTEND(1) << "Cannot find IC for icid " << call_data->icid << "\n"; return 0; } int ret = 0; m_panel_client.prepare (ic->icid); if (!call_data->flag) { ims_turn_on_ic (ic); ret = 1; } else { ims_turn_off_ic (ic); ret = 1; } m_panel_client.send (); return ret; } int X11FrontEnd::ims_forward_event_handler (XIMS ims, IMForwardEventStruct *call_data) { SCIM_DEBUG_FRONTEND(2) << " IMS Forward event handler, ICID=" << call_data->icid << " Connect ID=" << call_data->connect_id << " SerialNo=" << call_data->serial_number << "EventType=" << call_data->event.type << "\n"; if (call_data->event.type != KeyPress && call_data->event.type != KeyRelease) return 1; X11IC *ic = m_ic_manager.find_ic (call_data->icid); if (!validate_ic (ic)) { SCIM_DEBUG_FRONTEND(1) << "Cannot find IC for icid " << call_data->icid << "\n"; return 0; } // If the ic is not focused, then return. if (!is_focused_ic (ic)) { SCIM_DEBUG_FRONTEND(1) << "IC " << call_data->icid << " is not focused, focus it first.\n"; return 1; } XKeyEvent *event = (XKeyEvent*) &(call_data->event); KeyEvent scimkey = scim_x11_keyevent_x11_to_scim (m_display, *event); scimkey.mask &= m_valid_key_mask; // Set keyboard layout information. scimkey.layout = m_keyboard_layout; SCIM_DEBUG_FRONTEND(3) << " KeyEvent:\n" << " Type=" << event->type << " Display=" << event->display << " Serial=" << event->serial << " Send=" << event->send_event << "\n" << " X=" << event->x << " Y=" << event->y << " XRoot=" << event->x_root << " YRoot=" << event->y_root << "\n" << " Time=" << event->time << " SameScreen=" << event->same_screen << " SubWin=" << event->subwindow << " Win=" << event->window << "\n" << " Root=" << event->root << " KeyCode=" << event->keycode << " State=" << event->state << "\n" << " scimKeyEvent=(" << scimkey.code << "," << scimkey.mask << ")\n"; m_panel_client.prepare (ic->icid); if (!filter_hotkeys (ic, scimkey)) { if (!ic->xims_on || !process_key_event (ic->siid, scimkey)) { if (!m_fallback_instance->process_key_event (scimkey)) IMForwardEvent (ims, (XPointer) call_data); } } m_panel_client.send (); return 1; } int X11FrontEnd::ims_sync_reply_handler (XIMS ims, IMSyncXlibStruct *call_data) { SCIM_DEBUG_FRONTEND(2) << " IMS Sync reply handler.\n"; return 1; } int X11FrontEnd::ims_preedit_start_reply_handler (XIMS ims, IMPreeditCBStruct *call_data) { SCIM_DEBUG_FRONTEND(2) << " IMS Preedit start reply handler.\n"; return 1; } int X11FrontEnd::ims_preedit_caret_reply_handler (XIMS ims, IMPreeditCBStruct *call_data) { SCIM_DEBUG_FRONTEND(2) << " IMS Preedit caret reply handler.\n"; return 1; } void X11FrontEnd::ims_commit_string (const X11IC *ic, const WideString& str) { IMCommitStruct cms; XTextProperty tp; SCIM_DEBUG_FRONTEND(2) << " IMS Committing string.\n"; if (ims_wcstocts (tp, ic, str)) { memset (&cms, 0, sizeof (cms)); cms.major_code = XIM_COMMIT; cms.icid = ic->icid; cms.connect_id = ic->connect_id; cms.flag = XimLookupChars; cms.commit_string = (char *) tp.value; IMCommitString (m_xims, (XPointer) & cms); XFree (tp.value); } } void X11FrontEnd::ims_forward_key_event (const X11IC *ic, const KeyEvent &key) { IMForwardEventStruct fe; XEvent xkp; XKeyEvent *event = (XKeyEvent*) (&xkp); //create event xkp.xkey = scim_x11_keyevent_scim_to_x11 (m_display, key); memset (&fe, 0, sizeof (fe)); fe.major_code = XIM_FORWARD_EVENT; fe.icid = ic->icid; fe.connect_id = ic->connect_id; fe.sync_bit = 0; fe.serial_number = 0L; if (ic->focus_win) xkp.xkey.window = ic->focus_win; else if (ic->client_win) xkp.xkey.window = ic->client_win; memcpy (&(fe.event), &xkp, sizeof (fe.event)); IMForwardEvent (m_xims, (XPointer) & fe); } bool X11FrontEnd::ims_wcstocts (XTextProperty &tp,const X11IC *ic, const WideString& src) { if (!validate_ic (ic)) return false; String last = String (setlocale (LC_CTYPE, 0)); if (!setlocale (LC_CTYPE, ic->locale.c_str ())) { SCIM_DEBUG_FRONTEND(3) << " wcstocts -- unspported locale " << ic->locale.c_str () << "\n"; setlocale (LC_CTYPE, last.c_str ()); return false; } int ret; if (m_wchar_ucs4_equal && !m_broken_wchar) { wchar_t *wclist [1]; SCIM_DEBUG_FRONTEND(3) << " Convert WideString to COMPOUND_TEXT -- Using XwcTextListToTextProperty.\n"; wclist [0] = new wchar_t [src.length () + 1]; memcpy (wclist [0], src.data (), sizeof (wchar_t) * src.length ()); wclist [0][src.length ()] = 0; ret = XwcTextListToTextProperty (m_display, wclist, 1, XCompoundTextStyle, &tp); delete [] wclist [0]; } else { char *clist [1]; String mbs; SCIM_DEBUG_FRONTEND(3) << " Convert WideString to COMPOUND_TEXT -- Using XmbTextListToTextProperty.\n"; if (!m_iconv.set_encoding (ic->encoding)) { SCIM_DEBUG_FRONTEND(3) << " Convert WideString to COMPOUND_TEXT -- Cannot initialize iconv for encoding " << ic->encoding << "\n"; setlocale (LC_CTYPE, last.c_str ()); return false; } m_iconv.convert (mbs, src); clist [0] = (char *) mbs.c_str (); ret = XmbTextListToTextProperty (m_display, clist, 1, XCompoundTextStyle, &tp); } setlocale (LC_CTYPE, last.c_str ()); return ret >= 0; } bool X11FrontEnd::ims_is_preedit_callback_mode (const X11IC *ic) { return validate_ic (ic) && (ic->input_style & XIMPreeditCallbacks); } void X11FrontEnd::ims_preedit_callback_start (X11IC *ic) { if (!validate_ic (ic) || ic->onspot_preedit_started) return; ic->onspot_preedit_started = true; SCIM_DEBUG_FRONTEND(2) << " Onspot preedit start, ICID=" << ic->icid << " Connect ID=" << ic->connect_id << "\n"; IMPreeditCBStruct pcb; pcb.major_code = XIM_PREEDIT_START; pcb.minor_code = 0; pcb.connect_id = ic->connect_id; pcb.icid = ic->icid; pcb.todo.return_value = 0; IMCallCallback (m_xims, (XPointer) & pcb); } void X11FrontEnd::ims_preedit_callback_done (X11IC *ic) { if (!validate_ic (ic) || !ic->onspot_preedit_started) return; SCIM_DEBUG_FRONTEND(2) << " Onspot preedit done, ICID=" << ic->icid << " Connect ID=" << ic->connect_id << "\n"; // First clear the preedit string. ims_preedit_callback_draw (ic, WideString ()); ic->onspot_preedit_started = false; IMPreeditCBStruct pcb; pcb.major_code = XIM_PREEDIT_DONE; pcb.minor_code = 0; pcb.connect_id = ic->connect_id; pcb.icid = ic->icid; pcb.todo.return_value = 0; IMCallCallback (m_xims, (XPointer) & pcb); } void X11FrontEnd::ims_preedit_callback_draw (X11IC *ic, const WideString& str, const AttributeList & attrs) { if (!validate_ic (ic)) return; if (!ic->onspot_preedit_started) ims_preedit_callback_start (ic); SCIM_DEBUG_FRONTEND(2) << " Onspot preedit draw, ICID=" << ic->icid << " Connect ID=" << ic->connect_id << "\n"; IMPreeditCBStruct pcb; XIMText text; XIMFeedback *feedback; XIMFeedback attr; XTextProperty tp; unsigned int i, j, len; len = str.length (); if (!len && !ic->onspot_preedit_length) return; feedback = new XIMFeedback [str.length () + 1]; for (i = 0; i < len; ++i) feedback [i] = 0; for (i = 0; i < attrs.size (); ++i) { attr = 0; if (attrs [i].get_type () == SCIM_ATTR_DECORATE) { if (attrs [i].get_value () == SCIM_ATTR_DECORATE_REVERSE) attr = XIMReverse; else if (attrs [i].get_value () == SCIM_ATTR_DECORATE_HIGHLIGHT) attr = XIMHighlight; } for (j = attrs [i].get_start (); j < attrs [i].get_end () && j < len; ++j) feedback [j] |= attr; } for (i = 0; i < len; ++i) if (!feedback [i]) feedback [i] = XIMUnderline; feedback [len] = 0; pcb.major_code = XIM_PREEDIT_DRAW; pcb.connect_id = ic->connect_id; pcb.icid = ic->icid; pcb.todo.draw.caret = len; pcb.todo.draw.chg_first = 0; pcb.todo.draw.chg_length = ic->onspot_preedit_length; pcb.todo.draw.text = &text; text.feedback = feedback; if (len > 0 && ims_wcstocts (tp, ic, str)) { text.encoding_is_wchar = false; text.length = strlen ((char*)tp.value); text.string.multi_byte = (char*)tp.value; IMCallCallback (m_xims, (XPointer) & pcb); XFree (tp.value); } else { text.encoding_is_wchar = false; text.length = 0; text.string.multi_byte = const_cast (""); IMCallCallback (m_xims, (XPointer) & pcb); len = 0; } ic->onspot_preedit_length = len; delete [] feedback; } void X11FrontEnd::ims_preedit_callback_caret (X11IC *ic, int caret) { if (!validate_ic (ic) || !ic->onspot_preedit_started || caret > ic->onspot_preedit_length || caret < 0) return; SCIM_DEBUG_FRONTEND(2) << " Onspot preedit caret, ICID=" << ic->icid << " Connect ID=" << ic->connect_id << "\n"; //save the caret position for future usage when updating preedit string. ic->onspot_caret = caret; //client usually does not support this callback IMPreeditCBStruct pcb; pcb.major_code = XIM_PREEDIT_CARET; pcb.connect_id = ic->connect_id; pcb.icid = ic->icid; pcb.todo.caret.direction = XIMAbsolutePosition; pcb.todo.caret.position = caret; pcb.todo.caret.style = XIMIsPrimary; IMCallCallback (m_xims, (XPointer) & pcb); } bool X11FrontEnd::ims_string_conversion_callback_retrieval (X11IC *ic, WideString &text, int &cursor, int maxlen_before, int maxlen_after) { #if 0 if (!validate_ic (ic) || (maxlen_before == 0 && maxlen_after == 0)) return false; SCIM_DEBUG_FRONTEND(2) << " String conversion callback retrieval, ICID=" << ic->icid << " Connect ID=" << ic->connect_id << "\n"; //client usually does not support this callback IMStrConvCBStruct sccb; sccb.major_code = XIM_STR_CONVERSION; sccb.connect_id = ic->connect_id; sccb.icid = ic->icid; sccb.strconv.text = 0; sccb.strconv.operation = XIMStringConversionRetrieval; sccb.strconv.position = 0; sccb.strconv.direction = XIMBackwardChar; sccb.strconv.factor = (short)((maxlen_before > 0) ? maxlen_before : 1); IMCallCallback (m_xims, (XPointer) & sccb); std::cerr << "Surrounding text: "; if (sccb.strconv.text && sccb.strconv.text->string.mbs) { std::cerr << sccb.strconv.text->string.mbs << " "; } sccb.strconv.direction = XIMForwardChar; sccb.strconv.factor = (maxlen_after > 0) ? maxlen_after : 1; IMCallCallback (m_xims, (XPointer) & sccb); if (sccb.strconv.text && sccb.strconv.text->string.mbs) { std::cerr << sccb.strconv.text->string.mbs; } std::cerr << "\n"; #endif return false; } bool X11FrontEnd::ims_string_conversion_callback_substitution (X11IC *ic, int offset, int len) { #if 0 if (!validate_ic (ic) || len <= 0) return false; SCIM_DEBUG_FRONTEND(2) << " String conversion callback substitution, ICID=" << ic->icid << " Connect ID=" << ic->connect_id << "\n"; //client usually does not support this callback IMStrConvCBStruct sccb; sccb.major_code = XIM_STR_CONVERSION; sccb.connect_id = ic->connect_id; sccb.icid = ic->icid; sccb.strconv.text = 0; sccb.strconv.operation = XIMStringConversionSubstitution; sccb.strconv.position = (XIMStringConversionPosition) offset; sccb.strconv.direction = XIMForwardChar; sccb.strconv.factor = (short) len; IMCallCallback (m_xims, (XPointer) & sccb); return sccb.strconv.text != NULL; #endif return false; } void X11FrontEnd::ims_turn_on_ic (X11IC *ic) { if (validate_ic (ic) && !ic->xims_on) { SCIM_DEBUG_FRONTEND(2) << "ims_turn_on_ic.\n"; ic->xims_on = true; //Record the IC on/off status if (m_shared_input_method) m_config->write (String (SCIM_CONFIG_FRONTEND_IM_OPENED_BY_DEFAULT), true); if (is_focused_ic (ic)) { panel_req_focus_in (ic); start_ic (ic); } } } void X11FrontEnd::ims_turn_off_ic (X11IC *ic) { if (validate_ic (ic) && ic->xims_on) { SCIM_DEBUG_FRONTEND(2) << "ims_turn_off_ic.\n"; ic->xims_on = false; //Record the IC on/off status if (m_shared_input_method) m_config->write (String (SCIM_CONFIG_FRONTEND_IM_OPENED_BY_DEFAULT), false); if (is_focused_ic (ic)) stop_ic (ic); } } void X11FrontEnd::ims_sync_ic (X11IC *ic) { if (validate_ic (ic)) { IMSyncXlibStruct data; data.major_code = XIM_SYNC; data.minor_code = 0; data.connect_id = ic->connect_id; data.icid = ic->icid; IMSyncXlib(m_xims, (XPointer) &data); } } void X11FrontEnd::set_ic_capabilities (const X11IC *ic) { if (validate_ic (ic)) { unsigned int cap = SCIM_CLIENT_CAP_ALL_CAPABILITIES - SCIM_CLIENT_CAP_SURROUNDING_TEXT; if (!ims_is_preedit_callback_mode (ic)) cap -= SCIM_CLIENT_CAP_ONTHESPOT_PREEDIT; update_client_capabilities (ic->siid, cap); } } void X11FrontEnd::start_ic (X11IC *ic) { if (validate_ic (ic)) { if (m_xims_dynamic) { IMPreeditStateStruct ips; ips.major_code = 0; ips.minor_code = 0; ips.icid = ic->icid; ips.connect_id = ic->connect_id; IMPreeditStart (m_xims, (XPointer) & ips); } panel_req_update_screen (ic); panel_req_update_spot_location (ic); panel_req_update_factory_info (ic); m_panel_client.turn_on (ic->icid); m_panel_client.hide_preedit_string (ic->icid); m_panel_client.hide_aux_string (ic->icid); m_panel_client.hide_lookup_table (ic->icid); if (ic->shared_siid) reset (ic->siid); focus_in (ic->siid); } } void X11FrontEnd::stop_ic (X11IC *ic) { if (validate_ic (ic)) { focus_out (ic->siid); if (ic->shared_siid) reset (ic->siid); if (ims_is_preedit_callback_mode (ic)) ims_preedit_callback_done (ic); panel_req_update_factory_info (ic); m_panel_client.turn_off (ic->icid); if (m_xims_dynamic) { IMPreeditStateStruct ips; ips.major_code = 0; ips.minor_code = 0; ips.icid = ic->icid; ips.connect_id = ic->connect_id; IMPreeditEnd (m_xims, (XPointer) & ips); } } } int X11FrontEnd::ims_protocol_handler (XIMS ims, IMProtocol *call_data) { if (!_scim_frontend || !call_data || ims != _scim_frontend->m_xims) return 0; switch (call_data->major_code) { case XIM_OPEN: return _scim_frontend->ims_open_handler (ims, (IMOpenStruct *) call_data); case XIM_CLOSE: return _scim_frontend->ims_close_handler (ims, (IMCloseStruct *) call_data); case XIM_CREATE_IC: return _scim_frontend->ims_create_ic_handler (ims, (IMChangeICStruct *) call_data); case XIM_DESTROY_IC: return _scim_frontend->ims_destroy_ic_handler (ims, (IMDestroyICStruct *) call_data); case XIM_SET_IC_VALUES: return _scim_frontend->ims_set_ic_values_handler (ims, (IMChangeICStruct *) call_data); case XIM_GET_IC_VALUES: return _scim_frontend->ims_get_ic_values_handler (ims, (IMChangeICStruct *) call_data); case XIM_FORWARD_EVENT: return _scim_frontend->ims_forward_event_handler (ims, (IMForwardEventStruct *) call_data); case XIM_SET_IC_FOCUS: return _scim_frontend->ims_set_ic_focus_handler (ims, (IMChangeFocusStruct *) call_data); case XIM_UNSET_IC_FOCUS: return _scim_frontend->ims_unset_ic_focus_handler (ims, (IMChangeFocusStruct *) call_data); case XIM_RESET_IC: return _scim_frontend->ims_reset_ic_handler (ims, (IMResetICStruct *) call_data); case XIM_TRIGGER_NOTIFY: return _scim_frontend->ims_trigger_notify_handler (ims, (IMTriggerNotifyStruct *) call_data); case XIM_PREEDIT_START_REPLY: return _scim_frontend->ims_preedit_start_reply_handler (ims, (IMPreeditCBStruct *) call_data); case XIM_PREEDIT_CARET_REPLY: return _scim_frontend->ims_preedit_caret_reply_handler (ims, (IMPreeditCBStruct *) call_data); case XIM_SYNC_REPLY: return _scim_frontend->ims_sync_reply_handler (ims, (IMSyncXlibStruct *) call_data); default: SCIM_DEBUG_FRONTEND(1) << "Unknown major code " << call_data->major_code << "\n"; break; } return 1; } int X11FrontEnd::x_error_handler (Display *display, XErrorEvent *error) { #if ENABLE_DEBUG char buf [256]; XGetErrorText (display, error->error_code, buf, 256); SCIM_DEBUG_FRONTEND (1) << "X Error occurred:\n" << " Display = " << display << "\n" << " Type = " << error->type << "\n" << " Resourceid = " << error->resourceid << "\n" << " Serial = " << error->serial << "\n" << " ErrorCode = " << (uint32) error->error_code << "\n" << " RequestCode = " << (uint32) error->request_code << "\n" << " MinorCode = " << (uint32) error->minor_code << "\n" << " Error Text = " << buf << "\n"; #endif // trap all possible error for broken focus ic. if ((error->error_code == BadWindow || error->error_code == BadMatch) && (error->request_code == X_GetWindowAttributes || error->request_code == X_GetProperty || error->request_code == X_SendEvent || error->request_code == X_TranslateCoords)) { SCIM_DEBUG_FRONTEND(1) << "Discard This Error\n"; } else if (_scim_frontend && _scim_frontend->m_old_x_error_handler) { _scim_frontend->m_old_x_error_handler (display, error); } return 0; } //===================== Panel Slot callbacks ======================= void X11FrontEnd::panel_slot_reload_config (int context) { m_config->reload (); } void X11FrontEnd::panel_slot_exit (int context) { m_should_exit = true; } void X11FrontEnd::panel_slot_update_lookup_table_page_size (int context, int page_size) { X11IC *ic = m_ic_manager.find_ic (context); if (validate_ic (ic)) { m_panel_client.prepare (ic->icid); update_lookup_table_page_size (ic->siid, page_size); m_panel_client.send (); } } void X11FrontEnd::panel_slot_lookup_table_page_up (int context) { X11IC *ic = m_ic_manager.find_ic (context); if (validate_ic (ic)) { m_panel_client.prepare (ic->icid); lookup_table_page_up (ic->siid); m_panel_client.send (); } } void X11FrontEnd::panel_slot_lookup_table_page_down (int context) { X11IC *ic = m_ic_manager.find_ic (context); if (validate_ic (ic)) { m_panel_client.prepare (ic->icid); lookup_table_page_down (ic->siid); m_panel_client.send (); } } void X11FrontEnd::panel_slot_trigger_property (int context, const String &property) { X11IC *ic = m_ic_manager.find_ic (context); if (validate_ic (ic)) { m_panel_client.prepare (ic->icid); trigger_property (ic->siid, property); m_panel_client.send (); } } void X11FrontEnd::panel_slot_process_helper_event (int context, const String &target_uuid, const String &helper_uuid, const Transaction &trans) { X11IC *ic = m_ic_manager.find_ic (context); if (validate_ic (ic) && get_instance_uuid (ic->siid) == target_uuid) { m_panel_client.prepare (ic->icid); process_helper_event (ic->siid, helper_uuid, trans); m_panel_client.send (); } } void X11FrontEnd::panel_slot_move_preedit_caret (int context, int caret_pos) { X11IC *ic = m_ic_manager.find_ic (context); if (validate_ic (ic)) { m_panel_client.prepare (ic->icid); move_preedit_caret (ic->siid, caret_pos); m_panel_client.send (); } } void X11FrontEnd::panel_slot_select_candidate (int context, int cand_index) { X11IC *ic = m_ic_manager.find_ic (context); if (validate_ic (ic)) { m_panel_client.prepare (ic->icid); select_candidate (ic->siid, cand_index); m_panel_client.send (); } } void X11FrontEnd::panel_slot_process_key_event (int context, const KeyEvent &key) { X11IC *ic = m_ic_manager.find_ic (context); if (validate_ic (ic)) { m_panel_client.prepare (ic->icid); if (!filter_hotkeys (ic, key)) { if (!ic->xims_on || !process_key_event (ic->siid, key)) { if (!m_fallback_instance->process_key_event (key)) ims_forward_key_event (ic, key); } } m_panel_client.send (); } } void X11FrontEnd::panel_slot_commit_string (int context, const WideString &wstr) { X11IC *ic = m_ic_manager.find_ic (context); if (validate_ic (ic)) { ims_commit_string (ic, wstr); } } void X11FrontEnd::panel_slot_forward_key_event (int context, const KeyEvent &key) { X11IC *ic = m_ic_manager.find_ic (context); if (validate_ic (ic)) { ims_forward_key_event (ic, key); } } void X11FrontEnd::panel_slot_request_help (int context) { X11IC *ic = m_ic_manager.find_ic (context); if (validate_ic (ic)) { m_panel_client.prepare (ic->icid); panel_req_show_help (ic); m_panel_client.send (); } } void X11FrontEnd::panel_slot_request_factory_menu (int context) { X11IC *ic = m_ic_manager.find_ic (context); if (validate_ic (ic)) { m_panel_client.prepare (ic->icid); panel_req_show_factory_menu (ic); m_panel_client.send (); } } void X11FrontEnd::panel_slot_change_factory (int context, const String &uuid) { SCIM_DEBUG_FRONTEND (1) << "panel_slot_change_factory " << uuid << "\n"; X11IC *ic = m_ic_manager.find_ic (context); if (validate_ic (ic)) { m_panel_client.prepare (ic->icid); if (uuid.length () == 0 && ic->xims_on) { SCIM_DEBUG_FRONTEND (2) << "panel_slot_change_factory : turn off.\n"; ims_turn_off_ic (ic); }else if(uuid.length () == 0 && (ic->xims_on == false)){ panel_req_update_factory_info (ic); m_panel_client.turn_off (ic->icid); }else if (uuid.length ()) { String encoding = scim_get_locale_encoding (ic->locale); String language = scim_get_locale_language (ic->locale); if (validate_factory (uuid, encoding)) { ims_turn_off_ic (ic); replace_instance (ic->siid, uuid); m_panel_client.register_input_context (ic->icid, get_instance_uuid (ic->siid)); set_ic_capabilities (ic); set_default_factory (language, uuid); ims_turn_on_ic (ic); } } m_panel_client.send (); } } //================ Panel Request methods ==================== void X11FrontEnd::panel_req_update_screen (const X11IC *ic) { Window target = ic->focus_win ? ic->focus_win : ic->client_win; XWindowAttributes xwa; if (target && XGetWindowAttributes (m_display, target, &xwa) && validate_ic (ic)) { int num = ScreenCount (m_display); int idx; for (idx = 0; idx < num; ++ idx) { if (ScreenOfDisplay (m_display, idx) == xwa.screen) { m_panel_client.update_screen (ic->icid, idx); return; } } } } void X11FrontEnd::panel_req_show_help (const X11IC *ic) { String help; String tmp; help = String (_("Smart Common Input Method platform ")) + String (SCIM_VERSION) + String (_("\n(C) 2002-2005 James Su \n\n")); if (ic->xims_on) { help += utf8_wcstombs (get_instance_name (ic->siid)); help += String (_(":\n\n")); help += utf8_wcstombs (get_instance_authors (ic->siid)); help += String (_("\n\n")); help += utf8_wcstombs (get_instance_help (ic->siid)); help += String (_("\n\n")); help += utf8_wcstombs (get_instance_credits (ic->siid)); } m_panel_client.show_help (ic->icid, help); } void X11FrontEnd::panel_req_show_factory_menu (const X11IC *ic) { std::vector uuids; if (get_factory_list_for_encoding (uuids, ic->encoding)) { std::vector menu; for (size_t i = 0; i < uuids.size (); ++ i) { menu.push_back (PanelFactoryInfo ( uuids [i], utf8_wcstombs (get_factory_name (uuids [i])), get_factory_language (uuids [i]), get_factory_icon_file (uuids [i]))); } m_panel_client.show_factory_menu (ic->icid, menu); } } void X11FrontEnd::panel_req_focus_in (const X11IC * ic) { m_panel_client.focus_in (ic->icid, get_instance_uuid (ic->siid)); } void X11FrontEnd::panel_req_update_factory_info (const X11IC *ic) { if (is_focused_ic (ic)) { PanelFactoryInfo info; if (ic->xims_on) { String uuid = get_instance_uuid (ic->siid); info = PanelFactoryInfo (uuid, utf8_wcstombs (get_factory_name (uuid)), get_factory_language (uuid), get_factory_icon_file (uuid)); } else { info = PanelFactoryInfo (String (""), String (_("English/Keyboard")), String ("C"), String (SCIM_KEYBOARD_ICON_FILE)); } m_panel_client.update_factory_info (ic->icid, info); } } void X11FrontEnd::panel_req_update_spot_location (const X11IC *ic) { Window target = ic->focus_win ? ic->focus_win : ic->client_win; XWindowAttributes xwa; if (target && XGetWindowAttributes (m_display, target, &xwa) && validate_ic (ic)) { int spot_x, spot_y; Window child; if (m_focus_ic->pre_attr.spot_location.x >= 0 && m_focus_ic->pre_attr.spot_location.y >= 0) { XTranslateCoordinates (m_display, target, xwa.root, m_focus_ic->pre_attr.spot_location.x + 8, m_focus_ic->pre_attr.spot_location.y + 8, &spot_x, &spot_y, &child); } else { XTranslateCoordinates (m_display, target, xwa.root, 0, xwa.height, &spot_x, &spot_y, &child); } m_panel_client.update_spot_location (ic->icid, spot_x, spot_y); } } void X11FrontEnd::reload_config_callback (const ConfigPointer &config) { SCIM_DEBUG_FRONTEND(1) << "Reload configuration.\n"; m_frontend_hotkey_matcher.load_hotkeys (config); m_imengine_hotkey_matcher.load_hotkeys (config); KeyEvent key; scim_string_to_key (key, config->read (String (SCIM_CONFIG_HOTKEYS_FRONTEND_VALID_KEY_MASK), String ("Shift+Control+Alt+Lock"))); m_valid_key_mask = (key.mask > 0) ? key.mask : 0xFFFF; m_valid_key_mask |= SCIM_KEY_ReleaseMask; // Special treatment for two backslash keys on jp106 keyboard. m_valid_key_mask |= SCIM_KEY_QuirkKanaRoMask; m_broken_wchar = config->read (String (SCIM_CONFIG_FRONTEND_X11_BROKEN_WCHAR), m_broken_wchar); m_shared_input_method = config->read (String (SCIM_CONFIG_FRONTEND_SHARED_INPUT_METHOD), m_shared_input_method); // Get keyboard layout setting // Flush the global config first, in order to load the new configs from disk. scim_global_config_flush (); m_keyboard_layout = scim_get_default_keyboard_layout (); } void X11FrontEnd::fallback_commit_string_cb (IMEngineInstanceBase * si, const WideString & str) { if (validate_ic (m_focus_ic)) ims_commit_string (m_focus_ic, str); } /* vi:ts=4:nowrap:expandtab */ scim-1.4.14/modules/FrontEnd/scim_x11_frontend.h000066400000000000000000000225001177210725600214260ustar00rootroot00000000000000/** * @file scim_x11_frontend.h * @brief definition of X11FrontEnd related classes. */ /* * Smart Common Input Method * * Copyright (c) 2002-2005 James Su * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this program; if not, write to the * Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, MA 02111-1307 USA * * $Id: scim_x11_frontend.h,v 1.56 2005/06/26 16:35:12 suzhe Exp $ */ #if !defined (__SCIM_X11_FRONTEND_H) #define __SCIM_X11_FRONTEND_H #include "scim_stl_map.h" using namespace scim; class X11FrontEnd : public FrontEndBase { // first = UUID. // second= siid. #if SCIM_USE_STL_EXT_HASH_MAP typedef __gnu_cxx::hash_map DefaultInstanceMap; #elif SCIM_USE_STL_HASH_MAP typedef std::hash_map DefaultInstanceMap; #else typedef std::map DefaultInstanceMap; #endif X11ICManager m_ic_manager; XIMS m_xims; Display *m_display; Window m_xims_window; String m_server_name; String m_display_name; PanelClient m_panel_client; X11IC *m_focus_ic; FrontEndHotkeyMatcher m_frontend_hotkey_matcher; IMEngineHotkeyMatcher m_imengine_hotkey_matcher; bool m_xims_dynamic; bool m_wchar_ucs4_equal; bool m_broken_wchar; bool m_shared_input_method; KeyboardLayout m_keyboard_layout; int m_valid_key_mask; bool m_should_exit; IConvert m_iconv; ConfigPointer m_config; IMEngineFactoryPointer m_fallback_factory; IMEngineInstancePointer m_fallback_instance; DefaultInstanceMap m_default_instance_map; int (*m_old_x_error_handler) (Display *, XErrorEvent *); public: X11FrontEnd (const BackEndPointer &backend, const ConfigPointer &config, const String &server_name = String ("SCIM")); virtual ~X11FrontEnd (); protected: virtual void show_preedit_string (int siid); virtual void show_aux_string (int siid); virtual void show_lookup_table (int siid); virtual void hide_preedit_string (int siid); virtual void hide_aux_string (int siid); virtual void hide_lookup_table (int siid); virtual void update_preedit_caret (int siid, int caret); virtual void update_preedit_string (int siid, const WideString & str, const AttributeList & attrs = AttributeList ()); virtual void update_aux_string (int siid, const WideString & str, const AttributeList & attrs = AttributeList ()); virtual void commit_string (int siid, const WideString & str); virtual void forward_key_event (int siid, const KeyEvent & key); virtual void update_lookup_table (int siid, const LookupTable & table); virtual void register_properties (int siid, const PropertyList & properties); virtual void update_property (int siid, const Property & property); virtual void beep (int siid); virtual void start_helper (int siid, const String &helper_uuid); virtual void stop_helper (int siid, const String &helper_uuid); virtual void send_helper_event (int siid, const String &helper_uuid, const Transaction &trans); virtual bool get_surrounding_text (int siid, WideString &text, int &cursor, int maxlen_before, int maxlen_after); virtual bool delete_surrounding_text (int siid, int offset, int len); public: virtual void init (int argc, char **argv); virtual void run (); private: String get_supported_locales (void); int get_default_instance (const String &language, const String &encoding); // Return the display name String init_ims (void); XKeyEvent keyevent_scim_to_x11 (const KeyEvent& key); KeyEvent keyevent_x11_to_scim (const XKeyEvent& key); bool filter_hotkeys (X11IC *ic, const KeyEvent &key); int ims_open_handler (XIMS ims, IMOpenStruct *call_data); int ims_close_handler (XIMS ims, IMCloseStruct *call_data); int ims_create_ic_handler (XIMS ims, IMChangeICStruct *call_data); int ims_set_ic_values_handler (XIMS ims, IMChangeICStruct *call_data); int ims_get_ic_values_handler (XIMS ims, IMChangeICStruct *call_data); int ims_destroy_ic_handler (XIMS ims, IMDestroyICStruct *call_data); int ims_set_ic_focus_handler (XIMS ims, IMChangeFocusStruct *call_data); int ims_unset_ic_focus_handler (XIMS ims, IMChangeFocusStruct *call_data); int ims_reset_ic_handler (XIMS ims, IMResetICStruct *call_data); int ims_trigger_notify_handler (XIMS ims, IMTriggerNotifyStruct *call_data); int ims_forward_event_handler (XIMS ims, IMForwardEventStruct *call_data); int ims_sync_reply_handler (XIMS ims, IMSyncXlibStruct *call_data); int ims_preedit_start_reply_handler (XIMS ims, IMPreeditCBStruct *call_data); int ims_preedit_caret_reply_handler (XIMS ims, IMPreeditCBStruct *call_data); void ims_commit_string (const X11IC *ic, const WideString& str); void ims_forward_key_event (const X11IC *ic, const KeyEvent& key); bool ims_wcstocts (XTextProperty &tp, const X11IC *ic, const WideString& src); bool ims_is_preedit_callback_mode (const X11IC *ic); void ims_preedit_callback_start (X11IC *ic); void ims_preedit_callback_done (X11IC *ic); void ims_preedit_callback_draw (X11IC *ic, const WideString& str, const AttributeList & attrs = AttributeList ()); void ims_preedit_callback_caret (X11IC *ic, int caret); bool ims_string_conversion_callback_retrieval (X11IC *ic, WideString &text, int &cursor, int maxlen_before, int maxlen_after); bool ims_string_conversion_callback_substitution (X11IC *ic, int offset, int len); void ims_turn_on_ic (X11IC *ic); void ims_turn_off_ic (X11IC *ic); void ims_sync_ic (X11IC *ic); void set_ic_capabilities (const X11IC *ic); void start_ic (X11IC *ic); void stop_ic (X11IC *ic); bool is_focused_ic (int siid) { return validate_ic (m_focus_ic) && m_focus_ic->siid == siid; } bool is_inputing_ic (int siid) { return is_focused_ic (siid) && m_focus_ic->xims_on; } bool is_forwarding_ic (int siid) { return is_focused_ic (siid) && !m_focus_ic->xims_on; } bool is_focused_ic (const X11IC *ic) { return validate_ic (m_focus_ic) && validate_ic (ic) && m_focus_ic->icid == ic->icid; } bool is_inputing_ic (const X11IC *ic) { return is_focused_ic (ic) && ic->xims_on; } bool is_forwarding_ic (const X11IC *ic) { return is_focused_ic (ic) && !ic->xims_on; } bool is_input_mode () { return validate_ic (m_focus_ic) && m_focus_ic->xims_on; } bool is_forward_mode () { return !is_input_mode (); } void panel_slot_reload_config (int context); void panel_slot_exit (int context); void panel_slot_update_lookup_table_page_size (int context, int page_size); void panel_slot_lookup_table_page_up (int context); void panel_slot_lookup_table_page_down (int context); void panel_slot_trigger_property (int context, const String &property); void panel_slot_process_helper_event (int context, const String &target_uuid, const String &helper_uuid, const Transaction &trans); void panel_slot_move_preedit_caret (int context, int caret_pos); void panel_slot_select_candidate (int context, int cand_index); void panel_slot_process_key_event (int context, const KeyEvent &key); void panel_slot_commit_string (int context, const WideString &wstr); void panel_slot_forward_key_event (int context, const KeyEvent &key); void panel_slot_request_help (int context); void panel_slot_request_factory_menu (int context); void panel_slot_change_factory (int context, const String &uuid); void panel_req_update_screen (const X11IC *ic); void panel_req_show_help (const X11IC *ic); void panel_req_show_factory_menu (const X11IC *ic); void panel_req_focus_in (const X11IC *ic); void panel_req_update_factory_info (const X11IC *ic); void panel_req_update_spot_location (const X11IC *ic); void reload_config_callback (const ConfigPointer &config); void fallback_commit_string_cb (IMEngineInstanceBase * si, const WideString & str); private: static int ims_protocol_handler (XIMS ims, IMProtocol *call_data); static int x_error_handler (Display *display, XErrorEvent *error); static bool validate_ic (const X11IC * ic) { return ic && ic->icid > 0 && ic->siid >= 0; } }; #endif /* vi:ts=4:nowrap:ai:expandtab */ scim-1.4.14/modules/FrontEnd/scim_x11_ic.cpp000066400000000000000000000374001177210725600205420ustar00rootroot00000000000000/** @file scim_x11_ic.cpp * implementation of class X11ICManager. */ /* * Smart Common Input Method * * Copyright (c) 2002-2005 James Su * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this program; if not, write to the * Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, MA 02111-1307 USA * * $Id: scim_x11_ic.cpp,v 1.19 2005/06/26 16:35:12 suzhe Exp $ * */ #include #include #include #include "IMdkit/IMdkit.h" #include "IMdkit/Xi18n.h" #include "scim_private.h" #include "scim.h" #include "scim_x11_ic.h" using namespace scim; static int _is_attr (const char *attr, XICAttribute * attr_list) { return !strcmp (attr, attr_list->name); } X11ICManager::X11ICManager () : m_ic_list (NULL), m_free_list (NULL) { } X11ICManager::~X11ICManager () { X11IC *it; it = m_ic_list; while (it != NULL) { m_ic_list = it->next; delete it; it = m_ic_list; } it = m_free_list; while (it != NULL) { m_free_list = it->next; delete it; it = m_free_list; } } X11IC * X11ICManager::new_ic () { static CARD16 base_icid = 1; X11IC *rec; if (m_free_list != NULL) { rec = m_free_list; m_free_list = m_free_list->next; } else { rec = new X11IC; } if (base_icid == 0) base_icid = 1; rec->icid = base_icid ++; rec->next = m_ic_list; m_ic_list = rec; return rec; } void X11ICManager::delete_ic (CARD16 icid) { X11IC *rec, *last = NULL; for (rec = m_ic_list; rec != NULL; last = rec, rec = rec->next) { if (rec->icid == icid) { if (last != NULL) last->next = rec->next; else m_ic_list = rec->next; rec->next = m_free_list; m_free_list = rec; rec->siid = -1; rec->icid = 0; rec->connect_id = 0; rec->client_win = 0; rec->focus_win = 0; rec->shared_siid = false; rec->xims_on = false; rec->encoding = String (); rec->locale = String (); return; } } return; } String X11ICManager::get_connection_locale (CARD16 connect_id) { ConnectionLocaleMap::iterator it = m_connect_locales.find ((int)connect_id); if (it != m_connect_locales.end ()) return it->second; return String (); } void X11ICManager::new_connection (IMOpenStruct *call_data) { if (call_data == NULL) return; String locale = scim_validate_locale (String (call_data->lang.name)); if (!locale.length ()) { locale = String ("C"); } m_connect_locales [(int)call_data->connect_id] = locale; } void X11ICManager::delete_connection (IMCloseStruct *call_data) { if (call_data == NULL) return; m_connect_locales.erase ((int)call_data->connect_id); } uint32 X11ICManager::create_ic (IMChangeICStruct *call_data, int siid) { X11IC * rec; rec = new_ic (); if (rec == NULL) return 0; call_data->icid = rec->icid; rec->connect_id = call_data->connect_id; rec->siid = siid; rec->shared_siid = false; rec->xims_on = false; rec->onspot_preedit_started = false; rec->onspot_preedit_length = 0; rec->onspot_caret = 0; rec->focus_win = (Window) 0; rec->client_win = (Window) 0; rec->input_style = 0; rec->pre_attr.spot_location.x = -1; rec->pre_attr.spot_location.y = -1; return store_ic_values (rec, call_data); } X11IC * X11ICManager::find_ic (CARD16 icid) { X11IC *rec = m_ic_list; while (rec != NULL) { if (rec->icid == icid) return rec; rec = rec->next; } return NULL; } X11IC * X11ICManager::find_ic_by_siid (int siid) { X11IC *rec = m_ic_list; while (rec != NULL) { if (rec->siid == siid) return rec; rec = rec->next; } return NULL; } void X11ICManager::destroy_ic (IMDestroyICStruct *call_data) { if (call_data == NULL) return; delete_ic (call_data->icid); } uint32 X11ICManager::store_ic_values (X11IC *rec, IMChangeICStruct *call_data) { XICAttribute *ic_attr = call_data->ic_attr; XICAttribute *pre_attr = call_data->preedit_attr; XICAttribute *sts_attr = call_data->status_attr; int i; uint32 attrs = 0; // Set main attributes for (i=0; i< (int) call_data->ic_attr_num; ++i, ++ic_attr) { if (_is_attr (XNInputStyle, ic_attr)) { rec->input_style = * (INT32 *) ic_attr->value; attrs |= SCIM_X11_IC_INPUT_STYLE; } else if (_is_attr (XNClientWindow, ic_attr)) { rec->client_win = *(Window *) ic_attr->value; attrs |= SCIM_X11_IC_CLIENT_WINDOW; } else if (_is_attr (XNFocusWindow, ic_attr)) { rec->focus_win = *(Window *) ic_attr->value; attrs |= SCIM_X11_IC_FOCUS_WINDOW; } else { std::cerr << __FILE__ << "(" << __LINE__ << "):" <<"Unknown attr: " << ic_attr->name << std::endl; } } // Set preedit attributes for (i = 0; i < (int) call_data->preedit_attr_num; ++i, ++pre_attr) { if (_is_attr (XNArea, pre_attr)) { rec->pre_attr.area = *(XRectangle *) pre_attr->value; attrs |= SCIM_X11_IC_PRE_AREA; } else if (_is_attr (XNAreaNeeded, pre_attr)) { rec->pre_attr.area_needed = *(XRectangle *) pre_attr->value; attrs |= SCIM_X11_IC_PRE_AREA_NEEDED; } else if (_is_attr (XNSpotLocation, pre_attr)) { rec->pre_attr.spot_location = *(XPoint *) pre_attr->value; attrs |= SCIM_X11_IC_PRE_SPOT_LOCATION; } else if (_is_attr (XNColormap, pre_attr)) { rec->pre_attr.cmap = *(Colormap *) pre_attr->value; attrs |= SCIM_X11_IC_PRE_COLORMAP; } else if (_is_attr (XNStdColormap, pre_attr)) { rec->pre_attr.cmap = *(Colormap *) pre_attr->value; attrs |= SCIM_X11_IC_PRE_COLORMAP; } else if (_is_attr (XNForeground, pre_attr)) { rec->pre_attr.foreground = *(CARD32 *) pre_attr->value; attrs |= SCIM_X11_IC_PRE_FOREGROUND; } else if (_is_attr (XNBackground, pre_attr)) { rec->pre_attr.background = *(CARD32 *) pre_attr->value; attrs |= SCIM_X11_IC_PRE_BACKGROUND; } else if (_is_attr (XNBackgroundPixmap, pre_attr)) { rec->pre_attr.bg_pixmap = *(Pixmap *) pre_attr->value; attrs |= SCIM_X11_IC_PRE_BG_PIXMAP; } else if (_is_attr (XNFontSet, pre_attr)) { rec->pre_attr.base_font = (char*) pre_attr->value; attrs |= SCIM_X11_IC_PRE_FONTSET; } else if (_is_attr (XNLineSpace, pre_attr)) { rec->pre_attr.line_space = *(CARD32 *) pre_attr->value; attrs |= SCIM_X11_IC_PRE_LINE_SPACE; } else if (_is_attr (XNCursor, pre_attr)) { rec->pre_attr.cursor = *(Cursor *) pre_attr->value; attrs |= SCIM_X11_IC_PRE_CURSOR; } else { std::cerr << __FILE__ << "(" << __LINE__ << "):" <<"Unknown attr: " << pre_attr->name << std::endl; } } // Set status attributes for (i = 0; i < (int) call_data->status_attr_num; ++i, ++sts_attr) { if (_is_attr (XNArea, sts_attr)) { rec->sts_attr.area = *(XRectangle *) sts_attr->value; attrs |= SCIM_X11_IC_STS_AREA; } else if (_is_attr (XNAreaNeeded, sts_attr)) { rec->sts_attr.area_needed = *(XRectangle *) sts_attr->value; attrs |= SCIM_X11_IC_STS_AREA_NEEDED; } else if (_is_attr (XNColormap, sts_attr)) { rec->sts_attr.cmap = *(Colormap *) sts_attr->value; attrs |= SCIM_X11_IC_STS_COLORMAP; } else if (_is_attr (XNStdColormap, sts_attr)) { rec->sts_attr.cmap = *(Colormap *) sts_attr->value; attrs |= SCIM_X11_IC_STS_COLORMAP; } else if (_is_attr (XNForeground, sts_attr)) { rec->sts_attr.foreground = *(CARD32 *) sts_attr->value; attrs |= SCIM_X11_IC_STS_FOREGROUND; } else if (_is_attr (XNBackground, sts_attr)) { rec->sts_attr.background = *(CARD32 *) sts_attr->value; attrs |= SCIM_X11_IC_STS_BACKGROUND; } else if (_is_attr (XNBackgroundPixmap, sts_attr)) { rec->sts_attr.bg_pixmap = *(Pixmap *) sts_attr->value; attrs |= SCIM_X11_IC_STS_BG_PIXMAP; } else if (_is_attr (XNFontSet, sts_attr)) { rec->sts_attr.base_font = (char*) sts_attr->value; attrs |= SCIM_X11_IC_STS_FONTSET; } else if (_is_attr (XNLineSpace, sts_attr)) { rec->sts_attr.line_space = *(CARD32 *) sts_attr->value; attrs |= SCIM_X11_IC_STS_LINE_SPACE; } else if (_is_attr (XNCursor, sts_attr)) { rec->sts_attr.cursor = *(Cursor *) sts_attr->value; attrs |= SCIM_X11_IC_STS_CURSOR; } else { std::cerr << __FILE__ << "(" << __LINE__ << "):" <<"Unknown attr: " << sts_attr->name << std::endl; } } String connect_locale = get_connection_locale ((int)call_data->connect_id); if (connect_locale != rec->locale) { rec->locale = connect_locale; rec->encoding = scim_get_locale_encoding (connect_locale); attrs |= SCIM_X11_IC_ENCODING; } return attrs; } uint32 X11ICManager::set_ic_values (IMChangeICStruct *call_data) { if (call_data == NULL) return 0; X11IC *rec = find_ic (call_data->icid); if (rec == NULL) return 0; return store_ic_values (rec, call_data); } uint32 X11ICManager::get_ic_values (IMChangeICStruct *call_data) { if (call_data == NULL) return 0; XICAttribute *ic_attr = call_data->ic_attr; XICAttribute *pre_attr = call_data->preedit_attr; XICAttribute *sts_attr = call_data->status_attr; X11IC *rec = find_ic (call_data->icid); if (rec == NULL) return 0; int i; uint32 attrs = 0; for (i = 0; i < (int) call_data->ic_attr_num; ++i, ++ic_attr) { if (_is_attr (XNFilterEvents, ic_attr)) { ic_attr->value = (void *) malloc (sizeof (CARD32)); *(CARD32 *) ic_attr->value = KeyPressMask | KeyReleaseMask; ic_attr->value_length = sizeof (CARD32); attrs |= SCIM_X11_IC_FILTER_EVENTS; } else { std::cerr << __FILE__ << "(" << __LINE__ << "):" <<"Unknown attr: " << ic_attr->name << std::endl; } } // preedit attributes for (i = 0; i < (int) call_data->preedit_attr_num; ++i, ++pre_attr) { if (_is_attr (XNArea, pre_attr)) { pre_attr->value = (void *) malloc (sizeof (XRectangle)); *(XRectangle *) pre_attr->value = rec->pre_attr.area; pre_attr->value_length = sizeof (XRectangle); attrs |= SCIM_X11_IC_PRE_AREA; } else if (_is_attr (XNAreaNeeded, pre_attr)) { pre_attr->value = (void *) malloc (sizeof (XRectangle)); *(XRectangle *) pre_attr->value = rec->pre_attr.area_needed; pre_attr->value_length = sizeof (XRectangle); attrs |= SCIM_X11_IC_PRE_AREA_NEEDED; } else if (_is_attr (XNSpotLocation, pre_attr)) { pre_attr->value = (void *) malloc (sizeof (XPoint)); *(XPoint *) pre_attr->value = rec->pre_attr.spot_location; pre_attr->value_length = sizeof (XPoint); attrs |= SCIM_X11_IC_PRE_SPOT_LOCATION; } else if (_is_attr (XNFontSet, pre_attr)) { CARD16 base_len = (CARD16) rec->pre_attr.base_font.size (); int total_len = sizeof (CARD16) + (CARD16) base_len; char *p; pre_attr->value = (void *) malloc (total_len); p = (char *) pre_attr->value; memmove (p, &base_len, sizeof (CARD16)); p += sizeof (CARD16); strncpy (p, rec->pre_attr.base_font.c_str (), base_len); pre_attr->value_length = total_len; attrs |= SCIM_X11_IC_PRE_FONTSET; } else if (_is_attr (XNForeground, pre_attr)) { pre_attr->value = (void *) malloc (sizeof (CARD32)); *(CARD32 *) pre_attr->value = rec->pre_attr.foreground; pre_attr->value_length = sizeof (CARD32); attrs |= SCIM_X11_IC_PRE_FOREGROUND; } else if (_is_attr (XNBackground, pre_attr)) { pre_attr->value = (void *) malloc (sizeof (CARD32)); *(CARD32 *) pre_attr->value = rec->pre_attr.background; pre_attr->value_length = sizeof (CARD32); attrs |= SCIM_X11_IC_PRE_BACKGROUND; } else if (_is_attr (XNLineSpace, pre_attr)) { pre_attr->value = (void *) malloc (sizeof (CARD32)); *(CARD32 *) pre_attr->value = rec->pre_attr.line_space; pre_attr->value_length = sizeof (CARD32); attrs |= SCIM_X11_IC_PRE_LINE_SPACE; } else { std::cerr << __FILE__ << "(" << __LINE__ << "):" <<"Unknown attr: " << pre_attr->name << std::endl; } } // status attributes for (i = 0; i < (int) call_data->status_attr_num; ++i, ++sts_attr) { if (_is_attr (XNArea, sts_attr)) { sts_attr->value = (void *) malloc (sizeof (XRectangle)); *(XRectangle *) sts_attr->value = rec->sts_attr.area; sts_attr->value_length = sizeof (XRectangle); attrs |= SCIM_X11_IC_STS_AREA; } else if (_is_attr (XNAreaNeeded, sts_attr)) { sts_attr->value = (void *) malloc (sizeof (XRectangle)); *(XRectangle *) sts_attr->value = rec->sts_attr.area_needed; sts_attr->value_length = sizeof (XRectangle); attrs |= SCIM_X11_IC_STS_AREA_NEEDED; } else if (_is_attr (XNFontSet, sts_attr)) { CARD16 base_len = (CARD16) rec->sts_attr.base_font.size (); int total_len = sizeof (CARD16) + (CARD16) base_len; char *p; sts_attr->value = (void *) malloc (total_len); p = (char *) sts_attr->value; memmove (p, &base_len, sizeof (CARD16)); p += sizeof (CARD16); strncpy (p, rec->sts_attr.base_font.c_str (), base_len); sts_attr->value_length = total_len; attrs |= SCIM_X11_IC_STS_FONTSET; } else if (_is_attr (XNForeground, sts_attr)) { sts_attr->value = (void *) malloc (sizeof (CARD32)); *(CARD32 *) sts_attr->value = rec->sts_attr.foreground; sts_attr->value_length = sizeof (CARD32); attrs |= SCIM_X11_IC_STS_FOREGROUND; } else if (_is_attr (XNBackground, sts_attr)) { sts_attr->value = (void *) malloc (sizeof (CARD32)); *(CARD32 *) sts_attr->value = rec->sts_attr.background; sts_attr->value_length = sizeof (CARD32); attrs |= SCIM_X11_IC_STS_BACKGROUND; } else if (_is_attr (XNLineSpace, sts_attr)) { sts_attr->value = (void *) malloc (sizeof (CARD32)); *(CARD32 *) sts_attr->value = rec->sts_attr.line_space; sts_attr->value_length = sizeof (CARD32); attrs |= SCIM_X11_IC_STS_LINE_SPACE; } else { std::cerr << __FILE__ << "(" << __LINE__ << "):" <<"Unknown attr: " << sts_attr->name << std::endl; } } return attrs; } /* vi:ts=4:nowrap:expandtab */ scim-1.4.14/modules/FrontEnd/scim_x11_ic.h000066400000000000000000000133371177210725600202120ustar00rootroot00000000000000/** @file scim_x11_ic.h * definition of X11IC related classes. */ /* * Smart Common Input Method * * Copyright (c) 2002-2005 James Su * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this program; if not, write to the * Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, MA 02111-1307 USA * * $Id: scim_x11_ic.h,v 1.10 2005/06/26 16:35:12 suzhe Exp $ */ #if !defined (__SCIM_X11_IC_H) #define __SCIM_X11_IC_H #include "scim_stl_map.h" using namespace scim; struct X11PreeditAttributes { XRectangle area; /* area */ XRectangle area_needed; /* area needed */ XPoint spot_location; /* spot location */ Colormap cmap; /* colormap */ CARD32 foreground; /* foreground */ CARD32 background; /* background */ Pixmap bg_pixmap; /* background pixmap */ String base_font; /* base font of fontset */ CARD32 line_space; /* line spacing */ Cursor cursor; /* cursor */ }; struct X11StatusAttributes { XRectangle area; /* area */ XRectangle area_needed; /* area needed */ Colormap cmap; /* colormap */ CARD32 foreground; /* foreground */ CARD32 background; /* background */ Pixmap bg_pixmap; /* background pixmap */ String base_font; /* base font of fontset */ CARD32 line_space; /* line spacing */ Cursor cursor; /* cursor */ }; struct X11IC { int siid; /* server instance id */ CARD16 icid; /* ic id */ CARD16 connect_id; /* connect id */ INT32 input_style; /* input style */ Window client_win; /* client window */ Window focus_win; /* focus window */ String encoding; /* connection encoding */ String locale; /* connection locale */ X11PreeditAttributes pre_attr; /* preedit attributes */ X11StatusAttributes sts_attr; /* status attributes */ bool shared_siid; bool xims_on; bool onspot_preedit_started; int onspot_preedit_length; /* preedit length of onspot mode */ int onspot_caret; /* caret position of onspot mode */ X11IC *next; }; #define SCIM_X11_IC_INPUT_STYLE (1<<0) #define SCIM_X11_IC_CLIENT_WINDOW (1<<1) #define SCIM_X11_IC_FOCUS_WINDOW (1<<2) #define SCIM_X11_IC_ENCODING (1<<3) #define SCIM_X11_IC_PRE_AREA (1<<4) #define SCIM_X11_IC_PRE_AREA_NEEDED (1<<5) #define SCIM_X11_IC_PRE_SPOT_LOCATION (1<<6) #define SCIM_X11_IC_PRE_COLORMAP (1<<7) #define SCIM_X11_IC_PRE_FOREGROUND (1<<8) #define SCIM_X11_IC_PRE_BACKGROUND (1<<9) #define SCIM_X11_IC_PRE_BG_PIXMAP (1<<10) #define SCIM_X11_IC_PRE_FONTSET (1<<11) #define SCIM_X11_IC_PRE_LINE_SPACE (1<<12) #define SCIM_X11_IC_PRE_CURSOR (1<<13) #define SCIM_X11_IC_STS_AREA (1<<14) #define SCIM_X11_IC_STS_AREA_NEEDED (1<<15) #define SCIM_X11_IC_STS_COLORMAP (1<<16) #define SCIM_X11_IC_STS_FOREGROUND (1<<17) #define SCIM_X11_IC_STS_BACKGROUND (1<<18) #define SCIM_X11_IC_STS_BG_PIXMAP (1<<19) #define SCIM_X11_IC_STS_FONTSET (1<<20) #define SCIM_X11_IC_STS_LINE_SPACE (1<<21) #define SCIM_X11_IC_STS_CURSOR (1<<22) #define SCIM_X11_IC_FILTER_EVENTS (1<<23) class X11ICManager { #if SCIM_USE_STL_EXT_HASH_MAP typedef __gnu_cxx::hash_map > ConnectionLocaleMap; #elif SCIM_USE_STL_HASH_MAP typedef std::hash_map > ConnectionLocaleMap; #else typedef std::map ConnectionLocaleMap; #endif X11IC *m_ic_list; X11IC *m_free_list; ConnectionLocaleMap m_connect_locales; public: X11ICManager (); ~X11ICManager (); private: /** * create an empty scimX11IC struct. */ X11IC * new_ic (); /** * store the attributes in call_data to rec. * @return a bitsets indicates which attributes are set. */ uint32 store_ic_values (X11IC *rec, IMChangeICStruct *call_data); /** * delete a X11IC struct according to its icid. */ void delete_ic (CARD16 icid); public: void new_connection (IMOpenStruct *call_data); void delete_connection (IMCloseStruct *call_data); String get_connection_locale (CARD16 connect_id); /** * Create a new X11IC struct and set its attributes. * @return a bitsets indicates which attributes are set. */ uint32 create_ic (IMChangeICStruct *call_data, int siid); X11IC * find_ic (CARD16 icid); X11IC * find_ic_by_siid (int siid); void destroy_ic (IMDestroyICStruct *call_data); /** * load the attributes of ic into call_data * @return a bitsets indicates which attributes are loaded. */ uint32 get_ic_values (IMChangeICStruct *call_data); /** * store the attributes in call_data to rec. * @return a bitsets indicates which attributes are set. */ uint32 set_ic_values (IMChangeICStruct *call_data); }; #endif // _SCIM_X11_IC_H /* vi:ts=4:nowrap:ai:expandtab */ scim-1.4.14/modules/IMEngine/000077500000000000000000000000001177210725600156475ustar00rootroot00000000000000scim-1.4.14/modules/IMEngine/Makefile.am000066400000000000000000000046341177210725600177120ustar00rootroot00000000000000## Makefile.am -- Process this file with automake to produce Makefile.in ## Copyright (C) 2002 James Su ## ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2, or (at your option) ## any later version. ## ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. MAINTAINERCLEANFILES = Makefile.in CLEANFILES = *.bak EXTRA_DIST = imengine.version-script INCLUDES = -I$(top_builddir) \ -I$(top_builddir)/src \ -I$(top_srcdir) \ -I$(top_srcdir)/src \ -I$(top_srcdir)/intl \ -I$(top_srcdir)/utils \ -DSCIM_DATADIR=\"@SCIM_DATADIR@\" \ -DSCIM_LOCALEDIR=\"@SCIM_LOCALEDIR@\" \ -DSCIM_SYSCONFDIR=\"@SCIM_SYSCONFDIR@\" \ -DSCIM_LIBEXECDIR=\"@SCIM_LIBEXECDIR@\" \ -DSCIM_ICONDIR=\"@SCIM_ICONDIR@\" \ -DSCIM_MODULE_PATH=\"@SCIM_MODULE_PATH@\" \ -DSCIM_TEMPDIR=\"@SCIM_TEMPDIR@\" if SCIM_BUILD_IMENGINE_RAWCODE CONFIG_IMENGINE_RAWCODE_MODULE = rawcode.la endif if SCIM_BUILD_IMENGINE_SOCKET CONFIG_IMENGINE_SOCKET_MODULE = socket.la endif if SCIM_LD_VERSION_SCRIPT LD_VERSION_SCRIPT_OPTION="-Wl,--version-script=$(srcdir)/imengine.version-script" endif noinst_HEADERS = scim_rawcode_imengine.h \ scim_socket_imengine.h moduledir = $(libdir)/scim@SCIM_EPOCH@/$(SCIM_BINARY_VERSION)/IMEngine module_LTLIBRARIES = $(CONFIG_IMENGINE_RAWCODE_MODULE) \ $(CONFIG_IMENGINE_SOCKET_MODULE) rawcode_la_SOURCES = scim_rawcode_imengine.cpp rawcode_la_LDFLAGS = -avoid-version \ -rpath $(moduledir) \ -module \ $(LD_VERSION_SCRIPT_OPTION) \ @LIBTOOL_EXPORT_OPTIONS@ \ @LTLIBINTL@ rawcode_la_LIBADD = $(top_builddir)/src/libscim@SCIM_EPOCH@.la socket_la_SOURCES = scim_socket_imengine.cpp socket_la_LDFLAGS = -avoid-version \ -rpath $(moduledir) \ -module \ $(LD_VERSION_SCRIPT_OPTION) \ @LIBTOOL_EXPORT_OPTIONS@ \ @LTLIBINTL@ socket_la_LIBADD = $(top_builddir)/src/libscim@SCIM_EPOCH@.la scim-1.4.14/modules/IMEngine/Makefile.in000066400000000000000000000571341177210725600177260ustar00rootroot00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = modules/IMEngine DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(moduledir)" LTLIBRARIES = $(module_LTLIBRARIES) rawcode_la_DEPENDENCIES = $(top_builddir)/src/libscim@SCIM_EPOCH@.la am_rawcode_la_OBJECTS = scim_rawcode_imengine.lo rawcode_la_OBJECTS = $(am_rawcode_la_OBJECTS) rawcode_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(rawcode_la_LDFLAGS) $(LDFLAGS) -o $@ @SCIM_BUILD_IMENGINE_RAWCODE_TRUE@am_rawcode_la_rpath = -rpath \ @SCIM_BUILD_IMENGINE_RAWCODE_TRUE@ $(moduledir) socket_la_DEPENDENCIES = $(top_builddir)/src/libscim@SCIM_EPOCH@.la am_socket_la_OBJECTS = scim_socket_imengine.lo socket_la_OBJECTS = $(am_socket_la_OBJECTS) socket_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(socket_la_LDFLAGS) $(LDFLAGS) -o $@ @SCIM_BUILD_IMENGINE_SOCKET_TRUE@am_socket_la_rpath = -rpath \ @SCIM_BUILD_IMENGINE_SOCKET_TRUE@ $(moduledir) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(rawcode_la_SOURCES) $(socket_la_SOURCES) DIST_SOURCES = $(rawcode_la_SOURCES) $(socket_la_SOURCES) HEADERS = $(noinst_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ ARGZ_H = @ARGZ_H@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CLUTTER_BINARY_VERSION = @CLUTTER_BINARY_VERSION@ CLUTTER_CFLAGS = @CLUTTER_CFLAGS@ CLUTTER_IMCONTEXT_LIBDIR = @CLUTTER_IMCONTEXT_LIBDIR@ CLUTTER_IM_MODULEDIR = @CLUTTER_IM_MODULEDIR@ CLUTTER_LIBDIR = @CLUTTER_LIBDIR@ CLUTTER_LIBS = @CLUTTER_LIBS@ CLUTTER_VERSION = @CLUTTER_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOCBOOK_XSL = @DOCBOOK_XSL@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@ GTHREAD2_LIBS = @GTHREAD2_LIBS@ GTK2_CFLAGS = @GTK2_CFLAGS@ GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@ GTK2_LIBS = @GTK2_LIBS@ GTK3_CFLAGS = @GTK3_CFLAGS@ GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@ GTK3_LIBS = @GTK3_LIBS@ GTK_BINARY_VERSION = @GTK_BINARY_VERSION@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBDIR = @GTK_LIBDIR@ GTK_LIBS = @GTK_LIBS@ GTK_MAJOR_VERSION = @GTK_MAJOR_VERSION@ GTK_VERSION = @GTK_VERSION@ HAVE_GRAPHVIZ = @HAVE_GRAPHVIZ@ INCLTDL = @INCLTDL@ INCLUDE_STDINT = @INCLUDE_STDINT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBLTDL = @LIBLTDL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_DEPS = @LIBTOOL_DEPS@ LIBTOOL_EXPORT_OPTIONS = @LIBTOOL_EXPORT_OPTIONS@ LIPO = @LIPO@ LN_S = @LN_S@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ QT3_CFLAGS = @QT3_CFLAGS@ QT3_IM_MODULEDIR = @QT3_IM_MODULEDIR@ QT3_LIBDIR = @QT3_LIBDIR@ QT3_LIBS = @QT3_LIBS@ QT3_MOC = @QT3_MOC@ QT3_PREFIX = @QT3_PREFIX@ QT4_CFLAGS = @QT4_CFLAGS@ QT4_IM_MODULEDIR = @QT4_IM_MODULEDIR@ QT4_LIBDIR = @QT4_LIBDIR@ QT4_LIBS = @QT4_LIBS@ QT4_MOC = @QT4_MOC@ QT4_PREFIX = @QT4_PREFIX@ RANLIB = @RANLIB@ SCIM_AGE = @SCIM_AGE@ SCIM_BINARY_VERSION = @SCIM_BINARY_VERSION@ SCIM_BRIDGE_MAJOR_VERSION = @SCIM_BRIDGE_MAJOR_VERSION@ SCIM_BRIDGE_MICRO_VERSION = @SCIM_BRIDGE_MICRO_VERSION@ SCIM_BRIDGE_MINOR_VERSION = @SCIM_BRIDGE_MINOR_VERSION@ SCIM_BRIDGE_VERSION = @SCIM_BRIDGE_VERSION@ SCIM_BUILD_CLUTTER_IMMODULE = @SCIM_BUILD_CLUTTER_IMMODULE@ SCIM_BUILD_CONFIG_SIMPLE = @SCIM_BUILD_CONFIG_SIMPLE@ SCIM_BUILD_CONFIG_SOCKET = @SCIM_BUILD_CONFIG_SOCKET@ SCIM_BUILD_DOCUMENTS = @SCIM_BUILD_DOCUMENTS@ SCIM_BUILD_FILTER_SCTC = @SCIM_BUILD_FILTER_SCTC@ SCIM_BUILD_FRONTEND_SOCKET = @SCIM_BUILD_FRONTEND_SOCKET@ SCIM_BUILD_FRONTEND_X11 = @SCIM_BUILD_FRONTEND_X11@ SCIM_BUILD_GTK2_IMMODULE = @SCIM_BUILD_GTK2_IMMODULE@ SCIM_BUILD_GTK3_IMMODULE = @SCIM_BUILD_GTK3_IMMODULE@ SCIM_BUILD_GTK_UTILS = @SCIM_BUILD_GTK_UTILS@ SCIM_BUILD_IMENGINE_RAWCODE = @SCIM_BUILD_IMENGINE_RAWCODE@ SCIM_BUILD_IMENGINE_SOCKET = @SCIM_BUILD_IMENGINE_SOCKET@ SCIM_BUILD_IMENGINE_TABLE = @SCIM_BUILD_IMENGINE_TABLE@ SCIM_BUILD_IMMODULE = @SCIM_BUILD_IMMODULE@ SCIM_BUILD_IM_AGENT = @SCIM_BUILD_IM_AGENT@ SCIM_BUILD_ORIG_GTK2_IMMODULE = @SCIM_BUILD_ORIG_GTK2_IMMODULE@ SCIM_BUILD_ORIG_GTK3_IMMODULE = @SCIM_BUILD_ORIG_GTK3_IMMODULE@ SCIM_BUILD_PANEL_GTK = @SCIM_BUILD_PANEL_GTK@ SCIM_BUILD_QT3_IMMODULE = @SCIM_BUILD_QT3_IMMODULE@ SCIM_BUILD_QT4_IMMODULE = @SCIM_BUILD_QT4_IMMODULE@ SCIM_BUILD_SCIM_SETUP = @SCIM_BUILD_SCIM_SETUP@ SCIM_BUILD_TESTS = @SCIM_BUILD_TESTS@ SCIM_BUILD_X11_UTILS = @SCIM_BUILD_X11_UTILS@ SCIM_CURRENT = @SCIM_CURRENT@ SCIM_DATADIR = @SCIM_DATADIR@ SCIM_EPOCH = @SCIM_EPOCH@ SCIM_ICONDIR = @SCIM_ICONDIR@ SCIM_LIBDIR = @SCIM_LIBDIR@ SCIM_LIBEXECDIR = @SCIM_LIBEXECDIR@ SCIM_LOCALEDIR = @SCIM_LOCALEDIR@ SCIM_LTDLADVISE = @SCIM_LTDLADVISE@ SCIM_MAJOR_VERSION = @SCIM_MAJOR_VERSION@ SCIM_MICRO_VERSION = @SCIM_MICRO_VERSION@ SCIM_MINOR_VERSION = @SCIM_MINOR_VERSION@ SCIM_MODULE_PATH = @SCIM_MODULE_PATH@ SCIM_PREFIX = @SCIM_PREFIX@ SCIM_REVISION = @SCIM_REVISION@ SCIM_SYSCONFDIR = @SCIM_SYSCONFDIR@ SCIM_TEMPDIR = @SCIM_TEMPDIR@ SCIM_VERSION = @SCIM_VERSION@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UINT16 = @UINT16@ UINT32 = @UINT32@ UINT64 = @UINT64@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XMKMF = @XMKMF@ XSLTPROC = @XSLTPROC@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_aux_dir = @ac_aux_dir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ MAINTAINERCLEANFILES = Makefile.in CLEANFILES = *.bak EXTRA_DIST = imengine.version-script INCLUDES = -I$(top_builddir) \ -I$(top_builddir)/src \ -I$(top_srcdir) \ -I$(top_srcdir)/src \ -I$(top_srcdir)/intl \ -I$(top_srcdir)/utils \ -DSCIM_DATADIR=\"@SCIM_DATADIR@\" \ -DSCIM_LOCALEDIR=\"@SCIM_LOCALEDIR@\" \ -DSCIM_SYSCONFDIR=\"@SCIM_SYSCONFDIR@\" \ -DSCIM_LIBEXECDIR=\"@SCIM_LIBEXECDIR@\" \ -DSCIM_ICONDIR=\"@SCIM_ICONDIR@\" \ -DSCIM_MODULE_PATH=\"@SCIM_MODULE_PATH@\" \ -DSCIM_TEMPDIR=\"@SCIM_TEMPDIR@\" @SCIM_BUILD_IMENGINE_RAWCODE_TRUE@CONFIG_IMENGINE_RAWCODE_MODULE = rawcode.la @SCIM_BUILD_IMENGINE_SOCKET_TRUE@CONFIG_IMENGINE_SOCKET_MODULE = socket.la @SCIM_LD_VERSION_SCRIPT_TRUE@LD_VERSION_SCRIPT_OPTION = "-Wl,--version-script=$(srcdir)/imengine.version-script" noinst_HEADERS = scim_rawcode_imengine.h \ scim_socket_imengine.h moduledir = $(libdir)/scim@SCIM_EPOCH@/$(SCIM_BINARY_VERSION)/IMEngine module_LTLIBRARIES = $(CONFIG_IMENGINE_RAWCODE_MODULE) \ $(CONFIG_IMENGINE_SOCKET_MODULE) rawcode_la_SOURCES = scim_rawcode_imengine.cpp rawcode_la_LDFLAGS = -avoid-version \ -rpath $(moduledir) \ -module \ $(LD_VERSION_SCRIPT_OPTION) \ @LIBTOOL_EXPORT_OPTIONS@ \ @LTLIBINTL@ rawcode_la_LIBADD = $(top_builddir)/src/libscim@SCIM_EPOCH@.la socket_la_SOURCES = scim_socket_imengine.cpp socket_la_LDFLAGS = -avoid-version \ -rpath $(moduledir) \ -module \ $(LD_VERSION_SCRIPT_OPTION) \ @LIBTOOL_EXPORT_OPTIONS@ \ @LTLIBINTL@ socket_la_LIBADD = $(top_builddir)/src/libscim@SCIM_EPOCH@.la all: all-am .SUFFIXES: .SUFFIXES: .cpp .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu modules/IMEngine/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu modules/IMEngine/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-moduleLTLIBRARIES: $(module_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(moduledir)" || $(MKDIR_P) "$(DESTDIR)$(moduledir)" @list='$(module_LTLIBRARIES)'; test -n "$(moduledir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(moduledir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(moduledir)"; \ } uninstall-moduleLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(module_LTLIBRARIES)'; test -n "$(moduledir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(moduledir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(moduledir)/$$f"; \ done clean-moduleLTLIBRARIES: -test -z "$(module_LTLIBRARIES)" || rm -f $(module_LTLIBRARIES) @list='$(module_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done rawcode.la: $(rawcode_la_OBJECTS) $(rawcode_la_DEPENDENCIES) $(rawcode_la_LINK) $(am_rawcode_la_rpath) $(rawcode_la_OBJECTS) $(rawcode_la_LIBADD) $(LIBS) socket.la: $(socket_la_OBJECTS) $(socket_la_DEPENDENCIES) $(socket_la_LINK) $(am_socket_la_rpath) $(socket_la_OBJECTS) $(socket_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim_rawcode_imengine.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim_socket_imengine.Plo@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cpp.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cpp.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: for dir in "$(DESTDIR)$(moduledir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic clean-libtool clean-moduleLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-moduleLTLIBRARIES install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-moduleLTLIBRARIES .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-moduleLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-moduleLTLIBRARIES install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-moduleLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: scim-1.4.14/modules/IMEngine/imengine.version-script000066400000000000000000000005201177210725600223500ustar00rootroot00000000000000SCIM_IMENGINE_1.0 { global: extern "C" { *scim_imengine_module_create_factory*; *scim_imengine_module_init*; *scim_module_exit*; *scim_module_init*; }; local: extern "C++" { scim::*; std::*; __gnu_cxx::*; }; }; scim-1.4.14/modules/IMEngine/scim_rawcode_imengine.cpp000066400000000000000000000406561177210725600227000ustar00rootroot00000000000000/** @file scim_rawcode_imengine.cpp * implementation of class RawCodeInstance. */ /* * Smart Common Input Method * * Copyright (c) 2002-2005 James Su * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this program; if not, write to the * Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, MA 02111-1307 USA * * $Id: scim_rawcode_imengine.cpp,v 1.7.2.7 2007/04/10 07:47:18 suzhe Exp $ * */ #define Uses_SCIM_IMENGINE #define Uses_SCIM_ICONV #define Uses_C_STRING #define Uses_SCIM_CONFIG_BASE #define Uses_SCIM_CONFIG_PATH #include "scim_private.h" #include "scim.h" #include "scim_rawcode_imengine.h" #define scim_module_init rawcode_LTX_scim_module_init #define scim_module_exit rawcode_LTX_scim_module_exit #define scim_imengine_module_init rawcode_LTX_scim_imengine_module_init #define scim_imengine_module_create_factory rawcode_LTX_scim_imengine_module_create_factory #define SCIM_CONFIG_IMENGINE_RAWCODE_LOCALES "/IMEngine/RawCode/Locales" #define SCIM_PROP_RAWCODE_ENCODING "/IMEngine/RawCode/Encoding" #define SCIM_RAWCODE_ICON_FILE (SCIM_ICONDIR "/rawcode.png") using namespace scim; static Pointer __rawcode_factory; static String __rawcode_locales; static std::vector __rawcode_encodings; extern "C" { void scim_module_init (void) { __rawcode_locales = String ( "zh_CN.GB18030,zh_CN.GBK,zh_CN.GB2312,zh_TW,zh_TW.EUC-TW,zh_HK," "ja_JP,ja_JP.sjis,ko_KR,en_US.UTF-8"); } void scim_module_exit (void) { __rawcode_factory.reset (); } unsigned int scim_imengine_module_init (const ConfigPointer &config) { if (!config.null ()) { String locales = config->read (String (SCIM_CONFIG_IMENGINE_RAWCODE_LOCALES), String ("default")); if (locales != "default") __rawcode_locales = locales; } std::vector locale_list; scim_split_string_list (locale_list, __rawcode_locales); for (size_t i=0; i"))); } WideString RawCodeFactory::get_credits () const { return WideString (); } WideString RawCodeFactory::get_help () const { return utf8_mbstowcs (String (_( "Hot Keys:\n\n" " Control+u:\n" " switch between Multibyte encoding and Unicode.\n\n" " Esc:\n" " reset the input method.\n"))); } String RawCodeFactory::get_uuid () const { return String ("6e029d75-ef65-42a8-848e-332e63d70f9c"); } String RawCodeFactory::get_icon_file () const { return String (SCIM_RAWCODE_ICON_FILE); } String RawCodeFactory::get_language () const { return scim_validate_language ("other"); } IMEngineInstancePointer RawCodeFactory::create_instance (const String& encoding, int id) { return new RawCodeInstance (this, encoding, id); } int RawCodeFactory::get_maxlen (const String &encoding) { if (encoding == "UTF-8") return 4; if (encoding == "Unicode") return 0; std::vector locales; scim_split_string_list (locales, get_locales ()); for (size_t i=0; i= SCIM_KEY_0 && key.code <= SCIM_KEY_9) || (key.code >= SCIM_KEY_A && key.code <= SCIM_KEY_F) || (key.code >= SCIM_KEY_a && key.code <= SCIM_KEY_f)) && (key.mask == 0 || key.is_shift_down ()) && m_preedit_string.length () < m_max_preedit_len) { if (m_preedit_string.length () == 0) show_preedit_string (); ucs4_t ascii = (ucs4_t) tolower (key.get_ascii_code ()); m_preedit_string.push_back (ascii); update_preedit_string (m_preedit_string); update_preedit_caret (m_preedit_string.length ()); process_preedit_string (); return true; } // commit key if (key.code == SCIM_KEY_space && key.mask == 0 && m_preedit_string.length () && m_lookup_table.number_of_candidates ()) { WideString str = m_lookup_table.get_candidate_label (0); // It's already a complete char, commit it. if (str.length () && str [0] == 0x20) { commit_string (m_lookup_table.get_candidate_in_current_page (0)); reset (); return true; } } //page up key. if ((key.code == SCIM_KEY_comma || key.code == SCIM_KEY_minus || key.code == SCIM_KEY_bracketleft || key.code == SCIM_KEY_Page_Up) && key.mask == 0) lookup_table_page_up (); //page down key. if ((key.code == SCIM_KEY_period || key.code == SCIM_KEY_equal || key.code == SCIM_KEY_bracketright || key.code == SCIM_KEY_Page_Down) && key.mask == 0) lookup_table_page_down (); //other keys is not allowed when preediting if (m_preedit_string.length ()) return true; return false; } void RawCodeInstance::select_candidate (unsigned int item) { WideString label = m_lookup_table.get_candidate_label (item); KeyEvent key ((int) label [0], 0); process_key_event (key); } void RawCodeInstance::update_lookup_table_page_size (unsigned int page_size) { if (page_size > 0) m_lookup_table.set_page_size (page_size); } void RawCodeInstance::lookup_table_page_up () { if (m_preedit_string.length () && m_lookup_table.number_of_candidates ()) { m_lookup_table.page_up (); m_lookup_table.set_page_size (m_lookup_table.number_of_candidates ()); m_lookup_table.set_candidate_labels ( std::vector ( m_lookup_table_labels.begin () + m_lookup_table.get_current_page_start (), m_lookup_table_labels.end ())); update_lookup_table (m_lookup_table); } } void RawCodeInstance::lookup_table_page_down () { if (m_preedit_string.length () && m_lookup_table.number_of_candidates ()) { m_lookup_table.page_down (); m_lookup_table.set_page_size (m_lookup_table.number_of_candidates ()); m_lookup_table.set_candidate_labels ( std::vector ( m_lookup_table_labels.begin () + m_lookup_table.get_current_page_start (), m_lookup_table_labels.end ())); update_lookup_table (m_lookup_table); } } void RawCodeInstance::move_preedit_caret (unsigned int /*pos*/) { } void RawCodeInstance::reset () { if (!m_client_iconv.set_encoding (get_encoding ())) m_client_iconv.set_encoding ("UTF-8"); m_preedit_string = WideString (); m_lookup_table.clear (); hide_lookup_table (); hide_preedit_string (); } void RawCodeInstance::set_working_encoding (const String &encoding) { unsigned int maxlen = m_factory->get_maxlen (encoding); if (maxlen && encoding != "Unicode" && m_working_iconv.set_encoding (encoding)){ m_unicode = false; m_max_preedit_len = maxlen * 2; m_working_encoding = encoding; } else { m_unicode = true; m_working_encoding = "Unicode"; m_max_preedit_len = 6; } refresh_encoding_property (); } void RawCodeInstance::focus_in () { initialize_properties (); if (m_preedit_string.length ()) { update_preedit_string (m_preedit_string); update_preedit_caret (m_preedit_string.length ()); show_preedit_string (); if (m_lookup_table.number_of_candidates ()) { update_lookup_table (m_lookup_table); show_lookup_table (); } } } void RawCodeInstance::focus_out () { reset (); } void RawCodeInstance::trigger_property (const String &property) { if (property.substr (0, strlen (SCIM_PROP_RAWCODE_ENCODING)) == SCIM_PROP_RAWCODE_ENCODING) { set_working_encoding (property.substr (strlen (SCIM_PROP_RAWCODE_ENCODING) + 1)); reset (); } } void RawCodeInstance::initialize_properties () { PropertyList proplist; proplist.push_back (Property (SCIM_PROP_RAWCODE_ENCODING, _(m_working_encoding.c_str ()), "", _("The status of the current input method. Click to change it."))); proplist.push_back (Property (String (SCIM_PROP_RAWCODE_ENCODING) + String ("/Unicode"), _("Unicode"))); for (size_t i = 0; i < __rawcode_encodings.size (); ++i) proplist.push_back (Property (String (SCIM_PROP_RAWCODE_ENCODING) + String ("/") + __rawcode_encodings [i], _(__rawcode_encodings [i].c_str ()))); register_properties (proplist); } void RawCodeInstance::refresh_encoding_property () { update_property (Property (SCIM_PROP_RAWCODE_ENCODING, _(m_working_encoding.c_str ()), "", _("The status of the current input method. Click to change it."))); } void RawCodeInstance::process_preedit_string () { if (m_preedit_string.length () == 0) { hide_preedit_string (); hide_lookup_table (); return; } if (m_unicode) { size_t maxlen = 6; if (m_preedit_string.length () > 0) { if (m_preedit_string [0] == '0') maxlen = 4; else if (m_preedit_string [0] == '1') maxlen = 6; else maxlen = 5; } if (m_preedit_string.length () >= 3 && m_preedit_string.length () < maxlen && create_lookup_table () > 0) { update_lookup_table (m_lookup_table); } else if (m_preedit_string.length () == maxlen) { WideString str; ucs4_t code = get_unicode_value (m_preedit_string); m_preedit_string = WideString (); m_lookup_table.clear (); hide_preedit_string (); // If code is valid under current encoding, // then commit it. if (m_client_iconv.test_convert (&code, 1) && code > 0 && code < 0x10FFFF) { str.push_back (code); commit_string (str); } } else if (m_lookup_table.number_of_candidates ()){ m_lookup_table.clear (); } } else { String code = get_multibyte_string (m_preedit_string); WideString wstr; // convert ok, then commit. if (m_working_iconv.convert (wstr, code) && wstr.length () > 0 && wstr [0] >= 128 && m_client_iconv.test_convert (wstr)) { m_preedit_string = WideString (); m_lookup_table.clear (); hide_preedit_string (); commit_string (wstr); } else if (create_lookup_table () > 0) { update_lookup_table (m_lookup_table); } } if (m_lookup_table.number_of_candidates ()) show_lookup_table (); else hide_lookup_table (); } inline static int ascii_to_hex (int ascii) { if (ascii >= '0' && ascii <= '9') return ascii - '0'; else if (ascii >= 'a' && ascii <= 'f') return ascii - 'a' + 10; else if (ascii >= 'A' && ascii <= 'F') return ascii - 'A' + 10; return 0; } inline static int hex_to_ascii (int hex) { hex %= 16; if (hex >= 0 && hex <= 9) return hex + '0'; return hex - 10 + 'a'; } String RawCodeInstance::get_multibyte_string (const WideString & preedit) { String str; char ch = 0; if (preedit.length () == 0) return str; for (size_t i=0; i 0 && ucs_code < 0x10FFFF) { m_lookup_table_labels.push_back (trail); m_lookup_table.append_candidate (ucs_code); } } for (int i=0; i<16; ++i) { trail [0] = (ucs4_t) hex_to_ascii (i); if (m_unicode) { ucs_code = get_unicode_value (m_preedit_string + trail); if (m_client_iconv.test_convert (&ucs_code, 1) && ucs_code > 0 && ucs_code < 0x10FFFF) { m_lookup_table_labels.push_back (trail); m_lookup_table.append_candidate (ucs_code); } } else { mbs_code = get_multibyte_string (m_preedit_string + trail); if (m_working_iconv.convert (wstr, mbs_code) && wstr.length () > 0 && wstr [0] >= 128 && m_client_iconv.test_convert (wstr)) { m_lookup_table_labels.push_back (trail); m_lookup_table.append_candidate (wstr); } } } m_lookup_table.set_page_size (m_lookup_table_labels.size ()); m_lookup_table.set_candidate_labels (m_lookup_table_labels); return m_lookup_table_labels.size (); } /* vi:ts=4:nowrap:ai:expandtab */ scim-1.4.14/modules/IMEngine/scim_rawcode_imengine.h000066400000000000000000000062451177210725600223410ustar00rootroot00000000000000/** @file scim_rawcode_imengine.h * definition of RawCode related classes. */ /* * Smart Common Input Method * * Copyright (c) 2002-2005 James Su * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this program; if not, write to the * Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, MA 02111-1307 USA * * $Id: scim_rawcode_imengine.h,v 1.5.4.3 2006/01/12 07:00:36 suzhe Exp $ */ #if !defined (__SCIM_RAWCODE_IMENGINE_H) #define __SCIM_RAWCODE_IMENGINE_H using namespace scim; class RawCodeFactory : public IMEngineFactoryBase { friend class RawCodeInstance; public: RawCodeFactory (); virtual ~RawCodeFactory (); virtual WideString get_name () const; virtual WideString get_authors () const; virtual WideString get_credits () const; virtual WideString get_help () const; virtual String get_uuid () const; virtual String get_icon_file () const; virtual String get_language () const; virtual IMEngineInstancePointer create_instance (const String& encoding, int id = -1); private: int get_maxlen (const String &encoding); }; class RawCodeInstance : public IMEngineInstanceBase { Pointer m_factory; CommonLookupTable m_lookup_table; std::vector m_lookup_table_labels; WideString m_preedit_string; String m_working_encoding; bool m_unicode; size_t m_max_preedit_len; IConvert m_working_iconv; IConvert m_client_iconv; public: RawCodeInstance (RawCodeFactory *factory, const String& encoding, int id = -1); virtual ~RawCodeInstance (); virtual bool process_key_event (const KeyEvent& key); virtual void move_preedit_caret (unsigned int pos); virtual void select_candidate (unsigned int item); virtual void update_lookup_table_page_size (unsigned int page_size); virtual void lookup_table_page_up (); virtual void lookup_table_page_down (); virtual void reset (); virtual void focus_in (); virtual void focus_out (); virtual void trigger_property (const String &property); private: int create_lookup_table (); void process_preedit_string (); void initialize_properties (); void refresh_encoding_property (); void set_working_encoding (const String &encoding); String get_multibyte_string (const WideString& preedit); ucs4_t get_unicode_value (const WideString& preedit); }; #endif /* vi:ts=4:nowrap:ai:expandtab */ scim-1.4.14/modules/IMEngine/scim_socket_imengine.cpp000066400000000000000000000745001177210725600225370ustar00rootroot00000000000000/** @file scim_socket_imengine.cpp * implementation of class SocketFactory and SocketInstance. */ /* * Smart Common Input Method * * Copyright (c) 2002-2005 James Su * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this program; if not, write to the * Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, MA 02111-1307 USA * * $Id: scim_socket_imengine.cpp,v 1.21 2005/07/06 03:57:04 suzhe Exp $ * */ #define Uses_SCIM_IMENGINE #define Uses_SCIM_CONFIG_BASE #define Uses_SCIM_CONFIG_PATH #define Uses_SCIM_SOCKET #define Uses_SCIM_TRANSACTION #define Uses_C_STDLIB #include #include "scim_private.h" #include "scim.h" #include "scim_socket_imengine.h" #include "scim_stl_map.h" #define scim_module_init socket_LTX_scim_module_init #define scim_module_exit socket_LTX_scim_module_exit #define scim_imengine_module_init socket_LTX_scim_imengine_module_init #define scim_imengine_module_create_factory socket_LTX_scim_imengine_module_create_factory #define SCIM_CONFIG_IMENGINE_SOCKET_TIMEOUT "/IMEngine/Socket/Timeout" #define SCIM_CONFIG_IMENGINE_SOCKET_ADDRESS "/IMEngine/Socket/Address" #define SCIM_SOCKET_FRONTEND_DEF_ADDRESS "local:/tmp/scim-socket-frontend" #ifndef SCIM_TEMPDIR #define SCIM_TEMPDIR "/tmp" #endif using namespace scim; class scim::SocketIMEngineGlobal { #if SCIM_USE_STL_EXT_HASH_MAP typedef __gnu_cxx::hash_map IconRepository; #elif SCIM_USE_STL_HASH_MAP typedef std::hash_map IconRepository; #else typedef std::map IconRepository; #endif SocketClient m_socket_client; SocketAddress m_socket_address; uint32 m_socket_magic_key; int m_socket_timeout; std::vector m_peer_factories; IconRepository m_icon_repository; Signal0 m_signal_reconnect; public: SocketIMEngineGlobal (); ~SocketIMEngineGlobal (); bool create_connection (); unsigned int number_of_factories (); SocketFactory * create_factory (unsigned int index); void init_transaction (Transaction &trans); bool send_transaction (Transaction &trans); bool receive_transaction (Transaction &trans); String load_icon (const String &icon); Connection connect_reconnect_signal (Slot0 *slot_reconnect); private: void init (); void destroy (); void destroy_all_icons (); }; static SocketIMEngineGlobal *global = 0; extern "C" { void scim_module_init (void) { if (!global) global = new SocketIMEngineGlobal; } void scim_module_exit (void) { if (global) { delete global; global = 0; } } unsigned int scim_imengine_module_init (const ConfigPointer &config) { if (global) return global->number_of_factories (); return 0; } IMEngineFactoryPointer scim_imengine_module_create_factory (unsigned int index) { if (!global || index >= global->number_of_factories ()) return 0; SocketFactory *sf = global->create_factory (index); if (!sf || !sf->valid ()) { delete sf; sf = 0; } return sf; } } namespace scim { SocketIMEngineGlobal::SocketIMEngineGlobal () : m_socket_magic_key (0), m_socket_timeout (-1) { init (); } SocketIMEngineGlobal::~SocketIMEngineGlobal () { destroy (); } void SocketIMEngineGlobal::init () { SCIM_DEBUG_IMENGINE(1) << "Init SocketIMEngine Global.\n"; String address = scim_get_default_socket_imengine_address (); m_socket_timeout = scim_get_default_socket_timeout (); m_socket_address.set_address (address); if (!m_socket_address.valid ()) return; // Connect to SocketFrontEnd. if (!create_connection ()) { SCIM_DEBUG_IMENGINE(2) << " Cannot connect to SocketFrontEnd (" << address << ").\n"; return; } SCIM_DEBUG_IMENGINE(2) << " Connected to SocketFrontEnd (" << address << ") MagicKey (" << m_socket_magic_key << ").\n"; // Init the connection, and get IMEngineFactory list. Transaction trans; // Get IMEngineFactory list. init_transaction (trans); trans.put_command (SCIM_TRANS_CMD_GET_FACTORY_LIST); trans.put_data (String ("")); if (!send_transaction (trans)) return; int cmd; if (trans.read_from_socket (m_socket_client, m_socket_timeout) && trans.get_command (cmd) && cmd == SCIM_TRANS_CMD_REPLY && trans.get_data (m_peer_factories) && trans.get_command (cmd) && cmd == SCIM_TRANS_CMD_OK) { SCIM_DEBUG_IMENGINE(2) << " Found " << m_peer_factories.size () << " IMEngine Factories.\n"; } } bool SocketIMEngineGlobal::create_connection () { // Connect to SocketFrontEnd. if (!m_socket_client.connect (m_socket_address)) return false; if (!scim_socket_open_connection (m_socket_magic_key, String ("SocketIMEngine"), String ("SocketFrontEnd"), m_socket_client, m_socket_timeout)) { m_socket_client.close (); return false; } m_signal_reconnect.emit (); return true; } void SocketIMEngineGlobal::destroy () { SCIM_DEBUG_IMENGINE(1) << "Destroy SocketIMEngine Global.\n"; m_socket_client.close (); destroy_all_icons (); } unsigned int SocketIMEngineGlobal::number_of_factories () { return m_peer_factories.size (); } SocketFactory * SocketIMEngineGlobal::create_factory (unsigned int index) { if (index < m_peer_factories.size ()) { return new SocketFactory (m_peer_factories [index]); } return 0; } void SocketIMEngineGlobal::init_transaction (Transaction &trans) { trans.clear (); trans.put_command (SCIM_TRANS_CMD_REQUEST); trans.put_data (m_socket_magic_key); } bool SocketIMEngineGlobal::send_transaction (Transaction &trans) { return trans.write_to_socket (m_socket_client); } bool SocketIMEngineGlobal::receive_transaction (Transaction &trans) { return trans.read_from_socket (m_socket_client, m_socket_timeout); } String SocketIMEngineGlobal::load_icon (const String &icon) { String local_icon = icon; IconRepository::const_iterator it = m_icon_repository.find (icon); // The icon has been loaded, just return the local copy filename. if (it != m_icon_repository.end ()) local_icon = it->second; // This icon is already available in local system, just return. if (scim_load_file (local_icon, 0) != 0) return local_icon; Transaction trans; int cmd; char *bufptr = 0; size_t filesize = 0; local_icon = String (""); init_transaction (trans); trans.put_command (SCIM_TRANS_CMD_LOAD_FILE); trans.put_data (icon); // Load icon file from remote SocketFrontEnd. if (send_transaction (trans) && receive_transaction (trans) && trans.get_command (cmd) && cmd == SCIM_TRANS_CMD_REPLY && trans.get_data (&bufptr, filesize) && trans.get_command (cmd) && cmd == SCIM_TRANS_CMD_OK) { String tempfile; String::size_type pos = icon.rfind (SCIM_PATH_DELIM); if (pos != String::npos) { tempfile = icon.substr (pos + 1, String::npos); } else { tempfile = icon; } char tmp [80]; snprintf (tmp, 80, "%lu", (unsigned long) m_socket_magic_key); tempfile = String (SCIM_TEMPDIR) + String (SCIM_PATH_DELIM_STRING) + String ("scim-") + String (tmp) + String ("-") + tempfile; SCIM_DEBUG_IMENGINE(1) << "Creating temporary icon file: " << tempfile << "\n"; std::ofstream os (tempfile.c_str ()); if (os) { os.write (bufptr, filesize); os.close (); // Check if the file is written correctly. if (scim_load_file (tempfile, 0) == filesize) { m_icon_repository [icon] = tempfile; local_icon = tempfile; } else { unlink (tempfile.c_str ()); } } } delete [] bufptr; return local_icon; } Connection SocketIMEngineGlobal::connect_reconnect_signal (Slot0 *slot_reconnect) { return m_signal_reconnect.connect (slot_reconnect); } void SocketIMEngineGlobal::destroy_all_icons () { IconRepository::const_iterator it = m_icon_repository.begin (); for (; it != m_icon_repository.end (); ++ it) { unlink (it->second.c_str ()); } m_icon_repository.clear (); } int SocketFactory::create_peer_instance (const String &encoding) { int cmd; int si_peer_id = -1; uint32 val; Transaction trans; SCIM_DEBUG_IMENGINE(1) << "Create IMEngine Instance " << m_peer_uuid << ".\n"; global->init_transaction (trans); trans.put_command (SCIM_TRANS_CMD_NEW_INSTANCE); trans.put_data (m_peer_uuid); trans.put_data (encoding); if (global->send_transaction (trans)) { if (global->receive_transaction (trans) && trans.get_command (cmd) && cmd == SCIM_TRANS_CMD_REPLY && trans.get_data (val) && trans.get_command (cmd) && cmd == SCIM_TRANS_CMD_OK) { si_peer_id = (int) val; } } SCIM_DEBUG_IMENGINE(2) << " IMEngineInstance created (" << si_peer_id << ")\n"; return si_peer_id; } SocketFactory::SocketFactory (const String &peer_uuid) : m_name (utf8_mbstowcs (_("Unknown"))), m_language (String ("")), m_peer_uuid (peer_uuid), m_icon_file (String ("")), m_ok (false) { String locales; String iconfile; int cmd; bool m_name_ok = false; bool m_locale_ok = false; Transaction trans; SCIM_DEBUG_IMENGINE(1) << "Create SocketFactory " << peer_uuid << ".\n"; // Get factory name. global->init_transaction (trans); trans.put_command (SCIM_TRANS_CMD_GET_FACTORY_NAME); trans.put_data (m_peer_uuid); if (global->send_transaction (trans)) { if (global->receive_transaction (trans) && trans.get_command (cmd) && cmd == SCIM_TRANS_CMD_REPLY && trans.get_data (m_name) && trans.get_command (cmd) && cmd == SCIM_TRANS_CMD_OK) { SCIM_DEBUG_IMENGINE(2) << " Name (" << utf8_wcstombs (m_name) << ")\n"; m_name_ok = true; } else { m_name = utf8_mbstowcs (_("Unknown")); } } // Get factory locales global->init_transaction (trans); trans.put_command (SCIM_TRANS_CMD_GET_FACTORY_LOCALES); trans.put_data (m_peer_uuid); if (global->send_transaction (trans)) { if (global->receive_transaction (trans) && trans.get_command (cmd) && cmd == SCIM_TRANS_CMD_REPLY && trans.get_data (locales) && trans.get_command (cmd) && cmd == SCIM_TRANS_CMD_OK) { SCIM_DEBUG_IMENGINE(2) << " Locales (" << locales << ")\n"; set_locales (locales); m_locale_ok = true; } } // Get factory language global->init_transaction (trans); trans.put_command (SCIM_TRANS_CMD_GET_FACTORY_LANGUAGE); trans.put_data (m_peer_uuid); if (global->send_transaction (trans)) { if (global->receive_transaction (trans) && trans.get_command (cmd) && cmd == SCIM_TRANS_CMD_REPLY && trans.get_data (m_language) && trans.get_command (cmd) && cmd == SCIM_TRANS_CMD_OK) { SCIM_DEBUG_IMENGINE(2) << " Language (" << m_language << ")\n"; } else { m_language.clear (); } } // Get icon file. global->init_transaction (trans); trans.put_command (SCIM_TRANS_CMD_GET_FACTORY_ICON_FILE); trans.put_data (m_peer_uuid); if (global->send_transaction (trans)) { if (global->receive_transaction (trans) && trans.get_command (cmd) && cmd == SCIM_TRANS_CMD_REPLY && trans.get_data (iconfile) && trans.get_command (cmd) && cmd == SCIM_TRANS_CMD_OK) { m_icon_file = global->load_icon (iconfile); } } m_ok = (m_name_ok && m_locale_ok); } SocketFactory::~SocketFactory () { } WideString SocketFactory::get_name () const { return m_name; } WideString SocketFactory::get_authors () const { int cmd; WideString authors; Transaction trans; SCIM_DEBUG_IMENGINE(1) << "Get Authors " << m_peer_uuid << ".\n"; // Get factory authors. for (int retry = 0; retry < 3; ++retry) { global->init_transaction (trans); trans.put_command (SCIM_TRANS_CMD_GET_FACTORY_AUTHORS); trans.put_data (m_peer_uuid); if (global->send_transaction (trans) && global->receive_transaction (trans) && trans.get_command (cmd) && cmd == SCIM_TRANS_CMD_REPLY && trans.get_data (authors) && trans.get_command (cmd) && cmd == SCIM_TRANS_CMD_OK) break; authors = utf8_mbstowcs (_("Unknown")); if (!global->create_connection ()) break; } return authors; } WideString SocketFactory::get_credits () const { int cmd; WideString credits; Transaction trans; SCIM_DEBUG_IMENGINE(1) << "Get Credits " << m_peer_uuid << ".\n"; // Get factory credits. for (int retry = 0; retry < 3; ++retry) { global->init_transaction (trans); trans.put_command (SCIM_TRANS_CMD_GET_FACTORY_CREDITS); trans.put_data (m_peer_uuid); if (global->send_transaction (trans) && global->receive_transaction (trans) && trans.get_command (cmd) && cmd == SCIM_TRANS_CMD_REPLY && trans.get_data (credits) && trans.get_command (cmd) && cmd == SCIM_TRANS_CMD_OK) break; credits = utf8_mbstowcs (_("Unknown")); if (!global->create_connection ()) break; } return credits; } WideString SocketFactory::get_help () const { int cmd; WideString help; Transaction trans; SCIM_DEBUG_IMENGINE(1) << "Get Help " << m_peer_uuid << ".\n"; // Get factory help. for (int retry = 0; retry < 3; ++retry) { global->init_transaction (trans); trans.put_command (SCIM_TRANS_CMD_GET_FACTORY_HELP); trans.put_data (m_peer_uuid); if (global->send_transaction (trans) && global->receive_transaction (trans) && trans.get_command (cmd) && cmd == SCIM_TRANS_CMD_REPLY && trans.get_data (help) && trans.get_command (cmd) && cmd == SCIM_TRANS_CMD_OK) break; help = utf8_mbstowcs (_("Unknown")); if (!global->create_connection ()) break; } return help; } String SocketFactory::get_uuid () const { return m_peer_uuid; } String SocketFactory::get_icon_file () const { return m_icon_file; } String SocketFactory::get_language () const { if (m_language.length ()) return m_language; else return IMEngineFactoryBase::get_language (); } IMEngineInstancePointer SocketFactory::create_instance (const String& encoding, int id) { int si_peer_id = create_peer_instance (encoding); SCIM_DEBUG_IMENGINE(2) << " IMEngineInstance created (" << si_peer_id << ")\n"; return new SocketInstance (this, encoding, id, si_peer_id); } SocketInstance::SocketInstance (SocketFactory *factory, const String& encoding, int id, int peer_id) : IMEngineInstanceBase (factory, encoding, id), m_factory (factory), m_peer_id (peer_id) { m_signal_reconnect_connection = global->connect_reconnect_signal (slot (this, &SocketInstance::reconnect_callback)); } SocketInstance::~SocketInstance () { Transaction trans; SCIM_DEBUG_IMENGINE(1) << "Destroy IMEngine Instance " << m_peer_id << ".\n"; m_signal_reconnect_connection.disconnect (); if (m_peer_id >= 0) { global->init_transaction (trans); trans.put_command (SCIM_TRANS_CMD_DELETE_INSTANCE); trans.put_data (m_peer_id); commit_transaction (trans); } } bool SocketInstance::process_key_event (const KeyEvent& key) { Transaction trans; global->init_transaction (trans); SCIM_DEBUG_IMENGINE(1) << "process_key_event (" << m_peer_id << ")\n"; trans.put_command (SCIM_TRANS_CMD_PROCESS_KEY_EVENT); trans.put_data (m_peer_id); trans.put_data (key); return commit_transaction (trans); } void SocketInstance::move_preedit_caret (unsigned int pos) { Transaction trans; global->init_transaction (trans); SCIM_DEBUG_IMENGINE(1) << "move_preedit_caret (" << m_peer_id << ")\n"; trans.put_command (SCIM_TRANS_CMD_MOVE_PREEDIT_CARET); trans.put_data (m_peer_id); trans.put_data ((uint32) pos); commit_transaction (trans); } void SocketInstance::select_candidate (unsigned int item) { Transaction trans; global->init_transaction (trans); SCIM_DEBUG_IMENGINE(1) << "select_candidate (" << m_peer_id << ")\n"; trans.put_command (SCIM_TRANS_CMD_SELECT_CANDIDATE); trans.put_data (m_peer_id); trans.put_data ((uint32) item); commit_transaction (trans); } void SocketInstance::update_lookup_table_page_size (unsigned int page_size) { Transaction trans; global->init_transaction (trans); SCIM_DEBUG_IMENGINE(1) << "update_lookup_table_page_size (" << m_peer_id << ")\n"; trans.put_command (SCIM_TRANS_CMD_UPDATE_LOOKUP_TABLE_PAGE_SIZE); trans.put_data (m_peer_id); trans.put_data ((uint32) page_size); commit_transaction (trans); } void SocketInstance::lookup_table_page_up () { Transaction trans; global->init_transaction (trans); SCIM_DEBUG_IMENGINE(1) << "lookup_table_page_up (" << m_peer_id << ")\n"; trans.put_command (SCIM_TRANS_CMD_LOOKUP_TABLE_PAGE_UP); trans.put_data (m_peer_id); commit_transaction (trans); } void SocketInstance::lookup_table_page_down () { Transaction trans; global->init_transaction (trans); SCIM_DEBUG_IMENGINE(1) << "lookup_table_page_up (" << m_peer_id << ")\n"; trans.put_command (SCIM_TRANS_CMD_LOOKUP_TABLE_PAGE_DOWN); trans.put_data (m_peer_id); commit_transaction (trans); } void SocketInstance::reset () { Transaction trans; global->init_transaction (trans); SCIM_DEBUG_IMENGINE(1) << "reset (" << m_peer_id << ")\n"; trans.put_command (SCIM_TRANS_CMD_RESET); trans.put_data (m_peer_id); commit_transaction (trans); } void SocketInstance::focus_in () { Transaction trans; global->init_transaction (trans); SCIM_DEBUG_IMENGINE(1) << "focus_in (" << m_peer_id << ")\n"; trans.put_command (SCIM_TRANS_CMD_FOCUS_IN); trans.put_data (m_peer_id); commit_transaction (trans); } void SocketInstance::focus_out () { Transaction trans; global->init_transaction (trans); SCIM_DEBUG_IMENGINE(1) << "focus_out (" << m_peer_id << ")\n"; trans.put_command (SCIM_TRANS_CMD_FOCUS_OUT); trans.put_data (m_peer_id); commit_transaction (trans); } void SocketInstance::trigger_property (const String &property) { Transaction trans; global->init_transaction (trans); SCIM_DEBUG_IMENGINE(1) << "trigger_property (" << m_peer_id << ", " << property << ")\n"; trans.put_command (SCIM_TRANS_CMD_TRIGGER_PROPERTY); trans.put_data (m_peer_id); trans.put_data (property); commit_transaction (trans); } void SocketInstance::process_helper_event (const String &helper_uuid, const Transaction &helper_trans) { Transaction trans; global->init_transaction (trans); SCIM_DEBUG_IMENGINE(1) << "process_helper_event (" << m_peer_id << ", " << helper_uuid << ")\n"; trans.put_command (SCIM_TRANS_CMD_PROCESS_HELPER_EVENT); trans.put_data (m_peer_id); trans.put_data (helper_uuid); trans.put_data (helper_trans); commit_transaction (trans); } void SocketInstance::update_client_capabilities (unsigned int cap) { Transaction trans; global->init_transaction (trans); SCIM_DEBUG_IMENGINE(1) << "update_client_capabilities (" << m_peer_id << ", " << cap << ")\n"; trans.put_command (SCIM_TRANS_CMD_UPDATE_CLIENT_CAPABILITIES); trans.put_data (m_peer_id); trans.put_data ((uint32) cap); commit_transaction (trans); } bool SocketInstance::commit_transaction (Transaction &trans) { SCIM_DEBUG_IMENGINE(2) << " commit_transaction:\n"; bool ret = false; if (m_peer_id >= 0) { if (global->send_transaction (trans)) { while (1) { if (!global->receive_transaction (trans)) break; if (!do_transaction (trans, ret)) return ret; } } } if (global->create_connection ()) reset (); return ret; } bool SocketInstance::do_transaction (Transaction &trans, bool &ret) { int cmd = -1; bool cont = false; ret = false; SCIM_DEBUG_IMENGINE(2) << " Do transaction:\n"; if (trans.get_command (cmd) && cmd == SCIM_TRANS_CMD_REPLY) { while (trans.get_command (cmd)) { switch (cmd) { case SCIM_TRANS_CMD_SHOW_PREEDIT_STRING: { SCIM_DEBUG_IMENGINE(3) << " show_preedit_string ()\n"; show_preedit_string (); break; } case SCIM_TRANS_CMD_SHOW_AUX_STRING: { SCIM_DEBUG_IMENGINE(3) << " show_aux_string ()\n"; show_aux_string (); break; } case SCIM_TRANS_CMD_SHOW_LOOKUP_TABLE: { SCIM_DEBUG_IMENGINE(3) << " show_lookup_table ()\n"; show_lookup_table (); break; } case SCIM_TRANS_CMD_HIDE_PREEDIT_STRING: { SCIM_DEBUG_IMENGINE(3) << " hide_preedit_string ()\n"; hide_preedit_string (); break; } case SCIM_TRANS_CMD_HIDE_AUX_STRING: { SCIM_DEBUG_IMENGINE(3) << " hide_aux_string ()\n"; hide_aux_string (); break; } case SCIM_TRANS_CMD_HIDE_LOOKUP_TABLE: { SCIM_DEBUG_IMENGINE(3) << " hide_lookup_table ()\n"; hide_lookup_table (); break; } case SCIM_TRANS_CMD_UPDATE_PREEDIT_CARET: { uint32 caret; if (trans.get_data (caret)) { SCIM_DEBUG_IMENGINE(3) << " update_preedit_caret (" << caret << ")\n"; update_preedit_caret (caret); } break; } case SCIM_TRANS_CMD_UPDATE_PREEDIT_STRING: { WideString str; AttributeList attrs; if (trans.get_data (str) && trans.get_data (attrs)) { SCIM_DEBUG_IMENGINE(3) << " update_preedit_string ()\n"; update_preedit_string (str, attrs); } break; } case SCIM_TRANS_CMD_UPDATE_AUX_STRING: { WideString str; AttributeList attrs; if (trans.get_data (str) && trans.get_data (attrs)) { SCIM_DEBUG_IMENGINE(3) << " update_aux_string ()\n"; update_aux_string (str, attrs); } break; } case SCIM_TRANS_CMD_UPDATE_LOOKUP_TABLE: { CommonLookupTable table; if (trans.get_data (table)) { SCIM_DEBUG_IMENGINE(3) << " update_lookup_table ()\n"; update_lookup_table (table); } break; } case SCIM_TRANS_CMD_COMMIT_STRING: { WideString str; if (trans.get_data (str)) { SCIM_DEBUG_IMENGINE(3) << " commit_string ()\n"; commit_string (str); } break; } case SCIM_TRANS_CMD_FORWARD_KEY_EVENT: { KeyEvent key; if (trans.get_data (key)) { SCIM_DEBUG_IMENGINE(3) << " forward_key_event ()\n"; forward_key_event (key); } break; } case SCIM_TRANS_CMD_REGISTER_PROPERTIES: { PropertyList proplist; if (trans.get_data (proplist)) { SCIM_DEBUG_IMENGINE(3) << " register_properties ()\n"; // Load icon files of these properties from remote SocketFrontEnd. for (PropertyList::iterator it = proplist.begin (); it != proplist.end (); ++it) it->set_icon (global->load_icon (it->get_icon ())); register_properties (proplist); } break; } case SCIM_TRANS_CMD_UPDATE_PROPERTY: { Property prop; if (trans.get_data (prop)) { SCIM_DEBUG_IMENGINE(3) << " update_property ()\n"; // Load the icon file of this property from remote SocketFrontEnd. prop.set_icon (global->load_icon (prop.get_icon ())); update_property (prop); } break; } case SCIM_TRANS_CMD_BEEP: { SCIM_DEBUG_IMENGINE(3) << " beep ()\n"; beep (); break; } case SCIM_TRANS_CMD_START_HELPER: { String helper_uuid; if (trans.get_data (helper_uuid)) { SCIM_DEBUG_IMENGINE(3) << " start_helper (" << helper_uuid << ")\n"; start_helper (helper_uuid); } break; } case SCIM_TRANS_CMD_STOP_HELPER: { String helper_uuid; if (trans.get_data (helper_uuid)) { SCIM_DEBUG_IMENGINE(3) << " stop_helper (" << helper_uuid << ")\n"; stop_helper (helper_uuid); } break; } case SCIM_TRANS_CMD_SEND_HELPER_EVENT: { String helper_uuid; Transaction temp_trans; if (trans.get_data (helper_uuid) && trans.get_data (temp_trans)) { SCIM_DEBUG_IMENGINE(3) << " send_helper_event (" << helper_uuid << ")\n"; send_helper_event (helper_uuid, temp_trans); } break; } case SCIM_TRANS_CMD_OK: { SCIM_DEBUG_IMENGINE(3) << " ret = true\n"; ret = true; break; } case SCIM_TRANS_CMD_GET_SURROUNDING_TEXT: { WideString text; int cursor; uint32 maxlen_before; uint32 maxlen_after; Transaction temp_trans; if (trans.get_data (maxlen_before) && trans.get_data (maxlen_after)) { global->init_transaction (temp_trans); if (get_surrounding_text (text, cursor, (int) maxlen_before, (int) maxlen_after)) { temp_trans.put_command (SCIM_TRANS_CMD_GET_SURROUNDING_TEXT); temp_trans.put_data (text); temp_trans.put_data ((uint32) cursor); } else { temp_trans.put_command (SCIM_TRANS_CMD_FAIL); } global->send_transaction (temp_trans); } cont = true; break; } case SCIM_TRANS_CMD_DELETE_SURROUNDING_TEXT: { uint32 offset; uint32 len; Transaction temp_trans; if (trans.get_data (offset) && trans.get_data (len)) { global->init_transaction (temp_trans); if (delete_surrounding_text ((int) offset, (int) len)) { temp_trans.put_command (SCIM_TRANS_CMD_DELETE_SURROUNDING_TEXT); temp_trans.put_command (SCIM_TRANS_CMD_OK); } else { temp_trans.put_command (SCIM_TRANS_CMD_FAIL); } global->send_transaction (temp_trans); } cont = true; break; } default: SCIM_DEBUG_IMENGINE(3) << " Strange cmd: " << cmd << "\n";; } } } else { SCIM_DEBUG_IMENGINE(3) << " Failed to get cmd: " << cmd << "\n"; } SCIM_DEBUG_IMENGINE(2) << " End of Do transaction\n"; return cont; } void SocketInstance::reconnect_callback (void) { m_peer_id = m_factory->create_peer_instance (get_encoding ()); } } // namespace scim /* vi:ts=4:nowrap:ai:expandtab */ scim-1.4.14/modules/IMEngine/scim_socket_imengine.h000066400000000000000000000061051177210725600222000ustar00rootroot00000000000000/** @file scim_socket_imengine.h * definition of SocketFactory related classes. */ /* * Smart Common Input Method * * Copyright (c) 2002-2005 James Su * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this program; if not, write to the * Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, MA 02111-1307 USA * * $Id: scim_socket_imengine.h,v 1.13 2005/07/06 03:57:05 suzhe Exp $ */ #if !defined (__SCIM_SOCKET_IMENGINE_H) #define __SCIM_SOCKET_IMENGINE_H namespace scim { class SocketFactory; class SocketFactory : public IMEngineFactoryBase { WideString m_name; String m_language; String m_peer_uuid; String m_icon_file; bool m_ok; friend class SocketInstance; public: SocketFactory (const String &peer_uuid); bool valid () const { return m_ok; } virtual ~SocketFactory (); virtual WideString get_name () const; virtual WideString get_authors () const; virtual WideString get_credits () const; virtual WideString get_help () const; virtual String get_uuid () const; virtual String get_icon_file () const; virtual String get_language () const; virtual IMEngineInstancePointer create_instance (const String& encoding, int id = -1); private: int create_peer_instance (const String &encoding); }; class SocketInstance : public IMEngineInstanceBase { SocketFactory *m_factory; int m_peer_id; Connection m_signal_reconnect_connection; public: SocketInstance (SocketFactory *factory, const String& encoding, int id, int peer_id); virtual ~SocketInstance (); virtual bool process_key_event (const KeyEvent& key); virtual void move_preedit_caret (unsigned int pos); virtual void select_candidate (unsigned int item); virtual void update_lookup_table_page_size (unsigned int page_size); virtual void lookup_table_page_up (); virtual void lookup_table_page_down (); virtual void reset (); virtual void focus_in (); virtual void focus_out (); virtual void trigger_property (const String &property); virtual void process_helper_event (const String &helper_uuid, const Transaction &trans); virtual void update_client_capabilities (unsigned int cap); private: bool commit_transaction (Transaction &trans); bool do_transaction (Transaction &trans, bool &ret); void reconnect_callback (void); }; // Forward declaration class SocketIMEngineGlobal; } // namespace scim #endif /* vi:ts=4:nowrap:ai:expandtab */ scim-1.4.14/modules/Makefile.am000066400000000000000000000016021177210725600162470ustar00rootroot00000000000000## Makefile.am -- Process this file with automake to produce Makefile.in ## Copyright (C) 2002 James Su ## ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2, or (at your option) ## any later version. ## ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. MAINTAINERCLEANFILES = Makefile.in CLEANFILES = *.bak SUBDIRS = FrontEnd IMEngine Config SetupUI Filter scim-1.4.14/modules/Makefile.in000066400000000000000000000525721177210725600162740ustar00rootroot00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = modules DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ ARGZ_H = @ARGZ_H@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CLUTTER_BINARY_VERSION = @CLUTTER_BINARY_VERSION@ CLUTTER_CFLAGS = @CLUTTER_CFLAGS@ CLUTTER_IMCONTEXT_LIBDIR = @CLUTTER_IMCONTEXT_LIBDIR@ CLUTTER_IM_MODULEDIR = @CLUTTER_IM_MODULEDIR@ CLUTTER_LIBDIR = @CLUTTER_LIBDIR@ CLUTTER_LIBS = @CLUTTER_LIBS@ CLUTTER_VERSION = @CLUTTER_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOCBOOK_XSL = @DOCBOOK_XSL@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@ GTHREAD2_LIBS = @GTHREAD2_LIBS@ GTK2_CFLAGS = @GTK2_CFLAGS@ GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@ GTK2_LIBS = @GTK2_LIBS@ GTK3_CFLAGS = @GTK3_CFLAGS@ GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@ GTK3_LIBS = @GTK3_LIBS@ GTK_BINARY_VERSION = @GTK_BINARY_VERSION@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBDIR = @GTK_LIBDIR@ GTK_LIBS = @GTK_LIBS@ GTK_MAJOR_VERSION = @GTK_MAJOR_VERSION@ GTK_VERSION = @GTK_VERSION@ HAVE_GRAPHVIZ = @HAVE_GRAPHVIZ@ INCLTDL = @INCLTDL@ INCLUDE_STDINT = @INCLUDE_STDINT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBLTDL = @LIBLTDL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_DEPS = @LIBTOOL_DEPS@ LIBTOOL_EXPORT_OPTIONS = @LIBTOOL_EXPORT_OPTIONS@ LIPO = @LIPO@ LN_S = @LN_S@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ QT3_CFLAGS = @QT3_CFLAGS@ QT3_IM_MODULEDIR = @QT3_IM_MODULEDIR@ QT3_LIBDIR = @QT3_LIBDIR@ QT3_LIBS = @QT3_LIBS@ QT3_MOC = @QT3_MOC@ QT3_PREFIX = @QT3_PREFIX@ QT4_CFLAGS = @QT4_CFLAGS@ QT4_IM_MODULEDIR = @QT4_IM_MODULEDIR@ QT4_LIBDIR = @QT4_LIBDIR@ QT4_LIBS = @QT4_LIBS@ QT4_MOC = @QT4_MOC@ QT4_PREFIX = @QT4_PREFIX@ RANLIB = @RANLIB@ SCIM_AGE = @SCIM_AGE@ SCIM_BINARY_VERSION = @SCIM_BINARY_VERSION@ SCIM_BRIDGE_MAJOR_VERSION = @SCIM_BRIDGE_MAJOR_VERSION@ SCIM_BRIDGE_MICRO_VERSION = @SCIM_BRIDGE_MICRO_VERSION@ SCIM_BRIDGE_MINOR_VERSION = @SCIM_BRIDGE_MINOR_VERSION@ SCIM_BRIDGE_VERSION = @SCIM_BRIDGE_VERSION@ SCIM_BUILD_CLUTTER_IMMODULE = @SCIM_BUILD_CLUTTER_IMMODULE@ SCIM_BUILD_CONFIG_SIMPLE = @SCIM_BUILD_CONFIG_SIMPLE@ SCIM_BUILD_CONFIG_SOCKET = @SCIM_BUILD_CONFIG_SOCKET@ SCIM_BUILD_DOCUMENTS = @SCIM_BUILD_DOCUMENTS@ SCIM_BUILD_FILTER_SCTC = @SCIM_BUILD_FILTER_SCTC@ SCIM_BUILD_FRONTEND_SOCKET = @SCIM_BUILD_FRONTEND_SOCKET@ SCIM_BUILD_FRONTEND_X11 = @SCIM_BUILD_FRONTEND_X11@ SCIM_BUILD_GTK2_IMMODULE = @SCIM_BUILD_GTK2_IMMODULE@ SCIM_BUILD_GTK3_IMMODULE = @SCIM_BUILD_GTK3_IMMODULE@ SCIM_BUILD_GTK_UTILS = @SCIM_BUILD_GTK_UTILS@ SCIM_BUILD_IMENGINE_RAWCODE = @SCIM_BUILD_IMENGINE_RAWCODE@ SCIM_BUILD_IMENGINE_SOCKET = @SCIM_BUILD_IMENGINE_SOCKET@ SCIM_BUILD_IMENGINE_TABLE = @SCIM_BUILD_IMENGINE_TABLE@ SCIM_BUILD_IMMODULE = @SCIM_BUILD_IMMODULE@ SCIM_BUILD_IM_AGENT = @SCIM_BUILD_IM_AGENT@ SCIM_BUILD_ORIG_GTK2_IMMODULE = @SCIM_BUILD_ORIG_GTK2_IMMODULE@ SCIM_BUILD_ORIG_GTK3_IMMODULE = @SCIM_BUILD_ORIG_GTK3_IMMODULE@ SCIM_BUILD_PANEL_GTK = @SCIM_BUILD_PANEL_GTK@ SCIM_BUILD_QT3_IMMODULE = @SCIM_BUILD_QT3_IMMODULE@ SCIM_BUILD_QT4_IMMODULE = @SCIM_BUILD_QT4_IMMODULE@ SCIM_BUILD_SCIM_SETUP = @SCIM_BUILD_SCIM_SETUP@ SCIM_BUILD_TESTS = @SCIM_BUILD_TESTS@ SCIM_BUILD_X11_UTILS = @SCIM_BUILD_X11_UTILS@ SCIM_CURRENT = @SCIM_CURRENT@ SCIM_DATADIR = @SCIM_DATADIR@ SCIM_EPOCH = @SCIM_EPOCH@ SCIM_ICONDIR = @SCIM_ICONDIR@ SCIM_LIBDIR = @SCIM_LIBDIR@ SCIM_LIBEXECDIR = @SCIM_LIBEXECDIR@ SCIM_LOCALEDIR = @SCIM_LOCALEDIR@ SCIM_LTDLADVISE = @SCIM_LTDLADVISE@ SCIM_MAJOR_VERSION = @SCIM_MAJOR_VERSION@ SCIM_MICRO_VERSION = @SCIM_MICRO_VERSION@ SCIM_MINOR_VERSION = @SCIM_MINOR_VERSION@ SCIM_MODULE_PATH = @SCIM_MODULE_PATH@ SCIM_PREFIX = @SCIM_PREFIX@ SCIM_REVISION = @SCIM_REVISION@ SCIM_SYSCONFDIR = @SCIM_SYSCONFDIR@ SCIM_TEMPDIR = @SCIM_TEMPDIR@ SCIM_VERSION = @SCIM_VERSION@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UINT16 = @UINT16@ UINT32 = @UINT32@ UINT64 = @UINT64@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XMKMF = @XMKMF@ XSLTPROC = @XSLTPROC@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_aux_dir = @ac_aux_dir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ MAINTAINERCLEANFILES = Makefile.in CLEANFILES = *.bak SUBDIRS = FrontEnd IMEngine Config SetupUI Filter all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu modules/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu modules/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ ctags ctags-recursive distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: scim-1.4.14/modules/SetupUI/000077500000000000000000000000001177210725600155525ustar00rootroot00000000000000scim-1.4.14/modules/SetupUI/Makefile.am000066400000000000000000000061541177210725600176140ustar00rootroot00000000000000## Makefile.am -- Process this file with automake to produce Makefile.in ## Copyright (C) 2002 James Su ## ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2, or (at your option) ## any later version. ## ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. MAINTAINERCLEANFILES = Makefile.in CLEANFILES = *.bak INCLUDES = -I$(top_builddir) \ -I$(top_builddir)/src \ -I$(top_srcdir) \ -I$(top_srcdir)/src \ -I$(top_srcdir)/intl \ -I$(top_srcdir)/data \ -I$(top_srcdir)/utils \ -I$(top_srcdir)/modules/IMEngine \ -DSCIM_DATADIR=\"@SCIM_DATADIR@\" \ -DSCIM_LOCALEDIR=\"@SCIM_LOCALEDIR@\" \ -DSCIM_SYSCONFDIR=\"@SCIM_SYSCONFDIR@\" \ -DSCIM_LIBEXECDIR=\"@SCIM_LIBEXECDIR@\" \ -DSCIM_ICONDIR=\"@SCIM_ICONDIR@\" \ -DSCIM_MODULE_PATH=\"@SCIM_MODULE_PATH@\" \ -DSCIM_TEMPDIR=\"@SCIM_TEMPDIR@\" if SCIM_BUILD_SCIM_SETUP if SCIM_BUILD_PANEL_GTK CONFIG_PANEL_GTK_SETUP_MODULE= panel-gtk-setup.la endif CONFIG_FRONTEND_SETUP_MODULE= aaa-frontend-setup.la CONFIG_IMENGINE_SETUP_MODULE= aaa-imengine-setup.la endif # Rules for setup module setupmoduledir = $(libdir)/scim@SCIM_EPOCH@/$(SCIM_BINARY_VERSION)/SetupUI setupmodule_LTLIBRARIES = $(CONFIG_FRONTEND_SETUP_MODULE) \ $(CONFIG_IMENGINE_SETUP_MODULE) \ $(CONFIG_PANEL_GTK_SETUP_MODULE) aaa_frontend_setup_la_SOURCES = scim_frontend_setup.cpp aaa_frontend_setup_la_CFLAGS = @GTK_CFLAGS@ aaa_frontend_setup_la_CXXFLAGS= @GTK_CFLAGS@ aaa_frontend_setup_la_LDFLAGS = -avoid-version \ -rpath $(setupmoduledir) \ -module \ @LIBTOOL_EXPORT_OPTIONS@ \ @GTK_LIBS@ \ @LTLIBINTL@ aaa_frontend_setup_la_LIBADD = $(top_builddir)/src/libscim@SCIM_EPOCH@.la \ $(top_builddir)/utils/libscim-gtkutils@SCIM_EPOCH@.la aaa_imengine_setup_la_SOURCES = scim_imengine_setup.cpp aaa_imengine_setup_la_CFLAGS = @GTK_CFLAGS@ aaa_imengine_setup_la_CXXFLAGS= @GTK_CFLAGS@ aaa_imengine_setup_la_LDFLAGS = -avoid-version \ -rpath $(setupmoduledir) \ -module \ @LIBTOOL_EXPORT_OPTIONS@ \ @GTK_LIBS@ \ @LTLIBINTL@ aaa_imengine_setup_la_LIBADD = $(top_builddir)/src/libscim@SCIM_EPOCH@.la \ $(top_builddir)/utils/libscim-gtkutils@SCIM_EPOCH@.la panel_gtk_setup_la_SOURCES = scim_panel_gtk_setup.cpp panel_gtk_setup_la_CFLAGS = @GTK_CFLAGS@ panel_gtk_setup_la_CXXFLAGS = @GTK_CFLAGS@ panel_gtk_setup_la_LDFLAGS = -avoid-version \ -rpath $(setupmoduledir) \ -module \ @LIBTOOL_EXPORT_OPTIONS@ \ @GTK_LIBS@ \ @LTLIBINTL@ panel_gtk_setup_la_LIBADD = $(top_builddir)/src/libscim@SCIM_EPOCH@.la scim-1.4.14/modules/SetupUI/Makefile.in000066400000000000000000000733231177210725600176270ustar00rootroot00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = modules/SetupUI DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(setupmoduledir)" LTLIBRARIES = $(setupmodule_LTLIBRARIES) aaa_frontend_setup_la_DEPENDENCIES = \ $(top_builddir)/src/libscim@SCIM_EPOCH@.la \ $(top_builddir)/utils/libscim-gtkutils@SCIM_EPOCH@.la am_aaa_frontend_setup_la_OBJECTS = \ aaa_frontend_setup_la-scim_frontend_setup.lo aaa_frontend_setup_la_OBJECTS = $(am_aaa_frontend_setup_la_OBJECTS) aaa_frontend_setup_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(aaa_frontend_setup_la_CXXFLAGS) $(CXXFLAGS) \ $(aaa_frontend_setup_la_LDFLAGS) $(LDFLAGS) -o $@ @SCIM_BUILD_SCIM_SETUP_TRUE@am_aaa_frontend_setup_la_rpath = -rpath \ @SCIM_BUILD_SCIM_SETUP_TRUE@ $(setupmoduledir) aaa_imengine_setup_la_DEPENDENCIES = \ $(top_builddir)/src/libscim@SCIM_EPOCH@.la \ $(top_builddir)/utils/libscim-gtkutils@SCIM_EPOCH@.la am_aaa_imengine_setup_la_OBJECTS = \ aaa_imengine_setup_la-scim_imengine_setup.lo aaa_imengine_setup_la_OBJECTS = $(am_aaa_imengine_setup_la_OBJECTS) aaa_imengine_setup_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(aaa_imengine_setup_la_CXXFLAGS) $(CXXFLAGS) \ $(aaa_imengine_setup_la_LDFLAGS) $(LDFLAGS) -o $@ @SCIM_BUILD_SCIM_SETUP_TRUE@am_aaa_imengine_setup_la_rpath = -rpath \ @SCIM_BUILD_SCIM_SETUP_TRUE@ $(setupmoduledir) panel_gtk_setup_la_DEPENDENCIES = \ $(top_builddir)/src/libscim@SCIM_EPOCH@.la am_panel_gtk_setup_la_OBJECTS = \ panel_gtk_setup_la-scim_panel_gtk_setup.lo panel_gtk_setup_la_OBJECTS = $(am_panel_gtk_setup_la_OBJECTS) panel_gtk_setup_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(panel_gtk_setup_la_CXXFLAGS) $(CXXFLAGS) \ $(panel_gtk_setup_la_LDFLAGS) $(LDFLAGS) -o $@ @SCIM_BUILD_PANEL_GTK_TRUE@@SCIM_BUILD_SCIM_SETUP_TRUE@am_panel_gtk_setup_la_rpath = \ @SCIM_BUILD_PANEL_GTK_TRUE@@SCIM_BUILD_SCIM_SETUP_TRUE@ -rpath \ @SCIM_BUILD_PANEL_GTK_TRUE@@SCIM_BUILD_SCIM_SETUP_TRUE@ $(setupmoduledir) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(aaa_frontend_setup_la_SOURCES) \ $(aaa_imengine_setup_la_SOURCES) $(panel_gtk_setup_la_SOURCES) DIST_SOURCES = $(aaa_frontend_setup_la_SOURCES) \ $(aaa_imengine_setup_la_SOURCES) $(panel_gtk_setup_la_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ ARGZ_H = @ARGZ_H@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CLUTTER_BINARY_VERSION = @CLUTTER_BINARY_VERSION@ CLUTTER_CFLAGS = @CLUTTER_CFLAGS@ CLUTTER_IMCONTEXT_LIBDIR = @CLUTTER_IMCONTEXT_LIBDIR@ CLUTTER_IM_MODULEDIR = @CLUTTER_IM_MODULEDIR@ CLUTTER_LIBDIR = @CLUTTER_LIBDIR@ CLUTTER_LIBS = @CLUTTER_LIBS@ CLUTTER_VERSION = @CLUTTER_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOCBOOK_XSL = @DOCBOOK_XSL@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@ GTHREAD2_LIBS = @GTHREAD2_LIBS@ GTK2_CFLAGS = @GTK2_CFLAGS@ GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@ GTK2_LIBS = @GTK2_LIBS@ GTK3_CFLAGS = @GTK3_CFLAGS@ GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@ GTK3_LIBS = @GTK3_LIBS@ GTK_BINARY_VERSION = @GTK_BINARY_VERSION@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBDIR = @GTK_LIBDIR@ GTK_LIBS = @GTK_LIBS@ GTK_MAJOR_VERSION = @GTK_MAJOR_VERSION@ GTK_VERSION = @GTK_VERSION@ HAVE_GRAPHVIZ = @HAVE_GRAPHVIZ@ INCLTDL = @INCLTDL@ INCLUDE_STDINT = @INCLUDE_STDINT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBLTDL = @LIBLTDL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_DEPS = @LIBTOOL_DEPS@ LIBTOOL_EXPORT_OPTIONS = @LIBTOOL_EXPORT_OPTIONS@ LIPO = @LIPO@ LN_S = @LN_S@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ QT3_CFLAGS = @QT3_CFLAGS@ QT3_IM_MODULEDIR = @QT3_IM_MODULEDIR@ QT3_LIBDIR = @QT3_LIBDIR@ QT3_LIBS = @QT3_LIBS@ QT3_MOC = @QT3_MOC@ QT3_PREFIX = @QT3_PREFIX@ QT4_CFLAGS = @QT4_CFLAGS@ QT4_IM_MODULEDIR = @QT4_IM_MODULEDIR@ QT4_LIBDIR = @QT4_LIBDIR@ QT4_LIBS = @QT4_LIBS@ QT4_MOC = @QT4_MOC@ QT4_PREFIX = @QT4_PREFIX@ RANLIB = @RANLIB@ SCIM_AGE = @SCIM_AGE@ SCIM_BINARY_VERSION = @SCIM_BINARY_VERSION@ SCIM_BRIDGE_MAJOR_VERSION = @SCIM_BRIDGE_MAJOR_VERSION@ SCIM_BRIDGE_MICRO_VERSION = @SCIM_BRIDGE_MICRO_VERSION@ SCIM_BRIDGE_MINOR_VERSION = @SCIM_BRIDGE_MINOR_VERSION@ SCIM_BRIDGE_VERSION = @SCIM_BRIDGE_VERSION@ SCIM_BUILD_CLUTTER_IMMODULE = @SCIM_BUILD_CLUTTER_IMMODULE@ SCIM_BUILD_CONFIG_SIMPLE = @SCIM_BUILD_CONFIG_SIMPLE@ SCIM_BUILD_CONFIG_SOCKET = @SCIM_BUILD_CONFIG_SOCKET@ SCIM_BUILD_DOCUMENTS = @SCIM_BUILD_DOCUMENTS@ SCIM_BUILD_FILTER_SCTC = @SCIM_BUILD_FILTER_SCTC@ SCIM_BUILD_FRONTEND_SOCKET = @SCIM_BUILD_FRONTEND_SOCKET@ SCIM_BUILD_FRONTEND_X11 = @SCIM_BUILD_FRONTEND_X11@ SCIM_BUILD_GTK2_IMMODULE = @SCIM_BUILD_GTK2_IMMODULE@ SCIM_BUILD_GTK3_IMMODULE = @SCIM_BUILD_GTK3_IMMODULE@ SCIM_BUILD_GTK_UTILS = @SCIM_BUILD_GTK_UTILS@ SCIM_BUILD_IMENGINE_RAWCODE = @SCIM_BUILD_IMENGINE_RAWCODE@ SCIM_BUILD_IMENGINE_SOCKET = @SCIM_BUILD_IMENGINE_SOCKET@ SCIM_BUILD_IMENGINE_TABLE = @SCIM_BUILD_IMENGINE_TABLE@ SCIM_BUILD_IMMODULE = @SCIM_BUILD_IMMODULE@ SCIM_BUILD_IM_AGENT = @SCIM_BUILD_IM_AGENT@ SCIM_BUILD_ORIG_GTK2_IMMODULE = @SCIM_BUILD_ORIG_GTK2_IMMODULE@ SCIM_BUILD_ORIG_GTK3_IMMODULE = @SCIM_BUILD_ORIG_GTK3_IMMODULE@ SCIM_BUILD_PANEL_GTK = @SCIM_BUILD_PANEL_GTK@ SCIM_BUILD_QT3_IMMODULE = @SCIM_BUILD_QT3_IMMODULE@ SCIM_BUILD_QT4_IMMODULE = @SCIM_BUILD_QT4_IMMODULE@ SCIM_BUILD_SCIM_SETUP = @SCIM_BUILD_SCIM_SETUP@ SCIM_BUILD_TESTS = @SCIM_BUILD_TESTS@ SCIM_BUILD_X11_UTILS = @SCIM_BUILD_X11_UTILS@ SCIM_CURRENT = @SCIM_CURRENT@ SCIM_DATADIR = @SCIM_DATADIR@ SCIM_EPOCH = @SCIM_EPOCH@ SCIM_ICONDIR = @SCIM_ICONDIR@ SCIM_LIBDIR = @SCIM_LIBDIR@ SCIM_LIBEXECDIR = @SCIM_LIBEXECDIR@ SCIM_LOCALEDIR = @SCIM_LOCALEDIR@ SCIM_LTDLADVISE = @SCIM_LTDLADVISE@ SCIM_MAJOR_VERSION = @SCIM_MAJOR_VERSION@ SCIM_MICRO_VERSION = @SCIM_MICRO_VERSION@ SCIM_MINOR_VERSION = @SCIM_MINOR_VERSION@ SCIM_MODULE_PATH = @SCIM_MODULE_PATH@ SCIM_PREFIX = @SCIM_PREFIX@ SCIM_REVISION = @SCIM_REVISION@ SCIM_SYSCONFDIR = @SCIM_SYSCONFDIR@ SCIM_TEMPDIR = @SCIM_TEMPDIR@ SCIM_VERSION = @SCIM_VERSION@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UINT16 = @UINT16@ UINT32 = @UINT32@ UINT64 = @UINT64@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XMKMF = @XMKMF@ XSLTPROC = @XSLTPROC@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_aux_dir = @ac_aux_dir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ MAINTAINERCLEANFILES = Makefile.in CLEANFILES = *.bak INCLUDES = -I$(top_builddir) \ -I$(top_builddir)/src \ -I$(top_srcdir) \ -I$(top_srcdir)/src \ -I$(top_srcdir)/intl \ -I$(top_srcdir)/data \ -I$(top_srcdir)/utils \ -I$(top_srcdir)/modules/IMEngine \ -DSCIM_DATADIR=\"@SCIM_DATADIR@\" \ -DSCIM_LOCALEDIR=\"@SCIM_LOCALEDIR@\" \ -DSCIM_SYSCONFDIR=\"@SCIM_SYSCONFDIR@\" \ -DSCIM_LIBEXECDIR=\"@SCIM_LIBEXECDIR@\" \ -DSCIM_ICONDIR=\"@SCIM_ICONDIR@\" \ -DSCIM_MODULE_PATH=\"@SCIM_MODULE_PATH@\" \ -DSCIM_TEMPDIR=\"@SCIM_TEMPDIR@\" @SCIM_BUILD_PANEL_GTK_TRUE@@SCIM_BUILD_SCIM_SETUP_TRUE@CONFIG_PANEL_GTK_SETUP_MODULE = panel-gtk-setup.la @SCIM_BUILD_SCIM_SETUP_TRUE@CONFIG_FRONTEND_SETUP_MODULE = aaa-frontend-setup.la @SCIM_BUILD_SCIM_SETUP_TRUE@CONFIG_IMENGINE_SETUP_MODULE = aaa-imengine-setup.la # Rules for setup module setupmoduledir = $(libdir)/scim@SCIM_EPOCH@/$(SCIM_BINARY_VERSION)/SetupUI setupmodule_LTLIBRARIES = $(CONFIG_FRONTEND_SETUP_MODULE) \ $(CONFIG_IMENGINE_SETUP_MODULE) \ $(CONFIG_PANEL_GTK_SETUP_MODULE) aaa_frontend_setup_la_SOURCES = scim_frontend_setup.cpp aaa_frontend_setup_la_CFLAGS = @GTK_CFLAGS@ aaa_frontend_setup_la_CXXFLAGS = @GTK_CFLAGS@ aaa_frontend_setup_la_LDFLAGS = -avoid-version \ -rpath $(setupmoduledir) \ -module \ @LIBTOOL_EXPORT_OPTIONS@ \ @GTK_LIBS@ \ @LTLIBINTL@ aaa_frontend_setup_la_LIBADD = $(top_builddir)/src/libscim@SCIM_EPOCH@.la \ $(top_builddir)/utils/libscim-gtkutils@SCIM_EPOCH@.la aaa_imengine_setup_la_SOURCES = scim_imengine_setup.cpp aaa_imengine_setup_la_CFLAGS = @GTK_CFLAGS@ aaa_imengine_setup_la_CXXFLAGS = @GTK_CFLAGS@ aaa_imengine_setup_la_LDFLAGS = -avoid-version \ -rpath $(setupmoduledir) \ -module \ @LIBTOOL_EXPORT_OPTIONS@ \ @GTK_LIBS@ \ @LTLIBINTL@ aaa_imengine_setup_la_LIBADD = $(top_builddir)/src/libscim@SCIM_EPOCH@.la \ $(top_builddir)/utils/libscim-gtkutils@SCIM_EPOCH@.la panel_gtk_setup_la_SOURCES = scim_panel_gtk_setup.cpp panel_gtk_setup_la_CFLAGS = @GTK_CFLAGS@ panel_gtk_setup_la_CXXFLAGS = @GTK_CFLAGS@ panel_gtk_setup_la_LDFLAGS = -avoid-version \ -rpath $(setupmoduledir) \ -module \ @LIBTOOL_EXPORT_OPTIONS@ \ @GTK_LIBS@ \ @LTLIBINTL@ panel_gtk_setup_la_LIBADD = $(top_builddir)/src/libscim@SCIM_EPOCH@.la all: all-am .SUFFIXES: .SUFFIXES: .cpp .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu modules/SetupUI/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu modules/SetupUI/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-setupmoduleLTLIBRARIES: $(setupmodule_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(setupmoduledir)" || $(MKDIR_P) "$(DESTDIR)$(setupmoduledir)" @list='$(setupmodule_LTLIBRARIES)'; test -n "$(setupmoduledir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(setupmoduledir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(setupmoduledir)"; \ } uninstall-setupmoduleLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(setupmodule_LTLIBRARIES)'; test -n "$(setupmoduledir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(setupmoduledir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(setupmoduledir)/$$f"; \ done clean-setupmoduleLTLIBRARIES: -test -z "$(setupmodule_LTLIBRARIES)" || rm -f $(setupmodule_LTLIBRARIES) @list='$(setupmodule_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done aaa-frontend-setup.la: $(aaa_frontend_setup_la_OBJECTS) $(aaa_frontend_setup_la_DEPENDENCIES) $(aaa_frontend_setup_la_LINK) $(am_aaa_frontend_setup_la_rpath) $(aaa_frontend_setup_la_OBJECTS) $(aaa_frontend_setup_la_LIBADD) $(LIBS) aaa-imengine-setup.la: $(aaa_imengine_setup_la_OBJECTS) $(aaa_imengine_setup_la_DEPENDENCIES) $(aaa_imengine_setup_la_LINK) $(am_aaa_imengine_setup_la_rpath) $(aaa_imengine_setup_la_OBJECTS) $(aaa_imengine_setup_la_LIBADD) $(LIBS) panel-gtk-setup.la: $(panel_gtk_setup_la_OBJECTS) $(panel_gtk_setup_la_DEPENDENCIES) $(panel_gtk_setup_la_LINK) $(am_panel_gtk_setup_la_rpath) $(panel_gtk_setup_la_OBJECTS) $(panel_gtk_setup_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/aaa_frontend_setup_la-scim_frontend_setup.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/aaa_imengine_setup_la-scim_imengine_setup.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/panel_gtk_setup_la-scim_panel_gtk_setup.Plo@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cpp.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cpp.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< aaa_frontend_setup_la-scim_frontend_setup.lo: scim_frontend_setup.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(aaa_frontend_setup_la_CXXFLAGS) $(CXXFLAGS) -MT aaa_frontend_setup_la-scim_frontend_setup.lo -MD -MP -MF $(DEPDIR)/aaa_frontend_setup_la-scim_frontend_setup.Tpo -c -o aaa_frontend_setup_la-scim_frontend_setup.lo `test -f 'scim_frontend_setup.cpp' || echo '$(srcdir)/'`scim_frontend_setup.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/aaa_frontend_setup_la-scim_frontend_setup.Tpo $(DEPDIR)/aaa_frontend_setup_la-scim_frontend_setup.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='scim_frontend_setup.cpp' object='aaa_frontend_setup_la-scim_frontend_setup.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(aaa_frontend_setup_la_CXXFLAGS) $(CXXFLAGS) -c -o aaa_frontend_setup_la-scim_frontend_setup.lo `test -f 'scim_frontend_setup.cpp' || echo '$(srcdir)/'`scim_frontend_setup.cpp aaa_imengine_setup_la-scim_imengine_setup.lo: scim_imengine_setup.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(aaa_imengine_setup_la_CXXFLAGS) $(CXXFLAGS) -MT aaa_imengine_setup_la-scim_imengine_setup.lo -MD -MP -MF $(DEPDIR)/aaa_imengine_setup_la-scim_imengine_setup.Tpo -c -o aaa_imengine_setup_la-scim_imengine_setup.lo `test -f 'scim_imengine_setup.cpp' || echo '$(srcdir)/'`scim_imengine_setup.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/aaa_imengine_setup_la-scim_imengine_setup.Tpo $(DEPDIR)/aaa_imengine_setup_la-scim_imengine_setup.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='scim_imengine_setup.cpp' object='aaa_imengine_setup_la-scim_imengine_setup.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(aaa_imengine_setup_la_CXXFLAGS) $(CXXFLAGS) -c -o aaa_imengine_setup_la-scim_imengine_setup.lo `test -f 'scim_imengine_setup.cpp' || echo '$(srcdir)/'`scim_imengine_setup.cpp panel_gtk_setup_la-scim_panel_gtk_setup.lo: scim_panel_gtk_setup.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(panel_gtk_setup_la_CXXFLAGS) $(CXXFLAGS) -MT panel_gtk_setup_la-scim_panel_gtk_setup.lo -MD -MP -MF $(DEPDIR)/panel_gtk_setup_la-scim_panel_gtk_setup.Tpo -c -o panel_gtk_setup_la-scim_panel_gtk_setup.lo `test -f 'scim_panel_gtk_setup.cpp' || echo '$(srcdir)/'`scim_panel_gtk_setup.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/panel_gtk_setup_la-scim_panel_gtk_setup.Tpo $(DEPDIR)/panel_gtk_setup_la-scim_panel_gtk_setup.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='scim_panel_gtk_setup.cpp' object='panel_gtk_setup_la-scim_panel_gtk_setup.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(panel_gtk_setup_la_CXXFLAGS) $(CXXFLAGS) -c -o panel_gtk_setup_la-scim_panel_gtk_setup.lo `test -f 'scim_panel_gtk_setup.cpp' || echo '$(srcdir)/'`scim_panel_gtk_setup.cpp mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: for dir in "$(DESTDIR)$(setupmoduledir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic clean-libtool clean-setupmoduleLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-setupmoduleLTLIBRARIES install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-setupmoduleLTLIBRARIES .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-setupmoduleLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-setupmoduleLTLIBRARIES install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-setupmoduleLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: scim-1.4.14/modules/SetupUI/scim_frontend_setup.cpp000066400000000000000000000477451177210725600223510ustar00rootroot00000000000000/** @file scim_aaa_frontend_setup.cpp * implementation of Setup Module for FrontEnd Hotkeys configuration. */ /* * Smart Common Input Method * * Copyright (c) 2005 James Su * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this program; if not, write to the * Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, MA 02111-1307 USA * * $Id: scim_frontend_setup.cpp,v 1.6 2005/06/29 08:19:17 suzhe Exp $ * */ #define Uses_SCIM_CONFIG_PATH #define Uses_SCIM_CONFIG_BASE #define Uses_SCIM_EVENT #include #include #include "scim_private.h" #include "scim.h" #include "scimkeyselection.h" using namespace scim; #define scim_module_init aaa_frontend_setup_LTX_scim_module_init #define scim_module_exit aaa_frontend_setup_LTX_scim_module_exit #define scim_setup_module_create_ui aaa_frontend_setup_LTX_scim_setup_module_create_ui #define scim_setup_module_get_category aaa_frontend_setup_LTX_scim_setup_module_get_category #define scim_setup_module_get_name aaa_frontend_setup_LTX_scim_setup_module_get_name #define scim_setup_module_get_description aaa_frontend_setup_LTX_scim_setup_module_get_description #define scim_setup_module_load_config aaa_frontend_setup_LTX_scim_setup_module_load_config #define scim_setup_module_save_config aaa_frontend_setup_LTX_scim_setup_module_save_config #define scim_setup_module_query_changed aaa_frontend_setup_LTX_scim_setup_module_query_changed static GtkWidget * create_setup_window (); static void load_config (const ConfigPointer &config); static void save_config (const ConfigPointer &config); static bool query_changed (); // Module Interface. extern "C" { void scim_module_init (void) { } void scim_module_exit (void) { } GtkWidget * scim_setup_module_create_ui (void) { return create_setup_window (); } String scim_setup_module_get_category (void) { return String ("FrontEnd"); } String scim_setup_module_get_name (void) { return String (_("Global Setup")); } String scim_setup_module_get_description (void) { return String (_("Setup the global options used by All FrontEnd modules, including X11 FrontEnd, GTK IMModule, QT IMModule etc.")); } void scim_setup_module_load_config (const ConfigPointer &config) { load_config (config); } void scim_setup_module_save_config (const ConfigPointer &config) { save_config (config); } bool scim_setup_module_query_changed () { return query_changed (); } } // extern "C" // Internal data structure struct KeyboardConfigData { const char *key; const char *label; const char *title; const char *tooltip; GtkWidget *entry; GtkWidget *button; String data; }; // Internal data declaration. static bool __config_on_the_spot = true; #if GTK_CHECK_VERSION(2, 12, 0) #else static GtkTooltips * __widget_tooltips = 0; #endif static bool __config_shared_input_method = false; static KeyboardLayout __config_keyboard_layout = SCIM_KEYBOARD_Unknown; static bool __have_changed = false; static GtkWidget * __widget_on_the_spot = 0; static GtkWidget * __widget_keyboard_layout = NULL; static GtkWidget * __widget_shared_input_method = NULL; static KeyboardConfigData __config_keyboards [] = { { // key SCIM_CONFIG_HOTKEYS_FRONTEND_TRIGGER, // label N_("_Trigger:"), // title N_("Select the trigger keys"), // tooltip N_("The key events to turn on/off SCIM input method. " "Click on the button on the right to edit it."), // entry NULL, // button NULL, // data "Control+space" }, { // key SCIM_CONFIG_HOTKEYS_FRONTEND_ON, // label N_("Turn _On:"), // title N_("Select the Turn On keys"), // tooltip N_("The key events to turn on SCIM input method. " "Click on the button on the right to edit it."), // entry NULL, // button NULL, // data "" }, { // key SCIM_CONFIG_HOTKEYS_FRONTEND_OFF, // label N_("Turn O_ff:"), // title N_("Select the Turn Off keys"), // tooltip N_("The key events to turn off SCIM input method. " "Click on the button on the right to edit it."), // entry NULL, // button NULL, // data "" }, { // key SCIM_CONFIG_HOTKEYS_FRONTEND_NEXT_FACTORY, // label N_("_Next input method:"), // title N_("Select the next input method keys"), // tooltip N_("The key events to switch to the next input method. " "Click on the button on the right to edit it."), // entry NULL, // button NULL, // data "Control+Alt+Down," "Control+Shift_R," "Control+Shift_L" }, { // key SCIM_CONFIG_HOTKEYS_FRONTEND_PREVIOUS_FACTORY, // label N_("_Previous input method:"), // title N_("Select the previous input method keys"), // tooltip N_("The key events to switch to the previous input method. " "Click on the button on the right to edit it."), // entry NULL, // button NULL, // data "Control+Alt+Up," "Shift+Control_R," "Shift+Control_L" }, { // key SCIM_CONFIG_HOTKEYS_FRONTEND_SHOW_FACTORY_MENU, // label N_("Show input method _menu:"), // title N_("Select the show input method menu keys"), // tooltip N_("The key events to show the input method menu. " "Click on the button on the right to edit it."), // entry NULL, // button NULL, // data "Control+Alt+l," "Control+Alt+m," "Control+Alt+s," "Control+Alt+Right," }, { // key NULL, // label NULL, // title NULL, // tooltip NULL, // entry NULL, // button NULL, // data "" }, }; // Declaration of internal functions. static void on_default_editable_changed (GtkEditable *editable, gpointer user_data); static void on_default_key_selection_clicked (GtkButton *button, gpointer user_data); static void on_keyboard_layout_changed (GtkComboBox *combobox, gpointer user_data); static void on_default_toggle_button_toggled (GtkToggleButton *togglebutton, gpointer user_data); static void setup_widget_value (); // Function implementations. static GtkWidget * create_setup_window () { static GtkWidget *window = 0; if (!window) { GtkWidget *table; GtkWidget *frame; GtkWidget *hbox; GtkWidget *vbox; GtkWidget *label; int i; #if GTK_CHECK_VERSION(2, 12, 0) #else __widget_tooltips = gtk_tooltips_new (); #endif // Create the toplevel box. #if GTK_CHECK_VERSION(3, 2, 0) window = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); #else window = gtk_vbox_new (FALSE, 0); #endif gtk_widget_show (window); frame = gtk_frame_new (_("Options")); gtk_widget_show (frame); gtk_container_set_border_width (GTK_CONTAINER (frame), 4); gtk_box_pack_start (GTK_BOX (window), frame, FALSE, FALSE, 0); #if GTK_CHECK_VERSION(3, 2, 0) vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 4); #else vbox = gtk_vbox_new (FALSE, 4); #endif gtk_widget_show (vbox); gtk_container_set_border_width (GTK_CONTAINER (vbox), 4); gtk_container_add (GTK_CONTAINER (frame), vbox); // Keyboard Layout. #if GTK_CHECK_VERSION(3, 2, 0) hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 4); #else hbox = gtk_hbox_new (FALSE, 4); #endif gtk_widget_show (hbox); gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); label = gtk_label_new_with_mnemonic (_("_Keyboard Layout:")); gtk_widget_show (label); gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0); #if GTK_CHECK_VERSION(2,24,0) __widget_keyboard_layout = gtk_combo_box_text_new (); #else __widget_keyboard_layout = gtk_combo_box_new_text (); #endif gtk_widget_show (__widget_keyboard_layout); gtk_label_set_mnemonic_widget (GTK_LABEL (label), __widget_keyboard_layout); for (size_t i = 0; i < SCIM_KEYBOARD_NUM_LAYOUTS; ++i) { #if GTK_CHECK_VERSION(2,24,0) gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (__widget_keyboard_layout), #else gtk_combo_box_append_text (GTK_COMBO_BOX (__widget_keyboard_layout), #endif scim_keyboard_layout_get_display_name (static_cast (i)).c_str ()); } g_signal_connect (G_OBJECT (__widget_keyboard_layout), "changed", G_CALLBACK (on_keyboard_layout_changed), NULL); gtk_box_pack_start (GTK_BOX (hbox), __widget_keyboard_layout, TRUE, TRUE, 0); #if GTK_CHECK_VERSION(2, 12, 0) gtk_widget_set_tooltip_text (__widget_keyboard_layout, _("You should choose your currently used keyboard layout here " "so that input methods, who care about keyboard layout, could work correctly.")); #else gtk_tooltips_set_tip (__widget_tooltips, __widget_keyboard_layout, _("You should choose your currently used keyboard layout here " "so that input methods, who care about keyboard layout, could work correctly."), NULL); #endif // On The Spot. __widget_on_the_spot = gtk_check_button_new_with_mnemonic (_("_Embed Preedit String into client window")); gtk_widget_show (__widget_on_the_spot); gtk_box_pack_start (GTK_BOX (vbox), __widget_on_the_spot, FALSE, FALSE, 0); #if GTK_CHECK_VERSION(2, 12, 0) gtk_widget_set_tooltip_text (__widget_on_the_spot, _("If this option is checked, " "the preedit string will be displayed directly in the client input window, " "rather than in a independent float window.")); #else gtk_tooltips_set_tip (__widget_tooltips, __widget_on_the_spot, _("If this option is checked, " "the preedit string will be displayed directly in the client input window, " "rather than in a independent float window."), NULL); #endif g_signal_connect ((gpointer) __widget_on_the_spot, "toggled", G_CALLBACK (on_default_toggle_button_toggled), &__config_on_the_spot); // Shared input method. __widget_shared_input_method = gtk_check_button_new_with_mnemonic (_("_Share the same input method among all applications")); gtk_widget_show (__widget_shared_input_method); gtk_box_pack_start (GTK_BOX (vbox), __widget_shared_input_method, FALSE, FALSE, 0); #if GTK_CHECK_VERSION(2, 12, 0) gtk_widget_set_tooltip_text (__widget_shared_input_method, _("If this option is checked, " "then only one input method could be used by all applications at the same time." "Otherwise different input method could be used by each application.")); #else gtk_tooltips_set_tip (__widget_tooltips, __widget_shared_input_method, _("If this option is checked, " "then only one input method could be used by all applications at the same time." "Otherwise different input method could be used by each application."), NULL); #endif g_signal_connect ((gpointer) __widget_shared_input_method, "toggled", G_CALLBACK (on_default_toggle_button_toggled), &__config_shared_input_method); frame = gtk_frame_new (_("Hotkeys")); gtk_widget_show (frame); gtk_container_set_border_width (GTK_CONTAINER (frame), 4); gtk_box_pack_start (GTK_BOX (window), frame, TRUE, TRUE, 0); table = gtk_table_new (3, 3, FALSE); gtk_widget_show (table); gtk_container_add (GTK_CONTAINER (frame), table); gtk_table_set_row_spacings (GTK_TABLE (table), 0); gtk_table_set_col_spacings (GTK_TABLE (table), 8); for (i = 0; __config_keyboards [i].key; ++ i) { label = gtk_label_new (NULL); gtk_label_set_text_with_mnemonic (GTK_LABEL (label), _(__config_keyboards[i].label)); gtk_widget_show (label); gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5); gtk_misc_set_padding (GTK_MISC (label), 4, 0); gtk_table_attach (GTK_TABLE (table), label, 0, 1, i, i+1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_FILL), 4, 2); __config_keyboards [i].entry = gtk_entry_new (); gtk_widget_show (__config_keyboards [i].entry); gtk_table_attach (GTK_TABLE (table), __config_keyboards [i].entry, 1, 2, i, i+1, (GtkAttachOptions) (GTK_FILL|GTK_EXPAND), (GtkAttachOptions) (GTK_FILL), 4, 2); gtk_editable_set_editable (GTK_EDITABLE (__config_keyboards[i].entry), FALSE); __config_keyboards[i].button = gtk_button_new_with_label ("..."); gtk_widget_show (__config_keyboards[i].button); gtk_table_attach (GTK_TABLE (table), __config_keyboards[i].button, 2, 3, i, i+1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_FILL), 4, 2); gtk_label_set_mnemonic_widget (GTK_LABEL (label), __config_keyboards[i].button); } for (i = 0; __config_keyboards [i].key; ++ i) { g_signal_connect ((gpointer) __config_keyboards [i].button, "clicked", G_CALLBACK (on_default_key_selection_clicked), &(__config_keyboards [i])); g_signal_connect ((gpointer) __config_keyboards [i].entry, "changed", G_CALLBACK (on_default_editable_changed), &(__config_keyboards [i].data)); } for (i = 0; __config_keyboards [i].key; ++ i) { #if GTK_CHECK_VERSION(2, 12, 0) gtk_widget_set_tooltip_text (__config_keyboards [i].entry, _(__config_keyboards [i].tooltip)); #else gtk_tooltips_set_tip (__widget_tooltips, __config_keyboards [i].entry, _(__config_keyboards [i].tooltip), NULL); #endif } setup_widget_value (); } return window; } static void setup_widget_value () { for (int i = 0; __config_keyboards [i].key; ++ i) { if (__config_keyboards [i].entry) { gtk_entry_set_text ( GTK_ENTRY (__config_keyboards [i].entry), __config_keyboards [i].data.c_str ()); } } if (__widget_on_the_spot) { gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON (__widget_on_the_spot), __config_on_the_spot); } if (__widget_shared_input_method) { gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON (__widget_shared_input_method), __config_shared_input_method); } gtk_combo_box_set_active (GTK_COMBO_BOX (__widget_keyboard_layout), (gint) __config_keyboard_layout); } static void load_config (const ConfigPointer &config) { if (!config.null ()) { for (int i = 0; __config_keyboards [i].key; ++ i) { __config_keyboards [i].data = config->read (String (__config_keyboards [i].key), __config_keyboards [i].data); } __config_on_the_spot = config->read (String (SCIM_CONFIG_FRONTEND_ON_THE_SPOT), __config_on_the_spot); __config_shared_input_method = config->read (String (SCIM_CONFIG_FRONTEND_SHARED_INPUT_METHOD), __config_shared_input_method); __config_keyboard_layout = scim_get_default_keyboard_layout (); setup_widget_value (); __have_changed = false; } } static void save_config (const ConfigPointer &config) { if (!config.null ()) { for (int i = 0; __config_keyboards [i].key; ++ i) { config->write (String (__config_keyboards [i].key), __config_keyboards [i].data); } gint act = gtk_combo_box_get_active (GTK_COMBO_BOX (__widget_keyboard_layout)); if (act >= 0 && act < SCIM_KEYBOARD_NUM_LAYOUTS) __config_keyboard_layout = static_cast (act); else __config_keyboard_layout = SCIM_KEYBOARD_Unknown; if (__config_keyboard_layout != scim_get_default_keyboard_layout ()) scim_set_default_keyboard_layout (__config_keyboard_layout); config->write (String (SCIM_CONFIG_FRONTEND_ON_THE_SPOT), __config_on_the_spot); config->write (String (SCIM_CONFIG_FRONTEND_SHARED_INPUT_METHOD), __config_shared_input_method); __have_changed = false; } } static bool query_changed () { return __have_changed; } static void on_default_editable_changed (GtkEditable *editable, gpointer user_data) { String *str = static_cast (user_data); if (str) { *str = String (gtk_entry_get_text (GTK_ENTRY (editable))); __have_changed = true; } } static void on_default_key_selection_clicked (GtkButton *button, gpointer user_data) { KeyboardConfigData *data = static_cast (user_data); if (data) { GtkWidget *dialog = scim_key_selection_dialog_new (_(data->title)); gint result; scim_key_selection_dialog_set_keys ( SCIM_KEY_SELECTION_DIALOG (dialog), data->data.c_str ()); result = gtk_dialog_run (GTK_DIALOG (dialog)); if (result == GTK_RESPONSE_OK) { const gchar *keys = scim_key_selection_dialog_get_keys ( SCIM_KEY_SELECTION_DIALOG (dialog)); if (!keys) keys = ""; if (String (keys) != data->data) gtk_entry_set_text (GTK_ENTRY (data->entry), keys); } gtk_widget_destroy (dialog); } } static void on_default_toggle_button_toggled (GtkToggleButton *togglebutton, gpointer user_data) { bool *toggle = static_cast (user_data); if (toggle) { *toggle = gtk_toggle_button_get_active (togglebutton); __have_changed = true; } } static void on_keyboard_layout_changed (GtkComboBox *combobox, gpointer user_data) { __have_changed = true; } /* vi:ts=4:nowrap:expandtab */ scim-1.4.14/modules/SetupUI/scim_imengine_setup.cpp000066400000000000000000001550421177210725600223130ustar00rootroot00000000000000/** @file scim_frontend_hotkeys_setup.cpp * implementation of Setup Module for FrontEnd Hotkeys configuration. */ /* * Smart Common Input Method * * Copyright (c) 2005 James Su * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this program; if not, write to the * Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, MA 02111-1307 USA * * $Id: scim_imengine_setup.cpp,v 1.9.2.2 2006/09/24 16:00:51 suzhe Exp $ * */ #define Uses_SCIM_COMPOSE_KEY #define Uses_SCIM_CONFIG_PATH #define Uses_SCIM_CONFIG_BASE #define Uses_SCIM_IMENGINE_MODULE #define Uses_SCIM_HOTKEY #define Uses_SCIM_FILTER_MANAGER #include #include #include "scim_private.h" #include "scim.h" #include "scimkeyselection.h" #include "scim_stl_map.h" using namespace scim; #define scim_module_init aaa_imengine_setup_LTX_scim_module_init #define scim_module_exit aaa_imengine_setup_LTX_scim_module_exit #define scim_setup_module_create_ui aaa_imengine_setup_LTX_scim_setup_module_create_ui #define scim_setup_module_get_category aaa_imengine_setup_LTX_scim_setup_module_get_category #define scim_setup_module_get_name aaa_imengine_setup_LTX_scim_setup_module_get_name #define scim_setup_module_get_description aaa_imengine_setup_LTX_scim_setup_module_get_description #define scim_setup_module_load_config aaa_imengine_setup_LTX_scim_setup_module_load_config #define scim_setup_module_save_config aaa_imengine_setup_LTX_scim_setup_module_save_config #define scim_setup_module_query_changed aaa_imengine_setup_LTX_scim_setup_module_query_changed #define LIST_ICON_SIZE 20 static GtkWidget * create_setup_window (); static void load_config (const ConfigPointer &config); static void save_config (const ConfigPointer &config); static bool query_changed (); // Module Interface. extern "C" { void scim_module_init (void) { } void scim_module_exit (void) { } GtkWidget * scim_setup_module_create_ui (void) { return create_setup_window (); } String scim_setup_module_get_category (void) { return String ("IMEngine"); } String scim_setup_module_get_name (void) { return String (_("Global Setup")); } String scim_setup_module_get_description (void) { return String (_("You can enable/disable input methods and set hotkeys for input methods here.")); } void scim_setup_module_load_config (const ConfigPointer &config) { load_config (config); } void scim_setup_module_save_config (const ConfigPointer &config) { save_config (config); } bool scim_setup_module_query_changed () { return query_changed (); } } // extern "C" // Internal data type. enum { FACTORY_LIST_ENABLE = 0, FACTORY_LIST_INCONSISTENT, FACTORY_LIST_ICON, FACTORY_LIST_NAME, FACTORY_LIST_UUID, FACTORY_LIST_HOTKEYS, FACTORY_LIST_FILTER_NAMES, FACTORY_LIST_FILTER_UUIDS, FACTORY_LIST_NUM_COLUMNS }; enum { FILTER_LIST_ENABLE = 0, FILTER_LIST_UUID, FILTER_LIST_NAME, FILTER_LIST_ICON, FILTER_LIST_LANGS, FILTER_LIST_DESC, FILTER_LIST_NUM_COLUMNS }; #if SCIM_USE_STL_EXT_HASH_MAP typedef __gnu_cxx::hash_map , scim_hash_string> MapStringVectorSizeT; typedef __gnu_cxx::hash_map MapStringKeyEventList; typedef __gnu_cxx::hash_map , scim_hash_string> MapStringVectorFilterInfo; #elif SCIM_USE_STL_HASH_MAP typedef std::hash_map , scim_hash_string> MapStringVectorSizeT; typedef std::hash_map MapStringKeyEventList; typedef std::hash_map , scim_hash_string> MapStringVectorFilterInfo; #else typedef std::map > MapStringVectorSizeT; typedef std::map MapStringKeyEventList; typedef std::map > MapStringVectorFilterInfo; #endif // Internal data declaration. static bool __have_changed = false; #if GTK_CHECK_VERSION(2, 12, 0) #else static GtkTooltips *__widget_tooltips = 0; #endif static GtkTreeStore *__factory_list_model = 0; static GtkWidget *__hotkey_button = 0; static GtkWidget *__filter_button = 0; static GtkTreeIter __selected_factory; static std::vector __filter_infos; // Internal functions declaration. static GdkPixbuf * scale_pixbuf (GdkPixbuf **pixbuf, int width, int height); static void get_factory_list (const ConfigPointer &config, std::vector &uuids, std::vector &names, std::vector &langs, std::vector &icons); static GtkWidget * create_factory_list_view (); static GtkWidget * create_filter_list_view (); static void set_filter_list_view_content (GtkTreeView *view, const std::vector & infos, const std::vector &enabled_filters); static void get_filter_list_view_result (GtkTreeView *view, std::vector &result, std::vector &names); static void load_factory_list (const ConfigPointer &config); static void load_hotkey_settings (const ConfigPointer &config); static void save_hotkey_settings (const ConfigPointer &config); static void load_filter_settings (const ConfigPointer &config); static void save_filter_settings (const ConfigPointer &config); static void factory_list_update_inconsistent(void); static void on_hotkey_button_clicked (GtkButton *button, gpointer user_data); static void on_expand_button_clicked (GtkButton *button, gpointer user_data); static void on_collapse_button_clicked (GtkButton *button, gpointer user_data); static void on_toggle_all_button_clicked (GtkButton *button, gpointer user_data); static void on_filter_button_clicked (GtkButton *button, gpointer user_data); static void on_filter_move_up_button_clicked (GtkButton *button, gpointer user_data); static void on_filter_move_down_button_clicked (GtkButton *button, gpointer user_data); static void on_factory_enable_box_clicked (GtkCellRendererToggle *cell, gchar *arg1, gpointer data); static void on_filter_enable_box_clicked (GtkCellRendererToggle *cell, gchar *arg1, gpointer data); static gboolean factory_list_set_disabled_func (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data); static gboolean factory_list_get_disabled_func (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data); static gboolean factory_list_set_hotkeys_func (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data); static gboolean factory_list_get_hotkeys_func (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data); static gboolean factory_list_set_filters_func (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data); static gboolean factory_list_get_filters_func (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data); static gboolean factory_list_toggle_all_func (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data); static void factory_list_selection_changed_callback (GtkTreeSelection *selection, gpointer user_data); // Function implementations. static GtkWidget * create_setup_window () { static GtkWidget *window = 0; if (!window) { GtkWidget *view; GtkWidget *hbox; GtkWidget *label; GtkWidget *sep; GtkWidget *scrolledwindow; GtkWidget *button; #if GTK_CHECK_VERSION(2, 12, 0) #else __widget_tooltips = gtk_tooltips_new (); #endif // Create the toplevel box. #if GTK_CHECK_VERSION(3, 2, 0) window = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); #else window = gtk_vbox_new (FALSE, 0); #endif gtk_widget_show (window); label = gtk_label_new (_("The installed input method services:")); gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5); gtk_widget_show (label); gtk_box_pack_start (GTK_BOX (window), label, FALSE, FALSE, 0); scrolledwindow = gtk_scrolled_window_new (NULL, NULL); gtk_widget_show (scrolledwindow); gtk_box_pack_start (GTK_BOX (window), scrolledwindow, TRUE, TRUE, 4); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow), GTK_SHADOW_NONE); // Create hotkey and filter button before factory list view, because // factory_list_selection_changed_callback may access these two buttons. __hotkey_button = gtk_button_new_with_mnemonic (_("Edit _Hotkeys")); gtk_widget_show (__hotkey_button); gtk_widget_set_sensitive (__hotkey_button, FALSE); g_signal_connect ((gpointer) __hotkey_button, "clicked", G_CALLBACK (on_hotkey_button_clicked), NULL); #if GTK_CHECK_VERSION(2, 12, 0) gtk_widget_set_tooltip_text (__hotkey_button, _("Edit Hotkeys associated with the selected input method.")); #else gtk_tooltips_set_tip (__widget_tooltips, __hotkey_button, _("Edit Hotkeys associated with the selected input method."), NULL); #endif __filter_button = gtk_button_new_with_mnemonic (_("Select _Filters")); gtk_widget_show (__filter_button); gtk_widget_set_sensitive (__filter_button, FALSE); g_signal_connect ((gpointer) __filter_button, "clicked", G_CALLBACK (on_filter_button_clicked), NULL); #if GTK_CHECK_VERSION(2, 12, 0) gtk_widget_set_tooltip_text (__filter_button, _("Select the Filters which will be attached to this input method.")); #else gtk_tooltips_set_tip (__widget_tooltips, __filter_button, _("Select the Filters which will be attached to this input method."), NULL); #endif view = create_factory_list_view (); gtk_widget_show (view); gtk_container_add (GTK_CONTAINER (scrolledwindow), view); #if GTK_CHECK_VERSION(3, 2, 0) sep = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); #else sep = gtk_hseparator_new (); #endif gtk_widget_show (sep); gtk_box_pack_start (GTK_BOX (window), sep, FALSE, FALSE, 2); #if GTK_CHECK_VERSION(3, 2, 0) hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); #else hbox = gtk_hbox_new (FALSE, 0); #endif gtk_widget_show (hbox); gtk_box_pack_start (GTK_BOX (window), hbox, FALSE, FALSE, 2); gtk_box_pack_end (GTK_BOX (hbox), __hotkey_button, FALSE, FALSE, 4); gtk_box_pack_end (GTK_BOX (hbox), __filter_button, FALSE, FALSE, 4); button = gtk_button_new_with_mnemonic (_("_Expand")); gtk_widget_show (button); gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, FALSE, 4); g_signal_connect ((gpointer) button, "clicked", G_CALLBACK (on_expand_button_clicked), (gpointer) view); #if GTK_CHECK_VERSION(2, 12, 0) gtk_widget_set_tooltip_text (button, _("Expand all language categories.")); #else gtk_tooltips_set_tip (__widget_tooltips, button, _("Expand all language categories."), NULL); #endif button = gtk_button_new_with_mnemonic (_("_Collapse")); gtk_widget_show (button); gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, FALSE, 4); g_signal_connect ((gpointer) button, "clicked", G_CALLBACK (on_collapse_button_clicked), (gpointer) view); #if GTK_CHECK_VERSION(2, 12, 0) gtk_widget_set_tooltip_text (button, _("Collapse all language categories.")); #else gtk_tooltips_set_tip (__widget_tooltips, button, _("Collapse all language categories."), NULL); #endif button = gtk_button_new_with_mnemonic (_("E_nable All")); gtk_widget_show (button); gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, FALSE, 4); g_signal_connect ((gpointer) button, "clicked", G_CALLBACK (on_toggle_all_button_clicked), (gpointer) (1)); #if GTK_CHECK_VERSION(2, 12, 0) gtk_widget_set_tooltip_text (button, _("Enable all input methods.")); #else gtk_tooltips_set_tip (__widget_tooltips, button, _("Enable all input methods."), NULL); #endif button = gtk_button_new_with_mnemonic (_("_Disable All")); gtk_widget_show (button); gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, FALSE, 4); g_signal_connect ((gpointer) button, "clicked", G_CALLBACK (on_toggle_all_button_clicked), (gpointer) (0)); #if GTK_CHECK_VERSION(2, 12, 0) gtk_widget_set_tooltip_text (button, _("Disable all input methods.")); #else gtk_tooltips_set_tip (__widget_tooltips, button, _("Disable all input methods."), NULL); #endif } return window; } static GtkWidget * create_factory_list_view () { GtkWidget *view; GtkTreeSelection *selection; GtkCellRenderer *renderer; GtkTreeViewColumn *column; view = gtk_tree_view_new (); gtk_widget_show (view); gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (view), TRUE); gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (view), TRUE); // Name column column = gtk_tree_view_column_new (); gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_AUTOSIZE); gtk_tree_view_column_set_resizable (column, TRUE); gtk_tree_view_column_set_title (column, _("Name")); renderer = gtk_cell_renderer_pixbuf_new (); gtk_tree_view_column_pack_start (column, renderer, FALSE); gtk_tree_view_column_set_attributes (column, renderer, "pixbuf", FACTORY_LIST_ICON, NULL); renderer = gtk_cell_renderer_text_new (); gtk_tree_view_column_pack_start (column, renderer, TRUE); gtk_tree_view_column_set_attributes (column, renderer, "text", FACTORY_LIST_NAME, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW (view), column); // Enable column column = gtk_tree_view_column_new (); gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_AUTOSIZE); gtk_tree_view_column_set_resizable (column, TRUE); gtk_tree_view_column_set_title (column, _("Enable")); renderer = gtk_cell_renderer_toggle_new (); gtk_cell_renderer_toggle_set_radio (GTK_CELL_RENDERER_TOGGLE (renderer), FALSE); gtk_tree_view_column_pack_start (column, renderer, FALSE); gtk_tree_view_column_set_attributes (column, renderer, "active", FACTORY_LIST_ENABLE, "inconsistent", FACTORY_LIST_INCONSISTENT, NULL); g_signal_connect (G_OBJECT (renderer), "toggled", G_CALLBACK (on_factory_enable_box_clicked), NULL); gtk_tree_view_append_column (GTK_TREE_VIEW (view), column); // Hotkey column column = gtk_tree_view_column_new (); gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_AUTOSIZE); gtk_tree_view_column_set_resizable (column, TRUE); gtk_tree_view_column_set_title (column, _("Hotkeys")); renderer = gtk_cell_renderer_text_new (); gtk_tree_view_column_pack_start (column, renderer, TRUE); gtk_tree_view_column_set_attributes (column, renderer, "text", FACTORY_LIST_HOTKEYS, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW (view), column); // Filter column column = gtk_tree_view_column_new (); gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_AUTOSIZE); gtk_tree_view_column_set_resizable (column, TRUE); gtk_tree_view_column_set_title (column, _("Filters")); renderer = gtk_cell_renderer_text_new (); gtk_tree_view_column_pack_start (column, renderer, TRUE); gtk_tree_view_column_set_attributes (column, renderer, "text", FACTORY_LIST_FILTER_NAMES, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW (view), column); // selection selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (view)); gtk_tree_selection_set_mode (selection, GTK_SELECTION_SINGLE); g_signal_connect (G_OBJECT (selection), "changed", G_CALLBACK (factory_list_selection_changed_callback), NULL); // Create model. __factory_list_model = gtk_tree_store_new (FACTORY_LIST_NUM_COLUMNS, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING); gtk_tree_view_set_model (GTK_TREE_VIEW (view), GTK_TREE_MODEL (__factory_list_model)); gtk_tree_view_collapse_all (GTK_TREE_VIEW (view)); return view; } static GtkWidget * create_filter_list_view () { GtkWidget *view; GtkCellRenderer *renderer; GtkTreeViewColumn *column; GtkListStore *filter_list_model; view = gtk_tree_view_new (); gtk_widget_show (view); gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (view), TRUE); gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (view), TRUE); // Enable column column = gtk_tree_view_column_new (); gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_AUTOSIZE); gtk_tree_view_column_set_resizable (column, FALSE); gtk_tree_view_column_set_title (column, _("Enable")); renderer = gtk_cell_renderer_toggle_new (); gtk_cell_renderer_toggle_set_radio (GTK_CELL_RENDERER_TOGGLE (renderer), FALSE); gtk_tree_view_column_pack_start (column, renderer, FALSE); gtk_tree_view_column_set_attributes (column, renderer, "active", FILTER_LIST_ENABLE, NULL); g_signal_connect (G_OBJECT (renderer), "toggled", G_CALLBACK (on_filter_enable_box_clicked), (gpointer) view); gtk_tree_view_append_column (GTK_TREE_VIEW (view), column); // Icon and column column = gtk_tree_view_column_new (); gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_AUTOSIZE); gtk_tree_view_column_set_resizable (column, TRUE); gtk_tree_view_column_set_title (column, _("Name")); renderer = gtk_cell_renderer_pixbuf_new (); gtk_tree_view_column_pack_start (column, renderer, FALSE); gtk_tree_view_column_set_attributes (column, renderer, "pixbuf", FILTER_LIST_ICON, NULL); renderer = gtk_cell_renderer_text_new (); gtk_tree_view_column_pack_start (column, renderer, TRUE); gtk_tree_view_column_set_attributes (column, renderer, "text", FILTER_LIST_NAME, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW (view), column); // Languages column column = gtk_tree_view_column_new (); gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_AUTOSIZE); gtk_tree_view_column_set_resizable (column, TRUE); gtk_tree_view_column_set_title (column, _("Languages")); renderer = gtk_cell_renderer_text_new (); gtk_tree_view_column_pack_start (column, renderer, TRUE); gtk_tree_view_column_set_attributes (column, renderer, "text", FILTER_LIST_LANGS, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW (view), column); // Description column column = gtk_tree_view_column_new (); gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_AUTOSIZE); gtk_tree_view_column_set_resizable (column, TRUE); gtk_tree_view_column_set_title (column, _("Description")); renderer = gtk_cell_renderer_text_new (); gtk_tree_view_column_pack_start (column, renderer, TRUE); gtk_tree_view_column_set_attributes (column, renderer, "text", FILTER_LIST_DESC, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW (view), column); // Create model. filter_list_model = gtk_list_store_new (FILTER_LIST_NUM_COLUMNS, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_STRING, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING); gtk_tree_view_set_model (GTK_TREE_VIEW (view), GTK_TREE_MODEL (filter_list_model)); return view; } static GdkPixbuf * scale_pixbuf (GdkPixbuf **pixbuf, int width, int height) { if (pixbuf && *pixbuf) { if (gdk_pixbuf_get_width (*pixbuf) != width || gdk_pixbuf_get_height (*pixbuf) != height) { GdkPixbuf *dest = gdk_pixbuf_scale_simple (*pixbuf, width, height, GDK_INTERP_BILINEAR); g_object_unref (*pixbuf); *pixbuf = dest; } return *pixbuf; } return 0; } static void get_factory_list (const ConfigPointer &config, std::vector &uuids, std::vector &names, std::vector &langs, std::vector &icons) { std::vector module_list; IMEngineFactoryPointer factory; IMEngineModule module; scim_get_imengine_module_list (module_list); uuids.clear (); names.clear (); langs.clear (); icons.clear (); // Add "English/European" factory first. factory = new ComposeKeyFactory (); uuids.push_back (factory->get_uuid ()); names.push_back (utf8_wcstombs (factory->get_name ())); langs.push_back (scim_get_normalized_language (factory->get_language ())); icons.push_back (factory->get_icon_file ()); for (size_t i = 0; i < module_list.size (); ++ i) { module.load (module_list [i], config); if (module.valid ()) { for (size_t j = 0; j < module.number_of_factories (); ++j) { try { factory = module.create_factory (j); } catch (...) { factory.reset (); } if (!factory.null ()) { if (std::find (uuids.begin (), uuids.end (), factory->get_uuid ()) == uuids.end ()) { uuids.push_back (factory->get_uuid ()); names.push_back (utf8_wcstombs (factory->get_name ())); langs.push_back (scim_get_normalized_language (factory->get_language ())); icons.push_back (factory->get_icon_file ()); } factory.reset (); } } module.unload (); } } } static void load_factory_list (const ConfigPointer &config) { if (!__factory_list_model) return; std::vector uuids; std::vector names; std::vector langs; std::vector icons; MapStringVectorSizeT groups; GtkTreeIter iter; GtkTreeIter parent; String lang_name; GdkPixbuf *pixbuf; size_t i; get_factory_list (config, uuids, names, langs, icons); for (i = 0; i < uuids.size (); ++i) { groups [langs [i]].push_back (i); } gtk_tree_store_clear (GTK_TREE_STORE (__factory_list_model)); // Add language group for (MapStringVectorSizeT::iterator it = groups.begin (); it != groups.end (); ++ it) { lang_name = scim_get_language_name (it->first); gtk_tree_store_append (__factory_list_model, &parent, NULL); gtk_tree_store_set (__factory_list_model, &parent, FACTORY_LIST_ENABLE, true, FACTORY_LIST_INCONSISTENT, FALSE, FACTORY_LIST_ICON, NULL, FACTORY_LIST_NAME, lang_name.c_str (), FACTORY_LIST_UUID, NULL, FACTORY_LIST_HOTKEYS, NULL, -1); // Add factories for this group for (i = 0; i < it->second.size (); ++i) { pixbuf = gdk_pixbuf_new_from_file (icons [it->second [i]].c_str (), NULL); scale_pixbuf (&pixbuf, LIST_ICON_SIZE, LIST_ICON_SIZE); gtk_tree_store_append (__factory_list_model, &iter, &parent); gtk_tree_store_set (__factory_list_model, &iter, FACTORY_LIST_ENABLE, true, FACTORY_LIST_INCONSISTENT, FALSE, FACTORY_LIST_ICON, pixbuf, FACTORY_LIST_NAME, names [it->second [i]].c_str (), FACTORY_LIST_UUID, uuids [it->second [i]].c_str (), FACTORY_LIST_HOTKEYS, NULL, -1); if (pixbuf) g_object_unref (pixbuf); } } } static void load_hotkey_settings (const ConfigPointer &config) { // Load Hotkeys. IMEngineHotkeyMatcher hotkey_matcher; hotkey_matcher.load_hotkeys (config); KeyEventList keys; std::vector uuids; MapStringKeyEventList hotkey_map; if (hotkey_matcher.get_all_hotkeys (keys, uuids) > 0) { for (size_t i = 0; i < keys.size (); ++i) hotkey_map [uuids[i]].push_back (keys [i]); } gtk_tree_model_foreach (GTK_TREE_MODEL (__factory_list_model), factory_list_set_hotkeys_func, static_cast (&hotkey_map)); } static void save_hotkey_settings (const ConfigPointer &config) { // Save Hotkeys. IMEngineHotkeyMatcher hotkey_matcher; MapStringKeyEventList hotkey_map; gtk_tree_model_foreach (GTK_TREE_MODEL (__factory_list_model), factory_list_get_hotkeys_func, static_cast (&hotkey_map)); for (MapStringKeyEventList::iterator it = hotkey_map.begin (); it != hotkey_map.end (); ++it) hotkey_matcher.add_hotkeys (it->second, it->first); hotkey_matcher.save_hotkeys (config); } static void load_filter_settings (const ConfigPointer &config) { FilterManager m_manager (config); unsigned int nfilters = m_manager.number_of_filters (); __filter_infos.clear (); if (!nfilters) return; FilterInfo info; // Get information of all filters. for (unsigned int i = 0; i < nfilters; ++i) { if (m_manager.get_filter_info (i, info)) __filter_infos.push_back (info); } // Load Filter infos. std::vector filtered_imes; MapStringVectorFilterInfo filter_map; if (m_manager.get_filtered_imengines (filtered_imes) > 0) { std::vector filter_uuids; for (size_t i = 0; i < filtered_imes.size (); ++i) { if (m_manager.get_filters_for_imengine (filtered_imes [i], filter_uuids)) { for (size_t j = 0; j < filter_uuids.size (); ++j) { if (m_manager.get_filter_info (filter_uuids [j], info)) filter_map [filtered_imes [i]].push_back (info); } } } } gtk_tree_model_foreach (GTK_TREE_MODEL (__factory_list_model), factory_list_set_filters_func, static_cast (&filter_map)); } static void save_filter_settings (const ConfigPointer &config) { FilterManager m_manager (config); MapStringVectorFilterInfo filter_map; gtk_tree_model_foreach (GTK_TREE_MODEL (__factory_list_model), factory_list_get_filters_func, static_cast (&filter_map)); m_manager.clear_all_filter_settings (); for (MapStringVectorFilterInfo::iterator it = filter_map.begin (); it != filter_map.end (); ++it) { std::vector filters; for (size_t i = 0; i < it->second.size (); ++i) filters.push_back (it->second [i].uuid); m_manager.set_filters_for_imengine (it->first, filters); } } static gboolean factory_list_set_disabled_func (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data) { gchar *uuid; std::vector *disabled = static_cast *> (data); gtk_tree_model_get (model, iter, FACTORY_LIST_UUID, &uuid, -1); if (uuid && std::binary_search (disabled->begin (), disabled->end (), String (uuid))) { gtk_tree_store_set (GTK_TREE_STORE (model), iter, FACTORY_LIST_ENABLE, FALSE, -1); } else { gtk_tree_store_set (GTK_TREE_STORE (model), iter, FACTORY_LIST_ENABLE, TRUE, -1); } if (uuid) g_free (uuid); return FALSE; } static gboolean factory_list_get_disabled_func (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data) { gchar *uuid; gboolean enable; std::vector *disabled = static_cast *> (data); gtk_tree_model_get (model, iter, FACTORY_LIST_UUID, &uuid, FACTORY_LIST_ENABLE, &enable, -1); if (!enable && uuid) disabled->push_back (String (uuid)); if (uuid) g_free (uuid); return FALSE; } static gboolean factory_list_set_hotkeys_func (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data) { gchar *uuid; MapStringKeyEventList::iterator it; MapStringKeyEventList *hotkey_map = static_cast (data); gtk_tree_model_get (model, iter, FACTORY_LIST_UUID, &uuid, -1); if (uuid && (it = hotkey_map->find (String (uuid))) != hotkey_map->end ()) { String str; scim_key_list_to_string (str, it->second); gtk_tree_store_set (GTK_TREE_STORE (model), iter, FACTORY_LIST_HOTKEYS, str.c_str (), -1); } else { gtk_tree_store_set (GTK_TREE_STORE (model), iter, FACTORY_LIST_HOTKEYS, NULL, -1); } if (uuid) g_free (uuid); return FALSE; } static gboolean factory_list_get_hotkeys_func (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data) { gchar *uuid; gchar *hotkeys; MapStringKeyEventList *hotkey_map = static_cast (data); gtk_tree_model_get (model, iter, FACTORY_LIST_UUID, &uuid, FACTORY_LIST_HOTKEYS, &hotkeys, -1); if (hotkeys && uuid) { KeyEventList keylist; if (scim_string_to_key_list (keylist, String (hotkeys))) hotkey_map->insert (std::make_pair (String (uuid), keylist)); } if (uuid) g_free (uuid); if (hotkeys) g_free (hotkeys); return FALSE; } static gboolean factory_list_set_filters_func (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data) { gchar *uuid; MapStringVectorFilterInfo::iterator it; MapStringVectorFilterInfo *filter_map = static_cast (data); gtk_tree_model_get (model, iter, FACTORY_LIST_UUID, &uuid, -1); if (uuid && (it = filter_map->find (String (uuid))) != filter_map->end ()) { std::vector names; std::vector uuids; for (size_t i = 0; i < it->second.size (); ++i) { names.push_back (it->second [i].name); uuids.push_back (it->second [i].uuid); } gtk_tree_store_set (GTK_TREE_STORE (model), iter, FACTORY_LIST_FILTER_NAMES, scim_combine_string_list (names).c_str (), FACTORY_LIST_FILTER_UUIDS, scim_combine_string_list (uuids).c_str (), -1); } else { gtk_tree_store_set (GTK_TREE_STORE (model), iter, FACTORY_LIST_FILTER_NAMES, NULL, FACTORY_LIST_FILTER_UUIDS, NULL, -1); } if (uuid) g_free (uuid); return FALSE; } static gboolean factory_list_get_filters_func (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data) { gchar *uuid; gchar *filter_uuids; MapStringVectorFilterInfo *filter_map = static_cast (data); gtk_tree_model_get (model, iter, FACTORY_LIST_UUID, &uuid, FACTORY_LIST_FILTER_UUIDS, &filter_uuids, -1); if (filter_uuids && uuid) { std::vector strvec; scim_split_string_list (strvec, String (filter_uuids)); std::vector infovec; for (size_t i = 0; i < strvec.size (); ++i) infovec.push_back (FilterInfo (strvec [i])); if (infovec.size ()) filter_map->insert (std::make_pair (String (uuid), infovec)); } if (uuid) g_free (uuid); if (filter_uuids) g_free (filter_uuids); return FALSE; } static gboolean factory_list_toggle_all_func (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data) { gboolean enable = (data != 0); gtk_tree_store_set (GTK_TREE_STORE (model), iter, FACTORY_LIST_ENABLE, enable, FACTORY_LIST_INCONSISTENT, FALSE, -1); return FALSE; } static void load_config (const ConfigPointer &config) { if (__factory_list_model) { load_factory_list (config); // Load disabled IMEngines list. std::vector disabled; disabled = scim_global_config_read (String (SCIM_GLOBAL_CONFIG_DISABLED_IMENGINE_FACTORIES), disabled); std::sort (disabled.begin (), disabled.end ()); gtk_tree_model_foreach (GTK_TREE_MODEL (__factory_list_model), factory_list_set_disabled_func, static_cast (&disabled)); factory_list_update_inconsistent (); load_hotkey_settings (config); load_filter_settings (config); } __have_changed = false; } static void save_config (const ConfigPointer &config) { if (__factory_list_model && __have_changed) { // Save disabled IMEngines list. std::vector disabled; gtk_tree_model_foreach (GTK_TREE_MODEL (__factory_list_model), factory_list_get_disabled_func, static_cast (&disabled)); scim_global_config_write (String (SCIM_GLOBAL_CONFIG_DISABLED_IMENGINE_FACTORIES), disabled); save_hotkey_settings (config); save_filter_settings (config); } __have_changed = false; } static bool query_changed () { return __have_changed; } static void factory_list_update_inconsistent(void) { GtkTreeIter iter; GtkTreeIter childiter; gboolean enable; gboolean inconsistent; if (!__factory_list_model || !gtk_tree_model_get_iter_first (GTK_TREE_MODEL (__factory_list_model), &iter)) return; do { gtk_tree_model_get (GTK_TREE_MODEL (__factory_list_model), &iter, FACTORY_LIST_ENABLE, &enable, FACTORY_LIST_INCONSISTENT, &inconsistent, -1); if (gtk_tree_model_iter_children (GTK_TREE_MODEL (__factory_list_model), &childiter, &iter)) { gint enable_count = 0; gint total_count = gtk_tree_model_iter_n_children(GTK_TREE_MODEL (__factory_list_model), &iter); do { gboolean child_enable; gtk_tree_model_get (GTK_TREE_MODEL (__factory_list_model), &childiter, FACTORY_LIST_ENABLE, &child_enable, -1); if (child_enable) ++ enable_count; } while (gtk_tree_model_iter_next (GTK_TREE_MODEL (__factory_list_model), &childiter)); enable = (enable_count && enable_count >= ((total_count+1) >> 1)); inconsistent = (enable_count && enable_count < total_count); } gtk_tree_store_set (GTK_TREE_STORE (__factory_list_model), &iter, FACTORY_LIST_ENABLE, enable, FACTORY_LIST_INCONSISTENT, inconsistent, -1); } while (gtk_tree_model_iter_next (GTK_TREE_MODEL (__factory_list_model), &iter)); } static void on_factory_enable_box_clicked (GtkCellRendererToggle *cell, gchar *arg1, gpointer data) { GtkTreePath *path; GtkTreeIter iter, childiter; gboolean enable; path = gtk_tree_path_new_from_string (arg1); if (gtk_tree_model_get_iter (GTK_TREE_MODEL (__factory_list_model), &iter, path)) { if (gtk_tree_model_iter_children(GTK_TREE_MODEL (__factory_list_model), &childiter, &iter)) { gtk_tree_model_get (GTK_TREE_MODEL (__factory_list_model), &iter, FACTORY_LIST_ENABLE, &enable, -1); enable = !enable; gtk_tree_store_set (__factory_list_model, &iter, FACTORY_LIST_ENABLE, enable, FACTORY_LIST_INCONSISTENT, FALSE, -1); do { gtk_tree_store_set (__factory_list_model, &childiter, FACTORY_LIST_ENABLE, enable, -1); } while (gtk_tree_model_iter_next (GTK_TREE_MODEL (__factory_list_model), &childiter)); } else { gtk_tree_model_get (GTK_TREE_MODEL (__factory_list_model), &iter, FACTORY_LIST_ENABLE, &enable, -1); gtk_tree_store_set (__factory_list_model, &iter, FACTORY_LIST_ENABLE, !enable, -1); factory_list_update_inconsistent (); } } gtk_tree_path_free (path); __have_changed = true; } static void on_filter_enable_box_clicked (GtkCellRendererToggle *cell, gchar *arg1, gpointer data) { GtkTreePath *path; GtkTreeIter iter; gboolean enable; GtkTreeModel *model = gtk_tree_view_get_model (GTK_TREE_VIEW (data)); path = gtk_tree_path_new_from_string (arg1); if (gtk_tree_model_get_iter (model, &iter, path)) { gtk_tree_model_get (GTK_TREE_MODEL (model), &iter, FILTER_LIST_ENABLE, &enable, -1); enable = !enable; gtk_list_store_set (GTK_LIST_STORE (model), &iter, FILTER_LIST_ENABLE, enable, -1); } gtk_tree_path_free (path); } static void on_hotkey_button_clicked (GtkButton *button, gpointer user_data) { gchar *uuid; gchar *hotkeys; gchar *name; gtk_tree_model_get (GTK_TREE_MODEL (__factory_list_model), &__selected_factory, FACTORY_LIST_UUID, &uuid, FACTORY_LIST_HOTKEYS, &hotkeys, FACTORY_LIST_NAME, &name, -1); if (uuid) { char buf [256]; snprintf (buf, 256, _("Edit Hotkeys for %s"), name); GtkWidget *dialog = scim_key_selection_dialog_new (buf); gint result; if (hotkeys) { scim_key_selection_dialog_set_keys ( SCIM_KEY_SELECTION_DIALOG (dialog), hotkeys); } result = gtk_dialog_run (GTK_DIALOG (dialog)); if (result == GTK_RESPONSE_OK) { const gchar *newkeys = scim_key_selection_dialog_get_keys (SCIM_KEY_SELECTION_DIALOG (dialog)); if ((newkeys && hotkeys && String (newkeys) != String (hotkeys)) || (newkeys || hotkeys)) { gtk_tree_store_set (__factory_list_model, &__selected_factory, FACTORY_LIST_HOTKEYS, newkeys, -1); __have_changed = true; } } gtk_widget_destroy (dialog); } if (uuid) g_free (uuid); if (hotkeys) g_free (hotkeys); if (name) g_free (name); } static void on_expand_button_clicked (GtkButton *button, gpointer user_data) { GtkWidget *view = static_cast(user_data); if (view) gtk_tree_view_expand_all (GTK_TREE_VIEW (view)); } static void on_collapse_button_clicked (GtkButton *button, gpointer user_data) { GtkWidget *view = static_cast(user_data); if (view) gtk_tree_view_collapse_all (GTK_TREE_VIEW (view)); } static void factory_list_selection_changed_callback (GtkTreeSelection *selection, gpointer user_data) { GtkTreeModel *model; if (gtk_tree_selection_get_selected (selection, &model, &__selected_factory)) { if (gtk_tree_model_iter_has_child (model, &__selected_factory)) { gtk_widget_set_sensitive (__hotkey_button, FALSE); gtk_widget_set_sensitive (__filter_button, FALSE); } else { gtk_widget_set_sensitive (__hotkey_button, TRUE); if (__filter_infos.size ()) gtk_widget_set_sensitive (__filter_button, TRUE); } } else { gtk_widget_set_sensitive (__hotkey_button, FALSE); gtk_widget_set_sensitive (__filter_button, FALSE); } } static void on_toggle_all_button_clicked (GtkButton *button, gpointer user_data) { gtk_tree_model_foreach (GTK_TREE_MODEL (__factory_list_model), factory_list_toggle_all_func, user_data); __have_changed = true; } static void set_filter_list_view_content (GtkTreeView *view, const std::vector & infos, const std::vector &enabled_filters) { std::vector lang_ids; std::vector lang_names; std::vector disabled_infos = infos; std::vector enabled_infos; std::vector ::iterator fiit; std::vector ::const_iterator sit; GdkPixbuf *pixbuf; GtkTreeIter iter; GtkTreeModel *model = gtk_tree_view_get_model (view); gtk_list_store_clear (GTK_LIST_STORE (model)); // Put the enabled filters in the front. for (sit = enabled_filters.begin (); sit != enabled_filters.end (); ++sit) { for (fiit = disabled_infos.begin (); fiit != disabled_infos.end (); ++fiit) { if (fiit->uuid == *sit) { enabled_infos.push_back (*fiit); disabled_infos.erase (fiit); break; } } } for (fiit = enabled_infos.begin (); fiit != enabled_infos.end (); ++fiit) { pixbuf = gdk_pixbuf_new_from_file (fiit->icon.c_str (), NULL); scale_pixbuf (&pixbuf, LIST_ICON_SIZE, LIST_ICON_SIZE); scim_split_string_list (lang_ids, fiit->langs); lang_names.clear (); for (sit = lang_ids.begin (); sit != lang_ids.end (); ++sit) { String name = scim_get_language_name (*sit); if (std::find (lang_names.begin (), lang_names.end (), name) == lang_names.end ()) lang_names.push_back (name); } String langs = scim_combine_string_list (lang_names); if (!langs.length ()) langs = ""; gtk_list_store_append (GTK_LIST_STORE (model), &iter); gtk_list_store_set (GTK_LIST_STORE (model), &iter, FILTER_LIST_ENABLE, TRUE, FILTER_LIST_ICON, pixbuf, FILTER_LIST_UUID, fiit->uuid.c_str (), FILTER_LIST_NAME, fiit->name.c_str (), FILTER_LIST_LANGS, langs.c_str (), FILTER_LIST_DESC, fiit->desc.c_str (), -1); if (pixbuf) g_object_unref (pixbuf); } for (fiit = disabled_infos.begin (); fiit != disabled_infos.end (); ++fiit) { pixbuf = gdk_pixbuf_new_from_file (fiit->icon.c_str (), NULL); scale_pixbuf (&pixbuf, LIST_ICON_SIZE, LIST_ICON_SIZE); scim_split_string_list (lang_ids, fiit->langs); lang_names.clear (); for (sit = lang_ids.begin (); sit != lang_ids.end (); ++sit) { String name = scim_get_language_name (*sit); if (std::find (lang_names.begin (), lang_names.end (), name) == lang_names.end ()) lang_names.push_back (name); } String langs = scim_combine_string_list (lang_names); if (!langs.length ()) langs = ""; gtk_list_store_append (GTK_LIST_STORE (model), &iter); gtk_list_store_set (GTK_LIST_STORE (model), &iter, FILTER_LIST_ENABLE, FALSE, FILTER_LIST_ICON, pixbuf, FILTER_LIST_UUID, fiit->uuid.c_str (), FILTER_LIST_NAME, fiit->name.c_str (), FILTER_LIST_LANGS, langs.c_str (), FILTER_LIST_DESC, fiit->desc.c_str (), -1); if (pixbuf) g_object_unref (pixbuf); } } static void get_filter_list_view_result (GtkTreeView *view, std::vector &result, std::vector &names) { gchar *uuid; gchar *name; gboolean enable; GtkTreeIter iter; GtkTreeModel *model = gtk_tree_view_get_model (view); result.clear (); names.clear (); if (!gtk_tree_model_get_iter_first (model, &iter)) return; do { gtk_tree_model_get (model, &iter, FILTER_LIST_UUID, &uuid, FILTER_LIST_NAME, &name, FILTER_LIST_ENABLE, &enable, -1); if (enable && uuid) { result.push_back (String (uuid)); names.push_back (String (name)); } if (uuid) g_free (uuid); if (name) g_free (name); } while (gtk_tree_model_iter_next (model, &iter)); } static void on_filter_button_clicked (GtkButton *button, gpointer user_data) { gchar *uuid; gchar *filter_uuids; gchar *name; gtk_tree_model_get (GTK_TREE_MODEL (__factory_list_model), &__selected_factory, FACTORY_LIST_UUID, &uuid, FACTORY_LIST_FILTER_UUIDS, &filter_uuids, FACTORY_LIST_NAME, &name, -1); if (uuid) { GtkWidget *dialog; GtkWidget *view; GtkWidget *scrolledwindow; GtkWidget *separator; GtkWidget *hbox; GtkWidget *button; std::vector enabled_filters; if (filter_uuids) scim_split_string_list (enabled_filters, filter_uuids); char buf [256]; snprintf (buf, 256, _("Select Filters for %s"), name); dialog = gtk_dialog_new_with_buttons (buf, NULL, GTK_DIALOG_MODAL, GTK_STOCK_OK,GTK_RESPONSE_OK, GTK_STOCK_CANCEL,GTK_RESPONSE_CANCEL, NULL); #if GTK_CHECK_VERSION(2, 22, 0) #else gtk_dialog_set_has_separator (GTK_DIALOG (dialog), TRUE); #endif scrolledwindow = gtk_scrolled_window_new (NULL, NULL); gtk_widget_show (scrolledwindow); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow), GTK_SHADOW_NONE); #if GTK_CHECK_VERSION(3, 0, 0) gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (dialog))), scrolledwindow, TRUE, TRUE, 2); #else gtk_box_pack_start (GTK_BOX (GTK_DIALOG(dialog)->vbox), scrolledwindow, TRUE, TRUE, 2); #endif view = create_filter_list_view (); set_filter_list_view_content (GTK_TREE_VIEW (view), __filter_infos, enabled_filters); gtk_container_add (GTK_CONTAINER (scrolledwindow), view); #if GTK_CHECK_VERSION(3, 2, 0) separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); #else separator = gtk_hseparator_new (); #endif gtk_widget_show (separator); #if GTK_CHECK_VERSION(3, 0, 0) gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (dialog))), separator, FALSE, FALSE, 2); #else gtk_box_pack_start (GTK_BOX (GTK_DIALOG(dialog)->vbox), separator, FALSE, FALSE, 2); #endif #if GTK_CHECK_VERSION(3, 2, 0) hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 4); #else hbox = gtk_hbox_new (FALSE, 4); #endif gtk_widget_show (hbox); #if GTK_CHECK_VERSION(3, 0, 0) gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (dialog))), hbox, FALSE, FALSE, 2); #else gtk_box_pack_start (GTK_BOX (GTK_DIALOG(dialog)->vbox), hbox, FALSE, FALSE, 2); #endif button = gtk_button_new_with_mnemonic (_("Move _Up")); gtk_widget_show (button); gtk_box_pack_end (GTK_BOX (hbox), button, FALSE, FALSE, 4); g_signal_connect ((gpointer) button, "clicked", G_CALLBACK (on_filter_move_up_button_clicked), (gpointer) view); button = gtk_button_new_with_mnemonic (_("Move _Down")); gtk_widget_show (button); gtk_box_pack_end (GTK_BOX (hbox), button, FALSE, FALSE, 4); g_signal_connect ((gpointer) button, "clicked", G_CALLBACK (on_filter_move_down_button_clicked), (gpointer) view); gtk_window_set_default_size (GTK_WINDOW (dialog), 320, 240); gint result = gtk_dialog_run (GTK_DIALOG (dialog)); if (result == GTK_RESPONSE_OK) { std::vector filter_names; get_filter_list_view_result (GTK_TREE_VIEW (view), enabled_filters, filter_names); String str = scim_combine_string_list (enabled_filters); if (String (filter_uuids ? filter_uuids : "") != str) { gtk_tree_store_set (GTK_TREE_STORE (__factory_list_model), &__selected_factory, FACTORY_LIST_FILTER_NAMES, scim_combine_string_list (filter_names).c_str (), FACTORY_LIST_FILTER_UUIDS, str.c_str (), -1); __have_changed = true; } } gtk_widget_destroy (dialog); } if (uuid) g_free (uuid); if (filter_uuids) g_free (filter_uuids); if (name) g_free (name); } static void on_filter_move_up_button_clicked (GtkButton *button, gpointer user_data) { GtkTreeView *view = GTK_TREE_VIEW (user_data); GtkTreeSelection *selection = gtk_tree_view_get_selection (view); GtkTreeModel *model; GtkTreeIter cur_iter; GtkTreeIter prev_iter; GtkTreePath *path; if (gtk_tree_selection_get_selected (selection, &model, &cur_iter)) { path = gtk_tree_model_get_path (model, &cur_iter); if (gtk_tree_path_prev (path) && gtk_tree_model_get_iter (model, &prev_iter, path)) { gtk_list_store_swap (GTK_LIST_STORE (model), &cur_iter, &prev_iter); } gtk_tree_path_free (path); } } static void on_filter_move_down_button_clicked (GtkButton *button, gpointer user_data) { GtkTreeView *view = GTK_TREE_VIEW (user_data); GtkTreeSelection *selection = gtk_tree_view_get_selection (view); GtkTreeModel *model; GtkTreeIter cur_iter; GtkTreeIter next_iter; if (gtk_tree_selection_get_selected (selection, &model, &cur_iter)) { next_iter = cur_iter; if (gtk_tree_model_iter_next (model, &next_iter)) { gtk_list_store_swap (GTK_LIST_STORE (model), &cur_iter, &next_iter); } } } /* vi:ts=4:nowrap:expandtab */ scim-1.4.14/modules/SetupUI/scim_panel_gtk_setup.cpp000066400000000000000000001152451177210725600224650ustar00rootroot00000000000000/** @file scim_panel_gtk_setup.cpp * implementation of Setup Module of scim-panel-gtk. */ /* * Smart Common Input Method * * Copyright (c) 2002-2005 James Su * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this program; if not, write to the * Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, MA 02111-1307 USA * * $Id: scim_panel_gtk_setup.cpp,v 1.15 2005/12/10 14:04:54 suzhe Exp $ * */ #define Uses_SCIM_CONFIG_BASE #define Uses_SCIM_PANEL #include #include "scim_private.h" #include "scim.h" using namespace scim; #define scim_module_init panel_gtk_setup_LTX_scim_module_init #define scim_module_exit panel_gtk_setup_LTX_scim_module_exit #define scim_setup_module_create_ui panel_gtk_setup_LTX_scim_setup_module_create_ui #define scim_setup_module_get_category panel_gtk_setup_LTX_scim_setup_module_get_category #define scim_setup_module_get_name panel_gtk_setup_LTX_scim_setup_module_get_name #define scim_setup_module_get_description panel_gtk_setup_LTX_scim_setup_module_get_description #define scim_setup_module_load_config panel_gtk_setup_LTX_scim_setup_module_load_config #define scim_setup_module_save_config panel_gtk_setup_LTX_scim_setup_module_save_config #define scim_setup_module_query_changed panel_gtk_setup_LTX_scim_setup_module_query_changed #define SCIM_CONFIG_PANEL_GTK_FONT "/Panel/Gtk/Font" #define SCIM_CONFIG_PANEL_GTK_TOOLBAR_ALWAYS_SHOW "/Panel/Gtk/ToolBar/AlwaysShow" #define SCIM_CONFIG_PANEL_GTK_TOOLBAR_ALWAYS_HIDDEN "/Panel/Gtk/ToolBar/AlwaysHidden" #define SCIM_CONFIG_PANEL_GTK_TOOLBAR_AUTO_SNAP "/Panel/Gtk/ToolBar/AutoSnap" #define SCIM_CONFIG_PANEL_GTK_TOOLBAR_HIDE_TIMEOUT "/Panel/Gtk/ToolBar/HideTimeout" #define SCIM_CONFIG_PANEL_GTK_TOOLBAR_POS_X "/Panel/Gtk/ToolBar/POS_X" #define SCIM_CONFIG_PANEL_GTK_TOOLBAR_POS_Y "/Panel/Gtk/ToolBar/POS_Y" #define SCIM_CONFIG_PANEL_GTK_TOOLBAR_SHOW_FACTORY_ICON "/Panel/Gtk/ToolBar/ShowFactoryIcon" #define SCIM_CONFIG_PANEL_GTK_TOOLBAR_SHOW_FACTORY_NAME "/Panel/Gtk/ToolBar/ShowFactoryName" #define SCIM_CONFIG_PANEL_GTK_TOOLBAR_SHOW_STICK_ICON "/Panel/Gtk/ToolBar/ShowStickIcon" #define SCIM_CONFIG_PANEL_GTK_TOOLBAR_SHOW_MENU_ICON "/Panel/Gtk/ToolBar/ShowMenuIcon" #define SCIM_CONFIG_PANEL_GTK_TOOLBAR_SHOW_HELP_ICON "/Panel/Gtk/ToolBar/ShowHelpIcon" #define SCIM_CONFIG_PANEL_GTK_TOOLBAR_SHOW_PROPERTY_LABEL "/Panel/Gtk/ToolBar/ShowPropertyLabel" #define SCIM_CONFIG_PANEL_GTK_LOOKUP_TABLE_EMBEDDED "/Panel/Gtk/LookupTableEmbedded" #define SCIM_CONFIG_PANEL_GTK_LOOKUP_TABLE_VERTICAL "/Panel/Gtk/LookupTableVertical" #define SCIM_CONFIG_PANEL_GTK_DEFAULT_STICKED "/Panel/Gtk/DefaultSticked" #define SCIM_CONFIG_PANEL_GTK_SHOW_TRAY_ICON "/Panel/Gtk/ShowTrayIcon" static GtkWidget * create_setup_window (); static void load_config (const ConfigPointer &config); static void save_config (const ConfigPointer &config); static bool query_changed (); // Module Interface. extern "C" { void scim_module_init (void) { } void scim_module_exit (void) { } GtkWidget * scim_setup_module_create_ui (void) { return create_setup_window (); } String scim_setup_module_get_category (void) { return String ("Panel"); } String scim_setup_module_get_name (void) { return String (_("GTK")); } String scim_setup_module_get_description (void) { return String (_("A panel daemon based on GTK+-2.x library.")); } void scim_setup_module_load_config (const ConfigPointer &config) { load_config (config); } void scim_setup_module_save_config (const ConfigPointer &config) { save_config (config); } bool scim_setup_module_query_changed () { return query_changed (); } } // extern "C" // Internal data declaration. static bool __config_toolbar_always_show = false; static bool __config_toolbar_always_hidden = false; static bool __config_toolbar_auto_snap = false; static int __config_toolbar_hide_timeout = 2; static bool __config_toolbar_show_factory_icon = true; static bool __config_toolbar_show_factory_name = true; static bool __config_toolbar_show_stick_icon = false; static bool __config_toolbar_show_menu_icon = true; static bool __config_toolbar_show_help_icon = false; static bool __config_toolbar_show_property_label = true; static bool __config_lookup_table_embedded = true; static bool __config_lookup_table_vertical = false; static bool __config_default_sticked = false; static bool __config_show_tray_icon = true; static String __config_font = "default"; static bool __have_changed = false; static GtkWidget * __widget_toolbar_show_behaviour = 0; static GtkWidget * __widget_toolbar_auto_snap = 0; static GtkWidget * __widget_toolbar_hide_timeout = 0; static GtkWidget * __widget_toolbar_show_factory_icon = 0; static GtkWidget * __widget_toolbar_show_factory_name = 0; static GtkWidget * __widget_toolbar_show_stick_icon = 0; static GtkWidget * __widget_toolbar_show_menu_icon = 0; static GtkWidget * __widget_toolbar_show_help_icon = 0; static GtkWidget * __widget_toolbar_show_property_label = 0; static GtkWidget * __widget_lookup_table_embedded = 0; static GtkWidget * __widget_lookup_table_vertical = 0; static GtkWidget * __widget_default_sticked = 0; static GtkWidget * __widget_show_tray_icon = 0; static GtkWidget * __widget_font = 0; #if GTK_CHECK_VERSION(2, 12, 0) #else static GtkTooltips * __widget_tooltips = 0; #endif enum ToolbarShowFlavourType { SCIM_TOOLBAR_SHOW_ALWAYS, SCIM_TOOLBAR_SHOW_ON_DEMAND, SCIM_TOOLBAR_SHOW_NEVER }; static const char * __toolbar_show_behaviour_text[] = { N_("Always"), N_("On demand"), N_("Never") }; // Declaration of internal functions. static void on_default_toggle_button_toggled (GtkToggleButton *togglebutton, gpointer user_data); static void on_default_spin_button_changed (GtkSpinButton *spinbutton, gpointer user_data); static void on_toolbar_show_behaviour_changed (GtkComboBox *combobox, gpointer user_data); static void on_font_selection_clicked (GtkButton *button, gpointer user_data); static void setup_widget_value (); // Function implementations. GtkWidget * create_setup_window () { static GtkWidget *window = 0; if (!window) { GtkWidget *page; GtkWidget *table; GtkWidget *frame; GtkWidget *vbox; GtkWidget *label; GtkWidget *hbox; #if GTK_CHECK_VERSION(2, 12, 0) #else __widget_tooltips = gtk_tooltips_new (); #endif // Create the vbox for the first page. page = gtk_vbox_new (FALSE, 0); gtk_widget_show (page); vbox = page; // Create the ToolBar setup block. frame = gtk_frame_new (_("ToolBar")); gtk_widget_show (frame); gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (frame), 4); table = gtk_table_new (4, 2, FALSE); gtk_widget_show (table); gtk_container_add (GTK_CONTAINER (frame), table); gtk_table_set_row_spacings (GTK_TABLE (table), 4); gtk_table_set_col_spacings (GTK_TABLE (table), 8); hbox = gtk_hbox_new (FALSE, 0); gtk_widget_show (hbox); gtk_table_attach (GTK_TABLE (table), hbox, 0, 1, 0, 1, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_EXPAND), 4, 0); label = gtk_label_new_with_mnemonic (_("_Show:")); gtk_widget_show (label); gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0); gtk_misc_set_padding (GTK_MISC (label), 4, 0); #if GTK_CHECK_VERSION(2, 24, 0) __widget_toolbar_show_behaviour = gtk_combo_box_text_new (); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (__widget_toolbar_show_behaviour), _(__toolbar_show_behaviour_text[SCIM_TOOLBAR_SHOW_ALWAYS])); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (__widget_toolbar_show_behaviour), _(__toolbar_show_behaviour_text[SCIM_TOOLBAR_SHOW_ON_DEMAND])); gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (__widget_toolbar_show_behaviour), _(__toolbar_show_behaviour_text[SCIM_TOOLBAR_SHOW_NEVER])); #else __widget_toolbar_show_behaviour = gtk_combo_box_new_text (); gtk_combo_box_append_text (GTK_COMBO_BOX (__widget_toolbar_show_behaviour), _(__toolbar_show_behaviour_text[SCIM_TOOLBAR_SHOW_ALWAYS])); gtk_combo_box_append_text (GTK_COMBO_BOX (__widget_toolbar_show_behaviour), _(__toolbar_show_behaviour_text[SCIM_TOOLBAR_SHOW_ON_DEMAND])); gtk_combo_box_append_text (GTK_COMBO_BOX (__widget_toolbar_show_behaviour), _(__toolbar_show_behaviour_text[SCIM_TOOLBAR_SHOW_NEVER])); #endif gtk_widget_show (__widget_toolbar_show_behaviour); gtk_box_pack_start (GTK_BOX (hbox), __widget_toolbar_show_behaviour, FALSE, FALSE, 0); gtk_label_set_mnemonic_widget (GTK_LABEL (label), __widget_toolbar_show_behaviour); __widget_toolbar_auto_snap = gtk_check_button_new_with_mnemonic (_("Auto s_nap")); gtk_widget_show (__widget_toolbar_auto_snap); gtk_table_attach (GTK_TABLE (table), __widget_toolbar_auto_snap, 0, 1, 1, 2, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_EXPAND), 4, 0); __widget_toolbar_show_factory_icon = gtk_check_button_new_with_mnemonic (_("Show _input method icon")); gtk_widget_show (__widget_toolbar_show_factory_icon); gtk_table_attach (GTK_TABLE (table), __widget_toolbar_show_factory_icon, 0, 1, 2, 3, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_EXPAND), 4, 0); __widget_toolbar_show_factory_name = gtk_check_button_new_with_mnemonic (_("Show inp_ut method name")); gtk_widget_show (__widget_toolbar_show_factory_name); gtk_table_attach (GTK_TABLE (table), __widget_toolbar_show_factory_name, 0, 1, 3, 4, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_EXPAND), 4, 0); hbox = gtk_hbox_new (FALSE, 0); gtk_widget_show (hbox); gtk_table_attach (GTK_TABLE (table), hbox, 1, 2, 0, 1, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_EXPAND), 4, 0); label = gtk_label_new_with_mnemonic (_("Hide time_out:")); gtk_widget_show (label); gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0); gtk_misc_set_padding (GTK_MISC (label), 4, 0); __widget_toolbar_hide_timeout = gtk_spin_button_new_with_range (0, 60, 1); gtk_widget_show (__widget_toolbar_hide_timeout); gtk_box_pack_start (GTK_BOX (hbox), __widget_toolbar_hide_timeout, FALSE, FALSE, 0); gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (__widget_toolbar_hide_timeout), TRUE); gtk_spin_button_set_snap_to_ticks (GTK_SPIN_BUTTON (__widget_toolbar_hide_timeout), TRUE); gtk_spin_button_set_digits (GTK_SPIN_BUTTON (__widget_toolbar_hide_timeout), 0); gtk_label_set_mnemonic_widget (GTK_LABEL (label), __widget_toolbar_hide_timeout); __widget_toolbar_show_stick_icon = gtk_check_button_new_with_mnemonic (_("Show s_tick icon")); gtk_widget_show (__widget_toolbar_show_stick_icon); gtk_table_attach (GTK_TABLE (table), __widget_toolbar_show_stick_icon, 1, 2, 1, 2, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_EXPAND), 4, 0); __widget_toolbar_show_menu_icon = gtk_check_button_new_with_mnemonic (_("Show m_enu icon")); gtk_widget_show (__widget_toolbar_show_menu_icon); gtk_table_attach (GTK_TABLE (table), __widget_toolbar_show_menu_icon, 1, 2, 2, 3, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_EXPAND), 4, 0); __widget_toolbar_show_help_icon = gtk_check_button_new_with_mnemonic (_("Show _help icon")); gtk_widget_show (__widget_toolbar_show_help_icon); gtk_table_attach (GTK_TABLE (table), __widget_toolbar_show_help_icon, 1, 2, 3, 4, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_EXPAND), 4, 0); __widget_toolbar_show_property_label = gtk_check_button_new_with_mnemonic (_("Show _property label")); gtk_widget_show (__widget_toolbar_show_property_label); gtk_table_attach (GTK_TABLE (table), __widget_toolbar_show_property_label, 0, 1, 4, 5, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_EXPAND), 4, 0); hbox = gtk_hbox_new (FALSE, 8); gtk_widget_show (hbox); gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); // Create the Input Window setup block frame = gtk_frame_new (_("Input window")); gtk_widget_show (frame); gtk_container_set_border_width (GTK_CONTAINER (frame), 4); gtk_box_pack_start (GTK_BOX (hbox), frame, TRUE, TRUE, 0); vbox = gtk_vbox_new (FALSE, 4); gtk_widget_show (vbox); gtk_container_add (GTK_CONTAINER (frame), vbox); __widget_lookup_table_embedded = gtk_check_button_new_with_mnemonic (_("E_mbedded lookup table")); gtk_widget_show (__widget_lookup_table_embedded); gtk_box_pack_start (GTK_BOX (vbox), __widget_lookup_table_embedded, FALSE, FALSE, 0); __widget_lookup_table_vertical = gtk_check_button_new_with_mnemonic (_("_Vertical lookup table")); gtk_widget_show (__widget_lookup_table_vertical); gtk_box_pack_start (GTK_BOX (vbox), __widget_lookup_table_vertical, FALSE, FALSE, 0); frame = gtk_frame_new (_("Misc")); gtk_widget_show (frame); gtk_container_set_border_width (GTK_CONTAINER (frame), 4); gtk_box_pack_start (GTK_BOX (hbox), frame, TRUE, TRUE, 0); vbox = gtk_vbox_new (FALSE, 4); gtk_widget_show (vbox); gtk_container_add (GTK_CONTAINER (frame), vbox); __widget_show_tray_icon = gtk_check_button_new_with_mnemonic (_("Show tra_y icon")); gtk_widget_show (__widget_show_tray_icon); gtk_box_pack_start (GTK_BOX (vbox), __widget_show_tray_icon, FALSE, FALSE, 0); __widget_default_sticked = gtk_check_button_new_with_mnemonic (_("Stick _windows")); gtk_widget_show (__widget_default_sticked); gtk_box_pack_start (GTK_BOX (vbox), __widget_default_sticked, FALSE, FALSE, 0); hbox = gtk_hbox_new (FALSE, 0); gtk_widget_show (hbox); gtk_box_pack_start (GTK_BOX (vbox), hbox, TRUE, TRUE, 0); label = gtk_label_new_with_mnemonic (_("_Font:")); gtk_widget_show (label); gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0); gtk_misc_set_padding (GTK_MISC (label), 4, 0); __widget_font = gtk_button_new_with_label ("default"); gtk_widget_show (__widget_font); gtk_container_set_border_width (GTK_CONTAINER (__widget_font), 4); gtk_box_pack_start (GTK_BOX (hbox), __widget_font, FALSE, FALSE, 0); gtk_label_set_mnemonic_widget (GTK_LABEL (label), __widget_font); // Connect all signals. g_signal_connect ((gpointer) __widget_toolbar_show_behaviour, "changed", G_CALLBACK (on_toolbar_show_behaviour_changed), NULL); g_signal_connect ((gpointer) __widget_toolbar_auto_snap, "toggled", G_CALLBACK (on_default_toggle_button_toggled), &__config_toolbar_auto_snap); g_signal_connect ((gpointer) __widget_toolbar_hide_timeout, "value_changed", G_CALLBACK (on_default_spin_button_changed), &__config_toolbar_hide_timeout); g_signal_connect ((gpointer) __widget_toolbar_show_factory_icon, "toggled", G_CALLBACK (on_default_toggle_button_toggled), &__config_toolbar_show_factory_icon); g_signal_connect ((gpointer) __widget_toolbar_show_factory_name, "toggled", G_CALLBACK (on_default_toggle_button_toggled), &__config_toolbar_show_factory_name); g_signal_connect ((gpointer) __widget_toolbar_show_stick_icon, "toggled", G_CALLBACK (on_default_toggle_button_toggled), &__config_toolbar_show_stick_icon); g_signal_connect ((gpointer) __widget_toolbar_show_menu_icon, "toggled", G_CALLBACK (on_default_toggle_button_toggled), &__config_toolbar_show_menu_icon); g_signal_connect ((gpointer) __widget_toolbar_show_help_icon, "toggled", G_CALLBACK (on_default_toggle_button_toggled), &__config_toolbar_show_help_icon); g_signal_connect ((gpointer) __widget_toolbar_show_property_label, "toggled", G_CALLBACK (on_default_toggle_button_toggled), &__config_toolbar_show_property_label); g_signal_connect ((gpointer) __widget_lookup_table_embedded, "toggled", G_CALLBACK (on_default_toggle_button_toggled), &__config_lookup_table_embedded); g_signal_connect ((gpointer) __widget_lookup_table_vertical, "toggled", G_CALLBACK (on_default_toggle_button_toggled), &__config_lookup_table_vertical); g_signal_connect ((gpointer) __widget_default_sticked, "toggled", G_CALLBACK (on_default_toggle_button_toggled), &__config_default_sticked); g_signal_connect ((gpointer) __widget_show_tray_icon, "toggled", G_CALLBACK (on_default_toggle_button_toggled), &__config_show_tray_icon); g_signal_connect ((gpointer) __widget_font, "clicked", G_CALLBACK (on_font_selection_clicked), NULL); // Set all tooltips. #if GTK_CHECK_VERSION(2, 12, 0) gtk_widget_set_tooltip_text (__widget_toolbar_show_behaviour, _("If option \"Always\" is selected, " "the toolbar will always be shown on the screen. " "If option \"On demand\" is selected, it will only be shown when SCIM " "is activated. " "If option \"Never\" is selected, it will never be shown.")); gtk_widget_set_tooltip_text (__widget_toolbar_auto_snap, _("If this option is checked, " "the toolbar will be snapped to " "the screen border.")); gtk_widget_set_tooltip_text (__widget_toolbar_hide_timeout, _("The toolbar will be hidden out after " "this timeout is elapsed. " "This option is only valid when " "\"Always show\" is selected. " "Set to zero to disable this behavior.")); gtk_widget_set_tooltip_text (__widget_toolbar_show_factory_icon, _("If this option is checked, " "the input method icon will be showed on the toolbar.")); gtk_widget_set_tooltip_text (__widget_toolbar_show_factory_name, _("If this option is checked, " "the input method name will be showed on the toolbar.")); gtk_widget_set_tooltip_text (__widget_toolbar_show_stick_icon, _("If this option is checked, " "the stick icon will be showed on the toolbar.")); gtk_widget_set_tooltip_text (__widget_toolbar_show_menu_icon, _("If this option is checked, " "the menu icon will be showed on the toolbar.")); gtk_widget_set_tooltip_text (__widget_toolbar_show_help_icon, _("If this option is checked, " "the help icon will be showed on the toolbar.")); gtk_widget_set_tooltip_text (__widget_toolbar_show_property_label, _("If this option is checked, " "the text label of input method properties will be showed on the toolbar.")); gtk_widget_set_tooltip_text (__widget_lookup_table_embedded, _("If this option is checked, " "the lookup table will be embedded into " "the input window.")); gtk_widget_set_tooltip_text (__widget_lookup_table_vertical, _("If this option is checked, " "the lookup table will be displayed " "vertically.")); gtk_widget_set_tooltip_text (__widget_show_tray_icon, _("If this option is checked, " "the tray icon will be showed on the desktop's taskbar.")); gtk_widget_set_tooltip_text (__widget_default_sticked, _("If this option is checked, " "the toolbar, input and lookup table " "windows will be sticked to " "its original position.")); gtk_widget_set_tooltip_text (__widget_font, _("The font setting will be used in " "the input and lookup table windows.")); #else gtk_tooltips_set_tip (__widget_tooltips, __widget_toolbar_show_behaviour, _("If option \"Always\" is selected, " "the toolbar will always be shown on the screen. " "If option \"On demand\" is selected, it will only be shown when SCIM " "is activated. " "If option \"Never\" is selected, it will never be shown."), NULL); gtk_tooltip_set_tip (__widget_tooltips, __widget_toolbar_auto_snap, _("If this option is checked, " "the toolbar will be snapped to " "the screen border.", NULL)); gtk_tooltip_set_tip (__widget_tooltips, __widget_toolbar_hide_timeout, _("The toolbar will be hidden out after " "this timeout is elapsed. " "This option is only valid when " "\"Always show\" is selected. " "Set to zero to disable this behavior.", NULL)); gtk_tooltip_set_tip (__widget_tooltips, __widget_toolbar_show_factory_icon, _("If this option is checked, " "the input method icon will be showed on the toolbar.", NULL)); gtk_tooltip_set_tip (__widget_tooltips, __widget_toolbar_show_factory_name, _("If this option is checked, " "the input method name will be showed on the toolbar.", NULL)); gtk_tooltip_set_tip (__widget_tooltips, __widget_toolbar_show_stick_icon, _("If this option is checked, " "the stick icon will be showed on the toolbar.", NULL)); gtk_tooltip_set_tip (__widget_tooltips, __widget_toolbar_show_menu_icon, _("If this option is checked, " "the menu icon will be showed on the toolbar.", NULL)); gtk_tooltip_set_tip (__widget_tooltips, __widget_toolbar_show_help_icon, _("If this option is checked, " "the help icon will be showed on the toolbar.", NULL)); gtk_tooltip_set_tip (__widget_tooltips, __widget_toolbar_show_property_label, _("If this option is checked, " "the text label of input method properties will be showed on the toolbar.", NULL)); gtk_tooltip_set_tip (__widget_tooltips, __widget_lookup_table_embedded, _("If this option is checked, " "the lookup table will be embedded into " "the input window.", NULL)); gtk_tooltip_set_tip (__widget_tooltips, __widget_lookup_table_vertical, _("If this option is checked, " "the lookup table will be displayed " "vertically.", NULL)); gtk_tooltip_set_tip (__widget_tooltips, __widget_show_tray_icon, _("If this option is checked, " "the tray icon will be showed on the desktop's taskbar.", NULL)); gtk_tooltip_set_tip (__widget_tooltips, __widget_default_sticked, _("If this option is checked, " "the toolbar, input and lookup table " "windows will be sticked to " "its original position.", NULL)); gtk_tooltip_set_tip (__widget_tooltips, __widget_font, _("The font setting will be used in " "the input and lookup table windows.", NULL)); #endif window = page; setup_widget_value (); } return window; } void setup_widget_value () { if (__widget_toolbar_show_behaviour) { if (__config_toolbar_always_hidden) { gtk_combo_box_set_active ( GTK_COMBO_BOX (__widget_toolbar_show_behaviour), SCIM_TOOLBAR_SHOW_NEVER); } else if (__config_toolbar_always_show) { gtk_combo_box_set_active ( GTK_COMBO_BOX (__widget_toolbar_show_behaviour), SCIM_TOOLBAR_SHOW_ALWAYS); } else { gtk_combo_box_set_active ( GTK_COMBO_BOX (__widget_toolbar_show_behaviour), SCIM_TOOLBAR_SHOW_ON_DEMAND); } } if (__widget_toolbar_auto_snap) { gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON (__widget_toolbar_auto_snap), __config_toolbar_auto_snap); } if (__widget_toolbar_hide_timeout) { gtk_spin_button_set_value ( GTK_SPIN_BUTTON (__widget_toolbar_hide_timeout), __config_toolbar_hide_timeout); gtk_widget_set_sensitive ( __widget_toolbar_hide_timeout, __config_toolbar_always_show); } if (__widget_toolbar_show_factory_icon) { gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON (__widget_toolbar_show_factory_icon), __config_toolbar_show_factory_icon); } if (__widget_toolbar_show_factory_name) { gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON (__widget_toolbar_show_factory_name), __config_toolbar_show_factory_name); } if (__widget_toolbar_show_stick_icon) { gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON (__widget_toolbar_show_stick_icon), __config_toolbar_show_stick_icon); } if (__widget_toolbar_show_menu_icon) { gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON (__widget_toolbar_show_menu_icon), __config_toolbar_show_menu_icon); } if (__widget_toolbar_show_help_icon) { gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON (__widget_toolbar_show_help_icon), __config_toolbar_show_help_icon); } if (__widget_toolbar_show_property_label) { gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON (__widget_toolbar_show_property_label), __config_toolbar_show_property_label); } if (__widget_lookup_table_embedded) { gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON (__widget_lookup_table_embedded), __config_lookup_table_embedded); } if (__widget_lookup_table_vertical) { gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON (__widget_lookup_table_vertical), __config_lookup_table_vertical); } if (__widget_default_sticked) { gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON (__widget_default_sticked), __config_default_sticked); } if (__widget_show_tray_icon) { gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON (__widget_show_tray_icon), __config_show_tray_icon); } if (__widget_font) { gtk_button_set_label ( GTK_BUTTON (__widget_font), __config_font.c_str ()); } } void load_config (const ConfigPointer &config) { if (!config.null ()) { __config_toolbar_always_hidden = config->read (String (SCIM_CONFIG_PANEL_GTK_TOOLBAR_ALWAYS_HIDDEN), __config_toolbar_always_hidden); __config_toolbar_always_show = config->read (String (SCIM_CONFIG_PANEL_GTK_TOOLBAR_ALWAYS_SHOW), __config_toolbar_always_show); __config_toolbar_auto_snap = config->read (String (SCIM_CONFIG_PANEL_GTK_TOOLBAR_AUTO_SNAP), __config_toolbar_auto_snap); __config_toolbar_hide_timeout = config->read (String (SCIM_CONFIG_PANEL_GTK_TOOLBAR_HIDE_TIMEOUT), __config_toolbar_hide_timeout); __config_toolbar_show_factory_icon = config->read (String (SCIM_CONFIG_PANEL_GTK_TOOLBAR_SHOW_FACTORY_ICON), __config_toolbar_show_factory_icon); __config_toolbar_show_factory_name = config->read (String (SCIM_CONFIG_PANEL_GTK_TOOLBAR_SHOW_FACTORY_NAME), __config_toolbar_show_factory_name); __config_toolbar_show_stick_icon = config->read (String (SCIM_CONFIG_PANEL_GTK_TOOLBAR_SHOW_STICK_ICON), __config_toolbar_show_stick_icon); __config_toolbar_show_menu_icon = config->read (String (SCIM_CONFIG_PANEL_GTK_TOOLBAR_SHOW_MENU_ICON), __config_toolbar_show_menu_icon); __config_toolbar_show_help_icon = config->read (String (SCIM_CONFIG_PANEL_GTK_TOOLBAR_SHOW_HELP_ICON), __config_toolbar_show_help_icon); __config_toolbar_show_property_label = config->read (String (SCIM_CONFIG_PANEL_GTK_TOOLBAR_SHOW_PROPERTY_LABEL), __config_toolbar_show_property_label); __config_lookup_table_embedded = config->read (String (SCIM_CONFIG_PANEL_GTK_LOOKUP_TABLE_EMBEDDED), __config_lookup_table_embedded); __config_lookup_table_vertical = config->read (String (SCIM_CONFIG_PANEL_GTK_LOOKUP_TABLE_VERTICAL), __config_lookup_table_vertical); __config_default_sticked = config->read (String (SCIM_CONFIG_PANEL_GTK_DEFAULT_STICKED), __config_default_sticked); __config_show_tray_icon = config->read (String (SCIM_CONFIG_PANEL_GTK_SHOW_TRAY_ICON), __config_show_tray_icon); __config_font = config->read (String (SCIM_CONFIG_PANEL_GTK_FONT), __config_font); setup_widget_value (); __have_changed = false; } } void save_config (const ConfigPointer &config) { if (!config.null ()) { config->write (String (SCIM_CONFIG_PANEL_GTK_TOOLBAR_ALWAYS_HIDDEN), __config_toolbar_always_hidden); config->write (String (SCIM_CONFIG_PANEL_GTK_TOOLBAR_ALWAYS_SHOW), __config_toolbar_always_show); config->write (String (SCIM_CONFIG_PANEL_GTK_TOOLBAR_AUTO_SNAP), __config_toolbar_auto_snap); config->write (String (SCIM_CONFIG_PANEL_GTK_TOOLBAR_HIDE_TIMEOUT), __config_toolbar_hide_timeout); config->write (String (SCIM_CONFIG_PANEL_GTK_TOOLBAR_SHOW_FACTORY_ICON), __config_toolbar_show_factory_icon); config->write (String (SCIM_CONFIG_PANEL_GTK_TOOLBAR_SHOW_FACTORY_NAME), __config_toolbar_show_factory_name); config->write (String (SCIM_CONFIG_PANEL_GTK_TOOLBAR_SHOW_STICK_ICON), __config_toolbar_show_stick_icon); config->write (String (SCIM_CONFIG_PANEL_GTK_TOOLBAR_SHOW_MENU_ICON), __config_toolbar_show_menu_icon); config->write (String (SCIM_CONFIG_PANEL_GTK_TOOLBAR_SHOW_HELP_ICON), __config_toolbar_show_help_icon); config->write (String (SCIM_CONFIG_PANEL_GTK_TOOLBAR_SHOW_PROPERTY_LABEL), __config_toolbar_show_property_label); config->write (String (SCIM_CONFIG_PANEL_GTK_LOOKUP_TABLE_EMBEDDED), __config_lookup_table_embedded); config->write (String (SCIM_CONFIG_PANEL_GTK_LOOKUP_TABLE_VERTICAL), __config_lookup_table_vertical); config->write (String (SCIM_CONFIG_PANEL_GTK_SHOW_TRAY_ICON), __config_show_tray_icon); config->write (String (SCIM_CONFIG_PANEL_GTK_DEFAULT_STICKED), __config_default_sticked); config->write (String (SCIM_CONFIG_PANEL_GTK_FONT), __config_font); __have_changed = false; } } bool query_changed () { return __have_changed; } static void on_default_spin_button_changed (GtkSpinButton *spinbutton, gpointer user_data) { int *value = static_cast (user_data); if (value) { *value = gtk_spin_button_get_value_as_int (spinbutton); __have_changed = true; } } static void on_default_toggle_button_toggled (GtkToggleButton *togglebutton, gpointer user_data) { bool *toggle = static_cast (user_data); if (toggle) { *toggle = gtk_toggle_button_get_active (togglebutton); __have_changed = true; } } static void on_toolbar_show_behaviour_changed (GtkComboBox *combobox, gpointer user_data) { gint active; active = gtk_combo_box_get_active (combobox); switch (active) { case SCIM_TOOLBAR_SHOW_ALWAYS: __config_toolbar_always_show = true; __config_toolbar_always_hidden = false; break; case SCIM_TOOLBAR_SHOW_ON_DEMAND: __config_toolbar_always_show = false; __config_toolbar_always_hidden = false; break; case SCIM_TOOLBAR_SHOW_NEVER: __config_toolbar_always_show = false; __config_toolbar_always_hidden = true; break; default: __config_toolbar_always_show = true; __config_toolbar_always_hidden = false; break; } if (__widget_toolbar_hide_timeout) { gtk_widget_set_sensitive ( __widget_toolbar_hide_timeout, !__config_toolbar_always_hidden && __config_toolbar_always_show); } if (__widget_toolbar_auto_snap) { gtk_widget_set_sensitive ( __widget_toolbar_auto_snap, !__config_toolbar_always_hidden); } if (__widget_toolbar_show_factory_icon) { gtk_widget_set_sensitive ( __widget_toolbar_show_factory_icon, !__config_toolbar_always_hidden); } if (__widget_toolbar_show_factory_name) { gtk_widget_set_sensitive ( __widget_toolbar_show_factory_name, !__config_toolbar_always_hidden); } if (__widget_toolbar_show_stick_icon) { gtk_widget_set_sensitive ( __widget_toolbar_show_stick_icon, !__config_toolbar_always_hidden); } if (__widget_toolbar_show_menu_icon) { gtk_widget_set_sensitive ( __widget_toolbar_show_menu_icon, !__config_toolbar_always_hidden); } if (__widget_toolbar_show_help_icon) { gtk_widget_set_sensitive ( __widget_toolbar_show_help_icon, !__config_toolbar_always_hidden); } if (__widget_toolbar_show_property_label) { gtk_widget_set_sensitive ( __widget_toolbar_show_property_label, !__config_toolbar_always_hidden); } __have_changed = true; } static void on_font_selection_clicked (GtkButton *button, gpointer user_data) { GtkWidget *font_selection = gtk_font_selection_dialog_new (_("Select Interface Font")); gint result; if (__config_font != "default") { gtk_font_selection_dialog_set_font_name ( GTK_FONT_SELECTION_DIALOG (font_selection), __config_font.c_str ()); } result = gtk_dialog_run (GTK_DIALOG (font_selection)); if (result == GTK_RESPONSE_OK) { __config_font = String ( gtk_font_selection_dialog_get_font_name ( GTK_FONT_SELECTION_DIALOG (font_selection))); gtk_button_set_label ( GTK_BUTTON (__widget_font), __config_font.c_str ()); __have_changed = true; } gtk_widget_destroy (font_selection); } /* vi:ts=4:nowrap:expandtab */ scim-1.4.14/po/000077500000000000000000000000001177210725600131625ustar00rootroot00000000000000scim-1.4.14/po/Makefile.in.in000066400000000000000000000153771177210725600156510ustar00rootroot00000000000000# Makefile for program source directory in GNU NLS utilities package. # Copyright (C) 1995, 1996, 1997 by Ulrich Drepper # Copyright (C) 2004-2008 Rodney Dawes # # This file may be copied and used freely without restrictions. It may # be used in projects which are not available under a GNU Public License, # but which still want to provide support for the GNU gettext functionality. # # - Modified by Owen Taylor to use GETTEXT_PACKAGE # instead of PACKAGE and to look for po2tbl in ./ not in intl/ # # - Modified by jacob berkman to install # Makefile.in.in and po2tbl.sed.in for use with glib-gettextize # # - Modified by Rodney Dawes for use with intltool # # We have the following line for use by intltoolize: # INTLTOOL_MAKEFILE GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ PACKAGE = @PACKAGE@ VERSION = @VERSION@ SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ top_builddir = @top_builddir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ datadir = @datadir@ datarootdir = @datarootdir@ libdir = @libdir@ DATADIRNAME = @DATADIRNAME@ itlocaledir = $(prefix)/$(DATADIRNAME)/locale subdir = po install_sh = @install_sh@ # Automake >= 1.8 provides @mkdir_p@. # Until it can be supposed, use the safe fallback: mkdir_p = $(install_sh) -d INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ GMSGFMT = @GMSGFMT@ MSGFMT = @MSGFMT@ XGETTEXT = @XGETTEXT@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ MSGMERGE = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist GENPOT = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot ALL_LINGUAS = @ALL_LINGUAS@ PO_LINGUAS=$(shell if test -r $(srcdir)/LINGUAS; then grep -v "^\#" $(srcdir)/LINGUAS; else echo "$(ALL_LINGUAS)"; fi) USER_LINGUAS=$(shell if test -n "$(LINGUAS)"; then LLINGUAS="$(LINGUAS)"; ALINGUAS="$(ALL_LINGUAS)"; for lang in $$LLINGUAS; do if test -n "`grep \^$$lang$$ $(srcdir)/LINGUAS 2>/dev/null`" -o -n "`echo $$ALINGUAS|tr ' ' '\n'|grep \^$$lang$$`"; then printf "$$lang "; fi; done; fi) USE_LINGUAS=$(shell if test -n "$(USER_LINGUAS)" -o -n "$(LINGUAS)"; then LLINGUAS="$(USER_LINGUAS)"; else if test -n "$(PO_LINGUAS)"; then LLINGUAS="$(PO_LINGUAS)"; else LLINGUAS="$(ALL_LINGUAS)"; fi; fi; for lang in $$LLINGUAS; do printf "$$lang "; done) POFILES=$(shell LINGUAS="$(PO_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.po "; done) DISTFILES = Makefile.in.in POTFILES.in $(POFILES) EXTRA_DISTFILES = ChangeLog POTFILES.skip Makevars LINGUAS POTFILES = \ # This comment gets stripped out CATALOGS=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.gmo "; done) .SUFFIXES: .SUFFIXES: .po .pox .gmo .mo .msg .cat .po.pox: $(MAKE) $(GETTEXT_PACKAGE).pot $(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox .po.mo: $(MSGFMT) -o $@ $< .po.gmo: file=`echo $* | sed 's,.*/,,'`.gmo \ && rm -f $$file && $(GMSGFMT) -o $$file $< .po.cat: sed -f ../intl/po2msg.sed < $< > $*.msg \ && rm -f $@ && gencat $@ $*.msg all: all-@USE_NLS@ all-yes: $(CATALOGS) all-no: $(GETTEXT_PACKAGE).pot: $(POTFILES) $(GENPOT) install: install-data install-data: install-data-@USE_NLS@ install-data-no: all install-data-yes: all linguas="$(USE_LINGUAS)"; \ for lang in $$linguas; do \ dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \ $(mkdir_p) $$dir; \ if test -r $$lang.gmo; then \ $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ echo "installing $$lang.gmo as $$dir/$(GETTEXT_PACKAGE).mo"; \ else \ $(INSTALL_DATA) $(srcdir)/$$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ echo "installing $(srcdir)/$$lang.gmo as" \ "$$dir/$(GETTEXT_PACKAGE).mo"; \ fi; \ if test -r $$lang.gmo.m; then \ $(INSTALL_DATA) $$lang.gmo.m $$dir/$(GETTEXT_PACKAGE).mo.m; \ echo "installing $$lang.gmo.m as $$dir/$(GETTEXT_PACKAGE).mo.m"; \ else \ if test -r $(srcdir)/$$lang.gmo.m ; then \ $(INSTALL_DATA) $(srcdir)/$$lang.gmo.m \ $$dir/$(GETTEXT_PACKAGE).mo.m; \ echo "installing $(srcdir)/$$lang.gmo.m as" \ "$$dir/$(GETTEXT_PACKAGE).mo.m"; \ else \ true; \ fi; \ fi; \ done # Empty stubs to satisfy archaic automake needs dvi info ctags tags CTAGS TAGS ID: # Define this as empty until I found a useful application. install-exec installcheck: uninstall: linguas="$(USE_LINGUAS)"; \ for lang in $$linguas; do \ rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ done check: all $(GETTEXT_PACKAGE).pot rm -f missing notexist srcdir=$(srcdir) $(INTLTOOL_UPDATE) -m if [ -r missing -o -r notexist ]; then \ exit 1; \ fi mostlyclean: rm -f *.pox $(GETTEXT_PACKAGE).pot *.old.po cat-id-tbl.tmp rm -f .intltool-merge-cache clean: mostlyclean distclean: clean rm -f Makefile Makefile.in POTFILES stamp-it rm -f *.mo *.msg *.cat *.cat.m *.gmo maintainer-clean: distclean @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." rm -f Makefile.in.in distdir = ../$(PACKAGE)-$(VERSION)/$(subdir) dist distdir: $(DISTFILES) dists="$(DISTFILES)"; \ extra_dists="$(EXTRA_DISTFILES)"; \ for file in $$extra_dists; do \ test -f $(srcdir)/$$file && dists="$$dists $(srcdir)/$$file"; \ done; \ for file in $$dists; do \ test -f $$file || file="$(srcdir)/$$file"; \ ln $$file $(distdir) 2> /dev/null \ || cp -p $$file $(distdir); \ done update-po: Makefile $(MAKE) $(GETTEXT_PACKAGE).pot tmpdir=`pwd`; \ linguas="$(USE_LINGUAS)"; \ for lang in $$linguas; do \ echo "$$lang:"; \ result="`$(MSGMERGE) -o $$tmpdir/$$lang.new.po $$lang`"; \ if $$result; then \ if cmp $(srcdir)/$$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ rm -f $$tmpdir/$$lang.new.po; \ else \ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ :; \ else \ echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ rm -f $$tmpdir/$$lang.new.po; \ exit 1; \ fi; \ fi; \ else \ echo "msgmerge for $$lang.gmo failed!"; \ rm -f $$tmpdir/$$lang.new.po; \ fi; \ done Makefile POTFILES: stamp-it @if test ! -f $@; then \ rm -f stamp-it; \ $(MAKE) stamp-it; \ fi stamp-it: Makefile.in.in $(top_builddir)/config.status POTFILES.in cd $(top_builddir) \ && CONFIG_FILES=$(subdir)/Makefile.in CONFIG_HEADERS= CONFIG_LINKS= \ $(SHELL) ./config.status # Tell versions [3.59,3.63) of GNU make not to export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: scim-1.4.14/po/Makevars000066400000000000000000000034751177210725600146670ustar00rootroot00000000000000# Makefile variables for PO directory in any package using GNU gettext. # Usually the message domain is the same as the package name. DOMAIN = $(GETTEXT_PACKAGE) # These two variables depend on the location of this directory. subdir = po top_builddir = .. # These options get passed to xgettext. XGETTEXT_OPTIONS = --keyword=_ --keyword=N_ # This is the copyright holder that gets inserted into the header of the # $(DOMAIN).pot file. Set this to the copyright holder of the surrounding # package. (Note that the msgstr strings, extracted from the package's # sources, belong to the copyright holder of the package.) Translators are # expected to transfer the copyright for their translations to this person # or entity, or to disclaim their copyright. The empty string stands for # the public domain; in this case the translators are expected to disclaim # their copyright. COPYRIGHT_HOLDER = James Su # This is the email address or URL to which the translators shall report # bugs in the untranslated strings: # - Strings which are not entire sentences, see the maintainer guidelines # in the GNU gettext documentation, section 'Preparing Strings'. # - Strings which use unclear terms or require additional context to be # understood. # - Strings which make invalid assumptions about notation of date, time or # money. # - Pluralisation problems. # - Incorrect English spelling. # - Incorrect formatting. # It can be your email address, or a mailing list address where translators # can write to without being subscribed, or the URL of a web page through # which the translators can contact you. MSGID_BUGS_ADDRESS = http://sourceforge.net/projects/scim # This is the list of locale categories, beyond LC_MESSAGES, for which the # message catalogs shall be used. It is usually empty. EXTRA_LOCALE_CATEGORIES = scim-1.4.14/po/POTFILES.in000066400000000000000000000033271177210725600147440ustar00rootroot00000000000000extras/gtk_immodule/gtkimcontextscim.cpp extras/gtk_immodule/imscim.cpp extras/panel/scim_panel_gtk.cpp extras/setup/scim-setup.desktop.in extras/setup/scim_setup_helper.cpp extras/setup/scim_setup_module.cpp extras/setup/scim_setup_ui.cpp modules/Config/scim_simple_config.cpp modules/Config/scim_socket_config.cpp modules/Filter/scim_sctc_filter.cpp modules/FrontEnd/scim_socket_frontend.cpp modules/FrontEnd/scim_x11_frontend.cpp modules/FrontEnd/scim_x11_ic.cpp modules/IMEngine/scim_rawcode_imengine.cpp modules/IMEngine/scim_socket_imengine.cpp modules/SetupUI/scim_frontend_setup.cpp modules/SetupUI/scim_imengine_setup.cpp modules/SetupUI/scim_panel_gtk_setup.cpp src/scim_backend.cpp src/scim_chartraits.cpp src/scim_compose_key.cpp src/scim_config_agent.cpp src/scim_config_base.cpp src/scim_config_module.cpp src/scim_connection.cpp src/scim.cpp src/scim_debug.cpp src/scim_event.cpp src/scim_filter.cpp src/scim_filter_manager.cpp src/scim_filter_module.cpp src/scim_frontend.cpp src/scim_frontend_module.cpp src/scim_global_config.cpp src/scim_helper.cpp src/scim_helper_launcher.cpp src/scim_helper_manager.cpp src/scim_helper_manager_server.cpp src/scim_helper_module.cpp src/scim_hotkey.cpp src/scim_iconv.cpp src/scim_imengine.cpp src/scim_imengine_module.cpp src/scim_keyboard_layout_data.h src/scim_keyevent_data.h src/scim_launcher.cpp src/scim_lookup_table.cpp src/scim_module.cpp src/scim_object.cpp src/scim_panel_agent.cpp src/scim_panel_client.cpp src/scim_private.cpp src/scim_signals.cpp src/scim_slot.cpp src/scim_socket.cpp src/scim_transaction.cpp src/scim_utility.cpp tests/scim_test_helper.cpp tests/scim_test_imengine.cpp utils/scimkeyselection.cpp utils/scimstringview.c utils/scimtrayicon.c utils/scim_x11_utils.cpp scim-1.4.14/po/as.po000066400000000000000000001334571177210725600141420ustar00rootroot00000000000000# translation of as.po to Assamese # Assamese translations for PACKAGE package. # Copyright (C) 2008 THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Automatically generated, 2008. # Amitakhya Phukan , 2008. msgid "" msgstr "" "Project-Id-Version: as\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-06-22 11:40-0700\n" "PO-Revision-Date: 2008-03-27 12:49+0530\n" "Last-Translator: Amitakhya Phukan \n" "Language-Team: Assamese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=2; plural=(n!=1)\n" #: ../src/scim_compose_key.cpp:126 msgid "English/European" msgstr "ইংৰাজী/ইউৰà§à¦ªà§€à§Ÿ" #. Append an entry for forward mode. #: ../src/scim_imengine.cpp:638 ../src/scim_utility.cpp:693 #: ../modules/FrontEnd/scim_x11_frontend.cpp:1897 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1281 #: ../extras/panel/scim_panel_gtk.cpp:2814 msgid "English/Keyboard" msgstr "ইংৰাজী/চাবিৰ ফলক" #: ../src/scim_utility.cpp:694 msgid "Amharic" msgstr "আমহাৰিক" #: ../src/scim_utility.cpp:695 msgid "Arabic" msgstr "আৰবীয়" #: ../src/scim_utility.cpp:696 msgid "Arabic (Egypt)" msgstr "আৰবীয় (ইজিপà§à¦¤)" #: ../src/scim_utility.cpp:697 msgid "Arabic (Lebanon)" msgstr "আৰবীয় (লেবানন)" #: ../src/scim_utility.cpp:698 msgid "Assamese" msgstr "অসমীয়া" #: ../src/scim_utility.cpp:699 msgid "Azerbaijani" msgstr "আজাৰবেইজানি" #: ../src/scim_utility.cpp:700 msgid "Belarusian" msgstr "বেলাৰà§à¦šà§€à§Ÿ" #: ../src/scim_utility.cpp:701 msgid "Bulgarian" msgstr "বà§à¦²à§à¦—াৰিয়ান" #: ../src/scim_utility.cpp:702 ../src/scim_utility.cpp:703 msgid "Bengali" msgstr "বঙালী" #: ../src/scim_utility.cpp:704 msgid "Bengali (India)" msgstr "বঙালী (ভাৰত)" #: ../src/scim_utility.cpp:705 msgid "Tibetan" msgstr "তিবà§à¦¬à¦¤à§€à§Ÿ" #: ../src/scim_utility.cpp:706 msgid "Bosnian" msgstr "বোচà§à¦¨à¦¿à§Ÿà¦¾à¦¨" #: ../src/scim_utility.cpp:707 msgid "Catalan" msgstr "কেটেলান" #: ../src/scim_utility.cpp:708 ../src/scim_keyboard_layout_data.h:4595 msgid "Czech" msgstr "ছেক" #: ../src/scim_utility.cpp:709 msgid "Welsh" msgstr "ৱেলà§â€Œà¦›" #: ../src/scim_utility.cpp:710 ../src/scim_keyboard_layout_data.h:4597 msgid "Danish" msgstr "ডেনিশà§à¦¬" #: ../src/scim_utility.cpp:711 ../src/scim_keyboard_layout_data.h:4605 msgid "German" msgstr "জাৰà§à¦®à¦¾à¦¨" #: ../src/scim_utility.cpp:712 msgid "Divehi" msgstr "ডিৱেহি" #: ../src/scim_utility.cpp:713 ../src/scim_keyboard_layout_data.h:4608 msgid "Greek" msgstr "গà§à§°à§€à¦•" #: ../src/scim_utility.cpp:714 msgid "English" msgstr "ইংৰাজী" #: ../src/scim_utility.cpp:715 msgid "English (Australian)" msgstr "ইংৰাজী (অসà§à¦Ÿà§à§°à§‡à¦²à¦¿à§Ÿà¦¾à¦¨)" #: ../src/scim_utility.cpp:716 msgid "English (Canadian)" msgstr "ইংৰাজী (কানাডিয়ান)" #: ../src/scim_utility.cpp:717 msgid "English (British)" msgstr "ইংৰাজী (বà§à§°à¦¿à¦Ÿà¦¿à¦¶à§à¦¬)" #: ../src/scim_utility.cpp:718 msgid "English (Ireland)" msgstr "ইংৰাজী (আয়াৰলেনà§à¦¡)" #: ../src/scim_utility.cpp:719 msgid "English (American)" msgstr "ইংৰাজী (অà§à¦¯à¦¾à¦®à§‡à§°à¦¿à¦•ান)" #: ../src/scim_utility.cpp:720 ../src/scim_utility.cpp:721 #: ../src/scim_keyboard_layout_data.h:4621 msgid "Spanish" msgstr "সà§à¦ªà§‡à¦¨à¦¿à¦¶à§à¦¬" #: ../src/scim_utility.cpp:722 msgid "Spanish (Mexico)" msgstr "সà§à¦ªà§‡à¦¨à¦¿à¦¶à§à¦¬ (মেকà§à¦¸à¦¿à¦•à§‹)" #: ../src/scim_utility.cpp:723 ../src/scim_keyboard_layout_data.h:4600 msgid "Estonian" msgstr "à¦à¦¸à§à¦Ÿà§‹à¦¨à¦¿à§Ÿà¦¾à¦¨" #: ../src/scim_utility.cpp:724 msgid "Basque" msgstr "বাসà§à¦•" #: ../src/scim_utility.cpp:725 msgid "Persian" msgstr "পাৰà§à¦šà¦¿à§Ÿà¦¾à¦¨" #: ../src/scim_utility.cpp:726 ../src/scim_keyboard_layout_data.h:4601 msgid "Finnish" msgstr "ফিনিশà§à¦¬" #: ../src/scim_utility.cpp:727 ../src/scim_keyboard_layout_data.h:4602 msgid "French" msgstr "ফৰাচী" #: ../src/scim_utility.cpp:728 msgid "Irish" msgstr "আইৰিশà§à¦¬" #: ../src/scim_utility.cpp:729 msgid "Galician" msgstr "গেলিচিয়ান" #: ../src/scim_utility.cpp:730 msgid "Gujarati" msgstr "গà§à¦œà§à§°à¦¾à¦Ÿà¦¿" #: ../src/scim_utility.cpp:731 ../src/scim_utility.cpp:740 msgid "Hebrew" msgstr "হিবà§à§°à¦¿à¦‰" #: ../src/scim_utility.cpp:732 msgid "Hindi" msgstr "হিনà§à¦¦à§€" #: ../src/scim_utility.cpp:733 ../src/scim_keyboard_layout_data.h:4594 msgid "Croatian" msgstr "কà§à§°à§‹à§Ÿà§‡à¦šà¦¿à§Ÿà¦¾à¦¨" #: ../src/scim_utility.cpp:734 ../src/scim_keyboard_layout_data.h:4609 msgid "Hungarian" msgstr "হাঙà§à¦—েৰিয়ান" #: ../src/scim_utility.cpp:735 msgid "Armenian" msgstr "আৰà§à¦®à§‡à¦¨à¦¿à§Ÿà¦¾à¦¨" #: ../src/scim_utility.cpp:736 msgid "Interlingua" msgstr "ইনà§à¦Ÿà¦¾à§°à¦²à¦¿à¦™à§à¦—à§à§±à¦¾" #: ../src/scim_utility.cpp:737 msgid "Indonesian" msgstr "ইনà§à¦¡à§‹à¦¨à§‡à¦šà¦¿à§Ÿà¦¾à¦¨" #: ../src/scim_utility.cpp:738 ../src/scim_keyboard_layout_data.h:4627 msgid "Icelandic" msgstr "আইচà§â€Œà¦²à§‡à¦£à§à¦¡à¦¿à¦•" #: ../src/scim_utility.cpp:739 ../src/scim_keyboard_layout_data.h:4610 msgid "Italian" msgstr "ইটালিয়ান" #: ../src/scim_utility.cpp:741 ../src/scim_keyboard_layout_data.h:4611 msgid "Japanese" msgstr "জাপানী" #: ../src/scim_utility.cpp:742 msgid "Georgian" msgstr "জৰà§à¦œà¦¿à§Ÿà¦¾à¦¨" #: ../src/scim_utility.cpp:743 msgid "Kazakh" msgstr "কাজাখ" #: ../src/scim_utility.cpp:744 msgid "Cambodian" msgstr "কেমà§à¦¬à§‹à¦¦à¦¿à§Ÿà¦¾à¦¨" #: ../src/scim_utility.cpp:745 msgid "Kannada" msgstr "কনà§à¦¨à§œ" #: ../src/scim_utility.cpp:746 msgid "Korean" msgstr "ক'ৰীয়ান" #: ../src/scim_utility.cpp:747 msgid "Laothian" msgstr "লাওথিয়ান" #: ../src/scim_utility.cpp:748 ../src/scim_keyboard_layout_data.h:4628 msgid "Lithuanian" msgstr "লিথà§à§±à§‡à¦¨à¦¿à§Ÿà¦¾à¦¨" #: ../src/scim_utility.cpp:749 msgid "Latvian" msgstr "লাটà§â€Œà¦­à¦¿à§Ÿà¦¾à¦¨" #: ../src/scim_utility.cpp:750 msgid "Macedonian" msgstr "মেছিডোনিয়ান" #: ../src/scim_utility.cpp:751 msgid "Malayalam" msgstr "মলয়ালম" #: ../src/scim_utility.cpp:752 msgid "Mongolian" msgstr "মঙà§à¦—োলিয়ান" #: ../src/scim_utility.cpp:753 msgid "Marathi" msgstr "মৰাঠি" #: ../src/scim_utility.cpp:754 msgid "Malay" msgstr "মলয়" #: ../src/scim_utility.cpp:755 msgid "Burmese" msgstr "বাৰà§à¦®à¦¿à¦›" #: ../src/scim_utility.cpp:756 msgid "Nepali" msgstr "নেপালি" #: ../src/scim_utility.cpp:757 ../src/scim_keyboard_layout_data.h:4598 msgid "Dutch" msgstr "ডাচà§" #: ../src/scim_utility.cpp:758 msgid "Norwegian (nynorsk)" msgstr "নৰৱেজিয়ান (নিনৰà§à¦¸à§à¦•)" #: ../src/scim_utility.cpp:759 msgid "Norwegian (bokmal)" msgstr "নৰৱেজিয়ান (বকমল)" #: ../src/scim_utility.cpp:760 msgid "Oriya" msgstr "ওৰীয়" #: ../src/scim_utility.cpp:761 msgid "Punjabi" msgstr "পাঞà§à¦œà¦¾à¦¬à¦¿" #: ../src/scim_utility.cpp:762 ../src/scim_keyboard_layout_data.h:4613 msgid "Polish" msgstr "পোলিশ" #: ../src/scim_utility.cpp:763 ../src/scim_utility.cpp:765 #: ../src/scim_keyboard_layout_data.h:4614 msgid "Portuguese" msgstr "প'à§°à§à¦Ÿà§à¦—ীছ" #: ../src/scim_utility.cpp:764 ../src/scim_keyboard_layout_data.h:4615 msgid "Portuguese (Brazil)" msgstr "প'à§°à§à¦Ÿà§à¦—ীছ (বà§à§°à¦¾à¦œà¦¿à¦²)" #: ../src/scim_utility.cpp:766 msgid "Romanian" msgstr "ৰোমানিয়ান" #: ../src/scim_utility.cpp:767 ../src/scim_keyboard_layout_data.h:4617 msgid "Russian" msgstr "à§°à§à¦šà§€à§Ÿ" #: ../src/scim_utility.cpp:768 msgid "Sinhala" msgstr "ছিংহালা" #: ../src/scim_utility.cpp:769 ../src/scim_keyboard_layout_data.h:4618 msgid "Slovak" msgstr "সà§à¦²'ভাক" #: ../src/scim_utility.cpp:770 ../src/scim_keyboard_layout_data.h:4620 msgid "Slovenian" msgstr "সà§à¦²à§‹à¦­à§‡à¦¨à¦¿à§Ÿà¦¾à¦¨" #: ../src/scim_utility.cpp:771 msgid "Albanian" msgstr "আলà§à¦¬à¦¾à¦¨à¦¿à§Ÿà¦¾à¦¨" #: ../src/scim_utility.cpp:772 ../src/scim_utility.cpp:773 #: ../src/scim_utility.cpp:774 msgid "Serbian" msgstr "ছাৰà§à¦¬à¦¿à§Ÿà¦¾à¦¨" #: ../src/scim_utility.cpp:775 ../src/scim_utility.cpp:777 #: ../src/scim_keyboard_layout_data.h:4624 msgid "Swedish" msgstr "ছà§à¦‡à¦¡à¦¿à¦¶" #: ../src/scim_utility.cpp:776 msgid "Swedish (Finland)" msgstr "ছà§à¦‡à¦¡à¦¿à¦¶ (ফিনলেনà§à¦¡)" #: ../src/scim_utility.cpp:778 msgid "Tamil" msgstr "টামিল" #: ../src/scim_utility.cpp:779 msgid "Telugu" msgstr "তেলà§à¦—à§" #: ../src/scim_utility.cpp:780 msgid "Thai" msgstr "থাই" #: ../src/scim_utility.cpp:781 ../src/scim_keyboard_layout_data.h:4625 msgid "Turkish" msgstr "টà§à§°à¦¸à§à¦•ীয়" #: ../src/scim_utility.cpp:782 msgid "Uighur" msgstr "উইঘà§à§°" #: ../src/scim_utility.cpp:783 ../src/scim_keyboard_layout_data.h:4629 msgid "Ukrainian" msgstr "উকà§à§°à§‡à¦‡à¦¨à¦¿à§Ÿà¦¾à¦¨" #: ../src/scim_utility.cpp:784 msgid "Urdu" msgstr "উৰà§à¦¦à§" #: ../src/scim_utility.cpp:785 msgid "Uzbek" msgstr "উজà§à¦¬à§‡à¦•" #: ../src/scim_utility.cpp:786 msgid "Vietnamese" msgstr "ভিয়েটনামীয়" #: ../src/scim_utility.cpp:787 msgid "Walloon" msgstr "ৱেলà§à¦¨" #: ../src/scim_utility.cpp:788 ../src/scim_utility.cpp:789 msgid "Yiddish" msgstr "য়িদà§à¦¦à¦¿à¦¶à§à¦¬" #: ../src/scim_utility.cpp:790 msgid "Chinese" msgstr "চীনা" #: ../src/scim_utility.cpp:791 ../src/scim_utility.cpp:793 msgid "Chinese (simplified)" msgstr "চীনা (সৰল)" #: ../src/scim_utility.cpp:792 ../src/scim_utility.cpp:794 msgid "Chinese (traditional)" msgstr "চীনা (পাৰমà§à¦ªà§°à¦¿à¦•)" #: ../src/scim_utility.cpp:876 msgid "Other" msgstr "অনà§à¦¯" #: ../src/scim_keyboard_layout_data.h:4591 #: ../modules/IMEngine/scim_socket_imengine.cpp:386 #: ../modules/IMEngine/scim_socket_imengine.cpp:416 #: ../modules/IMEngine/scim_socket_imengine.cpp:501 #: ../modules/IMEngine/scim_socket_imengine.cpp:531 #: ../modules/IMEngine/scim_socket_imengine.cpp:561 msgid "Unknown" msgstr "অজà§à¦žà¦¾à¦¤" #: ../src/scim_keyboard_layout_data.h:4592 msgid "English (US)" msgstr "ইংৰাজী (US)" #: ../src/scim_keyboard_layout_data.h:4593 msgid "Belgian" msgstr "বেলজিয়ান" #: ../src/scim_keyboard_layout_data.h:4596 msgid "Czech (qwerty)" msgstr "ছেক (qwerty)" #: ../src/scim_keyboard_layout_data.h:4599 msgid "Dvorak" msgstr "ভ'ৰাক" #: ../src/scim_keyboard_layout_data.h:4603 msgid "French (Canadian)" msgstr "ফৰাচী (কানাডিয়ান)" #: ../src/scim_keyboard_layout_data.h:4604 msgid "French (Switzerland)" msgstr "ফৰাচী (ছà§à¦‡à§Žà¦œà¦¾à§°à§à¦²à§‡à¦¨à§à¦¡)" #: ../src/scim_keyboard_layout_data.h:4606 msgid "German (with deadkeys)" msgstr "জাৰà§à¦®à¦¾à¦¨ (deadkeys à§° সৈতে)" #: ../src/scim_keyboard_layout_data.h:4607 msgid "German (Swiss)" msgstr "জাৰà§à¦®à¦¾à¦¨ (ছà§à¦‡à¦›)" #: ../src/scim_keyboard_layout_data.h:4612 msgid "Norwegian" msgstr "নৰৱেজিয়ান" #: ../src/scim_keyboard_layout_data.h:4616 msgid "Portuguese (Brazil US accents)" msgstr "প'à§°à§à¦Ÿà§à¦—ীছ (বà§à§°à¦¾à¦œà¦¿à¦² US সà§à¦¬à§°à¦­à¦™à§à¦—ি)" #: ../src/scim_keyboard_layout_data.h:4619 msgid "Slovak (qwerty)" msgstr "সà§à¦²'ভাক (qwerty)" #: ../src/scim_keyboard_layout_data.h:4622 msgid "Spanish (CP 850)" msgstr "সà§à¦ªà§‡à¦¨à¦¿à¦¶à§à¦¬ (CP 850)" #: ../src/scim_keyboard_layout_data.h:4623 msgid "Spanish (Latin America)" msgstr "সà§à¦ªà§‡à¦¨à¦¿à¦¶à§à¦¬ (লেটিন আমেৰিকা)" #: ../src/scim_keyboard_layout_data.h:4626 msgid "English (UK)" msgstr "ইংৰাজী (UK)" #: ../modules/Filter/scim_sctc_filter.cpp:57 msgid "Simplified-Traditional Chinese Conversion" msgstr "সৰল-পাৰমà§à¦ªà§°à¦¿à¦• চীনালৈ ৰূপানà§à¦¤à§°" #: ../modules/Filter/scim_sctc_filter.cpp:60 msgid "Convert between Simplified Chinese and Traditional Chinese" msgstr "সৰল আৰৠপাৰমà§à¦ªà§°à¦¿à¦• চীনাৰ মাজত ৰূপানà§à¦¤à§°" #: ../modules/Filter/scim_sctc_filter.cpp:71 msgid "SC-TC" msgstr "SC-TC" #: ../modules/Filter/scim_sctc_filter.cpp:73 #: ../modules/Filter/scim_sctc_filter.cpp:78 msgid "Simplified-Traditional Chinese conversion" msgstr "পাৰমà§à¦ªà§°à¦¿à¦•- সৰল চীনালৈ ৰূপানà§à¦¤à§°" #: ../modules/Filter/scim_sctc_filter.cpp:76 msgid "No Conversion" msgstr "কোনো ৰূপানà§à¦¤à§° নহয়" #: ../modules/Filter/scim_sctc_filter.cpp:81 msgid "Simplified to Traditional" msgstr "সৰলৰ পৰা পাৰমà§à¦ªà§°à¦¿à¦•লৈ" #: ../modules/Filter/scim_sctc_filter.cpp:83 msgid "Convert Simplified Chinese to Traditional Chinese" msgstr "সৰল চীনাক পাৰমà§à¦ªà§°à¦¿à¦• চীনালৈ ৰূপানà§à¦¤à§°" #: ../modules/Filter/scim_sctc_filter.cpp:86 msgid "Traditional to Simplified" msgstr "পাৰমà§à¦ªà§°à¦¿à¦•à§° পৰা সৰললৈ" #: ../modules/Filter/scim_sctc_filter.cpp:88 msgid "Convert Traditional Chinese to Simplified Chinese" msgstr "পাৰমà§à¦ªà§°à¦¿à¦• চীনাক সৰল চীনালৈ ৰূপানà§à¦¤à§°" #: ../modules/Filter/scim_sctc_filter.cpp:300 msgid "James Su " msgstr "James Su " #: ../modules/Filter/scim_sctc_filter.cpp:425 #: ../modules/Filter/scim_sctc_filter.cpp:555 #: ../modules/Filter/scim_sctc_filter.cpp:571 msgid "SC->TC" msgstr "SC->TC" #: ../modules/Filter/scim_sctc_filter.cpp:431 #: ../modules/Filter/scim_sctc_filter.cpp:559 #: ../modules/Filter/scim_sctc_filter.cpp:575 msgid "TC->SC" msgstr "TC->SC" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1845 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1231 #: ../extras/panel/scim_panel_gtk.cpp:2304 msgid "Smart Common Input Method platform " msgstr "Smart Common Input Method platform " #: ../modules/FrontEnd/scim_x11_frontend.cpp:1847 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1233 msgid "" "\n" "(C) 2002-2005 James Su \n" "\n" msgstr "" "\n" "(C) 2002-2005 James Su \n" "\n" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1851 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1238 msgid "" ":\n" "\n" msgstr "" ":\n" "\n" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1854 #: ../modules/FrontEnd/scim_x11_frontend.cpp:1857 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1241 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1244 msgid "" "\n" "\n" msgstr "" "\n" "\n" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:120 msgid "RAW CODE" msgstr "RAW CODE" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:127 msgid "(C) 2002-2006 James Su " msgstr "(C) 2002-2006 James Su " #: ../modules/IMEngine/scim_rawcode_imengine.cpp:140 msgid "" "Hot Keys:\n" "\n" " Control+u:\n" " switch between Multibyte encoding and Unicode.\n" "\n" " Esc:\n" " reset the input method.\n" msgstr "" "Hot Keys:\n" "\n" " Control+u:\n" " Multibyte encoding আৰৠUnicode à§° মাজত সাল সলনি ।\n" "\n" " Esc:\n" " নিবেশ পদà§à¦§à¦¤à¦¿ পà§à¦¨à¦ƒ সà§à¦¥à¦¾à¦ªà¦¨ কৰক ।\n" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:407 #: ../modules/IMEngine/scim_rawcode_imengine.cpp:423 msgid "The status of the current input method. Click to change it." msgstr "বৰà§à¦¤à§à¦¤à¦®à¦¾à¦¨à§° নিবেশ পদà§à¦§à¦¤à¦¿à§° অৱসà§à¦¥à¦¾ । সলনি কৰিবলৈ টিপক ।" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:409 msgid "Unicode" msgstr "Unicode" #: ../modules/SetupUI/scim_frontend_setup.cpp:82 #: ../modules/SetupUI/scim_imengine_setup.cpp:88 msgid "Global Setup" msgstr "সৰà§à¦¬à¦¬à§à¦¯à¦¾à¦ªà§€ পà§à§°à¦¤à¦¿à¦·à§à¦ à¦¾" #: ../modules/SetupUI/scim_frontend_setup.cpp:87 msgid "" "Setup the global options used by All FrontEnd modules, including X11 " "FrontEnd, GTK IMModule, QT IMModule etc." msgstr "সকলো FrontEnd অংশই বà§à¦¯à§±à¦¹à¦¾à§° কৰা সৰà§à¦¬à¦¬à§à¦¯à¦¾à¦ªà§€ বিকলà§à¦ª পà§à§°à¦¤à¦¿à¦·à§à¦ à¦¾ কৰক, X11 FrontEnd, GTK IMModule, QT IMModule ইতà§à¦¯à¦¾à¦¦à¦¿à§° সৈতে ।" #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:143 msgid "_Trigger:" msgstr "টà§à§°à¦¿à¦—াৰ (_T):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:145 msgid "Select the trigger keys" msgstr "টà§à§°à¦¿à¦—াৰৰ চাবি বাচক" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:147 msgid "" "The key events to turn on/off SCIM input method. Click on the button on the " "right to edit it." msgstr "SCIM নিবেশ পদà§à¦§à¦¤à¦¿ আৰমà§à¦­/বনà§à¦§ কৰিব লগা চাবিৰ ঘটনা । সোà¦à¦«à¦¾à¦²à§° বà§à¦Ÿà¦¾à¦® টিপক তাক সমà§à¦ªà¦¾à¦¦à¦¨ কৰিবলৈ ।" #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:160 msgid "Turn _On:" msgstr "আৰমà§à¦­ কৰক (_O):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:162 msgid "Select the Turn On keys" msgstr "আৰমà§à¦­à§° চাবি নিৰà§à¦¬à§à¦¬à¦¾à¦šà¦¨ কৰক" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:164 msgid "" "The key events to turn on SCIM input method. Click on the button on the " "right to edit it." msgstr "SCIM নিবেশ পদà§à¦§à¦¤à¦¿ আৰমà§à¦­ কৰিব লগা চাবিৰ ঘটনা । সোà¦à¦«à¦¾à¦²à§° বà§à¦Ÿà¦¾à¦® টিপক তাক সমà§à¦ªà¦¾à¦¦à¦¨ কৰিবলৈ ।" #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:177 msgid "Turn O_ff:" msgstr "বনà§à¦§ কৰক (_f):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:179 msgid "Select the Turn Off keys" msgstr "বনà§à¦§à§° চাবি নিৰà§à¦¬à§à¦¬à¦¾à¦šà¦¨ কৰক" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:181 msgid "" "The key events to turn off SCIM input method. Click on the button on the " "right to edit it." msgstr "SCIM নিবেশ পদà§à¦§à¦¤à¦¿ বনà§à¦§ কৰিব লগা চাবিৰ ঘটনা । সোà¦à¦«à¦¾à¦²à§° বà§à¦Ÿà¦¾à¦® টিপক তাক সমà§à¦ªà¦¾à¦¦à¦¨ কৰিবলৈ ।" #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:194 msgid "_Next input method:" msgstr "পিছৰ নিবেশ পদà§à¦§à¦¤à¦¿ (_N):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:196 msgid "Select the next input method keys" msgstr "পিছৰ নিবেশ পদà§à¦§à¦¤à¦¿à§° চাবি নিৰà§à¦¬à§à¦¬à¦¾à¦šà¦¨ কৰক" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:198 msgid "" "The key events to switch to the next input method. Click on the button on " "the right to edit it." msgstr "পিছৰ নিবেশ পদà§à¦§à¦¤à¦¿à¦²à§ˆ সলনি কৰিব লগা চাবিৰ ঘটনা । সোà¦à¦«à¦¾à¦²à§° বà§à¦Ÿà¦¾à¦® টিপক তাক সমà§à¦ªà¦¾à¦¦à¦¨ কৰিবলৈ ।" #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:213 msgid "_Previous input method:" msgstr "পূৰà§à¦¬à§° নিবেশ পদà§à¦§à¦¤à¦¿ (_P):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:215 msgid "Select the previous input method keys" msgstr "পিছৰ নিবেশ পদà§à¦§à¦¤à¦¿à§° চাবি নিৰà§à¦¬à§à¦¬à¦¾à¦šà¦¨ কৰক" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:217 msgid "" "The key events to switch to the previous input method. Click on the button " "on the right to edit it." msgstr "পূৰà§à¦¬à§° নিবেশ পদà§à¦§à¦¤à¦¿à¦²à§ˆ সলনি কৰিব লগা চাবিৰ ঘটনা । সোà¦à¦«à¦¾à¦²à§° বà§à¦Ÿà¦¾à¦® টিপক তাক সমà§à¦ªà¦¾à¦¦à¦¨ কৰিবলৈ ।" #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:232 msgid "Show input method _menu:" msgstr "নিবেশ পদà§à¦§à¦¤à¦¿à§° তালিকা দেখà§à§±à¦¾à¦“ক (_m):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:234 msgid "Select the show input method menu keys" msgstr "নিবেশ পদà§à¦§à¦¤à¦¿ তালিকাৰ চাবিক দেখà§à¦“ৱা নিৰà§à¦¬à§à¦¬à¦¾à¦šà¦¨ কৰক" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:236 msgid "" "The key events to show the input method menu. Click on the button on the " "right to edit it." msgstr "নিবেশ পদà§à¦§à¦¤à¦¿à§° তালিকা দেখà§à¦“ৱাৰ চাবিৰ ঘটনা । সোà¦à¦«à¦¾à¦²à§° বà§à¦Ÿà¦¾à¦® টিপক তাক সমà§à¦ªà¦¾à¦¦à¦¨ কৰিবলৈ ।" #: ../modules/SetupUI/scim_frontend_setup.cpp:306 msgid "Options" msgstr "বিকলà§à¦ªà¦¸à¦®à§‚হ" #: ../modules/SetupUI/scim_frontend_setup.cpp:321 msgid "_Keyboard Layout:" msgstr "চাবিৰ ফলকৰ পৰিকলà§à¦ªà¦¨à¦¾ (_K):" #: ../modules/SetupUI/scim_frontend_setup.cpp:342 msgid "" "You should choose your currently used keyboard layout here so that input " "methods, who care about keyboard layout, could work correctly." msgstr "আপোনাৰ বৰà§à¦¤à§à¦¤à¦®à¦¾à¦¨à§‡ বà§à¦¯à§±à¦¹à§ƒà¦¤ চাবিৰ ফলকৰ পৰিকলà§à¦ªà¦¨à¦¾ নিৰà§à¦¬à§à¦¬à¦¾à¦šà¦¨ কৰিব লাগে যাতে নিবেশ পদà§à¦§à¦¤à¦¿, যিসকলে চাবিৰ ফলকৰ পৰিকলà§à¦ªà¦¨à¦¾à§° বিষয়ে চিনà§à¦¤à¦¾à¦•ৰে, সঠিকভাবে কাম কৰে ।" #. On The Spot. #: ../modules/SetupUI/scim_frontend_setup.cpp:346 msgid "_Embed Preedit String into client window" msgstr "গà§à§°à¦¾à¦¹à¦•à§° সংযোগকà§à¦·à§‡à¦¤à§à§°à¦¤ Preedit String পà§à§°à§‹à¦¥à¦¿à¦¤ কৰক (_E)" #: ../modules/SetupUI/scim_frontend_setup.cpp:351 msgid "" "If this option is checked, the preedit string will be displayed directly in " "the client input window, rather than in a independent float window." msgstr "à¦à¦‡ বিকলà§à¦ª নিৰà§à¦¬à§à¦¬à¦¾à¦šà¦¨ কৰিলে, à¦à¦Ÿà¦¾ সà§à¦¬à¦¾à¦§à§€à¦¨ সংযোগকà§à¦·à§‡à¦¤à§à§° সলনি, preedit string পোনেপোনে গà§à§°à¦¾à¦¹à¦•à§° নিবেশ সংযোগকà§à¦·à§‡à¦¤à§à§°à¦¤ দেখà§à§±à¦¾ যাব ।" #. Shared input method. #: ../modules/SetupUI/scim_frontend_setup.cpp:360 msgid "_Share the same input method among all applications" msgstr "সকলো অনà§à¦ªà§à§°à§Ÿà§‹à¦—ত à¦à¦•েই নিবেশ পদà§à¦§à¦¤à¦¿ বà§à¦¯à§±à¦¹à¦¾à§° কৰক (_S)" #: ../modules/SetupUI/scim_frontend_setup.cpp:365 msgid "" "If this option is checked, then only one input method could be used by all " "applications at the same time.Otherwise different input method could be used " "by each application." msgstr "à¦à¦‡ বিকলà§à¦ª নিৰà§à¦¬à§à¦¬à¦¾à¦šà¦¨ কৰিলে, অকল à¦à¦Ÿà¦¾ নিবেশ পদà§à¦§à¦¤à¦¿à¦¹à§‡ à¦à¦•ে সময়ত সকলো অনà§à¦ªà§à§°à§Ÿà§‹à¦—à§° দà§à¦¬à¦¾à§°à¦¾ বà§à¦¯à§±à¦¹à¦¾à§°à¦¯à§‹à¦—à§à¦¯ হ'ব । ন'হ'লে বিভিনà§à¦¨ অনà§à¦ªà§à§°à§Ÿà§‹à¦—ে বেলেগ বেলেগ নিবেশ পদà§à¦§à¦¤à¦¿ বà§à¦¯à§±à¦¹à¦¾à§° কৰিব পাৰে ।" #: ../modules/SetupUI/scim_frontend_setup.cpp:373 #: ../modules/SetupUI/scim_imengine_setup.cpp:453 msgid "Hotkeys" msgstr "Hotkeys" #: ../modules/SetupUI/scim_imengine_setup.cpp:93 msgid "You can enable/disable input methods and set hotkeys for input methods here." msgstr "আপà§à¦¨à¦¿ ইয়াত নিবেশ পদà§à¦§à¦¤à¦¿ সকà§à§°à¦¿à§Ÿ/নিষà§à¦•à§à§°à§€à§Ÿ কৰিব পাৰে আৰৠনিবেশ পদà§à¦§à¦¤à¦¿ সমূহৰ বাবে hotkey সমূহ নিৰà§à¦§à¦¾à§°à¦¿à¦¤ কৰিব পাৰে ।" #: ../modules/SetupUI/scim_imengine_setup.cpp:296 msgid "The installed input method services:" msgstr "সংসà§à¦¥à¦¾à¦ªà¦¿à¦¤ নিবেশ পদà§à¦§à¦¤à¦¿à§° সেৱা:" #. Create hotkey and filter button before factory list view, because #. factory_list_selection_changed_callback may access these two buttons. #: ../modules/SetupUI/scim_imengine_setup.cpp:311 msgid "Edit _Hotkeys" msgstr "Hotkey à§° সমà§à¦ªà¦¾à¦¦à¦¨ (_H)" #: ../modules/SetupUI/scim_imengine_setup.cpp:320 msgid "Edit Hotkeys associated with the selected input method." msgstr "নিৰà§à¦¬à¦¾à¦šà¦¿à¦¤ নিবেশ পদà§à¦§à¦¤à¦¿à§° সৈতে সমà§à¦¬à¦¨à§à¦§à¦¿à¦¤ Hotkey সমূহৰ সমà§à¦ªà¦¾à¦¦à¦¨ কৰক ।" #: ../modules/SetupUI/scim_imengine_setup.cpp:322 msgid "Select _Filters" msgstr "ফিলà§à¦Ÿà¦¾à§° নিৰà§à¦¬à§à¦¬à¦¾à¦šà¦¨ কৰক (_F)" #: ../modules/SetupUI/scim_imengine_setup.cpp:331 msgid "Select the Filters which will be attached to this input method." msgstr "à¦à¦‡ নিবেশ পদà§à¦§à¦¤à¦¿à§° সৈতে সংযà§à¦•à§à¦¤ ফিলà§à¦Ÿà¦¾à§° সমূহ নিৰà§à¦¬à§à¦¬à¦¾à¦šà¦¨ কৰক ।" #: ../modules/SetupUI/scim_imengine_setup.cpp:348 msgid "_Expand" msgstr "বিসà§à¦¤à¦¾à§°à¦¿à¦¤ কৰক (_E)" #: ../modules/SetupUI/scim_imengine_setup.cpp:357 msgid "Expand all language categories." msgstr "সকলো ভাষাৰ শà§à§°à§‡à¦£à§€à§° বিসà§à¦¤à¦¾à§° কৰক ।" #: ../modules/SetupUI/scim_imengine_setup.cpp:359 msgid "_Collapse" msgstr "সংকোচন কৰক (_C)" #: ../modules/SetupUI/scim_imengine_setup.cpp:368 msgid "Collapse all language categories." msgstr "সকলো ভাষাৰ শà§à§°à§‡à¦£à§€à¦• সংকোচন কৰক ।" #: ../modules/SetupUI/scim_imengine_setup.cpp:370 msgid "E_nable All" msgstr "সকলোকে সকà§à§°à¦¿à§Ÿ কৰক (_n)" #: ../modules/SetupUI/scim_imengine_setup.cpp:379 msgid "Enable all input methods." msgstr "সকলো নিবেশ পদà§à¦§à¦¤à¦¿ সকà§à§°à¦¿à§Ÿ কৰক ।" #: ../modules/SetupUI/scim_imengine_setup.cpp:381 msgid "_Disable All" msgstr "সকলোকে নিষà§à¦•à§à§°à§€à§Ÿ কৰক (_D)" #: ../modules/SetupUI/scim_imengine_setup.cpp:390 msgid "Disable all input methods." msgstr "সকলো নিবেশ পদà§à¦§à¦¤à¦¿ নিষà§à¦•à§à§°à§€à§Ÿ কৰক ।" #: ../modules/SetupUI/scim_imengine_setup.cpp:414 #: ../modules/SetupUI/scim_imengine_setup.cpp:541 msgid "Name" msgstr "নাম" #: ../modules/SetupUI/scim_imengine_setup.cpp:432 #: ../modules/SetupUI/scim_imengine_setup.cpp:522 msgid "Enable" msgstr "সকà§à§°à¦¿à§Ÿ" #: ../modules/SetupUI/scim_imengine_setup.cpp:467 msgid "Filters" msgstr "ফিলà§à¦Ÿà¦¾à§°" #: ../modules/SetupUI/scim_imengine_setup.cpp:560 msgid "Languages" msgstr "ভাষা" #: ../modules/SetupUI/scim_imengine_setup.cpp:574 msgid "Description" msgstr "বিৱৰণ" #: ../modules/SetupUI/scim_imengine_setup.cpp:1190 #, c-format msgid "Edit Hotkeys for %s" msgstr "%s à§° বাবে Hotkey à§° সমà§à¦ªà¦¾à¦¦à¦¨ কৰক" #: ../modules/SetupUI/scim_imengine_setup.cpp:1417 #, c-format msgid "Select Filters for %s" msgstr "%s à§° বাবে ফিলà§à¦Ÿà¦¾à§° নিৰà§à¦¬à§à¦¬à¦¾à¦šà¦¨ কৰক" #: ../modules/SetupUI/scim_imengine_setup.cpp:1450 msgid "Move _Up" msgstr "ওপৰলৈ যাওক (_U)" #: ../modules/SetupUI/scim_imengine_setup.cpp:1457 msgid "Move _Down" msgstr "তললৈ যাওক (_D)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:95 msgid "GTK" msgstr "GTK" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:100 msgid "A panel daemon based on GTK+-2.x library." msgstr "GTK+-2.x লাইবà§à§°à§‡à§°à§€à§° ভিতà§à¦¤à¦¿à¦• পেনেল ডেমন ।" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:163 msgid "Always" msgstr "সদায়ে" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:164 msgid "On demand" msgstr "দাবী কৰোà¦à¦¤à§‡" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:165 msgid "Never" msgstr "কেতিয়াও নহয়" #. Create the ToolBar setup block. #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:211 msgid "ToolBar" msgstr "টà§à¦²à¦¬à¦¾à§°" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:229 msgid "_Show:" msgstr "দেখà§à§±à¦¾à¦“ক (_S):" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:245 msgid "Auto s_nap" msgstr "Auto s_nap" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:251 msgid "Show _input method icon" msgstr "নিবেশ পদà§à¦§à¦¤à¦¿à§° আইকণ দেখà§à§±à¦¾à¦“ক (_i)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:257 msgid "Show inp_ut method name" msgstr "নিবেশ পদà§à¦§à¦¤à¦¿à§° নাম দেখà§à§±à¦¾à¦“ক (_u)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:269 msgid "Hide time_out:" msgstr "সময়ৰ বিৰতি লà§à¦•à§à§±à¦¾à¦“ক (_o):" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:282 msgid "Show s_tick icon" msgstr "stick আইকণ দেখà§à§±à¦¾à¦“ক (_t)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:288 msgid "Show m_enu icon" msgstr "তালিকাৰ আইকণ দেখà§à§±à¦¾à¦“ক (_e)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:294 msgid "Show _help icon" msgstr "সহায়ৰ আইকণ দেখà§à§±à¦¾à¦“ক (_h)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:300 msgid "Show _property label" msgstr "গà§à¦£à§° লেবেল দেখà§à§±à¦¾à¦“ক (_p)" #. Create the Input Window setup block #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:311 msgid "Input window" msgstr "নিবেশৰ সংযোগকà§à¦·à§‡à¦¤à§à§°" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:320 msgid "E_mbedded lookup table" msgstr "পà§à§°à§‹à¦¥à¦¿à¦¤ বিচৰাৰ টেবà§à¦² (_m)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:324 msgid "_Vertical lookup table" msgstr "লমà§à¦¬à§€à§Ÿ বিচৰাৰ টেবà§à¦² (_V)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:328 msgid "Misc" msgstr "বিবিধ" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:337 msgid "Show tra_y icon" msgstr "টà§à§°à§‡'à§° আইকণ দেখà§à§±à¦¾à¦“ক (_y)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:341 msgid "Stick _windows" msgstr "সংযোগকà§à¦·à§‡à¦¤à§à§°à¦• আঠা লগাওক (_w)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:349 msgid "_Font:" msgstr "ফ'নà§à¦Ÿ (_F):" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:419 msgid "" "If option \"Always\" is selected, the toolbar will always be shown on the " "screen. If option \"On demand\" is selected, it will only be shown when SCIM " "is activated. If option \"Never\" is selected, it will never be shown." msgstr "\"সদায়ে\" বিকলà§à¦ª নিৰà§à¦¬à§à¦¬à¦¾à¦šà¦¨ কৰিলে, টà§à¦²à¦¬à¦¾à§° সদায়ে পৰà§à¦¦à§à¦¦à¦¾à¦¤ দেখà§à¦“ৱা হ'ব । \"দাবী কৰোà¦à¦¤à§‡\" বিকলà§à¦ª নিৰà§à¦¬à§à¦¬à¦¾à¦šà¦¿à¦¤ হ'লে, অকল SCIM সকà§à§°à¦¿à§Ÿ কৰাৰ সময়তহে দেখà§à§±à¦¾ হ'ব । \"কেতিয়াও নহয়\" বিকলà§à¦ª নিৰà§à¦¬à¦¾à¦šà¦¿à¦¤ হ'লে, ইয়াক কেতিয়াও দেখà§à¦“ৱা নহয় ।" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:426 msgid "If this option is checked, the toolbar will be snapped to the screen border." msgstr "à¦à¦‡ বিকলà§à¦ª নিৰà§à¦¬à§à¦¬à¦¾à¦šà¦¨ কৰিলে, টà§à¦²à¦¬à¦¾à§°à¦• পৰà§à¦¦à§à¦¦à¦¾à§° কাষত লগোৱা হ'ব ।" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:431 msgid "" "The toolbar will be hidden out after this timeout is elapsed. This option is " "only valid when \"Always show\" is selected. Set to zero to disable this " "behavior." msgstr "à¦à¦‡ সময় বিৰতিৰ পিছত টà§à¦²à¦¬à¦¾à§° লà§à¦•াই যাব । à¦à¦‡ বিকলà§à¦ª তেতিয়াহে বৈধ যেতিয়া \"সদায় দেখà§à§±à¦¾à¦“ক\" নিৰà§à¦¬à¦¾à¦šà¦¿à¦¤ হয় । à¦à¦‡ আচৰণ নিষà§à¦•à§à§°à§€à§Ÿ কৰিবলৈ শà§à¦£à§à¦¯à¦²à§ˆ নিৰà§à¦§à¦¾à§°à¦¿à¦¤ কৰক ।" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:438 msgid "" "If this option is checked, the input method icon will be showed on the " "toolbar." msgstr "à¦à¦‡ বিকলà§à¦ª নিৰà§à¦¬à§à¦¬à¦¾à¦šà¦¨ কৰিলে, নিবেশ পদà§à¦§à¦¤à¦¿à§° আইকণ টà§à¦²à¦¬à¦¾à§°à¦¤ দেখà§à§±à¦¾ হ'ব ।" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:442 msgid "" "If this option is checked, the input method name will be showed on the " "toolbar." msgstr "à¦à¦‡ বিকলà§à¦ª নিৰà§à¦¬à§à¦¬à¦¾à¦šà¦¨ কৰিলে, নিবেশ পদà§à¦§à¦¤à¦¿à§° নাম টà§à¦²à¦¬à¦¾à§°à¦¤ দেখà§à§±à¦¾ হ'ব ।" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:446 msgid "If this option is checked, the stick icon will be showed on the toolbar." msgstr "à¦à¦‡ বিকলà§à¦ª নিৰà§à¦¬à§à¦¬à¦¾à¦šà¦¨ কৰিলে, stick আইকণ টà§à¦²à¦¬à¦¾à§°à¦¤ দেখà§à§±à¦¾ হ'ব ।" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:450 msgid "If this option is checked, the menu icon will be showed on the toolbar." msgstr "à¦à¦‡ বিকলà§à¦ª নিৰà§à¦¬à§à¦¬à¦¾à¦šà¦¨ কৰিলে, তালিকাৰ আইকণ টà§à¦²à¦¬à¦¾à§°à¦¤ দেখà§à§±à¦¾ হ'ব ।" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:454 msgid "If this option is checked, the help icon will be showed on the toolbar." msgstr "à¦à¦‡ বিকলà§à¦ª নিৰà§à¦¬à§à¦¬à¦¾à¦šà¦¨ কৰিলে, সহায়ৰ আইকণ টà§à¦²à¦¬à¦¾à§°à¦¤ দেখà§à§±à¦¾ হ'ব ।" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:458 msgid "" "If this option is checked, the text label of input method properties will be " "showed on the toolbar." msgstr "à¦à¦‡ বিকলà§à¦ª নিৰà§à¦¬à§à¦¬à¦¾à¦šà¦¨ কৰিলে, নিবেশ পদà§à¦§à¦¤à¦¿à§° গà§à¦£à§° আখৰৰ লেবেল টà§à¦²à¦¬à¦¾à§°à¦¤ দেখà§à§±à¦¾ হ'ব ।" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:462 msgid "" "If this option is checked, the lookup table will be embedded into the input " "window." msgstr "à¦à¦‡ বিকলà§à¦ª নিৰà§à¦¬à§à¦¬à¦¾à¦šà¦¨ কৰিলে, বিচৰাৰ টেবà§à¦² নিবেশ সংযোগকà§à¦·à§‡à¦¤à§à§°à¦¤ পà§à§°à§‹à¦¥à¦¿à¦¤ হ'ব ।" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:467 msgid "If this option is checked, the lookup table will be displayed vertically." msgstr "à¦à¦‡ বিকলà§à¦ª নিৰà§à¦¬à§à¦¬à¦¾à¦šà¦¨ কৰিলে, বিচৰাৰ টেবà§à¦² লমà§à¦¬à§€à§Ÿà¦­à¦¾à¦¬à§‡ দেখà§à¦“ৱা হ'ব ।" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:472 msgid "" "If this option is checked, the tray icon will be showed on the desktop's " "taskbar." msgstr "à¦à¦‡ বিকলà§à¦ª নিৰà§à¦¬à§à¦¬à¦¾à¦šà¦¨ কৰিলে, টà§à§°à§‡ আইকণ ডেষà§à¦•ট'পৰ টাসà§à¦•বাৰত দেখà§à¦“ৱা হ'ব ।" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:476 msgid "" "If this option is checked, the toolbar, input and lookup table windows will " "be sticked to its original position." msgstr "à¦à¦‡ বিকলà§à¦ª নিৰà§à¦¬à§à¦¬à¦¾à¦šà¦¨ কৰিলে, টà§à¦²à¦¬à¦¾à§°,নিবেশ আৰৠবিচৰাৰ টেবà§à¦² পà§à§°à¦¾à§°à¦®à§à¦­à¦¿à¦• সà§à¦¥à¦¾à¦¨à¦¤ লাগি যাব ।" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:482 msgid "The font setting will be used in the input and lookup table windows." msgstr "নিবেশ আৰৠবিচৰাৰ টেবà§à¦²à§° সংযোগকà§à¦·à§‡à¦¤à§à§°à¦¤ ফ'নà§à¦Ÿà§° পছনà§à¦¦ বà§à¦¯à§±à¦¹à¦¾à§° কৰা হ'ব ।" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:801 msgid "Select Interface Font" msgstr "সংযোগকà§à¦·à§‡à¦¤à§à§°à§° ফ'নà§à¦Ÿ নিৰà§à¦¬à§à¦¬à¦¾à¦šà¦¨ কৰক" #: ../extras/setup/scim_setup_ui.cpp:47 msgid "SCIM" msgstr "SCIM" #: ../extras/setup/scim_setup_ui.cpp:48 msgid "FrontEnd" msgstr "FrontEnd" #: ../extras/setup/scim_setup_ui.cpp:49 msgid "IMEngine" msgstr "IMEngine" #: ../extras/setup/scim_setup_ui.cpp:50 msgid "Panel" msgstr "পেনেল" #: ../extras/setup/scim_setup_ui.cpp:51 msgid "Extra" msgstr "অতিৰিকà§à¦¤" #. #. vi:ts=4:nowrap:ai:expandtab #. #: ../extras/setup/scim_setup_ui.cpp:230 #: ../extras/setup/scim-setup.desktop.in.h:1 msgid "SCIM Input Method Setup" msgstr "SCIM নিবেশ পদà§à¦§à¦¤à¦¿à§° পà§à§°à¦¤à¦¿à¦·à§à¦ à¦¾" #: ../extras/setup/scim_setup_ui.cpp:369 msgid "" " Smart Common Input Method platform \n" "\n" "GUI Setup Utility\n" "\n" "\n" "\n" "Copyright 2002-2004, James Su <suzhe@tsinghua.org." "cn>" msgstr "" " Smart Common Input Method platform \n" "\n" "GUI পà§à§°à¦¤à¦¿à¦·à§à¦ à¦¾à§° সৰঞà§à¦œà¦¾à¦®\n" "\n" "\n" "\n" "Copyright 2002-2004, James Su <suzhe@tsinghua.org." "cn>" #: ../extras/setup/scim_setup_ui.cpp:394 #, c-format msgid "The Setup for %s modules." msgstr "%s অংশৰ কাৰণে পà§à§°à¦¤à¦¿à¦·à§à¦ à¦¾ ।" #: ../extras/setup/scim_setup_ui.cpp:456 msgid "Are you sure you want to quit SCIM Setup?" msgstr "আপà§à¦¨à¦¿ SCIM পà§à§°à¦¤à¦¿à¦·à§à¦ à¦¾à§° পৰা বাহিৰ হ'বলৈ নিশà§à¦šà¦¿à¦¤ নে ?" #: ../extras/setup/scim_setup_ui.cpp:685 msgid "" "Not all configuration can be reloaded on the fly. Don't forget to restart " "SCIM in order to let all of the new configuration take effect." msgstr "চলি থকা অৱসà§à¦¥à¦¾à¦¤ সকলো বিনà§à¦¯à¦¾à¦¸ পà§à¦¨à¦ƒ তà§à¦²à¦¿ ল'ব পৰা নাযায় । সকলো নতà§à¦¨ বিনà§à¦¯à¦¾à¦¸ কাৰà§à¦¯à¦•à§° কৰিবলৈ SCIM ক পà§à¦¨à§°à¦¾à§°à¦®à§à¦­ কৰিব'লৈ নাপাহৰিব ।" #: ../extras/setup/scim_setup_helper.cpp:49 msgid "SCIM Setup" msgstr "SCIM পà§à§°à¦¤à¦¿à¦·à§à¦ à¦¾" #: ../extras/setup/scim_setup_helper.cpp:51 msgid "Integrated Setup Utility based on GTK Widget library." msgstr "GTK ৱিজেট লাইবà§à§°à§‡à§°à§€à§° ওপৰত আধাৰিত à¦à¦•à§à¦¯à¦¬à¦¦à§à¦§ কৰা পà§à§°à¦¤à¦¿à¦·à§à¦ à¦¾à§° সৰঞà§à¦œà¦¾à¦® ।" #: ../extras/setup/scim-setup.desktop.in.h:2 msgid "Setup utility for Smart Common Input Method platform" msgstr "Smart Common Input Method মঞà§à¦šà§° বাবে পà§à§°à¦¤à¦¿à¦·à§à¦ à¦¾à§° সৰঞà§à¦œà¦¾à¦®" #: ../extras/panel/scim_panel_gtk.cpp:982 msgid "SCIM Help" msgstr "SCIM à§° সহায়" #: ../extras/panel/scim_panel_gtk.cpp:999 msgid "Smart Common Input Method" msgstr "Smart Common Input Method" #: ../extras/panel/scim_panel_gtk.cpp:1058 msgid "Stick/unstick the input window and the toolbar." msgstr "নিবেশ সংযোগকà§à¦·à§‡à¦¤à§à§° আৰৠটà§à¦²à¦¬à¦¾à§° à¦à¦•েলগে লগাওক/নলগাওক । " #: ../extras/panel/scim_panel_gtk.cpp:1063 msgid "Show a brief help about SCIM and the current input method." msgstr "SCIM আৰৠবৰà§à¦¤à§à¦¤à¦®à¦¾à¦¨à§° নিবেশ পদà§à¦§à¦¤à¦¿à§° বিষয়ে à¦à¦Ÿà¦¾ চমৠসহায় দেখà§à§±à¦¾à¦“ক ।" #: ../extras/panel/scim_panel_gtk.cpp:1068 msgid "Show command menu." msgstr "আদেশ তালিকা দেখà§à§±à¦¾à¦“ক ।" #: ../extras/panel/scim_panel_gtk.cpp:2306 msgid "" "\n" "(C) 2002-2005 James Su " msgstr "" "\n" "(C) 2002-2005 James Su " #. Reload Configuration. #: ../extras/panel/scim_panel_gtk.cpp:2385 msgid "Reload Configuration" msgstr "বিনà§à¦¯à¦¾à¦¸ পà§à¦¨à¦ƒ তোলক" #. Stick #: ../extras/panel/scim_panel_gtk.cpp:2395 msgid "Stick Windows" msgstr "সংযোগকà§à¦·à§‡à¦¤à§à§° à¦à¦•েলগে লগাওক" #. Toolbar #: ../extras/panel/scim_panel_gtk.cpp:2404 msgid "Hide Toolbar" msgstr "টà§à¦²à¦¬à¦¾à§° লà§à¦•াওক" #. Help #: ../extras/panel/scim_panel_gtk.cpp:2413 msgid "Help ..." msgstr "সহায় ..." #. Clients exit. #: ../extras/panel/scim_panel_gtk.cpp:2431 msgid "Exit" msgstr "পà§à§°à¦¸à§à¦¥à¦¾à¦¨" #: ../utils/scimstringview.c:196 msgid "Cursor Position" msgstr "কাৰà§à¦›à¦¾à§°à§° সà§à¦¥à¦¾à¦¨" #: ../utils/scimstringview.c:197 msgid "The current position of the insertion cursor in chars." msgstr "আখৰত ভৰোৱা কাৰà§à¦›à¦¾à§°à§° বৰà§à¦¤à§à¦¤à¦®à¦¾à¦¨ অৱসà§à¦¥à¦¾à¦¨ ।" #: ../utils/scimstringview.c:206 msgid "Maximum length" msgstr "সৰà§à¦¬à¦¾à¦§à¦¿à¦• দৈৰà§à¦˜à§à¦¯" #: ../utils/scimstringview.c:207 msgid "Maximum number of characters for this string view. Zero if no maximum." msgstr "à¦à¦‡ আখৰৰ পà§à§°à¦¦à§°à§à¦¶à¦¨à§° বাবে আখৰৰ সৰà§à¦¬à¦¾à¦§à¦¿à¦• দৈৰà§à¦˜à§à¦¯ । শà§à¦£à§à¦¯ যদি সৰà§à¦¬à¦¾à¦§à¦¿à¦• নহয় ।" #: ../utils/scimstringview.c:216 msgid "Maximum width" msgstr "সৰà§à¦¬à¦¾à¦§à¦¿à¦• পà§à§°à¦¸à§à¦¥" #: ../utils/scimstringview.c:217 msgid "Maximum width of this string view." msgstr "à¦à¦‡ আখৰৰ পà§à§°à¦¦à§°à§à¦¶à¦¨à§° বাবে সৰà§à¦¬à¦¾à¦§à¦¿à¦• পà§à§°à¦¸à§à¦¥ ।" #: ../utils/scimstringview.c:226 msgid "Has Frame" msgstr "ফà§à§°à§‡à¦® আছে" #: ../utils/scimstringview.c:227 msgid "FALSE removes outside bevel from string view." msgstr "আখৰৰ পà§à§°à¦¦à§°à§à¦¶à¦¨à¦¤ FALSE হ'লে বাহিৰৰ পà§à§°à§±à¦£ কোণ আà¦à¦¤à§°à§à§±à¦¾ হ'ব ।" #: ../utils/scimstringview.c:234 msgid "Draw cursor" msgstr "কাৰà§à¦›à¦¾à§° আà¦à¦•ক" #: ../utils/scimstringview.c:235 msgid "TRUE draw blinking cursor." msgstr "TRUE হ'লে বà§à¦²à¦¿à¦‚কিং কাৰà§à¦›à¦¾à§° আà¦à¦•ক ।" #: ../utils/scimstringview.c:242 msgid "Auto move cursor" msgstr "কাৰà§à¦›à¦¾à§° সà§à¦¬à§Ÿà¦‚কà§à§°à¦¿à§Ÿà¦­à¦¾à¦¬à§‡ চলাওক ।" #: ../utils/scimstringview.c:243 msgid "TRUE auto move cursor position when mouse clicking." msgstr "TRUE হ'লে মাউছ টিপিলে কাৰà§à¦›à¦¾à§°à§° সà§à¦¥à¦¾à¦¨ নিজেই চলাব ।" #: ../utils/scimstringview.c:250 msgid "Forward button press event" msgstr "আগবà§à¦¾ বà§à¦Ÿà¦¾à¦® টিপাৰ ঘটনা" #: ../utils/scimstringview.c:251 msgid "TRUE forward button press event to user program." msgstr "TRUE হ'লে আগবà§à¦¾à§° বà§à¦Ÿà¦¾à¦® টিপাৰ ঘটনাত বà§à¦¯à§±à¦¹à¦¾à§°à¦•à§°à§‹à¦à¦¤à¦¾à§° অনà§à¦ªà§à§°à§Ÿà§‹à¦—লৈ যাব ।" #: ../utils/scimstringview.c:258 msgid "Auto resize the widget to fit the string" msgstr "আখৰক খাপ খোৱাবলৈ বিজেটক সà§à¦¬à§Ÿà¦‚কà§à§°à¦¿à§Ÿà¦­à¦¾à¦¬à§‡ পà§à¦¨à¦ƒ আকাৰ দিয়ক" #: ../utils/scimstringview.c:259 msgid "TRUE Auto resize on." msgstr "TRUE হ'লে সà§à¦¬à§Ÿà¦‚কà§à§°à¦¿à§Ÿà¦­à¦¾à¦¬à§‡ পà§à¦¨à¦ƒ আকাৰ দিয়া সকà§à§°à¦¿à§Ÿ হ'ব ।" #: ../utils/scimstringview.c:266 msgid "Width in chars" msgstr "আখৰত পà§à§°à¦¸à§à¦¥" #: ../utils/scimstringview.c:267 msgid "Number of characters to leave space for in the string view." msgstr "আখৰৰ পà§à§°à¦¦à§°à§à¦¶à¦¨à¦¤ ৰিকà§à¦¤ সà§à¦¥à¦¾à¦¨à§° বাবে à¦à§°à¦¿à¦¬ লগা আখৰৰ সংখà§à¦¯à¦¾ ।" #: ../utils/scimstringview.c:276 msgid "Scroll offset" msgstr "সà§à¦•à§à§°'ল কৰাৰ আৰমà§à¦­à¦£à¦¿" #: ../utils/scimstringview.c:277 msgid "Number of pixels of the string view scrolled off the screen to the left" msgstr "আখৰৰ পà§à§°à¦¦à§°à§à¦¶à¦¨à¦¤ পৰà§à¦¦à§à¦¦à¦¾à§° বাওà¦à¦«à¦¾à¦²à¦²à§ˆ সà§à¦•à§à§°'ল কৰিব লগা পিকà§à¦¸à§‡à¦²à§° সংখà§à¦¯à¦¾" #: ../utils/scimstringview.c:286 msgid "Text" msgstr "টেকà§à¦¸à¦Ÿ" #: ../utils/scimstringview.c:287 msgid "The contents of the string view" msgstr "আখৰৰ পà§à§°à¦¦à§°à§à¦¶à¦¨à§° বিষয়বসà§à¦¤à§" #: ../utils/scimkeyselection.cpp:155 msgid "Selected _Keys:" msgstr "নিৰà§à¦¬à¦¾à¦šà¦¿à¦¤ চাবি (_K):" #: ../utils/scimkeyselection.cpp:200 msgid "Key Code:" msgstr "চাবিৰ কোড:" #: ../utils/scimkeyselection.cpp:218 msgid "..." msgstr "..." #: ../utils/scimkeyselection.cpp:223 msgid "Modifiers:" msgstr "পৰিবৰà§à¦¤à¦¨ কৰা:" #: ../utils/scimkeyselection.cpp:236 msgid "_Ctrl" msgstr "_Ctrl" #: ../utils/scimkeyselection.cpp:240 msgid "A_lt" msgstr "A_lt" #: ../utils/scimkeyselection.cpp:244 msgid "_Shift" msgstr "_Shift" #: ../utils/scimkeyselection.cpp:248 msgid "_Release" msgstr "_Release" #: ../utils/scimkeyselection.cpp:258 msgid "_Meta" msgstr "_Meta" #: ../utils/scimkeyselection.cpp:262 msgid "S_uper" msgstr "S_uper" #: ../utils/scimkeyselection.cpp:266 msgid "_Hyper" msgstr "_Hyper" #: ../utils/scimkeyselection.cpp:331 msgid "Please enter a Key Code first." msgstr "পà§à§°à¦¥à¦®à§‡ à¦à¦Ÿà¦¾ চাবিৰ কোড দিয়ক ।" #: ../utils/scimkeyselection.cpp:385 msgid "" "Press a key (or a key combination).\n" "This dialog will be closed when the key is released." msgstr "" "à¦à¦Ÿà¦¾ চাবি টিপক (বা à¦à¦Ÿà¦¾ চাবিৰ জোট) ।\n" "চাবি à¦à§°à¦¿à¦²à§‡ à¦à¦‡ সমà§à¦¬à¦¾à¦¦ বনà§à¦§ কৰা হ'ব ।" #: ../utils/scimkeyselection.cpp:388 msgid "Grabbing a key." msgstr "à¦à¦Ÿà¦¾ চাবি ধৰক ।" #: ../utils/scimkeyselection.cpp:678 msgid "Key Selection" msgstr "চাবিৰ নিৰà§à¦¬à§à¦¬à¦¾à¦šà¦¨" #: ../utils/scimtrayicon.c:108 msgid "Orientation" msgstr "দিকà§â€Œà¦¬à¦¿à¦¨à§à¦¯à¦¾à¦¸" #: ../utils/scimtrayicon.c:109 msgid "The orientation of the tray." msgstr "টà§à§°à§‡'à§° দিকà§â€Œà¦¬à¦¿à¦¨à§à¦¯à¦¾à¦¸ ।" scim-1.4.14/po/bn_IN.po000066400000000000000000001422431177210725600145150ustar00rootroot00000000000000# translation of bn_IN.po to Bengali INDIA # Bengali translations for PACKAGE package. # Copyright (C) 2008 THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Automatically generated, 2008. # Runa Bhattacharjee , 2008. msgid "" msgstr "" "Project-Id-Version: bn_IN\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-06-22 11:40-0700\n" "PO-Revision-Date: 2008-03-27 15:51+0530\n" "Last-Translator: Runa Bhattacharjee \n" "Language-Team: Bengali INDIA \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: ../src/scim_compose_key.cpp:126 msgid "English/European" msgstr "ইংরেজি/ইউরোপিয়ান" #. Append an entry for forward mode. #: ../src/scim_imengine.cpp:638 ../src/scim_utility.cpp:693 #: ../modules/FrontEnd/scim_x11_frontend.cpp:1897 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1281 #: ../extras/panel/scim_panel_gtk.cpp:2814 msgid "English/Keyboard" msgstr "ইংরেজি/কি-বোরà§à¦¡" #: ../src/scim_utility.cpp:694 msgid "Amharic" msgstr "আমহারিক" #: ../src/scim_utility.cpp:695 msgid "Arabic" msgstr "আরবি" #: ../src/scim_utility.cpp:696 msgid "Arabic (Egypt)" msgstr "আরবি (মিশর)" #: ../src/scim_utility.cpp:697 msgid "Arabic (Lebanon)" msgstr "আরবি (লেবানোন)" #: ../src/scim_utility.cpp:698 msgid "Assamese" msgstr "অসমীয়া" #: ../src/scim_utility.cpp:699 msgid "Azerbaijani" msgstr "আজারবাইজানি" #: ../src/scim_utility.cpp:700 msgid "Belarusian" msgstr "বেলারà§à¦¶à¦¿à§Ÿà¦¾à¦¨" #: ../src/scim_utility.cpp:701 msgid "Bulgarian" msgstr "বà§à¦²à¦—েরিয়ান" #: ../src/scim_utility.cpp:702 ../src/scim_utility.cpp:703 msgid "Bengali" msgstr "বাংলা" #: ../src/scim_utility.cpp:704 msgid "Bengali (India)" msgstr "বাংলা (ভারত)" #: ../src/scim_utility.cpp:705 msgid "Tibetan" msgstr "তিবà§à¦¬à¦¤à¦¿" #: ../src/scim_utility.cpp:706 msgid "Bosnian" msgstr "বসনিয়ান" #: ../src/scim_utility.cpp:707 msgid "Catalan" msgstr "কà§à¦¯à¦¾à¦Ÿà¦¾à¦²à¦¾à¦¨" #: ../src/scim_utility.cpp:708 ../src/scim_keyboard_layout_data.h:4595 msgid "Czech" msgstr "চেক" #: ../src/scim_utility.cpp:709 msgid "Welsh" msgstr "ওয়েলশ" #: ../src/scim_utility.cpp:710 ../src/scim_keyboard_layout_data.h:4597 msgid "Danish" msgstr "ডà§à¦¯à¦¾à¦¨à¦¿à¦¶" #: ../src/scim_utility.cpp:711 ../src/scim_keyboard_layout_data.h:4605 msgid "German" msgstr "জারà§à¦®à¦¾à¦¨" #: ../src/scim_utility.cpp:712 msgid "Divehi" msgstr "দিভেহি" #: ../src/scim_utility.cpp:713 ../src/scim_keyboard_layout_data.h:4608 msgid "Greek" msgstr "গà§à¦°à¦¿à¦•" #: ../src/scim_utility.cpp:714 msgid "English" msgstr "ইংরেজি" #: ../src/scim_utility.cpp:715 msgid "English (Australian)" msgstr "ইংরেজি (অসà§à¦Ÿà§à¦°à§‡à¦²à¦¿à§Ÿà¦¾à¦¨)" #: ../src/scim_utility.cpp:716 msgid "English (Canadian)" msgstr "ইংরেজি (কানাডিয়ান)" #: ../src/scim_utility.cpp:717 msgid "English (British)" msgstr "ইংরেজি (বà§à¦°à¦¿à¦Ÿà¦¿à¦¶)" #: ../src/scim_utility.cpp:718 msgid "English (Ireland)" msgstr "ইংরেজি (আয়ারলà§à¦¯à¦¾à¦¨à§à¦¡)" #: ../src/scim_utility.cpp:719 msgid "English (American)" msgstr "ইংরেজি (আমেরিকান)" #: ../src/scim_utility.cpp:720 ../src/scim_utility.cpp:721 #: ../src/scim_keyboard_layout_data.h:4621 msgid "Spanish" msgstr "সà§à¦ªà§à¦¯à¦¾à¦¨à¦¿à¦¶" #: ../src/scim_utility.cpp:722 msgid "Spanish (Mexico)" msgstr "সà§à¦ªà§à¦¯à¦¾à¦¨à¦¿à¦¶ (মেকà§à¦¸à¦¿à¦•à§‹)" #: ../src/scim_utility.cpp:723 ../src/scim_keyboard_layout_data.h:4600 msgid "Estonian" msgstr "à¦à¦¸à§à¦¤à§‹à¦¨à¦¿à§Ÿà¦¾à¦¨" #: ../src/scim_utility.cpp:724 msgid "Basque" msgstr "বাসà§à¦•" #: ../src/scim_utility.cpp:725 msgid "Persian" msgstr "ফারà§à¦¸à¦¿" #: ../src/scim_utility.cpp:726 ../src/scim_keyboard_layout_data.h:4601 msgid "Finnish" msgstr "ফিনিশ" #: ../src/scim_utility.cpp:727 ../src/scim_keyboard_layout_data.h:4602 msgid "French" msgstr "ফà§à¦°à§‡à¦žà§à¦š" #: ../src/scim_utility.cpp:728 msgid "Irish" msgstr "আইরিশ" #: ../src/scim_utility.cpp:729 msgid "Galician" msgstr "গেলিশিয়ান" #: ../src/scim_utility.cpp:730 msgid "Gujarati" msgstr "গà§à¦œà¦°à¦¾à¦¤à¦¿" #: ../src/scim_utility.cpp:731 ../src/scim_utility.cpp:740 msgid "Hebrew" msgstr "হিবà§à¦°à§" #: ../src/scim_utility.cpp:732 msgid "Hindi" msgstr "হিনà§à¦¦à¦¿" #: ../src/scim_utility.cpp:733 ../src/scim_keyboard_layout_data.h:4594 msgid "Croatian" msgstr "কà§à¦°à§‹à§Ÿà§‡à¦¶à¦¿à§Ÿà¦¾à¦¨" #: ../src/scim_utility.cpp:734 ../src/scim_keyboard_layout_data.h:4609 msgid "Hungarian" msgstr "হাঙà§à¦—েরিয়ান" #: ../src/scim_utility.cpp:735 msgid "Armenian" msgstr "আরà§à¦®à§‡à¦¨à¦¿à§Ÿà¦¾à¦¨" #: ../src/scim_utility.cpp:736 msgid "Interlingua" msgstr "ইনà§à¦Ÿà¦¾à¦°à¦²à¦¿à¦™à§à¦—à§à§Ÿà¦¾" #: ../src/scim_utility.cpp:737 msgid "Indonesian" msgstr "ইনà§à¦¦à§‹à¦¨à§‡à¦¶à¦¿à§Ÿà¦¾à¦¨" #: ../src/scim_utility.cpp:738 ../src/scim_keyboard_layout_data.h:4627 msgid "Icelandic" msgstr "আইসলà§à¦¯à¦¾à¦¨à§à¦¡à¦¿à¦•" #: ../src/scim_utility.cpp:739 ../src/scim_keyboard_layout_data.h:4610 msgid "Italian" msgstr "ইটালিয়ান" #: ../src/scim_utility.cpp:741 ../src/scim_keyboard_layout_data.h:4611 msgid "Japanese" msgstr "জাপানি" #: ../src/scim_utility.cpp:742 msgid "Georgian" msgstr "জরà§à¦œà¦¿à§Ÿà¦¾à¦¨" #: ../src/scim_utility.cpp:743 msgid "Kazakh" msgstr "কাজাখ" #: ../src/scim_utility.cpp:744 msgid "Cambodian" msgstr "কà§à¦¯à¦¾à¦®à§à¦¬à§‹à¦¡à¦¿à§Ÿà¦¾à¦¨" #: ../src/scim_utility.cpp:745 msgid "Kannada" msgstr "কনà§à¦¨à§œ" #: ../src/scim_utility.cpp:746 msgid "Korean" msgstr "কোরিয়ান" #: ../src/scim_utility.cpp:747 msgid "Laothian" msgstr "লাওথিয়ান" #: ../src/scim_utility.cpp:748 ../src/scim_keyboard_layout_data.h:4628 msgid "Lithuanian" msgstr "লিথà§à§Ÿà§‡à¦¨à¦¿à§Ÿà¦¾à¦¨" #: ../src/scim_utility.cpp:749 msgid "Latvian" msgstr "লাটভিয়ান" #: ../src/scim_utility.cpp:750 msgid "Macedonian" msgstr "মেসিডোনিয়ান" #: ../src/scim_utility.cpp:751 msgid "Malayalam" msgstr "মালায়ালম" #: ../src/scim_utility.cpp:752 msgid "Mongolian" msgstr "মঙà§à¦—োলিয়ান" #: ../src/scim_utility.cpp:753 msgid "Marathi" msgstr "মারাঠি" #: ../src/scim_utility.cpp:754 msgid "Malay" msgstr "মালায়" #: ../src/scim_utility.cpp:755 msgid "Burmese" msgstr "বারà§à¦®à¦¿à¦œ" #: ../src/scim_utility.cpp:756 msgid "Nepali" msgstr "নেপালি" #: ../src/scim_utility.cpp:757 ../src/scim_keyboard_layout_data.h:4598 msgid "Dutch" msgstr "ডাচ" #: ../src/scim_utility.cpp:758 msgid "Norwegian (nynorsk)" msgstr "নরওয়েজিয়ান (নিনোরসà§à¦•)" #: ../src/scim_utility.cpp:759 msgid "Norwegian (bokmal)" msgstr "নরওয়েজিয়ান (বোকমাল)" #: ../src/scim_utility.cpp:760 msgid "Oriya" msgstr "ওরিয়া" #: ../src/scim_utility.cpp:761 msgid "Punjabi" msgstr "পাঞà§à¦œà¦¾à¦¬à¦¿" #: ../src/scim_utility.cpp:762 ../src/scim_keyboard_layout_data.h:4613 msgid "Polish" msgstr "পোলিশ" #: ../src/scim_utility.cpp:763 ../src/scim_utility.cpp:765 #: ../src/scim_keyboard_layout_data.h:4614 msgid "Portuguese" msgstr "পোরà§à¦¤à§à¦—িজ" #: ../src/scim_utility.cpp:764 ../src/scim_keyboard_layout_data.h:4615 msgid "Portuguese (Brazil)" msgstr "বà§à¦°à¦¾à¦œà¦¿à¦²à¦¿à§Ÿà¦¾à¦¨ পোরà§à¦¤à§à¦—িজ " #: ../src/scim_utility.cpp:766 msgid "Romanian" msgstr "রোমেনিয়ান" #: ../src/scim_utility.cpp:767 ../src/scim_keyboard_layout_data.h:4617 msgid "Russian" msgstr "রà§à¦¶à¦¿" #: ../src/scim_utility.cpp:768 msgid "Sinhala" msgstr "সিংহলা" #: ../src/scim_utility.cpp:769 ../src/scim_keyboard_layout_data.h:4618 msgid "Slovak" msgstr "সà§à¦²à§‹à¦­à¦¾à¦•" #: ../src/scim_utility.cpp:770 ../src/scim_keyboard_layout_data.h:4620 msgid "Slovenian" msgstr "সà§à¦²à§‹à¦­à§‡à¦¨à¦¿à§Ÿà¦¾à¦¨" #: ../src/scim_utility.cpp:771 msgid "Albanian" msgstr "আলবেনিয়ান" #: ../src/scim_utility.cpp:772 ../src/scim_utility.cpp:773 #: ../src/scim_utility.cpp:774 msgid "Serbian" msgstr "সারà§à¦¬à¦¿à§Ÿà¦¾à¦¨" #: ../src/scim_utility.cpp:775 ../src/scim_utility.cpp:777 #: ../src/scim_keyboard_layout_data.h:4624 msgid "Swedish" msgstr "সà§à¦‡à¦¡à¦¿à¦¶" #: ../src/scim_utility.cpp:776 msgid "Swedish (Finland)" msgstr "সà§à¦‡à¦¡à¦¿à¦¶ (ফিনলà§à¦¯à¦¾à¦¨à§à¦¡)" #: ../src/scim_utility.cpp:778 msgid "Tamil" msgstr "তামিল" #: ../src/scim_utility.cpp:779 msgid "Telugu" msgstr "তেলà§à¦—à§" #: ../src/scim_utility.cpp:780 msgid "Thai" msgstr "থাই" #: ../src/scim_utility.cpp:781 ../src/scim_keyboard_layout_data.h:4625 msgid "Turkish" msgstr "তà§à¦°à§à¦•ি" #: ../src/scim_utility.cpp:782 msgid "Uighur" msgstr "উইগà§à¦°" #: ../src/scim_utility.cpp:783 ../src/scim_keyboard_layout_data.h:4629 msgid "Ukrainian" msgstr "ইউকà§à¦°à§‡à¦¨à¦¿à§Ÿà¦¾à¦¨" #: ../src/scim_utility.cpp:784 msgid "Urdu" msgstr "উরà§à¦¦à§" #: ../src/scim_utility.cpp:785 msgid "Uzbek" msgstr "উজবেক" #: ../src/scim_utility.cpp:786 msgid "Vietnamese" msgstr "ভিয়েতনামিস" #: ../src/scim_utility.cpp:787 msgid "Walloon" msgstr "ওয়ালà§à¦¨" #: ../src/scim_utility.cpp:788 ../src/scim_utility.cpp:789 msgid "Yiddish" msgstr "ইডà§à¦¡à¦¿à¦¶" #: ../src/scim_utility.cpp:790 msgid "Chinese" msgstr "চিনা" #: ../src/scim_utility.cpp:791 ../src/scim_utility.cpp:793 msgid "Chinese (simplified)" msgstr "চিনা (সরলীকৃত)" #: ../src/scim_utility.cpp:792 ../src/scim_utility.cpp:794 msgid "Chinese (traditional)" msgstr "চিনা (পারমà§à¦ªà¦°à¦¿à¦•)" #: ../src/scim_utility.cpp:876 msgid "Other" msgstr "অনà§à¦¯à¦¾à¦¨à§à¦¯" #: ../src/scim_keyboard_layout_data.h:4591 #: ../modules/IMEngine/scim_socket_imengine.cpp:386 #: ../modules/IMEngine/scim_socket_imengine.cpp:416 #: ../modules/IMEngine/scim_socket_imengine.cpp:501 #: ../modules/IMEngine/scim_socket_imengine.cpp:531 #: ../modules/IMEngine/scim_socket_imengine.cpp:561 msgid "Unknown" msgstr "অজানা" #: ../src/scim_keyboard_layout_data.h:4592 msgid "English (US)" msgstr "ইংরেজি (মারà§à¦•িন)" #: ../src/scim_keyboard_layout_data.h:4593 msgid "Belgian" msgstr "বেলজিয়ান" #: ../src/scim_keyboard_layout_data.h:4596 msgid "Czech (qwerty)" msgstr "চেক (qwerty)" #: ../src/scim_keyboard_layout_data.h:4599 msgid "Dvorak" msgstr "ডিভোরাক (Dvorak)" #: ../src/scim_keyboard_layout_data.h:4603 msgid "French (Canadian)" msgstr "ফà§à¦°à§‡à¦žà§à¦š (কানাডিয়ান)" #: ../src/scim_keyboard_layout_data.h:4604 msgid "French (Switzerland)" msgstr "ফà§à¦°à§‡à¦žà§à¦š (সà§à¦‡à§Žà¦œà¦¾à¦°à¦²à§à¦¯à¦¾à¦¨à§à¦¡)" #: ../src/scim_keyboard_layout_data.h:4606 msgid "German (with deadkeys)" msgstr "জারà§à¦®à¦¾à¦¨ (লà§à¦ªà§à¦¤-কি সহ)" #: ../src/scim_keyboard_layout_data.h:4607 msgid "German (Swiss)" msgstr "জারà§à¦®à¦¾à¦¨ (সà§à¦‡à¦¸)" #: ../src/scim_keyboard_layout_data.h:4612 msgid "Norwegian" msgstr "নরওয়েজিয়ান" #: ../src/scim_keyboard_layout_data.h:4616 msgid "Portuguese (Brazil US accents)" msgstr "পোরà§à¦¤à§à¦—িজ (বà§à¦°à¦¾à¦œà¦¿à¦² মারà§à¦•িন সà§à¦¬à¦°à¦¾à¦˜à¦¾à¦¤ চিহà§à¦¨)" #: ../src/scim_keyboard_layout_data.h:4619 msgid "Slovak (qwerty)" msgstr "সà§à¦²à§‹à¦­à¦¾à¦• (qwerty)" #: ../src/scim_keyboard_layout_data.h:4622 msgid "Spanish (CP 850)" msgstr "সà§à¦ªà§à¦¯à¦¾à¦¨à¦¿à¦¶ (CP 850)" #: ../src/scim_keyboard_layout_data.h:4623 msgid "Spanish (Latin America)" msgstr "সà§à¦ªà§à¦¯à¦¾à¦¨à¦¿à¦¶ (লাতিন আমেরিকা)" #: ../src/scim_keyboard_layout_data.h:4626 msgid "English (UK)" msgstr "ইংরেজি (যà§à¦•à§à¦¤à¦°à¦¾à¦œà§à¦¯)" #: ../modules/Filter/scim_sctc_filter.cpp:57 msgid "Simplified-Traditional Chinese Conversion" msgstr "সরলীকৃত-পারমà§à¦ªà¦°à¦¿à¦• চীনা রূপানà§à¦¤à¦°" #: ../modules/Filter/scim_sctc_filter.cpp:60 msgid "Convert between Simplified Chinese and Traditional Chinese" msgstr "সরলীকৃত চীনা ও পারমà§à¦ªà¦°à¦¿à¦• চীনার মধà§à¦¯à§‡ রূপানà§à¦¤à¦° করà§à¦¨" #: ../modules/Filter/scim_sctc_filter.cpp:71 msgid "SC-TC" msgstr "SC-TC" #: ../modules/Filter/scim_sctc_filter.cpp:73 #: ../modules/Filter/scim_sctc_filter.cpp:78 msgid "Simplified-Traditional Chinese conversion" msgstr "সরলীকৃত-পারমà§à¦ªà¦°à¦¿à¦• চীনা রূপানà§à¦¤à¦°" #: ../modules/Filter/scim_sctc_filter.cpp:76 msgid "No Conversion" msgstr "রূপানà§à¦¤à¦° করা হবে না" #: ../modules/Filter/scim_sctc_filter.cpp:81 msgid "Simplified to Traditional" msgstr "সরলীকৃত থেকে পারমà§à¦ªà¦°à¦¿à¦•" #: ../modules/Filter/scim_sctc_filter.cpp:83 msgid "Convert Simplified Chinese to Traditional Chinese" msgstr "সরলীকৃত চীনা থেকে পারমà§à¦ªà¦°à¦¿à¦• চীনাতে রূপানà§à¦¤à¦° করà§à¦¨" #: ../modules/Filter/scim_sctc_filter.cpp:86 msgid "Traditional to Simplified" msgstr "পারমà§à¦ªà¦°à¦¿à¦• থেকে সরলীকৃত" #: ../modules/Filter/scim_sctc_filter.cpp:88 msgid "Convert Traditional Chinese to Simplified Chinese" msgstr "পারমà§à¦ªà¦°à¦¿à¦• চীনা থেকে সরলীকৃত চীনাতে রূপানà§à¦¤à¦° করà§à¦¨" #: ../modules/Filter/scim_sctc_filter.cpp:300 msgid "James Su " msgstr "জেমস সৠ" #: ../modules/Filter/scim_sctc_filter.cpp:425 #: ../modules/Filter/scim_sctc_filter.cpp:555 #: ../modules/Filter/scim_sctc_filter.cpp:571 msgid "SC->TC" msgstr "SC->TC" #: ../modules/Filter/scim_sctc_filter.cpp:431 #: ../modules/Filter/scim_sctc_filter.cpp:559 #: ../modules/Filter/scim_sctc_filter.cpp:575 msgid "TC->SC" msgstr "TC->SC" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1845 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1231 #: ../extras/panel/scim_panel_gtk.cpp:2304 msgid "Smart Common Input Method platform " msgstr "সà§à¦®à¦¾à¦°à§à¦Ÿ কমন ইনপà§à¦Ÿ মেথড (SCIM) পà§à¦²à§à¦¯à¦¾à¦Ÿà¦«à¦°à§à¦® " #: ../modules/FrontEnd/scim_x11_frontend.cpp:1847 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1233 msgid "" "\n" "(C) 2002-2005 James Su \n" "\n" msgstr "" "\n" "(C) ২০০২-২০০৫ জেমস সৠ\n" "\n" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1851 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1238 msgid "" ":\n" "\n" msgstr "" ":\n" "\n" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1854 #: ../modules/FrontEnd/scim_x11_frontend.cpp:1857 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1241 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1244 msgid "" "\n" "\n" msgstr "" "\n" "\n" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:120 msgid "RAW CODE" msgstr "RAW CODE" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:127 msgid "(C) 2002-2006 James Su " msgstr "(C) ২০০২-২০০৬ জেমস সৠ" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:140 msgid "" "Hot Keys:\n" "\n" " Control+u:\n" " switch between Multibyte encoding and Unicode.\n" "\n" " Esc:\n" " reset the input method.\n" msgstr "" "হট কি:\n" "\n" " Control+u:\n" " মালà§à¦Ÿà¦¿-বাইট à¦à¦¨à¦•োডিং ও Unicode-র মধà§à¦¯à§‡ পরিবরà§à¦¤à¦¨ করà§à¦¨\n" "\n" " Esc:\n" " ইনপà§à¦Ÿ পদà§à¦§à¦¤à¦¿à¦° মান পà§à¦¨à¦°à¦¾à§Ÿ নিরà§à¦§à¦¾à¦°à¦£ করà§à¦¨à¥¤\n" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:407 #: ../modules/IMEngine/scim_rawcode_imengine.cpp:423 msgid "The status of the current input method. Click to change it." msgstr "বরà§à¦¤à¦®à¦¾à¦¨à§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ ইনপà§à¦Ÿ পদà§à¦§à¦¤à¦¿à¦° অবসà§à¦¥à¦¾à¥¤ পরিবরà§à¦¤à¦¨à§‡à¦° জনà§à¦¯ কà§à¦²à¦¿à¦• করà§à¦¨à¥¤" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:409 msgid "Unicode" msgstr "Unicode" #: ../modules/SetupUI/scim_frontend_setup.cpp:82 #: ../modules/SetupUI/scim_imengine_setup.cpp:88 msgid "Global Setup" msgstr "সারà§à¦¬à¦œà¦¨à§€à¦¨ বৈশিষà§à¦Ÿà§à¦¯" #: ../modules/SetupUI/scim_frontend_setup.cpp:87 msgid "" "Setup the global options used by All FrontEnd modules, including X11 " "FrontEnd, GTK IMModule, QT IMModule etc." msgstr "সকল FrontEnd মডিউল যেমন X11 FrontEnd, GTK IMModule, QT IMModule পà§à¦°à¦­à§ƒà¦¤à¦¿ দà§à¦¬à¦¾à¦°à¦¾ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ সারà§à¦¬à¦œà¦¨à§€à¦¨ বিকলà§à¦ªà§‡à¦° মান নিরà§à¦§à¦¾à¦°à¦£ করà§à¦¨à¥¤" #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:143 msgid "_Trigger:" msgstr "টà§à¦°à¦¿à¦—ার: (_T)" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:145 msgid "Select the trigger keys" msgstr "টà§à¦°à¦¿à¦—ার-কি নিরà§à¦¬à¦¾à¦šà¦¨ করà§à¦¨" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:147 msgid "" "The key events to turn on/off SCIM input method. Click on the button on the " "right to edit it." msgstr "SCIM ইনপà§à¦Ÿ পদà§à¦§à¦¤à¦¿ সকà§à¦°à¦¿à§Ÿ/নিষà§à¦•à§à¦°à¦¿à§Ÿ করতে বà§à¦¯à¦¬à¦¹à§ƒà¦¤ কি-র করà§à¦®à¥¤ পরিবরà§à¦¤à¦¨ করার জনà§à¦¯ ডানদিকে অবসà§à¦¥à¦¿à¦¤ বাটন কà§à¦²à¦¿à¦• করà§à¦¨à¥¤" #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:160 msgid "Turn _On:" msgstr "সকà§à¦°à¦¿à§Ÿ করà§à¦¨: (_O)" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:162 msgid "Select the Turn On keys" msgstr "সকà§à¦°à¦¿à§Ÿ করার কি (key) নিরà§à¦¬à¦¾à¦šà¦¨ করà§à¦¨" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:164 msgid "" "The key events to turn on SCIM input method. Click on the button on the " "right to edit it." msgstr "SCIM ইনপà§à¦Ÿ পদà§à¦§à¦¤à¦¿ সকà§à¦°à¦¿à§Ÿ করতে বà§à¦¯à¦¬à¦¹à§ƒà¦¤ কি-র করà§à¦®à¥¤ পরিবরà§à¦¤à¦¨ করার জনà§à¦¯ ডানদিকে অবসà§à¦¥à¦¿à¦¤ বাটন কà§à¦²à¦¿à¦• করà§à¦¨à¥¤" #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:177 msgid "Turn O_ff:" msgstr "নিষà§à¦•à§à¦°à¦¿à§Ÿ করà§à¦¨: (_f)" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:179 msgid "Select the Turn Off keys" msgstr "নিষà§à¦•à§à¦°à¦¿à§Ÿ করার কি (key) নিরà§à¦¬à¦¾à¦šà¦¨ করà§à¦¨" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:181 msgid "" "The key events to turn off SCIM input method. Click on the button on the " "right to edit it." msgstr "SCIM ইনপà§à¦Ÿ পদà§à¦§à¦¤à¦¿ নিষà§à¦•à§à¦°à¦¿à§Ÿ করতে বà§à¦¯à¦¬à¦¹à§ƒà¦¤ কি-র করà§à¦®à¥¤ পরিবরà§à¦¤à¦¨ করার জনà§à¦¯ ডানদিকে অবসà§à¦¥à¦¿à¦¤ বাটন কà§à¦²à¦¿à¦• করà§à¦¨à¥¤" #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:194 msgid "_Next input method:" msgstr "পরবরà§à¦¤à§€ ইনপà§à¦Ÿ পদà§à¦§à¦¤à¦¿ (_N)" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:196 msgid "Select the next input method keys" msgstr "পরবরà§à¦¤à§€ ইনপà§à¦Ÿ পদà§à¦§à¦¤à¦¿ নিরà§à¦¬à¦¾à¦šà¦¨à§‡à¦° জনà§à¦¯ কি (key) চিহà§à¦¨à¦¿à¦¤ করà§à¦¨" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:198 msgid "" "The key events to switch to the next input method. Click on the button on " "the right to edit it." msgstr "পরবরà§à¦¤à§€ ইনপà§à¦Ÿ পদà§à¦§à¦¤à¦¿ পà§à¦°à§Ÿà§‹à¦— করতে বà§à¦¯à¦¬à¦¹à§ƒà¦¤ কি-র করà§à¦®à¥¤ পরিবরà§à¦¤à¦¨ করার জনà§à¦¯ ডানদিকে অবসà§à¦¥à¦¿à¦¤ বাটন কà§à¦²à¦¿à¦• করà§à¦¨à¥¤" #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:213 msgid "_Previous input method:" msgstr "পূরà§à¦¬à¦¬à¦°à§à¦¤à§€ ইনপà§à¦Ÿ পদà§à¦§à¦¤à¦¿: (_P)" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:215 msgid "Select the previous input method keys" msgstr "পূরà§à¦¬à¦¬à¦°à§à¦¤à§€ ইনপà§à¦Ÿ পদà§à¦§à¦¤à¦¿ নিরà§à¦¬à¦¾à¦šà¦¨à§‡à¦° জনà§à¦¯ কি (key) চিহà§à¦¨à¦¿à¦¤ করà§à¦¨" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:217 msgid "" "The key events to switch to the previous input method. Click on the button " "on the right to edit it." msgstr "পূরà§à¦¬à¦¬à¦°à§à¦¤à§€ ইনপà§à¦Ÿ পদà§à¦§à¦¤à¦¿ পà§à¦°à§Ÿà§‹à¦— করতে বà§à¦¯à¦¬à¦¹à§ƒà¦¤ কি-র করà§à¦®à¥¤ পরিবরà§à¦¤à¦¨ করার জনà§à¦¯ ডানদিকে অবসà§à¦¥à¦¿à¦¤ বাটন কà§à¦²à¦¿à¦• করà§à¦¨à¥¤" #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:232 msgid "Show input method _menu:" msgstr "ইনপà§à¦Ÿ পদà§à¦§à¦¤à¦¿ সংকà§à¦°à¦¾à¦¨à§à¦¤ মেনৠপà§à¦°à¦¦à¦°à§à¦¶à¦¨ করা হবে: (_m)" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:234 msgid "Select the show input method menu keys" msgstr "ইনপà§à¦Ÿ পদà§à¦§à¦¤à¦¿à¦° মেনৠপà§à¦°à¦¦à¦°à§à¦¶à¦¨à§‡à¦° কি (key) নিরà§à¦¬à¦¾à¦šà¦¨ করà§à¦¨" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:236 msgid "" "The key events to show the input method menu. Click on the button on the " "right to edit it." msgstr "ইনপà§à¦Ÿ পদà§à¦§à¦¤à¦¿à¦° মেনৠপà§à¦°à¦¦à¦°à§à¦¶à¦¨à§‡à¦° জনà§à¦¯ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ কি-র করà§à¦®à¥¤ পরিবরà§à¦¤à¦¨ করার জনà§à¦¯ ডানদিকে অবসà§à¦¥à¦¿à¦¤ বাটন কà§à¦²à¦¿à¦• করà§à¦¨à¥¤" #: ../modules/SetupUI/scim_frontend_setup.cpp:306 msgid "Options" msgstr "বিবিধ বিকলà§à¦ª" #: ../modules/SetupUI/scim_frontend_setup.cpp:321 msgid "_Keyboard Layout:" msgstr "কি-বোরà§à¦¡à§‡à¦° বিনà§à¦¯à¦¾à¦¸: (_K)" #: ../modules/SetupUI/scim_frontend_setup.cpp:342 msgid "" "You should choose your currently used keyboard layout here so that input " "methods, who care about keyboard layout, could work correctly." msgstr "কি-বোরà§à¦¡ বিনà§à¦¯à¦¾à¦¸ পà§à¦°à§Ÿà§‹à¦—কারী ইনপট পদà§à¦§à¦¤à¦¿ দà§à¦¬à¦¾à¦°à¦¾ সঠিকরূপে করà§à¦® সঞà§à¦šà¦¾à¦²à¦¨à§‡à¦° জনà§à¦¯ আপনার বà§à¦¯à¦¬à¦¹à§ƒà¦¤ কি-বোরà§à¦¡ বিনà§à¦¯à¦¾à¦¸ নিরà§à¦¬à¦¾à¦šà¦¨ করà§à¦¨à¥¤" #. On The Spot. #: ../modules/SetupUI/scim_frontend_setup.cpp:346 msgid "_Embed Preedit String into client window" msgstr "কà§à¦²à¦¾à§Ÿà§‡à¦¨à§à¦Ÿ উইনà§à¦¡à§‹à¦° মধà§à¦¯à§‡ পà§à¦°à¦¿-à¦à¦¡à¦¿à¦Ÿ সà§à¦Ÿà§à¦°à¦¿à¦‚ à¦à¦®à¦¬à§‡à¦¡ করà§à¦¨ (_E)" #: ../modules/SetupUI/scim_frontend_setup.cpp:351 msgid "" "If this option is checked, the preedit string will be displayed directly in " "the client input window, rather than in a independent float window." msgstr "মান নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ হলে, কà§à¦²à¦¾à§Ÿà§‡à¦¨à§à¦Ÿ ইনপà§à¦Ÿ উইনà§à¦¡à§‹à¦° মধà§à¦¯à§‡ পà§à¦°à¦¿-à¦à¦¡à¦¿à¦Ÿ পংকà§à¦¤à¦¿ পà§à¦°à¦¦à¦°à§à¦¶à¦¨ করা হবে। অনà§à¦¯à¦¥à¦¾ সà§à¦¬à¦¤à¦¨à§à¦¤à§à¦° ভাসমান উইনà§à¦¡à§‹ রূপে পà§à¦°à¦¦à¦°à§à¦¶à¦¨ করা হবে।" #. Shared input method. #: ../modules/SetupUI/scim_frontend_setup.cpp:360 msgid "_Share the same input method among all applications" msgstr "সরà§à¦¬à¦§à¦°à¦¨à§‡à¦° অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•েশন দà§à¦¬à¦¾à¦°à¦¾ à¦à¦•ই ইনপà§à¦Ÿ পদà§à¦§à¦¤à¦¿ বà§à¦¯à¦¬à¦¹à¦¾à¦° করা হবে (_S)" #: ../modules/SetupUI/scim_frontend_setup.cpp:365 msgid "" "If this option is checked, then only one input method could be used by all " "applications at the same time.Otherwise different input method could be used " "by each application." msgstr "à¦à¦‡ বিকলà§à¦ª নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ হলে সরà§à¦¬à¦§à¦°à¦¨à§‡à¦° অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•েশন দà§à¦¬à¦¾à¦°à¦¾ à¦à¦• সময়ে শà§à¦§à§à¦®à¦¾à¦¤à§à¦° à¦à¦•টি সà§à¦¨à¦¿à¦°à§à¦¦à¦¿à¦·à§à¦Ÿ ইনপà§à¦Ÿ পদà§à¦§à¦¤à¦¿ বà§à¦¯à¦¬à¦¹à¦¾à¦° করা হবে। অনà§à¦¯à¦¥à¦¾ ভিনà§à¦¨ অà§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦•েশন দà§à¦¬à¦¾à¦°à¦¾ ভিনà§à¦¨ ইনপà§à¦Ÿ পদà§à¦§à¦¤à¦¿ বà§à¦¯à¦¬à¦¹à¦¾à¦° করা সমà§à¦­à¦¬à¥¤" #: ../modules/SetupUI/scim_frontend_setup.cpp:373 #: ../modules/SetupUI/scim_imengine_setup.cpp:453 msgid "Hotkeys" msgstr "হট-কি" #: ../modules/SetupUI/scim_imengine_setup.cpp:93 msgid "You can enable/disable input methods and set hotkeys for input methods here." msgstr "à¦à¦‡ ডায়লগের মধà§à¦¯à§‡ বিভিনà§à¦¨ ইনপà§à¦Ÿ পদà§à¦§à¦¤à¦¿ সকà§à¦°à¦¿à§Ÿ/নিষà§à¦•à§à¦°à¦¿à§Ÿ à¦à¦¬à¦‚ সেগà§à¦²à¦¿à¦° জনà§à¦¯ হট-কি নিরà§à¦§à¦¾à¦°à¦£ করা যাবে।" #: ../modules/SetupUI/scim_imengine_setup.cpp:296 msgid "The installed input method services:" msgstr "বরà§à¦¤à¦®à¦¾à¦¨à§‡ ইনসà§à¦Ÿà¦² করা ইনপà§à¦Ÿ পদà§à¦§à¦¤à¦¿ পরিসেবা:" #. Create hotkey and filter button before factory list view, because #. factory_list_selection_changed_callback may access these two buttons. #: ../modules/SetupUI/scim_imengine_setup.cpp:311 msgid "Edit _Hotkeys" msgstr "হট-কি সমà§à¦ªà¦¾à¦¦à¦¨à¦¾ (_H)" #: ../modules/SetupUI/scim_imengine_setup.cpp:320 msgid "Edit Hotkeys associated with the selected input method." msgstr "নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ ইনপà§à¦Ÿ পদà§à¦§à¦¤à¦¿à¦° সাথে যà§à¦•à§à¦¤ হট-কি সমà§à¦ªà¦¾à¦¦à¦¨à¦¾ করà§à¦¨à¥¤" #: ../modules/SetupUI/scim_imengine_setup.cpp:322 msgid "Select _Filters" msgstr "ফিলà§à¦Ÿà¦¾à¦° নিরà§à¦¬à¦¾à¦šà¦¨ করà§à¦¨ (_F)" #: ../modules/SetupUI/scim_imengine_setup.cpp:331 msgid "Select the Filters which will be attached to this input method." msgstr "চিহà§à¦¨à¦¿à¦¤ ইনপà§à¦Ÿ পদà§à¦§à¦¤à¦¿à¦° সাথে যà§à¦•à§à¦¤ করার জনà§à¦¯ ফিলà§à¦Ÿà¦¾à¦° নিরà§à¦¬à¦¾à¦šà¦¨ করà§à¦¨à¥¤" #: ../modules/SetupUI/scim_imengine_setup.cpp:348 msgid "_Expand" msgstr "পà§à¦°à¦¸à¦¾à¦°à¦£ (_E)" #: ../modules/SetupUI/scim_imengine_setup.cpp:357 msgid "Expand all language categories." msgstr "সব ভাষার বিভাগ পà§à¦°à¦¸à¦¾à¦°à¦£ করà§à¦¨à¥¤" #: ../modules/SetupUI/scim_imengine_setup.cpp:359 msgid "_Collapse" msgstr "সংকà§à¦šà¦¨ (_C)" #: ../modules/SetupUI/scim_imengine_setup.cpp:368 msgid "Collapse all language categories." msgstr "সব ভাষার বিভাগ সংকà§à¦šà¦¨ করà§à¦¨à¥¤" #: ../modules/SetupUI/scim_imengine_setup.cpp:370 msgid "E_nable All" msgstr "সকল সকà§à¦°à¦¿à§Ÿ করà§à¦¨ (_n)" #: ../modules/SetupUI/scim_imengine_setup.cpp:379 msgid "Enable all input methods." msgstr "সকল ইনপà§à¦Ÿ পদà§à¦§à¦¤à¦¿ সকà§à¦°à¦¿à§Ÿ করà§à¦¨à¥¤" #: ../modules/SetupUI/scim_imengine_setup.cpp:381 msgid "_Disable All" msgstr "সকল নিষà§à¦•à§à¦°à¦¿à§Ÿ করà§à¦¨ (_D)" #: ../modules/SetupUI/scim_imengine_setup.cpp:390 msgid "Disable all input methods." msgstr "সকল ইনপà§à¦Ÿ পদà§à¦§à¦¤à¦¿ নিষà§à¦•à§à¦°à¦¿à§Ÿ করà§à¦¨à¥¤" #: ../modules/SetupUI/scim_imengine_setup.cpp:414 #: ../modules/SetupUI/scim_imengine_setup.cpp:541 msgid "Name" msgstr "নাম" #: ../modules/SetupUI/scim_imengine_setup.cpp:432 #: ../modules/SetupUI/scim_imengine_setup.cpp:522 msgid "Enable" msgstr "সকà§à¦°à¦¿à§Ÿ করà§à¦¨" #: ../modules/SetupUI/scim_imengine_setup.cpp:467 msgid "Filters" msgstr "ফিলà§à¦Ÿà¦¾à¦°" #: ../modules/SetupUI/scim_imengine_setup.cpp:560 msgid "Languages" msgstr "ভাষা" #: ../modules/SetupUI/scim_imengine_setup.cpp:574 msgid "Description" msgstr "বিবরণ" #: ../modules/SetupUI/scim_imengine_setup.cpp:1190 #, c-format msgid "Edit Hotkeys for %s" msgstr "%s-র হট-কি সমà§à¦ªà¦¾à¦¦à¦¨à¦¾ করà§à¦¨" #: ../modules/SetupUI/scim_imengine_setup.cpp:1417 #, c-format msgid "Select Filters for %s" msgstr "%s-র ফিলà§à¦Ÿà¦¾à¦° নিরà§à¦¬à¦¾à¦šà¦¨ করà§à¦¨" #: ../modules/SetupUI/scim_imengine_setup.cpp:1450 msgid "Move _Up" msgstr "উপরে সà§à¦¥à¦¾à¦¨à¦¾à¦¨à§à¦¤à¦° (_U)" #: ../modules/SetupUI/scim_imengine_setup.cpp:1457 msgid "Move _Down" msgstr "নীচে সà§à¦¥à¦¾à¦¨à¦¾à¦¨à§à¦¤à¦° (_D)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:95 msgid "GTK" msgstr "GTK" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:100 msgid "A panel daemon based on GTK+-2.x library." msgstr "GTK+-2.x লাইবà§à¦°à§‡à¦°à¦¿à¦° উপর ভিতà§à¦¤à¦¿ করে নিরà§à¦®à¦¿à¦¤ পà§à¦¯à¦¾à¦¨à§‡à¦² ডেমন।" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:163 msgid "Always" msgstr "সরà§à¦¬à¦¦à¦¾" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:164 msgid "On demand" msgstr "পà§à¦°à§Ÿà§‹à¦œà¦¨ অনà§à¦¸à¦¾à¦°à§‡" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:165 msgid "Never" msgstr "কখনো নয়" #. Create the ToolBar setup block. #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:211 msgid "ToolBar" msgstr "টà§à¦²-বার" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:229 msgid "_Show:" msgstr "পà§à¦°à¦¦à¦°à§à¦¶à¦¨ করা হবে: (_S)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:245 msgid "Auto s_nap" msgstr "সà§à¦¬à§Ÿà¦‚কà§à¦°à¦¿à§Ÿ সà§à¦¨à§à¦¯à¦¾à¦ª (_n)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:251 msgid "Show _input method icon" msgstr "ইনপà§à¦Ÿ পদà§à¦§à¦¤à¦¿à¦° আইকন পà§à¦°à¦¦à¦°à§à¦¶à¦¨ করা হবে (_i)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:257 msgid "Show inp_ut method name" msgstr "ইনপà§à¦Ÿ পদà§à¦§à¦¤à¦¿à¦° নাম পà§à¦°à¦¦à¦°à§à¦¶à¦¨ করা হবে (_u)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:269 msgid "Hide time_out:" msgstr "সময়ের মেয়াদ আড়াল করা হবে: (_o)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:282 msgid "Show s_tick icon" msgstr "আটক করার আইকন পà§à¦°à¦¦à¦°à§à¦¶à¦¨ করা হবে (_t)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:288 msgid "Show m_enu icon" msgstr "মেনà§à¦° আইকন পà§à¦°à¦¦à¦°à§à¦¶à¦¨ করা হবে (_e)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:294 msgid "Show _help icon" msgstr "সাহাযà§à¦¯à§‡à¦° আইকন পà§à¦°à¦¦à¦°à§à¦¶à¦¨ করা হবে (_h)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:300 msgid "Show _property label" msgstr "বৈশিষà§à¦Ÿà§à¦¯ চিহà§à¦¨à¦•ারী লেবেল পà§à¦°à¦¦à¦°à§à¦¶à¦¿à¦¤ হবে (_p)" #. Create the Input Window setup block #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:311 msgid "Input window" msgstr "ইনপà§à¦Ÿ উইনà§à¦¡à§‹" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:320 msgid "E_mbedded lookup table" msgstr "à¦à¦®à¦¬à§‡à¦¡ করা অনà§à¦¸à¦¨à§à¦§à¦¾à¦¨à§‡à¦° টেবিল (_m)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:324 msgid "_Vertical lookup table" msgstr "উলমà§à¦¬ দিশায় অনà§à¦¸à¦¨à§à¦§à¦¾à¦¨à§‡à¦° টেবিল (_V)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:328 msgid "Misc" msgstr "বিবিধ" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:337 msgid "Show tra_y icon" msgstr "টà§à¦°à§‡-আইকন পà§à¦°à¦¦à¦°à§à¦¶à¦¨ করা হবে (_y)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:341 msgid "Stick _windows" msgstr "উইনà§à¦¡à§‹ আটক করা হবে (_w)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:349 msgid "_Font:" msgstr "ফনà§à¦Ÿ: (_F)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:419 msgid "" "If option \"Always\" is selected, the toolbar will always be shown on the " "screen. If option \"On demand\" is selected, it will only be shown when SCIM " "is activated. If option \"Never\" is selected, it will never be shown." msgstr "\"সরà§à¦¬à¦¦à¦¾\" নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ হলে পরà§à¦¦à¦¾à¦° মধà§à¦¯à§‡ সরà§à¦¬à¦¦à¦¾ টà§à¦²-বার পà§à¦°à¦¦à¦°à§à¦¶à¦¨ করা হবে। \"পà§à¦°à§Ÿà§‹à¦œà¦¨ অনà§à¦¸à¦¾à¦°à§‡\" নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ হলে SCIM সকà§à¦°à¦¿à§Ÿ হলে টà§à¦²-বার পà§à¦°à¦¦à¦°à§à¦¶à¦¿à¦¤ হবে à¦à¦¬à¦‚ \"কখনো নয়\" নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ হলে à¦à¦Ÿà¦¿ কখনো পà§à¦°à¦¦à¦°à§à¦¶à¦¨ করা হবে না।" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:426 msgid "If this option is checked, the toolbar will be snapped to the screen border." msgstr "à¦à¦‡ বিকলà§à¦ªà¦Ÿà¦¿ নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ হলে পরà§à¦¦à¦¾à¦° পà§à¦°à¦¾à¦¨à§à¦¤à§‡ টà§à¦²-বার আটক করা হবে।" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:431 msgid "" "The toolbar will be hidden out after this timeout is elapsed. This option is " "only valid when \"Always show\" is selected. Set to zero to disable this " "behavior." msgstr "সময়ের মেয়াদ উতà§à¦¤à§€à¦°à§à¦£ হলে টà§à¦²-বার আড়াল করা হবে। \"সরà§à¦¬à¦¦à¦¾\" পà§à¦°à¦¦à¦°à§à¦¶à¦¨ নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ হলে à¦à¦‡ বিকলà§à¦ªà§‹à¦° মান বৈধ হবে। à¦à¦‡ আচরণ পরিবরà§à¦¤à¦¨à§‡à¦° জনà§à¦¯ মান শূণà§à¦¯ নিরà§à¦§à¦¾à¦°à¦£ করà§à¦¨à¥¤" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:438 msgid "" "If this option is checked, the input method icon will be showed on the " "toolbar." msgstr "à¦à¦‡ বিকলà§à¦ªà¦Ÿà¦¿ নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ হলে টà§à¦²-বারের মধà§à¦¯à§‡ ইনপà§à¦Ÿ পদà§à¦§à¦¤à¦¿à¦° আইকন পà§à¦°à¦¦à¦°à§à¦¶à¦¿à¦¤ হবে।" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:442 msgid "" "If this option is checked, the input method name will be showed on the " "toolbar." msgstr "à¦à¦‡ বিকলà§à¦ªà¦Ÿà¦¿ নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ হলে টà§à¦²-বারের মধà§à¦¯à§‡ ইনপà§à¦Ÿ পদà§à¦§à¦¤à¦¿à¦° নাম পà§à¦°à¦¦à¦°à§à¦¶à¦¿à¦¤ হবে।" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:446 msgid "If this option is checked, the stick icon will be showed on the toolbar." msgstr "à¦à¦‡ বিকলà§à¦ªà¦Ÿà¦¿ নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ হলে টà§à¦²-বারের মধà§à¦¯à§‡ আটক করার আইকন পà§à¦°à¦¦à¦°à§à¦¶à¦¿à¦¤ হবে।" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:450 msgid "If this option is checked, the menu icon will be showed on the toolbar." msgstr "à¦à¦‡ বিকলà§à¦ªà¦Ÿà¦¿ নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ হলে টà§à¦²-বারের মধà§à¦¯à§‡ মেনৠআইকন পà§à¦°à¦¦à¦°à§à¦¶à¦¿à¦¤ হবে।" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:454 msgid "If this option is checked, the help icon will be showed on the toolbar." msgstr "à¦à¦‡ বিকলà§à¦ªà¦Ÿà¦¿ নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ হলে টà§à¦²-বারের মধà§à¦¯à§‡ সহায়তার আইকন পà§à¦°à¦¦à¦°à§à¦¶à¦¿à¦¤ হবে।" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:458 msgid "" "If this option is checked, the text label of input method properties will be " "showed on the toolbar." msgstr "à¦à¦‡ বিকলà§à¦ªà¦Ÿà¦¿ নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ হলে টà§à¦²-বারের মধà§à¦¯à§‡ ইনপà§à¦Ÿ পদà§à¦§à¦¤à¦¿à¦° বৈশিষà§à¦Ÿà§à¦¯à§‡à¦° লেবেল পà§à¦°à¦¦à¦°à§à¦¶à¦¿à¦¤ হবে।" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:462 msgid "" "If this option is checked, the lookup table will be embedded into the input " "window." msgstr "à¦à¦‡ বিকলà§à¦ªà¦Ÿà¦¿ নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ হলে ইনপà§à¦Ÿ উইনà§à¦¡à§‹à¦° মধà§à¦¯à§‡ অনà§à¦¸à¦¨à§à¦§à¦¾à¦¨à§‡à¦° টেবিল à¦à¦®à¦¬à§‡à¦¡ করা হবে।" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:467 msgid "If this option is checked, the lookup table will be displayed vertically." msgstr "à¦à¦‡ বিকলà§à¦ªà¦Ÿà¦¿ নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ হলে, অনà§à¦¸à¦¨à§à¦§à¦¾à¦¨à§‡à¦° টেবিলটি উলমà§à¦¬ দিশায় পà§à¦°à¦¦à¦°à§à¦¶à¦¿à¦¤ হবে।" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:472 msgid "" "If this option is checked, the tray icon will be showed on the desktop's " "taskbar." msgstr "à¦à¦‡ বিকলà§à¦ªà¦Ÿà¦¿ নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ হলে ডেসà§à¦•টপের টাসà§à¦•-বারের মধà§à¦¯à§‡ টà§à¦°à§‡-আইকন পà§à¦°à¦¦à¦°à§à¦¶à¦¿à¦¤ হবে।" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:476 msgid "" "If this option is checked, the toolbar, input and lookup table windows will " "be sticked to its original position." msgstr "à¦à¦‡ বিকলà§à¦ªà¦Ÿà¦¿ নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ হলে টà§à¦²-বার, ইনপà§à¦Ÿ ও অনà§à¦¸à¦¨à§à¦§à¦¾à¦¨ টেবিলের উইনà§à¦¡à§‹à¦—à§à¦²à¦¿, মূল অবসà§à¦¥à¦¾à¦¨à§‡ আটক করা হবে।" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:482 msgid "The font setting will be used in the input and lookup table windows." msgstr "ফনà§à¦Ÿà§‡à¦° চিহà§à¦¨à¦¿à¦¤ বৈশিষà§à¦Ÿà§à¦¯à¦—à§à¦²à¦¿ ইনপà§à¦Ÿ ও অনà§à¦¸à¦¨à§à¦§à¦¾à¦¨ টেবিল উইনà§à¦¡à§‹à¦° মধà§à¦¯à§‡ বà§à¦¯à¦¬à¦¹à¦¾à¦° করা হবে।" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:801 msgid "Select Interface Font" msgstr "পà§à¦°à§‡à¦•à§à¦·à¦¾à¦ªà¦Ÿà§‡ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ ফনà§à¦Ÿ নিরà§à¦¬à¦¾à¦šà¦¨ করà§à¦¨" #: ../extras/setup/scim_setup_ui.cpp:47 msgid "SCIM" msgstr "SCIM" #: ../extras/setup/scim_setup_ui.cpp:48 msgid "FrontEnd" msgstr "পà§à¦°à§‡à¦•à§à¦·à¦¾à¦ªà¦Ÿ (FrontEnd)" #: ../extras/setup/scim_setup_ui.cpp:49 msgid "IMEngine" msgstr "ইনপà§à¦Ÿ পদà§à¦§à¦¤à¦¿à¦° ইঞà§à¦œà¦¿à¦¨ (IMEngine)" #: ../extras/setup/scim_setup_ui.cpp:50 msgid "Panel" msgstr "পà§à¦¯à¦¾à¦¨à§‡à¦²" #: ../extras/setup/scim_setup_ui.cpp:51 msgid "Extra" msgstr "অতিরিকà§à¦¤ সামগà§à¦°à§€" #. #. vi:ts=4:nowrap:ai:expandtab #. #: ../extras/setup/scim_setup_ui.cpp:230 #: ../extras/setup/scim-setup.desktop.in.h:1 msgid "SCIM Input Method Setup" msgstr "SCIM ইনপà§à¦Ÿ পদà§à¦§à¦¤à¦¿ পà§à¦°à¦¸à§à¦¤à§à¦¤à¦¿" #: ../extras/setup/scim_setup_ui.cpp:369 msgid "" " Smart Common Input Method platform \n" "\n" "GUI Setup Utility\n" "\n" "\n" "\n" "Copyright 2002-2004, James Su <suzhe@tsinghua.org." "cn>" msgstr "" " সà§à¦®à¦¾à¦°à§à¦Ÿ কমন ইনপà§à¦Ÿ মেথড (SCIM) পà§à¦²à§à¦¯à¦¾à¦Ÿà¦«à¦°à§à¦® \n" "\n" "GUI পà§à¦°à¦¸à§à¦¤à§à¦¤à¦¿ বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾\n" "\n" "\n" "\n" "সà§à¦¬à¦¤à§à¦¬à¦¾à¦§à¦¿à¦•ার ২০০২-২০০৪, জেমস সৠ<suzhe@tsinghua.org." "cn>" #: ../extras/setup/scim_setup_ui.cpp:394 #, c-format msgid "The Setup for %s modules." msgstr "%s মডিউলের পà§à¦°à¦¸à§à¦¤à§à¦¤à¦¿" #: ../extras/setup/scim_setup_ui.cpp:456 msgid "Are you sure you want to quit SCIM Setup?" msgstr "SCIM পà§à¦°à¦¸à§à¦¤à§à¦¤à¦¿ বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾ থেকে পà§à¦°à¦¸à§à¦¥à¦¾à¦¨ করতে ইচà§à¦›à§à¦• কি?" #: ../extras/setup/scim_setup_ui.cpp:685 msgid "" "Not all configuration can be reloaded on the fly. Don't forget to restart " "SCIM in order to let all of the new configuration take effect." msgstr "সব কনফিগারেশন ততকà§à¦·à¦¨à¦¾à§Ž নতà§à¦¨ করে লোড করা হয় না। à¦à¦‡ কারণে, কনফিগারেশনের সকল পরিবরà§à¦¤à¦¨ পà§à¦°à§Ÿà§‹à¦— করার জনà§à¦¯ SCIM পà§à¦¨à¦°à¦¾à§Ÿ আরমà§à¦­ করা বাঞà§à¦›à¦¨à§€à§Ÿà¥¤" #: ../extras/setup/scim_setup_helper.cpp:49 msgid "SCIM Setup" msgstr "SCIM পà§à¦°à¦¸à§à¦¤à§à¦¤à¦¿" #: ../extras/setup/scim_setup_helper.cpp:51 msgid "Integrated Setup Utility based on GTK Widget library." msgstr "GTK উইজেট লাইবà§à¦°à§‡à¦°à¦¿à¦° উপর ভিতà§à¦¤à¦¿ করে নিরà§à¦®à¦¿à¦¤ পà§à¦°à¦¸à§à¦¤à§à¦¤à¦¿ বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¥¤" #: ../extras/setup/scim-setup.desktop.in.h:2 msgid "Setup utility for Smart Common Input Method platform" msgstr "সà§à¦®à¦¾à¦°à§à¦Ÿ কমন ইনপà§à¦Ÿ মেথড (SCIM) পà§à¦²à§à¦¯à¦¾à¦Ÿà¦«à¦°à§à¦®à§‡à¦° জনà§à¦¯ পà§à¦°à¦¸à§à¦¤à§à¦¤à¦¿ বà§à¦¯à¦¬à¦¸à§à¦¥à¦¾" #: ../extras/panel/scim_panel_gtk.cpp:982 msgid "SCIM Help" msgstr "SCIM সহায়তা" #: ../extras/panel/scim_panel_gtk.cpp:999 msgid "Smart Common Input Method" msgstr "সà§à¦®à¦¾à¦°à§à¦Ÿ কমন ইনপà§à¦Ÿ মেথড (SCIM)" #: ../extras/panel/scim_panel_gtk.cpp:1058 msgid "Stick/unstick the input window and the toolbar." msgstr "ইনপà§à¦Ÿ উইনà§à¦¡à§‹ ও টà§à¦²-বার আটক/মà§à¦•à§à¦¤ করà§à¦¨à¥¤" #: ../extras/panel/scim_panel_gtk.cpp:1063 msgid "Show a brief help about SCIM and the current input method." msgstr "SCIM à¦à¦¬à¦‚ বরà§à¦¤à¦®à¦¾à¦¨ ইনপà§à¦Ÿ পদà§à¦§à¦¤à¦¿ সংকà§à¦°à¦¾à¦¨à§à¦¤ সংকà§à¦·à¦¿à¦ªà§à¦¤ সহায়ক তথà§à¦¯ পà§à¦°à¦¦à¦°à§à¦¶à¦¨ করা হবে।" #: ../extras/panel/scim_panel_gtk.cpp:1068 msgid "Show command menu." msgstr "কমানà§à¦¡ মেনৠপà§à¦°à¦¦à¦°à§à¦¶à¦¨ করা হবে" #: ../extras/panel/scim_panel_gtk.cpp:2306 msgid "" "\n" "(C) 2002-2005 James Su " msgstr "" "\n" "(C) ২০০২-২০০৫ জেমস সৠ" #. Reload Configuration. #: ../extras/panel/scim_panel_gtk.cpp:2385 msgid "Reload Configuration" msgstr "কনফিগারেশন পà§à¦¨à¦°à¦¾ লোড করà§à¦¨" #. Stick #: ../extras/panel/scim_panel_gtk.cpp:2395 msgid "Stick Windows" msgstr "উইনà§à¦¡à§‹ আটক করা হবে" #. Toolbar #: ../extras/panel/scim_panel_gtk.cpp:2404 msgid "Hide Toolbar" msgstr "টà§à¦²-বার আড়াল করা হবে" #. Help #: ../extras/panel/scim_panel_gtk.cpp:2413 msgid "Help ..." msgstr "সাহাযà§à¦¯ ..." #. Clients exit. #: ../extras/panel/scim_panel_gtk.cpp:2431 msgid "Exit" msgstr "পà§à¦°à¦¸à§à¦¥à¦¾à¦¨" #: ../utils/scimstringview.c:196 msgid "Cursor Position" msgstr "কারà§à¦¸à¦¾à¦°à§‡à¦° অবসà§à¦¥à¦¾à¦¨" #: ../utils/scimstringview.c:197 msgid "The current position of the insertion cursor in chars." msgstr "সনà§à¦¨à¦¿à¦¬à§‡à¦¶ নিরà§à¦¦à§‡à¦¶à¦• কারà§à¦¸à¦¾à¦°à§‡à¦° বরà§à¦¤à¦®à¦¾à¦¨ অবসà§à¦¥à¦¾à¦¨ অকà§à¦·à¦° দà§à¦¬à¦¾à¦°à¦¾ নিরà§à¦§à¦¾à¦°à¦¿à¦¤à¥¤" #: ../utils/scimstringview.c:206 msgid "Maximum length" msgstr "সরà§à¦¬à§‹à¦šà§à¦š দৈরà§à¦˜à§à¦¯" #: ../utils/scimstringview.c:207 msgid "Maximum number of characters for this string view. Zero if no maximum." msgstr "পংকà§à¦¤à¦¿ অনà§à¦¯à¦¾à§Ÿà§€ পà§à¦°à¦¦à¦°à§à¦¶à¦¨à§‡à¦° কà§à¦·à§‡à¦¤à§à¦°à§‡ সরà§à¦¬à¦¾à¦§à¦¿à¦• অকà§à¦·à¦° সংখà§à¦¯à¦¾à¥¤ সরà§à¦¬à¦¾à¦§à¦¿à¦• মান নিরà§à¦§à¦¾à¦°à¦£ না করতে হলে শূণà§à¦¯ বà§à¦¯à¦¬à¦¹à§ƒà¦¤ হবে।" #: ../utils/scimstringview.c:216 msgid "Maximum width" msgstr "পà§à¦°à¦¸à§à¦¥à§‡à¦° সরà§à¦¬à§‹à¦šà§à¦š মাপ" #: ../utils/scimstringview.c:217 msgid "Maximum width of this string view." msgstr "পংকà§à¦¤à¦¿ অনà§à¦¯à¦¾à§Ÿà§€ পà§à¦°à¦¦à¦°à§à¦¶à¦¨à§‡à¦° কà§à¦·à§‡à¦¤à§à¦°à§‡ সরà§à¦¬à¦¾à¦§à¦¿à¦• পà§à¦°à¦¸à§à¦¥à§‡à¦° মাপ।" #: ../utils/scimstringview.c:226 msgid "Has Frame" msgstr "ফà§à¦°à§‡à¦® বিশিষà§à¦Ÿ" #: ../utils/scimstringview.c:227 msgid "FALSE removes outside bevel from string view." msgstr "পংকà§à¦¤à¦¿ অনà§à¦¯à¦¾à§Ÿà§€ পà§à¦°à¦¦à¦°à§à¦¶à¦¨à§‡à¦° কà§à¦·à§‡à¦¤à§à¦°à§‡ বাহির পà§à¦°à¦¾à¦¨à§à¦¤à§‡à¦° বিভেল বাতিল করার জনà§à¦¯ FALSE নিরà§à¦§à¦¾à¦°à¦£ করà§à¦¨à¥¤" #: ../utils/scimstringview.c:234 msgid "Draw cursor" msgstr "কারà§à¦¸à¦¾à¦° আকাঠহবে" #: ../utils/scimstringview.c:235 msgid "TRUE draw blinking cursor." msgstr "à¦à¦¿à¦²à¦¿à¦• সহ কারà§à¦¸à¦¾à¦° পà§à¦°à¦¦à¦°à§à¦¶à¦¨à§‡à¦° জনà§à¦¯ TRUE মান বà§à¦¯à¦¬à¦¹à¦¾à¦° করা আবশà§à¦¯à¦•।" #: ../utils/scimstringview.c:242 msgid "Auto move cursor" msgstr "কারà§à¦¸à¦¾à¦°à§‡à¦° সà§à¦¥à¦¾à¦¨ সà§à¦¬à§Ÿà¦‚কà§à¦°à¦¿à§Ÿà¦°à§‚পে পরিবরà§à¦¤à¦¨ করা হবে" #: ../utils/scimstringview.c:243 msgid "TRUE auto move cursor position when mouse clicking." msgstr "মাউস কà§à¦²à¦¿à¦• করার ফলে সà§à¦¬à§Ÿà¦‚কà§à¦°à¦¿à§Ÿà¦°à§‚পে কারà§à¦¸à¦¾à¦°à§‡à¦° অবসà§à¦¥à¦¾à¦¨ পরিবরà§à¦¤à¦¨à§‡à¦° জনà§à¦¯ TRUE মান আবশà§à¦¯à¦•।" #: ../utils/scimstringview.c:250 msgid "Forward button press event" msgstr "বাটন টেপার সাথে যà§à¦•à§à¦¤ ঘটনা অনà§à¦¬à¦°à§à¦¤à¦¨ করা হবে" #: ../utils/scimstringview.c:251 msgid "TRUE forward button press event to user program." msgstr "বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦•ারীর পà§à¦°à§‹à¦—à§à¦°à¦¾à¦®à§‡ বাটন টেপার সাথে যà§à¦•à§à¦¤ ঘটনা অনà§à¦¬à¦°à§à¦¤à¦¨ করার জনà§à¦¯ মান TRUE আবশà§à¦¯à¦•।" #: ../utils/scimstringview.c:258 msgid "Auto resize the widget to fit the string" msgstr "পংকà§à¦¤à¦¿à¦° মাপ অনà§à¦¯à¦¾à§Ÿà§€ উইজেটের মাপ সà§à¦¬à§Ÿà¦‚কà§à¦°à¦¿à§Ÿà¦°à§‚পে পরিবরà§à¦¤à¦¨ করা হবে" #: ../utils/scimstringview.c:259 msgid "TRUE Auto resize on." msgstr "সà§à¦¬à§Ÿà¦‚কà§à¦°à¦¿à§Ÿ মাপ পরিবরà§à¦¤à¦¨ সকà§à¦°à¦¿à§Ÿ করার জনà§à¦¯ TRUE মান বাঞà§à¦›à¦¨à§€à§Ÿà¥¤" #: ../utils/scimstringview.c:266 msgid "Width in chars" msgstr "অকà§à¦·à¦° অনà§à¦¯à¦¾à§Ÿà§€ পà§à¦°à¦¸à§à¦¥à§‡à¦° মাপ" #: ../utils/scimstringview.c:267 msgid "Number of characters to leave space for in the string view." msgstr "পংকà§à¦¤à¦¿ অনà§à¦¯à¦¾à§Ÿà§€ পà§à¦°à¦¦à¦°à§à¦¶à¦¨à§‡à¦° কà§à¦·à§‡à¦¤à§à¦°à§‡ যে সংখà§à¦¯à¦• অকà§à¦·à¦°à§‡à¦° জনà§à¦¯ সà§à¦¥à¦¾à¦¨ ফাà¦à¦•া রাখা হবে।" #: ../utils/scimstringview.c:276 msgid "Scroll offset" msgstr "সà§à¦•à§à¦°à§‹à¦²à§‡à¦° অফ-সেট মান" #: ../utils/scimstringview.c:277 msgid "Number of pixels of the string view scrolled off the screen to the left" msgstr "পংকà§à¦¤à¦¿ অনà§à¦¯à¦¾à§Ÿà§€ পà§à¦°à¦¦à¦°à§à¦¶à¦¨ কà§à¦·à§‡à¦¤à§à¦°à§‡à¦° যে পরিমাণ অংশ পরà§à¦¦à¦¾à¦° বাà¦à¦¦à¦¿à¦• থেকে আড়াল হয়ে যাবে তা পিকà§à¦¸à§‡à¦² অনà§à¦¯à¦¾à§Ÿà§€ বà§à¦¯à¦•à§à¦¤ করা হবে" #: ../utils/scimstringview.c:286 msgid "Text" msgstr "টেকà§à¦¸à¦Ÿ" #: ../utils/scimstringview.c:287 msgid "The contents of the string view" msgstr "পংকà§à¦¤à¦¿ অনà§à¦¯à¦¾à§Ÿà§€ পà§à¦°à¦¦à¦°à§à¦¶à¦¨à¦•à§à¦·à§‡à¦¤à§à¦°à§‡ পà§à¦°à¦¦à¦°à§à¦¶à¦¿à¦¤ বিষয়বসà§à¦¤à§" #: ../utils/scimkeyselection.cpp:155 msgid "Selected _Keys:" msgstr "নিরà§à¦¬à¦¾à¦šà¦¿à¦¤ কি: (_K)" #: ../utils/scimkeyselection.cpp:200 msgid "Key Code:" msgstr "কি-র কোড:" #: ../utils/scimkeyselection.cpp:218 msgid "..." msgstr "..." #: ../utils/scimkeyselection.cpp:223 msgid "Modifiers:" msgstr "পরিবরà§à¦¤à¦•:" #: ../utils/scimkeyselection.cpp:236 msgid "_Ctrl" msgstr "_Ctrl" #: ../utils/scimkeyselection.cpp:240 msgid "A_lt" msgstr "A_lt" #: ../utils/scimkeyselection.cpp:244 msgid "_Shift" msgstr "_Shift" #: ../utils/scimkeyselection.cpp:248 msgid "_Release" msgstr "মà§à¦•à§à¦¤ (_R)" #: ../utils/scimkeyselection.cpp:258 msgid "_Meta" msgstr "মিটা (_M)" #: ../utils/scimkeyselection.cpp:262 msgid "S_uper" msgstr "সà§à¦ªà¦¾à¦° (_u)" #: ../utils/scimkeyselection.cpp:266 msgid "_Hyper" msgstr "হাইপার (_H)" #: ../utils/scimkeyselection.cpp:331 msgid "Please enter a Key Code first." msgstr "অনà§à¦—à§à¦°à¦¹ করে পà§à¦°à¦¥à¦®à§‡ à¦à¦•টি কি-কোড উলà§à¦²à§‡à¦– করà§à¦¨à¥¤" #: ../utils/scimkeyselection.cpp:385 msgid "" "Press a key (or a key combination).\n" "This dialog will be closed when the key is released." msgstr "" "অনà§à¦—à§à¦°à¦¹ করে à¦à¦•টি কি (অথবা কি সংকলন) টিপà§à¦¨à¥¤\n" "কি-টি মà§à¦•à§à¦¤ করা হলে à¦à¦‡ ডায়লগটি বনà§à¦§ করা হবে।" #: ../utils/scimkeyselection.cpp:388 msgid "Grabbing a key." msgstr "কি চিহà§à¦¨à¦¿à¦¤ করà§à¦¨à¥¤" #: ../utils/scimkeyselection.cpp:678 msgid "Key Selection" msgstr "কি নিরà§à¦¬à¦¾à¦šà¦¨" #: ../utils/scimtrayicon.c:108 msgid "Orientation" msgstr "দিশা" #: ../utils/scimtrayicon.c:109 msgid "The orientation of the tray." msgstr "টà§à¦°à§‡-র দিশা" scim-1.4.14/po/ca.po000066400000000000000000001106721177210725600141140ustar00rootroot00000000000000# Traducció del scim al Català # This file is distributed under the same license as the scim package. # David Planella Molas , 2008. # Joan Duran , 2008. # msgid "" msgstr "" "Project-Id-Version: scim\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-06-22 11:40-0700\n" "PO-Revision-Date: 2008-10-19 19:02+0100\n" "Last-Translator: Joan Duran \n" "Language-Team: Ubuntu Catalan translators \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../src/scim_compose_key.cpp:126 msgid "English/European" msgstr "Anglès/europeu" #. Append an entry for forward mode. #: ../src/scim_imengine.cpp:638 #: ../src/scim_utility.cpp:693 #: ../modules/FrontEnd/scim_x11_frontend.cpp:1897 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1281 #: ../extras/panel/scim_panel_gtk.cpp:2814 msgid "English/Keyboard" msgstr "Anglès/teclat" #: ../src/scim_utility.cpp:694 msgid "Amharic" msgstr "Amhàric" #: ../src/scim_utility.cpp:695 msgid "Arabic" msgstr "Àrab" #: ../src/scim_utility.cpp:696 msgid "Arabic (Egypt)" msgstr "Àrab (Egipte)" #: ../src/scim_utility.cpp:697 msgid "Arabic (Lebanon)" msgstr "Àrab (Líban)" #: ../src/scim_utility.cpp:698 msgid "Assamese" msgstr "Assamès" #: ../src/scim_utility.cpp:699 msgid "Azerbaijani" msgstr "Àzeri" #: ../src/scim_utility.cpp:700 msgid "Belarusian" msgstr "Bielorús" #: ../src/scim_utility.cpp:701 msgid "Bulgarian" msgstr "Búlgar" #: ../src/scim_utility.cpp:702 #: ../src/scim_utility.cpp:703 msgid "Bengali" msgstr "Bengalí" #: ../src/scim_utility.cpp:704 msgid "Bengali (India)" msgstr "Bengalí (Ãndia)" #: ../src/scim_utility.cpp:705 msgid "Tibetan" msgstr "Tibetà" #: ../src/scim_utility.cpp:706 msgid "Bosnian" msgstr "Bosnià" #: ../src/scim_utility.cpp:707 msgid "Catalan" msgstr "Català" #: ../src/scim_utility.cpp:708 #: ../src/scim_keyboard_layout_data.h:4595 msgid "Czech" msgstr "Txec" #: ../src/scim_utility.cpp:709 msgid "Welsh" msgstr "Gal·lès" #: ../src/scim_utility.cpp:710 #: ../src/scim_keyboard_layout_data.h:4597 msgid "Danish" msgstr "Danès" #: ../src/scim_utility.cpp:711 #: ../src/scim_keyboard_layout_data.h:4605 msgid "German" msgstr "Alemany" #: ../src/scim_utility.cpp:712 msgid "Divehi" msgstr "Divehi" #: ../src/scim_utility.cpp:713 #: ../src/scim_keyboard_layout_data.h:4608 msgid "Greek" msgstr "Grec" #: ../src/scim_utility.cpp:714 msgid "English" msgstr "Anglès" #: ../src/scim_utility.cpp:715 msgid "English (Australian)" msgstr "Anglès (australià)" #: ../src/scim_utility.cpp:716 msgid "English (Canadian)" msgstr "Anglès (canadenc)" #: ../src/scim_utility.cpp:717 msgid "English (British)" msgstr "Anglès (britànic)" #: ../src/scim_utility.cpp:718 msgid "English (Ireland)" msgstr "Anglès (irlandès)" #: ../src/scim_utility.cpp:719 msgid "English (American)" msgstr "Anglès (americà)" #: ../src/scim_utility.cpp:720 msgid "Esperanto" msgstr "Esperanto" #: ../src/scim_utility.cpp:721 #: ../src/scim_utility.cpp:722 #: ../src/scim_keyboard_layout_data.h:4621 msgid "Spanish" msgstr "Espanyol" #: ../src/scim_utility.cpp:723 msgid "Spanish (Mexico)" msgstr "Espanyol (mexicà)" #: ../src/scim_utility.cpp:724 #: ../src/scim_keyboard_layout_data.h:4600 msgid "Estonian" msgstr "Estonià" #: ../src/scim_utility.cpp:725 msgid "Basque" msgstr "Basc" #: ../src/scim_utility.cpp:726 msgid "Persian" msgstr "Persa" #: ../src/scim_utility.cpp:727 #: ../src/scim_keyboard_layout_data.h:4601 msgid "Finnish" msgstr "Finès" #: ../src/scim_utility.cpp:728 #: ../src/scim_keyboard_layout_data.h:4602 msgid "French" msgstr "Francès" #: ../src/scim_utility.cpp:729 msgid "Irish" msgstr "Irlandès" #: ../src/scim_utility.cpp:730 msgid "Galician" msgstr "Gallec" #: ../src/scim_utility.cpp:731 msgid "Gujarati" msgstr "Gujarati" #: ../src/scim_utility.cpp:732 #: ../src/scim_utility.cpp:741 msgid "Hebrew" msgstr "Hebreu" #: ../src/scim_utility.cpp:733 msgid "Hindi" msgstr "Hindi" #: ../src/scim_utility.cpp:734 #: ../src/scim_keyboard_layout_data.h:4594 msgid "Croatian" msgstr "Croat" #: ../src/scim_utility.cpp:735 #: ../src/scim_keyboard_layout_data.h:4609 msgid "Hungarian" msgstr "Hongarès" #: ../src/scim_utility.cpp:736 msgid "Armenian" msgstr "Armeni" #: ../src/scim_utility.cpp:737 msgid "Interlingua" msgstr "Interlingua" #: ../src/scim_utility.cpp:738 msgid "Indonesian" msgstr "Indonesi" #: ../src/scim_utility.cpp:739 #: ../src/scim_keyboard_layout_data.h:4627 msgid "Icelandic" msgstr "Islandès" #: ../src/scim_utility.cpp:740 #: ../src/scim_keyboard_layout_data.h:4610 msgid "Italian" msgstr "Italià" #: ../src/scim_utility.cpp:742 #: ../src/scim_keyboard_layout_data.h:4611 msgid "Japanese" msgstr "Japonès" #: ../src/scim_utility.cpp:743 msgid "Georgian" msgstr "Georgià" #: ../src/scim_utility.cpp:744 msgid "Kazakh" msgstr "Kazakh" #: ../src/scim_utility.cpp:745 msgid "Cambodian" msgstr "Cambodjà" #: ../src/scim_utility.cpp:746 msgid "Kannada" msgstr "Kannada" #: ../src/scim_utility.cpp:747 msgid "Korean" msgstr "Coreà" #: ../src/scim_utility.cpp:748 msgid "Laothian" msgstr "Laosià" #: ../src/scim_utility.cpp:749 #: ../src/scim_keyboard_layout_data.h:4628 msgid "Lithuanian" msgstr "Lituà" #: ../src/scim_utility.cpp:750 msgid "Latvian" msgstr "Letó" #: ../src/scim_utility.cpp:751 msgid "Macedonian" msgstr "Macedoni" #: ../src/scim_utility.cpp:752 msgid "Malayalam" msgstr "Malaialam" #: ../src/scim_utility.cpp:753 msgid "Mongolian" msgstr "Mongol" #: ../src/scim_utility.cpp:754 msgid "Marathi" msgstr "Marathi" #: ../src/scim_utility.cpp:755 msgid "Malay" msgstr "Malai" #: ../src/scim_utility.cpp:756 msgid "Burmese" msgstr "Burmès" #: ../src/scim_utility.cpp:757 msgid "Nepali" msgstr "Nepalès" #: ../src/scim_utility.cpp:758 #: ../src/scim_keyboard_layout_data.h:4598 msgid "Dutch" msgstr "Holandès" #: ../src/scim_utility.cpp:759 msgid "Norwegian (nynorsk)" msgstr "Noruec (nynorsk)" #: ../src/scim_utility.cpp:760 msgid "Norwegian (bokmal)" msgstr "Noruec (bokmal)" #: ../src/scim_utility.cpp:761 msgid "Oriya" msgstr "Oriya" #: ../src/scim_utility.cpp:762 msgid "Punjabi" msgstr "Punjabi" #: ../src/scim_utility.cpp:763 #: ../src/scim_keyboard_layout_data.h:4613 msgid "Polish" msgstr "Polac" #: ../src/scim_utility.cpp:764 #: ../src/scim_utility.cpp:766 #: ../src/scim_keyboard_layout_data.h:4614 msgid "Portuguese" msgstr "Portuguès" #: ../src/scim_utility.cpp:765 #: ../src/scim_keyboard_layout_data.h:4615 msgid "Portuguese (Brazil)" msgstr "Portuguès (brasiler)" #: ../src/scim_utility.cpp:767 msgid "Romanian" msgstr "Romanès" #: ../src/scim_utility.cpp:768 #: ../src/scim_keyboard_layout_data.h:4617 msgid "Russian" msgstr "Rus" #: ../src/scim_utility.cpp:769 msgid "Sinhala" msgstr "Singalès" #: ../src/scim_utility.cpp:770 #: ../src/scim_keyboard_layout_data.h:4618 msgid "Slovak" msgstr "Eslovac" #: ../src/scim_utility.cpp:771 #: ../src/scim_keyboard_layout_data.h:4620 msgid "Slovenian" msgstr "Eslovè" #: ../src/scim_utility.cpp:772 msgid "Albanian" msgstr "Albanès" #: ../src/scim_utility.cpp:773 #: ../src/scim_utility.cpp:774 #: ../src/scim_utility.cpp:775 msgid "Serbian" msgstr "Serbi" #: ../src/scim_utility.cpp:776 #: ../src/scim_utility.cpp:778 #: ../src/scim_keyboard_layout_data.h:4624 msgid "Swedish" msgstr "Suec" #: ../src/scim_utility.cpp:777 msgid "Swedish (Finland)" msgstr "Suec (finlandès)" #: ../src/scim_utility.cpp:779 msgid "Tamil" msgstr "Tamil" #: ../src/scim_utility.cpp:780 msgid "Telugu" msgstr "Telugu" #: ../src/scim_utility.cpp:781 msgid "Thai" msgstr "Tailandès" #: ../src/scim_utility.cpp:782 #: ../src/scim_keyboard_layout_data.h:4625 msgid "Turkish" msgstr "Turc" #: ../src/scim_utility.cpp:783 msgid "Uighur" msgstr "Uigur" #: ../src/scim_utility.cpp:784 #: ../src/scim_keyboard_layout_data.h:4629 msgid "Ukrainian" msgstr "Ucraïnès" #: ../src/scim_utility.cpp:785 msgid "Urdu" msgstr "Urdú" #: ../src/scim_utility.cpp:786 msgid "Uzbek" msgstr "Uzbek" #: ../src/scim_utility.cpp:787 msgid "Vietnamese" msgstr "Vietnamita" #: ../src/scim_utility.cpp:788 msgid "Walloon" msgstr "Való" #: ../src/scim_utility.cpp:789 #: ../src/scim_utility.cpp:790 msgid "Yiddish" msgstr "Jiddisch" #: ../src/scim_utility.cpp:791 msgid "Chinese" msgstr "Xinès" #: ../src/scim_utility.cpp:792 #: ../src/scim_utility.cpp:794 msgid "Chinese (simplified)" msgstr "Xinès (simplificat)" #: ../src/scim_utility.cpp:793 #: ../src/scim_utility.cpp:795 msgid "Chinese (traditional)" msgstr "Xinès (tradicional)" #: ../src/scim_utility.cpp:877 msgid "Other" msgstr "Altre" #: ../src/scim_keyboard_layout_data.h:4591 #: ../modules/IMEngine/scim_socket_imengine.cpp:386 #: ../modules/IMEngine/scim_socket_imengine.cpp:416 #: ../modules/IMEngine/scim_socket_imengine.cpp:501 #: ../modules/IMEngine/scim_socket_imengine.cpp:531 #: ../modules/IMEngine/scim_socket_imengine.cpp:561 msgid "Unknown" msgstr "Desconegut" #: ../src/scim_keyboard_layout_data.h:4592 msgid "English (US)" msgstr "Anglès (EUA)" #: ../src/scim_keyboard_layout_data.h:4593 msgid "Belgian" msgstr "Belga" #: ../src/scim_keyboard_layout_data.h:4596 msgid "Czech (qwerty)" msgstr "Txec (qwerty)" #: ../src/scim_keyboard_layout_data.h:4599 msgid "Dvorak" msgstr "Dvorak" #: ../src/scim_keyboard_layout_data.h:4603 msgid "French (Canadian)" msgstr "Francès (canadenc)" #: ../src/scim_keyboard_layout_data.h:4604 msgid "French (Switzerland)" msgstr "Francès (suís)" #: ../src/scim_keyboard_layout_data.h:4606 msgid "German (with deadkeys)" msgstr "Alemany (amb tecles mortes)" #: ../src/scim_keyboard_layout_data.h:4607 msgid "German (Swiss)" msgstr "Alemany (suís)" #: ../src/scim_keyboard_layout_data.h:4612 msgid "Norwegian" msgstr "Noruec" #: ../src/scim_keyboard_layout_data.h:4616 msgid "Portuguese (Brazil US accents)" msgstr "Portuguès (accents EUA de Brasil)" #: ../src/scim_keyboard_layout_data.h:4619 msgid "Slovak (qwerty)" msgstr "Eslovac (qwerty)" #: ../src/scim_keyboard_layout_data.h:4622 msgid "Spanish (CP 850)" msgstr "Espanyol (CP 850)" #: ../src/scim_keyboard_layout_data.h:4623 msgid "Spanish (Latin America)" msgstr "Espanyol (Amèrica llatina)" #: ../src/scim_keyboard_layout_data.h:4626 msgid "English (UK)" msgstr "Anglès (Regne Unit)" #: ../modules/Filter/scim_sctc_filter.cpp:57 msgid "Simplified-Traditional Chinese Conversion" msgstr "Conversió de xinès simplificat-tradicional" #: ../modules/Filter/scim_sctc_filter.cpp:60 msgid "Convert between Simplified Chinese and Traditional Chinese" msgstr "Converteix entre xinès simplificat i xinès tradicional" #: ../modules/Filter/scim_sctc_filter.cpp:71 msgid "SC-TC" msgstr "XS-XT" #: ../modules/Filter/scim_sctc_filter.cpp:73 #: ../modules/Filter/scim_sctc_filter.cpp:78 msgid "Simplified-Traditional Chinese conversion" msgstr "Conversió de xinès simplificat-tradicional" #: ../modules/Filter/scim_sctc_filter.cpp:76 msgid "No Conversion" msgstr "Sense conversió" #: ../modules/Filter/scim_sctc_filter.cpp:81 msgid "Simplified to Traditional" msgstr "Simplificat a tradicional" #: ../modules/Filter/scim_sctc_filter.cpp:83 msgid "Convert Simplified Chinese to Traditional Chinese" msgstr "Converteix xinès simplificat a xinès tradicional" #: ../modules/Filter/scim_sctc_filter.cpp:86 msgid "Traditional to Simplified" msgstr "Tradicional a simplificat" #: ../modules/Filter/scim_sctc_filter.cpp:88 msgid "Convert Traditional Chinese to Simplified Chinese" msgstr "Converteix xinès tradicional a xinès simplificat" #: ../modules/Filter/scim_sctc_filter.cpp:300 msgid "James Su " msgstr "James Su " #: ../modules/Filter/scim_sctc_filter.cpp:425 #: ../modules/Filter/scim_sctc_filter.cpp:555 #: ../modules/Filter/scim_sctc_filter.cpp:571 msgid "SC->TC" msgstr "XS->XT" #: ../modules/Filter/scim_sctc_filter.cpp:431 #: ../modules/Filter/scim_sctc_filter.cpp:559 #: ../modules/Filter/scim_sctc_filter.cpp:575 msgid "TC->SC" msgstr "XT->XS" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1845 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1231 #: ../extras/panel/scim_panel_gtk.cpp:2304 msgid "Smart Common Input Method platform " msgstr "Plataforma de mètode d'entrada comú intel·ligent " #: ../modules/FrontEnd/scim_x11_frontend.cpp:1847 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1233 msgid "" "\n" "(C) 2002-2005 James Su \n" "\n" msgstr "" "\n" "(C) 2002-2005 James Su \n" "\n" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1851 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1238 msgid "" ":\n" "\n" msgstr "" ":\n" "\n" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1854 #: ../modules/FrontEnd/scim_x11_frontend.cpp:1857 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1241 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1244 msgid "" "\n" "\n" msgstr "" "\n" "\n" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:120 msgid "RAW CODE" msgstr "CODI BRUT" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:127 msgid "(C) 2002-2006 James Su " msgstr "(C) 2002-2006 James Su " #: ../modules/IMEngine/scim_rawcode_imengine.cpp:140 msgid "" "Hot Keys:\n" "\n" " Control+u:\n" " switch between Multibyte encoding and Unicode.\n" "\n" " Esc:\n" " reset the input method.\n" msgstr "" "Dreceres de teclat:\n" "\n" " Control+U:\n" " commuta entre la codificació Multibyte i la Unicode.\n" "\n" " Esc:\n" " reinicia el mètode d'entrada.\n" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:407 #: ../modules/IMEngine/scim_rawcode_imengine.cpp:423 msgid "The status of the current input method. Click to change it." msgstr "L'estat del mètode d'entrada actual. Feu clic per a canviar-lo." #: ../modules/IMEngine/scim_rawcode_imengine.cpp:409 msgid "Unicode" msgstr "Unicode" #: ../modules/SetupUI/scim_frontend_setup.cpp:82 #: ../modules/SetupUI/scim_imengine_setup.cpp:88 msgid "Global Setup" msgstr "Configuració global" #: ../modules/SetupUI/scim_frontend_setup.cpp:87 msgid "Setup the global options used by All FrontEnd modules, including X11 FrontEnd, GTK IMModule, QT IMModule etc." msgstr "Configura les opcions globals utilitzades per tots els mòduls FrontEnd, incloent l'X11 FrontEnd, el GTK IMModule, el QT IMModule, etc." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:143 msgid "_Trigger:" msgstr "_Activador:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:145 msgid "Select the trigger keys" msgstr "Seleccioneu les tecles d'activació" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:147 msgid "The key events to turn on/off SCIM input method. Click on the button on the right to edit it." msgstr "Les tecles d'esdeveniment per a activar/desactivar el mètode d'entrada SCIM. Feu clic al botó de la dreta per a editar-les." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:160 msgid "Turn _On:" msgstr "A_ctiva:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:162 msgid "Select the Turn On keys" msgstr "Seleccioneu les tecles d'activació" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:164 msgid "The key events to turn on SCIM input method. Click on the button on the right to edit it." msgstr "Les tecles d'esdeveniment per a activar el mètode d'entrada SCIM. Feu clic al botó de la dreta per a editar-les." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:177 msgid "Turn O_ff:" msgstr "_Desactiva:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:179 msgid "Select the Turn Off keys" msgstr "Seleccioneu les tecles de desactivació" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:181 msgid "The key events to turn off SCIM input method. Click on the button on the right to edit it." msgstr "Les tecles d'esdeveniment per a desactivar el mètode d'entrada SCIM. Feu clic al botó de la dreta per a editar-les." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:194 msgid "_Next input method:" msgstr "Mètode d'entrada _següent:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:196 msgid "Select the next input method keys" msgstr "Seleccioneu les tecles del mètode d'entrada següent" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:198 msgid "The key events to switch to the next input method. Click on the button on the right to edit it." msgstr "Les tecles d'esdeveniment per a commutar al mètode d'entrada següent. Feu clic al botó de la dreta per a editar-les." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:213 msgid "_Previous input method:" msgstr "Mètode d'entrada _anterior:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:215 msgid "Select the previous input method keys" msgstr "Seleccioneu les tecles del mètode d'entrada anterior" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:217 msgid "The key events to switch to the previous input method. Click on the button on the right to edit it." msgstr "Les tecles d'esdeveniment per a commutar al mètode d'entrada anterior. Feu clic al botó de la dreta per a editar-les." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:232 msgid "Show input method _menu:" msgstr "Mostra el _menú del mètode d'entrada:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:234 msgid "Select the show input method menu keys" msgstr "Seleccioneu les tecles per a mostrar el menú del mètode d'entrada" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:236 msgid "The key events to show the input method menu. Click on the button on the right to edit it." msgstr "Les tecles d'esdeveniment per a mostrar el menú del mètode d'entrada. Feu clic al botó de la dreta per a editar-les." #: ../modules/SetupUI/scim_frontend_setup.cpp:306 msgid "Options" msgstr "Opcions" #: ../modules/SetupUI/scim_frontend_setup.cpp:321 msgid "_Keyboard Layout:" msgstr "Disposició de _teclat:" #: ../modules/SetupUI/scim_frontend_setup.cpp:342 msgid "You should choose your currently used keyboard layout here so that input methods, who care about keyboard layout, could work correctly." msgstr "Hauríeu de triar la disposició de teclat que utilitzeu actualment de manera que els mètodes d'entrada, que depenen de la disposició del teclat, puguin funcionar correctament." #. On The Spot. #: ../modules/SetupUI/scim_frontend_setup.cpp:346 msgid "_Embed Preedit String into client window" msgstr "_Incrusta cadenes preeditades a la finestra del client" #: ../modules/SetupUI/scim_frontend_setup.cpp:351 msgid "If this option is checked, the preedit string will be displayed directly in the client input window, rather than in a independent float window." msgstr "Si aquesta opció està activada, la cadena de preedició es mostrarà directament a la finestra d'entrada del client enlloc d'una finestra flotant independent." #. Shared input method. #: ../modules/SetupUI/scim_frontend_setup.cpp:360 msgid "_Share the same input method among all applications" msgstr "_Comparteix el mateix mètode d'entrada entre totes les aplicacions" #: ../modules/SetupUI/scim_frontend_setup.cpp:365 msgid "If this option is checked, then only one input method could be used by all applications at the same time.Otherwise different input method could be used by each application." msgstr "Si aquesta opció està activada, llavors totes les aplicacions poden utilitzar a la vegada l'únic mètode d'entrada. Altrament, cada aplicació pot utilitzar un mètode d'entrada diferent." #: ../modules/SetupUI/scim_frontend_setup.cpp:373 #: ../modules/SetupUI/scim_imengine_setup.cpp:453 msgid "Hotkeys" msgstr "Dreceres de teclat" #: ../modules/SetupUI/scim_imengine_setup.cpp:93 msgid "You can enable/disable input methods and set hotkeys for input methods here." msgstr "Aquí podeu habilitar/inhabilitar els mètodes d'entrada i establir les dreceres de teclat per als mètodes d'entrada." #: ../modules/SetupUI/scim_imengine_setup.cpp:296 msgid "The installed input method services:" msgstr "Els serveis del mètode d'entrada instal·lats:" #. Create hotkey and filter button before factory list view, because #. factory_list_selection_changed_callback may access these two buttons. #: ../modules/SetupUI/scim_imengine_setup.cpp:311 msgid "Edit _Hotkeys" msgstr "Edi_ta les dreceres" #: ../modules/SetupUI/scim_imengine_setup.cpp:320 msgid "Edit Hotkeys associated with the selected input method." msgstr "Edita les dreceres de teclat associades amb el mètode d'entrada seleccionat." #: ../modules/SetupUI/scim_imengine_setup.cpp:322 msgid "Select _Filters" msgstr "Selecciona els _filtres" #: ../modules/SetupUI/scim_imengine_setup.cpp:331 msgid "Select the Filters which will be attached to this input method." msgstr "Selecciona els filtres que s'adjuntaran a aquest mètode d'entrada." #: ../modules/SetupUI/scim_imengine_setup.cpp:348 msgid "_Expand" msgstr "A_mplia" #: ../modules/SetupUI/scim_imengine_setup.cpp:357 msgid "Expand all language categories." msgstr "Amplia totes les categories de llenguatge." #: ../modules/SetupUI/scim_imengine_setup.cpp:359 msgid "_Collapse" msgstr "R_edueix" #: ../modules/SetupUI/scim_imengine_setup.cpp:368 msgid "Collapse all language categories." msgstr "Redueix totes les categories de llenguatge." #: ../modules/SetupUI/scim_imengine_setup.cpp:370 msgid "E_nable All" msgstr "_Habilita'ls tots" #: ../modules/SetupUI/scim_imengine_setup.cpp:379 msgid "Enable all input methods." msgstr "Habilita tots els mètodes d'entrada." #: ../modules/SetupUI/scim_imengine_setup.cpp:381 msgid "_Disable All" msgstr "_Inhabilita'ls tots" #: ../modules/SetupUI/scim_imengine_setup.cpp:390 msgid "Disable all input methods." msgstr "Inhabilita tots els mètodes d'entrada." #: ../modules/SetupUI/scim_imengine_setup.cpp:414 #: ../modules/SetupUI/scim_imengine_setup.cpp:541 msgid "Name" msgstr "Nom" #: ../modules/SetupUI/scim_imengine_setup.cpp:432 #: ../modules/SetupUI/scim_imengine_setup.cpp:522 msgid "Enable" msgstr "Habilitat" #: ../modules/SetupUI/scim_imengine_setup.cpp:467 msgid "Filters" msgstr "Filtres" #: ../modules/SetupUI/scim_imengine_setup.cpp:560 msgid "Languages" msgstr "Idiomes" #: ../modules/SetupUI/scim_imengine_setup.cpp:574 msgid "Description" msgstr "Descripció" #: ../modules/SetupUI/scim_imengine_setup.cpp:1190 #, c-format msgid "Edit Hotkeys for %s" msgstr "Edita les dreceres per a %s" #: ../modules/SetupUI/scim_imengine_setup.cpp:1417 #, c-format msgid "Select Filters for %s" msgstr "Seleccioneu els filtres per a %s" #: ../modules/SetupUI/scim_imengine_setup.cpp:1450 msgid "Move _Up" msgstr "Mou am_unt" #: ../modules/SetupUI/scim_imengine_setup.cpp:1457 msgid "Move _Down" msgstr "Mou a_vall" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:95 msgid "GTK" msgstr "GTK" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:100 msgid "A panel daemon based on GTK+-2.x library." msgstr "Un dimoni del quadre basat en la biblioteca GTK+-2.x." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:163 msgid "Always" msgstr "Sempre" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:164 msgid "On demand" msgstr "Segons demanda" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:165 msgid "Never" msgstr "Mai" #. Create the ToolBar setup block. #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:211 msgid "ToolBar" msgstr "Barra d'eines" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:229 msgid "_Show:" msgstr "_Mostra:" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:245 msgid "Auto s_nap" msgstr "D_esplaça automàticament" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:251 msgid "Show _input method icon" msgstr "Mostra la _icona del mètode d'entrada" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:257 msgid "Show inp_ut method name" msgstr "Mostra el _nom del mètode d'entrada" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:269 msgid "Hide time_out:" msgstr "Temps d'espera per a amaga_r:" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:282 msgid "Show s_tick icon" msgstr "Mostra la icona d'engan_xar" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:288 msgid "Show m_enu icon" msgstr "Mostra la i_cona de menú" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:294 msgid "Show _help icon" msgstr "Mostra la icona d'a_juda" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:300 msgid "Show _property label" msgstr "Mostra l'eti_queta de propietats" #. Create the Input Window setup block #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:311 msgid "Input window" msgstr "Finestra d'entrada" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:320 msgid "E_mbedded lookup table" msgstr "Taula de cerca incr_ustada" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:324 msgid "_Vertical lookup table" msgstr "Taula de cerca _vertical" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:328 msgid "Misc" msgstr "Miscel·lània" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:337 msgid "Show tra_y icon" msgstr "Mostra la icona a la _safata" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:341 msgid "Stick _windows" msgstr "En_ganxa les finestres" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:349 msgid "_Font:" msgstr "_Tipus de lletra:" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:419 msgid "If option \"Always\" is selected, the toolbar will always be shown on the screen. If option \"On demand\" is selected, it will only be shown when SCIM is activated. If option \"Never\" is selected, it will never be shown." msgstr "Si s'ha seleccionat l'opció «Sempre», la barra d'eines sempre es mostrarà a la pantalla. Si s'ha seleccionat l'opció «Segons demanda», només es mostrarà quan el SCIM estigui activat. Si s'ha seleccionat l'opció «Mai», llavors mai es mostrarà." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:426 msgid "If this option is checked, the toolbar will be snapped to the screen border." msgstr "Si aquesta opció està activada, la barra d'eines es desplaçarà a la cantonada de la pantalla." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:431 msgid "The toolbar will be hidden out after this timeout is elapsed. This option is only valid when \"Always show\" is selected. Set to zero to disable this behavior." msgstr "La barra d'eines s'amagarà quan s'acabi el temps d'espera. Aquesta opció només és vàlida quan s'ha seleccionat l'opció «Mostra sempre». Estableix a zero per a inhabilitar aquest comportament." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:438 msgid "If this option is checked, the input method icon will be showed on the toolbar." msgstr "Si aquesta opció està activada, la icona del mètode d'entrada es mostrarà a la barra d'eines." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:442 msgid "If this option is checked, the input method name will be showed on the toolbar." msgstr "Si aquesta opció està activada, el nom del mètode d'entrada es mostrarà a la barra d'eines." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:446 msgid "If this option is checked, the stick icon will be showed on the toolbar." msgstr "Si aquesta opció està activada, la icona d'enganxar es mostrarà a la barra d'eines." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:450 msgid "If this option is checked, the menu icon will be showed on the toolbar." msgstr "Si aquesta opció està activada, la icona de menú es mostrarà a la barra d'eines." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:454 msgid "If this option is checked, the help icon will be showed on the toolbar." msgstr "Si aquesta opció està activada, la icona d'ajuda es mostrarà a la barra d'eines." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:458 msgid "If this option is checked, the text label of input method properties will be showed on the toolbar." msgstr "Si aquesta opció està activada, l'etiqueta de text de les propietats del mètode d'entrada es mostrarà a la barra d'eines." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:462 msgid "If this option is checked, the lookup table will be embedded into the input window." msgstr "Si aquesta opció està activada, la taula de cerca s'incrustarà a la finestra d'entrada." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:467 msgid "If this option is checked, the lookup table will be displayed vertically." msgstr "Si aquesta opció està activada, la taula de cerca es mostrarà verticalment." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:472 msgid "If this option is checked, the tray icon will be showed on the desktop's taskbar." msgstr "Si aquesta opció està activada, la icona de la safata es mostrarà a la barra d'eines." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:476 msgid "If this option is checked, the toolbar, input and lookup table windows will be sticked to its original position." msgstr "Si aquesta opció està activada, la barra d'eines, l'entrada i la taula de cerca s'enganxaran a la seva posició original." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:482 msgid "The font setting will be used in the input and lookup table windows." msgstr "El tipus de lletra especificat que s'utilitzarà a les finestres d'entrada i de la taula de cerca." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:801 msgid "Select Interface Font" msgstr "Seleccioneu el tipus de lletra de la interfície" #: ../extras/setup/scim_setup_ui.cpp:47 msgid "SCIM" msgstr "SCIM" #: ../extras/setup/scim_setup_ui.cpp:48 msgid "FrontEnd" msgstr "FrontEnd" #: ../extras/setup/scim_setup_ui.cpp:49 msgid "IMEngine" msgstr "IMEngine" #: ../extras/setup/scim_setup_ui.cpp:50 msgid "Panel" msgstr "Quadre" #: ../extras/setup/scim_setup_ui.cpp:51 msgid "Extra" msgstr "Extra" #. #. vi:ts=4:nowrap:ai:expandtab #. #: ../extras/setup/scim_setup_ui.cpp:230 #: ../extras/setup/scim-setup.desktop.in.h:1 msgid "SCIM Input Method Setup" msgstr "Configuració de l'SCIM" #: ../extras/setup/scim_setup_ui.cpp:369 msgid "" " Smart Common Input Method platform \n" "\n" "GUI Setup Utility\n" "\n" "\n" "\n" "Copyright 2002-2004, James Su <suzhe@tsinghua.org.cn>" msgstr "" " Plataforma de mètode d'entrada comú intel·ligent \n" "\n" "Interfície gràfica de la utilitat de configuració\n" "\n" "\n" "\n" "Copyright 2002-2004, James Su <suzhe@tsinghua.org.cn>" #: ../extras/setup/scim_setup_ui.cpp:394 #, c-format msgid "The Setup for %s modules." msgstr "La configuració dels mòduls %s." #: ../extras/setup/scim_setup_ui.cpp:661 msgid "Not all configuration can be reloaded on the fly. Don't forget to restart SCIM in order to let all of the new configuration take effect." msgstr "No tota la configuració es tornarà a carregar immediatament. No oblideu de reiniciar l'SCIM per a permetre que la configuració nova tingui efecte." #: ../extras/setup/scim_setup_helper.cpp:49 msgid "SCIM Setup" msgstr "Configuració de l'SCIM" #: ../extras/setup/scim_setup_helper.cpp:51 msgid "Integrated Setup Utility based on GTK Widget library." msgstr "Utilitat de configuració integrada basada en la biblioteca de ginys del GTK." #: ../extras/setup/scim-setup.desktop.in.h:2 msgid "Setup utility for Smart Common Input Method platform" msgstr "Eina de configuració de la plataforma SCIM (Smart Common Input Method)" #: ../extras/panel/scim_panel_gtk.cpp:982 msgid "SCIM Help" msgstr "Ajuda de l'SCIM" #: ../extras/panel/scim_panel_gtk.cpp:999 msgid "Smart Common Input Method" msgstr "Mètode d'entrada comú intel·ligent" #: ../extras/panel/scim_panel_gtk.cpp:1058 msgid "Stick/unstick the input window and the toolbar." msgstr "Enganxa/desenganxa la finestra d'entrada i la barra d'eines." #: ../extras/panel/scim_panel_gtk.cpp:1063 msgid "Show a brief help about SCIM and the current input method." msgstr "Mostra una breu ajuda sobre l'SCIM i el mètode d'entrada actual." #: ../extras/panel/scim_panel_gtk.cpp:1068 msgid "Show command menu." msgstr "Mostra el menú d'ordres." #: ../extras/panel/scim_panel_gtk.cpp:2306 msgid "" "\n" "(C) 2002-2005 James Su " msgstr "" "\n" "(C) 2002-2005 James Su " #. Reload Configuration. #: ../extras/panel/scim_panel_gtk.cpp:2385 msgid "Reload Configuration" msgstr "Torna a carregar la configuració" #. Stick #: ../extras/panel/scim_panel_gtk.cpp:2395 msgid "Stick Windows" msgstr "Finestres enganxoses" #. Toolbar #: ../extras/panel/scim_panel_gtk.cpp:2404 msgid "Hide Toolbar" msgstr "Amaga la barra d'eines" #. Help #: ../extras/panel/scim_panel_gtk.cpp:2413 msgid "Help ..." msgstr "Ajuda..." #. Clients exit. #: ../extras/panel/scim_panel_gtk.cpp:2431 msgid "Exit" msgstr "Surt" #: ../utils/scimstringview.c:196 msgid "Cursor Position" msgstr "Posició del cursor" #: ../utils/scimstringview.c:197 msgid "The current position of the insertion cursor in chars." msgstr "La posició actual del cursor d'inserció en caràcters." #: ../utils/scimstringview.c:206 msgid "Maximum length" msgstr "Longitud màxima" #: ../utils/scimstringview.c:207 msgid "Maximum number of characters for this string view. Zero if no maximum." msgstr "Número màxim de caràcters per a aquesta visualització de la cadena. El valor zero significa que no hi ha màxim." #: ../utils/scimstringview.c:216 msgid "Maximum width" msgstr "Amplada màxima" #: ../utils/scimstringview.c:217 msgid "Maximum width of this string view." msgstr "Amplada màxima de visualització de la cadena." #: ../utils/scimstringview.c:226 msgid "Has Frame" msgstr "Té marc" #: ../utils/scimstringview.c:227 msgid "FALSE removes outside bevel from string view." msgstr "Si és fals, el marc exterior és suprimit de la visualització de la cadena." #: ../utils/scimstringview.c:234 msgid "Draw cursor" msgstr "Dibuixa un cursor" #: ../utils/scimstringview.c:235 msgid "TRUE draw blinking cursor." msgstr "Si és cert, es dibuixa un cursor parpellejant." #: ../utils/scimstringview.c:242 msgid "Auto move cursor" msgstr "Mou automàticament el cursor" #: ../utils/scimstringview.c:243 msgid "TRUE auto move cursor position when mouse clicking." msgstr "Si és cert, es mourà automàticament la posició del cursor en fer clic amb el ratolí." #: ../utils/scimstringview.c:250 msgid "Forward button press event" msgstr "El botó d'avançar activa l'esdeveniment" #: ../utils/scimstringview.c:251 msgid "TRUE forward button press event to user program." msgstr "Si és cert, el botó d'avançar activa l'esdeveniment a l'usuari del programa." #: ../utils/scimstringview.c:258 msgid "Auto resize the widget to fit the string" msgstr "Redimensiona automàticament el giny per a ajustar la cadena" #: ../utils/scimstringview.c:259 msgid "TRUE Auto resize on." msgstr "Si és cert, s'activarà el redimensionament automàtic." #: ../utils/scimstringview.c:266 msgid "Width in chars" msgstr "Amplada en caràcters" #: ../utils/scimstringview.c:267 msgid "Number of characters to leave space for in the string view." msgstr "Número de caràcters a deixar en blanc en la visualització de la cadena." #: ../utils/scimstringview.c:276 msgid "Scroll offset" msgstr "Ã’fset de desplaçament" #: ../utils/scimstringview.c:277 msgid "Number of pixels of the string view scrolled off the screen to the left" msgstr "Número de píxels de la visualització de la cadena desplaçats fora de la pantalla cap a l'esquerra" #: ../utils/scimstringview.c:286 msgid "Text" msgstr "Text" #: ../utils/scimstringview.c:287 msgid "The contents of the string view" msgstr "Els continguts de la visualització de la cadena" #: ../utils/scimkeyselection.cpp:155 msgid "Selected _Keys:" msgstr "_Tecles seleccionades:" #: ../utils/scimkeyselection.cpp:200 msgid "Key Code:" msgstr "Codi de tecla:" #: ../utils/scimkeyselection.cpp:218 msgid "..." msgstr "..." #: ../utils/scimkeyselection.cpp:223 msgid "Modifiers:" msgstr "Modificadors:" #: ../utils/scimkeyselection.cpp:236 msgid "_Ctrl" msgstr "Tecla de c_ontrol" #: ../utils/scimkeyselection.cpp:240 msgid "A_lt" msgstr "Tecla d'a_lternativa" #: ../utils/scimkeyselection.cpp:244 msgid "_Shift" msgstr "Tecla de ma_júscules" #: ../utils/scimkeyselection.cpp:248 msgid "_Release" msgstr "Alli_bera" #: ../utils/scimkeyselection.cpp:258 msgid "_Meta" msgstr "_Meta" #: ../utils/scimkeyselection.cpp:262 msgid "S_uper" msgstr "Sú_per" #: ../utils/scimkeyselection.cpp:266 msgid "_Hyper" msgstr "_Híper" #: ../utils/scimkeyselection.cpp:331 msgid "Please enter a Key Code first." msgstr "Primer hauríeu d'introduir un codi de tecla." #: ../utils/scimkeyselection.cpp:385 msgid "" "Press a key (or a key combination).\n" "This dialog will be closed when the key is released." msgstr "" "Premeu una tecla (o una combinació de tecles).\n" "Aquest diàleg es tancarà quan s'alliberi la tecla." #: ../utils/scimkeyselection.cpp:388 msgid "Grabbing a key." msgstr "Captura una tecla" #: ../utils/scimkeyselection.cpp:678 msgid "Key Selection" msgstr "Selecció de tecles" #: ../utils/scimtrayicon.c:108 msgid "Orientation" msgstr "Orientació" #: ../utils/scimtrayicon.c:109 msgid "The orientation of the tray." msgstr "L'orientació de la safata." scim-1.4.14/po/cs.po000066400000000000000000001103621177210725600141320ustar00rootroot00000000000000# translation of cs.po to Czech # translation of cs.po to cs_CZ # translation of scim.po to cs_CZ # This file is distributed under the same license as the PACKAGE package. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. # Klara Cihlarova , 2005. # msgid "" msgstr "" "Project-Id-Version: cs\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-07-20 09:50+0800\n" "PO-Revision-Date: 2005-12-11 19:55+0100\n" "Last-Translator: Klara Cihlarova \n" "Language-Team: Czech \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.10.2\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" "10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #: ../src/scim_compose_key.cpp:126 msgid "English/European" msgstr "AngliÄtina/Evropa" #. Append an entry for forward mode. #: ../src/scim_imengine.cpp:638 ../src/scim_utility.cpp:693 #: ../modules/FrontEnd/scim_x11_frontend.cpp:1897 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1281 #: ../extras/panel/scim_panel_gtk.cpp:2814 msgid "English/Keyboard" msgstr "AngliÄtina/klávesnice" #: ../src/scim_utility.cpp:694 msgid "Amharic" msgstr "AmharÅ¡tina" #: ../src/scim_utility.cpp:695 msgid "Arabic" msgstr "ArabÅ¡tina" #: ../src/scim_utility.cpp:696 msgid "Arabic (Egypt)" msgstr "ArabÅ¡tina (egyptská)" #: ../src/scim_utility.cpp:697 msgid "Arabic (Lebanon)" msgstr "ArabÅ¡tina (libanonská)" #: ../src/scim_utility.cpp:698 msgid "Assamese" msgstr "ÃsámÅ¡tina" #: ../src/scim_utility.cpp:699 msgid "Azerbaijani" msgstr "AzerbajdžánÅ¡tina" #: ../src/scim_utility.cpp:700 msgid "Belarusian" msgstr "BÄ›loruÅ¡tina" #: ../src/scim_utility.cpp:701 msgid "Bulgarian" msgstr "BulharÅ¡tina" #: ../src/scim_utility.cpp:702 ../src/scim_utility.cpp:703 msgid "Bengali" msgstr "BengálÅ¡tina" #: ../src/scim_utility.cpp:704 msgid "Bengali (India)" msgstr "BengálÅ¡tina (indická)" #: ../src/scim_utility.cpp:705 msgid "Tibetan" msgstr "TibetÅ¡tina" #: ../src/scim_utility.cpp:706 msgid "Bosnian" msgstr "BosenÅ¡tina" #: ../src/scim_utility.cpp:707 msgid "Catalan" msgstr "KatalánÅ¡tina" #: ../src/scim_utility.cpp:708 ../src/scim_keyboard_layout_data.h:4595 msgid "Czech" msgstr "ÄŒeÅ¡tina" #: ../src/scim_utility.cpp:709 msgid "Welsh" msgstr "WelÅ¡tina" #: ../src/scim_utility.cpp:710 ../src/scim_keyboard_layout_data.h:4597 msgid "Danish" msgstr "DánÅ¡tina" #: ../src/scim_utility.cpp:711 ../src/scim_keyboard_layout_data.h:4605 msgid "German" msgstr "NÄ›mÄina" #: ../src/scim_utility.cpp:712 msgid "Divehi" msgstr "" #: ../src/scim_utility.cpp:713 ../src/scim_keyboard_layout_data.h:4608 msgid "Greek" msgstr "ŘeÄtina" #: ../src/scim_utility.cpp:714 msgid "English" msgstr "AngliÄtina" #: ../src/scim_utility.cpp:715 msgid "English (Australian)" msgstr "AngliÄtina (australská)" #: ../src/scim_utility.cpp:716 msgid "English (Canadian)" msgstr "AngliÄtina (kanadská)" #: ../src/scim_utility.cpp:717 msgid "English (British)" msgstr "AngliÄtina (britská)" #: ../src/scim_utility.cpp:718 msgid "English (Ireland)" msgstr "AngliÄtina (irská)" #: ../src/scim_utility.cpp:719 msgid "English (American)" msgstr "AngliÄtina (americká)" #: ../src/scim_utility.cpp:720 ../src/scim_utility.cpp:721 #: ../src/scim_keyboard_layout_data.h:4621 msgid "Spanish" msgstr "Å panÄ›lÅ¡tina" #: ../src/scim_utility.cpp:722 msgid "Spanish (Mexico)" msgstr "Å panÄ›lÅ¡tina (mexická)" #: ../src/scim_utility.cpp:723 ../src/scim_keyboard_layout_data.h:4600 msgid "Estonian" msgstr "EstonÅ¡tina" #: ../src/scim_utility.cpp:724 msgid "Basque" msgstr "BaskiÄtina" #: ../src/scim_utility.cpp:725 msgid "Persian" msgstr "PerÅ¡tina" #: ../src/scim_utility.cpp:726 ../src/scim_keyboard_layout_data.h:4601 msgid "Finnish" msgstr "FinÅ¡tina" #: ../src/scim_utility.cpp:727 ../src/scim_keyboard_layout_data.h:4602 msgid "French" msgstr "FrancouzÅ¡tina" #: ../src/scim_utility.cpp:728 msgid "Irish" msgstr "IrÅ¡tina" #: ../src/scim_utility.cpp:729 msgid "Galician" msgstr "GalÅ¡tina" #: ../src/scim_utility.cpp:730 msgid "Gujarati" msgstr "GudžarádÅ¡tina" #: ../src/scim_utility.cpp:731 ../src/scim_utility.cpp:740 msgid "Hebrew" msgstr "HebrejÅ¡tina" #: ../src/scim_utility.cpp:732 msgid "Hindi" msgstr "HindÅ¡tina" #: ../src/scim_utility.cpp:733 ../src/scim_keyboard_layout_data.h:4594 msgid "Croatian" msgstr "ChorvatÅ¡tina" #: ../src/scim_utility.cpp:734 ../src/scim_keyboard_layout_data.h:4609 msgid "Hungarian" msgstr "MaÄarÅ¡tina" #: ../src/scim_utility.cpp:735 #, fuzzy msgid "Armenian" msgstr "RumunÅ¡tina" #: ../src/scim_utility.cpp:736 msgid "Interlingua" msgstr "Interlingua" #: ../src/scim_utility.cpp:737 msgid "Indonesian" msgstr "IndonézÅ¡tina" #: ../src/scim_utility.cpp:738 ../src/scim_keyboard_layout_data.h:4627 msgid "Icelandic" msgstr "IslandÅ¡tina" #: ../src/scim_utility.cpp:739 ../src/scim_keyboard_layout_data.h:4610 msgid "Italian" msgstr "ItalÅ¡tina" #: ../src/scim_utility.cpp:741 ../src/scim_keyboard_layout_data.h:4611 msgid "Japanese" msgstr "JaponÅ¡tina" #: ../src/scim_utility.cpp:742 #, fuzzy msgid "Georgian" msgstr "NÄ›mÄina" #: ../src/scim_utility.cpp:743 msgid "Kazakh" msgstr "KazaÅ¡tina" #: ../src/scim_utility.cpp:744 msgid "Cambodian" msgstr "KhmerÅ¡tina" #: ../src/scim_utility.cpp:745 msgid "Kannada" msgstr "KannadÅ¡tina" #: ../src/scim_utility.cpp:746 msgid "Korean" msgstr "KorejÅ¡tina" #: ../src/scim_utility.cpp:747 msgid "Laothian" msgstr "LaoÅ¡tina" #: ../src/scim_utility.cpp:748 ../src/scim_keyboard_layout_data.h:4628 msgid "Lithuanian" msgstr "LitevÅ¡tina" #: ../src/scim_utility.cpp:749 msgid "Latvian" msgstr "Lotyšština" #: ../src/scim_utility.cpp:750 msgid "Macedonian" msgstr "MakedonÅ¡tina" #: ../src/scim_utility.cpp:751 msgid "Malayalam" msgstr "MalajámÅ¡tina" #: ../src/scim_utility.cpp:752 msgid "Mongolian" msgstr "MongolÅ¡tina" #: ../src/scim_utility.cpp:753 msgid "Marathi" msgstr "MaráthÅ¡tina" #: ../src/scim_utility.cpp:754 msgid "Malay" msgstr "MalajÅ¡tina" #: ../src/scim_utility.cpp:755 msgid "Burmese" msgstr "" #: ../src/scim_utility.cpp:756 msgid "Nepali" msgstr "NepálÅ¡tina" #: ../src/scim_utility.cpp:757 ../src/scim_keyboard_layout_data.h:4598 msgid "Dutch" msgstr "Nizozemské" #: ../src/scim_utility.cpp:758 msgid "Norwegian (nynorsk)" msgstr "NorÅ¡tina (nynorsk)" #: ../src/scim_utility.cpp:759 msgid "Norwegian (bokmal)" msgstr "NorÅ¡tina (bokmal)" #: ../src/scim_utility.cpp:760 msgid "Oriya" msgstr "OrijÅ¡tina" #: ../src/scim_utility.cpp:761 msgid "Punjabi" msgstr "PandžábÅ¡tina" #: ../src/scim_utility.cpp:762 ../src/scim_keyboard_layout_data.h:4613 msgid "Polish" msgstr "PolÅ¡tina" #: ../src/scim_utility.cpp:763 ../src/scim_utility.cpp:765 #: ../src/scim_keyboard_layout_data.h:4614 msgid "Portuguese" msgstr "PortugalÅ¡tina" #: ../src/scim_utility.cpp:764 ../src/scim_keyboard_layout_data.h:4615 msgid "Portuguese (Brazil)" msgstr "PortugalÅ¡tina (brazilská)" #: ../src/scim_utility.cpp:766 msgid "Romanian" msgstr "RumunÅ¡tina" #: ../src/scim_utility.cpp:767 ../src/scim_keyboard_layout_data.h:4617 msgid "Russian" msgstr "RuÅ¡tina" #: ../src/scim_utility.cpp:768 msgid "Sinhala" msgstr "" #: ../src/scim_utility.cpp:769 ../src/scim_keyboard_layout_data.h:4618 msgid "Slovak" msgstr "SlovenÅ¡tina" #: ../src/scim_utility.cpp:770 ../src/scim_keyboard_layout_data.h:4620 msgid "Slovenian" msgstr "SlovinÅ¡tina" #: ../src/scim_utility.cpp:771 msgid "Albanian" msgstr "AlbánÅ¡tina" #: ../src/scim_utility.cpp:772 ../src/scim_utility.cpp:773 #: ../src/scim_utility.cpp:774 msgid "Serbian" msgstr "SrbÅ¡tina" #: ../src/scim_utility.cpp:775 ../src/scim_utility.cpp:777 #: ../src/scim_keyboard_layout_data.h:4624 msgid "Swedish" msgstr "Å védÅ¡tina" #: ../src/scim_utility.cpp:776 msgid "Swedish (Finland)" msgstr "Å védÅ¡tina (finská)" #: ../src/scim_utility.cpp:778 msgid "Tamil" msgstr "TamilÅ¡tina" #: ../src/scim_utility.cpp:779 msgid "Telugu" msgstr "TelugÅ¡tina" #: ../src/scim_utility.cpp:780 msgid "Thai" msgstr "ThajÅ¡tina" #: ../src/scim_utility.cpp:781 ../src/scim_keyboard_layout_data.h:4625 msgid "Turkish" msgstr "TureÄtina" #: ../src/scim_utility.cpp:782 msgid "Uighur" msgstr "UjgurÅ¡tina" #: ../src/scim_utility.cpp:783 ../src/scim_keyboard_layout_data.h:4629 msgid "Ukrainian" msgstr "UkrajinÅ¡tina" #: ../src/scim_utility.cpp:784 msgid "Urdu" msgstr "UrdÅ¡tina" #: ../src/scim_utility.cpp:785 msgid "Uzbek" msgstr "UzbeÄtina" #: ../src/scim_utility.cpp:786 msgid "Vietnamese" msgstr "VietnamÅ¡tina" #: ../src/scim_utility.cpp:787 msgid "Walloon" msgstr "Walloon" #: ../src/scim_utility.cpp:788 ../src/scim_utility.cpp:789 msgid "Yiddish" msgstr "JidiÅ¡" #: ../src/scim_utility.cpp:790 msgid "Chinese" msgstr "ČínÅ¡tina" #: ../src/scim_utility.cpp:791 ../src/scim_utility.cpp:793 msgid "Chinese (simplified)" msgstr "ČínÅ¡tina (zjednoduÅ¡ená)" #: ../src/scim_utility.cpp:792 ../src/scim_utility.cpp:794 msgid "Chinese (traditional)" msgstr "ČínÅ¡tina (tradiÄní)" #: ../src/scim_utility.cpp:876 msgid "Other" msgstr "Ostatní" #: ../src/scim_keyboard_layout_data.h:4591 #: ../modules/IMEngine/scim_socket_imengine.cpp:386 #: ../modules/IMEngine/scim_socket_imengine.cpp:416 #: ../modules/IMEngine/scim_socket_imengine.cpp:501 #: ../modules/IMEngine/scim_socket_imengine.cpp:531 #: ../modules/IMEngine/scim_socket_imengine.cpp:561 msgid "Unknown" msgstr "Neznámé" #: ../src/scim_keyboard_layout_data.h:4592 msgid "English (US)" msgstr "AngliÄtina (US)" #: ../src/scim_keyboard_layout_data.h:4593 msgid "Belgian" msgstr "BelgiÄtina" #: ../src/scim_keyboard_layout_data.h:4596 msgid "Czech (qwerty)" msgstr "ÄŒeÅ¡tina (qwerty)" #: ../src/scim_keyboard_layout_data.h:4599 msgid "Dvorak" msgstr "Dvorak" #: ../src/scim_keyboard_layout_data.h:4603 msgid "French (Canadian)" msgstr "FrancouzÅ¡tina (kanadská)" #: ../src/scim_keyboard_layout_data.h:4604 msgid "French (Switzerland)" msgstr "FrancouzÅ¡tina (Å¡výcarská)" #: ../src/scim_keyboard_layout_data.h:4606 msgid "German (with deadkeys)" msgstr "NÄ›mÄina (s mrtvými klávesami)" #: ../src/scim_keyboard_layout_data.h:4607 msgid "German (Swiss)" msgstr "NÄ›mÄina (Å¡výcarská)" #: ../src/scim_keyboard_layout_data.h:4612 msgid "Norwegian" msgstr "NorÅ¡tina" #: ../src/scim_keyboard_layout_data.h:4616 msgid "Portuguese (Brazil US accents)" msgstr "PortugalÅ¡tina (brazilská)" #: ../src/scim_keyboard_layout_data.h:4619 msgid "Slovak (qwerty)" msgstr "SlovenÅ¡tina (qwerty)" #: ../src/scim_keyboard_layout_data.h:4622 msgid "Spanish (CP 850)" msgstr "Å panÄ›lÅ¡tina (CP 850)" #: ../src/scim_keyboard_layout_data.h:4623 msgid "Spanish (Latin America)" msgstr "Å panÄ›lÅ¡tina (jihoamerická)" #: ../src/scim_keyboard_layout_data.h:4626 msgid "English (UK)" msgstr "AngliÄtina (UK)" #: ../modules/Filter/scim_sctc_filter.cpp:57 msgid "Simplified-Traditional Chinese Conversion" msgstr "PÅ™evod zjednoduÅ¡ená - tradiÄní ÄínÅ¡tina" #: ../modules/Filter/scim_sctc_filter.cpp:60 msgid "Convert between Simplified Chinese and Traditional Chinese" msgstr "PÅ™evod mezi zjednoduÅ¡enou ÄínÅ¡tinou a tradiÄní ÄínÅ¡tinou" #: ../modules/Filter/scim_sctc_filter.cpp:71 msgid "SC-TC" msgstr "SC-TC" #: ../modules/Filter/scim_sctc_filter.cpp:73 #: ../modules/Filter/scim_sctc_filter.cpp:78 msgid "Simplified-Traditional Chinese conversion" msgstr "PÅ™evod zjednoduÅ¡ená - tradiÄní ÄínÅ¡tina" #: ../modules/Filter/scim_sctc_filter.cpp:76 msgid "No Conversion" msgstr "Bez pÅ™evodu" #: ../modules/Filter/scim_sctc_filter.cpp:81 msgid "Simplified to Traditional" msgstr "Ze zjednoduÅ¡ené do tradiÄní" #: ../modules/Filter/scim_sctc_filter.cpp:83 msgid "Convert Simplified Chinese to Traditional Chinese" msgstr "PÅ™evést zjednoduÅ¡enou ÄínÅ¡tinu do tradiÄní ÄínÅ¡tiny" #: ../modules/Filter/scim_sctc_filter.cpp:86 msgid "Traditional to Simplified" msgstr "Z tradiÄní do zjednoduÅ¡ené" #: ../modules/Filter/scim_sctc_filter.cpp:88 msgid "Convert Traditional Chinese to Simplified Chinese" msgstr "PÅ™evést tradiÄní ÄínÅ¡tinu do zjednoduÅ¡ené ÄínÅ¡tiny" #: ../modules/Filter/scim_sctc_filter.cpp:300 msgid "James Su " msgstr "James Su " #: ../modules/Filter/scim_sctc_filter.cpp:425 #: ../modules/Filter/scim_sctc_filter.cpp:555 #: ../modules/Filter/scim_sctc_filter.cpp:571 msgid "SC->TC" msgstr "SC->TC" #: ../modules/Filter/scim_sctc_filter.cpp:431 #: ../modules/Filter/scim_sctc_filter.cpp:559 #: ../modules/Filter/scim_sctc_filter.cpp:575 msgid "TC->SC" msgstr "TC->SC" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1845 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1231 #: ../extras/panel/scim_panel_gtk.cpp:2304 msgid "Smart Common Input Method platform " msgstr "SCIM platforma" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1847 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1233 msgid "" "\n" "(C) 2002-2005 James Su \n" "\n" msgstr "" "\n" "(C) 2002-2005 James Su \n" "\n" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1851 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1238 msgid "" ":\n" "\n" msgstr "" ":\n" "\n" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1854 #: ../modules/FrontEnd/scim_x11_frontend.cpp:1857 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1241 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1244 msgid "" "\n" "\n" msgstr "" "\n" "\n" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:120 msgid "RAW CODE" msgstr "RAW KÓD" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:127 msgid "(C) 2002-2006 James Su " msgstr "(C) 2002-2006 James Su " #: ../modules/IMEngine/scim_rawcode_imengine.cpp:140 msgid "" "Hot Keys:\n" "\n" " Control+u:\n" " switch between Multibyte encoding and Unicode.\n" "\n" " Esc:\n" " reset the input method.\n" msgstr "" "Klávesové zkratky:\n" "\n" "\n" " Control+u:\n" " pÅ™epnutí mezi Multibyte a Unicode kódováním.\n" "\n" " Esc:\n" " zruÅ¡ení vstupní metody.\n" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:407 #: ../modules/IMEngine/scim_rawcode_imengine.cpp:423 msgid "The status of the current input method. Click to change it." msgstr "Stav aktuální vstupní metody. ZmÄ›nu provedete kliknutím." #: ../modules/IMEngine/scim_rawcode_imengine.cpp:409 msgid "Unicode" msgstr "Unicode" #: ../modules/SetupUI/scim_frontend_setup.cpp:82 #: ../modules/SetupUI/scim_imengine_setup.cpp:88 msgid "Global Setup" msgstr "Obecná nastavení" #: ../modules/SetupUI/scim_frontend_setup.cpp:87 msgid "" "Setup the global options used by All FrontEnd modules, including X11 " "FrontEnd, GTK IMModule, QT IMModule etc." msgstr "" "Nastavení klávesový zkratek používaných moduly vÄetnÄ› X11, GTK, IMModule, " "GTK IMModule, QT IMModule atd." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:143 msgid "_Trigger:" msgstr "_SpouÅ¡tÄ›ní:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:145 msgid "Select the trigger keys" msgstr "Zvolte spouÅ¡tÄ›cí klávesy" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:147 msgid "" "The key events to turn on/off SCIM input method. Click on the button on the " "right to edit it." msgstr "" "Klávesové události zapínající/vypínající SCIM vstupní metodu. Úpravu " "provedete kliknutím na tlaÄítko vpravo." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:160 msgid "Turn _On:" msgstr "_Zapnout:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:162 msgid "Select the Turn On keys" msgstr "Zvolte spouÅ¡tÄ›cí klávesy" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:164 msgid "" "The key events to turn on SCIM input method. Click on the button on the " "right to edit it." msgstr "" "Klávesové události zapínající SCIM vstupní metodu. Úpravu provedete " "kliknutím na tlaÄítko vpravo." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:177 msgid "Turn O_ff:" msgstr "_Vypnout:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:179 msgid "Select the Turn Off keys" msgstr "Zvolte vypínací klávesy" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:181 msgid "" "The key events to turn off SCIM input method. Click on the button on the " "right to edit it." msgstr "" "Klávesové události vypínající SCIM vstupní metodu. Úpravu provedete " "kliknutím na tlaÄítko vpravo." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:194 msgid "_Next input method:" msgstr "_Další vstupní metoda:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:196 msgid "Select the next input method keys" msgstr "Zvolte klávesy další vstupní metody" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:198 msgid "" "The key events to switch to the next input method. Click on the button on " "the right to edit it." msgstr "" "Klávesové události pÅ™epínající na další vstupní metodu. Úpravu provedete " "kliknutím na tlaÄítko vpravo." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:213 msgid "_Previous input method:" msgstr "_PÅ™edchozí vstupní metoda:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:215 msgid "Select the previous input method keys" msgstr "Zvolte klávesy pÅ™edchozí vstupní metody" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:217 msgid "" "The key events to switch to the previous input method. Click on the button " "on the right to edit it." msgstr "" "Klávesové události pÅ™epnutí do pÅ™edcházející vstupní metody. Úpravu " "provedete kliknutím na tlaÄítko vpravo." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:232 msgid "Show input method _menu:" msgstr "_Zobrazit nabídku vstupní metody:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:234 msgid "Select the show input method menu keys" msgstr "Zvolte klávesy zobrazení nabídky vstupní metody" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:236 msgid "" "The key events to show the input method menu. Click on the button on the " "right to edit it." msgstr "" "Klávesové události k zobrazení nabídky vstupní metody. Úpravu provedete " "kliknutím na tlaÄítko vpravo." #: ../modules/SetupUI/scim_frontend_setup.cpp:306 msgid "Options" msgstr "Volby" #: ../modules/SetupUI/scim_frontend_setup.cpp:321 msgid "_Keyboard Layout:" msgstr "_Rozložení klávesnice:" #: ../modules/SetupUI/scim_frontend_setup.cpp:342 msgid "" "You should choose your currently used keyboard layout here so that input " "methods, who care about keyboard layout, could work correctly." msgstr "" "Zde můžete nastavit své rozložení klávesnice tak, aby zvolené vstupní metody " "fungovaly korektnÄ›." #. On The Spot. #: ../modules/SetupUI/scim_frontend_setup.cpp:346 msgid "_Embed Preedit String into client window" msgstr "_Vložit pÅ™edpÅ™ipravený Å™etÄ›zec do klientského okna" #: ../modules/SetupUI/scim_frontend_setup.cpp:351 msgid "" "If this option is checked, the preedit string will be displayed directly in " "the client input window, rather than in a independent float window." msgstr "" "Pokud zvolíte tuto možnost, zobrazí se pÅ™edpÅ™ipravený Å™etÄ›zec přímo v " "klientském vstupním oknÄ› než v nezávislém plovoucím oknÄ›." #. Shared input method. #: ../modules/SetupUI/scim_frontend_setup.cpp:360 msgid "_Share the same input method among all applications" msgstr "_Zdílet vstupní metody u vÅ¡ech aplikací" #: ../modules/SetupUI/scim_frontend_setup.cpp:365 msgid "" "If this option is checked, then only one input method could be used by all " "applications at the same time.Otherwise different input method could be used " "by each application." msgstr "" "Pokud tuto volbu zaÅ¡krtnete, bude se u vÅ¡ech aplikací používat pouze jeden " "typ vstupní metody. V opaÄném případÄ› se u každé aplikace může použije jiná." #: ../modules/SetupUI/scim_frontend_setup.cpp:373 #: ../modules/SetupUI/scim_imengine_setup.cpp:453 msgid "Hotkeys" msgstr "Klávesové zkratky" #: ../modules/SetupUI/scim_imengine_setup.cpp:93 msgid "" "You can enable/disable input methods and set hotkeys for input methods here." msgstr "" "Zde můžete povolit/zakázat vstupní metody a nastavit jejich klávesové " "zkratky." #: ../modules/SetupUI/scim_imengine_setup.cpp:296 msgid "The installed input method services:" msgstr "Služby nainstalované vstupní metody:" #. Create hotkey and filter button before factory list view, because #. factory_list_selection_changed_callback may access these two buttons. #: ../modules/SetupUI/scim_imengine_setup.cpp:311 msgid "Edit _Hotkeys" msgstr "Upravit _klávesové zkratky" #: ../modules/SetupUI/scim_imengine_setup.cpp:320 msgid "Edit Hotkeys associated with the selected input method." msgstr "Úprava klávesových zkratek spojených se zvolenou vstupní metodou." #: ../modules/SetupUI/scim_imengine_setup.cpp:322 msgid "Select _Filters" msgstr "Zvolit _filtry" #: ../modules/SetupUI/scim_imengine_setup.cpp:331 msgid "Select the Filters which will be attached to this input method." msgstr "Zvolte filtry spojené s touto vstupní metodou." #: ../modules/SetupUI/scim_imengine_setup.cpp:348 msgid "_Expand" msgstr "_Rozbalit" #: ../modules/SetupUI/scim_imengine_setup.cpp:357 msgid "Expand all language categories." msgstr "Zobrazení vÅ¡ech jazykových kategorií." #: ../modules/SetupUI/scim_imengine_setup.cpp:359 msgid "_Collapse" msgstr "_Zabalit" #: ../modules/SetupUI/scim_imengine_setup.cpp:368 msgid "Collapse all language categories." msgstr "Skrytí vÅ¡ech jazykových kategorií." #: ../modules/SetupUI/scim_imengine_setup.cpp:370 msgid "E_nable All" msgstr "_Povolit vÅ¡e" #: ../modules/SetupUI/scim_imengine_setup.cpp:379 msgid "Enable all input methods." msgstr "Povolit vÅ¡echny vstupní metody." #: ../modules/SetupUI/scim_imengine_setup.cpp:381 msgid "_Disable All" msgstr "_Zakázat vÅ¡e" #: ../modules/SetupUI/scim_imengine_setup.cpp:390 msgid "Disable all input methods." msgstr "Zakázat vÅ¡echny vstupní metody." #: ../modules/SetupUI/scim_imengine_setup.cpp:414 #: ../modules/SetupUI/scim_imengine_setup.cpp:541 msgid "Name" msgstr "Název" #: ../modules/SetupUI/scim_imengine_setup.cpp:432 #: ../modules/SetupUI/scim_imengine_setup.cpp:522 msgid "Enable" msgstr "Stav" #: ../modules/SetupUI/scim_imengine_setup.cpp:467 msgid "Filters" msgstr "Filtry" #: ../modules/SetupUI/scim_imengine_setup.cpp:560 msgid "Languages" msgstr "Jazyky" #: ../modules/SetupUI/scim_imengine_setup.cpp:574 msgid "Description" msgstr "Popis" #: ../modules/SetupUI/scim_imengine_setup.cpp:1190 #, c-format msgid "Edit Hotkeys for %s" msgstr "Upravit klávesové zkratky %s" #: ../modules/SetupUI/scim_imengine_setup.cpp:1417 #, c-format msgid "Select Filters for %s" msgstr "Zvolte filtry pro %s" #: ../modules/SetupUI/scim_imengine_setup.cpp:1450 msgid "Move _Up" msgstr "Posunout na_horu" #: ../modules/SetupUI/scim_imengine_setup.cpp:1457 msgid "Move _Down" msgstr "Posunout _dolů" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:95 msgid "GTK" msgstr "GTK" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:100 msgid "A panel daemon based on GTK+-2.x library." msgstr "Démon zapuÅ¡tÄ›ný do panelu založený na knihovnÄ› GTK+-2.x." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:163 msgid "Always" msgstr "Vždy" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:164 msgid "On demand" msgstr "Na požádání" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:165 msgid "Never" msgstr "Nikdy" #. Create the ToolBar setup block. #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:211 msgid "ToolBar" msgstr "Nástrojová liÅ¡ta" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:229 msgid "_Show:" msgstr "_Zobrazit:" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:245 msgid "Auto s_nap" msgstr "Automatické pÅ™icvaknutí" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:251 msgid "Show _input method icon" msgstr "Zobrazit ikonu _vstupní metody" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:257 msgid "Show inp_ut method name" msgstr "Zobrazit _název vstupní metody" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:269 msgid "Hide time_out:" msgstr "Délka _zobrazení::" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:282 msgid "Show s_tick icon" msgstr "Zobrazit ikonu _pÅ™ilepení" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:288 msgid "Show m_enu icon" msgstr "Zobrazit ikonu _nabídky" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:294 msgid "Show _help icon" msgstr "Zobrazit ikonu _nápovÄ›dy" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:300 msgid "Show _property label" msgstr "Zobrazit _vlastnosti" #. Create the Input Window setup block #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:311 msgid "Input window" msgstr "Vstupní okno" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:320 msgid "E_mbedded lookup table" msgstr "_Vložená vyhledávací tabulka" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:324 msgid "_Vertical lookup table" msgstr "V_ertikální vyhledávací tabulka" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:328 msgid "Misc" msgstr "Různé" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:337 msgid "Show tra_y icon" msgstr "Pohltit ikonu do panelu" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:341 msgid "Stick _windows" msgstr "PÅ™iÅ¡pendlit _okno" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:349 msgid "_Font:" msgstr "_Písmo:" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:419 msgid "" "If option \"Always\" is selected, the toolbar will always be shown on the " "screen. If option \"On demand\" is selected, it will only be shown when SCIM " "is activated. If option \"Never\" is selected, it will never be shown." msgstr "" "Pokud jste zvolili \"Vždy\", bude liÅ¡ta vždy zobrazena. V případÄ› \"Na " "požádání\" bude vždy po deaktivaci SCIM skryta. U volby \"Nikdy\" se " "nezobrazí nikdy." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:426 msgid "" "If this option is checked, the toolbar will be snapped to the screen border." msgstr "" "Pokud zvolíte tuto možnost, bude nástrojová liÅ¡ta pÅ™ichycena k okraji " "pracovní plochy." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:431 msgid "" "The toolbar will be hidden out after this timeout is elapsed. This option is " "only valid when \"Always show\" is selected. Set to zero to disable this " "behavior." msgstr "" "LiÅ¡ta se skryje po uplynutí zadaného Äasu. Tato volba je platná pouze pokud " "jste souÄasnÄ› zvolili \"Vždy zobrazit'\". Funkci vypnete nastavením na " "hodnotu 0." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:438 msgid "" "If this option is checked, the input method icon will be showed on the " "toolbar." msgstr "Pokud zvolíte tuto možnost, objeví se na liÅ¡tÄ› ikona metody." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:442 msgid "" "If this option is checked, the input method name will be showed on the " "toolbar." msgstr "Pokud zvolíte tuto možnost, objeví se na liÅ¡tÄ› název vstupní metody." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:446 msgid "" "If this option is checked, the stick icon will be showed on the toolbar." msgstr "Pokud zvolíte tuto možnost, objeví se na liÅ¡tÄ› ikona pÅ™iÅ¡pendlení." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:450 msgid "If this option is checked, the menu icon will be showed on the toolbar." msgstr "Pokud zvolíte tuto možnost, objeví se na liÅ¡tÄ› ikona nabídky." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:454 msgid "If this option is checked, the help icon will be showed on the toolbar." msgstr "Pokud zvolíte tuto možnost, objeví se na liÅ¡tÄ› ikona nápovÄ›dy." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:458 msgid "" "If this option is checked, the text label of input method properties will be " "showed on the toolbar." msgstr "" "Pokud zvolíte tuto možnost, objeví se na liÅ¡tÄ› ikona vlastností vstupní " "metody." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:462 msgid "" "If this option is checked, the lookup table will be embedded into the input " "window." msgstr "" "Pokud zvolíte tuto možnost, pÅ™ipojí se vstupního okna vyhledávací tabulka." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:467 msgid "" "If this option is checked, the lookup table will be displayed vertically." msgstr "Pokud zvolíte tuto možnost, zobrazí se vyhledávací tabulka vertikálnÄ›." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:472 msgid "" "If this option is checked, the tray icon will be showed on the desktop's " "taskbar." msgstr "Pokud zvolíte tuto možnost, zapustí se ikona programu do panelu." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:476 msgid "" "If this option is checked, the toolbar, input and lookup table windows will " "be sticked to its original position." msgstr "" "Pokud zvolíte tuto možnost, liÅ¡ta nástrojů, vstupní okno a vyhledávací " "tabulka se pÅ™iÅ¡pendlí do původní pozice." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:482 msgid "The font setting will be used in the input and lookup table windows." msgstr "Nastavení písma v oknÄ› vstupu a ve vyhledávací tabulce." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:801 msgid "Select Interface Font" msgstr "Zvolte písmo rozhraní" #: ../extras/setup/scim_setup_ui.cpp:47 msgid "SCIM" msgstr "SCIM" #: ../extras/setup/scim_setup_ui.cpp:48 msgid "FrontEnd" msgstr "Rozhraní" #: ../extras/setup/scim_setup_ui.cpp:49 msgid "IMEngine" msgstr "IMEngine" #: ../extras/setup/scim_setup_ui.cpp:50 msgid "Panel" msgstr "Panel" #: ../extras/setup/scim_setup_ui.cpp:51 msgid "Extra" msgstr "Rozšíření" #. #. vi:ts=4:nowrap:ai:expandtab #. #: ../extras/setup/scim_setup_ui.cpp:230 #: ../extras/setup/scim-setup.desktop.in.h:1 msgid "SCIM Input Method Setup" msgstr "Nastavení vstupní metody SCIM" #: ../extras/setup/scim_setup_ui.cpp:369 msgid "" " Smart Common Input Method platform \n" "\n" "GUI Setup Utility\n" "\n" "\n" "\n" "Copyright 2002-2004, James Su <suzhe@tsinghua.org." "cn>" msgstr "" "Smart Common Input Method platforma \n" "\n" "Grafické rozhraní\n" "\n" "\n" "\n" "Copyright 2002-2004, James Su <suzhe@tsinghua.org." "cn>" #: ../extras/setup/scim_setup_ui.cpp:394 #, c-format msgid "The Setup for %s modules." msgstr "Nastavení %s modulů." #msgid "Are you sure you want to quit SCIM Setup?" #msgstr "Chcete skuteÄnÄ› ukonÄit nastavení SCIM?" #: ../extras/setup/scim_setup_ui.cpp:661 msgid "" "Not all configuration can be reloaded on the fly. Don't forget to restart " "SCIM in order to let all of the new configuration take effect." msgstr "Ne vÅ¡echna nastavení lze zavést za bÄ›hu. Nezapomeňte SCIM restartovat." #: ../extras/setup/scim_setup_helper.cpp:49 msgid "SCIM Setup" msgstr "Nastavit SCIM" #: ../extras/setup/scim_setup_helper.cpp:51 msgid "Integrated Setup Utility based on GTK Widget library." msgstr "Grafické rozhraní založené na knihovnÄ› GTK Widget." #: ../extras/setup/scim-setup.desktop.in.h:2 msgid "Setup utility for Smart Common Input Method platform" msgstr "Nástroj pro nastavení Smart Common Input Method platformy" #: ../extras/panel/scim_panel_gtk.cpp:982 msgid "SCIM Help" msgstr "NápovÄ›da SCIM" #: ../extras/panel/scim_panel_gtk.cpp:999 msgid "Smart Common Input Method" msgstr "Smart Common Input Method" #: ../extras/panel/scim_panel_gtk.cpp:1058 msgid "Stick/unstick the input window and the toolbar." msgstr "PÅ™iÅ¡pendlit/odÅ¡pendlit vstupní okno a nástrojovou liÅ¡tu." #: ../extras/panel/scim_panel_gtk.cpp:1063 msgid "Show a brief help about SCIM and the current input method." msgstr "Zobrazí krátkou nápovÄ›du o aktuální vstupní metodÄ›." #: ../extras/panel/scim_panel_gtk.cpp:1068 msgid "Show command menu." msgstr "Zobrazí nabídku příkazů." #: ../extras/panel/scim_panel_gtk.cpp:2306 msgid "" "\n" "(C) 2002-2005 James Su " msgstr "" "\n" "(C) 2002-2005 James Su " #. Reload Configuration. #: ../extras/panel/scim_panel_gtk.cpp:2385 msgid "Reload Configuration" msgstr "Obnovit konfiguraci" #. Stick #: ../extras/panel/scim_panel_gtk.cpp:2395 msgid "Stick Windows" msgstr "PÅ™iÅ¡pendlit okno" #. Toolbar #: ../extras/panel/scim_panel_gtk.cpp:2404 msgid "Hide Toolbar" msgstr "Skrýt liÅ¡tu" #. Help #: ../extras/panel/scim_panel_gtk.cpp:2413 msgid "Help ..." msgstr "NápovÄ›da..." #. Clients exit. #: ../extras/panel/scim_panel_gtk.cpp:2431 msgid "Exit" msgstr "UkonÄit" #: ../utils/scimstringview.c:196 msgid "Cursor Position" msgstr "Pozice kurzoru" #: ../utils/scimstringview.c:197 msgid "The current position of the insertion cursor in chars." msgstr "Aktuální pozice vkládacího kurzoru mezi znaky." #: ../utils/scimstringview.c:206 msgid "Maximum length" msgstr "Maximální délka" #: ../utils/scimstringview.c:207 msgid "Maximum number of characters for this string view. Zero if no maximum." msgstr "" "Maximální poÄet znaků pÅ™i zobrazení Å™etÄ›zce. Nula, pokud není nic nastaveno." #: ../utils/scimstringview.c:216 msgid "Maximum width" msgstr "Maximální šířka" #: ../utils/scimstringview.c:217 msgid "Maximum width of this string view." msgstr "Maximální šířka pohledu na Å™etÄ›zec." #: ../utils/scimstringview.c:226 msgid "Has Frame" msgstr "S rámem" #: ../utils/scimstringview.c:227 msgid "FALSE removes outside bevel from string view." msgstr "FALSE odstraní zkosení." #: ../utils/scimstringview.c:234 msgid "Draw cursor" msgstr "Vykreslit kurzor" #: ../utils/scimstringview.c:235 msgid "TRUE draw blinking cursor." msgstr "TRUE vykreslí blikající kurzor." #: ../utils/scimstringview.c:242 msgid "Auto move cursor" msgstr "Automatické pÅ™esunutí kurzoru" #: ../utils/scimstringview.c:243 msgid "TRUE auto move cursor position when mouse clicking." msgstr "TRUE automaticky pÅ™emístí kurzor pÅ™i kliknutí myší." #: ../utils/scimstringview.c:250 msgid "Forward button press event" msgstr "PÅ™edání událost stisknutí tlaÄítka" #: ../utils/scimstringview.c:251 msgid "TRUE forward button press event to user program." msgstr "TRUE pÅ™edá událost stisknutí tlaÄítka programu." #: ../utils/scimstringview.c:258 msgid "Auto resize the widget to fit the string" msgstr "Automatická zmÄ›na velikosti widgetu podle Å™etÄ›zce" #: ../utils/scimstringview.c:259 msgid "TRUE Auto resize on." msgstr "TRUE povolí automatickou zmÄ›nu velikosti." #: ../utils/scimstringview.c:266 msgid "Width in chars" msgstr "Šířka znaků" #: ../utils/scimstringview.c:267 msgid "Number of characters to leave space for in the string view." msgstr "PoÄet znaků, pro které se v Å™etÄ›zci vynechá místo." #: ../utils/scimstringview.c:276 msgid "Scroll offset" msgstr "Scroll offset" #: ../utils/scimstringview.c:277 msgid "Number of pixels of the string view scrolled off the screen to the left" msgstr "PoÄet pixelů v zobrazeném Å™etÄ›zci pÅ™i pÅ™esunu vlevo" #: ../utils/scimstringview.c:286 msgid "Text" msgstr "Text" #: ../utils/scimstringview.c:287 msgid "The contents of the string view" msgstr "Obsahy zobrazeného Å™etÄ›zce" #: ../utils/scimkeyselection.cpp:155 msgid "Selected _Keys:" msgstr "Zvolené _klávesy:" #: ../utils/scimkeyselection.cpp:200 msgid "Key Code:" msgstr "Kód klávesy:" #: ../utils/scimkeyselection.cpp:218 msgid "..." msgstr "..." #: ../utils/scimkeyselection.cpp:223 msgid "Modifiers:" msgstr "Modifikátor:" #: ../utils/scimkeyselection.cpp:236 msgid "_Ctrl" msgstr "_Ctrl" #: ../utils/scimkeyselection.cpp:240 msgid "A_lt" msgstr "A_lt" #: ../utils/scimkeyselection.cpp:244 msgid "_Shift" msgstr "_Shift" #: ../utils/scimkeyselection.cpp:248 msgid "_Release" msgstr "_Uvolnit" #: ../utils/scimkeyselection.cpp:258 msgid "_Meta" msgstr "_Meta" #: ../utils/scimkeyselection.cpp:262 msgid "S_uper" msgstr "S_uper" #: ../utils/scimkeyselection.cpp:266 msgid "_Hyper" msgstr "_Hyper" #: ../utils/scimkeyselection.cpp:331 msgid "Please enter a Key Code first." msgstr "Zadejte prosím nejdřív kód klávesy." #: ../utils/scimkeyselection.cpp:385 msgid "" "Press a key (or a key combination).\n" "This dialog will be closed when the key is released." msgstr "" "StisknÄ›te klávesu (nebo kombinaci kláves).\n" "Dialog se zavÅ™e po uvolnÄ›ní kláves." #: ../utils/scimkeyselection.cpp:388 msgid "Grabbing a key." msgstr "Zachycení klávesy." #: ../utils/scimkeyselection.cpp:678 msgid "Key Selection" msgstr "VýbÄ›r kláves" #: ../utils/scimtrayicon.c:108 msgid "Orientation" msgstr "Orientace" #: ../utils/scimtrayicon.c:109 msgid "The orientation of the tray." msgstr "Orientace panelu." #~ msgid "Are you sure you want to quit SCIM Setup?" #~ msgstr "Chcete skuteÄnÄ› ukonÄit nastavení SCIM?" #~ msgid "zh_CN,zh_TW,zh_HK,zh_SG,ja_JP,ko_KR" #~ msgstr "zh_CN,zh_TW,zh_HK,zh_SG,ja_JP,ko_KR" #~ msgid "En" #~ msgstr "En" scim-1.4.14/po/de.po000066400000000000000000001124551177210725600141220ustar00rootroot00000000000000# translation of de.po to # This file is distributed under the same license as the scim package. # Copyright (C) 2004 THE scim'S COPYRIGHT HOLDER. # # # Jan Hefti , 2004. # Jan Hefti , 2005. # PGP-KeyID: 0x037FD3CF , 2008. msgid "" msgstr "" "Project-Id-Version: de\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-07-20 09:50+0800\n" "PO-Revision-Date: 2008-03-26 08:04+1000\n" "Last-Translator: PGP-KeyID: 0x037FD3CF \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: KBabel 1.11.4\n" #: ../src/scim_compose_key.cpp:126 msgid "English/European" msgstr "Deutsch/Europäisch" #. Append an entry for forward mode. #: ../src/scim_imengine.cpp:638 ../src/scim_utility.cpp:693 #: ../modules/FrontEnd/scim_x11_frontend.cpp:1897 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1281 #: ../extras/panel/scim_panel_gtk.cpp:2814 msgid "English/Keyboard" msgstr "Deutsch/Tastatur" #: ../src/scim_utility.cpp:694 msgid "Amharic" msgstr "Amharisch" #: ../src/scim_utility.cpp:695 msgid "Arabic" msgstr "Arabisch" #: ../src/scim_utility.cpp:696 msgid "Arabic (Egypt)" msgstr "Arabisch (Ägypten)" #: ../src/scim_utility.cpp:697 msgid "Arabic (Lebanon)" msgstr "Arabisch (Libanon)" #: ../src/scim_utility.cpp:698 msgid "Assamese" msgstr "Assamesisch" #: ../src/scim_utility.cpp:699 msgid "Azerbaijani" msgstr "Aserbaidschanisch" #: ../src/scim_utility.cpp:700 msgid "Belarusian" msgstr "Weißrussisch" #: ../src/scim_utility.cpp:701 msgid "Bulgarian" msgstr "Bulgarisch" #: ../src/scim_utility.cpp:702 ../src/scim_utility.cpp:703 msgid "Bengali" msgstr "Bengalisch" #: ../src/scim_utility.cpp:704 msgid "Bengali (India)" msgstr "Bengalisch (Indien)" #: ../src/scim_utility.cpp:705 msgid "Tibetan" msgstr "Tibetisch" #: ../src/scim_utility.cpp:706 msgid "Bosnian" msgstr "Bosnisch" #: ../src/scim_utility.cpp:707 msgid "Catalan" msgstr "Katalanisch" #: ../src/scim_utility.cpp:708 ../src/scim_keyboard_layout_data.h:4595 msgid "Czech" msgstr "Tschechisch" #: ../src/scim_utility.cpp:709 msgid "Welsh" msgstr "Walisisch" #: ../src/scim_utility.cpp:710 ../src/scim_keyboard_layout_data.h:4597 msgid "Danish" msgstr "Dänisch" #: ../src/scim_utility.cpp:711 ../src/scim_keyboard_layout_data.h:4605 msgid "German" msgstr "Deutsch" #: ../src/scim_utility.cpp:712 msgid "Divehi" msgstr "Divehi" #: ../src/scim_utility.cpp:713 ../src/scim_keyboard_layout_data.h:4608 msgid "Greek" msgstr "Griechisch" #: ../src/scim_utility.cpp:714 msgid "English" msgstr "Englisch" #: ../src/scim_utility.cpp:715 msgid "English (Australian)" msgstr "Englisch (Australien)" #: ../src/scim_utility.cpp:716 msgid "English (Canadian)" msgstr "Englisch (Kanada)" #: ../src/scim_utility.cpp:717 msgid "English (British)" msgstr "Englisch (Großbritannien)" #: ../src/scim_utility.cpp:718 msgid "English (Ireland)" msgstr "Englisch (Irland)" #: ../src/scim_utility.cpp:719 msgid "English (American)" msgstr "Englisch (USA)" #: ../src/scim_utility.cpp:720 ../src/scim_utility.cpp:721 #: ../src/scim_keyboard_layout_data.h:4621 msgid "Spanish" msgstr "Spanisch" #: ../src/scim_utility.cpp:722 msgid "Spanish (Mexico)" msgstr "Spanisch (Mexiko)" #: ../src/scim_utility.cpp:723 ../src/scim_keyboard_layout_data.h:4600 msgid "Estonian" msgstr "Estnisch" #: ../src/scim_utility.cpp:724 msgid "Basque" msgstr "Baskisch" #: ../src/scim_utility.cpp:725 msgid "Persian" msgstr "Persisch" #: ../src/scim_utility.cpp:726 ../src/scim_keyboard_layout_data.h:4601 msgid "Finnish" msgstr "Finnisch" #: ../src/scim_utility.cpp:727 ../src/scim_keyboard_layout_data.h:4602 msgid "French" msgstr "Französisch" #: ../src/scim_utility.cpp:728 msgid "Irish" msgstr "Irisch" #: ../src/scim_utility.cpp:729 msgid "Galician" msgstr "Galizisch" #: ../src/scim_utility.cpp:730 msgid "Gujarati" msgstr "Gujarati" #: ../src/scim_utility.cpp:731 ../src/scim_utility.cpp:740 msgid "Hebrew" msgstr "Hebräisch" #: ../src/scim_utility.cpp:732 msgid "Hindi" msgstr "Hindi" #: ../src/scim_utility.cpp:733 ../src/scim_keyboard_layout_data.h:4594 msgid "Croatian" msgstr "Kroatisch" #: ../src/scim_utility.cpp:734 ../src/scim_keyboard_layout_data.h:4609 msgid "Hungarian" msgstr "Ungarisch" #: ../src/scim_utility.cpp:735 msgid "Armenian" msgstr "Armenisch" #: ../src/scim_utility.cpp:736 msgid "Interlingua" msgstr "Interlingua" #: ../src/scim_utility.cpp:737 msgid "Indonesian" msgstr "Indonesisch" #: ../src/scim_utility.cpp:738 ../src/scim_keyboard_layout_data.h:4627 msgid "Icelandic" msgstr "Isländisch" #: ../src/scim_utility.cpp:739 ../src/scim_keyboard_layout_data.h:4610 msgid "Italian" msgstr "Italienisch" #: ../src/scim_utility.cpp:741 ../src/scim_keyboard_layout_data.h:4611 msgid "Japanese" msgstr "Japanisch" #: ../src/scim_utility.cpp:742 msgid "Georgian" msgstr "Georgisch" #: ../src/scim_utility.cpp:743 msgid "Kazakh" msgstr "Kasachisch" #: ../src/scim_utility.cpp:744 msgid "Cambodian" msgstr "Kambodschanisch" #: ../src/scim_utility.cpp:745 msgid "Kannada" msgstr "Kannada" #: ../src/scim_utility.cpp:746 msgid "Korean" msgstr "Koreanisch" #: ../src/scim_utility.cpp:747 msgid "Laothian" msgstr "Laotisch" #: ../src/scim_utility.cpp:748 ../src/scim_keyboard_layout_data.h:4628 msgid "Lithuanian" msgstr "Litauisch" #: ../src/scim_utility.cpp:749 msgid "Latvian" msgstr "Lettisch" #: ../src/scim_utility.cpp:750 msgid "Macedonian" msgstr "Mazedonisch" #: ../src/scim_utility.cpp:751 msgid "Malayalam" msgstr "Malajalam" #: ../src/scim_utility.cpp:752 msgid "Mongolian" msgstr "Mongolisch" #: ../src/scim_utility.cpp:753 msgid "Marathi" msgstr "Marathi" #: ../src/scim_utility.cpp:754 msgid "Malay" msgstr "Malaysisch" #: ../src/scim_utility.cpp:755 msgid "Burmese" msgstr "Burmesisch" #: ../src/scim_utility.cpp:756 msgid "Nepali" msgstr "Nepalesisch" #: ../src/scim_utility.cpp:757 ../src/scim_keyboard_layout_data.h:4598 msgid "Dutch" msgstr "Niederländisch" #: ../src/scim_utility.cpp:758 msgid "Norwegian (nynorsk)" msgstr "Norwegisch (Nynorsk)" #: ../src/scim_utility.cpp:759 msgid "Norwegian (bokmal)" msgstr "Norwegisch (Bokmal)" #: ../src/scim_utility.cpp:760 msgid "Oriya" msgstr "Orija" #: ../src/scim_utility.cpp:761 msgid "Punjabi" msgstr "Pandschabi" #: ../src/scim_utility.cpp:762 ../src/scim_keyboard_layout_data.h:4613 msgid "Polish" msgstr "Polnisch" #: ../src/scim_utility.cpp:763 ../src/scim_utility.cpp:765 #: ../src/scim_keyboard_layout_data.h:4614 msgid "Portuguese" msgstr "Portugiesisch" #: ../src/scim_utility.cpp:764 ../src/scim_keyboard_layout_data.h:4615 msgid "Portuguese (Brazil)" msgstr "Portugiesisch (Brasilien)" #: ../src/scim_utility.cpp:766 msgid "Romanian" msgstr "Rumänisch" #: ../src/scim_utility.cpp:767 ../src/scim_keyboard_layout_data.h:4617 msgid "Russian" msgstr "Russisch" #: ../src/scim_utility.cpp:768 msgid "Sinhala" msgstr "Sinhala" #: ../src/scim_utility.cpp:769 ../src/scim_keyboard_layout_data.h:4618 msgid "Slovak" msgstr "Slowakisch" #: ../src/scim_utility.cpp:770 ../src/scim_keyboard_layout_data.h:4620 msgid "Slovenian" msgstr "Slowenisch" #: ../src/scim_utility.cpp:771 msgid "Albanian" msgstr "Albanisch" #: ../src/scim_utility.cpp:772 ../src/scim_utility.cpp:773 #: ../src/scim_utility.cpp:774 msgid "Serbian" msgstr "Serbisch" #: ../src/scim_utility.cpp:775 ../src/scim_utility.cpp:777 #: ../src/scim_keyboard_layout_data.h:4624 msgid "Swedish" msgstr "Schwedisch" #: ../src/scim_utility.cpp:776 msgid "Swedish (Finland)" msgstr "Schwedisch (Finnland)" #: ../src/scim_utility.cpp:778 msgid "Tamil" msgstr "Tamilisch" #: ../src/scim_utility.cpp:779 msgid "Telugu" msgstr "Telugu" #: ../src/scim_utility.cpp:780 msgid "Thai" msgstr "Thai" #: ../src/scim_utility.cpp:781 ../src/scim_keyboard_layout_data.h:4625 msgid "Turkish" msgstr "Türkisch" #: ../src/scim_utility.cpp:782 msgid "Uighur" msgstr "Uigurisch" #: ../src/scim_utility.cpp:783 ../src/scim_keyboard_layout_data.h:4629 msgid "Ukrainian" msgstr "Ukrainisch" #: ../src/scim_utility.cpp:784 msgid "Urdu" msgstr "Urdu" #: ../src/scim_utility.cpp:785 msgid "Uzbek" msgstr "Usbekisch" #: ../src/scim_utility.cpp:786 msgid "Vietnamese" msgstr "Vietnamesisch" #: ../src/scim_utility.cpp:787 msgid "Walloon" msgstr "Wallonisch" #: ../src/scim_utility.cpp:788 ../src/scim_utility.cpp:789 msgid "Yiddish" msgstr "Jiddisch" #: ../src/scim_utility.cpp:790 msgid "Chinese" msgstr "Chinesisch" #: ../src/scim_utility.cpp:791 ../src/scim_utility.cpp:793 msgid "Chinese (simplified)" msgstr "Chinesisch (vereinfacht)" #: ../src/scim_utility.cpp:792 ../src/scim_utility.cpp:794 msgid "Chinese (traditional)" msgstr "Chinesisch (traditionell)" #: ../src/scim_utility.cpp:876 msgid "Other" msgstr "Sonstige" #: ../src/scim_keyboard_layout_data.h:4591 #: ../modules/IMEngine/scim_socket_imengine.cpp:386 #: ../modules/IMEngine/scim_socket_imengine.cpp:416 #: ../modules/IMEngine/scim_socket_imengine.cpp:501 #: ../modules/IMEngine/scim_socket_imengine.cpp:531 #: ../modules/IMEngine/scim_socket_imengine.cpp:561 msgid "Unknown" msgstr "Unbekannt" #: ../src/scim_keyboard_layout_data.h:4592 msgid "English (US)" msgstr "Englisch (US)" #: ../src/scim_keyboard_layout_data.h:4593 msgid "Belgian" msgstr "Belgisch" #: ../src/scim_keyboard_layout_data.h:4596 msgid "Czech (qwerty)" msgstr "Tschechisch (qwerty)" #: ../src/scim_keyboard_layout_data.h:4599 msgid "Dvorak" msgstr "Dvorak" #: ../src/scim_keyboard_layout_data.h:4603 msgid "French (Canadian)" msgstr "Französisch (Kanada)" #: ../src/scim_keyboard_layout_data.h:4604 msgid "French (Switzerland)" msgstr "Französisch (Schweiz) " #: ../src/scim_keyboard_layout_data.h:4606 msgid "German (with deadkeys)" msgstr "Deutsch (mit Deadkeys)" #: ../src/scim_keyboard_layout_data.h:4607 msgid "German (Swiss)" msgstr "Deutsch (Schweiz)" #: ../src/scim_keyboard_layout_data.h:4612 msgid "Norwegian" msgstr "Norwegisch" #: ../src/scim_keyboard_layout_data.h:4616 msgid "Portuguese (Brazil US accents)" msgstr "Portugiesisch (Brasilien, US, Akzente)" #: ../src/scim_keyboard_layout_data.h:4619 msgid "Slovak (qwerty)" msgstr "Slovakisch (qwerty)" #: ../src/scim_keyboard_layout_data.h:4622 msgid "Spanish (CP 850)" msgstr "Spanisch (CP 850)" #: ../src/scim_keyboard_layout_data.h:4623 msgid "Spanish (Latin America)" msgstr "Spanisch (Lateinamerika)" #: ../src/scim_keyboard_layout_data.h:4626 msgid "English (UK)" msgstr "Englisch (UK)" #: ../modules/Filter/scim_sctc_filter.cpp:57 msgid "Simplified-Traditional Chinese Conversion" msgstr "Umwandlung vereinfachtes/traditionelles Chinesisch" #: ../modules/Filter/scim_sctc_filter.cpp:60 msgid "Convert between Simplified Chinese and Traditional Chinese" msgstr "Vereinfachtes in traditionelles Chinesisch umwandeln und umgekehrt" #: ../modules/Filter/scim_sctc_filter.cpp:71 msgid "SC-TC" msgstr "VC-TC" #: ../modules/Filter/scim_sctc_filter.cpp:73 #: ../modules/Filter/scim_sctc_filter.cpp:78 msgid "Simplified-Traditional Chinese conversion" msgstr "Umwandlung vereinfachtes->traditionelles Chinesisch" #: ../modules/Filter/scim_sctc_filter.cpp:76 msgid "No Conversion" msgstr "Keine Umwandlung" #: ../modules/Filter/scim_sctc_filter.cpp:81 msgid "Simplified to Traditional" msgstr "Vereinfacht zu traditionell" #: ../modules/Filter/scim_sctc_filter.cpp:83 msgid "Convert Simplified Chinese to Traditional Chinese" msgstr "Vereinfachtes Chinesisch in traditionelles Chinesisch umwandeln" #: ../modules/Filter/scim_sctc_filter.cpp:86 msgid "Traditional to Simplified" msgstr "Traditionell zu vereinfacht" #: ../modules/Filter/scim_sctc_filter.cpp:88 msgid "Convert Traditional Chinese to Simplified Chinese" msgstr "Traditionelles Chinesisch in vereinfachtes Chinesisch umwandeln" #: ../modules/Filter/scim_sctc_filter.cpp:300 msgid "James Su " msgstr "James Su " #: ../modules/Filter/scim_sctc_filter.cpp:425 #: ../modules/Filter/scim_sctc_filter.cpp:555 #: ../modules/Filter/scim_sctc_filter.cpp:571 msgid "SC->TC" msgstr "VC->TC" #: ../modules/Filter/scim_sctc_filter.cpp:431 #: ../modules/Filter/scim_sctc_filter.cpp:559 #: ../modules/Filter/scim_sctc_filter.cpp:575 msgid "TC->SC" msgstr "TC->VC" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1845 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1231 #: ../extras/panel/scim_panel_gtk.cpp:2304 msgid "Smart Common Input Method platform " msgstr "Smart Common Input Method Plattform " #: ../modules/FrontEnd/scim_x11_frontend.cpp:1847 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1233 msgid "" "\n" "(C) 2002-2005 James Su \n" "\n" msgstr "" "\n" "(c) 2002-2005 James Su \n" "\n" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1851 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1238 msgid "" ":\n" "\n" msgstr "" ":\n" "\n" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1854 #: ../modules/FrontEnd/scim_x11_frontend.cpp:1857 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1241 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1244 msgid "" "\n" "\n" msgstr "" "\n" "\n" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:120 msgid "RAW CODE" msgstr "Unicode Rohdaten" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:127 msgid "(C) 2002-2006 James Su " msgstr "(c) 2002-2006 James Su " #: ../modules/IMEngine/scim_rawcode_imengine.cpp:140 msgid "" "Hot Keys:\n" "\n" " Control+u:\n" " switch between Multibyte encoding and Unicode.\n" "\n" " Esc:\n" " reset the input method.\n" msgstr "" "Tastenkürzel:\n" "\n" " Steuerung+u:\n" " Umschalten zwischen Multibyte-Codierung und Unicode.\n" "\n" " Esc:\n" " Eingabemethode zurücksetzen.\n" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:407 #: ../modules/IMEngine/scim_rawcode_imengine.cpp:423 msgid "The status of the current input method. Click to change it." msgstr "" "Der Status der aktuell verwendeten Eingabemethode. Klicken Sie diesen an, um " "ihn zu ändern." #: ../modules/IMEngine/scim_rawcode_imengine.cpp:409 msgid "Unicode" msgstr "Unicode" #: ../modules/SetupUI/scim_frontend_setup.cpp:82 #: ../modules/SetupUI/scim_imengine_setup.cpp:88 msgid "Global Setup" msgstr "Globale Einstellungen" #: ../modules/SetupUI/scim_frontend_setup.cpp:87 msgid "" "Setup the global options used by All FrontEnd modules, including X11 " "FrontEnd, GTK IMModule, QT IMModule etc." msgstr "" "Stellen Sie die globalen Optionen ein, die von allen FrontEnd-Modulen " "beachtet werden, einschließlich dem X11 FrontEnd, GKT IMModule, QT IMModule, " "usw." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:143 msgid "_Trigger:" msgstr "_Auslöser:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:145 msgid "Select the trigger keys" msgstr "Tasten zum Auslösen auswählen" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:147 msgid "" "The key events to turn on/off SCIM input method. Click on the button on the " "right to edit it." msgstr "" "Tastenkombinationen, mit denen die Eingabemethode SCIM an- und ausgeschaltet " "wird. Klicken Sie zum Ändern auf den rechten Knopf." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:160 msgid "Turn _On:" msgstr "_Einschalten:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:162 msgid "Select the Turn On keys" msgstr "Tasten zum Einschalten auswählen" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:164 msgid "" "The key events to turn on SCIM input method. Click on the button on the " "right to edit it." msgstr "" "Tastenkombinationen, mit denen die Eingabemethode SCIM eingeschaltet wird. " "Klicken Sie zum Ändern auf den rechten Knopf." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:177 msgid "Turn O_ff:" msgstr "A_usschalten" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:179 msgid "Select the Turn Off keys" msgstr "Tasten zum Ausschalten auswählen" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:181 msgid "" "The key events to turn off SCIM input method. Click on the button on the " "right to edit it." msgstr "" "Tastenkombinationen, mit denen die Eingabemethode SCIM ausgeschaltet wird. " "Klicken Sie zum Ändern auf den rechten Knopf." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:194 msgid "_Next input method:" msgstr "_Nächste Eingabemethode:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:196 msgid "Select the next input method keys" msgstr "" "Wählen Sie die Tastenkombinationen, um zur nächsten Eingabemethode zu " "wechseln" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:198 msgid "" "The key events to switch to the next input method. Click on the button on " "the right to edit it." msgstr "" "Tastenkombinationen, mit denen zur nächsten Eingabemethode gewechselt wird. " "Klicken Sie zum Ändern auf den rechten Knopf." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:213 msgid "_Previous input method:" msgstr "_Vorherige Eingabemethode:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:215 msgid "Select the previous input method keys" msgstr "" "Wählen Sie die Tastenkombinationen, um zur vorherigen Eingabemethode zu " "wechseln" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:217 msgid "" "The key events to switch to the previous input method. Click on the button " "on the right to edit it." msgstr "" "Tastenkombinationen, mit denen zur vorherigen Eingabemethode gewechselt " "wird. Klicken Sie zum Ändern auf den rechten Knopf." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:232 msgid "Show input method _menu:" msgstr "Zeige _Auswahlmenü für Eingabemethoden:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:234 msgid "Select the show input method menu keys" msgstr "" "Wählen Sie die Tastenkürzel, um das Auswahlmenü für Eingabemethoden " "anzuzeigen" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:236 msgid "" "The key events to show the input method menu. Click on the button on the " "right to edit it." msgstr "" "Tastenkombinationen, mit denen das Auswahlmenü für Eingabemethoden angezeigt " "wird. Klicken Sie zum Ändern auf den rechten Knopf." #: ../modules/SetupUI/scim_frontend_setup.cpp:306 msgid "Options" msgstr "Optionen" #: ../modules/SetupUI/scim_frontend_setup.cpp:321 msgid "_Keyboard Layout:" msgstr "_Tastaturlayout" #: ../modules/SetupUI/scim_frontend_setup.cpp:342 msgid "" "You should choose your currently used keyboard layout here so that input " "methods, who care about keyboard layout, could work correctly." msgstr "" "Sie sollten hier Ihr derzeit verwendetes Tastaturlayout einstellen, so dass " "Eingabemethoden, die vom Tastaturlayout abhängig sind, korrekt funktionieren." #. On The Spot. #: ../modules/SetupUI/scim_frontend_setup.cpp:346 msgid "_Embed Preedit String into client window" msgstr "Roheingabe ins Client-Fenster einbetten" #: ../modules/SetupUI/scim_frontend_setup.cpp:351 msgid "" "If this option is checked, the preedit string will be displayed directly in " "the client input window, rather than in a independent float window." msgstr "" "Wenn diese Option gewählt ist, wird die Roheingabe - die bisher eingegebenen " "Zeichen vor einer endgültigen Auswahl - ins Client-Eingabefenster " "eingebettet und nicht in einem Extrafenster angezeigt." #. Shared input method. #: ../modules/SetupUI/scim_frontend_setup.cpp:360 msgid "_Share the same input method among all applications" msgstr "Dieselbe Eingabemethode in _allen Anwendungen verwenden." #: ../modules/SetupUI/scim_frontend_setup.cpp:365 msgid "" "If this option is checked, then only one input method could be used by all " "applications at the same time.Otherwise different input method could be used " "by each application." msgstr "" "Wenn diese Option aktiviert ist, wird ein und dieselbe Eingabemethode von " "allen Anwendungen gleichzeitig verwendet. Andernfalls kann jede Anwendung " "eine andere Eingabemethode verwenden." #: ../modules/SetupUI/scim_frontend_setup.cpp:373 #: ../modules/SetupUI/scim_imengine_setup.cpp:453 msgid "Hotkeys" msgstr "Tastenkombinationen" #: ../modules/SetupUI/scim_imengine_setup.cpp:93 msgid "You can enable/disable input methods and set hotkeys for input methods here." msgstr "" "Hier können Sie die installierten Eingabemethoden aktivieren/deaktivieren " "und ihnen Tastenkürzel zuordnen." #: ../modules/SetupUI/scim_imengine_setup.cpp:296 msgid "The installed input method services:" msgstr "Installierte Eingabemethoden:" #. Create hotkey and filter button before factory list view, because #. factory_list_selection_changed_callback may access these two buttons. #: ../modules/SetupUI/scim_imengine_setup.cpp:311 msgid "Edit _Hotkeys" msgstr "_Tastenkürzel ändern" #: ../modules/SetupUI/scim_imengine_setup.cpp:320 msgid "Edit Hotkeys associated with the selected input method." msgstr "" "Stellen Sie die mit der gewählten Eingabemethode assoziierten Tastenkürzel " "ein." #: ../modules/SetupUI/scim_imengine_setup.cpp:322 msgid "Select _Filters" msgstr "_Filter auswählen" #: ../modules/SetupUI/scim_imengine_setup.cpp:331 msgid "Select the Filters which will be attached to this input method." msgstr "Wählen Sie die Filter, die dieser Eingabemethode zugeordnet werden sollen." #: ../modules/SetupUI/scim_imengine_setup.cpp:348 msgid "_Expand" msgstr "Er_weitern" #: ../modules/SetupUI/scim_imengine_setup.cpp:357 msgid "Expand all language categories." msgstr "Erweitern Sie alle Sprachgruppen." #: ../modules/SetupUI/scim_imengine_setup.cpp:359 msgid "_Collapse" msgstr "Ein_klappen" #: ../modules/SetupUI/scim_imengine_setup.cpp:368 msgid "Collapse all language categories." msgstr "Klappen Sie alle Sprachgruppen ein." #: ../modules/SetupUI/scim_imengine_setup.cpp:370 msgid "E_nable All" msgstr "Alle _aktivieren" #: ../modules/SetupUI/scim_imengine_setup.cpp:379 msgid "Enable all input methods." msgstr "Alle Eingabemethoden aktivieren." #: ../modules/SetupUI/scim_imengine_setup.cpp:381 msgid "_Disable All" msgstr "Alle _deaktivieren" #: ../modules/SetupUI/scim_imengine_setup.cpp:390 msgid "Disable all input methods." msgstr "Alle Eingabemethoden deaktivieren." #: ../modules/SetupUI/scim_imengine_setup.cpp:414 #: ../modules/SetupUI/scim_imengine_setup.cpp:541 msgid "Name" msgstr "Name" #: ../modules/SetupUI/scim_imengine_setup.cpp:432 #: ../modules/SetupUI/scim_imengine_setup.cpp:522 msgid "Enable" msgstr "Aktivieren" #: ../modules/SetupUI/scim_imengine_setup.cpp:467 msgid "Filters" msgstr "Filter" #: ../modules/SetupUI/scim_imengine_setup.cpp:560 msgid "Languages" msgstr "Sprachen" #: ../modules/SetupUI/scim_imengine_setup.cpp:574 msgid "Description" msgstr "Beschreibung" #: ../modules/SetupUI/scim_imengine_setup.cpp:1190 #, c-format msgid "Edit Hotkeys for %s" msgstr "Tastenkürzel für %s ändern" #: ../modules/SetupUI/scim_imengine_setup.cpp:1417 #, c-format msgid "Select Filters for %s" msgstr "Filter für %s wählen" #: ../modules/SetupUI/scim_imengine_setup.cpp:1450 msgid "Move _Up" msgstr "Nach _oben" #: ../modules/SetupUI/scim_imengine_setup.cpp:1457 msgid "Move _Down" msgstr "Nach _unten" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:95 msgid "GTK" msgstr "GTK" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:100 msgid "A panel daemon based on GTK+-2.x library." msgstr "Ein Kontrollleisten-Hilfsprogramm, das auf der GTK+-2.x-Bibliothek beruht." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:163 msgid "Always" msgstr "Immer" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:164 msgid "On demand" msgstr "Auf Anforderung" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:165 msgid "Never" msgstr "Nie" #. Create the ToolBar setup block. #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:211 msgid "ToolBar" msgstr "Symbolleiste" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:229 msgid "_Show:" msgstr "_Zeige:" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:245 msgid "Auto s_nap" msgstr "Automatisch ein_rasten" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:251 msgid "Show _input method icon" msgstr "Symbol für die Eingabe_methode anzeigen" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:257 msgid "Show inp_ut method name" msgstr "_Name der Eingabemethode anzeigen" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:269 msgid "Hide time_out:" msgstr "_Ausblenden nach (sek):" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:282 msgid "Show s_tick icon" msgstr "Symbol »Immer im _Vordergrund« anzeigen" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:288 msgid "Show m_enu icon" msgstr "Symbol »_Menü« anzeigen" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:294 msgid "Show _help icon" msgstr "Symbol »_Hilfe« anzeigen" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:300 msgid "Show _property label" msgstr "_Bezeichnung der Eigenschaften anzeigen" #. Create the Input Window setup block #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:311 msgid "Input window" msgstr "Eingabefenster" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:320 msgid "E_mbedded lookup table" msgstr "Ein_gebettete Auswahlliste" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:324 msgid "_Vertical lookup table" msgstr "_Vertikale Auswahlliste" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:328 msgid "Misc" msgstr "Verschiedenes" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:337 msgid "Show tra_y icon" msgstr "Symbol im _Benachrichtigungsfeld anzeigen" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:341 msgid "Stick _windows" msgstr "Fenster behält _Position" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:349 msgid "_Font:" msgstr "_Schriftart:" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:419 msgid "" "If option \"Always\" is selected, the toolbar will always be shown on the " "screen. If option \"On demand\" is selected, it will only be shown when SCIM " "is activated. If option \"Never\" is selected, it will never be shown." msgstr "" "Wenn »Immer« gewählt ist, wird die Symbolleiste immer auf dem Bildschirm " "angezeigt. Bei »Auf Anforderung« wird sie nur angezeigt, wenn SCIM aktiviert " "ist. Bei »Nie« wird sie niemals angezeigt." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:426 msgid "If this option is checked, the toolbar will be snapped to the screen border." msgstr "" "Wenn diese Option gewählt ist, wird die Symbolleiste am Bildschirmrand " "eingerastet." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:431 msgid "" "The toolbar will be hidden out after this timeout is elapsed. This option is " "only valid when \"Always show\" is selected. Set to zero to disable this " "behavior." msgstr "" "Die Symbolleiste wird versteckt, nachdem die angegebene Zeit vergangen ist. " "Diese Option ist nur verfügbar, wenn »Immer anzeigen« gewählt ist. Geben Sie " "»0« ein, um dieses Verhalten zu unterdrücken. " #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:438 msgid "" "If this option is checked, the input method icon will be showed on the " "toolbar." msgstr "" "Wenn diese Option gewählt ist, wird das Symbol der aktuellen Eingabemethode " "auf der Symbolleiste angezeigt." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:442 msgid "" "If this option is checked, the input method name will be showed on the " "toolbar." msgstr "" "Wenn diese Option gewählt ist, wird der Name der aktuellen Eingabemethode " "auf der Symbolleiste angezeigt." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:446 msgid "If this option is checked, the stick icon will be showed on the toolbar." msgstr "" "Wenn diese Option gewählt ist, wird das Symbol »Immer im Vordergrund halten« " "auf der Symbolleiste angezeigt." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:450 msgid "If this option is checked, the menu icon will be showed on the toolbar." msgstr "" "Wenn diese Option gewählt ist, wird das Symbol »Menü« auf der Symbolleiste " "angezeigt." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:454 msgid "If this option is checked, the help icon will be showed on the toolbar." msgstr "" "Wenn diese Option gewählt ist, wird das Symbol »Hilfe« auf der Symbolleiste " "angezeigt." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:458 msgid "" "If this option is checked, the text label of input method properties will be " "showed on the toolbar." msgstr "" "Wenn diese Option gewählt ist, werden die Bezeichnungen der einzelnen " "Eigenschaften der Eingabemethode auf der Symbolleiste angezeigt." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:462 msgid "" "If this option is checked, the lookup table will be embedded into the input " "window." msgstr "" "Wenn diese Option gewählt ist, wird die Auswahlliste ins Eingabefenster " "eingebettet." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:467 msgid "If this option is checked, the lookup table will be displayed vertically." msgstr "Wenn diese Option gewählt ist, wird die Auswahlliste senkrecht angezeigt." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:472 msgid "" "If this option is checked, the tray icon will be showed on the desktop's " "taskbar." msgstr "" "Wenn diese Option gewählt ist, wird ein Symbol in der Kontrollleiste " "angezeigt." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:476 msgid "" "If this option is checked, the toolbar, input and lookup table windows will " "be sticked to its original position." msgstr "" "Wenn diese Option gewählt ist, werden Symbolleiste, Eingabefenster und " "Auswahlliste immer an ihren jeweiligen Ausgangspositionen gehalten." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:482 msgid "The font setting will be used in the input and lookup table windows." msgstr "" "Die eingestellte Schriftart wird in Eingabefenster und Auswahlliste " "verwendet." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:801 msgid "Select Interface Font" msgstr "Schriftart für die Benutzeroberfläche wählen" #: ../extras/setup/scim_setup_ui.cpp:47 msgid "SCIM" msgstr "SCIM" #: ../extras/setup/scim_setup_ui.cpp:48 msgid "FrontEnd" msgstr "Benutzeroberfläche" #: ../extras/setup/scim_setup_ui.cpp:49 msgid "IMEngine" msgstr "Eingabemethoden" #: ../extras/setup/scim_setup_ui.cpp:50 msgid "Panel" msgstr "Kontrollleiste" #: ../extras/setup/scim_setup_ui.cpp:51 msgid "Extra" msgstr "Extra" #. #. vi:ts=4:nowrap:ai:expandtab #. #: ../extras/setup/scim_setup_ui.cpp:230 #: ../extras/setup/scim-setup.desktop.in.h:1 msgid "SCIM Input Method Setup" msgstr "Einstellungen der SCIM-Eingabemethoden" #: ../extras/setup/scim_setup_ui.cpp:369 msgid "" " Smart Common Input Method platform \n" "\n" "GUI Setup Utility\n" "\n" "\n" "\n" "Copyright 2002-2004, James Su <suzhe@tsinghua.org." "cn>" msgstr "" " Smart Common Input Method-Plattform \n" "\n" "Grafisches Einrichtungswerkzeug\n" "\n" "\n" "\n" "Copyright 2002-2004, James Su <suzhe@tsinghua.org." "cn>" #: ../extras/setup/scim_setup_ui.cpp:394 #, c-format msgid "The Setup for %s modules." msgstr "Einstellungen der %s-Module." #msgid "Are you sure you want to quit SCIM Setup?" #msgstr "Möchten Sie die Einstellung von SCIM wirklich verlassen?" #: ../extras/setup/scim_setup_ui.cpp:661 msgid "" "Not all configuration can be reloaded on the fly. Don't forget to restart " "SCIM in order to let all of the new configuration take effect." msgstr "" "Nicht alle Einstellungen können bei laufendem Programm neu geladen werden. " "Starten Sie bitte SCIM neu, damit alle Änderungen übernommen werden." #: ../extras/setup/scim_setup_helper.cpp:49 msgid "SCIM Setup" msgstr "Einrichtung von SCIM" #: ../extras/setup/scim_setup_helper.cpp:51 msgid "Integrated Setup Utility based on GTK Widget library." msgstr "Integriertes Einrichtungswerkzeug, das auf der GTK Widget-Bibliothek beruht." #: ../extras/setup/scim-setup.desktop.in.h:2 msgid "Setup utility for Smart Common Input Method platform" msgstr "Einrichtungswerkzeug für die Smart Common Input Method-Plattform" #: ../extras/panel/scim_panel_gtk.cpp:982 msgid "SCIM Help" msgstr "Hilfe zu SCIM" #: ../extras/panel/scim_panel_gtk.cpp:999 msgid "Smart Common Input Method" msgstr "Smart Common Input Method" #: ../extras/panel/scim_panel_gtk.cpp:1058 msgid "Stick/unstick the input window and the toolbar." msgstr "Eingabefenster und Symbolleiste festsetzen/verschiebbar machen." #: ../extras/panel/scim_panel_gtk.cpp:1063 msgid "Show a brief help about SCIM and the current input method." msgstr "Zeige eine kurze Hilfe zu SCIM und zur gewählten Eingabemethode." #: ../extras/panel/scim_panel_gtk.cpp:1068 msgid "Show command menu." msgstr "Befehlsmenü anzeigen." #: ../extras/panel/scim_panel_gtk.cpp:2306 msgid "" "\n" "(C) 2002-2005 James Su " msgstr "" "\n" "(c) 2002-2005 James Su " #. Reload Configuration. #: ../extras/panel/scim_panel_gtk.cpp:2385 msgid "Reload Configuration" msgstr "Einstellungen neu laden" #. Stick #: ../extras/panel/scim_panel_gtk.cpp:2395 msgid "Stick Windows" msgstr "Werkzeugleiste festsetzen" #. Toolbar #: ../extras/panel/scim_panel_gtk.cpp:2404 msgid "Hide Toolbar" msgstr "Symbolleiste verstecken" #. Help #: ../extras/panel/scim_panel_gtk.cpp:2413 msgid "Help ..." msgstr "Hilfe ..." #. Clients exit. #: ../extras/panel/scim_panel_gtk.cpp:2431 msgid "Exit" msgstr "Beenden" #: ../utils/scimstringview.c:196 msgid "Cursor Position" msgstr "Zeigerposition" #: ../utils/scimstringview.c:197 msgid "The current position of the insertion cursor in chars." msgstr "Die aktuelle Zeigerposition (in Zeichen gerechnet)." #: ../utils/scimstringview.c:206 msgid "Maximum length" msgstr "Maximale Länge" #: ../utils/scimstringview.c:207 msgid "Maximum number of characters for this string view. Zero if no maximum." msgstr "Maximale Anzahl angezeigter Zeichen. »0« bedeutet unbegrenzt." #: ../utils/scimstringview.c:216 msgid "Maximum width" msgstr "Maximale Breite" #: ../utils/scimstringview.c:217 msgid "Maximum width of this string view." msgstr "Maximale Breite der angezeigten Zeichenkette." #: ../utils/scimstringview.c:226 msgid "Has Frame" msgstr "Mit Rahmen" #: ../utils/scimstringview.c:227 msgid "FALSE removes outside bevel from string view." msgstr "»Nein« entfernt den umgebenden Rahmen von der angezeigten Zeichenkette." #: ../utils/scimstringview.c:234 msgid "Draw cursor" msgstr "Zeiger anzeigen" #: ../utils/scimstringview.c:235 msgid "TRUE draw blinking cursor." msgstr "Wenn »ja«, wird ein blinkender Zeiger angezeigt." #: ../utils/scimstringview.c:242 msgid "Auto move cursor" msgstr "Zeiger automatisch verschieben" #: ../utils/scimstringview.c:243 msgid "TRUE auto move cursor position when mouse clicking." msgstr "Wenn »ja«, wird der Zeiger bei einem Mausklick automatisch verschoben." #: ../utils/scimstringview.c:250 msgid "Forward button press event" msgstr "Knopfdruck zum Übertragen" #: ../utils/scimstringview.c:251 msgid "TRUE forward button press event to user program." msgstr "" "Wenn »ja«, wird der gewählte Ausdruck beim jeweiligen Knopfdruck zum " "Programm übertragen." #: ../utils/scimstringview.c:258 msgid "Auto resize the widget to fit the string" msgstr "Anzeigefläche automatisch an Zeichenkette anpassen" #: ../utils/scimstringview.c:259 msgid "TRUE Auto resize on." msgstr "Bei »ja« ist die automatische Größenanpassung aktiviert." #: ../utils/scimstringview.c:266 msgid "Width in chars" msgstr "Breite in Zeichen" #: ../utils/scimstringview.c:267 msgid "Number of characters to leave space for in the string view." msgstr "Anzahl der Zeichen, für die in der Anzeige Platz gelassen werden soll." #: ../utils/scimstringview.c:276 msgid "Scroll offset" msgstr "Verschiebeversatz" #: ../utils/scimstringview.c:277 msgid "Number of pixels of the string view scrolled off the screen to the left" msgstr "" "Anzahl der Pixel, um die die Anzeige außerhalb des Bildschirms nach links " "verschoben wird" #: ../utils/scimstringview.c:286 msgid "Text" msgstr "Text" #: ../utils/scimstringview.c:287 msgid "The contents of the string view" msgstr "Inhalt der Zeichenkettenanzeige" #: ../utils/scimkeyselection.cpp:155 msgid "Selected _Keys:" msgstr "Gewählte _Tasten:" #: ../utils/scimkeyselection.cpp:200 msgid "Key Code:" msgstr "Tastencode:" #: ../utils/scimkeyselection.cpp:218 msgid "..." msgstr "..." #: ../utils/scimkeyselection.cpp:223 msgid "Modifiers:" msgstr "Sondertasten:" #: ../utils/scimkeyselection.cpp:236 msgid "_Ctrl" msgstr "_Strg" #: ../utils/scimkeyselection.cpp:240 msgid "A_lt" msgstr "_Alt" #: ../utils/scimkeyselection.cpp:244 msgid "_Shift" msgstr "_Umschalt" #: ../utils/scimkeyselection.cpp:248 msgid "_Release" msgstr "_Loslassen" #: ../utils/scimkeyselection.cpp:258 msgid "_Meta" msgstr "_Meta" #: ../utils/scimkeyselection.cpp:262 msgid "S_uper" msgstr "Su_per" #: ../utils/scimkeyselection.cpp:266 msgid "_Hyper" msgstr "_Hyper" #: ../utils/scimkeyselection.cpp:331 msgid "Please enter a Key Code first." msgstr "Bitte geben Sie zuerst einen Tastencode ein." #: ../utils/scimkeyselection.cpp:385 msgid "" "Press a key (or a key combination).\n" "This dialog will be closed when the key is released." msgstr "" "Drücken Sie eine Taste (oder eine Tastenkombination).\n" "Dieser Dialog wird geschlossen, wenn die Tasten gelöst werden." #: ../utils/scimkeyselection.cpp:388 msgid "Grabbing a key." msgstr "Erfassen der Tasten." #: ../utils/scimkeyselection.cpp:678 msgid "Key Selection" msgstr "Tastenauswahl" #: ../utils/scimtrayicon.c:108 msgid "Orientation" msgstr "Ausrichtung" #: ../utils/scimtrayicon.c:109 msgid "The orientation of the tray." msgstr "Die Ausrichtung des Systemabschnitts der Kontrollleiste." #~ msgid "Are you sure you want to quit SCIM Setup?" #~ msgstr "Möchten Sie die Einstellung von SCIM wirklich verlassen?" #~ msgid "zh_CN,zh_TW,zh_HK,zh_SG,ja_JP,ko_KR" #~ msgstr "zh_CN,zh_TW,zh_HK,zh_SG,ja_JP,ko_KR" #~ msgid "En" #~ msgstr "De" scim-1.4.14/po/es.po000066400000000000000000001115551177210725600141410ustar00rootroot00000000000000# translation of es.po to # Spanish translations for l package. # Copyright (C) 2008 THE l'S COPYRIGHT HOLDER # This file is distributed under the same license as the l package. # # Automatically generated, 2008. # Chester Cheng , 2008. # Angela Garcia , 2008. msgid "" msgstr "" "Project-Id-Version: es\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-06-22 11:40-0700\n" "PO-Revision-Date: 2008-03-27 09:56+1000\n" "Last-Translator: Angela Garcia\n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: KBabel 1.11.4\n" #: ../src/scim_compose_key.cpp:126 msgid "English/European" msgstr "Inglés/Europeo" #. Append an entry for forward mode. #: ../src/scim_imengine.cpp:638 ../src/scim_utility.cpp:693 #: ../modules/FrontEnd/scim_x11_frontend.cpp:1897 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1281 #: ../extras/panel/scim_panel_gtk.cpp:2814 msgid "English/Keyboard" msgstr "Inglés/Teclado" #: ../src/scim_utility.cpp:694 msgid "Amharic" msgstr "Amárico" #: ../src/scim_utility.cpp:695 msgid "Arabic" msgstr "Ãrabe" #: ../src/scim_utility.cpp:696 msgid "Arabic (Egypt)" msgstr "Ãrabe (Egipto)" #: ../src/scim_utility.cpp:697 msgid "Arabic (Lebanon)" msgstr "Ãrabe (Líbano)" #: ../src/scim_utility.cpp:698 msgid "Assamese" msgstr "Asamés" #: ../src/scim_utility.cpp:699 msgid "Azerbaijani" msgstr "Azerbaiyano" #: ../src/scim_utility.cpp:700 msgid "Belarusian" msgstr "Beloruso" #: ../src/scim_utility.cpp:701 msgid "Bulgarian" msgstr "Búlgaro" #: ../src/scim_utility.cpp:702 ../src/scim_utility.cpp:703 msgid "Bengali" msgstr "Bengali" #: ../src/scim_utility.cpp:704 msgid "Bengali (India)" msgstr "Bengali (India)" #: ../src/scim_utility.cpp:705 msgid "Tibetan" msgstr "Tibetano" #: ../src/scim_utility.cpp:706 msgid "Bosnian" msgstr "Bosnio" #: ../src/scim_utility.cpp:707 msgid "Catalan" msgstr "Catalán" #: ../src/scim_utility.cpp:708 ../src/scim_keyboard_layout_data.h:4595 msgid "Czech" msgstr "Checo" #: ../src/scim_utility.cpp:709 msgid "Welsh" msgstr "Galés" #: ../src/scim_utility.cpp:710 ../src/scim_keyboard_layout_data.h:4597 msgid "Danish" msgstr "Danés" #: ../src/scim_utility.cpp:711 ../src/scim_keyboard_layout_data.h:4605 msgid "German" msgstr "Alemán" #: ../src/scim_utility.cpp:712 msgid "Divehi" msgstr "Divehi" #: ../src/scim_utility.cpp:713 ../src/scim_keyboard_layout_data.h:4608 msgid "Greek" msgstr "Griego" #: ../src/scim_utility.cpp:714 msgid "English" msgstr "Inglés" #: ../src/scim_utility.cpp:715 msgid "English (Australian)" msgstr "Inglés (Australiano)" #: ../src/scim_utility.cpp:716 msgid "English (Canadian)" msgstr "Inglés (Canadiense)" #: ../src/scim_utility.cpp:717 msgid "English (British)" msgstr "Inglés (Británico)" #: ../src/scim_utility.cpp:718 msgid "English (Ireland)" msgstr "Inglés (Irlandés)" #: ../src/scim_utility.cpp:719 msgid "English (American)" msgstr "Inglés (Americano)" #: ../src/scim_utility.cpp:720 ../src/scim_utility.cpp:721 #: ../src/scim_keyboard_layout_data.h:4621 msgid "Spanish" msgstr "Español" #: ../src/scim_utility.cpp:722 msgid "Spanish (Mexico)" msgstr "Español (Méjico)" #: ../src/scim_utility.cpp:723 ../src/scim_keyboard_layout_data.h:4600 msgid "Estonian" msgstr "Estonio" #: ../src/scim_utility.cpp:724 msgid "Basque" msgstr "Vasco" #: ../src/scim_utility.cpp:725 msgid "Persian" msgstr "Persa" #: ../src/scim_utility.cpp:726 ../src/scim_keyboard_layout_data.h:4601 msgid "Finnish" msgstr "Finlandés" #: ../src/scim_utility.cpp:727 ../src/scim_keyboard_layout_data.h:4602 msgid "French" msgstr "Francés" #: ../src/scim_utility.cpp:728 msgid "Irish" msgstr "Irlandés" #: ../src/scim_utility.cpp:729 msgid "Galician" msgstr "Gallego" #: ../src/scim_utility.cpp:730 msgid "Gujarati" msgstr "Gujarati" #: ../src/scim_utility.cpp:731 ../src/scim_utility.cpp:740 msgid "Hebrew" msgstr "Hebreo" #: ../src/scim_utility.cpp:732 msgid "Hindi" msgstr "Indi" #: ../src/scim_utility.cpp:733 ../src/scim_keyboard_layout_data.h:4594 msgid "Croatian" msgstr "Croata" #: ../src/scim_utility.cpp:734 ../src/scim_keyboard_layout_data.h:4609 msgid "Hungarian" msgstr "Húngaro" #: ../src/scim_utility.cpp:735 msgid "Armenian" msgstr "Armenio" #: ../src/scim_utility.cpp:736 msgid "Interlingua" msgstr "Interlingua" #: ../src/scim_utility.cpp:737 msgid "Indonesian" msgstr "Indonesio" #: ../src/scim_utility.cpp:738 ../src/scim_keyboard_layout_data.h:4627 msgid "Icelandic" msgstr "Islandés" #: ../src/scim_utility.cpp:739 ../src/scim_keyboard_layout_data.h:4610 msgid "Italian" msgstr "Italiano" #: ../src/scim_utility.cpp:741 ../src/scim_keyboard_layout_data.h:4611 msgid "Japanese" msgstr "Japonés" #: ../src/scim_utility.cpp:742 msgid "Georgian" msgstr "Georgiano" #: ../src/scim_utility.cpp:743 msgid "Kazakh" msgstr "Kazakh" #: ../src/scim_utility.cpp:744 msgid "Cambodian" msgstr "Cambodiano" #: ../src/scim_utility.cpp:745 msgid "Kannada" msgstr "Kannada" #: ../src/scim_utility.cpp:746 msgid "Korean" msgstr "Coreano" #: ../src/scim_utility.cpp:747 msgid "Laothian" msgstr "Laosiano" #: ../src/scim_utility.cpp:748 ../src/scim_keyboard_layout_data.h:4628 msgid "Lithuanian" msgstr "Lituano" #: ../src/scim_utility.cpp:749 msgid "Latvian" msgstr "Latvian" #: ../src/scim_utility.cpp:750 msgid "Macedonian" msgstr "Macedonio" #: ../src/scim_utility.cpp:751 msgid "Malayalam" msgstr "Malayo" #: ../src/scim_utility.cpp:752 msgid "Mongolian" msgstr "Mongol" #: ../src/scim_utility.cpp:753 msgid "Marathi" msgstr "Marathi" #: ../src/scim_utility.cpp:754 msgid "Malay" msgstr "Malayo" #: ../src/scim_utility.cpp:755 msgid "Burmese" msgstr "Birmano" #: ../src/scim_utility.cpp:756 msgid "Nepali" msgstr "Nepalés" #: ../src/scim_utility.cpp:757 ../src/scim_keyboard_layout_data.h:4598 msgid "Dutch" msgstr "Holandés" #: ../src/scim_utility.cpp:758 msgid "Norwegian (nynorsk)" msgstr "Noruego (nynorsk)" #: ../src/scim_utility.cpp:759 msgid "Norwegian (bokmal)" msgstr "Noruego (bokmal)" #: ../src/scim_utility.cpp:760 msgid "Oriya" msgstr "Oriya" #: ../src/scim_utility.cpp:761 msgid "Punjabi" msgstr "Punjabi" #: ../src/scim_utility.cpp:762 ../src/scim_keyboard_layout_data.h:4613 msgid "Polish" msgstr "Polaco" #: ../src/scim_utility.cpp:763 ../src/scim_utility.cpp:765 #: ../src/scim_keyboard_layout_data.h:4614 msgid "Portuguese" msgstr "Portugués" #: ../src/scim_utility.cpp:764 ../src/scim_keyboard_layout_data.h:4615 msgid "Portuguese (Brazil)" msgstr "Portugués (Brasil)" #: ../src/scim_utility.cpp:766 msgid "Romanian" msgstr "Rumano" #: ../src/scim_utility.cpp:767 ../src/scim_keyboard_layout_data.h:4617 msgid "Russian" msgstr "Ruso" #: ../src/scim_utility.cpp:768 msgid "Sinhala" msgstr "Sinhala" #: ../src/scim_utility.cpp:769 ../src/scim_keyboard_layout_data.h:4618 msgid "Slovak" msgstr "Eslovaco" #: ../src/scim_utility.cpp:770 ../src/scim_keyboard_layout_data.h:4620 msgid "Slovenian" msgstr "Esloveno" #: ../src/scim_utility.cpp:771 msgid "Albanian" msgstr "Albanés" #: ../src/scim_utility.cpp:772 ../src/scim_utility.cpp:773 #: ../src/scim_utility.cpp:774 msgid "Serbian" msgstr "Serbio" #: ../src/scim_utility.cpp:775 ../src/scim_utility.cpp:777 #: ../src/scim_keyboard_layout_data.h:4624 msgid "Swedish" msgstr "Sueco" #: ../src/scim_utility.cpp:776 msgid "Swedish (Finland)" msgstr "Sueco (Finlandia)" #: ../src/scim_utility.cpp:778 msgid "Tamil" msgstr "Tamil" #: ../src/scim_utility.cpp:779 msgid "Telugu" msgstr "Telugu" #: ../src/scim_utility.cpp:780 msgid "Thai" msgstr "Tailandés" #: ../src/scim_utility.cpp:781 ../src/scim_keyboard_layout_data.h:4625 msgid "Turkish" msgstr "Turco" #: ../src/scim_utility.cpp:782 msgid "Uighur" msgstr "Uighur" #: ../src/scim_utility.cpp:783 ../src/scim_keyboard_layout_data.h:4629 msgid "Ukrainian" msgstr "Ucraniano" #: ../src/scim_utility.cpp:784 msgid "Urdu" msgstr "Urdu" #: ../src/scim_utility.cpp:785 msgid "Uzbek" msgstr "Uzbek" #: ../src/scim_utility.cpp:786 msgid "Vietnamese" msgstr "Vietnamita" #: ../src/scim_utility.cpp:787 msgid "Walloon" msgstr "Walloon" #: ../src/scim_utility.cpp:788 ../src/scim_utility.cpp:789 msgid "Yiddish" msgstr "Yidish" #: ../src/scim_utility.cpp:790 msgid "Chinese" msgstr "Chino" #: ../src/scim_utility.cpp:791 ../src/scim_utility.cpp:793 msgid "Chinese (simplified)" msgstr "Chino (simplificado)" #: ../src/scim_utility.cpp:792 ../src/scim_utility.cpp:794 msgid "Chinese (traditional)" msgstr "Chino (tradicional)" #: ../src/scim_utility.cpp:876 msgid "Other" msgstr "Otro" #: ../src/scim_keyboard_layout_data.h:4591 #: ../modules/IMEngine/scim_socket_imengine.cpp:386 #: ../modules/IMEngine/scim_socket_imengine.cpp:416 #: ../modules/IMEngine/scim_socket_imengine.cpp:501 #: ../modules/IMEngine/scim_socket_imengine.cpp:531 #: ../modules/IMEngine/scim_socket_imengine.cpp:561 msgid "Unknown" msgstr "Desconocido" #: ../src/scim_keyboard_layout_data.h:4592 msgid "English (US)" msgstr "Inglés (US)" #: ../src/scim_keyboard_layout_data.h:4593 msgid "Belgian" msgstr "Belga" #: ../src/scim_keyboard_layout_data.h:4596 msgid "Czech (qwerty)" msgstr "Checo (qwerty)" #: ../src/scim_keyboard_layout_data.h:4599 msgid "Dvorak" msgstr "Dvorak" #: ../src/scim_keyboard_layout_data.h:4603 msgid "French (Canadian)" msgstr "Francés (Canadiense)" #: ../src/scim_keyboard_layout_data.h:4604 msgid "French (Switzerland)" msgstr "Francés (Suizo)" #: ../src/scim_keyboard_layout_data.h:4606 msgid "German (with deadkeys)" msgstr "Alemán (con teclas muertas)" #: ../src/scim_keyboard_layout_data.h:4607 msgid "German (Swiss)" msgstr "Alemán (Suizo)" #: ../src/scim_keyboard_layout_data.h:4612 msgid "Norwegian" msgstr "Noruego" #: ../src/scim_keyboard_layout_data.h:4616 msgid "Portuguese (Brazil US accents)" msgstr "Portugés (acento USA Brasil)" #: ../src/scim_keyboard_layout_data.h:4619 msgid "Slovak (qwerty)" msgstr "Eslovaco (qwerty)" #: ../src/scim_keyboard_layout_data.h:4622 msgid "Spanish (CP 850)" msgstr "Español (CP 850)" #: ../src/scim_keyboard_layout_data.h:4623 msgid "Spanish (Latin America)" msgstr "Español (Latin America)" #: ../src/scim_keyboard_layout_data.h:4626 msgid "English (UK)" msgstr "Inglés (UK)" #: ../modules/Filter/scim_sctc_filter.cpp:57 msgid "Simplified-Traditional Chinese Conversion" msgstr "Conversión de chino simplificado - tradicional" #: ../modules/Filter/scim_sctc_filter.cpp:60 msgid "Convert between Simplified Chinese and Traditional Chinese" msgstr "Convertir entre chino simplificado y chino tradicional" #: ../modules/Filter/scim_sctc_filter.cpp:71 msgid "SC-TC" msgstr "CS-CT" #: ../modules/Filter/scim_sctc_filter.cpp:73 #: ../modules/Filter/scim_sctc_filter.cpp:78 msgid "Simplified-Traditional Chinese conversion" msgstr "Conversión chino simplificado-tradicional" #: ../modules/Filter/scim_sctc_filter.cpp:76 msgid "No Conversion" msgstr "No Conversión" #: ../modules/Filter/scim_sctc_filter.cpp:81 msgid "Simplified to Traditional" msgstr "Simplificado a tradicional" #: ../modules/Filter/scim_sctc_filter.cpp:83 msgid "Convert Simplified Chinese to Traditional Chinese" msgstr "Convertir chino simplificado a chino tradicional" #: ../modules/Filter/scim_sctc_filter.cpp:86 msgid "Traditional to Simplified" msgstr "Tradicional a simplificado" #: ../modules/Filter/scim_sctc_filter.cpp:88 msgid "Convert Traditional Chinese to Simplified Chinese" msgstr "Convertir chino tradicional a chino simplificado " #: ../modules/Filter/scim_sctc_filter.cpp:300 msgid "James Su " msgstr "James Su " #: ../modules/Filter/scim_sctc_filter.cpp:425 #: ../modules/Filter/scim_sctc_filter.cpp:555 #: ../modules/Filter/scim_sctc_filter.cpp:571 msgid "SC->TC" msgstr "CS->CT" #: ../modules/Filter/scim_sctc_filter.cpp:431 #: ../modules/Filter/scim_sctc_filter.cpp:559 #: ../modules/Filter/scim_sctc_filter.cpp:575 msgid "TC->SC" msgstr "CT->CS" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1845 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1231 #: ../extras/panel/scim_panel_gtk.cpp:2304 msgid "Smart Common Input Method platform " msgstr "Plataforma de método de entrada común inteligente" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1847 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1233 msgid "" "\n" "(C) 2002-2005 James Su \n" "\n" msgstr "" "\n" "(C) 2002-2005 James Su \n" "\n" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1851 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1238 msgid "" ":\n" "\n" msgstr "" ":\n" "\n" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1854 #: ../modules/FrontEnd/scim_x11_frontend.cpp:1857 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1241 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1244 msgid "" "\n" "\n" msgstr "" "\n" "\n" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:120 msgid "RAW CODE" msgstr "CÖDIGO BRUTO" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:127 msgid "(C) 2002-2006 James Su " msgstr "(C) 2002-2006 James Su " #: ../modules/IMEngine/scim_rawcode_imengine.cpp:140 msgid "" "Hot Keys:\n" "\n" " Control+u:\n" " switch between Multibyte encoding and Unicode.\n" "\n" " Esc:\n" " reset the input method.\n" msgstr "" "Teclas rápidas:\n" "\n" " Control+u:\n" " cambia entre la codificación Multibyte y Unicode.\n" "\n" " Esc:\n" " reestablece el método de entrada.\n" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:407 #: ../modules/IMEngine/scim_rawcode_imengine.cpp:423 msgid "The status of the current input method. Click to change it." msgstr "El estatus del método de entrada actual. Haga click para cambiarlo." #: ../modules/IMEngine/scim_rawcode_imengine.cpp:409 msgid "Unicode" msgstr "Unicode" #: ../modules/SetupUI/scim_frontend_setup.cpp:82 #: ../modules/SetupUI/scim_imengine_setup.cpp:88 msgid "Global Setup" msgstr "Configuración global " #: ../modules/SetupUI/scim_frontend_setup.cpp:87 msgid "" "Setup the global options used by All FrontEnd modules, including X11 " "FrontEnd, GTK IMModule, QT IMModule etc." msgstr "" "Configure las opciones globales que los módulos All FrontEnd utilizan incluyendo X11 " "FrontEnd, GTK IMModule, QT IMModule etc." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:143 msgid "_Trigger:" msgstr "_Activa:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:145 msgid "Select the trigger keys" msgstr "Selecciona las teclas que activan" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:147 msgid "" "The key events to turn on/off SCIM input method. Click on the button on the " "right to edit it." msgstr "Los eventos clave que prenden/apagan el método de entrada SCIM. Haga click en el botón de la derecha para modificarlo." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:160 msgid "Turn _On:" msgstr "Prender_:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:162 msgid "Select the Turn On keys" msgstr "Selecciona las teclas para prender" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:164 msgid "" "The key events to turn on SCIM input method. Click on the button on the " "right to edit it." msgstr "Los eventos clave que activan el método de entrada SCIM. Haga click en el botón de la derecha para modificarlo." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:177 msgid "Turn O_ff:" msgstr "Apagar_:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:179 msgid "Select the Turn Off keys" msgstr "Selecciona las teclas para apagar" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:181 msgid "" "The key events to turn off SCIM input method. Click on the button on the " "right to edit it." msgstr "Los eventos clave para apagar el método de entrada SCIM. Haga click en el botón de la derecha para modificarlo." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:194 msgid "_Next input method:" msgstr "_Próximo método de entrada:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:196 msgid "Select the next input method keys" msgstr "Seleccione las siguientes teclas de método de entrada" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:198 msgid "" "The key events to switch to the next input method. Click on the button on " "the right to edit it." msgstr "Los eventos clave para cambiar al siguiente método de entrada. Haga click en el método de la derecha para modificarlo." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:213 msgid "_Previous input method:" msgstr "_Método de entrada anterior:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:215 msgid "Select the previous input method keys" msgstr "Seleccione las teclas anteriores del método de entrada " #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:217 msgid "" "The key events to switch to the previous input method. Click on the button " "on the right to edit it." msgstr "Los eventos clave para cambiar al método de entrada anterior. Haga click en el botón a la derecha para modificarlo." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:232 msgid "Show input method _menu:" msgstr "Muestra el menú_método de entrada:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:234 msgid "Select the show input method menu keys" msgstr "Selecciona las teclas del menú de método de entrada que se muestran" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:236 msgid "" "The key events to show the input method menu. Click on the button on the " "right to edit it." msgstr "Los eventos clave que muestran el menú del método de entrada. Haga click en el botón de la derecha para modificarlo." #: ../modules/SetupUI/scim_frontend_setup.cpp:306 msgid "Options" msgstr "Opciones" #: ../modules/SetupUI/scim_frontend_setup.cpp:321 msgid "_Keyboard Layout:" msgstr "_Distribución del teclado:" #: ../modules/SetupUI/scim_frontend_setup.cpp:342 msgid "" "You should choose your currently used keyboard layout here so that input " "methods, who care about keyboard layout, could work correctly." msgstr "Debe seleccionar la distribución del teclado que está utilizando actualmente de manera que los métodos de entrada que si se relacionan con el teclado puedan funcionar correctamente." #. On The Spot. #: ../modules/SetupUI/scim_frontend_setup.cpp:346 msgid "_Embed Preedit String into client window" msgstr "_Incluir cadena de preedición en la ventana del cliente" #: ../modules/SetupUI/scim_frontend_setup.cpp:351 msgid "" "If this option is checked, the preedit string will be displayed directly in " "the client input window, rather than in a independent float window." msgstr "Si está opción está selecionada, la cadena de preedición se presentará directamente en la ventana de entrada del cliente en vez de tener una ventana flotante independiente. " #. Shared input method. #: ../modules/SetupUI/scim_frontend_setup.cpp:360 msgid "_Share the same input method among all applications" msgstr "_Comparte el mismo método de entrada entre todas las aplicaciones" #: ../modules/SetupUI/scim_frontend_setup.cpp:365 msgid "" "If this option is checked, then only one input method could be used by all " "applications at the same time.Otherwise different input method could be used " "by each application." msgstr "Si esta opción está seleccionada entonces el único método puede ser utilizado por todas las aplicaciones al mismo tiempo. De otra manera cada aplicación puede utilizar un método de entrada diferente. " #: ../modules/SetupUI/scim_frontend_setup.cpp:373 #: ../modules/SetupUI/scim_imengine_setup.cpp:453 msgid "Hotkeys" msgstr "Teclascalientes" #: ../modules/SetupUI/scim_imengine_setup.cpp:93 msgid "You can enable/disable input methods and set hotkeys for input methods here." msgstr "Puede habilitar/deshabilitar los métodos de entrada y un grupo de teclas calientes para los métodos de entrada." #: ../modules/SetupUI/scim_imengine_setup.cpp:296 msgid "The installed input method services:" msgstr "Los servicios instalados del método de entrada:" #. Create hotkey and filter button before factory list view, because #. factory_list_selection_changed_callback may access these two buttons. #: ../modules/SetupUI/scim_imengine_setup.cpp:311 msgid "Edit _Hotkeys" msgstr "Modificar_Teclascalientes" #: ../modules/SetupUI/scim_imengine_setup.cpp:320 msgid "Edit Hotkeys associated with the selected input method." msgstr "Modificar las teclas calientes asociadas con el método de entrada seleccionado." #: ../modules/SetupUI/scim_imengine_setup.cpp:322 msgid "Select _Filters" msgstr "Seleccionar _Filtros" #: ../modules/SetupUI/scim_imengine_setup.cpp:331 msgid "Select the Filters which will be attached to this input method." msgstr "Seleccionar los filtros que se adjuntarán a este método de entrada." #: ../modules/SetupUI/scim_imengine_setup.cpp:348 msgid "_Expand" msgstr "_Expandir" #: ../modules/SetupUI/scim_imengine_setup.cpp:357 msgid "Expand all language categories." msgstr "Expandir todas las categorias de idiomas." #: ../modules/SetupUI/scim_imengine_setup.cpp:359 msgid "_Collapse" msgstr "_Contrae" #: ../modules/SetupUI/scim_imengine_setup.cpp:368 msgid "Collapse all language categories." msgstr "Contrae todas las categorias de idiomas." #: ../modules/SetupUI/scim_imengine_setup.cpp:370 msgid "E_nable All" msgstr "H_abilita todos" #: ../modules/SetupUI/scim_imengine_setup.cpp:379 msgid "Enable all input methods." msgstr "Habilita todos los métodos de entrada" #: ../modules/SetupUI/scim_imengine_setup.cpp:381 msgid "_Disable All" msgstr "_Deshabilita todos" #: ../modules/SetupUI/scim_imengine_setup.cpp:390 msgid "Disable all input methods." msgstr "Deshabilita todos los métodos de entrada." #: ../modules/SetupUI/scim_imengine_setup.cpp:414 #: ../modules/SetupUI/scim_imengine_setup.cpp:541 msgid "Name" msgstr "Nombre" #: ../modules/SetupUI/scim_imengine_setup.cpp:432 #: ../modules/SetupUI/scim_imengine_setup.cpp:522 msgid "Enable" msgstr "Habilitar" #: ../modules/SetupUI/scim_imengine_setup.cpp:467 msgid "Filters" msgstr "Filtros" #: ../modules/SetupUI/scim_imengine_setup.cpp:560 msgid "Languages" msgstr "Idiomas" #: ../modules/SetupUI/scim_imengine_setup.cpp:574 msgid "Description" msgstr "Descripción" #: ../modules/SetupUI/scim_imengine_setup.cpp:1190 #, c-format msgid "Edit Hotkeys for %s" msgstr "Modificar las teclas calientes para %s" #: ../modules/SetupUI/scim_imengine_setup.cpp:1417 #, c-format msgid "Select Filters for %s" msgstr "Seleccionar filtros para %s" #: ../modules/SetupUI/scim_imengine_setup.cpp:1450 msgid "Move _Up" msgstr "Arriba _" #: ../modules/SetupUI/scim_imengine_setup.cpp:1457 msgid "Move _Down" msgstr "Abajo_" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:95 msgid "GTK" msgstr "GTK" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:100 msgid "A panel daemon based on GTK+-2.x library." msgstr "Un demonio de panel basado en la biblioteca GTK+-2.x." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:163 msgid "Always" msgstr "Siempre" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:164 msgid "On demand" msgstr "Por demanda" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:165 msgid "Never" msgstr "Nunca" #. Create the ToolBar setup block. #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:211 msgid "ToolBar" msgstr "Barra de herramientas" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:229 msgid "_Show:" msgstr "_Muestra:" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:245 msgid "Auto s_nap" msgstr "Auto s_nap" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:251 msgid "Show _input method icon" msgstr "Muestra el icono del _método de entrada" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:257 msgid "Show inp_ut method name" msgstr "Muestra el nombre del método de entrad_a" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:269 msgid "Hide time_out:" msgstr "Esconde tiempo_espera:" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:282 msgid "Show s_tick icon" msgstr "Muestra icono p_egar" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:288 msgid "Show m_enu icon" msgstr "Muestra el icono m_enú" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:294 msgid "Show _help icon" msgstr "Muestra el icono de _ayuda" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:300 msgid "Show _property label" msgstr "Muestra etiqueta _propiedad" #. Create the Input Window setup block #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:311 msgid "Input window" msgstr "Ventana de entrada" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:320 msgid "E_mbedded lookup table" msgstr "Tabla de búsqueda i_ncluída" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:324 msgid "_Vertical lookup table" msgstr "Tabla de búsqueda _Vertical" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:328 msgid "Misc" msgstr "Misc" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:337 msgid "Show tra_y icon" msgstr "Muestra el icono bande_ja" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:341 msgid "Stick _windows" msgstr "Incluye _ventanas" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:349 msgid "_Font:" msgstr "_Tipo de letra:" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:419 msgid "" "If option \"Always\" is selected, the toolbar will always be shown on the " "screen. If option \"On demand\" is selected, it will only be shown when SCIM " "is activated. If option \"Never\" is selected, it will never be shown." msgstr "Si la opción \"Siempre\" se selecciona entonces la barra de herramientas aparece en la pantalla. Si se escoge la opción \"Por demanda\" entonces sólo aparecerá cuando SCIM se active. Si se selecciona la opción \"Nunca\" entonces nunca se muestra." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:426 msgid "If this option is checked, the toolbar will be snapped to the screen border." msgstr "Si está opción está seleccionada entonces la barra de herramientas se moverá al borde de la pantalla." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:431 msgid "" "The toolbar will be hidden out after this timeout is elapsed. This option is " "only valid when \"Always show\" is selected. Set to zero to disable this " "behavior." msgstr "La barra de herramientas estará escondida después que el tiempo de expiración se haya acabado. Esta opción sólo es válida cuando se selecciona \"Mostrar siempre\". Configúrela como cero para deshabilitar este comportamiento." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:438 msgid "" "If this option is checked, the input method icon will be showed on the " "toolbar." msgstr "Si esta opción está seleccionada entonces el icono del método de entrada aparecerá en la barra de herramientas." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:442 msgid "" "If this option is checked, the input method name will be showed on the " "toolbar." msgstr "Si está opción ha sido seleccionada entonces el nombre del método de entrada aparecerá en la barra de herramientas." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:446 msgid "If this option is checked, the stick icon will be showed on the toolbar." msgstr "Si está opción ha sido seleccionada entonces el icono de pegar aparecerá en la barra de herramientas." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:450 msgid "If this option is checked, the menu icon will be showed on the toolbar." msgstr "Si está opción ha sido seleccionada entonces el icono del menú aparecerá en la barra de herramientas." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:454 msgid "If this option is checked, the help icon will be showed on the toolbar." msgstr "Si está opción ha sido seleccionada entonces el icono de ayuda aparecerá en la barra de herramientas." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:458 msgid "" "If this option is checked, the text label of input method properties will be " "showed on the toolbar." msgstr "Si está opción ha sido seleccionada entonces la etiqueta del texto de las propiedades del método de entrada aparecerán en la barra de herramientas." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:462 msgid "" "If this option is checked, the lookup table will be embedded into the input " "window." msgstr "Si está opción ha sido seleccionada entonces la tabla de búsqueda será incluida en la ventana de entrada." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:467 msgid "If this option is checked, the lookup table will be displayed vertically." msgstr "Si está opción ha sido seleccionada entonces la tabla de búsqueda aparecerá verticalmente." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:472 msgid "" "If this option is checked, the tray icon will be showed on the desktop's " "taskbar." msgstr "Si está opción ha sido seleccionada entonces el icono de bandeja aparecerá en la barra de tareas del escritorio." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:476 msgid "" "If this option is checked, the toolbar, input and lookup table windows will " "be sticked to its original position." msgstr "Si está opción ha sido seleccionada entonces las ventanas de la tabla de búsqueda y de entrada se pondrán en su posición original." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:482 msgid "The font setting will be used in the input and lookup table windows." msgstr "El tipo de letra especificado se utilizará en las ventanas de la tabla de búsqueda y de entrada." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:801 msgid "Select Interface Font" msgstr "Selección del tipo de letra de la interfaz" #: ../extras/setup/scim_setup_ui.cpp:47 msgid "SCIM" msgstr "SCIM" #: ../extras/setup/scim_setup_ui.cpp:48 msgid "FrontEnd" msgstr "FrontEnd" #: ../extras/setup/scim_setup_ui.cpp:49 msgid "IMEngine" msgstr "IMEngine" #: ../extras/setup/scim_setup_ui.cpp:50 msgid "Panel" msgstr "Panel" #: ../extras/setup/scim_setup_ui.cpp:51 msgid "Extra" msgstr "Extra" #. #. vi:ts=4:nowrap:ai:expandtab #. #: ../extras/setup/scim_setup_ui.cpp:230 #: ../extras/setup/scim-setup.desktop.in.h:1 msgid "SCIM Input Method Setup" msgstr "Configuración del método de entrada SCIM" #: ../extras/setup/scim_setup_ui.cpp:369 msgid "" " Smart Common Input Method platform \n" "\n" "GUI Setup Utility\n" "\n" "\n" "\n" "Copyright 2002-2004, James Su <suzhe@tsinghua.org." "cn>" msgstr "" " Plataforma del método de entrada común inteligente \n" "\n" "Utilidad para configuración del GUI\n" "\n" "\n" "\n" "Copyright 2002-2004, James Su <suzhe@tsinghua.org." "cn>" #: ../extras/setup/scim_setup_ui.cpp:394 #, c-format msgid "The Setup for %s modules." msgstr "La configuración para los módulos %s." #: ../extras/setup/scim_setup_ui.cpp:456 msgid "Are you sure you want to quit SCIM Setup?" msgstr "¿Está seguro de que quiere salir de la configuración de SCIM?" #: ../extras/setup/scim_setup_ui.cpp:685 msgid "" "Not all configuration can be reloaded on the fly. Don't forget to restart " "SCIM in order to let all of the new configuration take effect." msgstr "No toda la configuración se puede volver a cargar de inmediato. No olvide volver a iniciar SCIM para permitir que toda la configuración nueva tenga efecto." #: ../extras/setup/scim_setup_helper.cpp:49 msgid "SCIM Setup" msgstr "Configuración de SCIM" #: ../extras/setup/scim_setup_helper.cpp:51 msgid "Integrated Setup Utility based on GTK Widget library." msgstr "Utilidad de configuración integrada con base en la biblioteca GTK Widget." #: ../extras/setup/scim-setup.desktop.in.h:2 msgid "Setup utility for Smart Common Input Method platform" msgstr "Utilidad de configuración para la plataforma del método de entrada común inteligente" #: ../extras/panel/scim_panel_gtk.cpp:982 msgid "SCIM Help" msgstr "Ayuda SCIM" #: ../extras/panel/scim_panel_gtk.cpp:999 msgid "Smart Common Input Method" msgstr "Método de entrada común inteligente" #: ../extras/panel/scim_panel_gtk.cpp:1058 msgid "Stick/unstick the input window and the toolbar." msgstr "Pegue/despegue la ventana de entrada y la barra de herramientas." #: ../extras/panel/scim_panel_gtk.cpp:1063 msgid "Show a brief help about SCIM and the current input method." msgstr "Muestra una breve ayuda sobre SCIM y el método de entrada actual." #: ../extras/panel/scim_panel_gtk.cpp:1068 msgid "Show command menu." msgstr "Muestra el menú de comandos." #: ../extras/panel/scim_panel_gtk.cpp:2306 msgid "" "\n" "(C) 2002-2005 James Su " msgstr "" "\n" "(C) 2002-2005 James Su " #. Reload Configuration. #: ../extras/panel/scim_panel_gtk.cpp:2385 msgid "Reload Configuration" msgstr "Recarga la configuración" #. Stick #: ../extras/panel/scim_panel_gtk.cpp:2395 msgid "Stick Windows" msgstr "Pega ventanas" #. Toolbar #: ../extras/panel/scim_panel_gtk.cpp:2404 msgid "Hide Toolbar" msgstr "Oculta la barra de herramientas" #. Help #: ../extras/panel/scim_panel_gtk.cpp:2413 msgid "Help ..." msgstr "Ayuda ..." #. Clients exit. #: ../extras/panel/scim_panel_gtk.cpp:2431 msgid "Exit" msgstr "Salir" #: ../utils/scimstringview.c:196 msgid "Cursor Position" msgstr "Posición del cursor" #: ../utils/scimstringview.c:197 msgid "The current position of the insertion cursor in chars." msgstr "La posición actual del cursor de inserción en caracteres" #: ../utils/scimstringview.c:206 msgid "Maximum length" msgstr "Longitud máxima" #: ../utils/scimstringview.c:207 msgid "Maximum number of characters for this string view. Zero if no maximum." msgstr "Número máximo de caracteres para esta vista de cadena. Es cero si no hay un máximo. " #: ../utils/scimstringview.c:216 msgid "Maximum width" msgstr "Ancho máximo" #: ../utils/scimstringview.c:217 msgid "Maximum width of this string view." msgstr "Ancho máximo con esta vista de caracteres." #: ../utils/scimstringview.c:226 msgid "Has Frame" msgstr "Tiene marco" #: ../utils/scimstringview.c:227 msgid "FALSE removes outside bevel from string view." msgstr "Si es falso remueve el marco exterior de la vista de caracteres." #: ../utils/scimstringview.c:234 msgid "Draw cursor" msgstr "Diseñar cursor" #: ../utils/scimstringview.c:235 msgid "TRUE draw blinking cursor." msgstr "Si es verdadero diseña un cursor que parpadea." #: ../utils/scimstringview.c:242 msgid "Auto move cursor" msgstr "Cursor de movimiento automático" #: ../utils/scimstringview.c:243 msgid "TRUE auto move cursor position when mouse clicking." msgstr "Si es verdadero el cursor se mueve automáticamente cuando el ratón hace click." #: ../utils/scimstringview.c:250 msgid "Forward button press event" msgstr "Botón avanzar presiona evento" #: ../utils/scimstringview.c:251 msgid "TRUE forward button press event to user program." msgstr "Si es verdadero el botón para avanzar presiona evento para programa de usuario." #: ../utils/scimstringview.c:258 msgid "Auto resize the widget to fit the string" msgstr "Modifica el tamaño automáticamente para que quepa en la cadena" #: ../utils/scimstringview.c:259 msgid "TRUE Auto resize on." msgstr "Si es verdadero modifica el tamaño de manera automática." #: ../utils/scimstringview.c:266 msgid "Width in chars" msgstr "Ancho en caracteres" #: ../utils/scimstringview.c:267 msgid "Number of characters to leave space for in the string view." msgstr "Número de caracteres para dejar espacio en la vista de cadena." #: ../utils/scimstringview.c:276 msgid "Scroll offset" msgstr "Contrarestar el desplazamiento hacia arriba o abajo" #: ../utils/scimstringview.c:277 msgid "Number of pixels of the string view scrolled off the screen to the left" msgstr "Número de pixeles de la vista de cadena a la izquierda para contrarestar el desplazamiento hacia arriba o abajo" #: ../utils/scimstringview.c:286 msgid "Text" msgstr "Texto" #: ../utils/scimstringview.c:287 msgid "The contents of the string view" msgstr "El contenido de la vista de cadena" #: ../utils/scimkeyselection.cpp:155 msgid "Selected _Keys:" msgstr "Teclas_seleccionadas:" #: ../utils/scimkeyselection.cpp:200 msgid "Key Code:" msgstr "Código clave:" #: ../utils/scimkeyselection.cpp:218 msgid "..." msgstr "..." #: ../utils/scimkeyselection.cpp:223 msgid "Modifiers:" msgstr "Modificadores:" #: ../utils/scimkeyselection.cpp:236 msgid "_Ctrl" msgstr "_Ctrl" #: ../utils/scimkeyselection.cpp:240 msgid "A_lt" msgstr "A_lt" #: ../utils/scimkeyselection.cpp:244 msgid "_Shift" msgstr "_Shift" #: ../utils/scimkeyselection.cpp:248 msgid "_Release" msgstr "_Release" #: ../utils/scimkeyselection.cpp:258 msgid "_Meta" msgstr "_Meta" #: ../utils/scimkeyselection.cpp:262 msgid "S_uper" msgstr "S_uper" #: ../utils/scimkeyselection.cpp:266 msgid "_Hyper" msgstr "_Hyper" #: ../utils/scimkeyselection.cpp:331 msgid "Please enter a Key Code first." msgstr "Introduzca un código de clave primero." #: ../utils/scimkeyselection.cpp:385 msgid "" "Press a key (or a key combination).\n" "This dialog will be closed when the key is released." msgstr "" "Presione una tecla (o una combinación de teclas).\n" "Este dialogo se cerrará cuando se deje de presionar la tecla." #: ../utils/scimkeyselection.cpp:388 msgid "Grabbing a key." msgstr "Tomar un tecla." #: ../utils/scimkeyselection.cpp:678 msgid "Key Selection" msgstr "Selección de teclas" #: ../utils/scimtrayicon.c:108 msgid "Orientation" msgstr "Orientación" #: ../utils/scimtrayicon.c:109 msgid "The orientation of the tray." msgstr "La orientación de la bandeja." scim-1.4.14/po/fi.po000066400000000000000000001072651177210725600141330ustar00rootroot00000000000000# Finnish translation for scim # Copyright (c) (c) 2006 Canonical Ltd, and Rosetta Contributors 2006 # This file is distributed under the same license as the scim package. # Timo Jyrinki , 2006. # note: GFTT is at http://www.gnome.fi/ # msgid "" msgstr "" "Project-Id-Version: scim\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-06-22 11:40-0700\n" "PO-Revision-Date: 2006-05-24 16:51+0000\n" "Last-Translator: Timo Jyrinki \n" "Language-Team: Finnish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../src/scim_compose_key.cpp:126 msgid "English/European" msgstr "englanti/eurooppalainen" #. Append an entry for forward mode. #: ../src/scim_imengine.cpp:638 ../src/scim_utility.cpp:693 #: ../modules/FrontEnd/scim_x11_frontend.cpp:1897 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1281 #: ../extras/panel/scim_panel_gtk.cpp:2814 msgid "English/Keyboard" msgstr "englanti/näppäimistö" #: ../src/scim_utility.cpp:694 msgid "Amharic" msgstr "amhara" #: ../src/scim_utility.cpp:695 msgid "Arabic" msgstr "arabia" #: ../src/scim_utility.cpp:696 msgid "Arabic (Egypt)" msgstr "arabia (Egypti)" #: ../src/scim_utility.cpp:697 msgid "Arabic (Lebanon)" msgstr "arabia (Libanon)" #: ../src/scim_utility.cpp:698 msgid "Assamese" msgstr "assami" #: ../src/scim_utility.cpp:699 msgid "Azerbaijani" msgstr "azeri" #: ../src/scim_utility.cpp:700 msgid "Belarusian" msgstr "valkovenäjä" #: ../src/scim_utility.cpp:701 msgid "Bulgarian" msgstr "bulgaria" #: ../src/scim_utility.cpp:702 ../src/scim_utility.cpp:703 msgid "Bengali" msgstr "bengali" #: ../src/scim_utility.cpp:704 msgid "Bengali (India)" msgstr "bengali (Intia)" #: ../src/scim_utility.cpp:705 msgid "Tibetan" msgstr "tiibetti" #: ../src/scim_utility.cpp:706 msgid "Bosnian" msgstr "bosnia" #: ../src/scim_utility.cpp:707 msgid "Catalan" msgstr "katalaani" #: ../src/scim_utility.cpp:708 ../src/scim_keyboard_layout_data.h:4595 msgid "Czech" msgstr "tÅ¡ekki" #: ../src/scim_utility.cpp:709 msgid "Welsh" msgstr "wales" #: ../src/scim_utility.cpp:710 ../src/scim_keyboard_layout_data.h:4597 msgid "Danish" msgstr "tanska" #: ../src/scim_utility.cpp:711 ../src/scim_keyboard_layout_data.h:4605 msgid "German" msgstr "saksa" #: ../src/scim_utility.cpp:712 msgid "Divehi" msgstr "" #: ../src/scim_utility.cpp:713 ../src/scim_keyboard_layout_data.h:4608 msgid "Greek" msgstr "kreikka" #: ../src/scim_utility.cpp:714 msgid "English" msgstr "englanti" #: ../src/scim_utility.cpp:715 msgid "English (Australian)" msgstr "englanti (Australia)" #: ../src/scim_utility.cpp:716 msgid "English (Canadian)" msgstr "englanti (Kanada)" #: ../src/scim_utility.cpp:717 msgid "English (British)" msgstr "englanti (Iso-Britannia)" #: ../src/scim_utility.cpp:718 msgid "English (Ireland)" msgstr "englanti (Irlanti)" #: ../src/scim_utility.cpp:719 msgid "English (American)" msgstr "englanti (amerikanenglanti)" #: ../src/scim_utility.cpp:720 ../src/scim_utility.cpp:721 #: ../src/scim_keyboard_layout_data.h:4621 msgid "Spanish" msgstr "espanja" #: ../src/scim_utility.cpp:722 msgid "Spanish (Mexico)" msgstr "espanja (Mexico)" #: ../src/scim_utility.cpp:723 ../src/scim_keyboard_layout_data.h:4600 msgid "Estonian" msgstr "viro" #: ../src/scim_utility.cpp:724 msgid "Basque" msgstr "baski" #: ../src/scim_utility.cpp:725 msgid "Persian" msgstr "persia" #: ../src/scim_utility.cpp:726 ../src/scim_keyboard_layout_data.h:4601 msgid "Finnish" msgstr "suomi" #: ../src/scim_utility.cpp:727 ../src/scim_keyboard_layout_data.h:4602 msgid "French" msgstr "ranska" #: ../src/scim_utility.cpp:728 msgid "Irish" msgstr "irlanti" #: ../src/scim_utility.cpp:729 msgid "Galician" msgstr "galicia" #: ../src/scim_utility.cpp:730 msgid "Gujarati" msgstr "gudžarati" #: ../src/scim_utility.cpp:731 ../src/scim_utility.cpp:740 msgid "Hebrew" msgstr "heprea" #: ../src/scim_utility.cpp:732 msgid "Hindi" msgstr "hindi" #: ../src/scim_utility.cpp:733 ../src/scim_keyboard_layout_data.h:4594 msgid "Croatian" msgstr "kroatia" #: ../src/scim_utility.cpp:734 ../src/scim_keyboard_layout_data.h:4609 msgid "Hungarian" msgstr "unkari" #: ../src/scim_utility.cpp:735 #, fuzzy msgid "Armenian" msgstr "romania" #: ../src/scim_utility.cpp:736 msgid "Interlingua" msgstr "interlingua" #: ../src/scim_utility.cpp:737 msgid "Indonesian" msgstr "indonesia" #: ../src/scim_utility.cpp:738 ../src/scim_keyboard_layout_data.h:4627 msgid "Icelandic" msgstr "islanti" #: ../src/scim_utility.cpp:739 ../src/scim_keyboard_layout_data.h:4610 msgid "Italian" msgstr "italia" #: ../src/scim_utility.cpp:741 ../src/scim_keyboard_layout_data.h:4611 msgid "Japanese" msgstr "japani" #: ../src/scim_utility.cpp:742 #, fuzzy msgid "Georgian" msgstr "saksa" #: ../src/scim_utility.cpp:743 msgid "Kazakh" msgstr "kazak" #: ../src/scim_utility.cpp:744 msgid "Cambodian" msgstr "kampodia/khmer" #: ../src/scim_utility.cpp:745 msgid "Kannada" msgstr "kannada" #: ../src/scim_utility.cpp:746 msgid "Korean" msgstr "korea" #: ../src/scim_utility.cpp:747 msgid "Laothian" msgstr "laos" #: ../src/scim_utility.cpp:748 ../src/scim_keyboard_layout_data.h:4628 msgid "Lithuanian" msgstr "liettua" #: ../src/scim_utility.cpp:749 msgid "Latvian" msgstr "latvia" #: ../src/scim_utility.cpp:750 msgid "Macedonian" msgstr "makedonia" #: ../src/scim_utility.cpp:751 msgid "Malayalam" msgstr "malajalam" #: ../src/scim_utility.cpp:752 msgid "Mongolian" msgstr "mongolia" #: ../src/scim_utility.cpp:753 msgid "Marathi" msgstr "marathi" #: ../src/scim_utility.cpp:754 msgid "Malay" msgstr "malaiji" #: ../src/scim_utility.cpp:755 msgid "Burmese" msgstr "" #: ../src/scim_utility.cpp:756 msgid "Nepali" msgstr "nepali" #: ../src/scim_utility.cpp:757 ../src/scim_keyboard_layout_data.h:4598 msgid "Dutch" msgstr "hollanti" #: ../src/scim_utility.cpp:758 msgid "Norwegian (nynorsk)" msgstr "norja (nykynorja)" #: ../src/scim_utility.cpp:759 msgid "Norwegian (bokmal)" msgstr "norja (kirjanorja)" #: ../src/scim_utility.cpp:760 msgid "Oriya" msgstr "oriya" #: ../src/scim_utility.cpp:761 #, fuzzy msgid "Punjabi" msgstr "panjabi" #: ../src/scim_utility.cpp:762 ../src/scim_keyboard_layout_data.h:4613 msgid "Polish" msgstr "puola" #: ../src/scim_utility.cpp:763 ../src/scim_utility.cpp:765 #: ../src/scim_keyboard_layout_data.h:4614 msgid "Portuguese" msgstr "portugali" #: ../src/scim_utility.cpp:764 ../src/scim_keyboard_layout_data.h:4615 msgid "Portuguese (Brazil)" msgstr "portugali (Brasilia)" #: ../src/scim_utility.cpp:766 msgid "Romanian" msgstr "romania" #: ../src/scim_utility.cpp:767 ../src/scim_keyboard_layout_data.h:4617 msgid "Russian" msgstr "venäjä" #: ../src/scim_utility.cpp:768 msgid "Sinhala" msgstr "" #: ../src/scim_utility.cpp:769 ../src/scim_keyboard_layout_data.h:4618 msgid "Slovak" msgstr "slovakki" #: ../src/scim_utility.cpp:770 ../src/scim_keyboard_layout_data.h:4620 msgid "Slovenian" msgstr "sloveeni" #: ../src/scim_utility.cpp:771 msgid "Albanian" msgstr "albania" #: ../src/scim_utility.cpp:772 ../src/scim_utility.cpp:773 #: ../src/scim_utility.cpp:774 msgid "Serbian" msgstr "serbia" #: ../src/scim_utility.cpp:775 ../src/scim_utility.cpp:777 #: ../src/scim_keyboard_layout_data.h:4624 msgid "Swedish" msgstr "ruotsi" #: ../src/scim_utility.cpp:776 msgid "Swedish (Finland)" msgstr "ruotsi (Suomi)" #: ../src/scim_utility.cpp:778 msgid "Tamil" msgstr "tamili" #: ../src/scim_utility.cpp:779 msgid "Telugu" msgstr "telugu" #: ../src/scim_utility.cpp:780 msgid "Thai" msgstr "thai" #: ../src/scim_utility.cpp:781 ../src/scim_keyboard_layout_data.h:4625 msgid "Turkish" msgstr "turkki" #: ../src/scim_utility.cpp:782 msgid "Uighur" msgstr "uiguuri" #: ../src/scim_utility.cpp:783 ../src/scim_keyboard_layout_data.h:4629 msgid "Ukrainian" msgstr "ukraina" #: ../src/scim_utility.cpp:784 msgid "Urdu" msgstr "urdu" #: ../src/scim_utility.cpp:785 msgid "Uzbek" msgstr "uzbekki" #: ../src/scim_utility.cpp:786 msgid "Vietnamese" msgstr "vietnam" #: ../src/scim_utility.cpp:787 msgid "Walloon" msgstr "valloni" #: ../src/scim_utility.cpp:788 ../src/scim_utility.cpp:789 msgid "Yiddish" msgstr "jiddiÅ¡" #: ../src/scim_utility.cpp:790 msgid "Chinese" msgstr "kiina" #: ../src/scim_utility.cpp:791 ../src/scim_utility.cpp:793 msgid "Chinese (simplified)" msgstr "kiina (yksinkertaistettu)" #: ../src/scim_utility.cpp:792 ../src/scim_utility.cpp:794 msgid "Chinese (traditional)" msgstr "kiina (perinteinen)" #: ../src/scim_utility.cpp:876 msgid "Other" msgstr "Muu" #: ../src/scim_keyboard_layout_data.h:4591 #: ../modules/IMEngine/scim_socket_imengine.cpp:386 #: ../modules/IMEngine/scim_socket_imengine.cpp:416 #: ../modules/IMEngine/scim_socket_imengine.cpp:501 #: ../modules/IMEngine/scim_socket_imengine.cpp:531 #: ../modules/IMEngine/scim_socket_imengine.cpp:561 msgid "Unknown" msgstr "Tuntematon" #: ../src/scim_keyboard_layout_data.h:4592 msgid "English (US)" msgstr "englanti (USA)" #: ../src/scim_keyboard_layout_data.h:4593 msgid "Belgian" msgstr "belgia" #: ../src/scim_keyboard_layout_data.h:4596 msgid "Czech (qwerty)" msgstr "tÅ¡ekki (qwerty)" #: ../src/scim_keyboard_layout_data.h:4599 msgid "Dvorak" msgstr "Dvorak" #: ../src/scim_keyboard_layout_data.h:4603 msgid "French (Canadian)" msgstr "Ranska (Kanada)" #: ../src/scim_keyboard_layout_data.h:4604 msgid "French (Switzerland)" msgstr "Ranska (Sveitsi)" #: ../src/scim_keyboard_layout_data.h:4606 msgid "German (with deadkeys)" msgstr "Saksa (kuolleilla näppäimillä)" #: ../src/scim_keyboard_layout_data.h:4607 msgid "German (Swiss)" msgstr "Saksa (sveitsiläinen)" #: ../src/scim_keyboard_layout_data.h:4612 msgid "Norwegian" msgstr "norja" #: ../src/scim_keyboard_layout_data.h:4616 msgid "Portuguese (Brazil US accents)" msgstr "portugali (Brasilia/US-aksenttimerkit)" #: ../src/scim_keyboard_layout_data.h:4619 msgid "Slovak (qwerty)" msgstr "slovakia (qwerty)" #: ../src/scim_keyboard_layout_data.h:4622 msgid "Spanish (CP 850)" msgstr "espanja (CP 850)" #: ../src/scim_keyboard_layout_data.h:4623 msgid "Spanish (Latin America)" msgstr "espanja (latinalainen amerikka)" #: ../src/scim_keyboard_layout_data.h:4626 msgid "English (UK)" msgstr "englanti (Iso-Britannia)" #: ../modules/Filter/scim_sctc_filter.cpp:57 msgid "Simplified-Traditional Chinese Conversion" msgstr "Yksinkertaistetun/perinteisen kiinan muunnos" #: ../modules/Filter/scim_sctc_filter.cpp:60 msgid "Convert between Simplified Chinese and Traditional Chinese" msgstr "Muunna yksinkertaistetun ja perinteisen kiinan välillä" #: ../modules/Filter/scim_sctc_filter.cpp:71 msgid "SC-TC" msgstr "yk-pk" #: ../modules/Filter/scim_sctc_filter.cpp:73 #: ../modules/Filter/scim_sctc_filter.cpp:78 msgid "Simplified-Traditional Chinese conversion" msgstr "Yksinkertaistetun/perinteisen kiinan muunnos" #: ../modules/Filter/scim_sctc_filter.cpp:76 msgid "No Conversion" msgstr "Ei muunnosta" #: ../modules/Filter/scim_sctc_filter.cpp:81 msgid "Simplified to Traditional" msgstr "Yksinkertaistetusta perinteiseksi" #: ../modules/Filter/scim_sctc_filter.cpp:83 msgid "Convert Simplified Chinese to Traditional Chinese" msgstr "Muunna yksinkertaistettu kiina perinteiseksi kiinaksi" #: ../modules/Filter/scim_sctc_filter.cpp:86 msgid "Traditional to Simplified" msgstr "Perinteisestä yksinkertaistetuksi" #: ../modules/Filter/scim_sctc_filter.cpp:88 msgid "Convert Traditional Chinese to Simplified Chinese" msgstr "Muunna perinteisestä kiinasta yksinkertaistetuksi kiinaksi" #: ../modules/Filter/scim_sctc_filter.cpp:300 msgid "James Su " msgstr "James Su " #: ../modules/Filter/scim_sctc_filter.cpp:425 #: ../modules/Filter/scim_sctc_filter.cpp:555 #: ../modules/Filter/scim_sctc_filter.cpp:571 msgid "SC->TC" msgstr "yk->pk" #: ../modules/Filter/scim_sctc_filter.cpp:431 #: ../modules/Filter/scim_sctc_filter.cpp:559 #: ../modules/Filter/scim_sctc_filter.cpp:575 msgid "TC->SC" msgstr "pk->yk" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1845 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1231 #: ../extras/panel/scim_panel_gtk.cpp:2304 msgid "Smart Common Input Method platform " msgstr "Smart Common Input Method -alusta " #: ../modules/FrontEnd/scim_x11_frontend.cpp:1847 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1233 msgid "" "\n" "(C) 2002-2005 James Su \n" "\n" msgstr "" "\n" "(C) 2002-2005 James Su \n" "\n" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1851 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1238 msgid "" ":\n" "\n" msgstr "" ":\n" "\n" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1854 #: ../modules/FrontEnd/scim_x11_frontend.cpp:1857 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1241 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1244 msgid "" "\n" "\n" msgstr "" "\n" "\n" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:120 msgid "RAW CODE" msgstr "RAW CODE" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:127 msgid "(C) 2002-2006 James Su " msgstr "(C) 2002-2006 James Su " #: ../modules/IMEngine/scim_rawcode_imengine.cpp:140 msgid "" "Hot Keys:\n" "\n" " Control+u:\n" " switch between Multibyte encoding and Unicode.\n" "\n" " Esc:\n" " reset the input method.\n" msgstr "" "Pikanäppäimet:\n" "\n" " Ctrl+u:\n" " vaihda monitavukoodauksen ja Unicoden välillä.\n" "\n" " Esc:\n" " palauta syöttötavan oletusarvot.\n" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:407 #: ../modules/IMEngine/scim_rawcode_imengine.cpp:423 msgid "The status of the current input method. Click to change it." msgstr "Nykyisen syöttötavan tila. Napsauta vaihtaaksesi." #: ../modules/IMEngine/scim_rawcode_imengine.cpp:409 msgid "Unicode" msgstr "Unicode" #: ../modules/SetupUI/scim_frontend_setup.cpp:82 #: ../modules/SetupUI/scim_imengine_setup.cpp:88 msgid "Global Setup" msgstr "Globaalit asetukset" #: ../modules/SetupUI/scim_frontend_setup.cpp:87 msgid "" "Setup the global options used by All FrontEnd modules, including X11 " "FrontEnd, GTK IMModule, QT IMModule etc." msgstr "" "Aseta yleiset kaikkien edustaohjelmien käyttämät asetukset, mukaanlukien " "X11-, GTK-, IMModule-, QT IMModule-ohjelmat" #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:143 msgid "_Trigger:" msgstr "_Liipaisin" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:145 msgid "Select the trigger keys" msgstr "Valitse liipaisinnäppäimet" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:147 msgid "" "The key events to turn on/off SCIM input method. Click on the button on the " "right to edit it." msgstr "" "Näppäintapahtumat jotka ottavat käyttöön / poistavat käytöstä SCIM-" "syöttötavan. Napsauta oikealla olevaa painiketta muokataksesi sitä." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:160 msgid "Turn _On:" msgstr "Ota _käyttöön" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:162 msgid "Select the Turn On keys" msgstr "Valitse \"ota käyttöön\"-näppäimet" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:164 msgid "" "The key events to turn on SCIM input method. Click on the button on the " "right to edit it." msgstr "" "Näppäintapahtumat jotka ottavat SCIM-syöttötavan käyttöön. Napsauta oikealla " "olevaa painiketta muokataksesi sitä." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:177 msgid "Turn O_ff:" msgstr "_Poista käytöstä:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:179 msgid "Select the Turn Off keys" msgstr "Valitse \"poista käytöstä\"-näppäimet" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:181 msgid "" "The key events to turn off SCIM input method. Click on the button on the " "right to edit it." msgstr "" "Näppäintapahtumat jotka poistavat SCIM-syöttötavan käyttöstä. Napsauta " "oikealla olevaa painiketta muokataksesi sitä." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:194 msgid "_Next input method:" msgstr "_Seuraava syöttötapa:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:196 msgid "Select the next input method keys" msgstr "Valitse \"seuraava syöttötapa\"-näppäimet" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:198 msgid "" "The key events to switch to the next input method. Click on the button on " "the right to edit it." msgstr "" "Näppäintapahtumat joilla vaihdetaan seuraavaan syöttötapaan. Napsauta " "painiketta oikealla muokataksesi." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:213 msgid "_Previous input method:" msgstr "_Edellinen syöttötapa:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:215 msgid "Select the previous input method keys" msgstr "Valitse \"edellinen syöttötapa\"-näppäimet" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:217 msgid "" "The key events to switch to the previous input method. Click on the button " "on the right to edit it." msgstr "" "Näppäintapahtumat joilla vaihdetaan edelliseen syöttötapaan. Napsauta " "painiketta oikealla muokataksesi." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:232 msgid "Show input method _menu:" msgstr "Näytä syöttötapa_valikko" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:234 msgid "Select the show input method menu keys" msgstr "Valitse näppäimet joilla syöttötapavalikko näytetään" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:236 msgid "" "The key events to show the input method menu. Click on the button on the " "right to edit it." msgstr "" "Näppäintapahtumat joilla syöttötapavalikko näytetään. Napsauta painiketta " "oikealla muokataksesi." #: ../modules/SetupUI/scim_frontend_setup.cpp:306 msgid "Options" msgstr "Valinnat" #: ../modules/SetupUI/scim_frontend_setup.cpp:321 msgid "_Keyboard Layout:" msgstr "_Näppäimistöasettelu" #: ../modules/SetupUI/scim_frontend_setup.cpp:342 msgid "" "You should choose your currently used keyboard layout here so that input " "methods, who care about keyboard layout, could work correctly." msgstr "" "Valitse nykyinen näppäimistöasettelu tässä, jotta näppäimistöasettelusta " "välittävät syöttötavat toimisivat oikein." #. On The Spot. #: ../modules/SetupUI/scim_frontend_setup.cpp:346 msgid "_Embed Preedit String into client window" msgstr "_Sisällytä \"preedit\"-merkkijono asiakasikkunaan" #: ../modules/SetupUI/scim_frontend_setup.cpp:351 msgid "" "If this option is checked, the preedit string will be displayed directly in " "the client input window, rather than in a independent float window." msgstr "" "Jos tämä on valittu, \"preedit\"-merkkijono näytetään suoraan " "asiakasikkunassa erillisen kelluvan ikkunan sijaan." #. Shared input method. #: ../modules/SetupUI/scim_frontend_setup.cpp:360 msgid "_Share the same input method among all applications" msgstr "_Jaa sama syöttötapa kaikkien ohjelmien kanssa" #: ../modules/SetupUI/scim_frontend_setup.cpp:365 msgid "" "If this option is checked, then only one input method could be used by all " "applications at the same time.Otherwise different input method could be used " "by each application." msgstr "" "Jos tämä on valittu, yhtä syöttötapaa käytetään kaikissa ohjelmissa. Muutoin " "eri syöttötapa voidaan valita eri ohjelmille." #: ../modules/SetupUI/scim_frontend_setup.cpp:373 #: ../modules/SetupUI/scim_imengine_setup.cpp:453 msgid "Hotkeys" msgstr "Pikanäppäimet" #: ../modules/SetupUI/scim_imengine_setup.cpp:93 msgid "" "You can enable/disable input methods and set hotkeys for input methods here." msgstr "" "Voit ottaa käyttöön / pois käytöstä syöttötapoja ja asettaa pikanäppäimiä " "syöttötavoille." #: ../modules/SetupUI/scim_imengine_setup.cpp:296 msgid "The installed input method services:" msgstr "Asennetut syöttötapapalvelut:" #. Create hotkey and filter button before factory list view, because #. factory_list_selection_changed_callback may access these two buttons. #: ../modules/SetupUI/scim_imengine_setup.cpp:311 msgid "Edit _Hotkeys" msgstr "Muokkaa _pikanäppäimiä" #: ../modules/SetupUI/scim_imengine_setup.cpp:320 msgid "Edit Hotkeys associated with the selected input method." msgstr "Muokkaa valittuun syöttötapaan liittyviä pikanäppäimiä." #: ../modules/SetupUI/scim_imengine_setup.cpp:322 msgid "Select _Filters" msgstr "Valitse _suotimet" #: ../modules/SetupUI/scim_imengine_setup.cpp:331 msgid "Select the Filters which will be attached to this input method." msgstr "Valitse suotimet jotka liitetään tähän syöttötapaan." #: ../modules/SetupUI/scim_imengine_setup.cpp:348 msgid "_Expand" msgstr "_Laajenna" #: ../modules/SetupUI/scim_imengine_setup.cpp:357 msgid "Expand all language categories." msgstr "Laajenna kaikki kieliluokat" #: ../modules/SetupUI/scim_imengine_setup.cpp:359 msgid "_Collapse" msgstr "_Supista" #: ../modules/SetupUI/scim_imengine_setup.cpp:368 msgid "Collapse all language categories." msgstr "Supista kaikki kieliluokat" #: ../modules/SetupUI/scim_imengine_setup.cpp:370 msgid "E_nable All" msgstr "Ota _käyttöön kaikki" #: ../modules/SetupUI/scim_imengine_setup.cpp:379 msgid "Enable all input methods." msgstr "Ottaa kaikki syöttötavat käyttöön." #: ../modules/SetupUI/scim_imengine_setup.cpp:381 msgid "_Disable All" msgstr "_Poista käytöstä kaikki" #: ../modules/SetupUI/scim_imengine_setup.cpp:390 msgid "Disable all input methods." msgstr "Poistaa kaikki syöttötavat käytöstä." #: ../modules/SetupUI/scim_imengine_setup.cpp:414 #: ../modules/SetupUI/scim_imengine_setup.cpp:541 msgid "Name" msgstr "Nimi" #: ../modules/SetupUI/scim_imengine_setup.cpp:432 #: ../modules/SetupUI/scim_imengine_setup.cpp:522 msgid "Enable" msgstr "Ota käyttöön" #: ../modules/SetupUI/scim_imengine_setup.cpp:467 msgid "Filters" msgstr "Suotimet" #: ../modules/SetupUI/scim_imengine_setup.cpp:560 msgid "Languages" msgstr "Kielet" #: ../modules/SetupUI/scim_imengine_setup.cpp:574 msgid "Description" msgstr "Kuvaus" #: ../modules/SetupUI/scim_imengine_setup.cpp:1190 #, c-format msgid "Edit Hotkeys for %s" msgstr "Muokkaa pikanäppäimiä: %s" #: ../modules/SetupUI/scim_imengine_setup.cpp:1417 #, c-format msgid "Select Filters for %s" msgstr "Valitse suotimet: %s" #: ../modules/SetupUI/scim_imengine_setup.cpp:1450 msgid "Move _Up" msgstr "Siirrä _ylös" #: ../modules/SetupUI/scim_imengine_setup.cpp:1457 msgid "Move _Down" msgstr "Siirrä _alas" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:95 msgid "GTK" msgstr "GTK" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:100 msgid "A panel daemon based on GTK+-2.x library." msgstr "GTK+-2.x-kirjastoon perustuva paneelisovellus" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:163 msgid "Always" msgstr "Aina" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:164 msgid "On demand" msgstr "Tarvittaessa" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:165 msgid "Never" msgstr "Ei koskaan" #. Create the ToolBar setup block. #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:211 msgid "ToolBar" msgstr "Työkalupalkki" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:229 msgid "_Show:" msgstr "_Näytä:" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:245 msgid "Auto s_nap" msgstr "Automaattinen k_ohdistus" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:251 msgid "Show _input method icon" msgstr "Näytä _syöttötapakuvake" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:257 msgid "Show inp_ut method name" msgstr "Näytä syöttätavan _nimi" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:269 msgid "Hide time_out:" msgstr "Piilota aika_katkaisu" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:282 msgid "Show s_tick icon" msgstr "Näytä _tikkukuvake" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:288 msgid "Show m_enu icon" msgstr "Näytä _valikkokuvake" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:294 msgid "Show _help icon" msgstr "Näytä o_hjekuvake" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:300 msgid "Show _property label" msgstr "Näytä ominaisuusnimi_ö" #. Create the Input Window setup block #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:311 msgid "Input window" msgstr "Syöttöikkuna" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:320 msgid "E_mbedded lookup table" msgstr "S_ulautettu etsintätaulukko" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:324 msgid "_Vertical lookup table" msgstr "_Pystysuuntainen etsintätaulukko" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:328 msgid "Misc" msgstr "Muut" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:337 msgid "Show tra_y icon" msgstr "Näytä _ilmoitusalueen kuvake" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:341 msgid "Stick _windows" msgstr "Koh_dista ikkunat" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:349 msgid "_Font:" msgstr "_Kirjasin:" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:419 msgid "" "If option \"Always\" is selected, the toolbar will always be shown on the " "screen. If option \"On demand\" is selected, it will only be shown when SCIM " "is activated. If option \"Never\" is selected, it will never be shown." msgstr "" "Jos valinta \"aina\" on valittu, työkalupalkki näytetään aina ruudulla. Jos " "\"tarvittaessa\" on valittu, se näytetään vain SCIMin ollessa aktiivisena. " "Valinnalla \"Never\" palkkia ei näytetä koskaan." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:426 msgid "" "If this option is checked, the toolbar will be snapped to the screen border." msgstr "Jos tämä on valittu, työkalupalkki kohdistetaan ruudun reunaan." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:431 msgid "" "The toolbar will be hidden out after this timeout is elapsed. This option is " "only valid when \"Always show\" is selected. Set to zero to disable this " "behavior." msgstr "" "Työkalupalkki piilotetaan kun määritelty aika on kulunut. Tämä valinta on " "kelvollinen vain jos \"Näytä aina\" on valittu. Aseta nollaksi poistaaksesi " "piilotuksen käytöstä." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:438 msgid "" "If this option is checked, the input method icon will be showed on the " "toolbar." msgstr "Jos tämä on valittu, syöttötapakuvake näytetään työkalupalkissa." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:442 msgid "" "If this option is checked, the input method name will be showed on the " "toolbar." msgstr "Jos tämä on valittu, syöttötavan nimi näytetään työkalupalkissa." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:446 msgid "" "If this option is checked, the stick icon will be showed on the toolbar." msgstr "Jos tämä on valittu, kohdistuskuvake näytetään työkalupalkissa." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:450 msgid "If this option is checked, the menu icon will be showed on the toolbar." msgstr "Jos tämä on valittu, valikkokuvake näytetään työkalupalkissa." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:454 msgid "If this option is checked, the help icon will be showed on the toolbar." msgstr "Jos tämä on valittu, ohjekuvake näytetään työkalupalkissa." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:458 msgid "" "If this option is checked, the text label of input method properties will be " "showed on the toolbar." msgstr "" "Jos tämä on valittu, syöttötapa-asetusten teksti näytetään työkalupalkissa." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:462 msgid "" "If this option is checked, the lookup table will be embedded into the input " "window." msgstr "Jos tämä on valittu, etsintätaulukko sisällytetään syöttöikkunaan." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:467 msgid "" "If this option is checked, the lookup table will be displayed vertically." msgstr "Jos tämä on valittu, etsintätaulukko näytetään pystysuuntaisesti." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:472 msgid "" "If this option is checked, the tray icon will be showed on the desktop's " "taskbar." msgstr "" "Jos tämä on valittu, ilmoitusalueen kuvake näytetään työpöydän " "työkalupalkissa" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:476 msgid "" "If this option is checked, the toolbar, input and lookup table windows will " "be sticked to its original position." msgstr "" "Jos tämä on valittu, työkalupalkki, syöttö- ja etsintätaulukkoikkunat " "kohdistetaan alkuperäisiin sijainteihinsa." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:482 msgid "The font setting will be used in the input and lookup table windows." msgstr "Kirjasinasetusta käytetään syöttötapa- ja etsintätaulukkoikkunoihin." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:801 msgid "Select Interface Font" msgstr "Valitse käyttöliittymän kirjasin" #: ../extras/setup/scim_setup_ui.cpp:47 msgid "SCIM" msgstr "SCIM" #: ../extras/setup/scim_setup_ui.cpp:48 msgid "FrontEnd" msgstr "Edustaohjelma" #: ../extras/setup/scim_setup_ui.cpp:49 msgid "IMEngine" msgstr "IMEngine" #: ../extras/setup/scim_setup_ui.cpp:50 msgid "Panel" msgstr "Paneeli" #: ../extras/setup/scim_setup_ui.cpp:51 msgid "Extra" msgstr "Ekstra" #. #. vi:ts=4:nowrap:ai:expandtab #. #: ../extras/setup/scim_setup_ui.cpp:230 #: ../extras/setup/scim-setup.desktop.in.h:1 msgid "SCIM Input Method Setup" msgstr "SCIM syöttötapojen valinta" #: ../extras/setup/scim_setup_ui.cpp:369 msgid "" " Smart Common Input Method platform \n" "\n" "GUI Setup Utility\n" "\n" "\n" "\n" "Copyright 2002-2004, James Su <suzhe@tsinghua.org." "cn>" msgstr "" " Smart Common Input Method -alusta \n" "\n" "Graafinen asetusohjelma\n" "\n" "\n" "\n" "Copyright 2002-2004, James Su <suzhe@tsinghua.org." "cn>" #: ../extras/setup/scim_setup_ui.cpp:394 #, c-format msgid "The Setup for %s modules." msgstr "Asetukset moduulille \"%s\"." #msgid "Are you sure you want to quit SCIM Setup?" #msgstr "Haluatko poistua SCIMin asetuksista?" #: ../extras/setup/scim_setup_ui.cpp:661 msgid "" "Not all configuration can be reloaded on the fly. Don't forget to restart " "SCIM in order to let all of the new configuration take effect." msgstr "" "Kaikkia asetuksia ei voida vaihtaa lennossa. Käynnistä SCIM uudelleen " "ottaaksesi kaikki uudet asetukset käyttöön." #: ../extras/setup/scim_setup_helper.cpp:49 msgid "SCIM Setup" msgstr "SCIM-asetukset" #: ../extras/setup/scim_setup_helper.cpp:51 msgid "Integrated Setup Utility based on GTK Widget library." msgstr "GTK-elementtikirjastoon perustuva asetusohjelma." #: ../extras/setup/scim-setup.desktop.in.h:2 msgid "Setup utility for Smart Common Input Method platform" msgstr "Asetusohjelma Smart Common Input Method -alustalle" #: ../extras/panel/scim_panel_gtk.cpp:982 msgid "SCIM Help" msgstr "SCIM-ohje" #: ../extras/panel/scim_panel_gtk.cpp:999 msgid "Smart Common Input Method" msgstr "Smart Common Input Method" #: ../extras/panel/scim_panel_gtk.cpp:1058 msgid "Stick/unstick the input window and the toolbar." msgstr "Kohdista tai poista syöttöikkunan ja työkalurivun kohdistus." #: ../extras/panel/scim_panel_gtk.cpp:1063 msgid "Show a brief help about SCIM and the current input method." msgstr "Näytä lyhyt ohje SCIMistä sekä nykyinen syöttötapa." #: ../extras/panel/scim_panel_gtk.cpp:1068 msgid "Show command menu." msgstr "Näytä komentovalikko." #: ../extras/panel/scim_panel_gtk.cpp:2306 msgid "" "\n" "(C) 2002-2005 James Su " msgstr "" "\n" "(C) 2002-2005 James Su " #. Reload Configuration. #: ../extras/panel/scim_panel_gtk.cpp:2385 msgid "Reload Configuration" msgstr "Lataa asetukset uudelleen" #. Stick #: ../extras/panel/scim_panel_gtk.cpp:2395 msgid "Stick Windows" msgstr "Kohdista ikkunat" #. Toolbar #: ../extras/panel/scim_panel_gtk.cpp:2404 msgid "Hide Toolbar" msgstr "Piilota työkalupalkki" #. Help #: ../extras/panel/scim_panel_gtk.cpp:2413 msgid "Help ..." msgstr "Ohje ..." #. Clients exit. #: ../extras/panel/scim_panel_gtk.cpp:2431 msgid "Exit" msgstr "Poistu" #: ../utils/scimstringview.c:196 msgid "Cursor Position" msgstr "Kohdistimen paikka" #: ../utils/scimstringview.c:197 msgid "The current position of the insertion cursor in chars." msgstr "Syöttökohdistimen nykyinen paikka merkeissä." #: ../utils/scimstringview.c:206 msgid "Maximum length" msgstr "Suurin pituus" #: ../utils/scimstringview.c:207 msgid "Maximum number of characters for this string view. Zero if no maximum." msgstr "Suurin määrä merkkejä tälle merkkijononäytölle. Nolla, jos ei aseteta." #: ../utils/scimstringview.c:216 msgid "Maximum width" msgstr "Suurin leveys" #: ../utils/scimstringview.c:217 msgid "Maximum width of this string view." msgstr "Suurin leveys tälle merkkijononäytölle." #: ../utils/scimstringview.c:226 msgid "Has Frame" msgstr "Reunus" #: ../utils/scimstringview.c:227 msgid "FALSE removes outside bevel from string view." msgstr "FALSE poistaa ulkopuolisen reunan merkkijononäytöstä." #: ../utils/scimstringview.c:234 msgid "Draw cursor" msgstr "Piirrä kohdistin" #: ../utils/scimstringview.c:235 msgid "TRUE draw blinking cursor." msgstr "TRUE piirtää vilkkuvan kohdistimen." #: ../utils/scimstringview.c:242 msgid "Auto move cursor" msgstr "Kohdistimen siirto" #: ../utils/scimstringview.c:243 msgid "TRUE auto move cursor position when mouse clicking." msgstr "TRUE siirtää kohdistinta automaattisesti hiiren napsautukseta." #: ../utils/scimstringview.c:250 msgid "Forward button press event" msgstr "Edelleenlähetä painikkeen painallus" #: ../utils/scimstringview.c:251 msgid "TRUE forward button press event to user program." msgstr "TRUE lähettää painikkeen painalluksen edelleen käyttäjäohjelmalle." #: ../utils/scimstringview.c:258 msgid "Auto resize the widget to fit the string" msgstr "Muuta elementin kokoa merkkijonon mukaan" #: ../utils/scimstringview.c:259 msgid "TRUE Auto resize on." msgstr "TRUE Automaattinen koon muuttaminen käytössä." #: ../utils/scimstringview.c:266 msgid "Width in chars" msgstr "Leveys merkeissä" #: ../utils/scimstringview.c:267 msgid "Number of characters to leave space for in the string view." msgstr "Merkkijononäyttöön jätettävän tyhjän tilan määrä merkeissä." #: ../utils/scimstringview.c:276 msgid "Scroll offset" msgstr "Vieritysmäärä" #: ../utils/scimstringview.c:277 msgid "Number of pixels of the string view scrolled off the screen to the left" msgstr "Merkkijonon vierityksen määrä pikseleissä" #: ../utils/scimstringview.c:286 msgid "Text" msgstr "Teksti" #: ../utils/scimstringview.c:287 msgid "The contents of the string view" msgstr "Merkkijononäytön sisältö" #: ../utils/scimkeyselection.cpp:155 msgid "Selected _Keys:" msgstr "Valitus _näppäimet:" #: ../utils/scimkeyselection.cpp:200 msgid "Key Code:" msgstr "Näppäinkoodi:" #: ../utils/scimkeyselection.cpp:218 msgid "..." msgstr "..." #: ../utils/scimkeyselection.cpp:223 msgid "Modifiers:" msgstr "Pohjassa olevat näppäimet:" #: ../utils/scimkeyselection.cpp:236 msgid "_Ctrl" msgstr "_Ctrl" #: ../utils/scimkeyselection.cpp:240 msgid "A_lt" msgstr "A_lt" #: ../utils/scimkeyselection.cpp:244 msgid "_Shift" msgstr "_Shift" #: ../utils/scimkeyselection.cpp:248 msgid "_Release" msgstr "_Release" #: ../utils/scimkeyselection.cpp:258 msgid "_Meta" msgstr "_Meta" #: ../utils/scimkeyselection.cpp:262 msgid "S_uper" msgstr "S_uper" #: ../utils/scimkeyselection.cpp:266 msgid "_Hyper" msgstr "_Hyper" #: ../utils/scimkeyselection.cpp:331 msgid "Please enter a Key Code first." msgstr "Syötä näppäinkoodi ensin." #: ../utils/scimkeyselection.cpp:385 msgid "" "Press a key (or a key combination).\n" "This dialog will be closed when the key is released." msgstr "" "Paina näppäintä (tai näppäinyhdistelmää).\n" "Tämä ikkuna sulkeutuu kun näppäin vapautetaan." #: ../utils/scimkeyselection.cpp:388 msgid "Grabbing a key." msgstr "Odotetaan näppäintä." #: ../utils/scimkeyselection.cpp:678 msgid "Key Selection" msgstr "Näppäimen valinta" #: ../utils/scimtrayicon.c:108 msgid "Orientation" msgstr "Suunta" #: ../utils/scimtrayicon.c:109 msgid "The orientation of the tray." msgstr "Ilmoitusalueen suunta." #~ msgid "Are you sure you want to quit SCIM Setup?" #~ msgstr "Haluatko poistua SCIMin asetuksista?" scim-1.4.14/po/fr.po000066400000000000000000001114621177210725600141360ustar00rootroot00000000000000# translation of fr.po to Nederlands # This file is distributed under the same license as the scim package. # Copyright (C) 2004 James Su . # # Damien Menanteau , 2005. # Ronald Stroethoff , 2009. msgid "" msgstr "" "Project-Id-Version: fr\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-07-20 09:50+0800\n" "PO-Revision-Date: 2009-06-21 21:54+0200\n" "Last-Translator: Ronald Stroethoff \n" "Language-Team: Nederlands\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: ../src/scim_compose_key.cpp:126 msgid "English/European" msgstr "Français/Européen" #. Append an entry for forward mode. #: ../src/scim_imengine.cpp:638 ../src/scim_utility.cpp:693 #: ../modules/FrontEnd/scim_x11_frontend.cpp:1897 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1281 #: ../extras/panel/scim_panel_gtk.cpp:2814 msgid "English/Keyboard" msgstr "Français/Clavier" #: ../src/scim_utility.cpp:694 msgid "Amharic" msgstr "Amharique" #: ../src/scim_utility.cpp:695 msgid "Arabic" msgstr "Arabe" #: ../src/scim_utility.cpp:696 msgid "Arabic (Egypt)" msgstr "Arabe (Egypte)" #: ../src/scim_utility.cpp:697 msgid "Arabic (Lebanon)" msgstr "Arabe (Liban)" #: ../src/scim_utility.cpp:698 msgid "Assamese" msgstr "Assamais" #: ../src/scim_utility.cpp:699 msgid "Azerbaijani" msgstr "Azerbaïdjanais" #: ../src/scim_utility.cpp:700 msgid "Belarusian" msgstr "Biélorusse" #: ../src/scim_utility.cpp:701 msgid "Bulgarian" msgstr "Bulgare" #: ../src/scim_utility.cpp:702 ../src/scim_utility.cpp:703 msgid "Bengali" msgstr "Bengali" #: ../src/scim_utility.cpp:704 msgid "Bengali (India)" msgstr "Bengali (Inde)" #: ../src/scim_utility.cpp:705 msgid "Tibetan" msgstr "Tibétain" #: ../src/scim_utility.cpp:706 msgid "Bosnian" msgstr "Bosniaque" #: ../src/scim_utility.cpp:707 msgid "Catalan" msgstr "Catalan" #: ../src/scim_utility.cpp:708 ../src/scim_keyboard_layout_data.h:4595 msgid "Czech" msgstr "Tchèque" #: ../src/scim_utility.cpp:709 msgid "Welsh" msgstr "Gallois" #: ../src/scim_utility.cpp:710 ../src/scim_keyboard_layout_data.h:4597 msgid "Danish" msgstr "Danois" #: ../src/scim_utility.cpp:711 ../src/scim_keyboard_layout_data.h:4605 msgid "German" msgstr "Allemand" #: ../src/scim_utility.cpp:712 msgid "Divehi" msgstr "Maldivien" #: ../src/scim_utility.cpp:713 ../src/scim_keyboard_layout_data.h:4608 msgid "Greek" msgstr "Grec" #: ../src/scim_utility.cpp:714 msgid "English" msgstr "Anglais" #: ../src/scim_utility.cpp:715 msgid "English (Australian)" msgstr "Anglais (Australie)" #: ../src/scim_utility.cpp:716 msgid "English (Canadian)" msgstr "Anglais (Canada)" #: ../src/scim_utility.cpp:717 msgid "English (British)" msgstr "Anglais (Royaume Uni)" #: ../src/scim_utility.cpp:718 msgid "English (Ireland)" msgstr "Anglais (Irlande)" #: ../src/scim_utility.cpp:719 msgid "English (American)" msgstr "Anglais (Etats-Unis)" #: ../src/scim_utility.cpp:720 ../src/scim_utility.cpp:721 #: ../src/scim_keyboard_layout_data.h:4621 msgid "Spanish" msgstr "Espagnol" #: ../src/scim_utility.cpp:722 msgid "Spanish (Mexico)" msgstr "Espagnol (Mexique)" #: ../src/scim_utility.cpp:723 ../src/scim_keyboard_layout_data.h:4600 msgid "Estonian" msgstr "Estonien" #: ../src/scim_utility.cpp:724 msgid "Basque" msgstr "Basque" #: ../src/scim_utility.cpp:725 msgid "Persian" msgstr "Perse" #: ../src/scim_utility.cpp:726 ../src/scim_keyboard_layout_data.h:4601 msgid "Finnish" msgstr "Finnois" #: ../src/scim_utility.cpp:727 ../src/scim_keyboard_layout_data.h:4602 msgid "French" msgstr "Français" #: ../src/scim_utility.cpp:728 msgid "Irish" msgstr "Irlandais" #: ../src/scim_utility.cpp:729 msgid "Galician" msgstr "Galicien" #: ../src/scim_utility.cpp:730 msgid "Gujarati" msgstr "Gujarati" #: ../src/scim_utility.cpp:731 ../src/scim_utility.cpp:740 msgid "Hebrew" msgstr "Hébreu" #: ../src/scim_utility.cpp:732 msgid "Hindi" msgstr "Hindi" #: ../src/scim_utility.cpp:733 ../src/scim_keyboard_layout_data.h:4594 msgid "Croatian" msgstr "Croate" #: ../src/scim_utility.cpp:734 ../src/scim_keyboard_layout_data.h:4609 msgid "Hungarian" msgstr "Hongrois" #: ../src/scim_utility.cpp:735 msgid "Armenian" msgstr "Arménien" #: ../src/scim_utility.cpp:736 msgid "Interlingua" msgstr "Interlingua" #: ../src/scim_utility.cpp:737 msgid "Indonesian" msgstr "Indonésien" #: ../src/scim_utility.cpp:738 ../src/scim_keyboard_layout_data.h:4627 msgid "Icelandic" msgstr "Islandais" #: ../src/scim_utility.cpp:739 ../src/scim_keyboard_layout_data.h:4610 msgid "Italian" msgstr "Italien" #: ../src/scim_utility.cpp:741 ../src/scim_keyboard_layout_data.h:4611 msgid "Japanese" msgstr "Japonais" #: ../src/scim_utility.cpp:742 msgid "Georgian" msgstr "Géorgien" #: ../src/scim_utility.cpp:743 msgid "Kazakh" msgstr "Kazakh" #: ../src/scim_utility.cpp:744 msgid "Cambodian" msgstr "Khmer" #: ../src/scim_utility.cpp:745 msgid "Kannada" msgstr "Kannara" #: ../src/scim_utility.cpp:746 msgid "Korean" msgstr "Coréen" #: ../src/scim_utility.cpp:747 msgid "Laothian" msgstr "Laotien" #: ../src/scim_utility.cpp:748 ../src/scim_keyboard_layout_data.h:4628 msgid "Lithuanian" msgstr "Lituanien" #: ../src/scim_utility.cpp:749 msgid "Latvian" msgstr "Letton" #: ../src/scim_utility.cpp:750 msgid "Macedonian" msgstr "Macédonien" #: ../src/scim_utility.cpp:751 msgid "Malayalam" msgstr "Malayalam" #: ../src/scim_utility.cpp:752 msgid "Mongolian" msgstr "Mongol" #: ../src/scim_utility.cpp:753 msgid "Marathi" msgstr "Marathi" #: ../src/scim_utility.cpp:754 msgid "Malay" msgstr "Malais" #: ../src/scim_utility.cpp:755 msgid "Burmese" msgstr "Birman" #: ../src/scim_utility.cpp:756 msgid "Nepali" msgstr "Népalais" #: ../src/scim_utility.cpp:757 ../src/scim_keyboard_layout_data.h:4598 msgid "Dutch" msgstr "Néerlandais" #: ../src/scim_utility.cpp:758 msgid "Norwegian (nynorsk)" msgstr "Norvégien (Nynorsk)" #: ../src/scim_utility.cpp:759 msgid "Norwegian (bokmal)" msgstr "Norvégien (Bokmal)" #: ../src/scim_utility.cpp:760 msgid "Oriya" msgstr "Oriya" #: ../src/scim_utility.cpp:761 msgid "Punjabi" msgstr "Punjabi" #: ../src/scim_utility.cpp:762 ../src/scim_keyboard_layout_data.h:4613 msgid "Polish" msgstr "Polonais" #: ../src/scim_utility.cpp:763 ../src/scim_utility.cpp:765 #: ../src/scim_keyboard_layout_data.h:4614 msgid "Portuguese" msgstr "Portugais" #: ../src/scim_utility.cpp:764 ../src/scim_keyboard_layout_data.h:4615 msgid "Portuguese (Brazil)" msgstr "Portugais (Brésil)" #: ../src/scim_utility.cpp:766 msgid "Romanian" msgstr "Roumain" #: ../src/scim_utility.cpp:767 ../src/scim_keyboard_layout_data.h:4617 msgid "Russian" msgstr "Russe" #: ../src/scim_utility.cpp:768 msgid "Sinhala" msgstr "Singhalais" #: ../src/scim_utility.cpp:769 ../src/scim_keyboard_layout_data.h:4618 msgid "Slovak" msgstr "Slovaque" #: ../src/scim_utility.cpp:770 ../src/scim_keyboard_layout_data.h:4620 msgid "Slovenian" msgstr "Slovène" #: ../src/scim_utility.cpp:771 msgid "Albanian" msgstr "Albanais" #: ../src/scim_utility.cpp:772 ../src/scim_utility.cpp:773 #: ../src/scim_utility.cpp:774 msgid "Serbian" msgstr "Serbe" #: ../src/scim_utility.cpp:775 ../src/scim_utility.cpp:777 #: ../src/scim_keyboard_layout_data.h:4624 msgid "Swedish" msgstr "Suédois" #: ../src/scim_utility.cpp:776 msgid "Swedish (Finland)" msgstr "Suédois (Finlande)" #: ../src/scim_utility.cpp:778 msgid "Tamil" msgstr "Tamoul" #: ../src/scim_utility.cpp:779 msgid "Telugu" msgstr "Telugu" #: ../src/scim_utility.cpp:780 msgid "Thai" msgstr "Thaï" #: ../src/scim_utility.cpp:781 ../src/scim_keyboard_layout_data.h:4625 msgid "Turkish" msgstr "Turc" #: ../src/scim_utility.cpp:782 msgid "Uighur" msgstr "Uighur" #: ../src/scim_utility.cpp:783 ../src/scim_keyboard_layout_data.h:4629 msgid "Ukrainian" msgstr "Ukrainien" #: ../src/scim_utility.cpp:784 msgid "Urdu" msgstr "Ourdou" #: ../src/scim_utility.cpp:785 msgid "Uzbek" msgstr "Ouzbèque" #: ../src/scim_utility.cpp:786 msgid "Vietnamese" msgstr "Vietnamien" #: ../src/scim_utility.cpp:787 msgid "Walloon" msgstr "Wallon" #: ../src/scim_utility.cpp:788 ../src/scim_utility.cpp:789 msgid "Yiddish" msgstr "Yiddish" #: ../src/scim_utility.cpp:790 msgid "Chinese" msgstr "Chinois" #: ../src/scim_utility.cpp:791 ../src/scim_utility.cpp:793 msgid "Chinese (simplified)" msgstr "Chinois (simplifié)" #: ../src/scim_utility.cpp:792 ../src/scim_utility.cpp:794 msgid "Chinese (traditional)" msgstr "Chinois (traditionnel)" #: ../src/scim_utility.cpp:876 msgid "Other" msgstr "Autre" #: ../src/scim_keyboard_layout_data.h:4591 #: ../modules/IMEngine/scim_socket_imengine.cpp:386 #: ../modules/IMEngine/scim_socket_imengine.cpp:416 #: ../modules/IMEngine/scim_socket_imengine.cpp:501 #: ../modules/IMEngine/scim_socket_imengine.cpp:531 #: ../modules/IMEngine/scim_socket_imengine.cpp:561 msgid "Unknown" msgstr "Inconnu" #: ../src/scim_keyboard_layout_data.h:4592 msgid "English (US)" msgstr "Anglais (US)" #: ../src/scim_keyboard_layout_data.h:4593 msgid "Belgian" msgstr "Belge" #: ../src/scim_keyboard_layout_data.h:4596 msgid "Czech (qwerty)" msgstr "Tchèque (qwerty)" #: ../src/scim_keyboard_layout_data.h:4599 msgid "Dvorak" msgstr "Dvorak" #: ../src/scim_keyboard_layout_data.h:4603 msgid "French (Canadian)" msgstr "Français (Canada)" #: ../src/scim_keyboard_layout_data.h:4604 msgid "French (Switzerland)" msgstr "Français (Suisse)" #: ../src/scim_keyboard_layout_data.h:4606 msgid "German (with deadkeys)" msgstr "Allemand (avec touches mortes)" #: ../src/scim_keyboard_layout_data.h:4607 msgid "German (Swiss)" msgstr "Allemand (Suisse)" #: ../src/scim_keyboard_layout_data.h:4612 msgid "Norwegian" msgstr "Norvégien" #: ../src/scim_keyboard_layout_data.h:4616 msgid "Portuguese (Brazil US accents)" msgstr "Portugais (Brésil accents US)" #: ../src/scim_keyboard_layout_data.h:4619 msgid "Slovak (qwerty)" msgstr "Slovaque (qwerty)" #: ../src/scim_keyboard_layout_data.h:4622 msgid "Spanish (CP 850)" msgstr "Espagnol (CP 850)" #: ../src/scim_keyboard_layout_data.h:4623 msgid "Spanish (Latin America)" msgstr "Espagnol (Amérique latine)" #: ../src/scim_keyboard_layout_data.h:4626 msgid "English (UK)" msgstr "Anglais (GB)" #: ../modules/Filter/scim_sctc_filter.cpp:57 msgid "Simplified-Traditional Chinese Conversion" msgstr "Conversion Chinois Simplifié-Traditionnel" #: ../modules/Filter/scim_sctc_filter.cpp:60 msgid "Convert between Simplified Chinese and Traditional Chinese" msgstr "Conversion entre chinois simplifié et chinois traditionnel" #: ../modules/Filter/scim_sctc_filter.cpp:71 msgid "SC-TC" msgstr "CS-CT" #: ../modules/Filter/scim_sctc_filter.cpp:73 #: ../modules/Filter/scim_sctc_filter.cpp:78 msgid "Simplified-Traditional Chinese conversion" msgstr "Conversion Chinois Simplifié-Traditionnel" #: ../modules/Filter/scim_sctc_filter.cpp:76 msgid "No Conversion" msgstr "Pas de conversion" #: ../modules/Filter/scim_sctc_filter.cpp:81 msgid "Simplified to Traditional" msgstr "Simplifié vers Traditionnel" #: ../modules/Filter/scim_sctc_filter.cpp:83 msgid "Convert Simplified Chinese to Traditional Chinese" msgstr "Conversion du chinois simplifié en chinois traditionnel" #: ../modules/Filter/scim_sctc_filter.cpp:86 msgid "Traditional to Simplified" msgstr "Traditionnel vers Simplifié" #: ../modules/Filter/scim_sctc_filter.cpp:88 msgid "Convert Traditional Chinese to Simplified Chinese" msgstr "Conversion du chinois traditionnel en chinois simplifié" #: ../modules/Filter/scim_sctc_filter.cpp:300 msgid "James Su " msgstr "James Su " #: ../modules/Filter/scim_sctc_filter.cpp:425 #: ../modules/Filter/scim_sctc_filter.cpp:555 #: ../modules/Filter/scim_sctc_filter.cpp:571 msgid "SC->TC" msgstr "CS->CT" #: ../modules/Filter/scim_sctc_filter.cpp:431 #: ../modules/Filter/scim_sctc_filter.cpp:559 #: ../modules/Filter/scim_sctc_filter.cpp:575 msgid "TC->SC" msgstr "CT->CS" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1845 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1231 #: ../extras/panel/scim_panel_gtk.cpp:2304 msgid "Smart Common Input Method platform " msgstr "Plateforme Smart Common Input Method" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1847 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1233 msgid "" "\n" "(C) 2002-2005 James Su \n" "\n" msgstr "" "\n" "(C) 2002-2005 James Su \n" "\n" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1851 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1238 msgid "" ":\n" "\n" msgstr "" " :\n" "\n" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1854 #: ../modules/FrontEnd/scim_x11_frontend.cpp:1857 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1241 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1244 msgid "" "\n" "\n" msgstr "" "\n" "\n" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:120 msgid "RAW CODE" msgstr "CODE BRUT" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:127 msgid "(C) 2002-2006 James Su " msgstr "(C) 2002-2006 James Su " #: ../modules/IMEngine/scim_rawcode_imengine.cpp:140 msgid "" "Hot Keys:\n" "\n" " Control+u:\n" " switch between Multibyte encoding and Unicode.\n" "\n" " Esc:\n" " reset the input method.\n" msgstr "" "Racourcis :\n" "\n" " Ctrl+u :\n" " bascule entre encodage Multi-octets et Unicode.\n" "\n" " Echap :\n" " réinitialise la méthode de saisie.\n" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:407 #: ../modules/IMEngine/scim_rawcode_imengine.cpp:423 msgid "The status of the current input method. Click to change it." msgstr "Etat de la méthode de saisie courante. Cliquer pour la modifier." #: ../modules/IMEngine/scim_rawcode_imengine.cpp:409 msgid "Unicode" msgstr "Unicode" #: ../modules/SetupUI/scim_frontend_setup.cpp:82 #: ../modules/SetupUI/scim_imengine_setup.cpp:88 msgid "Global Setup" msgstr "Configuration globale" #: ../modules/SetupUI/scim_frontend_setup.cpp:87 msgid "" "Setup the global options used by All FrontEnd modules, including X11 " "FrontEnd, GTK IMModule, QT IMModule etc." msgstr "" "Configurer des options globales utilisées par tous les modules frontaux, " "incluant le frontal X11, GTK IMModule, QT IMModule etc." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:143 msgid "_Trigger:" msgstr "_Déclencheur :" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:145 msgid "Select the trigger keys" msgstr "Sélectionner les touches d'activation" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:147 msgid "" "The key events to turn on/off SCIM input method. Click on the button on the " "right to edit it." msgstr "" "Touches pour activer/désactiver SCIM. Cliquer sur le bouton de droite pour " "les modifier." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:160 msgid "Turn _On:" msgstr "_Activer:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:162 msgid "Select the Turn On keys" msgstr "Sélectionner les touches d'activation" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:164 msgid "" "The key events to turn on SCIM input method. Click on the button on the " "right to edit it." msgstr "Touches pour activer SCIM. Cliquer sur le bouton de droite pour les modifier." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:177 msgid "Turn O_ff:" msgstr "Désac_tiver:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:179 msgid "Select the Turn Off keys" msgstr "Sélectionner les touches de désactivation" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:181 msgid "" "The key events to turn off SCIM input method. Click on the button on the " "right to edit it." msgstr "" "Touches pour désactiver SCIM. Cliquer sur le bouton de droite pour les " "modifier." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:194 msgid "_Next input method:" msgstr "Méthode de saisie _Suivante :" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:196 msgid "Select the next input method keys" msgstr "Sélectionner les touches pour la méthode de saisie suivante" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:198 msgid "" "The key events to switch to the next input method. Click on the button on " "the right to edit it." msgstr "" "Touches pour aller à la méthode de saisie suivante. Cliquer sur le bouton de " "droite pour les modifier." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:213 msgid "_Previous input method:" msgstr "Méthode de saisie _Précédente :" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:215 msgid "Select the previous input method keys" msgstr "Sélectionner les touches pour la méthode de saisie précédente" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:217 msgid "" "The key events to switch to the previous input method. Click on the button " "on the right to edit it." msgstr "" "Touches pour revenir à la méthode de saisie précédente. Cliquer sur le " "bouton de droite pour les modifier." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:232 msgid "Show input method _menu:" msgstr "Accès au _Menu des méthodes de saisie :" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:234 msgid "Select the show input method menu keys" msgstr "Sélectionner les touches pour accéder au menu des méthodes de saisie" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:236 msgid "" "The key events to show the input method menu. Click on the button on the " "right to edit it." msgstr "" "Touches pour accéder au menu des méthodes de saisie. Cliquer sur le bouton " "de droite pour les modifier." #: ../modules/SetupUI/scim_frontend_setup.cpp:306 msgid "Options" msgstr "Options" #: ../modules/SetupUI/scim_frontend_setup.cpp:321 msgid "_Keyboard Layout:" msgstr "_Type de Clavier:" #: ../modules/SetupUI/scim_frontend_setup.cpp:342 msgid "" "You should choose your currently used keyboard layout here so that input " "methods, who care about keyboard layout, could work correctly." msgstr "" "Indiquez ici le type de clavier que vous utilisez afin que les méthodes de " "saisie qui dépendent du type de clavier puissent fonctionner correctement." #. On The Spot. #: ../modules/SetupUI/scim_frontend_setup.cpp:346 msgid "_Embed Preedit String into client window" msgstr "Insérer les chaîne en préédition dans la fenêtre cliente" #: ../modules/SetupUI/scim_frontend_setup.cpp:351 msgid "" "If this option is checked, the preedit string will be displayed directly in " "the client input window, rather than in a independent float window." msgstr "" "Quand cette option est sélectionnée, la table de préédition est affichée " "directement dans la fenêtre de saisie, et non pas dans une fenêtre " "indépendante." #. Shared input method. #: ../modules/SetupUI/scim_frontend_setup.cpp:360 msgid "_Share the same input method among all applications" msgstr "_Partage de la même méthode de saisie entre toutes les applications" #: ../modules/SetupUI/scim_frontend_setup.cpp:365 msgid "" "If this option is checked, then only one input method could be used by all " "applications at the same time.Otherwise different input method could be used " "by each application." msgstr "" "Quand cette option est sélectionnée, la même méthode de saisie peut être " "utilisée par toutes les applications en même temps. Dans le cas contraire, " "chaque application utilise sa propre méthode de saisie." #: ../modules/SetupUI/scim_frontend_setup.cpp:373 #: ../modules/SetupUI/scim_imengine_setup.cpp:453 msgid "Hotkeys" msgstr "Raccourcis" #: ../modules/SetupUI/scim_imengine_setup.cpp:93 msgid "You can enable/disable input methods and set hotkeys for input methods here." msgstr "" "Ici, vous pouvez activer/désactiver les méthodes de saisie et les jeux de " "raccourcis pour les méthodes de saisie." #: ../modules/SetupUI/scim_imengine_setup.cpp:296 msgid "The installed input method services:" msgstr "Services de méthode de saisie installés :" #. Create hotkey and filter button before factory list view, because #. factory_list_selection_changed_callback may access these two buttons. #: ../modules/SetupUI/scim_imengine_setup.cpp:311 msgid "Edit _Hotkeys" msgstr "Editer les _Raccourcis" #: ../modules/SetupUI/scim_imengine_setup.cpp:320 msgid "Edit Hotkeys associated with the selected input method." msgstr "Editer les raccourcis associés à la méthode de saisie sélectionnée." #: ../modules/SetupUI/scim_imengine_setup.cpp:322 msgid "Select _Filters" msgstr "Sélectionner les _Filtres" #: ../modules/SetupUI/scim_imengine_setup.cpp:331 msgid "Select the Filters which will be attached to this input method." msgstr "Sélectionner les Filtres à associer à cette méthode de saisie." #: ../modules/SetupUI/scim_imengine_setup.cpp:348 msgid "_Expand" msgstr "_Ouvrir" #: ../modules/SetupUI/scim_imengine_setup.cpp:357 msgid "Expand all language categories." msgstr "Ouvrir toutes les catégories de langage." #: ../modules/SetupUI/scim_imengine_setup.cpp:359 msgid "_Collapse" msgstr "_Refermer" #: ../modules/SetupUI/scim_imengine_setup.cpp:368 msgid "Collapse all language categories." msgstr "Fermer toutes les catégories de langage." #: ../modules/SetupUI/scim_imengine_setup.cpp:370 msgid "E_nable All" msgstr "Tout Activer" #: ../modules/SetupUI/scim_imengine_setup.cpp:379 msgid "Enable all input methods." msgstr "Activer toutes les méthodes de saisie." #: ../modules/SetupUI/scim_imengine_setup.cpp:381 msgid "_Disable All" msgstr "Tout Désactiver" #: ../modules/SetupUI/scim_imengine_setup.cpp:390 msgid "Disable all input methods." msgstr "Désactiver toutes les méthodes de saisie." #: ../modules/SetupUI/scim_imengine_setup.cpp:414 #: ../modules/SetupUI/scim_imengine_setup.cpp:541 msgid "Name" msgstr "Nom" #: ../modules/SetupUI/scim_imengine_setup.cpp:432 #: ../modules/SetupUI/scim_imengine_setup.cpp:522 msgid "Enable" msgstr "Activer" #: ../modules/SetupUI/scim_imengine_setup.cpp:467 msgid "Filters" msgstr "Filtres" #: ../modules/SetupUI/scim_imengine_setup.cpp:560 msgid "Languages" msgstr "Langues" #: ../modules/SetupUI/scim_imengine_setup.cpp:574 msgid "Description" msgstr "Description" #: ../modules/SetupUI/scim_imengine_setup.cpp:1190 #, c-format msgid "Edit Hotkeys for %s" msgstr "Editer les raccourcis pour %s" #: ../modules/SetupUI/scim_imengine_setup.cpp:1417 #, c-format msgid "Select Filters for %s" msgstr "Sélectionner les filtres pour %s" #: ../modules/SetupUI/scim_imengine_setup.cpp:1450 msgid "Move _Up" msgstr "_Monter" #: ../modules/SetupUI/scim_imengine_setup.cpp:1457 msgid "Move _Down" msgstr "_Descendre" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:95 msgid "GTK" msgstr "GTK" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:100 msgid "A panel daemon based on GTK+-2.x library." msgstr "Un panneau serveur basé sur la librairie GTK+-2.x." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:163 msgid "Always" msgstr "Toujours" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:164 msgid "On demand" msgstr "A la demande" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:165 msgid "Never" msgstr "Jamais" #. Create the ToolBar setup block. #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:211 msgid "ToolBar" msgstr "Barre d'Outils" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:229 msgid "_Show:" msgstr "_Afficher" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:245 msgid "Auto s_nap" msgstr "Aligne_ment automatique" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:251 msgid "Show _input method icon" msgstr "Affichage icône méthode de _saisie" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:257 msgid "Show inp_ut method name" msgstr "Affichage _nom méthode de saisie" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:269 msgid "Hide time_out:" msgstr "_Délai avant masquage :" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:282 msgid "Show s_tick icon" msgstr "Affichage icône d'épin_glage fenêtre" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:288 msgid "Show m_enu icon" msgstr "Afficher l'icône de m_enu" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:294 msgid "Show _help icon" msgstr "Affichage icône d'_aide" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:300 msgid "Show _property label" msgstr "Affichage label de p_ropriété" #. Create the Input Window setup block #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:311 msgid "Input window" msgstr "Fenêtre de saisie" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:320 msgid "E_mbedded lookup table" msgstr "Table de recherche _embarquée" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:324 msgid "_Vertical lookup table" msgstr "Table de recherche _verticale" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:328 msgid "Misc" msgstr "Divers" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:337 msgid "Show tra_y icon" msgstr "Affichage icône barre de _tâches" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:341 msgid "Stick _windows" msgstr "Epinglage _fenêtres" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:349 msgid "_Font:" msgstr "P_olice :" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:419 msgid "" "If option \"Always\" is selected, the toolbar will always be shown on the " "screen. If option \"On demand\" is selected, it will only be shown when SCIM " "is activated. If option \"Never\" is selected, it will never be shown." msgstr "" "Quand l'option \"Toujours\" est sélectionnée, la barre d'outils est affichée " "en permanence à l'écran. Quand l'option \"A la demande\" est sélectionnée, " "la barre d'outils est affichée uniquement lorsque SCIM est activé. Quand " "l'option \"Jamais\" estsélectionnée, la barre d'outils n'est jamais affichée." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:426 msgid "If this option is checked, the toolbar will be snapped to the screen border." msgstr "" "Quand cette option est sélectionnée, la barre d'outil s'aligne " "automatiquement sur le bord de l'écran." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:431 msgid "" "The toolbar will be hidden out after this timeout is elapsed. This option is " "only valid when \"Always show\" is selected. Set to zero to disable this " "behavior." msgstr "" "La barre d'outils sera masquée automatiquement après l'expiration de ce " "délai. Cette option n'est valide que si l'option \"Afficher Toujours\" est " "sélectionnée. Une valeur de délai de 0 supprime ce comportement." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:438 msgid "" "If this option is checked, the input method icon will be showed on the " "toolbar." msgstr "" "Quand cette option est sélectionnée, l'icône de la méthode de saisie est " "inséré dans la barre d'outils." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:442 msgid "" "If this option is checked, the input method name will be showed on the " "toolbar." msgstr "" "Quand cette option est sélectionnée, le nom de la méthode de saisie est " "inséré dans la barre d'outils." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:446 msgid "If this option is checked, the stick icon will be showed on the toolbar." msgstr "" "Quand cette option est sélectionnée, l'icône d'épinglage de fenêtre est " "inséré dans la barre d'outils." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:450 msgid "If this option is checked, the menu icon will be showed on the toolbar." msgstr "" "Quand cette option est sélectionnée, l'icône de menu est inséré dans la " "barre d'outils." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:454 msgid "If this option is checked, the help icon will be showed on the toolbar." msgstr "" "Quand cette option est sélectionnée, l'icône d'aide est inséré dans la barre " "d'outils." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:458 msgid "" "If this option is checked, the text label of input method properties will be " "showed on the toolbar." msgstr "" "Quand cette option est sélectionnée, le label des propriétés de la méthode " "de saisie est inséré dans la barre d'outils." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:462 msgid "" "If this option is checked, the lookup table will be embedded into the input " "window." msgstr "" "Quand cette option est sélectionnée, la table de recherche est embarquée " "dans la fenêtre de saisie." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:467 msgid "If this option is checked, the lookup table will be displayed vertically." msgstr "" "Quand cette option est sélectionnée, la table de recherche est affichée " "verticalement." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:472 msgid "" "If this option is checked, the tray icon will be showed on the desktop's " "taskbar." msgstr "" "Quand cette option est sélectionnée, l'icône est inséré dans la barre de " "tâches du bureau." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:476 msgid "" "If this option is checked, the toolbar, input and lookup table windows will " "be sticked to its original position." msgstr "" "Quand cette option est sélectionnée, les fenêtres de saisie et de recherche " "sont maintenues à leur position originale." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:482 msgid "The font setting will be used in the input and lookup table windows." msgstr "" "La police de caractères configurée est utilisée dans les fenêtres de saisie " "et de recherche." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:801 msgid "Select Interface Font" msgstr "Police de Caractères" #: ../extras/setup/scim_setup_ui.cpp:47 msgid "SCIM" msgstr "SCIM" #: ../extras/setup/scim_setup_ui.cpp:48 msgid "FrontEnd" msgstr "Interface" #: ../extras/setup/scim_setup_ui.cpp:49 msgid "IMEngine" msgstr "Moteur de Saisie" #: ../extras/setup/scim_setup_ui.cpp:50 msgid "Panel" msgstr "Panneau" #: ../extras/setup/scim_setup_ui.cpp:51 msgid "Extra" msgstr "Extra" #. #. vi:ts=4:nowrap:ai:expandtab #. #: ../extras/setup/scim_setup_ui.cpp:230 #: ../extras/setup/scim-setup.desktop.in.h:1 msgid "SCIM Input Method Setup" msgstr "Configuration de la Méthode de Saisie SCIM" #: ../extras/setup/scim_setup_ui.cpp:369 msgid "" " Smart Common Input Method platform \n" "\n" "GUI Setup Utility\n" "\n" "\n" "\n" "Copyright 2002-2004, James Su <suzhe@tsinghua.org." "cn>" msgstr "" " Plateforme Smart Common Input Method \n" "\n" "Utilitaire de Configuration\n" "\n" "\n" "\n" "Copyright 2002-2004, James Su <suzhe@tsinghua.org." "cn>" #: ../extras/setup/scim_setup_ui.cpp:394 #, c-format msgid "The Setup for %s modules." msgstr "Configuration des modules %s." #msgid "Are you sure you want to quit SCIM Setup?" #msgstr "Etes vous sûr de vouloir quitter SCIM Config. ?" #: ../extras/setup/scim_setup_ui.cpp:661 msgid "" "Not all configuration can be reloaded on the fly. Don't forget to restart " "SCIM in order to let all of the new configuration take effect." msgstr "" "Certains des paramètres de configuration ne peuvent pas être pris en compte " "automatiquement. N'oubliez pas de redémarrer SCIM afin que toutes les " "nouvelles valeurs de configuration soient prises en compte." #: ../extras/setup/scim_setup_helper.cpp:49 msgid "SCIM Setup" msgstr "Configuration de SCIM" #: ../extras/setup/scim_setup_helper.cpp:51 msgid "Integrated Setup Utility based on GTK Widget library." msgstr "Utilitaire de configuration intégré basé sur la librairie GTK Widget." #: ../extras/setup/scim-setup.desktop.in.h:2 msgid "Setup utility for Smart Common Input Method platform" msgstr "Utilitaire de configuration de la plateforme \"Smart Common Input Method\"" #: ../extras/panel/scim_panel_gtk.cpp:982 msgid "SCIM Help" msgstr "Aide SCIM" #: ../extras/panel/scim_panel_gtk.cpp:999 msgid "Smart Common Input Method" msgstr "Smart Common Input Method" #: ../extras/panel/scim_panel_gtk.cpp:1058 msgid "Stick/unstick the input window and the toolbar." msgstr "Epingle la fenêtre de saisie et la barre d'outils." #: ../extras/panel/scim_panel_gtk.cpp:1063 msgid "Show a brief help about SCIM and the current input method." msgstr "Affiche une aide succincte sur SCIM et la méthode de saisie courante." #: ../extras/panel/scim_panel_gtk.cpp:1068 msgid "Show command menu." msgstr "Afficher le menu des commandes." #: ../extras/panel/scim_panel_gtk.cpp:2306 msgid "" "\n" "(C) 2002-2005 James Su " msgstr "" "\n" "(C) 2002-2005 James Su " #. Reload Configuration. #: ../extras/panel/scim_panel_gtk.cpp:2385 msgid "Reload Configuration" msgstr "Recharger la Configuration" #. Stick #: ../extras/panel/scim_panel_gtk.cpp:2395 msgid "Stick Windows" msgstr "Epingler les Fenêtres" #. Toolbar #: ../extras/panel/scim_panel_gtk.cpp:2404 msgid "Hide Toolbar" msgstr "Masquer la Barre d'Outils" #. Help #: ../extras/panel/scim_panel_gtk.cpp:2413 msgid "Help ..." msgstr "Aide ..." #. Clients exit. #: ../extras/panel/scim_panel_gtk.cpp:2431 msgid "Exit" msgstr "Quitter" #: ../utils/scimstringview.c:196 msgid "Cursor Position" msgstr "Position du Curseur" #: ../utils/scimstringview.c:197 msgid "The current position of the insertion cursor in chars." msgstr "Position courante du curseur d'insertion dans les caractères." #: ../utils/scimstringview.c:206 msgid "Maximum length" msgstr "Longueur maximale" #: ../utils/scimstringview.c:207 msgid "Maximum number of characters for this string view. Zero if no maximum." msgstr "" "Nombre maximum de caractères pour cette vue de chaîne de caractères. Zero si " "pas de maximum." #: ../utils/scimstringview.c:216 msgid "Maximum width" msgstr "Largeur maximale" #: ../utils/scimstringview.c:217 msgid "Maximum width of this string view." msgstr "Largeur maximale de cette vue de chaîne de caractères." #: ../utils/scimstringview.c:226 msgid "Has Frame" msgstr "Avec Cadre" #: ../utils/scimstringview.c:227 msgid "FALSE removes outside bevel from string view." msgstr "FAUX supprime le cadre extérieur de la vue de chaîne de caractères." #: ../utils/scimstringview.c:234 msgid "Draw cursor" msgstr "Affichage du curseur" #: ../utils/scimstringview.c:235 msgid "TRUE draw blinking cursor." msgstr "VRAI Affichage d'un curseur clignotant." #: ../utils/scimstringview.c:242 msgid "Auto move cursor" msgstr "Déplacement automatique du curseur" #: ../utils/scimstringview.c:243 msgid "TRUE auto move cursor position when mouse clicking." msgstr "VRAI Déplacement automatique de la position du curseur sur clic de souris." #: ../utils/scimstringview.c:250 msgid "Forward button press event" msgstr "Transmission événement d'appui de bouton" #: ../utils/scimstringview.c:251 msgid "TRUE forward button press event to user program." msgstr "VRAI Fait suivre les événements d'appui de bouton vers le programme client." #: ../utils/scimstringview.c:258 msgid "Auto resize the widget to fit the string" msgstr "Redimensionnement automatique à la taille de la chaîne" #: ../utils/scimstringview.c:259 msgid "TRUE Auto resize on." msgstr "VRAI Redimensionnement automatique activé." #: ../utils/scimstringview.c:266 msgid "Width in chars" msgstr "Largeur en caractères" #: ../utils/scimstringview.c:267 msgid "Number of characters to leave space for in the string view." msgstr "Nombre de caractères à laisser vides dans la vue de chaîne de caractères." #: ../utils/scimstringview.c:276 msgid "Scroll offset" msgstr "Décalage" #: ../utils/scimstringview.c:277 msgid "Number of pixels of the string view scrolled off the screen to the left" msgstr "" "Nombre de pixels de la vue de chaîne de caractères décalés à gauche en " "dehors de l'écran" #: ../utils/scimstringview.c:286 msgid "Text" msgstr "Texte" #: ../utils/scimstringview.c:287 msgid "The contents of the string view" msgstr "Le contenu de la vue de chaîne de caractères" #: ../utils/scimkeyselection.cpp:155 msgid "Selected _Keys:" msgstr "_Touches Sélectionnées :" #: ../utils/scimkeyselection.cpp:200 msgid "Key Code:" msgstr "Code Touche:" #: ../utils/scimkeyselection.cpp:218 msgid "..." msgstr "..." #: ../utils/scimkeyselection.cpp:223 msgid "Modifiers:" msgstr "Modificateurs:" #: ../utils/scimkeyselection.cpp:236 msgid "_Ctrl" msgstr "_Ctrl" #: ../utils/scimkeyselection.cpp:240 msgid "A_lt" msgstr "_Alt" #: ../utils/scimkeyselection.cpp:244 msgid "_Shift" msgstr "_Maj" #: ../utils/scimkeyselection.cpp:248 msgid "_Release" msgstr "_Relâche" #: ../utils/scimkeyselection.cpp:258 msgid "_Meta" msgstr "_Meta" #: ../utils/scimkeyselection.cpp:262 msgid "S_uper" msgstr "S_uper" #: ../utils/scimkeyselection.cpp:266 msgid "_Hyper" msgstr "_Hyper" #: ../utils/scimkeyselection.cpp:331 msgid "Please enter a Key Code first." msgstr "Veuillez d'abord entrer un code de touche." #: ../utils/scimkeyselection.cpp:385 msgid "" "Press a key (or a key combination).\n" "This dialog will be closed when the key is released." msgstr "" "Appuyer sur une touche (ou une combinaison de touches).\n" "Cette fenêtre se fermera dès que la touche sera relâchée." #: ../utils/scimkeyselection.cpp:388 msgid "Grabbing a key." msgstr "Capture de touche." #: ../utils/scimkeyselection.cpp:678 msgid "Key Selection" msgstr "Sélection de Touche" #: ../utils/scimtrayicon.c:108 msgid "Orientation" msgstr "Orientation" #: ../utils/scimtrayicon.c:109 msgid "The orientation of the tray." msgstr "Orientation du tiroir." scim-1.4.14/po/gu.po000066400000000000000000001333251177210725600141440ustar00rootroot00000000000000# translation of gu.po to Gujarati # Gujarati translations for PACKAGE package. # Copyright (C) 2008 THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Automatically generated, 2008. # Ankit Patel , 2008. msgid "" msgstr "" "Project-Id-Version: gu\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-06-22 11:40-0700\n" "PO-Revision-Date: 2008-03-25 16:35+0530\n" "Last-Translator: Ankit Patel \n" "Language-Team: Gujarati \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n\n" "\n" #: ../src/scim_compose_key.cpp:126 msgid "English/European" msgstr "અંગà«àª°à«‡àªœà«€/યà«àª°à«‹àªªà«€àª¯" #. Append an entry for forward mode. #: ../src/scim_imengine.cpp:638 ../src/scim_utility.cpp:693 #: ../modules/FrontEnd/scim_x11_frontend.cpp:1897 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1281 #: ../extras/panel/scim_panel_gtk.cpp:2814 msgid "English/Keyboard" msgstr "અંગà«àª°à«‡àªœà«€/કીબોરà«àª¡" #: ../src/scim_utility.cpp:694 msgid "Amharic" msgstr "અમà«àª¹àª¾àª°à«€àª•" #: ../src/scim_utility.cpp:695 msgid "Arabic" msgstr "અરેબી" #: ../src/scim_utility.cpp:696 msgid "Arabic (Egypt)" msgstr "અરેબી (ઈજીપà«àª¤)" #: ../src/scim_utility.cpp:697 msgid "Arabic (Lebanon)" msgstr "અરેબી (લેબનન)" #: ../src/scim_utility.cpp:698 msgid "Assamese" msgstr "આસામી" #: ../src/scim_utility.cpp:699 msgid "Azerbaijani" msgstr "અàªàª°àª¬à«ˆàªœàª¾àª¨à«€" #: ../src/scim_utility.cpp:700 msgid "Belarusian" msgstr "બેલારà«àª¸àª¿àª¯àª¾àªˆ" #: ../src/scim_utility.cpp:701 msgid "Bulgarian" msgstr "બલà«àª—ેરિયાઈ" #: ../src/scim_utility.cpp:702 ../src/scim_utility.cpp:703 msgid "Bengali" msgstr "બંગાલી" #: ../src/scim_utility.cpp:704 msgid "Bengali (India)" msgstr "બંગાલી (ભારત)" #: ../src/scim_utility.cpp:705 msgid "Tibetan" msgstr "તિબેટિયાઈ" #: ../src/scim_utility.cpp:706 msgid "Bosnian" msgstr "બોસà«àª¨àª¿àª¯àª¾àªˆ" #: ../src/scim_utility.cpp:707 msgid "Catalan" msgstr "કેટલાન" #: ../src/scim_utility.cpp:708 ../src/scim_keyboard_layout_data.h:4595 msgid "Czech" msgstr "ચેક" #: ../src/scim_utility.cpp:709 msgid "Welsh" msgstr "વેલà«àª¶" #: ../src/scim_utility.cpp:710 ../src/scim_keyboard_layout_data.h:4597 msgid "Danish" msgstr "ડેનિશ" #: ../src/scim_utility.cpp:711 ../src/scim_keyboard_layout_data.h:4605 msgid "German" msgstr "જરà«àª®àª¨" #: ../src/scim_utility.cpp:712 msgid "Divehi" msgstr "દિવેહી" #: ../src/scim_utility.cpp:713 ../src/scim_keyboard_layout_data.h:4608 msgid "Greek" msgstr "ગà«àª°à«€àª•" #: ../src/scim_utility.cpp:714 msgid "English" msgstr "અંગà«àª°à«‡àªœà«€" #: ../src/scim_utility.cpp:715 msgid "English (Australian)" msgstr "અંગà«àª°à«‡àªœà«€ (ઓસà«àªŸà«àª°à«‡àª²àª¿àª¯àª¾àªˆ)" #: ../src/scim_utility.cpp:716 msgid "English (Canadian)" msgstr "અંગà«àª°à«‡àªœà«€ (કેનેડિયાઈ)" #: ../src/scim_utility.cpp:717 msgid "English (British)" msgstr "અંગà«àª°à«‡àªœà«€ (બà«àª°à«€àªŸàª¿àª¶)" #: ../src/scim_utility.cpp:718 msgid "English (Ireland)" msgstr "અંગà«àª°à«‡àªœà«€ (આરà«àª¯àª²à«‡àª¨à«àª¡)" #: ../src/scim_utility.cpp:719 msgid "English (American)" msgstr "અંગà«àª°à«‡àªœà«€ (અમેરીકી)" #: ../src/scim_utility.cpp:720 ../src/scim_utility.cpp:721 #: ../src/scim_keyboard_layout_data.h:4621 msgid "Spanish" msgstr "સà«àªªà«‡àª¨àª¿àª¶" #: ../src/scim_utility.cpp:722 msgid "Spanish (Mexico)" msgstr "સà«àªªà«‡àª¨àª¿àª¶ (મેકà«àª¸àª¿àª•à«‹)" #: ../src/scim_utility.cpp:723 ../src/scim_keyboard_layout_data.h:4600 msgid "Estonian" msgstr "ઈસà«àªŸà«‹àª¨àª¿àª¯àª¾àªˆ" #: ../src/scim_utility.cpp:724 msgid "Basque" msgstr "બાસà«àª•" #: ../src/scim_utility.cpp:725 msgid "Persian" msgstr "પરà«àª¸àª¿àª¯àª¨" #: ../src/scim_utility.cpp:726 ../src/scim_keyboard_layout_data.h:4601 msgid "Finnish" msgstr "ફિનિશ" #: ../src/scim_utility.cpp:727 ../src/scim_keyboard_layout_data.h:4602 msgid "French" msgstr "ફà«àª°à«‡àª‚ચ" #: ../src/scim_utility.cpp:728 msgid "Irish" msgstr "ઈરીશ" #: ../src/scim_utility.cpp:729 msgid "Galician" msgstr "ગાલિસીયન" #: ../src/scim_utility.cpp:730 msgid "Gujarati" msgstr "ગà«àªœàª°àª¾àª¤à«€" #: ../src/scim_utility.cpp:731 ../src/scim_utility.cpp:740 msgid "Hebrew" msgstr "હિબà«àª°à«" #: ../src/scim_utility.cpp:732 msgid "Hindi" msgstr "હિંદી" #: ../src/scim_utility.cpp:733 ../src/scim_keyboard_layout_data.h:4594 msgid "Croatian" msgstr "કà«àª°à«‹àª¶àª¿àª¯àª¾àªˆ" #: ../src/scim_utility.cpp:734 ../src/scim_keyboard_layout_data.h:4609 msgid "Hungarian" msgstr "હંગેરિયાઈ" #: ../src/scim_utility.cpp:735 msgid "Armenian" msgstr "અરà«àª®à«‡àª¨àª¿àª¯àª¾àªˆ" #: ../src/scim_utility.cpp:736 msgid "Interlingua" msgstr "ઈનà«àªŸàª°àª²à«€àª‚ગà«àª†" #: ../src/scim_utility.cpp:737 msgid "Indonesian" msgstr "ઈનà«àª¡à«‹àª¨à«‡àª¶àª¿àª¯àª¾àªˆ" #: ../src/scim_utility.cpp:738 ../src/scim_keyboard_layout_data.h:4627 msgid "Icelandic" msgstr "આઈલેનà«àª¡à«€àª•" #: ../src/scim_utility.cpp:739 ../src/scim_keyboard_layout_data.h:4610 msgid "Italian" msgstr "ઈટાલી" #: ../src/scim_utility.cpp:741 ../src/scim_keyboard_layout_data.h:4611 msgid "Japanese" msgstr "જાપાની" #: ../src/scim_utility.cpp:742 msgid "Georgian" msgstr "જà«àª¯à«‹àª°à«àªœà«€àª¯àª¾àªˆ" #: ../src/scim_utility.cpp:743 msgid "Kazakh" msgstr "કàªàª¾àª–" #: ../src/scim_utility.cpp:744 msgid "Cambodian" msgstr "કમà«àª¬à«‹àª¡àª¿àª¯àª¾àªˆ" #: ../src/scim_utility.cpp:745 msgid "Kannada" msgstr "કનà«àª¨àª¡àª¾" #: ../src/scim_utility.cpp:746 msgid "Korean" msgstr "કોરિયાઈ" #: ../src/scim_utility.cpp:747 msgid "Laothian" msgstr "લાઓથીયાઈ" #: ../src/scim_utility.cpp:748 ../src/scim_keyboard_layout_data.h:4628 msgid "Lithuanian" msgstr "લિથà«àª†àª¨àª¿àª¯àª¾àªˆ" #: ../src/scim_utility.cpp:749 msgid "Latvian" msgstr "લેટવિયન" #: ../src/scim_utility.cpp:750 msgid "Macedonian" msgstr "મેકેડોનિયા" #: ../src/scim_utility.cpp:751 msgid "Malayalam" msgstr "મલયાલમ" #: ../src/scim_utility.cpp:752 msgid "Mongolian" msgstr "મોંગોલિયાઈ" #: ../src/scim_utility.cpp:753 msgid "Marathi" msgstr "મરાઠી" #: ../src/scim_utility.cpp:754 msgid "Malay" msgstr "મલય" #: ../src/scim_utility.cpp:755 msgid "Burmese" msgstr "બરà«àª®à«€àª" #: ../src/scim_utility.cpp:756 msgid "Nepali" msgstr "નેપાળી" #: ../src/scim_utility.cpp:757 ../src/scim_keyboard_layout_data.h:4598 msgid "Dutch" msgstr "ડચ" #: ../src/scim_utility.cpp:758 msgid "Norwegian (nynorsk)" msgstr "નોરà«àªµà«‡àªœà«€àª¯àª¾àªˆ (નà«àª¯àª¾àª°à«àª¨à«‹àª¸à«àª•)" #: ../src/scim_utility.cpp:759 msgid "Norwegian (bokmal)" msgstr "નોરà«àªµà«‡àªœà«€àª¯àª¾àªˆ (બà«àª•માલ)" #: ../src/scim_utility.cpp:760 msgid "Oriya" msgstr "ઓરિયા" #: ../src/scim_utility.cpp:761 msgid "Punjabi" msgstr "પંજાબી" #: ../src/scim_utility.cpp:762 ../src/scim_keyboard_layout_data.h:4613 msgid "Polish" msgstr "પોલિશ" #: ../src/scim_utility.cpp:763 ../src/scim_utility.cpp:765 #: ../src/scim_keyboard_layout_data.h:4614 msgid "Portuguese" msgstr "પોરà«àªŸà«àª—à«€àª" #: ../src/scim_utility.cpp:764 ../src/scim_keyboard_layout_data.h:4615 msgid "Portuguese (Brazil)" msgstr "પોરà«àªŸà«àª—ીઠ(બà«àª°àª¾àªàª¿àª²)" #: ../src/scim_utility.cpp:766 msgid "Romanian" msgstr "રોમાનિયાઈ" #: ../src/scim_utility.cpp:767 ../src/scim_keyboard_layout_data.h:4617 msgid "Russian" msgstr "રશિયા" #: ../src/scim_utility.cpp:768 msgid "Sinhala" msgstr "સિંહાલા" #: ../src/scim_utility.cpp:769 ../src/scim_keyboard_layout_data.h:4618 msgid "Slovak" msgstr "સà«àª²à«‹àªµà«‡àª•" #: ../src/scim_utility.cpp:770 ../src/scim_keyboard_layout_data.h:4620 msgid "Slovenian" msgstr "સà«àª²à«‹àªµà«‡àª¨àª¿àª¯àª¾" #: ../src/scim_utility.cpp:771 msgid "Albanian" msgstr "અલà«àª¬àª¾àª¨àª¿àª¯àª¾àªˆ" #: ../src/scim_utility.cpp:772 ../src/scim_utility.cpp:773 #: ../src/scim_utility.cpp:774 msgid "Serbian" msgstr "સરà«àª¬àª¿àª¯àª¨" #: ../src/scim_utility.cpp:775 ../src/scim_utility.cpp:777 #: ../src/scim_keyboard_layout_data.h:4624 msgid "Swedish" msgstr "સà«àªµà«‡àª¡à«€àª¶" #: ../src/scim_utility.cpp:776 msgid "Swedish (Finland)" msgstr "સà«àªµà«‡àª¡à«€àª¶ (ફિનલેનà«àª¡)" #: ../src/scim_utility.cpp:778 msgid "Tamil" msgstr "તમિલ" #: ../src/scim_utility.cpp:779 msgid "Telugu" msgstr "તેલà«àª—à«" #: ../src/scim_utility.cpp:780 msgid "Thai" msgstr "થાઈ" #: ../src/scim_utility.cpp:781 ../src/scim_keyboard_layout_data.h:4625 msgid "Turkish" msgstr "તà«àª°à«àª•ીશ" #: ../src/scim_utility.cpp:782 msgid "Uighur" msgstr "ઉઈઘà«àª°" #: ../src/scim_utility.cpp:783 ../src/scim_keyboard_layout_data.h:4629 msgid "Ukrainian" msgstr "યà«àª•à«àª°à«‡àª¨àª¿àª¯àª¾àªˆ" #: ../src/scim_utility.cpp:784 msgid "Urdu" msgstr "ઉરà«àª¦à«" #: ../src/scim_utility.cpp:785 msgid "Uzbek" msgstr "ઉàªàª¬à«‡àª•" #: ../src/scim_utility.cpp:786 msgid "Vietnamese" msgstr "વિયેતનામી" #: ../src/scim_utility.cpp:787 msgid "Walloon" msgstr "વાલà«àª¨" #: ../src/scim_utility.cpp:788 ../src/scim_utility.cpp:789 msgid "Yiddish" msgstr "યીડીશ" #: ../src/scim_utility.cpp:790 msgid "Chinese" msgstr "ચીની" #: ../src/scim_utility.cpp:791 ../src/scim_utility.cpp:793 msgid "Chinese (simplified)" msgstr "ચીની (સરળ)" #: ../src/scim_utility.cpp:792 ../src/scim_utility.cpp:794 msgid "Chinese (traditional)" msgstr "ચીની (પારંપરિક)" #: ../src/scim_utility.cpp:876 msgid "Other" msgstr "અનà«àª¯" #: ../src/scim_keyboard_layout_data.h:4591 #: ../modules/IMEngine/scim_socket_imengine.cpp:386 #: ../modules/IMEngine/scim_socket_imengine.cpp:416 #: ../modules/IMEngine/scim_socket_imengine.cpp:501 #: ../modules/IMEngine/scim_socket_imengine.cpp:531 #: ../modules/IMEngine/scim_socket_imengine.cpp:561 msgid "Unknown" msgstr "અજà«àªžàª¾àª¤" #: ../src/scim_keyboard_layout_data.h:4592 msgid "English (US)" msgstr "અંગà«àª°à«‡àªœà«€ (US)" #: ../src/scim_keyboard_layout_data.h:4593 msgid "Belgian" msgstr "બેલà«àªœà«€àª¯àª¨" #: ../src/scim_keyboard_layout_data.h:4596 msgid "Czech (qwerty)" msgstr "ચેક (qwerty)" #: ../src/scim_keyboard_layout_data.h:4599 msgid "Dvorak" msgstr "દà«àªµà«‹àª°àª¾àª•" #: ../src/scim_keyboard_layout_data.h:4603 msgid "French (Canadian)" msgstr "ફà«àª°à«‡àª‚ચ (કેનેડિયાઈ)" #: ../src/scim_keyboard_layout_data.h:4604 msgid "French (Switzerland)" msgstr "ફà«àª°à«‡àª‚ચ (સà«àªµà«€àªàª°àª²à«‡àª¨à«àª¡)" #: ../src/scim_keyboard_layout_data.h:4606 msgid "German (with deadkeys)" msgstr "જરà«àª®àª¨àª² (મૃતકીઓ સાથે)" #: ../src/scim_keyboard_layout_data.h:4607 msgid "German (Swiss)" msgstr "જરà«àª®àª¨ (સà«àªµà«€àª)" #: ../src/scim_keyboard_layout_data.h:4612 msgid "Norwegian" msgstr "નોરà«àªµà«‡àªœà«€àª¯àª¨" #: ../src/scim_keyboard_layout_data.h:4616 msgid "Portuguese (Brazil US accents)" msgstr "પોરà«àªŸà«àª—ીઠ(બà«àª°àª¾àªàª¿àª² US àªàª•à«àª¸àª¨à«àªŸà«‹)" #: ../src/scim_keyboard_layout_data.h:4619 msgid "Slovak (qwerty)" msgstr "સà«àª²à«‹àªµà«‡àª• (qwerty)" #: ../src/scim_keyboard_layout_data.h:4622 msgid "Spanish (CP 850)" msgstr "સà«àªªà«‡àª¨àª¿àª¶ (CP 850)" #: ../src/scim_keyboard_layout_data.h:4623 msgid "Spanish (Latin America)" msgstr "સà«àªªà«‡àª¨àª¿àª¶ (લેટીન અમેરિકા)" #: ../src/scim_keyboard_layout_data.h:4626 msgid "English (UK)" msgstr "અંગà«àª°à«‡àªœà«€ (UK)" #: ../modules/Filter/scim_sctc_filter.cpp:57 msgid "Simplified-Traditional Chinese Conversion" msgstr "સરળ-પારંપરિક ચીની વારà«àª¤àª¾àª²àª¾àªª" #: ../modules/Filter/scim_sctc_filter.cpp:60 msgid "Convert between Simplified Chinese and Traditional Chinese" msgstr "સરળ ચીની અને પારંપરિક ચીની વચà«àªšà«‡àª¨à«‹ વારà«àª¤àª¾àª²àª¾àªª" #: ../modules/Filter/scim_sctc_filter.cpp:71 msgid "SC-TC" msgstr "SC-TC" #: ../modules/Filter/scim_sctc_filter.cpp:73 #: ../modules/Filter/scim_sctc_filter.cpp:78 msgid "Simplified-Traditional Chinese conversion" msgstr "સરળ-પારંપરિક ચીની વારà«àª¤àª¾àª²àª¾àªª" #: ../modules/Filter/scim_sctc_filter.cpp:76 msgid "No Conversion" msgstr "કોઈ વારà«àª¤àª¾àª²àª¾àªª નથી" #: ../modules/Filter/scim_sctc_filter.cpp:81 msgid "Simplified to Traditional" msgstr "સરળથી પારંપરિક" #: ../modules/Filter/scim_sctc_filter.cpp:83 msgid "Convert Simplified Chinese to Traditional Chinese" msgstr "સરળ ચીનીને પારંપરિક ચીનીમાં ફેરવો" #: ../modules/Filter/scim_sctc_filter.cpp:86 msgid "Traditional to Simplified" msgstr "પારંપરિકથી સરળ" #: ../modules/Filter/scim_sctc_filter.cpp:88 msgid "Convert Traditional Chinese to Simplified Chinese" msgstr "પારંપરિક ચીનીને સરળ ચીનીમાં ફેરવો" #: ../modules/Filter/scim_sctc_filter.cpp:300 msgid "James Su " msgstr "James Su " #: ../modules/Filter/scim_sctc_filter.cpp:425 #: ../modules/Filter/scim_sctc_filter.cpp:555 #: ../modules/Filter/scim_sctc_filter.cpp:571 msgid "SC->TC" msgstr "SC->TC" #: ../modules/Filter/scim_sctc_filter.cpp:431 #: ../modules/Filter/scim_sctc_filter.cpp:559 #: ../modules/Filter/scim_sctc_filter.cpp:575 msgid "TC->SC" msgstr "TC->SC" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1845 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1231 #: ../extras/panel/scim_panel_gtk.cpp:2304 msgid "Smart Common Input Method platform " msgstr "સà«àª®àª¾àª°à«àªŸ કોમન ઈનપà«àªŸ મેથડ પà«àª²à«‡àªŸàª«à«‹àª°à«àª® " #: ../modules/FrontEnd/scim_x11_frontend.cpp:1847 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1233 msgid "" "\n" "(C) 2002-2005 James Su \n" "\n" msgstr "" "\n" "(C) 2002-2005 James Su \n" "\n" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1851 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1238 msgid "" ":\n" "\n" msgstr "" ":\n" "\n" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1854 #: ../modules/FrontEnd/scim_x11_frontend.cpp:1857 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1241 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1244 msgid "" "\n" "\n" msgstr "" "\n" "\n" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:120 msgid "RAW CODE" msgstr "RAW CODE" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:127 msgid "(C) 2002-2006 James Su " msgstr "(C) 2002-2006 James Su " #: ../modules/IMEngine/scim_rawcode_imengine.cpp:140 msgid "" "Hot Keys:\n" "\n" " Control+u:\n" " switch between Multibyte encoding and Unicode.\n" "\n" " Esc:\n" " reset the input method.\n" msgstr "" "હોટ કીઓ:\n" "\n" " Control+u:\n" " મલà«àªŸà«€àª¬àª¾àªˆàªŸ àªàª¨àª•ોડીંગ અને યà«àª¨àª¿àª•ોડ વચà«àªšà«‡ બદલો.\n" "\n" " Esc:\n" " ઈનપà«àªŸ પદà«àª§àª¤àª¿ પà«àª¨àªƒàª¸à«àª¯à«‹àªœà«€àª¤ કરો.\n" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:407 #: ../modules/IMEngine/scim_rawcode_imengine.cpp:423 msgid "The status of the current input method. Click to change it." msgstr "વરà«àª¤àª®àª¾àª¨ ઈનપà«àªŸ પદà«àª§àª¤àª¿àª¨à«€ પરિસà«àª¥àª¿àª¤àª¿. તેને બદલવા માટે કà«àª²àª¿àª• કરો." #: ../modules/IMEngine/scim_rawcode_imengine.cpp:409 msgid "Unicode" msgstr "યà«àª¨àª¿àª•ોડ" #: ../modules/SetupUI/scim_frontend_setup.cpp:82 #: ../modules/SetupUI/scim_imengine_setup.cpp:88 msgid "Global Setup" msgstr "વૈશà«àªµàª¿àª• સà«àª¯à«‹àªœàª¨" #: ../modules/SetupUI/scim_frontend_setup.cpp:87 msgid "" "Setup the global options used by All FrontEnd modules, including X11 " "FrontEnd, GTK IMModule, QT IMModule etc." msgstr "બધા અગà«àª°àª…ંત મોડà«àª¯à«àª²à«‹, X11 અગà«àª°àª…ંત, GTK IMModule, QT IMModule વગેરોનો સમાવેશ કરીને તેમના દà«àªµàª¾àª°àª¾ વાપરવામાં આવતા વૈશà«àªµàª¿àª• વિકલà«àªªà«‹ સà«àª¯à«‹àªœà«€àª¤ કરો." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:143 msgid "_Trigger:" msgstr "ટà«àª°à«€àª—ર (_T):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:145 msgid "Select the trigger keys" msgstr "ટà«àª°à«€àª—ર કીઓ પસંદ કરો" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:147 msgid "" "The key events to turn on/off SCIM input method. Click on the button on the " "right to edit it." msgstr "SCIM ઈનપà«àªŸ પદà«àª§àª¤àª¿ ચાલà«/બંધ કરવાની કી ઘટનાઓ. તેમાં ફેરફાર કરવા માટે બટનના જમણે કà«àª²àª¿àª• કરો." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:160 msgid "Turn _On:" msgstr "ચાલૠકરો (_O):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:162 msgid "Select the Turn On keys" msgstr "ચાલૠકરો કીઓ પસંદ કરો" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:164 msgid "" "The key events to turn on SCIM input method. Click on the button on the " "right to edit it." msgstr "SCIM ઈનપà«àªŸ પદà«àª§àª¤àª¿ ચાલૠકરવા માટેની કી ઘટનાઓ. તેમાં ફેરફાર કરવા માટે બટનના જમણે કà«àª²àª¿àª• કરો." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:177 msgid "Turn O_ff:" msgstr "બંધ કરો (_f):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:179 msgid "Select the Turn Off keys" msgstr "બંધ કરો કીઓ પસંદ કરો" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:181 msgid "" "The key events to turn off SCIM input method. Click on the button on the " "right to edit it." msgstr "SCIM ઈનપà«àªŸ પદà«àª§àª¤àª¿ બંધ કરવા માટેની કી ઘટનાઓ. તેમાં ફેરફાર કરવા માટે બટનના જમણે કà«àª²àª¿àª• કરો." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:194 msgid "_Next input method:" msgstr "આગળની ઈનપà«àªŸ પદà«àª§àª¤àª¿ (_N):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:196 msgid "Select the next input method keys" msgstr "આગળની ઈનપà«àªŸ પદà«àª§àª¤àª¿ કીઓ પસંદ કરો" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:198 msgid "" "The key events to switch to the next input method. Click on the button on " "the right to edit it." msgstr "આગળની ઈનપà«àªŸ પદà«àª§àª¤àª¿àª®àª¾àª‚ બદલવા માટેની કી ઘટનાઓ. તેમાં ફેરફારા કરવા માટે બટનના જમણે કà«àª²àª¿àª• કરો." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:213 msgid "_Previous input method:" msgstr "પહેલાંની ઈનપà«àªŸ પદà«àª§àª¤àª¿ (_P):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:215 msgid "Select the previous input method keys" msgstr "પહેલાંની ઈનપà«àªŸ પદà«àª§àª¤àª¿ કીઓ પસંદ કરો" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:217 msgid "" "The key events to switch to the previous input method. Click on the button " "on the right to edit it." msgstr "પહેલાંની ઈનપà«àªŸ પદà«àª§àª¤àª¿àª®àª¾àª‚ બદલવા માટેની કી ઘટનાઓ. તેમાં ફેરફાર કરવા માટે બટનના જમણે કà«àª²àª¿àª• કરો." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:232 msgid "Show input method _menu:" msgstr "ઈનપà«àªŸ પદà«àª§àª¤àª¿ મેનૠબતાવો (_m):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:234 msgid "Select the show input method menu keys" msgstr "ઈનપà«àªŸ પદà«àª§àª¤àª¿ મેનૠકીઓ બતાવવા માટે પસંદ કરો" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:236 msgid "" "The key events to show the input method menu. Click on the button on the " "right to edit it." msgstr "ઈનપà«àªŸ પદà«àª§àª¤àª¿ મેનૠબતાવવા માટેની કી ઘટનાઓ. તેમાં ફેરફાર કરવા માટે બટનના જમણે કà«àª²àª¿àª• કરો." #: ../modules/SetupUI/scim_frontend_setup.cpp:306 msgid "Options" msgstr "વિકલà«àªªà«‹" #: ../modules/SetupUI/scim_frontend_setup.cpp:321 msgid "_Keyboard Layout:" msgstr "કીબોરà«àª¡ લેઆઉટ (_K):" #: ../modules/SetupUI/scim_frontend_setup.cpp:342 msgid "" "You should choose your currently used keyboard layout here so that input " "methods, who care about keyboard layout, could work correctly." msgstr "તમારે તમારà«àª‚ વરà«àª¤àª®àª¾àª¨àª®àª¾àª‚ પસંદિત કીબોરà«àª¡ લેઆઉટ અંહિ વાપરવà«àª‚ જોઈઠકે જેથી ઈનપà«àªŸ પદà«àª§àª¤àª¿àª“, કે જેઓ કીબોરà«àª¡ લેઆઉટની કાળજી લે છે, તે યોગà«àª¯ રીતે કામ કરી શકે." #. On The Spot. #: ../modules/SetupUI/scim_frontend_setup.cpp:346 msgid "_Embed Preedit String into client window" msgstr "Preedit શબà«àª¦àª®àª¾àª³àª¾àª¨à«‡ કà«àª²àª¾àªˆàª¨à«àªŸ વિનà«àª¡à«‹àª®àª¾àª‚ જડો (_E)" #: ../modules/SetupUI/scim_frontend_setup.cpp:351 msgid "" "If this option is checked, the preedit string will be displayed directly in " "the client input window, rather than in a independent float window." msgstr "જો આ વિકલà«àªª ચકાસાયેલ હોય, તો preedit શબà«àª¦àª®àª¾àª³àª¾ કà«àª²àª¾àªˆàª¨à«àªŸ ઈનપà«àªŸ વિનà«àª¡à«‹àª®àª¾àª‚ સીધી જ દરà«àª¶àª¾àªµàªµàª¾àª®àª¾àª‚ આવશે, સà«àªµàª¤àª‚તà«àª° તરતી વિનà«àª¡à«‹àª®àª¾àª‚ બતાવવાની જગà«àª¯àª¾àª." #. Shared input method. #: ../modules/SetupUI/scim_frontend_setup.cpp:360 msgid "_Share the same input method among all applications" msgstr "àªàª• જ ઈનપà«àªŸ પદà«àª§àª¤àª¿ બધા કારà«àª¯àª•à«àª°àª®à«‹àª®àª¾àª‚ વહેંચો (_S)" #: ../modules/SetupUI/scim_frontend_setup.cpp:365 msgid "" "If this option is checked, then only one input method could be used by all " "applications at the same time.Otherwise different input method could be used " "by each application." msgstr "જો આ વિકલà«àªª ચકાસાયેલ હોય, તો પછી માતà«àª° àªàª• ઈનપà«àªŸ પદà«àª§àª¤àª¿ બધા કારà«àª¯àª•à«àª°àª®à«‹ દà«àªµàª¾àª°àª¾ àªàª• જ સમયે વાપરી શકાય. નહિંતર અલગ ઈનપà«àªŸ પદà«àª§àª¤àª¿ દરેક કારà«àª¯àª•à«àª°àª® દà«àªµàª¾àª°àª¾ વાપરી શકાય." #: ../modules/SetupUI/scim_frontend_setup.cpp:373 #: ../modules/SetupUI/scim_imengine_setup.cpp:453 msgid "Hotkeys" msgstr "હોટકીઓ" #: ../modules/SetupUI/scim_imengine_setup.cpp:93 msgid "You can enable/disable input methods and set hotkeys for input methods here." msgstr "તમે ઈનપà«àªŸ પદà«àª§àª¤àª¿àª“ સકà«àª°àª¿àª¯/નિષà«àª•à«àª°àª¿àª¯ કરી શકો છો અને ઈનપà«àªŸ પદà«àª§àª¤àª¿àª“ માટે હોટ કીઓ અંહિ સà«àª¯à«‹àªœà«€àª¤ કરી શકો છો." #: ../modules/SetupUI/scim_imengine_setup.cpp:296 msgid "The installed input method services:" msgstr "સà«àª¥àª¾àªªàª¿àª¤ ઈનપà«àªŸ પદà«àª§àª¤àª¿ સેવાઓ:" #. Create hotkey and filter button before factory list view, because #. factory_list_selection_changed_callback may access these two buttons. #: ../modules/SetupUI/scim_imengine_setup.cpp:311 msgid "Edit _Hotkeys" msgstr "હોટકીઓમાં ફેરફાર કરો (_H)" #: ../modules/SetupUI/scim_imengine_setup.cpp:320 msgid "Edit Hotkeys associated with the selected input method." msgstr "પસંદિત ઈનપà«àªŸ પદà«àª§àª¤àª¿ સાથે સંકળાયેલ હોટકીઓમાં ફેરફાર કરો." #: ../modules/SetupUI/scim_imengine_setup.cpp:322 msgid "Select _Filters" msgstr "ગાળકો પસંદ કરો (_F)" #: ../modules/SetupUI/scim_imengine_setup.cpp:331 msgid "Select the Filters which will be attached to this input method." msgstr "ગાળકો પસંદ કરો કે જેઓ આ ઈનપà«àªŸ પદà«àª§àª¤àª¿ સાથે જોડાયેલ હશે." #: ../modules/SetupUI/scim_imengine_setup.cpp:348 msgid "_Expand" msgstr "વિસà«àª¤à«ƒàª¤ કરો (_E)" #: ../modules/SetupUI/scim_imengine_setup.cpp:357 msgid "Expand all language categories." msgstr "બધા ભાષા વરà«àª—à«‹ વિસà«àª¤à«ƒàª¤ કરો." #: ../modules/SetupUI/scim_imengine_setup.cpp:359 msgid "_Collapse" msgstr "ભેગà«àª‚ કરો (_C)" #: ../modules/SetupUI/scim_imengine_setup.cpp:368 msgid "Collapse all language categories." msgstr "બધા ભાષા વરà«àª—à«‹ ભેગા કરો" #: ../modules/SetupUI/scim_imengine_setup.cpp:370 msgid "E_nable All" msgstr "બધà«àª‚ સકà«àª°àª¿àª¯ કરો (_n)" #: ../modules/SetupUI/scim_imengine_setup.cpp:379 msgid "Enable all input methods." msgstr "બધી ઈનપà«àªŸ પદà«àª§àª¤àª¿àª“ સકà«àª°àª¿àª¯ કરો." #: ../modules/SetupUI/scim_imengine_setup.cpp:381 msgid "_Disable All" msgstr "બધà«àª‚ નિષà«àª•à«àª°àª¿àª¯ કરો (_D)" #: ../modules/SetupUI/scim_imengine_setup.cpp:390 msgid "Disable all input methods." msgstr "બધી ઈનપà«àªŸ પદà«àª§àª¤àª¿àª“ નિષà«àª•à«àª°àª¿àª¯ કરો." #: ../modules/SetupUI/scim_imengine_setup.cpp:414 #: ../modules/SetupUI/scim_imengine_setup.cpp:541 msgid "Name" msgstr "નામ" #: ../modules/SetupUI/scim_imengine_setup.cpp:432 #: ../modules/SetupUI/scim_imengine_setup.cpp:522 msgid "Enable" msgstr "સકà«àª°àª¿àª¯ કરો" #: ../modules/SetupUI/scim_imengine_setup.cpp:467 msgid "Filters" msgstr "ગાળકો" #: ../modules/SetupUI/scim_imengine_setup.cpp:560 msgid "Languages" msgstr "ભાષાઓ" #: ../modules/SetupUI/scim_imengine_setup.cpp:574 msgid "Description" msgstr "વરà«àª£àª¨" #: ../modules/SetupUI/scim_imengine_setup.cpp:1190 #, c-format msgid "Edit Hotkeys for %s" msgstr "%s માટેની હોટકીઓમાં ફેરફાર કરો" #: ../modules/SetupUI/scim_imengine_setup.cpp:1417 #, c-format msgid "Select Filters for %s" msgstr "%s માટે ગાળકો પસંદ કરો" #: ../modules/SetupUI/scim_imengine_setup.cpp:1450 msgid "Move _Up" msgstr "ઉપર ખસેડો (_U)" #: ../modules/SetupUI/scim_imengine_setup.cpp:1457 msgid "Move _Down" msgstr "નીચે ખસેડો (_D)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:95 msgid "GTK" msgstr "GTK" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:100 msgid "A panel daemon based on GTK+-2.x library." msgstr "GTK+-2.x લાઈબà«àª°à«‡àª°à«€ પર આધારિત પેનલ ડિમન." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:163 msgid "Always" msgstr "હંમેશા" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:164 msgid "On demand" msgstr "જરૂરીયાત પર" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:165 msgid "Never" msgstr "કà«àª¯àª¾àª°à«‡àª¯ નહિં" #. Create the ToolBar setup block. #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:211 msgid "ToolBar" msgstr "સાધનપટà«àªŸà«€" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:229 msgid "_Show:" msgstr "બતાવો (_S):" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:245 msgid "Auto s_nap" msgstr "આપોઆપ સà«àª¨à«‡àªª (_n)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:251 msgid "Show _input method icon" msgstr "ઈનપà«àªŸ પદà«àª§àª¤àª¿ ચિહà«àª¨ બતાવો (_i)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:257 msgid "Show inp_ut method name" msgstr "ઈનપà«àªŸ પદà«àª§àª¤àª¿ નામ બતાવો (_u)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:269 msgid "Hide time_out:" msgstr "સમયસમાપà«àª¤àª¿ છà«àªªàª¾àªµà«‹ (_o):" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:282 msgid "Show s_tick icon" msgstr "સà«àªŸà«€àª• ચિહà«àª¨ બતાવો (_t)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:288 msgid "Show m_enu icon" msgstr "મેનૠચિહà«àª¨ બતાવો (_e)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:294 msgid "Show _help icon" msgstr "મદદ ચિહà«àª¨ બતાવો (_h)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:300 msgid "Show _property label" msgstr "ગà«àª£àª§àª°à«àª® લેબલ બતાવો (_p)" #. Create the Input Window setup block #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:311 msgid "Input window" msgstr "ઈનપà«àªŸ વિનà«àª¡à«‹" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:320 msgid "E_mbedded lookup table" msgstr "જડિત લà«àª•અપ કોષà«àªŸàª• (_m)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:324 msgid "_Vertical lookup table" msgstr "ઊભà«àª‚ લà«àª•અપ કોષà«àªŸàª• (_V)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:328 msgid "Misc" msgstr "મિશà«àª°àª¿àª¤" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:337 msgid "Show tra_y icon" msgstr "ટà«àª°à«‡ ચિહà«àª¨ બતાવો (_y)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:341 msgid "Stick _windows" msgstr "વિનà«àª¡à«‹ ચોંટાડો (_w)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:349 msgid "_Font:" msgstr "ફોનà«àªŸ (_F):" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:419 msgid "" "If option \"Always\" is selected, the toolbar will always be shown on the " "screen. If option \"On demand\" is selected, it will only be shown when SCIM " "is activated. If option \"Never\" is selected, it will never be shown." msgstr "જો \"હંમેશા\" વિકલà«àªª પસંદ થયેલ હોય, તો સાધનપટà«àªŸà«€ સà«àª•à«àª°à«€àª¨ પર હંમેશા બતાવવામાં આવશે. જો \"જરૂરીયાત પà«àª°àª®àª¾àª£à«‡\" વિકલà«àªª પસંદ થયેલ હોય, તો તે બતાવવામાં આવશે જà«àª¯àª¾àª°à«‡ SCIM સકà«àª°àª¿àª¯ કરેલ હોય. જો \"કà«àª¯àª¾àª°à«‡àª¯ નહિં\" વિકલà«àªª પસંદ થયેલ હોય, તો તે કà«àª¯àª¾àª°à«‡àª¯ બતાવવામાં આવશે નહિં." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:426 msgid "If this option is checked, the toolbar will be snapped to the screen border." msgstr "જો આ વિકલà«àªª ચકાસાયેલ હોય, તો સાધનપટà«àªŸà«€ સà«àª•à«àª°à«€àª¨ કિનારી પર સà«àª¨à«‡àªª કરવામાં આવશે." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:431 msgid "" "The toolbar will be hidden out after this timeout is elapsed. This option is " "only valid when \"Always show\" is selected. Set to zero to disable this " "behavior." msgstr "સાધનપટà«àªŸà«€ આ સમયસમાપà«àª¤àª¿ પૂરી થાય પછી છà«àªªàª¾àªµà«€ દેવામાં આવશે. આ વિકલà«àªª માતà«àª° તà«àª¯àª¾àª°à«‡ જ માનà«àª¯ છે જà«àª¯àª¾àª°à«‡ \"હંમેશા બતાવો\" પસંદ થયેલ હોય. આ વરà«àª¤àª£à«‚ક નિષà«àª•à«àª°àª¿àª¯ કરવા માટે શૂનà«àª¯àª®àª¾àª‚ સà«àª¯à«‹àªœà«€àª¤ કરો." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:438 msgid "" "If this option is checked, the input method icon will be showed on the " "toolbar." msgstr "જો આ વિકલà«àªª ચકાસાયેલ હોય, તો ઈનપà«àªŸ પદà«àª§àª¤àª¿ ચિહà«àª¨ સાધનપટà«àªŸà«€ પર બતાવવામાં આવશે." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:442 msgid "" "If this option is checked, the input method name will be showed on the " "toolbar." msgstr "જો આ વિકલà«àªª ચકાસાયેલ હોય, તો ઈનપà«àªŸ પદà«àª§àª¤àª¿ નામ સાધનપટà«àªŸà«€ પર બતાવવામાં આવશે." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:446 msgid "If this option is checked, the stick icon will be showed on the toolbar." msgstr "જો આ વિકલà«àªª ચકાસાયેલ હોય, તો ચિહà«àª¨ ચોંટાડો સાધનપટà«àªŸà«€ પર બતાવવામાં આવશે." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:450 msgid "If this option is checked, the menu icon will be showed on the toolbar." msgstr "જો આ વિકલà«àªª ચકાસાયેલ હોય, તો મેનૠચિહà«àª¨ સાધનપટà«àªŸà«€ પર બતાવવામાં આવશે." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:454 msgid "If this option is checked, the help icon will be showed on the toolbar." msgstr "જો આ વિકલà«àªª ચકાસાયેલ હોય, તો મદદ ચિહà«àª¨ સાધનપટà«àªŸà«€ પર બતાવવામાં આવશે." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:458 msgid "" "If this option is checked, the text label of input method properties will be " "showed on the toolbar." msgstr "જો આ વિકલà«àªª ચકાસાયેલ હોય, તો ઈનપà«àªŸ પદà«àª§àª¤àª¿ ગà«àª£àª§àª°à«àª®à«‹àª¨à«àª‚ લેબલ સાધનપટà«àªŸà«€ પર બતાવવામાં આવશે." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:462 msgid "" "If this option is checked, the lookup table will be embedded into the input " "window." msgstr "જો આ વિકલà«àªª ચકાસાયેલ હોય, તો લà«àª•અપ કોષà«àªŸàª• ઈનપà«àªŸ વિનà«àª¡à«‹àª®àª¾àª‚ જડવામાં આવશે." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:467 msgid "If this option is checked, the lookup table will be displayed vertically." msgstr "જો આ વિકલà«àªª ચકાસાયેલ હોય, તો લà«àª•અપ કોષà«àªŸàª• ઊભà«àª‚ દરà«àª¶àª¾àªµàªµàª¾àª®àª¾àª‚ આવશે." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:472 msgid "" "If this option is checked, the tray icon will be showed on the desktop's " "taskbar." msgstr "જો આ વિકલà«àªª ચકાસાયેલ હોય, તો ટà«àª°à«‡ ચિહà«àª¨ ડેસà«àª•ટોપની કà«àª°àª¿àª¯àª¾àªªàªŸà«àªŸà«€ પર બતાવવામાં આવશે." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:476 msgid "" "If this option is checked, the toolbar, input and lookup table windows will " "be sticked to its original position." msgstr "જો આ વિકલà«àªª ચકાસાયેલ હોય, તો સાધનપટà«àªŸà«€, ઈનપà«àªŸ અને લà«àª•અપ કોષà«àªŸàª• વિનà«àª¡à«‹ તેના મૂળ સà«àª¥àª¾àª¨à«‡ ચોંટાડવામાં આવશે." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:482 msgid "The font setting will be used in the input and lookup table windows." msgstr "ફોનà«àªŸ સà«àª¯à«‹àªœàª¨ ઈનપà«àªŸ અને લà«àª•અપ કોષà«àªŸàª• વિનà«àª¡à«‹àª®àª¾àª‚ વાપરવામાં આવશે." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:801 msgid "Select Interface Font" msgstr "ઈનà«àªŸàª°àª«à«‡àª¸ ફોનà«àªŸ પસંદ કરો" #: ../extras/setup/scim_setup_ui.cpp:47 msgid "SCIM" msgstr "SCIM" #: ../extras/setup/scim_setup_ui.cpp:48 msgid "FrontEnd" msgstr "અગà«àª°àª…ંત" #: ../extras/setup/scim_setup_ui.cpp:49 msgid "IMEngine" msgstr "IMEngine" #: ../extras/setup/scim_setup_ui.cpp:50 msgid "Panel" msgstr "પેનલ" #: ../extras/setup/scim_setup_ui.cpp:51 msgid "Extra" msgstr "વધારાનà«àª‚" #. #. vi:ts=4:nowrap:ai:expandtab #. #: ../extras/setup/scim_setup_ui.cpp:230 #: ../extras/setup/scim-setup.desktop.in.h:1 msgid "SCIM Input Method Setup" msgstr "SCIM ઈનપà«àªŸ પદà«àª§àª¤àª¿ સà«àª¯à«‹àªœàª¨" #: ../extras/setup/scim_setup_ui.cpp:369 msgid "" " Smart Common Input Method platform \n" "\n" "GUI Setup Utility\n" "\n" "\n" "\n" "Copyright 2002-2004, James Su <suzhe@tsinghua.org." "cn>" msgstr "" " સà«àª®àª¾àª°à«àªŸ કોમન ઈનપà«àªŸ મેથડ પà«àª²à«‡àªŸàª«à«‹àª°à«àª® \n" "\n" "GUI સà«àª¯à«‹àªœàª¨ ઉપયોગીતા\n" "\n" "\n" "\n" "Copyright 2002-2004, James Su <suzhe@tsinghua.org.cn>" #: ../extras/setup/scim_setup_ui.cpp:394 #, c-format msgid "The Setup for %s modules." msgstr "%s મોડà«àª¯à«àª²à«‹ માટે સà«àª¯à«‹àªœàª¨." #: ../extras/setup/scim_setup_ui.cpp:456 msgid "Are you sure you want to quit SCIM Setup?" msgstr "શà«àª‚ તમે ખરેખર SCIM સà«àª¯à«‹àªœàª¨ બંધ કરવા માંગો છો?" #: ../extras/setup/scim_setup_ui.cpp:685 msgid "" "Not all configuration can be reloaded on the fly. Don't forget to restart " "SCIM in order to let all of the new configuration take effect." msgstr "નોંધ કરો કે બધà«àª‚ રૂપરેખાંકન વૈશà«àªµàª¿àª•પણે પà«àª¨àªƒàª²àª¾àªµà«€ શકાશે. SCIM ને નવà«àª‚ રૂપરેખાંકન અસરમાં લાવવા માટે પà«àª¨àªƒàª¶àª°à«‚ કરવાનà«àª‚ ભૂલશો નહિં." #: ../extras/setup/scim_setup_helper.cpp:49 msgid "SCIM Setup" msgstr "SCIM સà«àª¯à«‹àªœàª¨" #: ../extras/setup/scim_setup_helper.cpp:51 msgid "Integrated Setup Utility based on GTK Widget library." msgstr "GTK વિજેટ લાઈબà«àª°à«‡àª°à«€ પર આધારીત સંકલિત સà«àª¯à«‹àªœàª¨ ઉપયોગીતા." #: ../extras/setup/scim-setup.desktop.in.h:2 msgid "Setup utility for Smart Common Input Method platform" msgstr "સà«àª®àª¾àª°à«àªŸ કોમન ઈનપà«àªŸ મેથડ પà«àª²à«‡àªŸàª«à«‹àª°à«àª® માટે સà«àª¯à«‹àªœàª¨ ઉપયોગીતા" #: ../extras/panel/scim_panel_gtk.cpp:982 msgid "SCIM Help" msgstr "SCIM મદદ" #: ../extras/panel/scim_panel_gtk.cpp:999 msgid "Smart Common Input Method" msgstr "સà«àª®àª¾àª°à«àªŸ કોમન ઈનપà«àªŸ મેથડ" #: ../extras/panel/scim_panel_gtk.cpp:1058 msgid "Stick/unstick the input window and the toolbar." msgstr "ઈનપà«àªŸ વિનà«àª¡à«‹ અને સાધનપટà«àªŸà«€ ચોંટાડો/દૂર કરો." #: ../extras/panel/scim_panel_gtk.cpp:1063 msgid "Show a brief help about SCIM and the current input method." msgstr "SCIM અને વરà«àª¤àª®àª¾àª¨ ઈનપà«àªŸ પદà«àª§àª¤àª¿ વિશે સંકà«àª·àª¿àªªà«àª¤ મદદ બતાવો." #: ../extras/panel/scim_panel_gtk.cpp:1068 msgid "Show command menu." msgstr "આદેશ મેનૠબતાવો." #: ../extras/panel/scim_panel_gtk.cpp:2306 msgid "" "\n" "(C) 2002-2005 James Su " msgstr "" "\n" "(C) 2002-2005 James Su " #. Reload Configuration. #: ../extras/panel/scim_panel_gtk.cpp:2385 msgid "Reload Configuration" msgstr "રૂપરેખાંકન પà«àª¨àªƒàª²àª¾àªµà«‹" #. Stick #: ../extras/panel/scim_panel_gtk.cpp:2395 msgid "Stick Windows" msgstr "વિનà«àª¡à«‹ ચોંટાડો" #. Toolbar #: ../extras/panel/scim_panel_gtk.cpp:2404 msgid "Hide Toolbar" msgstr "સાધનપટà«àªŸà«€ છà«àªªàª¾àªµà«‹" #. Help #: ../extras/panel/scim_panel_gtk.cpp:2413 msgid "Help ..." msgstr "મદદ ..." #. Clients exit. #: ../extras/panel/scim_panel_gtk.cpp:2431 msgid "Exit" msgstr "બહાર નીકળો" #: ../utils/scimstringview.c:196 msgid "Cursor Position" msgstr "કરà«àª¸àª° સà«àª¥àª¾àª¨" #: ../utils/scimstringview.c:197 msgid "The current position of the insertion cursor in chars." msgstr "દાખલ કરà«àª¸àª°àª¨à«àª‚ વરà«àª¤àª®àª¾àª¨ સà«àª¥àª¾àª¨ અકà«àª·àª°à«‹àª®àª¾àª‚." #: ../utils/scimstringview.c:206 msgid "Maximum length" msgstr "મહતà«àª¤àª® લંબાઈ" #: ../utils/scimstringview.c:207 msgid "Maximum number of characters for this string view. Zero if no maximum." msgstr "આ શબà«àª¦àª®àª¾àª³àª¾ દેખાવ માટે મહતà«àª¤àª® સંખà«àª¯àª¾àª¨àª¾ અકà«àª·àª°à«‹. જો કોઈ મહતà«àª¤àª® ના હોય તો શૂનà«àª¯." #: ../utils/scimstringview.c:216 msgid "Maximum width" msgstr "મહતà«àª¤àª® પહોળાઈ" #: ../utils/scimstringview.c:217 msgid "Maximum width of this string view." msgstr "આ શબà«àª¦àª®àª¾àª³àª¾àª¨àª¾ દેખાવ માટે મહતà«àª¤àª® પહોળાઈ." #: ../utils/scimstringview.c:226 msgid "Has Frame" msgstr "ને ચોકઠà«àª‚ છે" #: ../utils/scimstringview.c:227 msgid "FALSE removes outside bevel from string view." msgstr "FALSE શબà«àª¦àª®àª¾àª³àª¾ દેખાવમાંથી કોણની બહારનà«àª‚ દૂર કરે છે." #: ../utils/scimstringview.c:234 msgid "Draw cursor" msgstr "કરà«àª¸àª° દોરો" #: ../utils/scimstringview.c:235 msgid "TRUE draw blinking cursor." msgstr "TRUE દોરો àªàª¬à«‚કતà«àª‚ કરà«àª¸àª°." #: ../utils/scimstringview.c:242 msgid "Auto move cursor" msgstr "કરà«àª¸àª° આપોઆપ ખસેડો" #: ../utils/scimstringview.c:243 msgid "TRUE auto move cursor position when mouse clicking." msgstr "TRUE જà«àª¯àª¾àª°à«‡ માઉસ કà«àª²àª¿àª• કરી રહà«àª¯àª¾ હોય તà«àª¯àª¾àª°à«‡ કરà«àª¸àª° સà«àª¥àª¾àª¨ આપોઆપ ખસેડો." #: ../utils/scimstringview.c:250 msgid "Forward button press event" msgstr "બટન દબાવો ઘટના આગળ ધપાવો" #: ../utils/scimstringview.c:251 msgid "TRUE forward button press event to user program." msgstr "TRUE વપરાશકરà«àª¤àª¾ કારà«àª¯àª•à«àª°àª® માટે બટન દબાવો ઘટના આગળ ધપાવો." #: ../utils/scimstringview.c:258 msgid "Auto resize the widget to fit the string" msgstr "શબà«àª¦àª®àª¾àª³àª¾àª®àª¾àª‚ બંધબેસાડવા માટે વિજેટનà«àª‚ માપ આપોઆપ બદલો" #: ../utils/scimstringview.c:259 msgid "TRUE Auto resize on." msgstr "TRUE આપોઆપ માપ બદલવાનà«àª‚ ચાલà«." #: ../utils/scimstringview.c:266 msgid "Width in chars" msgstr "પહોળાઈ અકà«àª·àª°à«‹àª®àª¾àª‚" #: ../utils/scimstringview.c:267 msgid "Number of characters to leave space for in the string view." msgstr "શબà«àª¦àª®àª¾àª³àª¾ દેખાવમાં જગà«àª¯àª¾ છોડવા માટે અકà«àª·àª°à«‹àª¨à«€ સંખà«àª¯àª¾." #: ../utils/scimstringview.c:276 msgid "Scroll offset" msgstr "ઓફસેટ સરકાવો" #: ../utils/scimstringview.c:277 msgid "Number of pixels of the string view scrolled off the screen to the left" msgstr "સà«àª•à«àª°à«€àª¨àª¨à«€ ડાબી બાજà«àª સરકાવેલ શબà«àª¦àª®àª¾àª³àª¾ દેખાવના પિકà«àª¸à«‡àª²à«‹àª¨à«€ સંખà«àª¯àª¾" #: ../utils/scimstringview.c:286 msgid "Text" msgstr "લખાણ" #: ../utils/scimstringview.c:287 msgid "The contents of the string view" msgstr "શબà«àª¦àª®àª¾àª³àª¾ દેખાવના સમાવિષà«àªŸà«‹" #: ../utils/scimkeyselection.cpp:155 msgid "Selected _Keys:" msgstr "પસંદિત કીઓ (_K):" #: ../utils/scimkeyselection.cpp:200 msgid "Key Code:" msgstr "કી કોડ:" #: ../utils/scimkeyselection.cpp:218 msgid "..." msgstr "..." #: ../utils/scimkeyselection.cpp:223 msgid "Modifiers:" msgstr "સà«àª§àª¾àª°àª•à«‹:" #: ../utils/scimkeyselection.cpp:236 msgid "_Ctrl" msgstr "_Ctrl" #: ../utils/scimkeyselection.cpp:240 msgid "A_lt" msgstr "A_lt" #: ../utils/scimkeyselection.cpp:244 msgid "_Shift" msgstr "_Shift" #: ../utils/scimkeyselection.cpp:248 msgid "_Release" msgstr "છોડો (_R)" #: ../utils/scimkeyselection.cpp:258 msgid "_Meta" msgstr "મેટા (_M)" #: ../utils/scimkeyselection.cpp:262 msgid "S_uper" msgstr "સà«àªªàª° (_u)" #: ../utils/scimkeyselection.cpp:266 msgid "_Hyper" msgstr "હાયપર (_H)" #: ../utils/scimkeyselection.cpp:331 msgid "Please enter a Key Code first." msgstr "મહેરબાની કરીને કી કોડ પà«àª°àª¥àª® દાખલ કરો." #: ../utils/scimkeyselection.cpp:385 msgid "" "Press a key (or a key combination).\n" "This dialog will be closed when the key is released." msgstr "" "કી દબાવો (અથવા કી જોડાણ).\n" "આ સંવાદ બંધ કરવામાં આવશે જà«àª¯àª¾àª°à«‡ કી મà«àª•à«àª¤ થાય." #: ../utils/scimkeyselection.cpp:388 msgid "Grabbing a key." msgstr "કી મેળવી રહà«àª¯àª¾ છીàª." #: ../utils/scimkeyselection.cpp:678 msgid "Key Selection" msgstr "કી પસંદગી" #: ../utils/scimtrayicon.c:108 msgid "Orientation" msgstr "દિશા" #: ../utils/scimtrayicon.c:109 msgid "The orientation of the tray." msgstr "ટà«àª°à«‡àª¨à«€ દિશા." scim-1.4.14/po/hi.po000066400000000000000000001333511177210725600141300ustar00rootroot00000000000000# translation of hi.po to Hindi # Hindi translations for PACKAGE package. # Copyright (C) 2008 THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Automatically generated, 2008. # Rajesh Ranjan , 2008. msgid "" msgstr "" "Project-Id-Version: hi\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-06-22 11:40-0700\n" "PO-Revision-Date: 2008-03-26 13:00+0530\n" "Last-Translator: Rajesh Ranjan \n" "Language-Team: Hindi \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n\n\n" "\n" "\n" #: ../src/scim_compose_key.cpp:126 msgid "English/European" msgstr "अंगà¥à¤°à¥‡à¤œà¤¼à¥€/यूरोपीय" #. Append an entry for forward mode. #: ../src/scim_imengine.cpp:638 ../src/scim_utility.cpp:693 #: ../modules/FrontEnd/scim_x11_frontend.cpp:1897 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1281 #: ../extras/panel/scim_panel_gtk.cpp:2814 msgid "English/Keyboard" msgstr "अंगà¥à¤°à¥‡à¤œà¤¼à¥€/कà¥à¤‚जीपटल" #: ../src/scim_utility.cpp:694 msgid "Amharic" msgstr "अमà¥à¤¹à¤¾à¤°à¤¿à¤•" #: ../src/scim_utility.cpp:695 msgid "Arabic" msgstr "अरबी" #: ../src/scim_utility.cpp:696 msgid "Arabic (Egypt)" msgstr "अरबी (मिशà¥à¤°)" #: ../src/scim_utility.cpp:697 msgid "Arabic (Lebanon)" msgstr "अरेबिक (लेबनॉन)" #: ../src/scim_utility.cpp:698 msgid "Assamese" msgstr "असामी" #: ../src/scim_utility.cpp:699 msgid "Azerbaijani" msgstr "अजरबेजानी" #: ../src/scim_utility.cpp:700 msgid "Belarusian" msgstr "बेलारूसी" #: ../src/scim_utility.cpp:701 msgid "Bulgarian" msgstr "बà¥à¤²à¥à¤—ारियाई" #: ../src/scim_utility.cpp:702 ../src/scim_utility.cpp:703 msgid "Bengali" msgstr "बंगाली" #: ../src/scim_utility.cpp:704 msgid "Bengali (India)" msgstr "बंगाली (भारत)" #: ../src/scim_utility.cpp:705 msgid "Tibetan" msgstr "तिबà¥à¤¬à¤¤à¥€" #: ../src/scim_utility.cpp:706 msgid "Bosnian" msgstr "बोसà¥à¤¨à¤¿à¤¯à¤¾à¤ˆ" #: ../src/scim_utility.cpp:707 msgid "Catalan" msgstr "केटेलन" #: ../src/scim_utility.cpp:708 ../src/scim_keyboard_layout_data.h:4595 msgid "Czech" msgstr "चेक" #: ../src/scim_utility.cpp:709 msgid "Welsh" msgstr "वेलà¥à¤¶" #: ../src/scim_utility.cpp:710 ../src/scim_keyboard_layout_data.h:4597 msgid "Danish" msgstr "डैनिश" #: ../src/scim_utility.cpp:711 ../src/scim_keyboard_layout_data.h:4605 msgid "German" msgstr "जरà¥à¤®à¤¨" #: ../src/scim_utility.cpp:712 msgid "Divehi" msgstr "दिवेही" #: ../src/scim_utility.cpp:713 ../src/scim_keyboard_layout_data.h:4608 msgid "Greek" msgstr "यà¥à¤¨à¤¾à¤¨à¥€" #: ../src/scim_utility.cpp:714 msgid "English" msgstr "अंगà¥à¤°à¥‡à¤œà¤¼à¥€" #: ../src/scim_utility.cpp:715 msgid "English (Australian)" msgstr "अंगà¥à¤°à¥‡à¤œà¤¼à¥€ (ऑसà¥à¤Ÿà¥à¤°à¥‡à¤²à¤¿à¤¯à¤¨)" #: ../src/scim_utility.cpp:716 msgid "English (Canadian)" msgstr "अंगà¥à¤°à¥‡à¤œà¥€ (कैनाडियन)" #: ../src/scim_utility.cpp:717 msgid "English (British)" msgstr "अंगà¥à¤°à¥‡à¤œà¥€ (बà¥à¤°à¤¿à¤Ÿà¤¿à¤¶)" #: ../src/scim_utility.cpp:718 msgid "English (Ireland)" msgstr "अंगà¥à¤°à¥‡à¤œà¤¼à¥€ (आयरलैंड)" #: ../src/scim_utility.cpp:719 msgid "English (American)" msgstr "अंगà¥à¤°à¥‡à¤œà¥€ (अमरीकी)" #: ../src/scim_utility.cpp:720 ../src/scim_utility.cpp:721 #: ../src/scim_keyboard_layout_data.h:4621 msgid "Spanish" msgstr "सà¥à¤ªà¥‡à¤¨à¥€" #: ../src/scim_utility.cpp:722 msgid "Spanish (Mexico)" msgstr "सà¥à¤ªà¥‡à¤¨à¤¿à¤¶ (मेकà¥à¤¸à¤¿à¤•ो)" #: ../src/scim_utility.cpp:723 ../src/scim_keyboard_layout_data.h:4600 msgid "Estonian" msgstr "इसà¥à¤¤à¥‹à¤¨à¤¿à¤¯à¤¾à¤ˆ" #: ../src/scim_utility.cpp:724 msgid "Basque" msgstr "बॉसà¥à¤•" #: ../src/scim_utility.cpp:725 msgid "Persian" msgstr "पारसी" #: ../src/scim_utility.cpp:726 ../src/scim_keyboard_layout_data.h:4601 msgid "Finnish" msgstr "फिनिश" #: ../src/scim_utility.cpp:727 ../src/scim_keyboard_layout_data.h:4602 msgid "French" msgstr "फà¥à¤°à¥‡à¤‚च" #: ../src/scim_utility.cpp:728 msgid "Irish" msgstr "आइरिश" #: ../src/scim_utility.cpp:729 msgid "Galician" msgstr "गेलिसियन" #: ../src/scim_utility.cpp:730 msgid "Gujarati" msgstr "गà¥à¤œà¤°à¤¾à¤¤à¥€" #: ../src/scim_utility.cpp:731 ../src/scim_utility.cpp:740 msgid "Hebrew" msgstr "हिबà¥à¤°à¥‚" #: ../src/scim_utility.cpp:732 msgid "Hindi" msgstr "हिनà¥à¤¦à¥€" #: ../src/scim_utility.cpp:733 ../src/scim_keyboard_layout_data.h:4594 msgid "Croatian" msgstr "कà¥à¤°à¥‹à¤à¤¶à¤¿à¤¯à¤¾à¤ˆ" #: ../src/scim_utility.cpp:734 ../src/scim_keyboard_layout_data.h:4609 msgid "Hungarian" msgstr "हंगेरियाई" #: ../src/scim_utility.cpp:735 msgid "Armenian" msgstr "आरà¥à¤®à¥‡à¤¨à¤¿à¤¯à¤¾à¤ˆ" #: ../src/scim_utility.cpp:736 msgid "Interlingua" msgstr "अंतरभाषायी" #: ../src/scim_utility.cpp:737 msgid "Indonesian" msgstr "इंडोनेशियाई" #: ../src/scim_utility.cpp:738 ../src/scim_keyboard_layout_data.h:4627 msgid "Icelandic" msgstr "आइसलैंडिक" #: ../src/scim_utility.cpp:739 ../src/scim_keyboard_layout_data.h:4610 msgid "Italian" msgstr "इतालवी" #: ../src/scim_utility.cpp:741 ../src/scim_keyboard_layout_data.h:4611 msgid "Japanese" msgstr "जापानी" #: ../src/scim_utility.cpp:742 msgid "Georgian" msgstr "जà¥à¤¯à¥‰à¤°à¥à¤œà¤¿à¤¯à¤¾à¤ˆ" #: ../src/scim_utility.cpp:743 msgid "Kazakh" msgstr "कज़ाक" #: ../src/scim_utility.cpp:744 msgid "Cambodian" msgstr "कंबोडियाई" #: ../src/scim_utility.cpp:745 msgid "Kannada" msgstr "कनà¥à¤¨à¤¡à¤¼" #: ../src/scim_utility.cpp:746 msgid "Korean" msgstr "कोरियाई" #: ../src/scim_utility.cpp:747 msgid "Laothian" msgstr "लाओथियन" #: ../src/scim_utility.cpp:748 ../src/scim_keyboard_layout_data.h:4628 msgid "Lithuanian" msgstr "लिथà¥à¤†à¤¨à¤¿à¤¯à¤¾à¤ˆ" #: ../src/scim_utility.cpp:749 msgid "Latvian" msgstr "लातवियाई" #: ../src/scim_utility.cpp:750 msgid "Macedonian" msgstr "मकदूनियाई" #: ../src/scim_utility.cpp:751 msgid "Malayalam" msgstr "मलयालम" #: ../src/scim_utility.cpp:752 msgid "Mongolian" msgstr "मंगोलियन" #: ../src/scim_utility.cpp:753 msgid "Marathi" msgstr "मराठी" #: ../src/scim_utility.cpp:754 msgid "Malay" msgstr "मलय" #: ../src/scim_utility.cpp:755 msgid "Burmese" msgstr "बरà¥à¤®à¥€" #: ../src/scim_utility.cpp:756 msgid "Nepali" msgstr "नेपाली" #: ../src/scim_utility.cpp:757 ../src/scim_keyboard_layout_data.h:4598 msgid "Dutch" msgstr "डच" #: ../src/scim_utility.cpp:758 msgid "Norwegian (nynorsk)" msgstr "नारà¥à¤µà¥‡à¤œà¤¿à¤¯à¤¨ (नà¥à¤¯à¥à¤¨à¥‹à¤°à¥à¤¸à¥à¤•)" #: ../src/scim_utility.cpp:759 msgid "Norwegian (bokmal)" msgstr "नारà¥à¤µà¥‡à¤œà¤¿à¤¯à¤¨ (बोकमाल)" #: ../src/scim_utility.cpp:760 msgid "Oriya" msgstr "उड़िया" #: ../src/scim_utility.cpp:761 msgid "Punjabi" msgstr "पंजाबी" #: ../src/scim_utility.cpp:762 ../src/scim_keyboard_layout_data.h:4613 msgid "Polish" msgstr "पालिश" #: ../src/scim_utility.cpp:763 ../src/scim_utility.cpp:765 #: ../src/scim_keyboard_layout_data.h:4614 msgid "Portuguese" msgstr "पà¥à¤°à¥à¤¤à¤—ाली" #: ../src/scim_utility.cpp:764 ../src/scim_keyboard_layout_data.h:4615 msgid "Portuguese (Brazil)" msgstr "पोरà¥à¤šà¥à¤—ीस (बà¥à¤°à¥‡à¤œà¤¼à¤¿à¤²)" #: ../src/scim_utility.cpp:766 msgid "Romanian" msgstr "रोमेनियाई" #: ../src/scim_utility.cpp:767 ../src/scim_keyboard_layout_data.h:4617 msgid "Russian" msgstr "रूसी" #: ../src/scim_utility.cpp:768 msgid "Sinhala" msgstr "सिंहला" #: ../src/scim_utility.cpp:769 ../src/scim_keyboard_layout_data.h:4618 msgid "Slovak" msgstr "सà¥à¤²à¥‹à¤µà¤¾à¤•" #: ../src/scim_utility.cpp:770 ../src/scim_keyboard_layout_data.h:4620 msgid "Slovenian" msgstr "सà¥à¤²à¥‹à¤µà¤¿à¤¨à¤¿à¤¯à¤¾à¤ˆ" #: ../src/scim_utility.cpp:771 msgid "Albanian" msgstr "अलà¥à¤¬à¥‡à¤¨à¤¿à¤¯à¤¨" #: ../src/scim_utility.cpp:772 ../src/scim_utility.cpp:773 #: ../src/scim_utility.cpp:774 msgid "Serbian" msgstr "सरà¥à¤µà¤¿à¤¯à¤¨" #: ../src/scim_utility.cpp:775 ../src/scim_utility.cpp:777 #: ../src/scim_keyboard_layout_data.h:4624 msgid "Swedish" msgstr "सà¥à¤µà¥€à¤¡à¤¿à¤¶" #: ../src/scim_utility.cpp:776 msgid "Swedish (Finland)" msgstr "सà¥à¤µà¥€à¤¡à¤¿à¤¶ (फिनलॉनà¥à¤¡)" #: ../src/scim_utility.cpp:778 msgid "Tamil" msgstr "तमिल" #: ../src/scim_utility.cpp:779 msgid "Telugu" msgstr "तेलà¥à¤—à¥" #: ../src/scim_utility.cpp:780 msgid "Thai" msgstr "थाई" #: ../src/scim_utility.cpp:781 ../src/scim_keyboard_layout_data.h:4625 msgid "Turkish" msgstr "तà¥à¤°à¥à¤•ी" #: ../src/scim_utility.cpp:782 msgid "Uighur" msgstr "यूघर" #: ../src/scim_utility.cpp:783 ../src/scim_keyboard_layout_data.h:4629 msgid "Ukrainian" msgstr "उकà¥à¤°à¥‡à¤¨à¤¿à¤¯à¤¾à¤ˆ" #: ../src/scim_utility.cpp:784 msgid "Urdu" msgstr "उरà¥à¤¦à¥‚" #: ../src/scim_utility.cpp:785 msgid "Uzbek" msgstr "उजà¥à¤¬à¥‡à¤•" #: ../src/scim_utility.cpp:786 msgid "Vietnamese" msgstr "विà¤à¤¤à¤¨à¤¾à¤®à¥€" #: ../src/scim_utility.cpp:787 msgid "Walloon" msgstr "वालून" #: ../src/scim_utility.cpp:788 ../src/scim_utility.cpp:789 msgid "Yiddish" msgstr "यिडà¥à¤¡à¤¿à¤·" #: ../src/scim_utility.cpp:790 msgid "Chinese" msgstr "चीनी" #: ../src/scim_utility.cpp:791 ../src/scim_utility.cpp:793 msgid "Chinese (simplified)" msgstr "चीनी (सरलीकृत)" #: ../src/scim_utility.cpp:792 ../src/scim_utility.cpp:794 msgid "Chinese (traditional)" msgstr "चैनीस (परमà¥à¤ªà¤°à¤¾à¤—त)" #: ../src/scim_utility.cpp:876 msgid "Other" msgstr "अनà¥à¤¯" #: ../src/scim_keyboard_layout_data.h:4591 #: ../modules/IMEngine/scim_socket_imengine.cpp:386 #: ../modules/IMEngine/scim_socket_imengine.cpp:416 #: ../modules/IMEngine/scim_socket_imengine.cpp:501 #: ../modules/IMEngine/scim_socket_imengine.cpp:531 #: ../modules/IMEngine/scim_socket_imengine.cpp:561 msgid "Unknown" msgstr "अजà¥à¤žà¤¾à¤¤" #: ../src/scim_keyboard_layout_data.h:4592 msgid "English (US)" msgstr "अंगà¥à¤°à¥‡à¤œà¤¼à¥€ (यूà¤à¤¸)" #: ../src/scim_keyboard_layout_data.h:4593 msgid "Belgian" msgstr "बेलà¥à¤œà¤¿à¤¯à¤¾à¤ˆ" #: ../src/scim_keyboard_layout_data.h:4596 msgid "Czech (qwerty)" msgstr "चेक (कà¥à¤µà¤°à¥à¤Ÿà¥€)" #: ../src/scim_keyboard_layout_data.h:4599 msgid "Dvorak" msgstr "डà¥à¤µà¥‹à¤°à¤¾à¤•" #: ../src/scim_keyboard_layout_data.h:4603 msgid "French (Canadian)" msgstr "फà¥à¤°à¥‡à¤‚च (कनाडियन)" #: ../src/scim_keyboard_layout_data.h:4604 msgid "French (Switzerland)" msgstr "फà¥à¤°à¥‡à¤¨à¥à¤š (सà¥à¤µà¤¿à¤œà¤¼à¤°à¥à¤²à¤¾à¤¨à¥à¤¡)" #: ../src/scim_keyboard_layout_data.h:4606 msgid "German (with deadkeys)" msgstr "जरà¥à¤®à¤¨ (मृतकà¥à¤‚जी के साथ)" #: ../src/scim_keyboard_layout_data.h:4607 msgid "German (Swiss)" msgstr "जरà¥à¤®à¤¨ (सà¥à¤µà¤¿à¤¸)" #: ../src/scim_keyboard_layout_data.h:4612 msgid "Norwegian" msgstr "नारà¥à¤µà¥‡à¤œà¤¿à¤¯à¤¾à¤ˆ" #: ../src/scim_keyboard_layout_data.h:4616 msgid "Portuguese (Brazil US accents)" msgstr "पà¥à¤°à¥à¤¤à¤—ाली (बà¥à¤°à¤¾à¤œà¥€à¤² यूà¤à¤¸ धà¥à¤µà¤¨à¤¿)" #: ../src/scim_keyboard_layout_data.h:4619 msgid "Slovak (qwerty)" msgstr "सà¥à¤²à¥‹à¤µà¤¾à¤• (कà¥à¤µà¤°à¥à¤Ÿà¥€)" #: ../src/scim_keyboard_layout_data.h:4622 msgid "Spanish (CP 850)" msgstr "सà¥à¤ªà¥‡à¤¨à¥€ (CP 850)" #: ../src/scim_keyboard_layout_data.h:4623 msgid "Spanish (Latin America)" msgstr "सà¥à¤ªà¥‡à¤¨à¥€ (लातिन अमेरिका)" #: ../src/scim_keyboard_layout_data.h:4626 msgid "English (UK)" msgstr "अंगà¥à¤°à¥‡à¤œà¥€ (UK)" #: ../modules/Filter/scim_sctc_filter.cpp:57 msgid "Simplified-Traditional Chinese Conversion" msgstr "सरलीकृत - परंपरागत चीनी वारà¥à¤¤à¤¾à¤²à¤¾à¤ª" #: ../modules/Filter/scim_sctc_filter.cpp:60 msgid "Convert between Simplified Chinese and Traditional Chinese" msgstr "सरलीकृत चीनी और परंपरागत चीनी के बीच बदलें" #: ../modules/Filter/scim_sctc_filter.cpp:71 msgid "SC-TC" msgstr "SC-TC" #: ../modules/Filter/scim_sctc_filter.cpp:73 #: ../modules/Filter/scim_sctc_filter.cpp:78 msgid "Simplified-Traditional Chinese conversion" msgstr "सरलीकृत-परंपरागत चीनी वारà¥à¤¤à¤¾à¤²à¤¾à¤ª" #: ../modules/Filter/scim_sctc_filter.cpp:76 msgid "No Conversion" msgstr "कोई वारà¥à¤¤à¤¾à¤²à¤¾à¤ª नहीं" #: ../modules/Filter/scim_sctc_filter.cpp:81 msgid "Simplified to Traditional" msgstr "सरलीकृत से परंपरागत" #: ../modules/Filter/scim_sctc_filter.cpp:83 msgid "Convert Simplified Chinese to Traditional Chinese" msgstr "सरलीकृत चीनी से परंपरागत चीनी में बदलें" #: ../modules/Filter/scim_sctc_filter.cpp:86 msgid "Traditional to Simplified" msgstr "परंपरागत से सरलीकृत" #: ../modules/Filter/scim_sctc_filter.cpp:88 msgid "Convert Traditional Chinese to Simplified Chinese" msgstr "परंपरागत चीनी से सरलीकृत चीनी में बदलें" #: ../modules/Filter/scim_sctc_filter.cpp:300 msgid "James Su " msgstr "James Su " #: ../modules/Filter/scim_sctc_filter.cpp:425 #: ../modules/Filter/scim_sctc_filter.cpp:555 #: ../modules/Filter/scim_sctc_filter.cpp:571 msgid "SC->TC" msgstr "SC->TC" #: ../modules/Filter/scim_sctc_filter.cpp:431 #: ../modules/Filter/scim_sctc_filter.cpp:559 #: ../modules/Filter/scim_sctc_filter.cpp:575 msgid "TC->SC" msgstr "TC->SC" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1845 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1231 #: ../extras/panel/scim_panel_gtk.cpp:2304 msgid "Smart Common Input Method platform " msgstr "सà¥à¤®à¤¾à¤°à¥à¤Ÿ कॉमन इनपà¥à¤Ÿ मेथड पà¥à¤²à¥‡à¤Ÿà¤«à¥‰à¤°à¥à¤® " #: ../modules/FrontEnd/scim_x11_frontend.cpp:1847 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1233 msgid "" "\n" "(C) 2002-2005 James Su \n" "\n" msgstr "" "\n" "(C) 2002-2005 James Su \n" "\n" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1851 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1238 msgid "" ":\n" "\n" msgstr "" ":\n" "\n" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1854 #: ../modules/FrontEnd/scim_x11_frontend.cpp:1857 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1241 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1244 msgid "" "\n" "\n" msgstr "" "\n" "\n" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:120 msgid "RAW CODE" msgstr "RAW CODE" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:127 msgid "(C) 2002-2006 James Su " msgstr "(C) 2002-2006 James Su " #: ../modules/IMEngine/scim_rawcode_imengine.cpp:140 msgid "" "Hot Keys:\n" "\n" " Control+u:\n" " switch between Multibyte encoding and Unicode.\n" "\n" " Esc:\n" " reset the input method.\n" msgstr "" "हॉटी की:\n" "\n" " Control+u:\n" " मलà¥à¤Ÿà¥€à¤¬à¤¾à¤‡à¤Ÿ à¤à¤¨à¤•ोडिंग और यà¥à¤¨à¥€à¤•ोड के बीच सà¥à¤µà¤¿à¤š करता है.\n" "\n" " Esc:\n" " इनपà¥à¤Ÿ विधि फिर सेट करता है.\n" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:407 #: ../modules/IMEngine/scim_rawcode_imengine.cpp:423 msgid "The status of the current input method. Click to change it." msgstr "मौजूदा इनपà¥à¤Ÿ विधि की सà¥à¤¥à¤¿à¤¤à¤¿. इसे बदलने के लिठकà¥à¤²à¤¿à¤• करें." #: ../modules/IMEngine/scim_rawcode_imengine.cpp:409 msgid "Unicode" msgstr "यूनिकोड" #: ../modules/SetupUI/scim_frontend_setup.cpp:82 #: ../modules/SetupUI/scim_imengine_setup.cpp:88 msgid "Global Setup" msgstr "वैशà¥à¤µà¤¿à¤• सेटअप" #: ../modules/SetupUI/scim_frontend_setup.cpp:87 msgid "" "Setup the global options used by All FrontEnd modules, including X11 " "FrontEnd, GTK IMModule, QT IMModule etc." msgstr "" "सभी FrontEnd मॉडà¥à¤¯à¥‚ल के दà¥à¤µà¤¾à¤°à¤¾ पà¥à¤°à¤¯à¥à¤•à¥à¤¤ वैशà¥à¤µà¤¿à¤• विकलà¥à¤ª को सेटअप करता है, X11 " "FrontEnd, GTK IMModule, QT IMModule आदि के साथ." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:143 msgid "_Trigger:" msgstr "टà¥à¤°à¤¿à¤—र (_T):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:145 msgid "Select the trigger keys" msgstr "टà¥à¤°à¤¿à¤—र कà¥à¤‚जी चà¥à¤¨à¥‡à¤‚" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:147 msgid "" "The key events to turn on/off SCIM input method. Click on the button on the " "right to edit it." msgstr "SCIM इनपà¥à¤Ÿ विधि चालू/बंद करने के लिठबीज घटना. इसे संपादित करने के लिठदाहिने ओर बटन पर कà¥à¤²à¤¿à¤• करें." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:160 msgid "Turn _On:" msgstr "चालू करता है (_O):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:162 msgid "Select the Turn On keys" msgstr "चालू करें कà¥à¤‚जी को चà¥à¤¨à¥‡à¤‚" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:164 msgid "" "The key events to turn on SCIM input method. Click on the button on the " "right to edit it." msgstr "SCIM इनपà¥à¤Ÿ विधि को चालू करने के लिठकà¥à¤‚जी घटना. इसे संपादित करने के लिठबटन पर दाहिने कà¥à¤²à¤¿à¤• करें." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:177 msgid "Turn O_ff:" msgstr "बंद करें (_f):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:179 msgid "Select the Turn Off keys" msgstr "बंद करें कà¥à¤‚जी चà¥à¤¨à¥‡à¤‚" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:181 msgid "" "The key events to turn off SCIM input method. Click on the button on the " "right to edit it." msgstr "SCIM इनपà¥à¤Ÿ विधि को बंद करने की बीज घटना. इसे संपादित करने के लिठबटन पर दाहिने कà¥à¤²à¤¿à¤• करें." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:194 msgid "_Next input method:" msgstr "अगली इनपà¥à¤Ÿ विधि (_N):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:196 msgid "Select the next input method keys" msgstr "अगला इनपà¥à¤Ÿ विधि कà¥à¤‚जी चà¥à¤¨à¥‡à¤‚" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:198 msgid "" "The key events to switch to the next input method. Click on the button on " "the right to edit it." msgstr "अगला इनपà¥à¤Ÿ विधि में बदलने के लिठकà¥à¤‚जी घटना. इसे संपादित करने के लिठबटन पर दाहिने कà¥à¤²à¤¿à¤• करें." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:213 msgid "_Previous input method:" msgstr "पिछला इनपà¥à¤Ÿ विधि (_P):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:215 msgid "Select the previous input method keys" msgstr "पिछला इनपà¥à¤Ÿ विधि कà¥à¤‚जी चà¥à¤¨à¥‡à¤‚" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:217 msgid "" "The key events to switch to the previous input method. Click on the button " "on the right to edit it." msgstr "पिछला इनपà¥à¤Ÿ विधि में बदलने के लिठकà¥à¤‚जी घटना. इसे संपादित करने के लिठबटन पर दाहिने कà¥à¤²à¤¿à¤• करें." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:232 msgid "Show input method _menu:" msgstr "इनपà¥à¤Ÿ विधि मेनà¥à¤¯à¥‚ दिखाà¤à¤‚ (_m):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:234 msgid "Select the show input method menu keys" msgstr "इनपà¥à¤Ÿ विधि मेनà¥à¤¯à¥‚ कà¥à¤‚जी दिखाà¤à¤‚ को चà¥à¤¨à¥‡à¤‚" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:236 msgid "" "The key events to show the input method menu. Click on the button on the " "right to edit it." msgstr "इनपà¥à¤Ÿ विधि मेनूय दिखाने के लिठकà¥à¤‚जी घटना. इसे संपादित करने के लिठबटन पर दाहिने कà¥à¤²à¤¿à¤• करें." #: ../modules/SetupUI/scim_frontend_setup.cpp:306 msgid "Options" msgstr "विकलà¥à¤ª" #: ../modules/SetupUI/scim_frontend_setup.cpp:321 msgid "_Keyboard Layout:" msgstr "कà¥à¤‚जीपटल अभिनà¥à¤¯à¤¾à¤¸ (_K):" #: ../modules/SetupUI/scim_frontend_setup.cpp:342 msgid "" "You should choose your currently used keyboard layout here so that input " "methods, who care about keyboard layout, could work correctly." msgstr "आपको अभी पà¥à¤°à¤¯à¥à¤•à¥à¤¤ कà¥à¤‚जीपटल लेआउट को यहां चà¥à¤¨à¤¨à¤¾ चाहिठताकि इनपà¥à¤Ÿ विधि, कà¥à¤‚जीपटल लेआउट को कौन धà¥à¤¯à¤¾à¤¨ देता है, ठीक से काम कर सके." #. On The Spot. #: ../modules/SetupUI/scim_frontend_setup.cpp:346 msgid "_Embed Preedit String into client window" msgstr "कà¥à¤²à¤¾à¤‡à¤‚ट विंडो में अंतःसà¥à¤¥à¤¾à¤ªà¤¿à¤¤ पूरà¥à¤µà¤¸à¤‚पादित सà¥à¤Ÿà¥à¤°à¤¿à¤‚ग (_E)" #: ../modules/SetupUI/scim_frontend_setup.cpp:351 msgid "" "If this option is checked, the preedit string will be displayed directly in " "the client input window, rather than in a independent float window." msgstr "यदि यह विकलà¥à¤ª जांचा जाता है, कà¥à¤²à¤¾à¤‡à¤‚ट इनपà¥à¤Ÿ विंडो में पूरà¥à¤µà¤¸à¤‚पादित सà¥à¤Ÿà¥à¤°à¤¿à¤‚ग सीधे दिखाया जायेगा, बजाय सà¥à¤µà¤¤à¤‚तà¥à¤° पà¥à¤²à¤¾à¤µà¤¿à¤¤ विंडो के." #. Shared input method. #: ../modules/SetupUI/scim_frontend_setup.cpp:360 msgid "_Share the same input method among all applications" msgstr "सभी अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤—ों के लिठसमान इनपà¥à¤Ÿ विधि साà¤à¤¾ करता है (_S)" #: ../modules/SetupUI/scim_frontend_setup.cpp:365 msgid "" "If this option is checked, then only one input method could be used by all " "applications at the same time.Otherwise different input method could be used " "by each application." msgstr "यदि यह विकलà¥à¤ª जांचा गया है, तब सिरà¥à¤« à¤à¤• इनपà¥à¤Ÿ विधि को सभी अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— के दà¥à¤µà¤¾à¤°à¤¾ समान समय पर पà¥à¤°à¤¯à¥à¤•à¥à¤¤ किया जा सकता है. अनà¥à¤¯à¤¥à¤¾ भिनà¥à¤¨ इनपà¥à¤Ÿ विधि हर अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— के पà¥à¤°à¤¯à¥‹à¤— किया जा सकता है." #: ../modules/SetupUI/scim_frontend_setup.cpp:373 #: ../modules/SetupUI/scim_imengine_setup.cpp:453 msgid "Hotkeys" msgstr "हॉट कà¥à¤‚जी" #: ../modules/SetupUI/scim_imengine_setup.cpp:93 msgid "You can enable/disable input methods and set hotkeys for input methods here." msgstr "आप इनपà¥à¤Ÿ विधि सकà¥à¤°à¤¿à¤¯/निषà¥à¤•à¥à¤°à¤¿à¤¯ कर सकते हैं और इनपà¥à¤Ÿ विधि के लिठयहां हॉटकी सेट कर सकते हैं." #: ../modules/SetupUI/scim_imengine_setup.cpp:296 msgid "The installed input method services:" msgstr "अधिषà¥à¤ à¤¾à¤ªà¤¿à¤¤ इनपà¥à¤Ÿ विधि सेवा:" #. Create hotkey and filter button before factory list view, because #. factory_list_selection_changed_callback may access these two buttons. #: ../modules/SetupUI/scim_imengine_setup.cpp:311 msgid "Edit _Hotkeys" msgstr "हॉटकी संपादित करें (_H)" #: ../modules/SetupUI/scim_imengine_setup.cpp:320 msgid "Edit Hotkeys associated with the selected input method." msgstr "चयनित इनपà¥à¤Ÿ विधि के साथ जà¥à¤¡à¤¼à¥‡ हॉटकी को संपादित करें." #: ../modules/SetupUI/scim_imengine_setup.cpp:322 msgid "Select _Filters" msgstr "फिलà¥à¤Ÿà¤° चà¥à¤¨à¥‡à¤‚ (_F)" #: ../modules/SetupUI/scim_imengine_setup.cpp:331 msgid "Select the Filters which will be attached to this input method." msgstr "फिलà¥à¤Ÿà¤° चà¥à¤¨à¥‡à¤‚ जो इनपà¥à¤Ÿ विधि इनपà¥à¤Ÿ विधि से जोड़ी जायेगी." #: ../modules/SetupUI/scim_imengine_setup.cpp:348 msgid "_Expand" msgstr "फैलाà¤à¤‚ (_E)" #: ../modules/SetupUI/scim_imengine_setup.cpp:357 msgid "Expand all language categories." msgstr "सभी भाषा शà¥à¤°à¥‡à¤£à¤¿à¤¯à¥‹à¤‚ को विसà¥à¤¤à¤¾à¤° दें." #: ../modules/SetupUI/scim_imengine_setup.cpp:359 msgid "_Collapse" msgstr "सिकोड़ें (_C)" #: ../modules/SetupUI/scim_imengine_setup.cpp:368 msgid "Collapse all language categories." msgstr "सभी भाषा शà¥à¤°à¥‡à¤£à¤¿à¤¯à¥‹à¤‚ को सिकोड़ें." #: ../modules/SetupUI/scim_imengine_setup.cpp:370 msgid "E_nable All" msgstr "सभी सकà¥à¤°à¤¿à¤¯ करें (_n)" #: ../modules/SetupUI/scim_imengine_setup.cpp:379 msgid "Enable all input methods." msgstr "सभी इनपà¥à¤Ÿ विधि को सकà¥à¤°à¤¿à¤¯ करें." #: ../modules/SetupUI/scim_imengine_setup.cpp:381 msgid "_Disable All" msgstr "सभी निषà¥à¤•à¥à¤°à¤¿à¤¯ करें (_D)" #: ../modules/SetupUI/scim_imengine_setup.cpp:390 msgid "Disable all input methods." msgstr "सभी इनपà¥à¤Ÿ विधि निषà¥à¤•à¥à¤°à¤¿à¤¯ करें." #: ../modules/SetupUI/scim_imengine_setup.cpp:414 #: ../modules/SetupUI/scim_imengine_setup.cpp:541 msgid "Name" msgstr "नाम" #: ../modules/SetupUI/scim_imengine_setup.cpp:432 #: ../modules/SetupUI/scim_imengine_setup.cpp:522 msgid "Enable" msgstr "सकà¥à¤°à¤¿à¤¯" #: ../modules/SetupUI/scim_imengine_setup.cpp:467 msgid "Filters" msgstr "फ़िलà¥à¤Ÿà¤°" #: ../modules/SetupUI/scim_imengine_setup.cpp:560 msgid "Languages" msgstr "भाषाà¤à¤" #: ../modules/SetupUI/scim_imengine_setup.cpp:574 msgid "Description" msgstr "वरà¥à¤£à¤¨" #: ../modules/SetupUI/scim_imengine_setup.cpp:1190 #, c-format msgid "Edit Hotkeys for %s" msgstr "%s के लिठहॉटकी संपादित करें" #: ../modules/SetupUI/scim_imengine_setup.cpp:1417 #, c-format msgid "Select Filters for %s" msgstr "%s के लिठफिलà¥à¤Ÿà¤° चà¥à¤¨à¥‡à¤‚" #: ../modules/SetupUI/scim_imengine_setup.cpp:1450 msgid "Move _Up" msgstr "ऊपर खिसकाà¤à¤ (_U)" #: ../modules/SetupUI/scim_imengine_setup.cpp:1457 msgid "Move _Down" msgstr "नीचे खिसकाà¤à¤ (_D)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:95 msgid "GTK" msgstr "GTK" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:100 msgid "A panel daemon based on GTK+-2.x library." msgstr "GTK+-2.x लाइबà¥à¤°à¥‡à¤°à¥€ पर आधारित पैनल डेमॉन." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:163 msgid "Always" msgstr "हमेशा" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:164 msgid "On demand" msgstr "मांग आधारित" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:165 msgid "Never" msgstr "कभी नहीं" #. Create the ToolBar setup block. #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:211 msgid "ToolBar" msgstr "औजार पटà¥à¤Ÿà¥€" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:229 msgid "_Show:" msgstr "दिखाà¤à¤ (_S):" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:245 msgid "Auto s_nap" msgstr "सà¥à¤µà¤šà¤¾à¤²à¤¿à¤¤ सà¥à¤¨à¥ˆà¤ª (_n)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:251 msgid "Show _input method icon" msgstr "इनपà¥à¤Ÿ विधि पà¥à¤°à¤¤à¥€à¤• दिखाà¤à¤ (_i)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:257 msgid "Show inp_ut method name" msgstr "इनपà¥à¤Ÿ विधि नाम दिखाà¤à¤‚ (_u)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:269 msgid "Hide time_out:" msgstr "मियाद छिपाà¤à¤‚ (_o):" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:282 msgid "Show s_tick icon" msgstr "सà¥à¤Ÿà¤¿à¤• पà¥à¤°à¤¤à¥€à¤• दिखाà¤à¤ (_t)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:288 msgid "Show m_enu icon" msgstr "मेनà¥à¤¯à¥‚ पà¥à¤°à¤¤à¥€à¤• दिखाà¤à¤ (_e)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:294 msgid "Show _help icon" msgstr "मदद पà¥à¤°à¤¤à¥€à¤• दिखाà¤à¤ (_h)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:300 msgid "Show _property label" msgstr "गà¥à¤£ लेबल दिखाà¤à¤‚ (_p)" #. Create the Input Window setup block #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:311 msgid "Input window" msgstr "इनपà¥à¤Ÿ विंडो" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:320 msgid "E_mbedded lookup table" msgstr "अंतःसà¥à¤¥à¤¾à¤ªà¤¿à¤¤ लà¥à¤•अप तालिका (_m)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:324 msgid "_Vertical lookup table" msgstr "लमà¥à¤¬à¤µà¤¤ लà¥à¤•अप तालिका (_V)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:328 msgid "Misc" msgstr "विविध" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:337 msgid "Show tra_y icon" msgstr "टà¥à¤°à¥‡ पà¥à¤°à¤¤à¥€à¤• दिखाà¤à¤ (_y)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:341 msgid "Stick _windows" msgstr "सà¥à¤Ÿà¤¿à¤• विंडोज (_w)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:349 msgid "_Font:" msgstr "फ़ॉनà¥à¤Ÿ (_F):" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:419 msgid "" "If option \"Always\" is selected, the toolbar will always be shown on the " "screen. If option \"On demand\" is selected, it will only be shown when SCIM " "is activated. If option \"Never\" is selected, it will never be shown." msgstr "यदि \"हमेशा\" विकलà¥à¤ª चà¥à¤¨à¤¾ जाता है, औजारपेटी को हमेशा सà¥à¤•à¥à¤°à¥€à¤¨ पर दिखाया जायेगा. यदि \"मांग आधारित\" चà¥à¤¨à¤¾ जाता है, यह सिरà¥à¤« तभी दिखाया जायेगा जब SCIM सकà¥à¤°à¤¿à¤¯ किया जाता है. यदि विकलà¥à¤ª \"कभी हीं\" चà¥à¤¨à¤¾ जाता है, यह कभी नहीं दिखाया जायेगा." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:426 msgid "If this option is checked, the toolbar will be snapped to the screen border." msgstr "यदि विकलà¥à¤ª जांचा जाता है, औजारपेटी सà¥à¤•à¥à¤°à¥€à¤¨ बोरà¥à¤¡à¤° में सà¥à¤¨à¥ˆà¤ª किया जायेगा." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:431 msgid "" "The toolbar will be hidden out after this timeout is elapsed. This option is " "only valid when \"Always show\" is selected. Set to zero to disable this " "behavior." msgstr "मियाद बीतने के बाद औजारपेटी छिपाया जायेगा. यह विकलà¥à¤ª तभी वैध है जब \"हमेशा दिखाà¤à¤\" चà¥à¤¨à¤¾ जाता है. इस आचरण को निषà¥à¤•à¥à¤°à¤¿à¤¯ करने के लिठशूनà¥à¤¯ पर सेट करें." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:438 msgid "" "If this option is checked, the input method icon will be showed on the " "toolbar." msgstr "यदि यह विकलà¥à¤ª जांचा जाता है, इनपà¥à¤Ÿ विधि पà¥à¤°à¤¤à¥€à¤• को औजारपेटी पर दिखाया जायेगा." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:442 msgid "" "If this option is checked, the input method name will be showed on the " "toolbar." msgstr "यदि यह विकलà¥à¤ª जांचा जाता है, इनपà¥à¤Ÿ विधि नाम को औजारपेटी पर दिखाया जायेगा." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:446 msgid "If this option is checked, the stick icon will be showed on the toolbar." msgstr "यदि यह विकलà¥à¤ª जांचा जाता है, सà¥à¤Ÿà¤¿à¤• पà¥à¤°à¤¤à¥€à¤• को औजारपेटी पर दिखाया जायेगा." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:450 msgid "If this option is checked, the menu icon will be showed on the toolbar." msgstr "यदि यह विकलà¥à¤ª जांचा जाता है, मेनà¥à¤¯à¥‚ पà¥à¤°à¤¤à¥€à¤• को औजारपेटी पर दिखाया जायेगा." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:454 msgid "If this option is checked, the help icon will be showed on the toolbar." msgstr "यदि यह विकलà¥à¤ª जांचा जाता है, मदद पà¥à¤°à¤¤à¥€à¤• को औजारपेटी पर दिखाया जायेगा." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:458 msgid "" "If this option is checked, the text label of input method properties will be " "showed on the toolbar." msgstr "यदि यह विकलà¥à¤ª जांचा जाता है, इनपà¥à¤Ÿ विधि गà¥à¤£ का पाठ सà¥à¤¤à¤° को औजारपेटी पर दिखाया जायेगा." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:462 msgid "" "If this option is checked, the lookup table will be embedded into the input " "window." msgstr "यदि यह विकलà¥à¤ª जांचा जाता है, इनपà¥à¤Ÿ विंडो में लà¥à¤•अप सारमी को अंतःसà¥à¤¥à¤¾à¤ªà¤¿à¤¤ किया जायेगा." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:467 msgid "If this option is checked, the lookup table will be displayed vertically." msgstr "यदि यह विकलà¥à¤ª जांचा जाता है, लà¥à¤•अप सारणी को लंबवत रूप से दिखाया जायेगा." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:472 msgid "" "If this option is checked, the tray icon will be showed on the desktop's " "taskbar." msgstr "यदि यह विकलà¥à¤ª जांचा जाता है, टà¥à¤°à¥‡ पà¥à¤°à¤¤à¥€à¤• को डेसà¥à¤•टॉप औजारपेटी पर दिखाया जायेगा." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:476 msgid "" "If this option is checked, the toolbar, input and lookup table windows will " "be sticked to its original position." msgstr "यदि यह विकलà¥à¤ª जांचा जाता है, औजारपेटी, इनपà¥à¤Ÿ और लà¥à¤•अप सारणी को इसकी मौलिक सà¥à¤¥à¤¿à¤¤à¤¿ में सà¥à¤Ÿà¤¿à¤• किया जायेगा." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:482 msgid "The font setting will be used in the input and lookup table windows." msgstr "इनपà¥à¤Ÿ व लà¥à¤•अप सारणी विंडो में फॉनà¥à¤Ÿ सेटिंग को पà¥à¤°à¤¯à¥‹à¤— किया जायेगा." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:801 msgid "Select Interface Font" msgstr "अंतरफलक फ़ॉनà¥à¤Ÿ चà¥à¤¨à¥‡à¤‚" #: ../extras/setup/scim_setup_ui.cpp:47 msgid "SCIM" msgstr "SCIM" #: ../extras/setup/scim_setup_ui.cpp:48 msgid "FrontEnd" msgstr "FrontEnd" #: ../extras/setup/scim_setup_ui.cpp:49 msgid "IMEngine" msgstr "IMEngine" #: ../extras/setup/scim_setup_ui.cpp:50 msgid "Panel" msgstr "पटल" #: ../extras/setup/scim_setup_ui.cpp:51 msgid "Extra" msgstr "अतिरिकà¥à¤¤" #. #. vi:ts=4:nowrap:ai:expandtab #. #: ../extras/setup/scim_setup_ui.cpp:230 #: ../extras/setup/scim-setup.desktop.in.h:1 msgid "SCIM Input Method Setup" msgstr "SCIM इनपà¥à¤Ÿ विधि सेटअप" #: ../extras/setup/scim_setup_ui.cpp:369 msgid "" " Smart Common Input Method platform \n" "\n" "GUI Setup Utility\n" "\n" "\n" "\n" "Copyright 2002-2004, James Su <suzhe@tsinghua.org." "cn>" msgstr "" " सà¥à¤®à¤¾à¤°à¥à¤Ÿ कॉमन इनपà¥à¤Ÿ मेथड पà¥à¤²à¥‡à¤Ÿà¤«à¥‰à¤°à¥à¤® \n" "\n" "GUI सेटअप उपयोगिता\n" "\n" "\n" "\n" "कॉपीराइट 2002-2004, James Su <suzhe@tsinghua.org." "cn>" #: ../extras/setup/scim_setup_ui.cpp:394 #, c-format msgid "The Setup for %s modules." msgstr "%s मॉडà¥à¤¯à¥‚ल के लिठसेटअप." #: ../extras/setup/scim_setup_ui.cpp:456 msgid "Are you sure you want to quit SCIM Setup?" msgstr "कà¥à¤¯à¤¾ आप SCIM सेटअप के लिठनिशà¥à¤šà¤¿à¤¤ है?" #: ../extras/setup/scim_setup_ui.cpp:685 msgid "" "Not all configuration can be reloaded on the fly. Don't forget to restart " "SCIM in order to let all of the new configuration take effect." msgstr "सभी विनà¥à¤¯à¤¾à¤¸ को ततà¥à¤•ाल फिर लोड नहीं किया जा सकता है. SCIM को फिर आरंभ करना सभी नठविनà¥à¤¯à¤¾à¤¸ के पà¥à¤°à¤­à¤¾à¤µà¥€ होने के कà¥à¤°à¤® में न भूलें." #: ../extras/setup/scim_setup_helper.cpp:49 msgid "SCIM Setup" msgstr "SCIM सेटअप" #: ../extras/setup/scim_setup_helper.cpp:51 msgid "Integrated Setup Utility based on GTK Widget library." msgstr "GTK विज़ेट लाइबà¥à¤°à¥‡à¤°à¥€ पर आधारित à¤à¤•ीकृत सेटअप उपयोगिता." #: ../extras/setup/scim-setup.desktop.in.h:2 msgid "Setup utility for Smart Common Input Method platform" msgstr "सà¥à¤®à¤¾à¤°à¥à¤Ÿ कॉमन इनपà¥à¤Ÿ विधि पà¥à¤²à¥‡à¤Ÿà¤«à¥‰à¤°à¥à¤® के लिठसेटअप उपयोगिता" #: ../extras/panel/scim_panel_gtk.cpp:982 msgid "SCIM Help" msgstr "SCIM मदद" #: ../extras/panel/scim_panel_gtk.cpp:999 msgid "Smart Common Input Method" msgstr "सà¥à¤®à¤¾à¤°à¥à¤Ÿ कॉमन इनपà¥à¤Ÿ मेथड" #: ../extras/panel/scim_panel_gtk.cpp:1058 msgid "Stick/unstick the input window and the toolbar." msgstr "इनपà¥à¤Ÿ विंडो व औजारपेची से सà¥à¤Ÿà¤¿à¤•/अनसà¥à¤Ÿà¤¿à¤• करें." #: ../extras/panel/scim_panel_gtk.cpp:1063 msgid "Show a brief help about SCIM and the current input method." msgstr "SCIM व मौजूदा इनपà¥à¤Ÿ विधि के बारे में संकà¥à¤·à¤¿à¤ªà¥à¤¤ मदद दिखाà¤à¤‚." #: ../extras/panel/scim_panel_gtk.cpp:1068 msgid "Show command menu." msgstr "कमांड मेनà¥à¤¯à¥‚ दिखाà¤à¤." #: ../extras/panel/scim_panel_gtk.cpp:2306 msgid "" "\n" "(C) 2002-2005 James Su " msgstr "" "\n" "(C) 2002-2005 James Su " #. Reload Configuration. #: ../extras/panel/scim_panel_gtk.cpp:2385 msgid "Reload Configuration" msgstr "विनà¥à¤¯à¤¾à¤¸ फिर लोड करें" #. Stick #: ../extras/panel/scim_panel_gtk.cpp:2395 msgid "Stick Windows" msgstr "सà¥à¤Ÿà¤¿à¤• विंडोज़" #. Toolbar #: ../extras/panel/scim_panel_gtk.cpp:2404 msgid "Hide Toolbar" msgstr "औज़ार पटà¥à¤Ÿà¥€ छà¥à¤ªà¤¾à¤à¤" #. Help #: ../extras/panel/scim_panel_gtk.cpp:2413 msgid "Help ..." msgstr "मदद ..." #. Clients exit. #: ../extras/panel/scim_panel_gtk.cpp:2431 msgid "Exit" msgstr "बाहर निकलें" #: ../utils/scimstringview.c:196 msgid "Cursor Position" msgstr "संकेतक सà¥à¤¥à¤¿à¤¤à¤¿" #: ../utils/scimstringview.c:197 msgid "The current position of the insertion cursor in chars." msgstr "पà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿà¤¿ संकेतक की संपà¥à¤°à¤¤à¥€à¤• में वरà¥à¤¤à¤®à¤¾à¤¨ सà¥à¤¥à¤¿à¤¤à¤¿" #: ../utils/scimstringview.c:206 msgid "Maximum length" msgstr "अधिकतम लमà¥à¤¬à¤¾à¤ˆ" #: ../utils/scimstringview.c:207 msgid "Maximum number of characters for this string view. Zero if no maximum." msgstr "इस सà¥à¤Ÿà¥à¤°à¤¿à¤‚ग दृशà¥à¤¯ के लिठसंपà¥à¤°à¤¤à¥€à¤• की अधिकतम संखà¥à¤¯à¤¾. शूनà¥à¤¯ यदि कोई अधिकतम नहीं है." #: ../utils/scimstringview.c:216 msgid "Maximum width" msgstr "अधिकतम चौड़ाई" #: ../utils/scimstringview.c:217 msgid "Maximum width of this string view." msgstr "इस सà¥à¤Ÿà¥à¤°à¤¿à¤‚ग दृषà¥à¤¯ की अधिकतम चौड़ाई." #: ../utils/scimstringview.c:226 msgid "Has Frame" msgstr "फà¥à¤°à¥‡à¤® है" #: ../utils/scimstringview.c:227 msgid "FALSE removes outside bevel from string view." msgstr "सà¥à¤Ÿà¥à¤°à¤¿à¤‚ग दृशà¥à¤¯ से गलत bevel के बाहर हटाता है." #: ../utils/scimstringview.c:234 msgid "Draw cursor" msgstr "करà¥à¤¸à¤° खीचें" #: ../utils/scimstringview.c:235 msgid "TRUE draw blinking cursor." msgstr "सही टिमटिमाता करà¥à¤¸à¤° खींचता है." #: ../utils/scimstringview.c:242 msgid "Auto move cursor" msgstr "सà¥à¤µà¤šà¤¾à¤²à¤¿à¤¤ गतियà¥à¤•à¥à¤¤ करà¥à¤¸à¤°" #: ../utils/scimstringview.c:243 msgid "TRUE auto move cursor position when mouse clicking." msgstr "जब माउस कà¥à¤²à¤¿à¤• करता है तो सही करà¥à¤¸à¤° सà¥à¤¥à¤¿à¤¤à¤¿ को सà¥à¤µà¤¤à¤ƒ चलाता है." #: ../utils/scimstringview.c:250 msgid "Forward button press event" msgstr "अगà¥à¤°à¤¸à¤¾à¤°à¤¿à¤¤ बटन पà¥à¤°à¥‡à¤¸ घटना" #: ../utils/scimstringview.c:251 msgid "TRUE forward button press event to user program." msgstr "उपयोकà¥à¤¤à¤¾ पà¥à¤°à¥‹à¤—à¥à¤°à¤¾à¤® में सही अगà¥à¤°à¤¸à¤¾à¤°à¤¿à¤¤ बटन पà¥à¤°à¥‡à¤¸ घटना." #: ../utils/scimstringview.c:258 msgid "Auto resize the widget to fit the string" msgstr "सà¥à¤Ÿà¥à¤°à¤¿à¤‚ग में सटीक बैठने के लिठविजेट को सà¥à¤µà¤¤à¤ƒ फिर आकार दें" #: ../utils/scimstringview.c:259 msgid "TRUE Auto resize on." msgstr "TRUE सà¥à¤µà¤¤à¤ƒ फिर आकार देना चालू." #: ../utils/scimstringview.c:266 msgid "Width in chars" msgstr "संपà¥à¤°à¤¤à¥€à¤• में चौड़ाई" #: ../utils/scimstringview.c:267 msgid "Number of characters to leave space for in the string view." msgstr "सà¥à¤Ÿà¥à¤°à¤¿à¤‚ग दृशà¥à¤¯ के लिठसà¥à¤¥à¤¾à¤¨ छोड़ने के लिठसंपà¥à¤°à¤¤à¥€à¤• की संखà¥à¤¯à¤¾." #: ../utils/scimstringview.c:276 msgid "Scroll offset" msgstr "सà¥à¤•à¥à¤°à¥‹à¤² आफसेट" #: ../utils/scimstringview.c:277 msgid "Number of pixels of the string view scrolled off the screen to the left" msgstr "बाà¤à¤ सà¥à¤•à¥à¤°à¥€à¤¨ के सà¥à¤•à¥à¤°à¥‰à¤² दृशà¥à¤¯ की पिकà¥à¤¸à¥‡à¤² की संखà¥à¤¯à¤¾" #: ../utils/scimstringview.c:286 msgid "Text" msgstr "पाठ" #: ../utils/scimstringview.c:287 msgid "The contents of the string view" msgstr "सà¥à¤Ÿà¥à¤°à¤¿à¤‚ग दृशà¥à¤¯ की सामगà¥à¤°à¥€" #: ../utils/scimkeyselection.cpp:155 msgid "Selected _Keys:" msgstr "चयनित कà¥à¤‚जी (_K):" #: ../utils/scimkeyselection.cpp:200 msgid "Key Code:" msgstr "कà¥à¤‚जी कोड:" #: ../utils/scimkeyselection.cpp:218 msgid "..." msgstr "..." #: ../utils/scimkeyselection.cpp:223 msgid "Modifiers:" msgstr "रूपांतरक:" #: ../utils/scimkeyselection.cpp:236 msgid "_Ctrl" msgstr "_Ctrl" #: ../utils/scimkeyselection.cpp:240 msgid "A_lt" msgstr "A_lt" #: ../utils/scimkeyselection.cpp:244 msgid "_Shift" msgstr "_Shift" #: ../utils/scimkeyselection.cpp:248 msgid "_Release" msgstr "जारी करें (_R)" #: ../utils/scimkeyselection.cpp:258 msgid "_Meta" msgstr "मेटा (_M)" #: ../utils/scimkeyselection.cpp:262 msgid "S_uper" msgstr "सà¥à¤ªà¤° (_u)" #: ../utils/scimkeyselection.cpp:266 msgid "_Hyper" msgstr "हाइपर (_H)" #: ../utils/scimkeyselection.cpp:331 msgid "Please enter a Key Code first." msgstr "कृपया पहले कà¥à¤‚जी कोड दाखिल करें." #: ../utils/scimkeyselection.cpp:385 msgid "" "Press a key (or a key combination).\n" "This dialog will be closed when the key is released." msgstr "" "कà¥à¤‚जी दबाà¤à¤‚ (या कà¥à¤‚जी यà¥à¤—à¥à¤®).\n" "यह संवाद बंद हो जायेगा जब कà¥à¤‚जी मà¥à¤•à¥à¤¤ किया जाता है." #: ../utils/scimkeyselection.cpp:388 msgid "Grabbing a key." msgstr "कà¥à¤‚जी पकड़ रहा है." #: ../utils/scimkeyselection.cpp:678 msgid "Key Selection" msgstr "कà¥à¤‚जी चà¥à¤¨à¤¾à¤µ" #: ../utils/scimtrayicon.c:108 msgid "Orientation" msgstr "दिशा" #: ../utils/scimtrayicon.c:109 msgid "The orientation of the tray." msgstr "टà¥à¤°à¥ˆ का अभिमà¥à¤–न." scim-1.4.14/po/it.po000066400000000000000000001643261177210725600141520ustar00rootroot00000000000000# translation of it.po to Italian # This file is distributed under the same license as the PACKAGE package. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. # Federico Zenith , 2004, 2005. # Francesco Valente , 2008. msgid "" msgstr "" "Project-Id-Version: it\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-07-20 09:50+0800\n" "PO-Revision-Date: 2008-03-26 10:50+1000\n" "Last-Translator: Francesco Valente \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: ../src/scim_compose_key.cpp:126 msgid "English/European" msgstr "Inglese/Europeo" #. Append an entry for forward mode. #: ../src/scim_imengine.cpp:638 ../src/scim_utility.cpp:693 #: ../modules/FrontEnd/scim_x11_frontend.cpp:1897 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1281 #: ../extras/panel/scim_panel_gtk.cpp:2814 msgid "English/Keyboard" msgstr "Inglese/Tastiera" #: ../src/scim_utility.cpp:694 msgid "Amharic" msgstr "Amarico" #: ../src/scim_utility.cpp:695 msgid "Arabic" msgstr "Arabo" #: ../src/scim_utility.cpp:696 msgid "Arabic (Egypt)" msgstr "Arabo (Egitto)" #: ../src/scim_utility.cpp:697 msgid "Arabic (Lebanon)" msgstr "Arabo (Libano)" #: ../src/scim_utility.cpp:698 msgid "Assamese" msgstr "Assamese" #: ../src/scim_utility.cpp:699 msgid "Azerbaijani" msgstr "Azerbaigiano" #: ../src/scim_utility.cpp:700 msgid "Belarusian" msgstr "Bielorusso" #: ../src/scim_utility.cpp:701 msgid "Bulgarian" msgstr "Bulgaro" #: ../src/scim_utility.cpp:702 ../src/scim_utility.cpp:703 msgid "Bengali" msgstr "Bengalese" #: ../src/scim_utility.cpp:704 msgid "Bengali (India)" msgstr "Bengalese (India)" #: ../src/scim_utility.cpp:705 msgid "Tibetan" msgstr "Tibetano" #: ../src/scim_utility.cpp:706 msgid "Bosnian" msgstr "Bosniaco" #: ../src/scim_utility.cpp:707 msgid "Catalan" msgstr "Catalano" #: ../src/scim_utility.cpp:708 ../src/scim_keyboard_layout_data.h:4595 msgid "Czech" msgstr "Ceco" #: ../src/scim_utility.cpp:709 msgid "Welsh" msgstr "Gallese" #: ../src/scim_utility.cpp:710 ../src/scim_keyboard_layout_data.h:4597 msgid "Danish" msgstr "Danese" #: ../src/scim_utility.cpp:711 ../src/scim_keyboard_layout_data.h:4605 msgid "German" msgstr "Tedesco" #: ../src/scim_utility.cpp:712 msgid "Divehi" msgstr "Divehi" #: ../src/scim_utility.cpp:713 ../src/scim_keyboard_layout_data.h:4608 msgid "Greek" msgstr "Greco" #: ../src/scim_utility.cpp:714 msgid "English" msgstr "Inglese" #: ../src/scim_utility.cpp:715 msgid "English (Australian)" msgstr "Inglese (australiano)" #: ../src/scim_utility.cpp:716 msgid "English (Canadian)" msgstr "Inglese (canadese)" #: ../src/scim_utility.cpp:717 msgid "English (British)" msgstr "Inglese (britannico)" #: ../src/scim_utility.cpp:718 msgid "English (Ireland)" msgstr "Inglese (Irlanda)" #: ../src/scim_utility.cpp:719 msgid "English (American)" msgstr "Inglese (americano)" #: ../src/scim_utility.cpp:720 ../src/scim_utility.cpp:721 #: ../src/scim_keyboard_layout_data.h:4621 msgid "Spanish" msgstr "Spagnolo" #: ../src/scim_utility.cpp:722 msgid "Spanish (Mexico)" msgstr "Spagnolo (Messico)" #: ../src/scim_utility.cpp:723 ../src/scim_keyboard_layout_data.h:4600 msgid "Estonian" msgstr "Estone" #: ../src/scim_utility.cpp:724 msgid "Basque" msgstr "Basco" #: ../src/scim_utility.cpp:725 msgid "Persian" msgstr "Persiano" #: ../src/scim_utility.cpp:726 ../src/scim_keyboard_layout_data.h:4601 msgid "Finnish" msgstr "Finlandese" #: ../src/scim_utility.cpp:727 ../src/scim_keyboard_layout_data.h:4602 msgid "French" msgstr "Francese" #: ../src/scim_utility.cpp:728 msgid "Irish" msgstr "Irlandese" #: ../src/scim_utility.cpp:729 msgid "Galician" msgstr "Galiziano" #: ../src/scim_utility.cpp:730 msgid "Gujarati" msgstr "Gujarati" #: ../src/scim_utility.cpp:731 ../src/scim_utility.cpp:740 msgid "Hebrew" msgstr "Ebraico" #: ../src/scim_utility.cpp:732 msgid "Hindi" msgstr "Hindi" #: ../src/scim_utility.cpp:733 ../src/scim_keyboard_layout_data.h:4594 msgid "Croatian" msgstr "Croato" #: ../src/scim_utility.cpp:734 ../src/scim_keyboard_layout_data.h:4609 msgid "Hungarian" msgstr "Ungherese" #: ../src/scim_utility.cpp:735 msgid "Armenian" msgstr "Armeno" #: ../src/scim_utility.cpp:736 msgid "Interlingua" msgstr "Interlingua" #: ../src/scim_utility.cpp:737 msgid "Indonesian" msgstr "Indonesiano" #: ../src/scim_utility.cpp:738 ../src/scim_keyboard_layout_data.h:4627 msgid "Icelandic" msgstr "Islandese" #: ../src/scim_utility.cpp:739 ../src/scim_keyboard_layout_data.h:4610 msgid "Italian" msgstr "Italiano" #: ../src/scim_utility.cpp:741 ../src/scim_keyboard_layout_data.h:4611 msgid "Japanese" msgstr "Giapponese" #: ../src/scim_utility.cpp:742 msgid "Georgian" msgstr "Georgiano" #: ../src/scim_utility.cpp:743 msgid "Kazakh" msgstr "Kazako" #: ../src/scim_utility.cpp:744 msgid "Cambodian" msgstr "Cambogiano" #: ../src/scim_utility.cpp:745 msgid "Kannada" msgstr "Kannada" #: ../src/scim_utility.cpp:746 msgid "Korean" msgstr "Coreano" #: ../src/scim_utility.cpp:747 msgid "Laothian" msgstr "Laotiano" #: ../src/scim_utility.cpp:748 ../src/scim_keyboard_layout_data.h:4628 msgid "Lithuanian" msgstr "Lituano" #: ../src/scim_utility.cpp:749 msgid "Latvian" msgstr "Lettone" #: ../src/scim_utility.cpp:750 msgid "Macedonian" msgstr "Macedone" #: ../src/scim_utility.cpp:751 msgid "Malayalam" msgstr "Malayalam" #: ../src/scim_utility.cpp:752 msgid "Mongolian" msgstr "Mongolo" #: ../src/scim_utility.cpp:753 msgid "Marathi" msgstr "Marathi" #: ../src/scim_utility.cpp:754 msgid "Malay" msgstr "Malese" #: ../src/scim_utility.cpp:755 msgid "Burmese" msgstr "Burmese" #: ../src/scim_utility.cpp:756 msgid "Nepali" msgstr "Nepalese" #: ../src/scim_utility.cpp:757 ../src/scim_keyboard_layout_data.h:4598 msgid "Dutch" msgstr "Olandese" #: ../src/scim_utility.cpp:758 msgid "Norwegian (nynorsk)" msgstr "Norvegese (nynorsk)" #: ../src/scim_utility.cpp:759 msgid "Norwegian (bokmal)" msgstr "Norvegese (bokmÃ¥l)" #: ../src/scim_utility.cpp:760 msgid "Oriya" msgstr "Oriya" #: ../src/scim_utility.cpp:761 msgid "Punjabi" msgstr "Punjabi" #: ../src/scim_utility.cpp:762 ../src/scim_keyboard_layout_data.h:4613 msgid "Polish" msgstr "Polacco" #: ../src/scim_utility.cpp:763 ../src/scim_utility.cpp:765 #: ../src/scim_keyboard_layout_data.h:4614 msgid "Portuguese" msgstr "Portoghese" #: ../src/scim_utility.cpp:764 ../src/scim_keyboard_layout_data.h:4615 msgid "Portuguese (Brazil)" msgstr "Portoghese (Brasile)" #: ../src/scim_utility.cpp:766 msgid "Romanian" msgstr "Romeno" #: ../src/scim_utility.cpp:767 ../src/scim_keyboard_layout_data.h:4617 msgid "Russian" msgstr "Russo" #: ../src/scim_utility.cpp:768 msgid "Sinhala" msgstr "Sinhala" #: ../src/scim_utility.cpp:769 ../src/scim_keyboard_layout_data.h:4618 msgid "Slovak" msgstr "Slovacco" #: ../src/scim_utility.cpp:770 ../src/scim_keyboard_layout_data.h:4620 msgid "Slovenian" msgstr "Sloveno" #: ../src/scim_utility.cpp:771 msgid "Albanian" msgstr "Albanese" #: ../src/scim_utility.cpp:772 ../src/scim_utility.cpp:773 #: ../src/scim_utility.cpp:774 msgid "Serbian" msgstr "Serbo" #: ../src/scim_utility.cpp:775 ../src/scim_utility.cpp:777 #: ../src/scim_keyboard_layout_data.h:4624 msgid "Swedish" msgstr "Svedese" #: ../src/scim_utility.cpp:776 msgid "Swedish (Finland)" msgstr "Svedese (Finlandia)" #: ../src/scim_utility.cpp:778 msgid "Tamil" msgstr "Tamil" #: ../src/scim_utility.cpp:779 msgid "Telugu" msgstr "Telugu" #: ../src/scim_utility.cpp:780 msgid "Thai" msgstr "Tailandese" #: ../src/scim_utility.cpp:781 ../src/scim_keyboard_layout_data.h:4625 msgid "Turkish" msgstr "Turco" #: ../src/scim_utility.cpp:782 msgid "Uighur" msgstr "Uighur" #: ../src/scim_utility.cpp:783 ../src/scim_keyboard_layout_data.h:4629 msgid "Ukrainian" msgstr "Ucraino" #: ../src/scim_utility.cpp:784 msgid "Urdu" msgstr "Urdu" #: ../src/scim_utility.cpp:785 msgid "Uzbek" msgstr "Uzbeko" #: ../src/scim_utility.cpp:786 msgid "Vietnamese" msgstr "Vietnamita" #: ../src/scim_utility.cpp:787 msgid "Walloon" msgstr "Vallone" #: ../src/scim_utility.cpp:788 ../src/scim_utility.cpp:789 msgid "Yiddish" msgstr "Yiddish" #: ../src/scim_utility.cpp:790 msgid "Chinese" msgstr "Cinese" #: ../src/scim_utility.cpp:791 ../src/scim_utility.cpp:793 msgid "Chinese (simplified)" msgstr "Cinese (semplificato)" #: ../src/scim_utility.cpp:792 ../src/scim_utility.cpp:794 msgid "Chinese (traditional)" msgstr "Cinese (tradizionale)" #: ../src/scim_utility.cpp:876 msgid "Other" msgstr "Altro" #: ../src/scim_keyboard_layout_data.h:4591 #: ../modules/IMEngine/scim_socket_imengine.cpp:386 #: ../modules/IMEngine/scim_socket_imengine.cpp:416 #: ../modules/IMEngine/scim_socket_imengine.cpp:501 #: ../modules/IMEngine/scim_socket_imengine.cpp:531 #: ../modules/IMEngine/scim_socket_imengine.cpp:561 msgid "Unknown" msgstr "Sconosciuto" #: ../src/scim_keyboard_layout_data.h:4592 msgid "English (US)" msgstr "Inglese (USA)" #: ../src/scim_keyboard_layout_data.h:4593 msgid "Belgian" msgstr "Belga" #: ../src/scim_keyboard_layout_data.h:4596 msgid "Czech (qwerty)" msgstr "Ceco (qwerty)" #: ../src/scim_keyboard_layout_data.h:4599 msgid "Dvorak" msgstr "Dvorak" #: ../src/scim_keyboard_layout_data.h:4603 msgid "French (Canadian)" msgstr "Francese (canadese)" #: ../src/scim_keyboard_layout_data.h:4604 msgid "French (Switzerland)" msgstr "Francese (Svizzera)" #: ../src/scim_keyboard_layout_data.h:4606 msgid "German (with deadkeys)" msgstr "Tedesco (con tasti morti)" #: ../src/scim_keyboard_layout_data.h:4607 msgid "German (Swiss)" msgstr "Tedesco (svizzero)" #: ../src/scim_keyboard_layout_data.h:4612 msgid "Norwegian" msgstr "Norvegese" #: ../src/scim_keyboard_layout_data.h:4616 msgid "Portuguese (Brazil US accents)" msgstr "Portoghese (Brasile con accenti US)" #: ../src/scim_keyboard_layout_data.h:4619 msgid "Slovak (qwerty)" msgstr "Slovacco (qwerty)" #: ../src/scim_keyboard_layout_data.h:4622 msgid "Spanish (CP 850)" msgstr "Spagnolo (CP 850)" #: ../src/scim_keyboard_layout_data.h:4623 msgid "Spanish (Latin America)" msgstr "Spagnolo (America latina)" #: ../src/scim_keyboard_layout_data.h:4626 msgid "English (UK)" msgstr "Inglese (GB)" #: ../modules/Filter/scim_sctc_filter.cpp:57 msgid "Simplified-Traditional Chinese Conversion" msgstr "Conversione tra cinese semplificato e tradizionale" #: ../modules/Filter/scim_sctc_filter.cpp:60 msgid "Convert between Simplified Chinese and Traditional Chinese" msgstr "Converti tra cinese semplificato e cinese tradizionale" #: ../modules/Filter/scim_sctc_filter.cpp:71 msgid "SC-TC" msgstr "CS-CT" #: ../modules/Filter/scim_sctc_filter.cpp:73 #: ../modules/Filter/scim_sctc_filter.cpp:78 msgid "Simplified-Traditional Chinese conversion" msgstr "Conversione tra cinese semplificato e tradizionale" #: ../modules/Filter/scim_sctc_filter.cpp:76 msgid "No Conversion" msgstr "Senza conversione" #: ../modules/Filter/scim_sctc_filter.cpp:81 msgid "Simplified to Traditional" msgstr "Da semplificato a tradizionale" #: ../modules/Filter/scim_sctc_filter.cpp:83 msgid "Convert Simplified Chinese to Traditional Chinese" msgstr "Converti cinese semplificato in cinese tradizionale" #: ../modules/Filter/scim_sctc_filter.cpp:86 msgid "Traditional to Simplified" msgstr "Da tradizionale a semplificato" #: ../modules/Filter/scim_sctc_filter.cpp:88 msgid "Convert Traditional Chinese to Simplified Chinese" msgstr "Converti cinese tradizionale in cinese semplificato" #: ../modules/Filter/scim_sctc_filter.cpp:300 msgid "James Su " msgstr "James Su " #: ../modules/Filter/scim_sctc_filter.cpp:425 #: ../modules/Filter/scim_sctc_filter.cpp:555 #: ../modules/Filter/scim_sctc_filter.cpp:571 msgid "SC->TC" msgstr "CS->CT" #: ../modules/Filter/scim_sctc_filter.cpp:431 #: ../modules/Filter/scim_sctc_filter.cpp:559 #: ../modules/Filter/scim_sctc_filter.cpp:575 msgid "TC->SC" msgstr "CT->CS" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1845 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1231 #: ../extras/panel/scim_panel_gtk.cpp:2304 msgid "Smart Common Input Method platform " msgstr "Piattaforma del metodo intelligente di inserimento comune" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1847 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1233 msgid "" "\n" "(C) 2002-2005 James Su \n" "\n" msgstr "" "\n" "(C) 2002-2005 James Su \n" "\n" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1851 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1238 msgid "" ":\n" "\n" msgstr "" ":\n" "\n" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1854 #: ../modules/FrontEnd/scim_x11_frontend.cpp:1857 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1241 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1244 msgid "" "\n" "\n" msgstr "" "\n" "\n" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:120 msgid "RAW CODE" msgstr "CODICE GREZZO" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:127 msgid "(C) 2002-2006 James Su " msgstr "(C) 2002-2006 James Su " #: ../modules/IMEngine/scim_rawcode_imengine.cpp:140 msgid "" "Hot Keys:\n" "\n" " Control+u:\n" " switch between Multibyte encoding and Unicode.\n" "\n" " Esc:\n" " reset the input method.\n" msgstr "" "Tasti rapidi:\n" "\n" " Control+u:\n" " passa tra la codifica multibyte e Unicode.\n" "\n" " Esc:\n" " reimposta il metodo di inserimento.\n" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:407 #: ../modules/IMEngine/scim_rawcode_imengine.cpp:423 msgid "The status of the current input method. Click to change it." msgstr "Lo stato del metodo di inserimento attuale. Fai clic per cambiarlo." #: ../modules/IMEngine/scim_rawcode_imengine.cpp:409 msgid "Unicode" msgstr "Unicode" #: ../modules/SetupUI/scim_frontend_setup.cpp:82 #: ../modules/SetupUI/scim_imengine_setup.cpp:88 msgid "Global Setup" msgstr "Configurazione globale" #: ../modules/SetupUI/scim_frontend_setup.cpp:87 msgid "" "Setup the global options used by All FrontEnd modules, including X11 " "FrontEnd, GTK IMModule, QT IMModule etc." msgstr "" "Configura le opzioni globali usate da tutti i moduli di interfaccia, inclusi " "l'interfaccia X11, i moduli di inserimento di GTK e QT, ecc." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:143 msgid "_Trigger:" msgstr "A_ttivatore:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:145 msgid "Select the trigger keys" msgstr "Seleziona i tasti di attivazione" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:147 msgid "" "The key events to turn on/off SCIM input method. Click on the button on the " "right to edit it." msgstr "" "Le combinazioni di tasti per accendere o spegnere il metodo di inserimento. " "Fai clic sul pulsante a destra per modificarle." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:160 msgid "Turn _On:" msgstr "_Accendi:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:162 msgid "Select the Turn On keys" msgstr "Seleziona i tasti di accensione" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:164 msgid "" "The key events to turn on SCIM input method. Click on the button on the " "right to edit it." msgstr "" "Le combinazioni di tasti per far partire il metodo di inserimento. Fai clic " "sul pulsante a destra per modificarle." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:177 msgid "Turn O_ff:" msgstr "_Spegni:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:179 msgid "Select the Turn Off keys" msgstr "Seleziona i tasti di spegnimento" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:181 msgid "" "The key events to turn off SCIM input method. Click on the button on the " "right to edit it." msgstr "" "Le combinazioni di tasti per far fermare il metodo di inserimento. Fai clic " "sul pulsante a destra per modificarle." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:194 msgid "_Next input method:" msgstr "Metodo di i_nserimento successivo:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:196 msgid "Select the next input method keys" msgstr "Seleziona i tasti del metodo di inserimento successivo" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:198 msgid "" "The key events to switch to the next input method. Click on the button on " "the right to edit it." msgstr "" "Le combinazioni di tasti per passare al metodo di inserimento successivo. " "Fai clic sul pulsante a destra per modificarle." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:213 msgid "_Previous input method:" msgstr "Metodo di inserimento _precedente:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:215 msgid "Select the previous input method keys" msgstr "Seleziona i tasti del metodo di inserimento precedente" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:217 msgid "" "The key events to switch to the previous input method. Click on the button " "on the right to edit it." msgstr "" "Le combinazioni di tasti per passare al metodo di inserimento precedente. " "Fai clic sul pulsante a destra per modificarle." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:232 msgid "Show input method _menu:" msgstr "_Mostra il menu del metodo di inserimento:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:234 msgid "Select the show input method menu keys" msgstr "Seleziona i tasti del menu del metodo di inserimento" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:236 msgid "" "The key events to show the input method menu. Click on the button on the " "right to edit it." msgstr "" "Le combinazioni di tasti per mostrare il menu del metodo di inserimento. Fai " "clic sul pulsante sulla destra per modificarle." #: ../modules/SetupUI/scim_frontend_setup.cpp:306 msgid "Options" msgstr "Opzioni" #: ../modules/SetupUI/scim_frontend_setup.cpp:321 msgid "_Keyboard Layout:" msgstr "Schema della _tastiera:" #: ../modules/SetupUI/scim_frontend_setup.cpp:342 msgid "" "You should choose your currently used keyboard layout here so that input " "methods, who care about keyboard layout, could work correctly." msgstr "" "Dovresti scegliere qui la tastiera che usi adesso, in modo che i metodi di " "inserimento, che ne dipendono, funzionino correttamente." #. On The Spot. #: ../modules/SetupUI/scim_frontend_setup.cpp:346 msgid "_Embed Preedit String into client window" msgstr "Incorpora la pr_emodifica delle stringhe nella finestra del client" #: ../modules/SetupUI/scim_frontend_setup.cpp:351 msgid "" "If this option is checked, the preedit string will be displayed directly in " "the client input window, rather than in a independent float window." msgstr "" "Se questa opzione è segnata, la stringa di premodifica sarà visualizzata " "direttamente nella finestra di inserimento del client, piuttosto che in una " "finestra libera." #. Shared input method. #: ../modules/SetupUI/scim_frontend_setup.cpp:360 msgid "_Share the same input method among all applications" msgstr "Condividi lo _stesso metodo di inserimento in tutte le applicazioni" #: ../modules/SetupUI/scim_frontend_setup.cpp:365 msgid "" "If this option is checked, then only one input method could be used by all " "applications at the same time.Otherwise different input method could be used " "by each application." msgstr "" "Se questa opzione è segnata, si potrà usare un solo metodo di inserimento in " "tutte le applicazioni allo stesso tempo. Altrimenti, ogni applicazione potrà " "usare un metodo di inserimento diverso." #: ../modules/SetupUI/scim_frontend_setup.cpp:373 #: ../modules/SetupUI/scim_imengine_setup.cpp:453 msgid "Hotkeys" msgstr "Tasti rapidi" #: ../modules/SetupUI/scim_imengine_setup.cpp:93 msgid "You can enable/disable input methods and set hotkeys for input methods here." msgstr "" "Qui puoi abilitare o disabilitare i metodi di inserimento e impostare i loro " "tasti rapidi." #: ../modules/SetupUI/scim_imengine_setup.cpp:296 msgid "The installed input method services:" msgstr "I servizi di metodo di inserimento installati:" #. Create hotkey and filter button before factory list view, because #. factory_list_selection_changed_callback may access these two buttons. #: ../modules/SetupUI/scim_imengine_setup.cpp:311 msgid "Edit _Hotkeys" msgstr "Modi_fica tasti rapidi" #: ../modules/SetupUI/scim_imengine_setup.cpp:320 msgid "Edit Hotkeys associated with the selected input method." msgstr "Modifica i tasti rapidi associati con il metodo di inserimento selezionato." #: ../modules/SetupUI/scim_imengine_setup.cpp:322 msgid "Select _Filters" msgstr "Seleziona _filtri" #: ../modules/SetupUI/scim_imengine_setup.cpp:331 msgid "Select the Filters which will be attached to this input method." msgstr "Seleziona i filtri che saranno allegati a questo metodo di inserimento." #: ../modules/SetupUI/scim_imengine_setup.cpp:348 msgid "_Expand" msgstr "_Espandi" #: ../modules/SetupUI/scim_imengine_setup.cpp:357 msgid "Expand all language categories." msgstr "Espandi tutte le categorie delle lingue." #: ../modules/SetupUI/scim_imengine_setup.cpp:359 msgid "_Collapse" msgstr "_Contrai" #: ../modules/SetupUI/scim_imengine_setup.cpp:368 msgid "Collapse all language categories." msgstr "Contrai tutte le categorie delle lingue." #: ../modules/SetupUI/scim_imengine_setup.cpp:370 msgid "E_nable All" msgstr "A_bilita tutti" #: ../modules/SetupUI/scim_imengine_setup.cpp:379 msgid "Enable all input methods." msgstr "Abilita tutti i metodi di inserimento." #: ../modules/SetupUI/scim_imengine_setup.cpp:381 msgid "_Disable All" msgstr "_Disabilita tutti" #: ../modules/SetupUI/scim_imengine_setup.cpp:390 msgid "Disable all input methods." msgstr "Disabilita tutti i metodi di inserimento." #: ../modules/SetupUI/scim_imengine_setup.cpp:414 #: ../modules/SetupUI/scim_imengine_setup.cpp:541 msgid "Name" msgstr "Nome" #: ../modules/SetupUI/scim_imengine_setup.cpp:432 #: ../modules/SetupUI/scim_imengine_setup.cpp:522 msgid "Enable" msgstr "Abilita" #: ../modules/SetupUI/scim_imengine_setup.cpp:467 msgid "Filters" msgstr "Filtri" #: ../modules/SetupUI/scim_imengine_setup.cpp:560 msgid "Languages" msgstr "Lingue" #: ../modules/SetupUI/scim_imengine_setup.cpp:574 msgid "Description" msgstr "Descrizione" #: ../modules/SetupUI/scim_imengine_setup.cpp:1190 #, c-format msgid "Edit Hotkeys for %s" msgstr "Modifica i tasti rapidi per: %s" #: ../modules/SetupUI/scim_imengine_setup.cpp:1417 #, c-format msgid "Select Filters for %s" msgstr "Seleziona i filtri per: %s" #: ../modules/SetupUI/scim_imengine_setup.cpp:1450 msgid "Move _Up" msgstr "Sposta in s_u" #: ../modules/SetupUI/scim_imengine_setup.cpp:1457 msgid "Move _Down" msgstr "Sposta in _giù" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:95 msgid "GTK" msgstr "GTK" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:100 msgid "A panel daemon based on GTK+-2.x library." msgstr "Un demone di pannello basato sulle librerie GTK+-2.x." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:163 msgid "Always" msgstr "Sempre" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:164 msgid "On demand" msgstr "A richiesta" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:165 msgid "Never" msgstr "Mai" #. Create the ToolBar setup block. #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:211 msgid "ToolBar" msgstr "Barra degli strumenti" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:229 msgid "_Show:" msgstr "Mo_stra:" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:245 msgid "Auto s_nap" msgstr "Agga_ncia automaticamente" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:251 msgid "Show _input method icon" msgstr "Mostra icona del metodo di _inserimento" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:257 msgid "Show inp_ut method name" msgstr "Mostra nome del metodo di ins_erimento" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:269 msgid "Hide time_out:" msgstr "Nasc_ondi scadenza:" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:282 msgid "Show s_tick icon" msgstr "Mostra icona dell'agganciamen_to" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:288 msgid "Show m_enu icon" msgstr "Mostra icona del m_enu" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:294 msgid "Show _help icon" msgstr "Mostra icona dell'ai_uto" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:300 msgid "Show _property label" msgstr "Mostra etichetta delle _proprietà" #. Create the Input Window setup block #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:311 msgid "Input window" msgstr "Finestra di inserimento" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:320 msgid "E_mbedded lookup table" msgstr "Tabella di riferi_mento incorporata" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:324 msgid "_Vertical lookup table" msgstr "Tabella di riferimento _verticale" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:328 msgid "Misc" msgstr "Varie" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:337 msgid "Show tra_y icon" msgstr "Mostra icona del vasso_io" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:341 msgid "Stick _windows" msgstr "Aggancia _finestre" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:349 msgid "_Font:" msgstr "_Carattere:" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:419 msgid "" "If option \"Always\" is selected, the toolbar will always be shown on the " "screen. If option \"On demand\" is selected, it will only be shown when SCIM " "is activated. If option \"Never\" is selected, it will never be shown." msgstr "" "Se l'opzione \"Sempre\" è segnata, la barra degli strumenti sarà sempre " "visualizzata sullo schermo. Se è segnata l'opzione \"A richiesta\", sarà " "mostrata solo quando viene attivato SCIM. Se è segnata l'opzione \"Mai\", " "non sarà mai mostrata." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:426 msgid "If this option is checked, the toolbar will be snapped to the screen border." msgstr "" "Se questa opzione è segnata, la barra degli strumenti sarà agganciata al " "bordo dello schermo." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:431 msgid "" "The toolbar will be hidden out after this timeout is elapsed. This option is " "only valid when \"Always show\" is selected. Set to zero to disable this " "behavior." msgstr "" "La barra degli strumenti sarà nascosta dopo che sarà passato questo tempo. " "Questa opzione è valida solo quando \"Visualizza sempre\" è segnato. Imposta " "a zero per disabilitare questo comportamento." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:438 msgid "" "If this option is checked, the input method icon will be showed on the " "toolbar." msgstr "" "Se questa opzione è segnata, l'icona del metodo di inserimento sarà mostrata " "nella barra degli strumenti." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:442 msgid "" "If this option is checked, the input method name will be showed on the " "toolbar." msgstr "" "Se questa opzione è segnata, il nome del metodo di inserimento sarà mostrato " "nella barra degli strumenti." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:446 msgid "If this option is checked, the stick icon will be showed on the toolbar." msgstr "" "Se questa opzione è segnata, l'icona dell'agganciamento sarà mostrata sulla " "barra degli strumenti." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:450 msgid "If this option is checked, the menu icon will be showed on the toolbar." msgstr "" "Se questa opzione è segnata, l'icona del menu sarà mostrata nella barra " "degli strumenti." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:454 msgid "If this option is checked, the help icon will be showed on the toolbar." msgstr "" "Se questa opzione è segnata, l'icona dell'aiuto sarà mostrata nella barra " "degli strumenti." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:458 msgid "" "If this option is checked, the text label of input method properties will be " "showed on the toolbar." msgstr "" "Se questa opzione è segnata, l'etichetta di testo del metodo di inserimento " "sarà mostrata nella barra degli strumenti." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:462 msgid "" "If this option is checked, the lookup table will be embedded into the input " "window." msgstr "" "Se questa opzione è segnata, la tabella di riferimento sarà incorporata " "nella finestra di inserimento." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:467 msgid "If this option is checked, the lookup table will be displayed vertically." msgstr "" "Se questa opzione è segnata, la tabella di riferimento sarà mostrata " "verticalmente." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:472 msgid "" "If this option is checked, the tray icon will be showed on the desktop's " "taskbar." msgstr "" "Se questa opzione è segnata, l'icona del vassoio sarà mostrata nel pannello " "del desktop." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:476 msgid "" "If this option is checked, the toolbar, input and lookup table windows will " "be sticked to its original position." msgstr "" "Se questa opzione è segnata, la barra degli strumenti, le finestre di " "inserimento e della tabella di riferimento saranno agganciate alla loro " "posizione originale." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:482 msgid "The font setting will be used in the input and lookup table windows." msgstr "" "L'impostazione del carattere sarà usata nelle finestre di inserimento e " "della tabella di riferimento." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:801 msgid "Select Interface Font" msgstr "Seleziona il carattere dell'interfaccia" #: ../extras/setup/scim_setup_ui.cpp:47 msgid "SCIM" msgstr "SCIM" #: ../extras/setup/scim_setup_ui.cpp:48 msgid "FrontEnd" msgstr "Interfaccia" #: ../extras/setup/scim_setup_ui.cpp:49 msgid "IMEngine" msgstr "IMEngine" #: ../extras/setup/scim_setup_ui.cpp:50 msgid "Panel" msgstr "Pannello" #: ../extras/setup/scim_setup_ui.cpp:51 msgid "Extra" msgstr "Extra" #. #. vi:ts=4:nowrap:ai:expandtab #. #: ../extras/setup/scim_setup_ui.cpp:230 #: ../extras/setup/scim-setup.desktop.in.h:1 msgid "SCIM Input Method Setup" msgstr "Configurazione del metodo di inserimento SCIM" #: ../extras/setup/scim_setup_ui.cpp:369 msgid "" " Smart Common Input Method platform \n" "\n" "GUI Setup Utility\n" "\n" "\n" "\n" "Copyright 2002-2004, James Su <suzhe@tsinghua.org." "cn>" msgstr "" "Piattaforma del metodo di inserimento comune " "intelligente \n" "\n" "Programma di configurazione GUI\n" "\n" "\n" "\n" "Copyright 2002-2004, James Su <suzhe@tsinghua.org." "cn>" #: ../extras/setup/scim_setup_ui.cpp:394 #, c-format msgid "The Setup for %s modules." msgstr "La configurazione per %s moduli." #msgid "Are you sure you want to quit SCIM Setup?" #msgstr "Sei sicuro di uscire dalla configurazione di SCIM?" #: ../extras/setup/scim_setup_ui.cpp:661 msgid "" "Not all configuration can be reloaded on the fly. Don't forget to restart " "SCIM in order to let all of the new configuration take effect." msgstr "" "Non tutte le configurazioni possono essere ricaricate al volo. Non " "dimenticarti di riavviare SCIM per permettere a tutte le nuove " "configurazioni di avere effetto." #: ../extras/setup/scim_setup_helper.cpp:49 msgid "SCIM Setup" msgstr "Configurazione di SCIM" #: ../extras/setup/scim_setup_helper.cpp:51 msgid "Integrated Setup Utility based on GTK Widget library." msgstr "Strumento di configurazione integrato basato sulla libreria di oggetti GTK." #: ../extras/setup/scim-setup.desktop.in.h:2 msgid "Setup utility for Smart Common Input Method platform" msgstr "Programma di configurazione per il metodo inserimento comune intelligente" #: ../extras/panel/scim_panel_gtk.cpp:982 msgid "SCIM Help" msgstr "Aiuto di SCIM" #: ../extras/panel/scim_panel_gtk.cpp:999 msgid "Smart Common Input Method" msgstr "Metodo inserimento comune intelligente" #: ../extras/panel/scim_panel_gtk.cpp:1058 msgid "Stick/unstick the input window and the toolbar." msgstr "Aggancia o sgancia la finestra di inserimento e la barra degli strumenti." #: ../extras/panel/scim_panel_gtk.cpp:1063 msgid "Show a brief help about SCIM and the current input method." msgstr "Visualizza un breve aiuto su SCIM e il metodo di inserimento attuale." #: ../extras/panel/scim_panel_gtk.cpp:1068 msgid "Show command menu." msgstr "Mostra menu dei comandi." #: ../extras/panel/scim_panel_gtk.cpp:2306 msgid "" "\n" "(C) 2002-2005 James Su " msgstr "" "\n" "(C) 2002-2005 James Su " #. Reload Configuration. #: ../extras/panel/scim_panel_gtk.cpp:2385 msgid "Reload Configuration" msgstr "Ricarica configurazione" #. Stick #: ../extras/panel/scim_panel_gtk.cpp:2395 msgid "Stick Windows" msgstr "Aggancia finestre" #. Toolbar #: ../extras/panel/scim_panel_gtk.cpp:2404 msgid "Hide Toolbar" msgstr "Nascondi la barra degli strumenti" #. Help #: ../extras/panel/scim_panel_gtk.cpp:2413 msgid "Help ..." msgstr "Aiuto..." #. Clients exit. #: ../extras/panel/scim_panel_gtk.cpp:2431 msgid "Exit" msgstr "Esci" #: ../utils/scimstringview.c:196 msgid "Cursor Position" msgstr "Posizione del cursore" #: ../utils/scimstringview.c:197 msgid "The current position of the insertion cursor in chars." msgstr "La posizione attuale del cursore di inserimento in caratteri." #: ../utils/scimstringview.c:206 msgid "Maximum length" msgstr "Lunghezza massima" #: ../utils/scimstringview.c:207 msgid "Maximum number of characters for this string view. Zero if no maximum." msgstr "Il numero massimo di caratteri per questa vista stringhe. Zero se non ce n'è." #: ../utils/scimstringview.c:216 msgid "Maximum width" msgstr "Larghezza massima" #: ../utils/scimstringview.c:217 msgid "Maximum width of this string view." msgstr "Larghezza massima di questa vista stringhe." #: ../utils/scimstringview.c:226 msgid "Has Frame" msgstr "Ha cornice" #: ../utils/scimstringview.c:227 msgid "FALSE removes outside bevel from string view." msgstr "Se falso, rimuove la cornice esterna dalla vista stringhe." #: ../utils/scimstringview.c:234 msgid "Draw cursor" msgstr "Disegna cursore" #: ../utils/scimstringview.c:235 msgid "TRUE draw blinking cursor." msgstr "Se vero, disegna un cursore lampeggiante." #: ../utils/scimstringview.c:242 msgid "Auto move cursor" msgstr "Spostamento automatico del cursore" #: ../utils/scimstringview.c:243 msgid "TRUE auto move cursor position when mouse clicking." msgstr "" "Se vero, sposta automaticamente la posizione del cursore quando si fa clic " "con il mouse." #: ../utils/scimstringview.c:250 msgid "Forward button press event" msgstr "Inoltra evento di pressione di pulsante" #: ../utils/scimstringview.c:251 msgid "TRUE forward button press event to user program." msgstr "Se vero, inoltra evento di pressione di pulsante al programma utente." #: ../utils/scimstringview.c:258 msgid "Auto resize the widget to fit the string" msgstr "Ridimensiona automaticamente l'oggetto per adattarsi alla stringa" #: ../utils/scimstringview.c:259 msgid "TRUE Auto resize on." msgstr "Se vero, attiva il ridimensionamento automatico." #: ../utils/scimstringview.c:266 msgid "Width in chars" msgstr "Larghezza in caratteri" #: ../utils/scimstringview.c:267 msgid "Number of characters to leave space for in the string view." msgstr "Numero di caratteri per cui lasciare spazio nella vista stringhe." #: ../utils/scimstringview.c:276 msgid "Scroll offset" msgstr "Scostamento dello scorrimento" #: ../utils/scimstringview.c:277 msgid "Number of pixels of the string view scrolled off the screen to the left" msgstr "Numero di pixel nella vista stringhe scorsi a sinistra dello schermo" #: ../utils/scimstringview.c:286 msgid "Text" msgstr "Testo" #: ../utils/scimstringview.c:287 msgid "The contents of the string view" msgstr "Il contenuti della vista stringhe" #: ../utils/scimkeyselection.cpp:155 msgid "Selected _Keys:" msgstr "Tasti sele_zionati:" #: ../utils/scimkeyselection.cpp:200 msgid "Key Code:" msgstr "Codice del tasto:" #: ../utils/scimkeyselection.cpp:218 msgid "..." msgstr "..." #: ../utils/scimkeyselection.cpp:223 msgid "Modifiers:" msgstr "Modificatori:" #: ../utils/scimkeyselection.cpp:236 msgid "_Ctrl" msgstr "_Ctrl" #: ../utils/scimkeyselection.cpp:240 msgid "A_lt" msgstr "A_lt" #: ../utils/scimkeyselection.cpp:244 msgid "_Shift" msgstr "_Shift" #: ../utils/scimkeyselection.cpp:248 msgid "_Release" msgstr "_Rilascio" #: ../utils/scimkeyselection.cpp:258 msgid "_Meta" msgstr "_Meta" #: ../utils/scimkeyselection.cpp:262 msgid "S_uper" msgstr "S_uper" #: ../utils/scimkeyselection.cpp:266 msgid "_Hyper" msgstr "_Hyper" #: ../utils/scimkeyselection.cpp:331 msgid "Please enter a Key Code first." msgstr "Inserisci prima un codice del tasto." #: ../utils/scimkeyselection.cpp:385 msgid "" "Press a key (or a key combination).\n" "This dialog will be closed when the key is released." msgstr "" "Premi un tasto (o una combinazione di tasti).\n" "Questa finestra sarà chiusa quando il tasto sarà rilasciato." #: ../utils/scimkeyselection.cpp:388 msgid "Grabbing a key." msgstr "Cattura di un tasto." #: ../utils/scimkeyselection.cpp:678 msgid "Key Selection" msgstr "Selezione dei tasti" #: ../utils/scimtrayicon.c:108 msgid "Orientation" msgstr "Orientazione" #: ../utils/scimtrayicon.c:109 msgid "The orientation of the tray." msgstr "L'orientazione del vassoio." #~ msgid "Are you sure you want to quit SCIM Setup?" #~ msgstr "Sei sicuro di uscire dalla configurazione di SCIM?" #~ msgid "zh_CN,zh_TW,zh_HK,zh_SG,ja_JP,ko_KR" #~ msgstr "zh_CN,zh_TW,zh_HK,zh_SG,ja_JP,ko_KR" #~ msgid "En" #~ msgstr "En" #, fuzzy #~ msgid "_Switch input method globally" #~ msgstr "Mostra icona del metodo di _inserimento" #~ msgid "Preedit String mode" #~ msgstr "Modalità di premodifica delle stringhe" #~ msgid "X Window" #~ msgstr "X Window" #~ msgid "A FrontEnd module for X11R6 Window System, using XIM Protocol." #~ msgstr "" #~ "Un modulo di interfaccia per il sistema X11R6 X Window, usando il " #~ "protocollo XIM." #~ msgid "XIM Settings" #~ msgstr "Impostazioni XIM" #~ msgid "_On The Spot" #~ msgstr "Al v_olo" #~ msgid "" #~ "If this option is checked, the OnTheSpot input style will be used when " #~ "the client supports it." #~ msgstr "" #~ "Se questa opzione è segnata, sarà usato lo stile di inserimento al volo " #~ "quando il client lo supporterà." #~ msgid "Portuguese (Brazilian)" #~ msgstr "Portoghese (brasiliano)" #, fuzzy #~ msgid "Slovene" #~ msgstr "Sloveno" #~ msgid "Full/Half Letter" #~ msgstr "Lettera piena/mezza" #~ msgid "Full/Half Punct" #~ msgstr "Punteggiatura piena/mezza" #~ msgid "" #~ "The input mode of the letters. Click to toggle between half and full." #~ msgstr "" #~ "La modalità di inserimento delle lettere. Fai clic per passare tra mezza " #~ "a piena." #~ msgid "" #~ "The input mode of the puncutations. Click to toggle between half and full." #~ msgstr "" #~ "La modalità di inserimento della punteggiatura. Fai clic per passare tra " #~ "mezza a piena." #~ msgid "" #~ " Switch between full/half width letter mode.\n" #~ "\n" #~ " " #~ msgstr "" #~ " Passa tra le modalità delle lettere a larghezza piena/mezza.\n" #~ "\n" #~ " " #~ msgid "" #~ " Switch between full/half width punctuation mode.\n" #~ "\n" #~ " " #~ msgstr "" #~ " Passa tra le modalità della punteggiatura a larghezza piena/mezza\n" #~ "\n" #~ " " #~ msgid "" #~ " Switch between Forward/Input mode.\n" #~ "\n" #~ " " #~ msgstr "" #~ " Passa tra le modalità di inoltro/inserimento.\n" #~ "\n" #~ " " #~ msgid "" #~ " Add a new phrase.\n" #~ "\n" #~ " " #~ msgstr "" #~ " Aggiungi una nuova frase.\n" #~ "\n" #~ " " #~ msgid "" #~ " Delete the selected phrase.\n" #~ "\n" #~ msgstr "" #~ " Elimina la frase selezionata.\n" #~ "\n" #~ msgid "" #~ " Control+Down:\n" #~ " Move lookup cursor to next shorter phrase\n" #~ " Only available when LongPhraseFirst option is set.\n" #~ "\n" #~ msgstr "" #~ " Control+giù:\n" #~ " Sposta il cursore di ricerca alla frase più corta successiva\n" #~ " Disponibile solo quanto l'opzione FraseLungaPrima è impostata.\n" #~ "\n" #~ msgid "" #~ " Control+Up:\n" #~ " Move lookup cursor to previous longer phrase\n" #~ " Only available when LongPhraseFirst option is set.\n" #~ "\n" #~ msgstr "" #~ " Control+su:\n" #~ " Sposta il cursore di ricerca alla frase più lunga precedente\n" #~ " Disponibile solo quanto l'opzione FraseLungaPrima è impostata.\n" #~ "\n" #~ msgid "" #~ " Esc:\n" #~ " reset the input method.\n" #~ "\n" #~ "\n" #~ msgstr "" #~ " Esc:\n" #~ " reimposta il metodo di inserimento.\n" #~ "\n" #~ "\n" #~ msgid "" #~ "How to add a phrase:\n" #~ " Input the new phrase as normal, then press the\n" #~ " hot key. A hint will be shown to let you input a key\n" #~ " for this phrase.\n" #~ " Input a key then press the space bar.\n" #~ " A hint will be shown to indicate whether\n" #~ " the phrase was added sucessfully.\n" #~ msgstr "" #~ "Come aggiungere una frase:\n" #~ " Inserisci la frase come normale, quindi premi il\n" #~ " tasto rapido. Sarà mostrato un suggerimento per\n" #~ " permetterti di inserire un tasto per questa frase.\n" #~ " Inserisci un tasto e premi la barra spaziatrice.\n" #~ " Sarà mostrato un suggerimento per indicare se\n" #~ " la frase è stata aggiunta correttamente.\n" #~ msgid "Input a key string for phrase: " #~ msgstr "Inserisci una stringa di tasti per la frase: " #~ msgid "Success." #~ msgstr "Riuscito." #~ msgid "Failed." #~ msgstr "Non riuscito." #~ msgid "" #~ "Too few argument!\n" #~ "Usage:\n" #~ " scim-make-table [options]\n" #~ "\n" #~ " table_file\tthe table file for table module\n" #~ " -b\t\tconvert to binary format, otherwise to text format\n" #~ " -o output\tsave new table to file output\n" #~ " -no\t\tdo not save new phrase table\n" #~ " -if ifreq\tload phrase frequencies from this file\n" #~ " -of ofreq\tsave phrase frequencies to this file\n" #~ " -s file\tspecifiy the source file to count phrase ages.\n" #~ msgstr "" #~ "Troppi pochi argomenti!\n" #~ "Uso:\n" #~ " scim-make-table [opzioni]\n" #~ "\n" #~ " file_tabella\til file tabella per il modulo tabella\n" #~ " -b\t\tconverti a formato binario, altrimenti in formato testuale\n" #~ " -o output\tsalva la nuova tabella al file di output\n" #~ " -no\t\tnon salvare la nuova tabella delle frasi\n" #~ " -if ifreq\tcarica le frequenze delle frasi da questo file\n" #~ " -of ofreq\tsalva le frequenze delle frasi in questo file\n" #~ " -s file\tspecifica il file sorgente per contare l'età delle frasi.\n" #~ msgid "option -no cannot be used with -o\n" #~ msgstr "l'opzione -no non può essere usata con -o\n" #~ msgid "option -o cannot be used with -no\n" #~ msgstr "l'opzione -o non può essere usata con -no\n" #~ msgid "No argument for option " #~ msgstr "Nessun argomento per l'opzione " #~ msgid "Invalid option: " #~ msgstr "Opzione non valida: " #~ msgid "Loading table file " #~ msgstr "Caricamento del file tabella " #~ msgid " ...\n" #~ msgstr " ...\n" #~ msgid "table file load failed!" #~ msgstr "caricamento del file tabella non riuscito!" #~ msgid "Saving frequency table file " #~ msgstr "Salvataggio della tabella di frequenza " #~ msgid "frequency table file load failed!" #~ msgstr "caricamento del file tabella di frequenza non riuscito!" #~ msgid "Saving table file " #~ msgstr "Salvataggio del file tabella " #~ msgid "Table file save failed!" #~ msgstr "Salvataggio del file tabella non riuscito!" #~ msgid "" #~ "\n" #~ "(C) 2002-2004 James Su \n" #~ "\n" #~ "Hot keys:\n" #~ "\n" #~ " " #~ msgstr "" #~ "\n" #~ "(C) 2002-2004 James Su \n" #~ "\n" #~ "Tasti rapidi:\n" #~ "\n" #~ " " #~ msgid "" #~ ":\n" #~ " open/close the input method.\n" #~ "\n" #~ " " #~ msgstr "" #~ ":\n" #~ " apri/chiudi il metodo di inserimento.\n" #~ "\n" #~ " " #~ msgid "" #~ ":\n" #~ " switch to the next input method.\n" #~ "\n" #~ " " #~ msgstr "" #~ ":\n" #~ " passa al metodo di inserimento successivo.\n" #~ "\n" #~ " " #~ msgid "" #~ ":\n" #~ " switch to the previous input method.\n" #~ "\n" #~ "\n" #~ msgstr "" #~ ":\n" #~ " passa al metodo di inserimento precedente.\n" #~ "\n" #~ "\n" #~ msgid "Generic Table" #~ msgstr "Tabella generica" #~ msgid "An IMEngine Module which uses generic table input method file." #~ msgstr "" #~ "Un modulo IMEngine che usa un file di metodo di inserimento con tabella " #~ "generica." #~ msgid "Full width _punctuation:" #~ msgstr "_Punteggiatura a larghezza piena:" #~ msgid "Select full width puncutation keys" #~ msgstr "Seleziona i tasti della punteggiatura a larghezza piena" #~ msgid "" #~ "The key events to switch full/half width punctuation input mode. Click on " #~ "the button on the right to edit it." #~ msgstr "" #~ "Le combinazioni di tasti per passare tra le modalità di inserimento con " #~ "punteggiatura a larghezza piena/mezza. Fai clic sul pulsante a destra per " #~ "modificarle." #~ msgid "Full width _letter:" #~ msgstr "_Lettera a larghezza piena:" #~ msgid "Select full width letter keys" #~ msgstr "Seleziona i tasti delle lettere a larghezza piena" #~ msgid "" #~ "The key events to switch full/half width letter input mode. Click on the " #~ "button on the right to edit it." #~ msgstr "" #~ "Le combinazioni di tasti per passare tra le modalità di inserimento con " #~ "lettere a larghezza piena/mezza. Fai clic sul pulsante a destra per " #~ "modificarle." #~ msgid "_Mode switch:" #~ msgstr "Cambio di _modalità:" #~ msgid "Select mode switch keys" #~ msgstr "Seleziona i tasti per il cambio di modalità" #~ msgid "" #~ "The key events to change current input mode. Click on the button on the " #~ "right to edit it." #~ msgstr "" #~ "Le combinazioni di tasti per cambiare la modalità di inserimento attuale. " #~ "Fai clic sul pulsante a destra per cambiarle." #~ msgid "_Add phrase:" #~ msgstr "_Aggiungi frase:" #~ msgid "Select add phrase keys." #~ msgstr "Seleziona i tasti per aggiungere frasi." #~ msgid "" #~ "The key events to add a new user defined phrase. Click on the button on " #~ "the right to edit it." #~ msgstr "" #~ "Le combinazioni di tasti per aggiungere una nuova frase definita " #~ "dall'utente. Fai clic sul pulsante a destra per cambiarle." #~ msgid "_Delete phrase:" #~ msgstr "_Elimina frase:" #~ msgid "Select delete phrase keys." #~ msgstr "Seleziona i tasti per eliminare frasi." #~ msgid "" #~ "The key events to delete a selected phrase. Click on the button on the " #~ "right to edit it." #~ msgstr "" #~ "Le combinazioni di tasti per eliminare una frase selezionata. Fai clic " #~ "sul pulsante a destra per cambiarle." #~ msgid "Show _prompt" #~ msgstr "Mostra _prompt" #~ msgid "Show key _hint" #~ msgstr "Mostra su_ggerimento del tasto" #~ msgid "Save _user table in binary format" #~ msgstr "Salva la tabella dell'_utente in formato binario" #~ msgid "Show the u_ser defined phrases first" #~ msgstr "Mo_stra prima le frasi definite dall'utente" #~ msgid "Show the _longer phrases first" #~ msgstr "Mostra prima le frasi più _lunghe" #~ msgid "" #~ "If this option is checked, the key prompt of the currently selected " #~ "phrase will be shown." #~ msgstr "" #~ "Se questa opzione è segnata, sarà mostrato il prompt del tasto della " #~ "frase attualmente selezionata." #~ msgid "" #~ "If this option is checked, the remaining keystrokes of the phraseswill be " #~ "shown on the lookup table." #~ msgstr "" #~ "Se questa opzione è segnata, i tasti rimanenti della frase saranno " #~ "mostrati nella tabella di riferimento." #~ msgid "" #~ "If this option is checked, the user table will be stored with binary " #~ "format, this will increase the loading speed." #~ msgstr "" #~ "Se questa opzione è segnata, la tabella dell'utente sarà salvata in " #~ "formato binario; ciò aumenterà la velocità di caricamento." #~ msgid "" #~ "If this option is checked, the user defined phrases will be shown in " #~ "front of others. " #~ msgstr "" #~ "Se questa opzione è segnata, le frasi definite dall'utente saranno " #~ "mostrate prima delle altre. " #~ msgid "" #~ "If this option is checked, the longer phrase will be shown in front of " #~ "others. " #~ msgstr "" #~ "Se questa opzione è segnata, la frasi più lunghe saranno mostrate prima " #~ "delle altre. " #~ msgid "The installed tables:" #~ msgstr "La tabelle installate:" #~ msgid "_Install" #~ msgstr "_Installa" #~ msgid "Install a new table." #~ msgstr "Installa una nuova tabella." #~ msgid "_Delete" #~ msgstr "_Elimina" #~ msgid "Delete the selected table." #~ msgstr "Elimina la tabella selezionata." #~ msgid "_Properties" #~ msgstr "_Proprietà" #~ msgid "Edit the properties of the selected table." #~ msgstr "Modifica le proprietà della tabella selezionata." #~ msgid "Generic" #~ msgstr "Generico" #~ msgid "Table Management" #~ msgstr "Gestione delle tabelle" #~ msgid "Select an icon file" #~ msgstr "Seleziona un file icone" #~ msgid "User" #~ msgstr "Utente" #~ msgid "System" #~ msgstr "Sistema" #~ msgid "Please select the table file to be installed." #~ msgstr "Per piacere seleziona il file tabella da installare." #~ msgid "Failed to install the table! It's already in table file directory." #~ msgstr "" #~ "Installazione della tabella non riuscita. È già nella cartella dei file " #~ "tabella." #~ msgid "Failed to load the table file!" #~ msgstr "Caricamento del file tabella non riuscito." #~ msgid "" #~ "Failed to install the table! Another version of this table was already " #~ "installed." #~ msgstr "" #~ "Installazione della tabella non riuscita. Un'altra versione di questa " #~ "tabella era già installata." #~ msgid "" #~ "Another version of this table was already installed. Do you want to " #~ "replace it with the new one?" #~ msgstr "" #~ "Un'altra versione di questa tabella era già installata. Vuoi sostituirla " #~ "con la nuova?" #~ msgid "" #~ "Failed to install the table! A table with the same file name was already " #~ "installed." #~ msgstr "" #~ "Installazione della tabella non riuscita. Una tabella con lo stesso nome " #~ "del file era già installata." #~ msgid "" #~ "A table with the same file name was already installed. Do you want to " #~ "overwrite it?" #~ msgstr "" #~ "Una tabella con lo stesso nome del file era già installata. Vuoi " #~ "sovrascriverla?" #~ msgid "Failed to install the table to %s!" #~ msgstr "Installazione della tabella in %s non riuscita." #~ msgid "Can not delete the file %s!" #~ msgstr "Impossibile eliminare il file %s." #~ msgid "Are you sure to delete this table file?" #~ msgstr "Sei sicuro di voler eliminare questo file tabella?" #~ msgid "Failed to delete the table file!" #~ msgstr "Eliminazione del file tabella non riuscita." #~ msgid "True" #~ msgstr "Vero" #~ msgid "False" #~ msgstr "Falso" #~ msgid "Split Keys:" #~ msgstr "Tasti di divisione:" #~ msgid "The key strokes to split inputed string." #~ msgstr "I tasti per dividere la stringa inserita." #~ msgid "Commit Keys:" #~ msgstr "Tasti di consegna:" #~ msgid "The key strokes to commit converted result to client." #~ msgstr "I tasti per consegnare il risultato convertito al client." #~ msgid "Forward Keys:" #~ msgstr "Tasti di inoltro:" #~ msgid "The key strokes to forward inputed string to client." #~ msgstr "I tasti per inoltrare la stringa inserita al client." #~ msgid "The key strokes to select candidate phrases in lookup table." #~ msgstr "" #~ "I tasti per selezionare delle frasi candidate nella tabella di " #~ "riferimento." #~ msgid "Page Up Keys:" #~ msgstr "Tasti pagina su:" #~ msgid "The lookup table page up keys" #~ msgstr "I tasti pagina su della tabella di riferimento" #~ msgid "Page Down Keys:" #~ msgstr "Tasti pagina giù:" #~ msgid "The lookup table page down keys" #~ msgstr "I tasti pagina giù della tabella di riferimento" #~ msgid "Table Properties" #~ msgstr "Proprietà della tabella" #~ msgid "Name:" #~ msgstr "Nome:" #~ msgid "The name of this table." #~ msgstr "Il nome di questa tabella." #~ msgid "Author:" #~ msgstr "Autore:" #~ msgid "The author of this table." #~ msgstr "L'autore di questa tabella." #~ msgid "UUID:" #~ msgstr "UUID:" #~ msgid "The unique ID of this table." #~ msgstr "L'ID univoca di questa tabella." #~ msgid "Serial Number:" #~ msgstr "Numero seriale:" #~ msgid "The serial number of this table." #~ msgstr "Il numero seriale di questa tabella." #~ msgid "Icon File:" #~ msgstr "File icone:" #~ msgid "The icon file of this table." #~ msgstr "Il file icone di questa tabella." #~ msgid "Supported Languages:" #~ msgstr "Lingue supportate:" #~ msgid "The languages supported by this table." #~ msgstr "Le lingue supportate da questa tabella." #~ msgid "Status Prompt:" #~ msgstr "Prompt di stato:" #~ msgid "A prompt string to be shown in status area." #~ msgstr "Una stringa di prompt da visualizzare nell'area di stato." #~ msgid "Valid Input Chars:" #~ msgstr "Caratteri di inserimento validi:" #~ msgid "The valid input chars of this table." #~ msgstr "I caratteri di inserimento validi di questa tabella." #~ msgid "Multi Wildcard Char:" #~ msgstr "Carattere jolly multiplo:" #~ msgid "" #~ "The multi wildcard chars of this table. These chars can be used to match " #~ "one or more arbitrary chars." #~ msgstr "" #~ "I caratteri jolly multipli di questa tabella. Questi caratteri possono " #~ "essere usati per corrispondere a uno o più caratteri arbitrari." #~ msgid "Single Wildcard Char:" #~ msgstr "Carattere jolly singolo:" #~ msgid "" #~ "The single wildcard chars of this table.These chars can be used to match " #~ "one arbitrary char." #~ msgstr "" #~ "I caratteri jolly singoli di questa tabella. Questi caratteri possono " #~ "essere usati per corrispondere a un carattere arbitrario." #~ msgid "Max Key Length:" #~ msgstr "Lunghezza massima dei tasti:" #~ msgid "The maxmium length of key strings." #~ msgstr "La lunghezza massima delle stringhe di tasti." #~ msgid "Show Key Prompt:" #~ msgstr "Mostra prompt del tasto:" #~ msgid "If true then the key prompts will be shown instead of the raw keys." #~ msgstr "" #~ "Se vero, saranno mostrati i prompt dei tasti invece dei tasti grezzi." #~ msgid "Auto Select:" #~ msgstr "Selezione automatica:" #~ msgid "" #~ "If true then the first candidate phrase will be selected automatically " #~ "when inputing the next key." #~ msgstr "" #~ "Se vero, la prima frase candidata sarà selezionata automaticamente quando " #~ "si inserisce il prossimo tasto." #~ msgid "Auto Wildcard:" #~ msgstr "Jolly automatico:" #~ msgid "" #~ "If true then a multi wildcard char will be append to the end of inputed " #~ "key string when searching phrases." #~ msgstr "" #~ "Se vero, un carattere jolly multiplo sarà aggiunto alla fine della " #~ "stringa di tasti inseriti quando si cercano le frasi." #~ msgid "Auto Commit:" #~ msgstr "Consegna automatica:" #~ msgid "" #~ "If true then the converted result string will be committed to client " #~ "automatically." #~ msgstr "" #~ "Se vero, la stringa risultante convertita sarà automaticamente consegnata " #~ "al client." #~ msgid "Auto Split:" #~ msgstr "Divisione automatica:" #~ msgid "" #~ "If true then the inputed key string will be splitted automatically when " #~ "necessary." #~ msgstr "" #~ "Se vero, la stringa di tasti inserita sarà divisa automaticamente quando " #~ "necessario." #~ msgid "Discard Invalid Key:" #~ msgstr "Scarta tasto non valido:" #~ msgid "" #~ "If true then the invalid key will be discarded automatically.This option " #~ "is only valid when Auto Select and Auto Commit is true." #~ msgstr "" #~ "Se vero, il tasto non valido sarà scartato automaticamente. Questa " #~ "opzione è valida solo quando sono vere la selezione e la consegna " #~ "automatiche." #~ msgid "Dynamic Adjust:" #~ msgstr "Regolazione dinamica:" #~ msgid "If true then the phrases' frequencies will be adjusted dynamically." #~ msgstr "Se vero, le frequenze delle frasi saranno regolate dinamicamente." #~ msgid "Auto Fill Preedit Area:" #~ msgstr "Riempimento automatico dell'area di premodifica:" #~ msgid "" #~ "If true then the preedit string will be filled up with the current " #~ "candiate phrase automatically.This option is only valid when Auto Select " #~ "is TRUE." #~ msgstr "" #~ "Se vero, la stringa di premodifica sarà riempita automaticamente con la " #~ "frase candidata attuale. Questa opzione è valida solo quando la selezione " #~ "automatica è vera." #~ msgid "Always Show Lookup Table:" #~ msgstr "Mostra sempre la tabella di riferimento:" #~ msgid "" #~ "If true then the lookup table will always be shown when any candidate " #~ "phrase is available. Otherwise the lookup table will only be shown when " #~ "necessary.\n" #~ "If Auto Fill is false, then this option will be no effect, and always be " #~ "true." #~ msgstr "" #~ "Se vero, la tabella di riferimento sarà sempre visualizzata quando " #~ "qualsiasi frase candidata sarà disponibile. Altrimenti la tabella di " #~ "riferimento sarà visualizzata solo quando necessario.\n" #~ "Se il riempimento automatico è falso, questa opzione non avrà effetto, e " #~ "sarà sempre vera." #~ msgid "Default Full Width Punct:" #~ msgstr "Punteggiatura predefinita a larghezza piena:" #~ msgid "If true then full width punctuations will be inputed by default." #~ msgstr "" #~ "Se vero, saranno inseriti segni di punteggiatura a larghezza piena come " #~ "impostazione predefinita." #~ msgid "Default Full Width Letter:" #~ msgstr "Lettere predefinite a larghezza piena:" #~ msgid "If true then full width letters will be inputed by default." #~ msgstr "" #~ "Se vero, saranno inserite lettere a larghezza piena come impostazione " #~ "predefinita." #~ msgid "Invalid icon file." #~ msgstr "File icone non valido." #~ msgid "Invalid languages." #~ msgstr "Lingue non valide." #~ msgid "Invalid status prompt." #~ msgstr "Prompt di stato non valido." #~ msgid "Invalid multi wildcard chars." #~ msgstr "Caratteri jolly multipli non validi." #~ msgid "Invalid single wildcard chars." #~ msgstr "Caratteri jolly singoli non validi." #~ msgid "Invalid commit keys." #~ msgstr "Tasti di consegna non validi." #~ msgid "Invalid select keys." #~ msgstr "Tasti di selezione non validi." #~ msgid "Invalid page up keys." #~ msgstr "Tasti pagina su non validi." #~ msgid "Invalid page down keys." #~ msgstr "Tasti pagina giù non validi." #~ msgid "Invalid max key length." #~ msgstr "Lunghezza massima dei tasti non valida." #~ msgid "Failed to save table %s!" #~ msgstr "Salvataggio della tabella %s non riuscito!" #~ msgid "Failed to load any Config Modules!" #~ msgstr "Caricamento di qualsiasi modulo di configurazione non riuscito." #~ msgid "_Current Config Module:" #~ msgstr "Modulo di _configurazione attuale:" #~ msgid "" #~ msgstr "" #~ msgid "Current Config Module has been changed to %s." #~ msgstr "Il modulo di configurazione attuale è stato cambiato in %s." #~ msgid "Start the SCIM Setup Utility." #~ msgstr "Avvia il programma di configurazione di SCIM." #~ msgid "Setup ..." #~ msgstr "Configurazione..." scim-1.4.14/po/ja.po000066400000000000000000001675241177210725600141330ustar00rootroot00000000000000# translation of ja.po to Japanese # Japanese translation for SCIM # Copyright (C) 2004, 2008 Free Software Foundation, Inc. # # James Su , 2004. # Kiyoto Hashida , 2008. msgid "" msgstr "" "Project-Id-Version: ja\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-07-20 09:50+0800\n" "PO-Revision-Date: 2008-03-26 09:55+1000\n" "Last-Translator: Kiyoto Hashida \n" "Language-Team: Japanese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" #: ../src/scim_compose_key.cpp:126 msgid "English/European" msgstr "英語/ヨーロッパ言語" #. Append an entry for forward mode. #: ../src/scim_imengine.cpp:638 ../src/scim_utility.cpp:693 #: ../modules/FrontEnd/scim_x11_frontend.cpp:1897 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1281 #: ../extras/panel/scim_panel_gtk.cpp:2814 msgid "English/Keyboard" msgstr "英語/キーボード" #: ../src/scim_utility.cpp:694 msgid "Amharic" msgstr "アムãƒãƒ©èªž" #: ../src/scim_utility.cpp:695 msgid "Arabic" msgstr "アラビア語" #: ../src/scim_utility.cpp:696 msgid "Arabic (Egypt)" msgstr "アラビア語(エジプト)" #: ../src/scim_utility.cpp:697 msgid "Arabic (Lebanon)" msgstr "アラビア語(レãƒãƒŽãƒ³)" #: ../src/scim_utility.cpp:698 msgid "Assamese" msgstr "アッサム語" #: ../src/scim_utility.cpp:699 msgid "Azerbaijani" msgstr "アゼルãƒã‚¤ã‚¸ãƒ£ãƒ³èªž" #: ../src/scim_utility.cpp:700 msgid "Belarusian" msgstr "白ロシア語" #: ../src/scim_utility.cpp:701 msgid "Bulgarian" msgstr "ブルガリア語" #: ../src/scim_utility.cpp:702 ../src/scim_utility.cpp:703 msgid "Bengali" msgstr "ベンガル語" #: ../src/scim_utility.cpp:704 msgid "Bengali (India)" msgstr "ベンガル語(インド)" #: ../src/scim_utility.cpp:705 msgid "Tibetan" msgstr "ãƒãƒ™ãƒƒãƒˆèªž" #: ../src/scim_utility.cpp:706 msgid "Bosnian" msgstr "ボスニア語" #: ../src/scim_utility.cpp:707 msgid "Catalan" msgstr "カタロニア語" #: ../src/scim_utility.cpp:708 ../src/scim_keyboard_layout_data.h:4595 msgid "Czech" msgstr "ãƒã‚§ã‚³èªž" #: ../src/scim_utility.cpp:709 msgid "Welsh" msgstr "ウェールズ語" #: ../src/scim_utility.cpp:710 ../src/scim_keyboard_layout_data.h:4597 msgid "Danish" msgstr "デンマーク語" #: ../src/scim_utility.cpp:711 ../src/scim_keyboard_layout_data.h:4605 msgid "German" msgstr "ドイツ語" #: ../src/scim_utility.cpp:712 msgid "Divehi" msgstr "ディベヒ語" #: ../src/scim_utility.cpp:713 ../src/scim_keyboard_layout_data.h:4608 msgid "Greek" msgstr "ギリシャ語" #: ../src/scim_utility.cpp:714 msgid "English" msgstr "英語" #: ../src/scim_utility.cpp:715 msgid "English (Australian)" msgstr "英語(オーストラリア)" #: ../src/scim_utility.cpp:716 msgid "English (Canadian)" msgstr "英語(カナダ)" #: ../src/scim_utility.cpp:717 msgid "English (British)" msgstr "英語(イギリス)" #: ../src/scim_utility.cpp:718 msgid "English (Ireland)" msgstr "英語(アイルランド)" #: ../src/scim_utility.cpp:719 msgid "English (American)" msgstr "英語(アメリカ)" #: ../src/scim_utility.cpp:720 ../src/scim_utility.cpp:721 #: ../src/scim_keyboard_layout_data.h:4621 msgid "Spanish" msgstr "スペイン語" #: ../src/scim_utility.cpp:722 msgid "Spanish (Mexico)" msgstr "スペイン語(メキシコ)" #: ../src/scim_utility.cpp:723 ../src/scim_keyboard_layout_data.h:4600 msgid "Estonian" msgstr "エストニア語" #: ../src/scim_utility.cpp:724 msgid "Basque" msgstr "ãƒã‚¹ã‚¯èªž" #: ../src/scim_utility.cpp:725 msgid "Persian" msgstr "ペルシア語" #: ../src/scim_utility.cpp:726 ../src/scim_keyboard_layout_data.h:4601 msgid "Finnish" msgstr "フィンランド語" #: ../src/scim_utility.cpp:727 ../src/scim_keyboard_layout_data.h:4602 msgid "French" msgstr "フランス語" #: ../src/scim_utility.cpp:728 msgid "Irish" msgstr "アイルランド語" #: ../src/scim_utility.cpp:729 msgid "Galician" msgstr "ガリシア語" #: ../src/scim_utility.cpp:730 msgid "Gujarati" msgstr "グジャラート語" #: ../src/scim_utility.cpp:731 ../src/scim_utility.cpp:740 msgid "Hebrew" msgstr "ヘブライ語" #: ../src/scim_utility.cpp:732 msgid "Hindi" msgstr "ヒンディー語" #: ../src/scim_utility.cpp:733 ../src/scim_keyboard_layout_data.h:4594 msgid "Croatian" msgstr "クロアãƒã‚¢èªž" #: ../src/scim_utility.cpp:734 ../src/scim_keyboard_layout_data.h:4609 msgid "Hungarian" msgstr "ãƒãƒ³ã‚¬ãƒªãƒ¼èªž" #: ../src/scim_utility.cpp:735 msgid "Armenian" msgstr "アルメニア語" #: ../src/scim_utility.cpp:736 msgid "Interlingua" msgstr "インターリングア" #: ../src/scim_utility.cpp:737 msgid "Indonesian" msgstr "インドãƒã‚·ã‚¢èªž" #: ../src/scim_utility.cpp:738 ../src/scim_keyboard_layout_data.h:4627 msgid "Icelandic" msgstr "アイスランド語" #: ../src/scim_utility.cpp:739 ../src/scim_keyboard_layout_data.h:4610 msgid "Italian" msgstr "イタリア語" #: ../src/scim_utility.cpp:741 ../src/scim_keyboard_layout_data.h:4611 msgid "Japanese" msgstr "日本語" #: ../src/scim_utility.cpp:742 msgid "Georgian" msgstr "グルジア語" #: ../src/scim_utility.cpp:743 msgid "Kazakh" msgstr "カザフスタン語" #: ../src/scim_utility.cpp:744 msgid "Cambodian" msgstr "クメール語" #: ../src/scim_utility.cpp:745 msgid "Kannada" msgstr "カンナダ語" #: ../src/scim_utility.cpp:746 msgid "Korean" msgstr "ãƒãƒ³ã‚°ãƒ«" #: ../src/scim_utility.cpp:747 msgid "Laothian" msgstr "ラオス語" #: ../src/scim_utility.cpp:748 ../src/scim_keyboard_layout_data.h:4628 msgid "Lithuanian" msgstr "リトアニア語" #: ../src/scim_utility.cpp:749 msgid "Latvian" msgstr "ラトヴィア語" #: ../src/scim_utility.cpp:750 msgid "Macedonian" msgstr "マケドニア語" #: ../src/scim_utility.cpp:751 msgid "Malayalam" msgstr "マラヤーラム語" #: ../src/scim_utility.cpp:752 msgid "Mongolian" msgstr "モンゴル語" #: ../src/scim_utility.cpp:753 msgid "Marathi" msgstr "マラーティー語" #: ../src/scim_utility.cpp:754 msgid "Malay" msgstr "マレー語" #: ../src/scim_utility.cpp:755 msgid "Burmese" msgstr "ビルマ語" #: ../src/scim_utility.cpp:756 msgid "Nepali" msgstr "ãƒãƒ‘ール語" #: ../src/scim_utility.cpp:757 ../src/scim_keyboard_layout_data.h:4598 msgid "Dutch" msgstr "オランダ語" #: ../src/scim_utility.cpp:758 msgid "Norwegian (nynorsk)" msgstr "ノルウェー語(ニューノルスク)" #: ../src/scim_utility.cpp:759 msgid "Norwegian (bokmal)" msgstr "ノルウェー語(ボックモール)" #: ../src/scim_utility.cpp:760 msgid "Oriya" msgstr "オリヤー語" #: ../src/scim_utility.cpp:761 msgid "Punjabi" msgstr "パンジャブ語" #: ../src/scim_utility.cpp:762 ../src/scim_keyboard_layout_data.h:4613 msgid "Polish" msgstr "ãƒãƒ¼ãƒ©ãƒ³ãƒ‰èªž" #: ../src/scim_utility.cpp:763 ../src/scim_utility.cpp:765 #: ../src/scim_keyboard_layout_data.h:4614 msgid "Portuguese" msgstr "ãƒãƒ«ãƒˆã‚¬ãƒ«èªž" #: ../src/scim_utility.cpp:764 ../src/scim_keyboard_layout_data.h:4615 msgid "Portuguese (Brazil)" msgstr "ãƒãƒ«ãƒˆã‚¬ãƒ«èªž(ブラジル)" #: ../src/scim_utility.cpp:766 msgid "Romanian" msgstr "ルーマニア語" #: ../src/scim_utility.cpp:767 ../src/scim_keyboard_layout_data.h:4617 msgid "Russian" msgstr "ロシア語" #: ../src/scim_utility.cpp:768 msgid "Sinhala" msgstr "シンãƒãƒ©èªž" #: ../src/scim_utility.cpp:769 ../src/scim_keyboard_layout_data.h:4618 msgid "Slovak" msgstr "スロãƒã‚­ã‚¢èªž" #: ../src/scim_utility.cpp:770 ../src/scim_keyboard_layout_data.h:4620 msgid "Slovenian" msgstr "スロベニア語" #: ../src/scim_utility.cpp:771 msgid "Albanian" msgstr "アルãƒãƒ‹ã‚¢èªž" #: ../src/scim_utility.cpp:772 ../src/scim_utility.cpp:773 #: ../src/scim_utility.cpp:774 msgid "Serbian" msgstr "セルビア語" #: ../src/scim_utility.cpp:775 ../src/scim_utility.cpp:777 #: ../src/scim_keyboard_layout_data.h:4624 msgid "Swedish" msgstr "スウェーデン語" #: ../src/scim_utility.cpp:776 msgid "Swedish (Finland)" msgstr "スウェーデン語(フィンランド)" #: ../src/scim_utility.cpp:778 msgid "Tamil" msgstr "タミル語" #: ../src/scim_utility.cpp:779 msgid "Telugu" msgstr "テルグ語" #: ../src/scim_utility.cpp:780 msgid "Thai" msgstr "タイ語" #: ../src/scim_utility.cpp:781 ../src/scim_keyboard_layout_data.h:4625 msgid "Turkish" msgstr "トルコ語" #: ../src/scim_utility.cpp:782 msgid "Uighur" msgstr "ウィグル語" #: ../src/scim_utility.cpp:783 ../src/scim_keyboard_layout_data.h:4629 msgid "Ukrainian" msgstr "ウクライナ語" #: ../src/scim_utility.cpp:784 msgid "Urdu" msgstr "ウルドゥー語" #: ../src/scim_utility.cpp:785 msgid "Uzbek" msgstr "ウズベク語" #: ../src/scim_utility.cpp:786 msgid "Vietnamese" msgstr "ベトナム語" #: ../src/scim_utility.cpp:787 msgid "Walloon" msgstr "ワロン語" #: ../src/scim_utility.cpp:788 ../src/scim_utility.cpp:789 msgid "Yiddish" msgstr "イディッシュ語" #: ../src/scim_utility.cpp:790 msgid "Chinese" msgstr "中国語" #: ../src/scim_utility.cpp:791 ../src/scim_utility.cpp:793 msgid "Chinese (simplified)" msgstr "簡体中国語" #: ../src/scim_utility.cpp:792 ../src/scim_utility.cpp:794 msgid "Chinese (traditional)" msgstr "ç¹ä½“中国語" #: ../src/scim_utility.cpp:876 msgid "Other" msgstr "ãã®ä»–" #: ../src/scim_keyboard_layout_data.h:4591 #: ../modules/IMEngine/scim_socket_imengine.cpp:386 #: ../modules/IMEngine/scim_socket_imengine.cpp:416 #: ../modules/IMEngine/scim_socket_imengine.cpp:501 #: ../modules/IMEngine/scim_socket_imengine.cpp:531 #: ../modules/IMEngine/scim_socket_imengine.cpp:561 msgid "Unknown" msgstr "䏿˜Ž" #: ../src/scim_keyboard_layout_data.h:4592 msgid "English (US)" msgstr "英語(US)" #: ../src/scim_keyboard_layout_data.h:4593 msgid "Belgian" msgstr "ベルギー" #: ../src/scim_keyboard_layout_data.h:4596 msgid "Czech (qwerty)" msgstr "ãƒã‚§ã‚³èªž(qwerty)" #: ../src/scim_keyboard_layout_data.h:4599 msgid "Dvorak" msgstr "Dvorak" #: ../src/scim_keyboard_layout_data.h:4603 msgid "French (Canadian)" msgstr "フランス語(カナダ)" #: ../src/scim_keyboard_layout_data.h:4604 msgid "French (Switzerland)" msgstr "フランス語(スイス)" #: ../src/scim_keyboard_layout_data.h:4606 msgid "German (with deadkeys)" msgstr "ドイツ語(deadkeyã‚り)" #: ../src/scim_keyboard_layout_data.h:4607 msgid "German (Swiss)" msgstr "ドイツ語(スイス)" #: ../src/scim_keyboard_layout_data.h:4612 msgid "Norwegian" msgstr "ノルウェー語" #: ../src/scim_keyboard_layout_data.h:4616 msgid "Portuguese (Brazil US accents)" msgstr "ãƒãƒ«ãƒˆã‚¬ãƒ«èªž(ブラジルUSアクセント)" #: ../src/scim_keyboard_layout_data.h:4619 msgid "Slovak (qwerty)" msgstr "スロãƒã‚­ã‚¢èªž(qwerty)" #: ../src/scim_keyboard_layout_data.h:4622 msgid "Spanish (CP 850)" msgstr "スペイン語(CP 850)" #: ../src/scim_keyboard_layout_data.h:4623 msgid "Spanish (Latin America)" msgstr "スペイン語(ラテンアメリカ)" #: ../src/scim_keyboard_layout_data.h:4626 msgid "English (UK)" msgstr "英語(UK)" #: ../modules/Filter/scim_sctc_filter.cpp:57 msgid "Simplified-Traditional Chinese Conversion" msgstr "簡体-ç¹ä½“中国語相互変æ›" #: ../modules/Filter/scim_sctc_filter.cpp:60 msgid "Convert between Simplified Chinese and Traditional Chinese" msgstr "簡体中国語ã¨ç¹ä½“中国語を相互変æ›ã™ã‚‹" #: ../modules/Filter/scim_sctc_filter.cpp:71 msgid "SC-TC" msgstr "簡体-ç¹ä½“" #: ../modules/Filter/scim_sctc_filter.cpp:73 #: ../modules/Filter/scim_sctc_filter.cpp:78 msgid "Simplified-Traditional Chinese conversion" msgstr "簡体-ç¹ä½“中国語相互変æ›" #: ../modules/Filter/scim_sctc_filter.cpp:76 msgid "No Conversion" msgstr "変æ›ã—ãªã„" #: ../modules/Filter/scim_sctc_filter.cpp:81 msgid "Simplified to Traditional" msgstr "簡体ã‹ã‚‰ç¹ä½“ã¸" #: ../modules/Filter/scim_sctc_filter.cpp:83 msgid "Convert Simplified Chinese to Traditional Chinese" msgstr "簡体中国語をç¹ä½“中国語ã«å¤‰æ›ã™ã‚‹" #: ../modules/Filter/scim_sctc_filter.cpp:86 msgid "Traditional to Simplified" msgstr "ç¹ä½“ã‹ã‚‰ç°¡ä½“ã¸" #: ../modules/Filter/scim_sctc_filter.cpp:88 msgid "Convert Traditional Chinese to Simplified Chinese" msgstr "ç¹ä½“中国語を簡体中国語ã«å¤‰æ›ã™ã‚‹" #: ../modules/Filter/scim_sctc_filter.cpp:300 msgid "James Su " msgstr "(C) 2002-2004 James Su " #: ../modules/Filter/scim_sctc_filter.cpp:425 #: ../modules/Filter/scim_sctc_filter.cpp:555 #: ../modules/Filter/scim_sctc_filter.cpp:571 msgid "SC->TC" msgstr "簡体->ç¹ä½“" #: ../modules/Filter/scim_sctc_filter.cpp:431 #: ../modules/Filter/scim_sctc_filter.cpp:559 #: ../modules/Filter/scim_sctc_filter.cpp:575 msgid "TC->SC" msgstr "ç¹ä½“->簡体" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1845 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1231 #: ../extras/panel/scim_panel_gtk.cpp:2304 msgid "Smart Common Input Method platform " msgstr "Smart Common Input Method platform" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1847 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1233 msgid "" "\n" "(C) 2002-2005 James Su \n" "\n" msgstr "" "\n" "(C) 2002-2005 James Su \n" "\n" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1851 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1238 msgid "" ":\n" "\n" msgstr "" ":\n" "\n" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1854 #: ../modules/FrontEnd/scim_x11_frontend.cpp:1857 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1241 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1244 msgid "" "\n" "\n" msgstr "" "\n" "\n" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:120 msgid "RAW CODE" msgstr "RAW CODE" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:127 msgid "(C) 2002-2006 James Su " msgstr "(C) 2002-2006 James Su " #: ../modules/IMEngine/scim_rawcode_imengine.cpp:140 msgid "" "Hot Keys:\n" "\n" " Control+u:\n" " switch between Multibyte encoding and Unicode.\n" "\n" " Esc:\n" " reset the input method.\n" msgstr "" "ホットキー:\n" "\n" " Control+u:\n" " マルãƒãƒã‚¤ãƒˆã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰/ユニコードã®åˆ‡æ›¿ãˆ\n" "\n" " Esc:\n" " 入力メソッドをリセット\n" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:407 #: ../modules/IMEngine/scim_rawcode_imengine.cpp:423 msgid "The status of the current input method. Click to change it." msgstr "ç¾åœ¨ã®å…¥åŠ›ãƒ¢ãƒ¼ãƒ‰ã€‚å¤‰æ›´ã™ã‚‹ã«ã¯ã“ã“をクリックã—ã¦ä¸‹ã•ã„。" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:409 msgid "Unicode" msgstr "ユニコード" #: ../modules/SetupUI/scim_frontend_setup.cpp:82 #: ../modules/SetupUI/scim_imengine_setup.cpp:88 msgid "Global Setup" msgstr "全体設定" #: ../modules/SetupUI/scim_frontend_setup.cpp:87 msgid "" "Setup the global options used by All FrontEnd modules, including X11 " "FrontEnd, GTK IMModule, QT IMModule etc." msgstr "" "å…¨ã¦ã®ãƒ•ロントエンドモジュール(X11 FrontEnd/GTK-Immoduele/Qt-Immoduleã‚’å«ã‚€)" "ã§ä½¿ç”¨ã™ã‚‹å…¨ä½“オプションを設定" #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:143 msgid "_Trigger:" msgstr "é–‹å§‹/終了(_T):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:145 msgid "Select the trigger keys" msgstr "é–‹å§‹/終了キーã®è¨­å®š" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:147 msgid "" "The key events to turn on/off SCIM input method. Click on the button on the " "right to edit it." msgstr "" "入力メソッドを開始/終了ã™ã‚‹ã‚­ãƒ¼ã€‚変更ã™ã‚‹\n" "å ´åˆã¯å³ã®ãƒœã‚¿ãƒ³ã‚’クリックã—ã¦ä¸‹ã•ã„。" #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:160 msgid "Turn _On:" msgstr "é–‹å§‹(_O):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:162 msgid "Select the Turn On keys" msgstr "開始キーã®è¨­å®š" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:164 msgid "" "The key events to turn on SCIM input method. Click on the button on the " "right to edit it." msgstr "" "入力メソッドを開始ã™ã‚‹ã‚­ãƒ¼ã€‚変更ã™ã‚‹å ´åˆã¯\n" "å³ã®ãƒœã‚¿ãƒ³ã‚’クリックã—ã¦ä¸‹ã•ã„。" #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:177 msgid "Turn O_ff:" msgstr "終了(_F):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:179 msgid "Select the Turn Off keys" msgstr "終了キーã®è¨­å®š" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:181 msgid "" "The key events to turn off SCIM input method. Click on the button on the " "right to edit it." msgstr "" "入力メソッドを終了ã™ã‚‹ã‚­ãƒ¼ã€‚変更ã™ã‚‹å ´åˆã¯\n" "å³ã®ãƒœã‚¿ãƒ³ã‚’クリックã—ã¦ä¸‹ã•ã„。" #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:194 msgid "_Next input method:" msgstr "次ã®å…¥åŠ›ãƒ¡ã‚½ãƒƒãƒ‰(_N):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:196 msgid "Select the next input method keys" msgstr "次ã®å…¥åŠ›ãƒ¡ã‚½ãƒƒãƒ‰ã‚­ãƒ¼ã®è¨­å®š" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:198 msgid "" "The key events to switch to the next input method. Click on the button on " "the right to edit it." msgstr "" "次ã®å…¥åŠ›ãƒ¡ã‚½ãƒƒãƒ‰ã«åˆ‡æ›¿ãˆã‚‹ã‚­ãƒ¼ã€‚変更ã™ã‚‹å ´åˆã¯\n" "å³ã®ãƒœã‚¿ãƒ³ã‚’クリックã—ã¦ä¸‹ã•ã„。" #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:213 msgid "_Previous input method:" msgstr "å‰ã®å…¥åŠ›ãƒ¡ã‚½ãƒƒãƒ‰(_P):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:215 msgid "Select the previous input method keys" msgstr "å‰ã®å…¥åŠ›ãƒ¡ã‚½ãƒƒãƒ‰ã‚­ãƒ¼ã®è¨­å®š" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:217 msgid "" "The key events to switch to the previous input method. Click on the button " "on the right to edit it." msgstr "" "å‰ã®å…¥åŠ›ãƒ¡ã‚½ãƒƒãƒ‰ã«åˆ‡æ›¿ãˆã‚‹ã‚­ãƒ¼ã€‚変更ã™ã‚‹å ´åˆã¯\n" "å³ã®ãƒœã‚¿ãƒ³ã‚’クリックã—ã¦ä¸‹ã•ã„。" #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:232 msgid "Show input method _menu:" msgstr "入力メソッドメニューを表示(_M):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:234 msgid "Select the show input method menu keys" msgstr "入力メソッドメニュー表示キーã®è¨­å®š" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:236 msgid "" "The key events to show the input method menu. Click on the button on the " "right to edit it." msgstr "" "入力メソッドメニューを表示ã•ã›ã‚‹ã‚­ãƒ¼ã€‚変更ã™ã‚‹\n" "å ´åˆã¯å³ã®ãƒœã‚¿ãƒ³ã‚’クリックã—ã¦ä¸‹ã•ã„。" #: ../modules/SetupUI/scim_frontend_setup.cpp:306 msgid "Options" msgstr "オプション" #: ../modules/SetupUI/scim_frontend_setup.cpp:321 msgid "_Keyboard Layout:" msgstr "キーボードé…列(_K):" #: ../modules/SetupUI/scim_frontend_setup.cpp:342 msgid "" "You should choose your currently used keyboard layout here so that input " "methods, who care about keyboard layout, could work correctly." msgstr "" "キーボードé…列をèªè­˜ã™ã‚‹å…¥åŠ›ãƒ¡ã‚½ãƒƒãƒ‰ãŒæ­£ã—ã動作ã™ã‚‹ã‚ˆã†ã«ã€ç¾åœ¨ä½¿ç”¨ã•れã¦ã„" "るキーボードé…列をé¸ã‚“ã§ãã ã•ã„。" #. On The Spot. #: ../modules/SetupUI/scim_frontend_setup.cpp:346 msgid "_Embed Preedit String into client window" msgstr "未確定文字列を入力対象クライアントã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã«è¡¨ç¤º(_E)" #: ../modules/SetupUI/scim_frontend_setup.cpp:351 msgid "" "If this option is checked, the preedit string will be displayed directly in " "the client input window, rather than in a independent float window." msgstr "" "ã“ã®ã‚ªãƒ—ションを有効ã«ã™ã‚‹ã¨ã€æœªç¢ºå®šæ–‡å­—列ã¯ç‹¬ç«‹ã—ãŸå…¥åŠ›ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã«ã§ã¯ãªã" "入力対象クライアントã«ç›´æŽ¥è¡¨ç¤ºã•れã¾ã™ã€‚" #. Shared input method. #: ../modules/SetupUI/scim_frontend_setup.cpp:360 msgid "_Share the same input method among all applications" msgstr "å…¨ã¦ã®ã‚¢ãƒ—リケーションã§åŒä¸€å…¥åŠ›ãƒ¡ã‚½ãƒƒãƒ‰ã‚’ä½¿ç”¨(_S)" #: ../modules/SetupUI/scim_frontend_setup.cpp:365 msgid "" "If this option is checked, then only one input method could be used by all " "applications at the same time.Otherwise different input method could be used " "by each application." msgstr "" "ã“ã®ã‚ªãƒ—ションを有効ã«ã™ã‚‹ã¨ã€åŒä¸€ã®å…¥åŠ›ãƒ¡ã‚½ãƒƒãƒ‰ã‚’å…¨ã¦ã®ã‚¢ãƒ—リケーションã§ä½¿" "用ã§ãるよã†ã«ãªã‚Šã¾ã™ã€‚アプリケーションã”ã¨ã«åˆ¥ã€…ã®å…¥åŠ›ãƒ¡ã‚½ãƒƒãƒ‰ã‚’ä½¿ç”¨ã™ã‚‹å ´" "åˆã¯ã“ã®ã‚ªãƒ—ションを無効ã«ã—ã¦ä¸‹ã•ã„。" #: ../modules/SetupUI/scim_frontend_setup.cpp:373 #: ../modules/SetupUI/scim_imengine_setup.cpp:453 msgid "Hotkeys" msgstr "ホットキー" #: ../modules/SetupUI/scim_imengine_setup.cpp:93 msgid "You can enable/disable input methods and set hotkeys for input methods here." msgstr "å…¥åŠ›ãƒ¡ã‚½ãƒƒãƒ‰ã®æœ‰åй/無効ã¨ãƒ›ãƒƒãƒˆã‚­ãƒ¼ã®è¨­å®šã‚’行ã„ã¾ã™ã€‚" #: ../modules/SetupUI/scim_imengine_setup.cpp:296 msgid "The installed input method services:" msgstr "インストールã•れã¦ã„る入力メソッド:" #. Create hotkey and filter button before factory list view, because #. factory_list_selection_changed_callback may access these two buttons. #: ../modules/SetupUI/scim_imengine_setup.cpp:311 msgid "Edit _Hotkeys" msgstr "ホットキー(_H)" #: ../modules/SetupUI/scim_imengine_setup.cpp:320 msgid "Edit Hotkeys associated with the selected input method." msgstr "ã“ã®å…¥åŠ›ãƒ¡ã‚½ãƒƒãƒ‰ã«åˆ‡ã‚Šæ›¿ãˆã‚‹ãƒ›ãƒƒãƒˆã‚­ãƒ¼ã‚’編集" #: ../modules/SetupUI/scim_imengine_setup.cpp:322 msgid "Select _Filters" msgstr "フィルター(_F)" #: ../modules/SetupUI/scim_imengine_setup.cpp:331 msgid "Select the Filters which will be attached to this input method." msgstr "ã“ã®å…¥åŠ›ãƒ¡ã‚½ãƒƒãƒ‰ã§ä½¿ç”¨ã™ã‚‹ãƒ•ã‚£ãƒ«ã‚¿ãƒ¼ã‚’é¸æŠž" #: ../modules/SetupUI/scim_imengine_setup.cpp:348 msgid "_Expand" msgstr "é–‹ã(_E)" #: ../modules/SetupUI/scim_imengine_setup.cpp:357 msgid "Expand all language categories." msgstr "å…¨ã¦ã®è¨€èªžã‚°ãƒ«ãƒ¼ãƒ—を展開ã™ã‚‹" #: ../modules/SetupUI/scim_imengine_setup.cpp:359 msgid "_Collapse" msgstr "é–‰ã˜ã‚‹(_C)" #: ../modules/SetupUI/scim_imengine_setup.cpp:368 msgid "Collapse all language categories." msgstr "å…¨ã¦ã®è¨€èªžã‚°ãƒ«ãƒ¼ãƒ—ã‚’é–‰ã˜ã‚‹" #: ../modules/SetupUI/scim_imengine_setup.cpp:370 msgid "E_nable All" msgstr "å…¨ã¦æœ‰åй(_N)" #: ../modules/SetupUI/scim_imengine_setup.cpp:379 msgid "Enable all input methods." msgstr "å…¨ã¦ã®å…¥åŠ›ãƒ¡ã‚½ãƒƒãƒ‰ã‚’æœ‰åŠ¹ã«ã™ã‚‹" #: ../modules/SetupUI/scim_imengine_setup.cpp:381 msgid "_Disable All" msgstr "å…¨ã¦ç„¡åй(_D)" #: ../modules/SetupUI/scim_imengine_setup.cpp:390 msgid "Disable all input methods." msgstr "å…¨ã¦ã®å…¥åŠ›ãƒ¡ã‚½ãƒƒãƒ‰ã‚’ç„¡åŠ¹ã«ã™ã‚‹" #: ../modules/SetupUI/scim_imengine_setup.cpp:414 #: ../modules/SetupUI/scim_imengine_setup.cpp:541 msgid "Name" msgstr "åç§°" #: ../modules/SetupUI/scim_imengine_setup.cpp:432 #: ../modules/SetupUI/scim_imengine_setup.cpp:522 msgid "Enable" msgstr "有効ã«ã™ã‚‹" #: ../modules/SetupUI/scim_imengine_setup.cpp:467 msgid "Filters" msgstr "フィルター" #: ../modules/SetupUI/scim_imengine_setup.cpp:560 msgid "Languages" msgstr "言語" #: ../modules/SetupUI/scim_imengine_setup.cpp:574 msgid "Description" msgstr "説明" #: ../modules/SetupUI/scim_imengine_setup.cpp:1190 #, c-format msgid "Edit Hotkeys for %s" msgstr "%s ã®ãƒ›ãƒƒãƒˆã‚­ãƒ¼ã‚’編集" #: ../modules/SetupUI/scim_imengine_setup.cpp:1417 #, c-format msgid "Select Filters for %s" msgstr "%s ã®ãƒ•ィルターを編集" #: ../modules/SetupUI/scim_imengine_setup.cpp:1450 msgid "Move _Up" msgstr "上ã«ç§»å‹•(_U)" #: ../modules/SetupUI/scim_imengine_setup.cpp:1457 msgid "Move _Down" msgstr "下ã«ç§»å‹•(_D)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:95 msgid "GTK" msgstr "GTK" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:100 msgid "A panel daemon based on GTK+-2.x library." msgstr "GTK+-2.xライブラリã«ã‚ˆã‚‹ãƒ‘ãƒãƒ«ãƒ‡ãƒ¼ãƒ¢ãƒ³" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:163 msgid "Always" msgstr "常ã«" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:164 msgid "On demand" msgstr "開始時ã«" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:165 msgid "Never" msgstr "ã—ãªã„" #. Create the ToolBar setup block. #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:211 msgid "ToolBar" msgstr "ツールãƒãƒ¼" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:229 msgid "_Show:" msgstr "表示(_S):" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:245 msgid "Auto s_nap" msgstr "オートスナップ(_N)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:251 msgid "Show _input method icon" msgstr "入力メソッドã®ã‚¢ã‚¤ã‚³ãƒ³ã‚’表示(_I)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:257 msgid "Show inp_ut method name" msgstr "入力メソッドã®å称を表示(_U)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:269 msgid "Hide time_out:" msgstr "オートãƒã‚¤ãƒ‰(_O):" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:282 msgid "Show s_tick icon" msgstr "スティックアイコンを表示(_T)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:288 msgid "Show m_enu icon" msgstr "メニューアイコンを表示(_E)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:294 msgid "Show _help icon" msgstr "ヘルプアイコンを表示(_H)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:300 msgid "Show _property label" msgstr "プロパティーラベルを表示(_P)" #. Create the Input Window setup block #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:311 msgid "Input window" msgstr "入力ウィンドウ" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:320 msgid "E_mbedded lookup table" msgstr "候補ウィンドウを埋ã‚込む(_M)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:324 msgid "_Vertical lookup table" msgstr "候補ウィンドウを縦ã«è¡¨ç¤º(_V)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:328 msgid "Misc" msgstr "ãã®ä»–" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:337 msgid "Show tra_y icon" msgstr "トレーアイコンを表示(_Y)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:341 msgid "Stick _windows" msgstr "ウィンドウを固定(_W)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:349 msgid "_Font:" msgstr "フォント(_F):" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:419 msgid "" "If option \"Always\" is selected, the toolbar will always be shown on the " "screen. If option \"On demand\" is selected, it will only be shown when SCIM " "is activated. If option \"Never\" is selected, it will never be shown." msgstr "" "\"常ã«\"ã‚’é¸ã¶ã¨ã€SCIMãŒã‚¢ã‚¯ãƒ†ã‚£ãƒ–ã§ãªã„時もツールãƒãƒ¼ãŒè¡¨ç¤ºã•れã¾ã™ã€‚\"é–‹å§‹" "時ã«\"ã‚’é¸ã¶ã¨ã€SCIMãŒã‚¢ã‚¯ãƒ†ã‚£ãƒ–ãªæ™‚ã ã‘表示ã•れã¾ã™ã€‚\"ã—ãªã„\"ã‚’é¸ã¶ã¨ã€" "SCIMãŒã‚¢ã‚¯ãƒ†ã‚£ãƒ–ãªæ™‚もツールãƒãƒ¼ã¯è¡¨ç¤ºã•れã¾ã›ã‚“。" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:426 msgid "If this option is checked, the toolbar will be snapped to the screen border." msgstr "" "ã“ã®ã‚ªãƒ—ションを有効ã«ã™ã‚‹ã¨ãƒ„ールãƒãƒ¼ãŒ\n" "自動的ã«ã‚¹ã‚¯ãƒªãƒ¼ãƒ³ã®ç«¯ã«ç§»å‹•ã—ã¾ã™ã€‚" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:431 msgid "" "The toolbar will be hidden out after this timeout is elapsed. This option is " "only valid when \"Always show\" is selected. Set to zero to disable this " "behavior." msgstr "" "ã“ã“ã§è¨­å®šã—ãŸæ™‚é–“ãŒçµŒéŽã™ã‚‹ã¨ãƒ„ールãƒãƒ¼ã¯è‡ªå‹•çš„ã«æ¶ˆãˆã¾ã™ã€‚ã“ã®ã‚ªãƒ—ションã¯" "表示ã«\"常ã«\"ãŒé¸æŠžã•れã¦ã„ã‚‹å ´åˆã«ã®ã¿æœ‰åйã§ã™ã€‚オートãƒã‚¤ãƒ‰ã‚’無効ã«ã™ã‚‹ã«" "ã¯å€¤ã‚’ゼロã«ã—ã¦ä¸‹ã•ã„。" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:438 msgid "" "If this option is checked, the input method icon will be showed on the " "toolbar." msgstr "" "ã“ã®ã‚ªãƒ—ションを有効ã«ã™ã‚‹ã¨å…¥åŠ›ãƒ¡ã‚½ãƒƒãƒ‰ã®\n" "アイコンãŒãƒ„ールãƒãƒ¼ã«è¡¨ç¤ºã•れã¾ã™ã€‚" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:442 msgid "" "If this option is checked, the input method name will be showed on the " "toolbar." msgstr "" "ã“ã®ã‚ªãƒ—ションを有効ã«ã™ã‚‹ã¨å…¥åŠ›ãƒ¡ã‚½ãƒƒãƒ‰ã®\n" "åç§°ãŒãƒ„ールãƒãƒ¼ã«è¡¨ç¤ºã•れã¾ã™ã€‚" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:446 msgid "If this option is checked, the stick icon will be showed on the toolbar." msgstr "" "ã“ã®ã‚ªãƒ—ションを有効ã«ã™ã‚‹ã¨ã‚¹ãƒ†ã‚£ãƒƒã‚¯ã‚¢ã‚¤ã‚³ãƒ³ãŒ\n" "ツールãƒãƒ¼ã«è¡¨ç¤ºã•れã¾ã™ã€‚" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:450 msgid "If this option is checked, the menu icon will be showed on the toolbar." msgstr "" "ã“ã®ã‚ªãƒ—ションを有効ã«ã™ã‚‹ã¨ãƒ¡ãƒ‹ãƒ¥ãƒ¼ã‚¢ã‚¤ã‚³ãƒ³ãŒ\n" "ツールãƒãƒ¼ã«è¡¨ç¤ºã•れã¾ã™ã€‚" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:454 msgid "If this option is checked, the help icon will be showed on the toolbar." msgstr "" "ã“ã®ã‚ªãƒ—ションを有効ã«ã™ã‚‹ã¨ãƒ˜ãƒ«ãƒ—アイコンãŒ\n" "ツールãƒãƒ¼ã«è¡¨ç¤ºã•れã¾ã™ã€‚" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:458 msgid "" "If this option is checked, the text label of input method properties will be " "showed on the toolbar." msgstr "" "ã“ã®ã‚ªãƒ—ションを有効ã«ã™ã‚‹ã¨å…¥åŠ›ãƒ¡ã‚½ãƒƒãƒ‰ã®\n" "プロパティーãŒãƒ„ールãƒãƒ¼ã«ãƒ†ã‚­ã‚¹ãƒˆè¡¨ç¤ºã•れã¾ã™ã€‚" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:462 msgid "" "If this option is checked, the lookup table will be embedded into the input " "window." msgstr "" "ã“ã®ã‚ªãƒ—ションを有効ã«ã™ã‚‹ã¨å€™è£œã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ãŒ\n" "入力ウィンドウã®ä¸­ã«è¡¨ç¤ºã•れã¾ã™ã€‚" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:467 msgid "If this option is checked, the lookup table will be displayed vertically." msgstr "" "ã“ã®ã‚ªãƒ—ションを有効ã«ã™ã‚‹ã¨å€™è£œã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ãŒ\n" "縦ã«è¡¨ç¤ºã•れã¾ã™ã€‚" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:472 msgid "" "If this option is checked, the tray icon will be showed on the desktop's " "taskbar." msgstr "" "ã“ã®ã‚ªãƒ—ションを有効ã«ã™ã‚‹ã¨ãƒˆãƒ¬ãƒ¼ã‚¢ã‚¤ã‚³ãƒ³ãŒ\n" "タスクãƒãƒ¼ã«è¡¨ç¤ºã•れã¾ã™ã€‚" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:476 msgid "" "If this option is checked, the toolbar, input and lookup table windows will " "be sticked to its original position." msgstr "" "ã“ã®ã‚ªãƒ—ションを有効ã«ã™ã‚‹ã¨ãƒ„ールãƒãƒ¼ã¨å…¥åŠ›/候補ウィンドウãŒ\n" "本æ¥ã®è¡¨ç¤ºä½ç½®ã«å›ºå®šã•れã¾ã™ã€‚" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:482 msgid "The font setting will be used in the input and lookup table windows." msgstr "ã“ã®ãƒ•ォント設定ã¯å…¥åŠ›/候補ウィンドウã«é©ç”¨ã•れã¾ã™ã€‚" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:801 msgid "Select Interface Font" msgstr "インターフェイスã®ãƒ•ã‚©ãƒ³ãƒˆã‚’é¸æŠž" #: ../extras/setup/scim_setup_ui.cpp:47 msgid "SCIM" msgstr "SCIM" #: ../extras/setup/scim_setup_ui.cpp:48 msgid "FrontEnd" msgstr "フロントエンド" #: ../extras/setup/scim_setup_ui.cpp:49 msgid "IMEngine" msgstr "IMエンジン" #: ../extras/setup/scim_setup_ui.cpp:50 msgid "Panel" msgstr "パãƒãƒ«" #: ../extras/setup/scim_setup_ui.cpp:51 msgid "Extra" msgstr "ãã®ä»–" #. #. vi:ts=4:nowrap:ai:expandtab #. #: ../extras/setup/scim_setup_ui.cpp:230 #: ../extras/setup/scim-setup.desktop.in.h:1 msgid "SCIM Input Method Setup" msgstr "SCIM入力メソッドã®è¨­å®š" #: ../extras/setup/scim_setup_ui.cpp:369 msgid "" " Smart Common Input Method platform \n" "\n" "GUI Setup Utility\n" "\n" "\n" "\n" "Copyright 2002-2004, James Su <suzhe@tsinghua.org." "cn>" msgstr "" " Smart Common Input Method platform \n" "\n" "GUI セットアップユーティリティ\n" "\n" "\n" "\n" "Copyright 2002-2004, James Su <suzhe@tsinghua.org." "cn>" #: ../extras/setup/scim_setup_ui.cpp:394 #, c-format msgid "The Setup for %s modules." msgstr "%s モジュールã®è¨­å®š" #msgid "Are you sure you want to quit SCIM Setup?" #msgstr "SCIMã®è¨­å®šã‚’終了ã—ã¾ã™ã‹ï¼Ÿ" #: ../extras/setup/scim_setup_ui.cpp:661 msgid "" "Not all configuration can be reloaded on the fly. Don't forget to restart " "SCIM in order to let all of the new configuration take effect." msgstr "" "ã™ãã«æœ‰åйã«ãªã‚‰ãªã„設定項目ãŒã‚りã¾ã™ã€‚\n" "ã™ã¹ã¦ã®å¤‰æ›´ã‚’有効ã«ã™ã‚‹ã«ã¯SCIMã‚’å†èµ·å‹•ã—ã¦ä¸‹ã•ã„。" #: ../extras/setup/scim_setup_helper.cpp:49 msgid "SCIM Setup" msgstr "SCIMを設定" #: ../extras/setup/scim_setup_helper.cpp:51 msgid "Integrated Setup Utility based on GTK Widget library." msgstr "GTK Widget library ã«åŸºã¥ãçµ±åˆè¨­å®šãƒ¦ãƒ¼ãƒ†ã‚£ãƒªãƒ†ã‚£" #: ../extras/setup/scim-setup.desktop.in.h:2 msgid "Setup utility for Smart Common Input Method platform" msgstr "Smart Common Input Method platform セットアップユーティリティ" #: ../extras/panel/scim_panel_gtk.cpp:982 msgid "SCIM Help" msgstr "SCIMヘルプ" #: ../extras/panel/scim_panel_gtk.cpp:999 msgid "Smart Common Input Method" msgstr "Smart Common Input Method" #: ../extras/panel/scim_panel_gtk.cpp:1058 msgid "Stick/unstick the input window and the toolbar." msgstr "入力ウィンドウ・ツールãƒãƒ¼ã‚’固定ã™ã‚‹/固定ã—ãªã„" #: ../extras/panel/scim_panel_gtk.cpp:1063 msgid "Show a brief help about SCIM and the current input method." msgstr "SCIMã¨ç¾åœ¨ã®å…¥åŠ›ãƒ¡ã‚½ãƒƒãƒ‰ã«ã¤ã„ã¦ç°¡å˜ãªãƒ˜ãƒ«ãƒ—を表示ã—ã¾ã™" #: ../extras/panel/scim_panel_gtk.cpp:1068 msgid "Show command menu." msgstr "コマンドメニューを表示" #: ../extras/panel/scim_panel_gtk.cpp:2306 msgid "" "\n" "(C) 2002-2005 James Su " msgstr "" "\n" "(C) 2002-2005 James Su " #. Reload Configuration. #: ../extras/panel/scim_panel_gtk.cpp:2385 msgid "Reload Configuration" msgstr "設定をリロード" #. Stick #: ../extras/panel/scim_panel_gtk.cpp:2395 msgid "Stick Windows" msgstr "ウィンドウを固定" #. Toolbar #: ../extras/panel/scim_panel_gtk.cpp:2404 msgid "Hide Toolbar" msgstr "ツールãƒãƒ¼ã‚’éš ã™" #. Help #: ../extras/panel/scim_panel_gtk.cpp:2413 msgid "Help ..." msgstr "ヘルプ..." #. Clients exit. #: ../extras/panel/scim_panel_gtk.cpp:2431 msgid "Exit" msgstr "終了" #: ../utils/scimstringview.c:196 msgid "Cursor Position" msgstr "カーソルä½ç½®" #: ../utils/scimstringview.c:197 msgid "The current position of the insertion cursor in chars." msgstr "ç¾åœ¨ã®ã‚«ãƒ¼ã‚½ãƒ«ä½ç½®" #: ../utils/scimstringview.c:206 msgid "Maximum length" msgstr "最大ã®é•·ã•" #: ../utils/scimstringview.c:207 msgid "Maximum number of characters for this string view. Zero if no maximum." msgstr "String viewã‚¦ã‚£ã‚¸ã‚§ãƒƒãƒˆã®æœ€å¤§è¡¨ç¤ºæ–‡å­—数。無制é™ã®å ´åˆã¯0を指定ã—ã¦ä¸‹ã•ã„。" #: ../utils/scimstringview.c:216 msgid "Maximum width" msgstr "最大幅" #: ../utils/scimstringview.c:217 msgid "Maximum width of this string view." msgstr "String viewã‚¦ã‚£ã‚¸ã‚§ãƒƒãƒˆã®æœ€å¤§è¡¨ç¤ºå¹…" #: ../utils/scimstringview.c:226 msgid "Has Frame" msgstr "フレーム有りã‹ã©ã†ã‹" #: ../utils/scimstringview.c:227 msgid "FALSE removes outside bevel from string view." msgstr "FALSEを指定ã—ãŸå ´åˆã€æ–‡å­—表示ウィジェットã®ç¸å–りをæç”»ã—ã¾ã›ã‚“。" #: ../utils/scimstringview.c:234 msgid "Draw cursor" msgstr "カーソルをæç”»ã™ã‚‹" #: ../utils/scimstringview.c:235 msgid "TRUE draw blinking cursor." msgstr "TRUEを指定ã—ãŸå ´åˆã€ã‚«ãƒ¼ã‚½ãƒ«ã‚’点滅ã•ã›ã¾ã™ã€‚" #: ../utils/scimstringview.c:242 msgid "Auto move cursor" msgstr "カーソルã®è‡ªå‹•移動" #: ../utils/scimstringview.c:243 msgid "TRUE auto move cursor position when mouse clicking." msgstr "TRUEを指定ã—ãŸå ´åˆã€ãƒžã‚¦ã‚¹ã‚¯ãƒªãƒƒã‚¯ã•れãŸä½ç½®ã«ã‚«ãƒ¼ã‚½ãƒ«ãŒç§»å‹•ã—ã¾ã™ã€‚" #: ../utils/scimstringview.c:250 msgid "Forward button press event" msgstr "マウスボタンã®ã‚¤ãƒ™ãƒ³ãƒˆã‚’é€ã‚‹" #: ../utils/scimstringview.c:251 msgid "TRUE forward button press event to user program." msgstr "TRUEã®å ´åˆã¯ãƒžã‚¦ã‚¹ãƒœã‚¿ãƒ³ã®ã‚¤ãƒ™ãƒ³ãƒˆã‚’ユーザプログラムã«é€ã‚Šã¾ã™ã€‚" #: ../utils/scimstringview.c:258 msgid "Auto resize the widget to fit the string" msgstr "文字列ã«åˆã‚ã›ã¦ã‚¦ã‚£ã‚¸ã‚§ãƒƒãƒˆã®ã‚µã‚¤ã‚ºã‚’自動調整" #: ../utils/scimstringview.c:259 msgid "TRUE Auto resize on." msgstr "TRUEを指定ã—ãŸã€å ´åˆã¯ã‚¦ã‚£ã‚¸ã‚§ãƒƒãƒˆã‚µã‚¤ã‚ºã‚’自動的ã«èª¿æ•´ã—ã¾ã™ã€‚" #: ../utils/scimstringview.c:266 msgid "Width in chars" msgstr "文字ã®å¹…" #: ../utils/scimstringview.c:267 msgid "Number of characters to leave space for in the string view." msgstr "String viewウィジェットã«è¡¨ç¤ºã™ã‚‹æ–‡å­—æ•°" #: ../utils/scimstringview.c:276 msgid "Scroll offset" msgstr "スクロールオフセット" #: ../utils/scimstringview.c:277 msgid "Number of pixels of the string view scrolled off the screen to the left" msgstr "String viewウィジェットãŒç”»é¢å·¦ç«¯ã«ç•³ã¿è¾¼ã¾ã‚ŒãŸéš›ã®è¡¨ç¤ºãƒ”クセル数" #: ../utils/scimstringview.c:286 msgid "Text" msgstr "テキスト" #: ../utils/scimstringview.c:287 msgid "The contents of the string view" msgstr "String viewウィジェットã®å†…容" #: ../utils/scimkeyselection.cpp:155 msgid "Selected _Keys:" msgstr "設定済ã®ã‚­ãƒ¼:" #: ../utils/scimkeyselection.cpp:200 msgid "Key Code:" msgstr "キーコード:" #: ../utils/scimkeyselection.cpp:218 msgid "..." msgstr "..." #: ../utils/scimkeyselection.cpp:223 msgid "Modifiers:" msgstr "モディファイア:" #: ../utils/scimkeyselection.cpp:236 msgid "_Ctrl" msgstr "_Ctrl" #: ../utils/scimkeyselection.cpp:240 msgid "A_lt" msgstr "A_lt" #: ../utils/scimkeyselection.cpp:244 msgid "_Shift" msgstr "_Shift" #: ../utils/scimkeyselection.cpp:248 msgid "_Release" msgstr "リリース(_R)" #: ../utils/scimkeyselection.cpp:258 msgid "_Meta" msgstr "_Meta" #: ../utils/scimkeyselection.cpp:262 msgid "S_uper" msgstr "S_uper" #: ../utils/scimkeyselection.cpp:266 msgid "_Hyper" msgstr "_Hyper" #: ../utils/scimkeyselection.cpp:331 msgid "Please enter a Key Code first." msgstr "キーコードを先ã«å…¥åŠ›ã—ã¦ä¸‹ã•ã„。" #: ../utils/scimkeyselection.cpp:385 msgid "" "Press a key (or a key combination).\n" "This dialog will be closed when the key is released." msgstr "" "キー(もã—ãã¯è¤‡æ•°ã®ã‚­ãƒ¼ã®çµ„åˆã›ï¼‰ã‚’押ã—ã¦ä¸‹ã•ã„。\n" "キーをリリースã™ã‚‹ã¨ã“ã®ãƒ€ã‚¤ã‚¢ãƒ­ã‚°ã¯é–‰ã˜ã¾ã™ã€‚" #: ../utils/scimkeyselection.cpp:388 msgid "Grabbing a key." msgstr "ã‚­ãƒ¼é¸æŠž" #: ../utils/scimkeyselection.cpp:678 msgid "Key Selection" msgstr "ã‚­ãƒ¼é¸æŠž" #: ../utils/scimtrayicon.c:108 msgid "Orientation" msgstr "æ–¹å‘" #: ../utils/scimtrayicon.c:109 msgid "The orientation of the tray." msgstr "ãƒˆãƒ¬ã‚¤ã®æ–¹å‘" #~ msgid "Are you sure you want to quit SCIM Setup?" #~ msgstr "SCIMã®è¨­å®šã‚’終了ã—ã¾ã™ã‹ï¼Ÿ" #~ msgid "zh_CN,zh_TW,zh_HK,zh_SG,ja_JP,ko_KR" #~ msgstr "zh_CN,zh_TW,zh_HK,zh_SG,ja_JP,ko_KR" #~ msgid "En" #~ msgstr "En" #~ msgid "Preedit String mode" #~ msgstr "未確定文字列ã®è¡¨ç¤ºãƒ¢ãƒ¼ãƒ‰" #~ msgid "X Window" #~ msgstr "Xウィンドウ" #~ msgid "A FrontEnd module for X11R6 Window System, using XIM Protocol." #~ msgstr "" #~ "XIMプロトコルã«ã‚ˆã‚‹X11R6ウィンドウシステム用フロントエンドモジュール" #~ msgid "XIM Settings" #~ msgstr "XIMã®è¨­å®š" #~ msgid "_On The Spot" #~ msgstr "_On The Spot" #~ msgid "_Dynamic Event Flow" #~ msgstr "_Dynamic Event Flow" #~ msgid "" #~ "If this option is checked, the OnTheSpot input style will be used when " #~ "the client supports it." #~ msgstr "" #~ "ã“ã®ã‚ªãƒ—ションを有効ã«ã™ã‚‹ã¨On The Spot入力スタイルãŒé©ç”¨ã•れã¾ã™ã€‚但ã—ã€" #~ "クライアントå´ã®ã‚µãƒãƒ¼ãƒˆãŒå¿…è¦ã§ã™ã€‚" #~ msgid "" #~ "If this option is checked, then dynamic event flow will be used.This can " #~ "speed up the key event response, especially in remote X11 environment.But " #~ "SCIM may become unstable." #~ msgstr "" #~ "ã“ã®ã‚ªãƒ—ションを有効ã«ã™ã‚‹ã¨ã€ç‰¹ã«ãƒªãƒ¢ãƒ¼ãƒˆX11環境ã«ãŠã„ã¦ã‚­ãƒ¼ã‚¤ãƒ™ãƒ³ãƒˆã®ãƒ¬" #~ "スãƒãƒ³ã‚¹ã‚’å‘上ã•ã›ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚但ã—ã€SCIMãŒä¸å®‰å®šã«ãªã‚‹å ´åˆãŒã‚りã¾" #~ "ã™ã€‚" #~ msgid "Portuguese (Brazilian)" #~ msgstr "ãƒãƒ«ãƒˆã‚¬ãƒ«èªž(ブラジル)" #, fuzzy #~ msgid "Slovene" #~ msgstr "スロベニア語" #, fuzzy #~ msgid "Global" #~ msgstr "全体設定" #, fuzzy #~ msgid "" #~ "\n" #~ "(C) 2002-2004 James Su \n" #~ "\n" #~ msgstr "" #~ "\n" #~ "(C) 2002-2004 James Su " #~ msgid "" #~ "\n" #~ "(C) 2002-2004 James Su " #~ msgstr "" #~ "\n" #~ "(C) 2002-2004 James Su " #, fuzzy #~ msgid "Hot Keys" #~ msgstr "" #~ "ショートカットキー:\n" #~ "\n" #~ " " #~ msgid "" #~ "\n" #~ "(C) 2002-2004 James Su \n" #~ "\n" #~ "Hot keys:\n" #~ "\n" #~ " " #~ msgstr "" #~ "\n" #~ "(C) 2002-2004 James Su \n" #~ "\n" #~ "ショートカットキー:\n" #~ "\n" #~ " " #~ msgid "" #~ ":\n" #~ " open/close the input method.\n" #~ "\n" #~ " " #~ msgstr "" #~ ":\n" #~ " 入力メソッドを開始/終了ã™ã‚‹\n" #~ "\n" #~ " " #~ msgid "" #~ ":\n" #~ " switch to the next input method.\n" #~ "\n" #~ " " #~ msgstr "" #~ ":\n" #~ " 次ã®å…¥åŠ›ãƒ¡ã‚½ãƒƒãƒ‰ã«åˆ‡æ›¿ãˆã‚‹\n" #~ "\n" #~ " " #~ msgid "" #~ ":\n" #~ " switch to the previous input method.\n" #~ "\n" #~ "\n" #~ msgstr "" #~ ":\n" #~ " å‰ã®å…¥åŠ›ãƒ¡ã‚½ãƒƒãƒ‰ã«åˆ‡æ›¿ãˆã‚‹\n" #~ "\n" #~ "\n" #~ msgid "Full/Half Letter" #~ msgstr "全角/åŠè§’文字" #~ msgid "Full/Half Punct" #~ msgstr "全角/åŠè§’å¥èª­ç‚¹" #~ msgid "" #~ "The input mode of the letters. Click to toggle between half and full." #~ msgstr "" #~ "文字入力モード。全角/åŠè§’文字ã«åˆ‡æ›¿ãˆã‚‹ã«ã¯ã“ã“をクリックã—ã¦ä¸‹ã•ã„。" #~ msgid "" #~ "The input mode of the puncutations. Click to toggle between half and full." #~ msgstr "å¥èª­ç‚¹å…¥åŠ›ãƒ¢ãƒ¼ãƒ‰ã€‚å…¨è§’/åŠè§’ã«åˆ‡æ›¿ãˆã‚‹ã«ã¯ã“ã“をクリックã—ã¦ä¸‹ã•ã„。" #~ msgid "" #~ " Switch between full/half width letter mode.\n" #~ "\n" #~ " " #~ msgstr "" #~ " 全角/åŠè§’文字切替\n" #~ "\n" #~ " " #~ msgid "" #~ " Switch between full/half width punctuation mode.\n" #~ "\n" #~ " " #~ msgstr "" #~ " 全角/åŠè§’å¥èª­ç‚¹åˆ‡æ›¿\n" #~ "\n" #~ " " #~ msgid "" #~ " Switch between Forward/Input mode.\n" #~ "\n" #~ " " #~ msgstr "直接入力/変æ›å…¥åŠ›ãƒ¢ãƒ¼ãƒ‰ã«åˆ‡æ›¿" #~ msgid "" #~ " Add a new phrase.\n" #~ "\n" #~ " " #~ msgstr "" #~ " æ–°ã—ã„フレーズを追加ã™ã‚‹\n" #~ "\n" #~ " " #~ msgid "" #~ " Delete the selected phrase.\n" #~ "\n" #~ msgstr "" #~ " é¸æŠžã•れãŸãƒ•レーズを削除ã™ã‚‹\n" #~ "\n" #~ msgid "" #~ " Control+Down:\n" #~ " Move lookup cursor to next shorter phrase\n" #~ " Only available when LongPhraseFirst option is set.\n" #~ "\n" #~ msgstr "" #~ "Control+Down:\n" #~ " カーソルを次ã®ã‚ˆã‚ŠçŸ­ã„フレーズã«ç§»å‹•ã™ã‚‹\n" #~ " \"é•·ã„フレーズを優先的ã«è¡¨ç¤º\"ãŒæœ‰åйãªå ´åˆã®ã¿ä½¿ç”¨ã§ãã¾ã™ã€‚\n" #~ "\n" #~ msgid "" #~ " Control+Up:\n" #~ " Move lookup cursor to previous longer phrase\n" #~ " Only available when LongPhraseFirst option is set.\n" #~ "\n" #~ msgstr "" #~ " Control+Up:\n" #~ " カーソルをå‰ã®ã‚ˆã‚Šé•·ã„フレーズã«ç§»å‹•ã™ã‚‹\n" #~ " \"é•·ã„フレーズを優先的ã«è¡¨ç¤º\"ãŒæœ‰åйãªå ´åˆã®ã¿ä½¿ç”¨ã§ãã¾ã™ã€‚\n" #~ "\n" #~ msgid "" #~ " Esc:\n" #~ " reset the input method.\n" #~ "\n" #~ "\n" #~ msgstr "" #~ " Esc:\n" #~ " 入力メソッドをリセット\n" #~ "\n" #~ "\n" #~ msgid "" #~ "How to add a phrase:\n" #~ " Input the new phrase as normal, then press the\n" #~ " hot key. A hint will be shown to let you input a key\n" #~ " for this phrase.\n" #~ " Input a key then press the space bar.\n" #~ " A hint will be shown to indicate whether\n" #~ " the phrase was added sucessfully.\n" #~ msgstr "" #~ "フレーズã®è¿½åŠ æ–¹æ³•:\n" #~ " æ–°ã—ã„フレーズを普通ã«å…¥åŠ›ã—ショートカットキーを押ã—ã¾ã™ã€‚\n" #~ " ヒントãŒè¡¨ç¤ºã•れã€ãã®ãƒ•レーズを入力ã™ã‚‹éš›ã«ä½¿ã†ã‚­ãƒ¼ã®å…¥åŠ›\n" #~ " を促ã—ã¾ã™ã€‚\n" #~ " キーを入力ã—スペースを押ã—ã¦ä¸‹ã•ã„。\n" #~ " ヒントã«ãƒ•ãƒ¬ãƒ¼ã‚ºãŒæ­£ã—ã登録ã•れãŸã‹ã©ã†ã‹è¡¨ç¤ºã•れã¾ã™ã®ã§\n" #~ " 確èªã—ã¦ä¸‹ã•ã„。\n" #~ msgid "Input a key string for phrase: " #~ msgstr "ã“ã®ãƒ•レーズã«ä½¿ã†ã‚­ãƒ¼ã‚’入力ã—ã¦ä¸‹ã•ã„: " #~ msgid "Success." #~ msgstr "登録完了" #~ msgid "Failed." #~ msgstr "登録ã«å¤±æ•—ã—ã¾ã—ãŸ" #~ msgid "option -no cannot be used with -o\n" #~ msgstr "-noオプションã¯-oオプションã¨åŒæ™‚ã«ã¯ä½¿ç”¨ã§ãã¾ã›ã‚“\n" #~ msgid "option -o cannot be used with -no\n" #~ msgstr "-oオプションã¯-noオプションã¨åŒæ™‚ã«ã¯ä½¿ç”¨ã§ãã¾ã›ã‚“\n" #~ msgid "No argument for option " #~ msgstr "オプション引数ãŒã‚りã¾ã›ã‚“" #~ msgid "Invalid option: " #~ msgstr "オプションãŒç„¡åйã§ã™:" #~ msgid "Loading table file " #~ msgstr "テーブルを読込中" #~ msgid " ...\n" #~ msgstr " ...\n" #~ msgid "table file load failed!" #~ msgstr "テーブルã®èª­è¾¼ã«å¤±æ•—!" #~ msgid "Saving frequency table file " #~ msgstr "頻度テーブルをä¿å­˜ä¸­" #~ msgid "frequency table file load failed!" #~ msgstr "頻度テーブルã®èª­è¾¼ã«å¤±æ•—!" #~ msgid "Saving table file " #~ msgstr "テーブルをä¿å­˜ä¸­" #~ msgid "Table file save failed!" #~ msgstr "テーブルã®ä¿å­˜ã«å¤±æ•—!" #~ msgid "Generic Table" #~ msgstr "汎用テーブル" #~ msgid "An IMEngine Module which uses generic table input method file." #~ msgstr "汎用テーブル入力メソッドを使用ã™ã‚‹IMエンジンモジュール" #~ msgid "Full width _punctuation:" #~ msgstr "全角/åŠè§’å¥èª­ç‚¹(_P):" #~ msgid "Select full width puncutation keys" #~ msgstr "全角/åŠè§’å¥èª­ç‚¹åˆ‡æ›¿ã‚­ãƒ¼ã®è¨­å®š" #~ msgid "" #~ "The key events to switch full/half width punctuation input mode. Click on " #~ "the button on the right to edit it." #~ msgstr "" #~ "全角/åŠè§’å¥èª­ç‚¹ã‚’切替ãˆã‚‹ã‚­ãƒ¼ã€‚変更ã™ã‚‹\n" #~ "å ´åˆã¯å³ã®ãƒœã‚¿ãƒ³ã‚’クリックã—ã¦ä¸‹ã•ã„。" #~ msgid "Full width _letter:" #~ msgstr "全角/åŠè§’文字(_L):" #~ msgid "Select full width letter keys" #~ msgstr "全角/åŠè§’文字切替キーã®è¨­å®š" #~ msgid "" #~ "The key events to switch full/half width letter input mode. Click on the " #~ "button on the right to edit it." #~ msgstr "" #~ "全角/åŠè§’文字を切替ãˆã‚‹ã‚­ãƒ¼ã€‚変更ã™ã‚‹\n" #~ "å ´åˆã¯å³ã®ãƒœã‚¿ãƒ³ã‚’クリックã—ã¦ä¸‹ã•ã„。" #~ msgid "_Mode switch:" #~ msgstr "入力モード切替(_M):" #~ msgid "Select mode switch keys" #~ msgstr "入力モード切替キーã®è¨­å®š" #~ msgid "" #~ "The key events to change current input mode. Click on the button on the " #~ "right to edit it." #~ msgstr "" #~ "入力モードを切替ãˆã‚‹ã‚­ãƒ¼ã€‚変更ã™ã‚‹å ´åˆã¯\n" #~ "å³ã®ãƒœã‚¿ãƒ³ã‚’クリックã—ã¦ä¸‹ã•ã„。" #~ msgid "_Add phrase:" #~ msgstr "フレーズ追加(_A):" #~ msgid "Select add phrase keys." #~ msgstr "フレーズ追加キーã®è¨­å®š" #~ msgid "" #~ "The key events to add a new user defined phrase. Click on the button on " #~ "the right to edit it." #~ msgstr "" #~ "æ–°ã—ã„フレーズを追加ã™ã‚‹ã‚­ãƒ¼ã€‚変更ã™ã‚‹\n" #~ "å ´åˆã¯å³ã®ãƒœã‚¿ãƒ³ã‚’クリックã—ã¦ä¸‹ã•ã„。" #~ msgid "_Delete phrase:" #~ msgstr "フレーズ削除(_D):" #~ msgid "Select delete phrase keys." #~ msgstr "フレーズ削除キーã®è¨­å®š" #~ msgid "" #~ "The key events to delete a selected phrase. Click on the button on the " #~ "right to edit it." #~ msgstr "" #~ "é¸æŠžã•れãŸãƒ•レーズを削除ã™ã‚‹ã‚­ãƒ¼ã€‚変更ã™ã‚‹\n" #~ "å ´åˆã¯å³ã®ãƒœã‚¿ãƒ³ã‚’クリックã—ã¦ä¸‹ã•ã„。" #~ msgid "Show _prompt" #~ msgstr "プロンプトを表示(_P)" #~ msgid "Show key _hint" #~ msgstr "ヒントキーを表示(_H)" #~ msgid "Save _user table in binary format" #~ msgstr "ユーザーテーブルをãƒã‚¤ãƒŠãƒªãƒ¼å½¢å¼ã§ä¿å­˜(_U)" #~ msgid "Show the u_ser defined phrases first" #~ msgstr "ユーザー定義フレーズを優先的ã«è¡¨ç¤º(_S)" #~ msgid "Show the _longer phrases first" #~ msgstr "é•·ã„フレーズを優先的ã«è¡¨ç¤º(_L)" #~ msgid "" #~ "If this option is checked, the key prompt of the currently selected " #~ "phrase will be shown." #~ msgstr "" #~ "ã“ã®ã‚ªãƒ—ションを有効ã«ã™ã‚‹ã¨é¸æŠžã•れãŸ\n" #~ "フレーズã®ã‚­ãƒ¼ãƒ—ロンプトãŒè¡¨ç¤ºã•れã¾ã™ã€‚" #~ msgid "" #~ "If this option is checked, the remaining keystrokes of the phraseswill be " #~ "shown on the lookup table." #~ msgstr "" #~ "ã“ã®ã‚ªãƒ—ションを有効ã«ã™ã‚‹ã¨ãƒ•ãƒ¬ãƒ¼ã‚ºã®æ®‹ã‚Šã®\n" #~ "キーストロークãŒå€™è£œã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã«è¡¨ç¤ºã•れã¾ã™ã€‚" #~ msgid "" #~ "If this option is checked, the user table will be stored with binary " #~ "format, this will increase the loading speed." #~ msgstr "" #~ "ã“ã®ã‚ªãƒ—ションを有効ã«ã™ã‚‹ã¨ãƒ¦ãƒ¼ã‚¶ãƒ¼å®šç¾©ãƒ†ãƒ¼ãƒ–ルãŒãƒã‚¤ãƒŠãƒªãƒ¼\n" #~ "å½¢å¼ã§ä¿å­˜ã•れã¾ã™ã€‚テーブルã®èª­è¾¼ãŒé€Ÿããªã‚Šã¾ã™ã€‚" #~ msgid "" #~ "If this option is checked, the user defined phrases will be shown in " #~ "front of others. " #~ msgstr "" #~ "ã“ã®ã‚ªãƒ—ションを有効ã«ã™ã‚‹ã¨ãƒ¦ãƒ¼ã‚¶ãƒ¼å®šç¾©ãƒ•レーズ\n" #~ "ãŒå„ªå…ˆçš„ã«è¡¨ç¤ºã•れã¾ã™ã€‚" #~ msgid "" #~ "If this option is checked, the longer phrase will be shown in front of " #~ "others. " #~ msgstr "" #~ "ã“ã®ã‚ªãƒ—ションを有効ã«ã™ã‚‹ã¨é•·ã„フレーズãŒ\n" #~ "優先的ã«è¡¨ç¤ºã•れã¾ã™ã€‚" #~ msgid "The installed tables:" #~ msgstr "インストール済ã¿ã®ãƒ†ãƒ¼ãƒ–ル:" #~ msgid "_Install" #~ msgstr "インストール(_I)" #~ msgid "Install a new table." #~ msgstr "æ–°ã—ã„テーブルをインストール" #~ msgid "_Delete" #~ msgstr "削除(_D)" #~ msgid "Delete the selected table." #~ msgstr "é¸æŠžã•れãŸãƒ†ãƒ¼ãƒ–ルを削除" #~ msgid "_Properties" #~ msgstr "プロパティー(_P)" #~ msgid "Edit the properties of the selected table." #~ msgstr "é¸æŠžã•れãŸãƒ†ãƒ¼ãƒ–ルã®ãƒ—ロパティーを編集" #~ msgid "Generic" #~ msgstr "全般" #~ msgid "Table Management" #~ msgstr "テーブル管ç†" #~ msgid "Select an icon file" #~ msgstr "ã‚¢ã‚¤ã‚³ãƒ³ãƒ•ã‚¡ã‚¤ãƒ«ã‚’é¸æŠž" #~ msgid "User" #~ msgstr "ユーザー" #~ msgid "System" #~ msgstr "システム" #~ msgid "Please select the table file to be installed." #~ msgstr "インストールã™ã‚‹ãƒ†ãƒ¼ãƒ–ãƒ«ãƒ•ã‚¡ã‚¤ãƒ«ã‚’é¸æŠžã—ã¦ä¸‹ã•ã„。" #~ msgid "Failed to install the table! It's already in table file directory." #~ msgstr "テーブルã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã«å¤±æ•—!ã™ã§ã«ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã•れã¦ã„ã¾ã™ã€‚" #~ msgid "Failed to load the table file!" #~ msgstr "テーブルファイルã®èª­è¾¼ã«å¤±æ•—!" #~ msgid "" #~ "Failed to install the table! Another version of this table was already " #~ "installed." #~ msgstr "" #~ "テーブルã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã«å¤±æ•—!ä»–ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ãŒ\n" #~ "ã™ã§ã«ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã•れã¦ã„ã¾ã™ã€‚" #~ msgid "" #~ "Another version of this table was already installed. Do you want to " #~ "replace it with the new one?" #~ msgstr "" #~ "ã“ã®ãƒ†ãƒ¼ãƒ–ルã®ä»–ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ãŒã™ã§ã«ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã•れã¦ã„ã¾ã™ã€‚\n" #~ "æ–°ã—ã„ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã«ç½®ãæ›ãˆã¾ã™ã‹?" #~ msgid "" #~ "Failed to install the table! A table with the same file name was already " #~ "installed." #~ msgstr "" #~ "テーブルã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã«å¤±æ•—!åŒã˜åå‰ã®ãƒ†ãƒ¼ãƒ–ルãŒ\n" #~ "ã™ã§ã«ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã•れã¦ã„ã¾ã™ã€‚" #~ msgid "" #~ "A table with the same file name was already installed. Do you want to " #~ "overwrite it?" #~ msgstr "" #~ "åŒã˜åå‰ã®ãƒ†ãƒ¼ãƒ–ルãŒã™ã§ã«ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã•れã¦ã„ã¾ã™ã€‚\n" #~ "上書ãã—ã¾ã™ã‹?" #~ msgid "Failed to install the table to %s!" #~ msgstr "%sã«ãƒ†ãƒ¼ãƒ–ルをインストールã§ãã¾ã›ã‚“ã§ã—ãŸ!" #~ msgid "Can not delete the file %s!" #~ msgstr "ファイル%sを削除ã§ãã¾ã›ã‚“!" #~ msgid "Are you sure to delete this table file?" #~ msgstr "ã“ã®ãƒ†ãƒ¼ãƒ–ルを削除ã—ã¾ã™ã‹?" #~ msgid "Failed to delete the table file!" #~ msgstr "テーブルã®å‰Šé™¤ã«å¤±æ•—!" #~ msgid "True" #~ msgstr "True" #~ msgid "False" #~ msgstr "False" #~ msgid "Split Keys:" #~ msgstr "スプリットキー:" #~ msgid "The key strokes to split inputed string." #~ msgstr "入力済ã¿ã®æ–‡å­—列を分割ã™ã‚‹ã‚­ãƒ¼" #~ msgid "Commit Keys:" #~ msgstr "変æ›ç¢ºå®šã‚­ãƒ¼:" #~ msgid "The key strokes to commit converted result to client." #~ msgstr "変æ›çµæžœã‚’クライアントã«é€ã‚‹ã‚­ãƒ¼" #~ msgid "Forward Keys:" #~ msgstr "直接入力キー:" #~ msgid "The key strokes to forward inputed string to client." #~ msgstr "入力ã•ã‚ŒãŸæ–‡å­—列を変æ›ã›ãšã«ç›´æŽ¥ã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆã«é€ã‚‹ã‚­ãƒ¼" #~ msgid "The key strokes to select candidate phrases in lookup table." #~ msgstr "候補ウィンドウã‹ã‚‰ãƒ•ãƒ¬ãƒ¼ã‚ºã‚’é¸æŠžã™ã‚‹ã‚­ãƒ¼" #~ msgid "Page Up Keys:" #~ msgstr "å‰ãƒšãƒ¼ã‚¸ã‚­ãƒ¼:" #~ msgid "The lookup table page up keys" #~ msgstr "候補ウィンドウã§å‰ã®ãƒšãƒ¼ã‚¸ã«æˆ»ã‚‹ã‚­ãƒ¼" #~ msgid "Page Down Keys:" #~ msgstr "次ページキー:" #~ msgid "The lookup table page down keys" #~ msgstr "å€™è£œã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§æ¬¡ã®ãƒšãƒ¼ã‚¸ã«é€²ã‚€ã‚­ãƒ¼" #~ msgid "Table Properties" #~ msgstr "テーブルã®ãƒ—ロパティー" #~ msgid "Name:" #~ msgstr "åç§°:" #~ msgid "The name of this table." #~ msgstr "ã“ã®ãƒ†ãƒ¼ãƒ–ルã®åç§°" #~ msgid "Author:" #~ msgstr "作者:" #~ msgid "The author of this table." #~ msgstr "ã“ã®ãƒ†ãƒ¼ãƒ–ルã®ä½œè€…" #~ msgid "UUID:" #~ msgstr "UUID:" #~ msgid "The unique ID of this table." #~ msgstr "ã“ã®ãƒ†ãƒ¼ãƒ–ルã®ID" #~ msgid "Serial Number:" #~ msgstr "ãƒãƒ¼ã‚¸ãƒ§ãƒ³:" #~ msgid "The serial number of this table." #~ msgstr "ã“ã®ãƒ†ãƒ¼ãƒ–ルã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³" #~ msgid "Icon File:" #~ msgstr "アイコンファイル:" #~ msgid "The icon file of this table." #~ msgstr "ã“ã®ãƒ†ãƒ¼ãƒ–ルã®ã‚¢ã‚¤ã‚³ãƒ³ãƒ•ァイル" #~ msgid "Supported Languages:" #~ msgstr "サãƒãƒ¼ãƒˆè¨€èªž:" #~ msgid "The languages supported by this table." #~ msgstr "ã“ã®ãƒ†ãƒ¼ãƒ–ルãŒã‚µãƒãƒ¼ãƒˆã™ã‚‹è¨€èªž" #~ msgid "Status Prompt:" #~ msgstr "ステイタスプロンプト:" #~ msgid "A prompt string to be shown in status area." #~ msgstr "ステイタスã«è¡¨ç¤ºã•れる文字列" #~ msgid "Valid Input Chars:" #~ msgstr "æœ‰åŠ¹ãªæ–‡å­—:" #~ msgid "The valid input chars of this table." #~ msgstr "ã“ã®ãƒ†ãƒ¼ãƒ–ルã§ä½¿ç”¨ã§ãる文字" #~ msgid "Multi Wildcard Char:" #~ msgstr "マルãƒãƒ¯ã‚¤ãƒ«ãƒ‰ã‚«ãƒ¼ãƒ‰æ–‡å­—:" #~ msgid "" #~ "The multi wildcard chars of this table. These chars can be used to match " #~ "one or more arbitrary chars." #~ msgstr "" #~ "ã“ã®ãƒ†ãƒ¼ãƒ–ルã®ãƒžãƒ«ãƒãƒ¯ã‚¤ãƒ«ãƒ‰ã‚«ãƒ¼ãƒ‰æ–‡å­—。\n" #~ "è¤‡æ•°ã®æ–‡å­—ã®ä»£ã‚りã«ä½¿ç”¨ã§ãã¾ã™ã€‚" #~ msgid "Single Wildcard Char:" #~ msgstr "シングルワイルドカード文字:" #~ msgid "" #~ "The single wildcard chars of this table.These chars can be used to match " #~ "one arbitrary char." #~ msgstr "" #~ "ã“ã®ãƒ†ãƒ¼ãƒ–ルã®ã‚·ãƒ³ã‚°ãƒ«ãƒ¯ã‚¤ãƒ«ãƒ‰ã‚«ãƒ¼ãƒ‰æ–‡å­—。\n" #~ "ä»»æ„ã®ä¸€æ–‡å­—ã®ä»£ã‚りã«ä½¿ç”¨ã§ãã¾ã™ã€‚" #~ msgid "Max Key Length:" #~ msgstr "最大キー数:" #~ msgid "The maxmium length of key strings." #~ msgstr "æ–‡å­—åˆ—ã®æœ€å¤§ã‚­ãƒ¼æ•°" #~ msgid "Show Key Prompt:" #~ msgstr "キープロンプトを表示:" #~ msgid "If true then the key prompts will be shown instead of the raw keys." #~ msgstr "Trueã®å ´åˆã¯å…¥åŠ›ã•ã‚ŒãŸæ–‡å­—ã®ä»£ã‚りã«ã‚­ãƒ¼ãƒ—ロンプトãŒè¡¨ç¤ºã•れã¾ã™ã€‚" #~ msgid "Auto Select:" #~ msgstr "è‡ªå‹•é¸æŠž:" #~ msgid "" #~ "If true then the first candidate phrase will be selected automatically " #~ "when inputing the next key." #~ msgstr "" #~ "Trueã®å ´åˆã¯æ¬¡ã®ãƒ•レーズã®å…¥åŠ›ã‚’é–‹å§‹ã™ã‚‹ã¨åŒæ™‚ã«å…¥åŠ›æ¸ˆã¿ã®\n" #~ "フレーズã«å¯¾ã—ã¦ãã®ç¬¬ä¸€å¤‰æ›å€™è£œãŒè‡ªå‹•çš„ã«é¸æŠžã•れã¾ã™ã€‚" #~ msgid "Auto Wildcard:" #~ msgstr "自動ワイルドカード:" #~ msgid "" #~ "If true then a multi wildcard char will be append to the end of inputed " #~ "key string when searching phrases." #~ msgstr "" #~ "Trueã®å ´åˆã¯æ¤œç´¢æ™‚ã«ãƒžãƒ«ãƒãƒ¯ã‚¤ãƒ«ãƒ‰ã‚«ãƒ¼ãƒ‰æ–‡å­—ãŒ\n" #~ "入力ã•ã‚ŒãŸæ–‡å­—åˆ—ã®æœ€å¾Œã«è‡ªå‹•çš„ã«ä»˜åŠ ã•れã¾ã™ã€‚" #~ msgid "Auto Commit:" #~ msgstr "自動コミット:" #~ msgid "" #~ "If true then the converted result string will be committed to client " #~ "automatically." #~ msgstr "Trueã®å ´åˆã¯å¤‰æ›çµæžœãŒè‡ªå‹•çš„ã«ã‚³ãƒŸãƒƒãƒˆã•れã¾ã™ã€‚" #~ msgid "Auto Split:" #~ msgstr "自動スプリット:" #~ msgid "" #~ "If true then the inputed key string will be splitted automatically when " #~ "necessary." #~ msgstr "Trueã®å ´åˆã¯ã€å…¥åŠ›ã•ã‚ŒãŸæ–‡å­—列ãŒå¿…è¦ã«å¿œã˜ã¦è‡ªå‹•çš„ã«åˆ†å‰²ã•れã¾ã™ã€‚" #~ msgid "Discard Invalid Key:" #~ msgstr "ç„¡åŠ¹ãªæ–‡å­—列を排除:" #~ msgid "" #~ "If true then the invalid key will be discarded automatically.This option " #~ "is only valid when Auto Select and Auto Commit is true." #~ msgstr "" #~ "Trueã®å ´åˆã¯ã€å…¥åŠ›ã•れãŸç„¡åŠ¹ãªæ–‡å­—åˆ—ã‚’è‡ªå‹•çš„ã«æŽ’é™¤ã—ã¾ã™ã€‚ã“ã®ã‚ªãƒ—ションã¯" #~ "è‡ªå‹•é¸æŠžã¨è‡ªå‹•コミットãŒTrueã®å ´åˆã®ã¿æœ‰åйã«ãªã‚Šã¾ã™ã€‚" #~ msgid "Dynamic Adjust:" #~ msgstr "動的アップデート:" #~ msgid "If true then the phrases' frequencies will be adjusted dynamically." #~ msgstr "Trueã®å ´åˆã¯ã€ä½¿ç”¨é »åº¦æƒ…å ±ãŒå‹•çš„ã«ã‚¢ãƒƒãƒ—デートã•れã¾ã™ã€‚" #~ msgid "Auto Fill Preedit Area:" #~ msgstr "プリエディットã®è‡ªå‹•補完:" #~ msgid "" #~ "If true then the preedit string will be filled up with the current " #~ "candiate phrase automatically.This option is only valid when Auto Select " #~ "is TRUE." #~ msgstr "" #~ "Trueã®å ´åˆã¯ã€è‡ªå‹•çš„ã«ãƒ—リエディットãŒå¤‰æ›å€™è£œã«ã‚ˆã£ã¦è£œå®Œã•れã¾ã™ã€‚\n" #~ "ã“ã®ã‚ªãƒ—ションã¯è‡ªå‹•é¸æŠžãŒTrueã®å ´åˆã®ã¿æœ‰åйã«ãªã‚Šã¾ã™ã€‚" #~ msgid "Always Show Lookup Table:" #~ msgstr "候補リストを常ã«è¡¨ç¤º:" #~ msgid "" #~ "If true then the lookup table will always be shown when any candidate " #~ "phrase is available. Otherwise the lookup table will only be shown when " #~ "necessary.\n" #~ "If Auto Fill is false, then this option will be no effect, and always be " #~ "true." #~ msgstr "" #~ "Trueã®å ´åˆã¯å¤‰æ›å€™è£œãŒã‚れã°å¸¸ã«å€™è£œã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ãŒè¡¨ç¤ºã•れã¾ã™ã€‚\n" #~ "Falseã®å ´åˆã¯å¿…è¦ãªæ™‚ã®ã¿è¡¨ç¤ºã•れã¾ã™ã€‚\n" #~ "但ã—ã€è‡ªå‹•補完ãŒç„¡åйã®å ´åˆã¯å¸¸ã«è¡¨ç¤ºã•れã¾ã™ã€‚" #~ msgid "Default Full Width Punct:" #~ msgstr "デフォルトå¥èª­ç‚¹ã‚’全角ã«è¨­å®š:" #~ msgid "If true then full width punctuations will be inputed by default." #~ msgstr "Trueã®å ´åˆã¯ã€æŒ‡å®šã®ãªã„é™ã‚Šå…¨è§’å¥èª­ç‚¹ãŒå…¥åŠ›ã•れã¾ã™ã€‚" #~ msgid "Default Full Width Letter:" #~ msgstr "デフォルト文字幅を全角ã«è¨­å®š:" #~ msgid "If true then full width letters will be inputed by default." #~ msgstr "Trueã®å ´åˆã¯ã€æŒ‡å®šã®ãªã„é™ã‚Šå…¨è§’文字ãŒå…¥åŠ›ã•れã¾ã™ã€‚" #~ msgid "Invalid icon file." #~ msgstr "アイコンファイルãŒç„¡åйã§ã™ã€‚" #~ msgid "Invalid languages." #~ msgstr "言語ãŒç„¡åйã§ã™ã€‚" #~ msgid "Invalid status prompt." #~ msgstr "ステイタスプロンプトãŒç„¡åйã§ã™ã€‚" #~ msgid "Invalid multi wildcard chars." #~ msgstr "マルãƒãƒ¯ã‚¤ãƒ«ãƒ‰ã‚«ãƒ¼ãƒ‰æ–‡å­—ãŒç„¡åйã§ã™ã€‚" #~ msgid "Invalid single wildcard chars." #~ msgstr "シングルワイルドカード文字ãŒç„¡åйã§ã™ã€‚" #~ msgid "Invalid commit keys." #~ msgstr "コミットキーãŒç„¡åйã§ã™ã€‚" #~ msgid "Invalid select keys." #~ msgstr "é¸æŠžã‚­ãƒ¼ãŒç„¡åйã§ã™ã€‚" #~ msgid "Invalid page up keys." #~ msgstr "次ページキーãŒç„¡åйã§ã™ã€‚" #~ msgid "Invalid page down keys." #~ msgstr "å‰ãƒšãƒ¼ã‚¸ã‚­ãƒ¼ãŒç„¡åйã§ã™ã€‚" #~ msgid "Invalid max key length." #~ msgstr "最大キー数ãŒç„¡åйã§ã™ã€‚" #~ msgid "Failed to save table %s!" #~ msgstr "テーブル%sã®ä¿å­˜ã«å¤±æ•—!" #~ msgid "Failed to load any Config Modules!" #~ msgstr "設定モジュールã®èª­è¾¼ã«å¤±æ•—!" #~ msgid "_Current Config Module:" #~ msgstr "ç¾åœ¨ã®è¨­å®šãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«(_C):" #~ msgid "" #~ msgstr "<見ã¤ã‹ã‚Šã¾ã›ã‚“>" #~ msgid "Current Config Module has been changed to %s." #~ msgstr "ç¾åœ¨ã®è¨­å®šãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’%sã«å¤‰æ›´ã—ã¾ã—ãŸã€‚" #~ msgid "Start the SCIM Setup Utility." #~ msgstr "SCIMセットアップユーティリティを開ã" #~ msgid "Setup ..." #~ msgstr "設定..." scim-1.4.14/po/kn.po000066400000000000000000001410101177210725600141270ustar00rootroot00000000000000# translation of kn.po to Kannada # translation of kn.po to # Kannada translations for PACKAGE package. # Copyright (C) 2008 THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Automatically generated, 2008. # Shankar Prasad , 2008. msgid "" msgstr "" "Project-Id-Version: kn\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-06-22 11:40-0700\n" "PO-Revision-Date: 2008-03-27 16:29+0530\n" "Last-Translator: Shankar Prasad \n" "Language-Team: Kannada \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n\n" "\n" "\n" "\n" #: ../src/scim_compose_key.cpp:126 msgid "English/European" msgstr "ಇಂಗà³à²²à³€à²·à³/ಯà³à²°à³‹à²ªà²¿à²¯à²¨à³" #. Append an entry for forward mode. #: ../src/scim_imengine.cpp:638 ../src/scim_utility.cpp:693 #: ../modules/FrontEnd/scim_x11_frontend.cpp:1897 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1281 #: ../extras/panel/scim_panel_gtk.cpp:2814 msgid "English/Keyboard" msgstr "ಇಂಗà³à²²à³€à²·à³/ಕೀಬೋರà³à²¡à³" #: ../src/scim_utility.cpp:694 msgid "Amharic" msgstr "ಆಮà³â€à²°à²¿à²•à³" #: ../src/scim_utility.cpp:695 msgid "Arabic" msgstr "ಅರೇಬಿಕà³" #: ../src/scim_utility.cpp:696 msgid "Arabic (Egypt)" msgstr "ಅರೇಬಿಕೠ(ಈಜಿಪà³à²Ÿà³â€)" #: ../src/scim_utility.cpp:697 msgid "Arabic (Lebanon)" msgstr "ಅರೇಬಿಕೠ(ಲೆಬನಾನà³)" #: ../src/scim_utility.cpp:698 msgid "Assamese" msgstr "ಅಸà³à²¸à²¾à²®à³€à²¸à³" #: ../src/scim_utility.cpp:699 msgid "Azerbaijani" msgstr "ಅà²à²°à³â€à²¬à³ˆà²œà²¾à²¨à²¿" #: ../src/scim_utility.cpp:700 msgid "Belarusian" msgstr "ಬೆಲಾರà³à²¸à²¿à²¯à²¨à³" #: ../src/scim_utility.cpp:701 msgid "Bulgarian" msgstr "ಬಲà³à²—ೇರಿಯನà³" #: ../src/scim_utility.cpp:702 ../src/scim_utility.cpp:703 msgid "Bengali" msgstr "ಬಂಗಾಳಿ" #: ../src/scim_utility.cpp:704 msgid "Bengali (India)" msgstr "ಬಂಗಾಳಿ(ಭಾರತ)" #: ../src/scim_utility.cpp:705 msgid "Tibetan" msgstr "ಟಿಬೇಟಿಯನà³" #: ../src/scim_utility.cpp:706 msgid "Bosnian" msgstr "ಬೋಸà³à²¨à²¿à²¯à²¨à³" #: ../src/scim_utility.cpp:707 msgid "Catalan" msgstr "ಕà³à²¯à²¾à²Ÿà²²à²¾à²¨à³" #: ../src/scim_utility.cpp:708 ../src/scim_keyboard_layout_data.h:4595 msgid "Czech" msgstr "ಚೆಕà³" #: ../src/scim_utility.cpp:709 msgid "Welsh" msgstr "ವೆಲà³à²·à³" #: ../src/scim_utility.cpp:710 ../src/scim_keyboard_layout_data.h:4597 msgid "Danish" msgstr "ಡà³à²¯à²¾à²¨à²¿à²·à³" #: ../src/scim_utility.cpp:711 ../src/scim_keyboard_layout_data.h:4605 msgid "German" msgstr "ಜರà³à²®à²¨à³" #: ../src/scim_utility.cpp:712 msgid "Divehi" msgstr "ಡಿವೇಹಿ" #: ../src/scim_utility.cpp:713 ../src/scim_keyboard_layout_data.h:4608 msgid "Greek" msgstr "ಗà³à²°à³€à²•à³" #: ../src/scim_utility.cpp:714 msgid "English" msgstr "ಇಂಗà³à²²à³€à²·à³" #: ../src/scim_utility.cpp:715 msgid "English (Australian)" msgstr "ಇಂಗà³à²²à³€à²·à³ (ಆಸà³à²Ÿà³à²°à³‡à²²à²¿à²¯à²¨à³)" #: ../src/scim_utility.cpp:716 msgid "English (Canadian)" msgstr "ಇಂಗà³à²²à³€à²·à³ (ಕೆನಡಿಯನà³)" #: ../src/scim_utility.cpp:717 msgid "English (British)" msgstr "ಇಂಗà³à²²à³€à²·à³ (ಬà³à²°à²¿à²Ÿà³€à²·à³)" #: ../src/scim_utility.cpp:718 msgid "English (Ireland)" msgstr "ಇಂಗà³à²²à³€à²·à³ (à²à²°à³à²²à³à²¯à²¾à²‚ಡà³)" #: ../src/scim_utility.cpp:719 msgid "English (American)" msgstr "ಇಂಗà³à²²à³€à²·à³ (ಅಮೇರಿಕನà³)" #: ../src/scim_utility.cpp:720 ../src/scim_utility.cpp:721 #: ../src/scim_keyboard_layout_data.h:4621 msgid "Spanish" msgstr "ಸà³à²ªà³à²¯à²¾à²¨à²¿à²·à³" #: ../src/scim_utility.cpp:722 msgid "Spanish (Mexico)" msgstr "ಸà³à²ªà³à²¯à²¾à²¨à²¿à²·à³ (ಮೆಕà³à²¸à²¿à²•ೋ)" #: ../src/scim_utility.cpp:723 ../src/scim_keyboard_layout_data.h:4600 msgid "Estonian" msgstr "ಎಸà³à²šà³‹à²¨à²¿à²¯à²¨à³" #: ../src/scim_utility.cpp:724 msgid "Basque" msgstr "ಬಾಸà³à²•à³à²¯à³‚" #: ../src/scim_utility.cpp:725 msgid "Persian" msgstr "ಪರà³à²·à²¿à²¯à²¨à³" #: ../src/scim_utility.cpp:726 ../src/scim_keyboard_layout_data.h:4601 msgid "Finnish" msgstr "ಫಿನà³à²¨à²¿à²·à³" #: ../src/scim_utility.cpp:727 ../src/scim_keyboard_layout_data.h:4602 msgid "French" msgstr "ಫà³à²°à³†à²‚ಚà³" #: ../src/scim_utility.cpp:728 msgid "Irish" msgstr "à²à²°à²¿à²¶à³" #: ../src/scim_utility.cpp:729 msgid "Galician" msgstr "ಗೆಲೇಶಿಯನà³" #: ../src/scim_utility.cpp:730 msgid "Gujarati" msgstr "ಗà³à²œà²°à²¾à²¤à²¿" #: ../src/scim_utility.cpp:731 ../src/scim_utility.cpp:740 msgid "Hebrew" msgstr "ಹೀಬà³à²°à³‚" #: ../src/scim_utility.cpp:732 msgid "Hindi" msgstr "ಹಿಂದಿ" #: ../src/scim_utility.cpp:733 ../src/scim_keyboard_layout_data.h:4594 msgid "Croatian" msgstr "ಕà³à²°à³Šà²¯à³‡à²¶à²¿à²¯à²¨à³" #: ../src/scim_utility.cpp:734 ../src/scim_keyboard_layout_data.h:4609 msgid "Hungarian" msgstr "ಹಂಗೇರಿಯನà³" #: ../src/scim_utility.cpp:735 msgid "Armenian" msgstr "ಅರà³à²®à³‡à²¨à²¿à²¯à²¨à³" #: ../src/scim_utility.cpp:736 msgid "Interlingua" msgstr "ಇಂಟರà³à²²à²¿à²‚ಗà³à²µà²¾" #: ../src/scim_utility.cpp:737 msgid "Indonesian" msgstr "ಇಂಡೋನೇಷಿಯನà³" #: ../src/scim_utility.cpp:738 ../src/scim_keyboard_layout_data.h:4627 msgid "Icelandic" msgstr "à²à²¸à³â€à²²à³à²¯à²¾à²‚ಡಿಕà³" #: ../src/scim_utility.cpp:739 ../src/scim_keyboard_layout_data.h:4610 msgid "Italian" msgstr "ಇಟಾಲಿಯನà³" #: ../src/scim_utility.cpp:741 ../src/scim_keyboard_layout_data.h:4611 msgid "Japanese" msgstr "ಜಪಾನೀಸà³" #: ../src/scim_utility.cpp:742 msgid "Georgian" msgstr "ಜಾರà³à²œà²¿à²¯à²¨à³" #: ../src/scim_utility.cpp:743 msgid "Kazakh" msgstr "ಕà²à²¾à²•à³" #: ../src/scim_utility.cpp:744 msgid "Cambodian" msgstr "ಕಾಂಬೋಡಿಯನà³" #: ../src/scim_utility.cpp:745 msgid "Kannada" msgstr "ಕನà³à²¨à²¡" #: ../src/scim_utility.cpp:746 msgid "Korean" msgstr "ಕೊರಿಯನà³" #: ../src/scim_utility.cpp:747 msgid "Laothian" msgstr "ಲಾವೋತಿಯನà³" #: ../src/scim_utility.cpp:748 ../src/scim_keyboard_layout_data.h:4628 msgid "Lithuanian" msgstr "ಲಿತà³à²µà²¾à²¨à²¿à²¯à²¨à³" #: ../src/scim_utility.cpp:749 msgid "Latvian" msgstr "ಲಾಟà³à²µà²¿à²¯à²¨à³" #: ../src/scim_utility.cpp:750 msgid "Macedonian" msgstr "ಮೆಸಡೋನಿಯನà³" #: ../src/scim_utility.cpp:751 msgid "Malayalam" msgstr "ಮಲಯಾಳಂ" #: ../src/scim_utility.cpp:752 msgid "Mongolian" msgstr "ಮಂಗೋಲಿಯನà³" #: ../src/scim_utility.cpp:753 msgid "Marathi" msgstr "ಮರಾಠಿ" #: ../src/scim_utility.cpp:754 msgid "Malay" msgstr "ಮಲೇಯà³" #: ../src/scim_utility.cpp:755 msgid "Burmese" msgstr "ಬರà³à²®à³€à²¸à³" #: ../src/scim_utility.cpp:756 msgid "Nepali" msgstr "ನೇಪಾಲಿ" #: ../src/scim_utility.cpp:757 ../src/scim_keyboard_layout_data.h:4598 msgid "Dutch" msgstr "ಡಚà³" #: ../src/scim_utility.cpp:758 msgid "Norwegian (nynorsk)" msgstr "ನಾರà³à²µà²¿à²œà²¨à³ (ನೂನಾರà³à²¸à³à²•à³â€)" #: ../src/scim_utility.cpp:759 msgid "Norwegian (bokmal)" msgstr "ನಾರà³à²µà²¿à²œà²¨à³ (ಬೋಕà³â€à²®à²²à³)" #: ../src/scim_utility.cpp:760 msgid "Oriya" msgstr "ಒರಿಯಾ" #: ../src/scim_utility.cpp:761 msgid "Punjabi" msgstr "ಪಂಜಾಬಿ" #: ../src/scim_utility.cpp:762 ../src/scim_keyboard_layout_data.h:4613 msgid "Polish" msgstr "ಪೋಲಿಷà³" #: ../src/scim_utility.cpp:763 ../src/scim_utility.cpp:765 #: ../src/scim_keyboard_layout_data.h:4614 msgid "Portuguese" msgstr "ಪೋರà³à²šà³à²—ೀಸà³" #: ../src/scim_utility.cpp:764 ../src/scim_keyboard_layout_data.h:4615 msgid "Portuguese (Brazil)" msgstr "ಪೋರà³à²šà³à²—ೀಸà³(ಬà³à²°à³†à²œà²¿à²²à²¿à²¯à²¨à³)" #: ../src/scim_utility.cpp:766 msgid "Romanian" msgstr "ರೊಮೇನಿಯನà³" #: ../src/scim_utility.cpp:767 ../src/scim_keyboard_layout_data.h:4617 msgid "Russian" msgstr "ರಷಿಯನà³" #: ../src/scim_utility.cpp:768 msgid "Sinhala" msgstr "ಸಿಂಹಳ" #: ../src/scim_utility.cpp:769 ../src/scim_keyboard_layout_data.h:4618 msgid "Slovak" msgstr "ಸà³à²²à³‹à²µà²¾à²•à³" #: ../src/scim_utility.cpp:770 ../src/scim_keyboard_layout_data.h:4620 msgid "Slovenian" msgstr "ಸà³à²²à³‹à²µà³‡à²¨à²¿à²¯à²¨à³" #: ../src/scim_utility.cpp:771 msgid "Albanian" msgstr "ಅಲà³à²¬à³‡à²¨à²¿à²¯à²¨à³" #: ../src/scim_utility.cpp:772 ../src/scim_utility.cpp:773 #: ../src/scim_utility.cpp:774 msgid "Serbian" msgstr "ಸರà³à²¬à²¿à²¯à²¨à³" #: ../src/scim_utility.cpp:775 ../src/scim_utility.cpp:777 #: ../src/scim_keyboard_layout_data.h:4624 msgid "Swedish" msgstr "ಸà³à²µà³€à²¡à²¿à²·à³" #: ../src/scim_utility.cpp:776 msgid "Swedish (Finland)" msgstr "ಸà³à²µà³€à²¡à²¿à²·à³ (ಫಿನà³â€à²²à³à²¯à²¾à²‚ಡà³)" #: ../src/scim_utility.cpp:778 msgid "Tamil" msgstr "ತಮಿಳà³" #: ../src/scim_utility.cpp:779 msgid "Telugu" msgstr "ತೆಲà³à²—à³" #: ../src/scim_utility.cpp:780 msgid "Thai" msgstr "ಥಾಯà³" #: ../src/scim_utility.cpp:781 ../src/scim_keyboard_layout_data.h:4625 msgid "Turkish" msgstr "ಟರà³à²•ಿಶà³" #: ../src/scim_utility.cpp:782 msgid "Uighur" msgstr "ವಿಗೂರà³" #: ../src/scim_utility.cpp:783 ../src/scim_keyboard_layout_data.h:4629 msgid "Ukrainian" msgstr "ಯà³à²•à³à²°à³‡à²¨à²¿à²¯à²¨à³" #: ../src/scim_utility.cpp:784 msgid "Urdu" msgstr "ಉರà³à²¦à³" #: ../src/scim_utility.cpp:785 msgid "Uzbek" msgstr "ಉà²à³à²¬à³‡à²•à³" #: ../src/scim_utility.cpp:786 msgid "Vietnamese" msgstr "ವಿಯೆಟà³à²¨à²¾à²®à³€à²¸à³" #: ../src/scim_utility.cpp:787 msgid "Walloon" msgstr "ವಲೂನà³" #: ../src/scim_utility.cpp:788 ../src/scim_utility.cpp:789 msgid "Yiddish" msgstr "ಯಿದà³à²¦à²¿à²¶à³" #: ../src/scim_utility.cpp:790 msgid "Chinese" msgstr "ಚೈನೀಸà³" #: ../src/scim_utility.cpp:791 ../src/scim_utility.cpp:793 msgid "Chinese (simplified)" msgstr "ಚೀನೀಸà³(ಸಿಂಪà³à²²à²¿à²«à³ˆà²¡à³)" #: ../src/scim_utility.cpp:792 ../src/scim_utility.cpp:794 msgid "Chinese (traditional)" msgstr "ಚೈನೀಸà³(ಟà³à²°à³†à²¡à³€à²¶à²¨à²²à³)" #: ../src/scim_utility.cpp:876 msgid "Other" msgstr "ಇತರೆ" #: ../src/scim_keyboard_layout_data.h:4591 #: ../modules/IMEngine/scim_socket_imengine.cpp:386 #: ../modules/IMEngine/scim_socket_imengine.cpp:416 #: ../modules/IMEngine/scim_socket_imengine.cpp:501 #: ../modules/IMEngine/scim_socket_imengine.cpp:531 #: ../modules/IMEngine/scim_socket_imengine.cpp:561 msgid "Unknown" msgstr "ಅಜà³à²žà²¾à²¤" #: ../src/scim_keyboard_layout_data.h:4592 msgid "English (US)" msgstr "ಇಂಗà³à²²à³€à²·à³ (ಯà³à²Žà²¸à³)" #: ../src/scim_keyboard_layout_data.h:4593 msgid "Belgian" msgstr "ಬೆಲà³à²œà²¿à²¯à²¨à³" #: ../src/scim_keyboard_layout_data.h:4596 msgid "Czech (qwerty)" msgstr "ಚೆಕೠ(ಕà³à²µà³†à²°à³à²Ÿà²¿)" #: ../src/scim_keyboard_layout_data.h:4599 msgid "Dvorak" msgstr "ಡಿವೋರಾಕà³" #: ../src/scim_keyboard_layout_data.h:4603 msgid "French (Canadian)" msgstr "ಫà³à²°à³†à²‚ಚೠ(ಕೆನಡಿಯನà³)" #: ../src/scim_keyboard_layout_data.h:4604 msgid "French (Switzerland)" msgstr "ಫà³à²°à³†à²‚ಚೠ(ಸà³à²µà²¿à²Ÿà³à²œà²°à³à²²à³à²¯à²¾à²‚ಡà³)" #: ../src/scim_keyboard_layout_data.h:4606 msgid "German (with deadkeys)" msgstr "ಜರà³à²®à²¨à³ (ಡೆಡà³â€à²•ೀಗಳೊಂದಿಗೆ)" #: ../src/scim_keyboard_layout_data.h:4607 msgid "German (Swiss)" msgstr "ಜರà³à²®à²¨à³ (ಸà³à²µà²¿à²¸à³)" #: ../src/scim_keyboard_layout_data.h:4612 msgid "Norwegian" msgstr "ನಾರà³à²µà³‡à²¯à²¿à²¯à²¨à³" #: ../src/scim_keyboard_layout_data.h:4616 msgid "Portuguese (Brazil US accents)" msgstr "ಪೋರà³à²šà³à²—ೀಸೠ(ಬà³à²°à²à²¿à²²à³ ಯà³à²Žà²¸à³ ಆಕà³à²¸à³†à²‚ಟà³à²¸à³â€)" #: ../src/scim_keyboard_layout_data.h:4619 msgid "Slovak (qwerty)" msgstr "ಸà³à²²à³‹à²µà²¾à²•à³ (ಕà³à²µà³†à²°à³à²Ÿà²¿)" #: ../src/scim_keyboard_layout_data.h:4622 msgid "Spanish (CP 850)" msgstr "ಸà³à²ªà³à²¯à²¾à²¨à²¿à²·à³ (CP 850)" #: ../src/scim_keyboard_layout_data.h:4623 msgid "Spanish (Latin America)" msgstr "ಸà³à²ªà³à²¯à²¾à²¨à²¿à²·à³ (ಲà³à²¯à²¾à²Ÿà²¿à²¨à³ ಅಮೇರಿಕಾ)" #: ../src/scim_keyboard_layout_data.h:4626 msgid "English (UK)" msgstr "ಇಂಗà³à²²à³€à²·à³ (ಯà³à²•ೆ)" #: ../modules/Filter/scim_sctc_filter.cpp:57 msgid "Simplified-Traditional Chinese Conversion" msgstr "ಸಿಂಪà³à²²à²¿à²«à³ˆà²¡à³ - ಟà³à²°à³†à²¡à³€à²¶à²¨à²²à³ ಚೈನೀಸೠಬದಲಾವಣೆ" #: ../modules/Filter/scim_sctc_filter.cpp:60 msgid "Convert between Simplified Chinese and Traditional Chinese" msgstr "ಸಿಂಪà³à²²à²¿à²«à³ˆà²¡à³ ಹಾಗೠಟà³à²°à³†à²¡à³€à²¶à²¨à²²à³ ಚೈನೀಸೠನಡà³à²µà³† ಬದಲಾಯಿಸà³" #: ../modules/Filter/scim_sctc_filter.cpp:71 msgid "SC-TC" msgstr "SC-TC" #: ../modules/Filter/scim_sctc_filter.cpp:73 #: ../modules/Filter/scim_sctc_filter.cpp:78 msgid "Simplified-Traditional Chinese conversion" msgstr "ಸಿಂಪà³à²²à²¿à²«à³ˆà²¡à³ - ಟà³à²°à³†à²¡à³€à²¶à²¨à²²à³ ಚೈನೀಸೠಬದಲಾವಣೆ" #: ../modules/Filter/scim_sctc_filter.cpp:76 msgid "No Conversion" msgstr "ಯಾವà³à²¦à³† ಬದಲಾವಣೆಗಳಿಲà³à²²" #: ../modules/Filter/scim_sctc_filter.cpp:81 msgid "Simplified to Traditional" msgstr "ಸಿಂಪà³à²²à²¿à²«à³ˆà²¡à³â€à²¨à²¿à²‚ದ ಟà³à²°à³†à²¡à³€à²¶à²¨à²²à³â€à²—ೆ" #: ../modules/Filter/scim_sctc_filter.cpp:83 msgid "Convert Simplified Chinese to Traditional Chinese" msgstr "ಸಿಂಪà³à²²à²¿à²«à³ˆà²¡à³ ಚೈನೀಸೠಅನà³à²¨à³ ಟà³à²°à³†à²¡à³€à²¶à²¨à²²à³ ಚೈನೀಸà³â€à²—ೆ ಬದಲಾಯಿಸà³" #: ../modules/Filter/scim_sctc_filter.cpp:86 msgid "Traditional to Simplified" msgstr "ಟà³à²°à³†à²¡à³€à²¶à²¨à²²à³â€à²¨à²¿à²‚ದ ಸಿಂಪà³à²²à²¿à²«à³ˆà²¡à³â€à²—ೆ" #: ../modules/Filter/scim_sctc_filter.cpp:88 msgid "Convert Traditional Chinese to Simplified Chinese" msgstr "ಟà³à²°à³†à²¡à³€à²¶à²¨à²²à³ ಚೈನೀಸೠಅನà³à²¨à³ ಸಿಂಪà³à²²à²¿à²«à³ˆà²¡à³ ಚೈನೀಸà³â€à²—ೆ ಬದಲಾಯಿಸà³" #: ../modules/Filter/scim_sctc_filter.cpp:300 msgid "James Su " msgstr "James Su " #: ../modules/Filter/scim_sctc_filter.cpp:425 #: ../modules/Filter/scim_sctc_filter.cpp:555 #: ../modules/Filter/scim_sctc_filter.cpp:571 msgid "SC->TC" msgstr "SC->TC" #: ../modules/Filter/scim_sctc_filter.cpp:431 #: ../modules/Filter/scim_sctc_filter.cpp:559 #: ../modules/Filter/scim_sctc_filter.cpp:575 msgid "TC->SC" msgstr "TC->SC" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1845 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1231 #: ../extras/panel/scim_panel_gtk.cpp:2304 msgid "Smart Common Input Method platform " msgstr "ಸà³à²®à²¾à²°à³à²Ÿà³ ಕಾಮನೠಇನà³â€à²ªà³à²Ÿà³ ಮೆಥಡೠಪà³à²²à²¾à²Ÿà³â€à²«à²¾à²°à³à²®à³ " #: ../modules/FrontEnd/scim_x11_frontend.cpp:1847 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1233 msgid "" "\n" "(C) 2002-2005 James Su \n" "\n" msgstr "" "\n" "(C) 2002-2005 James Su \n" "\n" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1851 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1238 msgid "" ":\n" "\n" msgstr "" ":\n" "\n" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1854 #: ../modules/FrontEnd/scim_x11_frontend.cpp:1857 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1241 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1244 msgid "" "\n" "\n" msgstr "" "\n" "\n" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:120 msgid "RAW CODE" msgstr "ರಾ ಕೋಡà³" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:127 msgid "(C) 2002-2006 James Su " msgstr "(C) 2002-2006 James Su " #: ../modules/IMEngine/scim_rawcode_imengine.cpp:140 msgid "" "Hot Keys:\n" "\n" " Control+u:\n" " switch between Multibyte encoding and Unicode.\n" "\n" " Esc:\n" " reset the input method.\n" msgstr "" "ಹಾಟೠಕೀಲಿಗಳà³:\n" "\n" " Control+u:\n" " ಮಲà³à²Ÿà²¿à²¬à³ˆà²Ÿà³ ಎನà³à²•ೋಡಿಂಗೠಹಾಗೠಯೂನಿಕೋಡà³â€ ನಡà³à²µà³† ಬದಲಾಯಿಸಲà³.\n" "\n" " Esc:\n" " ಆದಾನ ಕà³à²°à²®à²µà²¨à³à²¨à³(ಇನà³â€à²ªà³à²Ÿà³ ಮೆಥೆಡà³) ಮರà³à²¹à³Šà²‚ದಿಸಲà³.\n" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:407 #: ../modules/IMEngine/scim_rawcode_imengine.cpp:423 msgid "The status of the current input method. Click to change it." msgstr "ಪà³à²°à²¸à³à²¤à³à²¤ ಇರà³à²µ ಆದಾನ(ಇನà³â€à²ªà³à²Ÿà³) ಕà³à²°à²®à²¦ ಸà³à²¥à²¿à²¤à²¿. ಬದಲಾಯಿಸಲೠಕà³à²²à²¿à²•à³à²•ಿಸಿ." #: ../modules/IMEngine/scim_rawcode_imengine.cpp:409 msgid "Unicode" msgstr "ಯà³à²¨à²¿à²•ೋಡà³" #: ../modules/SetupUI/scim_frontend_setup.cpp:82 #: ../modules/SetupUI/scim_imengine_setup.cpp:88 msgid "Global Setup" msgstr "ಜಾಗತಿಕ ಸೆಟà³à²…ಪà³" #: ../modules/SetupUI/scim_frontend_setup.cpp:87 msgid "" "Setup the global options used by All FrontEnd modules, including X11 " "FrontEnd, GTK IMModule, QT IMModule etc." msgstr "X11 ಫà³à²°à²‚ಟà³à²Žà²‚ಡà³, GTK IMಮಾಡà³à²¯à³‚ಲà³, QT IMಮಾಡà³à²¯à³‚ಲೠಇತರೆಯಂತಹವನà³à²¨à³ ಒಳಗೊಂಡ ಎಲà³à²²à²¾ ಫà³à²°à²‚ಟà³à²Žà²‚ಡೠಘಟಕಗಳಿಂದ ಬಳಸಲಾಗà³à²µ ಜಾಗತಿಕ ಆಯà³à²•ೆಗಳನà³à²¨à³ ಹೊಂದಿಸà³." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:143 msgid "_Trigger:" msgstr "ಟà³à²°à²¿à²—ರà³(_T):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:145 msgid "Select the trigger keys" msgstr "ಟà³à²°à²¿à²—ರೠಕೀಲಿಗಳನà³à²¨à³ ಆರಿಸಿ" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:147 msgid "" "The key events to turn on/off SCIM input method. Click on the button on the " "right to edit it." msgstr "SCIM ಆದಾನ ಕà³à²°à²®à²µà²¨à³à²¨à³ ಆನà³/ಆಫೠಮಾಡà³à²µ ಕೀಲಿಗಳà³. ಇದನà³à²¨à³ ಸಂಪಾದಿಸಲೠಬಲಭಾಗದಲà³à²²à²¿à²¨ ಗà³à²‚ಡಿಯ ಮೇಲೆ ಕà³à²²à²¿à²•à³à²•ಿಸಿ." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:160 msgid "Turn _On:" msgstr "ಆನೠಮಾಡà³(_O):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:162 msgid "Select the Turn On keys" msgstr "ಆನೠಮಾಡà³à²µ ಕೀಲಿಗಳನà³à²¨à³ ಆರಿಸà³" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:164 msgid "" "The key events to turn on SCIM input method. Click on the button on the " "right to edit it." msgstr "SCIM ಆದಾನ ಕà³à²°à²®à²µà²¨à³à²¨à³ ಆನೠಮಾಡà³à²µ ಕೀಲಿಗಳà³. ಇದನà³à²¨à³ ಸಂಪಾದಿಸಲೠಬಲಭಾಗದಲà³à²²à²¿à²¨ ಗà³à²‚ಡಿಯ ಮೇಲೆ ಕà³à²²à²¿à²•à³à²•ಿಸಿ." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:177 msgid "Turn O_ff:" msgstr "ಆಫೠಮಾಡà³(_f):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:179 msgid "Select the Turn Off keys" msgstr "ಆಫೠಮಾಡà³à²µ ಕೀಲಿಗಳನà³à²¨à³ ಆರಿಸà³" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:181 msgid "" "The key events to turn off SCIM input method. Click on the button on the " "right to edit it." msgstr "SCIM ಆದಾನ ಕà³à²°à²®à²µà²¨à³à²¨à³ ಆಫà³à²¸à³ ಮಾಡà³à²µ ಕೀಲಿಗಳà³. ಇದನà³à²¨à³ ಸಂಪಾದಿಸಲೠಬಲಭಾಗದಲà³à²²à²¿à²¨ ಗà³à²‚ಡಿಯ ಮೇಲೆ ಕà³à²²à²¿à²•à³à²•ಿಸಿ." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:194 msgid "_Next input method:" msgstr "ಮà³à²‚ದಿನ ಆದಾನ ಕà³à²°à²®(_N):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:196 msgid "Select the next input method keys" msgstr "ಮà³à²‚ದಿನ ಆದಾನ ಕà³à²°à²®à²¦ ಕೀಲಿಗಳನà³à²¨à³ ಆರಿಸಿ" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:198 msgid "" "The key events to switch to the next input method. Click on the button on " "the right to edit it." msgstr "ಮà³à²‚ದಿನ ಆದಾನ ಕà³à²°à²®à²•à³à²•ೆ ಬದಲಾಯಿಸà³à²µ ಕೀಲಿಗಳà³. ಇದನà³à²¨à³ ಸಂಪಾದಿಸಲೠಬಲಭಾಗದಲà³à²²à²¿à²¨ ಗà³à²‚ಡಿಯ ಮೇಲೆ ಕà³à²²à²¿à²•à³à²•ಿಸಿ." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:213 msgid "_Previous input method:" msgstr "ಹಿಂದಿನ ಆದಾನ ಕà³à²°à²®(_P):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:215 msgid "Select the previous input method keys" msgstr "ಹಿಂದಿನ ಆದಾನ ಕà³à²°à²®à²¦ ಕೀಲಿಗಳನà³à²¨à³ ಆರಿಸಿ" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:217 msgid "" "The key events to switch to the previous input method. Click on the button " "on the right to edit it." msgstr "ಹಿಂದಿನ ಆದಾನ ಕà³à²°à²®à²•à³à²•ೆ ಬದಲಾಯಿಸà³à²µ ಕೀಲಿಗಳà³. ಇದನà³à²¨à³ ಸಂಪಾದಿಸಲೠಬಲಭಾಗದಲà³à²²à²¿à²¨ ಗà³à²‚ಡಿಯ ಮೇಲೆ ಕà³à²²à²¿à²•à³à²•ಿಸಿ." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:232 msgid "Show input method _menu:" msgstr "ಆದಾನ ಕà³à²°à²®à²¦ ಪರಿವಿಡಿಯನà³à²¨à³(ಮೆನà³) ತೋರಿಸà³(_m):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:234 msgid "Select the show input method menu keys" msgstr "ಆದಾನ ಕà³à²°à²®à²¦ ಪರಿವಿಡಿಯನà³à²¨à³ ತೋರಿಸà³à²µ ಕೀಲಿಯನà³à²¨à³ ಆರಿಸಿ" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:236 msgid "" "The key events to show the input method menu. Click on the button on the " "right to edit it." msgstr "ಆದಾನ ಕà³à²°à²® ಪರಿವಿಡಿಯನà³à²¨à³ ತೋರಿಸà³à²µ ಕೀಲಿಗಳà³. ಇದನà³à²¨à³ ಸಂಪಾದಿಸಲೠಬಲಭಾಗದಲà³à²²à²¿à²¨ ಗà³à²‚ಡಿಯ ಮೇಲೆ ಕà³à²²à²¿à²•à³à²•ಿಸಿ." #: ../modules/SetupUI/scim_frontend_setup.cpp:306 msgid "Options" msgstr "ಆಯà³à²•ೆಗಳà³" #: ../modules/SetupUI/scim_frontend_setup.cpp:321 msgid "_Keyboard Layout:" msgstr "ಕೀಲಿಮಣೆ ವಿನà³à²¯à²¾à²¸(_K):" #: ../modules/SetupUI/scim_frontend_setup.cpp:342 msgid "" "You should choose your currently used keyboard layout here so that input " "methods, who care about keyboard layout, could work correctly." msgstr "" "ಕೀಲಮಣೆ ವಿನà³à²¯à²¾à²¸à²µà²¨à³à²¨à³ ಬಳಸà³à²µ ಆದಾನ ಕà³à²°à²®à²—ಳೠಸರಿಯಾಗಿ ಕೆಲಸ ಮಾಡಲೠನೀವೠಈಗ ಬಳಸà³à²¤à³à²¤à²¿à²°à³à²µ " "ಕೀಲಿಮಣೆ ವಿನà³à²¯à²¾à²¸à²µà²¨à³à²¨à³ ಇಲà³à²²à²¿ ಆರಿಸಬೇಕà³." #. On The Spot. #: ../modules/SetupUI/scim_frontend_setup.cpp:346 msgid "_Embed Preedit String into client window" msgstr "ಪà³à²°à²¿à²Žà²¡à²¿à²Ÿà³ ವಾಕà³à²¯à²µà²¨à³à²¨à³ ಕà³à²²à³ˆà²‚ಟೠವಿಂಡೋದಲà³à²²à²¿ ಅಡಕಗೊಳಿಸà³(_E)" #: ../modules/SetupUI/scim_frontend_setup.cpp:351 msgid "" "If this option is checked, the preedit string will be displayed directly in " "the client input window, rather than in a independent float window." msgstr "ಇದನà³à²¨à³ ಆಯà³à²•ೆ ಮಾಡಿದಲà³à²²à²¿, ಪà³à²°à²¿à²Žà²¡à²¿à²Ÿà³ ವಾಕà³à²¯à²µà³ ಪà³à²°à²¤à³à²¯à³‡à²• ಫà³à²²à³‹à²Ÿà³ ವಿಂಡೋದಲà³à²²à²¿ ಕಾಣಿಸಿಕೊಳà³à²³à³à²µ ಬದಲಾಗಿ, ನೇರವಾಗಿ ಕà³à²²à³ˆà²‚ಟೠಆದಾನ ವಿಂಡೋದಲà³à²²à²¿à²¯à³† ಕಾಣಿಸಿಕೊಳà³à²³à³à²¤à³à²¤à²¦à³†." #. Shared input method. #: ../modules/SetupUI/scim_frontend_setup.cpp:360 msgid "_Share the same input method among all applications" msgstr "ಇದೆ ಆದಾನ ಕà³à²°à²®à²µà²¨à³à²¨à³ ಬೇರೆ ಅನà³à²µà²¯à²—ಳೊಂದಿಗೆ ಹಂಚಿಕೋ(_S)" #: ../modules/SetupUI/scim_frontend_setup.cpp:365 msgid "" "If this option is checked, then only one input method could be used by all " "applications at the same time.Otherwise different input method could be used " "by each application." msgstr "ಇದನà³à²¨à³ ಆಯà³à²•ೆ ಮಾಡಿದಲà³à²²à²¿, ಕೇವಲ ಒಂದೠಆದಾನ ಕà³à²°à²®à²µà³ ಒಮà³à²®à³†à²—ೆ ಎಲà³à²²à²¾ ಅನà³à²µà²¯à²—ಳಿಂದ ಬಳಸಲà³à²ªà²¡à³à²¤à³à²¤à²¦à³†. ಇಲà³à²²à²¦à³† ಹೋದಲà³à²²à²¿ ಪà³à²°à²¤à²¿ ಅನà³à²µà²¯à²—ಳೂ ಪà³à²°à²¤à³à²¯à³‡à²• ಆದಾನ ಕà³à²°à²®à²—ಳನà³à²¨à³ ಬಳಸಬಹà³à²¦à²¾à²—ಿರà³à²¤à³à²¤à²¦à³†." #: ../modules/SetupUI/scim_frontend_setup.cpp:373 #: ../modules/SetupUI/scim_imengine_setup.cpp:453 msgid "Hotkeys" msgstr "ಹಾಟà³â€à²•ೀಲಿಗಳà³" #: ../modules/SetupUI/scim_imengine_setup.cpp:93 msgid "You can enable/disable input methods and set hotkeys for input methods here." msgstr "ನೀವೠಆದಾನಕà³à²°à²®à²—ಳನà³à²¨à³ ಶಕà³à²¤/ಅಶಕà³à²¤à²—ೊಳಿಸಿ, ಆದಾನಕà³à²°à²®à²—ಳಿಗಾಗಿ ಹಾಟà³â€à²•ೀಲಿಗಳನà³à²¨à³ ಇಲà³à²²à²¿ ಹೊಂದಿಸಬಹà³à²¦à²¾à²—ಿದೆ." #: ../modules/SetupUI/scim_imengine_setup.cpp:296 msgid "The installed input method services:" msgstr "ಅನà³à²¸à³à²¥à²¾à²ªà²¿à²¤à²—ೊಂಡ ಆದಾನ ಕà³à²°à²®à²¦ ಸೇವೆಗಳà³:" #. Create hotkey and filter button before factory list view, because #. factory_list_selection_changed_callback may access these two buttons. #: ../modules/SetupUI/scim_imengine_setup.cpp:311 msgid "Edit _Hotkeys" msgstr "ಹಾಟà³â€à²•ೀಲಿಗಳನà³à²¨à³ ಸಂಪಾದಿಸà³(_H)" #: ../modules/SetupUI/scim_imengine_setup.cpp:320 msgid "Edit Hotkeys associated with the selected input method." msgstr "ಆಯà³à²•ೆ ಮಾಡಲಾದ ಆದಾನ ಕà³à²°à²®à²•à³à²•ೆ ಸಂಬಂಧಿಸಿದ ಹಾಟà³â€à²•ೀಲಿಗಳನà³à²¨à³ ಸಂಪಾದಿಸಿ." #: ../modules/SetupUI/scim_imengine_setup.cpp:322 msgid "Select _Filters" msgstr "ಶೋಧಕಗಳನà³à²¨à³ ಆಯà³à²•ೆಮಾಡà³(_F)" #: ../modules/SetupUI/scim_imengine_setup.cpp:331 msgid "Select the Filters which will be attached to this input method." msgstr "ಈ ಆದಾನ ಕà³à²°à²®à²•à³à²•ೆ ಲಗತà³à²¤à²¿à²¸à²¬à³‡à²•ಿರà³à²µ ಶೋಧಕವನà³à²¨à³ ಆರಿಸಿ." #: ../modules/SetupUI/scim_imengine_setup.cpp:348 msgid "_Expand" msgstr "ವಿಸà³à²¤à²°à²¿à²¸à³(_E)" #: ../modules/SetupUI/scim_imengine_setup.cpp:357 msgid "Expand all language categories." msgstr "ಎಲà³à²²à²¾ ಭಾಷಾ ವರà³à²—ಗಳನà³à²¨à³ ವಿಸà³à²¤à²°à²¿à²¸à²¿." #: ../modules/SetupUI/scim_imengine_setup.cpp:359 msgid "_Collapse" msgstr "ಕà³à²—à³à²—ಿಸà³(_C)" #: ../modules/SetupUI/scim_imengine_setup.cpp:368 msgid "Collapse all language categories." msgstr "ಎಲà³à²²à²¾ ಭಾಷಾ ವರà³à²—ಗಳನà³à²¨à³ ಕà³à²—à³à²—ಿಸà³." #: ../modules/SetupUI/scim_imengine_setup.cpp:370 msgid "E_nable All" msgstr "ಎಲà³à²²à²µà²¨à³à²¨à³‚ ಶಕà³à²¤à²—ೊಳಿಸà³(_n)" #: ../modules/SetupUI/scim_imengine_setup.cpp:379 msgid "Enable all input methods." msgstr "ಎಲà³à²²à²¾ ಆದಾನಕà³à²°à²®à²—ಳನà³à²¨à³ ಶಕà³à²¤à²—ೊಳಿಸà³." #: ../modules/SetupUI/scim_imengine_setup.cpp:381 msgid "_Disable All" msgstr "ಎಲà³à²²à²µà²¨à³à²¨à³‚ ಅಶಕà³à²¤à²—ೊಳಿಸà³(_D)" #: ../modules/SetupUI/scim_imengine_setup.cpp:390 msgid "Disable all input methods." msgstr "ಎಲà³à²²à²¾ ಆದಾನಕà³à²°à²®à²—ಳನà³à²¨à³ ಅಶಕà³à²¤à²—ೊಳಿಸà³." #: ../modules/SetupUI/scim_imengine_setup.cpp:414 #: ../modules/SetupUI/scim_imengine_setup.cpp:541 msgid "Name" msgstr "ಹೆಸರà³" #: ../modules/SetupUI/scim_imengine_setup.cpp:432 #: ../modules/SetupUI/scim_imengine_setup.cpp:522 msgid "Enable" msgstr "ಶಕà³à²¤à²—ೊಳಿಸà³" #: ../modules/SetupUI/scim_imengine_setup.cpp:467 msgid "Filters" msgstr "ಶೋಧಕಗಳà³" #: ../modules/SetupUI/scim_imengine_setup.cpp:560 msgid "Languages" msgstr "ಭಾಷೆಗಳà³" #: ../modules/SetupUI/scim_imengine_setup.cpp:574 msgid "Description" msgstr "ವಿವರಣೆ" #: ../modules/SetupUI/scim_imengine_setup.cpp:1190 #, c-format msgid "Edit Hotkeys for %s" msgstr "%s ಗಾಗಿ ಹಾಟà³â€à²•ೀಲಿಗಳನà³à²¨à³ ಸಂಪಾದಿಸà³" #: ../modules/SetupUI/scim_imengine_setup.cpp:1417 #, c-format msgid "Select Filters for %s" msgstr "%s ಗಾಗಿ ಶೋಧಕಗಳನà³à²¨à³ ಆರಿಸà³" #: ../modules/SetupUI/scim_imengine_setup.cpp:1450 msgid "Move _Up" msgstr "ಮೇಲಕà³à²•ೆ ಚಲಿಸà³(_U)" #: ../modules/SetupUI/scim_imengine_setup.cpp:1457 msgid "Move _Down" msgstr "ಕೆಳಕà³à²•ೆ ಚಲಿಸà³(_D)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:95 msgid "GTK" msgstr "GTK" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:100 msgid "A panel daemon based on GTK+-2.x library." msgstr "GTK+-2.x ಲೈಬà³à²°à²°à²¿ ಆಧರಿತವಾದ ಒಂದೠಫಲಕ ಡೆಮನà³." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:163 msgid "Always" msgstr "ಎಲà³à²²à²¾ ಸಮಯದಲà³à²²à³‚" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:164 msgid "On demand" msgstr "ಕೋರಿದಾಗ" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:165 msgid "Never" msgstr "ಎಂದಿಗೂ ಇಲà³à²²" #. Create the ToolBar setup block. #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:211 msgid "ToolBar" msgstr "ಉಪಕರಣಪಟà³à²Ÿà²¿" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:229 msgid "_Show:" msgstr "ತೋರಿಸà³(_S):" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:245 msgid "Auto s_nap" msgstr "ಸà³à²µà²¯à²‚ಚಾಲಿತ ಸà³à²¨à²¾à²ªà³(_n)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:251 msgid "Show _input method icon" msgstr "ಆದಾನ ಕà³à²°à²®à²¦ ಚಿಹà³à²¨à³†à²¯à²¨à³à²¨à³ ತೋರಿಸà³(_i)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:257 msgid "Show inp_ut method name" msgstr "ಆದಾನ ಕà³à²°à²®à²¦ ಹೆಸರನà³à²¨à³ ತೋರಿಸà³(_u)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:269 msgid "Hide time_out:" msgstr "ಕಾಲಾವಧಿ ತೀರಿದà³à²¦à²¨à³à²¨à³ ಅಡಗಿಸà³(_o):" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:282 msgid "Show s_tick icon" msgstr "ಸà³à²Ÿà²¿à²•ೠಚಿಹà³à²¨à³†à²¯à²¨à³à²¨à³ ತೋರಿಸà³(_t)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:288 msgid "Show m_enu icon" msgstr "ಪರಿವಿಡಿ ಚಿಹà³à²¨à³†à²¯à²¨à³à²¨à³ ತೋರಿಸà³(_e)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:294 msgid "Show _help icon" msgstr "ಸಹಾಯ ಚಿಹà³à²¨à³†à²¯à²¨à³à²¨à³ ತೋರಿಸà³(_e)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:300 msgid "Show _property label" msgstr "ಗà³à²£à²²à²•à³à²·à²£à²—ಳ ಲೇಬಲೠಅನà³à²¨à³ ತೋರಿಸà³(_p)" #. Create the Input Window setup block #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:311 msgid "Input window" msgstr "ಆದಾನ ವಿಂಡೋ" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:320 msgid "E_mbedded lookup table" msgstr "ಅಡಕಗೊಂಡ ಲà³à²•à³à²…ಪೠಪಟà³à²Ÿà²¿(_m)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:324 msgid "_Vertical lookup table" msgstr "ಲಂಬ ಲà³à²•à³à²…ಪೠಪಟà³à²Ÿà²¿(_V)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:328 msgid "Misc" msgstr "ಇತರೆ" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:337 msgid "Show tra_y icon" msgstr "ಟà³à²°à³‡ ಚಿಹà³à²¨à³†à²¯à²¨à³à²¨à³ ತೋರಿಸà³(_y)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:341 msgid "Stick _windows" msgstr "ಸà³à²Ÿà²¿à²•ೠವಿಂಡೋಗಳà³(_w)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:349 msgid "_Font:" msgstr "ಅಕà³à²·à²°à²¶à³ˆà²²à²¿(_F):" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:419 msgid "" "If option \"Always\" is selected, the toolbar will always be shown on the " "screen. If option \"On demand\" is selected, it will only be shown when SCIM " "is activated. If option \"Never\" is selected, it will never be shown." msgstr "\"ಎಲà³à²²à²¾ ಸಮಯದಲà³à²²à³‚\" ಅನà³à²¨à³ ಆಯà³à²•ೆ ಮಾಡಿದರೆ, ಉಪಕರಣಪಟà³à²Ÿà²¿à²¯à³ ಎಲà³à²²à²¾ ಸಮಯದಲà³à²²à³‚ ತೆರೆಯ ಮೇಲೆ ಕಾಣಿಸಿಕೊಳà³à²³à³à²¤à³à²¤à²¦à³†. \"ಕೋರಿದಾಗ\" ಅನà³à²¨à³ ಆಯà³à²•ೆ ಮಾಡಿದಲà³à²²à²¿, SCIM ಸಕà³à²°à²¿à²¯à²—ೊಂಡಾಗ ಮಾತà³à²° ಅದೠಕಾಣಿಸಿಕೊಳà³à²³à³à²¤à³à²¤à²¦à³†. \"ಎಂದಿಗೂ ಬೇಡ\" ಅನà³à²¨à³ ಆಯà³à²•ೆ ಮಾಡಿದಲà³à²²à²¿, ಅದನà³à²¨à³ ಎಂದೂ ಸಹ ತೋರಿಸಲಾಗà³à²µà³à²¦à²¿à²²à³à²²." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:426 msgid "If this option is checked, the toolbar will be snapped to the screen border." msgstr "ಇದನà³à²¨à³ ಆಯà³à²•ೆ ಮಾಡಿದರೆ, ಉಪಕರಣಪಟà³à²Ÿà²¿à²¯à³ ತೆರೆಯ ಅಂಚಿಗೆ ಸà³à²¨à³à²¯à²¾à²ªà³ ಮಾಡಲà³à²ªà²¡à³à²¤à³à²¤à²¦à³†." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:431 msgid "" "The toolbar will be hidden out after this timeout is elapsed. This option is " "only valid when \"Always show\" is selected. Set to zero to disable this " "behavior." msgstr "ಈ ಕಾಲಾವಧಿ ತೀರà³à²µà²¿à²•ೆಯೠಮà³à²—ಿದ ನಂತರ ಉಪಕರಣ ಪಟà³à²Ÿà²¿à²¯à³ ಅಡಗಿಸಲà³à²ªà²¡à³à²¤à³à²¤à²¦à³†. \"ಪà³à²°à²¤à²¿ ಬಾರಿಯೂ ತೋರಿಸà³\" ಅನà³à²¨à³ ಆರಿಸಿದಾಗ ಮಾತà³à²° ಈ ಆಯà³à²•ೆಯೠಮಾನà³à²¯à²µà²¾à²—ಿರà³à²¤à³à²¤à²¦à³†. ಈ ವರà³à²¤à²¨à³†à²¯à²¨à³à²¨à³ ಅಶಕà³à²¤à²—ೊಳಿಸಲೠಇದನà³à²¨à³ ಶೂನà³à²¯à²•à³à²•ೆ ಹೊಂದಿಸಿ." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:438 msgid "" "If this option is checked, the input method icon will be showed on the " "toolbar." msgstr "ಇದನà³à²¨à³ ಆಯà³à²•ೆ ಮಾಡಿದಲà³à²²à²¿, ಆದಾನ ಕà³à²°à²®à²¦ ಚಿಹà³à²¨à³†à²¯à³ ಉಪಕರಣ ಪಟà³à²Ÿà²¿à²¯à²²à³à²²à²¿ ಕಾಣಿಸà³à²¤à³à²¤à²¦à³†." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:442 msgid "" "If this option is checked, the input method name will be showed on the " "toolbar." msgstr "ಇದನà³à²¨à³ ಆಯà³à²•ೆ ಮಾಡಿದಲà³à²²à²¿, ಆದಾನ ಕà³à²°à²®à²¦ ಹೆಸರೠಉಪಕರಣ ಪಟà³à²Ÿà²¿à²¯à²²à³à²²à²¿ ಕಾಣಿಸà³à²¤à³à²¤à²¦à³†." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:446 msgid "If this option is checked, the stick icon will be showed on the toolbar." msgstr "ಇದನà³à²¨à³ ಆಯà³à²•ೆ ಮಾಡಿದಲà³à²²à²¿, ಸà³à²Ÿà²¿à²•ೠಚಿಹà³à²¨à³†à²¯à³ ಉಪಕರಣಪಟà³à²Ÿà²¿à²¯à²²à³à²²à²¿ ಕಾಣಿಸà³à²¤à³à²¤à²¦à³†." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:450 msgid "If this option is checked, the menu icon will be showed on the toolbar." msgstr "ಇದನà³à²¨à³ ಆಯà³à²•ೆ ಮಾಡಿದಲà³à²²à²¿, ಪರಿವಿಡಿ ಚಿಹà³à²¨à³†à²¯à³ ಉಪಕರಣಪಟà³à²Ÿà²¿à²¯à²²à³à²²à²¿ ಕಾಣಿಸà³à²¤à³à²¤à²¦à³†." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:454 msgid "If this option is checked, the help icon will be showed on the toolbar." msgstr "ಇದನà³à²¨à³ ಆಯà³à²•ೆ ಮಾಡಿದಲà³à²²à²¿, ಸಹಾಯ ಚಿಹà³à²¨à³†à²¯à³ ಉಪಕರಣಪಟà³à²Ÿà²¿à²¯à²²à³à²²à²¿ ಕಾಣಿಸà³à²¤à³à²¤à²¦à³†." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:458 msgid "" "If this option is checked, the text label of input method properties will be " "showed on the toolbar." msgstr "ಇದನà³à²¨à³ ಆಯà³à²•ೆ ಮಾಡಿದಲà³à²²à²¿, ಆದಾನ ಕà³à²°à²®à²¦ ಗà³à²£à²²à²•à³à²·à²£à²—ಳ ಪಠà³à²¯ ಲೇಬಲೠಉಪಕರಣಪಟà³à²Ÿà²¿à²¯à²²à³à²²à²¿ ತೋರಿಸಲà³à²ªà²¡à³à²¤à³à²¤à²¦à³†." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:462 msgid "" "If this option is checked, the lookup table will be embedded into the input " "window." msgstr "ಇದನà³à²¨à³ ಆಯà³à²•ೆ ಮಾಡಿದಲà³à²²à²¿, ಲà³à²•à³à²…ಪೠಪಟà³à²Ÿà²¿à²¯à³ ಆದಾನ ವಿಂಡೋದಲà³à²²à²¿ ಅಡಕವಾಗಿಸಲà³à²ªà²¡à³à²¤à³à²¤à²¦à³†." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:467 msgid "If this option is checked, the lookup table will be displayed vertically." msgstr "ಇದನà³à²¨à³ ಆಯà³à²•ೆ ಮಾಡಿದಲà³à²²à²¿, ಲà³à²•à³à²…ಪೠಪಟà³à²Ÿà²¿à²¯à³ ಲಂಬವಾಗಿ ತೋರಿಸಲà³à²ªà²¡à³à²¤à³à²¤à²¦à³†." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:472 msgid "" "If this option is checked, the tray icon will be showed on the desktop's " "taskbar." msgstr "ಇದನà³à²¨à³ ಆಯà³à²•ೆ ಮಾಡಿದಲà³à²²à²¿, ಟà³à²°à³‡ ಚಿಹà³à²¨à³†à²¯à³ ಗಣಕತೆರೆಯ ಉಪಕರಣಪಟà³à²Ÿà²¿à²¯à²²à³à²²à²¿ ತೋರಿಸಲà³à²ªà²¡à³à²¤à³à²¤à²¦à³†." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:476 msgid "" "If this option is checked, the toolbar, input and lookup table windows will " "be sticked to its original position." msgstr "" "ಇದನà³à²¨à³ ಆಯà³à²•ೆ ಮಾಡಿದಲà³à²²à²¿, ಉಪಕರಣಪಟà³à²Ÿà²¿, ಆದಾನ ಹಾಗೠಲà³à²•à³à²…ಪೠಪಟà³à²Ÿà²¿ ವಿಂಡೋಗಳೠಅವà³à²—ಳ " "ಮೂಲ ಸà³à²¥à²¾à²¨à²¦à²²à³à²²à²¿à²¯à³† ಇರಿಸಲà³à²ªà²¡à³à²¤à³à²¤à²¦à³†." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:482 msgid "The font setting will be used in the input and lookup table windows." msgstr "ಆದಾನ ಹಾಗೠಲà³à²•à³à²…ಪೠಪಟà³à²Ÿà²¿ ವಿಂಡೋಗಳಲà³à²²à²¿ ಅಕà³à²·à²°à²¶à³ˆà²²à²¿à²¯ ಸಂಯೋಜನೆಗಳೠಬಳಸಲà³à²ªà²¡à³à²¤à³à²¤à²¦à³†." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:801 msgid "Select Interface Font" msgstr "ಸಂಪರà³à²•ಸಾಧನದ ಅಕà³à²·à²°à²¶à³ˆà²²à²¿à²¯à²¨à³à²¨à³ ಆರಿಸಿ" #: ../extras/setup/scim_setup_ui.cpp:47 msgid "SCIM" msgstr "SCIM" #: ../extras/setup/scim_setup_ui.cpp:48 msgid "FrontEnd" msgstr "ಫà³à²°à²‚ಟà³à²Žà²‚ಡà³" #: ../extras/setup/scim_setup_ui.cpp:49 msgid "IMEngine" msgstr "IMಎಂಜಿನà³" #: ../extras/setup/scim_setup_ui.cpp:50 msgid "Panel" msgstr "ಫಲಕ" #: ../extras/setup/scim_setup_ui.cpp:51 msgid "Extra" msgstr "ಹೆಚà³à²šà³à²µà²°à²¿" #. #. vi:ts=4:nowrap:ai:expandtab #. #: ../extras/setup/scim_setup_ui.cpp:230 #: ../extras/setup/scim-setup.desktop.in.h:1 msgid "SCIM Input Method Setup" msgstr "SCIM ಆದಾನ ಕà³à²°à²® ಸೆಟà³à²…ಪà³" #: ../extras/setup/scim_setup_ui.cpp:369 msgid "" " Smart Common Input Method platform \n" "\n" "GUI Setup Utility\n" "\n" "\n" "\n" "Copyright 2002-2004, James Su <suzhe@tsinghua.org." "cn>" msgstr "" " ಸà³à²®à²¾à²°à³à²Ÿà³ ಕಾಮನೠಇನà³â€à²ªà³à²Ÿà³ ಮೆಥಡೠಪà³à²²à²¾à²Ÿà³â€à²«à²¾à²°à³à²®à³ \n" "\n" "GUI ಸೆಟà³à²…ಪೠಉಪಕರಣ\n" "\n" "\n" "\n" "ಹಕà³à²•à³ 2002-2004, James Su <suzhe@tsinghua.org." "cn>" #: ../extras/setup/scim_setup_ui.cpp:394 #, c-format msgid "The Setup for %s modules." msgstr "%s ಘಟಕಗಳ ಸೆಟà³à²…ಪà³." #: ../extras/setup/scim_setup_ui.cpp:456 msgid "Are you sure you want to quit SCIM Setup?" msgstr "SCIM ಸೆಟà³à²…ಪà³â€à²¨à²¿à²‚ದ ನಿರà³à²—ಮಿಸಲೠನೀವೠಖಚಿತವಾಗಿಯೂ ಬಯಸà³à²¤à³à²¤à³€à²°à³†?" #: ../extras/setup/scim_setup_ui.cpp:685 msgid "" "Not all configuration can be reloaded on the fly. Don't forget to restart " "SCIM in order to let all of the new configuration take effect." msgstr "ಒಂದೇ ಬಾರಿಗೆ ಎಲà³à²²à²¾ ಸಂರಚನೆಯನà³à²¨à³ ಪà³à²¨à²ƒà²²à³‹à²¡à³ ಮಾಡಲೠಸಾಧà³à²¯à²µà²¿à²²à³à²². ಎಲà³à²²à²¾ ಹೊಸ ಸಂರಚನೆಗಳೠಪರಿಣಾಮಕಾರಿಯಾಗಲೠಅನà³à²µà²¾à²—à³à²µà²‚ತೆ SCIM ಅನà³à²¨à³ ಪà³à²¨à²°à²¾à²°à²‚ಭಿಸಲೠಮರೆಯದಿರಿ." #: ../extras/setup/scim_setup_helper.cpp:49 msgid "SCIM Setup" msgstr "SCIM ಸೆಟà³à²…ಪà³" #: ../extras/setup/scim_setup_helper.cpp:51 msgid "Integrated Setup Utility based on GTK Widget library." msgstr "GTK ವಿಜೆಟೠಲೈಬà³à²°à²°à²¿ ಆಧರಿತವಾದ ಸಂಘಟಿತಗೊಂಡ ಸೆಟà³à²…ಪೠಸೌಲಭà³à²¯." #: ../extras/setup/scim-setup.desktop.in.h:2 msgid "Setup utility for Smart Common Input Method platform" msgstr "ಸà³à²®à²¾à²°à³à²Ÿà³ ಕಾಮನೠಇನà³â€à²ªà³à²Ÿà³ ಮೆಥಡೠಪà³à²²à²¾à²Ÿà³â€à²«à²¾à²°à³à²®à²¿à²—ಾಗಿ ಸಹಾಯಕವನà³à²¨à³ ಹೊಂದಿಸà³" #: ../extras/panel/scim_panel_gtk.cpp:982 msgid "SCIM Help" msgstr "SCIM ಸಹಾಯ" #: ../extras/panel/scim_panel_gtk.cpp:999 msgid "Smart Common Input Method" msgstr "ಸà³à²®à²¾à²°à³à²Ÿà³ ಕಾಮನೠಇನà³â€à²ªà³à²Ÿà³ ಮೆಥಡà³" #: ../extras/panel/scim_panel_gtk.cpp:1058 msgid "Stick/unstick the input window and the toolbar." msgstr "ಆದಾನ ವಿಂಡೋ ಹಾಗೠಉಪಕರಣ ಪಟà³à²Ÿà²¿à²¯à²¨à³à²¨à³ ಸà³à²Ÿà²¿à²•à³/ಅನà³â€à²¸à³à²Ÿà²¿à²•ೠಮಾಡà³." #: ../extras/panel/scim_panel_gtk.cpp:1063 msgid "Show a brief help about SCIM and the current input method." msgstr "SCIM ಬಗà³à²—ೆ ಹಾಗೠಈಗಿನ ಆದಾನ ಕà³à²°à²®à²¦ ಬಗà³à²—ೆ ಒಂದೠಸಂಕà³à²·à²¿à²ªà³à²¤ ಸಹಾಯವನà³à²¨à³ ತೋರಿಸà³." #: ../extras/panel/scim_panel_gtk.cpp:1068 msgid "Show command menu." msgstr "ಆಜà³à²žà²¾ ಪರಿವಿಡಿಯನà³à²¨à³ ತೋರಿಸà³." #: ../extras/panel/scim_panel_gtk.cpp:2306 msgid "" "\n" "(C) 2002-2005 James Su " msgstr "" "\n" "(C) 2002-2005 James Su " #. Reload Configuration. #: ../extras/panel/scim_panel_gtk.cpp:2385 msgid "Reload Configuration" msgstr "ಸಂರಚನೆಯನà³à²¨à³ ಪà³à²¨à²ƒ ಲೋಡೠಮಾಡà³" #. Stick #: ../extras/panel/scim_panel_gtk.cpp:2395 msgid "Stick Windows" msgstr "ಸà³à²Ÿà²¿à²•ೠವಿಂಡೋಗಳà³" #. Toolbar #: ../extras/panel/scim_panel_gtk.cpp:2404 msgid "Hide Toolbar" msgstr "ಉಪಕರಣಪಟà³à²Ÿà²¿à²¯à²¨à³à²¨à³ ಅಡಗಿಸà³" #. Help #: ../extras/panel/scim_panel_gtk.cpp:2413 msgid "Help ..." msgstr "ಸಹಾಯ ..." #. Clients exit. #: ../extras/panel/scim_panel_gtk.cpp:2431 msgid "Exit" msgstr "ನಿರà³à²—ಮಿಸà³" #: ../utils/scimstringview.c:196 msgid "Cursor Position" msgstr "ತೆರೆಸೂಚಕದ ಸà³à²¥à²¾à²¨" #: ../utils/scimstringview.c:197 msgid "The current position of the insertion cursor in chars." msgstr "ಸೇರಿಸà³à²µ(ಇನà³â€à²¸à²°à³à²¶à²¨à³) ತೆರೆಸೂಚಕದ ಈಗಿನ ಸà³à²¥à²¾à²¨, ಅಕà³à²·à²°à²—ಳಲà³à²²à²¿." #: ../utils/scimstringview.c:206 msgid "Maximum length" msgstr "ಗರಿಷà³à²Ÿ ಉದà³à²¦" #: ../utils/scimstringview.c:207 msgid "Maximum number of characters for this string view. Zero if no maximum." msgstr "ಈ ವಾಕà³à²¯ ನೋಟಕà³à²•ಾಗಿನ ಗರಿಷà³à²Ÿ ಸಂಖà³à²¯à³†à²¯ ಅಕà³à²·à²°à²—ಳà³. ಯಾವà³à²¦à³† ಗರಿಷà³à²Ÿ ಮಿತಿ ಸೂಚಿಸದೆ ಹೋದಲà³à²²à²¿ ಸೊನà³à²¨à³† ಎಂದೠಪರಿಗಣಿಸಲಾಗà³à²¤à³à²¤à²¦à³†." #: ../utils/scimstringview.c:216 msgid "Maximum width" msgstr "ಗರಿಷà³à²Ÿ ಅಗಲ" #: ../utils/scimstringview.c:217 msgid "Maximum width of this string view." msgstr "ಈ ವಾಕà³à²¯ ನೋಟದ ಗರಿಷà³à²Ÿ ಅಗಲ." #: ../utils/scimstringview.c:226 msgid "Has Frame" msgstr "ಚೌಕಟà³à²Ÿà²¨à³à²¨à³ ಹೊಂದಿದೆ" #: ../utils/scimstringview.c:227 msgid "FALSE removes outside bevel from string view." msgstr "FALSE ಆಗಿದà³à²¦à²²à³à²²à²¿ ವಾಕà³à²¯ ನೋಟದಿಂದ ಬಿವೆಲà³â€à²¨ ಹೊರಗೆ ತೆಗೆದೠಹಾಕà³à²¤à³à²¤à²¦à³†." #: ../utils/scimstringview.c:234 msgid "Draw cursor" msgstr "ಡà³à²°à²¾ ತೆರೆಸೂಚಕ" #: ../utils/scimstringview.c:235 msgid "TRUE draw blinking cursor." msgstr "TRUE ಆಗಿದà³à²¦à²²à³à²²à²¿ ಮಿಣà³à²•à³à²µ ತೆರೆಸೂಚಕವನà³à²¨à³ ಎಳೆಯà³à²¤à³à²¤à²¦à³†." #: ../utils/scimstringview.c:242 msgid "Auto move cursor" msgstr "ತೆರೆಸೂಚಕವನà³à²¨à³ ಸà³à²µà²¯à²‚ಚಾಲಿತವಾಗಿ ಸà³à²¥à²³à²¾à²‚ತರಗೊಳಿಸà³" #: ../utils/scimstringview.c:243 msgid "TRUE auto move cursor position when mouse clicking." msgstr "TRUE ಆಗಿದà³à²¦à²²à³à²²à²¿ ಮೌಸನà³à²¨à³ ಕà³à²²à²¿à²•à³à²•ಿಸಿದಾಗ ತೆರೆಸೂಚಕದ ಸà³à²¥à²¾à²¨à²µà³ ಸà³à²µà²¯à²‚ಚಾಲಿತವಾಗಿ ಬದಲಾಗà³à²¤à³à²¤à²¦à³†." #: ../utils/scimstringview.c:250 msgid "Forward button press event" msgstr "ಫಾರà³à²µà²¾à²°à³à²¡à³ ಗà³à²‚ಡಿ ಒತà³à²¤à³à²µà²¿à²•ೆ" #: ../utils/scimstringview.c:251 msgid "TRUE forward button press event to user program." msgstr "TRUE ಆಗಿದà³à²¦à²²à³à²²à²¿ ಬಳಕೆದಾರ ಪà³à²°à³Šà²—à³à²°à²¾à²‚ಗಾಗಿನ ಫಾರà³à²µà²¾à²°à³à²¡à³ ಗà³à²‚ಡಿಯ ಒತà³à²¤à²²à³à²ªà²¡à³à²µà³à²¦à³." #: ../utils/scimstringview.c:258 msgid "Auto resize the widget to fit the string" msgstr "ವಾಕà³à²¯à²•à³à²•ೆ ಹೊಂದಿಕೊಳà³à²³à³à²µà²‚ತೆ ವಿಜೆಟà³â€à²¨ ಸà³à²µà²¯à²‚ ಗಾತà³à²° ಬದಲಾವಣೆ" #: ../utils/scimstringview.c:259 msgid "TRUE Auto resize on." msgstr "TRUE ಸà³à²µà²¯à²‚ ಗಾತà³à²°à²¬à²¦à²²à²¾à²µà²£à³† ಆನà³." #: ../utils/scimstringview.c:266 msgid "Width in chars" msgstr "ಅಗಲ, ಅಕà³à²·à²°à²—ಳಲà³à²²à²¿" #: ../utils/scimstringview.c:267 msgid "Number of characters to leave space for in the string view." msgstr "ವಾಕà³à²¯ ನೋಟದಲà³à²²à²¿ ಅದಕà³à²•ೆ ಜಾಗ ತೆರವà³à²—ೊಳಿಸಲೠಬೇಕಿರà³à²µ ಅಕà³à²·à²°à²—ಳ ಸಂಖà³à²¯à³†." #: ../utils/scimstringview.c:276 msgid "Scroll offset" msgstr "ಚಲನೆ ಆಫà³â€à²¸à³†à²Ÿà³" #: ../utils/scimstringview.c:277 msgid "Number of pixels of the string view scrolled off the screen to the left" msgstr "ತೆರೆಯ ಎಡಭಾಗಕà³à²•ೆ ಸà³à²¥à²³à²¾à²‚ತರಿಸಿದ ವಾಕà³à²¯ ನೋಟದಲà³à²²à²¿à²¨ ಪಿಕà³à²¸à³†à²²à³â€à²—ಳ ಸಂಖà³à²¯à³†" #: ../utils/scimstringview.c:286 msgid "Text" msgstr "ಪಠà³à²¯" #: ../utils/scimstringview.c:287 msgid "The contents of the string view" msgstr "ವಾಕà³à²¯ ನೋಟದ ಒಳವಿಷಯಗಳà³" #: ../utils/scimkeyselection.cpp:155 msgid "Selected _Keys:" msgstr "ಆಯà³à²¦ ಕೀಲಿಗಳà³(_K):" #: ../utils/scimkeyselection.cpp:200 msgid "Key Code:" msgstr "ಕೀಲಿ ಕೋಡà³:" #: ../utils/scimkeyselection.cpp:218 msgid "..." msgstr "..." #: ../utils/scimkeyselection.cpp:223 msgid "Modifiers:" msgstr "ಮಾರà³à²ªà²¡à²•ಗಳà³:" #: ../utils/scimkeyselection.cpp:236 msgid "_Ctrl" msgstr "_Ctrl" #: ../utils/scimkeyselection.cpp:240 msgid "A_lt" msgstr "A_lt" #: ../utils/scimkeyselection.cpp:244 msgid "_Shift" msgstr "_Shift" #: ../utils/scimkeyselection.cpp:248 msgid "_Release" msgstr "ಬಿಟà³à²Ÿà³à²¬à²¿à²¡à³(_R)" #: ../utils/scimkeyselection.cpp:258 msgid "_Meta" msgstr "ಮೆಟಾ(_M)" #: ../utils/scimkeyselection.cpp:262 msgid "S_uper" msgstr "ಸೂಪರà³(_u)" #: ../utils/scimkeyselection.cpp:266 msgid "_Hyper" msgstr "ಹೈಪರà³(_H)" #: ../utils/scimkeyselection.cpp:331 msgid "Please enter a Key Code first." msgstr "ದಯವಿಟà³à²Ÿà³ ಮೊದಲೠಒಂದೠಕೀಲಿ ಕೋಡನà³à²¨à³ ನಮೂದಿಸಿ." #: ../utils/scimkeyselection.cpp:385 msgid "" "Press a key (or a key combination).\n" "This dialog will be closed when the key is released." msgstr "" "ಒಂದೠಕೀಲಿಯನà³à²¨à³ (ಅಥವ ಬೇರೊಂದೠಕೀಲಿಯ ಒಟà³à²Ÿà²¿à²¨ ಕೀಲಿಯನà³à²¨à³) ಒತà³à²¤à²¿.\n" "ಕೀಲಿಯನà³à²¨à³ ಬಿಟà³à²Ÿ ನಂತರ ಈ ಸಂವಾದವೠಮà³à²šà³à²šà²²à³à²ªà²¡à³à²¤à³à²¤à²¦à³†." #: ../utils/scimkeyselection.cpp:388 msgid "Grabbing a key." msgstr "ಒಂದೠಕೀಲಿಯನà³à²¨à³ ತೆಗೆದà³à²•ೊಳà³à²³à³à²µà³à²¦à³." #: ../utils/scimkeyselection.cpp:678 msgid "Key Selection" msgstr "ಕೀಲಿಯ ಆಯà³à²•ೆ" #: ../utils/scimtrayicon.c:108 msgid "Orientation" msgstr "ಓರಿಯಂಟೇಶನà³" #: ../utils/scimtrayicon.c:109 msgid "The orientation of the tray." msgstr "ಟà³à²°à³‡à²¯ ಓರಿಯಂಟೇಶನà³." scim-1.4.14/po/ko.po000066400000000000000000001106571177210725600141450ustar00rootroot00000000000000# translation of ko.po to Korean # translation of ko. # Copyright (C) 2004 THE ko'S COPYRIGHT HOLDER # This file is distributed under the same license as the ko package. # # # Kitae , 2005. # Choe Hwanjin , 2005. # Eunju Kim , 2008. msgid "" msgstr "" "Project-Id-Version: ko\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-07-20 09:50+0800\n" "PO-Revision-Date: 2008-03-26 14:44+1000\n" "Last-Translator: Eunju Kim \n" "Language-Team: Korean \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n\n" "\n" "\n" "\n" #: ../src/scim_compose_key.cpp:126 msgid "English/European" msgstr "ì˜ì–´/유럽어" #. Append an entry for forward mode. #: ../src/scim_imengine.cpp:638 ../src/scim_utility.cpp:693 #: ../modules/FrontEnd/scim_x11_frontend.cpp:1897 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1281 #: ../extras/panel/scim_panel_gtk.cpp:2814 msgid "English/Keyboard" msgstr "ì˜ì–´/키보드" #: ../src/scim_utility.cpp:694 msgid "Amharic" msgstr "암하ë¼ì–´" #: ../src/scim_utility.cpp:695 msgid "Arabic" msgstr "ì•„ëžì–´" #: ../src/scim_utility.cpp:696 msgid "Arabic (Egypt)" msgstr "ì•„ëžì–´ (ì´ì§‘트)" #: ../src/scim_utility.cpp:697 msgid "Arabic (Lebanon)" msgstr "ì•„ëžì–´ (레바논)" #: ../src/scim_utility.cpp:698 msgid "Assamese" msgstr "아삼어" #: ../src/scim_utility.cpp:699 msgid "Azerbaijani" msgstr "아제르바ì´ì•„잔어" #: ../src/scim_utility.cpp:700 msgid "Belarusian" msgstr "벨로루시어" #: ../src/scim_utility.cpp:701 msgid "Bulgarian" msgstr "불가리어" #: ../src/scim_utility.cpp:702 ../src/scim_utility.cpp:703 msgid "Bengali" msgstr "벵갈어" #: ../src/scim_utility.cpp:704 msgid "Bengali (India)" msgstr "뱅갈어 (ì¸ë„)" #: ../src/scim_utility.cpp:705 msgid "Tibetan" msgstr "티벳어" #: ../src/scim_utility.cpp:706 msgid "Bosnian" msgstr "보스니아어" #: ../src/scim_utility.cpp:707 msgid "Catalan" msgstr "카탈로니아어" #: ../src/scim_utility.cpp:708 ../src/scim_keyboard_layout_data.h:4595 msgid "Czech" msgstr "체코어" #: ../src/scim_utility.cpp:709 msgid "Welsh" msgstr "웨ì¼ì¦ˆì–´" #: ../src/scim_utility.cpp:710 ../src/scim_keyboard_layout_data.h:4597 msgid "Danish" msgstr "ë´ë§ˆí¬ì–´" #: ../src/scim_utility.cpp:711 ../src/scim_keyboard_layout_data.h:4605 msgid "German" msgstr "ë…ì¼ì–´" #: ../src/scim_utility.cpp:712 msgid "Divehi" msgstr "디베히어 " #: ../src/scim_utility.cpp:713 ../src/scim_keyboard_layout_data.h:4608 msgid "Greek" msgstr "그리스어" #: ../src/scim_utility.cpp:714 msgid "English" msgstr "ì˜ì–´" #: ../src/scim_utility.cpp:715 msgid "English (Australian)" msgstr "ì˜ì–´ (호주)" #: ../src/scim_utility.cpp:716 msgid "English (Canadian)" msgstr "ì˜ì–´ (ìºë‚˜ë‹¤)" #: ../src/scim_utility.cpp:717 msgid "English (British)" msgstr "ì˜ì–´ (ì˜êµ­)" #: ../src/scim_utility.cpp:718 msgid "English (Ireland)" msgstr "ì˜ì–´ (ì•„ì¼ëžœë“œ)" #: ../src/scim_utility.cpp:719 msgid "English (American)" msgstr "ì˜ì–´ (미국)" #: ../src/scim_utility.cpp:720 ../src/scim_utility.cpp:721 #: ../src/scim_keyboard_layout_data.h:4621 msgid "Spanish" msgstr "스페ì¸ì–´" #: ../src/scim_utility.cpp:722 msgid "Spanish (Mexico)" msgstr "스페ì¸ì–´ (멕시코)" #: ../src/scim_utility.cpp:723 ../src/scim_keyboard_layout_data.h:4600 msgid "Estonian" msgstr "ì—스토니아어" #: ../src/scim_utility.cpp:724 msgid "Basque" msgstr "바스í¬ì–´" #: ../src/scim_utility.cpp:725 msgid "Persian" msgstr "페르시아어" #: ../src/scim_utility.cpp:726 ../src/scim_keyboard_layout_data.h:4601 msgid "Finnish" msgstr "핀란드어" #: ../src/scim_utility.cpp:727 ../src/scim_keyboard_layout_data.h:4602 msgid "French" msgstr "프랑스어" #: ../src/scim_utility.cpp:728 msgid "Irish" msgstr "ì•„ì¼ëžœë“œì–´" #: ../src/scim_utility.cpp:729 msgid "Galician" msgstr "갈리시아어" #: ../src/scim_utility.cpp:730 msgid "Gujarati" msgstr "구ìžë¼íŠ¸ì–´" #: ../src/scim_utility.cpp:731 ../src/scim_utility.cpp:740 msgid "Hebrew" msgstr "히브리어" #: ../src/scim_utility.cpp:732 msgid "Hindi" msgstr "힌ë‘ì–´" #: ../src/scim_utility.cpp:733 ../src/scim_keyboard_layout_data.h:4594 msgid "Croatian" msgstr "í¬ë¡œì•„í‹°ì•„ì–´" #: ../src/scim_utility.cpp:734 ../src/scim_keyboard_layout_data.h:4609 msgid "Hungarian" msgstr "í—가리어" #: ../src/scim_utility.cpp:735 msgid "Armenian" msgstr "아르메니아어 " #: ../src/scim_utility.cpp:736 msgid "Interlingua" msgstr "국제어" #: ../src/scim_utility.cpp:737 msgid "Indonesian" msgstr "ì¸ë„네시아어" #: ../src/scim_utility.cpp:738 ../src/scim_keyboard_layout_data.h:4627 msgid "Icelandic" msgstr "ì•„ì´ìŠ¤ëžœë“œì–´" #: ../src/scim_utility.cpp:739 ../src/scim_keyboard_layout_data.h:4610 msgid "Italian" msgstr "ì´íƒˆë¦¬ì•„ì–´" #: ../src/scim_utility.cpp:741 ../src/scim_keyboard_layout_data.h:4611 msgid "Japanese" msgstr "ì¼ë³¸ì–´" #: ../src/scim_utility.cpp:742 msgid "Georgian" msgstr "그루지아어 " #: ../src/scim_utility.cpp:743 msgid "Kazakh" msgstr "ì¹´ìžíì–´" #: ../src/scim_utility.cpp:744 msgid "Cambodian" msgstr "캄보디아어" #: ../src/scim_utility.cpp:745 msgid "Kannada" msgstr "칸나다어" #: ../src/scim_utility.cpp:746 msgid "Korean" msgstr "한국어" #: ../src/scim_utility.cpp:747 msgid "Laothian" msgstr "ë¼ì˜¤ìŠ¤ì–´" #: ../src/scim_utility.cpp:748 ../src/scim_keyboard_layout_data.h:4628 msgid "Lithuanian" msgstr "리투아니아어" #: ../src/scim_utility.cpp:749 msgid "Latvian" msgstr "ë¼íŠ¸ë¹„ì•„ì–´" #: ../src/scim_utility.cpp:750 msgid "Macedonian" msgstr "마케ë„니아어" #: ../src/scim_utility.cpp:751 msgid "Malayalam" msgstr "ë§ë¼ì–„람어" #: ../src/scim_utility.cpp:752 msgid "Mongolian" msgstr "몽골어" #: ../src/scim_utility.cpp:753 msgid "Marathi" msgstr "마ë¼íƒ€ì–´" #: ../src/scim_utility.cpp:754 msgid "Malay" msgstr "ë§ë ˆì´ì–´" #: ../src/scim_utility.cpp:755 msgid "Burmese" msgstr "버마어 " #: ../src/scim_utility.cpp:756 msgid "Nepali" msgstr "네팔어" #: ../src/scim_utility.cpp:757 ../src/scim_keyboard_layout_data.h:4598 msgid "Dutch" msgstr "네ë¸ëž€ë“œì–´" #: ../src/scim_utility.cpp:758 msgid "Norwegian (nynorsk)" msgstr "노르웨ì´ì–´ (뉘노르스í¬)" #: ../src/scim_utility.cpp:759 msgid "Norwegian (bokmal)" msgstr "노르웨ì´ì–´ (ë¶€í¬ë§)" #: ../src/scim_utility.cpp:760 msgid "Oriya" msgstr "오리야어" #: ../src/scim_utility.cpp:761 msgid "Punjabi" msgstr "펀ìžë¸Œì–´" #: ../src/scim_utility.cpp:762 ../src/scim_keyboard_layout_data.h:4613 msgid "Polish" msgstr "í´ëž€ë“œì–´" #: ../src/scim_utility.cpp:763 ../src/scim_utility.cpp:765 #: ../src/scim_keyboard_layout_data.h:4614 msgid "Portuguese" msgstr "í¬ë¥´íˆ¬ê°ˆì–´" #: ../src/scim_utility.cpp:764 ../src/scim_keyboard_layout_data.h:4615 msgid "Portuguese (Brazil)" msgstr "í¬ë¥´íˆ¬ê°ˆì–´ (브ë¼ì§ˆ)" #: ../src/scim_utility.cpp:766 msgid "Romanian" msgstr "루마니아어" #: ../src/scim_utility.cpp:767 ../src/scim_keyboard_layout_data.h:4617 msgid "Russian" msgstr "러시아어" #: ../src/scim_utility.cpp:768 msgid "Sinhala" msgstr "ì‹ í• ë¼ì–´ " #: ../src/scim_utility.cpp:769 ../src/scim_keyboard_layout_data.h:4618 msgid "Slovak" msgstr "슬로바키아어" #: ../src/scim_utility.cpp:770 ../src/scim_keyboard_layout_data.h:4620 msgid "Slovenian" msgstr "슬로베니아어" #: ../src/scim_utility.cpp:771 msgid "Albanian" msgstr "알바니아어" #: ../src/scim_utility.cpp:772 ../src/scim_utility.cpp:773 #: ../src/scim_utility.cpp:774 msgid "Serbian" msgstr "세르비아어" #: ../src/scim_utility.cpp:775 ../src/scim_utility.cpp:777 #: ../src/scim_keyboard_layout_data.h:4624 msgid "Swedish" msgstr "스웨ë´ì–´" #: ../src/scim_utility.cpp:776 msgid "Swedish (Finland)" msgstr "스웨ë´ì–´ (핀란드)" #: ../src/scim_utility.cpp:778 msgid "Tamil" msgstr "타밀어" #: ../src/scim_utility.cpp:779 msgid "Telugu" msgstr "텔루구어" #: ../src/scim_utility.cpp:780 msgid "Thai" msgstr "태국어 " #: ../src/scim_utility.cpp:781 ../src/scim_keyboard_layout_data.h:4625 msgid "Turkish" msgstr "터키어" #: ../src/scim_utility.cpp:782 msgid "Uighur" msgstr "위그루어" #: ../src/scim_utility.cpp:783 ../src/scim_keyboard_layout_data.h:4629 msgid "Ukrainian" msgstr "ìš°í¬ë¼ì´ë‚˜ì–´" #: ../src/scim_utility.cpp:784 msgid "Urdu" msgstr "우르ë‘ì–´" #: ../src/scim_utility.cpp:785 msgid "Uzbek" msgstr "우즈베키스탄어" #: ../src/scim_utility.cpp:786 msgid "Vietnamese" msgstr "베트남어" #: ../src/scim_utility.cpp:787 msgid "Walloon" msgstr "와론어" #: ../src/scim_utility.cpp:788 ../src/scim_utility.cpp:789 msgid "Yiddish" msgstr "ì´ë””시어" #: ../src/scim_utility.cpp:790 msgid "Chinese" msgstr "중국어" #: ../src/scim_utility.cpp:791 ../src/scim_utility.cpp:793 msgid "Chinese (simplified)" msgstr "중국어 (ê°„ì²´)" #: ../src/scim_utility.cpp:792 ../src/scim_utility.cpp:794 msgid "Chinese (traditional)" msgstr "중국어 (번체)" #: ../src/scim_utility.cpp:876 msgid "Other" msgstr "기타" #: ../src/scim_keyboard_layout_data.h:4591 #: ../modules/IMEngine/scim_socket_imengine.cpp:386 #: ../modules/IMEngine/scim_socket_imengine.cpp:416 #: ../modules/IMEngine/scim_socket_imengine.cpp:501 #: ../modules/IMEngine/scim_socket_imengine.cpp:531 #: ../modules/IMEngine/scim_socket_imengine.cpp:561 msgid "Unknown" msgstr "알수없ìŒ" #: ../src/scim_keyboard_layout_data.h:4592 msgid "English (US)" msgstr "ì˜ì–´ (미국)" #: ../src/scim_keyboard_layout_data.h:4593 msgid "Belgian" msgstr "벨기ì—ì–´" #: ../src/scim_keyboard_layout_data.h:4596 msgid "Czech (qwerty)" msgstr "체코어 (쿼티)" #: ../src/scim_keyboard_layout_data.h:4599 msgid "Dvorak" msgstr "드보ë½" #: ../src/scim_keyboard_layout_data.h:4603 msgid "French (Canadian)" msgstr "프랑스어 (ìºë‚˜ë‹¤)" #: ../src/scim_keyboard_layout_data.h:4604 msgid "French (Switzerland)" msgstr "프랑스어 (스위스)" #: ../src/scim_keyboard_layout_data.h:4606 msgid "German (with deadkeys)" msgstr "ë…ì¼ì–´ (ë°ë“œí‚¤ í¬í•¨)" #: ../src/scim_keyboard_layout_data.h:4607 msgid "German (Swiss)" msgstr "ë…ì¼ì–´ (스위스)" #: ../src/scim_keyboard_layout_data.h:4612 msgid "Norwegian" msgstr "노르웨ì´ì–´" #: ../src/scim_keyboard_layout_data.h:4616 msgid "Portuguese (Brazil US accents)" msgstr "í¬ë£¨íˆ¬ê°ˆì–´ (브ë¼ì§ˆ 미국 엑센트)" #: ../src/scim_keyboard_layout_data.h:4619 msgid "Slovak (qwerty)" msgstr "슬로바키아어 (쿼티)" #: ../src/scim_keyboard_layout_data.h:4622 msgid "Spanish (CP 850)" msgstr "스페ì¸ì–´ (CP 850)" #: ../src/scim_keyboard_layout_data.h:4623 msgid "Spanish (Latin America)" msgstr "스페ì¸ì–´ (ë¼í‹´ 아메리카)" #: ../src/scim_keyboard_layout_data.h:4626 msgid "English (UK)" msgstr "ì˜ì–´ (ì˜êµ­)" #: ../modules/Filter/scim_sctc_filter.cpp:57 msgid "Simplified-Traditional Chinese Conversion" msgstr "중국어 ê°„ì²´-번체 변환" #: ../modules/Filter/scim_sctc_filter.cpp:60 msgid "Convert between Simplified Chinese and Traditional Chinese" msgstr "중국어를 간체와 번체로 변환" #: ../modules/Filter/scim_sctc_filter.cpp:71 msgid "SC-TC" msgstr "ê°„ì²´-번체" #: ../modules/Filter/scim_sctc_filter.cpp:73 #: ../modules/Filter/scim_sctc_filter.cpp:78 msgid "Simplified-Traditional Chinese conversion" msgstr "중국어 ê°„ì²´-번체 변환" #: ../modules/Filter/scim_sctc_filter.cpp:76 msgid "No Conversion" msgstr "변환하지 않ìŒ" #: ../modules/Filter/scim_sctc_filter.cpp:81 msgid "Simplified to Traditional" msgstr "중국어 ê°„ì²´ì—서 번체로" #: ../modules/Filter/scim_sctc_filter.cpp:83 msgid "Convert Simplified Chinese to Traditional Chinese" msgstr "중국어 ê°„ì²´ì—서 번체로 변환 " #: ../modules/Filter/scim_sctc_filter.cpp:86 msgid "Traditional to Simplified" msgstr "중국어 번체ì—서 간체로 " #: ../modules/Filter/scim_sctc_filter.cpp:88 msgid "Convert Traditional Chinese to Simplified Chinese" msgstr "중국어 번체ì—서 간체로 변환" #: ../modules/Filter/scim_sctc_filter.cpp:300 msgid "James Su " msgstr "제임스 수 " #: ../modules/Filter/scim_sctc_filter.cpp:425 #: ../modules/Filter/scim_sctc_filter.cpp:555 #: ../modules/Filter/scim_sctc_filter.cpp:571 msgid "SC->TC" msgstr "ê°„ì²´->번체" #: ../modules/Filter/scim_sctc_filter.cpp:431 #: ../modules/Filter/scim_sctc_filter.cpp:559 #: ../modules/Filter/scim_sctc_filter.cpp:575 msgid "TC->SC" msgstr "번체->ê°„ì²´" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1845 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1231 #: ../extras/panel/scim_panel_gtk.cpp:2304 msgid "Smart Common Input Method platform " msgstr "스마트 ì¼ë°˜ ìž…ë ¥ ë°©ì‹ í”Œëž«í¼ " #: ../modules/FrontEnd/scim_x11_frontend.cpp:1847 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1233 msgid "" "\n" "(C) 2002-2005 James Su \n" "\n" msgstr "" "\n" "(C) 2002-2005 제임스 수 \n" "\n" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1851 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1238 msgid "" ":\n" "\n" msgstr "" ":\n" "\n" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1854 #: ../modules/FrontEnd/scim_x11_frontend.cpp:1857 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1241 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1244 msgid "" "\n" "\n" msgstr "" "\n" "\n" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:120 msgid "RAW CODE" msgstr "RAW CODE" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:127 msgid "(C) 2002-2006 James Su " msgstr "(C) 2002-2006 제임스 수 " #: ../modules/IMEngine/scim_rawcode_imengine.cpp:140 msgid "" "Hot Keys:\n" "\n" " Control+u:\n" " switch between Multibyte encoding and Unicode.\n" "\n" " Esc:\n" " reset the input method.\n" msgstr "" "단축키:\n" "\n" " Control+u:\n" " 멀티바ì´íЏ ì¸ì½”딩과 유니코드간 전환.\n" "\n" " Esc:\n" " 입력기 초기화.\n" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:407 #: ../modules/IMEngine/scim_rawcode_imengine.cpp:423 msgid "The status of the current input method. Click to change it." msgstr "현재 ìž…ë ¥ ìƒíƒœìž…니다. 바꾸길 ì›í•˜ì‹œë©´ í´ë¦­í•˜ì‹­ì‹œì˜¤." #: ../modules/IMEngine/scim_rawcode_imengine.cpp:409 msgid "Unicode" msgstr "유니코드" #: ../modules/SetupUI/scim_frontend_setup.cpp:82 #: ../modules/SetupUI/scim_imengine_setup.cpp:88 msgid "Global Setup" msgstr "ì „ì²´ 설정" #: ../modules/SetupUI/scim_frontend_setup.cpp:87 msgid "" "Setup the global options used by All FrontEnd modules, including X11 " "FrontEnd, GTK IMModule, QT IMModule etc." msgstr "X11, GTK 입력모듈, QT 입력모듈 등 모든 프론트엔드ì—대한 ì „ì²´ ì„¤ì •ì„ í•©ë‹ˆë‹¤." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:143 msgid "_Trigger:" msgstr "전환키(_T):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:145 msgid "Select the trigger keys" msgstr "전환키 ì„ íƒ" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:147 msgid "" "The key events to turn on/off SCIM input method. Click on the button on the " "right to edit it." msgstr "" "SCIM 입력방ì‹ì„ ë„ê³ /켜기 위한 키 설정입니다. 우측 단추를 í´ë¦­í•˜ê³  수정하세" "ìš”." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:160 msgid "Turn _On:" msgstr "활성화(_O):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:162 msgid "Select the Turn On keys" msgstr "활성화키 ì„ íƒ" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:164 msgid "" "The key events to turn on SCIM input method. Click on the button on the " "right to edit it." msgstr "SCIM 입력방ì‹ì„ 켜기 위한 키 설정. 우측 단추를 í´ë¦­í•˜ê³  수정하세요." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:177 msgid "Turn O_ff:" msgstr "ë„기(_f):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:179 msgid "Select the Turn Off keys" msgstr "ë„기 키 ì„ íƒ" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:181 msgid "" "The key events to turn off SCIM input method. Click on the button on the " "right to edit it." msgstr "SCIM 입력방ì‹ì„ ë„기 위한 키 설정. 우측 단추를 í´ë¦­í•˜ê³  수정하세요." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:194 msgid "_Next input method:" msgstr "ë‹¤ìŒ ìž…ë ¥ë°©ì‹(_N):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:196 msgid "Select the next input method keys" msgstr "ë‹¤ìŒ ìž…ë ¥ ë°©ì‹ìœ¼ë¡œ ë°”ê¾¸ëŠ”ë° ì‚¬ìš©í•  키 ì„ íƒ" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:198 msgid "" "The key events to switch to the next input method. Click on the button on " "the right to edit it." msgstr "ë‹¤ìŒ ìž…ë ¥ë°©ì‹ìœ¼ë¡œ ì „í™˜ì„ ìœ„í•œ 키설정. 오른쪽 단추를 í´ë¦­í•˜ê³  수정하세요." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:213 msgid "_Previous input method:" msgstr "ì´ì „ 입력방ì‹(_P):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:215 msgid "Select the previous input method keys" msgstr "ì´ì „ 입력방ì‹ì„ ì„ íƒ" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:217 msgid "" "The key events to switch to the previous input method. Click on the button " "on the right to edit it." msgstr "ì´ì „ 입력방ì‹ìœ¼ë¡œ ì „í™˜ì„ ìœ„í•œ 키 설정. 우측 단추를 í´ë¦­í•˜ê³  수정하세요." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:232 msgid "Show input method _menu:" msgstr "ìž…ë ¥ë°©ì‹ ë°©ë²• 보여줌(_M)" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:234 msgid "Select the show input method menu keys" msgstr "ìž…ë ¥ ë°©ì‹ ë³´ì—¬ì¤Œ 메뉴 키 ì„ íƒ" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:236 msgid "" "The key events to show the input method menu. Click on the button on the " "right to edit it." msgstr "ìž…ë ¥ë°©ì‹ ë©”ë‰´ë¥¼ 보여줌 설정. 오를쪽 단추를 í´ë¦­í•˜ê³  수정하세요." #: ../modules/SetupUI/scim_frontend_setup.cpp:306 msgid "Options" msgstr "옵션" #: ../modules/SetupUI/scim_frontend_setup.cpp:321 msgid "_Keyboard Layout:" msgstr "키보드 ë ˆì´ì•„웃(_K):" #: ../modules/SetupUI/scim_frontend_setup.cpp:342 msgid "" "You should choose your currently used keyboard layout here so that input " "methods, who care about keyboard layout, could work correctly." msgstr "" "현재 사용하는 키보드 ë ˆì´ì•„ì›ƒì„ ì„ íƒí•˜ì„¸ìš”, 그래야만 사용하려는 ìž…ë ¥ë°©ë²•ë“¤ì´ " "정확히 ìž‘ë™í• ìˆ˜ 있습니다." #. On The Spot. #: ../modules/SetupUI/scim_frontend_setup.cpp:346 msgid "_Embed Preedit String into client window" msgstr "ì¡°í•©ì¤‘ì¸ ê¸€ìžë¥¼ í´ë¼ì´ì–¸íЏ 윈ë„ìš°ì—서 보여줌(_E)" #: ../modules/SetupUI/scim_frontend_setup.cpp:351 msgid "" "If this option is checked, the preedit string will be displayed directly in " "the client input window, rather than in a independent float window." msgstr "" "ì´ ì˜µì…˜ì„ ì¼œë©´, ì¡°í•©ì¤‘ì¸ ê¸€ìžê°€ ë…ë¦½ëœ ì°½ì—서 ë³´ì´ì§€ 않고 입력창ì—서 바로 ë³´" "ì´ê²Œë©ë‹ˆë‹¤." #. Shared input method. #: ../modules/SetupUI/scim_frontend_setup.cpp:360 msgid "_Share the same input method among all applications" msgstr "모든 í”„ë¡œê·¸ëž¨ì— ê°™ì€ ìž…ë ¥ ë°©ë²•ì„ ê³µìœ (_S)" #: ../modules/SetupUI/scim_frontend_setup.cpp:365 msgid "" "If this option is checked, then only one input method could be used by all " "applications at the same time.Otherwise different input method could be used " "by each application." msgstr "" "ì´ ì˜µì…˜ì„ ì¼œë©´ ë‹¨í•˜ë‚˜ì˜ ìž…ë ¥ ë°©ë²•ì„ ëª¨ë“  프로그램ì—서 ë™ì‹œì— 사용하게ë©ë‹ˆë‹¤. " "ì„ íƒí•˜ì§€ 않으면 ê°ê°ì˜ 프로그램ì—서 다른 ìž…ë ¥ ë°©ë²•ì´ ì ìš©ë©ë‹ˆë‹¤." #: ../modules/SetupUI/scim_frontend_setup.cpp:373 #: ../modules/SetupUI/scim_imengine_setup.cpp:453 msgid "Hotkeys" msgstr "단축키" #: ../modules/SetupUI/scim_imengine_setup.cpp:93 msgid "You can enable/disable input methods and set hotkeys for input methods here." msgstr "ê° ìž…ë ¥ 방법들과 단축키를 활성화하거나, 비활성화 할수 있습니다." #: ../modules/SetupUI/scim_imengine_setup.cpp:296 msgid "The installed input method services:" msgstr "ì„¤ì¹˜ëœ ìž…ë ¥ê¸° 서비스: " #. Create hotkey and filter button before factory list view, because #. factory_list_selection_changed_callback may access these two buttons. #: ../modules/SetupUI/scim_imengine_setup.cpp:311 msgid "Edit _Hotkeys" msgstr "단축키 수정(_H)" #: ../modules/SetupUI/scim_imengine_setup.cpp:320 msgid "Edit Hotkeys associated with the selected input method." msgstr "ì„ íƒëœ ìž…ë ¥ ë°©ì‹ì— ê´€ë ¨ëœ ë‹¨ì¶•í‚¤ 수정." #: ../modules/SetupUI/scim_imengine_setup.cpp:322 msgid "Select _Filters" msgstr "í•„í„° ì„ íƒ" #: ../modules/SetupUI/scim_imengine_setup.cpp:331 msgid "Select the Filters which will be attached to this input method." msgstr "현재 ìž…ë ¥ ë°©ë²•ì— ì—°ê²°ë  í•„í„° ì„ íƒ." #: ../modules/SetupUI/scim_imengine_setup.cpp:348 msgid "_Expand" msgstr "확장(_E)" #: ../modules/SetupUI/scim_imengine_setup.cpp:357 msgid "Expand all language categories." msgstr "모든 언어 카테고리를 확장 " #: ../modules/SetupUI/scim_imengine_setup.cpp:359 msgid "_Collapse" msgstr "축소(_C)" #: ../modules/SetupUI/scim_imengine_setup.cpp:368 msgid "Collapse all language categories." msgstr "모든 언어 카테고리를 축소." #: ../modules/SetupUI/scim_imengine_setup.cpp:370 msgid "E_nable All" msgstr "ëª¨ë‘ í™œì„±í™”(_n)" #: ../modules/SetupUI/scim_imengine_setup.cpp:379 msgid "Enable all input methods." msgstr "모든 ìž…ë ¥ ë°©ë²•ì„ í™œì„±í™” " #: ../modules/SetupUI/scim_imengine_setup.cpp:381 msgid "_Disable All" msgstr "ëª¨ë‘ ë¹„í™œì„±í™”(_D)" #: ../modules/SetupUI/scim_imengine_setup.cpp:390 msgid "Disable all input methods." msgstr "모든 ìž…ë ¥ 모듈 비활성화" #: ../modules/SetupUI/scim_imengine_setup.cpp:414 #: ../modules/SetupUI/scim_imengine_setup.cpp:541 msgid "Name" msgstr "ì´ë¦„" #: ../modules/SetupUI/scim_imengine_setup.cpp:432 #: ../modules/SetupUI/scim_imengine_setup.cpp:522 msgid "Enable" msgstr "활성화" #: ../modules/SetupUI/scim_imengine_setup.cpp:467 msgid "Filters" msgstr "í•„í„°" #: ../modules/SetupUI/scim_imengine_setup.cpp:560 msgid "Languages" msgstr "언어" #: ../modules/SetupUI/scim_imengine_setup.cpp:574 msgid "Description" msgstr "설명" #: ../modules/SetupUI/scim_imengine_setup.cpp:1190 #, c-format msgid "Edit Hotkeys for %s" msgstr "%s 단축키 수정" #: ../modules/SetupUI/scim_imengine_setup.cpp:1417 #, c-format msgid "Select Filters for %s" msgstr "%s(ì„)를 위한 í•„í„° ì„ íƒ" #: ../modules/SetupUI/scim_imengine_setup.cpp:1450 msgid "Move _Up" msgstr "위로(_U)" #: ../modules/SetupUI/scim_imengine_setup.cpp:1457 msgid "Move _Down" msgstr "아래로(_D)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:95 msgid "GTK" msgstr "GTK" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:100 msgid "A panel daemon based on GTK+-2.x library." msgstr "GTK+-2.x ë¼ì´ë¸ŒëŸ¬ë¦¬ë¥¼ 기반으로 한 íŒ¨ë„ ë””ë¨¼" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:163 msgid "Always" msgstr "í•­ìƒ" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:164 msgid "On demand" msgstr "필요할때" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:165 msgid "Never" msgstr "전혀안함" #. Create the ToolBar setup block. #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:211 msgid "ToolBar" msgstr "ë„구바" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:229 msgid "_Show:" msgstr "ë³´ì´ê¸°(_S):" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:245 msgid "Auto s_nap" msgstr "ìžë™ 스냅(_n)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:251 msgid "Show _input method icon" msgstr "ìž…ë ¥ë°©ì‹ ì•„ì´ì½˜ ë³´ìž„(_i)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:257 msgid "Show inp_ut method name" msgstr "ìž…ë ¥ë°©ì‹ ì´ë¦„ ë³´ìž„(_u)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:269 msgid "Hide time_out:" msgstr "숨기기 시간 제한(_o):" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:282 msgid "Show s_tick icon" msgstr "ê³ ì • ì•„ì´ì½˜ ë³´ìž„(_t)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:288 msgid "Show m_enu icon" msgstr "메뉴 ì•„ì´ì½˜ ë³´ìž„(_e)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:294 msgid "Show _help icon" msgstr "ë„ì›€ë§ ì•„ì´ì½˜ ë³´ìž„(_h)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:300 msgid "Show _property label" msgstr "ì†ì„± ìƒíƒœ ë³´ìž„(_p)" #. Create the Input Window setup block #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:311 msgid "Input window" msgstr "입력창" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:320 msgid "E_mbedded lookup table" msgstr "ë‚´ìž¥ëœ ë¯¸ë¦¬ë³´ê¸° í…Œì´ë¸” 사용(_m)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:324 msgid "_Vertical lookup table" msgstr "미리보기 í…Œì´ë¸” 세로로 보기(_V)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:328 msgid "Misc" msgstr "기타" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:337 msgid "Show tra_y icon" msgstr "íŠ¸ë ˆì´ ì•„ì´ì½˜ ë³´ì´ê¸°(_y)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:341 msgid "Stick _windows" msgstr "ì°½ ê³ ì •(_w)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:349 msgid "_Font:" msgstr "글꼴(_F):" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:419 msgid "" "If option \"Always\" is selected, the toolbar will always be shown on the " "screen. If option \"On demand\" is selected, it will only be shown when SCIM " "is activated. If option \"Never\" is selected, it will never be shown." msgstr "" "\"í•­ìƒ\" ì˜µì…˜ì´ ì„ íƒë˜ë©´ ë„구ìƒìžëŠ” í•­ìƒ í™”ë©´ì— ë³´ì´ê²Œ ë©ë‹ˆë‹¤. \"필요할때\" " "ì˜µì…˜ì´ ì„ íƒë˜ë©´ SCIMì´ í™œì„±í™” ëì„ ë•Œë§Œ ë³´ì´ê²Œ ë©ë‹ˆë‹¤. \"전혀안함\" ì˜µì…˜ì„ ì„ " "íƒí•˜ë©´ 전혀 ë³´ì´ì§€ 않게 ë©ë‹ˆë‹¤." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:426 msgid "If this option is checked, the toolbar will be snapped to the screen border." msgstr "ì´ ì„¤ì •ì„ ì„ íƒí•˜ë©´, ë„구ìƒìžê°€ 화면 가장ìžë¦¬ì— ë§žì¶° 움ì§ì´ê²Œ ë©ë‹ˆë‹¤." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:431 msgid "" "The toolbar will be hidden out after this timeout is elapsed. This option is " "only valid when \"Always show\" is selected. Set to zero to disable this " "behavior." msgstr "" "ì¼ì • ì‹œê°„ì´ ì§€ë‚˜ë©´ ë„구ìƒìžê°€ 사ë¼ì§ˆ 것입니다. ì´ ì˜µì…˜ì€ \"í•­ìƒ ë³´ìž„\" 옵션" "ì´ ì„ íƒ ë˜ì–´ 있ì„때 ìž‘ë™í•©ë‹ˆë‹¤. 0으로 설정하면 ìž‘ë™í•˜ì§€ 않습니다." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:438 msgid "" "If this option is checked, the input method icon will be showed on the " "toolbar." msgstr "ì´ ì˜µì…˜ì„ ì„ íƒí•˜ë©´, 입력방법 ì•„ì´ì½˜ì´ ë„구ìƒìžì— 나타납니다." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:442 msgid "" "If this option is checked, the input method name will be showed on the " "toolbar." msgstr "ì´ ì˜µì…˜ì„ ì„ íƒí•˜ë©´, ìž…ë ¥ë°©ë²•ì˜ ì´ë¦„ì´ ë„구ìƒìžì— 나타납니다." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:446 msgid "If this option is checked, the stick icon will be showed on the toolbar." msgstr "ì´ ì˜µì…˜ì„ ì„ íƒí•˜ë©´, ê³ ì • ì•„ì´ì½˜ì´ ë„구ìƒìžì— 나타납니다." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:450 msgid "If this option is checked, the menu icon will be showed on the toolbar." msgstr "ì´ ì˜µì…˜ì„ ì„ íƒí•˜ë©´, 메뉴 ì•„ì´ì½˜ì´ ë„구ìƒìžì— 나타납니다." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:454 msgid "If this option is checked, the help icon will be showed on the toolbar." msgstr "ì´ ì˜µì…˜ì„ ì„ íƒí•˜ë©´, ë„êµ¬ì°½ì— ë„ì›€ë§ ì•„ì´ì½˜ì´ 나타납니다." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:458 msgid "" "If this option is checked, the text label of input method properties will be " "showed on the toolbar." msgstr "ì´ ì˜µì…˜ì„ ì„ íƒí•˜ë©´, ìž…ë ¥ ë°©ì‹ì˜ ì†ì„±ë“¤ì„ ë„구ìƒìžì—서 ë³¼ 수 있습니다." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:462 msgid "" "If this option is checked, the lookup table will be embedded into the input " "window." msgstr "ì´ ì˜µì…˜ì„ ì„ íƒí•˜ë©´, 미리보기 í…Œì´ë¸”ì´ ìž…ë ¥ì°½ì— ë°”ë¡œ ë¶™ì„ ê²ƒìž…ë‹ˆë‹¤." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:467 msgid "If this option is checked, the lookup table will be displayed vertically." msgstr "ì´ ì˜µì…˜ì„ ì„ íƒí•˜ë©´, 미리보기 í…Œì´ë¸”ì´ ì„¸ë¡œë¡œ 나타납니다." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:472 msgid "" "If this option is checked, the tray icon will be showed on the desktop's " "taskbar." msgstr "ì´ ì˜µì…˜ì„ ì„ íƒí•˜ë©´, íŠ¸ë ˆì´ ì•„ì´ì½˜ì´ ë°ìФí¬íƒ‘ 테스í¬ë°”ì— ë³´ì´ê²Œ ë©ë‹ˆë‹¤." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:476 msgid "" "If this option is checked, the toolbar, input and lookup table windows will " "be sticked to its original position." msgstr "ì´ ì˜µì…˜ì„ ì„ íƒí•˜ë©´, ë„구ìƒìž, 입력창과 ë¯¸ë¦¬ë³´ê¸°ì°½ë“¤ì˜ ìœ„ì¹˜ê°€ ê³ ì •ë©ë‹ˆë‹¤." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:482 msgid "The font setting will be used in the input and lookup table windows." msgstr "글꼴 ì„¤ì •ì€ ìž…ë ¥ì°½ê³¼ 미리보기 í…Œì´ë¸” ì°½ì— ì‚¬ìš©ë©ë‹ˆë‹¤." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:801 msgid "Select Interface Font" msgstr "글꼴 ì„ íƒ" #: ../extras/setup/scim_setup_ui.cpp:47 msgid "SCIM" msgstr "SCIM" #: ../extras/setup/scim_setup_ui.cpp:48 msgid "FrontEnd" msgstr "프론트엔드" #: ../extras/setup/scim_setup_ui.cpp:49 msgid "IMEngine" msgstr "입력기엔진" #: ../extras/setup/scim_setup_ui.cpp:50 msgid "Panel" msgstr "패ë„" #: ../extras/setup/scim_setup_ui.cpp:51 msgid "Extra" msgstr "기타" #. #. vi:ts=4:nowrap:ai:expandtab #. #: ../extras/setup/scim_setup_ui.cpp:230 #: ../extras/setup/scim-setup.desktop.in.h:1 msgid "SCIM Input Method Setup" msgstr "SCIM 입력기 설정" #: ../extras/setup/scim_setup_ui.cpp:369 msgid "" " Smart Common Input Method platform \n" "\n" "GUI Setup Utility\n" "\n" "\n" "\n" "Copyright 2002-2004, James Su <suzhe@tsinghua.org." "cn>" msgstr "" " 스마트 ì¼ë°˜ ìž…ë ¥ ë°©ì‹ í”Œëž«í¼ \n" "\n" "GUI 설정 프로그램\n" "\n" "\n" "\n" "Copyright 2002-2004, 제임스 수 <suzhe@tsinghua.org." "cn>" #: ../extras/setup/scim_setup_ui.cpp:394 #, c-format msgid "The Setup for %s modules." msgstr "%s ëª¨ë“ˆì„ ìœ„í•œ 설정." #msgid "Are you sure you want to quit SCIM Setup?" #msgstr "SCIM ì„¤ì •ì„ ì¢…ë£Œí•˜ì‹œê² ìŠµë‹ˆê¹Œ?" #: ../extras/setup/scim_setup_ui.cpp:661 msgid "" "Not all configuration can be reloaded on the fly. Don't forget to restart " "SCIM in order to let all of the new configuration take effect." msgstr "" "모든 환경 ì„¤ì •ì„ ìƒˆë¡œ 불러오진 못 합니다. 새로운 í™˜ê²½ì„¤ì •ì„ ëª¨ë‘ ì ìš©í•˜ê¸° 위" "해서는 SCIMì„ ë‹¤ì‹œ 시작해야 합니다." #: ../extras/setup/scim_setup_helper.cpp:49 msgid "SCIM Setup" msgstr "SCIM 설정" #: ../extras/setup/scim_setup_helper.cpp:51 msgid "Integrated Setup Utility based on GTK Widget library." msgstr "GTK ë¼ì´ë¸ŒëŸ¬ë¦¬ ê¸°ë°˜ì˜ ì„¤ì • 프로그램" #: ../extras/setup/scim-setup.desktop.in.h:2 msgid "Setup utility for Smart Common Input Method platform" msgstr "스마트 ì¼ë°˜ ìž…ë ¥ ë°©ì‹ (SCIM) 플랫í¼ì„ 위한 설정 프로그램" #: ../extras/panel/scim_panel_gtk.cpp:982 msgid "SCIM Help" msgstr "SCIM ë„움ë§" #: ../extras/panel/scim_panel_gtk.cpp:999 msgid "Smart Common Input Method" msgstr "스마트 ì¼ë°˜ ìž…ë ¥ ë°©ì‹" #: ../extras/panel/scim_panel_gtk.cpp:1058 msgid "Stick/unstick the input window and the toolbar." msgstr "입력창과 ë„구ìƒìž ê³ ì •/비고정합니다." #: ../extras/panel/scim_panel_gtk.cpp:1063 msgid "Show a brief help about SCIM and the current input method." msgstr "SCIM ê³¼ 현재 ìž…ë ¥ ë°©ë²•ì— ëŒ€í•œ 간단한 ë„움ë§ì„ ë³´ì—¬ì¤ë‹ˆë‹¤." #: ../extras/panel/scim_panel_gtk.cpp:1068 msgid "Show command menu." msgstr "명령 메뉴를 ë³´ì—¬ì¤ë‹ˆë‹¤." #: ../extras/panel/scim_panel_gtk.cpp:2306 msgid "" "\n" "(C) 2002-2005 James Su " msgstr "" "\n" "(C) 2002-2005 제임스 수 " #. Reload Configuration. #: ../extras/panel/scim_panel_gtk.cpp:2385 msgid "Reload Configuration" msgstr "설정 새로 불러오기" #. Stick #: ../extras/panel/scim_panel_gtk.cpp:2395 msgid "Stick Windows" msgstr "윈ë„ìš° ê³ ì •" #. Toolbar #: ../extras/panel/scim_panel_gtk.cpp:2404 msgid "Hide Toolbar" msgstr "ë„구바 숨김" #. Help #: ../extras/panel/scim_panel_gtk.cpp:2413 msgid "Help ..." msgstr "ë„ì›€ë§ ..." #. Clients exit. #: ../extras/panel/scim_panel_gtk.cpp:2431 msgid "Exit" msgstr "ë내기" #: ../utils/scimstringview.c:196 msgid "Cursor Position" msgstr "커서 위치" #: ../utils/scimstringview.c:197 msgid "The current position of the insertion cursor in chars." msgstr "문ìžì—´ì—서 ì»¤ì„œì˜ í˜„ìž¬ 위치." #: ../utils/scimstringview.c:206 msgid "Maximum length" msgstr "최대 길ì´" #: ../utils/scimstringview.c:207 msgid "Maximum number of characters for this string view. Zero if no maximum." msgstr "문ìžì—´ë¥¼ 보기 위한 최대 문ìžìˆ˜, 0ì€ ì œí•œ ì—†ìŒ." #: ../utils/scimstringview.c:216 msgid "Maximum width" msgstr "최대í­" #: ../utils/scimstringview.c:217 msgid "Maximum width of this string view." msgstr "문ìžì—´ ë³´ê¸°ì˜ ìµœëŒ€ ë„“ì´." #: ../utils/scimstringview.c:226 msgid "Has Frame" msgstr "í”„ë ˆìž„ì„ ê°€ì§" #: ../utils/scimstringview.c:227 msgid "FALSE removes outside bevel from string view." msgstr "거짓으로 설정하면 문ìžì—´ ë³´ê¸°ì˜ ì™¸ê° ê²½ì‚¬ê°€ 없어집니다." #: ../utils/scimstringview.c:234 msgid "Draw cursor" msgstr "커서 그리기" #: ../utils/scimstringview.c:235 msgid "TRUE draw blinking cursor." msgstr "참으로 설정하면 커서를 깜빡ì´ê²Œ 합니다." #: ../utils/scimstringview.c:242 msgid "Auto move cursor" msgstr "ìžë™ 커서 ì´ë™" #: ../utils/scimstringview.c:243 msgid "TRUE auto move cursor position when mouse clicking." msgstr "참으로 설정하면 마우스 í´ë¦­ì‹œ ìžë™ìœ¼ë¡œ 커서가 ì´ë™í•©ë‹ˆë‹¤." #: ../utils/scimstringview.c:250 msgid "Forward button press event" msgstr "버튼 프레스 ì´ë²¤íŠ¸ë¥¼ 전달함" #: ../utils/scimstringview.c:251 msgid "TRUE forward button press event to user program." msgstr "참으로 설정하면 버튼 프레스 ì´ë²¤íŠ¸ë¥¼ ì‚¬ìš©ìž í”„ë¡œê·¸ëž¨ì— ì „ë‹¬." #: ../utils/scimstringview.c:258 msgid "Auto resize the widget to fit the string" msgstr "문ìžì—´ì— í¬ê¸°ì— ë”°ë¼ ìœ„ì ¯ í¬ê¸° ìžë™ ì¡°ì ˆ" #: ../utils/scimstringview.c:259 msgid "TRUE Auto resize on." msgstr "참으로 설정하면 ìžë™ìœ¼ë¡œ í¬ê¸°ê°€ 변합니다." #: ../utils/scimstringview.c:266 msgid "Width in chars" msgstr "í­(ê¸€ìž ë‹¨ìœ„)" #: ../utils/scimstringview.c:267 msgid "Number of characters to leave space for in the string view." msgstr "문ìžì—´ 보기ì—서 ê³µê°„ì„ ë§Œë“¤ê¸°ìœ„í•´ 사용할 글ìžìˆ˜." #: ../utils/scimstringview.c:276 msgid "Scroll offset" msgstr "스í¬ë¡¤ 단위" #: ../utils/scimstringview.c:277 msgid "Number of pixels of the string view scrolled off the screen to the left" msgstr "화면 좌측으로 부터 문ìžì—´ 보기ì—서 스í¬ë¡¤ì„ 위한 픽셀수" #: ../utils/scimstringview.c:286 msgid "Text" msgstr "본문" #: ../utils/scimstringview.c:287 msgid "The contents of the string view" msgstr "문ìžì—´ ë³´ê¸°ì˜ ë‚´ìš©" #: ../utils/scimkeyselection.cpp:155 msgid "Selected _Keys:" msgstr "ì„ íƒëœ 키(_K):" #: ../utils/scimkeyselection.cpp:200 msgid "Key Code:" msgstr "키 코드:" #: ../utils/scimkeyselection.cpp:218 msgid "..." msgstr "..." #: ../utils/scimkeyselection.cpp:223 msgid "Modifiers:" msgstr "수정:" #: ../utils/scimkeyselection.cpp:236 msgid "_Ctrl" msgstr "_Ctrl" #: ../utils/scimkeyselection.cpp:240 msgid "A_lt" msgstr "A_lt" #: ../utils/scimkeyselection.cpp:244 msgid "_Shift" msgstr "_Shift" #: ../utils/scimkeyselection.cpp:248 msgid "_Release" msgstr "놓ìŒ(_R)" #: ../utils/scimkeyselection.cpp:258 msgid "_Meta" msgstr "_Meta" #: ../utils/scimkeyselection.cpp:262 msgid "S_uper" msgstr "S_uper" #: ../utils/scimkeyselection.cpp:266 msgid "_Hyper" msgstr "_Hyper" #: ../utils/scimkeyselection.cpp:331 msgid "Please enter a Key Code first." msgstr "키 코드를 입력하십시오." #: ../utils/scimkeyselection.cpp:385 msgid "" "Press a key (or a key combination).\n" "This dialog will be closed when the key is released." msgstr "" "키를 누르십시오(ë˜ëŠ” í‚¤ì˜ ì¡°í•©ì„).\n" "키 ì„ íƒ í›„ ì´ì°½ì€ ìžë™ìœ¼ë¡œ 닫힙니다." #: ../utils/scimkeyselection.cpp:388 msgid "Grabbing a key." msgstr "키를 기ë¡í•©ë‹ˆë‹¤." #: ../utils/scimkeyselection.cpp:678 msgid "Key Selection" msgstr "키 ì„ íƒ" #: ../utils/scimtrayicon.c:108 msgid "Orientation" msgstr "ë°©í–¥" #: ../utils/scimtrayicon.c:109 msgid "The orientation of the tray." msgstr "트레ì´ì˜ ë°©í–¥." scim-1.4.14/po/ml.po000066400000000000000000001505241177210725600141410ustar00rootroot00000000000000# translation of ml.po to # Malayalam translations for PACKAGE package. # Copyright (C) 2008 THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # Automatically generated, 2008. # Ani Peter , 2008. msgid "" msgstr "" "Project-Id-Version: ml\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-06-22 11:40-0700\n" "PO-Revision-Date: 2008-03-27 12:00+0530\n" "Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" #: ../src/scim_compose_key.cpp:126 msgid "English/European" msgstr "ഇംഗàµà´²àµ€à´·àµ/യൂറോപàµà´ªà´¿à´¯à´¨àµâ€" #. Append an entry for forward mode. #: ../src/scim_imengine.cpp:638 ../src/scim_utility.cpp:693 #: ../modules/FrontEnd/scim_x11_frontend.cpp:1897 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1281 #: ../extras/panel/scim_panel_gtk.cpp:2814 msgid "English/Keyboard" msgstr "ഇംഗàµà´²àµ€à´·àµ/കീബോരàµâ€à´¡àµ" #: ../src/scim_utility.cpp:694 msgid "Amharic" msgstr "അംഹാറികàµ" #: ../src/scim_utility.cpp:695 msgid "Arabic" msgstr "അറബികàµ" #: ../src/scim_utility.cpp:696 msgid "Arabic (Egypt)" msgstr "അറബികൠ(à´ˆâ€à´œà´¿à´ªàµà´±àµà´±àµ)" #: ../src/scim_utility.cpp:697 msgid "Arabic (Lebanon)" msgstr "അറബികൠ(ലെബനനàµâ€)" #: ../src/scim_utility.cpp:698 msgid "Assamese" msgstr "ആസാമീസàµ" #: ../src/scim_utility.cpp:699 msgid "Azerbaijani" msgstr "അസരàµâ€à´¬àµˆà´œà´¾à´¨à´¿" #: ../src/scim_utility.cpp:700 msgid "Belarusian" msgstr "ബെലറൂഷàµà´¯à´¨àµâ€" #: ../src/scim_utility.cpp:701 msgid "Bulgarian" msgstr "ബളàµâ€à´—േറിയനàµâ€" #: ../src/scim_utility.cpp:702 ../src/scim_utility.cpp:703 msgid "Bengali" msgstr "ബംഗാള" #: ../src/scim_utility.cpp:704 msgid "Bengali (India)" msgstr "ബംഗാളി (ഇനàµà´¤àµà´¯)" #: ../src/scim_utility.cpp:705 msgid "Tibetan" msgstr "ടിബെറàµà´±à´¿à´¯à´¨àµâ€" #: ../src/scim_utility.cpp:706 msgid "Bosnian" msgstr "ബോസàµà´¨à´¿à´¯à´¨àµâ€" #: ../src/scim_utility.cpp:707 msgid "Catalan" msgstr "കാറàµà´±à´³à´¨àµâ€" #: ../src/scim_utility.cpp:708 ../src/scim_keyboard_layout_data.h:4595 msgid "Czech" msgstr "ചെകàµà´•àµ" #: ../src/scim_utility.cpp:709 msgid "Welsh" msgstr "വെലàµâ€à´·àµ" #: ../src/scim_utility.cpp:710 ../src/scim_keyboard_layout_data.h:4597 msgid "Danish" msgstr "ഡാനിഷàµ" #: ../src/scim_utility.cpp:711 ../src/scim_keyboard_layout_data.h:4605 msgid "German" msgstr "ജരàµâ€à´®à´¨àµâ€" #: ../src/scim_utility.cpp:712 msgid "Divehi" msgstr "ദിവേഹി" #: ../src/scim_utility.cpp:713 ../src/scim_keyboard_layout_data.h:4608 msgid "Greek" msgstr "à´—àµà´°àµ€à´•àµà´•àµ" #: ../src/scim_utility.cpp:714 msgid "English" msgstr "ഇംഗàµà´²àµ€à´·àµ" #: ../src/scim_utility.cpp:715 msgid "English (Australian)" msgstr "ഇംഗàµà´²àµ€à´·àµ (à´“à´¸àµà´Ÿàµà´°àµ‡à´²à´¿à´¯à´¨àµâ€)" #: ../src/scim_utility.cpp:716 msgid "English (Canadian)" msgstr "ഇംഗàµà´²àµ€à´·àµ (കനേഡിയനàµâ€)" #: ../src/scim_utility.cpp:717 msgid "English (British)" msgstr "ഇംഗàµà´²àµ€à´·àµ (à´¬àµà´°à´¿à´Ÿàµà´Ÿàµ€à´·àµ)" #: ../src/scim_utility.cpp:718 msgid "English (Ireland)" msgstr "ഇംഗàµà´²àµ€à´·àµ (à´à´°àµâ€à´²à´¨àµâ€à´¡àµ)" #: ../src/scim_utility.cpp:719 msgid "English (American)" msgstr "ഇംഗàµà´²àµ€à´·àµ (അമേരികàµà´•à´¨àµâ€)" #: ../src/scim_utility.cpp:720 ../src/scim_utility.cpp:721 #: ../src/scim_keyboard_layout_data.h:4621 msgid "Spanish" msgstr "à´¸àµà´ªà´¾à´¨à´¿à´·àµ" #: ../src/scim_utility.cpp:722 msgid "Spanish (Mexico)" msgstr "à´¸àµà´ªà´¾à´¨à´¿à´·àµ (മെകàµà´¸à´¿à´•àµà´•ോ)" #: ../src/scim_utility.cpp:723 ../src/scim_keyboard_layout_data.h:4600 msgid "Estonian" msgstr "à´Žà´¸àµà´±àµà´±àµ‹à´£à´¿à´¯à´¨àµâ€" #: ../src/scim_utility.cpp:724 msgid "Basque" msgstr "ബാസàµà´•àµ" #: ../src/scim_utility.cpp:725 msgid "Persian" msgstr "പേരàµâ€à´·àµà´¯à´¨àµâ€" #: ../src/scim_utility.cpp:726 ../src/scim_keyboard_layout_data.h:4601 msgid "Finnish" msgstr "à´«à´¿à´¨àµà´¨à´¿à´·àµ" #: ../src/scim_utility.cpp:727 ../src/scim_keyboard_layout_data.h:4602 msgid "French" msgstr "à´«àµà´°à´žàµà´šàµ" #: ../src/scim_utility.cpp:728 msgid "Irish" msgstr "à´à´±à´¿à´·àµ" #: ../src/scim_utility.cpp:729 msgid "Galician" msgstr "ഗലീഷàµà´¯à´¨àµâ€" #: ../src/scim_utility.cpp:730 msgid "Gujarati" msgstr "à´—àµà´œà´±à´¾à´¤àµà´¤à´¿" #: ../src/scim_utility.cpp:731 ../src/scim_utility.cpp:740 msgid "Hebrew" msgstr "ഹിബàµà´°àµ‚" #: ../src/scim_utility.cpp:732 msgid "Hindi" msgstr "ഹിനàµà´¦à´¿" #: ../src/scim_utility.cpp:733 ../src/scim_keyboard_layout_data.h:4594 msgid "Croatian" msgstr "à´•àµà´°àµŠà´¯àµ‡à´·àµà´¯à´¨àµâ€" #: ../src/scim_utility.cpp:734 ../src/scim_keyboard_layout_data.h:4609 msgid "Hungarian" msgstr "ഹംഗേറിയനàµâ€" #: ../src/scim_utility.cpp:735 msgid "Armenian" msgstr "à´…à´°àµâ€à´®àµ‡à´¨à´¿à´¯à´¨àµâ€" #: ../src/scim_utility.cpp:736 msgid "Interlingua" msgstr "ഇനàµà´±à´°àµâ€à´²à´¿à´—àµà´µà´²àµâ€" #: ../src/scim_utility.cpp:737 msgid "Indonesian" msgstr "ഇനàµâ€à´¡àµ‹à´¨àµ‡à´·àµà´¯à´¨àµâ€" #: ../src/scim_utility.cpp:738 ../src/scim_keyboard_layout_data.h:4627 msgid "Icelandic" msgstr "à´à´¸àµâ€Œà´²à´¾à´¡à´¿à´•àµ" #: ../src/scim_utility.cpp:739 ../src/scim_keyboard_layout_data.h:4610 msgid "Italian" msgstr "ഇറàµà´±à´¾à´²à´¿à´¯à´¨àµâ€" #: ../src/scim_utility.cpp:741 ../src/scim_keyboard_layout_data.h:4611 msgid "Japanese" msgstr "ജാപàµà´ªà´¨àµ€à´¸àµ" #: ../src/scim_utility.cpp:742 msgid "Georgian" msgstr "ജോരàµâ€à´œà´¿à´¯à´¨àµâ€" #: ../src/scim_utility.cpp:743 msgid "Kazakh" msgstr "കസകàµ" #: ../src/scim_utility.cpp:744 msgid "Cambodian" msgstr "à´•à´®àµà´ªàµ‹à´Ÿà´¿à´¯à´¨àµâ€" #: ../src/scim_utility.cpp:745 msgid "Kannada" msgstr "à´•à´¨àµà´¨à´¡à´¾" #: ../src/scim_utility.cpp:746 msgid "Korean" msgstr "കൊറിയനàµâ€" #: ../src/scim_utility.cpp:747 msgid "Laothian" msgstr "ലാവോഥിയനàµâ€" #: ../src/scim_utility.cpp:748 ../src/scim_keyboard_layout_data.h:4628 msgid "Lithuanian" msgstr "ലിഥàµà´µàµ‡à´¨à´¿à´¯à´¨àµâ€" #: ../src/scim_utility.cpp:749 msgid "Latvian" msgstr "ലാടàµâ€Œà´µà´¿à´¯à´¨àµâ€" #: ../src/scim_utility.cpp:750 msgid "Macedonian" msgstr "മസിഡോണിയനàµâ€" #: ../src/scim_utility.cpp:751 msgid "Malayalam" msgstr "മലയാളം" #: ../src/scim_utility.cpp:752 msgid "Mongolian" msgstr "മംഗോളിയനàµâ€" #: ../src/scim_utility.cpp:753 msgid "Marathi" msgstr "മറാഠി" #: ../src/scim_utility.cpp:754 msgid "Malay" msgstr "മലയàµ" #: ../src/scim_utility.cpp:755 msgid "Burmese" msgstr "ബരàµâ€à´®àµ€à´¸àµ" #: ../src/scim_utility.cpp:756 msgid "Nepali" msgstr "നേപàµà´ªà´¾à´³à´¿" #: ../src/scim_utility.cpp:757 ../src/scim_keyboard_layout_data.h:4598 msgid "Dutch" msgstr "à´¡à´šàµà´šàµ" #: ../src/scim_utility.cpp:758 msgid "Norwegian (nynorsk)" msgstr "നോരàµâ€à´µàµ€à´œà´¿à´¯à´¨àµâ€ (നൈനോരàµâ€à´¸àµà´•àµ)" #: ../src/scim_utility.cpp:759 msgid "Norwegian (bokmal)" msgstr "നോരàµâ€à´µàµ€à´œà´¿à´¯à´¨àµâ€ (ബോകàµà´®à´¾à´²àµâ€)" #: ../src/scim_utility.cpp:760 msgid "Oriya" msgstr "ഒറിയാ" #: ../src/scim_utility.cpp:761 msgid "Punjabi" msgstr "പഞàµà´šà´¾à´¬à´¿" #: ../src/scim_utility.cpp:762 ../src/scim_keyboard_layout_data.h:4613 msgid "Polish" msgstr "പോളിഷàµ" #: ../src/scim_utility.cpp:763 ../src/scim_utility.cpp:765 #: ../src/scim_keyboard_layout_data.h:4614 msgid "Portuguese" msgstr "പോരàµâ€à´šàµà´šàµà´—ീസàµ" #: ../src/scim_utility.cpp:764 ../src/scim_keyboard_layout_data.h:4615 msgid "Portuguese (Brazil)" msgstr "പോരàµâ€à´šàµà´šàµà´—ീസൠ(à´¬àµà´°à´¸àµ€à´²àµâ€)" #: ../src/scim_utility.cpp:766 msgid "Romanian" msgstr "റൊമേനിയനàµâ€" #: ../src/scim_utility.cpp:767 ../src/scim_keyboard_layout_data.h:4617 msgid "Russian" msgstr "റഷàµà´¯à´¨àµâ€" #: ../src/scim_utility.cpp:768 msgid "Sinhala" msgstr "സിനàµâ€à´¹à´¾à´²à´¾" #: ../src/scim_utility.cpp:769 ../src/scim_keyboard_layout_data.h:4618 msgid "Slovak" msgstr "à´¸àµà´²àµ‹à´µà´¾à´•àµ" #: ../src/scim_utility.cpp:770 ../src/scim_keyboard_layout_data.h:4620 msgid "Slovenian" msgstr "à´¸àµà´²àµ‹à´µàµ‡à´¨à´¿à´¯à´¨àµâ€" #: ../src/scim_utility.cpp:771 msgid "Albanian" msgstr "à´…à´²àµâ€à´¬à´¾à´¨à´¿à´¯à´¨àµâ€" #: ../src/scim_utility.cpp:772 ../src/scim_utility.cpp:773 #: ../src/scim_utility.cpp:774 msgid "Serbian" msgstr "സെരàµâ€à´¬à´¿à´¯à´¨àµâ€" #: ../src/scim_utility.cpp:775 ../src/scim_utility.cpp:777 #: ../src/scim_keyboard_layout_data.h:4624 msgid "Swedish" msgstr "à´¸àµà´µàµ€à´¡à´¿à´·àµ" #: ../src/scim_utility.cpp:776 msgid "Swedish (Finland)" msgstr "à´¸àµà´µàµ€à´¡à´¿à´·àµ (à´«à´¿à´¨àµâ€à´²à´¾à´¨àµâ€à´¡àµ)" #: ../src/scim_utility.cpp:778 msgid "Tamil" msgstr "തമിഴàµ" #: ../src/scim_utility.cpp:779 msgid "Telugu" msgstr "തെലàµà´™àµà´•àµ" #: ../src/scim_utility.cpp:780 msgid "Thai" msgstr "ഥായി" #: ../src/scim_utility.cpp:781 ../src/scim_keyboard_layout_data.h:4625 msgid "Turkish" msgstr "à´Ÿà´°àµâ€à´•àµà´•à´¿à´·àµ" #: ../src/scim_utility.cpp:782 msgid "Uighur" msgstr "ഊയിഗരàµâ€" #: ../src/scim_utility.cpp:783 ../src/scim_keyboard_layout_data.h:4629 msgid "Ukrainian" msgstr "à´¯àµà´•àµà´°àµ‡à´¨à´¿à´¯à´¨àµâ€" #: ../src/scim_utility.cpp:784 msgid "Urdu" msgstr "ഉരàµâ€à´¦àµ" #: ../src/scim_utility.cpp:785 msgid "Uzbek" msgstr "ഉസàµà´¬àµ†à´•àµ" #: ../src/scim_utility.cpp:786 msgid "Vietnamese" msgstr "വിയറàµà´±àµà´¨à´¾à´®àµ€à´¸àµ" #: ../src/scim_utility.cpp:787 msgid "Walloon" msgstr "വാലൂണàµâ€" #: ../src/scim_utility.cpp:788 ../src/scim_utility.cpp:789 msgid "Yiddish" msgstr "യിദàµà´¦à´¿à´·àµ" #: ../src/scim_utility.cpp:790 msgid "Chinese" msgstr "ചൈനീസàµ" #: ../src/scim_utility.cpp:791 ../src/scim_utility.cpp:793 msgid "Chinese (simplified)" msgstr "ചൈനീസൠ(സിംപàµà´²à´¿à´«àµˆà´¡àµ)" #: ../src/scim_utility.cpp:792 ../src/scim_utility.cpp:794 msgid "Chinese (traditional)" msgstr "ചൈനീസൠ(à´Ÿàµà´°à´¡àµ€à´·à´£à´²àµâ€)" #: ../src/scim_utility.cpp:876 msgid "Other" msgstr "മറàµà´±àµà´³àµà´³à´µ" #: ../src/scim_keyboard_layout_data.h:4591 #: ../modules/IMEngine/scim_socket_imengine.cpp:386 #: ../modules/IMEngine/scim_socket_imengine.cpp:416 #: ../modules/IMEngine/scim_socket_imengine.cpp:501 #: ../modules/IMEngine/scim_socket_imengine.cpp:531 #: ../modules/IMEngine/scim_socket_imengine.cpp:561 msgid "Unknown" msgstr "അപരിചിതം" #: ../src/scim_keyboard_layout_data.h:4592 msgid "English (US)" msgstr "ഇംഗàµà´²àµ€à´·àµ (à´¯àµà´Žà´¸àµ)" #: ../src/scim_keyboard_layout_data.h:4593 msgid "Belgian" msgstr "ബെലàµâ€à´œà´¿à´¯à´¨àµâ€" #: ../src/scim_keyboard_layout_data.h:4596 msgid "Czech (qwerty)" msgstr "ചെകàµà´•ൠ(qwerty)" #: ../src/scim_keyboard_layout_data.h:4599 msgid "Dvorak" msgstr "à´¦àµà´µàµ‹à´°à´•àµ" #: ../src/scim_keyboard_layout_data.h:4603 msgid "French (Canadian)" msgstr "à´«àµà´°à´žàµà´šàµ (കനേഡിയനàµâ€)" #: ../src/scim_keyboard_layout_data.h:4604 msgid "French (Switzerland)" msgstr "à´«àµà´°à´žàµà´šàµ (à´¸àµà´µà´¿à´±àµà´±àµà´¸à´°àµâ€à´²à´¾à´¨àµâ€à´¡àµ)" #: ../src/scim_keyboard_layout_data.h:4606 msgid "German (with deadkeys)" msgstr "ജരàµâ€à´®à´¨àµâ€ (ഡെഡൠകീകളàµâ€à´•àµà´•ൊപàµà´ªà´‚)" #: ../src/scim_keyboard_layout_data.h:4607 msgid "German (Swiss)" msgstr "ജരàµâ€à´®à´¨àµâ€ (à´¸àµà´µà´¿à´¸àµà´¸àµ)" #: ../src/scim_keyboard_layout_data.h:4612 msgid "Norwegian" msgstr "നോരàµâ€à´µàµ€à´œà´¿à´¯à´¨àµâ€" #: ../src/scim_keyboard_layout_data.h:4616 msgid "Portuguese (Brazil US accents)" msgstr "പോരàµâ€à´šàµà´šàµà´¯àµà´—ീസൠ(à´¬àµà´°à´¸àµ€à´²àµâ€ à´¯àµà´Žà´¸àµ ആകàµà´¸àµ†à´¨àµà´±àµ)" #: ../src/scim_keyboard_layout_data.h:4619 msgid "Slovak (qwerty)" msgstr "à´¸àµà´²àµ‹à´µà´¾à´•àµà´•ൠ(qwerty)" #: ../src/scim_keyboard_layout_data.h:4622 msgid "Spanish (CP 850)" msgstr "à´¸àµà´ªà´¾à´¨à´¿à´·àµ (CP 850)" #: ../src/scim_keyboard_layout_data.h:4623 msgid "Spanish (Latin America)" msgstr "à´¸àµà´ªà´¾à´¨à´¿à´·àµ (ലാറàµà´±à´¿à´¨àµâ€ അമേരികàµà´•à´¾)" #: ../src/scim_keyboard_layout_data.h:4626 msgid "English (UK)" msgstr "ഇംഗàµà´²àµ€à´·àµ (à´¯àµà´•െ)" #: ../modules/Filter/scim_sctc_filter.cpp:57 msgid "Simplified-Traditional Chinese Conversion" msgstr "സിംപàµà´²à´¿à´«àµˆà´¡àµ-à´Ÿàµà´°à´¡àµ€à´·à´£à´²àµâ€ ചൈനീസൠവേരàµâ€à´¤à´¿à´°à´¿à´•àµà´•à´²àµâ€" #: ../modules/Filter/scim_sctc_filter.cpp:60 msgid "Convert between Simplified Chinese and Traditional Chinese" msgstr "സിംപàµà´²à´¿à´«àµˆà´¡àµ ചൈനീസàµà´‚ à´Ÿàµà´°à´¡àµ€à´·à´¨à´²àµâ€ ചൈനീസàµà´‚ തമàµà´®à´¿à´²àµâ€ മാറàµà´±àµà´•" #: ../modules/Filter/scim_sctc_filter.cpp:71 msgid "SC-TC" msgstr "SC-TC" #: ../modules/Filter/scim_sctc_filter.cpp:73 #: ../modules/Filter/scim_sctc_filter.cpp:78 msgid "Simplified-Traditional Chinese conversion" msgstr "സിംപàµà´²à´¿à´«àµˆà´¡àµ-à´Ÿàµà´°à´¡àµ€à´·à´¨à´²àµâ€ ചൈനീസൠവേരàµâ€à´¤à´¿à´°à´¿à´•àµà´•à´²àµâ€" #: ../modules/Filter/scim_sctc_filter.cpp:76 msgid "No Conversion" msgstr "വേരàµâ€à´¤à´¿à´°à´¿à´•àµà´•à´²àµâ€ ലഭàµà´¯à´®à´²àµà´²" #: ../modules/Filter/scim_sctc_filter.cpp:81 msgid "Simplified to Traditional" msgstr "സിംപàµà´²à´¿à´«àµˆà´¡à´¿à´²àµâ€ നിനàµà´¨àµà´‚ à´Ÿàµà´°à´¡àµ€à´·à´£à´²à´¿à´²àµ‡à´•àµà´•àµ" #: ../modules/Filter/scim_sctc_filter.cpp:83 msgid "Convert Simplified Chinese to Traditional Chinese" msgstr "സിംപàµà´²à´¿à´«àµˆà´¡àµ ചൈനീസിനെ à´Ÿàµà´°à´¡àµ€à´·à´£à´²àµâ€ ചൈനീസിലേകàµà´•ൠവേരàµâ€à´¤à´¿à´°à´¿à´•àµà´•àµà´•" #: ../modules/Filter/scim_sctc_filter.cpp:86 msgid "Traditional to Simplified" msgstr "à´Ÿàµà´°à´¡àµ€à´·à´£à´²à´¿à´²àµâ€ നിനàµà´¨àµà´‚ സിംപàµà´²à´¿à´«àµˆà´¡à´¿à´²àµ‡à´•àµà´•àµ" #: ../modules/Filter/scim_sctc_filter.cpp:88 msgid "Convert Traditional Chinese to Simplified Chinese" msgstr "à´Ÿàµà´°à´¡àµ€à´·à´£à´²àµâ€ ചൈനീസിനെ സിംപàµà´²à´¿à´«àµˆà´¡àµ ചൈനീസിലേകàµà´•ൠവേരàµâ€à´¤à´¿à´°à´¿à´•àµà´•àµà´•" #: ../modules/Filter/scim_sctc_filter.cpp:300 msgid "James Su " msgstr "ജെയിംസൠസൂ " #: ../modules/Filter/scim_sctc_filter.cpp:425 #: ../modules/Filter/scim_sctc_filter.cpp:555 #: ../modules/Filter/scim_sctc_filter.cpp:571 msgid "SC->TC" msgstr "SC->TC" #: ../modules/Filter/scim_sctc_filter.cpp:431 #: ../modules/Filter/scim_sctc_filter.cpp:559 #: ../modules/Filter/scim_sctc_filter.cpp:575 msgid "TC->SC" msgstr "TC->SC" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1845 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1231 #: ../extras/panel/scim_panel_gtk.cpp:2304 msgid "Smart Common Input Method platform " msgstr "à´¸àµà´®à´¾à´°àµâ€à´Ÿàµà´Ÿàµ കോമണàµâ€ ഇനàµâ€à´ªàµà´Ÿàµà´Ÿàµ മെഥേഡൠപàµà´²à´¾à´±àµà´±àµà´«àµ‹à´‚" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1847 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1233 msgid "" "\n" "(C) 2002-2005 James Su \n" "\n" msgstr "" "\n" "(C) 2002-2005 ജെയിംസൠസൂ \n" "\n" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1851 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1238 msgid "" ":\n" "\n" msgstr "" ":\n" "\n" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1854 #: ../modules/FrontEnd/scim_x11_frontend.cpp:1857 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1241 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1244 msgid "" "\n" "\n" msgstr "" "\n" "\n" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:120 msgid "RAW CODE" msgstr "റോ കോഡàµ" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:127 msgid "(C) 2002-2006 James Su " msgstr "(C) 2002-2006 ജെയിംസൠസൂ " #: ../modules/IMEngine/scim_rawcode_imengine.cpp:140 msgid "" "Hot Keys:\n" "\n" " Control+u:\n" " switch between Multibyte encoding and Unicode.\n" "\n" " Esc:\n" " reset the input method.\n" msgstr "" "ഹോടàµà´Ÿàµà´•ീകളàµâ€:\n" "\n" " Control+u:\n" " മളàµâ€à´Ÿàµà´Ÿà´¿à´¬àµˆà´±àµà´±àµ à´Žà´¨àµâ€à´•ോഡിങàµà´‚ യൂണികോഡàµà´‚ മാറി ഉപയോഗികàµà´•àµà´µà´¾à´¨àµâ€ സാധികàµà´•àµà´¨àµà´¨àµ.\n" "\n" " Esc:\n" " ഇനàµâ€à´ªàµà´Ÿàµà´Ÿàµ മെഥേഡൠവീണàµà´Ÿàµà´‚ à´•àµà´°à´®à´¿à´•à´°à´¿à´•àµà´•àµà´¨àµà´¨àµ.\n" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:407 #: ../modules/IMEngine/scim_rawcode_imengine.cpp:423 msgid "The status of the current input method. Click to change it." msgstr "നിലവിലàµà´³àµà´³ ഇനàµâ€à´ªàµà´Ÿàµà´Ÿàµ മെഥേഡിനàµà´±àµ† നിലവാരം. മാറàµà´±àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ à´•àµà´²à´¿à´•àµà´•ൠചെയàµà´¯àµà´•." #: ../modules/IMEngine/scim_rawcode_imengine.cpp:409 msgid "Unicode" msgstr "യൂണികോഡàµ" #: ../modules/SetupUI/scim_frontend_setup.cpp:82 #: ../modules/SetupUI/scim_imengine_setup.cpp:88 msgid "Global Setup" msgstr "à´—àµà´²àµ‹à´¬à´²àµâ€ à´•àµà´°à´®à´¿à´•രണം" #: ../modules/SetupUI/scim_frontend_setup.cpp:87 msgid "" "Setup the global options used by All FrontEnd modules, including X11 " "FrontEnd, GTK IMModule, QT IMModule etc." msgstr "" "X11 à´«àµà´°à´£àµà´Ÿàµ à´Žà´¨àµâ€à´¡àµ, GTK IMModule, QT IMModule à´Žà´¨àµà´¨à´¿à´µ ഉളàµâ€à´ªàµà´ªâ€à´Ÿàµ†à´¯àµà´³àµà´³ à´Žà´²àµà´²à´¾ à´«àµà´°à´£àµà´Ÿàµ " "à´Žà´¨àµâ€à´¡àµ ഘടകങàµà´™à´³àµà´‚ ഉപയോഗികàµà´•àµà´¨àµà´¨ à´—àµà´²àµ‹à´¬à´²àµâ€ ഉപാധികളàµâ€ à´•àµà´°à´®à´¿à´•à´°à´¿à´•àµà´•àµà´•." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:143 msgid "_Trigger:" msgstr "_à´Ÿàµà´°à´¿à´—àµà´—à´°àµâ€:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:145 msgid "Select the trigger keys" msgstr "à´Ÿàµà´°à´¿à´—àµà´—à´°àµâ€ കീകളàµâ€ തിരഞàµà´žàµ†à´Ÿàµà´•àµà´•àµà´•" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:147 msgid "" "The key events to turn on/off SCIM input method. Click on the button on the " "right to edit it." msgstr "" "à´¸àµà´•à´¿à´‚ ഇനàµâ€à´ªàµà´Ÿàµà´Ÿàµ മെഥേഡൠഓണàµâ€/ഓഫൠചെയàµà´¯àµà´¨àµà´¨à´¤à´¿à´¨àµà´³àµà´³ കീകളàµâ€. അതിലàµâ€ മാറàµà´±à´‚ വരàµà´¤àµà´¤àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ " "വലതàµà´¤àµ വശതàµà´¤àµà´³àµà´³ ബടàµà´Ÿà´£à´¿à´²àµâ€ അമരàµâ€à´¤àµà´¤àµà´•." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:160 msgid "Turn _On:" msgstr "_à´“à´£àµâ€ ചെയàµà´¯àµà´•:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:162 msgid "Select the Turn On keys" msgstr "à´“à´£àµâ€ ചെയàµà´¯àµà´¨àµà´¨à´¤à´¿à´¨àµà´³àµà´³ കീ തിരഞàµà´žàµ†à´Ÿàµà´•àµà´•àµà´•" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:164 msgid "" "The key events to turn on SCIM input method. Click on the button on the " "right to edit it." msgstr "" "à´¸àµà´•à´¿à´‚ ഇനàµâ€à´ªàµà´Ÿàµà´Ÿàµ മെഥേഡൠഓണàµâ€ ചെയàµà´¯àµà´¨àµà´¨à´¤à´¿à´¨àµà´³àµà´³ കീകളàµâ€. അതിലàµâ€ മാറàµà´±à´‚ വരàµà´¤àµà´¤àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ " "വലതàµà´¤àµ വശതàµà´¤àµà´³àµà´³ ബടàµà´Ÿà´£à´¿à´²àµâ€ അമരàµâ€à´¤àµà´¤àµà´•." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:177 msgid "Turn O_ff:" msgstr "_ഓഫൠചെയàµà´¯àµà´•:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:179 msgid "Select the Turn Off keys" msgstr "ഓഫൠചെയàµà´¯àµà´¨àµà´¨à´¤à´¿à´¨àµà´³àµà´³ കീ തിരഞàµà´žàµ†à´Ÿàµà´•àµà´•àµà´•" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:181 msgid "" "The key events to turn off SCIM input method. Click on the button on the " "right to edit it." msgstr "" "à´¸àµà´•à´¿à´‚ ഇനàµâ€à´ªàµà´Ÿàµà´Ÿàµ മെഥേഡൠഓഫൠചെയàµà´¯àµà´¨àµà´¨à´¤à´¿à´¨àµà´³àµà´³ കീകളàµâ€. അതിലàµâ€ മാറàµà´±à´‚ വരàµà´¤àµà´¤àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ " "വലതàµà´¤àµ വശതàµà´¤àµà´³àµà´³ ബടàµà´Ÿà´£à´¿à´²àµâ€ അമരàµâ€à´¤àµà´¤àµà´•." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:194 msgid "_Next input method:" msgstr "_à´…à´Ÿàµà´¤àµà´¤ ഇനàµâ€à´ªàµà´Ÿàµà´Ÿàµ മെഥേഡàµ:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:196 msgid "Select the next input method keys" msgstr "à´…à´Ÿàµà´¤àµà´¤ ഇനàµâ€à´ªàµà´Ÿàµà´Ÿàµ മെഥേഡിനàµà´³àµà´³ കീ തിരഞàµà´žàµ†à´Ÿàµà´•àµà´•àµà´•" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:198 msgid "" "The key events to switch to the next input method. Click on the button on " "the right to edit it." msgstr "" "à´…à´Ÿàµà´¤àµà´¤ ഇനàµâ€à´ªàµà´Ÿàµà´Ÿàµ മെഥേഡിലേകàµà´•ൠമാറàµà´¨àµà´¨à´¤à´¿à´¨àµà´³àµà´³ കീകളàµâ€. അതിലàµâ€ മാറàµà´±à´‚ വരàµà´¤àµà´¤àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ " "വലതàµà´¤àµ വശതàµà´¤àµà´³àµà´³ ബടàµà´Ÿà´£à´¿à´²àµâ€ അമരàµâ€à´¤àµà´¤àµà´•." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:213 msgid "_Previous input method:" msgstr "_à´®àµà´®àµà´ªàµà´³àµà´³ ഇനàµâ€à´ªàµà´Ÿàµà´Ÿàµ മെഥേഡàµ:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:215 msgid "Select the previous input method keys" msgstr "à´®àµà´®àµà´ªàµà´³àµà´³ ഇനàµâ€à´ªàµà´Ÿàµà´Ÿàµ മെഥേഡിനàµà´³àµà´³ കീ തിരഞàµà´žàµ†à´Ÿàµà´•àµà´•àµà´•" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:217 msgid "" "The key events to switch to the previous input method. Click on the button " "on the right to edit it." msgstr "" "à´®àµà´®àµà´ªàµà´³àµà´³ ഇനàµâ€à´ªàµà´Ÿàµà´Ÿàµ മെഥേഡിലേകàµà´•ൠമാറàµà´¨àµà´¨à´¤à´¿à´¨àµà´³àµà´³ കീകളàµâ€. അതിലàµâ€ മാറàµà´±à´‚ വരàµà´¤àµà´¤àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ " "വലതàµà´¤àµ വശതàµà´¤àµà´³àµà´³ ബടàµà´Ÿà´£à´¿à´²àµâ€ അമരàµâ€à´¤àµà´¤àµà´•." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:232 msgid "Show input method _menu:" msgstr "ഇനàµâ€à´ªàµà´Ÿàµà´Ÿàµ മെഥേഡൠ_മെനൠകാണികàµà´•àµà´•:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:234 msgid "Select the show input method menu keys" msgstr "ഇനàµâ€à´ªàµà´Ÿàµà´Ÿàµ മെഥേഡൠമെനൠകാണികàµà´•àµà´¨àµà´¨à´¤à´¿à´¨àµà´³àµà´³ കീ തിരഞàµà´žàµ†à´Ÿàµà´•àµà´•àµà´•" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:236 msgid "" "The key events to show the input method menu. Click on the button on the " "right to edit it." msgstr "" "ഇനàµâ€à´ªàµà´Ÿàµà´Ÿàµ മെഥേഡൠമെനൠകാണികàµà´•àµà´¨àµà´¨à´¤à´¿à´¨àµà´³àµà´³ കീകളàµâ€. അതിലàµâ€ മാറàµà´±à´‚ വരàµà´¤àµà´¤àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ " "വലതàµà´¤àµ വശതàµà´¤àµà´³àµà´³ ബടàµà´Ÿà´£à´¿à´²àµâ€ അമരàµâ€à´¤àµà´¤àµà´•." #: ../modules/SetupUI/scim_frontend_setup.cpp:306 msgid "Options" msgstr "ഉപാധികളàµâ€" #: ../modules/SetupUI/scim_frontend_setup.cpp:321 msgid "_Keyboard Layout:" msgstr "_കീബോരàµâ€à´¡àµ ശൈലി:" #: ../modules/SetupUI/scim_frontend_setup.cpp:342 msgid "" "You should choose your currently used keyboard layout here so that input " "methods, who care about keyboard layout, could work correctly." msgstr "" "നിങàµà´™à´³àµà´Ÿàµ† ശരിയായ ഇനàµâ€à´ªàµà´Ÿàµà´Ÿàµ മെഥേഡൠശരിയായി à´ªàµà´°à´µà´°àµâ€à´¤àµà´¤à´¿à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨àµ നിലവിലàµâ€ നിങàµà´™à´³àµâ€ " "ഉപയോഗികàµà´•àµà´¨àµà´¨ കീബോരàµâ€à´¡àµ ശൈലി തിരഞàµà´žàµ†à´Ÿàµà´•àµà´•àµà´•." #. On The Spot. #: ../modules/SetupUI/scim_frontend_setup.cpp:346 msgid "_Embed Preedit String into client window" msgstr "à´•àµà´²àµˆà´¨àµà´±àµ ജാലകതàµà´¤à´¿à´²àµ‡à´•àµà´•ൠപàµà´°àµ€à´Žà´¡à´¿à´±àµà´±àµ à´¸àµà´Ÿàµà´°à´¿à´™àµ _à´…à´Ÿà´•àµà´•à´‚ ചെയàµà´¤à´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨àµ" #: ../modules/SetupUI/scim_frontend_setup.cpp:351 msgid "" "If this option is checked, the preedit string will be displayed directly in " "the client input window, rather than in a independent float window." msgstr "" "à´ˆ ഉപാധി തിരഞàµà´žàµ†à´Ÿàµà´¤àµà´¤à´¿à´Ÿàµà´Ÿàµà´£àµà´Ÿàµ à´Žà´™àµà´•à´¿à´²àµâ€, മറàµà´±àµŠà´°àµ à´«àµà´²àµ‹à´Ÿàµà´Ÿàµ ജാലകതàµà´¤à´¿à´¨àµ പകരം, à´ªàµà´°àµ€à´Žà´¡à´¿à´±àµà´±àµ à´¸àµà´Ÿàµà´°à´¿à´™àµ " "നേരിടàµà´Ÿàµ à´•àµà´²àµˆà´¨àµà´±àµ ഇനàµâ€à´ªàµà´Ÿàµà´Ÿàµ ജാലകതàµà´¤à´¿à´²àµâ€ ദൃശàµà´¯à´®à´¾à´•àµà´¨àµà´¨àµ." #. Shared input method. #: ../modules/SetupUI/scim_frontend_setup.cpp:360 msgid "_Share the same input method among all applications" msgstr "à´Žà´²àµà´²à´¾ à´ªàµà´°à´¯àµ‹à´—à´™àµà´™à´³àµâ€à´•àµà´•àµà´‚ ഒരേ ഇനàµâ€à´ªàµà´Ÿàµà´Ÿàµ മെഥേഡൠ_പങàµà´•ൠവയàµà´•àµà´•àµà´•" #: ../modules/SetupUI/scim_frontend_setup.cpp:365 msgid "" "If this option is checked, then only one input method could be used by all " "applications at the same time.Otherwise different input method could be used " "by each application." msgstr "" "à´ˆ ഉപാധി തിരഞàµà´žàµ†à´Ÿàµà´¤àµà´¤à´¿à´Ÿàµà´Ÿàµà´£àµà´Ÿàµ à´Žà´™àµà´•à´¿à´²àµâ€, ഒരേ സമയതàµà´¤àµ പല à´ªàµà´°à´¯àµ‹à´—à´™àµà´™à´³àµâ€à´•àµà´•ൠഒരൠഇനàµâ€à´ªàµà´Ÿàµà´Ÿàµ മെഥേഡൠ" "ഉപയോഗികàµà´•àµà´µà´¾à´¨àµâ€ മാതàµà´°à´®àµ‡ സാധികàµà´•ൂ. à´…à´²àµà´²àµ†à´™àµà´•à´¿à´²àµâ€, ഓരോ à´ªàµà´°à´¯àµ‹à´—à´™àµà´™à´³àµâ€à´•àµà´•àµà´‚ പല ഇനàµâ€à´ªàµà´Ÿàµà´Ÿàµ മെഥേഡàµà´•à´³àµâ€ " "ഉപയോഗികàµà´•àµà´µà´¾à´¨àµâ€ സാധികàµà´•àµà´¨àµà´¨àµ." #: ../modules/SetupUI/scim_frontend_setup.cpp:373 #: ../modules/SetupUI/scim_imengine_setup.cpp:453 msgid "Hotkeys" msgstr "ഹോടàµà´Ÿàµà´•ീകളàµâ€" #: ../modules/SetupUI/scim_imengine_setup.cpp:93 msgid "You can enable/disable input methods and set hotkeys for input methods here." msgstr "" "ഇനàµâ€à´ªàµà´Ÿàµà´Ÿàµ മെഥേഡàµà´•à´³àµâ€ സജàµà´œà´®à´¾à´•àµà´•àµà´•യോ നിഷàµà´•àµà´°à´¿à´¯à´®à´¾à´•àµà´•àµà´•യോ ചെയàµà´¤àµ അവയàµà´•àµà´•àµà´³àµà´³ ഹോടàµà´Ÿàµà´•ീകളàµâ€ " "ഇവിടെ à´•àµà´°à´®à´¿à´•à´°à´¿à´•àµà´•ാം." #: ../modules/SetupUI/scim_imengine_setup.cpp:296 msgid "The installed input method services:" msgstr "ഇനàµâ€à´¸àµà´±àµà´±àµ‹à´³àµâ€ ചെയàµà´¤à´¿à´Ÿàµà´Ÿàµà´³àµà´³ ഇനàµâ€à´ªàµà´Ÿàµà´Ÿàµ മെഥേഡൠസരàµâ€à´µàµ€à´¸àµà´•à´³àµâ€:" #. Create hotkey and filter button before factory list view, because #. factory_list_selection_changed_callback may access these two buttons. #: ../modules/SetupUI/scim_imengine_setup.cpp:311 msgid "Edit _Hotkeys" msgstr "_ഹോടàµà´Ÿàµà´•ീകളിലàµâ€ മാറàµà´±à´‚ വരàµà´¤àµà´¤àµà´•" #: ../modules/SetupUI/scim_imengine_setup.cpp:320 msgid "Edit Hotkeys associated with the selected input method." msgstr "തിരഞàµà´žàµ†à´Ÿàµà´¤àµà´¤ ഇനàµâ€à´ªàµà´Ÿàµà´Ÿàµ മെഥേഡàµà´®à´¾à´¯à´¿ ബനàµà´§à´ªàµà´ªàµ†à´Ÿàµà´Ÿ ഹോടàµà´Ÿàµà´•ീകളിലàµâ€ മാറàµà´±à´‚ വരàµà´¤àµà´¤àµà´•." #: ../modules/SetupUI/scim_imengine_setup.cpp:322 msgid "Select _Filters" msgstr "_à´«à´¿à´²àµâ€â€Œà´±àµà´±à´±à´•àµà´³àµâ€ തിരഞàµà´žàµ†à´Ÿàµà´•àµà´•àµà´•" #: ../modules/SetupUI/scim_imengine_setup.cpp:331 msgid "Select the Filters which will be attached to this input method." msgstr "à´ˆ ഇനàµâ€à´ªàµà´Ÿàµà´Ÿàµ മെഥേഡിലàµâ€ ചേരàµâ€à´¤àµà´¤à´¿à´Ÿàµà´Ÿàµà´³àµà´³ à´«à´¿à´²àµâ€â€Œà´±àµà´±à´±à´•àµà´³àµâ€ തിരഞàµà´žàµ†à´Ÿàµà´•àµà´•àµà´•." #: ../modules/SetupUI/scim_imengine_setup.cpp:348 msgid "_Expand" msgstr "_നിവരàµâ€à´¤àµà´¤à´¿à´µà´¯àµà´•àµà´•àµà´•" #: ../modules/SetupUI/scim_imengine_setup.cpp:357 msgid "Expand all language categories." msgstr "ഭാഷയàµà´Ÿàµ† à´Žà´²àµà´²à´¾ വിഭാഗങàµà´™à´³àµà´‚ നിവരàµâ€à´¤àµà´¤à´¿ വയàµà´•àµà´•àµà´•" #: ../modules/SetupUI/scim_imengine_setup.cpp:359 msgid "_Collapse" msgstr "_à´’à´¤àµà´•àµà´•ിവയàµà´•àµà´•àµà´•" #: ../modules/SetupUI/scim_imengine_setup.cpp:368 msgid "Collapse all language categories." msgstr "ഭാഷയàµà´Ÿàµ† à´Žà´²àµà´²à´¾ വിഭാഗങàµà´™à´³àµà´‚ à´’à´¤àµà´•àµà´•ിവയàµà´•àµà´•àµà´•." #: ../modules/SetupUI/scim_imengine_setup.cpp:370 msgid "E_nable All" msgstr "à´Žà´²àµà´²à´¾à´‚ _സജàµà´œà´®à´¾à´•àµà´•àµà´•" #: ../modules/SetupUI/scim_imengine_setup.cpp:379 msgid "Enable all input methods." msgstr "à´Žà´²àµà´²à´¾ ഇനàµâ€à´ªàµà´Ÿàµà´Ÿàµ മെഥേഡàµà´•à´³àµà´‚ സജàµà´œà´®à´¾à´•àµà´•àµà´•." #: ../modules/SetupUI/scim_imengine_setup.cpp:381 msgid "_Disable All" msgstr "à´Žà´²àµà´²à´¾à´‚ _നിഷàµà´•àµà´°à´¿à´¯à´®à´¾à´•àµà´•àµà´•" #: ../modules/SetupUI/scim_imengine_setup.cpp:390 msgid "Disable all input methods." msgstr "à´Žà´²àµà´²à´¾ ഇനàµâ€à´ªàµà´Ÿàµà´Ÿàµ മെഥേഡàµà´•à´³àµà´‚ നിഷàµà´•àµà´°à´¿à´¯à´®à´¾à´•àµà´•àµà´•." #: ../modules/SetupUI/scim_imengine_setup.cpp:414 #: ../modules/SetupUI/scim_imengine_setup.cpp:541 msgid "Name" msgstr "പേരàµ" #: ../modules/SetupUI/scim_imengine_setup.cpp:432 #: ../modules/SetupUI/scim_imengine_setup.cpp:522 msgid "Enable" msgstr "സജàµà´œà´®à´¾à´•àµà´•àµà´•" #: ../modules/SetupUI/scim_imengine_setup.cpp:467 msgid "Filters" msgstr "à´«à´¿à´²àµâ€â€Œà´±àµà´±à´±àµà´•à´³àµâ€" #: ../modules/SetupUI/scim_imengine_setup.cpp:560 msgid "Languages" msgstr "ഭാഷകളàµâ€" #: ../modules/SetupUI/scim_imengine_setup.cpp:574 msgid "Description" msgstr "വിവരണം" #: ../modules/SetupUI/scim_imengine_setup.cpp:1190 #, c-format msgid "Edit Hotkeys for %s" msgstr "%s-à´¨àµà´³àµà´³ ഹോടàµà´Ÿàµà´•ീകളിലàµâ€ മാറàµà´±à´‚ വരàµà´¤àµà´¤àµà´•" #: ../modules/SetupUI/scim_imengine_setup.cpp:1417 #, c-format msgid "Select Filters for %s" msgstr "%s-à´¨àµà´³àµà´³ à´«à´¿à´²àµâ€â€Œà´±àµà´±à´±àµà´•à´³àµâ€ തിരഞàµà´žàµ†à´Ÿàµà´•àµà´•àµà´•" #: ../modules/SetupUI/scim_imengine_setup.cpp:1450 msgid "Move _Up" msgstr "_à´®àµà´•ളിലേകàµà´•ൠനീങàµà´™àµà´•" #: ../modules/SetupUI/scim_imengine_setup.cpp:1457 msgid "Move _Down" msgstr "_താഴേകàµà´•ൠനീങàµà´™àµà´•" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:95 msgid "GTK" msgstr "GTK" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:100 msgid "A panel daemon based on GTK+-2.x library." msgstr "GTK+-2.x ലൈബàµà´°à´±à´¿à´¯àµà´Ÿàµ† à´…à´Ÿà´¿à´¸àµà´¥à´¾à´¨à´¤àµà´¤à´¿à´²àµà´³àµà´³ ഒരൠപാനലàµâ€ ഡെമണàµâ€." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:163 msgid "Always" msgstr "à´Žà´ªàµà´ªàµ‹à´´àµà´‚" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:164 msgid "On demand" msgstr "ആവശàµà´¯à´®à´¨àµà´¸à´°à´¿à´šàµà´šàµ" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:165 msgid "Never" msgstr "à´’à´°à´¿à´•àµà´•à´²àµà´‚ ഇലàµà´²" #. Create the ToolBar setup block. #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:211 msgid "ToolBar" msgstr "ടൂളàµâ€à´¬à´¾à´°àµâ€" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:229 msgid "_Show:" msgstr "_കാണികàµà´•àµà´•:" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:245 msgid "Auto s_nap" msgstr "à´“à´Ÿàµà´Ÿàµ‹ _à´¸àµà´¨à´¾à´ªàµà´ªàµ" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:251 msgid "Show _input method icon" msgstr "_ഇനàµâ€à´ªàµà´Ÿàµà´Ÿàµ മെഥേഡിനàµà´³àµà´³ à´ªàµà´°à´¤à´¿à´°àµ‚പം കാണികàµà´•àµà´•" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:257 msgid "Show inp_ut method name" msgstr "_ഇനàµâ€à´ªàµà´Ÿàµà´Ÿàµ മെഥേഡിനàµà´±àµ† പേരൠകാണികàµà´•àµà´•" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:269 msgid "Hide time_out:" msgstr "അദൃശàµà´¯à´®à´¾à´•àµà´¨àµà´¨à´¤à´¿à´¨àµà´³àµà´³ _സമയം:" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:282 msgid "Show s_tick icon" msgstr "_à´¸àµà´±àµà´±à´¿à´•ൠപàµà´°à´¤à´¿à´°àµ‚പം കാണികàµà´•àµà´•" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:288 msgid "Show m_enu icon" msgstr "_മെനàµà´µà´¿à´¨àµà´³àµà´³ à´ªàµà´°à´¤à´¿à´°àµ‚പം കാണികàµà´•àµà´•" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:294 msgid "Show _help icon" msgstr "_സഹായതàµà´¤à´¿à´¨àµà´³àµà´³ à´ªàµà´°à´¤à´¿à´°àµ‚പം കാണികàµà´•àµà´•" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:300 msgid "Show _property label" msgstr "_വിശേഷണങàµà´™à´³àµà´Ÿàµ† ലേബലàµâ€ കാണികàµà´•àµà´•" #. Create the Input Window setup block #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:311 msgid "Input window" msgstr "ഇനàµâ€à´ªàµà´Ÿàµà´Ÿàµ ജാലകം" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:320 msgid "E_mbedded lookup table" msgstr "_ഇതിലടകàµà´•à´‚ ചെയàµà´¤à´¿à´°à´¿à´•àµà´•àµà´¨àµà´¨ à´²àµà´•àµà´•à´ªàµà´ªàµ ടേബിളàµâ€" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:324 msgid "_Vertical lookup table" msgstr "_വെരàµâ€à´Ÿàµà´Ÿà´¿à´•àµà´•à´²àµâ€ à´²àµà´•àµà´•à´ªàµà´ªàµ ടേബിളàµâ€" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:328 msgid "Misc" msgstr "പലവക" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:337 msgid "Show tra_y icon" msgstr "à´Ÿàµà´°àµ‡_à´¯àµà´•àµà´•àµà´³àµà´³ à´ªàµà´°à´¤à´¿à´°àµ‚പം കാണികàµà´•àµà´•" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:341 msgid "Stick _windows" msgstr "à´¸àµà´±àµà´±à´¿à´•ൠ_ജാലകങàµà´™à´³àµâ€" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:349 msgid "_Font:" msgstr "_ലിപി:" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:419 msgid "" "If option \"Always\" is selected, the toolbar will always be shown on the " "screen. If option \"On demand\" is selected, it will only be shown when SCIM " "is activated. If option \"Never\" is selected, it will never be shown." msgstr "" "\"à´Žà´ªàµà´ªàµ‹à´´àµà´‚\" à´Žà´¨àµà´¨ ഉപാധി തിരഞàµà´žàµ†à´Ÿàµà´¤àµà´¤àµ à´Žà´™àµà´•à´¿à´²àµâ€, à´¸àµà´•àµà´°àµ€à´¨à´¿à´²àµâ€ ടൂളàµâ€à´¬à´¾à´°àµâ€ à´Žà´ªàµà´ªàµ‹à´´àµà´‚ ലഭàµà´¯à´®à´¾à´•àµà´¨àµà´¨àµ. " "\"ആവശàµà´¯à´®àµà´³àµà´³à´ªàµà´ªàµ‹à´³àµâ€\" ആണൠതിരഞàµà´žàµ†à´Ÿàµà´¤àµà´¤ ഉപാധി à´Žà´™àµà´•à´¿à´²àµâ€, à´¸àµà´•à´¿à´‚ സജീവമാകàµà´®àµà´ªàµ‹à´³àµâ€ മാതàµà´°à´‚ ഇതൠ" "ലഭàµà´¯à´®à´¾à´•àµà´¨àµà´¨àµ. \"à´’à´°à´¿à´•àµà´•à´²àµà´‚ ഇലàµà´²\" à´Žà´¨àµà´¨à´¾à´£àµ തിരഞàµà´žàµ†à´Ÿàµà´¤àµà´¤à´¤àµ à´Žà´™àµà´•à´¿à´²àµâ€, à´’à´°à´¿à´•àµà´•à´²àµà´‚ അതൠലഭàµà´¯à´®à´¾à´•àµà´¨àµà´¨à´¤à´²àµà´²." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:426 msgid "If this option is checked, the toolbar will be snapped to the screen border." msgstr "à´ˆ ഉപാധി തിരഞàµà´žàµ†à´Ÿàµà´¤àµà´¤àµ à´Žà´™àµà´•à´¿à´²àµâ€, à´¸àµà´•àµà´°àµ€à´¨à´¿à´¨àµà´±àµ† അതിരിലേകàµà´•ൠടൂളàµâ€à´¬à´¾à´°àµâ€ ചേരàµâ€à´•àµà´•àµà´¨àµà´¨à´¤à´¾à´£àµ." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:431 msgid "" "The toolbar will be hidden out after this timeout is elapsed. This option is " "only valid when \"Always show\" is selected. Set to zero to disable this " "behavior." msgstr "" "സമയപരിധിയàµà´•àµà´•ൠശേഷം ടൂളàµâ€à´¬à´¾à´°àµâ€ അദൃശàµà´¯à´®à´¾à´•àµà´¨àµà´¨àµ. \"à´Žà´ªàµà´ªàµ‹à´´àµà´‚ കാണികàµà´•àµà´•\" à´Žà´¨àµà´¨à´¤àµ " "തിരഞàµà´žàµ†à´Ÿàµà´¤àµà´¤à´¾à´²àµâ€ മാതàµà´°à´®àµ‡ ഇതൠലഭàµà´¯à´®à´¾à´•ൂ. ആവശàµà´¯à´®à´¿à´²àµà´²àµ†à´™àµà´•à´¿à´²àµâ€ ഇതàµàµ പൂജàµà´¯à´®à´¾à´¯à´¿ " "à´•àµà´°à´®à´¿à´•à´°à´¿à´•àµà´•àµà´•." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:438 msgid "" "If this option is checked, the input method icon will be showed on the " "toolbar." msgstr "" "à´ˆ ഉപാധി തിരഞàµà´žàµ†à´Ÿàµà´¤àµà´¤àµ à´Žà´™àµà´•à´¿à´²àµâ€, ഇനàµâ€à´ªàµà´Ÿàµà´Ÿàµ മെഥേഡിനàµà´³àµà´³ à´ªàµà´°à´¤à´¿à´°àµ‚പം ടൂളàµâ€à´¬à´¾à´±à´¿à´²àµâ€ " "കാണികàµà´•àµà´¨àµà´¨àµ." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:442 msgid "" "If this option is checked, the input method name will be showed on the " "toolbar." msgstr "" "à´ˆ ഉപാധി തിരഞàµà´žàµ†à´Ÿàµà´¤àµà´¤àµ à´Žà´™àµà´•à´¿à´²àµâ€, ഇനàµâ€à´ªàµà´Ÿàµà´Ÿàµ മെഥേഡിനàµà´±àµ† പേരൠടൂളàµâ€à´¬à´¾à´±à´¿à´²àµâ€ " "കാണികàµà´•àµà´¨àµà´¨àµ" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:446 msgid "If this option is checked, the stick icon will be showed on the toolbar." msgstr "à´ˆ ഉപാധി തിരഞàµà´žàµ†à´Ÿàµà´¤àµà´¤àµ à´Žà´™àµà´•à´¿à´²àµâ€, à´¸àµà´±àµà´±à´¿à´•à´¿à´¨àµà´³àµà´³ à´ªàµà´°à´¤à´¿à´°àµ‚പം ടൂളàµâ€à´¬à´¾à´±à´¿à´²àµâ€ കാണികàµà´•àµà´¨àµà´¨àµ." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:450 msgid "If this option is checked, the menu icon will be showed on the toolbar." msgstr "à´ˆ ഉപാധി തിരഞàµà´žàµ†à´Ÿàµà´¤àµà´¤àµ à´Žà´™àµà´•à´¿à´²àµâ€, മെനàµà´µà´¿à´¨àµà´³àµà´³ à´ªàµà´°à´¤à´¿à´°àµ‚പം ടൂളàµâ€à´¬à´¾à´±à´¿à´²àµâ€ കാണികàµà´•àµà´¨àµà´¨àµ." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:454 msgid "If this option is checked, the help icon will be showed on the toolbar." msgstr "à´ˆ ഉപാധി തിരഞàµà´žàµ†à´Ÿàµà´¤àµà´¤àµ à´Žà´™àµà´•à´¿à´²àµâ€, സഹായതàµà´¤à´¿à´¨àµà´³àµà´³ à´ªàµà´°à´¤à´¿à´°àµ‚പം ടൂളàµâ€à´¬à´¾à´±à´¿à´²àµâ€ കാണികàµà´•àµà´¨àµà´¨àµàµ." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:458 msgid "" "If this option is checked, the text label of input method properties will be " "showed on the toolbar." msgstr "" "à´ˆ ഉപാധി തിരഞàµà´žàµ†à´Ÿàµà´¤àµà´¤àµ à´Žà´™àµà´•à´¿à´²àµâ€, ഇനàµâ€à´ªàµà´Ÿàµà´Ÿàµ മെഥേഡിനàµà´±àµ† വിശേഷണങàµà´™à´³àµâ€ ടൂളàµâ€à´¬à´¾à´±à´¿à´²àµâ€ " "കാണികàµà´•àµà´¨àµà´¨àµ." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:462 msgid "" "If this option is checked, the lookup table will be embedded into the input " "window." msgstr "" "à´ˆ ഉപാധി തിരഞàµà´žàµ†à´Ÿàµà´¤àµà´¤àµ à´Žà´™àµà´•à´¿à´²àµâ€, à´²àµà´•àµà´•à´ªàµà´ªàµ ടേബിളàµâ€ ഇനàµâ€à´ªàµà´Ÿàµà´Ÿàµ ജാലകതàµà´¤à´¿à´²àµâ€ à´…à´Ÿà´•àµà´•à´‚ " "ചെയàµà´¯àµà´¨àµà´¨à´¤à´¾à´£àµ." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:467 msgid "If this option is checked, the lookup table will be displayed vertically." msgstr "à´ˆ ഉപാധി തിരഞàµà´žàµ†à´Ÿàµà´¤àµà´¤àµ à´Žà´™àµà´•à´¿à´²àµâ€, à´²àµà´•àµà´•à´ªàµà´ªàµ ടേബിളàµâ€ നേരെ ദൃശàµà´¯à´®à´¾à´•àµà´¨àµà´¨àµ." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:472 msgid "" "If this option is checked, the tray icon will be showed on the desktop's " "taskbar." msgstr "" "à´ˆ ഉപാധി തിരഞàµà´žàµ†à´Ÿàµà´¤àµà´¤àµ à´Žà´™àµà´•à´¿à´²àµâ€, à´¡à´¸àµà´•àµà´Ÿàµ‹à´ªàµà´ªà´¿à´¨àµà´±àµ† ടാസàµà´•àµà´¬à´¾à´±à´¿à´²àµâ€ à´Ÿàµà´°àµ‡à´¯àµà´Ÿàµ† à´ªàµà´°à´¤à´¿à´°àµ‚പം " "കാണികàµà´•àµà´¨àµà´¨àµ." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:476 msgid "" "If this option is checked, the toolbar, input and lookup table windows will " "be sticked to its original position." msgstr "" "à´ˆ ഉപാധി തിരഞàµà´žàµ†à´Ÿàµà´¤àµà´¤àµ à´Žà´™àµà´•à´¿à´²àµâ€, ടൂളàµâ€à´¬à´¾à´°àµâ€, ഇനàµâ€à´ªàµà´Ÿàµà´Ÿàµ, à´²àµà´•àµà´•à´ªàµà´ªàµ ടേബിളàµà´•à´³àµâ€ à´Žà´²àµà´²à´¾à´‚ യഥാരàµâ€à´¤àµà´¥ " "à´¸àµà´¥à´¾à´¨à´™àµà´™à´³à´¿à´²àµâ€ ചേരàµâ€à´•àµà´•à´ªàµà´ªàµ†à´Ÿàµà´¨àµà´¨àµ." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:482 msgid "The font setting will be used in the input and lookup table windows." msgstr "ഇനàµâ€à´ªàµà´Ÿàµà´Ÿàµ, ലോകàµà´•à´ªàµà´ªàµ ടേബിളàµâ€ ജാലകം à´Žà´¨àµà´¨à´¿à´µà´¯à´¿à´²àµâ€ ലിപിയàµà´Ÿàµ† à´•àµà´°à´®à´¿à´•രണം ഉപയോഗികàµà´•àµà´¨àµà´¨àµ." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:801 msgid "Select Interface Font" msgstr "സംയോജകഘടകതàµà´¤à´¿à´¨àµà´³àµà´³ ലിപി തിരഞàµà´žàµ†à´Ÿàµà´•àµà´•àµà´•" #: ../extras/setup/scim_setup_ui.cpp:47 msgid "SCIM" msgstr "à´¸àµà´•à´¿à´‚" #: ../extras/setup/scim_setup_ui.cpp:48 msgid "FrontEnd" msgstr "à´«àµà´°à´£àµà´Ÿàµà´Žà´¨àµâ€à´¡àµ" #: ../extras/setup/scim_setup_ui.cpp:49 msgid "IMEngine" msgstr "IMEngine" #: ../extras/setup/scim_setup_ui.cpp:50 msgid "Panel" msgstr "പാനലàµâ€" #: ../extras/setup/scim_setup_ui.cpp:51 msgid "Extra" msgstr "à´Žà´•àµà´¸àµà´Ÿàµà´°à´¾" #. #. vi:ts=4:nowrap:ai:expandtab #. #: ../extras/setup/scim_setup_ui.cpp:230 #: ../extras/setup/scim-setup.desktop.in.h:1 msgid "SCIM Input Method Setup" msgstr "à´¸àµà´•à´¿à´‚ ഇനàµâ€à´ªàµà´Ÿàµà´Ÿàµ മെഥേഡൠകàµà´°à´®à´¿à´•രണം" #: ../extras/setup/scim_setup_ui.cpp:369 msgid "" " Smart Common Input Method platform \n" "\n" "GUI Setup Utility\n" "\n" "\n" "\n" "Copyright 2002-2004, James Su <suzhe@tsinghua.org." "cn>" msgstr "" " à´¸àµà´®à´¾à´°àµâ€à´Ÿàµà´Ÿàµ കോമണàµâ€ ഇനàµâ€à´ªàµà´Ÿàµà´Ÿàµ മെഥേഡൠപàµà´²à´¾à´±àµà´±à´«àµ‹à´‚ \n" "\n" "GUI à´•àµà´°à´®à´¿à´•à´°à´£ à´ªàµà´°à´¯àµ‹à´—à´‚\n" "\n" "\n" "\n" "പകരàµâ€à´ªàµà´ªà´µà´•ാശം 2002-2004, ജെയിംസൠസൂ <suzhe@tsinghua.org." "cn>" #: ../extras/setup/scim_setup_ui.cpp:394 #, c-format msgid "The Setup for %s modules." msgstr "%s ഘടകങàµà´™à´³àµâ€à´•àµà´•àµà´³àµà´³ à´•àµà´°à´®à´¿à´•രണം." #: ../extras/setup/scim_setup_ui.cpp:456 msgid "Are you sure you want to quit SCIM Setup?" msgstr "നിങàµà´™à´³àµâ€à´•àµà´•ൠസàµà´•à´¿à´‚ à´•àµà´°à´®à´¿à´•രണതàµà´¤à´¿à´²àµâ€ നിനàµà´¨àµà´‚ à´ªàµà´±à´¤àµà´¤àµ à´•à´Ÿà´•àµà´•ണമെനàµà´¨àµ ഉറപàµà´ªà´¾à´£àµ‹?" #: ../extras/setup/scim_setup_ui.cpp:685 msgid "" "Not all configuration can be reloaded on the fly. Don't forget to restart " "SCIM in order to let all of the new configuration take effect." msgstr "" "à´Žà´²àµà´²à´¾ à´•àµà´°à´®à´¿à´•രണങàµà´™à´³àµà´‚ വീണàµà´Ÿàµà´‚ ലഭàµà´¯à´®à´¾à´•àµà´•àµà´µà´¾à´¨àµâ€ സാധàµà´¯à´®à´²àµà´². à´ªàµà´¤à´¿à´¯ à´•àµà´°à´®à´¿à´•രണങàµà´™à´³àµâ€ à´•à´®àµà´ªàµà´¯àµ‚à´Ÿàµà´Ÿà´±à´¿à´²àµâ€ " "സൂകàµà´·à´¿à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ വീണàµà´Ÿàµà´‚ à´¸àµà´•à´¿à´‚ ആരംഭികàµà´•àµà´µà´¾à´¨àµâ€ à´ªàµà´°à´¤àµà´¯àµ‡à´•à´‚ à´“à´°àµâ€à´•àµà´•àµà´•." #: ../extras/setup/scim_setup_helper.cpp:49 msgid "SCIM Setup" msgstr "à´¸àµà´•à´¿à´‚ à´•àµà´°à´®à´¿à´•രണം" #: ../extras/setup/scim_setup_helper.cpp:51 msgid "Integrated Setup Utility based on GTK Widget library." msgstr "GTK വിഡàµà´œà´±àµà´±àµ ലൈബàµà´°à´±à´¿à´¯àµà´Ÿàµ† à´…à´Ÿà´¿à´¸àµà´¥à´¾à´¨à´¤àµà´¤à´¿à´²àµà´³àµà´³ കൂടികàµà´•ലരàµâ€à´¨àµà´¨ à´•àµà´°à´®à´¿à´•à´°à´£ à´ªàµà´°à´¯àµ‹à´—à´‚" #: ../extras/setup/scim-setup.desktop.in.h:2 msgid "Setup utility for Smart Common Input Method platform" msgstr "à´¸àµà´®à´¾à´°àµâ€à´Ÿàµà´Ÿàµ കോമണàµâ€ ഇനàµâ€à´ªàµà´Ÿàµà´Ÿàµ മെഥേഡൠപàµà´²à´¾à´±àµà´±àµà´«àµ‹à´®à´¿à´¨àµà´³àµà´³ à´•àµà´°à´®à´¿à´•à´°à´£ à´ªàµà´°à´¯àµ‹à´—à´‚" #: ../extras/panel/scim_panel_gtk.cpp:982 msgid "SCIM Help" msgstr "à´¸àµà´•à´¿à´‚ സഹായം" #: ../extras/panel/scim_panel_gtk.cpp:999 msgid "Smart Common Input Method" msgstr "à´¸àµà´®à´¾à´°àµâ€à´Ÿàµà´Ÿàµ കോമണàµâ€ ഇനàµâ€à´ªàµà´Ÿàµà´Ÿàµ മെഥേഡàµ" #: ../extras/panel/scim_panel_gtk.cpp:1058 msgid "Stick/unstick the input window and the toolbar." msgstr "ടൂളàµâ€à´¬à´¾à´±àµà´‚ ഇനàµâ€à´ªàµà´Ÿàµà´Ÿàµ ജാലകവàµà´‚ à´¸àµà´±àµà´±à´¿à´•àµ/à´…à´£àµâ€à´¸àµà´±àµà´±à´¿à´•ൠചെയàµà´¯àµà´•." #: ../extras/panel/scim_panel_gtk.cpp:1063 msgid "Show a brief help about SCIM and the current input method." msgstr "à´¸àµà´•ിമിനെപàµà´ªà´±àµà´±à´¿à´¯àµà´‚ നിലവിലàµà´³àµà´³ ഇനàµâ€à´ªàµà´Ÿàµà´Ÿàµ മെഥേഡിനെപàµà´ªà´±àµà´±à´¿à´¯àµà´‚ ഒരൠലഘൠസഹായവിവരണം കാണികàµà´•àµà´•" #: ../extras/panel/scim_panel_gtk.cpp:1068 msgid "Show command menu." msgstr "കമാനàµâ€à´¡àµ മെനൠകാണികàµà´•àµà´•." #: ../extras/panel/scim_panel_gtk.cpp:2306 msgid "" "\n" "(C) 2002-2005 James Su " msgstr "" "\n" "(C) 2002-2005 ജെയിംസൠസൂ " #. Reload Configuration. #: ../extras/panel/scim_panel_gtk.cpp:2385 msgid "Reload Configuration" msgstr "സജàµà´œàµ€à´•രണം വീണàµà´Ÿàµà´‚ ലഭàµà´¯à´®à´¾à´•àµà´•àµà´•" #. Stick #: ../extras/panel/scim_panel_gtk.cpp:2395 msgid "Stick Windows" msgstr "à´¸àµà´±àµà´±à´¿à´•àµà´•ൠജാലകങàµà´™à´³àµâ€" #. Toolbar #: ../extras/panel/scim_panel_gtk.cpp:2404 msgid "Hide Toolbar" msgstr "ടൂളàµâ€à´¬à´¾à´°àµâ€ അദൃശàµà´¯à´®à´¾à´•àµà´•àµà´•" #. Help #: ../extras/panel/scim_panel_gtk.cpp:2413 msgid "Help ..." msgstr "സഹായം ..." #. Clients exit. #: ../extras/panel/scim_panel_gtk.cpp:2431 msgid "Exit" msgstr "à´ªàµà´±à´¤àµà´¤àµ à´•à´Ÿà´•àµà´•àµà´•" #: ../utils/scimstringview.c:196 msgid "Cursor Position" msgstr "à´•à´´àµà´¸à´±à´¿à´¨àµà´±àµ† à´¸àµà´¥à´¾à´¨à´‚" #: ../utils/scimstringview.c:197 msgid "The current position of the insertion cursor in chars." msgstr "à´…à´•àµà´·à´°à´™àµà´™à´³àµà´Ÿàµ† ഇടയിലàµâ€ ചേരàµâ€à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨àµ à´•à´´àµà´¸à´±à´¿à´¨àµà´±àµ† à´¸àµà´¥à´¾à´¨à´‚." #: ../utils/scimstringview.c:206 msgid "Maximum length" msgstr "à´à´±àµà´±à´µàµà´‚ കൂടàµà´¤à´²àµâ€ നീളം." #: ../utils/scimstringview.c:207 msgid "Maximum number of characters for this string view. Zero if no maximum." msgstr "à´ˆ à´¸àµà´Ÿàµà´°à´¿à´™àµ കാഴàµà´šà´¯à´¿à´²àµà´³àµà´³ à´…à´•àµà´·à´°à´™àµà´™à´³àµà´Ÿàµ† à´à´±àµà´±à´µàµà´‚ കൂടിയ à´Žà´£àµà´£à´‚. കൂടàµà´¤à´²àµâ€ ഇലàµà´²à´¯àµ†à´™àµà´•à´¿à´²àµâ€ 0." #: ../utils/scimstringview.c:216 msgid "Maximum width" msgstr "à´à´±àµà´±à´µàµà´‚ കൂടàµà´¤à´²àµâ€ വീതി" #: ../utils/scimstringview.c:217 msgid "Maximum width of this string view." msgstr "à´ˆ à´¸àµà´Ÿàµà´°à´¿à´™àµ കാഴàµà´šà´¯àµà´Ÿàµ† à´à´±àµà´±à´µàµà´‚ കൂടàµà´¤à´²àµâ€ വീതി." #: ../utils/scimstringview.c:226 msgid "Has Frame" msgstr "à´«àµà´°àµ†à´¯à´¿à´‚ ഉണàµà´Ÿàµàµ." #: ../utils/scimstringview.c:227 msgid "FALSE removes outside bevel from string view." msgstr "à´¸àµà´Ÿàµà´°à´¿à´™àµ കാഴàµà´šà´¯à´¿à´²àµâ€ നിനàµà´¨àµà´‚ à´ªàµà´±à´¤àµà´¤àµà´³àµà´³ ചെരിവൠഫോളàµâ€à´¸àµ നീകàµà´•àµà´¨àµà´¨àµ." #: ../utils/scimstringview.c:234 msgid "Draw cursor" msgstr "à´•à´°àµâ€à´¸à´°àµâ€ വരയàµà´•àµà´•àµà´•" #: ../utils/scimstringview.c:235 msgid "TRUE draw blinking cursor." msgstr "à´Ÿàµà´°àµ‚ à´¡àµà´°àµ‹ à´¬àµà´³à´¿à´™àµà´•ിങൠകരàµâ€à´¸à´°àµâ€." #: ../utils/scimstringview.c:242 msgid "Auto move cursor" msgstr "à´•à´°àµâ€à´¸à´°àµâ€ à´¸àµà´µà´¯à´‚ നീങàµà´™àµà´•" #: ../utils/scimstringview.c:243 msgid "TRUE auto move cursor position when mouse clicking." msgstr "മൌസൠകàµà´²à´¿à´•àµà´•ൠചെയàµà´¯àµà´®àµà´ªàµ‹à´³àµâ€ à´•à´°àµâ€à´¸à´±à´¿à´¨àµà´±àµ† à´¸àµà´¥à´¾à´¨à´‚ à´Ÿàµà´°àµ‚ à´¸àµà´µà´¯à´®àµ‡ മാറàµà´±àµà´¨àµà´¨àµ." #: ../utils/scimstringview.c:250 msgid "Forward button press event" msgstr "à´®àµà´®àµà´ªàµ‹à´Ÿàµà´Ÿàµà´³àµà´³ ബടàµà´Ÿà´£àµâ€ à´ªàµà´°à´¸àµà´¸àµ ഇവനàµà´±àµ" #: ../utils/scimstringview.c:251 msgid "TRUE forward button press event to user program." msgstr "യൂസരàµâ€ à´ªàµà´°àµ‹à´—àµà´°à´¾à´®à´¿à´¨àµà´³àµà´³ à´Ÿàµà´°àµ‚ ഫോരàµâ€à´µàµ‡à´°àµâ€à´¡àµ ബടàµà´Ÿà´£àµâ€ à´ªàµà´°à´¸àµà´¸àµ ഇവനàµà´±àµ." #: ../utils/scimstringview.c:258 msgid "Auto resize the widget to fit the string" msgstr "à´¸àµà´Ÿàµà´°à´¿à´™àµ വിഡàµà´œà´±àµà´±à´¿à´²àµâ€ à´’à´¤àµà´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ à´¸àµà´µà´¯à´‚ à´µàµà´¯à´¾à´ªàµà´¤à´¿ ശരിയാകàµà´•àµà´•" #: ../utils/scimstringview.c:259 msgid "TRUE Auto resize on." msgstr "à´Ÿàµà´°àµ‚ à´“à´Ÿàµà´Ÿàµ‹ റീസൈസൠഓണàµâ€ ആണàµ." #: ../utils/scimstringview.c:266 msgid "Width in chars" msgstr "à´µàµà´¯à´¾à´ªàµà´¤à´¿ à´…à´•àµà´·à´°à´™àµà´™à´³à´¿à´²àµâ€" #: ../utils/scimstringview.c:267 msgid "Number of characters to leave space for in the string view." msgstr "à´¸àµà´Ÿàµà´°à´¿à´™àµ കാഴàµà´šà´¯à´¿à´²àµâ€ à´Žà´¤àµà´° à´…à´•àµà´·à´°à´™àµà´™à´³àµâ€à´•àµà´•àµà´³àµà´³ à´¸àµà´ªàµ†à´¯à´¿à´¸àµ വിടണം." #: ../utils/scimstringview.c:276 msgid "Scroll offset" msgstr "à´¸àµà´•àµà´°àµ‹à´³àµâ€ à´“à´«àµà´¸àµ†à´±àµà´±àµ" #: ../utils/scimstringview.c:277 msgid "Number of pixels of the string view scrolled off the screen to the left" msgstr "à´¸àµà´•àµà´°àµ€à´¨à´¿à´¨àµà´±àµ† ഇടതàµà´¤àµ‡à´•àµà´•ൠസàµà´Ÿàµà´°à´¿à´™àµ കാഴàµà´šà´¯à´¿à´²àµâ€ നീകàµà´•ിയിരികàµà´•àµà´¨àµà´¨ പികàµà´¸à´²àµà´•à´³àµà´Ÿàµ† à´Žà´£àµà´£à´‚" #: ../utils/scimstringview.c:286 msgid "Text" msgstr "വാചകം" #: ../utils/scimstringview.c:287 msgid "The contents of the string view" msgstr "à´¸àµà´Ÿàµà´°à´¿à´™àµ കാഴàµà´šà´¯àµà´Ÿàµ† ഉളàµà´³à´Ÿà´•àµà´•à´‚" #: ../utils/scimkeyselection.cpp:155 msgid "Selected _Keys:" msgstr "തിരഞàµà´žàµ†à´Ÿàµà´¤àµà´¤ _കീകളàµâ€:" #: ../utils/scimkeyselection.cpp:200 msgid "Key Code:" msgstr "കീ കോഡàµ:" #: ../utils/scimkeyselection.cpp:218 msgid "..." msgstr "..." #: ../utils/scimkeyselection.cpp:223 msgid "Modifiers:" msgstr "മോഡിഫയറàµà´•à´³àµâ€:" #: ../utils/scimkeyselection.cpp:236 msgid "_Ctrl" msgstr "_Ctrl" #: ../utils/scimkeyselection.cpp:240 msgid "A_lt" msgstr "A_lt" #: ../utils/scimkeyselection.cpp:244 msgid "_Shift" msgstr "_Shift" #: ../utils/scimkeyselection.cpp:248 msgid "_Release" msgstr "_റിലീസàµ" #: ../utils/scimkeyselection.cpp:258 msgid "_Meta" msgstr "_മെറàµà´±à´¾" #: ../utils/scimkeyselection.cpp:262 msgid "S_uper" msgstr "_സൂപàµà´ªà´°àµâ€" #: ../utils/scimkeyselection.cpp:266 msgid "_Hyper" msgstr "_ഹൈപàµà´ªà´°àµâ€" #: ../utils/scimkeyselection.cpp:331 msgid "Please enter a Key Code first." msgstr "ഒരൠകീ കോഡൠആദàµà´¯à´‚ നലàµâ€à´•àµà´•." #: ../utils/scimkeyselection.cpp:385 msgid "" "Press a key (or a key combination).\n" "This dialog will be closed when the key is released." msgstr "" "ഒരൠകീ അമരàµâ€à´¤àµà´¤àµà´• (à´…à´²àµà´²àµ†à´™àµà´•à´¿à´²àµâ€ പലകീകളàµâ€ ഉപയോഗികàµà´•àµà´•).\n" "കീ റിലീസൠചെയàµà´¯àµà´®àµà´ªàµ‹à´³àµâ€ à´ˆ ഡയലോഗിലàµâ€ നിനàµà´¨àµà´‚ à´ªàµà´±à´¤àµà´¤àµ à´•à´Ÿà´•àµà´•àµà´¨àµà´¨àµ." #: ../utils/scimkeyselection.cpp:388 msgid "Grabbing a key." msgstr "ഒരൠകീ തിരഞàµà´žàµ†à´Ÿàµà´•àµà´•àµà´•." #: ../utils/scimkeyselection.cpp:678 msgid "Key Selection" msgstr "കീ തിരഞàµà´žàµ†à´Ÿàµà´•àµà´•à´²àµâ€" #: ../utils/scimtrayicon.c:108 msgid "Orientation" msgstr "à´•àµà´°à´®à´¿à´•രണം" #: ../utils/scimtrayicon.c:109 msgid "The orientation of the tray." msgstr "à´Ÿàµà´°àµ‡à´¯àµà´Ÿàµ† à´•àµà´°à´®à´¿à´•രണം." scim-1.4.14/po/mr.po000066400000000000000000001320621177210725600141440ustar00rootroot00000000000000# translation of mr.po to marathi # Marathi translations for PACKAGE package. # Copyright (C) 2008 THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Automatically generated, 2008. # Sandeep Shedmake , 2008. msgid "" msgstr "" "Project-Id-Version: mr\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-06-22 11:40-0700\n" "PO-Revision-Date: 2008-03-25 11:32+0530\n" "Last-Translator: Sandeep Shedmake \n" "Language-Team: marathi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n" #: ../src/scim_compose_key.cpp:126 msgid "English/European" msgstr "इंगà¥à¤°à¤œà¥€/यà¥à¤°à¥‹à¤ªà¥€à¤¯à¤¨" #. Append an entry for forward mode. #: ../src/scim_imengine.cpp:638 ../src/scim_utility.cpp:693 #: ../modules/FrontEnd/scim_x11_frontend.cpp:1897 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1281 #: ../extras/panel/scim_panel_gtk.cpp:2814 msgid "English/Keyboard" msgstr "इंगà¥à¤°à¤œà¥€/कळफलक" #: ../src/scim_utility.cpp:694 msgid "Amharic" msgstr "अमà¥à¤¹à¥‡à¤°à¤¿à¤•" #: ../src/scim_utility.cpp:695 msgid "Arabic" msgstr "अरेबिक" #: ../src/scim_utility.cpp:696 msgid "Arabic (Egypt)" msgstr "अरेबिक (ईजीपà¥à¤Ÿ)" #: ../src/scim_utility.cpp:697 msgid "Arabic (Lebanon)" msgstr "अरेबीक (लेबनॉन)" #: ../src/scim_utility.cpp:698 msgid "Assamese" msgstr "असामी" #: ../src/scim_utility.cpp:699 msgid "Azerbaijani" msgstr "अà¤à¥‡à¤°à¤¬à¤¾à¤‡à¤œà¤¾à¤¨à¥€" #: ../src/scim_utility.cpp:700 msgid "Belarusian" msgstr "बेलारशियन" #: ../src/scim_utility.cpp:701 msgid "Bulgarian" msgstr "बलà¥à¤—ेरियन" #: ../src/scim_utility.cpp:702 ../src/scim_utility.cpp:703 msgid "Bengali" msgstr "बंगाली" #: ../src/scim_utility.cpp:704 msgid "Bengali (India)" msgstr "बंगाली (भारत)" #: ../src/scim_utility.cpp:705 msgid "Tibetan" msgstr "टिबेटियन" #: ../src/scim_utility.cpp:706 msgid "Bosnian" msgstr "बॉसà¥à¤¨à¥€à¤¯à¤¨" #: ../src/scim_utility.cpp:707 msgid "Catalan" msgstr "कॅटालॉन" #: ../src/scim_utility.cpp:708 ../src/scim_keyboard_layout_data.h:4595 msgid "Czech" msgstr "चेक" #: ../src/scim_utility.cpp:709 msgid "Welsh" msgstr "वेलà¥à¤¶" #: ../src/scim_utility.cpp:710 ../src/scim_keyboard_layout_data.h:4597 msgid "Danish" msgstr "डॅनिश" #: ../src/scim_utility.cpp:711 ../src/scim_keyboard_layout_data.h:4605 msgid "German" msgstr "जरà¥à¤®à¤¨" #: ../src/scim_utility.cpp:712 msgid "Divehi" msgstr "डीवेही" #: ../src/scim_utility.cpp:713 ../src/scim_keyboard_layout_data.h:4608 msgid "Greek" msgstr "गà¥à¤°à¥€à¤•" #: ../src/scim_utility.cpp:714 msgid "English" msgstr "इंगà¥à¤°à¤œà¥€" #: ../src/scim_utility.cpp:715 msgid "English (Australian)" msgstr "इंगà¥à¤°à¤œà¥€ (ऑसà¥à¤Ÿà¥à¤°à¥‡à¤²à¥€à¤¯à¤¨)" #: ../src/scim_utility.cpp:716 msgid "English (Canadian)" msgstr "इंगà¥à¤°à¤œà¥€ (कनाडियन)" #: ../src/scim_utility.cpp:717 msgid "English (British)" msgstr "इंगà¥à¤°à¤œà¥€ (बà¥à¤°à¤¿à¤Ÿà¤¿à¤¶)" #: ../src/scim_utility.cpp:718 msgid "English (Ireland)" msgstr "इंगà¥à¤°à¤œà¥€ (आयरलॅनà¥à¤¡)" #: ../src/scim_utility.cpp:719 msgid "English (American)" msgstr "इंगà¥à¤°à¤œà¥€ (अमेरीकन)" #: ../src/scim_utility.cpp:720 ../src/scim_utility.cpp:721 #: ../src/scim_keyboard_layout_data.h:4621 msgid "Spanish" msgstr "सà¥à¤ªà¥…निश" #: ../src/scim_utility.cpp:722 msgid "Spanish (Mexico)" msgstr "सà¥à¤ªà¤¾à¤¨à¥€à¤¶ (मेकà¥à¤¸à¥€à¤•ो)" #: ../src/scim_utility.cpp:723 ../src/scim_keyboard_layout_data.h:4600 msgid "Estonian" msgstr "à¤à¤¸à¥à¤Ÿà¥‹à¤¨à¤¿à¤¯à¤¨" #: ../src/scim_utility.cpp:724 msgid "Basque" msgstr "बासà¥à¤•" #: ../src/scim_utility.cpp:725 msgid "Persian" msgstr "परà¥à¤¶à¤¿à¤¯à¤¨" #: ../src/scim_utility.cpp:726 ../src/scim_keyboard_layout_data.h:4601 msgid "Finnish" msgstr "फिनà¥à¤¨à¤¿à¤¶" #: ../src/scim_utility.cpp:727 ../src/scim_keyboard_layout_data.h:4602 msgid "French" msgstr "फà¥à¤°à¥‡à¤‚च" #: ../src/scim_utility.cpp:728 msgid "Irish" msgstr "आयरिश" #: ../src/scim_utility.cpp:729 msgid "Galician" msgstr "गॅलीशीयन" #: ../src/scim_utility.cpp:730 msgid "Gujarati" msgstr "गà¥à¤œà¤°à¤¾à¤¤à¥€" #: ../src/scim_utility.cpp:731 ../src/scim_utility.cpp:740 msgid "Hebrew" msgstr "हिबà¥à¤°à¥‚" #: ../src/scim_utility.cpp:732 msgid "Hindi" msgstr "हिंदी" #: ../src/scim_utility.cpp:733 ../src/scim_keyboard_layout_data.h:4594 msgid "Croatian" msgstr "कà¥à¤°à¥‹à¤à¤¶à¤¿à¤…न" #: ../src/scim_utility.cpp:734 ../src/scim_keyboard_layout_data.h:4609 msgid "Hungarian" msgstr "हंगेरियन" #: ../src/scim_utility.cpp:735 msgid "Armenian" msgstr "आरà¥à¤®à¥‡à¤¨à¤¿à¤…न" #: ../src/scim_utility.cpp:736 msgid "Interlingua" msgstr "इंटरलींगà¥à¤†" #: ../src/scim_utility.cpp:737 msgid "Indonesian" msgstr "इंडोनेशियन" #: ../src/scim_utility.cpp:738 ../src/scim_keyboard_layout_data.h:4627 msgid "Icelandic" msgstr "आइसलà¤à¤¡à¤¿à¤•" #: ../src/scim_utility.cpp:739 ../src/scim_keyboard_layout_data.h:4610 msgid "Italian" msgstr "इटालियन" #: ../src/scim_utility.cpp:741 ../src/scim_keyboard_layout_data.h:4611 msgid "Japanese" msgstr "जपानी" #: ../src/scim_utility.cpp:742 msgid "Georgian" msgstr "जॉरà¥à¤œà¥€à¤…न" #: ../src/scim_utility.cpp:743 msgid "Kazakh" msgstr "कजाक" #: ../src/scim_utility.cpp:744 msgid "Cambodian" msgstr "कमà¥à¤¬à¥‹à¤¡à¥€à¤¯à¤¨" #: ../src/scim_utility.cpp:745 msgid "Kannada" msgstr "कनà¥à¤¨à¤¡" #: ../src/scim_utility.cpp:746 msgid "Korean" msgstr "कोरियन" #: ../src/scim_utility.cpp:747 msgid "Laothian" msgstr "लोअशीयन" #: ../src/scim_utility.cpp:748 ../src/scim_keyboard_layout_data.h:4628 msgid "Lithuanian" msgstr "लà¥à¤¥à¤¿à¤†à¤¨à¤¿à¤…न" #: ../src/scim_utility.cpp:749 msgid "Latvian" msgstr "लॅटविअन" #: ../src/scim_utility.cpp:750 msgid "Macedonian" msgstr "मेसीडोनियन" #: ../src/scim_utility.cpp:751 msgid "Malayalam" msgstr "मलà¥à¤¯à¤¾à¤²à¤®" #: ../src/scim_utility.cpp:752 msgid "Mongolian" msgstr "मंगोलीयन" #: ../src/scim_utility.cpp:753 msgid "Marathi" msgstr "मराठी" #: ../src/scim_utility.cpp:754 msgid "Malay" msgstr "मलय" #: ../src/scim_utility.cpp:755 msgid "Burmese" msgstr "बरà¥à¤®à¥€à¤¸" #: ../src/scim_utility.cpp:756 msgid "Nepali" msgstr "नेपाली" #: ../src/scim_utility.cpp:757 ../src/scim_keyboard_layout_data.h:4598 msgid "Dutch" msgstr "डच" #: ../src/scim_utility.cpp:758 msgid "Norwegian (nynorsk)" msgstr "नॉरà¥à¤µà¤µà¥‡à¤œà¥€à¤¯à¤¨ (नींनोरà¥à¤¸à¥à¤•)" #: ../src/scim_utility.cpp:759 msgid "Norwegian (bokmal)" msgstr "नॉरà¥à¤µà¤µà¥‡à¤œà¥€à¤¯à¤¨ (बॉकमल)" #: ../src/scim_utility.cpp:760 msgid "Oriya" msgstr "ओरिया" #: ../src/scim_utility.cpp:761 msgid "Punjabi" msgstr "पंजाबी" #: ../src/scim_utility.cpp:762 ../src/scim_keyboard_layout_data.h:4613 msgid "Polish" msgstr "पोलिश" #: ../src/scim_utility.cpp:763 ../src/scim_utility.cpp:765 #: ../src/scim_keyboard_layout_data.h:4614 msgid "Portuguese" msgstr "पॉरà¥à¤Ÿà¥à¤¯à¥‚गीज" #: ../src/scim_utility.cpp:764 ../src/scim_keyboard_layout_data.h:4615 msgid "Portuguese (Brazil)" msgstr "पॉरà¥à¤Ÿà¥à¤¯à¥‚गीज (बà¥à¤°à¤¾à¤œà¥€à¤²)" #: ../src/scim_utility.cpp:766 msgid "Romanian" msgstr "रोमानिअन" #: ../src/scim_utility.cpp:767 ../src/scim_keyboard_layout_data.h:4617 msgid "Russian" msgstr "रशियन" #: ../src/scim_utility.cpp:768 msgid "Sinhala" msgstr "सिंहला" #: ../src/scim_utility.cpp:769 ../src/scim_keyboard_layout_data.h:4618 msgid "Slovak" msgstr "सà¥à¤²à¥‹à¤µà¤¾à¤•" #: ../src/scim_utility.cpp:770 ../src/scim_keyboard_layout_data.h:4620 msgid "Slovenian" msgstr "सà¥à¤²à¥‹à¤µà¥‡à¤¨à¤¿à¤¯à¤¨" #: ../src/scim_utility.cpp:771 msgid "Albanian" msgstr "अलà¥à¤¬à¥‡à¤¨à¥€à¤¯à¤¨" #: ../src/scim_utility.cpp:772 ../src/scim_utility.cpp:773 #: ../src/scim_utility.cpp:774 msgid "Serbian" msgstr "सरà¥à¤¬à¥€à¤¯à¤¨" #: ../src/scim_utility.cpp:775 ../src/scim_utility.cpp:777 #: ../src/scim_keyboard_layout_data.h:4624 msgid "Swedish" msgstr "सà¥à¤µà¥€à¤¡à¤¿à¤¶" #: ../src/scim_utility.cpp:776 msgid "Swedish (Finland)" msgstr "सà¥à¤µà¥€à¤¡à¥€à¤¶ (फींलॅनà¥à¤¡)" #: ../src/scim_utility.cpp:778 msgid "Tamil" msgstr "समिळ" #: ../src/scim_utility.cpp:779 msgid "Telugu" msgstr "तेलà¥à¤—à¥" #: ../src/scim_utility.cpp:780 msgid "Thai" msgstr "थाई" #: ../src/scim_utility.cpp:781 ../src/scim_keyboard_layout_data.h:4625 msgid "Turkish" msgstr "तà¥à¤°à¥à¤•िश" #: ../src/scim_utility.cpp:782 msgid "Uighur" msgstr "उईघर" #: ../src/scim_utility.cpp:783 ../src/scim_keyboard_layout_data.h:4629 msgid "Ukrainian" msgstr "यूकà¥à¤°à¥‡à¤¨à¤¿à¤¯à¤¨" #: ../src/scim_utility.cpp:784 msgid "Urdu" msgstr "उरà¥à¤¦à¥‚" #: ../src/scim_utility.cpp:785 msgid "Uzbek" msgstr "उजà¥à¤¬à¥‡à¤•" #: ../src/scim_utility.cpp:786 msgid "Vietnamese" msgstr "वियेतनामी" #: ../src/scim_utility.cpp:787 msgid "Walloon" msgstr "वलà¥à¤²à¥‚न" #: ../src/scim_utility.cpp:788 ../src/scim_utility.cpp:789 msgid "Yiddish" msgstr "यिदà¥à¤¦à¤¿à¤¶" #: ../src/scim_utility.cpp:790 msgid "Chinese" msgstr "चायनिज" #: ../src/scim_utility.cpp:791 ../src/scim_utility.cpp:793 msgid "Chinese (simplified)" msgstr "चायनीज (सà¥à¤§à¤¾à¤°à¥€à¤¤)" #: ../src/scim_utility.cpp:792 ../src/scim_utility.cpp:794 msgid "Chinese (traditional)" msgstr "चायनीज (पारंपारीक)" #: ../src/scim_utility.cpp:876 msgid "Other" msgstr "इतर" #: ../src/scim_keyboard_layout_data.h:4591 #: ../modules/IMEngine/scim_socket_imengine.cpp:386 #: ../modules/IMEngine/scim_socket_imengine.cpp:416 #: ../modules/IMEngine/scim_socket_imengine.cpp:501 #: ../modules/IMEngine/scim_socket_imengine.cpp:531 #: ../modules/IMEngine/scim_socket_imengine.cpp:561 msgid "Unknown" msgstr "अपरिचित" #: ../src/scim_keyboard_layout_data.h:4592 msgid "English (US)" msgstr "इंगà¥à¤°à¤œà¥€ (US)" #: ../src/scim_keyboard_layout_data.h:4593 msgid "Belgian" msgstr "बेलà¥à¤œà¥€à¤…न" #: ../src/scim_keyboard_layout_data.h:4596 msgid "Czech (qwerty)" msgstr "चेक (qwerty)" #: ../src/scim_keyboard_layout_data.h:4599 msgid "Dvorak" msgstr "डà¥à¤µà¥‹à¤°à¤¾à¤•" #: ../src/scim_keyboard_layout_data.h:4603 msgid "French (Canadian)" msgstr "फà¥à¤°à¥‡à¤‚च (कनेडीयन)" #: ../src/scim_keyboard_layout_data.h:4604 msgid "French (Switzerland)" msgstr "फà¥à¤°à¥‡à¤‚च (सà¥à¤µà¥€à¤Ÿà¥à¤œà¤°à¤²à¥ˆà¤‚ड)" #: ../src/scim_keyboard_layout_data.h:4606 msgid "German (with deadkeys)" msgstr "जरà¥à¤®à¤¨ (deadkeys सह)" #: ../src/scim_keyboard_layout_data.h:4607 msgid "German (Swiss)" msgstr "जरà¥à¤®à¤¨ (सà¥à¤µà¤¿à¤¸)" #: ../src/scim_keyboard_layout_data.h:4612 msgid "Norwegian" msgstr "नारà¥à¤µà¥‡à¤œà¤¿à¤¯à¤¨" #: ../src/scim_keyboard_layout_data.h:4616 msgid "Portuguese (Brazil US accents)" msgstr "पॉरà¥à¤Ÿà¥à¤¯à¥‚गीज (बà¥à¤°à¤¾à¤œà¥€à¤² US उचà¥à¤šà¤¾à¤° पà¥à¤°à¤•ार)" #: ../src/scim_keyboard_layout_data.h:4619 msgid "Slovak (qwerty)" msgstr "सà¥à¤²à¥‹à¤µà¤¾à¤• (qwerty)" #: ../src/scim_keyboard_layout_data.h:4622 msgid "Spanish (CP 850)" msgstr "सà¥à¤ªà¥…नीश (CP 850)" #: ../src/scim_keyboard_layout_data.h:4623 msgid "Spanish (Latin America)" msgstr "सà¥à¤ªà¥…नीश (लॅटीन अमेरीका)" #: ../src/scim_keyboard_layout_data.h:4626 msgid "English (UK)" msgstr "इंगà¥à¤°à¤œà¥€ (UK)" #: ../modules/Filter/scim_sctc_filter.cpp:57 msgid "Simplified-Traditional Chinese Conversion" msgstr "सà¥à¤§à¤¾à¤°à¥€à¤¤- पारंपारीक चायनीज भाषांतर" #: ../modules/Filter/scim_sctc_filter.cpp:60 msgid "Convert between Simplified Chinese and Traditional Chinese" msgstr "सà¥à¤§à¤¾à¤°à¥€à¤¤ चायनीज व पारंपारीक चायनीज मधील रूपांतर" #: ../modules/Filter/scim_sctc_filter.cpp:71 msgid "SC-TC" msgstr "SC-TC" #: ../modules/Filter/scim_sctc_filter.cpp:73 #: ../modules/Filter/scim_sctc_filter.cpp:78 msgid "Simplified-Traditional Chinese conversion" msgstr "सà¥à¤§à¤¾à¤°à¥€à¤¤-पारंपारीक चायनीज रूपांतर" #: ../modules/Filter/scim_sctc_filter.cpp:76 msgid "No Conversion" msgstr "रूपांतर नाही" #: ../modules/Filter/scim_sctc_filter.cpp:81 msgid "Simplified to Traditional" msgstr "सà¥à¤§à¤¾à¤°à¥€à¤¤ ते पारंपारीक" #: ../modules/Filter/scim_sctc_filter.cpp:83 msgid "Convert Simplified Chinese to Traditional Chinese" msgstr "सà¥à¤§à¤¾à¤°à¥€à¤¤ चायनीजचे पारंपारीक चायनीज मधà¥à¤¯à¥‡ रूपांतर करा" #: ../modules/Filter/scim_sctc_filter.cpp:86 msgid "Traditional to Simplified" msgstr "पारंपारीक ते सà¥à¤§à¤¾à¤°à¥€à¤¤" #: ../modules/Filter/scim_sctc_filter.cpp:88 msgid "Convert Traditional Chinese to Simplified Chinese" msgstr "पारंपारीक चायनीज ते सà¥à¤§à¤¾à¤°à¥€à¤¤ चायनीज असे रूपांतर करा" #: ../modules/Filter/scim_sctc_filter.cpp:300 msgid "James Su " msgstr "James Su " #: ../modules/Filter/scim_sctc_filter.cpp:425 #: ../modules/Filter/scim_sctc_filter.cpp:555 #: ../modules/Filter/scim_sctc_filter.cpp:571 msgid "SC->TC" msgstr "SC->TC" #: ../modules/Filter/scim_sctc_filter.cpp:431 #: ../modules/Filter/scim_sctc_filter.cpp:559 #: ../modules/Filter/scim_sctc_filter.cpp:575 msgid "TC->SC" msgstr "TC->SC" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1845 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1231 #: ../extras/panel/scim_panel_gtk.cpp:2304 msgid "Smart Common Input Method platform " msgstr "Smart Common Input Method पà¥à¤²à¥…टफॉरà¥à¤® " #: ../modules/FrontEnd/scim_x11_frontend.cpp:1847 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1233 msgid "" "\n" "(C) 2002-2005 James Su \n" "\n" msgstr "" "\n" "(C) 2002-2005 James Su \n" "\n" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1851 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1238 msgid "" ":\n" "\n" msgstr "" ":\n" "\n" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1854 #: ../modules/FrontEnd/scim_x11_frontend.cpp:1857 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1241 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1244 msgid "" "\n" "\n" msgstr "" "\n" "\n" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:120 msgid "RAW CODE" msgstr "RAW CODE" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:127 msgid "(C) 2002-2006 James Su " msgstr "(C) 2002-2006 James Su " #: ../modules/IMEngine/scim_rawcode_imengine.cpp:140 msgid "" "Hot Keys:\n" "\n" " Control+u:\n" " switch between Multibyte encoding and Unicode.\n" "\n" " Esc:\n" " reset the input method.\n" msgstr "" "जलद कळ:\n" "\n" " Control+u:\n" " बहà¥à¤¬à¤¾à¤ˆà¤Ÿ à¤à¤‚कोडींग व यà¥à¤¨à¥€à¤•ोड पैकी निवडा.\n" "\n" " Esc:\n" " इंपà¥à¤Ÿ पधà¥à¤¦à¤¤à¥€ पà¥à¤¨à¥à¤¹à¤¸à¥à¤¥à¤¾à¤ªà¥€à¤¤ करा.\n" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:407 #: ../modules/IMEngine/scim_rawcode_imengine.cpp:423 msgid "The status of the current input method. Click to change it." msgstr "सदà¥à¤¯à¤¾à¤šà¥à¤¯à¤¾ इंपà¥à¤Ÿ पधà¥à¤¦à¤¤à¥€à¤šà¥€ सà¥à¤¥à¤¿à¤¤à¥€. बदलविणà¥à¤¯à¤¾à¤•रीता तà¥à¤¯à¤¾à¤µà¤° कà¥à¤²à¤¿à¤• करा." #: ../modules/IMEngine/scim_rawcode_imengine.cpp:409 msgid "Unicode" msgstr "यà¥à¤¨à¤¿à¤•ोड" #: ../modules/SetupUI/scim_frontend_setup.cpp:82 #: ../modules/SetupUI/scim_imengine_setup.cpp:88 msgid "Global Setup" msgstr "जागतीक मांडणी" #: ../modules/SetupUI/scim_frontend_setup.cpp:87 msgid "" "Setup the global options used by All FrontEnd modules, including X11 " "FrontEnd, GTK IMModule, QT IMModule etc." msgstr "X11 FrontEnd, GTK IMModule, QT IMModule इतà¥à¤¯à¤¾à¤¦à¥€ यांस गृहीत धरून, सरà¥à¤µ पृषà¥à¤  विभाग दà¥à¤µà¤¾à¤°à¥‡ वापरलेले जागतीक परà¥à¤¯à¤¾à¤¯ सà¥à¤¥à¤¾à¤ªà¥€à¤¤ करा." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:143 msgid "_Trigger:" msgstr "टà¥à¤°à¥€à¤—à¥à¤—र (_T):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:145 msgid "Select the trigger keys" msgstr "टà¥à¤°à¥€à¤—à¥à¤—र कळ निवडा" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:147 msgid "" "The key events to turn on/off SCIM input method. Click on the button on the " "right to edit it." msgstr "SCIM इंपà¥à¤Ÿ पधà¥à¤¦à¤¤à¥€ चालू/बंद करणà¥à¤¯à¤¾à¤•रीताचे कळ घटना. संपादीत करणà¥à¤¯à¤¾à¤•रीता बटणावर कà¥à¤²à¤¿à¤• करा." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:160 msgid "Turn _On:" msgstr "कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ करा (_O):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:162 msgid "Select the Turn On keys" msgstr "कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ करीताचे कळ नविडा" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:164 msgid "" "The key events to turn on SCIM input method. Click on the button on the " "right to edit it." msgstr "SCIM इंपà¥à¤Ÿ पधà¥à¤¦à¤¤à¥€ कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ करीताचे कळ घटना. उजवीकडील बटणावर संपादन करीता किलà¥à¤• करा." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:177 msgid "Turn O_ff:" msgstr "बंद करा (_f):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:179 msgid "Select the Turn Off keys" msgstr "अकारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ करीताचे कळ निवडा" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:181 msgid "" "The key events to turn off SCIM input method. Click on the button on the " "right to edit it." msgstr "SCIM इंपà¥à¤Ÿ पधà¥à¤¦à¤¤à¥€ बंद करणà¥à¤¯à¤¾à¤šà¥‡ कळ घटना. संपादन करीता उजवीवरील बटणावर कà¥à¤²à¤¿à¤• करा." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:194 msgid "_Next input method:" msgstr "पà¥à¤¢à¤šà¥€ इंपà¥à¤Ÿ पधà¥à¤¦à¤¤à¥€ (_N):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:196 msgid "Select the next input method keys" msgstr "पà¥à¤¢à¤Ÿà¥€ इंपà¥à¤Ÿ पधà¥à¤¦à¤¤à¥€ कळ निवडा" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:198 msgid "" "The key events to switch to the next input method. Click on the button on " "the right to edit it." msgstr "पà¥à¤¢à¤šà¥à¤¯à¤¾ इंपà¥à¤Ÿ पधà¥à¤¦à¤¤à¥€à¤µà¤° जाणà¥à¤¯à¤¾à¤•रीताचे कळ घटना. संपादन करीता उजवीकडील बटणावर कà¥à¤²à¤¿à¤• करा." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:213 msgid "_Previous input method:" msgstr "पूरà¥à¤µà¥€à¤šà¥€ इंपà¥à¤Ÿ पधà¥à¤¦à¤¤à¥€ (_P):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:215 msgid "Select the previous input method keys" msgstr "पूरà¥à¤µà¥€à¤šà¥‡ इंपà¥à¤Ÿ पधà¥à¤¦à¤¤à¥€ कळ निवडा" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:217 msgid "" "The key events to switch to the previous input method. Click on the button " "on the right to edit it." msgstr "पूरà¥à¤µà¥€à¤šà¥à¤¯à¤¾ इंपà¥à¤Ÿ पधà¥à¤¦à¤¤à¥€à¤µà¤° जाणà¥à¤¯à¤¾à¤•रीताचे कळ घटना. संपादान करीता उजवीकडील बटणावर कà¥à¤²à¤¿à¤• करा." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:232 msgid "Show input method _menu:" msgstr "इंपà¥à¤Ÿ पधà¥à¤¦à¤¤à¥€ मेनà¥à¤¯à¥ दरà¥à¤¶à¤µà¤¾ (_m):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:234 msgid "Select the show input method menu keys" msgstr "इंपà¥à¤Ÿ पधà¥à¤¦à¤¤à¥€ मेनà¥à¤¯à¥ कळ दरà¥à¤¶à¤µà¤¿à¤£à¥à¤¯à¤¾à¤•रीता निवडा" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:236 msgid "" "The key events to show the input method menu. Click on the button on the " "right to edit it." msgstr "इंपà¥à¤Ÿ पधà¥à¤¦à¤¤à¥€ मेनà¥à¤¯à¥ दरà¥à¤¶à¤µà¤¿à¤£à¥à¤¯à¤¾à¤•रीताचे कळ घटना. संपादन करीता उजवीकडील बटणावर कà¥à¤²à¤¿à¤• करा." #: ../modules/SetupUI/scim_frontend_setup.cpp:306 msgid "Options" msgstr "परà¥à¤¯à¤¾à¤¯" #: ../modules/SetupUI/scim_frontend_setup.cpp:321 msgid "_Keyboard Layout:" msgstr "कळफलकची मांडणी (_K):" #: ../modules/SetupUI/scim_frontend_setup.cpp:342 msgid "" "You should choose your currently used keyboard layout here so that input " "methods, who care about keyboard layout, could work correctly." msgstr "तà¥à¤®à¥à¤¹à¥€ सदà¥à¤¯à¤¾ वापरलेले कळफलक मांडणी निवडली पाहिजे जà¥à¤¯à¤¾à¤®à¥à¤³à¥‡ इंपà¥à¤Ÿ पधà¥à¤¦à¤¤à¥€, जे कळफलक मांडणीची काळजी घेतात, योगà¥à¤¯à¤°à¤¿à¤¤à¥à¤¯à¤¾ कारà¥à¤¯ करेल." #. On The Spot. #: ../modules/SetupUI/scim_frontend_setup.cpp:346 msgid "_Embed Preedit String into client window" msgstr "कà¥à¤²à¤¾à¤à¤‚ट चौकटीत Preedit अकà¥à¤·à¤°à¤®à¤¾à¤³à¤¾ अंतरà¥à¤­à¥‚त करा (_E)" #: ../modules/SetupUI/scim_frontend_setup.cpp:351 msgid "" "If this option is checked, the preedit string will be displayed directly in " "the client input window, rather than in a independent float window." msgstr "हा परà¥à¤¯à¤¾à¤¯ निवडलà¥à¤¯à¤¾à¤¸, कà¥à¤²à¤¾à¤à¤‚ट इंपà¥à¤Ÿ चौकटीत preedit अकà¥à¤·à¤°à¤®à¤¾à¤³à¤¾ सà¥à¤µà¤¤à¤‚तà¥à¤° फà¥à¤²à¥‹à¤Ÿ चौकट à¤à¤µà¤œà¥€ पà¥à¤°à¤¤à¥à¤¯à¤•à¥à¤·à¤°à¤¿à¤¤à¥à¤¯à¤¾ दरà¥à¤¶à¤µà¤¿à¤²à¥‡ जाईल." #. Shared input method. #: ../modules/SetupUI/scim_frontend_setup.cpp:360 msgid "_Share the same input method among all applications" msgstr "सरà¥à¤µ अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— अंतरà¥à¤—त समान इंपà¥à¤Ÿ पधà¥à¤¦à¤¤à¥€ सहभागीय करा (_S)" #: ../modules/SetupUI/scim_frontend_setup.cpp:365 msgid "" "If this option is checked, then only one input method could be used by all " "applications at the same time.Otherwise different input method could be used " "by each application." msgstr "हा परà¥à¤¯à¤¾à¤¯ निवडलà¥à¤¯à¤¾à¤¸, फकà¥à¤¤ à¤à¤• इंपà¥à¤Ÿ पधà¥à¤¦à¤¤à¥€ सरà¥à¤µ अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— दà¥à¤µà¤¾à¤°à¥‡ à¤à¤•ाच वेळी वापरले जाऊ शकते. किंवा पà¥à¤°à¤¤à¥à¤¯à¥‡à¤• अनà¥à¤ªà¥à¤°à¤¯à¥‹à¤— दà¥à¤µà¤¾à¤°à¥‡ विविध इंपà¥à¤Ÿ पधà¥à¤¦à¤¤à¥€ वापरले जाईल." #: ../modules/SetupUI/scim_frontend_setup.cpp:373 #: ../modules/SetupUI/scim_imengine_setup.cpp:453 msgid "Hotkeys" msgstr "हॉटकी" #: ../modules/SetupUI/scim_imengine_setup.cpp:93 msgid "You can enable/disable input methods and set hotkeys for input methods here." msgstr "तà¥à¤®à¥à¤¹à¥€ इंपà¥à¤Ÿ पधà¥à¤¦à¤¤à¥€ कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤/अकारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ करू शकता व हॉटकीची मांडणी येथे निशà¥à¤šà¤¿à¤¤ करू शकता." #: ../modules/SetupUI/scim_imengine_setup.cpp:296 msgid "The installed input method services:" msgstr "पà¥à¤°à¤¤à¤¿à¤·à¥à¤ à¤¾à¤ªà¥€à¤¤ इंपà¥à¤Ÿ पधà¥à¤¦à¤¤à¥€ सेवा:" #. Create hotkey and filter button before factory list view, because #. factory_list_selection_changed_callback may access these two buttons. #: ../modules/SetupUI/scim_imengine_setup.cpp:311 msgid "Edit _Hotkeys" msgstr "हॉटकी संपादीत करा (_H)" #: ../modules/SetupUI/scim_imengine_setup.cpp:320 msgid "Edit Hotkeys associated with the selected input method." msgstr "निवडलेलà¥à¤¯à¤¾ इंपà¥à¤Ÿ पधà¥à¤¦à¤¤à¥€à¤¶à¥€ संबंधीत हॉटकीचे संपादन करा." #: ../modules/SetupUI/scim_imengine_setup.cpp:322 msgid "Select _Filters" msgstr "फिलà¥à¤Ÿà¤° निवडा (_F)" #: ../modules/SetupUI/scim_imengine_setup.cpp:331 msgid "Select the Filters which will be attached to this input method." msgstr "या इंपà¥à¤Ÿ पधà¥à¤¦à¤¤à¥€à¤²à¤¾ जà¥à¤³à¤µà¤¿à¤£à¥à¤¯à¤¾à¤•रीताचे फिलà¥à¤Ÿà¤° निवडा." #: ../modules/SetupUI/scim_imengine_setup.cpp:348 msgid "_Expand" msgstr "वाढवा (_E)" #: ../modules/SetupUI/scim_imengine_setup.cpp:357 msgid "Expand all language categories." msgstr "सरà¥à¤µ भाषा शà¥à¤°à¥‡à¤£à¥€ विसà¥à¤¤à¤¾à¤°à¥€à¤¤ करा." #: ../modules/SetupUI/scim_imengine_setup.cpp:359 msgid "_Collapse" msgstr "नषà¥à¤Ÿ करा (_C)" #: ../modules/SetupUI/scim_imengine_setup.cpp:368 msgid "Collapse all language categories." msgstr "सरà¥à¤µ भाषा विभाग नषà¥à¤Ÿ करा." #: ../modules/SetupUI/scim_imengine_setup.cpp:370 msgid "E_nable All" msgstr "सरà¥à¤µ कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ करा (_n)" #: ../modules/SetupUI/scim_imengine_setup.cpp:379 msgid "Enable all input methods." msgstr "सरà¥à¤µ इंपà¥à¤Ÿ पधà¥à¤¦à¤¤à¥€ कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ करा." #: ../modules/SetupUI/scim_imengine_setup.cpp:381 msgid "_Disable All" msgstr "सरà¥à¤µ अकारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ करा (_D)" #: ../modules/SetupUI/scim_imengine_setup.cpp:390 msgid "Disable all input methods." msgstr "सरà¥à¤µ इंपà¥à¤Ÿ पधà¥à¤¦à¤¤à¥€ अकारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ करा." #: ../modules/SetupUI/scim_imengine_setup.cpp:414 #: ../modules/SetupUI/scim_imengine_setup.cpp:541 msgid "Name" msgstr "नाव" #: ../modules/SetupUI/scim_imengine_setup.cpp:432 #: ../modules/SetupUI/scim_imengine_setup.cpp:522 msgid "Enable" msgstr "कारà¥à¤¯à¤¾à¤¨à¥à¤µà¤¿à¤¤" #: ../modules/SetupUI/scim_imengine_setup.cpp:467 msgid "Filters" msgstr "गाळक" #: ../modules/SetupUI/scim_imengine_setup.cpp:560 msgid "Languages" msgstr "भाषा" #: ../modules/SetupUI/scim_imengine_setup.cpp:574 msgid "Description" msgstr "वरà¥à¤£à¤¨" #: ../modules/SetupUI/scim_imengine_setup.cpp:1190 #, c-format msgid "Edit Hotkeys for %s" msgstr "%s करीता हॉटकी संपादीत करा" #: ../modules/SetupUI/scim_imengine_setup.cpp:1417 #, c-format msgid "Select Filters for %s" msgstr "%s करीता फिलà¥à¤Ÿà¤° निवडा" #: ../modules/SetupUI/scim_imengine_setup.cpp:1450 msgid "Move _Up" msgstr "वर हलवा (_U)" #: ../modules/SetupUI/scim_imengine_setup.cpp:1457 msgid "Move _Down" msgstr "खाली हलवा (_D)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:95 msgid "GTK" msgstr "GTK" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:100 msgid "A panel daemon based on GTK+-2.x library." msgstr "GTK+-2.x लायबà¥à¤°à¤°à¥€ वर आधारीत पटà¥à¤Ÿà¤² डीमन." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:163 msgid "Always" msgstr "नेहमी" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:164 msgid "On demand" msgstr "मांगणी वरून" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:165 msgid "Never" msgstr "कधीच नाही" #. Create the ToolBar setup block. #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:211 msgid "ToolBar" msgstr "साधनपटà¥à¤Ÿà¥€" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:229 msgid "_Show:" msgstr "दरà¥à¤¶à¤µà¤¾ (_S):" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:245 msgid "Auto s_nap" msgstr "सà¥à¤µà¤¤à¤ƒà¤ªà¥à¤°à¤¤ घà¥à¤¯à¤¾ (_n)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:251 msgid "Show _input method icon" msgstr "इंपà¥à¤Ÿ पधà¥à¤¦à¤¤à¥€ चिनà¥à¤¹ दरà¥à¤¶à¤µà¤¾ (_i)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:257 msgid "Show inp_ut method name" msgstr "इंपà¥à¤Ÿ पधà¥à¤¦à¤¤à¥€ नाव दरà¥à¤¶à¤µà¤¾ (_u)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:269 msgid "Hide time_out:" msgstr "कालबाहà¥à¤¯à¤¤à¤¾ लपवा (_o):" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:282 msgid "Show s_tick icon" msgstr "चिकटाऊ चिनà¥à¤¹ दरà¥à¤¶à¤µà¤¾ (_t)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:288 msgid "Show m_enu icon" msgstr "मेनà¥à¤¯à¥ चिनà¥à¤¹ दरà¥à¤¶à¤µà¤¾ (_e)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:294 msgid "Show _help icon" msgstr "मदत चिनà¥à¤¹ दरà¥à¤¶à¤µà¤¾ (_h)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:300 msgid "Show _property label" msgstr "गà¥à¤£à¤§à¤°à¥à¤® लेबल दरà¥à¤¶à¤µà¤¾ (_p)" #. Create the Input Window setup block #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:311 msgid "Input window" msgstr "इंपà¥à¤Ÿ पधà¥à¤¦à¤¤à¥€" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:320 msgid "E_mbedded lookup table" msgstr "अंतरà¥à¤­à¥‚तीत लà¥à¤•अप टेबल" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:324 msgid "_Vertical lookup table" msgstr "उभे लà¥à¤•अप टेबल (_V)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:328 msgid "Misc" msgstr "मिशà¥à¤°" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:337 msgid "Show tra_y icon" msgstr "टà¥à¤°à¥‡ चिनà¥à¤¹ दरà¥à¤¶à¤µà¤¾ (_y)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:341 msgid "Stick _windows" msgstr "चौकट चिकटवा (_w)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:349 msgid "_Font:" msgstr "फॉनà¥à¤Ÿ (_F):" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:419 msgid "" "If option \"Always\" is selected, the toolbar will always be shown on the " "screen. If option \"On demand\" is selected, it will only be shown when SCIM " "is activated. If option \"Never\" is selected, it will never be shown." msgstr "परà¥à¤¯à¤¾à¤¯ \"नेहमी\" निवडलà¥à¤¯à¤¾à¤¸, साधनपटà¥à¤Ÿà¥€ नेहमी पडदà¥à¤¯à¤¾à¤µà¤° दरà¥à¤¶à¤µà¤¿à¤²à¥‡ जाईल. \"मांगणी वरून\" निवडलà¥à¤¯à¤¾à¤¸, फकà¥à¤¤ SCIM कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ असलà¥à¤¯à¤¾à¤µà¤°à¤š दरà¥à¤¶à¤µà¤¿à¤²à¥‡ जाईल. \" कधीच नाही\" निवडलà¥à¤¯à¤¾à¤¸, ते कधिही दरà¥à¤¶à¤µà¤¿à¤²à¥‡ जाणार नाही." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:426 msgid "If this option is checked, the toolbar will be snapped to the screen border." msgstr "हा परà¥à¤¯à¤¾à¤¯ निवडलà¥à¤¯à¤¾à¤¸, साधनपटà¥à¤Ÿà¥€à¤šà¥€ पà¥à¤°à¤¤à¤¿à¤•ृती पडदा किनà¥à¤¨à¤¾à¤° घेतली जाईल." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:431 msgid "" "The toolbar will be hidden out after this timeout is elapsed. This option is " "only valid when \"Always show\" is selected. Set to zero to disable this " "behavior." msgstr "कालबाहà¥à¤¯ à¤à¤¾à¤²à¥à¤¯à¤¾à¤¸ साधनपटà¥à¤Ÿà¥€ लपविले जाईल. हा परà¥à¤¯à¤¾à¤¯ \"नेहमी दरà¥à¤¶à¤µà¤¾\" निवडलà¥à¤¯à¤¾à¤µà¤°à¤š वैध असते. ही वागणूक अकारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤ करणà¥à¤¯à¤¾à¤•रीता शूनà¥à¤¯ करीता निशà¥à¤šà¤¿à¤¤ करा." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:438 msgid "" "If this option is checked, the input method icon will be showed on the " "toolbar." msgstr "हा परà¥à¤¯à¤¾à¤¯ निवडलà¥à¤¯à¤¾à¤¸, साधनपटà¥à¤Ÿà¥€à¤µà¤° इंपà¥à¤Ÿ पधà¥à¤¦à¤¤à¥€ चिनà¥à¤¹ दरà¥à¤¶à¤µà¤¿à¤²à¥‡ जाईल." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:442 msgid "" "If this option is checked, the input method name will be showed on the " "toolbar." msgstr "हा परà¥à¤¯à¤¾à¤¯ निवडलà¥à¤¯à¤¾à¤¸, साधनपटà¥à¤Ÿà¥€à¤µà¤° इंपà¥à¤Ÿ पधà¥à¤¦à¤¤à¥€ नाव दरà¥à¤¶à¤µà¤¿à¤²à¥‡ जाईल." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:446 msgid "If this option is checked, the stick icon will be showed on the toolbar." msgstr "हा परà¥à¤¯à¤¾à¤¯ निवडलà¥à¤¯à¤¾à¤¸, साधनपटà¥à¤Ÿà¥€à¤µà¤° चिकटवा चिनà¥à¤¹ दरà¥à¤¶à¤µà¤¿à¤²à¥‡ जाईल." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:450 msgid "If this option is checked, the menu icon will be showed on the toolbar." msgstr "हा परà¥à¤¯à¤¾à¤¯ निवडलà¥à¤¯à¤¾à¤¸, साधनपटà¥à¤Ÿà¥€à¤µà¤° मेनà¥à¤¯à¥ चिनà¥à¤¹ दरà¥à¤¶à¤µà¤¿à¤²à¥‡ जाईल." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:454 msgid "If this option is checked, the help icon will be showed on the toolbar." msgstr "हा परà¥à¤¯à¤¾à¤¯ निवडलà¥à¤¯à¤¾à¤¸, साधनपटà¥à¤Ÿà¥€à¤µà¤° मदत चिनà¥à¤¹ दरà¥à¤¶à¤µà¤¿à¤²à¥‡ जाईल." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:458 msgid "" "If this option is checked, the text label of input method properties will be " "showed on the toolbar." msgstr "हा परà¥à¤¯à¤¾à¤¯ निवडलà¥à¤¯à¤¾à¤¸, इंपà¥à¤Ÿ पधà¥à¤¦à¤¤à¥€ गà¥à¤£à¤§à¤°à¥à¤®à¤¾à¤šà¥‡ पाठà¥à¤¯ लेबल साधनपटà¥à¤Ÿà¥€à¤¤ दरà¥à¤¶à¤µà¤¿à¤²à¥‡ जाईल." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:462 msgid "" "If this option is checked, the lookup table will be embedded into the input " "window." msgstr "हा परà¥à¤¯à¤¾à¤¯ निवडलà¥à¤¯à¤¾à¤¸, लà¥à¤•अप टेबल इंपॠचौकटीत अंतरà¥à¤­à¥‚त केले जाईल." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:467 msgid "If this option is checked, the lookup table will be displayed vertically." msgstr "हा परà¥à¤¯à¤¾à¤¯ निवडलà¥à¤¯à¤¾à¤¸, लà¥à¤•अप टेबल उभà¥à¤¯à¤¾à¤°à¤¿à¤¤à¥à¤¯à¤¾ दरà¥à¤¶à¤µà¤¿à¤²à¥‡ जाईल." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:472 msgid "" "If this option is checked, the tray icon will be showed on the desktop's " "taskbar." msgstr "हा परà¥à¤¯à¤¾à¤¯ तपसाले असलà¥à¤¯à¤¾à¤¸, टà¥à¤°à¥‡ चिनà¥à¤¹ डेसà¥à¤•टॉप कारà¥à¤¯à¤ªà¤Ÿà¥à¤Ÿà¥€à¤µà¤° चिकटविले जाईल." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:476 msgid "" "If this option is checked, the toolbar, input and lookup table windows will " "be sticked to its original position." msgstr "हे परà¥à¤¯à¤¾à¤¯ निवडलà¥à¤¯à¤¾à¤¸, साधनपटà¥à¤Ÿà¥€, इंपà¥à¤Ÿ व लà¥à¤•अप टेबल चौकट मà¥à¤³ सà¥à¤¥à¤¿à¤¤à¥€ करीताच जोडले जाईल." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:482 msgid "The font setting will be used in the input and lookup table windows." msgstr "इंपà¥à¤Ÿ व लà¥à¤•अप टेबल चौकट मधà¥à¤¯à¥‡ फॉनà¥à¤Ÿ संयोजना वापरले जाईल." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:801 msgid "Select Interface Font" msgstr "संवाद फॉनà¥à¤Ÿ निवडा" #: ../extras/setup/scim_setup_ui.cpp:47 msgid "SCIM" msgstr "SCIM" #: ../extras/setup/scim_setup_ui.cpp:48 msgid "FrontEnd" msgstr "पृषà¥à¤ à¤¦à¥ƒà¤¶à¥à¤¯" #: ../extras/setup/scim_setup_ui.cpp:49 msgid "IMEngine" msgstr "IMEngine" #: ../extras/setup/scim_setup_ui.cpp:50 msgid "Panel" msgstr "पटल" #: ../extras/setup/scim_setup_ui.cpp:51 msgid "Extra" msgstr "अगाऊ" #. #. vi:ts=4:nowrap:ai:expandtab #. #: ../extras/setup/scim_setup_ui.cpp:230 #: ../extras/setup/scim-setup.desktop.in.h:1 msgid "SCIM Input Method Setup" msgstr "SCIM इंपà¥à¤Ÿ पधà¥à¤¦à¤¤à¥€ मांडणी" #: ../extras/setup/scim_setup_ui.cpp:369 msgid "" " Smart Common Input Method platform \n" "\n" "GUI Setup Utility\n" "\n" "\n" "\n" "Copyright 2002-2004, James Su <suzhe@tsinghua.org." "cn>" msgstr "" " Smart Common Input Method पà¥à¤²à¥…टफॉरà¥à¤® \n" "\n" "GUI मांडणी उपकारà¥à¤¯à¤•à¥à¤°à¤®\n" "\n" "\n" "\n" "पà¥à¤°à¤¤à¤¿à¤•ृती अधिकार 2002-2004, James Su <suzhe@tsinghua.org." "cn>" #: ../extras/setup/scim_setup_ui.cpp:394 #, c-format msgid "The Setup for %s modules." msgstr "%s विभाग करीता मांडणी." #: ../extras/setup/scim_setup_ui.cpp:456 msgid "Are you sure you want to quit SCIM Setup?" msgstr "तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ नकà¥à¤•ी SCIM मांडणी मधून बाहेर पडायचे?" #: ../extras/setup/scim_setup_ui.cpp:685 msgid "" "Not all configuration can be reloaded on the fly. Don't forget to restart " "SCIM in order to let all of the new configuration take effect." msgstr "सरà¥à¤µ संयोजना पà¥à¤¨à¥à¤¹ दाखल केले जाऊ शकत नाही. नविन संयोजनाचा पà¥à¤°à¤­à¤¾à¤µ पडणà¥à¤¯à¤¾à¤•रीता SCIM पà¥à¤¨à¥à¤¹à¤¾ सà¥à¤°à¥‚ करायला विसरू नका." #: ../extras/setup/scim_setup_helper.cpp:49 msgid "SCIM Setup" msgstr "SCIM मांडणी" #: ../extras/setup/scim_setup_helper.cpp:51 msgid "Integrated Setup Utility based on GTK Widget library." msgstr "GTK विजेट लायबà¥à¤°à¤°à¥€à¤µà¤° आधारीत à¤à¤•ागà¥à¤° मांडणी उपकारà¥à¤¯à¤•à¥à¤°à¤®." #: ../extras/setup/scim-setup.desktop.in.h:2 msgid "Setup utility for Smart Common Input Method platform" msgstr "Smart Common Input Method पà¥à¤²à¥…टफारà¥à¤® करीता मांडणी" #: ../extras/panel/scim_panel_gtk.cpp:982 msgid "SCIM Help" msgstr "SCIM मदत" #: ../extras/panel/scim_panel_gtk.cpp:999 msgid "Smart Common Input Method" msgstr "Smart Common Input Method" #: ../extras/panel/scim_panel_gtk.cpp:1058 msgid "Stick/unstick the input window and the toolbar." msgstr "इंपà¥à¤Ÿ चौकट व साधपटà¥à¤Ÿà¥€ जोडा/जोडू नका." #: ../extras/panel/scim_panel_gtk.cpp:1063 msgid "Show a brief help about SCIM and the current input method." msgstr "SCIM व सदà¥à¤¯à¤¾à¤šà¥‡ इंपà¥à¤Ÿ पधà¥à¤¦à¤¤à¥€ विषयी मदत दरà¥à¤¶à¤µà¤¾." #: ../extras/panel/scim_panel_gtk.cpp:1068 msgid "Show command menu." msgstr "आदेश मेनà¥à¤¯à¥ दरà¥à¤¶à¤µà¤¾." #: ../extras/panel/scim_panel_gtk.cpp:2306 msgid "" "\n" "(C) 2002-2005 James Su " msgstr "" "\n" "(C) 2002-2005 James Su " #. Reload Configuration. #: ../extras/panel/scim_panel_gtk.cpp:2385 msgid "Reload Configuration" msgstr "संयोजना पà¥à¤¨à¥à¤¹à¤¦à¤¾à¤–ल करा" #. Stick #: ../extras/panel/scim_panel_gtk.cpp:2395 msgid "Stick Windows" msgstr "चौकट चिकटवा" #. Toolbar #: ../extras/panel/scim_panel_gtk.cpp:2404 msgid "Hide Toolbar" msgstr "साधनपटà¥à¤Ÿà¥€ लपवा" #. Help #: ../extras/panel/scim_panel_gtk.cpp:2413 msgid "Help ..." msgstr "मदत ..." #. Clients exit. #: ../extras/panel/scim_panel_gtk.cpp:2431 msgid "Exit" msgstr "बाहेर पडा" #: ../utils/scimstringview.c:196 msgid "Cursor Position" msgstr "करà¥à¤¸à¤°à¤šà¥€ जागा" #: ../utils/scimstringview.c:197 msgid "The current position of the insertion cursor in chars." msgstr "अकà¥à¤·à¤°à¤¾à¤‚मधà¥à¤¯à¥‡ पà¥à¤°à¤¦à¤¶à¥€à¤¤ करà¥à¤¸à¤°à¤šà¥€ वरà¥à¤¤à¤®à¤¾à¤¨ सà¥à¤¥à¤¿à¤¤à¥€." #: ../utils/scimstringview.c:206 msgid "Maximum length" msgstr "कमाल लांबी" #: ../utils/scimstringview.c:207 msgid "Maximum number of characters for this string view. Zero if no maximum." msgstr "या अकà¥à¤·à¤°à¤®à¤¾à¤³à¤¾ दृशà¥à¤¯ करीता कमाल अकà¥à¤·à¤¾à¤°à¤¾à¤‚ची संखà¥à¤¯à¤¾. कमाल नसलà¥à¤¯à¤¾à¤¸ शूनà¥à¤¯." #: ../utils/scimstringview.c:216 msgid "Maximum width" msgstr "कमाल रूंदी" #: ../utils/scimstringview.c:217 msgid "Maximum width of this string view." msgstr "या अकà¥à¤·à¤°à¤®à¤¾à¤³à¤¾ दृशà¥à¤¯à¤¾à¤šà¥€ कमाल रूंदी." #: ../utils/scimstringview.c:226 msgid "Has Frame" msgstr "चौकट आहे" #: ../utils/scimstringview.c:227 msgid "FALSE removes outside bevel from string view." msgstr "खोटे अकà¥à¤·à¤° दृशà¥à¤¯ पासून बाहेरील bevel काढूण टाकतो." #: ../utils/scimstringview.c:234 msgid "Draw cursor" msgstr "करà¥à¤¸à¤° रेखाटा" #: ../utils/scimstringview.c:235 msgid "TRUE draw blinking cursor." msgstr "खरे असलà¥à¤¯à¤¾à¤¸ लà¥à¤•लà¥à¤•णारे करà¥à¤¸à¤° रेखाटतो." #: ../utils/scimstringview.c:242 msgid "Auto move cursor" msgstr "सà¥à¤µà¤°à¤¿à¤¤à¥à¤¯à¤¾ हालणारा करà¥à¤¸à¤°" #: ../utils/scimstringview.c:243 msgid "TRUE auto move cursor position when mouse clicking." msgstr "खरे असलà¥à¤¯à¤¾à¤¸ माउस किलà¥à¤• करतेवेळी करà¥à¤¸à¤°à¤šà¥€ जागा हलवा." #: ../utils/scimstringview.c:250 msgid "Forward button press event" msgstr "पà¥à¤¢à¥‡ जा बटण दाबलà¥à¤¯à¤¾à¤µà¤°à¤¤à¥€à¤šà¥€ घटना" #: ../utils/scimstringview.c:251 msgid "TRUE forward button press event to user program." msgstr "खरे असलà¥à¤¯à¤¾à¤¸ वापरकरà¥à¤¤à¤¾ कारà¥à¤¯à¤•à¥à¤°à¤®à¤¾à¤¸ पà¥à¤¢à¥‡ जा बटण दाब घटना कारà¥à¤¯à¤¨à¥à¤µà¥€à¤¤ करा." #: ../utils/scimstringview.c:258 msgid "Auto resize the widget to fit the string" msgstr "अकà¥à¤·à¤°à¤®à¤¾à¤³à¤¾ घटà¥à¤Ÿ बसविणà¥à¤¯à¤¾à¤•रीता सà¥à¤µà¤¤: विजेटला पà¥à¤¨à¥à¤¹ आकार दà¥à¤¯à¤¾" #: ../utils/scimstringview.c:259 msgid "TRUE Auto resize on." msgstr "खरे सà¥à¤µ आकार बदलवा कारà¥à¤¯à¤¾à¤¨à¥à¤µà¥€à¤¤." #: ../utils/scimstringview.c:266 msgid "Width in chars" msgstr "अकà¥à¤·à¤°à¤®à¤¾à¤²à¥‡à¤šà¥€ लांबी" #: ../utils/scimstringview.c:267 msgid "Number of characters to leave space for in the string view." msgstr "अकà¥à¤·à¤°à¤®à¤¾à¤³à¤¾ दृशà¥à¤¯ करीता अकà¥à¤·à¤°à¤•रीता जागा सोडा." #: ../utils/scimstringview.c:276 msgid "Scroll offset" msgstr "सà¥à¤•à¥à¤°à¥‹à¤² ओफसेट" #: ../utils/scimstringview.c:277 msgid "Number of pixels of the string view scrolled off the screen to the left" msgstr "अकà¥à¤·à¤°à¤®à¤¾à¤³à¤¾ दृशà¥à¤¯ मधील à¤à¤•ूण पीकà¥à¤¸à¥‡à¤² पडदà¥à¤¯à¤¾à¤¸ डावीकडे हलवीले" #: ../utils/scimstringview.c:286 msgid "Text" msgstr "पाठà¥à¤¯" #: ../utils/scimstringview.c:287 msgid "The contents of the string view" msgstr "अकà¥à¤·à¤°à¤®à¤¾à¤³à¤¾à¤šà¥‡ अनà¥à¤•à¥à¤°à¤® पहा" #: ../utils/scimkeyselection.cpp:155 msgid "Selected _Keys:" msgstr "निवडलेलà¥à¤¯à¤¾ कळ (_K):" #: ../utils/scimkeyselection.cpp:200 msgid "Key Code:" msgstr "कळ कोड:" #: ../utils/scimkeyselection.cpp:218 msgid "..." msgstr " ..." #: ../utils/scimkeyselection.cpp:223 msgid "Modifiers:" msgstr "संपादक:" #: ../utils/scimkeyselection.cpp:236 msgid "_Ctrl" msgstr "Ctrl (_C)" #: ../utils/scimkeyselection.cpp:240 msgid "A_lt" msgstr "Alt (_l)" #: ../utils/scimkeyselection.cpp:244 msgid "_Shift" msgstr "Shift (_S)" #: ../utils/scimkeyselection.cpp:248 msgid "_Release" msgstr "पà¥à¤°à¤•ाशन (_R)" #: ../utils/scimkeyselection.cpp:258 msgid "_Meta" msgstr "मेटा" #: ../utils/scimkeyselection.cpp:262 msgid "S_uper" msgstr "उचà¥à¤š (_u)" #: ../utils/scimkeyselection.cpp:266 msgid "_Hyper" msgstr "हायपर (_H)" #: ../utils/scimkeyselection.cpp:331 msgid "Please enter a Key Code first." msgstr "कृपया पहिले की कोड पà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿ करा." #: ../utils/scimkeyselection.cpp:385 msgid "" "Press a key (or a key combination).\n" "This dialog will be closed when the key is released." msgstr "" "कळ (किंवा कळ पà¥à¤°à¤•ार दाबा).\n" "हा संवाद कळ सोडलà¥à¤¯à¤¾à¤µà¤° बंद केला जाईल." #: ../utils/scimkeyselection.cpp:388 msgid "Grabbing a key." msgstr "कळ ओढा." #: ../utils/scimkeyselection.cpp:678 msgid "Key Selection" msgstr "कळ निवड" #: ../utils/scimtrayicon.c:108 msgid "Orientation" msgstr "दिशा" #: ../utils/scimtrayicon.c:109 msgid "The orientation of the tray." msgstr "टà¥à¤°à¥‡ ची दिशा." scim-1.4.14/po/nl.po000066400000000000000000001077601177210725600141460ustar00rootroot00000000000000# translation of nl.po to Nederlands # Ronald Stroethoff , 2007, 2008. # Copyright (C) Ronald Stroethoffi , 2007. # This file is distributed under the same license as the scim package. msgid "" msgstr "" "Project-Id-Version: nl\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-06-22 11:40-0700\n" "PO-Revision-Date: 2008-11-01 06:17+0100\n" "Last-Translator: Ronald Stroethoff \n" "Language-Team: Nederlands\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: KBabel 1.11.4\n" #: ../src/scim_compose_key.cpp:126 msgid "English/European" msgstr "Nederlands/Europeesch" #. Append an entry for forward mode. #: ../src/scim_imengine.cpp:638 ../src/scim_utility.cpp:693 #: ../modules/FrontEnd/scim_x11_frontend.cpp:1897 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1281 #: ../extras/panel/scim_panel_gtk.cpp:2814 msgid "English/Keyboard" msgstr "Nederlands/toetsenbord" #: ../src/scim_utility.cpp:694 msgid "Amharic" msgstr "Amhaars" #: ../src/scim_utility.cpp:695 msgid "Arabic" msgstr "Arabisch" #: ../src/scim_utility.cpp:696 msgid "Arabic (Egypt)" msgstr "Arabisch (Egyptisch)" #: ../src/scim_utility.cpp:697 msgid "Arabic (Lebanon)" msgstr "Arabisch (Libanees)" #: ../src/scim_utility.cpp:698 msgid "Assamese" msgstr "Assamitisch" #: ../src/scim_utility.cpp:699 msgid "Azerbaijani" msgstr "Azerbeidzjaans" #: ../src/scim_utility.cpp:700 msgid "Belarusian" msgstr "Witrussisch" #: ../src/scim_utility.cpp:701 msgid "Bulgarian" msgstr "Bulgaars" #: ../src/scim_utility.cpp:702 ../src/scim_utility.cpp:703 msgid "Bengali" msgstr "Bengaals" #: ../src/scim_utility.cpp:704 msgid "Bengali (India)" msgstr "Bengaals (India)" #: ../src/scim_utility.cpp:705 msgid "Tibetan" msgstr "Tibetaans" #: ../src/scim_utility.cpp:706 msgid "Bosnian" msgstr "Bosnisch" #: ../src/scim_utility.cpp:707 msgid "Catalan" msgstr "Catalaans" #: ../src/scim_utility.cpp:708 ../src/scim_keyboard_layout_data.h:4595 msgid "Czech" msgstr "Tschechisch" #: ../src/scim_utility.cpp:709 msgid "Welsh" msgstr "Welsh" #: ../src/scim_utility.cpp:710 ../src/scim_keyboard_layout_data.h:4597 msgid "Danish" msgstr "Deens" #: ../src/scim_utility.cpp:711 ../src/scim_keyboard_layout_data.h:4605 msgid "German" msgstr "Duits" #: ../src/scim_utility.cpp:712 msgid "Divehi" msgstr "Divehi" #: ../src/scim_utility.cpp:713 ../src/scim_keyboard_layout_data.h:4608 msgid "Greek" msgstr "Grieks" #: ../src/scim_utility.cpp:714 msgid "English" msgstr "Engels" #: ../src/scim_utility.cpp:715 msgid "English (Australian)" msgstr "Engels (Australie)" #: ../src/scim_utility.cpp:716 msgid "English (Canadian)" msgstr "Engels (Canada)" #: ../src/scim_utility.cpp:717 msgid "English (British)" msgstr "Engels (Groot Britannie)" #: ../src/scim_utility.cpp:718 msgid "English (Ireland)" msgstr "Engels (Ierland)" #: ../src/scim_utility.cpp:719 msgid "English (American)" msgstr "Engels (USA)" #: ../src/scim_utility.cpp:720 ../src/scim_utility.cpp:721 #: ../src/scim_keyboard_layout_data.h:4621 msgid "Spanish" msgstr "Spaans" #: ../src/scim_utility.cpp:722 msgid "Spanish (Mexico)" msgstr "Spaans (Mexico)" #: ../src/scim_utility.cpp:723 ../src/scim_keyboard_layout_data.h:4600 msgid "Estonian" msgstr "Estlands" #: ../src/scim_utility.cpp:724 msgid "Basque" msgstr "Baskisch" #: ../src/scim_utility.cpp:725 msgid "Persian" msgstr "Perzisch" #: ../src/scim_utility.cpp:726 ../src/scim_keyboard_layout_data.h:4601 msgid "Finnish" msgstr "Fins" #: ../src/scim_utility.cpp:727 ../src/scim_keyboard_layout_data.h:4602 msgid "French" msgstr "Frans" #: ../src/scim_utility.cpp:728 msgid "Irish" msgstr "Iers" #: ../src/scim_utility.cpp:729 msgid "Galician" msgstr "Galicisch" #: ../src/scim_utility.cpp:730 msgid "Gujarati" msgstr "Gujarati" #: ../src/scim_utility.cpp:731 ../src/scim_utility.cpp:740 msgid "Hebrew" msgstr "Hebreeuws" #: ../src/scim_utility.cpp:732 msgid "Hindi" msgstr "Hindi" #: ../src/scim_utility.cpp:733 ../src/scim_keyboard_layout_data.h:4594 msgid "Croatian" msgstr "Kroatisch" #: ../src/scim_utility.cpp:734 ../src/scim_keyboard_layout_data.h:4609 msgid "Hungarian" msgstr "Hongaars" #: ../src/scim_utility.cpp:735 msgid "Armenian" msgstr "Armeens" #: ../src/scim_utility.cpp:736 msgid "Interlingua" msgstr "Interlingua" #: ../src/scim_utility.cpp:737 msgid "Indonesian" msgstr "Indonesisch" #: ../src/scim_utility.cpp:738 ../src/scim_keyboard_layout_data.h:4627 msgid "Icelandic" msgstr "IJslands" #: ../src/scim_utility.cpp:739 ../src/scim_keyboard_layout_data.h:4610 msgid "Italian" msgstr "Italiaans" #: ../src/scim_utility.cpp:741 ../src/scim_keyboard_layout_data.h:4611 msgid "Japanese" msgstr "Japans" #: ../src/scim_utility.cpp:742 msgid "Georgian" msgstr "Georgisch" #: ../src/scim_utility.cpp:743 msgid "Kazakh" msgstr "Kazachs" #: ../src/scim_utility.cpp:744 msgid "Cambodian" msgstr "Cambojaans" #: ../src/scim_utility.cpp:745 msgid "Kannada" msgstr "Kannada" #: ../src/scim_utility.cpp:746 msgid "Korean" msgstr "Koreaans" #: ../src/scim_utility.cpp:747 msgid "Laothian" msgstr "Laothian" #: ../src/scim_utility.cpp:748 ../src/scim_keyboard_layout_data.h:4628 msgid "Lithuanian" msgstr "Litouws" #: ../src/scim_utility.cpp:749 msgid "Latvian" msgstr "Lets" #: ../src/scim_utility.cpp:750 msgid "Macedonian" msgstr "Macedonisch" #: ../src/scim_utility.cpp:751 msgid "Malayalam" msgstr "Malayalam" #: ../src/scim_utility.cpp:752 msgid "Mongolian" msgstr "Mongools" #: ../src/scim_utility.cpp:753 msgid "Marathi" msgstr "Marathi" #: ../src/scim_utility.cpp:754 msgid "Malay" msgstr "Maleis" #: ../src/scim_utility.cpp:755 msgid "Burmese" msgstr "Birmaans" #: ../src/scim_utility.cpp:756 msgid "Nepali" msgstr "Nepalees" #: ../src/scim_utility.cpp:757 ../src/scim_keyboard_layout_data.h:4598 msgid "Dutch" msgstr "Nederlands" #: ../src/scim_utility.cpp:758 msgid "Norwegian (nynorsk)" msgstr "Noors (Nynorsk)" #: ../src/scim_utility.cpp:759 msgid "Norwegian (bokmal)" msgstr "Noors (Bokmal)" #: ../src/scim_utility.cpp:760 msgid "Oriya" msgstr "Oriya" #: ../src/scim_utility.cpp:761 msgid "Punjabi" msgstr "Punjabi" #: ../src/scim_utility.cpp:762 ../src/scim_keyboard_layout_data.h:4613 msgid "Polish" msgstr "Pools" #: ../src/scim_utility.cpp:763 ../src/scim_utility.cpp:765 #: ../src/scim_keyboard_layout_data.h:4614 msgid "Portuguese" msgstr "Portugees" #: ../src/scim_utility.cpp:764 ../src/scim_keyboard_layout_data.h:4615 msgid "Portuguese (Brazil)" msgstr "Portugees (Brazilie)" #: ../src/scim_utility.cpp:766 msgid "Romanian" msgstr "Roemeens" #: ../src/scim_utility.cpp:767 ../src/scim_keyboard_layout_data.h:4617 msgid "Russian" msgstr "Russisch" #: ../src/scim_utility.cpp:768 msgid "Sinhala" msgstr "Singalees" #: ../src/scim_utility.cpp:769 ../src/scim_keyboard_layout_data.h:4618 msgid "Slovak" msgstr "Slowaaks" #: ../src/scim_utility.cpp:770 ../src/scim_keyboard_layout_data.h:4620 msgid "Slovenian" msgstr "Sloveens" #: ../src/scim_utility.cpp:771 msgid "Albanian" msgstr "Albanees" #: ../src/scim_utility.cpp:772 ../src/scim_utility.cpp:773 #: ../src/scim_utility.cpp:774 msgid "Serbian" msgstr "Servisch" #: ../src/scim_utility.cpp:775 ../src/scim_utility.cpp:777 #: ../src/scim_keyboard_layout_data.h:4624 msgid "Swedish" msgstr "Zweeds" #: ../src/scim_utility.cpp:776 msgid "Swedish (Finland)" msgstr "Zweeds (Finland)" #: ../src/scim_utility.cpp:778 msgid "Tamil" msgstr "Tamil" #: ../src/scim_utility.cpp:779 msgid "Telugu" msgstr "Telugu" #: ../src/scim_utility.cpp:780 msgid "Thai" msgstr "Thais" #: ../src/scim_utility.cpp:781 ../src/scim_keyboard_layout_data.h:4625 msgid "Turkish" msgstr "Turks" #: ../src/scim_utility.cpp:782 msgid "Uighur" msgstr "Oeigoers" #: ../src/scim_utility.cpp:783 ../src/scim_keyboard_layout_data.h:4629 msgid "Ukrainian" msgstr "Oekraïens" #: ../src/scim_utility.cpp:784 msgid "Urdu" msgstr "Urdu" #: ../src/scim_utility.cpp:785 msgid "Uzbek" msgstr "Oezbeeks" #: ../src/scim_utility.cpp:786 msgid "Vietnamese" msgstr "Vietnamees" #: ../src/scim_utility.cpp:787 msgid "Walloon" msgstr "Waals" #: ../src/scim_utility.cpp:788 ../src/scim_utility.cpp:789 msgid "Yiddish" msgstr "Jiddisch" #: ../src/scim_utility.cpp:790 msgid "Chinese" msgstr "Chinees" #: ../src/scim_utility.cpp:791 ../src/scim_utility.cpp:793 msgid "Chinese (simplified)" msgstr "Chinees (versimpeld)" #: ../src/scim_utility.cpp:792 ../src/scim_utility.cpp:794 msgid "Chinese (traditional)" msgstr "Chinees (traditioneell)" #: ../src/scim_utility.cpp:876 msgid "Other" msgstr "Overige" #: ../src/scim_keyboard_layout_data.h:4591 #: ../modules/IMEngine/scim_socket_imengine.cpp:386 #: ../modules/IMEngine/scim_socket_imengine.cpp:416 #: ../modules/IMEngine/scim_socket_imengine.cpp:501 #: ../modules/IMEngine/scim_socket_imengine.cpp:531 #: ../modules/IMEngine/scim_socket_imengine.cpp:561 msgid "Unknown" msgstr "Onbekend" #: ../src/scim_keyboard_layout_data.h:4592 msgid "English (US)" msgstr "Engels (US)" #: ../src/scim_keyboard_layout_data.h:4593 msgid "Belgian" msgstr "Belgisch" #: ../src/scim_keyboard_layout_data.h:4596 msgid "Czech (qwerty)" msgstr "Tsjechisch (qwerty)" #: ../src/scim_keyboard_layout_data.h:4599 msgid "Dvorak" msgstr "Dvorak" #: ../src/scim_keyboard_layout_data.h:4603 msgid "French (Canadian)" msgstr "Frans (Canada)" #: ../src/scim_keyboard_layout_data.h:4604 msgid "French (Switzerland)" msgstr "Frans (Schwitsers) " #: ../src/scim_keyboard_layout_data.h:4606 msgid "German (with deadkeys)" msgstr "Duits (met deadkeys)" #: ../src/scim_keyboard_layout_data.h:4607 msgid "German (Swiss)" msgstr "Duits (Schwitsers)" #: ../src/scim_keyboard_layout_data.h:4612 msgid "Norwegian" msgstr "Noors" #: ../src/scim_keyboard_layout_data.h:4616 msgid "Portuguese (Brazil US accents)" msgstr "Portugees (Brazilie, US, accent)" #: ../src/scim_keyboard_layout_data.h:4619 msgid "Slovak (qwerty)" msgstr "Slowaaks (qwerty)" #: ../src/scim_keyboard_layout_data.h:4622 msgid "Spanish (CP 850)" msgstr "Spaans (CP 850)" #: ../src/scim_keyboard_layout_data.h:4623 msgid "Spanish (Latin America)" msgstr "Spaans (Latijns Amerika)" #: ../src/scim_keyboard_layout_data.h:4626 msgid "English (UK)" msgstr "Engels (UK)" #: ../modules/Filter/scim_sctc_filter.cpp:57 msgid "Simplified-Traditional Chinese Conversion" msgstr "Omzetten versimpeld/traditioneel Chinees" #: ../modules/Filter/scim_sctc_filter.cpp:60 msgid "Convert between Simplified Chinese and Traditional Chinese" msgstr "Versimpeld naar traditioneel Chinees omzetten en omgekeert." #: ../modules/Filter/scim_sctc_filter.cpp:71 #, fuzzy msgid "SC-TC" msgstr "VC-TC" #: ../modules/Filter/scim_sctc_filter.cpp:73 #: ../modules/Filter/scim_sctc_filter.cpp:78 msgid "Simplified-Traditional Chinese conversion" msgstr "Omzetting versimpeld naar traditioneel Chinees" #: ../modules/Filter/scim_sctc_filter.cpp:76 msgid "No Conversion" msgstr "Geen omzetting" #: ../modules/Filter/scim_sctc_filter.cpp:81 msgid "Simplified to Traditional" msgstr "Versimpeld naar traditioneel" #: ../modules/Filter/scim_sctc_filter.cpp:83 msgid "Convert Simplified Chinese to Traditional Chinese" msgstr "Versimpeld Chinees naar triditioneel Chinees omzetten" #: ../modules/Filter/scim_sctc_filter.cpp:86 msgid "Traditional to Simplified" msgstr "Traditioneel naar versimpeld" #: ../modules/Filter/scim_sctc_filter.cpp:88 msgid "Convert Traditional Chinese to Simplified Chinese" msgstr "Traditioneel Chinees naar versimpeld Chinees omzetten" #: ../modules/Filter/scim_sctc_filter.cpp:300 msgid "James Su " msgstr "James Su " #: ../modules/Filter/scim_sctc_filter.cpp:425 #: ../modules/Filter/scim_sctc_filter.cpp:555 #: ../modules/Filter/scim_sctc_filter.cpp:571 msgid "SC->TC" msgstr "VC->TC" #: ../modules/Filter/scim_sctc_filter.cpp:431 #: ../modules/Filter/scim_sctc_filter.cpp:559 #: ../modules/Filter/scim_sctc_filter.cpp:575 msgid "TC->SC" msgstr "TC->VC" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1845 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1231 #: ../extras/panel/scim_panel_gtk.cpp:2304 msgid "Smart Common Input Method platform " msgstr "Smart Common Invoer-methode Plattform " #: ../modules/FrontEnd/scim_x11_frontend.cpp:1847 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1233 msgid "" "\n" "(C) 2002-2005 James Su \n" "\n" msgstr "" "\n" "(c) 2002-2005 James Su \n" "\n" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1851 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1238 msgid "" ":\n" "\n" msgstr "" ":\n" "\n" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1854 #: ../modules/FrontEnd/scim_x11_frontend.cpp:1857 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1241 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1244 msgid "" "\n" "\n" msgstr "" "\n" "\n" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:120 #, fuzzy msgid "RAW CODE" msgstr "Unicode RAW CODE" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:127 msgid "(C) 2002-2006 James Su " msgstr "(c) 2002-2006 James Su " #: ../modules/IMEngine/scim_rawcode_imengine.cpp:140 msgid "" "Hot Keys:\n" "\n" " Control+u:\n" " switch between Multibyte encoding and Unicode.\n" "\n" " Esc:\n" " reset the input method.\n" msgstr "" "Sneltoetsen:\n" "\n" " Control+u:\n" " Omschakelen tussen Multibyte-Codering en Unicode.\n" "\n" " Esc:\n" " Invoer-methode terug zetten.\n" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:407 #: ../modules/IMEngine/scim_rawcode_imengine.cpp:423 msgid "The status of the current input method. Click to change it." msgstr "De status van de huidige invoer-methode. Klik op deze om het te veranderen." #: ../modules/IMEngine/scim_rawcode_imengine.cpp:409 msgid "Unicode" msgstr "Unicode" #: ../modules/SetupUI/scim_frontend_setup.cpp:82 #: ../modules/SetupUI/scim_imengine_setup.cpp:88 msgid "Global Setup" msgstr "Algemene instellingen" #: ../modules/SetupUI/scim_frontend_setup.cpp:87 msgid "" "Setup the global options used by All FrontEnd modules, including X11 " "FrontEnd, GTK IMModule, QT IMModule etc." msgstr "" "Algemene instellingen die door alle FrontEnd-modules gebruikt worden, " "inclusief de X11 FrontEnd, GKT IMModule, QT IMModule, enz." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:143 #, fuzzy msgid "_Trigger:" msgstr "_Trigger:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:145 msgid "Select the trigger keys" msgstr "Trigger-toetsen kiezen" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:147 msgid "" "The key events to turn on/off SCIM input method. Click on the button on the " "right to edit it." msgstr "" "Toets-combinaties, waarmee de SCIM-invoer-methode wordt IN- en UIT-" "geschakeld. Om dit te veranderen, klik op de rechterknop." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:160 msgid "Turn _On:" msgstr "_Inschakelen:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:162 msgid "Select the Turn On keys" msgstr "Kies de inschakel toets." #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:164 msgid "" "The key events to turn on SCIM input method. Click on the button on the " "right to edit it." msgstr "" "Toetscombinatie om de invoer-methode SCIM inteschakelen.Klik op de " "rechterknop om te veranderen." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:177 msgid "Turn O_ff:" msgstr "U_itschakelen" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:179 msgid "Select the Turn Off keys" msgstr "UIT-schakeltoetsen uitkiezen" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:181 msgid "" "The key events to turn off SCIM input method. Click on the button on the " "right to edit it." msgstr "" "Toetscombinatie waarmee de invoer-methode SCIM uitgeschakeld wordt. Klik op " "de rechterknop om te veranderen." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:194 msgid "_Next input method:" msgstr "_Volgende invoer-methode:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:196 msgid "Select the next input method keys" msgstr "Kies een toetscombinatie om naar de volgende invoer-methode te gaan." #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:198 msgid "" "The key events to switch to the next input method. Click on the button on " "the right to edit it." msgstr "" "Met deze toetscombinatie, gaat men naar de volgende invoer-methode. klik op " "de rechterknop om te veranderen." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:213 msgid "_Previous input method:" msgstr "_Vorige invoer-methode:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:215 msgid "Select the previous input method keys" msgstr "Kies de toetscombinatie om naar de vorige invoer-methode te gaan" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:217 msgid "" "The key events to switch to the previous input method. Click on the button " "on the right to edit it." msgstr "" "Met deze toetscombinatie gaat men naar de vorige invoer-methode. Klik op de " "rechterknop om te veranderen." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:232 msgid "Show input method _menu:" msgstr "Toon het keuze-menu voor invoer-methoden:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:234 msgid "Select the show input method menu keys" msgstr "Kies de toetsen voor het tonen van het invoer-methode kies-menu" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:236 msgid "" "The key events to show the input method menu. Click on the button on the " "right to edit it." msgstr "" "Toetscombinatie's voor het tonen van het invoer-methode kies-menu. Klik " "rechts voor het instellen." #: ../modules/SetupUI/scim_frontend_setup.cpp:306 msgid "Options" msgstr "Opties" #: ../modules/SetupUI/scim_frontend_setup.cpp:321 msgid "_Keyboard Layout:" msgstr "_Toetsenbord layout:" #: ../modules/SetupUI/scim_frontend_setup.cpp:342 msgid "" "You should choose your currently used keyboard layout here so that input " "methods, who care about keyboard layout, could work correctly." msgstr "" "Kies hier de huidige gebruikte toetsenbord-layout, zodat invoer-methoden, " "die van het toetsenbord-layout afhankelijk zijn, goed werken." #. On The Spot. #: ../modules/SetupUI/scim_frontend_setup.cpp:346 msgid "_Embed Preedit String into client window" msgstr "Invoer direkt in programma-venster tonen." #: ../modules/SetupUI/scim_frontend_setup.cpp:351 msgid "" "If this option is checked, the preedit string will be displayed directly in " "the client input window, rather than in a independent float window." msgstr "" "Wanneer voor deze optie gekozen is, wordt de invoer direkt in het programma-" "venster getoond, in plaats van een extra invoer-venster." #. Shared input method. #: ../modules/SetupUI/scim_frontend_setup.cpp:360 msgid "_Share the same input method among all applications" msgstr "Dezelfde invoer-methode voor alle programma's gebruiken." #: ../modules/SetupUI/scim_frontend_setup.cpp:365 msgid "" "If this option is checked, then only one input method could be used by all " "applications at the same time.Otherwise different input method could be used " "by each application." msgstr "" "Wanneer dit gekozen is, wordt een en dezelfde invoer-methode voor alle " "programma's gebruikt. Wanneer dit niet gekozen is, kan voor elke programma " "een andere invoer-methode gekozen worden." #: ../modules/SetupUI/scim_frontend_setup.cpp:373 #: ../modules/SetupUI/scim_imengine_setup.cpp:453 msgid "Hotkeys" msgstr "Sneltoetsen" #: ../modules/SetupUI/scim_imengine_setup.cpp:93 msgid "You can enable/disable input methods and set hotkeys for input methods here." msgstr "" "Hier kunnen de geïnstalleerde invoer-methoden IN- en UIT-geschakeld worden " "en hiervoor sneltoetsen gekozen worden." #: ../modules/SetupUI/scim_imengine_setup.cpp:296 msgid "The installed input method services:" msgstr "Geïnstalleerde invoer-methoden:" #. Create hotkey and filter button before factory list view, because #. factory_list_selection_changed_callback may access these two buttons. #: ../modules/SetupUI/scim_imengine_setup.cpp:311 msgid "Edit _Hotkeys" msgstr "_Sneltoetsen instellen" #: ../modules/SetupUI/scim_imengine_setup.cpp:320 msgid "Edit Hotkeys associated with the selected input method." msgstr "Sneltoetsen voor de gekozen invoer-methode instellen." #: ../modules/SetupUI/scim_imengine_setup.cpp:322 msgid "Select _Filters" msgstr "_Filter selecteren" #: ../modules/SetupUI/scim_imengine_setup.cpp:331 msgid "Select the Filters which will be attached to this input method." msgstr "Kies de filter, die aan deze invoer-methode verbonden moet worden." #: ../modules/SetupUI/scim_imengine_setup.cpp:348 msgid "_Expand" msgstr "Uitbreiden" #: ../modules/SetupUI/scim_imengine_setup.cpp:357 msgid "Expand all language categories." msgstr "Alle taalgroepen uitbreiden." #: ../modules/SetupUI/scim_imengine_setup.cpp:359 msgid "_Collapse" msgstr "Samenvouwen" #: ../modules/SetupUI/scim_imengine_setup.cpp:368 msgid "Collapse all language categories." msgstr "Alle taalgroepen samenvouwen." #: ../modules/SetupUI/scim_imengine_setup.cpp:370 msgid "E_nable All" msgstr "Alles _inschakelen" #: ../modules/SetupUI/scim_imengine_setup.cpp:379 msgid "Enable all input methods." msgstr "Alle invoer-methoden inschakelen." #: ../modules/SetupUI/scim_imengine_setup.cpp:381 msgid "_Disable All" msgstr "Alles _uitschakelen" #: ../modules/SetupUI/scim_imengine_setup.cpp:390 msgid "Disable all input methods." msgstr "Alle invoer-methoden uitschakelen." #: ../modules/SetupUI/scim_imengine_setup.cpp:414 #: ../modules/SetupUI/scim_imengine_setup.cpp:541 msgid "Name" msgstr "Naam" #: ../modules/SetupUI/scim_imengine_setup.cpp:432 #: ../modules/SetupUI/scim_imengine_setup.cpp:522 msgid "Enable" msgstr "Aanzetten" #: ../modules/SetupUI/scim_imengine_setup.cpp:467 msgid "Filters" msgstr "Filter" #: ../modules/SetupUI/scim_imengine_setup.cpp:560 msgid "Languages" msgstr "Talen" #: ../modules/SetupUI/scim_imengine_setup.cpp:574 msgid "Description" msgstr "Omschrijving" #: ../modules/SetupUI/scim_imengine_setup.cpp:1190 #, c-format msgid "Edit Hotkeys for %s" msgstr "Sneltoetsen voor %s instellen" #: ../modules/SetupUI/scim_imengine_setup.cpp:1417 #, c-format msgid "Select Filters for %s" msgstr "Filter voor %s selecteren" #: ../modules/SetupUI/scim_imengine_setup.cpp:1450 msgid "Move _Up" msgstr "Naar _boven" #: ../modules/SetupUI/scim_imengine_setup.cpp:1457 msgid "Move _Down" msgstr "Naar _onderen" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:95 msgid "GTK" msgstr "GTK" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:100 msgid "A panel daemon based on GTK+-2.x library." msgstr "Een hulp-programma met panelen, gebaseert op de GTK+-2.x-bibliotheek." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:163 msgid "Always" msgstr "Altijd" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:164 msgid "On demand" msgstr "Op verzoek" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:165 msgid "Never" msgstr "Nooit" #. Create the ToolBar setup block. #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:211 msgid "ToolBar" msgstr "Werkbalk" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:229 msgid "_Show:" msgstr "_Toon:" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:245 msgid "Auto s_nap" msgstr "Auto s_nap" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:251 msgid "Show _input method icon" msgstr "Icoon voor invoer-methode tonen" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:257 msgid "Show inp_ut method name" msgstr "_Namen van de invoer-methoden tonen" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:269 msgid "Hide time_out:" msgstr "Ontzichtbaar maken na (sec):" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:282 msgid "Show s_tick icon" msgstr "Icoon altijd tonen" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:288 msgid "Show m_enu icon" msgstr "»_Menü« -icoon tonen" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:294 msgid "Show _help icon" msgstr "»_Help«-icoon tonen" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:300 msgid "Show _property label" msgstr "Eigenschappen-label tonen" #. Create the Input Window setup block #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:311 msgid "Input window" msgstr "Invoer-venster" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:320 msgid "E_mbedded lookup table" msgstr "Interne opzoek-tabel" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:324 msgid "_Vertical lookup table" msgstr "_Vertikale opzoek-tabel" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:328 msgid "Misc" msgstr "Diversen" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:337 msgid "Show tra_y icon" msgstr "Toon tra_y icoon" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:341 msgid "Stick _windows" msgstr "Venster op plaats vastzetten" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:349 msgid "_Font:" msgstr "_Lettertype:" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:419 msgid "" "If option \"Always\" is selected, the toolbar will always be shown on the " "screen. If option \"On demand\" is selected, it will only be shown when SCIM " "is activated. If option \"Never\" is selected, it will never be shown." msgstr "" "Wanneer \"Altijd\" is gekozen, wordt de werkbalk altijd op het scherm " "getoond. Wanneer \"op verzoek\" is gekozen, wordt de werkbalk alleen getoond " "wanneer SCIM aktief is. Wanneer \"Nooit\" is gekozen, wordt de werkbalk " "nooit getoond." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:426 msgid "If this option is checked, the toolbar will be snapped to the screen border." msgstr "" "Wanneer deze optie is gekozen, wordt de werkbalk aan de rand van het " "beeldscherm vastgeklikt" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:431 msgid "" "The toolbar will be hidden out after this timeout is elapsed. This option is " "only valid when \"Always show\" is selected. Set to zero to disable this " "behavior." msgstr "" "De werkbalk wordt ontzichtbaar na afloop van de ingestelde tijd. Deze optie " "is alleen beschikbaar wanneer \"altijd tonen\" is gekozen.Zet de tijd op nul " "(0) om dit gedrag uit te schakelen." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:438 msgid "" "If this option is checked, the input method icon will be showed on the " "toolbar." msgstr "" "Wanneer deze optie is gekozen, wordt het icoon van de huidige invoer-methode " "in de werkbalk getoond." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:442 msgid "" "If this option is checked, the input method name will be showed on the " "toolbar." msgstr "" "Wanneer deze optie is gekozen, wordt de naam van de huidige invoer-methode " "in de werkbalk getoond." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:446 msgid "If this option is checked, the stick icon will be showed on the toolbar." msgstr "Wanneer deze optie is gekozen, wordt het sticky-icoon op de werkbalk getoond." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:450 msgid "If this option is checked, the menu icon will be showed on the toolbar." msgstr "Wanneer deze optie is gekozen, wordt het menu in de werkbalk getoond." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:454 msgid "If this option is checked, the help icon will be showed on the toolbar." msgstr "Wanneer deze optie is gekozen, wordt het hulp-icoon in de werkbalk getoond." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:458 msgid "" "If this option is checked, the text label of input method properties will be " "showed on the toolbar." msgstr "" "Wanneer deze optie is gekozen, wordt naam van de invoer-methode getoond in " "de werkbalk." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:462 msgid "" "If this option is checked, the lookup table will be embedded into the input " "window." msgstr "" "Wanneer deze optie is gekozen, wordt de opzoek-tabel in het invoer-venster " "getoond" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:467 msgid "If this option is checked, the lookup table will be displayed vertically." msgstr "Wanneer deze optie is gekozen wordt de opzoek-tabel vertikaal getoond." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:472 msgid "" "If this option is checked, the tray icon will be showed on the desktop's " "taskbar." msgstr "" "Wanneer deze optie is gekozen, zal het icoon van de werkbalk in het " "systeemvak getoond." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:476 msgid "" "If this option is checked, the toolbar, input and lookup table windows will " "be sticked to its original position." msgstr "" "Wanneer deze optie is gekozen, worden de werkbalk, het invoer-venster en de " "opzoektabel op deze plaats vastgezet." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:482 msgid "The font setting will be used in the input and lookup table windows." msgstr "" "Dit gekozen lettertype wordt in het invoer-venster en in het opzoek-tabel " "gebruikt." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:801 msgid "Select Interface Font" msgstr "Interface-lettertype kiezen" #: ../extras/setup/scim_setup_ui.cpp:47 msgid "SCIM" msgstr "SCIM" #: ../extras/setup/scim_setup_ui.cpp:48 msgid "FrontEnd" msgstr "FrontEnd" #: ../extras/setup/scim_setup_ui.cpp:49 msgid "IMEngine" msgstr "Invoer-methode" #: ../extras/setup/scim_setup_ui.cpp:50 msgid "Panel" msgstr "Paneel" #: ../extras/setup/scim_setup_ui.cpp:51 msgid "Extra" msgstr "Extra" #. #. vi:ts=4:nowrap:ai:expandtab #. #: ../extras/setup/scim_setup_ui.cpp:230 #: ../extras/setup/scim-setup.desktop.in.h:1 msgid "SCIM Input Method Setup" msgstr "Instellingen voor de SCIM-invoer-methode" #: ../extras/setup/scim_setup_ui.cpp:369 msgid "" " Smart Common Input Method platform \n" "\n" "GUI Setup Utility\n" "\n" "\n" "\n" "Copyright 2002-2004, James Su <suzhe@tsinghua.org." "cn>" msgstr "" " Smart Common Input Method-Plattform \n" "\n" "GUI instellingen\n" "\n" "\n" "\n" "Copyright 2002-2004, James Su <suzhe@tsinghua.org." "cn>" #: ../extras/setup/scim_setup_ui.cpp:394 #, c-format msgid "The Setup for %s modules." msgstr "Instellen van de %s-Module." #: ../extras/setup/scim_setup_ui.cpp:456 msgid "Are you sure you want to quit SCIM Setup?" msgstr "Wilt U de setup van SCIM werkelijk verlaten?" #: ../extras/setup/scim_setup_ui.cpp:685 msgid "" "Not all configuration can be reloaded on the fly. Don't forget to restart " "SCIM in order to let all of the new configuration take effect." msgstr "" "Niet alle instellingen kunnen geladen worden. SCIM moet opnieuw gestart " "worden om alle nieuwe instellingen te laden." #: ../extras/setup/scim_setup_helper.cpp:49 msgid "SCIM Setup" msgstr "Instellen van SCIM" #: ../extras/setup/scim_setup_helper.cpp:51 msgid "Integrated Setup Utility based on GTK Widget library." msgstr "Geïntegreerde setup dat op de GTK-widget bibiotheek is gebaseerd." #: ../extras/setup/scim-setup.desktop.in.h:2 msgid "Setup utility for Smart Common Input Method platform" msgstr "Setup voor de Smart Common Invoer-methode-Plattform" #: ../extras/panel/scim_panel_gtk.cpp:982 msgid "SCIM Help" msgstr "SCIM handboek" #: ../extras/panel/scim_panel_gtk.cpp:999 msgid "Smart Common Input Method" msgstr "Smart Common Invoer-methode" #: ../extras/panel/scim_panel_gtk.cpp:1058 msgid "Stick/unstick the input window and the toolbar." msgstr "Invoer-venster en de werkbalk vastzetten/verschuifbaar maken." #: ../extras/panel/scim_panel_gtk.cpp:1063 msgid "Show a brief help about SCIM and the current input method." msgstr "Toepasselijke help voor SCIM en de huidige invoer-methode tonen." #: ../extras/panel/scim_panel_gtk.cpp:1068 msgid "Show command menu." msgstr "Commandoregel tonen." #: ../extras/panel/scim_panel_gtk.cpp:2306 msgid "" "\n" "(C) 2002-2005 James Su " msgstr "" "\n" "(c) 2002-2005 James Su " #. Reload Configuration. #: ../extras/panel/scim_panel_gtk.cpp:2385 msgid "Reload Configuration" msgstr "Instellingen opnieuw laden" #. Stick #: ../extras/panel/scim_panel_gtk.cpp:2395 msgid "Stick Windows" msgstr "Venster vastzetten" #. Toolbar #: ../extras/panel/scim_panel_gtk.cpp:2404 msgid "Hide Toolbar" msgstr "Werkbalk ontzichtbaar maken" #. Help #: ../extras/panel/scim_panel_gtk.cpp:2413 msgid "Help ..." msgstr "Help ..." #. Clients exit. #: ../extras/panel/scim_panel_gtk.cpp:2431 msgid "Exit" msgstr "Afsluiten" #: ../utils/scimstringview.c:196 msgid "Cursor Position" msgstr "Cursor positie" #: ../utils/scimstringview.c:197 msgid "The current position of the insertion cursor in chars." msgstr "De huidige positie van de cursor (in karakters)." #: ../utils/scimstringview.c:206 msgid "Maximum length" msgstr "Maximale lengte" #: ../utils/scimstringview.c:207 msgid "Maximum number of characters for this string view. Zero if no maximum." msgstr "Maximale aantal getoonde karakters. »0« betekend onbegrenst." #: ../utils/scimstringview.c:216 msgid "Maximum width" msgstr "Maximale Breedte" #: ../utils/scimstringview.c:217 msgid "Maximum width of this string view." msgstr "Maximale Breedte van de getoonde letterreeks." #: ../utils/scimstringview.c:226 msgid "Has Frame" msgstr "Met kader" #: ../utils/scimstringview.c:227 msgid "FALSE removes outside bevel from string view." msgstr "\"Nee\" verwijdert de buitenste rand van de getoonde letter-reeks." #: ../utils/scimstringview.c:234 msgid "Draw cursor" msgstr "Cursor tonen" #: ../utils/scimstringview.c:235 msgid "TRUE draw blinking cursor." msgstr "Met \"JA\" wordt een knipperende cursor getoond." #: ../utils/scimstringview.c:242 msgid "Auto move cursor" msgstr "Cursor automatisch verplaatsen" #: ../utils/scimstringview.c:243 msgid "TRUE auto move cursor position when mouse clicking." msgstr "Bij »ja«, wordt de cursor automatisch verschoven." #: ../utils/scimstringview.c:250 msgid "Forward button press event" msgstr "Drukknop voor het doorgeven" #: ../utils/scimstringview.c:251 msgid "TRUE forward button press event to user program." msgstr "" "Bij »ja«, wordt de gekozen uitdrukking met elke druk op een toets aan het " "programma doorgegeven." #: ../utils/scimstringview.c:258 msgid "Auto resize the widget to fit the string" msgstr "Venster-formaat automatisch aan teken-lengte aanpassen" #: ../utils/scimstringview.c:259 msgid "TRUE Auto resize on." msgstr "Bei »ja« is de automatische grootte-aanpassing ingeschakeld." #: ../utils/scimstringview.c:266 msgid "Width in chars" msgstr "Breedte in tekens" #: ../utils/scimstringview.c:267 msgid "Number of characters to leave space for in the string view." msgstr "Aantal tekens waarvoor ruimte gelaten wordt." #: ../utils/scimstringview.c:276 msgid "Scroll offset" msgstr "Scroll-instelling" #: ../utils/scimstringview.c:277 msgid "Number of pixels of the string view scrolled off the screen to the left" msgstr "" "Aantal pixels, waarmee de tekenreeks weergave buiten het scherm naar links " "verschoven wordt" #: ../utils/scimstringview.c:286 msgid "Text" msgstr "Tekst" #: ../utils/scimstringview.c:287 msgid "The contents of the string view" msgstr "Inhoud van de tekenreeks weergave" #: ../utils/scimkeyselection.cpp:155 msgid "Selected _Keys:" msgstr "Gekozen toetsen:" #: ../utils/scimkeyselection.cpp:200 msgid "Key Code:" msgstr "Toetsen Code:" #: ../utils/scimkeyselection.cpp:218 msgid "..." msgstr "..." #: ../utils/scimkeyselection.cpp:223 msgid "Modifiers:" msgstr "Wizigings-toetsen:" #: ../utils/scimkeyselection.cpp:236 msgid "_Ctrl" msgstr "_Ctrl" #: ../utils/scimkeyselection.cpp:240 msgid "A_lt" msgstr "_Alt" #: ../utils/scimkeyselection.cpp:244 msgid "_Shift" msgstr "_Shift" #: ../utils/scimkeyselection.cpp:248 msgid "_Release" msgstr "_Vrijgeven" #: ../utils/scimkeyselection.cpp:258 msgid "_Meta" msgstr "_Meta" #: ../utils/scimkeyselection.cpp:262 msgid "S_uper" msgstr "Su_per" #: ../utils/scimkeyselection.cpp:266 msgid "_Hyper" msgstr "_Hyper" #: ../utils/scimkeyselection.cpp:331 msgid "Please enter a Key Code first." msgstr "Geef eerst een toets-code op." #: ../utils/scimkeyselection.cpp:385 msgid "" "Press a key (or a key combination).\n" "This dialog will be closed when the key is released." msgstr "" "Druk eerst een toets in (of een toetscombinatie).\n" " Dit dialoog sluit zich, wanneer de toets wordt losgelaten." #: ../utils/scimkeyselection.cpp:388 msgid "Grabbing a key." msgstr "Een toets pakken." #: ../utils/scimkeyselection.cpp:678 msgid "Key Selection" msgstr "Toetsen selectie" #: ../utils/scimtrayicon.c:108 msgid "Orientation" msgstr "Oriëntatie" #: ../utils/scimtrayicon.c:109 msgid "The orientation of the tray." msgstr "De richting van de werkbalk." scim-1.4.14/po/pa.po000066400000000000000000001303631177210725600141300ustar00rootroot00000000000000# translation of pa.po to Punjabi # This file is distributed under the same license as the PACKAGE package. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. # # Amanpreet Singh Alam , 2005. # Jaswinder Singh , 2008. msgid "" msgstr "" "Project-Id-Version: pa\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-07-20 09:50+0800\n" "PO-Revision-Date: 2008-03-26 14:31+0530\n" "Last-Translator: Jaswinder Singh \n" "Language-Team: Punjabi \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: ../src/scim_compose_key.cpp:126 msgid "English/European" msgstr "ਅੰਗਰੇਜ਼ੀ/ਯੂਰਪ" #. Append an entry for forward mode. #: ../src/scim_imengine.cpp:638 ../src/scim_utility.cpp:693 #: ../modules/FrontEnd/scim_x11_frontend.cpp:1897 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1281 #: ../extras/panel/scim_panel_gtk.cpp:2814 msgid "English/Keyboard" msgstr "ਅੰਗਰੇਜ਼ੀ/ਕੀ-ਬੋਰਡ" #: ../src/scim_utility.cpp:694 msgid "Amharic" msgstr "ਅਮਹਾਰਿਕ" #: ../src/scim_utility.cpp:695 msgid "Arabic" msgstr "ਅਰਬੀ" #: ../src/scim_utility.cpp:696 msgid "Arabic (Egypt)" msgstr "ਅਰਬੀ (ਮਿਸਰ)" #: ../src/scim_utility.cpp:697 msgid "Arabic (Lebanon)" msgstr "ਅਰਬੀ (ਲਿਬਨਾਨ)" #: ../src/scim_utility.cpp:698 msgid "Assamese" msgstr "ਆਸਾਮੀ" #: ../src/scim_utility.cpp:699 msgid "Azerbaijani" msgstr "ਅਜ਼ਰਬਾਈਜਾਨੀ" #: ../src/scim_utility.cpp:700 msgid "Belarusian" msgstr "ਬੇਲਾਰੂਸੀ" #: ../src/scim_utility.cpp:701 msgid "Bulgarian" msgstr "ਬà©à¨²à¨—ਾਰੀਅਨ" #: ../src/scim_utility.cpp:702 ../src/scim_utility.cpp:703 msgid "Bengali" msgstr "ਬੰਗਾਲੀ" #: ../src/scim_utility.cpp:704 msgid "Bengali (India)" msgstr "ਬੰਗਾਲੀ (ਭਾਰਤ)" #: ../src/scim_utility.cpp:705 msgid "Tibetan" msgstr "ਤਿੱਬਤੀ" #: ../src/scim_utility.cpp:706 msgid "Bosnian" msgstr "ਬੋਸਨੀਅਨ" #: ../src/scim_utility.cpp:707 msgid "Catalan" msgstr "ਕੈਟੇਲਨ" #: ../src/scim_utility.cpp:708 ../src/scim_keyboard_layout_data.h:4595 msgid "Czech" msgstr "ਸੀਜ਼ੇਕ" #: ../src/scim_utility.cpp:709 msgid "Welsh" msgstr "ਵੈਲਸ਼" #: ../src/scim_utility.cpp:710 ../src/scim_keyboard_layout_data.h:4597 msgid "Danish" msgstr "ਡੈਨਿਸ਼" #: ../src/scim_utility.cpp:711 ../src/scim_keyboard_layout_data.h:4605 msgid "German" msgstr "ਜਰਮਨ" #: ../src/scim_utility.cpp:712 msgid "Divehi" msgstr "ਡਿਵੇਹੀ" #: ../src/scim_utility.cpp:713 ../src/scim_keyboard_layout_data.h:4608 msgid "Greek" msgstr "ਗਰੀਕ" #: ../src/scim_utility.cpp:714 msgid "English" msgstr "ਅੰਗਰੇਜ਼ੀ" #: ../src/scim_utility.cpp:715 msgid "English (Australian)" msgstr "ਅੰਗਰੇਜ਼ੀ (ਆਸਟਰੇਲੀਅਨ)" #: ../src/scim_utility.cpp:716 msgid "English (Canadian)" msgstr "ਅੰਗਰੇਜ਼ੀ (ਕੈਨੇਡੀਅਨ)" #: ../src/scim_utility.cpp:717 msgid "English (British)" msgstr "ਅੰਗਰੇਜ਼ੀ (ਬਰਤਾਨਵੀ)" #: ../src/scim_utility.cpp:718 msgid "English (Ireland)" msgstr "ਅੰਗਰੇਜ਼ੀ (ਆਇਰਲੈਂਡ)" #: ../src/scim_utility.cpp:719 msgid "English (American)" msgstr "ਅੰਗਰੇਜ਼ੀ (ਅਮਰੀਕੀ)" #: ../src/scim_utility.cpp:720 ../src/scim_utility.cpp:721 #: ../src/scim_keyboard_layout_data.h:4621 msgid "Spanish" msgstr "ਸਪੇਨੀ" #: ../src/scim_utility.cpp:722 msgid "Spanish (Mexico)" msgstr "ਸਪੇਨੀ (ਮੈਕਸਿਕੋ)" #: ../src/scim_utility.cpp:723 ../src/scim_keyboard_layout_data.h:4600 msgid "Estonian" msgstr "ਈਸਟੋਨੀਅਨ" #: ../src/scim_utility.cpp:724 msgid "Basque" msgstr "ਬਸਕਿਊ" #: ../src/scim_utility.cpp:725 msgid "Persian" msgstr "ਪਰਸੀਅਨ" #: ../src/scim_utility.cpp:726 ../src/scim_keyboard_layout_data.h:4601 msgid "Finnish" msgstr "ਫੈਨਿਸ਼" #: ../src/scim_utility.cpp:727 ../src/scim_keyboard_layout_data.h:4602 msgid "French" msgstr "ਫਰੈਂਚ" #: ../src/scim_utility.cpp:728 msgid "Irish" msgstr "ਇਰਿਸ਼" #: ../src/scim_utility.cpp:729 msgid "Galician" msgstr "ਗਲੇਸ਼ੀਅਨ" #: ../src/scim_utility.cpp:730 msgid "Gujarati" msgstr "ਗà©à¨œà¨°à¨¾à¨¤à©€" #: ../src/scim_utility.cpp:731 ../src/scim_utility.cpp:740 msgid "Hebrew" msgstr "ਹੈਬਰਿਊ" #: ../src/scim_utility.cpp:732 msgid "Hindi" msgstr "ਹਿੰਦੀ" #: ../src/scim_utility.cpp:733 ../src/scim_keyboard_layout_data.h:4594 msgid "Croatian" msgstr "ਕਰੋਆਟੀਅਨ" #: ../src/scim_utility.cpp:734 ../src/scim_keyboard_layout_data.h:4609 msgid "Hungarian" msgstr "ਹੂੰਗਾਰੀਅਨ" #: ../src/scim_utility.cpp:735 msgid "Armenian" msgstr "ਅਰਮਾਨੀਆਈ" #: ../src/scim_utility.cpp:736 msgid "Interlingua" msgstr "ਇੰਟਰਲਿੰਗੂਆ" #: ../src/scim_utility.cpp:737 msgid "Indonesian" msgstr "ਇੰਡੋਨੇਸ਼ੀਆਈ" #: ../src/scim_utility.cpp:738 ../src/scim_keyboard_layout_data.h:4627 msgid "Icelandic" msgstr "ਆਈਸਲੈਂਡੀ" #: ../src/scim_utility.cpp:739 ../src/scim_keyboard_layout_data.h:4610 msgid "Italian" msgstr "ਇਤਾਲਵੀ" #: ../src/scim_utility.cpp:741 ../src/scim_keyboard_layout_data.h:4611 msgid "Japanese" msgstr "ਜਾਪਾਨੀ" #: ../src/scim_utility.cpp:742 msgid "Georgian" msgstr "ਜੀਓਰਜੀਅਨ" #: ../src/scim_utility.cpp:743 msgid "Kazakh" msgstr "ਕਜ਼ਾਖ" #: ../src/scim_utility.cpp:744 msgid "Cambodian" msgstr "ਕੰਬੋਡੀਅਨ" #: ../src/scim_utility.cpp:745 msgid "Kannada" msgstr "ਕੰਨੜ" #: ../src/scim_utility.cpp:746 msgid "Korean" msgstr "ਕੋਰੀਅਨ" #: ../src/scim_utility.cpp:747 msgid "Laothian" msgstr "ਲਿਊਥੀਅਨ" #: ../src/scim_utility.cpp:748 ../src/scim_keyboard_layout_data.h:4628 msgid "Lithuanian" msgstr "ਲੀਥੂਵਨੀਅਨ" #: ../src/scim_utility.cpp:749 msgid "Latvian" msgstr "ਲਾਟਵੀਅਨ" #: ../src/scim_utility.cpp:750 msgid "Macedonian" msgstr "ਮੈਕਡੋਨੀਅਨ" #: ../src/scim_utility.cpp:751 msgid "Malayalam" msgstr "ਮਾਲਿਆਲਮ" #: ../src/scim_utility.cpp:752 msgid "Mongolian" msgstr "ਮੰਗੋਲੀਅਨ" #: ../src/scim_utility.cpp:753 msgid "Marathi" msgstr "ਮਰਾਠੀ" #: ../src/scim_utility.cpp:754 msgid "Malay" msgstr "ਮਲਾਇਆ" #: ../src/scim_utility.cpp:755 msgid "Burmese" msgstr "ਬਰਮੀਸ" #: ../src/scim_utility.cpp:756 msgid "Nepali" msgstr "ਨੇਪਾਲੀ" #: ../src/scim_utility.cpp:757 ../src/scim_keyboard_layout_data.h:4598 msgid "Dutch" msgstr "ਡੱਚ" #: ../src/scim_utility.cpp:758 msgid "Norwegian (nynorsk)" msgstr "ਨਾਰਵੇਗੀਅਨ (ਨਿਉਰਸਕ)" #: ../src/scim_utility.cpp:759 msgid "Norwegian (bokmal)" msgstr "ਨਾਰਵੇਗੀਅਨ (ਬੋਕਮਾਲ)" #: ../src/scim_utility.cpp:760 msgid "Oriya" msgstr "ਓੜੀਆ" #: ../src/scim_utility.cpp:761 msgid "Punjabi" msgstr "ਪੰਜਾਬੀ" #: ../src/scim_utility.cpp:762 ../src/scim_keyboard_layout_data.h:4613 msgid "Polish" msgstr "ਪੌਲਿਸ਼" #: ../src/scim_utility.cpp:763 ../src/scim_utility.cpp:765 #: ../src/scim_keyboard_layout_data.h:4614 msgid "Portuguese" msgstr "ਪà©à¨°à¨¤à¨—ਾਲੀ" #: ../src/scim_utility.cpp:764 ../src/scim_keyboard_layout_data.h:4615 msgid "Portuguese (Brazil)" msgstr "ਪà©à¨°à¨¤à¨—ਾਲੀ (ਬਰਾਜ਼ੀਲ)" #: ../src/scim_utility.cpp:766 msgid "Romanian" msgstr "ਰੋਮਾਨੀਆਈ" #: ../src/scim_utility.cpp:767 ../src/scim_keyboard_layout_data.h:4617 msgid "Russian" msgstr "ਰੂਸੀ" #: ../src/scim_utility.cpp:768 msgid "Sinhala" msgstr "ਸਿੰਨਹਾਲਾ" #: ../src/scim_utility.cpp:769 ../src/scim_keyboard_layout_data.h:4618 msgid "Slovak" msgstr "ਸਲੋਵਾਕ" #: ../src/scim_utility.cpp:770 ../src/scim_keyboard_layout_data.h:4620 msgid "Slovenian" msgstr "ਸਲੋਵੀਅਨ" #: ../src/scim_utility.cpp:771 msgid "Albanian" msgstr "ਅਲਬਾਈਅਨ" #: ../src/scim_utility.cpp:772 ../src/scim_utility.cpp:773 #: ../src/scim_utility.cpp:774 msgid "Serbian" msgstr "ਸਰਬੀਅਨ" #: ../src/scim_utility.cpp:775 ../src/scim_utility.cpp:777 #: ../src/scim_keyboard_layout_data.h:4624 msgid "Swedish" msgstr "ਸਵੈਡਿਸ਼" #: ../src/scim_utility.cpp:776 msgid "Swedish (Finland)" msgstr "ਸਵੈਡਿਸ਼ (ਫਿਨਲੈਂਡ)" #: ../src/scim_utility.cpp:778 msgid "Tamil" msgstr "ਤਾਮਿਲ" #: ../src/scim_utility.cpp:779 msgid "Telugu" msgstr "ਤੇਲਗੂ" #: ../src/scim_utility.cpp:780 msgid "Thai" msgstr "ਥਾਈ" #: ../src/scim_utility.cpp:781 ../src/scim_keyboard_layout_data.h:4625 msgid "Turkish" msgstr "ਤà©à¨°à¨•à©€" #: ../src/scim_utility.cpp:782 msgid "Uighur" msgstr "ਊਘਰ" #: ../src/scim_utility.cpp:783 ../src/scim_keyboard_layout_data.h:4629 msgid "Ukrainian" msgstr "ਯੂਕਰੇਨੀ" #: ../src/scim_utility.cpp:784 msgid "Urdu" msgstr "ਊਰਦੂ" #: ../src/scim_utility.cpp:785 msgid "Uzbek" msgstr "ਉਜੇਬਕ" #: ../src/scim_utility.cpp:786 msgid "Vietnamese" msgstr "ਵੀਅਤਨਾਮੀ" #: ../src/scim_utility.cpp:787 msgid "Walloon" msgstr "ਵਾਲਿਸ਼" #: ../src/scim_utility.cpp:788 ../src/scim_utility.cpp:789 msgid "Yiddish" msgstr "ਯਿਡਿੱਸ਼" #: ../src/scim_utility.cpp:790 msgid "Chinese" msgstr "ਚੀਨੀ" #: ../src/scim_utility.cpp:791 ../src/scim_utility.cpp:793 msgid "Chinese (simplified)" msgstr "ਚੀਨੀ (ਸਧਾਰਨ)" #: ../src/scim_utility.cpp:792 ../src/scim_utility.cpp:794 msgid "Chinese (traditional)" msgstr "ਚੀਨੀ (ਮੂਲ)" #: ../src/scim_utility.cpp:876 msgid "Other" msgstr "ਹੋਰ" #: ../src/scim_keyboard_layout_data.h:4591 #: ../modules/IMEngine/scim_socket_imengine.cpp:386 #: ../modules/IMEngine/scim_socket_imengine.cpp:416 #: ../modules/IMEngine/scim_socket_imengine.cpp:501 #: ../modules/IMEngine/scim_socket_imengine.cpp:531 #: ../modules/IMEngine/scim_socket_imengine.cpp:561 msgid "Unknown" msgstr "ਅਣਜਾਣ" #: ../src/scim_keyboard_layout_data.h:4592 msgid "English (US)" msgstr "ਅੰਗਰੇਜ਼ੀ (ਅਮਰੀਕੀ)" #: ../src/scim_keyboard_layout_data.h:4593 msgid "Belgian" msgstr "ਬੈਲਜੀਅਨ" #: ../src/scim_keyboard_layout_data.h:4596 msgid "Czech (qwerty)" msgstr "ਚੈੱਕ(ਕਿਉਵਰਟੀ)" #: ../src/scim_keyboard_layout_data.h:4599 msgid "Dvorak" msgstr "ਡਵੋਰਿਕ" #: ../src/scim_keyboard_layout_data.h:4603 msgid "French (Canadian)" msgstr "ਫਰੈਂਚ (ਕੈਨੇਡੀ)" #: ../src/scim_keyboard_layout_data.h:4604 msgid "French (Switzerland)" msgstr "ਫਰੈਂਚ (ਸਵਟਿਜ਼ਰਲੈਂਡ)" #: ../src/scim_keyboard_layout_data.h:4606 msgid "German (with deadkeys)" msgstr "ਜਰਮਨ (ਡਿੱਡ ਸਵਿੱਚਾਂ ਨਾਲ)" #: ../src/scim_keyboard_layout_data.h:4607 msgid "German (Swiss)" msgstr "ਜਰਮਨ (ਸਵਿੱਸ)" #: ../src/scim_keyboard_layout_data.h:4612 msgid "Norwegian" msgstr "ਨਾਰਵੇਗੀਅਨ" #: ../src/scim_keyboard_layout_data.h:4616 msgid "Portuguese (Brazil US accents)" msgstr "ਪà©à¨°à¨¤à¨—ਾਲੀ (ਬਰਾਜ਼ੀਲ ਅਮਰੀਕੀ ਢੰਗ)" #: ../src/scim_keyboard_layout_data.h:4619 msgid "Slovak (qwerty)" msgstr "ਸਲੋਵਾਕ(ਕਿਉਵਰਟੀ)" #: ../src/scim_keyboard_layout_data.h:4622 msgid "Spanish (CP 850)" msgstr "ਸਪੇਨੀ (CP 850)" #: ../src/scim_keyboard_layout_data.h:4623 msgid "Spanish (Latin America)" msgstr "ਸਪੇਨੀ (ਲੈਟਿਨ ਅਮਰੀਕੀ)" #: ../src/scim_keyboard_layout_data.h:4626 msgid "English (UK)" msgstr "ਅੰਗਰੇਜ਼ੀ (ਬਰਤਾਨੀਵੀਂ)" #: ../modules/Filter/scim_sctc_filter.cpp:57 msgid "Simplified-Traditional Chinese Conversion" msgstr "ਸਧਾਰਨ-ਮੂਲ ਚੀਨੀ ਤਬਦੀਲੀ" #: ../modules/Filter/scim_sctc_filter.cpp:60 msgid "Convert between Simplified Chinese and Traditional Chinese" msgstr "ਸਧਾਰਨ ਚੀਨੀ ਅਤੇ ਮੂਲ ਚੀਨੀ ਵਿੱਚ ਤਬਦੀਲੀ" #: ../modules/Filter/scim_sctc_filter.cpp:71 msgid "SC-TC" msgstr "SC-TC" #: ../modules/Filter/scim_sctc_filter.cpp:73 #: ../modules/Filter/scim_sctc_filter.cpp:78 msgid "Simplified-Traditional Chinese conversion" msgstr "ਸਧਾਰਨ-ਮੂਲ ਚੀਨੀ ਤਬਦੀਲੀ" #: ../modules/Filter/scim_sctc_filter.cpp:76 msgid "No Conversion" msgstr "ਕੋਈ ਤਬਦੀਲੀ ਨਹੀਂ" #: ../modules/Filter/scim_sctc_filter.cpp:81 msgid "Simplified to Traditional" msgstr "ਸਧਾਰਨ ਤੋਂ ਮੂਲ" #: ../modules/Filter/scim_sctc_filter.cpp:83 msgid "Convert Simplified Chinese to Traditional Chinese" msgstr "ਸਧਾਰਨ ਚੀਨੀ ਤੋਂ ਮੂਲ ਚੀਨੀ ਤਬਦੀਲ" #: ../modules/Filter/scim_sctc_filter.cpp:86 msgid "Traditional to Simplified" msgstr "ਮੂਲ ਤੋਂ ਸਧਾਰਨ" #: ../modules/Filter/scim_sctc_filter.cpp:88 msgid "Convert Traditional Chinese to Simplified Chinese" msgstr "ਮੂਲ ਚੀਨੀ ਤੋਂ ਸਧਾਰਨ ਚੀਨੀ ਅਨà©à¨µà¨¾à¨¦" #: ../modules/Filter/scim_sctc_filter.cpp:300 msgid "James Su " msgstr "James Su " #: ../modules/Filter/scim_sctc_filter.cpp:425 #: ../modules/Filter/scim_sctc_filter.cpp:555 #: ../modules/Filter/scim_sctc_filter.cpp:571 msgid "SC->TC" msgstr "SC->TC" #: ../modules/Filter/scim_sctc_filter.cpp:431 #: ../modules/Filter/scim_sctc_filter.cpp:559 #: ../modules/Filter/scim_sctc_filter.cpp:575 msgid "TC->SC" msgstr "TC->SC" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1845 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1231 #: ../extras/panel/scim_panel_gtk.cpp:2304 msgid "Smart Common Input Method platform " msgstr "ਸਮਾਰਟ ਕਾਮਨ ਇੰਪà©à©±à¨Ÿ ਮੈਥਡ ਪਲੇਟਫਾਰਮ" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1847 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1233 msgid "" "\n" "(C) 2002-2005 James Su \n" "\n" msgstr "" "\n" "(C) 2002-2005 James Su \n" "\n" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1851 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1238 msgid "" ":\n" "\n" msgstr "" ":\n" "\n" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1854 #: ../modules/FrontEnd/scim_x11_frontend.cpp:1857 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1241 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1244 msgid "" "\n" "\n" msgstr "" "\n" "\n" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:120 msgid "RAW CODE" msgstr "ਕੱਚਾ ਕੋਡ" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:127 msgid "(C) 2002-2006 James Su " msgstr "(C) 2002-2006 James Su " #: ../modules/IMEngine/scim_rawcode_imengine.cpp:140 msgid "" "Hot Keys:\n" "\n" " Control+u:\n" " switch between Multibyte encoding and Unicode.\n" "\n" " Esc:\n" " reset the input method.\n" msgstr "" "ਹਾਟ ਸਵਿੱਚਾਂ:\n" "\n" " Control+u:\n" " ਬਹà©-ਬਾਈਟ ਇੰਕੋਡਿੰਗ ਅਤੇ ਯੂਨੀਕਰੋਡ ਵਿੱਚ ਤਬਦੀਲ ਹੋਣ ਲਈ।\n" "\n" " Esc:\n" " ਇੰਪà©à©±à¨Ÿ ਢੰਗ ਮà©à©œ-ਸੈਟ ਕਰਨ ਲਈ।\n" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:407 #: ../modules/IMEngine/scim_rawcode_imengine.cpp:423 msgid "The status of the current input method. Click to change it." msgstr "ਮੌਜੂਦਾ ਇੰਪà©à©±à¨Ÿ ਢੰਗ ਦੀ ਸਥਿਤੀ ਹੈ। ਤਬਦੀਲ ਕਰਨ ਲਈ ਦਬਾਉ।" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:409 msgid "Unicode" msgstr "ਯੂਨੀਕੋਡ" #: ../modules/SetupUI/scim_frontend_setup.cpp:82 #: ../modules/SetupUI/scim_imengine_setup.cpp:88 msgid "Global Setup" msgstr "ਗਲੋਬਲ ਸੈਟਅੱਪ" #: ../modules/SetupUI/scim_frontend_setup.cpp:87 msgid "" "Setup the global options used by All FrontEnd modules, including X11 " "FrontEnd, GTK IMModule, QT IMModule etc." msgstr "" "ਸਭ ਮà©à©±à¨– ਮੈਡਿਊਲ ਰਾਹੀਂ ਵਰਤੇ ਜਾਦੇ ਗਲੋਬਲ ਚੋਣ ਸੈਟਅੱਪ, ਜਿਸ ਵਿੱਚ X11 ਮà©à©±à¨– ਭੂਮੀ, GTK IMModule, QT " "IMModule ਆਦਿ" #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:143 msgid "_Trigger:" msgstr "ਤਬਦੀਲ(_T):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:145 msgid "Select the trigger keys" msgstr "ਤਬਦੀਲੀ ਸਵਿੱਚ ਚà©à¨£à©‹" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:147 msgid "" "The key events to turn on/off SCIM input method. Click on the button on the " "right to edit it." msgstr "SCIM ਇੰਪà©à©±à¨Ÿ ਢੰਗ ਨੂੰ ਚਾਲੂ/ਬੰਦ ਕਰਨ ਲਈ ਕà©à©°à¨œà©€ ਘਟਨਾ ਹੈ। ਇਸ ਨੂੰ ਸੋਧਣ ਲਈ ਸੱਜੇ ਪਾਸੇ ਬਟਨ ਨੂੰ ਦਬਾਉ।" #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:160 msgid "Turn _On:" msgstr "ਚਾਲੂ ਕਰੋ(_O):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:162 msgid "Select the Turn On keys" msgstr "ਚਾਲੂ ਕਰਨ ਵਾਲੀਆਂ ਕà©à©°à¨œà©€à¨†à¨‚ ਚà©à¨£à©‹" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:164 msgid "" "The key events to turn on SCIM input method. Click on the button on the " "right to edit it." msgstr "SCIM ਇੰਪà©à©±à¨Ÿ ਢੰਗ ਚਾਲੂ ਕਰਨ ਲਈ ਕà©à©°à¨œà©€à¨†à¨‚ ਦੀ ਚੋਣ ਕਰੋ। ਇਸ ਨੂੰ ਸੋਧਣ ਲਈ ਸੱਜੇ ਪਾਸੇ ਦੇ ਬਟਨ ਨੂੰ ਦਬਾਉ।" #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:177 msgid "Turn O_ff:" msgstr "ਬੰਦ ਕਰੋ(_f):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:179 msgid "Select the Turn Off keys" msgstr "ਬੰਦ ਕਰਨ ਵਾਲੀਆਂ ਕà©à©°à¨œà©€à¨†à¨‚" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:181 msgid "" "The key events to turn off SCIM input method. Click on the button on the " "right to edit it." msgstr "SCIM ਇੰਪà©à©±à¨Ÿ ਢੰਗ ਬੰਦ ਕਰਨ ਲਈ ਕà©à©°à¨œà©€à¨†à¨‚ ਦੀ ਚੋਣ ਕਰੋ। ਇਸ ਨੂੰ ਸੋਧਣ ਲਈ ਸੱਜੇ ਪਾਸੇ ਦੇ ਬਟਨ ਨੂੰ ਦਬਾਉ।" #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:194 msgid "_Next input method:" msgstr "ਅੱਗੇ ਇੰਪà©à©±à¨Ÿ ਢੰਗ(_N):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:196 msgid "Select the next input method keys" msgstr "ਅੱਗੇ ਇੰਪà©à©±à¨Ÿ ਢੰਗ ਦੀ ਚੋਣ ਕਰਨ ਲਈ ਕà©à©°à¨œà©€à¨†à¨‚ ਚà©à¨£à©‹" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:198 msgid "" "The key events to switch to the next input method. Click on the button on " "the right to edit it." msgstr "ਅੱਗੇ ਇੰਪà©à©±à¨Ÿ ਢੰਗ ਦੀ ਚੋਣ ਕਰਨ ਲਈ ਕà©à©°à¨œà©€à¨†à¨‚ ਦੀ ਚੋਣ ਕਰੋ। ਇਸ ਨੂੰ ਸੋਧਣ ਲਈ ਸੱਜੇ ਪਾਸੇ ਦੇ ਬਟਨ ਨੂੰ ਦਬਾਉ।" #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:213 msgid "_Previous input method:" msgstr "ਪਿੱਛੇ ਇੰਪà©à©±à¨Ÿ ਢੰਗ(_P):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:215 msgid "Select the previous input method keys" msgstr "ਪਿਛਲਾ ਇੰਪà©à©±à¨Ÿ ਢੰਗ ਕà©à©°à¨œà©€à¨†à¨‚ ਚà©à¨£à©‹" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:217 msgid "" "The key events to switch to the previous input method. Click on the button " "on the right to edit it." msgstr "ਪਿਛਲਾ ਇੰਪà©à©±à¨Ÿ ਢੰਗ ਚਾਲੂ ਕਰਨ ਲਈ ਕà©à©°à¨œà©€à¨†à¨‚ ਦੀ ਚੋਣ ਕਰੋ। ਇਸ ਨੂੰ ਸੋਧਣ ਲਈ ਸੱਜੇ ਪਾਸੇ ਦੇ ਬਟਨ ਨੂੰ ਦਬਾਉ।" #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:232 msgid "Show input method _menu:" msgstr "ਇੰਪà©à©±à¨Ÿ ਢੰਗ ਮੇਨੂ ਵੇਖਾਓ(_m):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:234 msgid "Select the show input method menu keys" msgstr "ਇੰਪà©à©±à¨Ÿ ਢੰਗ ਮੇਨੂ ਵੇਖਾਉਣ ਲਈ ਕà©à©°à¨œà©€à¨†à¨‚ ਚà©à¨£à©‹" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:236 msgid "" "The key events to show the input method menu. Click on the button on the " "right to edit it." msgstr "ਇੰਪà©à©±à¨Ÿ ਢੰਗ ਮੇਨੂ ਵੇਖਾਉਣ ਲਈ ਕà©à©°à¨œà©€à¨†à¨‚ ਦੀ ਚੋਣ ਕਰੋ। ਇਸ ਨੂੰ ਸੋਧਣ ਲਈ ਸੱਜੇ ਪਾਸੇ ਦੇ ਬਟਨ ਨੂੰ ਦਬਾਉ।" #: ../modules/SetupUI/scim_frontend_setup.cpp:306 msgid "Options" msgstr "ਚੋਣ" #: ../modules/SetupUI/scim_frontend_setup.cpp:321 msgid "_Keyboard Layout:" msgstr "ਕੀ-ਬੋਰਡ ਖਾਕਾ(_K):" #: ../modules/SetupUI/scim_frontend_setup.cpp:342 msgid "" "You should choose your currently used keyboard layout here so that input " "methods, who care about keyboard layout, could work correctly." msgstr "" "ਤà©à¨¹à¨¾à¨¨à©‚à©° ਇੱਥੇ ਆਪਣਾ ਮੌਜੂਦਾ ਕੀ-ਬੋਰਡ ਖਾਕੇ ਦੀ ਚੋਣ ਕਰਨੀ ਚਾਹੀਦੀ ਹੈ, ਤਾਂ ਕਿ ਇੰਪà©à©±à¨Ÿ ਢੰਗ, ਜੋ ਕਿ ਕੀ-ਬੋਰਡ " "ਖਾਕੇ ਦਾ ਖਿਆਲ ਰੱਖਦਾ ਹੈ, ਠੀਕ ਤਰਾਂ ਕੰਮ ਕਰ ਸਕੇ।" #. On The Spot. #: ../modules/SetupUI/scim_frontend_setup.cpp:346 msgid "_Embed Preedit String into client window" msgstr "ਕਲਾਂਈਟ à¨à¨°à©‹à¨–ੇ 'ਚ ਪਹਿਲਾਂ-ਸੋਧ ਸਤਰ(_E)" #: ../modules/SetupUI/scim_frontend_setup.cpp:351 msgid "" "If this option is checked, the preedit string will be displayed directly in " "the client input window, rather than in a independent float window." msgstr "ਜੇਕਰ ਇਹ ਚੋਣ ਕੀਤੀ ਗਈ ਤਾਂ, ਕਲਾਂਈਟ ਇੰਪà©à©±à¨Ÿ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਪਹਿਲਾਂ-ਸੋਧ ਸਤਰ ਸਿੱਧੀ ਵਿਖਾਈ ਜਾਵੇਗਾ, ਨਾ ਕਿ ਇੱਕ ਆਜ਼ਾਦ ਤਰਦੇ à¨à¨°à©‹à¨–ਾ।" #. Shared input method. #: ../modules/SetupUI/scim_frontend_setup.cpp:360 msgid "_Share the same input method among all applications" msgstr "ਸਭ ਕਾਰਜਾਂ 'ਚ ਇੱਕੋ ਹੀ ਇੰਪà©à©±à¨Ÿ ਢੰਗ ਵਰਤੋਂ(_S)" #: ../modules/SetupUI/scim_frontend_setup.cpp:365 msgid "" "If this option is checked, then only one input method could be used by all " "applications at the same time.Otherwise different input method could be used " "by each application." msgstr "" "ਜੇਕਰ ਇਹ ਚੋਣ ਕੀਤੀ ਗਈ ਤਾਂ, ਸਿਰਫ਼ ਇੱਕ ਹੀ ਇੰਪà©à©±à¨Ÿ ਢੰਗ ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਜਾਵੇਗੀ, ਜੋ ਕਿ ਇੱਕ ਸਮੇਂ ਸਭ " "ਕਾਰਜਾਂ ਲਈ ਵਰਤਿਆ ਜਾਵੇਗਾ। ਨਹੀਂ ਤਾਂ ਹਰ ਕਾਰਜ ਲਈ ਵੱਖਰਾ ਢੰਗ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਸੀ।" #: ../modules/SetupUI/scim_frontend_setup.cpp:373 #: ../modules/SetupUI/scim_imengine_setup.cpp:453 msgid "Hotkeys" msgstr "ਹਾਟ-ਸਵਿੱਚ" #: ../modules/SetupUI/scim_imengine_setup.cpp:93 msgid "You can enable/disable input methods and set hotkeys for input methods here." msgstr "ਤà©à¨¸à©€à¨‚ ਇੱਥੇ ਇੰਪà©à©±à¨Ÿ ਢੰਗ ਯੋਗ/ਅਯੋਗ ਕਰ ਅਤੇ ਇੰਪà©à©±à¨Ÿ ਢੰਗ ਲਈ ਹਾਟ-ਸਵਿੱਚਾਂ ਸੈਟ ਕਰ ਸਕਦੇ ਹੋ।" #: ../modules/SetupUI/scim_imengine_setup.cpp:296 msgid "The installed input method services:" msgstr "ਇੰਸਟਾਲ ਹੋਈਆਂ ਇੰਪà©à©±à¨Ÿ ਢੰਗ ਸੇਵਾਵਾਂ:" #. Create hotkey and filter button before factory list view, because #. factory_list_selection_changed_callback may access these two buttons. #: ../modules/SetupUI/scim_imengine_setup.cpp:311 msgid "Edit _Hotkeys" msgstr "ਹਾਟ-ਸਵਿੱਚ ਸੋਧ(_H)" #: ../modules/SetupUI/scim_imengine_setup.cpp:320 msgid "Edit Hotkeys associated with the selected input method." msgstr "ਚà©à¨£à©‡ ਇੰਪà©à©±à¨Ÿ ਢੰਗ ਨਾਲ ਸਬੰਧਤ ਹਾਟ-ਕà©à©°à¨œà©€à¨†à¨‚ ਦੀ ਸੋਧ ਕਰੋ।" #: ../modules/SetupUI/scim_imengine_setup.cpp:322 msgid "Select _Filters" msgstr "ਫਿਲਟਰ ਚà©à¨£à©‹(_F)" #: ../modules/SetupUI/scim_imengine_setup.cpp:331 msgid "Select the Filters which will be attached to this input method." msgstr "ਫਿਲਟਰ ਦੀ ਚੋਣ ਕਰੋ, ਜੋ ਕਿ ਇਸ ਇੰਪà©à©±à¨Ÿ ਢੰਗ ਨਾਲ ਜੋੜਿਆ ਜਾਵੇਗਾ।" #: ../modules/SetupUI/scim_imengine_setup.cpp:348 msgid "_Expand" msgstr "ਫੈਲਾਓ(_E)" #: ../modules/SetupUI/scim_imengine_setup.cpp:357 msgid "Expand all language categories." msgstr "ਸਭ ਭਾਸ਼ਾ ਵਰਗ ਫੈਲਾਓ।" #: ../modules/SetupUI/scim_imengine_setup.cpp:359 msgid "_Collapse" msgstr "ਸਮੇਟੋ(_C)" #: ../modules/SetupUI/scim_imengine_setup.cpp:368 msgid "Collapse all language categories." msgstr "ਸਭ ਭਾਸ਼ਾ ਵਰਗ ਸਮੇਟੋ।" #: ../modules/SetupUI/scim_imengine_setup.cpp:370 msgid "E_nable All" msgstr "ਸਭ ਯੋਗ(_n)" #: ../modules/SetupUI/scim_imengine_setup.cpp:379 msgid "Enable all input methods." msgstr "ਸਭ ਇੰਪà©à©±à¨Ÿ ਢੰਗ ਯੋਗ ਕਰਦਾ ਹੈ।" #: ../modules/SetupUI/scim_imengine_setup.cpp:381 msgid "_Disable All" msgstr "ਸਭ ਆਯੋਗ(_D)" #: ../modules/SetupUI/scim_imengine_setup.cpp:390 msgid "Disable all input methods." msgstr "ਸਭ ਇੰਪà©à©±à¨Ÿ ਢੰਗ ਆਯੋਗ ਹਨ।" #: ../modules/SetupUI/scim_imengine_setup.cpp:414 #: ../modules/SetupUI/scim_imengine_setup.cpp:541 msgid "Name" msgstr "ਨਾਂ" #: ../modules/SetupUI/scim_imengine_setup.cpp:432 #: ../modules/SetupUI/scim_imengine_setup.cpp:522 msgid "Enable" msgstr "ਯੋਗ" #: ../modules/SetupUI/scim_imengine_setup.cpp:467 msgid "Filters" msgstr "ਫਿਲਟਰ" #: ../modules/SetupUI/scim_imengine_setup.cpp:560 msgid "Languages" msgstr "ਭਾਸ਼ਾਵਾਂ" #: ../modules/SetupUI/scim_imengine_setup.cpp:574 msgid "Description" msgstr "ਵੇਰਵਾ" #: ../modules/SetupUI/scim_imengine_setup.cpp:1190 #, c-format msgid "Edit Hotkeys for %s" msgstr "%s ਲਈ ਹਾਟ-ਸਵਿੱਚ ਸੋਧ" #: ../modules/SetupUI/scim_imengine_setup.cpp:1417 #, c-format msgid "Select Filters for %s" msgstr "%s ਲਈ ਫਿਲਟਰ ਚà©à¨£à©‹" #: ../modules/SetupUI/scim_imengine_setup.cpp:1450 msgid "Move _Up" msgstr "ਉੱਪਰ ਜਾਓ(_U)" #: ../modules/SetupUI/scim_imengine_setup.cpp:1457 msgid "Move _Down" msgstr "ਹੇਠਾਂ ਜਾਓ(_D)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:95 msgid "GTK" msgstr "GTK" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:100 msgid "A panel daemon based on GTK+-2.x library." msgstr "GTK+-2.x ਲਾਇਬਰੇਰੀ 'ਤੇ ਪੈਨਲ ਡੈਮਨ ਹੈ।" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:163 msgid "Always" msgstr "ਹਮੇਸ਼ਾ" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:164 msgid "On demand" msgstr "ਲੋੜ ਸਮੇਂ" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:165 msgid "Never" msgstr "ਕਦੇ ਨਹੀਂ" #. Create the ToolBar setup block. #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:211 msgid "ToolBar" msgstr "ਸੰਦ-ਪੱਟੀ" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:229 msgid "_Show:" msgstr "ਵੇਖਾਓ(_S):" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:245 msgid "Auto s_nap" msgstr "ਸਵੈ ਸਨੈਪ(_n)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:251 msgid "Show _input method icon" msgstr "ਇੰਪà©à©±à¨Ÿ ਆਈਕਾਨ ਢੰਗ ਆਈਕਾਨ ਵੇਖਾਓ(_i)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:257 msgid "Show inp_ut method name" msgstr "ਇੰਪà©à©±à¨Ÿ ਢੰਗ ਨਾਂ ਵੇਖਾਓ(_u)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:269 msgid "Hide time_out:" msgstr "ਸਮਾਂ-ਅੰਤਰਾਲ ਓਹਲੇ(_o):" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:282 msgid "Show s_tick icon" msgstr "ਚਿਪਕੇ ਆਈਕਾਨ ਵੇਖਾਓ(_t)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:288 msgid "Show m_enu icon" msgstr "ਮੇਨੂ ਆਈਕਾਨ ਵੇਖਾਓ(_e)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:294 msgid "Show _help icon" msgstr "ਸਹਾਇਤਾ ਆਈਕਾਨ ਵੇਖਾਓ(_h)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:300 msgid "Show _property label" msgstr "ਵਿਸ਼ੇਸ਼ਤਾ ਲੇਬਲ ਵੇਖਾਓ(_p)" #. Create the Input Window setup block #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:311 msgid "Input window" msgstr "ਇੰਪà©à©±à¨Ÿ à¨à¨°à©‹à¨–ਾ" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:320 msgid "E_mbedded lookup table" msgstr "ਸ਼ਾਮਲ ਖੋਜ ਸਾਰਣੀ(_m)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:324 msgid "_Vertical lookup table" msgstr "ਲੰਬਕਾਰੀ ਖੋਜ ਸਾਰਣੀ(_V)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:328 msgid "Misc" msgstr "ਫà©à¨Ÿà¨•ਲ" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:337 msgid "Show tra_y icon" msgstr "ਟਰੇ ਆਈਕਾਨ ਵੇਖਾਓ(_y)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:341 msgid "Stick _windows" msgstr "à¨à¨°à©‹à¨–ੇ ਚੇਪੋ(_w)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:349 msgid "_Font:" msgstr "ਫੋਂਟ(_F):" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:419 msgid "" "If option \"Always\" is selected, the toolbar will always be shown on the " "screen. If option \"On demand\" is selected, it will only be shown when SCIM " "is activated. If option \"Never\" is selected, it will never be shown." msgstr "ਜੇਕਰ \"ਹਮੇਸ਼ਾ\" ਚੋਣ ਯੋਗ ਕੀਤੀ ਗਈ ਤਾਂ, ਸੰਦ-ਪੱਟੀ ਨੂੰ ਹਮੇਸ਼ਾ ਪਰਦੇ 'ਤੇ ਵਿਖਾਇਆ ਜਾਵੇਗਾ। ਜੇਕਰ \"ਲੋੜ ਸਮੇਂ\" ਦੀ ਚੋਣ ਕੀਤੀ ਗਈ ਤਾਂ ਹੀ ਵੇਖਾਇਆ ਜਾਵੇਗਾ, ਜਦੋਂ SCIM ਦੇ ਸਰਗਰਮ ਹੋਵੇਗਾ। ਜੇਕਰ \"ਕਦੇ ਨਹੀਂ\" ਦੀ ਚੋਣ ਕੀਤੀ ਗਈ ਤਾਂ ਇਸ ਨੂੰ ਕਦੇ ਨਹੀਂ ਵੇਖਾਇਆ ਜਾਵੇਗਾ।" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:426 msgid "If this option is checked, the toolbar will be snapped to the screen border." msgstr "ਜੇਕਰ ਇਹ ਚੋਣ ਕੀਤੀ ਗਈ ਤਾਂ, ਸੰਦ-ਪੱਟੀ ਸਕਰੀਨ ਹਾਸ਼ੀਠ'ਚ ਸਮੇਟੀ ਜਾਵੇਗੀ।" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:431 msgid "" "The toolbar will be hidden out after this timeout is elapsed. This option is " "only valid when \"Always show\" is selected. Set to zero to disable this " "behavior." msgstr "ਇਸ ਅੰਤਰਾਲ ਖਤਮ ਹੋਣ ਦੇ ਬਾਅਦ ਸੰਦ-ਪੱਟੀ ਨੂੰ ਓਹਲੇ ਕੀਤਾ ਜਾਵੇਗਾ। ਇਹ ਚੋਣ ਸਿਰਫ਼ ਤਾਂ ਹੀ ਠੀਕ ਹੈ, ਜੇਕਰ \"ਹਮੇਸ਼ਾ ਵੇਖਾਓ\" ਦੀ ਚੋਣ ਕੀਤੀ ਹੈ। ਇਸ ਵਿਹਾਰ ਨੂੰ ਅਯੋਗ ਕਰਨ ਲਈ ਜ਼ੀਰੋ (0) ਬਣਾਓ।" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:438 msgid "" "If this option is checked, the input method icon will be showed on the " "toolbar." msgstr "ਜੇਕਰ ਇਹ ਚੋਣ ਕੀਤੀ ਗਈ ਤਾਂ ਇੰਪà©à©±à¨Ÿ ਢੰਗ ਆਈਕਾਨ ਸੰਦ-ਪੱਟੀ 'ਚ ਵਿਖਾਇਆ ਜਾਵੇਗਾ।" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:442 msgid "" "If this option is checked, the input method name will be showed on the " "toolbar." msgstr "ਜੇਕਰ ਇਹ ਚੋਣ ਕੀਤੀ ਗਈ ਤਾਂ ਇੰਪà©à©±à¨Ÿ ਢੰਗ ਨਾਂ ਨੂੰ ਸੰਦ-ਪੱਟੀ 'ਚ ਚà©à¨£à¨¿à¨† ਜਾਵੇਗਾ।" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:446 msgid "If this option is checked, the stick icon will be showed on the toolbar." msgstr "ਜੇਕਰ ਇਹ ਚੋਣ ਕੀਤੀ ਗਈ ਤਾਂ, ਸਟਿੱਕੀ ਆਈਕਾਨ ਸੰਦ-ਪੱਟੀ 'ਚ ਵਿਖਾਇਆ ਜਾਵੇਗਾ।" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:450 msgid "If this option is checked, the menu icon will be showed on the toolbar." msgstr "ਜੇਕਰ ਇਹ ਚੋਣ ਕੀਤੀ ਗਈ ਤਾਂ ਮੇਨੂ ਆਈਕਾਨ ਨੂੰ ਸੰਦ-ਪੱਟੀ 'ਚ ਵਿਖਾਇਆ ਜਾਵੇਗਾ।" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:454 msgid "If this option is checked, the help icon will be showed on the toolbar." msgstr "ਜੇਕਰ ਇਹ ਚੋਣ ਕੀਤੀ ਗਈ ਤਾਂ ਸਹਾਇਤਾ ਆਈਕਾਨ ਸੰਦ-ਪੱਟੀ 'ਚ ਵਿਖਾਇਆ ਜਾਦਾ ਹੈ।" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:458 msgid "" "If this option is checked, the text label of input method properties will be " "showed on the toolbar." msgstr "ਜੇਕਰ ਇਹ ਚੋਣ ਕੀਤੀ ਗਈ ਤਾਂ ਇੰਪà©à©±à¨Ÿ ਢੰਗ ਵਿਸ਼ੇਸ਼ਤਾ ਦਾ ਪਾਠ ਲੇਬਲ ਸੰਦ-ਪੱਟੀ 'ਚ ਵਿਖਾਇਆ ਜਾਵੇਗਾ।" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:462 msgid "" "If this option is checked, the lookup table will be embedded into the input " "window." msgstr "ਜੇਕਰ ਇਹ ਚੋਣ ਕੀਤੀ ਗਈ ਤਾਂ, ਖੋਜ ਸਾਰਣੀ ਨੂੰ ਇੰਪà©à©±à¨Ÿ à¨à¨°à©‹à¨–ੇ 'ਚ ਹੀ ਸ਼ਾਮਲ ਕੀਤਾ ਜਾਵੇਗਾ।" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:467 msgid "If this option is checked, the lookup table will be displayed vertically." msgstr "ਜੇਕਰ ਇਹ ਚੋਣ ਕੀਤੀ ਗਈ ਤਾਂ, ਖੋਜ ਸਾਰਣੀ ਨੂੰ ਲੰਬਕਾਰੀ ਰੂਪ 'ਚ ਵਿਖਾਇਆ ਜਾਵੇਗਾ।" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:472 msgid "" "If this option is checked, the tray icon will be showed on the desktop's " "taskbar." msgstr "ਜੇਕਰ ਇਹ ਚੋਣ ਕੀਤੀ ਗਈ ਤਾਂ ਟਰੇ ਆਈਕਾਨ ਨੂੰ ਵੇਹੜੇ ਦੀ ਸੰਦ-ਪੱਟੀ 'ਚ ਵਿਖਾਉ।" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:476 msgid "" "If this option is checked, the toolbar, input and lookup table windows will " "be sticked to its original position." msgstr "" "ਜੇਕਰ ਇਹ ਚੋਣ ਕੀਤੀ ਗਈ ਤਾਂ, ਸੰਦ-ਪੱਟੀ, ਇੰਪà©à©±à¨Ÿ ਅਤੇ ਖੋਜ ਸਾਰਣੀ à¨à¨°à©‹à¨–ੇ ਨੂੰ ਇਸ ਦੀ ਅਸਲੀ ਸਥਿਤੀ ਨਾਲ ਹੀ " "ਜੋੜੀ ਰੱਖਿਆ ਜਾਵੇਗਾ।" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:482 msgid "The font setting will be used in the input and lookup table windows." msgstr "ਇੰਪà©à©±à¨Ÿ ਅਤੇ ਖੋਜ ਸਾਰਣੀ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਫੋਂਟ ਸੈਟਿੰਗ ਵਰਤੀ ਜਾਵੇਗੀ।" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:801 msgid "Select Interface Font" msgstr "ਇੰਟਰਫੇਸ ਫੌਂਟ ਚà©à¨£à©‹" #: ../extras/setup/scim_setup_ui.cpp:47 msgid "SCIM" msgstr "SCIM" #: ../extras/setup/scim_setup_ui.cpp:48 msgid "FrontEnd" msgstr "ਮà©à©±à¨–-ਭਾਗ" #: ../extras/setup/scim_setup_ui.cpp:49 msgid "IMEngine" msgstr "IMEngine" #: ../extras/setup/scim_setup_ui.cpp:50 msgid "Panel" msgstr "ਪੈਨਲ" #: ../extras/setup/scim_setup_ui.cpp:51 msgid "Extra" msgstr "ਹੋਰ" #. #. vi:ts=4:nowrap:ai:expandtab #. #: ../extras/setup/scim_setup_ui.cpp:230 #: ../extras/setup/scim-setup.desktop.in.h:1 msgid "SCIM Input Method Setup" msgstr "SCIM ਇੰਪà©à©±à¨Ÿ ਢੰਗ ਸੈਟਅੱਪ" #: ../extras/setup/scim_setup_ui.cpp:369 msgid "" " Smart Common Input Method platform \n" "\n" "GUI Setup Utility\n" "\n" "\n" "\n" "Copyright 2002-2004, James Su <suzhe@tsinghua.org." "cn>" msgstr "" " ਸਮਾਰਟ ਕਾਮਨ ਇੰਪà©à©±à¨Ÿ ਮੈਂਥਡ ਪਲੇਟਫਾਰਮ \n" "\n" "GUI ਸੈਟਅੱਪ ਸਹੂਲਤ\n" "\n" "\n" "\n" "ਕਾਪੀਰਾਈਟ 2002-2004, James Su <suzhe@tsinghua.org." "cn>" #: ../extras/setup/scim_setup_ui.cpp:394 #, c-format msgid "The Setup for %s modules." msgstr "%s ਮੈਡਿਊਲ ਲਈ ਸੈਟਅੱਪ ਹੈ।" #msgid "Are you sure you want to quit SCIM Setup?" #msgstr "ਕੀ ਤà©à¨¸à©€à¨‚ SCIM ਸੈਟਅੱਪ ਨੂੰ ਬੰਦ ਕਰਨਾ ਚਾਹà©à©°à¨¦à©‡ ਹੋ?" #: ../extras/setup/scim_setup_ui.cpp:661 msgid "" "Not all configuration can be reloaded on the fly. Don't forget to restart " "SCIM in order to let all of the new configuration take effect." msgstr "" "ਸਭ ਸੰਰਚਨਾ ਨੂੰ ਇੱਕ-ਦਮ ਲੋਡ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। ਨਵੀਂ ਸੰਰਚਨਾ ਨੂੰ ਪਰਭਾਵੀ ਹੋਣ ਲਈ SCIM ਨੂੰ ਮà©à©œ-" "ਚਾਲੂ ਕਰਨਾ ਨਾ ਭà©à©±à¨²à©‹à¥¤" #: ../extras/setup/scim_setup_helper.cpp:49 msgid "SCIM Setup" msgstr "SCIM ਸੈਟਅੱਪ" #: ../extras/setup/scim_setup_helper.cpp:51 msgid "Integrated Setup Utility based on GTK Widget library." msgstr "GTK ਵਿਦਗਿਟ ਲਾਇਬਰੇਰੀ 'ਤੇ ਅਧਾਰਤ ਸੈਟਅੱਪ ਸਹੂਲਤ ਹੈ।" #: ../extras/setup/scim-setup.desktop.in.h:2 msgid "Setup utility for Smart Common Input Method platform" msgstr "ਸਮਾਰਟ ਕਾਮਨ ਇੰਪà©à©±à¨Ÿ ਮੈਥਡ ਪਲੇਟਫਾਰਮ ਲਈ ਸੈਟਅੱਪ ਸਹੂਲਤ" #: ../extras/panel/scim_panel_gtk.cpp:982 msgid "SCIM Help" msgstr "SCIM ਸਹਾਇਤਾ" #: ../extras/panel/scim_panel_gtk.cpp:999 msgid "Smart Common Input Method" msgstr "ਸਮਾਰਟ ਕਾਮਨ ਇੰਪà©à©±à¨Ÿ ਮੈਥਡ" #: ../extras/panel/scim_panel_gtk.cpp:1058 msgid "Stick/unstick the input window and the toolbar." msgstr "ਇੰਪà©à©±à¨Ÿ à¨à¨°à©‹à¨–ਾ ਅਤੇ ਸੰਦ-ਪੱਟੀ ਸਟਿੱਕੀ/ਨਾ-ਸਟਿੱਕੀ ਹੈ।" #: ../extras/panel/scim_panel_gtk.cpp:1063 msgid "Show a brief help about SCIM and the current input method." msgstr "SCIM ਅਤੇ ਮੌਜੂਦਾ ਇੰਪà©à©±à¨Ÿ ਢੰਗ ਬਾਰੇ ਸੰਖੇਪ ਸਹਾਇਤਾ ਵਿਖਾਓ।" #: ../extras/panel/scim_panel_gtk.cpp:1068 msgid "Show command menu." msgstr "ਕਮਾਂਡ ਮੇਨ ਵੇਖਾਓ।" #: ../extras/panel/scim_panel_gtk.cpp:2306 msgid "" "\n" "(C) 2002-2005 James Su " msgstr "" "\n" "(C) 2002-2005 James Su " #. Reload Configuration. #: ../extras/panel/scim_panel_gtk.cpp:2385 msgid "Reload Configuration" msgstr "ਸੰਰਚਨਾ ਮà©à©œ-ਲੋਡ" #. Stick #: ../extras/panel/scim_panel_gtk.cpp:2395 msgid "Stick Windows" msgstr "ਸਟਿੱਕੀ à¨à¨°à©‹à¨–ੇ" #. Toolbar #: ../extras/panel/scim_panel_gtk.cpp:2404 msgid "Hide Toolbar" msgstr "ਸੰਦ-ਪੱਟੀ ਓਹਲੇ" #. Help #: ../extras/panel/scim_panel_gtk.cpp:2413 msgid "Help ..." msgstr "ਸਹਾਇਤਾ ..." #. Clients exit. #: ../extras/panel/scim_panel_gtk.cpp:2431 msgid "Exit" msgstr "ਬਾਹਰ" #: ../utils/scimstringview.c:196 msgid "Cursor Position" msgstr "ਕਰਸਰ ਸਥਿਤੀ" #: ../utils/scimstringview.c:197 msgid "The current position of the insertion cursor in chars." msgstr "ਕਰਸਰ ਦੀ ਮੌਜੂਦਾ ਸਥਿਤੀ ਅੱਖਰਾਂ ਵਿੱਚ।" #: ../utils/scimstringview.c:206 msgid "Maximum length" msgstr "ਵੱਧ ਤੋ ਵੱਧ ਲੰਬਾਈ" #: ../utils/scimstringview.c:207 msgid "Maximum number of characters for this string view. Zero if no maximum." msgstr "ਇਸ ਸਤਰ à¨à¨²à¨• ਲਈ ਵੱਧ ਤੋਂ ਵੱਧ ਅੱਖਰਾਂ ਦੀ ਗਿਣਤੀ। ਜੇਕਰ ਵੱਧ ਤੋਂ ਵੱਧ ਨਾ ਹੋਇਆ ਤਾਂ ਸਿਫ਼ਰ ਹੋਵੇਗਾ।" #: ../utils/scimstringview.c:216 msgid "Maximum width" msgstr "ਵੱਧ ਤੋਂ ਵੱਧ ਚੌੜਾਈ" #: ../utils/scimstringview.c:217 msgid "Maximum width of this string view." msgstr "ਇਸ ਸਤਰ à¨à¨²à¨• ਦੀ ਵੱਧ ਤੋਂ ਵੱਧ ਚੌੜਾਈ ਹੈ।" #: ../utils/scimstringview.c:226 msgid "Has Frame" msgstr "ਫਰੇਮ ਹੈ" #: ../utils/scimstringview.c:227 msgid "FALSE removes outside bevel from string view." msgstr "FALSE ਨਾਲ ਸਤਰ à¨à¨²à¨• ਤੋਂ ਬਾਹਰੀ bevel ਹਟਾਠਜਾà¨à¨—ਾ।" #: ../utils/scimstringview.c:234 msgid "Draw cursor" msgstr "ਕਰਸਰ ਬਣਾਓ" #: ../utils/scimstringview.c:235 msgid "TRUE draw blinking cursor." msgstr "TRUE à¨à¨ªà¨•ਦੀ ਕਰਸਰ ਬਣਾà¨à¨—ਾ।" #: ../utils/scimstringview.c:242 msgid "Auto move cursor" msgstr "ਸਵੈ à¨à¨§à¨° ਓਧਰ ਕਰਸਰ" #: ../utils/scimstringview.c:243 msgid "TRUE auto move cursor position when mouse clicking." msgstr "TRUE ਮਾਊਸ ਦਬਾਉਣ ਨਾਲ ਕਰਸਰ ਨੂੰ ਸਵੈ-ਚਾਲਤ à¨à¨§à¨° ਓਧਰ ਕੀਤਾ ਜਾਵੇਗਾ।" #: ../utils/scimstringview.c:250 msgid "Forward button press event" msgstr "ਅੱਗੇ ਬਟਨ ਦਬਾਉਣ ਘਟਨਾ" #: ../utils/scimstringview.c:251 msgid "TRUE forward button press event to user program." msgstr "TRUE ਉਪਭੋਗੀ ਪਰੋਗਰਾਮ ਲਈ ਅੱਗੇ ਬਟਨ ਦਬਾਉਣ ਘਟਨਾ ਹੈ।" #: ../utils/scimstringview.c:258 msgid "Auto resize the widget to fit the string" msgstr "ਸਤਰ ਫਿੱਟ ਕਰਨ ਲਈ ਵਿਦਗਿਟ ਸਵੈ ਮà©à©œ-ਅਕਾਰ" #: ../utils/scimstringview.c:259 msgid "TRUE Auto resize on." msgstr "TRUE ਸਵੈ ਮà©à©œ-ਅਕਾਰ ਚਾਲੂ ਹੈ।" #: ../utils/scimstringview.c:266 msgid "Width in chars" msgstr "ਅੱਖਰਾਂ ਵਿੱਚ ਚੌਡ਼ਾਈ" #: ../utils/scimstringview.c:267 msgid "Number of characters to leave space for in the string view." msgstr "ਸਤਰ à¨à¨²à¨• ਵਿੱਚ ਖਾਲੀ ਥਾਂ ਛੱਡਣ ਲਈ ਅੱਖਰਾਂ ਦੀ ਗਿਣਤੀ ਹੈ।" #: ../utils/scimstringview.c:276 msgid "Scroll offset" msgstr "ਸੰਤà©à¨²à¨¨ ਸਕਰੋਲ" #: ../utils/scimstringview.c:277 msgid "Number of pixels of the string view scrolled off the screen to the left" msgstr "ਖੱਬੇ ਤੋਂ ਸਕਰੀਨ ਨੂੰ ਸਤਰ à¨à¨²à¨• ਸਮੇਟਣ ਲਈ ਪਿਕਸਲਾਂ ਦੀ ਗਿਣਤੀ" #: ../utils/scimstringview.c:286 msgid "Text" msgstr "ਪਾਠ" #: ../utils/scimstringview.c:287 msgid "The contents of the string view" msgstr "ਸਤਰ à¨à¨²à¨• ਦਾ ਪਰਸੰਗ" #: ../utils/scimkeyselection.cpp:155 msgid "Selected _Keys:" msgstr "ਚà©à¨£à©€à¨†à¨‚ ਸਵਿੱਚਾਂ(_K):" #: ../utils/scimkeyselection.cpp:200 msgid "Key Code:" msgstr "ਸਵਿੱਚ ਕੋਡ:" #: ../utils/scimkeyselection.cpp:218 msgid "..." msgstr "..." #: ../utils/scimkeyselection.cpp:223 msgid "Modifiers:" msgstr "ਸੋਧਕ:" #: ../utils/scimkeyselection.cpp:236 msgid "_Ctrl" msgstr "_Ctrl" #: ../utils/scimkeyselection.cpp:240 msgid "A_lt" msgstr "A_lt" #: ../utils/scimkeyselection.cpp:244 msgid "_Shift" msgstr "_Shift" #: ../utils/scimkeyselection.cpp:248 msgid "_Release" msgstr "ਜਾਰੀ(_R)" #: ../utils/scimkeyselection.cpp:258 msgid "_Meta" msgstr "ਮੈਟਾ(_M)" #: ../utils/scimkeyselection.cpp:262 msgid "S_uper" msgstr "ਸà©à¨ªà¨°(_u)" #: ../utils/scimkeyselection.cpp:266 msgid "_Hyper" msgstr "ਹਾਈਪਰ(_H)" #: ../utils/scimkeyselection.cpp:331 msgid "Please enter a Key Code first." msgstr "ਪਹਿਲਾਂ ਇੱਕ ਸਵਿੱਚ ਕੋਡ ਦਿਓ।" #: ../utils/scimkeyselection.cpp:385 msgid "" "Press a key (or a key combination).\n" "This dialog will be closed when the key is released." msgstr "" "ਇੱਕ ਸਵਿੱਚ (ਜਾਂ ਇੱਕ ਸਵਿੱਚ ਜੋੜ) ਦਬਾਉ।\n" "ਇਹ ਵਾਰਤਾਲਾਪ ਇੱਕ ਸਵਿੱਚ ਦਬਾਉਣ ਨਾਲ ਬੰਦ ਹੋ ਜਾਵੇਗਾ।" #: ../utils/scimkeyselection.cpp:388 msgid "Grabbing a key." msgstr "ਇੱਕ ਸਵਿੱਚ ਫੜੋ।" #: ../utils/scimkeyselection.cpp:678 msgid "Key Selection" msgstr "ਸਵਿੱਚ ਚੋਣ" #: ../utils/scimtrayicon.c:108 msgid "Orientation" msgstr "ਸਥਿਤੀ" #: ../utils/scimtrayicon.c:109 msgid "The orientation of the tray." msgstr "ਟਰੇ ਦੀ ਸਥਿਤੀ ਹੈ।" #~ msgid "Are you sure you want to quit SCIM Setup?" #~ msgstr "ਕੀ ਤà©à¨¸à©€à¨‚ SCIM ਸੈਟਅੱਪ ਨੂੰ ਬੰਦ ਕਰਨਾ ਚਾਹà©à©°à¨¦à©‡ ਹੋ?" #~ msgid "zh_CN,zh_TW,zh_HK,zh_SG,ja_JP,ko_KR" #~ msgstr "zh_CN,zh_TW,zh_HK,zh_SG,ja_JP,ko_KR" #~ msgid "En" #~ msgstr "En" scim-1.4.14/po/pt_BR.po000066400000000000000000001115151177210725600145340ustar00rootroot00000000000000# translation of pt_BR.po to Portuguese # Portuguese translations for l package. # Copyright (C) 2008 THE l'S COPYRIGHT HOLDER # This file is distributed under the same license as the l package. # # Automatically generated, 2008. # Chester Cheng , 2008. # Glaucia Cintra , 2008. msgid "" msgstr "" "Project-Id-Version: pt_BR\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-06-22 11:40-0700\n" "PO-Revision-Date: 2008-03-27 10:38+1000\n" "Last-Translator: Glaucia Cintra \n" "Language-Team: Portuguese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: KBabel 1.11.4\n" #: ../src/scim_compose_key.cpp:126 msgid "English/European" msgstr "Inglês/Europeu" #. Append an entry for forward mode. #: ../src/scim_imengine.cpp:638 ../src/scim_utility.cpp:693 #: ../modules/FrontEnd/scim_x11_frontend.cpp:1897 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1281 #: ../extras/panel/scim_panel_gtk.cpp:2814 msgid "English/Keyboard" msgstr "Inglês/Teclado" #: ../src/scim_utility.cpp:694 msgid "Amharic" msgstr "Amárico" #: ../src/scim_utility.cpp:695 msgid "Arabic" msgstr "Arábico" #: ../src/scim_utility.cpp:696 msgid "Arabic (Egypt)" msgstr "Arábico (Egito)" #: ../src/scim_utility.cpp:697 msgid "Arabic (Lebanon)" msgstr "Arábico (Líbano)" #: ../src/scim_utility.cpp:698 msgid "Assamese" msgstr "Assamês" #: ../src/scim_utility.cpp:699 msgid "Azerbaijani" msgstr "Azerbaijão" #: ../src/scim_utility.cpp:700 msgid "Belarusian" msgstr "Belarusião" #: ../src/scim_utility.cpp:701 msgid "Bulgarian" msgstr "Búlgaro" #: ../src/scim_utility.cpp:702 ../src/scim_utility.cpp:703 msgid "Bengali" msgstr "Bengalês" #: ../src/scim_utility.cpp:704 msgid "Bengali (India)" msgstr "Bengalês (Índia)" #: ../src/scim_utility.cpp:705 msgid "Tibetan" msgstr "Tibetano" #: ../src/scim_utility.cpp:706 msgid "Bosnian" msgstr "Bósnio" #: ../src/scim_utility.cpp:707 msgid "Catalan" msgstr "Catalão" #: ../src/scim_utility.cpp:708 ../src/scim_keyboard_layout_data.h:4595 msgid "Czech" msgstr "Tcheco" #: ../src/scim_utility.cpp:709 msgid "Welsh" msgstr "Galês" #: ../src/scim_utility.cpp:710 ../src/scim_keyboard_layout_data.h:4597 msgid "Danish" msgstr "Dinamarquês" #: ../src/scim_utility.cpp:711 ../src/scim_keyboard_layout_data.h:4605 msgid "German" msgstr "Alemão" #: ../src/scim_utility.cpp:712 msgid "Divehi" msgstr "Divehi" #: ../src/scim_utility.cpp:713 ../src/scim_keyboard_layout_data.h:4608 msgid "Greek" msgstr "Grego" #: ../src/scim_utility.cpp:714 msgid "English" msgstr "Inglês" #: ../src/scim_utility.cpp:715 msgid "English (Australian)" msgstr "Inglês (Australiano)" #: ../src/scim_utility.cpp:716 msgid "English (Canadian)" msgstr "Inglês (Canadense)" #: ../src/scim_utility.cpp:717 msgid "English (British)" msgstr "Inglês (Britânico)" #: ../src/scim_utility.cpp:718 msgid "English (Ireland)" msgstr "Inglês (Irlandês)" #: ../src/scim_utility.cpp:719 msgid "English (American)" msgstr "Inglês (Americano)" #: ../src/scim_utility.cpp:720 ../src/scim_utility.cpp:721 #: ../src/scim_keyboard_layout_data.h:4621 msgid "Spanish" msgstr "Espanhol" #: ../src/scim_utility.cpp:722 msgid "Spanish (Mexico)" msgstr "Espanhol (México)" #: ../src/scim_utility.cpp:723 ../src/scim_keyboard_layout_data.h:4600 msgid "Estonian" msgstr "Estoniano" #: ../src/scim_utility.cpp:724 msgid "Basque" msgstr "Basco" #: ../src/scim_utility.cpp:725 msgid "Persian" msgstr "Pérsio" #: ../src/scim_utility.cpp:726 ../src/scim_keyboard_layout_data.h:4601 msgid "Finnish" msgstr "Dinamarquês" #: ../src/scim_utility.cpp:727 ../src/scim_keyboard_layout_data.h:4602 msgid "French" msgstr "Francês" #: ../src/scim_utility.cpp:728 msgid "Irish" msgstr "Irlandês" #: ../src/scim_utility.cpp:729 msgid "Galician" msgstr "Galiciano" #: ../src/scim_utility.cpp:730 msgid "Gujarati" msgstr "Guzerate" #: ../src/scim_utility.cpp:731 ../src/scim_utility.cpp:740 msgid "Hebrew" msgstr "Hebraico" #: ../src/scim_utility.cpp:732 msgid "Hindi" msgstr "Hindi" #: ../src/scim_utility.cpp:733 ../src/scim_keyboard_layout_data.h:4594 msgid "Croatian" msgstr "Croata" #: ../src/scim_utility.cpp:734 ../src/scim_keyboard_layout_data.h:4609 msgid "Hungarian" msgstr "Húngaro" #: ../src/scim_utility.cpp:735 msgid "Armenian" msgstr "Armênio" #: ../src/scim_utility.cpp:736 msgid "Interlingua" msgstr "Interlíngua" #: ../src/scim_utility.cpp:737 msgid "Indonesian" msgstr "Indonésio" #: ../src/scim_utility.cpp:738 ../src/scim_keyboard_layout_data.h:4627 msgid "Icelandic" msgstr "Islandês" #: ../src/scim_utility.cpp:739 ../src/scim_keyboard_layout_data.h:4610 msgid "Italian" msgstr "Italiano" #: ../src/scim_utility.cpp:741 ../src/scim_keyboard_layout_data.h:4611 msgid "Japanese" msgstr "Japonês" #: ../src/scim_utility.cpp:742 msgid "Georgian" msgstr "Georgiano" #: ../src/scim_utility.cpp:743 msgid "Kazakh" msgstr "Cazaquistão" #: ../src/scim_utility.cpp:744 msgid "Cambodian" msgstr "Cambódio" #: ../src/scim_utility.cpp:745 msgid "Kannada" msgstr "Kannada" #: ../src/scim_utility.cpp:746 msgid "Korean" msgstr "Coreano" #: ../src/scim_utility.cpp:747 msgid "Laothian" msgstr "Laothian" #: ../src/scim_utility.cpp:748 ../src/scim_keyboard_layout_data.h:4628 msgid "Lithuanian" msgstr "Lituano" #: ../src/scim_utility.cpp:749 msgid "Latvian" msgstr "Letão" #: ../src/scim_utility.cpp:750 msgid "Macedonian" msgstr "Macedônio" #: ../src/scim_utility.cpp:751 msgid "Malayalam" msgstr "Malaiala" #: ../src/scim_utility.cpp:752 msgid "Mongolian" msgstr "Mongol" #: ../src/scim_utility.cpp:753 msgid "Marathi" msgstr "Marati" #: ../src/scim_utility.cpp:754 msgid "Malay" msgstr "Malaio" #: ../src/scim_utility.cpp:755 msgid "Burmese" msgstr "Birmanês" #: ../src/scim_utility.cpp:756 msgid "Nepali" msgstr "Nepalês" #: ../src/scim_utility.cpp:757 ../src/scim_keyboard_layout_data.h:4598 msgid "Dutch" msgstr "Holandês" #: ../src/scim_utility.cpp:758 msgid "Norwegian (nynorsk)" msgstr "Norueguês (nynorsk)" #: ../src/scim_utility.cpp:759 msgid "Norwegian (bokmal)" msgstr "Norueguês (bokmal)" #: ../src/scim_utility.cpp:760 msgid "Oriya" msgstr "Oriya" #: ../src/scim_utility.cpp:761 msgid "Punjabi" msgstr "Punjabi" #: ../src/scim_utility.cpp:762 ../src/scim_keyboard_layout_data.h:4613 msgid "Polish" msgstr "Polonês" #: ../src/scim_utility.cpp:763 ../src/scim_utility.cpp:765 #: ../src/scim_keyboard_layout_data.h:4614 msgid "Portuguese" msgstr "Português" #: ../src/scim_utility.cpp:764 ../src/scim_keyboard_layout_data.h:4615 msgid "Portuguese (Brazil)" msgstr "Português (Brasil)" #: ../src/scim_utility.cpp:766 msgid "Romanian" msgstr "Romênio" #: ../src/scim_utility.cpp:767 ../src/scim_keyboard_layout_data.h:4617 msgid "Russian" msgstr "Russo" #: ../src/scim_utility.cpp:768 msgid "Sinhala" msgstr "Sinhala" #: ../src/scim_utility.cpp:769 ../src/scim_keyboard_layout_data.h:4618 msgid "Slovak" msgstr "Eslovaco" #: ../src/scim_utility.cpp:770 ../src/scim_keyboard_layout_data.h:4620 msgid "Slovenian" msgstr "Esloveno" #: ../src/scim_utility.cpp:771 msgid "Albanian" msgstr "Albano" #: ../src/scim_utility.cpp:772 ../src/scim_utility.cpp:773 #: ../src/scim_utility.cpp:774 msgid "Serbian" msgstr "Sérvio" #: ../src/scim_utility.cpp:775 ../src/scim_utility.cpp:777 #: ../src/scim_keyboard_layout_data.h:4624 msgid "Swedish" msgstr "Sueco" #: ../src/scim_utility.cpp:776 msgid "Swedish (Finland)" msgstr "Sueco (Finlândia)" #: ../src/scim_utility.cpp:778 msgid "Tamil" msgstr "Tamil" #: ../src/scim_utility.cpp:779 msgid "Telugu" msgstr "Telugo" #: ../src/scim_utility.cpp:780 msgid "Thai" msgstr "Tailandês" #: ../src/scim_utility.cpp:781 ../src/scim_keyboard_layout_data.h:4625 msgid "Turkish" msgstr "Turco" #: ../src/scim_utility.cpp:782 msgid "Uighur" msgstr "Uighur" #: ../src/scim_utility.cpp:783 ../src/scim_keyboard_layout_data.h:4629 msgid "Ukrainian" msgstr "Ucraniano" #: ../src/scim_utility.cpp:784 msgid "Urdu" msgstr "Urdu" #: ../src/scim_utility.cpp:785 msgid "Uzbek" msgstr "Uzbeque" #: ../src/scim_utility.cpp:786 msgid "Vietnamese" msgstr "Vietnamita" #: ../src/scim_utility.cpp:787 msgid "Walloon" msgstr "Walloon" #: ../src/scim_utility.cpp:788 ../src/scim_utility.cpp:789 msgid "Yiddish" msgstr "Yiddish" #: ../src/scim_utility.cpp:790 msgid "Chinese" msgstr "Chinês" #: ../src/scim_utility.cpp:791 ../src/scim_utility.cpp:793 msgid "Chinese (simplified)" msgstr "Chinês (simplificado)" #: ../src/scim_utility.cpp:792 ../src/scim_utility.cpp:794 msgid "Chinese (traditional)" msgstr "Chinês (tradicional)" #: ../src/scim_utility.cpp:876 msgid "Other" msgstr "Outro" #: ../src/scim_keyboard_layout_data.h:4591 #: ../modules/IMEngine/scim_socket_imengine.cpp:386 #: ../modules/IMEngine/scim_socket_imengine.cpp:416 #: ../modules/IMEngine/scim_socket_imengine.cpp:501 #: ../modules/IMEngine/scim_socket_imengine.cpp:531 #: ../modules/IMEngine/scim_socket_imengine.cpp:561 msgid "Unknown" msgstr "Desconhecido" #: ../src/scim_keyboard_layout_data.h:4592 msgid "English (US)" msgstr "Inglês (EUA)" #: ../src/scim_keyboard_layout_data.h:4593 msgid "Belgian" msgstr "Bélgo" #: ../src/scim_keyboard_layout_data.h:4596 msgid "Czech (qwerty)" msgstr "Tcheco (qwerty)" #: ../src/scim_keyboard_layout_data.h:4599 msgid "Dvorak" msgstr "Dvorak" #: ../src/scim_keyboard_layout_data.h:4603 msgid "French (Canadian)" msgstr "Francês (Canadense)" #: ../src/scim_keyboard_layout_data.h:4604 msgid "French (Switzerland)" msgstr "Francês (Suíça)" #: ../src/scim_keyboard_layout_data.h:4606 msgid "German (with deadkeys)" msgstr "Alemão (com caracteres)" #: ../src/scim_keyboard_layout_data.h:4607 msgid "German (Swiss)" msgstr "Alemão (Suíço)" #: ../src/scim_keyboard_layout_data.h:4612 msgid "Norwegian" msgstr "Norueguês" #: ../src/scim_keyboard_layout_data.h:4616 msgid "Portuguese (Brazil US accents)" msgstr "Português (acentos do Brasil)" #: ../src/scim_keyboard_layout_data.h:4619 msgid "Slovak (qwerty)" msgstr "Eslováquio (qwerty)" #: ../src/scim_keyboard_layout_data.h:4622 msgid "Spanish (CP 850)" msgstr "Espanhol (CP 850)" #: ../src/scim_keyboard_layout_data.h:4623 msgid "Spanish (Latin America)" msgstr "Espanhol (América Latina)" #: ../src/scim_keyboard_layout_data.h:4626 msgid "English (UK)" msgstr "Inglês (UK)" #: ../modules/Filter/scim_sctc_filter.cpp:57 msgid "Simplified-Traditional Chinese Conversion" msgstr "Simplificado - Conversão do Chinês Tradicional" #: ../modules/Filter/scim_sctc_filter.cpp:60 msgid "Convert between Simplified Chinese and Traditional Chinese" msgstr "Converção entre Chinês Simplificado e Chinês Tradicional" #: ../modules/Filter/scim_sctc_filter.cpp:71 msgid "SC-TC" msgstr "CS-CT" #: ../modules/Filter/scim_sctc_filter.cpp:73 #: ../modules/Filter/scim_sctc_filter.cpp:78 msgid "Simplified-Traditional Chinese conversion" msgstr "Simplificado - conversão do Chinês Tradicional" #: ../modules/Filter/scim_sctc_filter.cpp:76 msgid "No Conversion" msgstr "Sem Conversão" #: ../modules/Filter/scim_sctc_filter.cpp:81 msgid "Simplified to Traditional" msgstr "Simplificado para Tradicional" #: ../modules/Filter/scim_sctc_filter.cpp:83 msgid "Convert Simplified Chinese to Traditional Chinese" msgstr "Converter Chinês Simplificado para Chinês Tradicional" #: ../modules/Filter/scim_sctc_filter.cpp:86 msgid "Traditional to Simplified" msgstr "Tradicional para Simplificado" #: ../modules/Filter/scim_sctc_filter.cpp:88 msgid "Convert Traditional Chinese to Simplified Chinese" msgstr "Converter Chinês Tradicional para Chinês Simplificado" #: ../modules/Filter/scim_sctc_filter.cpp:300 msgid "James Su " msgstr "James Su " #: ../modules/Filter/scim_sctc_filter.cpp:425 #: ../modules/Filter/scim_sctc_filter.cpp:555 #: ../modules/Filter/scim_sctc_filter.cpp:571 msgid "SC->TC" msgstr "CS->CT" #: ../modules/Filter/scim_sctc_filter.cpp:431 #: ../modules/Filter/scim_sctc_filter.cpp:559 #: ../modules/Filter/scim_sctc_filter.cpp:575 msgid "TC->SC" msgstr "CT->CS" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1845 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1231 #: ../extras/panel/scim_panel_gtk.cpp:2304 msgid "Smart Common Input Method platform " msgstr "Plataforma de Método de Inserção Inteligente Comum" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1847 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1233 msgid "" "\n" "(C) 2002-2005 James Su \n" "\n" msgstr "" "\n" "(C) 2002-2005 James Su \n" "\n" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1851 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1238 msgid "" ":\n" "\n" msgstr "" ":\n" "\n" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1854 #: ../modules/FrontEnd/scim_x11_frontend.cpp:1857 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1241 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1244 msgid "" "\n" "\n" msgstr "" "\n" "\n" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:120 msgid "RAW CODE" msgstr "CÓDIGO BRUTO" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:127 msgid "(C) 2002-2006 James Su " msgstr "(C) 2002-2006 James Su " #: ../modules/IMEngine/scim_rawcode_imengine.cpp:140 msgid "" "Hot Keys:\n" "\n" " Control+u:\n" " switch between Multibyte encoding and Unicode.\n" "\n" " Esc:\n" " reset the input method.\n" msgstr "" "Hot Keys:\n" "\n" " Control+u:\n" " switch between Multibyte encoding and Unicode.\n" "\n" " Esc:\n" " reset the input method.\n" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:407 #: ../modules/IMEngine/scim_rawcode_imengine.cpp:423 msgid "The status of the current input method. Click to change it." msgstr "O status do método de inserção atual. Clique para mudá-lo." #: ../modules/IMEngine/scim_rawcode_imengine.cpp:409 msgid "Unicode" msgstr "Unicode" #: ../modules/SetupUI/scim_frontend_setup.cpp:82 #: ../modules/SetupUI/scim_imengine_setup.cpp:88 msgid "Global Setup" msgstr "Global Setup (Instalação Mundial)" #: ../modules/SetupUI/scim_frontend_setup.cpp:87 msgid "" "Setup the global options used by All FrontEnd modules, including X11 " "FrontEnd, GTK IMModule, QT IMModule etc." msgstr "Instalação das opções mundiais usadas por todos os módulos FrontEnd, incluindo X11 FrontEnd, GTK IMModule, QT IMModule, etc." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:143 msgid "_Trigger:" msgstr "_Trigger (Gatilho):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:145 msgid "Select the trigger keys" msgstr "Selecionar as teclas de gatilho" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:147 msgid "" "The key events to turn on/off SCIM input method. Click on the button on the " "right to edit it." msgstr "As teclas desligam e ligam o método de inserção do SCIM. Clique no botão ao lado direito para editá-lo." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:160 msgid "Turn _On:" msgstr "Turn _On (Ligar):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:162 msgid "Select the Turn On keys" msgstr "Selecionar as teclas Turn On (Ligar)" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:164 msgid "" "The key events to turn on SCIM input method. Click on the button on the " "right to edit it." msgstr "A tecla liga o método de inserção do SCIM. Clique no botão ao lado direito para editá-lo." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:177 msgid "Turn O_ff:" msgstr "Turn O_ff (Desligar):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:179 msgid "Select the Turn Off keys" msgstr "Selecione as teclas Turn Off (Desligar)" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:181 msgid "" "The key events to turn off SCIM input method. Click on the button on the " "right to edit it." msgstr "A tecla desliga o método de inserção do SCIM. Clique no botão ao lado direito para editá-lo." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:194 msgid "_Next input method:" msgstr "_Next input method: (Próximo método de inserção)" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:196 msgid "Select the next input method keys" msgstr "Seleciona as próximas chaves do método de inserção." #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:198 msgid "" "The key events to switch to the next input method. Click on the button on " "the right to edit it." msgstr "A chave muda para o próximo método de inserção. Clique no botão ao lado direito para editá-lo." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:213 msgid "_Previous input method:" msgstr "_Previous input method (Método de Inserção Anterior):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:215 msgid "Select the previous input method keys" msgstr "Seleciona as teclas do método de inserção anterior" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:217 msgid "" "The key events to switch to the previous input method. Click on the button " "on the right to edit it." msgstr "A tecla muda para o método de inserção anterior. Clique no botão da direita para editá-lo." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:232 msgid "Show input method _menu:" msgstr "Show input method_menu: (Exibir o menu do método de inserção)" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:234 msgid "Select the show input method menu keys" msgstr "Seleciona as teclas da exibição do menu do método de inserção" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:236 msgid "" "The key events to show the input method menu. Click on the button on the " "right to edit it." msgstr "A tecla exibe o menu do método de inserção. Clique no botão ao lado direito para editá-lo." #: ../modules/SetupUI/scim_frontend_setup.cpp:306 msgid "Options" msgstr "Opções" #: ../modules/SetupUI/scim_frontend_setup.cpp:321 msgid "_Keyboard Layout:" msgstr "_ Keyboard Layout: (Layout do Teclado)" #: ../modules/SetupUI/scim_frontend_setup.cpp:342 msgid "" "You should choose your currently used keyboard layout here so that input " "methods, who care about keyboard layout, could work correctly." msgstr "Você deve usar o layout do seu teclado atual usado aqui para que os métodos de inserção funcionem corretamente." #. On The Spot. #: ../modules/SetupUI/scim_frontend_setup.cpp:346 msgid "_Embed Preedit String into client window" msgstr "_Embed Preedit String into client window (Faixa de Pré-edição embutida na janela do cliente)" #: ../modules/SetupUI/scim_frontend_setup.cpp:351 msgid "" "If this option is checked, the preedit string will be displayed directly in " "the client input window, rather than in a independent float window." msgstr "Se esta opção for verificada, a faixa de pré-edição será exibida diretamente na janela de inserção do cliente, ao invés de ser exibida em uma janela flutuante independente." #. Shared input method. #: ../modules/SetupUI/scim_frontend_setup.cpp:360 msgid "_Share the same input method among all applications" msgstr "__Share the same input method among all applications (Compartilhar o mesmo método de inserção entre todos os aplicativos)" #: ../modules/SetupUI/scim_frontend_setup.cpp:365 msgid "" "If this option is checked, then only one input method could be used by all " "applications at the same time.Otherwise different input method could be used " "by each application." msgstr "Se esta opção for verificada, então somente um método de inserção pode ser usado por todos os aplicativos ao mesmo tempo. De outra forma, outros métodos de inserção poderiam ser usados por cada aplicativo." #: ../modules/SetupUI/scim_frontend_setup.cpp:373 #: ../modules/SetupUI/scim_imengine_setup.cpp:453 msgid "Hotkeys" msgstr "Hotkeys" #: ../modules/SetupUI/scim_imengine_setup.cpp:93 msgid "You can enable/disable input methods and set hotkeys for input methods here." msgstr "Você pode habilitar/desabilitar os métodos de inserção e configurar hotkeys para inserir métodos aqui." #: ../modules/SetupUI/scim_imengine_setup.cpp:296 msgid "The installed input method services:" msgstr "Os serviços instalados de método de inserção:" #. Create hotkey and filter button before factory list view, because #. factory_list_selection_changed_callback may access these two buttons. #: ../modules/SetupUI/scim_imengine_setup.cpp:311 msgid "Edit _Hotkeys" msgstr "Edit _Hotkeys (Editar Hotkeys)" #: ../modules/SetupUI/scim_imengine_setup.cpp:320 msgid "Edit Hotkeys associated with the selected input method." msgstr "Edit Hotkeys associado com o método de inserção selecionado." #: ../modules/SetupUI/scim_imengine_setup.cpp:322 msgid "Select _Filters" msgstr "Select _Filters (Selecionar Filtros)" #: ../modules/SetupUI/scim_imengine_setup.cpp:331 msgid "Select the Filters which will be attached to this input method." msgstr "Selecionar os Filtros que serão anexados à este método de inserção." #: ../modules/SetupUI/scim_imengine_setup.cpp:348 msgid "_Expand" msgstr "_Expand (Expandir)" #: ../modules/SetupUI/scim_imengine_setup.cpp:357 msgid "Expand all language categories." msgstr "Expandir todas as categorias dos idiomas." #: ../modules/SetupUI/scim_imengine_setup.cpp:359 msgid "_Collapse" msgstr "_Collapse (Recolher)" #: ../modules/SetupUI/scim_imengine_setup.cpp:368 msgid "Collapse all language categories." msgstr "Recolher todas as categorias de idiomas." #: ../modules/SetupUI/scim_imengine_setup.cpp:370 msgid "E_nable All" msgstr "E_nable All (Habilitar Todos)" #: ../modules/SetupUI/scim_imengine_setup.cpp:379 msgid "Enable all input methods." msgstr "Habilitar todos os métodos de inserção." #: ../modules/SetupUI/scim_imengine_setup.cpp:381 msgid "_Disable All" msgstr "_Disable All (Desabilitar todos)" #: ../modules/SetupUI/scim_imengine_setup.cpp:390 msgid "Disable all input methods." msgstr "Desabilitar todos os métodos de inserção." #: ../modules/SetupUI/scim_imengine_setup.cpp:414 #: ../modules/SetupUI/scim_imengine_setup.cpp:541 msgid "Name" msgstr "Nome" #: ../modules/SetupUI/scim_imengine_setup.cpp:432 #: ../modules/SetupUI/scim_imengine_setup.cpp:522 msgid "Enable" msgstr "Habilitar" #: ../modules/SetupUI/scim_imengine_setup.cpp:467 msgid "Filters" msgstr "Filtros" #: ../modules/SetupUI/scim_imengine_setup.cpp:560 msgid "Languages" msgstr "Idiomas" #: ../modules/SetupUI/scim_imengine_setup.cpp:574 msgid "Description" msgstr "Descrição" #: ../modules/SetupUI/scim_imengine_setup.cpp:1190 #, c-format msgid "Edit Hotkeys for %s" msgstr "Editar Hotkeys para %s" #: ../modules/SetupUI/scim_imengine_setup.cpp:1417 #, c-format msgid "Select Filters for %s" msgstr "Selecionar Filtros para %s" #: ../modules/SetupUI/scim_imengine_setup.cpp:1450 msgid "Move _Up" msgstr "Move_Up (Mover para Cima)" #: ../modules/SetupUI/scim_imengine_setup.cpp:1457 msgid "Move _Down" msgstr "Move_Down (Mover para Baixo)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:95 msgid "GTK" msgstr "GTK" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:100 msgid "A panel daemon based on GTK+-2.x library." msgstr "Um daemon de painel baseado na biblioteca GTK +-2.x." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:163 msgid "Always" msgstr "Always (Sempre)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:164 msgid "On demand" msgstr "On demand (sob encomenda)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:165 msgid "Never" msgstr "Never (Nunca)" #. Create the ToolBar setup block. #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:211 msgid "ToolBar" msgstr "Barra de Ferramentas" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:229 msgid "_Show:" msgstr "_Show: (Mostrar)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:245 msgid "Auto s_nap" msgstr "Auto s_nap" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:251 msgid "Show _input method icon" msgstr "Show _input method icon (Exibir ícone de método de inserção)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:257 msgid "Show inp_ut method name" msgstr "Show inp_ut method name (Exibir nome de método de inserção)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:269 msgid "Hide time_out:" msgstr "Hide time_out: (Esconder expiração da hora)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:282 msgid "Show s_tick icon" msgstr "Show s_tick icon (Exibir ícone de adesão)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:288 msgid "Show m_enu icon" msgstr "Show m_enu icon (Exibir ícone de menu)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:294 msgid "Show _help icon" msgstr "Show _help icon (Exibir ícone de ajuda)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:300 msgid "Show _property label" msgstr "Show _property label (Exibir etiqueta de propriedade)" #. Create the Input Window setup block #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:311 msgid "Input window" msgstr "Janela de inserção" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:320 msgid "E_mbedded lookup table" msgstr "E_mbedded lookup table (Tabela de busca embutida)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:324 msgid "_Vertical lookup table" msgstr "_Vertical lookup table (Tabela de busca vertical)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:328 msgid "Misc" msgstr "Misc" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:337 msgid "Show tra_y icon" msgstr "Show tra_y icon (Exibir ícone de bandeja)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:341 msgid "Stick _windows" msgstr "Stick _windows (Janela de Inserção)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:349 msgid "_Font:" msgstr "_Font (Fonte):" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:419 msgid "" "If option \"Always\" is selected, the toolbar will always be shown on the " "screen. If option \"On demand\" is selected, it will only be shown when SCIM " "is activated. If option \"Never\" is selected, it will never be shown." msgstr "Se a opção \"Always\" (sempre) estiver selecionada, a barra de ferramenta sempre será exibida na tela. Se a opção \"On demand\" (sob pedido) estiver selecionada, ela será exibida somente quando o SCIM estiver ativado. Se a opção \"Never\" (nunca) estiver selecionada, ela nunca será exibida." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:426 msgid "If this option is checked, the toolbar will be snapped to the screen border." msgstr "Se esta opção estiver selecionada, a barra de ferramentas estará na borda da tela." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:431 msgid "" "The toolbar will be hidden out after this timeout is elapsed. This option is " "only valid when \"Always show\" is selected. Set to zero to disable this " "behavior." msgstr "A barra de ferramentas estará escondida após este timeout expirar. Esta opção é válida somente quando \"Always show\" (sempre exibir) estiver selecionado. Ajuste para zero para ativar este comportamento." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:438 msgid "" "If this option is checked, the input method icon will be showed on the " "toolbar." msgstr "Se esta opção estiver selecionada, o ícone do método de inserção será exibido na barra de ferramentas." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:442 msgid "" "If this option is checked, the input method name will be showed on the " "toolbar." msgstr "Se esta opção estiver selecionada, o nome do método de inserção estará exposto na barra de ferramentas." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:446 msgid "If this option is checked, the stick icon will be showed on the toolbar." msgstr "Se esta opção estiver selecionada, o ícone de adesão estará exposto na barra de ferramentas." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:450 msgid "If this option is checked, the menu icon will be showed on the toolbar." msgstr "Se esta opção estiver selecionada, o ícone do menu estará exposto na barra de ferramentas." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:454 msgid "If this option is checked, the help icon will be showed on the toolbar." msgstr "Se esta opção estiver selecionada, o ícone de ajuda estará exposto na barra de ferramentas." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:458 msgid "" "If this option is checked, the text label of input method properties will be " "showed on the toolbar." msgstr "Se esta opção estiver selecionada, a etiqueta de texto das propriedades do método de inserção estarão expostos na barra de ferramentas." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:462 msgid "" "If this option is checked, the lookup table will be embedded into the input " "window." msgstr "Se esta opção estiver selecionada, a tabela de busca estará embutida na janela de inserção." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:467 msgid "If this option is checked, the lookup table will be displayed vertically." msgstr "Se esta opção estiver selecionada, a tabela de busca estará exposta verticalmente." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:472 msgid "" "If this option is checked, the tray icon will be showed on the desktop's " "taskbar." msgstr "Se esta opção estiver selecionada, o ícone da bandeja estará exposto na barra de tarefas do desktop." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:476 msgid "" "If this option is checked, the toolbar, input and lookup table windows will " "be sticked to its original position." msgstr "Se esta opção estiver selecionada, a barra de ferramenta e as janelas da tabela de busca e inserção estarão em sua posição original." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:482 msgid "The font setting will be used in the input and lookup table windows." msgstr "A configuração de fonte será usada nas janelas da tabela de busca e inserção." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:801 msgid "Select Interface Font" msgstr "Selecione a Fonte da Interface" #: ../extras/setup/scim_setup_ui.cpp:47 msgid "SCIM" msgstr "SCIM" #: ../extras/setup/scim_setup_ui.cpp:48 msgid "FrontEnd" msgstr "FrontEnd" #: ../extras/setup/scim_setup_ui.cpp:49 msgid "IMEngine" msgstr "IMEngine" #: ../extras/setup/scim_setup_ui.cpp:50 msgid "Panel" msgstr "Painel" #: ../extras/setup/scim_setup_ui.cpp:51 msgid "Extra" msgstr "Extra" #. #. vi:ts=4:nowrap:ai:expandtab #. #: ../extras/setup/scim_setup_ui.cpp:230 #: ../extras/setup/scim-setup.desktop.in.h:1 msgid "SCIM Input Method Setup" msgstr "Configuração do Método de Inserção do SCIM" #: ../extras/setup/scim_setup_ui.cpp:369 msgid "" " Smart Common Input Method platform \n" "\n" "GUI Setup Utility\n" "\n" "\n" "\n" "Copyright 2002-2004, James Su <suzhe@tsinghua.org." "cn>" msgstr "" " Smart Common Input Method platform \n" "\n" "GUI Setup Utility\n" "\n" "\n" "\n" "Copyright 2002-2004, James Su <suzhe@tsinghua.org." "cn>" #: ../extras/setup/scim_setup_ui.cpp:394 #, c-format msgid "The Setup for %s modules." msgstr "The Setup for %s modules." #: ../extras/setup/scim_setup_ui.cpp:456 msgid "Are you sure you want to quit SCIM Setup?" msgstr "Você tem certeza que deseja sair da Configuração do SCIM?" #: ../extras/setup/scim_setup_ui.cpp:685 msgid "" "Not all configuration can be reloaded on the fly. Don't forget to restart " "SCIM in order to let all of the new configuration take effect." msgstr "Nem todas as configurações podem ser recarregadas imediatamente. Não se esqueça de reiniciar o SCIM para permitir que todas as novas configurações sejam efetuadas." #: ../extras/setup/scim_setup_helper.cpp:49 msgid "SCIM Setup" msgstr "Configuração do SCIM" #: ../extras/setup/scim_setup_helper.cpp:51 msgid "Integrated Setup Utility based on GTK Widget library." msgstr "Ferramenta de Configuração Integrada baseada na biblioteca do Dispositivo GTK" #: ../extras/setup/scim-setup.desktop.in.h:2 msgid "Setup utility for Smart Common Input Method platform" msgstr "Ferramenta de Configuração para a plataforma do Método de Inserção Comum Inteligente." #: ../extras/panel/scim_panel_gtk.cpp:982 msgid "SCIM Help" msgstr "Ajuda do SCIM " #: ../extras/panel/scim_panel_gtk.cpp:999 msgid "Smart Common Input Method" msgstr "Método de Inserção Comum Inteligente" #: ../extras/panel/scim_panel_gtk.cpp:1058 msgid "Stick/unstick the input window and the toolbar." msgstr "Aderir/Retirar a janela de inserção e a barra de ferramentas" #: ../extras/panel/scim_panel_gtk.cpp:1063 msgid "Show a brief help about SCIM and the current input method." msgstr "Exibir uma ajuda breve sobre o SCIM e o método de inserção atual" #: ../extras/panel/scim_panel_gtk.cpp:1068 msgid "Show command menu." msgstr "Exibir o menu de comando." #: ../extras/panel/scim_panel_gtk.cpp:2306 msgid "" "\n" "(C) 2002-2005 James Su " msgstr "" "\n" "(C) 2002-2005 James Su " #. Reload Configuration. #: ../extras/panel/scim_panel_gtk.cpp:2385 msgid "Reload Configuration" msgstr "Recarregar Configuração" #. Stick #: ../extras/panel/scim_panel_gtk.cpp:2395 msgid "Stick Windows" msgstr "Aderir Janelas" #. Toolbar #: ../extras/panel/scim_panel_gtk.cpp:2404 msgid "Hide Toolbar" msgstr "Esconder Barra de Ferramentas" #. Help #: ../extras/panel/scim_panel_gtk.cpp:2413 msgid "Help ..." msgstr "Ajuda..." #. Clients exit. #: ../extras/panel/scim_panel_gtk.cpp:2431 msgid "Exit" msgstr "Sair" #: ../utils/scimstringview.c:196 msgid "Cursor Position" msgstr "Posição do Cursor" #: ../utils/scimstringview.c:197 msgid "The current position of the insertion cursor in chars." msgstr "A posição atual do cursor de inserção nos caracteres." #: ../utils/scimstringview.c:206 msgid "Maximum length" msgstr "Comprimento máximo" #: ../utils/scimstringview.c:207 msgid "Maximum number of characters for this string view. Zero if no maximum." msgstr "Número máximo de caracteres para a visualização desta faixa. Zero se estiver no máximo." #: ../utils/scimstringview.c:216 msgid "Maximum width" msgstr "Profundidade máxima" #: ../utils/scimstringview.c:217 msgid "Maximum width of this string view." msgstr "Profundidade máxima para a visualização desta faixa." #: ../utils/scimstringview.c:226 msgid "Has Frame" msgstr "Possui Quadro" #: ../utils/scimstringview.c:227 msgid "FALSE removes outside bevel from string view." msgstr "FALSE remove as molduras da visualização da faixa." #: ../utils/scimstringview.c:234 msgid "Draw cursor" msgstr "Virar cursor" #: ../utils/scimstringview.c:235 msgid "TRUE draw blinking cursor." msgstr "TRUE muda a iluminação do cursor " #: ../utils/scimstringview.c:242 msgid "Auto move cursor" msgstr "Cursor de movimento automático" #: ../utils/scimstringview.c:243 msgid "TRUE auto move cursor position when mouse clicking." msgstr "TRUE move automaticamente a posição do cursor quando clicar no mouse" #: ../utils/scimstringview.c:250 msgid "Forward button press event" msgstr "No evento de pressionar o Botão Próximo" #: ../utils/scimstringview.c:251 msgid "TRUE forward button press event to user program." msgstr "TRUE no evento de pressionar o botão próximo para programa de usuário." #: ../utils/scimstringview.c:258 msgid "Auto resize the widget to fit the string" msgstr "Redefinir o tamanho automaticamente para que o dispositivo se ajuste à faixa" #: ../utils/scimstringview.c:259 msgid "TRUE Auto resize on." msgstr "TRUE Redefinição automática ligada" #: ../utils/scimstringview.c:266 msgid "Width in chars" msgstr "Profundidade em caracteres" #: ../utils/scimstringview.c:267 msgid "Number of characters to leave space for in the string view." msgstr "Número de caracteres para deixar espaço para a visualização da faixa." #: ../utils/scimstringview.c:276 msgid "Scroll offset" msgstr "Rolar Deslocamento" #: ../utils/scimstringview.c:277 msgid "Number of pixels of the string view scrolled off the screen to the left" msgstr "Número de pixels da visualização da faixa rolada para fora da tela à esquerda" #: ../utils/scimstringview.c:286 msgid "Text" msgstr "Texto" #: ../utils/scimstringview.c:287 msgid "The contents of the string view" msgstr "O conteúdo da visualização da faixa" #: ../utils/scimkeyselection.cpp:155 msgid "Selected _Keys:" msgstr "Selected _Keys (Teclas Selecionadas):" #: ../utils/scimkeyselection.cpp:200 msgid "Key Code:" msgstr "Key Code (Código da Tecla):" #: ../utils/scimkeyselection.cpp:218 msgid "..." msgstr "..." #: ../utils/scimkeyselection.cpp:223 msgid "Modifiers:" msgstr "Modifiers (Modificadores):" #: ../utils/scimkeyselection.cpp:236 msgid "_Ctrl" msgstr "_Ctrl" #: ../utils/scimkeyselection.cpp:240 msgid "A_lt" msgstr "A_lt" #: ../utils/scimkeyselection.cpp:244 msgid "_Shift" msgstr "_Shift" #: ../utils/scimkeyselection.cpp:248 msgid "_Release" msgstr "_Release" #: ../utils/scimkeyselection.cpp:258 msgid "_Meta" msgstr "_Meta" #: ../utils/scimkeyselection.cpp:262 msgid "S_uper" msgstr "S_uper" #: ../utils/scimkeyselection.cpp:266 msgid "_Hyper" msgstr "_Hyper" #: ../utils/scimkeyselection.cpp:331 msgid "Please enter a Key Code first." msgstr "Por favor insira o Código da Tecla." #: ../utils/scimkeyselection.cpp:385 msgid "" "Press a key (or a key combination).\n" "This dialog will be closed when the key is released." msgstr "" "Insira a tecla (ou combinação de teclas).\n" "Este diálogo será fechado quando a tecla for liberada." #: ../utils/scimkeyselection.cpp:388 msgid "Grabbing a key." msgstr "Obtendo uma tecla." #: ../utils/scimkeyselection.cpp:678 msgid "Key Selection" msgstr "Seleção da Tecla" #: ../utils/scimtrayicon.c:108 msgid "Orientation" msgstr "Orientação" #: ../utils/scimtrayicon.c:109 msgid "The orientation of the tray." msgstr "A orientação da bandeja." scim-1.4.14/po/ru.po000066400000000000000000001232741177210725600141610ustar00rootroot00000000000000# translation of ru.po to # Russian translations for l package. # Copyright (C) 2008 THE l'S COPYRIGHT HOLDER # This file is distributed under the same license as the l package. # # Automatically generated, 2008. # Chester Cheng , 2008. # Yulia Poyarkova , 2008. msgid "" msgstr "" "Project-Id-Version: ru\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-06-22 11:40-0700\n" "PO-Revision-Date: 2008-03-27 10:46+1100\n" "Last-Translator: Yulia Poyarkova \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: KBabel 1.11.4\n" #: ../src/scim_compose_key.cpp:126 msgid "English/European" msgstr "ÐнглийÑкий/ Европа" #. Append an entry for forward mode. #: ../src/scim_imengine.cpp:638 ../src/scim_utility.cpp:693 #: ../modules/FrontEnd/scim_x11_frontend.cpp:1897 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1281 #: ../extras/panel/scim_panel_gtk.cpp:2814 msgid "English/Keyboard" msgstr "ÐнглийÑкий/ клавиатура" #: ../src/scim_utility.cpp:694 msgid "Amharic" msgstr "ÐмхарÑкий" #: ../src/scim_utility.cpp:695 msgid "Arabic" msgstr "ÐрабÑкий" #: ../src/scim_utility.cpp:696 msgid "Arabic (Egypt)" msgstr "ÐрабÑкий (Египт)" #: ../src/scim_utility.cpp:697 msgid "Arabic (Lebanon)" msgstr "ÐрабÑкий (Ливан)" #: ../src/scim_utility.cpp:698 msgid "Assamese" msgstr "ÐÑÑамÑкий" #: ../src/scim_utility.cpp:699 msgid "Azerbaijani" msgstr "ÐзербайджанÑкий" #: ../src/scim_utility.cpp:700 msgid "Belarusian" msgstr "БелоруÑÑкий" #: ../src/scim_utility.cpp:701 msgid "Bulgarian" msgstr "БолгарÑкий" #: ../src/scim_utility.cpp:702 ../src/scim_utility.cpp:703 msgid "Bengali" msgstr "БенгальÑкий" #: ../src/scim_utility.cpp:704 msgid "Bengali (India)" msgstr "Бенгали (ИндиÑ)" #: ../src/scim_utility.cpp:705 msgid "Tibetan" msgstr "ТибетÑкий" #: ../src/scim_utility.cpp:706 msgid "Bosnian" msgstr "БоÑнийÑкий" #: ../src/scim_utility.cpp:707 msgid "Catalan" msgstr "КаталонÑкий" #: ../src/scim_utility.cpp:708 ../src/scim_keyboard_layout_data.h:4595 msgid "Czech" msgstr "ЧешÑкий" #: ../src/scim_utility.cpp:709 msgid "Welsh" msgstr "ВаллийÑкий" #: ../src/scim_utility.cpp:710 ../src/scim_keyboard_layout_data.h:4597 msgid "Danish" msgstr "ДатÑкий" #: ../src/scim_utility.cpp:711 ../src/scim_keyboard_layout_data.h:4605 msgid "German" msgstr "Ðемецкий" #: ../src/scim_utility.cpp:712 msgid "Divehi" msgstr "Дивехи" #: ../src/scim_utility.cpp:713 ../src/scim_keyboard_layout_data.h:4608 msgid "Greek" msgstr "ГречеÑкий" #: ../src/scim_utility.cpp:714 msgid "English" msgstr "ÐнглийÑкий" #: ../src/scim_utility.cpp:715 msgid "English (Australian)" msgstr "ÐнглийÑкий (ÐвÑтралиÑ)" #: ../src/scim_utility.cpp:716 msgid "English (Canadian)" msgstr "ÐнглийÑкий (Канада)" #: ../src/scim_utility.cpp:717 msgid "English (British)" msgstr "ÐнглийÑкий (ВеликобританиÑ)" #: ../src/scim_utility.cpp:718 msgid "English (Ireland)" msgstr "ÐнглийÑкий (ИрландиÑ)" #: ../src/scim_utility.cpp:719 msgid "English (American)" msgstr "ÐнглийÑкий (СШÐ)" #: ../src/scim_utility.cpp:720 ../src/scim_utility.cpp:721 #: ../src/scim_keyboard_layout_data.h:4621 msgid "Spanish" msgstr "ИÑпанÑкий" #: ../src/scim_utility.cpp:722 msgid "Spanish (Mexico)" msgstr "ИÑпанÑкий (МекÑика)" #: ../src/scim_utility.cpp:723 ../src/scim_keyboard_layout_data.h:4600 msgid "Estonian" msgstr "ЭÑтонÑкий" #: ../src/scim_utility.cpp:724 msgid "Basque" msgstr "БаÑкÑкий" #: ../src/scim_utility.cpp:725 msgid "Persian" msgstr "ПерÑидÑкий" #: ../src/scim_utility.cpp:726 ../src/scim_keyboard_layout_data.h:4601 msgid "Finnish" msgstr "ФинÑкий" #: ../src/scim_utility.cpp:727 ../src/scim_keyboard_layout_data.h:4602 msgid "French" msgstr "ФранцузÑкий" #: ../src/scim_utility.cpp:728 msgid "Irish" msgstr "ИрландÑкий" #: ../src/scim_utility.cpp:729 msgid "Galician" msgstr "ГалиÑийÑкий" #: ../src/scim_utility.cpp:730 msgid "Gujarati" msgstr "Гуджарати" #: ../src/scim_utility.cpp:731 ../src/scim_utility.cpp:740 msgid "Hebrew" msgstr "Иврит" #: ../src/scim_utility.cpp:732 msgid "Hindi" msgstr "Хинди" #: ../src/scim_utility.cpp:733 ../src/scim_keyboard_layout_data.h:4594 msgid "Croatian" msgstr "ХорватÑкий" #: ../src/scim_utility.cpp:734 ../src/scim_keyboard_layout_data.h:4609 msgid "Hungarian" msgstr "ВенгерÑкий" #: ../src/scim_utility.cpp:735 msgid "Armenian" msgstr "ÐрмÑнÑкий" #: ../src/scim_utility.cpp:736 msgid "Interlingua" msgstr "Интерлингва" #: ../src/scim_utility.cpp:737 msgid "Indonesian" msgstr "ИндонезийÑкий" #: ../src/scim_utility.cpp:738 ../src/scim_keyboard_layout_data.h:4627 msgid "Icelandic" msgstr "ИÑландÑкий" #: ../src/scim_utility.cpp:739 ../src/scim_keyboard_layout_data.h:4610 msgid "Italian" msgstr "ИтальÑнÑкий" #: ../src/scim_utility.cpp:741 ../src/scim_keyboard_layout_data.h:4611 msgid "Japanese" msgstr "ЯпонÑкий" #: ../src/scim_utility.cpp:742 msgid "Georgian" msgstr "ГрузинÑкий" #: ../src/scim_utility.cpp:743 msgid "Kazakh" msgstr "КазахÑкий" #: ../src/scim_utility.cpp:744 msgid "Cambodian" msgstr "КамбоджийÑкий" #: ../src/scim_utility.cpp:745 msgid "Kannada" msgstr "Каннада" #: ../src/scim_utility.cpp:746 msgid "Korean" msgstr "КорейÑкий" #: ../src/scim_utility.cpp:747 msgid "Laothian" msgstr "ЛаоÑÑкий" #: ../src/scim_utility.cpp:748 ../src/scim_keyboard_layout_data.h:4628 msgid "Lithuanian" msgstr "ЛитовÑкий" #: ../src/scim_utility.cpp:749 msgid "Latvian" msgstr "ЛатвийÑкий" #: ../src/scim_utility.cpp:750 msgid "Macedonian" msgstr "МакедонÑкий" #: ../src/scim_utility.cpp:751 msgid "Malayalam" msgstr "МалаÑлам" #: ../src/scim_utility.cpp:752 msgid "Mongolian" msgstr "МонгольÑкий" #: ../src/scim_utility.cpp:753 msgid "Marathi" msgstr "Маратхи" #: ../src/scim_utility.cpp:754 msgid "Malay" msgstr "МалайÑкий" #: ../src/scim_utility.cpp:755 msgid "Burmese" msgstr "БирманÑкий" #: ../src/scim_utility.cpp:756 msgid "Nepali" msgstr "ÐепальÑкий" #: ../src/scim_utility.cpp:757 ../src/scim_keyboard_layout_data.h:4598 msgid "Dutch" msgstr "ГолландÑкий" #: ../src/scim_utility.cpp:758 msgid "Norwegian (nynorsk)" msgstr "ÐорвежÑкий (нюнорÑк)" #: ../src/scim_utility.cpp:759 msgid "Norwegian (bokmal)" msgstr "ÐорвежÑкий (букмол)" #: ../src/scim_utility.cpp:760 msgid "Oriya" msgstr "ОриÑ" #: ../src/scim_utility.cpp:761 msgid "Punjabi" msgstr "Панджаби" #: ../src/scim_utility.cpp:762 ../src/scim_keyboard_layout_data.h:4613 msgid "Polish" msgstr "ПольÑкий" #: ../src/scim_utility.cpp:763 ../src/scim_utility.cpp:765 #: ../src/scim_keyboard_layout_data.h:4614 msgid "Portuguese" msgstr "ПортугальÑкий" #: ../src/scim_utility.cpp:764 ../src/scim_keyboard_layout_data.h:4615 msgid "Portuguese (Brazil)" msgstr "ПортугальÑкий (БразилиÑ)" #: ../src/scim_utility.cpp:766 msgid "Romanian" msgstr "РумынÑкий" #: ../src/scim_utility.cpp:767 ../src/scim_keyboard_layout_data.h:4617 msgid "Russian" msgstr "РуÑÑкий" #: ../src/scim_utility.cpp:768 msgid "Sinhala" msgstr "СингальÑкий" #: ../src/scim_utility.cpp:769 ../src/scim_keyboard_layout_data.h:4618 msgid "Slovak" msgstr "Словацкий" #: ../src/scim_utility.cpp:770 ../src/scim_keyboard_layout_data.h:4620 msgid "Slovenian" msgstr "СловенÑкий" #: ../src/scim_utility.cpp:771 msgid "Albanian" msgstr "ÐлбанÑкий" #: ../src/scim_utility.cpp:772 ../src/scim_utility.cpp:773 #: ../src/scim_utility.cpp:774 msgid "Serbian" msgstr "СербÑкий" #: ../src/scim_utility.cpp:775 ../src/scim_utility.cpp:777 #: ../src/scim_keyboard_layout_data.h:4624 msgid "Swedish" msgstr "ШведÑкий" #: ../src/scim_utility.cpp:776 msgid "Swedish (Finland)" msgstr "ШведÑкий (ФинлÑндиÑ)" #: ../src/scim_utility.cpp:778 msgid "Tamil" msgstr "ТамильÑкий" #: ../src/scim_utility.cpp:779 msgid "Telugu" msgstr "Телугу" #: ../src/scim_utility.cpp:780 msgid "Thai" msgstr "ТайÑкий" #: ../src/scim_utility.cpp:781 ../src/scim_keyboard_layout_data.h:4625 msgid "Turkish" msgstr "Турецкий" #: ../src/scim_utility.cpp:782 msgid "Uighur" msgstr "УйгурÑкий" #: ../src/scim_utility.cpp:783 ../src/scim_keyboard_layout_data.h:4629 msgid "Ukrainian" msgstr "УкраинÑкий" #: ../src/scim_utility.cpp:784 msgid "Urdu" msgstr "Урду" #: ../src/scim_utility.cpp:785 msgid "Uzbek" msgstr "УзбекÑкий" #: ../src/scim_utility.cpp:786 msgid "Vietnamese" msgstr "ВьетнамÑкий" #: ../src/scim_utility.cpp:787 msgid "Walloon" msgstr "ВаллонÑкий" #: ../src/scim_utility.cpp:788 ../src/scim_utility.cpp:789 msgid "Yiddish" msgstr "Идиш" #: ../src/scim_utility.cpp:790 msgid "Chinese" msgstr "КитайÑкий" #: ../src/scim_utility.cpp:791 ../src/scim_utility.cpp:793 msgid "Chinese (simplified)" msgstr "КитайÑкий (упрощенный)" #: ../src/scim_utility.cpp:792 ../src/scim_utility.cpp:794 msgid "Chinese (traditional)" msgstr "КитайÑкий (традиционный)" #: ../src/scim_utility.cpp:876 msgid "Other" msgstr "Другой" #: ../src/scim_keyboard_layout_data.h:4591 #: ../modules/IMEngine/scim_socket_imengine.cpp:386 #: ../modules/IMEngine/scim_socket_imengine.cpp:416 #: ../modules/IMEngine/scim_socket_imengine.cpp:501 #: ../modules/IMEngine/scim_socket_imengine.cpp:531 #: ../modules/IMEngine/scim_socket_imengine.cpp:561 msgid "Unknown" msgstr "ÐеизвеÑтный" #: ../src/scim_keyboard_layout_data.h:4592 msgid "English (US)" msgstr "ÐнглийÑкий (СШÐ)" #: ../src/scim_keyboard_layout_data.h:4593 msgid "Belgian" msgstr "БельгийÑкий" #: ../src/scim_keyboard_layout_data.h:4596 msgid "Czech (qwerty)" msgstr "ЧешÑкий (qwerty)" #: ../src/scim_keyboard_layout_data.h:4599 msgid "Dvorak" msgstr "Дворак" #: ../src/scim_keyboard_layout_data.h:4603 msgid "French (Canadian)" msgstr "ФранцузÑкий (Канада)" #: ../src/scim_keyboard_layout_data.h:4604 msgid "French (Switzerland)" msgstr "ФранцузÑкий (ШвейцариÑ)" #: ../src/scim_keyboard_layout_data.h:4606 msgid "German (with deadkeys)" msgstr "Ðемецкий (Ñо «Ñлепыми» клавишами)" #: ../src/scim_keyboard_layout_data.h:4607 msgid "German (Swiss)" msgstr "Ðемецкий (ШвейцариÑ)" #: ../src/scim_keyboard_layout_data.h:4612 msgid "Norwegian" msgstr "ÐорвежÑкий" #: ../src/scim_keyboard_layout_data.h:4616 msgid "Portuguese (Brazil US accents)" msgstr "ПортугальÑкий (БразилиÑ/СШÐ)" #: ../src/scim_keyboard_layout_data.h:4619 msgid "Slovak (qwerty)" msgstr "Словацкий (qwerty)" #: ../src/scim_keyboard_layout_data.h:4622 msgid "Spanish (CP 850)" msgstr "ИÑпанÑкий (CP 850)" #: ../src/scim_keyboard_layout_data.h:4623 msgid "Spanish (Latin America)" msgstr "ИÑпанÑкий (ЛатинÑÐºÐ°Ñ Ðмерика)" #: ../src/scim_keyboard_layout_data.h:4626 msgid "English (UK)" msgstr "ÐнглийÑкий (ВеликобританиÑ)" #: ../modules/Filter/scim_sctc_filter.cpp:57 msgid "Simplified-Traditional Chinese Conversion" msgstr "ÐšÐ¾Ð½Ð²ÐµÑ€Ñ‚Ð°Ñ†Ð¸Ñ ÑƒÐ¿Ñ€Ð¾Ñ‰ÐµÐ½Ð½Ð¾Ð³Ð¾ китайÑкого в традиционный" #: ../modules/Filter/scim_sctc_filter.cpp:60 msgid "Convert between Simplified Chinese and Traditional Chinese" msgstr "Преобразование упрощенного китайÑкого в традиционный" #: ../modules/Filter/scim_sctc_filter.cpp:71 msgid "SC-TC" msgstr "Упр.-Трад." #: ../modules/Filter/scim_sctc_filter.cpp:73 #: ../modules/Filter/scim_sctc_filter.cpp:78 msgid "Simplified-Traditional Chinese conversion" msgstr "ÐšÐ¾Ð½Ð²ÐµÑ€Ñ‚Ð°Ñ†Ð¸Ñ ÑƒÐ¿Ñ€Ð¾Ñ‰ÐµÐ½Ð½Ð¾Ð³Ð¾ китайÑкого в традиционный" #: ../modules/Filter/scim_sctc_filter.cpp:76 msgid "No Conversion" msgstr "Ðе преобразовывать" #: ../modules/Filter/scim_sctc_filter.cpp:81 msgid "Simplified to Traditional" msgstr "Упрощенный в традиционный" #: ../modules/Filter/scim_sctc_filter.cpp:83 msgid "Convert Simplified Chinese to Traditional Chinese" msgstr "Преобразовать упрощенный китайÑкий в традиционный" #: ../modules/Filter/scim_sctc_filter.cpp:86 msgid "Traditional to Simplified" msgstr "Традиционный в упрощенный" #: ../modules/Filter/scim_sctc_filter.cpp:88 msgid "Convert Traditional Chinese to Simplified Chinese" msgstr "Преобразовать традиционный китайÑкий в упрощенный" #: ../modules/Filter/scim_sctc_filter.cpp:300 msgid "James Su " msgstr "Ð”Ð¶ÐµÐ¹Ð¼Ñ Ð¡Ñƒ " #: ../modules/Filter/scim_sctc_filter.cpp:425 #: ../modules/Filter/scim_sctc_filter.cpp:555 #: ../modules/Filter/scim_sctc_filter.cpp:571 msgid "SC->TC" msgstr "Упр.->Трад." #: ../modules/Filter/scim_sctc_filter.cpp:431 #: ../modules/Filter/scim_sctc_filter.cpp:559 #: ../modules/Filter/scim_sctc_filter.cpp:575 msgid "TC->SC" msgstr "Трад.->Упр." #: ../modules/FrontEnd/scim_x11_frontend.cpp:1845 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1231 #: ../extras/panel/scim_panel_gtk.cpp:2304 msgid "Smart Common Input Method platform " msgstr "платформа SCIM (Smart Common Input Method)" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1847 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1233 msgid "" "\n" "(C) 2002-2005 James Su \n" "\n" msgstr "" "\n" "(C) 2002-2005 Ð”Ð¶ÐµÐ¹Ð¼Ñ Ð¡Ñƒ \n" "\n" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1851 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1238 msgid "" ":\n" "\n" msgstr "" ":\n" "\n" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1854 #: ../modules/FrontEnd/scim_x11_frontend.cpp:1857 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1241 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1244 msgid "" "\n" "\n" msgstr "" "\n" "\n" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:120 msgid "RAW CODE" msgstr "RAW CODE" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:127 msgid "(C) 2002-2006 James Su " msgstr "(C) 2002-2006 Ð”Ð¶ÐµÐ¹Ð¼Ñ Ð¡Ñƒ " #: ../modules/IMEngine/scim_rawcode_imengine.cpp:140 msgid "" "Hot Keys:\n" "\n" " Control+u:\n" " switch between Multibyte encoding and Unicode.\n" "\n" " Esc:\n" " reset the input method.\n" msgstr "" "«ГорÑчие» клавиши:\n" "\n" " Control+U:\n" " переключение между кодировками Unicode и Multibyte.\n" "\n" " Esc:\n" " ÑÐ±Ñ€Ð¾Ñ Ð¼ÐµÑ‚Ð¾Ð´Ð° ввода.\n" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:407 #: ../modules/IMEngine/scim_rawcode_imengine.cpp:423 msgid "The status of the current input method. Click to change it." msgstr "Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ñ‚ÐµÐºÑƒÑ‰ÐµÐ³Ð¾ метода ввода. Ðажмите Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ." #: ../modules/IMEngine/scim_rawcode_imengine.cpp:409 msgid "Unicode" msgstr "Unicode" #: ../modules/SetupUI/scim_frontend_setup.cpp:82 #: ../modules/SetupUI/scim_imengine_setup.cpp:88 msgid "Global Setup" msgstr "Глобальные наÑтройки" #: ../modules/SetupUI/scim_frontend_setup.cpp:87 msgid "" "Setup the global options used by All FrontEnd modules, including X11 " "FrontEnd, GTK IMModule, QT IMModule etc." msgstr "ÐаÑтройка глобальных параметров, иÑпользуемых такими компонентами как X11 FrontEnd, GTK IMModule, QT IMModule и др." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:143 msgid "_Trigger:" msgstr "_Триггер:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:145 msgid "Select the trigger keys" msgstr "Выберите клавиши триггера" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:147 msgid "" "The key events to turn on/off SCIM input method. Click on the button on the " "right to edit it." msgstr "Комбинации клавиш Ð´Ð»Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð¸ Ð²Ñ‹ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð¼ÐµÑ‚Ð¾Ð´Ð° ввода SCIM. Ðажмите кнопку Ñправа Ð´Ð»Ñ Ð¸Ñ… изменениÑ." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:160 msgid "Turn _On:" msgstr "Ð’_ключить:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:162 msgid "Select the Turn On keys" msgstr "Выберите клавиши включениÑ" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:164 msgid "" "The key events to turn on SCIM input method. Click on the button on the " "right to edit it." msgstr "Комбинации клавиш, включающие метод ввода SCIM. Ðажмите кнопку Ñправа Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:177 msgid "Turn O_ff:" msgstr "Ð’_ыключить:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:179 msgid "Select the Turn Off keys" msgstr "Выберите клавиши выключениÑ" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:181 msgid "" "The key events to turn off SCIM input method. Click on the button on the " "right to edit it." msgstr "Комбинации клавиш, включающие метод ввода SCIM. Ðажмите кнопку Ñправа Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:194 msgid "_Next input method:" msgstr "_Следующий метод ввода:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:196 msgid "Select the next input method keys" msgstr "Выберите клавиши выбора Ñледующего метода ввода" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:198 msgid "" "The key events to switch to the next input method. Click on the button on " "the right to edit it." msgstr "Комбинации клавиш Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ñледующего метода ввода. Ðажмите кнопку Ñправа Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:213 msgid "_Previous input method:" msgstr "Пр_едыдущий метод ввода:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:215 msgid "Select the previous input method keys" msgstr "Выберите клавиши Ð´Ð»Ñ Ð¿Ñ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰ÐµÐ³Ð¾ метода ввода" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:217 msgid "" "The key events to switch to the previous input method. Click on the button " "on the right to edit it." msgstr "Комбинации клавиш Ð´Ð»Ñ Ð²Ñ‹Ð±Ð¾Ñ€Ð° предыдущего метода ввода. Ðажмите кнопку Ñправа Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:232 msgid "Show input method _menu:" msgstr "Показать меню _метода ввода:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:234 msgid "Select the show input method menu keys" msgstr "Выберите комбинацию клавиш Ð´Ð»Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð¼ÐµÑ‚Ð¾Ð´Ð° ввода" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:236 msgid "" "The key events to show the input method menu. Click on the button on the " "right to edit it." msgstr "Комбинации клавиш Ð´Ð»Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð¼ÐµÑ‚Ð¾Ð´Ð° ввода. Ðажмите кнопку Ñправа Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ." #: ../modules/SetupUI/scim_frontend_setup.cpp:306 msgid "Options" msgstr "Параметры" #: ../modules/SetupUI/scim_frontend_setup.cpp:321 msgid "_Keyboard Layout:" msgstr "_РаÑкладка клавиатуры:" #: ../modules/SetupUI/scim_frontend_setup.cpp:342 msgid "" "You should choose your currently used keyboard layout here so that input " "methods, who care about keyboard layout, could work correctly." msgstr "ЗдеÑÑŒ Ñледует выбрать вашу текущую раÑкладку клавиатуры, чтобы методы ввода работали корректно." #. On The Spot. #: ../modules/SetupUI/scim_frontend_setup.cpp:346 msgid "_Embed Preedit String into client window" msgstr "_ПомеÑтить преформатированную Ñтроку в окно клиента" #: ../modules/SetupUI/scim_frontend_setup.cpp:351 msgid "" "If this option is checked, the preedit string will be displayed directly in " "the client input window, rather than in a independent float window." msgstr "При выборе Ñтой опции Ð¿Ñ€ÐµÑ„Ð¾Ñ€Ð¼Ð°Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ð°Ñ Ñтрока будет отображена в окне ввода клиента, а не в отдельном вÑплывающем окне." #. Shared input method. #: ../modules/SetupUI/scim_frontend_setup.cpp:360 msgid "_Share the same input method among all applications" msgstr "Раз_делÑть метод ввода между приложениÑми" #: ../modules/SetupUI/scim_frontend_setup.cpp:365 msgid "" "If this option is checked, then only one input method could be used by all " "applications at the same time.Otherwise different input method could be used " "by each application." msgstr "При выборе Ñтой опции будет иÑпользоватьÑÑ Ð¾Ð´Ð¸Ð½ метод ввода Ð´Ð»Ñ Ð²Ñех приложений. Ð’ противном Ñлучае можно иÑпользовать различные методы." #: ../modules/SetupUI/scim_frontend_setup.cpp:373 #: ../modules/SetupUI/scim_imengine_setup.cpp:453 msgid "Hotkeys" msgstr "«ГорÑчие» клавиши" #: ../modules/SetupUI/scim_imengine_setup.cpp:93 msgid "You can enable/disable input methods and set hotkeys for input methods here." msgstr "ЗдеÑÑŒ вы можете включить/ выключить методы ввода и назначить «горÑчие» клавиши." #: ../modules/SetupUI/scim_imengine_setup.cpp:296 msgid "The installed input method services:" msgstr "УÑтановленные Ñлужбы метода ввода:" #. Create hotkey and filter button before factory list view, because #. factory_list_selection_changed_callback may access these two buttons. #: ../modules/SetupUI/scim_imengine_setup.cpp:311 msgid "Edit _Hotkeys" msgstr "Изменить «_горÑчие» клавиши" #: ../modules/SetupUI/scim_imengine_setup.cpp:320 msgid "Edit Hotkeys associated with the selected input method." msgstr "Измените «горÑчие» клавиши, ÑвÑзанные Ñ Ð´Ð°Ð½Ð½Ñ‹Ð¼ методом ввода." #: ../modules/SetupUI/scim_imengine_setup.cpp:322 msgid "Select _Filters" msgstr "Выбрать _фильтры" #: ../modules/SetupUI/scim_imengine_setup.cpp:331 msgid "Select the Filters which will be attached to this input method." msgstr "Выберите фильтры Ð´Ð»Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ метода ввода." #: ../modules/SetupUI/scim_imengine_setup.cpp:348 msgid "_Expand" msgstr "Ра_звернуть" #: ../modules/SetupUI/scim_imengine_setup.cpp:357 msgid "Expand all language categories." msgstr "Отобразить вÑе группы Ñзыков." #: ../modules/SetupUI/scim_imengine_setup.cpp:359 msgid "_Collapse" msgstr "С_вернуть" #: ../modules/SetupUI/scim_imengine_setup.cpp:368 msgid "Collapse all language categories." msgstr "Свернуть вÑе группы Ñзыков." #: ../modules/SetupUI/scim_imengine_setup.cpp:370 msgid "E_nable All" msgstr "Ð’_ключить вÑе" #: ../modules/SetupUI/scim_imengine_setup.cpp:379 msgid "Enable all input methods." msgstr "Включить вÑе методы ввода." #: ../modules/SetupUI/scim_imengine_setup.cpp:381 msgid "_Disable All" msgstr "Ð’_ыключить вÑе" #: ../modules/SetupUI/scim_imengine_setup.cpp:390 msgid "Disable all input methods." msgstr "Выключить вÑе методы ввода." #: ../modules/SetupUI/scim_imengine_setup.cpp:414 #: ../modules/SetupUI/scim_imengine_setup.cpp:541 msgid "Name" msgstr "ИмÑ" #: ../modules/SetupUI/scim_imengine_setup.cpp:432 #: ../modules/SetupUI/scim_imengine_setup.cpp:522 msgid "Enable" msgstr "Включить" #: ../modules/SetupUI/scim_imengine_setup.cpp:467 msgid "Filters" msgstr "Фильтры" #: ../modules/SetupUI/scim_imengine_setup.cpp:560 msgid "Languages" msgstr "Языки" #: ../modules/SetupUI/scim_imengine_setup.cpp:574 msgid "Description" msgstr "ОпиÑание" #: ../modules/SetupUI/scim_imengine_setup.cpp:1190 #, c-format msgid "Edit Hotkeys for %s" msgstr "Изменить «горÑчие» клавиши Ð´Ð»Ñ %s" #: ../modules/SetupUI/scim_imengine_setup.cpp:1417 #, c-format msgid "Select Filters for %s" msgstr "Выбрать фильтры Ð´Ð»Ñ %s" #: ../modules/SetupUI/scim_imengine_setup.cpp:1450 msgid "Move _Up" msgstr "Ð’_верх" #: ../modules/SetupUI/scim_imengine_setup.cpp:1457 msgid "Move _Down" msgstr "Ð’_низ" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:95 msgid "GTK" msgstr "GTK" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:100 msgid "A panel daemon based on GTK+-2.x library." msgstr "Демон панели Ñоздан на оÑнове библиотеки GTK+-2.x." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:163 msgid "Always" msgstr "Ð’Ñегда" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:164 msgid "On demand" msgstr "По требованию" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:165 msgid "Never" msgstr "Ðикогда" #. Create the ToolBar setup block. #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:211 msgid "ToolBar" msgstr "Панель инÑтрументов" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:229 msgid "_Show:" msgstr "_Показать:" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:245 msgid "Auto s_nap" msgstr "_ÐвтопривÑзка" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:251 msgid "Show _input method icon" msgstr "Показать _значок метода ввода" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:257 msgid "Show inp_ut method name" msgstr "Показать _Ð¸Ð¼Ñ Ð¼ÐµÑ‚Ð¾Ð´Ð° ввода" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:269 msgid "Hide time_out:" msgstr "СпрÑтать _таймаут:" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:282 msgid "Show s_tick icon" msgstr "Показать значок пр_ивÑзки" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:288 msgid "Show m_enu icon" msgstr "Показать значок мен_ÑŽ" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:294 msgid "Show _help icon" msgstr "Показать значок помо_щи" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:300 msgid "Show _property label" msgstr "Показать метку _ÑвойÑтв" #. Create the Input Window setup block #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:311 msgid "Input window" msgstr "Окно ввода" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:320 msgid "E_mbedded lookup table" msgstr "Ð’ÑÑ‚_Ñ€Ð¾ÐµÐ½Ð½Ð°Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ð° поиÑка" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:324 msgid "_Vertical lookup table" msgstr "Ð’_ÐµÑ€Ñ‚Ð¸ÐºÐ°Ð»ÑŒÐ½Ð°Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ð° поиÑка" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:328 msgid "Misc" msgstr "Прочее" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:337 msgid "Show tra_y icon" msgstr "Показать значок в _панели задач" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:341 msgid "Stick _windows" msgstr "Заблокировать о_кна" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:349 msgid "_Font:" msgstr "_Шрифт:" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:419 msgid "" "If option \"Always\" is selected, the toolbar will always be shown on the " "screen. If option \"On demand\" is selected, it will only be shown when SCIM " "is activated. If option \"Never\" is selected, it will never be shown." msgstr "ЕÑли выбран вариант «ВÑегда», то панель инÑтрументов будет вÑегда отображена. ЕÑли же выбрать «По требованию», то панель будет показана только при активации SCIM. «Ðикогда» отменит отображение панели." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:426 msgid "If this option is checked, the toolbar will be snapped to the screen border." msgstr "При выборе Ñтой опции панель инÑтрументов будет привÑзана к границе Ñкрана." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:431 msgid "" "The toolbar will be hidden out after this timeout is elapsed. This option is " "only valid when \"Always show\" is selected. Set to zero to disable this " "behavior." msgstr "По иÑтечению таймаута панель будет ÑпрÑтана (только еÑли Ð¾Ð¿Ñ†Ð¸Ñ Ð¸Ð¼ÐµÐµÑ‚ значение «ВÑегда»). УÑтановка в 0 (ноль) отключит Ñту возможноÑть." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:438 msgid "" "If this option is checked, the input method icon will be showed on the " "toolbar." msgstr "ЕÑли Ñта Ð¾Ð¿Ñ†Ð¸Ñ Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð°, то значок метода ввода будет отображен на панели инÑтрументов." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:442 msgid "" "If this option is checked, the input method name will be showed on the " "toolbar." msgstr "ЕÑли Ñта Ð¾Ð¿Ñ†Ð¸Ñ Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð°, то Ð¸Ð¼Ñ Ð¼ÐµÑ‚Ð¾Ð´Ð° ввода будет отображено на панели инÑтрументов." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:446 msgid "If this option is checked, the stick icon will be showed on the toolbar." msgstr "ЕÑли Ñта Ð¾Ð¿Ñ†Ð¸Ñ Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð°, то значок привÑзки будет отображен на панели инÑтрументов." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:450 msgid "If this option is checked, the menu icon will be showed on the toolbar." msgstr "ЕÑли Ñта Ð¾Ð¿Ñ†Ð¸Ñ Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð°, то значок меню будет отображен на панели инÑтрументов." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:454 msgid "If this option is checked, the help icon will be showed on the toolbar." msgstr "ЕÑли Ñта Ð¾Ð¿Ñ†Ð¸Ñ Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð°, то значок помощи будет отображен на панели инÑтрументов." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:458 msgid "" "If this option is checked, the text label of input method properties will be " "showed on the toolbar." msgstr "ЕÑли Ñта Ð¾Ð¿Ñ†Ð¸Ñ Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð°, то текÑÑ‚Ð¾Ð²Ð°Ñ Ð¼ÐµÑ‚ÐºÐ° метода ввода будет отображена на панели инÑтрументов." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:462 msgid "" "If this option is checked, the lookup table will be embedded into the input " "window." msgstr "ЕÑли Ñта Ð¾Ð¿Ñ†Ð¸Ñ Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð°, то в окно ввода будет вÑтроена таблица поиÑка." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:467 msgid "If this option is checked, the lookup table will be displayed vertically." msgstr "ЕÑли Ñта Ð¾Ð¿Ñ†Ð¸Ñ Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð°, то таблица проÑмотра будет отображена вертикально." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:472 msgid "" "If this option is checked, the tray icon will be showed on the desktop's " "taskbar." msgstr "ЕÑли Ñта Ð¾Ð¿Ñ†Ð¸Ñ Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð°, то значок будет показан в панели задач." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:476 msgid "" "If this option is checked, the toolbar, input and lookup table windows will " "be sticked to its original position." msgstr "ЕÑли Ñта Ð¾Ð¿Ñ†Ð¸Ñ Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð°, то панель инÑтрументов, окна таблицы поиÑка и ввода будут помещены в иÑходное положение." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:482 msgid "The font setting will be used in the input and lookup table windows." msgstr "ÐаÑтройки шрифта будут дейÑтвительны Ð´Ð»Ñ Ð¾ÐºÐ¾Ð½ ввода и таблицы поиÑка." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:801 msgid "Select Interface Font" msgstr "Выбор шрифта интерфейÑа" #: ../extras/setup/scim_setup_ui.cpp:47 msgid "SCIM" msgstr "SCIM" #: ../extras/setup/scim_setup_ui.cpp:48 msgid "FrontEnd" msgstr "FrontEnd" #: ../extras/setup/scim_setup_ui.cpp:49 msgid "IMEngine" msgstr "IMEngine" #: ../extras/setup/scim_setup_ui.cpp:50 msgid "Panel" msgstr "Панель" #: ../extras/setup/scim_setup_ui.cpp:51 msgid "Extra" msgstr "ЭкÑтра" #. #. vi:ts=4:nowrap:ai:expandtab #. #: ../extras/setup/scim_setup_ui.cpp:230 #: ../extras/setup/scim-setup.desktop.in.h:1 msgid "SCIM Input Method Setup" msgstr "ÐаÑтройка метода ввода SCIM" #: ../extras/setup/scim_setup_ui.cpp:369 msgid "" " Smart Common Input Method platform \n" "\n" "GUI Setup Utility\n" "\n" "\n" "\n" "Copyright 2002-2004, James Su <suzhe@tsinghua.org." "cn>" msgstr "" " Платформа SCIM (Smart Common Input Method) \n" "\n" "ГрафичеÑÐºÐ°Ñ ÑƒÑ‚Ð¸Ð»Ð¸Ñ‚Ð° наÑтройки\n" "\n" "\n" "\n" "ÐвторÑкие права 2002-2004, Ð”Ð¶ÐµÐ¹Ð¼Ñ Ð¡Ñƒ <suzhe@tsinghua.org." "cn>" #: ../extras/setup/scim_setup_ui.cpp:394 #, c-format msgid "The Setup for %s modules." msgstr "ÐаÑтройка Ð´Ð»Ñ Ð¼Ð¾Ð´ÑƒÐ»ÐµÐ¹ %s." #: ../extras/setup/scim_setup_ui.cpp:456 msgid "Are you sure you want to quit SCIM Setup?" msgstr "Ð’Ñ‹ дейÑтвительно хотите выйти из программы наÑтройки SCIM?" #: ../extras/setup/scim_setup_ui.cpp:685 msgid "" "Not all configuration can be reloaded on the fly. Don't forget to restart " "SCIM in order to let all of the new configuration take effect." msgstr "Ðе вÑе наÑтройки могут быть перезагружены на лету. Ðе забудьте перезапуÑтить SCIM, чтобы новые уÑтановки вÑтупили в Ñилу." #: ../extras/setup/scim_setup_helper.cpp:49 msgid "SCIM Setup" msgstr "ÐаÑтройка SCIM" #: ../extras/setup/scim_setup_helper.cpp:51 msgid "Integrated Setup Utility based on GTK Widget library." msgstr "Ð’ÑÑ‚Ñ€Ð¾ÐµÐ½Ð½Ð°Ñ ÑƒÑ‚Ð¸Ð»Ð¸Ñ‚Ð° наÑтройки Ñоздана на оÑнове библиотеки GTK Widget." #: ../extras/setup/scim-setup.desktop.in.h:2 msgid "Setup utility for Smart Common Input Method platform" msgstr "Утилита наÑтройки Ð´Ð»Ñ Ð¿Ð»Ð°Ñ‚Ñ„Ð¾Ñ€Ð¼Ñ‹ SCIM" #: ../extras/panel/scim_panel_gtk.cpp:982 msgid "SCIM Help" msgstr "Справка SCIM" #: ../extras/panel/scim_panel_gtk.cpp:999 msgid "Smart Common Input Method" msgstr "Smart Common Input Method" #: ../extras/panel/scim_panel_gtk.cpp:1058 msgid "Stick/unstick the input window and the toolbar." msgstr "Прикрепить/ открепить окно ввода и панель инÑтрументов." #: ../extras/panel/scim_panel_gtk.cpp:1063 msgid "Show a brief help about SCIM and the current input method." msgstr "Показать краткую Ñправку по SCIM и текущему методу ввода." #: ../extras/panel/scim_panel_gtk.cpp:1068 msgid "Show command menu." msgstr "Показать меню команд." #: ../extras/panel/scim_panel_gtk.cpp:2306 msgid "" "\n" "(C) 2002-2005 James Su " msgstr "" "\n" "(C) 2002-2005 Ð”Ð¶ÐµÐ¹Ð¼Ñ Ð¡Ñƒ " #. Reload Configuration. #: ../extras/panel/scim_panel_gtk.cpp:2385 msgid "Reload Configuration" msgstr "Перезагрузить конфигурацию" #. Stick #: ../extras/panel/scim_panel_gtk.cpp:2395 msgid "Stick Windows" msgstr "Прикрепить окна" #. Toolbar #: ../extras/panel/scim_panel_gtk.cpp:2404 msgid "Hide Toolbar" msgstr "СпрÑтать панель инÑтрументов" #. Help #: ../extras/panel/scim_panel_gtk.cpp:2413 msgid "Help ..." msgstr "Помощь..." #. Clients exit. #: ../extras/panel/scim_panel_gtk.cpp:2431 msgid "Exit" msgstr "Выход" #: ../utils/scimstringview.c:196 msgid "Cursor Position" msgstr "ÐŸÐ¾Ð·Ð¸Ñ†Ð¸Ñ ÐºÑƒÑ€Ñора" #: ../utils/scimstringview.c:197 msgid "The current position of the insertion cursor in chars." msgstr "Ð¢ÐµÐºÑƒÑ‰Ð°Ñ Ð¿Ð¾Ð·Ð¸Ñ†Ð¸Ñ Ð²Ñтавки курÑора." #: ../utils/scimstringview.c:206 msgid "Maximum length" msgstr "МакÑÐ¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Ð´Ð»Ð¸Ð½Ð°" #: ../utils/scimstringview.c:207 msgid "Maximum number of characters for this string view. Zero if no maximum." msgstr "МакÑимальное чиÑло Ñимволов в Ñтроке проÑмотра. Ðоль, еÑли не ограничено." #: ../utils/scimstringview.c:216 msgid "Maximum width" msgstr "МакÑÐ¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ ÑˆÐ¸Ñ€Ð¸Ð½Ð°" #: ../utils/scimstringview.c:217 msgid "Maximum width of this string view." msgstr "МакÑÐ¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ ÑˆÐ¸Ñ€Ð¸Ð½Ð° Ñтроки проÑмотра." #: ../utils/scimstringview.c:226 msgid "Has Frame" msgstr "ЕÑть рамка" #: ../utils/scimstringview.c:227 msgid "FALSE removes outside bevel from string view." msgstr "Значение FALSE удалÑет внешнюю рамку Ñтроки проÑмотра." #: ../utils/scimstringview.c:234 msgid "Draw cursor" msgstr "ПрориÑовка курÑора" #: ../utils/scimstringview.c:235 msgid "TRUE draw blinking cursor." msgstr "Значение TRUE прориÑовывает мерцающий курÑор." #: ../utils/scimstringview.c:242 msgid "Auto move cursor" msgstr "Ðвтоперемещение курÑора" #: ../utils/scimstringview.c:243 msgid "TRUE auto move cursor position when mouse clicking." msgstr "Значение TRUE автоматичеÑки перемещает курÑор при щелчке мыши." #: ../utils/scimstringview.c:250 msgid "Forward button press event" msgstr "Событие Ð¿ÐµÑ€ÐµÐ½Ð°Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ð°Ð¶Ð°Ñ‚Ð¸Ñ ÐºÐ½Ð¾Ð¿ÐºÐ¸" #: ../utils/scimstringview.c:251 msgid "TRUE forward button press event to user program." msgstr "Значение TRUE перенаправлÑет Ñобытие Ð½Ð°Ð¶Ð°Ñ‚Ð¸Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ¸ программе пользователÑ." #: ../utils/scimstringview.c:258 msgid "Auto resize the widget to fit the string" msgstr "ÐвтоматичеÑкое изменение размера компонента, чтобы вмеÑтить Ñтроку" #: ../utils/scimstringview.c:259 msgid "TRUE Auto resize on." msgstr "Значение TRUE включает автоматичеÑкое изменение размера." #: ../utils/scimstringview.c:266 msgid "Width in chars" msgstr "Ширина в Ñимволах" #: ../utils/scimstringview.c:267 msgid "Number of characters to leave space for in the string view." msgstr "ЧиÑло Ñимволов, определÑющих ширину Ñтроки проÑмотра." #: ../utils/scimstringview.c:276 msgid "Scroll offset" msgstr "Смещение прокрутки" #: ../utils/scimstringview.c:277 msgid "Number of pixels of the string view scrolled off the screen to the left" msgstr "ЧиÑло пикÑелей, на которое будет прокручен Ñкран при Ñмещении влево." #: ../utils/scimstringview.c:286 msgid "Text" msgstr "ТекÑÑ‚" #: ../utils/scimstringview.c:287 msgid "The contents of the string view" msgstr "Содержимое Ñтроки проÑмотра" #: ../utils/scimkeyselection.cpp:155 msgid "Selected _Keys:" msgstr "Выбранные _клавиши:" #: ../utils/scimkeyselection.cpp:200 msgid "Key Code:" msgstr "Код ключа:" #: ../utils/scimkeyselection.cpp:218 msgid "..." msgstr "..." #: ../utils/scimkeyselection.cpp:223 msgid "Modifiers:" msgstr "Модификаторы:" #: ../utils/scimkeyselection.cpp:236 msgid "_Ctrl" msgstr "_Ctrl" #: ../utils/scimkeyselection.cpp:240 msgid "A_lt" msgstr "A_lt" #: ../utils/scimkeyselection.cpp:244 msgid "_Shift" msgstr "_Shift" #: ../utils/scimkeyselection.cpp:248 msgid "_Release" msgstr "_Release" #: ../utils/scimkeyselection.cpp:258 msgid "_Meta" msgstr "_Meta" #: ../utils/scimkeyselection.cpp:262 msgid "S_uper" msgstr "S_uper" #: ../utils/scimkeyselection.cpp:266 msgid "_Hyper" msgstr "_Hyper" #: ../utils/scimkeyselection.cpp:331 msgid "Please enter a Key Code first." msgstr "Сначала введите комбинацию клавиш." #: ../utils/scimkeyselection.cpp:385 msgid "" "Press a key (or a key combination).\n" "This dialog will be closed when the key is released." msgstr "" "Ðажмите клавишу (или комбинацию).\n" "Этот диалог будет закрыт, как только вы отпуÑтите клавишу." #: ../utils/scimkeyselection.cpp:388 msgid "Grabbing a key." msgstr "Запоминание комбинации." #: ../utils/scimkeyselection.cpp:678 msgid "Key Selection" msgstr "Выбор клавиш" #: ../utils/scimtrayicon.c:108 msgid "Orientation" msgstr "ОриентациÑ" #: ../utils/scimtrayicon.c:109 msgid "The orientation of the tray." msgstr "ÐžÑ€Ð¸ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ Ð»Ð¾Ñ‚ÐºÐ°." scim-1.4.14/po/sk.po000066400000000000000000001130521177210725600141410ustar00rootroot00000000000000# Slovak translations of scim # This file is distributed under the same license as the PACKAGE package. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. # Ivan Masár , 2007. # msgid "" msgstr "" "Project-Id-Version: scim\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-08-27 09:42+0800\n" "PO-Revision-Date: 2007-08-27 00:10+0100\n" "Last-Translator: Ivan Masár \n" "Language-Team: Slovak \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../src/scim_compose_key.cpp:126 msgid "English/European" msgstr "angliÄtina/európska" #. Append an entry for forward mode. #: ../src/scim_imengine.cpp:638 ../src/scim_utility.cpp:693 #: ../modules/FrontEnd/scim_x11_frontend.cpp:1897 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1281 #: ../extras/panel/scim_panel_gtk.cpp:2814 msgid "English/Keyboard" msgstr "angliÄtina/klávesnica" #: ../src/scim_utility.cpp:694 msgid "Amharic" msgstr "amharÄina" #: ../src/scim_utility.cpp:695 msgid "Arabic" msgstr "arabÄina" #: ../src/scim_utility.cpp:696 msgid "Arabic (Egypt)" msgstr "arabÄina (Egypt)" #: ../src/scim_utility.cpp:697 msgid "Arabic (Lebanon)" msgstr "arabÄina (Libanon)" #: ../src/scim_utility.cpp:698 msgid "Assamese" msgstr "ásámÄina" #: ../src/scim_utility.cpp:699 msgid "Azerbaijani" msgstr "azerbajdžanÄina" #: ../src/scim_utility.cpp:700 msgid "Belarusian" msgstr "bieloruÅ¡tina" #: ../src/scim_utility.cpp:701 msgid "Bulgarian" msgstr "bulharÄina" #: ../src/scim_utility.cpp:702 ../src/scim_utility.cpp:703 msgid "Bengali" msgstr "bengálÄina" #: ../src/scim_utility.cpp:704 msgid "Bengali (India)" msgstr "bengálÄina (India)" #: ../src/scim_utility.cpp:705 msgid "Tibetan" msgstr "tibetÄina" #: ../src/scim_utility.cpp:706 msgid "Bosnian" msgstr "bosniaÄtina" #: ../src/scim_utility.cpp:707 msgid "Catalan" msgstr "katalánÄina" #: ../src/scim_utility.cpp:708 ../src/scim_keyboard_layout_data.h:4595 msgid "Czech" msgstr "ÄeÅ¡tina" #: ../src/scim_utility.cpp:709 msgid "Welsh" msgstr "waleÅ¡tina" #: ../src/scim_utility.cpp:710 ../src/scim_keyboard_layout_data.h:4597 msgid "Danish" msgstr "dánÄina" #: ../src/scim_utility.cpp:711 ../src/scim_keyboard_layout_data.h:4605 msgid "German" msgstr "nemÄina" #: ../src/scim_utility.cpp:712 msgid "Divehi" msgstr "maldivÄina" #: ../src/scim_utility.cpp:713 ../src/scim_keyboard_layout_data.h:4608 msgid "Greek" msgstr "gréÄtina" #: ../src/scim_utility.cpp:714 msgid "English" msgstr "angliÄtina" #: ../src/scim_utility.cpp:715 msgid "English (Australian)" msgstr "angliÄtina (Austrália)" #: ../src/scim_utility.cpp:716 msgid "English (Canadian)" msgstr "angliÄtina (Kanada)" #: ../src/scim_utility.cpp:717 msgid "English (British)" msgstr "angliÄtina (Británia)" #: ../src/scim_utility.cpp:718 msgid "English (Ireland)" msgstr "angliÄtina (Ãrsko)" #: ../src/scim_utility.cpp:719 msgid "English (American)" msgstr "angliÄtina (USA)" #: ../src/scim_utility.cpp:720 msgid "Esperanto" msgstr "" #: ../src/scim_utility.cpp:721 ../src/scim_utility.cpp:722 #: ../src/scim_keyboard_layout_data.h:4621 msgid "Spanish" msgstr "Å¡panielÄina" #: ../src/scim_utility.cpp:723 msgid "Spanish (Mexico)" msgstr "Å¡panielÄina (Mexiko)" #: ../src/scim_utility.cpp:724 ../src/scim_keyboard_layout_data.h:4600 msgid "Estonian" msgstr "estónÄina" #: ../src/scim_utility.cpp:725 msgid "Basque" msgstr "baskiÄtina" #: ../src/scim_utility.cpp:726 msgid "Persian" msgstr "perzÅ¡tina" #: ../src/scim_utility.cpp:727 ../src/scim_keyboard_layout_data.h:4601 msgid "Finnish" msgstr "fínÄina" #: ../src/scim_utility.cpp:728 ../src/scim_keyboard_layout_data.h:4602 msgid "French" msgstr "francúzÅ¡tina" #: ../src/scim_utility.cpp:729 msgid "Irish" msgstr "írÄina" #: ../src/scim_utility.cpp:730 msgid "Galician" msgstr "galícijÄina" #: ../src/scim_utility.cpp:731 msgid "Gujarati" msgstr "gudžarátÄina" #: ../src/scim_utility.cpp:732 ../src/scim_utility.cpp:741 msgid "Hebrew" msgstr "hebrejÄina" #: ../src/scim_utility.cpp:733 msgid "Hindi" msgstr "hindÄina" #: ../src/scim_utility.cpp:734 ../src/scim_keyboard_layout_data.h:4594 msgid "Croatian" msgstr "chorvátÄina" #: ../src/scim_utility.cpp:735 ../src/scim_keyboard_layout_data.h:4609 msgid "Hungarian" msgstr "maÄarÄina" #: ../src/scim_utility.cpp:736 msgid "Armenian" msgstr "arménÄina" #: ../src/scim_utility.cpp:737 msgid "Interlingua" msgstr "interlingua" #: ../src/scim_utility.cpp:738 msgid "Indonesian" msgstr "indonézÅ¡tina" #: ../src/scim_utility.cpp:739 ../src/scim_keyboard_layout_data.h:4627 msgid "Icelandic" msgstr "islandÄina" #: ../src/scim_utility.cpp:740 ../src/scim_keyboard_layout_data.h:4610 msgid "Italian" msgstr "talianÄina" #: ../src/scim_utility.cpp:742 ../src/scim_keyboard_layout_data.h:4611 msgid "Japanese" msgstr "japonÄina" #: ../src/scim_utility.cpp:743 msgid "Georgian" msgstr "gruzínÄina" #: ../src/scim_utility.cpp:744 msgid "Kazakh" msgstr "kazaÅ¡tina" #: ../src/scim_utility.cpp:745 msgid "Cambodian" msgstr "" #: ../src/scim_utility.cpp:746 msgid "Kannada" msgstr "kannadÄina" #: ../src/scim_utility.cpp:747 msgid "Korean" msgstr "kórejÄina" #: ../src/scim_utility.cpp:748 msgid "Laothian" msgstr "" #: ../src/scim_utility.cpp:749 ../src/scim_keyboard_layout_data.h:4628 msgid "Lithuanian" msgstr "litovÄina" #: ../src/scim_utility.cpp:750 msgid "Latvian" msgstr "lotyÅ¡tina" #: ../src/scim_utility.cpp:751 msgid "Macedonian" msgstr "macedónÄina" #: ../src/scim_utility.cpp:752 msgid "Malayalam" msgstr "malajálamÄina" #: ../src/scim_utility.cpp:753 msgid "Mongolian" msgstr "mongolÄina" #: ../src/scim_utility.cpp:754 msgid "Marathi" msgstr "maráthÄina" #: ../src/scim_utility.cpp:755 msgid "Malay" msgstr "malajÄina" #: ../src/scim_utility.cpp:756 msgid "Burmese" msgstr "barmÄina" #: ../src/scim_utility.cpp:757 msgid "Nepali" msgstr "nepálÄina" #: ../src/scim_utility.cpp:758 ../src/scim_keyboard_layout_data.h:4598 msgid "Dutch" msgstr "holandÄina" #: ../src/scim_utility.cpp:759 msgid "Norwegian (nynorsk)" msgstr "nórsky nynorsk" #: ../src/scim_utility.cpp:760 msgid "Norwegian (bokmal)" msgstr "nórsky bokmÃ¥l" #: ../src/scim_utility.cpp:761 msgid "Oriya" msgstr "uríjÄina" #: ../src/scim_utility.cpp:762 msgid "Punjabi" msgstr "pandžábÄina" #: ../src/scim_utility.cpp:763 ../src/scim_keyboard_layout_data.h:4613 msgid "Polish" msgstr "poľština" #: ../src/scim_utility.cpp:764 ../src/scim_utility.cpp:766 #: ../src/scim_keyboard_layout_data.h:4614 msgid "Portuguese" msgstr "portugalÄina" #: ../src/scim_utility.cpp:765 ../src/scim_keyboard_layout_data.h:4615 msgid "Portuguese (Brazil)" msgstr "portugalÄina (Brazília)" #: ../src/scim_utility.cpp:767 msgid "Romanian" msgstr "rumunÄina" #: ../src/scim_utility.cpp:768 ../src/scim_keyboard_layout_data.h:4617 msgid "Russian" msgstr "ruÅ¡tina" #: ../src/scim_utility.cpp:769 msgid "Sinhala" msgstr "sinhalÄina" #: ../src/scim_utility.cpp:770 ../src/scim_keyboard_layout_data.h:4618 msgid "Slovak" msgstr "slovenÄina" #: ../src/scim_utility.cpp:771 ../src/scim_keyboard_layout_data.h:4620 msgid "Slovenian" msgstr "slovinÄina" #: ../src/scim_utility.cpp:772 msgid "Albanian" msgstr "albánÄina" #: ../src/scim_utility.cpp:773 ../src/scim_utility.cpp:774 #: ../src/scim_utility.cpp:775 msgid "Serbian" msgstr "srbÄina" #: ../src/scim_utility.cpp:776 ../src/scim_utility.cpp:778 #: ../src/scim_keyboard_layout_data.h:4624 msgid "Swedish" msgstr "Å¡védÄina" #: ../src/scim_utility.cpp:777 msgid "Swedish (Finland)" msgstr "Å¡védÄina (Fínsko)" #: ../src/scim_utility.cpp:779 msgid "Tamil" msgstr "tamilÄina" #: ../src/scim_utility.cpp:780 msgid "Telugu" msgstr "telugÄina" #: ../src/scim_utility.cpp:781 msgid "Thai" msgstr "thajÄina" #: ../src/scim_utility.cpp:782 ../src/scim_keyboard_layout_data.h:4625 msgid "Turkish" msgstr "tureÄtina" #: ../src/scim_utility.cpp:783 msgid "Uighur" msgstr "ujgurÄina" #: ../src/scim_utility.cpp:784 ../src/scim_keyboard_layout_data.h:4629 msgid "Ukrainian" msgstr "ukrajinÄina" #: ../src/scim_utility.cpp:785 msgid "Urdu" msgstr "urdÄina" #: ../src/scim_utility.cpp:786 msgid "Uzbek" msgstr "uzbeÄtina" #: ../src/scim_utility.cpp:787 msgid "Vietnamese" msgstr "vietnamÄina" #: ../src/scim_utility.cpp:788 msgid "Walloon" msgstr "valónÄina" #: ../src/scim_utility.cpp:789 ../src/scim_utility.cpp:790 msgid "Yiddish" msgstr "jidiÅ¡" #: ../src/scim_utility.cpp:791 msgid "Chinese" msgstr "ÄínÅ¡tina" #: ../src/scim_utility.cpp:792 ../src/scim_utility.cpp:794 msgid "Chinese (simplified)" msgstr "ÄínÅ¡tina (zjednoduÅ¡ená)" #: ../src/scim_utility.cpp:793 ../src/scim_utility.cpp:795 msgid "Chinese (traditional)" msgstr "ÄínÅ¡tina (tradiÄná)" #: ../src/scim_utility.cpp:877 msgid "Other" msgstr "iné" #: ../src/scim_keyboard_layout_data.h:4591 #: ../modules/IMEngine/scim_socket_imengine.cpp:386 #: ../modules/IMEngine/scim_socket_imengine.cpp:416 #: ../modules/IMEngine/scim_socket_imengine.cpp:501 #: ../modules/IMEngine/scim_socket_imengine.cpp:531 #: ../modules/IMEngine/scim_socket_imengine.cpp:561 msgid "Unknown" msgstr "neznámy" #: ../src/scim_keyboard_layout_data.h:4592 msgid "English (US)" msgstr "angliÄtina (USA)" #: ../src/scim_keyboard_layout_data.h:4593 msgid "Belgian" msgstr "" #: ../src/scim_keyboard_layout_data.h:4596 msgid "Czech (qwerty)" msgstr "ÄeÅ¡tina (qwerty)" #: ../src/scim_keyboard_layout_data.h:4599 msgid "Dvorak" msgstr "dvorak" #: ../src/scim_keyboard_layout_data.h:4603 msgid "French (Canadian)" msgstr "francúzÅ¡tina (Kanada)" #: ../src/scim_keyboard_layout_data.h:4604 msgid "French (Switzerland)" msgstr "francúzÅ¡tina (Å vajÄiarsko)" #: ../src/scim_keyboard_layout_data.h:4606 msgid "German (with deadkeys)" msgstr "nemÄina (s mÅ•tvymi klávesmi)" #: ../src/scim_keyboard_layout_data.h:4607 msgid "German (Swiss)" msgstr "nemÄina (Å vajÄiarsko)" #: ../src/scim_keyboard_layout_data.h:4612 msgid "Norwegian" msgstr "nórÄina" #: ../src/scim_keyboard_layout_data.h:4616 msgid "Portuguese (Brazil US accents)" msgstr "portugalÄina (Brazília)" #: ../src/scim_keyboard_layout_data.h:4619 msgid "Slovak (qwerty)" msgstr "slovenÄina (qwerty)" #: ../src/scim_keyboard_layout_data.h:4622 msgid "Spanish (CP 850)" msgstr "Å¡panielÄina (CP 850)" #: ../src/scim_keyboard_layout_data.h:4623 msgid "Spanish (Latin America)" msgstr "Å¡panielÄina (latinská Amerika)" #: ../src/scim_keyboard_layout_data.h:4626 msgid "English (UK)" msgstr "angliÄtina (UK)" #: ../modules/Filter/scim_sctc_filter.cpp:57 msgid "Simplified-Traditional Chinese Conversion" msgstr "konverzia zjednoduÅ¡ená-tradiÄná ÄínÅ¡tina" #: ../modules/Filter/scim_sctc_filter.cpp:60 msgid "Convert between Simplified Chinese and Traditional Chinese" msgstr "Konverzia medzi zjednoduÅ¡enou ÄínÅ¡tinou a tradiÄnou ÄínÅ¡tinou" #: ../modules/Filter/scim_sctc_filter.cpp:71 msgid "SC-TC" msgstr "ZÄŒ-TÄŒ" #: ../modules/Filter/scim_sctc_filter.cpp:73 #: ../modules/Filter/scim_sctc_filter.cpp:78 msgid "Simplified-Traditional Chinese conversion" msgstr "konverzia zjednoduÅ¡ená-tradiÄná ÄínÅ¡tina" #: ../modules/Filter/scim_sctc_filter.cpp:76 msgid "No Conversion" msgstr "bez konverzie" #: ../modules/Filter/scim_sctc_filter.cpp:81 msgid "Simplified to Traditional" msgstr "zjednoduÅ¡ená na tradiÄnú" #: ../modules/Filter/scim_sctc_filter.cpp:83 msgid "Convert Simplified Chinese to Traditional Chinese" msgstr "konverzia zjednoduÅ¡enej ÄínÅ¡tiny na tradiÄnú ÄínÅ¡tinu" #: ../modules/Filter/scim_sctc_filter.cpp:86 msgid "Traditional to Simplified" msgstr "tradiÄná na zjednoduÅ¡enú" #: ../modules/Filter/scim_sctc_filter.cpp:88 msgid "Convert Traditional Chinese to Simplified Chinese" msgstr "konverzia tradiÄnej ÄínÅ¡tiny na zjednoduÅ¡enú ÄínÅ¡tinu" #: ../modules/Filter/scim_sctc_filter.cpp:300 msgid "James Su " msgstr "James Su " #: ../modules/Filter/scim_sctc_filter.cpp:425 #: ../modules/Filter/scim_sctc_filter.cpp:555 #: ../modules/Filter/scim_sctc_filter.cpp:571 msgid "SC->TC" msgstr "ZÄŒ->TÄŒ" #: ../modules/Filter/scim_sctc_filter.cpp:431 #: ../modules/Filter/scim_sctc_filter.cpp:559 #: ../modules/Filter/scim_sctc_filter.cpp:575 msgid "TC->SC" msgstr "TÄŒ->ZÄŒ" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1845 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1231 #: ../extras/panel/scim_panel_gtk.cpp:2304 msgid "Smart Common Input Method platform " msgstr "platforma Smart Common Input Method" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1847 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1233 msgid "" "\n" "(C) 2002-2005 James Su \n" "\n" msgstr "" "\n" "(C) 2002-2005 James Su \n" "\n" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1851 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1238 msgid "" ":\n" "\n" msgstr "" ":\n" "\n" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1854 #: ../modules/FrontEnd/scim_x11_frontend.cpp:1857 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1241 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1244 msgid "" "\n" "\n" msgstr "" "\n" "\n" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:120 msgid "RAW CODE" msgstr "NESPRACOVANà KÓD" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:127 msgid "(C) 2002-2006 James Su " msgstr "(C) 2002-2006 James Su " #: ../modules/IMEngine/scim_rawcode_imengine.cpp:140 #, fuzzy msgid "" "Hot Keys:\n" "\n" " Control+u:\n" " switch between Multibyte encoding and Unicode.\n" "\n" " Esc:\n" " reset the input method.\n" msgstr "" "Horúce klávesy:\n" "\n" " Control+u:\n" " Prepnúť medzi viacznakovým kódovaním a Unicode.\n" "\n" " Esc:\n" " Reset metódy vstupu.\n" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:407 #: ../modules/IMEngine/scim_rawcode_imengine.cpp:423 msgid "The status of the current input method. Click to change it." msgstr "Stav aktuálnej metódy vstupu. Zmeníte kliknutím." #: ../modules/IMEngine/scim_rawcode_imengine.cpp:409 msgid "Unicode" msgstr "Unicode" #: ../modules/SetupUI/scim_frontend_setup.cpp:82 #: ../modules/SetupUI/scim_imengine_setup.cpp:88 msgid "Global Setup" msgstr "Globálne nastavenie" #: ../modules/SetupUI/scim_frontend_setup.cpp:87 #, fuzzy msgid "" "Setup the global options used by All FrontEnd modules, including X11 " "FrontEnd, GTK IMModule, QT IMModule etc." msgstr "" "Nastavenie globálnych volieb, ktoré používajú vÅ¡etky frontend moduly vrátane " "frontendu X11, GTK IMModule, Qt IMModule atÄ." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:143 msgid "_Trigger:" msgstr "_SpúšťaÄ:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:145 msgid "Select the trigger keys" msgstr "ZvoliÅ¥ spúšťacie klávesy" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:147 #, fuzzy msgid "" "The key events to turn on/off SCIM input method. Click on the button on the " "right to edit it." msgstr "" "Klávesové udalosti, ktoré majú vypnúť vstupnú metódu SCIM. Upravíte " "kliknutím pravého tlaÄidla." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:160 msgid "Turn _On:" msgstr "_Zapnúť:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:162 msgid "Select the Turn On keys" msgstr "Vyberte klávesy, ktoré zapnú" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:164 #, fuzzy msgid "" "The key events to turn on SCIM input method. Click on the button on the " "right to edit it." msgstr "" "Klávesové udalosti, ktoré majú zapnúť vstupnú metódu SCIM. Upravíte " "kliknutím pravého tlaÄidla." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:177 msgid "Turn O_ff:" msgstr "_Vypnúť:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:179 msgid "Select the Turn Off keys" msgstr "Vyberte klávesy, ktoré vypnú" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:181 #, fuzzy msgid "" "The key events to turn off SCIM input method. Click on the button on the " "right to edit it." msgstr "" "Klávesové udalosti, ktoré majú vypnúť vstupnú metódu SCIM. Upravíte " "kliknutím pravého tlaÄidla." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:194 msgid "_Next input method:" msgstr "_Nasledujúca metóda vstupu:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:196 msgid "Select the next input method keys" msgstr "VybraÅ¥ klávesy pre nasledovnú metódu vstupu" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:198 #, fuzzy msgid "" "The key events to switch to the next input method. Click on the button on " "the right to edit it." msgstr "" "Klávesové udalosti, ktoré majú prepnúť na nasledovnú vstupnú metódu SCIM. " "Upravíte kliknutím pravého tlaÄidla." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:213 msgid "_Previous input method:" msgstr "_PredoÅ¡lá metóda vstupu:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:215 msgid "Select the previous input method keys" msgstr "VybraÅ¥ klávesy pre predoÅ¡lú metódu vstupu" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:217 #, fuzzy msgid "" "The key events to switch to the previous input method. Click on the button " "on the right to edit it." msgstr "" "Klávesové udalosti, ktoré majú prepnúť na predoÅ¡lú vstupnú metódu SCIM. " "Upravíte kliknutím pravého tlaÄidla." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:232 msgid "Show input method _menu:" msgstr "ZobraziÅ¥ _ponuku metód vstupu:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:234 msgid "Select the show input method menu keys" msgstr "VybraÅ¥ klávesy pre zobrazenie ponuky metód vstupu" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:236 #, fuzzy msgid "" "The key events to show the input method menu. Click on the button on the " "right to edit it." msgstr "" "Klávesové udalosti, ktoré majú zobraziÅ¥ ponuku metód vstupu SCIM. Upravíte " "kliknutím pravého tlaÄidla." #: ../modules/SetupUI/scim_frontend_setup.cpp:306 msgid "Options" msgstr "Možnosti" #: ../modules/SetupUI/scim_frontend_setup.cpp:321 msgid "_Keyboard Layout:" msgstr "_Rozloženie klávesnice:" #: ../modules/SetupUI/scim_frontend_setup.cpp:342 #, fuzzy msgid "" "You should choose your currently used keyboard layout here so that input " "methods, who care about keyboard layout, could work correctly." msgstr "" "Zvoľte vaÅ¡e aktuálne používané rozloženie klávesnice, aby vstupné metódy, " "ktoré závisia na rozložení klávesnice fungovali správne." #. On The Spot. #: ../modules/SetupUI/scim_frontend_setup.cpp:346 #, fuzzy msgid "_Embed Preedit String into client window" msgstr "_VložiÅ¥ do klientského okna predpripravený reÅ¥azec" #: ../modules/SetupUI/scim_frontend_setup.cpp:351 #, fuzzy msgid "" "If this option is checked, the preedit string will be displayed directly in " "the client input window, rather than in a independent float window." msgstr "" "UmožniÅ¥ zobrazenie predpripraveného reÅ¥azca priamo v klientskom okne " "namiesto nezávislého plávajúceho okna." #. Shared input method. #: ../modules/SetupUI/scim_frontend_setup.cpp:360 msgid "_Share the same input method among all applications" msgstr "_PoužívaÅ¥ rovnakú metódu vstupu vo vÅ¡etkých aplikáciách" #: ../modules/SetupUI/scim_frontend_setup.cpp:365 #, fuzzy msgid "" "If this option is checked, then only one input method could be used by all " "applications at the same time.Otherwise different input method could be used " "by each application." msgstr "" "UmožniÅ¥ použitie iba jednej metódy vstupu vo vÅ¡etkých aplikáciách. inak bude " "možné použiÅ¥ inú metódu vstupu v každej aplikácii." #: ../modules/SetupUI/scim_frontend_setup.cpp:373 #: ../modules/SetupUI/scim_imengine_setup.cpp:453 msgid "Hotkeys" msgstr "Horúce klávesy" #: ../modules/SetupUI/scim_imengine_setup.cpp:93 #, fuzzy msgid "" "You can enable/disable input methods and set hotkeys for input methods here." msgstr "Zapnúť vypnúť vstupné metódy a nastaviÅ¥ horúce klávesy." #: ../modules/SetupUI/scim_imengine_setup.cpp:296 msgid "The installed input method services:" msgstr "NainÅ¡talované služby vstupných metód." #. Create hotkey and filter button before factory list view, because #. factory_list_selection_changed_callback may access these two buttons. #: ../modules/SetupUI/scim_imengine_setup.cpp:311 msgid "Edit _Hotkeys" msgstr "UpraviÅ¥ _horúce klávesy" #: ../modules/SetupUI/scim_imengine_setup.cpp:320 #, fuzzy msgid "Edit Hotkeys associated with the selected input method." msgstr "UpraviÅ¥ horúce klávesy asociované so zvolenou vstupnou metódou." #: ../modules/SetupUI/scim_imengine_setup.cpp:322 msgid "Select _Filters" msgstr "ZvoliÅ¥ _filtre" #: ../modules/SetupUI/scim_imengine_setup.cpp:331 #, fuzzy msgid "Select the Filters which will be attached to this input method." msgstr "ZvoliÅ¥ filtre, ktoré sa vzÅ¥ahujú na so zvolenú vstupnú metódu." #: ../modules/SetupUI/scim_imengine_setup.cpp:348 msgid "_Expand" msgstr "_RozbaliÅ¥" #: ../modules/SetupUI/scim_imengine_setup.cpp:357 msgid "Expand all language categories." msgstr "RozbaliÅ¥ vÅ¡etky jazykové kategórie." #: ../modules/SetupUI/scim_imengine_setup.cpp:359 msgid "_Collapse" msgstr "_ZbaliÅ¥" #: ../modules/SetupUI/scim_imengine_setup.cpp:368 msgid "Collapse all language categories." msgstr "ZbaliÅ¥ vÅ¡etky jazykové kategórie." #: ../modules/SetupUI/scim_imengine_setup.cpp:370 msgid "E_nable All" msgstr "Z_apnúť vÅ¡etky" #: ../modules/SetupUI/scim_imengine_setup.cpp:379 msgid "Enable all input methods." msgstr "Zapnúť vÅ¡etky metódy vstupu." #: ../modules/SetupUI/scim_imengine_setup.cpp:381 msgid "_Disable All" msgstr "_Vypnúť vÅ¡etky" #: ../modules/SetupUI/scim_imengine_setup.cpp:390 msgid "Disable all input methods." msgstr "Vypnúť vÅ¡etky metódy vstupu." #: ../modules/SetupUI/scim_imengine_setup.cpp:414 #: ../modules/SetupUI/scim_imengine_setup.cpp:541 msgid "Name" msgstr "Názov" #: ../modules/SetupUI/scim_imengine_setup.cpp:432 #: ../modules/SetupUI/scim_imengine_setup.cpp:522 msgid "Enable" msgstr "Zapnúť" #: ../modules/SetupUI/scim_imengine_setup.cpp:467 msgid "Filters" msgstr "Filtre" #: ../modules/SetupUI/scim_imengine_setup.cpp:560 msgid "Languages" msgstr "Jazyky" #: ../modules/SetupUI/scim_imengine_setup.cpp:574 msgid "Description" msgstr "Popis" #: ../modules/SetupUI/scim_imengine_setup.cpp:1190 #, fuzzy, c-format msgid "Edit Hotkeys for %s" msgstr "UpraviÅ¥ horúce klávesy %s" #: ../modules/SetupUI/scim_imengine_setup.cpp:1417 #, fuzzy, c-format msgid "Select Filters for %s" msgstr "NastaviÅ¥ filtre %s" #: ../modules/SetupUI/scim_imengine_setup.cpp:1450 msgid "Move _Up" msgstr "Presunúť _hore" #: ../modules/SetupUI/scim_imengine_setup.cpp:1457 msgid "Move _Down" msgstr "Presunúť _dolu" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:95 msgid "GTK" msgstr "GTK" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:100 msgid "A panel daemon based on GTK+-2.x library." msgstr "Démon pre panel založený na knižnici GTK+-2.x." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:163 msgid "Always" msgstr "Vždy" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:164 msgid "On demand" msgstr "Na požiadanie" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:165 msgid "Never" msgstr "Nikdy" #. Create the ToolBar setup block. #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:211 msgid "ToolBar" msgstr "Panel nástrojov" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:229 msgid "_Show:" msgstr "_ZobraziÅ¥:" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:245 msgid "Auto s_nap" msgstr "Automatické _prichytávanie" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:251 msgid "Show _input method icon" msgstr "ZobraziÅ¥ _ikonu metódy vstupu" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:257 msgid "Show inp_ut method name" msgstr "ZobraziÅ¥ _názov metódy vstupu" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:269 msgid "Hide time_out:" msgstr "ÄŒas do _skrytia:" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:282 msgid "Show s_tick icon" msgstr "ZobraziÅ¥ ikonu _prichytávania" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:288 msgid "Show m_enu icon" msgstr "ZobraziÅ¥ _ikonu ponuky" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:294 msgid "Show _help icon" msgstr "ZobraziÅ¥ _ikonu pomocníka" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:300 msgid "Show _property label" msgstr "ZobraziÅ¥ Å¡títok _vlastností" #. Create the Input Window setup block #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:311 msgid "Input window" msgstr "Vstupné okno" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:320 msgid "E_mbedded lookup table" msgstr "_Vnorená vyhľadávacia tabuľka" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:324 msgid "_Vertical lookup table" msgstr "_Zvislá vyhľadávacia tabuľka" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:328 msgid "Misc" msgstr "Rôzne" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:337 msgid "Show tra_y icon" msgstr "ZobraziÅ¥ ikonu v _oznamovacej oblasti" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:341 msgid "Stick _windows" msgstr "PrichytávaÅ¥ _okná" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:349 msgid "_Font:" msgstr "_Písmo:" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:419 msgid "" "If option \"Always\" is selected, the toolbar will always be shown on the " "screen. If option \"On demand\" is selected, it will only be shown when SCIM " "is activated. If option \"Never\" is selected, it will never be shown." msgstr "" "Ak je zvolená voľba \"Vždy\", panel nástojov bude stále zobrazený na " "obrazovke. Ak je zvolená voľba \"Na požiadanie\", zobrazí sa po aktivácii " "SCIM. Ak je zvolená voľba \"Nikdy\", nezobrazí sa nikdy." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:426 msgid "" "If this option is checked, the toolbar will be snapped to the screen border." msgstr "" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:431 #, fuzzy msgid "" "The toolbar will be hidden out after this timeout is elapsed. This option is " "only valid when \"Always show\" is selected. Set to zero to disable this " "behavior." msgstr "" "Panel nástrojov sa skryje potom, Äo vyprší tento interval. Táto voľba je " "úÄinná iba keÄ je zvolené \"Vždy zobrazovaÅ¥\". Nastavením na nulu toto " "správanie vypnete." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:438 #, fuzzy msgid "" "If this option is checked, the input method icon will be showed on the " "toolbar." msgstr "ZobrazoÅ¥ ikonu vstupnej metódy na paneli nástrojov." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:442 #, fuzzy msgid "" "If this option is checked, the input method name will be showed on the " "toolbar." msgstr "ZobrazoÅ¥ názov vstupnej metódy na paneli nástrojov." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:446 msgid "" "If this option is checked, the stick icon will be showed on the toolbar." msgstr "" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:450 msgid "If this option is checked, the menu icon will be showed on the toolbar." msgstr "" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:454 msgid "If this option is checked, the help icon will be showed on the toolbar." msgstr "" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:458 #, fuzzy msgid "" "If this option is checked, the text label of input method properties will be " "showed on the toolbar." msgstr "ZobrazoÅ¥ textový popisok ikonu vstupnej metódy na paneli nástrojov." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:462 msgid "" "If this option is checked, the lookup table will be embedded into the input " "window." msgstr "" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:467 msgid "" "If this option is checked, the lookup table will be displayed vertically." msgstr "" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:472 #, fuzzy msgid "" "If this option is checked, the tray icon will be showed on the desktop's " "taskbar." msgstr "ZobrazoÅ¥ ikonu v oznamovacej oblasti na ploche." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:476 #, fuzzy msgid "" "If this option is checked, the toolbar, input and lookup table windows will " "be sticked to its original position." msgstr "" "DonútiÅ¥ okná panel nástrojov, vstup a vyhľadávacia tabuľka aby boli " "prichytené na svoju pôvodnú pozíciu." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:482 #, fuzzy msgid "The font setting will be used in the input and lookup table windows." msgstr "Nastavenie písiem pre okná vstup a vyhľadávacia tabuľka ." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:801 msgid "Select Interface Font" msgstr "VybraÅ¥ písmo rozhrania" #: ../extras/setup/scim_setup_ui.cpp:47 msgid "SCIM" msgstr "SCIM" #: ../extras/setup/scim_setup_ui.cpp:48 msgid "FrontEnd" msgstr "Frontend" #: ../extras/setup/scim_setup_ui.cpp:49 msgid "IMEngine" msgstr "IMEngine" #: ../extras/setup/scim_setup_ui.cpp:50 msgid "Panel" msgstr "Panel" #: ../extras/setup/scim_setup_ui.cpp:51 msgid "Extra" msgstr "Extra" #. #. vi:ts=4:nowrap:ai:expandtab #. #: ../extras/setup/scim_setup_ui.cpp:230 #: ../extras/setup/scim-setup.desktop.in.h:1 msgid "SCIM Input Method Setup" msgstr "Nastavenie metódy vstupu SCIM" #: ../extras/setup/scim_setup_ui.cpp:369 msgid "" " Smart Common Input Method platform \n" "\n" "GUI Setup Utility\n" "\n" "\n" "\n" "Copyright 2002-2004, James Su <suzhe@tsinghua.org." "cn>" msgstr "" " platforma Smart Common Input Method \n" "\n" "Grafický nástroj pre nastavenie\n" "\n" "\n" "\n" "Copyright 2002-2004, James Su <suzhe@tsinghua.org." "cn>" #: ../extras/setup/scim_setup_ui.cpp:394 #, fuzzy, c-format msgid "The Setup for %s modules." msgstr "Nastavenie %s modulov." #: ../extras/setup/scim_setup_ui.cpp:661 msgid "" "Not all configuration can be reloaded on the fly. Don't forget to restart " "SCIM in order to let all of the new configuration take effect." msgstr "" #: ../extras/setup/scim_setup_helper.cpp:49 msgid "SCIM Setup" msgstr "Nastavenie SCIM" #: ../extras/setup/scim_setup_helper.cpp:51 #, fuzzy msgid "Integrated Setup Utility based on GTK Widget library." msgstr "Integrovaný nástroj založený na knižnici GTK Widget." #: ../extras/setup/scim-setup.desktop.in.h:2 msgid "Setup utility for Smart Common Input Method platform" msgstr "Nástroj pre nastavenie platformy Smart Common Input Method" #: ../extras/panel/scim_panel_gtk.cpp:982 msgid "SCIM Help" msgstr "Pomocník SCIM" #: ../extras/panel/scim_panel_gtk.cpp:999 msgid "Smart Common Input Method" msgstr "Smart Common Input Method" #: ../extras/panel/scim_panel_gtk.cpp:1058 #, fuzzy msgid "Stick/unstick the input window and the toolbar." msgstr "PrichytiÅ¥/uvoľniÅ¥ vstupné okno a panel nástrojov." #: ../extras/panel/scim_panel_gtk.cpp:1063 #, fuzzy msgid "Show a brief help about SCIM and the current input method." msgstr "StruÄná pomoc o SCIM a aktuálnej vstupnej metóde." #: ../extras/panel/scim_panel_gtk.cpp:1068 msgid "Show command menu." msgstr "ZobraziÅ¥ ponuku príkazov." #: ../extras/panel/scim_panel_gtk.cpp:2306 msgid "" "\n" "(C) 2002-2005 James Su " msgstr "" "\n" "(C) 2002-2005 James Su " #. Reload Configuration. #: ../extras/panel/scim_panel_gtk.cpp:2385 msgid "Reload Configuration" msgstr "ZnovunaÄítaÅ¥ konfiguráciu" #. Stick #: ../extras/panel/scim_panel_gtk.cpp:2395 msgid "Stick Windows" msgstr "PrichytávaÅ¥ okná" #. Toolbar #: ../extras/panel/scim_panel_gtk.cpp:2404 msgid "Hide Toolbar" msgstr "SkryÅ¥ panel nástrojov" #. Help #: ../extras/panel/scim_panel_gtk.cpp:2413 msgid "Help ..." msgstr "Pomoc..." #. Clients exit. #: ../extras/panel/scim_panel_gtk.cpp:2431 msgid "Exit" msgstr "UkonÄiÅ¥" #: ../utils/scimstringview.c:196 msgid "Cursor Position" msgstr "Poloha kurzora" #: ../utils/scimstringview.c:197 #, fuzzy msgid "The current position of the insertion cursor in chars." msgstr "Aktuálna poloha vkladacieho kurzora v znakoch." #: ../utils/scimstringview.c:206 msgid "Maximum length" msgstr "Maximálna dĺžka" #: ../utils/scimstringview.c:207 #, fuzzy msgid "Maximum number of characters for this string view. Zero if no maximum." msgstr "" "Maximálny poÄet znakov tohto pohľadu na reÅ¥azec. Nula znamená neobmedzený." #: ../utils/scimstringview.c:216 msgid "Maximum width" msgstr "Maximálna šírka" #: ../utils/scimstringview.c:217 msgid "Maximum width of this string view." msgstr "Maximálna šírka tohto pohľadu na reÅ¥azec." #: ../utils/scimstringview.c:226 msgid "Has Frame" msgstr "Má rámec" #: ../utils/scimstringview.c:227 #, fuzzy msgid "FALSE removes outside bevel from string view." msgstr "FALSE odstráni vonkajší rámÄek z pohľadu na reÅ¥azec." #: ../utils/scimstringview.c:234 msgid "Draw cursor" msgstr "VykresľovaÅ¥ kurzor" #: ../utils/scimstringview.c:235 msgid "TRUE draw blinking cursor." msgstr "TRUE vykresľovaÅ¥ blikajúci kurzor." #: ../utils/scimstringview.c:242 msgid "Auto move cursor" msgstr "Automatický posun kurzora" #: ../utils/scimstringview.c:243 #, fuzzy msgid "TRUE auto move cursor position when mouse clicking." msgstr "TRUE automaticky presúvaÅ¥ kurzor poÄas klikania myÅ¡ou." #: ../utils/scimstringview.c:250 msgid "Forward button press event" msgstr "Preposlanie udalosti stlaÄenia tlaÄidla" #: ../utils/scimstringview.c:251 msgid "TRUE forward button press event to user program." msgstr "TRUE preposlanie udalosti stlaÄenia tlaÄidla používateľskému programu." #: ../utils/scimstringview.c:258 #, fuzzy msgid "Auto resize the widget to fit the string" msgstr "Automatická zmena veľkosti nástroja, aby sa reÅ¥azec zmestil." #: ../utils/scimstringview.c:259 msgid "TRUE Auto resize on." msgstr "TRUE automatická zmena veľkosti zapnutá." #: ../utils/scimstringview.c:266 msgid "Width in chars" msgstr "Šírka v znakoch" #: ../utils/scimstringview.c:267 msgid "Number of characters to leave space for in the string view." msgstr "PoÄet znakov, koľko miesta vynechaÅ¥ v pohľade na reÅ¥azec." #: ../utils/scimstringview.c:276 msgid "Scroll offset" msgstr "Ofset posúvania" #: ../utils/scimstringview.c:277 #, fuzzy msgid "Number of pixels of the string view scrolled off the screen to the left" msgstr "PoÄet pixelov v pohľade na reÅ¥azec pri presune doľava." #: ../utils/scimstringview.c:286 msgid "Text" msgstr "Text" #: ../utils/scimstringview.c:287 #, fuzzy msgid "The contents of the string view" msgstr "Obsah pohľadu na reÅ¥azec" #: ../utils/scimkeyselection.cpp:155 msgid "Selected _Keys:" msgstr "Zvolené _klávesy:" #: ../utils/scimkeyselection.cpp:200 msgid "Key Code:" msgstr "Kód klávesu:" #: ../utils/scimkeyselection.cpp:218 msgid "..." msgstr "..." #: ../utils/scimkeyselection.cpp:223 msgid "Modifiers:" msgstr "Modifikátory:" #: ../utils/scimkeyselection.cpp:236 msgid "_Ctrl" msgstr "_Ctrl" #: ../utils/scimkeyselection.cpp:240 msgid "A_lt" msgstr "A_lt" #: ../utils/scimkeyselection.cpp:244 msgid "_Shift" msgstr "_Shift" #: ../utils/scimkeyselection.cpp:248 msgid "_Release" msgstr "_Uvoľnenie" #: ../utils/scimkeyselection.cpp:258 msgid "_Meta" msgstr "_Meta" #: ../utils/scimkeyselection.cpp:262 msgid "S_uper" msgstr "S_uper" #: ../utils/scimkeyselection.cpp:266 msgid "_Hyper" msgstr "_Hyper" #: ../utils/scimkeyselection.cpp:331 #, fuzzy msgid "Please enter a Key Code first." msgstr "Prosím, najprv zadajte kód." #: ../utils/scimkeyselection.cpp:385 #, fuzzy msgid "" "Press a key (or a key combination).\n" "This dialog will be closed when the key is released." msgstr "" "StlaÄte kláves (alebo kombináciu kláves).\n" "Tento dialóg sa zatvorí, keÄ pustíte kláves." #: ../utils/scimkeyselection.cpp:388 msgid "Grabbing a key." msgstr "Zachytávanie klávesu." #: ../utils/scimkeyselection.cpp:678 msgid "Key Selection" msgstr "Výber klávesu" #: ../utils/scimtrayicon.c:108 msgid "Orientation" msgstr "Orientácia" #: ../utils/scimtrayicon.c:109 #, fuzzy msgid "The orientation of the tray." msgstr "Orientácia oznamovacej oblasti." #~ msgid "Current input method state. Click to change it." #~ msgstr "Stav aktuálnej metódy vstupu. Zmeníte kliknutím." #~ msgid "" #~ "Key events to turn the SCIM input method on/off. Click on the right " #~ "button to edit." #~ msgstr "" #~ "Klávesové udalosti, ktoré majú zapnúť/vypnúť vstupnú metódu SCIM. " #~ "Upravíte kliknutím pravého tlaÄidla." #~ msgid "Place toolbar at the screen border." #~ msgstr "UmiestniÅ¥ panel nástrojov na okraj obrazovky." #~ msgid "Display stick icon on the toolbar." #~ msgstr "ZobrazoÅ¥ ikonu prichytenia vstupnej metódy na paneli nástrojov." #~ msgid "Display menu icon on the toolbar." #~ msgstr "ZobrazoÅ¥ ikonu ponuky vstupnej metódy na paneli nástrojov." #~ msgid "Display help icon on the toolbar." #~ msgstr "ZobrazoÅ¥ ikonu pomocníka vstupnej metódy na paneli nástrojov." #~ msgid "Embed lookup table inside the input window." #~ msgstr "VložiÅ¥ vyhľadávaciu tabuľku do vstupného okna." #~ msgid "Display lookup table vertically." #~ msgstr "ZobrazoÅ¥ vyhľadávaciu tabuľku zvisle." #~ msgid "Quit SCIM setup?" #~ msgstr "UkonÄiÅ¥ Nastavenie SCIM?" #~ msgid "Please restart SCIM to allow the new configuration to take effect." #~ msgstr "Prosím, reÅ¡tartujte SCIM, aby sa nové nastavenie prejavilo." #~ msgid "Afar" #~ msgstr "afarÄina" #~ msgid "Abkhazian" #~ msgstr "abcházÄina" #~ msgid "Achinese" #~ msgstr "acehÄina" #~ msgid "Acoli" #~ msgstr "aÄoli" #~ msgid "Adangme" #~ msgstr "adangme" #~ msgid "Adyghe; Adygei" #~ msgstr "adygÄina; adygejÄina" #~ msgid "Afro-Asiatic (Other)" #~ msgstr "afroázijské jazyky (iné)" #~ msgid "Afrihili" #~ msgstr "afrihili" #~ msgid "Afrikaans" #~ msgstr "afrikánÄina" #~ msgid "Ainu" #~ msgstr "ainÄina" #~ msgid "Akan" #~ msgstr "akanÄina" #~ msgid "Akkadian" #~ msgstr "akkadÄina" #~ msgid "Algonquian languages" #~ msgstr "algonkinské jazyky" #~ msgid "Southern Altai" #~ msgstr "južná altajÄina" scim-1.4.14/po/sv.po000066400000000000000000001073221177210725600141570ustar00rootroot00000000000000# Swedish translation for scim # Copyright (c) (c) 2006 Canonical Ltd, and Rosetta Contributors 2006 # This file is distributed under the same license as the scim package. # <>, 2006. # # msgid "" msgstr "" "Project-Id-Version: scim\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-06-22 11:40-0700\n" "PO-Revision-Date: 2006-09-09 21:37+0200\n" "Last-Translator: <>\n" "Language-Team: Swedish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../src/scim_compose_key.cpp:126 msgid "English/European" msgstr "Västerländsk" #. Append an entry for forward mode. #: ../src/scim_imengine.cpp:638 ../src/scim_utility.cpp:693 #: ../modules/FrontEnd/scim_x11_frontend.cpp:1897 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1281 #: ../extras/panel/scim_panel_gtk.cpp:2814 msgid "English/Keyboard" msgstr "Latinsk teckeninmatning" #: ../src/scim_utility.cpp:694 msgid "Amharic" msgstr "Amhariska" #: ../src/scim_utility.cpp:695 msgid "Arabic" msgstr "Arabiska" #: ../src/scim_utility.cpp:696 msgid "Arabic (Egypt)" msgstr "Arabiska (Egypten)" #: ../src/scim_utility.cpp:697 msgid "Arabic (Lebanon)" msgstr "Arabiska (Libanon)" #: ../src/scim_utility.cpp:698 msgid "Assamese" msgstr "Assamesiska" #: ../src/scim_utility.cpp:699 msgid "Azerbaijani" msgstr "Azerbajdzjanska" #: ../src/scim_utility.cpp:700 msgid "Belarusian" msgstr "Vitryska" #: ../src/scim_utility.cpp:701 msgid "Bulgarian" msgstr "Bulgariska" #: ../src/scim_utility.cpp:702 ../src/scim_utility.cpp:703 msgid "Bengali" msgstr "Bengali" #: ../src/scim_utility.cpp:704 msgid "Bengali (India)" msgstr "Bengali (Indien)" #: ../src/scim_utility.cpp:705 msgid "Tibetan" msgstr "Tibetanska" #: ../src/scim_utility.cpp:706 msgid "Bosnian" msgstr "Bosniska" #: ../src/scim_utility.cpp:707 msgid "Catalan" msgstr "Katalanska" #: ../src/scim_utility.cpp:708 ../src/scim_keyboard_layout_data.h:4595 msgid "Czech" msgstr "Tjeckiska" #: ../src/scim_utility.cpp:709 msgid "Welsh" msgstr "Kymriska" #: ../src/scim_utility.cpp:710 ../src/scim_keyboard_layout_data.h:4597 msgid "Danish" msgstr "Danska" #: ../src/scim_utility.cpp:711 ../src/scim_keyboard_layout_data.h:4605 msgid "German" msgstr "Tyska" #: ../src/scim_utility.cpp:712 msgid "Divehi" msgstr "" #: ../src/scim_utility.cpp:713 ../src/scim_keyboard_layout_data.h:4608 msgid "Greek" msgstr "Grekiska" #: ../src/scim_utility.cpp:714 msgid "English" msgstr "Engelska" #: ../src/scim_utility.cpp:715 msgid "English (Australian)" msgstr "Engelska (australiensisk)" #: ../src/scim_utility.cpp:716 msgid "English (Canadian)" msgstr "Engelska (kanadensisk)" #: ../src/scim_utility.cpp:717 msgid "English (British)" msgstr "Engelska (brittisk)" #: ../src/scim_utility.cpp:718 msgid "English (Ireland)" msgstr "Engelska (irländsk)" #: ../src/scim_utility.cpp:719 msgid "English (American)" msgstr "Engelska (amerikansk)" #: ../src/scim_utility.cpp:720 ../src/scim_utility.cpp:721 #: ../src/scim_keyboard_layout_data.h:4621 msgid "Spanish" msgstr "Spanska" #: ../src/scim_utility.cpp:722 msgid "Spanish (Mexico)" msgstr "Spanska (Mexiko)" #: ../src/scim_utility.cpp:723 ../src/scim_keyboard_layout_data.h:4600 msgid "Estonian" msgstr "Estniska" #: ../src/scim_utility.cpp:724 msgid "Basque" msgstr "Baskiska" #: ../src/scim_utility.cpp:725 msgid "Persian" msgstr "Persiska" #: ../src/scim_utility.cpp:726 ../src/scim_keyboard_layout_data.h:4601 msgid "Finnish" msgstr "Finska" #: ../src/scim_utility.cpp:727 ../src/scim_keyboard_layout_data.h:4602 msgid "French" msgstr "Franska" #: ../src/scim_utility.cpp:728 msgid "Irish" msgstr "Irländska" #: ../src/scim_utility.cpp:729 msgid "Galician" msgstr "Galiciska" #: ../src/scim_utility.cpp:730 msgid "Gujarati" msgstr "Gujarati" #: ../src/scim_utility.cpp:731 ../src/scim_utility.cpp:740 msgid "Hebrew" msgstr "Hebreiska" #: ../src/scim_utility.cpp:732 msgid "Hindi" msgstr "Hindi" #: ../src/scim_utility.cpp:733 ../src/scim_keyboard_layout_data.h:4594 msgid "Croatian" msgstr "Kroatiska" #: ../src/scim_utility.cpp:734 ../src/scim_keyboard_layout_data.h:4609 msgid "Hungarian" msgstr "Ungerska" #: ../src/scim_utility.cpp:735 #, fuzzy msgid "Armenian" msgstr "Rumänska" #: ../src/scim_utility.cpp:736 msgid "Interlingua" msgstr "Interlingua" #: ../src/scim_utility.cpp:737 msgid "Indonesian" msgstr "Indonesiska" #: ../src/scim_utility.cpp:738 ../src/scim_keyboard_layout_data.h:4627 msgid "Icelandic" msgstr "Isländska" #: ../src/scim_utility.cpp:739 ../src/scim_keyboard_layout_data.h:4610 msgid "Italian" msgstr "Italienska" #: ../src/scim_utility.cpp:741 ../src/scim_keyboard_layout_data.h:4611 msgid "Japanese" msgstr "Japanska" #: ../src/scim_utility.cpp:742 #, fuzzy msgid "Georgian" msgstr "Tyska" #: ../src/scim_utility.cpp:743 msgid "Kazakh" msgstr "Kazakisk" #: ../src/scim_utility.cpp:744 msgid "Cambodian" msgstr "Kambodjanska" #: ../src/scim_utility.cpp:745 msgid "Kannada" msgstr "Kannada" #: ../src/scim_utility.cpp:746 msgid "Korean" msgstr "Koreanska" #: ../src/scim_utility.cpp:747 msgid "Laothian" msgstr "Laotiska" #: ../src/scim_utility.cpp:748 ../src/scim_keyboard_layout_data.h:4628 msgid "Lithuanian" msgstr "Litauiska" #: ../src/scim_utility.cpp:749 msgid "Latvian" msgstr "Lettiska" #: ../src/scim_utility.cpp:750 msgid "Macedonian" msgstr "Makedonska" #: ../src/scim_utility.cpp:751 msgid "Malayalam" msgstr "Malayalam" #: ../src/scim_utility.cpp:752 msgid "Mongolian" msgstr "Mongolska" #: ../src/scim_utility.cpp:753 msgid "Marathi" msgstr "Marathi" #: ../src/scim_utility.cpp:754 msgid "Malay" msgstr "Malay" #: ../src/scim_utility.cpp:755 msgid "Burmese" msgstr "" #: ../src/scim_utility.cpp:756 msgid "Nepali" msgstr "Nepali (Khaskura)" #: ../src/scim_utility.cpp:757 ../src/scim_keyboard_layout_data.h:4598 msgid "Dutch" msgstr "Holländska" #: ../src/scim_utility.cpp:758 msgid "Norwegian (nynorsk)" msgstr "Norska (nynorsk)" #: ../src/scim_utility.cpp:759 msgid "Norwegian (bokmal)" msgstr "Norska (bokmÃ¥l)" #: ../src/scim_utility.cpp:760 msgid "Oriya" msgstr "Oriya" #: ../src/scim_utility.cpp:761 msgid "Punjabi" msgstr "Punjabi" #: ../src/scim_utility.cpp:762 ../src/scim_keyboard_layout_data.h:4613 msgid "Polish" msgstr "Polska" #: ../src/scim_utility.cpp:763 ../src/scim_utility.cpp:765 #: ../src/scim_keyboard_layout_data.h:4614 msgid "Portuguese" msgstr "Portugisiska" #: ../src/scim_utility.cpp:764 ../src/scim_keyboard_layout_data.h:4615 msgid "Portuguese (Brazil)" msgstr "Portugisiska (Brasilien)" #: ../src/scim_utility.cpp:766 msgid "Romanian" msgstr "Rumänska" #: ../src/scim_utility.cpp:767 ../src/scim_keyboard_layout_data.h:4617 msgid "Russian" msgstr "Ryska" #: ../src/scim_utility.cpp:768 msgid "Sinhala" msgstr "" #: ../src/scim_utility.cpp:769 ../src/scim_keyboard_layout_data.h:4618 msgid "Slovak" msgstr "Slovakiska" #: ../src/scim_utility.cpp:770 ../src/scim_keyboard_layout_data.h:4620 msgid "Slovenian" msgstr "Slovenska" #: ../src/scim_utility.cpp:771 msgid "Albanian" msgstr "Albanska" #: ../src/scim_utility.cpp:772 ../src/scim_utility.cpp:773 #: ../src/scim_utility.cpp:774 msgid "Serbian" msgstr "Serbiska" #: ../src/scim_utility.cpp:775 ../src/scim_utility.cpp:777 #: ../src/scim_keyboard_layout_data.h:4624 msgid "Swedish" msgstr "Svenska" #: ../src/scim_utility.cpp:776 msgid "Swedish (Finland)" msgstr "Svenska (Finland)" #: ../src/scim_utility.cpp:778 msgid "Tamil" msgstr "Tamil" #: ../src/scim_utility.cpp:779 msgid "Telugu" msgstr "Telagu" #: ../src/scim_utility.cpp:780 msgid "Thai" msgstr "Thai" #: ../src/scim_utility.cpp:781 ../src/scim_keyboard_layout_data.h:4625 msgid "Turkish" msgstr "Turkiska" #: ../src/scim_utility.cpp:782 msgid "Uighur" msgstr "Uiguriska" #: ../src/scim_utility.cpp:783 ../src/scim_keyboard_layout_data.h:4629 msgid "Ukrainian" msgstr "Ukrainska" #: ../src/scim_utility.cpp:784 msgid "Urdu" msgstr "Urdu" #: ../src/scim_utility.cpp:785 msgid "Uzbek" msgstr "Uzbekiska" #: ../src/scim_utility.cpp:786 msgid "Vietnamese" msgstr "Vietnamesiska" #: ../src/scim_utility.cpp:787 msgid "Walloon" msgstr "Vallonska" #: ../src/scim_utility.cpp:788 ../src/scim_utility.cpp:789 msgid "Yiddish" msgstr "Jiddish" #: ../src/scim_utility.cpp:790 msgid "Chinese" msgstr "Kinesiska" #: ../src/scim_utility.cpp:791 ../src/scim_utility.cpp:793 msgid "Chinese (simplified)" msgstr "Kinesiska (förenklad)" #: ../src/scim_utility.cpp:792 ../src/scim_utility.cpp:794 msgid "Chinese (traditional)" msgstr "Kinesiska (traditionell)" #: ../src/scim_utility.cpp:876 msgid "Other" msgstr "Annat" #: ../src/scim_keyboard_layout_data.h:4591 #: ../modules/IMEngine/scim_socket_imengine.cpp:386 #: ../modules/IMEngine/scim_socket_imengine.cpp:416 #: ../modules/IMEngine/scim_socket_imengine.cpp:501 #: ../modules/IMEngine/scim_socket_imengine.cpp:531 #: ../modules/IMEngine/scim_socket_imengine.cpp:561 msgid "Unknown" msgstr "Okänd" #: ../src/scim_keyboard_layout_data.h:4592 msgid "English (US)" msgstr "Engelsk (US)" #: ../src/scim_keyboard_layout_data.h:4593 msgid "Belgian" msgstr "Belgisk" #: ../src/scim_keyboard_layout_data.h:4596 msgid "Czech (qwerty)" msgstr "Tjeckisk (qwerty)" #: ../src/scim_keyboard_layout_data.h:4599 msgid "Dvorak" msgstr "Dvorak" #: ../src/scim_keyboard_layout_data.h:4603 msgid "French (Canadian)" msgstr "Fransk (kanadensisk)" #: ../src/scim_keyboard_layout_data.h:4604 msgid "French (Switzerland)" msgstr "Fransk (schweizisk)" #: ../src/scim_keyboard_layout_data.h:4606 msgid "German (with deadkeys)" msgstr "Tysk (med 'Tottaste')" #: ../src/scim_keyboard_layout_data.h:4607 msgid "German (Swiss)" msgstr "Tysk (Schweizisk)" #: ../src/scim_keyboard_layout_data.h:4612 msgid "Norwegian" msgstr "Norsk" #: ../src/scim_keyboard_layout_data.h:4616 msgid "Portuguese (Brazil US accents)" msgstr "Portugisisk (Brazilien, am. diakriter)" #: ../src/scim_keyboard_layout_data.h:4619 msgid "Slovak (qwerty)" msgstr "Slovakisk (qwerty)" #: ../src/scim_keyboard_layout_data.h:4622 msgid "Spanish (CP 850)" msgstr "Spansk (CP 850)" #: ../src/scim_keyboard_layout_data.h:4623 msgid "Spanish (Latin America)" msgstr "Spansk (Latinamerika)" #: ../src/scim_keyboard_layout_data.h:4626 msgid "English (UK)" msgstr "Engelsk (UK)" #: ../modules/Filter/scim_sctc_filter.cpp:57 msgid "Simplified-Traditional Chinese Conversion" msgstr "Omvandling förenklad/traditionell kinesiska" #: ../modules/Filter/scim_sctc_filter.cpp:60 msgid "Convert between Simplified Chinese and Traditional Chinese" msgstr "Omvandla förenklad kinesiska till traditionell och vice versa" #: ../modules/Filter/scim_sctc_filter.cpp:71 msgid "SC-TC" msgstr "SC-TC" #: ../modules/Filter/scim_sctc_filter.cpp:73 #: ../modules/Filter/scim_sctc_filter.cpp:78 msgid "Simplified-Traditional Chinese conversion" msgstr "Omvandling förenklad/traditionell kinesiska" #: ../modules/Filter/scim_sctc_filter.cpp:76 msgid "No Conversion" msgstr "Ingen omvandling" #: ../modules/Filter/scim_sctc_filter.cpp:81 msgid "Simplified to Traditional" msgstr "Förenklad till traditionell" #: ../modules/Filter/scim_sctc_filter.cpp:83 msgid "Convert Simplified Chinese to Traditional Chinese" msgstr "Omvandla förenklad kinesiska till traditionell" #: ../modules/Filter/scim_sctc_filter.cpp:86 msgid "Traditional to Simplified" msgstr "Traditionell till förenklad" #: ../modules/Filter/scim_sctc_filter.cpp:88 msgid "Convert Traditional Chinese to Simplified Chinese" msgstr "Omvandla traditionell kinesiska till förenklad" #: ../modules/Filter/scim_sctc_filter.cpp:300 msgid "James Su " msgstr "James Su " #: ../modules/Filter/scim_sctc_filter.cpp:425 #: ../modules/Filter/scim_sctc_filter.cpp:555 #: ../modules/Filter/scim_sctc_filter.cpp:571 msgid "SC->TC" msgstr "SC->TC" #: ../modules/Filter/scim_sctc_filter.cpp:431 #: ../modules/Filter/scim_sctc_filter.cpp:559 #: ../modules/Filter/scim_sctc_filter.cpp:575 msgid "TC->SC" msgstr "TC->SC" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1845 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1231 #: ../extras/panel/scim_panel_gtk.cpp:2304 msgid "Smart Common Input Method platform " msgstr "Scim-plattformen (Smart Common Input Method)" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1847 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1233 msgid "" "\n" "(C) 2002-2005 James Su \n" "\n" msgstr "" "\n" "(C) 2002-2005 James Su \n" "\n" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1851 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1238 msgid "" ":\n" "\n" msgstr "" ":\n" "\n" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1854 #: ../modules/FrontEnd/scim_x11_frontend.cpp:1857 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1241 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1244 msgid "" "\n" "\n" msgstr "" "\n" "\n" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:120 msgid "RAW CODE" msgstr "TANGENTKOD" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:127 msgid "(C) 2002-2006 James Su " msgstr "(C) 2002-2006 James Su " #: ../modules/IMEngine/scim_rawcode_imengine.cpp:140 msgid "" "Hot Keys:\n" "\n" " Control+u:\n" " switch between Multibyte encoding and Unicode.\n" "\n" " Esc:\n" " reset the input method.\n" msgstr "" "Snabbtangenter:\n" "\n" " Ctrl+u:\n" " Växla mellan multibytekodning and Unicode.\n" "\n" " Esc:\n" " Ã¥terställ inmatningsmetod.\n" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:407 #: ../modules/IMEngine/scim_rawcode_imengine.cpp:423 msgid "The status of the current input method. Click to change it." msgstr "Aktuell inmatningsmetod. Klicka för att ändra." #: ../modules/IMEngine/scim_rawcode_imengine.cpp:409 msgid "Unicode" msgstr "Unicode" #: ../modules/SetupUI/scim_frontend_setup.cpp:82 #: ../modules/SetupUI/scim_imengine_setup.cpp:88 msgid "Global Setup" msgstr "Allmänna inställningar" #: ../modules/SetupUI/scim_frontend_setup.cpp:87 msgid "" "Setup the global options used by All FrontEnd modules, including X11 " "FrontEnd, GTK IMModule, QT IMModule etc." msgstr "" "Allmänna inställningar som gäller alla användargränssnitt, t.ex. X11 " "FrontEnd, GTK IMModule, QT IMModule etc." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:143 msgid "_Trigger:" msgstr "Ak_tiveringstangent" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:145 msgid "Select the trigger keys" msgstr "Välj aktiveringstangenter" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:147 msgid "" "The key events to turn on/off SCIM input method. Click on the button on the " "right to edit it." msgstr "" "Tangentkombinationer som öppnar och stänger SCIM-inmatningen. Klicka " "pÃ¥knappen till höger för att ändra." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:160 msgid "Turn _On:" msgstr "SlÃ¥ pÃ¥ (_o):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:162 msgid "Select the Turn On keys" msgstr "Välj pÃ¥-kommando" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:164 msgid "" "The key events to turn on SCIM input method. Click on the button on the " "right to edit it." msgstr "" "Tangentkombinationer som öppnar SCIM-inmatningen. Klicka pÃ¥knappen till " "höger för att ändra." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:177 msgid "Turn O_ff:" msgstr "Stäng av (_f):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:179 msgid "Select the Turn Off keys" msgstr "Välj pÃ¥-kommando" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:181 msgid "" "The key events to turn off SCIM input method. Click on the button on the " "right to edit it." msgstr "" "Tangentkombinationer som stänger SCIM-inmatningen. Klicka pÃ¥knappen till " "höger för att ändra." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:194 msgid "_Next input method:" msgstr "_Nästa inmatningsmetod:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:196 msgid "Select the next input method keys" msgstr "Välj kommando för att hoppa till nästa" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:198 msgid "" "The key events to switch to the next input method. Click on the button on " "the right to edit it." msgstr "" "Tangentkombinationer som växlar till nästa inmatningsmetod. Klicka pÃ¥knappen " "till höger för att ändra." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:213 msgid "_Previous input method:" msgstr "FöregÃ¥ende inmatningsmetod (_p):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:215 msgid "Select the previous input method keys" msgstr "Välj kommando för att hoppa till föregÃ¥ende" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:217 msgid "" "The key events to switch to the previous input method. Click on the button " "on the right to edit it." msgstr "" "Tangentkombinationer som växlar till föregÃ¥ende inmatningsmetod. Klicka " "pÃ¥knappen till höger för att ändra." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:232 msgid "Show input method _menu:" msgstr "Visa _meny med inmatningsmetoder:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:234 msgid "Select the show input method menu keys" msgstr "Välj kommando för att visa menyn med inmatningsmetoder" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:236 msgid "" "The key events to show the input method menu. Click on the button on the " "right to edit it." msgstr "" "Tangentkombinationer som visar menyn med inmatningsmetoder. Klicka pÃ¥knappen " "till höger för att ändra." #: ../modules/SetupUI/scim_frontend_setup.cpp:306 msgid "Options" msgstr "Alternativ" #: ../modules/SetupUI/scim_frontend_setup.cpp:321 msgid "_Keyboard Layout:" msgstr "Tangentbordslayout (_k):" #: ../modules/SetupUI/scim_frontend_setup.cpp:342 msgid "" "You should choose your currently used keyboard layout here so that input " "methods, who care about keyboard layout, could work correctly." msgstr "" "Här väljer du vilket slags tangentbord du har. Det är nödvändigt föratt " "vissa inmatningsmetoder skall fungera." #. On The Spot. #: ../modules/SetupUI/scim_frontend_setup.cpp:346 msgid "_Embed Preedit String into client window" msgstr "Visa okonverterad_e latinska tecken i ditt arbetsfönster." #: ../modules/SetupUI/scim_frontend_setup.cpp:351 msgid "" "If this option is checked, the preedit string will be displayed directly in " "the client input window, rather than in a independent float window." msgstr "" "Med det här alternativet förbockat kommer de latinska bokstäver du " "skriveratt visas direkt i fönstret du arbetar i. Annars visas de i ett popup-" "fönster." #. Shared input method. #: ../modules/SetupUI/scim_frontend_setup.cpp:360 msgid "_Share the same input method among all applications" msgstr "Använd _samma inmatningsmetod i alla program" #: ../modules/SetupUI/scim_frontend_setup.cpp:365 msgid "" "If this option is checked, then only one input method could be used by all " "applications at the same time.Otherwise different input method could be used " "by each application." msgstr "" "Med det här alternativet förbockat kommer bara en inmatningsmetod att " "användasi taget. Annars kan varje program använda olika metoder." #: ../modules/SetupUI/scim_frontend_setup.cpp:373 #: ../modules/SetupUI/scim_imengine_setup.cpp:453 msgid "Hotkeys" msgstr "Kortkommandon" #: ../modules/SetupUI/scim_imengine_setup.cpp:93 msgid "" "You can enable/disable input methods and set hotkeys for input methods here." msgstr "" "SlÃ¥ av och pÃ¥ inmatningsmetoder och ange kortkommandon för olika " "inmatningsmetoder här." #: ../modules/SetupUI/scim_imengine_setup.cpp:296 msgid "The installed input method services:" msgstr "Installerade inmatningsmetoder:" #. Create hotkey and filter button before factory list view, because #. factory_list_selection_changed_callback may access these two buttons. #: ../modules/SetupUI/scim_imengine_setup.cpp:311 msgid "Edit _Hotkeys" msgstr "Redigera kortkommandon (_h)" #: ../modules/SetupUI/scim_imengine_setup.cpp:320 msgid "Edit Hotkeys associated with the selected input method." msgstr "Välj kortkommandon för vald inmatningsmetod." #: ../modules/SetupUI/scim_imengine_setup.cpp:322 msgid "Select _Filters" msgstr "Välj _filter" #: ../modules/SetupUI/scim_imengine_setup.cpp:331 msgid "Select the Filters which will be attached to this input method." msgstr "Välj filter att använda till den här inmatningsmetoden." #: ../modules/SetupUI/scim_imengine_setup.cpp:348 msgid "_Expand" msgstr "Visa allt (_e)" #: ../modules/SetupUI/scim_imengine_setup.cpp:357 msgid "Expand all language categories." msgstr "Visa alla inmatningsmetoder" #: ../modules/SetupUI/scim_imengine_setup.cpp:359 msgid "_Collapse" msgstr "Göm allt (_c)" #: ../modules/SetupUI/scim_imengine_setup.cpp:368 msgid "Collapse all language categories." msgstr "Göm alla inmatningsmetoder." #: ../modules/SetupUI/scim_imengine_setup.cpp:370 msgid "E_nable All" msgstr "Markera alla (_n)" #: ../modules/SetupUI/scim_imengine_setup.cpp:379 msgid "Enable all input methods." msgstr "Gör alla inmatningsmetoder tillgängliga för användning." #: ../modules/SetupUI/scim_imengine_setup.cpp:381 msgid "_Disable All" msgstr "Avmarkera alla (_d)" #: ../modules/SetupUI/scim_imengine_setup.cpp:390 msgid "Disable all input methods." msgstr "Gör alla inmatningsmetoder otillgängliga för användning." #: ../modules/SetupUI/scim_imengine_setup.cpp:414 #: ../modules/SetupUI/scim_imengine_setup.cpp:541 msgid "Name" msgstr "Namn" #: ../modules/SetupUI/scim_imengine_setup.cpp:432 #: ../modules/SetupUI/scim_imengine_setup.cpp:522 msgid "Enable" msgstr "Aktivera" #: ../modules/SetupUI/scim_imengine_setup.cpp:467 msgid "Filters" msgstr "Filter" #: ../modules/SetupUI/scim_imengine_setup.cpp:560 msgid "Languages" msgstr "SprÃ¥k" #: ../modules/SetupUI/scim_imengine_setup.cpp:574 msgid "Description" msgstr "Beskrivning" #: ../modules/SetupUI/scim_imengine_setup.cpp:1190 #, c-format msgid "Edit Hotkeys for %s" msgstr "Välj kortkommando för %s" #: ../modules/SetupUI/scim_imengine_setup.cpp:1417 #, c-format msgid "Select Filters for %s" msgstr "Välj filter för %s" #: ../modules/SetupUI/scim_imengine_setup.cpp:1450 msgid "Move _Up" msgstr "Flytta _uppÃ¥t" #: ../modules/SetupUI/scim_imengine_setup.cpp:1457 msgid "Move _Down" msgstr "Flytta ne_dÃ¥t" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:95 msgid "GTK" msgstr "GTK" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:100 msgid "A panel daemon based on GTK+-2.x library." msgstr "Paneldemon byggd pÃ¥ GTK+-2.x-biblioteket." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:163 msgid "Always" msgstr "Alltid" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:164 msgid "On demand" msgstr "PÃ¥ begäran" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:165 msgid "Never" msgstr "Aldrig" #. Create the ToolBar setup block. #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:211 msgid "ToolBar" msgstr "Verktygsfält" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:229 msgid "_Show:" msgstr "Vi_sa" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:245 msgid "Auto s_nap" msgstr "Fäst vid skärmka_nt" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:251 msgid "Show _input method icon" msgstr "Visa ikon för aktuell inmatningsmetod" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:257 msgid "Show inp_ut method name" msgstr "Visa namn pÃ¥ akt_uell inmatningsmetod" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:269 msgid "Hide time_out:" msgstr "Time_out för att dölja:" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:282 msgid "Show s_tick icon" msgstr "Vi_sa fixeringsikonen" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:288 msgid "Show m_enu icon" msgstr "Visa m_enyikonen" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:294 msgid "Show _help icon" msgstr "Visa _hjälpikonen" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:300 msgid "Show _property label" msgstr "Visa inmatningsalternativ" #. Create the Input Window setup block #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:311 msgid "Input window" msgstr "Inmatningsfönster" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:320 msgid "E_mbedded lookup table" msgstr "Infälld teckenväljare (_m)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:324 msgid "_Vertical lookup table" msgstr "_Vertikal teckenväljare" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:328 msgid "Misc" msgstr "Diverse" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:337 msgid "Show tra_y icon" msgstr "Visa ikon i s_ystempanelen" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:341 msgid "Stick _windows" msgstr "Fäst fönster (_w)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:349 msgid "_Font:" msgstr "Typsnitt (_f)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:419 msgid "" "If option \"Always\" is selected, the toolbar will always be shown on the " "screen. If option \"On demand\" is selected, it will only be shown when SCIM " "is activated. If option \"Never\" is selected, it will never be shown." msgstr "" "Välj \"Alltid\" för att ständigt visa verktygsfältet pÃ¥ skärmen. Välj\"PÃ¥ " "begäran\" för att bara visa verktygsfältet när Scim är aktivt.Välj \"Never\" " "för att aldrig visa verktygsfältet." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:426 msgid "" "If this option is checked, the toolbar will be snapped to the screen border." msgstr "" "Med det här alternativet förbockat är verktygsfältet alltid fäst mot " "skärmkanten." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:431 msgid "" "The toolbar will be hidden out after this timeout is elapsed. This option is " "only valid when \"Always show\" is selected. Set to zero to disable this " "behavior." msgstr "" "Verktygsfältet döljs efter sÃ¥ här lÃ¥ng tid. Den här inställningen används " "baranär du har valt \"Alltid\" i menyn till vänster. Välj 0 för att aldrig " "döljaverktygsfältet." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:438 msgid "" "If this option is checked, the input method icon will be showed on the " "toolbar." msgstr "" "Med det här alternativet förkryssat, visas alltid ikonen för " "aktuellinmatningsmetod i verktygsfältet." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:442 msgid "" "If this option is checked, the input method name will be showed on the " "toolbar." msgstr "" "Med det här alternativet förkryssat, visas alltid namnet pÃ¥ " "aktuellinmatningsmetod i verktygsfältet." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:446 msgid "" "If this option is checked, the stick icon will be showed on the toolbar." msgstr "" "Med det här alternativet förkryssat, visas häftstiftsikonen i verktygsfältet" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:450 msgid "If this option is checked, the menu icon will be showed on the toolbar." msgstr "Med det här alternativet förkryssat, visas menyikonen i verktygsfältet" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:454 msgid "If this option is checked, the help icon will be showed on the toolbar." msgstr "" "Med det här alternativet förkryssat, visas hjälpikonen i verktygsfältet." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:458 msgid "" "If this option is checked, the text label of input method properties will be " "showed on the toolbar." msgstr "" "Med det här alternativet förkryssat, visas en textlapp med " "inmatningsalternativi verktygsfältet" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:462 msgid "" "If this option is checked, the lookup table will be embedded into the input " "window." msgstr "" "Med det här alternativet förkryssat, visas teckenväljaren infälld " "iinmatningsfönstret." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:467 msgid "" "If this option is checked, the lookup table will be displayed vertically." msgstr "Med det här alternativet förkryssat används en vertikal teckenväljare." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:472 msgid "" "If this option is checked, the tray icon will be showed on the desktop's " "taskbar." msgstr "" "Med det här alternativet förkryssat visas panelikonen i " "skrivbordetssystempanel." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:476 msgid "" "If this option is checked, the toolbar, input and lookup table windows will " "be sticked to its original position." msgstr "" "Med det här alternativet förkryssat fixeras verktygsfält, " "inmatningsfönsteroch teckenväljare pÃ¥ en given plats." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:482 msgid "The font setting will be used in the input and lookup table windows." msgstr "" "Det typsnitt som kommer att användas i inmatnings- och teckenväljarfönster" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:801 msgid "Select Interface Font" msgstr "Välj typsnitt för användargränssnittet" #: ../extras/setup/scim_setup_ui.cpp:47 msgid "SCIM" msgstr "SCIM" #: ../extras/setup/scim_setup_ui.cpp:48 msgid "FrontEnd" msgstr "FrontEnd" #: ../extras/setup/scim_setup_ui.cpp:49 msgid "IMEngine" msgstr "IMEngine" #: ../extras/setup/scim_setup_ui.cpp:50 msgid "Panel" msgstr "Panel" #: ../extras/setup/scim_setup_ui.cpp:51 msgid "Extra" msgstr "Extra" #. #. vi:ts=4:nowrap:ai:expandtab #. #: ../extras/setup/scim_setup_ui.cpp:230 #: ../extras/setup/scim-setup.desktop.in.h:1 msgid "SCIM Input Method Setup" msgstr "Inställningar för Scim" #: ../extras/setup/scim_setup_ui.cpp:369 msgid "" " Smart Common Input Method platform \n" "\n" "GUI Setup Utility\n" "\n" "\n" "\n" "Copyright 2002-2004, James Su <suzhe@tsinghua.org." "cn>" msgstr "" " Scim-plattformen (Smart Common Input Method) \n" "\n" "Grafiskt inställningsverktyg\n" "\n" "\n" "\n" "Copyright 2002-2004, James Su <suzhe@tsinghua.org." "cn>" #: ../extras/setup/scim_setup_ui.cpp:394 #, c-format msgid "The Setup for %s modules." msgstr "Inställningar för %s-moduler." #msgid "Are you sure you want to quit SCIM Setup?" #msgstr "Vill du avsluta inställningsverktyget för Scim?" #: ../extras/setup/scim_setup_ui.cpp:661 msgid "" "Not all configuration can be reloaded on the fly. Don't forget to restart " "SCIM in order to let all of the new configuration take effect." msgstr "" "MÃ¥nga inställningar kräver att du startar om Scim innan du fortsätter,för " "att de skall börja verka." #: ../extras/setup/scim_setup_helper.cpp:49 msgid "SCIM Setup" msgstr "Inställningar för Scim" #: ../extras/setup/scim_setup_helper.cpp:51 msgid "Integrated Setup Utility based on GTK Widget library." msgstr "Inställningsverktyg byggt pÃ¥ GTK Widget-biblioteket." #: ../extras/setup/scim-setup.desktop.in.h:2 msgid "Setup utility for Smart Common Input Method platform" msgstr "Inställningsverktyg för Scim-plattformen (Smart Common Input Method)" #: ../extras/panel/scim_panel_gtk.cpp:982 msgid "SCIM Help" msgstr "Om Scim" #: ../extras/panel/scim_panel_gtk.cpp:999 msgid "Smart Common Input Method" msgstr "Scim (Smart Common Input Method)" #: ../extras/panel/scim_panel_gtk.cpp:1058 msgid "Stick/unstick the input window and the toolbar." msgstr "Fixera/lossa inmatningsfönstret och verktygsfältet" #: ../extras/panel/scim_panel_gtk.cpp:1063 msgid "Show a brief help about SCIM and the current input method." msgstr "Kortfattad information om Scim och om aktuell inmatningsmetod." #: ../extras/panel/scim_panel_gtk.cpp:1068 msgid "Show command menu." msgstr "Visa kommandomenyn." #: ../extras/panel/scim_panel_gtk.cpp:2306 msgid "" "\n" "(C) 2002-2005 James Su " msgstr "" "\n" "(C) 2002-2005 James Su " #. Reload Configuration. #: ../extras/panel/scim_panel_gtk.cpp:2385 msgid "Reload Configuration" msgstr "Ã…terhämta inställningar" #. Stick #: ../extras/panel/scim_panel_gtk.cpp:2395 msgid "Stick Windows" msgstr "Fixera fönster" #. Toolbar #: ../extras/panel/scim_panel_gtk.cpp:2404 msgid "Hide Toolbar" msgstr "Dölj verktygsfältet" #. Help #: ../extras/panel/scim_panel_gtk.cpp:2413 msgid "Help ..." msgstr "Hjälp ..." #. Clients exit. #: ../extras/panel/scim_panel_gtk.cpp:2431 msgid "Exit" msgstr "Avsluta" #: ../utils/scimstringview.c:196 msgid "Cursor Position" msgstr "Markörens position" #: ../utils/scimstringview.c:197 msgid "The current position of the insertion cursor in chars." msgstr "Markörens läge i texten, räknat i tecken." #: ../utils/scimstringview.c:206 msgid "Maximum length" msgstr "Maxlängd" #: ../utils/scimstringview.c:207 msgid "Maximum number of characters for this string view. Zero if no maximum." msgstr "" "Högsta antal tecken att visa i den här teckenraden. Välj 0 för att inte " "begränsa längden." #: ../utils/scimstringview.c:216 msgid "Maximum width" msgstr "Maxbredd" #: ../utils/scimstringview.c:217 msgid "Maximum width of this string view." msgstr "Maximal bredd för att visa den här teckenraden." #: ../utils/scimstringview.c:226 msgid "Has Frame" msgstr "Med ram" #: ../utils/scimstringview.c:227 msgid "FALSE removes outside bevel from string view." msgstr "Om FALSK tas ytterkanten bort frÃ¥n strängvyn." #: ../utils/scimstringview.c:234 msgid "Draw cursor" msgstr "Visa markör" #: ../utils/scimstringview.c:235 msgid "TRUE draw blinking cursor." msgstr "Om SANT använd blinkande markör." #: ../utils/scimstringview.c:242 msgid "Auto move cursor" msgstr "Flytta markören automatiskt" #: ../utils/scimstringview.c:243 msgid "TRUE auto move cursor position when mouse clicking." msgstr "Flytta markören automatiskt vid musklick." #: ../utils/scimstringview.c:250 msgid "Forward button press event" msgstr "Direktmata tangenter" #: ../utils/scimstringview.c:251 msgid "TRUE forward button press event to user program." msgstr "Skicka tangentnedtryckningar till användarprogrammet." #: ../utils/scimstringview.c:258 msgid "Auto resize the widget to fit the string" msgstr "Anpassa storleken automatiskt till teckenraden." #: ../utils/scimstringview.c:259 msgid "TRUE Auto resize on." msgstr "Storleken anpassas automatiskt." #: ../utils/scimstringview.c:266 msgid "Width in chars" msgstr "Bredd (antal tecken)" #: ../utils/scimstringview.c:267 msgid "Number of characters to leave space for in the string view." msgstr "Antal tecken att göra rum för i teckenraden." #: ../utils/scimstringview.c:276 msgid "Scroll offset" msgstr "Mjuk rullning" #: ../utils/scimstringview.c:277 msgid "Number of pixels of the string view scrolled off the screen to the left" msgstr "Antal pixlar i teckenraden som rullat över vänsterkanten pÃ¥ skärmen" #: ../utils/scimstringview.c:286 msgid "Text" msgstr "Text" #: ../utils/scimstringview.c:287 msgid "The contents of the string view" msgstr "InnehÃ¥llet i teckenraden" #: ../utils/scimkeyselection.cpp:155 msgid "Selected _Keys:" msgstr "Valda _kortkommandon:" #: ../utils/scimkeyselection.cpp:200 msgid "Key Code:" msgstr "Tangentkod:" #: ../utils/scimkeyselection.cpp:218 msgid "..." msgstr "..." #: ../utils/scimkeyselection.cpp:223 msgid "Modifiers:" msgstr "Specialtangenter:" #: ../utils/scimkeyselection.cpp:236 msgid "_Ctrl" msgstr "_Ctrl" #: ../utils/scimkeyselection.cpp:240 msgid "A_lt" msgstr "A_lt" #: ../utils/scimkeyselection.cpp:244 msgid "_Shift" msgstr "_Shift" #: ../utils/scimkeyselection.cpp:248 msgid "_Release" msgstr "_Release" #: ../utils/scimkeyselection.cpp:258 msgid "_Meta" msgstr "_Meta" #: ../utils/scimkeyselection.cpp:262 msgid "S_uper" msgstr "S_uper" #: ../utils/scimkeyselection.cpp:266 msgid "_Hyper" msgstr "_Hyper" #: ../utils/scimkeyselection.cpp:331 msgid "Please enter a Key Code first." msgstr "Ange tangentkod först." #: ../utils/scimkeyselection.cpp:385 msgid "" "Press a key (or a key combination).\n" "This dialog will be closed when the key is released." msgstr "" "Tryck pÃ¥ en tangent eller pÃ¥ en tangentkombination.\n" "Den här rutan försvinner när du släpper tangenten." #: ../utils/scimkeyselection.cpp:388 msgid "Grabbing a key." msgstr "Plockar tangent" #: ../utils/scimkeyselection.cpp:678 msgid "Key Selection" msgstr "Tangentval" #: ../utils/scimtrayicon.c:108 msgid "Orientation" msgstr "Riktning" #: ../utils/scimtrayicon.c:109 msgid "The orientation of the tray." msgstr "Panelens riktning." #~ msgid "Are you sure you want to quit SCIM Setup?" #~ msgstr "Vill du avsluta inställningsverktyget för Scim?" scim-1.4.14/po/ta.po000066400000000000000000001420221177210725600141270ustar00rootroot00000000000000# translation of ta.po to Tamil # Tamil translations for PACKAGE package. # Copyright (C) 2008 THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Automatically generated, 2008. # I. Felix , 2008. msgid "" msgstr "" "Project-Id-Version: ta\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-06-22 11:40-0700\n" "PO-Revision-Date: 2008-04-02 13:45+0530\n" "Last-Translator: I. Felix \n" "Language-Team: Tamil \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n\n\n" "\n" "\n" "\n" "\n" #: ../src/scim_compose_key.cpp:126 msgid "English/European" msgstr "ஆஙà¯à®•ிலமà¯/à®à®°à¯‹à®ªà¯à®ªà®¾" #. Append an entry for forward mode. #: ../src/scim_imengine.cpp:638 ../src/scim_utility.cpp:693 #: ../modules/FrontEnd/scim_x11_frontend.cpp:1897 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1281 #: ../extras/panel/scim_panel_gtk.cpp:2814 msgid "English/Keyboard" msgstr "ஆஙà¯à®•ிலமà¯/விசைபà¯à®ªà®²à®•ை" #: ../src/scim_utility.cpp:694 msgid "Amharic" msgstr "à®…à®®à¯à®¹à®°à®¿à®•à¯" #: ../src/scim_utility.cpp:695 msgid "Arabic" msgstr "அரேபியமà¯" #: ../src/scim_utility.cpp:696 msgid "Arabic (Egypt)" msgstr "அரேபிக௠(எகிபà¯à®¤à¯)" #: ../src/scim_utility.cpp:697 msgid "Arabic (Lebanon)" msgstr "அரேபிக௠(லிபனானà¯)" #: ../src/scim_utility.cpp:698 msgid "Assamese" msgstr "அசாமி" #: ../src/scim_utility.cpp:699 msgid "Azerbaijani" msgstr "அசரà¯à®ªà¯ˆà®œà®¾à®©à®¿" #: ../src/scim_utility.cpp:700 msgid "Belarusian" msgstr "பெலாரà¯à®·à®¿à®¯à®©à¯" #: ../src/scim_utility.cpp:701 msgid "Bulgarian" msgstr "பலà¯à®•ேரியனà¯" #: ../src/scim_utility.cpp:702 ../src/scim_utility.cpp:703 msgid "Bengali" msgstr "பெஙà¯à®•ாலி" #: ../src/scim_utility.cpp:704 msgid "Bengali (India)" msgstr "பெஙà¯à®•ாலி (இநà¯à®¤à®¿à®¯à®¾)" #: ../src/scim_utility.cpp:705 msgid "Tibetan" msgstr "திபேதà¯à®¤à®¿à®¯à®©à¯" #: ../src/scim_utility.cpp:706 msgid "Bosnian" msgstr "போஸà¯à®©à®¿à®¯à®©à¯" #: ../src/scim_utility.cpp:707 msgid "Catalan" msgstr "காடà¯à®Ÿà®²à®¾à®©à¯" #: ../src/scim_utility.cpp:708 ../src/scim_keyboard_layout_data.h:4595 msgid "Czech" msgstr "செகà¯" #: ../src/scim_utility.cpp:709 msgid "Welsh" msgstr "வெலà¯à®¸à¯" #: ../src/scim_utility.cpp:710 ../src/scim_keyboard_layout_data.h:4597 msgid "Danish" msgstr "டேனிஷà¯" #: ../src/scim_utility.cpp:711 ../src/scim_keyboard_layout_data.h:4605 msgid "German" msgstr "ஜெரà¯à®®à®©à¯" #: ../src/scim_utility.cpp:712 msgid "Divehi" msgstr "திவிஹி" #: ../src/scim_utility.cpp:713 ../src/scim_keyboard_layout_data.h:4608 msgid "Greek" msgstr "கிரேகà¯à®•à®®à¯" #: ../src/scim_utility.cpp:714 msgid "English" msgstr "ஆஙà¯à®•ிலமà¯" #: ../src/scim_utility.cpp:715 msgid "English (Australian)" msgstr "ஆஙà¯à®•ிலம௠(ஆஸà¯à®¤à®¿à®°à¯‡à®²à®¿à®¯à®©à¯)" #: ../src/scim_utility.cpp:716 msgid "English (Canadian)" msgstr "ஆஙà¯à®•ிலம௠(கனடியனà¯)" #: ../src/scim_utility.cpp:717 msgid "English (British)" msgstr "ஆஙà¯à®•ிலம௠(பிரிடà¯à®Ÿà®¿à®·à¯)" #: ../src/scim_utility.cpp:718 msgid "English (Ireland)" msgstr "ஆஙà¯à®•ிலம௠(அயரà¯à®²à®¾à®¨à¯à®¤à¯)" #: ../src/scim_utility.cpp:719 msgid "English (American)" msgstr "ஆஙà¯à®•ிலம௠(அமெரிகà¯à®•னà¯)" #: ../src/scim_utility.cpp:720 ../src/scim_utility.cpp:721 #: ../src/scim_keyboard_layout_data.h:4621 msgid "Spanish" msgstr "ஸà¯à®ªà®¾à®©à®¿à®·à¯" #: ../src/scim_utility.cpp:722 msgid "Spanish (Mexico)" msgstr "ஸà¯à®ªà¯‡à®©à®¿à®·à¯ (மெகà¯à®¸à®¿à®•ோ)" #: ../src/scim_utility.cpp:723 ../src/scim_keyboard_layout_data.h:4600 msgid "Estonian" msgstr "எஸà¯à®¤à¯‹à®©à®¿à®¯à®©à¯" #: ../src/scim_utility.cpp:724 msgid "Basque" msgstr "பாஸà¯à®•à¯à®¯à¯" #: ../src/scim_utility.cpp:725 msgid "Persian" msgstr "பெரà¯à®·à®¿à®¯à®©à¯" #: ../src/scim_utility.cpp:726 ../src/scim_keyboard_layout_data.h:4601 msgid "Finnish" msgstr "ஃபினிஷà¯" #: ../src/scim_utility.cpp:727 ../src/scim_keyboard_layout_data.h:4602 msgid "French" msgstr "பிரெனà¯à®šà¯" #: ../src/scim_utility.cpp:728 msgid "Irish" msgstr "à®à®°à®¿à®·à¯" #: ../src/scim_utility.cpp:729 msgid "Galician" msgstr "காலிசியனà¯" #: ../src/scim_utility.cpp:730 msgid "Gujarati" msgstr "கà¯à®œà®°à®¾à®¤à¯à®¤à®¿" #: ../src/scim_utility.cpp:731 ../src/scim_utility.cpp:740 msgid "Hebrew" msgstr "எபிரேயமà¯" #: ../src/scim_utility.cpp:732 msgid "Hindi" msgstr "இநà¯à®¤à®¿" #: ../src/scim_utility.cpp:733 ../src/scim_keyboard_layout_data.h:4594 msgid "Croatian" msgstr "கிரோசியனà¯" #: ../src/scim_utility.cpp:734 ../src/scim_keyboard_layout_data.h:4609 msgid "Hungarian" msgstr "ஹஙà¯à®•ேரியனà¯" #: ../src/scim_utility.cpp:735 msgid "Armenian" msgstr "à®…à®°à¯à®®à¯‡à®©à®¿à®¯à®©à¯" #: ../src/scim_utility.cpp:736 msgid "Interlingua" msgstr "இனà¯à®Ÿà®°à¯à®²à®¿à®™à¯à®•ா" #: ../src/scim_utility.cpp:737 msgid "Indonesian" msgstr "இநà¯à®¤à¯‹à®©à¯‡à®·à®¿à®¯à®©à¯" #: ../src/scim_utility.cpp:738 ../src/scim_keyboard_layout_data.h:4627 msgid "Icelandic" msgstr "à®à®¸à¯à®²à®¾à®¨à¯à®¤à¯" #: ../src/scim_utility.cpp:739 ../src/scim_keyboard_layout_data.h:4610 msgid "Italian" msgstr "இதà¯à®¤à®¾à®²à®¿à®¯à®©à¯" #: ../src/scim_utility.cpp:741 ../src/scim_keyboard_layout_data.h:4611 msgid "Japanese" msgstr "ஜபà¯à®ªà®¾à®©à®¿à®¯" #: ../src/scim_utility.cpp:742 msgid "Georgian" msgstr "ஜாரà¯à®œà®¿à®¯à®©à¯" #: ../src/scim_utility.cpp:743 msgid "Kazakh" msgstr "கசகà¯" #: ../src/scim_utility.cpp:744 msgid "Cambodian" msgstr "கமà¯à®ªà¯‹à®Ÿà®¿à®¯à®©à¯" #: ../src/scim_utility.cpp:745 msgid "Kannada" msgstr "கனà¯à®©à®Ÿà®®à¯" #: ../src/scim_utility.cpp:746 msgid "Korean" msgstr "கொரியனà¯" #: ../src/scim_utility.cpp:747 msgid "Laothian" msgstr "லோதியனà¯" #: ../src/scim_utility.cpp:748 ../src/scim_keyboard_layout_data.h:4628 msgid "Lithuanian" msgstr "லிதà¯à®¤à¯à®©à®¿à®¯à®©à¯" #: ../src/scim_utility.cpp:749 msgid "Latvian" msgstr "லà¯à®¤à¯à®µà¯‡à®©à®¿à®¯à®©à¯" #: ../src/scim_utility.cpp:750 msgid "Macedonian" msgstr "மாசிடோனியனà¯" #: ../src/scim_utility.cpp:751 msgid "Malayalam" msgstr "மலையாளமà¯" #: ../src/scim_utility.cpp:752 msgid "Mongolian" msgstr "மஙà¯à®•ோலியனà¯" #: ../src/scim_utility.cpp:753 msgid "Marathi" msgstr "மராதà¯à®¤à®¿" #: ../src/scim_utility.cpp:754 msgid "Malay" msgstr "மலாயà¯" #: ../src/scim_utility.cpp:755 msgid "Burmese" msgstr "பரà¯à®®à®¿à®¸à¯" #: ../src/scim_utility.cpp:756 msgid "Nepali" msgstr "நேபாளி" #: ../src/scim_utility.cpp:757 ../src/scim_keyboard_layout_data.h:4598 msgid "Dutch" msgstr "டசà¯à®šà¯" #: ../src/scim_utility.cpp:758 msgid "Norwegian (nynorsk)" msgstr "நாரà¯à®µà¯‡à®©à®¿à®¯à®©à¯ (nynorsk)" #: ../src/scim_utility.cpp:759 msgid "Norwegian (bokmal)" msgstr "நாரà¯à®µà¯‡à®©à®¿à®¯à®©à¯ (bokmal)" #: ../src/scim_utility.cpp:760 msgid "Oriya" msgstr "ஒரியா" #: ../src/scim_utility.cpp:761 msgid "Punjabi" msgstr "பஞà¯à®šà®¾à®ªà®¿" #: ../src/scim_utility.cpp:762 ../src/scim_keyboard_layout_data.h:4613 msgid "Polish" msgstr "போலிஷà¯" #: ../src/scim_utility.cpp:763 ../src/scim_utility.cpp:765 #: ../src/scim_keyboard_layout_data.h:4614 msgid "Portuguese" msgstr "போரà¯à®šà¯à®šà¯à®•ீசியமà¯" #: ../src/scim_utility.cpp:764 ../src/scim_keyboard_layout_data.h:4615 msgid "Portuguese (Brazil)" msgstr "போரà¯à®¤à¯à®¤à¯à®•ீஸ௠(பிரேசிலà¯)" #: ../src/scim_utility.cpp:766 msgid "Romanian" msgstr "ரோமானியனà¯" #: ../src/scim_utility.cpp:767 ../src/scim_keyboard_layout_data.h:4617 msgid "Russian" msgstr "à®°à®·à¯à®¯à®©à¯" #: ../src/scim_utility.cpp:768 msgid "Sinhala" msgstr "சிஙà¯à®•ளமà¯" #: ../src/scim_utility.cpp:769 ../src/scim_keyboard_layout_data.h:4618 msgid "Slovak" msgstr "ஸà¯à®²à¯‹à®µà¯‡à®•à¯" #: ../src/scim_utility.cpp:770 ../src/scim_keyboard_layout_data.h:4620 msgid "Slovenian" msgstr "ஸà¯à®²à¯‹à®µà¯‡à®©à®¿à®¯à®©à¯" #: ../src/scim_utility.cpp:771 msgid "Albanian" msgstr "அலà¯à®ªà®©à®¿à®¯à®©à¯" #: ../src/scim_utility.cpp:772 ../src/scim_utility.cpp:773 #: ../src/scim_utility.cpp:774 msgid "Serbian" msgstr "செரà¯à®ªà®¿à®¯à®©à¯" #: ../src/scim_utility.cpp:775 ../src/scim_utility.cpp:777 #: ../src/scim_keyboard_layout_data.h:4624 msgid "Swedish" msgstr "ஸà¯à®µà¯€à®Ÿà®¿à®·à¯" #: ../src/scim_utility.cpp:776 msgid "Swedish (Finland)" msgstr "சà¯à®µà¯€à®Ÿà®¿à®¸à¯ (பினà¯à®²à®¾à®¨à¯à®¤à¯)" #: ../src/scim_utility.cpp:778 msgid "Tamil" msgstr "தமிழà¯" #: ../src/scim_utility.cpp:779 msgid "Telugu" msgstr "தெலà¯à®™à¯à®•à¯" #: ../src/scim_utility.cpp:780 msgid "Thai" msgstr "தாயà¯" #: ../src/scim_utility.cpp:781 ../src/scim_keyboard_layout_data.h:4625 msgid "Turkish" msgstr "தà¯à®°à¯à®•à¯à®•ி" #: ../src/scim_utility.cpp:782 msgid "Uighur" msgstr "உயà¯à®•à®°à¯" #: ../src/scim_utility.cpp:783 ../src/scim_keyboard_layout_data.h:4629 msgid "Ukrainian" msgstr "உகà¯à®°à¯‡à®©à®¿à®¯à®©à¯" #: ../src/scim_utility.cpp:784 msgid "Urdu" msgstr "உரà¯à®¤à¯" #: ../src/scim_utility.cpp:785 msgid "Uzbek" msgstr "உஸà¯à®ªà¯†à®•à¯" #: ../src/scim_utility.cpp:786 msgid "Vietnamese" msgstr "வியடà¯à®©à®¾à®®à®¿à®¯à®©à¯" #: ../src/scim_utility.cpp:787 msgid "Walloon" msgstr "வலூனà¯" #: ../src/scim_utility.cpp:788 ../src/scim_utility.cpp:789 msgid "Yiddish" msgstr "ஈடிஷà¯" #: ../src/scim_utility.cpp:790 msgid "Chinese" msgstr "சீனமà¯" #: ../src/scim_utility.cpp:791 ../src/scim_utility.cpp:793 msgid "Chinese (simplified)" msgstr "சீனம௠(எளியதà¯)" #: ../src/scim_utility.cpp:792 ../src/scim_utility.cpp:794 msgid "Chinese (traditional)" msgstr "சீனம௠(மரபாரà¯à®¨à¯à®¤à¯)" #: ../src/scim_utility.cpp:876 msgid "Other" msgstr "வேறà¯" #: ../src/scim_keyboard_layout_data.h:4591 #: ../modules/IMEngine/scim_socket_imengine.cpp:386 #: ../modules/IMEngine/scim_socket_imengine.cpp:416 #: ../modules/IMEngine/scim_socket_imengine.cpp:501 #: ../modules/IMEngine/scim_socket_imengine.cpp:531 #: ../modules/IMEngine/scim_socket_imengine.cpp:561 msgid "Unknown" msgstr "தெரியாத" #: ../src/scim_keyboard_layout_data.h:4592 msgid "English (US)" msgstr "ஆஙà¯à®•ிலம௠(அமெரிகà¯à®•ா)" #: ../src/scim_keyboard_layout_data.h:4593 msgid "Belgian" msgstr "பெலà¯à®œà®¿à®¯à®©à¯" #: ../src/scim_keyboard_layout_data.h:4596 msgid "Czech (qwerty)" msgstr "செக௠(qwerty)" #: ../src/scim_keyboard_layout_data.h:4599 msgid "Dvorak" msgstr "டோவà¯à®°à®¾à®•à¯" #: ../src/scim_keyboard_layout_data.h:4603 msgid "French (Canadian)" msgstr "பிரஞà¯à®šà¯ (கனடியனà¯)" #: ../src/scim_keyboard_layout_data.h:4604 msgid "French (Switzerland)" msgstr "பிரஞà¯à®šà¯ (சà¯à®µà®¿à®¸à¯à®šà®°à¯à®²à®¾à®¨à¯à®¤à¯)" #: ../src/scim_keyboard_layout_data.h:4606 msgid "German (with deadkeys)" msgstr "ஜெரà¯à®®à®©à¯ (டெடà¯à®µà®¿à®šà¯ˆà®•ளà¯à®Ÿà®©à¯)" #: ../src/scim_keyboard_layout_data.h:4607 msgid "German (Swiss)" msgstr "ஜெரà¯à®®à®©à¯ (சà¯à®µà®¿à®¸à¯)" #: ../src/scim_keyboard_layout_data.h:4612 msgid "Norwegian" msgstr "நாரà¯à®µà¯‡à®œà®¿à®¯à®©à¯" #: ../src/scim_keyboard_layout_data.h:4616 msgid "Portuguese (Brazil US accents)" msgstr "போரà¯à®¤à¯à®¤à¯à®•ீஸ௠(பிரேசில௠யà¯à®Žà®¸à¯ à®®à¯à®±à¯ˆ)" #: ../src/scim_keyboard_layout_data.h:4619 msgid "Slovak (qwerty)" msgstr "ஸà¯à®²à¯‹à®µà®¾à®•௠(qwerty)" #: ../src/scim_keyboard_layout_data.h:4622 msgid "Spanish (CP 850)" msgstr "ஸà¯à®ªà¯‡à®©à®¿à®·à¯ (CP 850)" #: ../src/scim_keyboard_layout_data.h:4623 msgid "Spanish (Latin America)" msgstr "ஸà¯à®ªà¯‡à®©à®¿à®·à¯ (லதà¯à®¤à¯€à®©à¯ அமெரிகà¯à®•ா)" #: ../src/scim_keyboard_layout_data.h:4626 msgid "English (UK)" msgstr "ஆஙà¯à®•ிலம௠(பிரிடà¯à®Ÿà®©à¯)" #: ../modules/Filter/scim_sctc_filter.cpp:57 msgid "Simplified-Traditional Chinese Conversion" msgstr "எளிய-மரப௠சீன உரையாடலà¯" #: ../modules/Filter/scim_sctc_filter.cpp:60 msgid "Convert between Simplified Chinese and Traditional Chinese" msgstr "எளிய மறà¯à®±à¯à®®à¯ மரப௠சீனதà¯à®¤à®¿à®±à¯à®•ிடையே மாறà¯à®±à®®à¯" #: ../modules/Filter/scim_sctc_filter.cpp:71 msgid "SC-TC" msgstr "SC-TC" #: ../modules/Filter/scim_sctc_filter.cpp:73 #: ../modules/Filter/scim_sctc_filter.cpp:78 msgid "Simplified-Traditional Chinese conversion" msgstr "எளிய-மரப௠சீன உரையாடலà¯" #: ../modules/Filter/scim_sctc_filter.cpp:76 msgid "No Conversion" msgstr "மாறà¯à®±à®®à¯ இலà¯à®²à¯ˆ" #: ../modules/Filter/scim_sctc_filter.cpp:81 msgid "Simplified to Traditional" msgstr "எளிமையிலிரà¯à®¨à¯à®¤à¯ மரபà¯à®•à¯à®•à¯" #: ../modules/Filter/scim_sctc_filter.cpp:83 msgid "Convert Simplified Chinese to Traditional Chinese" msgstr "எளிய சீனதà¯à®¤à®¿à®²à®¿à®°à¯à®¨à¯à®¤à¯ மரப௠சீனதà¯à®¤à®¿à®±à¯à®•௠மாறà¯à®±à¯à®¤à®²à¯" #: ../modules/Filter/scim_sctc_filter.cpp:86 msgid "Traditional to Simplified" msgstr "மரபிலிரà¯à®¨à¯à®¤à¯ எளிமைகà¯à®•à¯" #: ../modules/Filter/scim_sctc_filter.cpp:88 msgid "Convert Traditional Chinese to Simplified Chinese" msgstr "மரப௠சீனதà¯à®¤à®¿à®²à®¿à®°à¯à®¨à¯à®¤à¯ எளிய சீனதà¯à®¤à®¿à®±à¯à®•௠மாறà¯à®±à¯à®¤à®²à¯" #: ../modules/Filter/scim_sctc_filter.cpp:300 msgid "James Su " msgstr "James Su " #: ../modules/Filter/scim_sctc_filter.cpp:425 #: ../modules/Filter/scim_sctc_filter.cpp:555 #: ../modules/Filter/scim_sctc_filter.cpp:571 msgid "SC->TC" msgstr "SC->TC" #: ../modules/Filter/scim_sctc_filter.cpp:431 #: ../modules/Filter/scim_sctc_filter.cpp:559 #: ../modules/Filter/scim_sctc_filter.cpp:575 msgid "TC->SC" msgstr "TC->SC" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1845 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1231 #: ../extras/panel/scim_panel_gtk.cpp:2304 msgid "Smart Common Input Method platform " msgstr "Smart Common Input Method தளமà¯" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1847 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1233 msgid "" "\n" "(C) 2002-2005 James Su \n" "\n" msgstr "" "\n" "(C) 2002-2005 James Su \n" "\n" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1851 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1238 msgid "" ":\n" "\n" msgstr "" ":\n" "\n" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1854 #: ../modules/FrontEnd/scim_x11_frontend.cpp:1857 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1241 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1244 msgid "" "\n" "\n" msgstr "" "\n" "\n" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:120 msgid "RAW CODE" msgstr "RAW CODE" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:127 msgid "(C) 2002-2006 James Su " msgstr "(C) 2002-2006 James Su " #: ../modules/IMEngine/scim_rawcode_imengine.cpp:140 msgid "" "Hot Keys:\n" "\n" " Control+u:\n" " switch between Multibyte encoding and Unicode.\n" "\n" " Esc:\n" " reset the input method.\n" msgstr "" "கà¯à®±à¯à®•à¯à®•à¯à®µà®¿à®šà¯ˆà®•ளà¯:\n" "\n" " Control+u:\n" " பல பைட௠கà¯à®±à®¿à®®à¯à®±à¯ˆà®¯à®¿à®²à®¿à®°à¯à®¨à¯à®¤à¯ à®’à®°à¯à®™à¯à®•à¯à®±à®¿à®•à¯à®•௠மாறà¯à®±à¯à®¤à®²à¯.\n" "\n" " Esc:\n" " உளà¯à®³à¯€à®Ÿà¯ à®®à¯à®±à¯ˆà®•à¯à®•௠மற௠அமைவ௠செயà¯à®¤à®²à¯.\n" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:407 #: ../modules/IMEngine/scim_rawcode_imengine.cpp:423 msgid "The status of the current input method. Click to change it." msgstr "நடபà¯à®ªà¯ உளà¯à®³à¯€à®Ÿà¯ à®®à¯à®±à¯ˆà®¯à®¿à®©à¯ நிலை. மாறà¯à®± சொடà¯à®•à¯à®•வà¯à®®à¯." #: ../modules/IMEngine/scim_rawcode_imengine.cpp:409 msgid "Unicode" msgstr "யà¯à®©à®¿à®•à¯à®•ோடà¯" #: ../modules/SetupUI/scim_frontend_setup.cpp:82 #: ../modules/SetupUI/scim_imengine_setup.cpp:88 msgid "Global Setup" msgstr "à®®à¯à®´à¯à®®à¯ˆà®¯à®¾à®© அமைவà¯" #: ../modules/SetupUI/scim_frontend_setup.cpp:87 msgid "" "Setup the global options used by All FrontEnd modules, including X11 " "FrontEnd, GTK IMModule, QT IMModule etc." msgstr "X11 FrontEnd, GTK IMModule, QT IMModule போனà¯à®±à®µà®±à¯à®±à¯ˆà®¯à¯à®®à¯ சேரà¯à®¤à¯à®¤à¯, அனைதà¯à®¤à¯ FrontEnd தொகà¯à®¤à®¿à®•ளால௠பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®Ÿ à®®à¯à®´à¯à®®à¯ˆà®¯à®¾à®© விரà¯à®ªà¯à®ªà®™à¯à®•ளை அமைகà¯à®•வà¯à®®à¯." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:143 msgid "_Trigger:" msgstr "சொடà¯à®•à¯à®•ி (_T):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:145 msgid "Select the trigger keys" msgstr "சொடà¯à®•à¯à®•ி விசைகளை தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®•à¯à®•வà¯à®®à¯" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:147 msgid "" "The key events to turn on/off SCIM input method. Click on the button on the " "right to edit it." msgstr "SCIM உளà¯à®³à¯€à®Ÿà¯ à®®à¯à®±à¯ˆà®¯à¯ˆ இயகà¯à®•à¯à®®à¯/நிறà¯à®¤à¯à®¤à¯à®®à¯ விசை நிகழà¯à®µà¯à®•ளà¯. வலத௠பகà¯à®•ம௠இரà¯à®•à¯à®•à¯à®®à¯ பொதà¯à®¤à®¾à®©à¯ˆ சொடà¯à®•à¯à®•ி இதனை திரà¯à®¤à¯à®¤à®µà¯à®®à¯." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:160 msgid "Turn _On:" msgstr "இயகà¯à®•à¯à®¤à®²à¯ (_O):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:162 msgid "Select the Turn On keys" msgstr "இயகà¯à®•à¯à®®à¯ விசைகளை தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®¤à¯à®¤à®²à¯" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:164 msgid "" "The key events to turn on SCIM input method. Click on the button on the " "right to edit it." msgstr "SCIM உளà¯à®³à¯€à®Ÿà¯ à®®à¯à®±à¯ˆà®¯à¯ˆ இயகà¯à®•à¯à®®à¯ விசை நிகழà¯à®µà¯à®•ளà¯. வலத௠பகà¯à®•ம௠இரà¯à®•à¯à®•à¯à®®à¯ பொதà¯à®¤à®¾à®©à¯ˆ சொடà¯à®•à¯à®•ி இதனை திரà¯à®¤à¯à®¤à®µà¯à®®à¯." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:177 msgid "Turn O_ff:" msgstr "நிறà¯à®¤à¯à®¤à¯à®¤à®²à¯ (_f):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:179 msgid "Select the Turn Off keys" msgstr "நிறà¯à®¤à¯à®¤à¯à®®à¯ விசைகளை தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®¤à¯à®¤à®²à¯" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:181 msgid "" "The key events to turn off SCIM input method. Click on the button on the " "right to edit it." msgstr "SCIM உளà¯à®³à¯€à®Ÿà¯ à®®à¯à®±à¯ˆà®¯à¯ˆ நிறà¯à®¤à¯à®¤à¯à®®à¯ விசை நிகழà¯à®µà¯à®•ளà¯. வலத௠பகà¯à®•ம௠இரà¯à®•à¯à®•à¯à®®à¯ பொதà¯à®¤à®¾à®©à¯ˆ சொடà¯à®•à¯à®•ி இதனை திரà¯à®¤à¯à®¤à®µà¯à®®à¯." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:194 msgid "_Next input method:" msgstr "அடà¯à®¤à¯à®¤ உளà¯à®³à¯€à®Ÿà¯ à®®à¯à®±à¯ˆ (_N):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:196 msgid "Select the next input method keys" msgstr "அடà¯à®¤à¯à®¤ உளà¯à®³à¯€à®Ÿà¯ à®®à¯à®±à¯ˆ விசைகளை தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®•à¯à®•வà¯à®®à¯" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:198 msgid "" "The key events to switch to the next input method. Click on the button on " "the right to edit it." msgstr "அடà¯à®¤à¯à®¤ உளà¯à®³à¯€à®Ÿà¯ à®®à¯à®±à¯ˆà®•à¯à®•௠மாறà¯à®±à¯à®®à¯ விசை நிகழà¯à®µà¯à®•ளà¯. வலத௠பகà¯à®•ம௠இரà¯à®•à¯à®•à¯à®®à¯ பொதà¯à®¤à®¾à®©à¯ˆ சொடà¯à®•à¯à®•ி இதனை திரà¯à®¤à¯à®¤à®µà¯à®®à¯." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:213 msgid "_Previous input method:" msgstr "à®®à¯à®¨à¯à®¤à¯ˆà®¯ உளà¯à®³à¯€à®Ÿà¯ à®®à¯à®±à¯ˆ (_P):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:215 msgid "Select the previous input method keys" msgstr "à®®à¯à®¨à¯à®¤à¯ˆà®¯ உளà¯à®³à¯€à®Ÿà¯ à®®à¯à®±à¯ˆ விசைகளை தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®•à¯à®•வà¯à®®à¯" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:217 msgid "" "The key events to switch to the previous input method. Click on the button " "on the right to edit it." msgstr "à®®à¯à®¨à¯à®¤à¯ˆà®¯ உளà¯à®³à¯€à®Ÿà¯ à®®à¯à®±à¯ˆà®•à¯à®•௠மாறà¯à®±à¯à®®à¯ விசை நிகழà¯à®µà¯à®•ளà¯. வலத௠பகà¯à®•ம௠இரà¯à®•à¯à®•à¯à®®à¯ பொதà¯à®¤à®¾à®©à¯ˆ சொடà¯à®•à¯à®•ி இதனை திரà¯à®¤à¯à®¤à®µà¯à®®à¯." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:232 msgid "Show input method _menu:" msgstr "உளà¯à®³à¯€à®Ÿà¯ à®®à¯à®±à¯ˆ படà¯à®Ÿà®¿à®¯à¯ˆ காடà¯à®Ÿà¯à®¤à®²à¯ (_m):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:234 msgid "Select the show input method menu keys" msgstr "உளà¯à®³à¯€à®Ÿà¯ à®®à¯à®±à¯ˆ படà¯à®Ÿà®¿ விசைகளை காடà¯à®Ÿà¯à®¤à®²à¯ˆ தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®•à¯à®•வà¯à®®à¯" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:236 msgid "" "The key events to show the input method menu. Click on the button on the " "right to edit it." msgstr "உளà¯à®³à¯€à®Ÿà¯ à®®à¯à®±à¯ˆ படà¯à®Ÿà®¿à®¯à¯ˆ காடà¯à®Ÿà¯à®®à¯ விசை நிகழà¯à®µà¯à®•ளà¯. வலத௠பகà¯à®•ம௠இரà¯à®•à¯à®•à¯à®®à¯ பொதà¯à®¤à®¾à®©à¯ˆ சொடà¯à®•à¯à®•ி இதனை திரà¯à®¤à¯à®¤à®µà¯à®®à¯." #: ../modules/SetupUI/scim_frontend_setup.cpp:306 msgid "Options" msgstr "விரà¯à®ªà¯à®ªà®™à¯à®•ளà¯" #: ../modules/SetupUI/scim_frontend_setup.cpp:321 msgid "_Keyboard Layout:" msgstr "விசைபà¯à®ªà®²à®•ை அமைபà¯à®ªà¯ (_K):" #: ../modules/SetupUI/scim_frontend_setup.cpp:342 msgid "" "You should choose your currently used keyboard layout here so that input " "methods, who care about keyboard layout, could work correctly." msgstr "நீஙà¯à®•ள௠தறà¯à®ªà¯‹à®¤à¯ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à®¿à®¯ விசைபà¯à®ªà®²à®•ை அமைபà¯à®ªà¯ˆ இஙà¯à®•௠தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®•à¯à®• வேணà¯à®Ÿà¯à®®à¯. எனவே விசைபà¯à®ªà®²à®•ை அமைபà¯à®ªà¯à®•à¯à®•௠தà¯à®£à¯ˆà®ªà¯à®°à®¿à®¯à¯à®®à¯ உளà¯à®³à¯€à®Ÿà¯ à®®à¯à®±à¯ˆà®•ள௠சரியாக வேலை செயà¯à®¯à¯à®®à¯." #. On The Spot. #: ../modules/SetupUI/scim_frontend_setup.cpp:346 msgid "_Embed Preedit String into client window" msgstr "கிளையன௠சாளரதà¯à®¤à®¿à®²à¯ உடà¯à®ªà¯Šà®¤à®¿à®¯à®ªà¯à®ªà®Ÿà¯à®Ÿ à®®à¯à®©à¯à®¤à®¿à®°à¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®Ÿ சரம௠(_E)" #: ../modules/SetupUI/scim_frontend_setup.cpp:351 msgid "" "If this option is checked, the preedit string will be displayed directly in " "the client input window, rather than in a independent float window." msgstr "இநà¯à®¤ விரà¯à®ªà¯à®ªà®®à¯ தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®•à¯à®•பà¯à®ªà®Ÿà¯à®Ÿà®¾à®²à¯, à®®à¯à®©à¯ திரà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®Ÿ சரம௠கிளையன௠உளà¯à®³à¯€à®Ÿà¯ சாளரதà¯à®¤à®¿à®²à¯ நேரடியாக காடà¯à®Ÿà®ªà¯à®ªà®Ÿà¯à®®à¯." #. Shared input method. #: ../modules/SetupUI/scim_frontend_setup.cpp:360 msgid "_Share the same input method among all applications" msgstr "அனைதà¯à®¤à¯ பயனà¯à®ªà®¾à®Ÿà¯à®•ளிலà¯à®®à¯ ஒரே உளà¯à®³à¯€à®Ÿà¯ à®®à¯à®±à¯ˆà®¯à¯ˆ பகிரவà¯à®®à¯ (_S)" #: ../modules/SetupUI/scim_frontend_setup.cpp:365 msgid "" "If this option is checked, then only one input method could be used by all " "applications at the same time.Otherwise different input method could be used " "by each application." msgstr "இநà¯à®¤ விரà¯à®ªà¯à®ªà®®à¯ தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®•à¯à®•பà¯à®ªà®Ÿà¯à®Ÿà®¾à®²à¯, தான௠ஒரே ஒர௠உளà¯à®³à¯€à®Ÿà¯ à®®à¯à®±à¯ˆ அனைதà¯à®¤à¯ பயனà¯à®ªà®¾à®Ÿà¯à®•ளால௠ஒரே நேரதà¯à®¤à®¿à®²à¯ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤ à®®à¯à®Ÿà®¿à®¯à¯à®®à¯. இலà¯à®²à¯ˆà®¯à¯†à®©à®¿à®²à¯ வேற௠உளà¯à®³à¯€à®Ÿà¯ à®®à¯à®±à¯ˆ ஒவà¯à®µà¯Šà®°à¯ பயனà¯à®ªà®¾à®Ÿà¯à®Ÿà®¿à®²à¯à®®à¯ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®®à¯." #: ../modules/SetupUI/scim_frontend_setup.cpp:373 #: ../modules/SetupUI/scim_imengine_setup.cpp:453 msgid "Hotkeys" msgstr "கà¯à®±à¯à®•à¯à®•à¯à®µà®¿à®šà¯ˆà®•ளà¯" #: ../modules/SetupUI/scim_imengine_setup.cpp:93 msgid "You can enable/disable input methods and set hotkeys for input methods here." msgstr "நீஙà¯à®•ள௠உளà¯à®³à¯€à®Ÿà¯ à®®à¯à®±à¯ˆà®•ளை செயலà¯à®ªà®Ÿà¯à®¤à¯à®¤à®²à®¾à®®à¯/நீகà¯à®•லாம௠மறà¯à®±à¯à®®à¯ உளà¯à®³à¯€à®Ÿà¯ à®®à¯à®±à¯ˆà®•ளà¯à®•à¯à®•௠இஙà¯à®•௠கà¯à®±à¯à®•à¯à®•à¯à®µà®¿à®šà¯ˆà®•ளை அமைகà¯à®•லாமà¯." #: ../modules/SetupUI/scim_imengine_setup.cpp:296 msgid "The installed input method services:" msgstr "நிறà¯à®µà®ªà¯à®ªà®Ÿà¯à®Ÿ உளà¯à®³à¯€à®Ÿà¯ à®®à¯à®±à¯ˆ சேவைகளà¯:" #. Create hotkey and filter button before factory list view, because #. factory_list_selection_changed_callback may access these two buttons. #: ../modules/SetupUI/scim_imengine_setup.cpp:311 msgid "Edit _Hotkeys" msgstr "கà¯à®±à¯à®•à¯à®•à¯à®µà®¿à®šà¯ˆà®•ளை திரà¯à®¤à¯à®¤à¯à®¤à®²à¯ (_H)" #: ../modules/SetupUI/scim_imengine_setup.cpp:320 msgid "Edit Hotkeys associated with the selected input method." msgstr "தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®•à¯à®•பà¯à®ªà®Ÿà¯à®Ÿ உளà¯à®³à¯€à®Ÿà¯ à®®à¯à®±à¯ˆà®¯à¯à®Ÿà®©à¯ கà¯à®±à¯à®•à¯à®•à¯à®µà®¿à®šà¯ˆà®•ளை திரà¯à®¤à¯à®¤à®µà¯à®®à¯." #: ../modules/SetupUI/scim_imengine_setup.cpp:322 msgid "Select _Filters" msgstr "வடிபà¯à®ªà®¿à®•ளை தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®¤à¯à®¤à®²à¯ (_F)" #: ../modules/SetupUI/scim_imengine_setup.cpp:331 msgid "Select the Filters which will be attached to this input method." msgstr "இநà¯à®¤ உளà¯à®³à¯€à®Ÿà¯ à®®à¯à®±à¯ˆà®¯à®¿à®²à¯ இணைகà¯à®•பà¯à®ªà®Ÿà¯à®Ÿ வடிபà¯à®ªà®¿à®•ளை தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®•à¯à®•வà¯à®®à¯." #: ../modules/SetupUI/scim_imengine_setup.cpp:348 msgid "_Expand" msgstr "விரிவாகà¯à®•à¯à®¤à®²à¯ (_E)" #: ../modules/SetupUI/scim_imengine_setup.cpp:357 msgid "Expand all language categories." msgstr "அனைதà¯à®¤à¯ மொழி வகைகளையà¯à®®à¯ விரிவாகà¯à®•à¯à®¤à®²à¯" #: ../modules/SetupUI/scim_imengine_setup.cpp:359 msgid "_Collapse" msgstr "கà¯à®±à¯à®•à¯à®•à¯à®¤à®²à¯ (_C)" #: ../modules/SetupUI/scim_imengine_setup.cpp:368 msgid "Collapse all language categories." msgstr "அனைதà¯à®¤à¯ மொழி வகைகளà¯à®•à¯à®•à¯à®®à¯ கà¯à®±à¯à®•à¯à®•à¯à®¤à®²à¯" #: ../modules/SetupUI/scim_imengine_setup.cpp:370 msgid "E_nable All" msgstr "அனைதà¯à®¤à¯ˆà®¯à¯à®®à¯ செயலà¯à®ªà®Ÿà¯à®¤à¯à®¤à®²à¯ (_n)" #: ../modules/SetupUI/scim_imengine_setup.cpp:379 msgid "Enable all input methods." msgstr "அனைதà¯à®¤à¯ உளà¯à®³à¯€à®Ÿà¯ à®®à¯à®±à¯ˆà®•ளையà¯à®®à¯ செயலà¯à®ªà®Ÿà¯à®¤à¯à®¤à®²à¯." #: ../modules/SetupUI/scim_imengine_setup.cpp:381 msgid "_Disable All" msgstr "அனைதà¯à®¤à¯ˆà®¯à¯à®®à¯ செயலà¯à®¨à¯€à®•à¯à®•வà¯à®®à¯ (_D)" #: ../modules/SetupUI/scim_imengine_setup.cpp:390 msgid "Disable all input methods." msgstr "அனைதà¯à®¤à¯ உளà¯à®³à¯€à®Ÿà¯ à®®à¯à®±à¯ˆà®•ளையà¯à®®à¯ செயலà¯à®¨à¯€à®•à¯à®•வà¯à®®à¯" #: ../modules/SetupUI/scim_imengine_setup.cpp:414 #: ../modules/SetupUI/scim_imengine_setup.cpp:541 msgid "Name" msgstr "பெயரà¯" #: ../modules/SetupUI/scim_imengine_setup.cpp:432 #: ../modules/SetupUI/scim_imengine_setup.cpp:522 msgid "Enable" msgstr "செயலà¯à®ªà®Ÿà¯à®¤à¯à®¤à®²à¯" #: ../modules/SetupUI/scim_imengine_setup.cpp:467 msgid "Filters" msgstr "வடிபà¯à®ªà®¿à®•ளà¯" #: ../modules/SetupUI/scim_imengine_setup.cpp:560 msgid "Languages" msgstr "மொழிகளà¯" #: ../modules/SetupUI/scim_imengine_setup.cpp:574 msgid "Description" msgstr "விளகà¯à®•à®®à¯" #: ../modules/SetupUI/scim_imengine_setup.cpp:1190 #, c-format msgid "Edit Hotkeys for %s" msgstr "%sகà¯à®•௠கà¯à®±à¯à®•à¯à®•௠விசைகளை திரà¯à®¤à¯à®¤à¯à®¤à®²à¯" #: ../modules/SetupUI/scim_imengine_setup.cpp:1417 #, c-format msgid "Select Filters for %s" msgstr "%sகà¯à®•௠வடிபà¯à®ªà®¿à®•ளை தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®¤à¯à®¤à®²à¯" #: ../modules/SetupUI/scim_imengine_setup.cpp:1450 msgid "Move _Up" msgstr "மேலே நகரà¯à®¤à¯à®¤à®²à¯ (_U)" #: ../modules/SetupUI/scim_imengine_setup.cpp:1457 msgid "Move _Down" msgstr "கீழே நகரà¯à®¤à¯à®¤à®²à¯ (_D)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:95 msgid "GTK" msgstr "GTK" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:100 msgid "A panel daemon based on GTK+-2.x library." msgstr "GTK+-2.x நூலகதà¯à®¤à¯ˆ அடிபà¯à®ªà®Ÿà¯ˆà®¯à®¾à®• கொணà¯à®Ÿ ஒர௠பலக டீமானà¯." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:163 msgid "Always" msgstr "எபà¯à®ªà¯‹à®¤à¯à®®à¯" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:164 msgid "On demand" msgstr "தேவையினà¯à®ªà®Ÿà®¿" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:165 msgid "Never" msgstr "à®’à®°à¯à®ªà¯‹à®¤à¯à®®à¯" #. Create the ToolBar setup block. #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:211 msgid "ToolBar" msgstr "கரà¯à®µà®¿à®ªà¯à®ªà®Ÿà¯à®Ÿà¯ˆ" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:229 msgid "_Show:" msgstr "காடà¯à®Ÿà¯à®¤à®²à¯ (_S):" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:245 msgid "Auto s_nap" msgstr "தானாக ஒடà¯à®Ÿà¯à®¤à®²à¯ (_n)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:251 msgid "Show _input method icon" msgstr "உளà¯à®³à¯€à®Ÿà¯ à®®à¯à®±à¯ˆ சினà¯à®©à®¤à¯à®¤à¯ˆà®•௠காடà¯à®Ÿà¯à®¤à®²à¯ (_i)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:257 msgid "Show inp_ut method name" msgstr "உளà¯à®³à¯€à®Ÿà¯ à®®à¯à®±à¯ˆ பெயரை காடà¯à®Ÿà¯à®¤à®²à¯ (_u)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:269 msgid "Hide time_out:" msgstr "நேரம௠மà¯à®Ÿà®¿à®¤à®²à¯ˆ மறைதà¯à®¤à®²à¯ (_o):" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:282 msgid "Show s_tick icon" msgstr "ஒடà¯à®Ÿà¯ சினà¯à®©à®¤à¯à®¤à¯ˆà®•௠காடà¯à®Ÿà¯à®¤à®²à¯ (_t)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:288 msgid "Show m_enu icon" msgstr "படà¯à®Ÿà®¿ சினà¯à®©à®¤à¯à®¤à¯ˆà®•௠காடà¯à®Ÿà¯à®¤à®²à¯ (_e)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:294 msgid "Show _help icon" msgstr "உதவி சினà¯à®©à®¤à¯à®¤à¯ˆà®•௠காடà¯à®Ÿà¯à®¤à®²à¯ (_h)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:300 msgid "Show _property label" msgstr "பணà¯à®ªà¯ லேபிளை காடà¯à®Ÿà¯à®¤à®²à¯ (_p)" #. Create the Input Window setup block #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:311 msgid "Input window" msgstr "உளà¯à®³à¯€à®Ÿà¯ சாளரமà¯" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:320 msgid "E_mbedded lookup table" msgstr "உடà¯à®ªà¯Šà®¤à®¿à®¯à®ªà¯à®ªà®Ÿà¯à®Ÿ பாரà¯à®µà¯ˆ அடà¯à®Ÿà®µà®£à¯ˆ (_m)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:324 msgid "_Vertical lookup table" msgstr "செஙà¯à®•à¯à®¤à¯à®¤à¯ பாரà¯à®µà¯ˆ அடà¯à®Ÿà®µà®£à¯ˆ (_V)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:328 msgid "Misc" msgstr "மறà¯à®±à®µà¯ˆ" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:337 msgid "Show tra_y icon" msgstr "தடà¯à®Ÿà¯ சினà¯à®©à®¤à¯à®¤à¯ˆ காடà¯à®Ÿà¯à®¤à®²à¯ (_y)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:341 msgid "Stick _windows" msgstr "ஒடà¯à®Ÿà¯à®®à¯ சாளரஙà¯à®•ள௠(_w)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:349 msgid "_Font:" msgstr "எழà¯à®¤à¯à®¤à¯à®°à¯ (_F):" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:419 msgid "" "If option \"Always\" is selected, the toolbar will always be shown on the " "screen. If option \"On demand\" is selected, it will only be shown when SCIM " "is activated. If option \"Never\" is selected, it will never be shown." msgstr "\"எபà¯à®ªà¯‹à®¤à¯à®®à¯\" எனà¯à®± விரà¯à®ªà¯à®ªà®®à¯ தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®•à¯à®•பà¯à®ªà®Ÿà¯à®Ÿà®¾à®²à¯, கரà¯à®µà®¿à®ªà¯à®ªà®Ÿà¯à®Ÿà¯ˆ எபà¯à®ªà¯‹à®¤à¯à®®à¯ திரையில௠தோனà¯à®±à¯à®®à¯. \"தேவையின௠படி\" எனà¯à®± விரà¯à®ªà¯à®ªà®®à¯ தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®•à¯à®•பà¯à®ªà®Ÿà¯à®Ÿà®¾à®²à¯ SCIM செயலà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®Ÿà®¾à®²à¯ மடà¯à®Ÿà¯à®®à¯‡ காடà¯à®Ÿà®ªà¯à®ªà®Ÿà¯à®®à¯. \"à®’à®°à¯à®ªà¯‹à®¤à¯à®®à¯ இலà¯à®²à¯ˆ\" எனà¯à®± விரà¯à®ªà¯à®ªà®®à¯ தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®•à¯à®•பà¯à®ªà®Ÿà¯à®Ÿà®¾à®²à¯, அத௠ஒரà¯à®ªà¯‹à®¤à¯à®®à¯ காடà¯à®Ÿà®¾à®¤à¯." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:426 msgid "If this option is checked, the toolbar will be snapped to the screen border." msgstr "இநà¯à®¤ விரà¯à®ªà¯à®ªà®®à¯ சோதிகà¯à®•பà¯à®ªà®Ÿà¯à®Ÿà®¾à®²à¯, கரà¯à®µà®¿à®ªà¯à®ªà®Ÿà¯à®Ÿà¯ˆ திரை எலà¯à®²à¯ˆà®¯à®¿à®²à¯ ஒடà¯à®Ÿà®ªà¯à®ªà®Ÿà¯à®®à¯." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:431 msgid "" "The toolbar will be hidden out after this timeout is elapsed. This option is " "only valid when \"Always show\" is selected. Set to zero to disable this " "behavior." msgstr "கரà¯à®µà®¿à®ªà¯à®ªà®Ÿà¯ˆ இநà¯à®¤ நேரம௠மà¯à®Ÿà®¿à®¨à¯à®¤à®¤à¯à®®à¯ மறைகà¯à®•பà¯à®ªà®Ÿà¯à®®à¯. இநà¯à®¤ விரà¯à®ªà¯à®ªà®®à¯ \"எபà¯à®ªà¯‹à®¤à¯à®®à¯ காடà¯à®Ÿà®µà¯à®®à¯\" எனà¯à®ªà®¤à¯ தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®•à¯à®•பà¯à®ªà®Ÿà¯à®Ÿà®¾à®²à¯ மடà¯à®Ÿà¯à®®à¯ பயனà¯à®ªà®Ÿà¯à®®à¯. இநà¯à®¤ செயலà¯à®¨à¯€à®•à¯à®• பூஜà¯à®œà®¿à®¯à®®à¯ என அமைகà¯à®•வà¯à®®à¯." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:438 msgid "" "If this option is checked, the input method icon will be showed on the " "toolbar." msgstr "இநà¯à®¤ விரà¯à®ªà¯à®ªà®®à¯ சோதிகà¯à®•பà¯à®ªà®Ÿà¯à®Ÿà®¾à®²à¯, உளà¯à®³à¯€à®Ÿà¯ à®®à¯à®±à¯ˆ சினà¯à®©à®®à¯ கரà¯à®µà®¿à®ªà¯à®ªà®Ÿà¯à®Ÿà¯ˆà®¯à®¿à®²à¯ காடà¯à®Ÿà®ªà¯à®ªà®Ÿà¯à®®à¯." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:442 msgid "" "If this option is checked, the input method name will be showed on the " "toolbar." msgstr "இநà¯à®¤ விரà¯à®ªà¯à®ªà®®à¯ சோதிகà¯à®•பà¯à®ªà®Ÿà¯à®Ÿà®¾à®²à¯, உளà¯à®³à¯€à®Ÿà¯ à®®à¯à®±à¯ˆ பெயர௠கரà¯à®µà®¿à®ªà¯à®ªà®Ÿà¯à®Ÿà¯ˆà®¯à®¿à®²à¯ காடà¯à®Ÿà®ªà¯à®ªà®Ÿà¯à®®à¯." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:446 msgid "If this option is checked, the stick icon will be showed on the toolbar." msgstr "இநà¯à®¤ விரà¯à®ªà¯à®ªà®®à¯ சோதிகà¯à®•பà¯à®ªà®Ÿà¯à®Ÿà®¾à®²à¯, ஒடà¯à®Ÿà¯ சினà¯à®©à®®à¯ கரà¯à®µà®¿à®ªà¯à®ªà®Ÿà¯à®Ÿà¯ˆà®¯à®¿à®²à¯ காடà¯à®Ÿà®ªà¯à®ªà®Ÿà¯à®®à¯." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:450 msgid "If this option is checked, the menu icon will be showed on the toolbar." msgstr "இநà¯à®¤ விரà¯à®ªà¯à®ªà®®à¯ சோதிகà¯à®•பà¯à®ªà®Ÿà¯à®Ÿà®¾à®²à¯, படà¯à®Ÿà®¿ சினà¯à®©à®®à¯ கரà¯à®µà®¿à®ªà¯à®ªà®Ÿà¯à®Ÿà¯ˆà®¯à®¿à®²à¯ காடà¯à®Ÿà®ªà¯à®ªà®Ÿà¯à®®à¯." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:454 msgid "If this option is checked, the help icon will be showed on the toolbar." msgstr "இநà¯à®¤ விரà¯à®ªà¯à®ªà®®à¯ சோதிகà¯à®•பà¯à®ªà®Ÿà¯à®Ÿà®¾à®²à¯, உதவி சினà¯à®©à®®à¯ கரà¯à®µà®¿à®ªà¯à®ªà®Ÿà¯à®Ÿà¯ˆà®¯à®¿à®²à¯ காடà¯à®Ÿà®ªà¯à®ªà®Ÿà¯à®®à¯." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:458 msgid "" "If this option is checked, the text label of input method properties will be " "showed on the toolbar." msgstr "இநà¯à®¤ விரà¯à®ªà¯à®ªà®®à¯ சோதிகà¯à®•பà¯à®ªà®Ÿà¯à®Ÿà®¾à®²à¯, உளà¯à®³à¯€à®Ÿà¯ à®®à¯à®±à¯ˆ பணà¯à®ªà¯à®•ளின௠உரை லேபிள௠கரà¯à®µà®¿à®ªà¯à®ªà®Ÿà¯à®Ÿà¯ˆà®¯à®¿à®²à¯ காடà¯à®Ÿà®ªà¯à®ªà®Ÿà¯à®®à¯." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:462 msgid "" "If this option is checked, the lookup table will be embedded into the input " "window." msgstr "இநà¯à®¤ விரà¯à®ªà¯à®ªà®®à¯ சோதிகà¯à®•பà¯à®ªà®Ÿà¯à®Ÿà®¾à®²à¯, அடà¯à®Ÿà®µà®£à¯ˆ உளà¯à®³à¯€à®Ÿà¯ சாளரதà¯à®¤à®¿à®²à¯ உடà¯à®ªà¯Šà®¤à®¿à®¯à®ªà¯à®ªà®Ÿà¯à®®à¯." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:467 msgid "If this option is checked, the lookup table will be displayed vertically." msgstr "இநà¯à®¤ விரà¯à®ªà¯à®ªà®®à¯ சோதிகà¯à®•பà¯à®ªà®Ÿà¯à®Ÿà®¾à®²à¯, அடà¯à®Ÿà®µà®£à¯ˆ செஙà¯à®•à¯à®¤à¯à®¤à®¾à®• தோனà¯à®±à¯à®®à¯." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:472 msgid "" "If this option is checked, the tray icon will be showed on the desktop's " "taskbar." msgstr "இநà¯à®¤ விரà¯à®ªà¯à®ªà®®à¯ சோதிகà¯à®•பà¯à®ªà®Ÿà¯à®Ÿà®¾à®²à¯, தடà¯à®Ÿà¯ சினà¯à®©à®®à¯ பணிமேடை பணிபடà¯à®Ÿà¯ˆà®¯à®¿à®²à¯ காடà¯à®Ÿà®ªà¯à®ªà®Ÿà¯à®®à¯." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:476 msgid "" "If this option is checked, the toolbar, input and lookup table windows will " "be sticked to its original position." msgstr "இநà¯à®¤ விரà¯à®ªà¯à®ªà®®à¯ சோதிகà¯à®•பà¯à®ªà®Ÿà¯à®Ÿà®¾à®²à¯, கரà¯à®µà®¿à®ªà¯à®ªà®Ÿà¯à®Ÿà¯ˆ, உளà¯à®³à¯€à®Ÿà¯ மறà¯à®±à¯à®®à¯ அடà¯à®Ÿà®µà®£à¯ˆ சாளரஙà¯à®•ள௠அதன௠இடஙà¯à®•ளில௠ஒடà¯à®Ÿà®ªà¯à®ªà®Ÿà¯à®®à¯." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:482 msgid "The font setting will be used in the input and lookup table windows." msgstr "எழà¯à®¤à¯à®¤à¯à®°à¯ அமைவ௠உளà¯à®³à¯€à®Ÿà¯à®Ÿà®¿à®²à¯ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®Ÿà¯ அடà¯à®Ÿà®µà®£à¯ˆ சாளரஙà¯à®•ளில௠தேடà¯à®•ிறதà¯." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:801 msgid "Select Interface Font" msgstr "à®®à¯à®•பà¯à®ªà¯ எழà¯à®¤à¯à®¤à¯à®°à¯à®µà¯ˆ தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®¤à¯à®¤à®²à¯" #: ../extras/setup/scim_setup_ui.cpp:47 msgid "SCIM" msgstr "SCIM" #: ../extras/setup/scim_setup_ui.cpp:48 msgid "FrontEnd" msgstr "à®®à¯à®©à¯à®ªà¯à®²à®®à¯" #: ../extras/setup/scim_setup_ui.cpp:49 msgid "IMEngine" msgstr "IMEngine" #: ../extras/setup/scim_setup_ui.cpp:50 msgid "Panel" msgstr "பலகமà¯" #: ../extras/setup/scim_setup_ui.cpp:51 msgid "Extra" msgstr "மறà¯à®±à®µà¯ˆ" #. #. vi:ts=4:nowrap:ai:expandtab #. #: ../extras/setup/scim_setup_ui.cpp:230 #: ../extras/setup/scim-setup.desktop.in.h:1 msgid "SCIM Input Method Setup" msgstr "SCIM உளà¯à®³à¯€à®Ÿà¯ à®®à¯à®±à¯ˆ அமைவà¯" #: ../extras/setup/scim_setup_ui.cpp:369 msgid "" " Smart Common Input Method platform \n" "\n" "GUI Setup Utility\n" "\n" "\n" "\n" "Copyright 2002-2004, James Su <suzhe@tsinghua.org." "cn>" msgstr "" " Smart Common Input Method platform \n" "\n" "வரைகலை அமைவ௠வசதி\n" "\n" "\n" "\n" "பதிபà¯à®ªà¯à®°à®¿à®®à¯ˆ 2002-2004, James Su <suzhe@tsinghua.org." "cn>" #: ../extras/setup/scim_setup_ui.cpp:394 #, c-format msgid "The Setup for %s modules." msgstr "%s தொகà¯à®¤à®¿à®•ளà¯à®•à¯à®•ான அமைவà¯." #: ../extras/setup/scim_setup_ui.cpp:456 msgid "Are you sure you want to quit SCIM Setup?" msgstr "நீஙà¯à®•ள௠SCIM அமைவை விடà¯à®Ÿà¯ வெளியேற வேணà¯à®Ÿà¯à®®à®¾?" #: ../extras/setup/scim_setup_ui.cpp:685 msgid "" "Not all configuration can be reloaded on the fly. Don't forget to restart " "SCIM in order to let all of the new configuration take effect." msgstr "அனைதà¯à®¤à¯ கடà¯à®Ÿà®®à¯ˆà®ªà¯à®ªà¯ மீணà¯à®Ÿà¯à®®à¯ à®à®±à¯à®±à®ªà¯à®ªà®Ÿà¯à®®à¯. அனைதà¯à®¤à¯ பà¯à®¤à®¿à®¯ அமைவà¯à®•ளà¯à®®à¯ செயலà¯à®ªà®Ÿ SCIM ஠மீணà¯à®Ÿà¯à®®à¯ தà¯à®µà®•à¯à®•வà¯à®®à¯." #: ../extras/setup/scim_setup_helper.cpp:49 msgid "SCIM Setup" msgstr "SCIM அமைவà¯" #: ../extras/setup/scim_setup_helper.cpp:51 msgid "Integrated Setup Utility based on GTK Widget library." msgstr "GTK சாளர நூலகதà¯à®¤à¯ˆ அடிபà¯à®ªà®Ÿà¯ˆà®¯à®¾à®• கொணà¯à®Ÿ à®’à®°à¯à®™à¯à®•ிணைகà¯à®•பà¯à®ªà®Ÿà¯à®Ÿ அமைவ௠வசதி." #: ../extras/setup/scim-setup.desktop.in.h:2 msgid "Setup utility for Smart Common Input Method platform" msgstr "Smart Common Input Method தளதà¯à®¤à®¿à®±à¯à®•௠அமைவ௠வசதி" #: ../extras/panel/scim_panel_gtk.cpp:982 msgid "SCIM Help" msgstr "SCIM உதவி" #: ../extras/panel/scim_panel_gtk.cpp:999 msgid "Smart Common Input Method" msgstr "Smart Common Input Method" #: ../extras/panel/scim_panel_gtk.cpp:1058 msgid "Stick/unstick the input window and the toolbar." msgstr "ஒடà¯à®Ÿà¯à®®à¯/ஒடà¯à®Ÿà®¾à®¤ உளà¯à®³à¯€à®Ÿà¯ சாளரம௠மறà¯à®±à¯à®®à¯ கரà¯à®µà®¿à®ªà¯à®ªà®Ÿà¯à®Ÿà¯ˆ." #: ../extras/panel/scim_panel_gtk.cpp:1063 msgid "Show a brief help about SCIM and the current input method." msgstr "SCIM மறà¯à®±à¯à®®à¯ நடபà¯à®ªà¯ உளà¯à®³à¯€à®Ÿà¯ à®®à¯à®±à¯ˆ பறà¯à®±à®¿ சà¯à®°à¯à®•à¯à®•மான உதவியை காடà¯à®Ÿà®µà¯à®®à¯." #: ../extras/panel/scim_panel_gtk.cpp:1068 msgid "Show command menu." msgstr "கடà¯à®Ÿà®³à¯ˆ படà¯à®Ÿà®¿à®¯à¯ˆ காடà¯à®Ÿà®µà¯à®®à¯." #: ../extras/panel/scim_panel_gtk.cpp:2306 msgid "" "\n" "(C) 2002-2005 James Su " msgstr "" "\n" "(C) 2002-2005 James Su " #. Reload Configuration. #: ../extras/panel/scim_panel_gtk.cpp:2385 msgid "Reload Configuration" msgstr "கடà¯à®Ÿà®®à¯ˆà®ªà¯à®ªà¯ˆ மீணà¯à®Ÿà¯à®®à¯ à®à®±à¯à®±à¯à®¤à®²à¯" #. Stick #: ../extras/panel/scim_panel_gtk.cpp:2395 msgid "Stick Windows" msgstr "ஒடà¯à®Ÿà¯à®®à¯ சாளரஙà¯à®•ளà¯" #. Toolbar #: ../extras/panel/scim_panel_gtk.cpp:2404 msgid "Hide Toolbar" msgstr "கரà¯à®µà®¿à®ªà¯à®ªà®Ÿà¯à®Ÿà¯ˆà®¯à¯ˆ மறைதà¯à®¤à®²à¯" #. Help #: ../extras/panel/scim_panel_gtk.cpp:2413 msgid "Help ..." msgstr "உதவி ..." #. Clients exit. #: ../extras/panel/scim_panel_gtk.cpp:2431 msgid "Exit" msgstr "வெளியேறவà¯à®®à¯" #: ../utils/scimstringview.c:196 msgid "Cursor Position" msgstr "நிலைகாடà¯à®Ÿà®¿ இடமà¯" #: ../utils/scimstringview.c:197 msgid "The current position of the insertion cursor in chars." msgstr "எழà¯à®¤à¯à®¤à¯à®•à¯à®•ளில௠உளà¯à®³à¯€à®Ÿà¯à®®à¯ நிலைகà¯à®•ாடà¯à®Ÿà®¿à®¯à®¿à®©à¯ நடபà¯à®ªà¯ நிலை." #: ../utils/scimstringview.c:206 msgid "Maximum length" msgstr "அதிகபடà¯à®š எணà¯à®£à®¿à®•à¯à®•ை" #: ../utils/scimstringview.c:207 msgid "Maximum number of characters for this string view. Zero if no maximum." msgstr "இநà¯à®¤ சர பாரà¯à®µà¯ˆà®¯à®¿à®©à¯ அதிகபடà¯à®š எழà¯à®¤à¯à®¤à¯à®•à¯à®•ளின௠எணà¯à®£à®¿à®•à¯à®•ை. அதிகபடà¯à®šà®®à¯ இலà¯à®²à¯ˆà®¯à¯†à®©à®¿à®²à¯ பூஜà¯à®œà®¿à®¯à®®à¯." #: ../utils/scimstringview.c:216 msgid "Maximum width" msgstr "அதிகபடà¯à®š அகலமà¯" #: ../utils/scimstringview.c:217 msgid "Maximum width of this string view." msgstr "இநà¯à®¤ சர பாரà¯à®µà¯ˆà®¯à®¿à®©à¯ அதிகபடà¯à®š அகலமà¯." #: ../utils/scimstringview.c:226 msgid "Has Frame" msgstr "சடà¯à®Ÿà®®à¯ உளà¯à®³à®¤à¯" #: ../utils/scimstringview.c:227 msgid "FALSE removes outside bevel from string view." msgstr "இலà¯à®²à¯ˆ சர பாரà¯à®µà¯ˆà®¯à®¿à®²à®¿à®°à¯à®¨à¯à®¤à¯ வெளிபà¯à®ªà¯à®± பிவலை நீகà¯à®•à¯à®•ிறதà¯." #: ../utils/scimstringview.c:234 msgid "Draw cursor" msgstr "நிலைகà¯à®•ாடà¯à®Ÿà®¿à®¯à¯ˆ இழà¯à®¤à¯à®¤à®²à¯" #: ../utils/scimstringview.c:235 msgid "TRUE draw blinking cursor." msgstr "ஆம௠சிமிடà¯à®Ÿà¯à®®à¯ நிலைகà¯à®•ாடà¯à®Ÿà®¿à®¯à¯ˆ இழà¯à®¤à¯à®¤à®²à¯" #: ../utils/scimstringview.c:242 msgid "Auto move cursor" msgstr "தானியகà¯à®• நிலைகாடà¯à®Ÿà¯ நகரà¯à®¤à¯à®¤à®²à¯" #: ../utils/scimstringview.c:243 msgid "TRUE auto move cursor position when mouse clicking." msgstr "ஆம௠சà¯à®Ÿà¯à®Ÿà®¿à®¯à¯ˆ சொடà¯à®•à¯à®•à¯à®®à¯ போத௠தானாக நகரà¯à®®à¯ நிலைகாடà¯à®Ÿà®¿ இடமà¯." #: ../utils/scimstringview.c:250 msgid "Forward button press event" msgstr "à®®à¯à®©à¯à®©à¯‹à®•à¯à®•௠பொதà¯à®¤à®¾à®©à¯ à®…à®´à¯à®¤à¯à®¤à¯à®®à¯ நிகழà¯à®µà¯" #: ../utils/scimstringview.c:251 msgid "TRUE forward button press event to user program." msgstr "ஆம௠பயனர௠நிரலில௠மà¯à®©à¯à®©à¯‹à®•à¯à®•௠பொதà¯à®¤à®¾à®©à¯ˆ à®…à®´à¯à®¤à¯à®¤à¯à®®à¯ நிகழà¯à®µà¯." #: ../utils/scimstringview.c:258 msgid "Auto resize the widget to fit the string" msgstr "தானாக சரம௠சாளரதà¯à®¤à®¿à®²à¯ மறà¯à®…ளவ௠செயà¯à®¯à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯" #: ../utils/scimstringview.c:259 msgid "TRUE Auto resize on." msgstr "ஆம௠தானியகà¯à®• மற௠அமைவ௠உளà¯à®³à®¤à¯." #: ../utils/scimstringview.c:266 msgid "Width in chars" msgstr "அகலம௠எழà¯à®¤à¯à®¤à¯à®•à¯à®•ளிலà¯" #: ../utils/scimstringview.c:267 msgid "Number of characters to leave space for in the string view." msgstr "சர பாரà¯à®µà¯ˆà®¯à®¿à®²à¯ இடவெளி விட வேணà¯à®Ÿà®¿à®¯ எழà¯à®¤à¯à®¤à¯à®•à¯à®•ளின௠எணà¯à®£à®¿à®•à¯à®•ை." #: ../utils/scimstringview.c:276 msgid "Scroll offset" msgstr "உரà¯à®³à¯à®®à¯ ஆபà¯à®šà¯†à®Ÿà¯" #: ../utils/scimstringview.c:277 msgid "Number of pixels of the string view scrolled off the screen to the left" msgstr "சர பாரà¯à®µà¯ˆà®¯à®¿à®²à¯ திரையில௠உரà¯à®³à¯à®®à¯ பிகà¯à®¸à®²à®¿à®©à¯ எணà¯à®£à®¿à®•à¯à®•ை" #: ../utils/scimstringview.c:286 msgid "Text" msgstr "உரை" #: ../utils/scimstringview.c:287 msgid "The contents of the string view" msgstr "சரபà¯à®ªà®¾à®°à¯à®µà¯ˆà®¯à®¿à®©à¯ உளà¯à®³à®Ÿà®•à¯à®•à®™à¯à®•ளà¯" #: ../utils/scimkeyselection.cpp:155 msgid "Selected _Keys:" msgstr "தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®•à¯à®•பà¯à®ªà®Ÿà¯à®Ÿ விசைகள௠(_K):" #: ../utils/scimkeyselection.cpp:200 msgid "Key Code:" msgstr "விசைகà¯à®•à¯à®±à®¿à®¯à¯€à®Ÿà¯:" #: ../utils/scimkeyselection.cpp:218 msgid "..." msgstr "..." #: ../utils/scimkeyselection.cpp:223 msgid "Modifiers:" msgstr "மாறà¯à®±à®¿à®•ளà¯:" #: ../utils/scimkeyselection.cpp:236 msgid "_Ctrl" msgstr "_Ctrl" #: ../utils/scimkeyselection.cpp:240 msgid "A_lt" msgstr "A_lt" #: ../utils/scimkeyselection.cpp:244 msgid "_Shift" msgstr "_Shift" #: ../utils/scimkeyselection.cpp:248 msgid "_Release" msgstr "_Release" #: ../utils/scimkeyselection.cpp:258 msgid "_Meta" msgstr "_Meta" #: ../utils/scimkeyselection.cpp:262 msgid "S_uper" msgstr "S_uper" #: ../utils/scimkeyselection.cpp:266 msgid "_Hyper" msgstr "_Hyper" #: ../utils/scimkeyselection.cpp:331 msgid "Please enter a Key Code first." msgstr "à®®à¯à®¤à®²à®¿à®²à¯ ஒர௠விசைகà¯à®•à¯à®±à®¿à®¯à¯€à®Ÿà¯à®Ÿà¯ˆ உளà¯à®³à®¿à®Ÿà®µà¯à®®à¯." #: ../utils/scimkeyselection.cpp:385 msgid "" "Press a key (or a key combination).\n" "This dialog will be closed when the key is released." msgstr "" "ஒர௠விசையை (அலà¯à®²à®¤à¯ ஒர௠விசை கூடà¯à®Ÿà®®à¯ˆà®ªà¯à®ªà¯ˆ) à®…à®´à¯à®¤à¯à®¤à®µà¯à®®à¯. \n" "இநà¯à®¤ உரையாடல௠விசையை விடà¯à®®à¯ போத௠மூடà¯à®®à¯." #: ../utils/scimkeyselection.cpp:388 msgid "Grabbing a key." msgstr "ஒர௠விசையை எடà¯à®¤à¯à®¤à®²à¯" #: ../utils/scimkeyselection.cpp:678 msgid "Key Selection" msgstr "விசை தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®¤à¯à®¤à®²à¯" #: ../utils/scimtrayicon.c:108 msgid "Orientation" msgstr "திசையமைபà¯à®ªà¯" #: ../utils/scimtrayicon.c:109 msgid "The orientation of the tray." msgstr "தடà¯à®Ÿà®¿à®©à¯ திசையமைபà¯à®ªà¯." scim-1.4.14/po/te.po000066400000000000000000001406431177210725600141420ustar00rootroot00000000000000# translation of te.po to Telugu # Telugu translations for PACKAGE package. # Copyright (C) 2008 THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Automatically generated, 2008. # Krishna Babu K , 2008. msgid "" msgstr "" "Project-Id-Version: te\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-06-22 11:40-0700\n" "PO-Revision-Date: 2008-03-26 15:53+0530\n" "Last-Translator: Krishna Babu K \n" "Language-Team: Telugu \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n\n" "\n" #: ../src/scim_compose_key.cpp:126 msgid "English/European" msgstr "ఇంగà±à°²à±€à°·à±/యూరోపియనà±" #. Append an entry for forward mode. #: ../src/scim_imengine.cpp:638 ../src/scim_utility.cpp:693 #: ../modules/FrontEnd/scim_x11_frontend.cpp:1897 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1281 #: ../extras/panel/scim_panel_gtk.cpp:2814 msgid "English/Keyboard" msgstr "ఇంగà±à°²à±€à°·à±/కీబోరà±à°¡à±â€" #: ../src/scim_utility.cpp:694 msgid "Amharic" msgstr "à°…à°®à±à°¹à°¾à°°à°¿à°•à±" #: ../src/scim_utility.cpp:695 msgid "Arabic" msgstr "అరబికà±" #: ../src/scim_utility.cpp:696 msgid "Arabic (Egypt)" msgstr "అరబికౠ(ఈజిపà±à°Ÿà±â€)" #: ../src/scim_utility.cpp:697 msgid "Arabic (Lebanon)" msgstr "అరబికౠ(లెబనానà±)" #: ../src/scim_utility.cpp:698 msgid "Assamese" msgstr "à°…à°¸à±à°¸à°¾à°®à°¿" #: ../src/scim_utility.cpp:699 msgid "Azerbaijani" msgstr "అజరà±à°¬à±ˆà°œà°¾à°¨à°¿" #: ../src/scim_utility.cpp:700 msgid "Belarusian" msgstr "బెలారà±à°¸à±ˆà°¨à±" #: ../src/scim_utility.cpp:701 msgid "Bulgarian" msgstr "బలà±à°—ేరియనà±" #: ../src/scim_utility.cpp:702 ../src/scim_utility.cpp:703 msgid "Bengali" msgstr "బెంగాలి" #: ../src/scim_utility.cpp:704 msgid "Bengali (India)" msgstr "బెంగాలి (ఇండియా)" #: ../src/scim_utility.cpp:705 msgid "Tibetan" msgstr "టిబిటెనà±" #: ../src/scim_utility.cpp:706 msgid "Bosnian" msgstr "బోసà±à°¨à°¿à°¯à°¨à±" #: ../src/scim_utility.cpp:707 msgid "Catalan" msgstr "కాటలానà±" #: ../src/scim_utility.cpp:708 ../src/scim_keyboard_layout_data.h:4595 msgid "Czech" msgstr "చెకà±" #: ../src/scim_utility.cpp:709 msgid "Welsh" msgstr "వెలà±à°·à±â€" #: ../src/scim_utility.cpp:710 ../src/scim_keyboard_layout_data.h:4597 msgid "Danish" msgstr "డానిషà±" #: ../src/scim_utility.cpp:711 ../src/scim_keyboard_layout_data.h:4605 msgid "German" msgstr "జరà±à°®à°¨à±" #: ../src/scim_utility.cpp:712 msgid "Divehi" msgstr "దివేహి" #: ../src/scim_utility.cpp:713 ../src/scim_keyboard_layout_data.h:4608 msgid "Greek" msgstr "à°—à±à°°à±€à°•à±" #: ../src/scim_utility.cpp:714 msgid "English" msgstr "ఇంగà±à°²à±€à°·à±" #: ../src/scim_utility.cpp:715 msgid "English (Australian)" msgstr "ఇంగà±à°²à±€à°·à± (ఆసà±à°Ÿà±à°°à±‡à°²à°¿à°¯à°¨à±)" #: ../src/scim_utility.cpp:716 msgid "English (Canadian)" msgstr "ఇంగà±à°²à±€à°·à± (కెనడియనà±)" #: ../src/scim_utility.cpp:717 msgid "English (British)" msgstr "ఇంగà±à°²à±€à°·à± (à°¬à±à°°à°¿à°Ÿà±€à°·à±)" #: ../src/scim_utility.cpp:718 msgid "English (Ireland)" msgstr "ఇంగà±à°²à±€à°·à± (à°à°°à±à°²à°¾à°‚à°¡à±)" #: ../src/scim_utility.cpp:719 msgid "English (American)" msgstr "ఇంగà±à°²à±€à°·à± (అమెరికనà±)" #: ../src/scim_utility.cpp:720 ../src/scim_utility.cpp:721 #: ../src/scim_keyboard_layout_data.h:4621 msgid "Spanish" msgstr "à°¸à±à°ªà°¾à°¨à°¿à°·à±" #: ../src/scim_utility.cpp:722 msgid "Spanish (Mexico)" msgstr "à°¸à±à°ªà°¾à°¨à°¿à°·à± (మెకà±à°¸à°¿à°•ో)" #: ../src/scim_utility.cpp:723 ../src/scim_keyboard_layout_data.h:4600 msgid "Estonian" msgstr "ఈసà±à°Ÿà±‹à°¨à°¿à°¯à°¨à±" #: ../src/scim_utility.cpp:724 msgid "Basque" msgstr "బసà±â€Œà°•à±à°¯à±‚" #: ../src/scim_utility.cpp:725 msgid "Persian" msgstr "పరà±à°·à°¿à°¯à°¨à±" #: ../src/scim_utility.cpp:726 ../src/scim_keyboard_layout_data.h:4601 msgid "Finnish" msgstr "à°«à°¿à°¨à±à°¨à°¿à°·à±" #: ../src/scim_utility.cpp:727 ../src/scim_keyboard_layout_data.h:4602 msgid "French" msgstr "à°«à±à°°à±†à°‚à°šà±" #: ../src/scim_utility.cpp:728 msgid "Irish" msgstr "à°à°°à°¿à°·à±" #: ../src/scim_utility.cpp:729 msgid "Galician" msgstr "గలీసియనà±" #: ../src/scim_utility.cpp:730 msgid "Gujarati" msgstr "à°—à±à°œà°°à°¾à°¤à°¿" #: ../src/scim_utility.cpp:731 ../src/scim_utility.cpp:740 msgid "Hebrew" msgstr "హెబà±à°°à±‚" #: ../src/scim_utility.cpp:732 msgid "Hindi" msgstr "హిందీ" #: ../src/scim_utility.cpp:733 ../src/scim_keyboard_layout_data.h:4594 msgid "Croatian" msgstr "à°•à±à°°à±Œà°Ÿà±†à°¯à°¿à°¨à±" #: ../src/scim_utility.cpp:734 ../src/scim_keyboard_layout_data.h:4609 msgid "Hungarian" msgstr "హంగేరియనà±" #: ../src/scim_utility.cpp:735 msgid "Armenian" msgstr "à°…à°°à±à°®à±‡à°¨à°¿à°¯à°¨à±" #: ../src/scim_utility.cpp:736 msgid "Interlingua" msgstr "ఇంటరà±â€Œà°²à°¿à°‚గియా" #: ../src/scim_utility.cpp:737 msgid "Indonesian" msgstr "ఇండోనేషియా" #: ../src/scim_utility.cpp:738 ../src/scim_keyboard_layout_data.h:4627 msgid "Icelandic" msgstr "à°à°¸à±â€Œà°²à°¾à°‚à°¡à°¿à°•à±" #: ../src/scim_utility.cpp:739 ../src/scim_keyboard_layout_data.h:4610 msgid "Italian" msgstr "ఇటాలియనà±" #: ../src/scim_utility.cpp:741 ../src/scim_keyboard_layout_data.h:4611 msgid "Japanese" msgstr "జపనీసà±" #: ../src/scim_utility.cpp:742 msgid "Georgian" msgstr "జియోరà±à°œà°¿à°¯à°¨à±" #: ../src/scim_utility.cpp:743 msgid "Kazakh" msgstr "కజఖà±" #: ../src/scim_utility.cpp:744 msgid "Cambodian" msgstr "కాంబోడియనà±" #: ../src/scim_utility.cpp:745 msgid "Kannada" msgstr "à°•à°¨à±à°¨à°¡" #: ../src/scim_utility.cpp:746 msgid "Korean" msgstr "కొరియనà±" #: ../src/scim_utility.cpp:747 msgid "Laothian" msgstr "లోధియనà±" #: ../src/scim_utility.cpp:748 ../src/scim_keyboard_layout_data.h:4628 msgid "Lithuanian" msgstr "లిథౌనియనà±" #: ../src/scim_utility.cpp:749 msgid "Latvian" msgstr "లాటà±à°µà°¿à°¯à°¾" #: ../src/scim_utility.cpp:750 msgid "Macedonian" msgstr "మెసడోనియనà±" #: ../src/scim_utility.cpp:751 msgid "Malayalam" msgstr "మలయాళం" #: ../src/scim_utility.cpp:752 msgid "Mongolian" msgstr "మంగోలియనà±" #: ../src/scim_utility.cpp:753 msgid "Marathi" msgstr "మరాఠి" #: ../src/scim_utility.cpp:754 msgid "Malay" msgstr "మలాయà±" #: ../src/scim_utility.cpp:755 msgid "Burmese" msgstr "బరà±à°®à±€à°¸à±" #: ../src/scim_utility.cpp:756 msgid "Nepali" msgstr "నేపాలి" #: ../src/scim_utility.cpp:757 ../src/scim_keyboard_layout_data.h:4598 msgid "Dutch" msgstr "à°¡à°šà±" #: ../src/scim_utility.cpp:758 msgid "Norwegian (nynorsk)" msgstr "నారà±à°µà±‡à°œà°¿à°¯à°¨à± (నైనోరà±â€Œà°¸à±à°•à±â€)" #: ../src/scim_utility.cpp:759 msgid "Norwegian (bokmal)" msgstr "నారà±à°µà±‡à°œà°¿à°¯à°¨à± (బోకà±â€Œà°®à°¾à°²à±)" #: ../src/scim_utility.cpp:760 msgid "Oriya" msgstr "ఒరియా" #: ../src/scim_utility.cpp:761 msgid "Punjabi" msgstr "పంజాబి" #: ../src/scim_utility.cpp:762 ../src/scim_keyboard_layout_data.h:4613 msgid "Polish" msgstr "పోలిషà±" #: ../src/scim_utility.cpp:763 ../src/scim_utility.cpp:765 #: ../src/scim_keyboard_layout_data.h:4614 msgid "Portuguese" msgstr "పోరà±à°šà±à°—ీసà±" #: ../src/scim_utility.cpp:764 ../src/scim_keyboard_layout_data.h:4615 msgid "Portuguese (Brazil)" msgstr "పోరà±à°šà±à°—ీసౠ(à°¬à±à°°à±†à°œà°¿à°²à±)" #: ../src/scim_utility.cpp:766 msgid "Romanian" msgstr "రోమానియనà±" #: ../src/scim_utility.cpp:767 ../src/scim_keyboard_layout_data.h:4617 msgid "Russian" msgstr "à°°à°·à±à°¯à°¨à±" #: ../src/scim_utility.cpp:768 msgid "Sinhala" msgstr "సింహాలా" #: ../src/scim_utility.cpp:769 ../src/scim_keyboard_layout_data.h:4618 msgid "Slovak" msgstr "à°¸à±à°²à±‹à°µà°•à±" #: ../src/scim_utility.cpp:770 ../src/scim_keyboard_layout_data.h:4620 msgid "Slovenian" msgstr "à°¸à±à°²à±‹à°µà±†à°¨à°¿à°¯à°¨à±" #: ../src/scim_utility.cpp:771 msgid "Albanian" msgstr "à°…à°²à±à°¬à±‡à°¨à°¿à°¯à°¨à±" #: ../src/scim_utility.cpp:772 ../src/scim_utility.cpp:773 #: ../src/scim_utility.cpp:774 msgid "Serbian" msgstr "సెరà±à°¬à°¿à°¯à°¨à±" #: ../src/scim_utility.cpp:775 ../src/scim_utility.cpp:777 #: ../src/scim_keyboard_layout_data.h:4624 msgid "Swedish" msgstr "à°¸à±à°µà±€à°¡à°¿à°·à±" #: ../src/scim_utility.cpp:776 msgid "Swedish (Finland)" msgstr "à°¸à±à°µà±€à°¡à°¿à°·à± (à°«à°¿à°¨à±â€Œà°²à°¾à°‚à°¡à±)" #: ../src/scim_utility.cpp:778 msgid "Tamil" msgstr "తమిళం" #: ../src/scim_utility.cpp:779 msgid "Telugu" msgstr "తెలà±à°—à±" #: ../src/scim_utility.cpp:780 msgid "Thai" msgstr "థాయà±" #: ../src/scim_utility.cpp:781 ../src/scim_keyboard_layout_data.h:4625 msgid "Turkish" msgstr "à°Ÿà°°à±à°•à°¿à°·à±" #: ../src/scim_utility.cpp:782 msgid "Uighur" msgstr "à°¯à±à°—à±à°°à±" #: ../src/scim_utility.cpp:783 ../src/scim_keyboard_layout_data.h:4629 msgid "Ukrainian" msgstr "ఉకà±à°°à±ˆà°¨à°¿à°¯à°¨à±" #: ../src/scim_utility.cpp:784 msgid "Urdu" msgstr "ఉరà±à°¦à±‚" #: ../src/scim_utility.cpp:785 msgid "Uzbek" msgstr "ఉజà±à°¬à±†à°•à±" #: ../src/scim_utility.cpp:786 msgid "Vietnamese" msgstr "వియతà±à°¨à°¾à°‚సి" #: ../src/scim_utility.cpp:787 msgid "Walloon" msgstr "వాలూనà±" #: ../src/scim_utility.cpp:788 ../src/scim_utility.cpp:789 msgid "Yiddish" msgstr "యిదà±à°¦à°¿à°·à±" #: ../src/scim_utility.cpp:790 msgid "Chinese" msgstr "చైనీసà±" #: ../src/scim_utility.cpp:791 ../src/scim_utility.cpp:793 msgid "Chinese (simplified)" msgstr "చైనీసౠ(సింపà±à°²à°¿à°«à±ˆà°¡à±)" #: ../src/scim_utility.cpp:792 ../src/scim_utility.cpp:794 msgid "Chinese (traditional)" msgstr "చైనీసౠ(à°Ÿà±à°°à±†à°¡à°¿à°·à°¨à°²à±)" #: ../src/scim_utility.cpp:876 msgid "Other" msgstr "ఇతర" #: ../src/scim_keyboard_layout_data.h:4591 #: ../modules/IMEngine/scim_socket_imengine.cpp:386 #: ../modules/IMEngine/scim_socket_imengine.cpp:416 #: ../modules/IMEngine/scim_socket_imengine.cpp:501 #: ../modules/IMEngine/scim_socket_imengine.cpp:531 #: ../modules/IMEngine/scim_socket_imengine.cpp:561 msgid "Unknown" msgstr "తెలియని" #: ../src/scim_keyboard_layout_data.h:4592 msgid "English (US)" msgstr "ఇంగà±à°²à±€à°·à± (US)" #: ../src/scim_keyboard_layout_data.h:4593 msgid "Belgian" msgstr "బెలà±à°œà°¿à°¯à°¨à±" #: ../src/scim_keyboard_layout_data.h:4596 msgid "Czech (qwerty)" msgstr "చెకౠ(à°•à±à°µà±†à°°à±à°Ÿà°¿)" #: ../src/scim_keyboard_layout_data.h:4599 msgid "Dvorak" msgstr "à°¡à±à°µà±‹à°°à±à°•à±â€" #: ../src/scim_keyboard_layout_data.h:4603 msgid "French (Canadian)" msgstr "à°«à±à°°à±†à°‚à°šà± (కెనడియనà±)" #: ../src/scim_keyboard_layout_data.h:4604 msgid "French (Switzerland)" msgstr "à°«à±à°°à±†à°‚à°šà± (à°¸à±à°µà°¿à°¡à±à°œà°°à±à°²à°¾à°‚à°¡à±)" #: ../src/scim_keyboard_layout_data.h:4606 msgid "German (with deadkeys)" msgstr "జెరà±à°®à°¨à± (డెడà±â€Œà°•ీసౠతో)" #: ../src/scim_keyboard_layout_data.h:4607 msgid "German (Swiss)" msgstr "జరà±à°®à°¨à± (à°¸à±à°µà°¿à°¸à±)" #: ../src/scim_keyboard_layout_data.h:4612 msgid "Norwegian" msgstr "నారà±à°µà±‡à°œà°¿à°¯à°¨à±" #: ../src/scim_keyboard_layout_data.h:4616 msgid "Portuguese (Brazil US accents)" msgstr "పోరà±à°šà±à°—ీసౠ(à°¬à±à°°à±†à°œà°¿à°²à± US యాకà±à°¸à±†à°‚à°Ÿà±à°¸à±â€)" #: ../src/scim_keyboard_layout_data.h:4619 msgid "Slovak (qwerty)" msgstr "à°¸à±à°²à±‹à°µà°•à± (à°•à±à°µà°°à±à°Ÿà±€)" #: ../src/scim_keyboard_layout_data.h:4622 msgid "Spanish (CP 850)" msgstr "à°¸à±à°ªà°¾à°¨à°¿à°·à± (CP 850)" #: ../src/scim_keyboard_layout_data.h:4623 msgid "Spanish (Latin America)" msgstr "à°¸à±à°ªà°¾à°¨à°¿à°·à± (లాటినౠఅమెరికా)" #: ../src/scim_keyboard_layout_data.h:4626 msgid "English (UK)" msgstr "ఇంగà±à°²à±€à°·à± (UK)" #: ../modules/Filter/scim_sctc_filter.cpp:57 msgid "Simplified-Traditional Chinese Conversion" msgstr "సింపà±à°²à°¿à°«à±ˆà°¡à±-à°Ÿà±à°°à±†à°¡à°¿à°·à°¨à°²à± చైనీసౠకనà±à°µà°°à±à°·à°¨à±" #: ../modules/Filter/scim_sctc_filter.cpp:60 msgid "Convert between Simplified Chinese and Traditional Chinese" msgstr "సింపà±à°²à°¿à°«à±ˆà°¡à± చైనీసౠమరియౠటà±à°°à±†à°¡à°¿à°·à°¨à°²à± చైనీసౠమదà±à°¯ మారà±à°šà±à°®à±" #: ../modules/Filter/scim_sctc_filter.cpp:71 msgid "SC-TC" msgstr "SC-TC" #: ../modules/Filter/scim_sctc_filter.cpp:73 #: ../modules/Filter/scim_sctc_filter.cpp:78 msgid "Simplified-Traditional Chinese conversion" msgstr "సింపà±à°²à°¿à°«à±ˆà°¡à±-à°Ÿà±à°°à±†à°¡à°¿à°·à°¨à± చైనీసౠమారà±à°ªà±à°¦à°²" #: ../modules/Filter/scim_sctc_filter.cpp:76 msgid "No Conversion" msgstr "మారà±à°ªà±à°¦à°² లేదà±" #: ../modules/Filter/scim_sctc_filter.cpp:81 msgid "Simplified to Traditional" msgstr "సింపà±à°²à°¿à°«à±ˆà°¡à± à°¨à±à°‚à°¡à°¿ à°Ÿà±à°°à±†à°¡à°¿à°·à°¨à°²à±â€Œà°•à±" #: ../modules/Filter/scim_sctc_filter.cpp:83 msgid "Convert Simplified Chinese to Traditional Chinese" msgstr "సింపà±à°²à°¿à°«à±ˆà°¡à± చైనీసౠనà±à°‚à°¡à°¿ à°Ÿà±à°°à±†à°¡à°¿à°·à°¨à°²à± చైనీసà±â€Œà°•ౠమారà±à°šà±à°®à±" #: ../modules/Filter/scim_sctc_filter.cpp:86 msgid "Traditional to Simplified" msgstr "à°Ÿà±à°°à±†à°¡à°¿à°·à°¨à°²à± à°¨à±à°‚à°¡à°¿ సింపà±à°²à°¿à°«à±ˆà°¡à±â€Œà°•à±" #: ../modules/Filter/scim_sctc_filter.cpp:88 msgid "Convert Traditional Chinese to Simplified Chinese" msgstr "à°Ÿà±à°°à±†à°¡à°¿à°·à°¨à°²à± చైనీసౠనà±à°‚à°¡à°¿ సింపà±à°²à°¿à°«à±ˆà°¡à±â€Œ చైనీసà±â€Œà°•ౠమారà±à°šà±à°®à±" #: ../modules/Filter/scim_sctc_filter.cpp:300 msgid "James Su " msgstr "James Su " #: ../modules/Filter/scim_sctc_filter.cpp:425 #: ../modules/Filter/scim_sctc_filter.cpp:555 #: ../modules/Filter/scim_sctc_filter.cpp:571 msgid "SC->TC" msgstr "SC->TC" #: ../modules/Filter/scim_sctc_filter.cpp:431 #: ../modules/Filter/scim_sctc_filter.cpp:559 #: ../modules/Filter/scim_sctc_filter.cpp:575 msgid "TC->SC" msgstr "TC->SC" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1845 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1231 #: ../extras/panel/scim_panel_gtk.cpp:2304 msgid "Smart Common Input Method platform " msgstr "" "à°¸à±à°®à°¾à°°à±à°Ÿà±â€ ఉమà±à°®à°¡à°¿ ఇనà±â€Œà°ªà±à°Ÿà± పదà±à°¦à°¤à°¿ à°«à±à°²à°¾à°Ÿà±â€Œà°«à°¾à°‚ " "à°šà±à°°à°•ైన ఉమà±à°®à°¡à°¿ à°Žà°—à±à°¬à°¡à°¿ పదà±à°¦à°¤à°¿ వేదిక" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1847 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1233 msgid "" "\n" "(C) 2002-2005 James Su \n" "\n" msgstr "" "\n" "(C) 2002-2005 James Su \n" "\n" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1851 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1238 msgid "" ":\n" "\n" msgstr "" ":\n" "\n" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1854 #: ../modules/FrontEnd/scim_x11_frontend.cpp:1857 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1241 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1244 msgid "" "\n" "\n" msgstr "" "\n" "\n" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:120 msgid "RAW CODE" msgstr "RAW CODE" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:127 msgid "(C) 2002-2006 James Su " msgstr "(C) 2002-2006 James Su " #: ../modules/IMEngine/scim_rawcode_imengine.cpp:140 msgid "" "Hot Keys:\n" "\n" " Control+u:\n" " switch between Multibyte encoding and Unicode.\n" "\n" " Esc:\n" " reset the input method.\n" msgstr "" "హాటౠకీలà±:\n" "\n" " Control+u:\n" " మలà±à°Ÿà±€à°¬à±ˆà°Ÿà± à°Žà°¨à±à°•ోడింగౠమరియౠయూనికోడౠమదà±à°¯ మారà±à°®à±.\n" "\n" " Esc:\n" " ఇనà±â€Œà°ªà±à°Ÿà± పదà±à°¦à°¤à°¿à°¨à°¿ తిరిగివà±à°‚à°šà±à°®à±.\n" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:407 #: ../modules/IMEngine/scim_rawcode_imengine.cpp:423 msgid "The status of the current input method. Click to change it." msgstr "à°ªà±à°°à°¸à±à°¤à±à°¤ ఇనà±â€Œà°ªà±à°Ÿà± పదà±à°¦à°¤à°¿ యొకà±à°• à°¸à±à°¥à°¿à°¤à°¿. మారà±à°šà±à°Ÿà°•ౠదీని మారà±à°šà±." #: ../modules/IMEngine/scim_rawcode_imengine.cpp:409 msgid "Unicode" msgstr "యూనికోడà±" #: ../modules/SetupUI/scim_frontend_setup.cpp:82 #: ../modules/SetupUI/scim_imengine_setup.cpp:88 msgid "Global Setup" msgstr "సారà±à°µà°¤à±à°°à°¿à°• అమరà±à°ªà±" #: ../modules/SetupUI/scim_frontend_setup.cpp:87 msgid "" "Setup the global options used by All FrontEnd modules, including X11 " "FrontEnd, GTK IMModule, QT IMModule etc." msgstr "" "à°…à°¨à±à°¨à°¿ à°«à±à°°à°‚à°Ÿà±à°Žà°‚డౠమాడà±à°¯à±‚à°²à±à°¸à±â€ చేత ఉపయోగించబడే సారà±à°µà°¤à±à°°à°¿à°• à°à°šà±à°šà°¿à°•ాలనౠఅమరà±à°šà±à°®à±, X11 " "à°«à±à°°à°‚à°Ÿà±à°Žà°‚à°¡à± à°•à°²à±à°ªà±à°•à±à°¨à°¿, GTK IMModule, QT IMModule మొదలగà±à°¨à°µà°¿." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:143 msgid "_Trigger:" msgstr "à°Ÿà±à°°à°¿à°—à±à°—à°°à±(_T):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:145 msgid "Select the trigger keys" msgstr "à°Ÿà±à°°à°¿à°—à±à°—రౠకీలనౠఎంపికచేసà±à°•ొనà±à°®à±" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:147 msgid "" "The key events to turn on/off SCIM input method. Click on the button on the " "right to edit it." msgstr "" "SCIM ఇనà±â€Œà°ªà±à°Ÿà± పదà±à°¦à°¤à°¿à°¨à°¿ ఆనà±/ఆఫౠచేయà±à°Ÿà°•à± à°•à±€ ఘటనలà±. దానిని సరికూరà±à°šà±à°Ÿà°•ౠబటనà±â€Œà°ªà±ˆà°¨ " "à°•à±à°¡à°¿à°ªà±à°°à°•à±à°•à°¨ నొకà±à°•à±à°®à±." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:160 msgid "Turn _On:" msgstr "ఆనౠచేయà±à°®à±(_O):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:162 msgid "Select the Turn On keys" msgstr "ఆనà±â€Œà°šà±‡à°¯à± కీలనౠఎంపికచేయà±à°®à±" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:164 msgid "" "The key events to turn on SCIM input method. Click on the button on the " "right to edit it." msgstr "" "SCIM ఇనà±â€Œà°ªà±à°Ÿà± పదà±à°¦à°¤à°¿à°¨à°¿ ఆనà±â€Œà°šà±‡à°¯à±à°Ÿà°•à± à°•à±€ ఘటనలà±. దానిని సరికూరà±à°šà±à°Ÿà°•ౠబటనౠపైన " "à°•à±à°¡à°¿à°ªà±à°°à°•à±à°•à°¨ నొకà±à°•à±à°®à±." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:177 msgid "Turn O_ff:" msgstr "ఆఫౠచేయà±à°®à±(_f):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:179 msgid "Select the Turn Off keys" msgstr "ఆఫà±â€Œà°šà±‡à°¯à± కీలనౠఎంపికచేయà±à°®à±" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:181 msgid "" "The key events to turn off SCIM input method. Click on the button on the " "right to edit it." msgstr "" "SCIM ఇనà±â€Œà°ªà±à°Ÿà± పదà±à°¦à°¤à±à°²à°¨à± ఆఫౠచేయà±à°Ÿà°•à± à°•à±€ ఘటనలà±. దానిని సరికూరà±à°šà±à°Ÿà°•ౠబటనౠపైన " "à°•à±à°¡à°¿à°ªà±à°°à°•à±à°•à°¨ నొకà±à°•à±à°®à±." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:194 msgid "_Next input method:" msgstr "తరà±à°µà°¾à°¤à°¿ ఇనà±â€Œà°ªà±à°Ÿà± పదà±à°¦à°¤à°¿(_N):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:196 msgid "Select the next input method keys" msgstr "తరà±à°µà°¾à°¤à°¿ ఇనà±â€Œà°ªà±à°Ÿà± పదà±à°¦à°¤à°¿ కీలనౠఎంపికచేయà±à°®à±" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:198 msgid "" "The key events to switch to the next input method. Click on the button on " "the right to edit it." msgstr "" "తరà±à°µà°¾à°¤à°¿ ఇనà±â€Œà°ªà±à°Ÿà± పదà±à°¦à°¤à°¿à°•à°¿ మారà±à°Ÿà°•à± à°•à±€ ఘటనలà±. దీనిని సరికూరà±à°šà±à°Ÿà°•ౠబటనౠపైన " "à°•à±à°¡à°¿à°ªà±à°°à°•à±à°•à°¨ నొకà±à°•à±à°®à±." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:213 msgid "_Previous input method:" msgstr "à°®à±à°¨à±à°ªà°Ÿà°¿ ఇనà±â€Œà°ªà±à°Ÿà± పదà±à°¦à°¤à°¿(_P):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:215 msgid "Select the previous input method keys" msgstr "à°®à±à°¨à±à°ªà°Ÿà°¿ ఇనà±â€Œà°ªà±à°Ÿà± పదà±à°¦à°¤à°¿ కీలనౠఎంపికచేయà±à°®à±" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:217 msgid "" "The key events to switch to the previous input method. Click on the button " "on the right to edit it." msgstr "" "à°®à±à°¨à±à°ªà°Ÿà°¿ ఇనà±â€Œà°ªà±à°Ÿà± పదà±à°¦à°¤à°¿à°•ౠమారà±à°Ÿà°•à± à°•à±€ ఘటనలà±. దీనిని సరికూరà±à°šà±à°Ÿà°•ౠబటనౠపైన " "à°•à±à°¡à°¿à°ªà±à°°à°•à±à°•à°¨ నొకà±à°•à±à°®à±." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:232 msgid "Show input method _menu:" msgstr "ఇనà±â€Œà°ªà±à°Ÿà± పదà±à°¦à°¤à°¿ మెనూనౠచూపà±à°®à±(_m):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:234 msgid "Select the show input method menu keys" msgstr "ఇనà±â€Œà°ªà±à°Ÿà± పదà±à°¦à°¤à°¿ మెనూ చూపౠకీలనౠఎంపికచేయà±à°®à±" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:236 msgid "" "The key events to show the input method menu. Click on the button on the " "right to edit it." msgstr "" "ఇనà±â€Œà°ªà±à°Ÿà± పదà±à°¦à°¤à°¿ మెనూనౠచూపà±à°Ÿà°•à± à°•à±€ ఘటనలà±. దీనిని సరికూరà±à°šà±à°Ÿà°•ౠబటనౠపైన " "à°•à±à°¡à°¿à°ªà±à°°à°•à±à°•à°¨ నొకà±à°•à±à°®à±." #: ../modules/SetupUI/scim_frontend_setup.cpp:306 msgid "Options" msgstr "à°à°šà±à°šà°¿à°•ాలà±" #: ../modules/SetupUI/scim_frontend_setup.cpp:321 msgid "_Keyboard Layout:" msgstr "కీబోరà±à°¡à±â€ వాసà±à°¤à±(_K):" #: ../modules/SetupUI/scim_frontend_setup.cpp:342 msgid "" "You should choose your currently used keyboard layout here so that input " "methods, who care about keyboard layout, could work correctly." msgstr "" "మీరౠపà±à°°à°¸à±à°¤à±à°¤à°‚ ఉపయోగిసà±à°¤à±à°¨à±à°¨ కీబోరà±à°¡à±â€ వాసà±à°¤à±à°¨à± à°Žà°‚à°šà±à°•ోవాలి అలా à°† ఇనà±â€Œà°ªà±à°Ÿà± పదà±à°¦à°¤à±à°²à±, " "à°à°µà±ˆà°¤à±‡ కీబోరà±à°¡à±â€ వాసà±à°¤à±à°—à±à°°à°¿à°‚à°šà°¿ బాధà±à°¯à°¤à°µà°¹à°¿à°¸à±à°¤à±à°¨à±à°¨à°¾à°¯à±‹ అవి, సరిగా పనిచేసà±à°¤à°¾à°¯à°¿." #. On The Spot. #: ../modules/SetupUI/scim_frontend_setup.cpp:346 msgid "_Embed Preedit String into client window" msgstr "à°•à°•à±à°·à°¿à°¦à°¾à°°à°¿ విండోలోకి ఎంబెడౠపà±à°°à±€à°Žà°¡à°¿à°Ÿà± à°¸à±à°Ÿà±à°°à°¿à°‚à°—à± (_E)" #: ../modules/SetupUI/scim_frontend_setup.cpp:351 msgid "" "If this option is checked, the preedit string will be displayed directly in " "the client input window, rather than in a independent float window." msgstr "" "à°ˆ à°à°šà±à°šà°¿à°•à°‚ చెకà±â€Œà°šà±‡à°¯à°¬à°¡à°¿à°¤à±‡, à°ªà±à°°à±€à°Žà°¡à°¿à°Ÿà± à°¸à±à°Ÿà±à°°à°¿à°‚à°—à± à°¸à±à°µà°¤à°‚à°¤à±à°° à°«à±à°²à±‹à°Ÿà± విండోలో à°ªà±à°°à°¦à°°à±à°¶à°¿à°¤à°®à°—à±à°Ÿ à°•à°¨à±à°¨à°¾, " "సూటిగా à°•à°•à±à°·à°¿à°¦à°¾à°°à°¿ ఇనà±â€Œà°ªà±à°Ÿà± విండోలో à°ªà±à°°à°¦à°°à±à°¶à°¿à°¤à°®à±Œà°¤à±à°‚ది." #. Shared input method. #: ../modules/SetupUI/scim_frontend_setup.cpp:360 msgid "_Share the same input method among all applications" msgstr "à°…à°¨à±à°¨à°¿ à°…à°¨à±à°µà°°à±à°¤à°¨à°¾à°²à°•ౠఒకే ఇనà±â€Œà°ªà±à°Ÿà± పదà±à°¦à°¤à°¿à°¨à°¿ పంచà±à°®à±(_S)" #: ../modules/SetupUI/scim_frontend_setup.cpp:365 msgid "" "If this option is checked, then only one input method could be used by all " "applications at the same time.Otherwise different input method could be used " "by each application." msgstr "" "à°ˆ à°à°šà±à°šà°¿à°•à°‚ చెకà±â€Œà°šà±‡à°¯à°¬à°¡à°¿à°¤à±‡, à°…à°ªà±à°ªà°¡à± ఒకే సమయంలో à°…à°¨à±à°¨à°¿ à°…à°¨à±à°µà°°à±à°¤à°¨à°¾à°² చేత à°’à°• ఇనà±â€Œà°ªà±à°Ÿà± పదà±à°¦à°¤à°¿ " "మాతà±à°°à°®à±‡ ఉపయోగించబడà±à°¤à±à°‚ది. లేకపోతే à°ªà±à°°à°¤à°¿ à°…à°¨à±à°µà°°à±à°¤à°¨à°‚చేత విభినà±à°¨ ఇనà±â€Œà°ªà±à°Ÿà± పదà±à°¦à°¤à°¿ ఉపయోగించ " "బడà±à°¤à±à°‚ది." #: ../modules/SetupUI/scim_frontend_setup.cpp:373 #: ../modules/SetupUI/scim_imengine_setup.cpp:453 msgid "Hotkeys" msgstr "హాటà±â€Œà°•ీలà±" #: ../modules/SetupUI/scim_imengine_setup.cpp:93 msgid "You can enable/disable input methods and set hotkeys for input methods here." msgstr "" "మీరౠఇనà±â€Œà°ªà±à°Ÿà± పదà±à°¦à°¤à±à°²à°¨à± చేతనం/అచేతనం చేయాలి మరియౠఇనà±â€Œà°ªà±à°Ÿà± పదà±à°¦à°¤à±à°² కొరకౠఇచట " "హాటà±â€Œà°•ీలనౠఅమరà±à°šà°µà°šà±à°šà±." #: ../modules/SetupUI/scim_imengine_setup.cpp:296 msgid "The installed input method services:" msgstr "సంసà±à°¥à°¾à°ªà°¿à°‚à°šà°¿à°¨ ఇనà±â€Œà°ªà±à°Ÿà± పదà±à°¦à°¤à°¿ సేవలà±:" #. Create hotkey and filter button before factory list view, because #. factory_list_selection_changed_callback may access these two buttons. #: ../modules/SetupUI/scim_imengine_setup.cpp:311 msgid "Edit _Hotkeys" msgstr "హాటà±â€Œà°•ీలనౠసరికూరà±à°šà±à°®à±(_H)" #: ../modules/SetupUI/scim_imengine_setup.cpp:320 msgid "Edit Hotkeys associated with the selected input method." msgstr "సంభందిత హాటà±â€Œà°•ీలనౠఎంపికచేసిన ఇనà±â€Œà°ªà±à°Ÿà± పదà±à°¦à°¤à°¿ తో సరికూరà±à°šà±à°®à±." #: ../modules/SetupUI/scim_imengine_setup.cpp:322 msgid "Select _Filters" msgstr "వడపోతలనౠఎంపికచేయà±à°®à±(_F)" #: ../modules/SetupUI/scim_imengine_setup.cpp:331 msgid "Select the Filters which will be attached to this input method." msgstr "à°ˆ ఇనà±â€Œà°ªà±à°Ÿà± పదà±à°¦à°¤à°¿à°•à± à°…à°¨à±à°¬à°‚దించబడౠవడపోతలనౠఎంపికచేయà±à°®à±." #: ../modules/SetupUI/scim_imengine_setup.cpp:348 msgid "_Expand" msgstr "విసà±à°¤à°°à°¿à°‚పచేయà±à°®à±(_E)" #: ../modules/SetupUI/scim_imengine_setup.cpp:357 msgid "Expand all language categories." msgstr "à°…à°¨à±à°¨à°¿ భాషా వరà±à°—à°®à±à°²à°¨à± విసà±à°¤à°°à°¿à°‚పచేయà±à°®à±." #: ../modules/SetupUI/scim_imengine_setup.cpp:359 msgid "_Collapse" msgstr "కూలà±à°šà±à°®à±(_C)" #: ../modules/SetupUI/scim_imengine_setup.cpp:368 msgid "Collapse all language categories." msgstr "à°…à°¨à±à°¨à°¿ భాషా వరà±à°—à°®à±à°²à°¨à± కూలà±à°šà±à°®à±." #: ../modules/SetupUI/scim_imengine_setup.cpp:370 msgid "E_nable All" msgstr "à°…à°¨à±à°¨à°¿à°Ÿà°¿à°¨à°¿ చేతనంచేయà±à°®à±(_n)" #: ../modules/SetupUI/scim_imengine_setup.cpp:379 msgid "Enable all input methods." msgstr "à°…à°¨à±à°¨à°¿ ఇనà±â€Œà°ªà±à°Ÿà± పదà±à°¦à°¤à±à°²à°¨à± చేతనంచేయà±à°®à±." #: ../modules/SetupUI/scim_imengine_setup.cpp:381 msgid "_Disable All" msgstr "à°…à°¨à±à°¨à°¿à°Ÿà°¿à°¨à°¿ అచేతనంచేయà±à°®à±(_D)" #: ../modules/SetupUI/scim_imengine_setup.cpp:390 msgid "Disable all input methods." msgstr "à°…à°¨à±à°¨à°¿ ఇనà±â€Œà°ªà±à°Ÿà± పదà±à°¦à°¤à±à°²à°¨à± అచేతనంచేయà±à°®à±." #: ../modules/SetupUI/scim_imengine_setup.cpp:414 #: ../modules/SetupUI/scim_imengine_setup.cpp:541 msgid "Name" msgstr "నామమà±" #: ../modules/SetupUI/scim_imengine_setup.cpp:432 #: ../modules/SetupUI/scim_imengine_setup.cpp:522 msgid "Enable" msgstr "చేతనం" #: ../modules/SetupUI/scim_imengine_setup.cpp:467 msgid "Filters" msgstr "వడపోతలà±" #: ../modules/SetupUI/scim_imengine_setup.cpp:560 msgid "Languages" msgstr "భాషలà±" #: ../modules/SetupUI/scim_imengine_setup.cpp:574 msgid "Description" msgstr "వివరణమà±" #: ../modules/SetupUI/scim_imengine_setup.cpp:1190 #, c-format msgid "Edit Hotkeys for %s" msgstr "%s కొరకౠహాటà±â€Œà°•ీలనౠసరికూరà±à°šà±à°®à±" #: ../modules/SetupUI/scim_imengine_setup.cpp:1417 #, c-format msgid "Select Filters for %s" msgstr "%s కొరకౠవâ€à°¡à°ªà±‹à°¤à°²à°¨à± ఎంపికచేయà±à°®à±" #: ../modules/SetupUI/scim_imengine_setup.cpp:1450 msgid "Move _Up" msgstr "పైకి à°•à°¦à±à°ªà±à°®à±(_U)" #: ../modules/SetupUI/scim_imengine_setup.cpp:1457 msgid "Move _Down" msgstr "à°•à±à°°à°¿à°‚దకౠకదà±à°ªà±à°®à±(_D)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:95 msgid "GTK" msgstr "GTK" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:100 msgid "A panel daemon based on GTK+-2.x library." msgstr "GTK+-2.x లైబà±à°°à°°à±€ మీద ఆధారపడి à°’à°• పానలౠడెమోనà±." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:163 msgid "Always" msgstr "à°Žà°²à±à°²à°ªà±à°ªà±à°¡à±" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:164 msgid "On demand" msgstr "డిమాండౠపైన" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:165 msgid "Never" msgstr "à°Žà°ªà±à°ªà°Ÿà°¿à°•ికాదà±" #. Create the ToolBar setup block. #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:211 msgid "ToolBar" msgstr "సాధనపటà±à°Ÿà°¿" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:229 msgid "_Show:" msgstr "చూపà±à°®à±(_S):" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:245 msgid "Auto s_nap" msgstr "à°¸à±à°µà°¯à°‚చాలక à°¸à±à°¨à°¾à°ªà±(_n)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:251 msgid "Show _input method icon" msgstr "ఇనà±â€Œà°ªà±à°Ÿà± పదà±à°¦à°¤à°¿ à°ªà±à°°à°¤à°¿à°®à°¨à± చూపà±à°®à±(_i)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:257 msgid "Show inp_ut method name" msgstr "ఇనà±â€Œà°ªà±à°Ÿà± పదà±à°¦à°¤à°¿ నామమà±à°¨à± చూపà±à°®à±(_u)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:269 msgid "Hide time_out:" msgstr "సమయం à°®à±à°—à°¿à°‚à°ªà±à°¨à± మరà±à°—à±à°ªà°°à°šà±à°®à±(_o):" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:282 msgid "Show s_tick icon" msgstr "à°¸à±à°Ÿà°¿à°•à± à°ªà±à°°à°¤à°¿à°®à°¨à± చూపà±à°®à±(_t)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:288 msgid "Show m_enu icon" msgstr "మెనూ à°ªà±à°°à°¤à°¿à°®à°¨à± చూపà±à°®à±(_e)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:294 msgid "Show _help icon" msgstr "సహాయం à°ªà±à°°à°¤à°¿à°®à°¨à± చూపà±à°®à±(_h)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:300 msgid "Show _property label" msgstr "లకà±à°·à°£à°‚ లేబà±à°²à±â€Œà°¨à± చూపà±à°®à±(_P)" #. Create the Input Window setup block #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:311 msgid "Input window" msgstr "ఇనà±â€Œà°ªà±à°Ÿà± విండో" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:320 msgid "E_mbedded lookup table" msgstr "ఎంబెడెడౠలà±à°•à±à°…పౠపటà±à°Ÿà°¿à°•(_m)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:324 msgid "_Vertical lookup table" msgstr "నిలà±à°µà± à°²à±à°•à±à°…పౠపటà±à°Ÿà°¿à°•(_V)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:328 msgid "Misc" msgstr "Misc" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:337 msgid "Show tra_y icon" msgstr "à°Ÿà±à°°à±‡ à°ªà±à°°à°¤à°¿à°®à°¨à± చూపà±à°®à±(_y)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:341 msgid "Stick _windows" msgstr "à°¸à±à°Ÿà°¿à°•ౠవిండోలà±(_w)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:349 msgid "_Font:" msgstr "ఫాంటà±(_F):" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:419 msgid "" "If option \"Always\" is selected, the toolbar will always be shown on the " "screen. If option \"On demand\" is selected, it will only be shown when SCIM " "is activated. If option \"Never\" is selected, it will never be shown." msgstr "" "à°à°šà±à°šà°¿à°•à°‚ \"Always\" ఎంపికకాబడితే, తెరనందౠసాధనపటà±à°Ÿà±€ à°Žà°²à±à°²à°ªà±à°ªà±à°¡à± చూపబడà±à°¤à±à°‚ది. " "à°à°šà±à°šà°¿à°•à°‚ \"On demand\" ఎంపికకాబడితే, అది SCIM చేతనం అయినపà±à°ªà±à°¡à± మాతà±à°°à°®à±‡ " "చూపబడà±à°¤à±à°‚ది. à°à°šà±à°šà°¿à°•à°‚ \"Never\" ఎంపిక కాబడితే, అది à°Žà°ªà±à°ªà°Ÿà°¿à°•à°¿ చూపబడదà±." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:426 msgid "If this option is checked, the toolbar will be snapped to the screen border." msgstr "à°ˆ à°à°šà±à°šà°¿à°•à°‚ చెకà±â€Œà°šà±‡à°¯à°¬à°¡à°¿à°¤à±‡, సాధనపటà±à°Ÿà±€ తెర à°…à°‚à°šà±à°•à± à°¸à±à°¨à°¾à°ªà± చేయబడà±à°¤à±à°‚ది." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:431 msgid "" "The toolbar will be hidden out after this timeout is elapsed. This option is " "only valid when \"Always show\" is selected. Set to zero to disable this " "behavior." msgstr "" "à°ˆ సమయనియమితి మించినతరà±à°µà°¾à°¤ à°ˆ సాధనపటà±à°Ÿà±€ మరà±à°—à±à°¨ à°µà±à°‚చబడà±à°¤à±à°‚ది. " "\"Always show\" ఎంపికచేయబడితే మాతà±à°°à°®à±‡ à°ˆ à°à°šà±à°šà°¿à°•à°‚ చెలà±à°²à±à°¤à±à°‚ది.à°ˆ à°ªà±à°°à°µà°°à±à°¤à°¨ " "అచేతనంచేయà±à°Ÿà°•à± à°¸à±à°¨à±à°¨à°¾à°•ౠఅమరà±à°šà±à°®à±." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:438 msgid "" "If this option is checked, the input method icon will be showed on the " "toolbar." msgstr "" "à°ˆ à°à°šà±à°šà°¿à°•à°‚ చేకà±â€Œà°šà±‡à°¯à°¬à°¡à°¿à°¤à±‡, ఇనà±â€Œà°ªà±à°Ÿà± పదà±à°¦à°¤à°¿ à°ªà±à°°à°¤à°¿à°® సాధనపటà±à°Ÿà±€ పైన " "చూపబడà±à°¤à±à°‚ది." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:442 msgid "" "If this option is checked, the input method name will be showed on the " "toolbar." msgstr "à°ˆ à°à°šà±à°šà°¿à°•à°‚ చేకà±â€Œà°šà±‡à°¯à°¬à°¡à°¿à°¤à±‡, ఇనà±â€Œà°ªà±à°Ÿà± పదà±à°¦à°¤à°¿ నామమౠసాధనపటà±à°Ÿà±€ పైన చూపబడà±à°¤à±à°‚ది." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:446 msgid "If this option is checked, the stick icon will be showed on the toolbar." msgstr "à°ˆ à°à°šà±à°šà°¿à°•à°‚ చేకà±â€Œà°šà±‡à°¯à°¬à°¡à°¿à°¤à±‡, à°¸à±à°Ÿà°¿à°•à± à°ªà±à°°à°¤à°¿à°® సాధనపటà±à°Ÿà±€ పైన చూపబడà±à°¤à±à°‚ది." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:450 msgid "If this option is checked, the menu icon will be showed on the toolbar." msgstr "à°ˆ à°à°šà±à°šà°¿à°•à°‚ చేకà±â€Œà°šà±‡à°¯à°¬à°¡à°¿à°¤à±‡, మెనూ à°ªà±à°°à°¤à°¿à°® సాధనపటà±à°Ÿà±€à°ªà±ˆà°¨ చూపబడà±à°¤à±à°‚ది." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:454 msgid "If this option is checked, the help icon will be showed on the toolbar." msgstr "à°ˆ à°à°šà±à°šà°¿à°•à°‚ చేకà±â€Œà°šà±‡à°¯à°¬à°¡à°¿à°¤à±‡, సాహాయపౠపà±à°°à°¤à°¿à°® సాధనపటà±à°Ÿà±€à°ªà±ˆà°¨ చూపబడà±à°¤à±à°‚ది." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:458 msgid "" "If this option is checked, the text label of input method properties will be " "showed on the toolbar." msgstr "" "à°ˆ à°à°šà±à°šà°¿à°•à°‚ చేకà±â€Œà°šà±‡à°¯à°¬à°¡à°¿à°¤à±‡, ఇనà±â€Œà°ªà±à°Ÿà± పదà±à°¦à°¤à°¿ లకà±à°·à°£à°¾à°² యొకà±à°• పాఠà±à°¯à°®à± లేబà±à°²à± సాధనపటà±à°Ÿà±€ " "పైన చూపబడతాయి." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:462 msgid "" "If this option is checked, the lookup table will be embedded into the input " "window." msgstr "à°ˆ à°à°šà±à°šà°¿à°•à°‚ చేకà±â€Œà°šà±‡à°¯à°¬à°¡à°¿à°¤à±‡, à°²à±à°•à±à°…పౠపటà±à°Ÿà°¿à°• ఇనà±â€Œà°ªà±à°Ÿà± విండోలోనిక ఎంబెడెడౠచేయబడà±à°¤à±à°‚ది." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:467 msgid "If this option is checked, the lookup table will be displayed vertically." msgstr "à°ˆ à°à°šà±à°šà°¿à°•à°‚ చేకà±â€Œà°šà±‡à°¯à°¬à°¡à°¿à°¤à±‡, à°† à°²à±à°•à±à°…పౠపటà±à°Ÿà°¿à°• నిలà±à°µà±à°—à°¾ à°ªà±à°°à°¦à°°à±à°¶à°¿à°¤à°®à±Œà°¤à±à°‚ది." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:472 msgid "" "If this option is checked, the tray icon will be showed on the desktop's " "taskbar." msgstr "" "à°ˆ à°à°šà±à°šà°¿à°•à°‚ చేకà±â€Œà°šà±‡à°¯à°¬à°¡à°¿à°¤à±‡, à°† చెతà±à°¤à°•à±à°‚à°¡à°¿ à°ªà±à°°à°¤à°¿à°® డెసà±à°•à±â€â€Œà°Ÿà°¾à°ªà± యొకà±à°• టాసà±à°•à±â€â€Œà°¬à°¾à°°à± పైన " "చూపబడà±à°¤à±à°‚ది." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:476 msgid "" "If this option is checked, the toolbar, input and lookup table windows will " "be sticked to its original position." msgstr "" "à°ˆ à°à°šà±à°šà°¿à°•à°‚ చేకà±â€Œà°šà±‡à°¯à°¬à°¡à°¿à°¤à±‡, à°† టూలà±â€Œà°¬à°¾à°°à±, ఇనà±â€Œà°ªà±à°Ÿà± మరియౠలà±à°•à±à°…పౠపటà±à°Ÿà°¿à°• విండోలౠ" "వాటి వాసà±à°¤à°µ à°¸à±à°¥à°¾à°¨à°®à±à°•ౠఅతికింపబడివà±à°‚టాయి." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:482 msgid "The font setting will be used in the input and lookup table windows." msgstr "ఫాంటౠఅమరికలౠఇనà±â€Œà°ªà±à°Ÿà± మరియౠలà±à°•à±à°…పౠపటà±à°Ÿà°¿à°• విండోసà±â€Œà°¨à°‚దౠఉపయోగించబడతాయి." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:801 msgid "Select Interface Font" msgstr "అంతరà±â€Œà°«à°²à°•à°‚ ఫాంటౠఎంపికచేయà±à°®à±" #: ../extras/setup/scim_setup_ui.cpp:47 msgid "SCIM" msgstr "SCIM" #: ../extras/setup/scim_setup_ui.cpp:48 msgid "FrontEnd" msgstr "à°«à±à°°à°‚à°Ÿà±à°Žà°‚à°¡à±" #: ../extras/setup/scim_setup_ui.cpp:49 msgid "IMEngine" msgstr "IMEngine" #: ../extras/setup/scim_setup_ui.cpp:50 msgid "Panel" msgstr "పానలà±" #: ../extras/setup/scim_setup_ui.cpp:51 msgid "Extra" msgstr "à°Žà°•à±à°¸à±â€â€Œà°Ÿà±à°°à°¾" #. #. vi:ts=4:nowrap:ai:expandtab #. #: ../extras/setup/scim_setup_ui.cpp:230 #: ../extras/setup/scim-setup.desktop.in.h:1 msgid "SCIM Input Method Setup" msgstr "SCIM ఇనà±â€Œà°ªà±à°Ÿà± పదà±à°¦à°¤à°¿ అమరిక" #: ../extras/setup/scim_setup_ui.cpp:369 msgid "" " Smart Common Input Method platform \n" "\n" "GUI Setup Utility\n" "\n" "\n" "\n" "Copyright 2002-2004, James Su <suzhe@tsinghua.org." "cn>" msgstr "" " à°¸à±à°®à°¾à°°à±à°Ÿà±â€ ఉమà±à°®à°¡à°¿ ఇనà±â€Œà°ªà±à°Ÿà± పదà±à°¦à°¤à°¿ à°«à±à°²à°¾à°Ÿà±â€Œà°«à°¾à°‚ \n" "\n" "GUI అమరà±à°ªà± సౌలభà±à°¯à°‚\n" "\n" "\n" "\n" "కాపీరైటౠ2002-2004, James Su <suzhe@tsinghua.org." "cn>" #: ../extras/setup/scim_setup_ui.cpp:394 #, c-format msgid "The Setup for %s modules." msgstr "%s మాడà±à°¯à±‚à°²à±à°¸à±â€ కొరకౠఅమరిక." #: ../extras/setup/scim_setup_ui.cpp:456 msgid "Are you sure you want to quit SCIM Setup?" msgstr "మీరౠఖచà±à°šà°¿à°¤à°‚à°—à°¾ SCIM అమరికనౠనిషà±à°•à±à°°à°®à°¿à°¦à±à°¦à°¾à°®à°¨à°¿ à°…à°¨à±à°•à±à°‚à°Ÿà±à°¨à±à°¨à°¾à°°à°¾?" #: ../extras/setup/scim_setup_ui.cpp:685 msgid "" "Not all configuration can be reloaded on the fly. Don't forget to restart " "SCIM in order to let all of the new configuration take effect." msgstr "" "ఆకృతీకరణ మొతà±à°¤à°‚ à°…à°ªà±à°ªà°Ÿà°¿à°•à°ªà±à°ªà±à°¡à±‡ తిరిగిలోడౠకాలేదà±. కొతà±à°¤ ఆకృతీకరణ మొతà±à°¤à°‚ à°ªà±à°°à°­à°¾à°µà°¿à°¤à°‚ " "à°…à°—à±à°Ÿà°•à± SCIM నౠపà±à°¨à°ƒà°ªà±à°°à°¾à°°à°‚à°­à°¿à°‚à°šà±à°Ÿ మరà±à°šà°¿à°ªà±‹à°µà°¦à±à°¦à±." #: ../extras/setup/scim_setup_helper.cpp:49 msgid "SCIM Setup" msgstr "SCIM అమరిక" #: ../extras/setup/scim_setup_helper.cpp:51 msgid "Integrated Setup Utility based on GTK Widget library." msgstr "GTK విడà±à°œà°Ÿà± లైబà±à°°à°°à°¿ మీద ఆధరపడి సమగà±à°° అమరà±à°ªà± సౌలభà±à°¯à°‚." #: ../extras/setup/scim-setup.desktop.in.h:2 msgid "Setup utility for Smart Common Input Method platform" msgstr "à°¸à±à°®à°¾à°°à±à°Ÿà±â€ ఉమà±à°®à°¡à°¿ ఇనà±â€Œà°ªà±à°Ÿà± పదà±à°¦à°¤à°¿ à°«à±à°²à°¾à°Ÿà±â€Œà°«à°¾à°‚ కొరకౠఅమరà±à°ªà± సౌలభà±à°¯à°‚" #: ../extras/panel/scim_panel_gtk.cpp:982 msgid "SCIM Help" msgstr "SCIM సహాయం" #: ../extras/panel/scim_panel_gtk.cpp:999 msgid "Smart Common Input Method" msgstr "à°¸à±à°®à°¾à°°à±à°Ÿà±â€ ఉమà±à°®à°¡à°¿ ఇనà±â€Œà°ªà±à°Ÿà± పదà±à°¦à°¤à°¿" #: ../extras/panel/scim_panel_gtk.cpp:1058 msgid "Stick/unstick the input window and the toolbar." msgstr "ఇనà±â€Œà°ªà±à°Ÿà± విండో మరియౠసాధనపటà±à°Ÿà±€à°¨à°¿ అతింకించà±/పెకిలించà±." #: ../extras/panel/scim_panel_gtk.cpp:1063 msgid "Show a brief help about SCIM and the current input method." msgstr "SCIM à°—à±à°°à°¿à°‚à°šà°¿ మరియౠపà±à°°à°¸à±à°¤à±à°¤ ఇనà±â€Œà°ªà±à°Ÿà± పదà±à°¦à°¤à°¿ à°—à±à°°à°¿à°‚à°šà°¿ టూకీగా సహాయానà±à°¨à°¿ చూపà±à°®à±." #: ../extras/panel/scim_panel_gtk.cpp:1068 msgid "Show command menu." msgstr "ఆదేశమౠమెనూనౠచూపà±à°®à±." #: ../extras/panel/scim_panel_gtk.cpp:2306 msgid "" "\n" "(C) 2002-2005 James Su " msgstr "" "\n" "(C) 2002-2005 James Su " #. Reload Configuration. #: ../extras/panel/scim_panel_gtk.cpp:2385 msgid "Reload Configuration" msgstr "ఆకృతీకరణనౠతిరిగినింపà±à°®à±" #. Stick #: ../extras/panel/scim_panel_gtk.cpp:2395 msgid "Stick Windows" msgstr "విండోలనౠఅతికించà±à°®à±" #. Toolbar #: ../extras/panel/scim_panel_gtk.cpp:2404 msgid "Hide Toolbar" msgstr "సాధనపటà±à°Ÿà±€à°¨à°¿ మరà±à°—à±à°¨à°µà±à°‚à°šà±à°®à±" #. Help #: ../extras/panel/scim_panel_gtk.cpp:2413 msgid "Help ..." msgstr "సహాయమౠ..." #. Clients exit. #: ../extras/panel/scim_panel_gtk.cpp:2431 msgid "Exit" msgstr "బయటకà±" #: ../utils/scimstringview.c:196 msgid "Cursor Position" msgstr "à°•à°°à±à°¸à°°à± à°¸à±à°¥à°¾à°¨à°®à±" #: ../utils/scimstringview.c:197 msgid "The current position of the insertion cursor in chars." msgstr "à°…à°•à±à°·à°°à°¾à°²à°²à±‹ చేరà±à°šà±à°• à°•à°°à±à°¸à°°à± యొకà±à°• à°ªà±à°°à°¸à±à°¤à±à°¤ à°¸à±à°¥à°¾à°¨à°®à±." #: ../utils/scimstringview.c:206 msgid "Maximum length" msgstr "à°—à°°à°¿à°·à±à°  పొడవà±" #: ../utils/scimstringview.c:207 msgid "Maximum number of characters for this string view. Zero if no maximum." msgstr "à°ˆ à°ªà±à°°à°¾à°°à°‚à°­ దరà±à°¶à°¨à°‚à°•à± à°…à°•à±à°·à°°à°®à±à°² యొకà±à°• à°—à°°à°¿à°·à±à°  సంఖà±à°¯. à°—à°°à°¿à°·à±à° à°‚ లేకపోతే à°¸à±à°¨à±à°¨." #: ../utils/scimstringview.c:216 msgid "Maximum width" msgstr "à°—à°°à°¿à°·à±à°  వెడలà±à°ªà±" #: ../utils/scimstringview.c:217 msgid "Maximum width of this string view." msgstr "à°ˆ à°ªà±à°°à°¾à°°à°‚à°­ దరà±à°¶à°¨à°‚ యొకà±à°• à°—à°°à°¿à°·à±à°  వెడలà±à°ªà±." #: ../utils/scimstringview.c:226 msgid "Has Frame" msgstr "à°šà°Ÿà±à°°à°®à±à°¨à± కలిగివà±à°‚ది" #: ../utils/scimstringview.c:227 msgid "FALSE removes outside bevel from string view." msgstr "à°ªà±à°°à°¾à°°à°‚à°­ దరà±à°¶à°¨à°‚à°¨à±à°‚à°¡à°¿ అసతà±à°¯à°‚ బయటి బెవెలà±â€Œà°¨à± తీసివేసà±à°¤à±à°‚ది." #: ../utils/scimstringview.c:234 msgid "Draw cursor" msgstr "à°•à°°à±à°¸à°°à±â€Œà°¨à± గీయà±à°®à±" #: ../utils/scimstringview.c:235 msgid "TRUE draw blinking cursor." msgstr "సతà±à°¯à°®à±ˆà°¨ à°¡à±à°°à°¾ à°¬à±à°²à°¿à°‚à°•à°¿à°‚à°—à± à°•à°°à±à°¸à°°à±." #: ../utils/scimstringview.c:242 msgid "Auto move cursor" msgstr "à°¸à±à°µà°¯à°‚చాలకంగా à°•à°¦à±à°²à± à°•à°°à±à°¸à°°à±" #: ../utils/scimstringview.c:243 msgid "TRUE auto move cursor position when mouse clicking." msgstr "సతà±à°¯à°‚ మౌసౠనొకà±à°•à±à°¤à±à°¨à±à°¨à°ªà±à°ªà±à°¡à± à°¸à±à°µà°¯à°‚చాలకంగా à°•à°°à±à°¸à°°à± à°¸à±à°¥à°¾à°¨à°®à± à°•à°¦à±à°²à±à°šà±à°¤à±à°‚ది." #: ../utils/scimstringview.c:250 msgid "Forward button press event" msgstr "à°®à±à°‚à°¦à±à°•ౠబటనౠవతà±à°¤à± ఘటన" #: ../utils/scimstringview.c:251 msgid "TRUE forward button press event to user program." msgstr "వినియోగదారి à°ªà±à°°à±‹à°—à±à°°à°¾à°®à±â€Œà°•ౠసతà±à°¯à°®à±ˆà°¨ ఫారà±à°¯à°¾à°°à±à°¡à±â€ బటనౠవతà±à°¤à± ఘటన." #: ../utils/scimstringview.c:258 msgid "Auto resize the widget to fit the string" msgstr "à°¸à±à°Ÿà±à°°à°¿à°‚à°—à±â€Œà°•ౠసరిపోవà±à°Ÿà°•ౠవిడà±à°œà°Ÿà±â€Œà°¨à± à°¸à±à°µà°¯à°‚చాలకంగా à°ªà±à°¨à°ƒà°ªà°°à°¿à°®à°¾à°£à°‚ చేయà±à°®à±" #: ../utils/scimstringview.c:259 msgid "TRUE Auto resize on." msgstr "సతà±à°¯à°®à±ˆà°¨ à°¸à±à°µà°¯à°‚చాలక à°ªà±à°¨à°ƒà°ªà°°à°¿à°®à°¾à°£à°‚ ఆనà±â€Œà°…యినది." #: ../utils/scimstringview.c:266 msgid "Width in chars" msgstr "వెడలà±à°ªà± à°…à°•à±à°·à°°à°¾à°²à°²à±‹" #: ../utils/scimstringview.c:267 msgid "Number of characters to leave space for in the string view." msgstr "à°¸à±à°Ÿà±à°°à°¿à°‚గౠదరà±à°¶à°¨à°‚లో ఖాళీవదà±à°²à±à°Ÿà°•à± à°…à°•à±à°·à°°à°®à±à°² సంఖà±à°¯." #: ../utils/scimstringview.c:276 msgid "Scroll offset" msgstr "à°¸à±à°•à±à°°à°¾à°²à± ఆఫà±â€Œà°¸à±†à°Ÿà±" #: ../utils/scimstringview.c:277 msgid "Number of pixels of the string view scrolled off the screen to the left" msgstr "తెరనౠఎడమవైపà±à°•ౠజరà±à°ªà±à°Ÿà°•à± à°¸à±à°Ÿà±à°°à°¿à°‚గౠదరà±à°¶à°¨à°‚ యొకà±à°• పగà±à°œà±†à°²à±à°¸à±â€ యొకà±à°• సంఖà±à°¯" #: ../utils/scimstringview.c:286 msgid "Text" msgstr "పాఠà±à°¯à°®à±" #: ../utils/scimstringview.c:287 msgid "The contents of the string view" msgstr "à°¸à±à°Ÿà±à°°à°¿à°‚గౠదరà±à°¶à°¨à°‚ యొకà±à°• సారమà±à°²à±" #: ../utils/scimkeyselection.cpp:155 msgid "Selected _Keys:" msgstr "ఎంపికచేసిన కీలà±(_K):" #: ../utils/scimkeyselection.cpp:200 msgid "Key Code:" msgstr "à°•à±€ కోడà±:" #: ../utils/scimkeyselection.cpp:218 msgid "..." msgstr "..." #: ../utils/scimkeyselection.cpp:223 msgid "Modifiers:" msgstr "సవరణిలà±:" #: ../utils/scimkeyselection.cpp:236 msgid "_Ctrl" msgstr "_Ctrl" #: ../utils/scimkeyselection.cpp:240 msgid "A_lt" msgstr "A_lt" #: ../utils/scimkeyselection.cpp:244 msgid "_Shift" msgstr "_Shift" #: ../utils/scimkeyselection.cpp:248 msgid "_Release" msgstr "_Release" #: ../utils/scimkeyselection.cpp:258 msgid "_Meta" msgstr "_Meta" #: ../utils/scimkeyselection.cpp:262 msgid "S_uper" msgstr "S_uper" #: ../utils/scimkeyselection.cpp:266 msgid "_Hyper" msgstr "_Hyper" #: ../utils/scimkeyselection.cpp:331 msgid "Please enter a Key Code first." msgstr "దయచేసి కీకోడౠనౠమొదట à°ªà±à°°à°µà±‡à°¶à°ªà±†à°Ÿà±à°Ÿà°‚à°¡à°¿." #: ../utils/scimkeyselection.cpp:385 msgid "" "Press a key (or a key combination).\n" "This dialog will be closed when the key is released." msgstr "" "కీని వతà±à°¤à°‚à°¡à°¿ (లేదా à°•à±€ మిశà±à°°à°®à°¾à°¨à±à°¨à°¿).\n" "à°ˆ డైలాగౠకీ విడà±à°¦à°² అయినపà±à°ªà±à°¡à± మూయబడà±à°¤à±à°‚ది." #: ../utils/scimkeyselection.cpp:388 msgid "Grabbing a key." msgstr "à°’à°• కీనౠలాగà±à°šà±à°¨à±à°¨à°¦à°¿." #: ../utils/scimkeyselection.cpp:678 msgid "Key Selection" msgstr "à°•à±€ ఎంపిక" #: ../utils/scimtrayicon.c:108 msgid "Orientation" msgstr "సరà±à°§à±à°¬à°¾à°Ÿà±" #: ../utils/scimtrayicon.c:109 msgid "The orientation of the tray." msgstr "à°Ÿà±à°°à±‡ యొకà±à°• సరà±à°¦à±à°¬à°¾à°Ÿà±." scim-1.4.14/po/vi.po000066400000000000000000001110061177210725600141370ustar00rootroot00000000000000# Vietnamese translation of SCIM. # Copyright © 2008 GNU/GPL. # This file is distributed under the same license as the SCIM package. # Nguyá»…n Äình Trung , 2007-2008. # msgid "" msgstr "" "Project-Id-Version: SCIM 1.4.7\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2008-03-26 15:59+1000\n" "PO-Revision-Date: 2008-06-20 17:09+0700\n" "Last-Translator: Nguyen Dinh Trung \n" "Language-Team: Vietnamese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" #: ../src/scim_compose_key.cpp:126 msgid "English/European" msgstr "Anh/Âu" #. Append an entry for forward mode. #: ../src/scim_imengine.cpp:638 ../src/scim_utility.cpp:693 #: ../modules/FrontEnd/scim_x11_frontend.cpp:1897 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1281 #: ../extras/panel/scim_panel_gtk.cpp:2814 msgid "English/Keyboard" msgstr "Anh/Bàn phím" #: ../src/scim_utility.cpp:694 msgid "Amharic" msgstr "Amharic" #: ../src/scim_utility.cpp:695 msgid "Arabic" msgstr "A Rập" #: ../src/scim_utility.cpp:696 msgid "Arabic (Egypt)" msgstr "A Rập (Ai Cập)" #: ../src/scim_utility.cpp:697 msgid "Arabic (Lebanon)" msgstr "A Rập (Libăng)" #: ../src/scim_utility.cpp:698 msgid "Assamese" msgstr "Assamese" #: ../src/scim_utility.cpp:699 msgid "Azerbaijani" msgstr "A-déc-bai-dan" #: ../src/scim_utility.cpp:700 msgid "Belarusian" msgstr "Bê-la-rút" #: ../src/scim_utility.cpp:701 msgid "Bulgarian" msgstr "Bun-ga-ri" #: ../src/scim_utility.cpp:702 ../src/scim_utility.cpp:703 msgid "Bengali" msgstr "Ben-ga-li" #: ../src/scim_utility.cpp:704 msgid "Bengali (India)" msgstr "Ben-ga-li (Ấn Äá»™)" #: ../src/scim_utility.cpp:705 msgid "Tibetan" msgstr "Tây Tạng" #: ../src/scim_utility.cpp:706 msgid "Bosnian" msgstr "Bôtxnia" #: ../src/scim_utility.cpp:707 msgid "Catalan" msgstr "Catalăng" #: ../src/scim_utility.cpp:708 ../src/scim_keyboard_layout_data.h:4595 msgid "Czech" msgstr "Séc" #: ../src/scim_utility.cpp:709 msgid "Welsh" msgstr "Xứ Wales" #: ../src/scim_utility.cpp:710 ../src/scim_keyboard_layout_data.h:4597 msgid "Danish" msgstr "Äan Mạch" #: ../src/scim_utility.cpp:711 ../src/scim_keyboard_layout_data.h:4605 msgid "German" msgstr "Äức" #: ../src/scim_utility.cpp:712 msgid "Divehi" msgstr "Divehi" #: ../src/scim_utility.cpp:713 ../src/scim_keyboard_layout_data.h:4608 msgid "Greek" msgstr "Hi Lạp" #: ../src/scim_utility.cpp:714 msgid "English" msgstr "Anh" #: ../src/scim_utility.cpp:715 msgid "English (Australian)" msgstr "Anh (Úc)" #: ../src/scim_utility.cpp:716 msgid "English (Canadian)" msgstr "Anh (Ca-na-da)" #: ../src/scim_utility.cpp:717 msgid "English (British)" msgstr "Anh (Anh)" #: ../src/scim_utility.cpp:718 msgid "English (Ireland)" msgstr "Anh (Ai len)" #: ../src/scim_utility.cpp:719 msgid "English (American)" msgstr "Anh (Mỹ)" #: ../src/scim_utility.cpp:720 msgid "Esperanto" msgstr "Quốc tế ngữ" #: ../src/scim_utility.cpp:721 ../src/scim_utility.cpp:722 #: ../src/scim_keyboard_layout_data.h:4621 msgid "Spanish" msgstr "Tây Ban Nha" #: ../src/scim_utility.cpp:723 msgid "Spanish (Mexico)" msgstr "Tây Ban Nha (Mê-hi-cô)" #: ../src/scim_utility.cpp:724 ../src/scim_keyboard_layout_data.h:4600 msgid "Estonian" msgstr "Estonia" #: ../src/scim_utility.cpp:725 msgid "Basque" msgstr "Basque" #: ../src/scim_utility.cpp:726 msgid "Persian" msgstr "Ba Tư" #: ../src/scim_utility.cpp:727 ../src/scim_keyboard_layout_data.h:4601 msgid "Finnish" msgstr "Phần Lan" #: ../src/scim_utility.cpp:728 ../src/scim_keyboard_layout_data.h:4602 msgid "French" msgstr "Pháp" #: ../src/scim_utility.cpp:729 msgid "Irish" msgstr "Ai-xÆ¡-len" #: ../src/scim_utility.cpp:730 msgid "Galician" msgstr "Galician" #: ../src/scim_utility.cpp:731 msgid "Gujarati" msgstr "Gujarati" #: ../src/scim_utility.cpp:732 ../src/scim_utility.cpp:741 msgid "Hebrew" msgstr "Hebrew" #: ../src/scim_utility.cpp:733 msgid "Hindi" msgstr "Hin-Ä‘u" #: ../src/scim_utility.cpp:734 ../src/scim_keyboard_layout_data.h:4594 msgid "Croatian" msgstr "CÆ¡-roát-chi-a" #: ../src/scim_utility.cpp:735 ../src/scim_keyboard_layout_data.h:4609 msgid "Hungarian" msgstr "Hung-ga-ri" #: ../src/scim_utility.cpp:736 msgid "Armenian" msgstr "Ãc-mê-ni-a" #: ../src/scim_utility.cpp:737 msgid "Interlingua" msgstr "Quốc tế ngữ" #: ../src/scim_utility.cpp:738 msgid "Indonesian" msgstr "In-đô-nê-xi-a" #: ../src/scim_utility.cpp:739 ../src/scim_keyboard_layout_data.h:4627 msgid "Icelandic" msgstr "Icelandic" #: ../src/scim_utility.cpp:740 ../src/scim_keyboard_layout_data.h:4610 msgid "Italian" msgstr "I-ta-li" #: ../src/scim_utility.cpp:742 ../src/scim_keyboard_layout_data.h:4611 msgid "Japanese" msgstr "Nhật Bản" #: ../src/scim_utility.cpp:743 msgid "Georgian" msgstr "Georgian" #: ../src/scim_utility.cpp:744 msgid "Kazakh" msgstr "Kazakh" #: ../src/scim_utility.cpp:745 msgid "Cambodian" msgstr "Campuchia" #: ../src/scim_utility.cpp:746 msgid "Kannada" msgstr "Kannada" #: ../src/scim_utility.cpp:747 msgid "Korean" msgstr "Hàn Quốc" #: ../src/scim_utility.cpp:748 msgid "Laothian" msgstr "Lào" #: ../src/scim_utility.cpp:749 ../src/scim_keyboard_layout_data.h:4628 msgid "Lithuanian" msgstr "Lithuanian" #: ../src/scim_utility.cpp:750 msgid "Latvian" msgstr "Lát-via" #: ../src/scim_utility.cpp:751 msgid "Macedonian" msgstr "Mác-xê-đô-ni" #: ../src/scim_utility.cpp:752 msgid "Malayalam" msgstr "Malayalam" #: ../src/scim_utility.cpp:753 msgid "Mongolian" msgstr "Mông Cổ" #: ../src/scim_utility.cpp:754 msgid "Marathi" msgstr "Marathi" #: ../src/scim_utility.cpp:755 msgid "Malay" msgstr "Malay" #: ../src/scim_utility.cpp:756 msgid "Burmese" msgstr "Burmese" #: ../src/scim_utility.cpp:757 msgid "Nepali" msgstr "Nê pan" #: ../src/scim_utility.cpp:758 ../src/scim_keyboard_layout_data.h:4598 msgid "Dutch" msgstr "Hà Lan" #: ../src/scim_utility.cpp:759 msgid "Norwegian (nynorsk)" msgstr "Na Uy (nynorsk)" #: ../src/scim_utility.cpp:760 msgid "Norwegian (bokmal)" msgstr "Na Uy (bokmal)" #: ../src/scim_utility.cpp:761 msgid "Oriya" msgstr "Oriya" #: ../src/scim_utility.cpp:762 msgid "Punjabi" msgstr "Punjabi" #: ../src/scim_utility.cpp:763 ../src/scim_keyboard_layout_data.h:4613 msgid "Polish" msgstr "Phần Lan" #: ../src/scim_utility.cpp:764 ../src/scim_utility.cpp:766 #: ../src/scim_keyboard_layout_data.h:4614 msgid "Portuguese" msgstr "Bồ Äào Nha" #: ../src/scim_utility.cpp:765 ../src/scim_keyboard_layout_data.h:4615 msgid "Portuguese (Brazil)" msgstr "Bồ Äào Nha (Bra-xin)" #: ../src/scim_utility.cpp:767 msgid "Romanian" msgstr "Ru-ma-ni" #: ../src/scim_utility.cpp:768 ../src/scim_keyboard_layout_data.h:4617 msgid "Russian" msgstr "Nga" #: ../src/scim_utility.cpp:769 msgid "Sinhala" msgstr "Sinhala" #: ../src/scim_utility.cpp:770 ../src/scim_keyboard_layout_data.h:4618 msgid "Slovak" msgstr "Slô-va-ki-a" #: ../src/scim_utility.cpp:771 ../src/scim_keyboard_layout_data.h:4620 msgid "Slovenian" msgstr "Slô-vê-ni-a" #: ../src/scim_utility.cpp:772 msgid "Albanian" msgstr "An-ba-ni" #: ../src/scim_utility.cpp:773 ../src/scim_utility.cpp:774 #: ../src/scim_utility.cpp:775 msgid "Serbian" msgstr "Séc-bi" #: ../src/scim_utility.cpp:776 ../src/scim_utility.cpp:778 #: ../src/scim_keyboard_layout_data.h:4624 msgid "Swedish" msgstr "Thụy Äiển" #: ../src/scim_utility.cpp:777 msgid "Swedish (Finland)" msgstr "Thụy Äiển (Phần Lan)" #: ../src/scim_utility.cpp:779 msgid "Tamil" msgstr "Tamil" #: ../src/scim_utility.cpp:780 msgid "Telugu" msgstr "Telugu" #: ../src/scim_utility.cpp:781 msgid "Thai" msgstr "Thái Lan" #: ../src/scim_utility.cpp:782 ../src/scim_keyboard_layout_data.h:4625 msgid "Turkish" msgstr "Thổ NhÄ© Kỳ" #: ../src/scim_utility.cpp:783 msgid "Uighur" msgstr "Uighur" #: ../src/scim_utility.cpp:784 ../src/scim_keyboard_layout_data.h:4629 msgid "Ukrainian" msgstr "Úc-rai-na" #: ../src/scim_utility.cpp:785 msgid "Urdu" msgstr "Urdu" #: ../src/scim_utility.cpp:786 msgid "Uzbek" msgstr "U-dÆ¡-be-kix-tan" #: ../src/scim_utility.cpp:787 msgid "Vietnamese" msgstr "Việt Nam" #: ../src/scim_utility.cpp:788 msgid "Walloon" msgstr "Walloon" #: ../src/scim_utility.cpp:789 ../src/scim_utility.cpp:790 msgid "Yiddish" msgstr "Yiddish" #: ../src/scim_utility.cpp:791 msgid "Chinese" msgstr "Trung Quốc" #: ../src/scim_utility.cpp:792 ../src/scim_utility.cpp:794 msgid "Chinese (simplified)" msgstr "Trung Quốc (giản thể)" #: ../src/scim_utility.cpp:793 ../src/scim_utility.cpp:795 msgid "Chinese (traditional)" msgstr "Trung Quốc (phồn thể)" #: ../src/scim_utility.cpp:877 msgid "Other" msgstr "Khác" #: ../src/scim_keyboard_layout_data.h:4591 #: ../modules/IMEngine/scim_socket_imengine.cpp:386 #: ../modules/IMEngine/scim_socket_imengine.cpp:416 #: ../modules/IMEngine/scim_socket_imengine.cpp:501 #: ../modules/IMEngine/scim_socket_imengine.cpp:531 #: ../modules/IMEngine/scim_socket_imengine.cpp:561 msgid "Unknown" msgstr "Không biết" #: ../src/scim_keyboard_layout_data.h:4592 msgid "English (US)" msgstr "Anh (Mỹ)" #: ../src/scim_keyboard_layout_data.h:4593 msgid "Belgian" msgstr "Belgian" #: ../src/scim_keyboard_layout_data.h:4596 msgid "Czech (qwerty)" msgstr "Séc (qwerty)" #: ../src/scim_keyboard_layout_data.h:4599 msgid "Dvorak" msgstr "Dvorak" #: ../src/scim_keyboard_layout_data.h:4603 msgid "French (Canadian)" msgstr "Pháp (Canada)" #: ../src/scim_keyboard_layout_data.h:4604 msgid "French (Switzerland)" msgstr "Pháp (Thuỵ SÄ©)" #: ../src/scim_keyboard_layout_data.h:4606 msgid "German (with deadkeys)" msgstr "Äức (vá»›i phím chết)" #: ../src/scim_keyboard_layout_data.h:4607 msgid "German (Swiss)" msgstr "Äức (Thuỵ SÄ©)" #: ../src/scim_keyboard_layout_data.h:4612 msgid "Norwegian" msgstr "Na Uy" #: ../src/scim_keyboard_layout_data.h:4616 msgid "Portuguese (Brazil US accents)" msgstr "Bồ Äào Nha (Braxin-Mỹ)" #: ../src/scim_keyboard_layout_data.h:4619 msgid "Slovak (qwerty)" msgstr "Slô-va-ki-a (qwerty)" #: ../src/scim_keyboard_layout_data.h:4622 msgid "Spanish (CP 850)" msgstr "Tây Ban Nha (CP-850)" #: ../src/scim_keyboard_layout_data.h:4623 msgid "Spanish (Latin America)" msgstr "Tây Ban Nha (Latinh-Mỹ)" #: ../src/scim_keyboard_layout_data.h:4626 msgid "English (UK)" msgstr "Anh (Anh)" #: ../modules/Filter/scim_sctc_filter.cpp:57 msgid "Simplified-Traditional Chinese Conversion" msgstr "Chuyển đổi tiếng Trung giản thể - phồn thể" #: ../modules/Filter/scim_sctc_filter.cpp:60 msgid "Convert between Simplified Chinese and Traditional Chinese" msgstr "Chuyển giữa tiếng Trung giản thể và phồn thể" #: ../modules/Filter/scim_sctc_filter.cpp:71 msgid "SC-TC" msgstr "SC-TC" #: ../modules/Filter/scim_sctc_filter.cpp:73 #: ../modules/Filter/scim_sctc_filter.cpp:78 msgid "Simplified-Traditional Chinese conversion" msgstr "Chuyển đổi tiếng Trung giản thể" #: ../modules/Filter/scim_sctc_filter.cpp:76 msgid "No Conversion" msgstr "Không chuyển đổi" #: ../modules/Filter/scim_sctc_filter.cpp:81 msgid "Simplified to Traditional" msgstr "Giản thể sang Phồn thể" #: ../modules/Filter/scim_sctc_filter.cpp:83 msgid "Convert Simplified Chinese to Traditional Chinese" msgstr "Chuyển tiếng Trung giản thể sang phồn thể" #: ../modules/Filter/scim_sctc_filter.cpp:86 msgid "Traditional to Simplified" msgstr "Phồn thể sang Giản thể" #: ../modules/Filter/scim_sctc_filter.cpp:88 msgid "Convert Traditional Chinese to Simplified Chinese" msgstr "Chuyển tiếng Trung phồn thể sang giản thể" #: ../modules/Filter/scim_sctc_filter.cpp:300 msgid "James Su " msgstr "James Su " #: ../modules/Filter/scim_sctc_filter.cpp:425 #: ../modules/Filter/scim_sctc_filter.cpp:555 #: ../modules/Filter/scim_sctc_filter.cpp:571 msgid "SC->TC" msgstr "SC->TC" #: ../modules/Filter/scim_sctc_filter.cpp:431 #: ../modules/Filter/scim_sctc_filter.cpp:559 #: ../modules/Filter/scim_sctc_filter.cpp:575 msgid "TC->SC" msgstr "TC->SC" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1845 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1231 #: ../extras/panel/scim_panel_gtk.cpp:2304 msgid "Smart Common Input Method platform " msgstr "ná»n Bá»™ gõ dùng chung thông minh" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1847 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1233 msgid "" "\n" "(C) 2002-2005 James Su \n" "\n" msgstr "" "\n" "(C) 2002-2005 James Su \n" "\n" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1851 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1238 msgid "" ":\n" "\n" msgstr "" ":\n" "\n" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1854 #: ../modules/FrontEnd/scim_x11_frontend.cpp:1857 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1241 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1244 msgid "" "\n" "\n" msgstr "" "\n" "\n" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:120 msgid "RAW CODE" msgstr "RAW CODE" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:127 msgid "(C) 2002-2006 James Su " msgstr "(C) 2002-2006 James Su " #: ../modules/IMEngine/scim_rawcode_imengine.cpp:140 msgid "" "Hot Keys:\n" "\n" " Control+u:\n" " switch between Multibyte encoding and Unicode.\n" "\n" " Esc:\n" " reset the input method.\n" msgstr "" "Phím tắt:\n" "\n" " Control+u:\n" " chuyển giữa mã Multibyte và Unicode.\n" "\n" " Esc:\n" " thiết lập lại bá»™ gõ.\n" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:407 #: ../modules/IMEngine/scim_rawcode_imengine.cpp:423 msgid "The status of the current input method. Click to change it." msgstr "Trạng thái cá»§a bá»™ gõ hiện thá»i. Nhấn chuá»™t để thay đổi." #: ../modules/IMEngine/scim_rawcode_imengine.cpp:409 msgid "Unicode" msgstr "Unicode" #: ../modules/SetupUI/scim_frontend_setup.cpp:82 #: ../modules/SetupUI/scim_imengine_setup.cpp:88 msgid "Global Setup" msgstr "Thiết lập toàn cục" #: ../modules/SetupUI/scim_frontend_setup.cpp:87 msgid "" "Setup the global options used by All FrontEnd modules, including X11 " "FrontEnd, GTK IMModule, QT IMModule etc." msgstr "" "Thiết lập toàn cục cho tất cả các mô-Ä‘un Äầu Trước (FrontEnd), bao gồm Äầu " "Trước X11, GTK IMModule, QT IMModule.v.v.." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:143 msgid "_Trigger:" msgstr "_Bật Tắt:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:145 msgid "Select the trigger keys" msgstr "Chá»n phím bật/tắt" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:147 msgid "" "The key events to turn on/off SCIM input method. Click on the button on the " "right to edit it." msgstr "" "Tổ hợp phím để bật/tắt bá»™ gõ SCIM. Bấm vào nút nằm bên phải để hiệu chỉnh." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:160 msgid "Turn _On:" msgstr "Bật:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:162 msgid "Select the Turn On keys" msgstr "Chá»n tổ hợp phím để bật SCIM:" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:164 msgid "" "The key events to turn on SCIM input method. Click on the button on the " "right to edit it." msgstr "Tổ hợp phím để bật bá»™ gõ SCIM. Bấm vào nút bên phải để hiệu chỉnh" #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:177 msgid "Turn O_ff:" msgstr "Tắt:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:179 msgid "Select the Turn Off keys" msgstr "Chá»n phím để tắt SCIM" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:181 msgid "" "The key events to turn off SCIM input method. Click on the button on the " "right to edit it." msgstr "Tổ hợp phím để tắt bá»™ gõ SCIM. Bấm vào nút bên phải để hiệu chỉnh." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:194 msgid "_Next input method:" msgstr "_Bá»™ gõ kế:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:196 msgid "Select the next input method keys" msgstr "Chá»n tổ hợp phím chuyển bá»™ gõ kế:" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:198 msgid "" "The key events to switch to the next input method. Click on the button on " "the right to edit it." msgstr "" "Tổ hợp phím để chuyển tá»›i bá»™ gõ kế tiếp. Bấm vào nút bên phải để hiệu chỉnh." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:213 msgid "_Previous input method:" msgstr "_Bá»™ gõ trước:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:215 msgid "Select the previous input method keys" msgstr "Chá»n phím chuyển bá»™ gõ trước:" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:217 msgid "" "The key events to switch to the previous input method. Click on the button " "on the right to edit it." msgstr "" "Tổ hợp phím để chuyển tá»›i bá»™ gõ trước. Bấm vào nút bên phải để hiệu chỉnh." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:232 msgid "Show input method _menu:" msgstr "Hiện _trình đơn cá»§a bá»™ gõ:" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:234 msgid "Select the show input method menu keys" msgstr "Chá»n phím hiện trình đơn bá»™ gõ:" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:236 msgid "" "The key events to show the input method menu. Click on the button on the " "right to edit it." msgstr "" "Tổ hợp phím để hiển thị trình đơn cá»§a bá»™ gõ. Bấm vào nút bên phải để hiệu " "chỉnh." #: ../modules/SetupUI/scim_frontend_setup.cpp:306 msgid "Options" msgstr "Tuỳ chá»n" #: ../modules/SetupUI/scim_frontend_setup.cpp:321 msgid "_Keyboard Layout:" msgstr "_Bố trí bàn phím:" #: ../modules/SetupUI/scim_frontend_setup.cpp:342 msgid "" "You should choose your currently used keyboard layout here so that input " "methods, who care about keyboard layout, could work correctly." msgstr "" "Bạn phải chá»n đúng kiểu bố trí bàn phím để các bá»™ gõ làm việc đúng cách." #. On The Spot. #: ../modules/SetupUI/scim_frontend_setup.cpp:346 msgid "_Embed Preedit String into client window" msgstr "_Nhúng chuá»—i Ä‘ang gõ dở vào cá»­a sổ ứng dụng khách" #: ../modules/SetupUI/scim_frontend_setup.cpp:351 msgid "" "If this option is checked, the preedit string will be displayed directly in " "the client input window, rather than in a independent float window." msgstr "" "Nếu được chá»n, các chuá»—i mà bạn Ä‘ang gõ dở sẽ hiện trá»±c tiếp trên cá»­a sổ ứng " "dụng mà bạn Ä‘ang gõ. Ngược lại, chuá»—i Ä‘ang gõ dở sẽ hiện lên trong má»™t cá»­a " "sổ nổi." #. Shared input method. #: ../modules/SetupUI/scim_frontend_setup.cpp:360 msgid "_Share the same input method among all applications" msgstr "_Chỉ dùng má»™t bá»™ gõ cho tất cả các ứng dụng" #: ../modules/SetupUI/scim_frontend_setup.cpp:365 msgid "" "If this option is checked, then only one input method could be used by all " "applications at the same time.Otherwise different input method could be used " "by each application." msgstr "" "Nếu được chá»n, má»i ứng dụng sẽ dùng chung má»™t bá»™ gõ. Nếu bá» chá»n, má»—i ứng " "dụng sẽ dùng 1 bá»™ gõ riêng." #: ../modules/SetupUI/scim_frontend_setup.cpp:373 #: ../modules/SetupUI/scim_imengine_setup.cpp:453 msgid "Hotkeys" msgstr "Phím tắt" #: ../modules/SetupUI/scim_imengine_setup.cpp:93 msgid "" "You can enable/disable input methods and set hotkeys for input methods here." msgstr "Bạn có thể bật/tắt và đặt phím tắt cho các bá»™ gõ tại đây." #: ../modules/SetupUI/scim_imengine_setup.cpp:296 msgid "The installed input method services:" msgstr "Các bá»™ gõ đã cài đặt:" #. Create hotkey and filter button before factory list view, because #. factory_list_selection_changed_callback may access these two buttons. #: ../modules/SetupUI/scim_imengine_setup.cpp:311 msgid "Edit _Hotkeys" msgstr "Hiệu chỉnh _Phím tắt" #: ../modules/SetupUI/scim_imengine_setup.cpp:320 msgid "Edit Hotkeys associated with the selected input method." msgstr "Hiệu chỉnh phím tắt dùng cho bá»™ gõ được chá»n" #: ../modules/SetupUI/scim_imengine_setup.cpp:322 msgid "Select _Filters" msgstr "Chá»n _Bá»™ lá»c" #: ../modules/SetupUI/scim_imengine_setup.cpp:331 msgid "Select the Filters which will be attached to this input method." msgstr "Chá»n các bá»™ lá»c được dùng cho bá»™ gõ này." #: ../modules/SetupUI/scim_imengine_setup.cpp:348 msgid "_Expand" msgstr "_Mở rá»™ng" #: ../modules/SetupUI/scim_imengine_setup.cpp:357 msgid "Expand all language categories." msgstr "Mở rá»™ng má»i lá»›p ngôn ngữ" #: ../modules/SetupUI/scim_imengine_setup.cpp:359 msgid "_Collapse" msgstr "_Thu gá»n" #: ../modules/SetupUI/scim_imengine_setup.cpp:368 msgid "Collapse all language categories." msgstr "Thu gá»n má»i lá»›p ngôn ngữ" #: ../modules/SetupUI/scim_imengine_setup.cpp:370 msgid "E_nable All" msgstr "Bật _Tất" #: ../modules/SetupUI/scim_imengine_setup.cpp:379 msgid "Enable all input methods." msgstr "Bật má»i bá»™ gõ." #: ../modules/SetupUI/scim_imengine_setup.cpp:381 msgid "_Disable All" msgstr "_Bá» Tất" #: ../modules/SetupUI/scim_imengine_setup.cpp:390 msgid "Disable all input methods." msgstr "Bá» tất cả các bá»™ gõ" #: ../modules/SetupUI/scim_imengine_setup.cpp:414 #: ../modules/SetupUI/scim_imengine_setup.cpp:541 msgid "Name" msgstr "Tên" #: ../modules/SetupUI/scim_imengine_setup.cpp:432 #: ../modules/SetupUI/scim_imengine_setup.cpp:522 msgid "Enable" msgstr "Bật" #: ../modules/SetupUI/scim_imengine_setup.cpp:467 msgid "Filters" msgstr "Bá»™ lá»c" #: ../modules/SetupUI/scim_imengine_setup.cpp:560 msgid "Languages" msgstr "Ngôn ngữ" #: ../modules/SetupUI/scim_imengine_setup.cpp:574 msgid "Description" msgstr "Mô tả" #: ../modules/SetupUI/scim_imengine_setup.cpp:1190 #, c-format msgid "Edit Hotkeys for %s" msgstr "Hiệu chỉnh phím tắt cho %s" #: ../modules/SetupUI/scim_imengine_setup.cpp:1417 #, c-format msgid "Select Filters for %s" msgstr "Chá»n bá»™ lá»c cho %s" #: ../modules/SetupUI/scim_imengine_setup.cpp:1450 msgid "Move _Up" msgstr "ÄÆ°a _Lên trên" #: ../modules/SetupUI/scim_imengine_setup.cpp:1457 msgid "Move _Down" msgstr "ÄÆ°a _Xuống" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:95 msgid "GTK" msgstr "GTK" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:100 msgid "A panel daemon based on GTK+-2.x library." msgstr "Má»™t trình ná»n cá»­a sổ dá»±a trên thư viện GTK+ 2.x" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:163 msgid "Always" msgstr "Luôn luôn" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:164 msgid "On demand" msgstr "Chỉ khi bật" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:165 msgid "Never" msgstr "Luôn tắt" #. Create the ToolBar setup block. #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:211 msgid "ToolBar" msgstr "Thanh công cụ" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:229 msgid "_Show:" msgstr "_Hiển thị" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:245 msgid "Auto s_nap" msgstr "Tá»± động nằ_m bên rìa" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:251 msgid "Show _input method icon" msgstr "Hiện biể_u tượng bá»™ gõ" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:257 msgid "Show inp_ut method name" msgstr "Hiện _tên bá»™ gõ" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:269 msgid "Hide time_out:" msgstr "Thá»i gi_an ẩn:" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:282 msgid "Show s_tick icon" msgstr "Hiện biểu tượng _ghim" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:288 msgid "Show m_enu icon" msgstr "Hiện biểu tượng t_rình đơn" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:294 msgid "Show _help icon" msgstr "Hiện biểu tượng trợ giú_p" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:300 msgid "Show _property label" msgstr "Hiện nhãn thuá»™_c tính" #. Create the Input Window setup block #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:311 msgid "Input window" msgstr "Cá»­a sổ nhập" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:320 msgid "E_mbedded lookup table" msgstr "N_húng bảng tra cứu" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:324 msgid "_Vertical lookup table" msgstr "Bảng tra cứu nằ_m dá»c" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:328 msgid "Misc" msgstr "Linh tinh" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:337 msgid "Show tra_y icon" msgstr "Hiện biểu tượng trên kha_y hệ thống" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:341 msgid "Stick _windows" msgstr "Ghim cá»­a _sổ" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:349 msgid "_Font:" msgstr "_Phông chữ:" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:419 msgid "" "If option \"Always\" is selected, the toolbar will always be shown on the " "screen. If option \"On demand\" is selected, it will only be shown when SCIM " "is activated. If option \"Never\" is selected, it will never be shown." msgstr "" "Nếu chá»n \"Luôn luôn\", thanh công cụ SCIM luôn được hiển thị trên màn hình. " "Nếu chá»n \"Chỉ khi bật\", thanh công cụ sẽ chỉ hiện lên khi SCIM hoạt động. " "Nếu chá»n \"Luôn tắt\", thanh công cụ sẽ không được hiển thị." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:426 msgid "" "If this option is checked, the toolbar will be snapped to the screen border." msgstr "Nếu đánh dấu chá»n, thanh công cụ sẽ nằm ở rìa màn hình." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:431 msgid "" "The toolbar will be hidden out after this timeout is elapsed. This option is " "only valid when \"Always show\" is selected. Set to zero to disable this " "behavior." msgstr "" "Thá»i gian sau khi bật thanh công cụ được ẩn Ä‘i. Tuỳ chá»n này chỉ hợp lệ khi " "\"Luôn luôn\" được chá»n. Äặt giá trị này bằng 0 để thanh công cụ luôn nổi." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:438 msgid "" "If this option is checked, the input method icon will be showed on the " "toolbar." msgstr "" "Nếu được chá»n, biểu tượng cá»§a bá»™ gõ sẽ được hiển thị trên thanh công cụ." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:442 msgid "" "If this option is checked, the input method name will be showed on the " "toolbar." msgstr "Nếu được chá»n, tên bá»™ gõ sẽ được hiển thị trên thanh công cụ." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:446 msgid "" "If this option is checked, the stick icon will be showed on the toolbar." msgstr "Nếu được chá»n, biểu tượng ghim sẽ được hiển thị trên thanh công cụ." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:450 msgid "If this option is checked, the menu icon will be showed on the toolbar." msgstr "" "Nếu được chá»n, biểu tượng trình đơn sẽ được hiển thị trên thanh công cụ." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:454 msgid "If this option is checked, the help icon will be showed on the toolbar." msgstr "" "Nếu được chá»n, biểu tượng trợ giúp sẽ được hiển thị trên thanh công cụ." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:458 msgid "" "If this option is checked, the text label of input method properties will be " "showed on the toolbar." msgstr "" "Nếu được chá»n, nhãn văn bản cá»§a bá»™ gõ sẽ được hiển thị trên thanh công cụ." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:462 msgid "" "If this option is checked, the lookup table will be embedded into the input " "window." msgstr "Nếu được chá»n, bảng tra cứu sẽ được nhúng vào cá»­a sổ Ä‘ang gõ." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:467 msgid "" "If this option is checked, the lookup table will be displayed vertically." msgstr "Nếu được chá»n, bảng tra cứu được hiển thị theo chiá»u dá»c." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:472 msgid "" "If this option is checked, the tray icon will be showed on the desktop's " "taskbar." msgstr "" "Nếu được chá»n, biểu tượng SCIM được đặt trên thanh tác vụ cá»§a màn hình ná»n." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:476 msgid "" "If this option is checked, the toolbar, input and lookup table windows will " "be sticked to its original position." msgstr "" "Nếu được chá»n, cá»­a sổ nhập và bảng tra cứu sẽ được ghim vào vị trí mặc định." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:482 msgid "The font setting will be used in the input and lookup table windows." msgstr "Thiết lập phông chữ được dùng trong cá»­a sổ nhập và bảng tra cứu" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:801 msgid "Select Interface Font" msgstr "Chá»n phông chữ giao diện" #: ../extras/setup/scim_setup_ui.cpp:47 msgid "SCIM" msgstr "SCIM" #: ../extras/setup/scim_setup_ui.cpp:48 msgid "FrontEnd" msgstr "Äầu trước" #: ../extras/setup/scim_setup_ui.cpp:49 msgid "IMEngine" msgstr "CÆ¡ cấu bá»™ gõ" #: ../extras/setup/scim_setup_ui.cpp:50 msgid "Panel" msgstr "Bảng" #: ../extras/setup/scim_setup_ui.cpp:51 msgid "Extra" msgstr "Thêm" #. #. vi:ts=4:nowrap:ai:expandtab #. #: ../extras/setup/scim_setup_ui.cpp:230 #: ../extras/setup/scim-setup.desktop.in.h:1 msgid "SCIM Input Method Setup" msgstr "Cài đặt bá»™ gõ SCIM" #: ../extras/setup/scim_setup_ui.cpp:369 msgid "" " Smart Common Input Method platform \n" "\n" "GUI Setup Utility\n" "\n" "\n" "\n" "Copyright 2002-2004, James Su <suzhe@tsinghua.org." "cn>" msgstr "" " Bá»™ gõ dùng chung thông minh \n" "\n" "Tiện ích thiết lập trên giao diện đồ " "hoạ ngưá»i dùng\n" "\n" "\n" "\n" "Copyright 2002-2004, James Su <suzhe@tsinghua.org." "cn>" #: ../extras/setup/scim_setup_ui.cpp:394 #, c-format msgid "The Setup for %s modules." msgstr "Thiết lập cho mô-Ä‘un %s." #: ../extras/setup/scim_setup_ui.cpp:456 msgid "Are you sure you want to quit SCIM Setup?" msgstr "Bạn chắc mình muốn thoát khá»i chương trình thiết lập SCIM?" #: ../extras/setup/scim_setup_ui.cpp:685 msgid "" "Not all configuration can be reloaded on the fly. Don't forget to restart " "SCIM in order to let all of the new configuration take effect." msgstr "" "Má»™t số thiết lập sẽ không có hiệu lá»±c ngay lập tức. Bạn phải khởi động lại " "SCIM để tất cả các thiết lập Ä‘á»u có hiệu lá»±c." #: ../extras/setup/scim_setup_helper.cpp:49 msgid "SCIM Setup" msgstr "Thiết lập SCIM" #: ../extras/setup/scim_setup_helper.cpp:51 msgid "Integrated Setup Utility based on GTK Widget library." msgstr "Tiện ích thiết lập tích hợp dá»±a trên thư viện GTK Widget" #: ../extras/setup/scim-setup.desktop.in.h:2 msgid "Setup utility for Smart Common Input Method platform" msgstr "Tiện ích thiết lập cho bá»™ gõ SCIM" #: ../extras/panel/scim_panel_gtk.cpp:982 msgid "SCIM Help" msgstr "Trợ giúp cho SCIM" #: ../extras/panel/scim_panel_gtk.cpp:999 msgid "Smart Common Input Method" msgstr "Bá»™ gõ thông minh dùng chung" #: ../extras/panel/scim_panel_gtk.cpp:1058 msgid "Stick/unstick the input window and the toolbar." msgstr "Ghim/Gỡ ghim cá»­a sổ nhập và thanh công cụ." #: ../extras/panel/scim_panel_gtk.cpp:1063 msgid "Show a brief help about SCIM and the current input method." msgstr "Hiển thị trợ giúp nhá» cho SCIM và bá»™ gõ hiện hành." #: ../extras/panel/scim_panel_gtk.cpp:1068 msgid "Show command menu." msgstr "Hiện trình đơn lệnh." #: ../extras/panel/scim_panel_gtk.cpp:2306 msgid "" "\n" "(C) 2002-2005 James Su " msgstr "" "\n" "(C) 2002-2005 James Su " #. Reload Configuration. #: ../extras/panel/scim_panel_gtk.cpp:2385 msgid "Reload Configuration" msgstr "Nạp lại các thiết lập" #. Stick #: ../extras/panel/scim_panel_gtk.cpp:2395 msgid "Stick Windows" msgstr "Ghim cá»­a sổ" #. Toolbar #: ../extras/panel/scim_panel_gtk.cpp:2404 msgid "Hide Toolbar" msgstr "Ẩn thanh công cụ" #. Help #: ../extras/panel/scim_panel_gtk.cpp:2413 msgid "Help ..." msgstr "Trợ giúp ..." #. Clients exit. #: ../extras/panel/scim_panel_gtk.cpp:2431 msgid "Exit" msgstr "Thoát" #: ../utils/scimstringview.c:196 msgid "Cursor Position" msgstr "Vị trí con trá»" #: ../utils/scimstringview.c:197 msgid "The current position of the insertion cursor in chars." msgstr "Vị trí hiện tại cá»§a con trá» chèn vào ký tá»±." #: ../utils/scimstringview.c:206 msgid "Maximum length" msgstr "Äá»™ dài tối Ä‘a" #: ../utils/scimstringview.c:207 msgid "Maximum number of characters for this string view. Zero if no maximum." msgstr "" "Số lượng ký tá»± lá»›n nhất hiển thị trong chuá»—i. Äặt bằng 0 nếu không giá»›i hạn." #: ../utils/scimstringview.c:216 msgid "Maximum width" msgstr "Äá»™ rá»™ng lá»›n nhất" #: ../utils/scimstringview.c:217 msgid "Maximum width of this string view." msgstr "Äá»™ rá»™ng lá»›n nhất khi hiển thị chuá»—i." #: ../utils/scimstringview.c:226 msgid "Has Frame" msgstr "Có khung" #: ../utils/scimstringview.c:227 msgid "FALSE removes outside bevel from string view." msgstr "FALSE loại bá» khung bên ngoài khi hiển thị chuá»—i." #: ../utils/scimstringview.c:234 msgid "Draw cursor" msgstr "Vẽ con trá»" #: ../utils/scimstringview.c:235 msgid "TRUE draw blinking cursor." msgstr "TRUE vẽ con trá» nhấp nháy." #: ../utils/scimstringview.c:242 msgid "Auto move cursor" msgstr "Tá»± động di chuyển con trá»" #: ../utils/scimstringview.c:243 msgid "TRUE auto move cursor position when mouse clicking." msgstr "TRUE tá»± động di chuyển vị trí con trá» khi bấm chuá»™t." #: ../utils/scimstringview.c:250 msgid "Forward button press event" msgstr "Chuyển sá»± kiện nút được nhấn" #: ../utils/scimstringview.c:251 msgid "TRUE forward button press event to user program." msgstr "TRUE chuyển sá»± kiện nhấn nút tá»›i chương trình cá»§a ngưá»i dùng." #: ../utils/scimstringview.c:258 msgid "Auto resize the widget to fit the string" msgstr "Tá»± động Ä‘iá»u chỉnh kích thước cá»§a ô nhập để hiển thị chuá»—i" #: ../utils/scimstringview.c:259 msgid "TRUE Auto resize on." msgstr "TRUE bật tá»± động Ä‘iá»u chỉnh kích thước" #: ../utils/scimstringview.c:266 msgid "Width in chars" msgstr "Äá»™ rá»™ng tính bằng ký tá»±" #: ../utils/scimstringview.c:267 msgid "Number of characters to leave space for in the string view." msgstr "Số ký tá»± cần có để giữ chá»— khi hiển thị chuá»—i." #: ../utils/scimstringview.c:276 msgid "Scroll offset" msgstr "Bước cuá»™n" #: ../utils/scimstringview.c:277 msgid "Number of pixels of the string view scrolled off the screen to the left" msgstr "Số pixel được cuá»™n sang bên trái khi hiển thị chuá»—i" #: ../utils/scimstringview.c:286 msgid "Text" msgstr "Văn bản" #: ../utils/scimstringview.c:287 msgid "The contents of the string view" msgstr "Ngữ cảnh khi hiển thị chuá»—i" #: ../utils/scimkeyselection.cpp:155 msgid "Selected _Keys:" msgstr "Phím được _chá»n:" #: ../utils/scimkeyselection.cpp:200 msgid "Key Code:" msgstr "Mã phím:" #: ../utils/scimkeyselection.cpp:218 msgid "..." msgstr "..." #: ../utils/scimkeyselection.cpp:223 msgid "Modifiers:" msgstr "Äặc biệt:" #: ../utils/scimkeyselection.cpp:236 msgid "_Ctrl" msgstr "_Ctrl" #: ../utils/scimkeyselection.cpp:240 msgid "A_lt" msgstr "A_lt" #: ../utils/scimkeyselection.cpp:244 msgid "_Shift" msgstr "_Shift" #: ../utils/scimkeyselection.cpp:248 msgid "_Release" msgstr "_Nhả phím" #: ../utils/scimkeyselection.cpp:258 msgid "_Meta" msgstr "_Meta" #: ../utils/scimkeyselection.cpp:262 msgid "S_uper" msgstr "S_uper" #: ../utils/scimkeyselection.cpp:266 msgid "_Hyper" msgstr "_Hyper" #: ../utils/scimkeyselection.cpp:331 msgid "Please enter a Key Code first." msgstr "Xin hãy nhập mã phím." #: ../utils/scimkeyselection.cpp:385 msgid "" "Press a key (or a key combination).\n" "This dialog will be closed when the key is released." msgstr "" "Nhấn má»™t phím (hoặc tổ hợp phím).\n" "Há»™p thoại này sẽ được đóng lại khi bạn thả tay ra." #: ../utils/scimkeyselection.cpp:388 msgid "Grabbing a key." msgstr "Nhận má»™t phím." #: ../utils/scimkeyselection.cpp:678 msgid "Key Selection" msgstr "Chá»n phím." #: ../utils/scimtrayicon.c:108 msgid "Orientation" msgstr "Äịnh hướng" #: ../utils/scimtrayicon.c:109 msgid "The orientation of the tray." msgstr "Hướng cá»§a khay" scim-1.4.14/po/zh_CN.po000066400000000000000000001521071177210725600145310ustar00rootroot00000000000000# translation of zh_CN.po to Simplified Chinese # Copyright (C) 2004, 2008 Free Software Foundation, Inc. # # James Su , 2004. # Leah Liu , 2008. msgid "" msgstr "" "Project-Id-Version: zh_CN\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-07-20 09:50+0800\n" "PO-Revision-Date: 2008-03-26 10:32+1000\n" "Last-Translator: Leah Liu \n" "Language-Team: Simplified Chinese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" #: ../src/scim_compose_key.cpp:126 msgid "English/European" msgstr "英语/欧洲语言" #. Append an entry for forward mode. #: ../src/scim_imengine.cpp:638 ../src/scim_utility.cpp:693 #: ../modules/FrontEnd/scim_x11_frontend.cpp:1897 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1281 #: ../extras/panel/scim_panel_gtk.cpp:2814 msgid "English/Keyboard" msgstr "英语键盘" #: ../src/scim_utility.cpp:694 msgid "Amharic" msgstr "阿姆哈拉语" #: ../src/scim_utility.cpp:695 msgid "Arabic" msgstr "阿拉伯语" #: ../src/scim_utility.cpp:696 msgid "Arabic (Egypt)" msgstr "阿拉伯语(埃åŠ)" #: ../src/scim_utility.cpp:697 msgid "Arabic (Lebanon)" msgstr "阿拉伯语(黎巴嫩)" #: ../src/scim_utility.cpp:698 msgid "Assamese" msgstr "阿è¨å§†è¯­" #: ../src/scim_utility.cpp:699 msgid "Azerbaijani" msgstr "阿塞拜疆语" #: ../src/scim_utility.cpp:700 msgid "Belarusian" msgstr "白俄罗斯语" #: ../src/scim_utility.cpp:701 msgid "Bulgarian" msgstr "ä¿åŠ åˆ©äºšè¯­" #: ../src/scim_utility.cpp:702 ../src/scim_utility.cpp:703 msgid "Bengali" msgstr "孟加拉语" #: ../src/scim_utility.cpp:704 msgid "Bengali (India)" msgstr "孟加拉语(å°åº¦)" #: ../src/scim_utility.cpp:705 msgid "Tibetan" msgstr "西è—语" #: ../src/scim_utility.cpp:706 msgid "Bosnian" msgstr "波斯尼亚语" #: ../src/scim_utility.cpp:707 msgid "Catalan" msgstr "加泰罗尼亚语" #: ../src/scim_utility.cpp:708 ../src/scim_keyboard_layout_data.h:4595 msgid "Czech" msgstr "æ·å…‹è¯­" #: ../src/scim_utility.cpp:709 msgid "Welsh" msgstr "å¨å°”士语" #: ../src/scim_utility.cpp:710 ../src/scim_keyboard_layout_data.h:4597 msgid "Danish" msgstr "丹麦语" #: ../src/scim_utility.cpp:711 ../src/scim_keyboard_layout_data.h:4605 msgid "German" msgstr "德语" #: ../src/scim_utility.cpp:712 msgid "Divehi" msgstr "迪维希语" #: ../src/scim_utility.cpp:713 ../src/scim_keyboard_layout_data.h:4608 msgid "Greek" msgstr "希腊语" #: ../src/scim_utility.cpp:714 msgid "English" msgstr "英语" #: ../src/scim_utility.cpp:715 msgid "English (Australian)" msgstr "英语(澳大利亚)" #: ../src/scim_utility.cpp:716 msgid "English (Canadian)" msgstr "英语(加拿大)" #: ../src/scim_utility.cpp:717 msgid "English (British)" msgstr "英语(ä¸åˆ—颠)" #: ../src/scim_utility.cpp:718 msgid "English (Ireland)" msgstr "英语(爱尔兰)" #: ../src/scim_utility.cpp:719 msgid "English (American)" msgstr "英语(美国)" #: ../src/scim_utility.cpp:720 ../src/scim_utility.cpp:721 #: ../src/scim_keyboard_layout_data.h:4621 msgid "Spanish" msgstr "西ç­ç‰™è¯­" #: ../src/scim_utility.cpp:722 msgid "Spanish (Mexico)" msgstr "西ç­ç‰™è¯­(墨西哥)" #: ../src/scim_utility.cpp:723 ../src/scim_keyboard_layout_data.h:4600 msgid "Estonian" msgstr "爱沙尼亚语" #: ../src/scim_utility.cpp:724 msgid "Basque" msgstr "巴斯克语" #: ../src/scim_utility.cpp:725 msgid "Persian" msgstr "波斯语" #: ../src/scim_utility.cpp:726 ../src/scim_keyboard_layout_data.h:4601 msgid "Finnish" msgstr "芬兰语" #: ../src/scim_utility.cpp:727 ../src/scim_keyboard_layout_data.h:4602 msgid "French" msgstr "法语" #: ../src/scim_utility.cpp:728 msgid "Irish" msgstr "爱尔兰语" #: ../src/scim_utility.cpp:729 msgid "Galician" msgstr "加利西亚语" #: ../src/scim_utility.cpp:730 msgid "Gujarati" msgstr "å¤å‰æ‹‰ç‰¹è¯­" #: ../src/scim_utility.cpp:731 ../src/scim_utility.cpp:740 msgid "Hebrew" msgstr "希伯æ¥è¯­" #: ../src/scim_utility.cpp:732 msgid "Hindi" msgstr "å°åœ°è¯­" #: ../src/scim_utility.cpp:733 ../src/scim_keyboard_layout_data.h:4594 msgid "Croatian" msgstr "克罗地亚语" #: ../src/scim_utility.cpp:734 ../src/scim_keyboard_layout_data.h:4609 msgid "Hungarian" msgstr "匈牙利语" #: ../src/scim_utility.cpp:735 msgid "Armenian" msgstr "亚美尼亚语" #: ../src/scim_utility.cpp:736 msgid "Interlingua" msgstr "拉ä¸å›½é™…语" #: ../src/scim_utility.cpp:737 msgid "Indonesian" msgstr "å°åº¦å°¼è¥¿äºšè¯­" #: ../src/scim_utility.cpp:738 ../src/scim_keyboard_layout_data.h:4627 msgid "Icelandic" msgstr "冰岛语" #: ../src/scim_utility.cpp:739 ../src/scim_keyboard_layout_data.h:4610 msgid "Italian" msgstr "æ„大利语" #: ../src/scim_utility.cpp:741 ../src/scim_keyboard_layout_data.h:4611 msgid "Japanese" msgstr "日语" #: ../src/scim_utility.cpp:742 msgid "Georgian" msgstr "乔治亚语" #: ../src/scim_utility.cpp:743 msgid "Kazakh" msgstr "哈è¨å…‹è¯­" #: ../src/scim_utility.cpp:744 msgid "Cambodian" msgstr "柬埔寨语" #: ../src/scim_utility.cpp:745 msgid "Kannada" msgstr "å¡çº³è¾¾è¯­" #: ../src/scim_utility.cpp:746 msgid "Korean" msgstr "韩语" #: ../src/scim_utility.cpp:747 msgid "Laothian" msgstr "è€æŒè¯­" #: ../src/scim_utility.cpp:748 ../src/scim_keyboard_layout_data.h:4628 msgid "Lithuanian" msgstr "立陶宛语" #: ../src/scim_utility.cpp:749 msgid "Latvian" msgstr "拉脱维亚语" #: ../src/scim_utility.cpp:750 msgid "Macedonian" msgstr "马其顿语" #: ../src/scim_utility.cpp:751 msgid "Malayalam" msgstr "马拉雅拉姆语" #: ../src/scim_utility.cpp:752 msgid "Mongolian" msgstr "è’™å¤è¯­" #: ../src/scim_utility.cpp:753 msgid "Marathi" msgstr "马拉地语" #: ../src/scim_utility.cpp:754 msgid "Malay" msgstr "马æ¥è¯­" #: ../src/scim_utility.cpp:755 msgid "Burmese" msgstr "缅甸语" #: ../src/scim_utility.cpp:756 msgid "Nepali" msgstr "尼泊尔语" #: ../src/scim_utility.cpp:757 ../src/scim_keyboard_layout_data.h:4598 msgid "Dutch" msgstr "è·å…°è¯­" #: ../src/scim_utility.cpp:758 msgid "Norwegian (nynorsk)" msgstr "挪å¨è¯­(尼诺斯克语)" #: ../src/scim_utility.cpp:759 msgid "Norwegian (bokmal)" msgstr "挪å¨è¯­(åšå…‹é©¬å°”语)" #: ../src/scim_utility.cpp:760 msgid "Oriya" msgstr "奥里雅语" #: ../src/scim_utility.cpp:761 msgid "Punjabi" msgstr "æ—鮿™®è¯­" #: ../src/scim_utility.cpp:762 ../src/scim_keyboard_layout_data.h:4613 msgid "Polish" msgstr "波兰语" #: ../src/scim_utility.cpp:763 ../src/scim_utility.cpp:765 #: ../src/scim_keyboard_layout_data.h:4614 msgid "Portuguese" msgstr "è‘¡è„牙语" #: ../src/scim_utility.cpp:764 ../src/scim_keyboard_layout_data.h:4615 msgid "Portuguese (Brazil)" msgstr "è‘¡è„牙语(巴西)" #: ../src/scim_utility.cpp:766 msgid "Romanian" msgstr "罗马尼亚语" #: ../src/scim_utility.cpp:767 ../src/scim_keyboard_layout_data.h:4617 msgid "Russian" msgstr "俄语" #: ../src/scim_utility.cpp:768 msgid "Sinhala" msgstr "僧伽罗语" #: ../src/scim_utility.cpp:769 ../src/scim_keyboard_layout_data.h:4618 msgid "Slovak" msgstr "斯洛ä¼å…‹è¯­" #: ../src/scim_utility.cpp:770 ../src/scim_keyboard_layout_data.h:4620 msgid "Slovenian" msgstr "斯洛文尼亚语" #: ../src/scim_utility.cpp:771 msgid "Albanian" msgstr "阿尔巴尼亚语" #: ../src/scim_utility.cpp:772 ../src/scim_utility.cpp:773 #: ../src/scim_utility.cpp:774 msgid "Serbian" msgstr "塞尔维亚语" #: ../src/scim_utility.cpp:775 ../src/scim_utility.cpp:777 #: ../src/scim_keyboard_layout_data.h:4624 msgid "Swedish" msgstr "瑞典语" #: ../src/scim_utility.cpp:776 msgid "Swedish (Finland)" msgstr "瑞典语(芬兰)" #: ../src/scim_utility.cpp:778 msgid "Tamil" msgstr "泰米尔语" #: ../src/scim_utility.cpp:779 msgid "Telugu" msgstr "æ³°å¢å›ºè¯­" #: ../src/scim_utility.cpp:780 msgid "Thai" msgstr "泰语" #: ../src/scim_utility.cpp:781 ../src/scim_keyboard_layout_data.h:4625 msgid "Turkish" msgstr "土耳其语" #: ../src/scim_utility.cpp:782 msgid "Uighur" msgstr "ç»´å¾å°”语" #: ../src/scim_utility.cpp:783 ../src/scim_keyboard_layout_data.h:4629 msgid "Ukrainian" msgstr "乌克兰语" #: ../src/scim_utility.cpp:784 msgid "Urdu" msgstr "乌尔都语" #: ../src/scim_utility.cpp:785 msgid "Uzbek" msgstr "乌兹别克语" #: ../src/scim_utility.cpp:786 msgid "Vietnamese" msgstr "è¶Šå—语" #: ../src/scim_utility.cpp:787 msgid "Walloon" msgstr "瓦龙语" #: ../src/scim_utility.cpp:788 ../src/scim_utility.cpp:789 msgid "Yiddish" msgstr "æ„第绪语" #: ../src/scim_utility.cpp:790 msgid "Chinese" msgstr "中文" #: ../src/scim_utility.cpp:791 ../src/scim_utility.cpp:793 msgid "Chinese (simplified)" msgstr "简体中文" #: ../src/scim_utility.cpp:792 ../src/scim_utility.cpp:794 msgid "Chinese (traditional)" msgstr "ç¹ä½“中文" #: ../src/scim_utility.cpp:876 msgid "Other" msgstr "其它语言" #: ../src/scim_keyboard_layout_data.h:4591 #: ../modules/IMEngine/scim_socket_imengine.cpp:386 #: ../modules/IMEngine/scim_socket_imengine.cpp:416 #: ../modules/IMEngine/scim_socket_imengine.cpp:501 #: ../modules/IMEngine/scim_socket_imengine.cpp:531 #: ../modules/IMEngine/scim_socket_imengine.cpp:561 msgid "Unknown" msgstr "未知" #: ../src/scim_keyboard_layout_data.h:4592 msgid "English (US)" msgstr "英语(美国)" #: ../src/scim_keyboard_layout_data.h:4593 msgid "Belgian" msgstr "比利时语" #: ../src/scim_keyboard_layout_data.h:4596 msgid "Czech (qwerty)" msgstr "æ·å…‹è¯­(标准键盘)" #: ../src/scim_keyboard_layout_data.h:4599 msgid "Dvorak" msgstr "Dvorak键盘" #: ../src/scim_keyboard_layout_data.h:4603 msgid "French (Canadian)" msgstr "法语(加拿大)" #: ../src/scim_keyboard_layout_data.h:4604 msgid "French (Switzerland)" msgstr "法语(瑞士)" #: ../src/scim_keyboard_layout_data.h:4606 msgid "German (with deadkeys)" msgstr "德语(有deadkeys)" #: ../src/scim_keyboard_layout_data.h:4607 msgid "German (Swiss)" msgstr "德语(瑞士)" #: ../src/scim_keyboard_layout_data.h:4612 msgid "Norwegian" msgstr "挪å¨è¯­" #: ../src/scim_keyboard_layout_data.h:4616 msgid "Portuguese (Brazil US accents)" msgstr "è‘¡è„牙语(巴西 美国å‘音)" #: ../src/scim_keyboard_layout_data.h:4619 msgid "Slovak (qwerty)" msgstr "斯洛ä¼å…‹(标准键盘)" #: ../src/scim_keyboard_layout_data.h:4622 msgid "Spanish (CP 850)" msgstr "西ç­ç‰™è¯­(CP 850)" #: ../src/scim_keyboard_layout_data.h:4623 msgid "Spanish (Latin America)" msgstr "西ç­ç‰™è¯­(拉ä¸ç¾Žæ´²)" #: ../src/scim_keyboard_layout_data.h:4626 msgid "English (UK)" msgstr "英语(英国)" #: ../modules/Filter/scim_sctc_filter.cpp:57 msgid "Simplified-Traditional Chinese Conversion" msgstr "简ç¹ä¸­æ–‡è½¬æ¢" #: ../modules/Filter/scim_sctc_filter.cpp:60 msgid "Convert between Simplified Chinese and Traditional Chinese" msgstr "在简体中文和ç¹ä½“中文之间进行转æ¢" #: ../modules/Filter/scim_sctc_filter.cpp:71 msgid "SC-TC" msgstr "简-ç¹" #: ../modules/Filter/scim_sctc_filter.cpp:73 #: ../modules/Filter/scim_sctc_filter.cpp:78 msgid "Simplified-Traditional Chinese conversion" msgstr "简ç¹ä¸­æ–‡è½¬æ¢" #: ../modules/Filter/scim_sctc_filter.cpp:76 msgid "No Conversion" msgstr "ä¸è½¬æ¢" #: ../modules/Filter/scim_sctc_filter.cpp:81 msgid "Simplified to Traditional" msgstr "简体到ç¹ä½“" #: ../modules/Filter/scim_sctc_filter.cpp:83 msgid "Convert Simplified Chinese to Traditional Chinese" msgstr "将简体中文转æ¢ä¸ºç¹ä½“中文" #: ../modules/Filter/scim_sctc_filter.cpp:86 msgid "Traditional to Simplified" msgstr "ç¹ä½“到简体" #: ../modules/Filter/scim_sctc_filter.cpp:88 msgid "Convert Traditional Chinese to Simplified Chinese" msgstr "å°†ç¹ä½“中文转æ¢ä¸ºç®€ä½“中文" #: ../modules/Filter/scim_sctc_filter.cpp:300 msgid "James Su " msgstr "詹姆斯 · è‹ï¼ˆsuzhe@tsinghua.org.cn)" #: ../modules/Filter/scim_sctc_filter.cpp:425 #: ../modules/Filter/scim_sctc_filter.cpp:555 #: ../modules/Filter/scim_sctc_filter.cpp:571 msgid "SC->TC" msgstr "简->ç¹" #: ../modules/Filter/scim_sctc_filter.cpp:431 #: ../modules/Filter/scim_sctc_filter.cpp:559 #: ../modules/Filter/scim_sctc_filter.cpp:575 msgid "TC->SC" msgstr "ç¹->简" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1845 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1231 #: ../extras/panel/scim_panel_gtk.cpp:2304 msgid "Smart Common Input Method platform " msgstr "智能通用输入法平å°" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1847 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1233 msgid "" "\n" "(C) 2002-2005 James Su \n" "\n" msgstr "" "\n" "(C) 2002-2005 詹姆斯 · è‹ \n" "\n" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1851 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1238 msgid "" ":\n" "\n" msgstr "" ":\n" "\n" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1854 #: ../modules/FrontEnd/scim_x11_frontend.cpp:1857 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1241 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1244 msgid "" "\n" "\n" msgstr "" "\n" "\n" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:120 msgid "RAW CODE" msgstr "内ç è¾“å…¥" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:127 msgid "(C) 2002-2006 James Su " msgstr "(C) 2002-2006 James Su " #: ../modules/IMEngine/scim_rawcode_imengine.cpp:140 msgid "" "Hot Keys:\n" "\n" " Control+u:\n" " switch between Multibyte encoding and Unicode.\n" "\n" " Esc:\n" " reset the input method.\n" msgstr "" "热键:\n" "\n" " Control+u:\n" " åˆ‡æ¢æœ¬åœ°ç¼–ç å’Œ Unicode ç¼–ç æ¨¡å¼.\n" "\n" " Esc:\n" " å¤ä½è¾“入法.\n" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:407 #: ../modules/IMEngine/scim_rawcode_imengine.cpp:423 msgid "The status of the current input method. Click to change it." msgstr "当å‰è¾“入法的状æ€, 点击切æ¢çжæ€." #: ../modules/IMEngine/scim_rawcode_imengine.cpp:409 msgid "Unicode" msgstr "统一ç " #: ../modules/SetupUI/scim_frontend_setup.cpp:82 #: ../modules/SetupUI/scim_imengine_setup.cpp:88 msgid "Global Setup" msgstr "全局设置" #: ../modules/SetupUI/scim_frontend_setup.cpp:87 msgid "" "Setup the global options used by All FrontEnd modules, including X11 " "FrontEnd, GTK IMModule, QT IMModule etc." msgstr "" "设置所有å‰ç«¯æ¨¡å—使用的全局选项,包括 X11å‰ç«¯, GTK 输入法模å—, QT è¾“å…¥æ³•æ¨¡å— " "ç­‰." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:143 msgid "_Trigger:" msgstr "开关键(_T):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:145 msgid "Select the trigger keys" msgstr "选择输入法开关键" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:147 msgid "" "The key events to turn on/off SCIM input method. Click on the button on the " "right to edit it." msgstr "用以打开/关闭 SCIM 输入法的按键. 点击å³è¾¹çš„æŒ‰é’®è¿›è¡Œç¼–辑." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:160 msgid "Turn _On:" msgstr "打开键(_O):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:162 msgid "Select the Turn On keys" msgstr "选择输入法打开键" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:164 msgid "" "The key events to turn on SCIM input method. Click on the button on the " "right to edit it." msgstr "用以打开 SCIM 输入法的按键. 点击å³è¾¹çš„æŒ‰é’®è¿›è¡Œç¼–辑." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:177 msgid "Turn O_ff:" msgstr "关闭键(_F):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:179 msgid "Select the Turn Off keys" msgstr "选择输入法关闭键" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:181 msgid "" "The key events to turn off SCIM input method. Click on the button on the " "right to edit it." msgstr "用以关闭 SCIM 输入法的按键. 点击å³è¾¹çš„æŒ‰é’®è¿›è¡Œç¼–辑." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:194 msgid "_Next input method:" msgstr "åŽä¸€ä¸ªè¾“入法(_N):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:196 msgid "Select the next input method keys" msgstr "选择åŽä¸€ä¸ªè¾“入法按键" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:198 msgid "" "The key events to switch to the next input method. Click on the button on " "the right to edit it." msgstr "用以切æ¢åˆ°åŽä¸€ä¸ªè¾“入法的按键. 点击å³è¾¹çš„æŒ‰é’®è¿›è¡Œç¼–辑." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:213 msgid "_Previous input method:" msgstr "å‰ä¸€ä¸ªè¾“入法(_P):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:215 msgid "Select the previous input method keys" msgstr "选择å‰ä¸€ä¸ªè¾“入法按键" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:217 msgid "" "The key events to switch to the previous input method. Click on the button " "on the right to edit it." msgstr "用以切æ¢åˆ°å‰ä¸€ä¸ªè¾“入法的按键. 点击å³è¾¹çš„æŒ‰é’®è¿›è¡Œç¼–辑." #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:232 msgid "Show input method _menu:" msgstr "显示输入法èœå•(_M):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:234 msgid "Select the show input method menu keys" msgstr "选择显å¼è¾“入法èœå•按键" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:236 msgid "" "The key events to show the input method menu. Click on the button on the " "right to edit it." msgstr "用以显å¼è¾“入法èœå•的按键. 点击å³è¾¹çš„æŒ‰é’®è¿›è¡Œç¼–辑." #: ../modules/SetupUI/scim_frontend_setup.cpp:306 msgid "Options" msgstr "选项" #: ../modules/SetupUI/scim_frontend_setup.cpp:321 msgid "_Keyboard Layout:" msgstr "键盘布局(_K):" #: ../modules/SetupUI/scim_frontend_setup.cpp:342 msgid "" "You should choose your currently used keyboard layout here so that input " "methods, who care about keyboard layout, could work correctly." msgstr "" "你应当在这里选择你正在使用的键盘布局, 以ä¿è¯é‚£äº›ä¾èµ–于键盘布局的输入法能够正" "确的è¿è¡Œ." #. On The Spot. #: ../modules/SetupUI/scim_frontend_setup.cpp:346 msgid "_Embed Preedit String into client window" msgstr "将预编辑字符串嵌入到客户窗å£ä¸­(_E)" #: ../modules/SetupUI/scim_frontend_setup.cpp:351 msgid "" "If this option is checked, the preedit string will be displayed directly in " "the client input window, rather than in a independent float window." msgstr "" "如果选中这个选项, 预编辑字符串将被直接显示在客户端输入窗å£ä¸­,è€Œä¸æ˜¯åœ¨ç‹¬ç«‹çš„æµ®" "动窗å£ä¸­." #. Shared input method. #: ../modules/SetupUI/scim_frontend_setup.cpp:360 msgid "_Share the same input method among all applications" msgstr "在所有应用程åºä¸­å…±äº«åŒä¸€ä¸ªè¾“入法(_S)" #: ../modules/SetupUI/scim_frontend_setup.cpp:365 msgid "" "If this option is checked, then only one input method could be used by all " "applications at the same time.Otherwise different input method could be used " "by each application." msgstr "" "如果选中这个选项, 则åŒä¸€æ—¶åˆ»ä»…能在所有应用程åºä¸­ä½¿ç”¨åŒä¸€ä¸ªè¾“入法. å¦åˆ™å„个应" "用程åºå¯ä»¥ä½¿ç”¨ä¸åŒçš„输入法." #: ../modules/SetupUI/scim_frontend_setup.cpp:373 #: ../modules/SetupUI/scim_imengine_setup.cpp:453 msgid "Hotkeys" msgstr "热键" #: ../modules/SetupUI/scim_imengine_setup.cpp:93 msgid "You can enable/disable input methods and set hotkeys for input methods here." msgstr "ä½ å¯ä»¥åœ¨è¿™é‡Œæ¿€æ´»ï¼ç¦æ­¢è¾“入法, 并为输入法设置热键." #: ../modules/SetupUI/scim_imengine_setup.cpp:296 msgid "The installed input method services:" msgstr "已安装的输入法æœåŠ¡:" #. Create hotkey and filter button before factory list view, because #. factory_list_selection_changed_callback may access these two buttons. #: ../modules/SetupUI/scim_imengine_setup.cpp:311 msgid "Edit _Hotkeys" msgstr "编辑热键(_H)" #: ../modules/SetupUI/scim_imengine_setup.cpp:320 msgid "Edit Hotkeys associated with the selected input method." msgstr "编辑与选中的输入法相关è”的热键." #: ../modules/SetupUI/scim_imengine_setup.cpp:322 msgid "Select _Filters" msgstr "选择过滤器(_F)" #: ../modules/SetupUI/scim_imengine_setup.cpp:331 msgid "Select the Filters which will be attached to this input method." msgstr "选择è¦é™„加到这个输入法上的过滤器." #: ../modules/SetupUI/scim_imengine_setup.cpp:348 msgid "_Expand" msgstr "展开(_E)" #: ../modules/SetupUI/scim_imengine_setup.cpp:357 msgid "Expand all language categories." msgstr "展开所有语言分类." #: ../modules/SetupUI/scim_imengine_setup.cpp:359 msgid "_Collapse" msgstr "折å (_C)" #: ../modules/SetupUI/scim_imengine_setup.cpp:368 msgid "Collapse all language categories." msgstr "æŠ˜å æ‰€æœ‰è¯­è¨€åˆ†ç±»." #: ../modules/SetupUI/scim_imengine_setup.cpp:370 msgid "E_nable All" msgstr "激活所有(_N)" #: ../modules/SetupUI/scim_imengine_setup.cpp:379 msgid "Enable all input methods." msgstr "激活所有输入法." #: ../modules/SetupUI/scim_imengine_setup.cpp:381 msgid "_Disable All" msgstr "ç¦æ­¢æ‰€æœ‰(_D)" #: ../modules/SetupUI/scim_imengine_setup.cpp:390 msgid "Disable all input methods." msgstr "ç¦æ­¢æ‰€æœ‰è¾“入法." #: ../modules/SetupUI/scim_imengine_setup.cpp:414 #: ../modules/SetupUI/scim_imengine_setup.cpp:541 msgid "Name" msgstr "åç§°" #: ../modules/SetupUI/scim_imengine_setup.cpp:432 #: ../modules/SetupUI/scim_imengine_setup.cpp:522 msgid "Enable" msgstr "激活" #: ../modules/SetupUI/scim_imengine_setup.cpp:467 msgid "Filters" msgstr "过滤器" #: ../modules/SetupUI/scim_imengine_setup.cpp:560 msgid "Languages" msgstr "语言" #: ../modules/SetupUI/scim_imengine_setup.cpp:574 msgid "Description" msgstr "æè¿°" #: ../modules/SetupUI/scim_imengine_setup.cpp:1190 #, c-format msgid "Edit Hotkeys for %s" msgstr "编辑 %s 的热键" #: ../modules/SetupUI/scim_imengine_setup.cpp:1417 #, c-format msgid "Select Filters for %s" msgstr "为 %s 选择过滤器" #: ../modules/SetupUI/scim_imengine_setup.cpp:1450 msgid "Move _Up" msgstr "å‘上移动(_U)" #: ../modules/SetupUI/scim_imengine_setup.cpp:1457 msgid "Move _Down" msgstr "å‘下移动(_D)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:95 msgid "GTK" msgstr "GTK" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:100 msgid "A panel daemon based on GTK+-2.x library." msgstr "一个基于 GTK+-2.x åº“çš„é¢æ¿æœåŠ¡ç¨‹åº." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:163 msgid "Always" msgstr "永远" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:164 msgid "On demand" msgstr "éœ€è¦æ—¶" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:165 msgid "Never" msgstr "从ä¸" #. Create the ToolBar setup block. #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:211 msgid "ToolBar" msgstr "工具æ¡" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:229 msgid "_Show:" msgstr "显示(_S):" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:245 msgid "Auto s_nap" msgstr "自动é è¾¹(_N)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:251 msgid "Show _input method icon" msgstr "显示输入法图标(_I)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:257 msgid "Show inp_ut method name" msgstr "显示输入法åç§°(_U)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:269 msgid "Hide time_out:" msgstr "éšè—è¶…æ—¶(_O):" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:282 msgid "Show s_tick icon" msgstr "显示粘ä½å›¾æ ‡(_T)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:288 msgid "Show m_enu icon" msgstr "显示èœå•图标(_E)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:294 msgid "Show _help icon" msgstr "显示帮助图标(_H)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:300 msgid "Show _property label" msgstr "显示属性标签(_P)" #. Create the Input Window setup block #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:311 msgid "Input window" msgstr "输入窗å£" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:320 msgid "E_mbedded lookup table" msgstr "嵌入å¼å€™é€‰è¯è¡¨(_M)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:324 msgid "_Vertical lookup table" msgstr "垂直å¼å€™é€‰è¯è¡¨(_V)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:328 msgid "Misc" msgstr "其它" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:337 msgid "Show tra_y icon" msgstr "显示托盘图标(_Y)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:341 msgid "Stick _windows" msgstr "粘ä½çª—å£(_W)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:349 msgid "_Font:" msgstr "字体(_F):" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:419 msgid "" "If option \"Always\" is selected, the toolbar will always be shown on the " "screen. If option \"On demand\" is selected, it will only be shown when SCIM " "is activated. If option \"Never\" is selected, it will never be shown." msgstr "" "如果选中 \"永远\" 选项, 工具æ¡å°†è¢«æ°¸è¿œæ˜¾ç¤ºåœ¨å±å¹•上. 如果选中 \"éœ€è¦æ—¶\" 选" "项, åˆ™åªæœ‰å½“SCIM被激活时æ‰ä¼šæ˜¾ç¤ºå·¥å…·æ¡. 如果选中 \"从ä¸\" 选项, åˆ™å·¥å…·æ¡æ°¸è¿œ" "ä¸ä¼šè¢«æ˜¾ç¤º." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:426 msgid "If this option is checked, the toolbar will be snapped to the screen border." msgstr "如果选中这个选项, 工具æ¡å°†ç²˜é™„在å±å¹•边缘上." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:431 msgid "" "The toolbar will be hidden out after this timeout is elapsed. This option is " "only valid when \"Always show\" is selected. Set to zero to disable this " "behavior." msgstr "" "当超时过åŽ, 工具æ¡å°†è¢«éšè—èµ·æ¥. 该选项åªåœ¨ \"永远显示\" 被选中时æ‰ç”Ÿæ•ˆ. 设置" "æˆ 0 åˆ™ç¦æ­¢æ­¤åŠŸèƒ½." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:438 msgid "" "If this option is checked, the input method icon will be showed on the " "toolbar." msgstr "如果选中这个选项, 输入法图标将显示在工具æ¡ä¸Š." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:442 msgid "" "If this option is checked, the input method name will be showed on the " "toolbar." msgstr "如果选中这个选项, 输入法å称将显示在工具æ¡ä¸Š." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:446 msgid "If this option is checked, the stick icon will be showed on the toolbar." msgstr "如果选中这个选项, 粘ä½å›¾æ ‡å°†æ˜¾ç¤ºåœ¨å·¥å…·æ¡ä¸Š." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:450 msgid "If this option is checked, the menu icon will be showed on the toolbar." msgstr "如果选中这个选项, èœå•图标将显示在工具æ¡ä¸Š." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:454 msgid "If this option is checked, the help icon will be showed on the toolbar." msgstr "如果选中这个选项, 帮助图标将显示在工具æ¡ä¸Š." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:458 msgid "" "If this option is checked, the text label of input method properties will be " "showed on the toolbar." msgstr "如果选中这个选项, 则输入法屬性的文字标签将显示在工具æ¡ä¸Š." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:462 msgid "" "If this option is checked, the lookup table will be embedded into the input " "window." msgstr "如果选中这个选项, 候选è¯è¡¨å°†è¢«åµŒå…¥åˆ°è¾“入窗å£ä¸­." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:467 msgid "If this option is checked, the lookup table will be displayed vertically." msgstr "如果选中这个选项, 将垂直显示候选è¯è¡¨." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:472 msgid "" "If this option is checked, the tray icon will be showed on the desktop's " "taskbar." msgstr "如果选中这个选项, 托盘图标将显示在桌é¢çš„任务æ ä¸Š." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:476 msgid "" "If this option is checked, the toolbar, input and lookup table windows will " "be sticked to its original position." msgstr "如果选中这个选项, 则输入和候选è¯è¡¨çª—å£å°†åœåœ¨å®ƒä»¬çš„原始ä½ç½®." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:482 msgid "The font setting will be used in the input and lookup table windows." msgstr "该字体设置将用于输入和候选è¯è¡¨çª—å£." #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:801 msgid "Select Interface Font" msgstr "选择界é¢å­—体" #: ../extras/setup/scim_setup_ui.cpp:47 msgid "SCIM" msgstr "SCIM" #: ../extras/setup/scim_setup_ui.cpp:48 msgid "FrontEnd" msgstr "å‰ç«¯" #: ../extras/setup/scim_setup_ui.cpp:49 msgid "IMEngine" msgstr "输入法引擎" #: ../extras/setup/scim_setup_ui.cpp:50 msgid "Panel" msgstr "颿¿" #: ../extras/setup/scim_setup_ui.cpp:51 msgid "Extra" msgstr "附加" #. #. vi:ts=4:nowrap:ai:expandtab #. #: ../extras/setup/scim_setup_ui.cpp:230 #: ../extras/setup/scim-setup.desktop.in.h:1 msgid "SCIM Input Method Setup" msgstr "SCIM 输入法设置" #: ../extras/setup/scim_setup_ui.cpp:369 msgid "" " Smart Common Input Method platform \n" "\n" "GUI Setup Utility\n" "\n" "\n" "\n" "Copyright 2002-2004, James Su <suzhe@tsinghua.org." "cn>" msgstr "" " æ™ºèƒ½é€šç”¨è¾“å…¥æ³•å¹³å° \n" "\n" "图形设置工具\n" "\n" "\n" "\n" "ç‰ˆæƒæ‰€æœ‰ 2002-2004, è‹ å“²<suzhe@tsinghua.org.cn>" "" #: ../extras/setup/scim_setup_ui.cpp:394 #, c-format msgid "The Setup for %s modules." msgstr "%s模å—的设置." #msgid "Are you sure you want to quit SCIM Setup?" #msgstr "你确定è¦é€€å‡º SCIM 设置程åºä¹ˆ?" #: ../extras/setup/scim_setup_ui.cpp:661 msgid "" "Not all configuration can be reloaded on the fly. Don't forget to restart " "SCIM in order to let all of the new configuration take effect." msgstr "䏿˜¯æ‰€æœ‰é…ç½®éƒ½èƒ½å¤Ÿç›´æŽ¥é‡æ–°åŠ è½½. åˆ«å¿˜äº†é‡æ–°å¯åЍ SCIM 以使所有新的é…置生效." #: ../extras/setup/scim_setup_helper.cpp:49 msgid "SCIM Setup" msgstr "SCIM 设置" #: ../extras/setup/scim_setup_helper.cpp:51 msgid "Integrated Setup Utility based on GTK Widget library." msgstr "基于 GTK 控件库的集æˆè®¾ç½®å·¥å…·." #: ../extras/setup/scim-setup.desktop.in.h:2 msgid "Setup utility for Smart Common Input Method platform" msgstr "智能通用输入法平å°çš„设置工具" #: ../extras/panel/scim_panel_gtk.cpp:982 msgid "SCIM Help" msgstr "SCIM 帮助" #: ../extras/panel/scim_panel_gtk.cpp:999 msgid "Smart Common Input Method" msgstr "智能通用输入法平å°" #: ../extras/panel/scim_panel_gtk.cpp:1058 msgid "Stick/unstick the input window and the toolbar." msgstr "粘ä½/放开 输入窗å£å’Œå·¥å…·æ¡." #: ../extras/panel/scim_panel_gtk.cpp:1063 msgid "Show a brief help about SCIM and the current input method." msgstr "显示关于 SCIM 和当å‰è¾“入法的简å•帮助." #: ../extras/panel/scim_panel_gtk.cpp:1068 msgid "Show command menu." msgstr "显示命令èœå•." #: ../extras/panel/scim_panel_gtk.cpp:2306 msgid "" "\n" "(C) 2002-2005 James Su " msgstr "" "\n" "(C) 2002-2005 James Su " #. Reload Configuration. #: ../extras/panel/scim_panel_gtk.cpp:2385 msgid "Reload Configuration" msgstr "釿–°åŠ è½½é…ç½®" #. Stick #: ../extras/panel/scim_panel_gtk.cpp:2395 msgid "Stick Windows" msgstr "粘ä½çª—å£" #. Toolbar #: ../extras/panel/scim_panel_gtk.cpp:2404 msgid "Hide Toolbar" msgstr "éš±è—工具æ¡" #. Help #: ../extras/panel/scim_panel_gtk.cpp:2413 msgid "Help ..." msgstr "帮助 ..." #. Clients exit. #: ../extras/panel/scim_panel_gtk.cpp:2431 msgid "Exit" msgstr "退出" #: ../utils/scimstringview.c:196 msgid "Cursor Position" msgstr "光标ä½ç½®" #: ../utils/scimstringview.c:197 msgid "The current position of the insertion cursor in chars." msgstr "字符中嵌入光标的当å‰ä½ç½®ã€‚" #: ../utils/scimstringview.c:206 msgid "Maximum length" msgstr "最大长度" #: ../utils/scimstringview.c:207 msgid "Maximum number of characters for this string view. Zero if no maximum." msgstr "这个字符串视图的最大字符数。如果没有最大字符数,那就是零。" #: ../utils/scimstringview.c:216 msgid "Maximum width" msgstr "最大宽度" #: ../utils/scimstringview.c:217 msgid "Maximum width of this string view." msgstr "这个字符串视图的最大宽度。" #: ../utils/scimstringview.c:226 msgid "Has Frame" msgstr "有框架" #: ../utils/scimstringview.c:227 msgid "FALSE removes outside bevel from string view." msgstr "错误,删除字符串视图的外斜é¢" #: ../utils/scimstringview.c:234 msgid "Draw cursor" msgstr "绘制光标" #: ../utils/scimstringview.c:235 msgid "TRUE draw blinking cursor." msgstr "正确,绘制闪çƒå…‰æ ‡ã€‚" #: ../utils/scimstringview.c:242 msgid "Auto move cursor" msgstr "自动移动光标" #: ../utils/scimstringview.c:243 msgid "TRUE auto move cursor position when mouse clicking." msgstr "正确,点击鼠标时自动移动光标ä½ç½®ã€‚" #: ../utils/scimstringview.c:250 msgid "Forward button press event" msgstr "传逿Œ‰é’®äº‹ä»¶" #: ../utils/scimstringview.c:251 msgid "TRUE forward button press event to user program." msgstr "正确,将按钮事件传é€ç»™ç”¨æˆ·ç¨‹åºã€‚" #: ../utils/scimstringview.c:258 msgid "Auto resize the widget to fit the string" msgstr "自动调整边框以适应字符串" #: ../utils/scimstringview.c:259 msgid "TRUE Auto resize on." msgstr "正确,打开自动调整。" #: ../utils/scimstringview.c:266 msgid "Width in chars" msgstr "字符宽度" #: ../utils/scimstringview.c:267 msgid "Number of characters to leave space for in the string view." msgstr "为字符串视图中ä¿ç•™çš„空白的字符数。" #: ../utils/scimstringview.c:276 msgid "Scroll offset" msgstr "滚动åç§»" #: ../utils/scimstringview.c:277 msgid "Number of pixels of the string view scrolled off the screen to the left" msgstr "字符串视图è·å±å¹•左边的åƒç´ æ•°" #: ../utils/scimstringview.c:286 msgid "Text" msgstr "文本" #: ../utils/scimstringview.c:287 msgid "The contents of the string view" msgstr "字符串视图的内容" #: ../utils/scimkeyselection.cpp:155 msgid "Selected _Keys:" msgstr "选中的按键(_K):" #: ../utils/scimkeyselection.cpp:200 msgid "Key Code:" msgstr "é”®ç ï¼š" #: ../utils/scimkeyselection.cpp:218 msgid "..." msgstr "..." #: ../utils/scimkeyselection.cpp:223 msgid "Modifiers:" msgstr "修正符:" #: ../utils/scimkeyselection.cpp:236 msgid "_Ctrl" msgstr "_Ctrl(_C)" #: ../utils/scimkeyselection.cpp:240 msgid "A_lt" msgstr "A_lt(_l)" #: ../utils/scimkeyselection.cpp:244 msgid "_Shift" msgstr "_Shift(_S)" #: ../utils/scimkeyselection.cpp:248 msgid "_Release" msgstr "释放(_R)" #: ../utils/scimkeyselection.cpp:258 msgid "_Meta" msgstr "_Meta(_M)" #: ../utils/scimkeyselection.cpp:262 msgid "S_uper" msgstr "S_uper(_u)" #: ../utils/scimkeyselection.cpp:266 msgid "_Hyper" msgstr "_Hyper(_H)" #: ../utils/scimkeyselection.cpp:331 msgid "Please enter a Key Code first." msgstr "请先输入一个键ç ã€‚" #: ../utils/scimkeyselection.cpp:385 msgid "" "Press a key (or a key combination).\n" "This dialog will be closed when the key is released." msgstr "" "请按一个键或组åˆé”®ã€‚\n" "本对è¯çª—会在按键释放时关闭。" #: ../utils/scimkeyselection.cpp:388 msgid "Grabbing a key." msgstr "æ•æ‰æŒ‰é”®" #: ../utils/scimkeyselection.cpp:678 msgid "Key Selection" msgstr "按键选择" #: ../utils/scimtrayicon.c:108 msgid "Orientation" msgstr "定ä½" #: ../utils/scimtrayicon.c:109 msgid "The orientation of the tray." msgstr "托盘定ä½ã€‚" #~ msgid "Are you sure you want to quit SCIM Setup?" #~ msgstr "你确定è¦é€€å‡º SCIM 设置程åºä¹ˆ?" #~ msgid "En" #~ msgstr "英" #, fuzzy #~ msgid "_Switch input method globally" #~ msgstr "显示输入法图标(_I)" #~ msgid "Preedit String mode" #~ msgstr "预编辑字符串模å¼" #~ msgid "X Window" #~ msgstr "X 窗å£" #~ msgid "A FrontEnd module for X11R6 Window System, using XIM Protocol." #~ msgstr "一个用于 X11R6 窗å£ç³»ç»Ÿçš„å‰ç«¯æ¨¡å—, 使用 XIM åè®®." #~ msgid "XIM Settings" #~ msgstr "XIM 设置" #~ msgid "_On The Spot" #~ msgstr "在光标处预编辑(_O)" #~ msgid "_Dynamic Event Flow" #~ msgstr "动æ€äº‹ä»¶æµ(_D)" #~ msgid "" #~ "If this option is checked, the OnTheSpot input style will be used when " #~ "the client supports it." #~ msgstr "" #~ "如果选中这个选项, å½“å®¢æˆ·ç«¯æ”¯æŒæ—¶, 预编辑字符串将显示在光标ä½ç½®ä¸Š, å³ On " #~ "The Spot 模å¼." #~ msgid "" #~ "If this option is checked, then dynamic event flow will be used.This can " #~ "speed up the key event response, especially in remote X11 environment.But " #~ "SCIM may become unstable." #~ msgstr "" #~ "如果选中这个选项, 则会使用动æ€äº‹ä»¶æµ. è¿™å¯ä»¥åŠ å¿«æŒ‰é”®äº‹ä»¶çš„å“应速度, 特别是" #~ "在远程 X11 环境中. 但 SCIM å¯èƒ½ä¼šå˜å¾—ä¸ç¨³å®š." #~ msgid "Portuguese (Brazilian)" #~ msgstr "è‘¡è„牙语(巴西)" #~ msgid "Slovene" #~ msgstr "斯洛文尼亚语" #, fuzzy #~ msgid "Global" #~ msgstr "全局设置" #, fuzzy #~ msgid "" #~ "\n" #~ "(C) 2002-2004 James Su \n" #~ "\n" #~ msgstr "(C) 2002-2004 James Su " #~ msgid "Hot Keys" #~ msgstr "热键" #~ msgid "" #~ "\n" #~ "(C) 2002-2004 James Su \n" #~ "\n" #~ "Hot keys:\n" #~ "\n" #~ " " #~ msgstr "" #~ "\n" #~ "(C) 2002-2004 James Su \n" #~ "\n" #~ "热键:\n" #~ "\n" #~ " " #~ msgid "" #~ ":\n" #~ " open/close the input method.\n" #~ "\n" #~ " " #~ msgstr "" #~ ":\n" #~ " 打开/关闭输入法.\n" #~ "\n" #~ " " #~ msgid "" #~ ":\n" #~ " switch to the next input method.\n" #~ "\n" #~ " " #~ msgstr "" #~ ":\n" #~ " 切æ¢åˆ°ä¸‹ä¸€ä¸ªè¾“入法.\n" #~ "\n" #~ " " #~ msgid "" #~ ":\n" #~ " switch to the previous input method.\n" #~ "\n" #~ "\n" #~ msgstr "" #~ ":\n" #~ " 切æ¢åˆ°å‰ä¸€ä¸ªè¾“入法.\n" #~ "\n" #~ "\n" #~ msgid "Full/Half Letter" #~ msgstr "å…¨/åŠè§’字符" #~ msgid "Full/Half Punct" #~ msgstr "å…¨/åŠè§’标点" #~ msgid "" #~ "The input mode of the letters. Click to toggle between half and full." #~ msgstr "å­—æ¯è¾“入模å¼. 点击以切æ¢å…¨è§’/åŠè§’模å¼." #~ msgid "" #~ "The input mode of the puncutations. Click to toggle between half and full." #~ msgstr "标点输入模å¼. 点击以切æ¢å…¨è§’/åŠè§’模å¼." #~ msgid "" #~ " Switch between full/half width letter mode.\n" #~ "\n" #~ " " #~ msgstr "" #~ " 切æ¢å…¨è§’å’ŒåŠè§’字符状æ€.\n" #~ "\n" #~ " " #~ msgid "" #~ " Switch between full/half width punctuation mode.\n" #~ "\n" #~ " " #~ msgstr "" #~ " 切æ¢å…¨è§’å’ŒåŠè§’标点符å·çжæ€.\n" #~ "\n" #~ " " #~ msgid "" #~ " Switch between Forward/Input mode.\n" #~ "\n" #~ " " #~ msgstr "" #~ " åˆ‡æ¢ è½¬å‘/输入 模å¼.\n" #~ "\n" #~ " " #~ msgid "" #~ " Add a new phrase.\n" #~ "\n" #~ " " #~ msgstr "" #~ " 添加一个新è¯.\n" #~ "\n" #~ " " #~ msgid "" #~ " Delete the selected phrase.\n" #~ "\n" #~ msgstr "" #~ " 删除选中的è¯è¯­.\n" #~ "\n" #~ msgid "" #~ " Control+Down:\n" #~ " Move lookup cursor to next shorter phrase\n" #~ " Only available when LongPhraseFirst option is set.\n" #~ "\n" #~ msgstr "" #~ " Control+Down:\n" #~ " 将候选è¯è¡¨çš„光标移动到下一个更短的è¯\n" #~ " åªåœ¨æ‰“å¼€ LongPhraseFirst 选项的时候æ‰ç”Ÿæ•ˆ.\n" #~ "\n" #~ msgid "" #~ " Control+Up:\n" #~ " Move lookup cursor to previous longer phrase\n" #~ " Only available when LongPhraseFirst option is set.\n" #~ "\n" #~ msgstr "" #~ " Control+Up:\n" #~ " 将候选è¯è¡¨çš„光标移动到å‰ä¸€ä¸ªæ›´é•¿çš„è¯\n" #~ " åªåœ¨æ‰“å¼€ LongPhraseFirst 选项的时候æ‰ç”Ÿæ•ˆ.\n" #~ "\n" #~ msgid "" #~ " Esc:\n" #~ " reset the input method.\n" #~ "\n" #~ "\n" #~ msgstr "" #~ " Esc:\n" #~ " å¤ä½è¾“入法.\n" #~ "\n" #~ "\n" #~ msgid "" #~ "How to add a phrase:\n" #~ " Input the new phrase as normal, then press the\n" #~ " hot key. A hint will be shown to let you input a key\n" #~ " for this phrase.\n" #~ " Input a key then press the space bar.\n" #~ " A hint will be shown to indicate whether\n" #~ " the phrase was added sucessfully.\n" #~ msgstr "" #~ "怎样添加一个è¯è¯­:\n" #~ " 首先在正常状æ€ä¸‹è¾“入新è¯, ç„¶åŽæŒ‰æ·»åŠ è¯è¯­å¿«æ·é”®.\n" #~ " 将会显示一个æç¤ºè®©ä½ ä¸ºè¿™ä¸ªè¯è¯­è¾“入一个键串.\n" #~ " è¾“å…¥é”®ä¸²åŽæŒ‰ç©ºæ ¼é”®. 会有一个æç¤ºè¯´æ˜ŽåŠ è¯\n" #~ " æ˜¯å¦æˆåŠŸ.\n" #~ msgid "Input a key string for phrase: " #~ msgstr "为这个è¯è¾“入一个键串: " #~ msgid "Success." #~ msgstr "æˆåŠŸ." #~ msgid "Failed." #~ msgstr "失败." #~ msgid "Generic Table" #~ msgstr "通用ç è¡¨" #~ msgid "An IMEngine Module which uses generic table input method file." #~ msgstr "一个使用通用ç è¡¨è¾“入法文件的输入法引擎模å—." #~ msgid "Full width _punctuation:" #~ msgstr "å…¨/åŠè§’标点切æ¢(_P):" #~ msgid "Select full width puncutation keys" #~ msgstr "选择全/åŠè§’标点状æ€åˆ‡æ¢é”®" #~ msgid "" #~ "The key events to switch full/half width punctuation input mode. Click on " #~ "the button on the right to edit it." #~ msgstr "用以切æ¢å…¨/åŠè§’标点输入模å¼çš„æŒ‰é”®. 点击å³è¾¹çš„æŒ‰é’®è¿›è¡Œç¼–辑." #~ msgid "Full width _letter:" #~ msgstr "å…¨/åŠè§’å­—æ¯åˆ‡æ¢(_L):" #~ msgid "Select full width letter keys" #~ msgstr "选择全/åŠè§’å­—æ¯çжæ€åˆ‡æ¢é”®" #~ msgid "" #~ "The key events to switch full/half width letter input mode. Click on the " #~ "button on the right to edit it." #~ msgstr "用以切æ¢å…¨/åŠè§’å­—æ¯è¾“入模å¼çš„æŒ‰é”®. 点击å³è¾¹çš„æŒ‰é’®è¿›è¡Œç¼–辑." #~ msgid "_Mode switch:" #~ msgstr "输入模å¼åˆ‡æ¢(_M):" #~ msgid "Select mode switch keys" #~ msgstr "选择输入模å¼åˆ‡æ¢é”®" #~ msgid "" #~ "The key events to change current input mode. Click on the button on the " #~ "right to edit it." #~ msgstr "用以切æ¢å½“å‰è¾“入模å¼çš„æŒ‰é”®. 点击å³è¾¹çš„æŒ‰é’®è¿›è¡Œç¼–辑." #~ msgid "_Add phrase:" #~ msgstr "添加è¯è¯­(_A):" #~ msgid "Select add phrase keys." #~ msgstr "选择添加è¯è¯­é”®" #~ msgid "" #~ "The key events to add a new user defined phrase. Click on the button on " #~ "the right to edit it." #~ msgstr "用以添加用户自定义è¯è¯­çš„æŒ‰é”®. 点击å³è¾¹çš„æŒ‰é’®è¿›è¡Œç¼–辑." #~ msgid "_Delete phrase:" #~ msgstr "删除è¯è¯­(_D):" #~ msgid "Select delete phrase keys." #~ msgstr "选择删除è¯è¯­é”®" #~ msgid "" #~ "The key events to delete a selected phrase. Click on the button on the " #~ "right to edit it." #~ msgstr "用以删除选中è¯è¯­çš„æŒ‰é”®. 点击å³è¾¹çš„æŒ‰é’®è¿›è¡Œç¼–辑." #~ msgid "Show _prompt" #~ msgstr "显示æç¤º(_P)" #~ msgid "Show key _hint" #~ msgstr "显示é€é”®æç¤º(_H)" #~ msgid "Save _user table in binary format" #~ msgstr "以二进制格å¼ä¿å­˜ç”¨æˆ·ç è¡¨(_U)" #~ msgid "Show the u_ser defined phrases first" #~ msgstr "优先显示用户自定义的è¯è¯­(_S)" #~ msgid "Show the _longer phrases first" #~ msgstr "优先显示较长的è¯è¯­(_L)" #~ msgid "" #~ "If this option is checked, the key prompt of the currently selected " #~ "phrase will be shown." #~ msgstr "如果选中这个选项, 则显示当å‰è¯è¯­æŒ‰é”®çš„æç¤ºä¿¡æ¯." #~ msgid "" #~ "If this option is checked, the remaining keystrokes of the phraseswill be " #~ "shown on the lookup table." #~ msgstr "如果选中这个选项, 将在候选è¯è¡¨ä¸­æ˜¾ç¤ºæ¯ä¸ªè¯è¯­å‰©ä¸‹éœ€è¦è¾“入的按键." #~ msgid "" #~ "If this option is checked, the user table will be stored with binary " #~ "format, this will increase the loading speed." #~ msgstr "如果选中这个选项, 用户ç è¡¨å°†ä»¥äºŒè¿›åˆ¶æ ¼å¼å­˜å‚¨, 这会æé«˜è°ƒå…¥é€Ÿåº¦." #~ msgid "" #~ "If this option is checked, the user defined phrases will be shown in " #~ "front of others. " #~ msgstr "如果选中这个选项, 将优先显示用户自定义的è¯è¯­." #~ msgid "" #~ "If this option is checked, the longer phrase will be shown in front of " #~ "others. " #~ msgstr "如果选中这个选项, 将优先显示较长的è¯è¯­." #~ msgid "The installed tables:" #~ msgstr "已安装的ç è¡¨:" #~ msgid "_Install" #~ msgstr "安装(_I)" #~ msgid "Install a new table." #~ msgstr "安装一个新ç è¡¨." #~ msgid "_Delete" #~ msgstr "删除(_D)" #~ msgid "Delete the selected table." #~ msgstr "删除选中的ç è¡¨." #~ msgid "_Properties" #~ msgstr "属性(_P)" #~ msgid "Edit the properties of the selected table." #~ msgstr "编辑选中的ç è¡¨çš„属性." #~ msgid "Generic" #~ msgstr "通用" #~ msgid "Table Management" #~ msgstr "ç è¡¨ç®¡ç†" #~ msgid "Select an icon file" #~ msgstr "选择一个图标文件" #~ msgid "User" #~ msgstr "用户" #~ msgid "System" #~ msgstr "系统" #~ msgid "Please select the table file to be installed." #~ msgstr "请选择è¦å®‰è£…çš„ç è¡¨æ–‡ä»¶." #~ msgid "Failed to install the table! It's already in table file directory." #~ msgstr "ç è¡¨å®‰è£…失败! 它已ç»è¢«å®‰è£…到ç è¡¨ç›®å½•中了." #~ msgid "Failed to load the table file!" #~ msgstr "无法调入ç è¡¨æ–‡ä»¶!" #~ msgid "" #~ "Failed to install the table! Another version of this table was already " #~ "installed." #~ msgstr "ç è¡¨å®‰è£…失败! 这个ç è¡¨çš„å¦å¤–一个版本已ç»è¢«å®‰è£…过了." #~ msgid "" #~ "Another version of this table was already installed. Do you want to " #~ "replace it with the new one?" #~ msgstr "å·²ç»å®‰è£…了这个ç è¡¨çš„å¦å¤–一个版本. 你想用新ç è¡¨æ›¿æ¢åŽŸæ¥é‚£ä¸ªä¹ˆ?" #~ msgid "" #~ "Failed to install the table! A table with the same file name was already " #~ "installed." #~ msgstr "ç è¡¨å®‰è£…失败! ä¸€ä¸ªæœ‰ç›¸åŒæ–‡ä»¶åçš„ç è¡¨å·²ç»è¢«å®‰è£…." #~ msgid "" #~ "A table with the same file name was already installed. Do you want to " #~ "overwrite it?" #~ msgstr "ä¸€ä¸ªæœ‰ç›¸åŒæ–‡ä»¶åçš„ç è¡¨å·²ç»è¢«å®‰è£…. 你想覆盖它么?" #~ msgid "Failed to install the table to %s!" #~ msgstr "å°†ç è¡¨å®‰è£…到 %s 失败!" #~ msgid "Can not delete the file %s!" #~ msgstr "无法删除文件 %s!" #~ msgid "Are you sure to delete this table file?" #~ msgstr "你确认删除这个ç è¡¨æ–‡ä»¶?" #~ msgid "Failed to delete the table file!" #~ msgstr "ç è¡¨æ–‡ä»¶åˆ é™¤å¤±è´¥!" #~ msgid "True" #~ msgstr "真" #~ msgid "False" #~ msgstr "å‡" #~ msgid "Split Keys:" #~ msgstr "分隔键:" #~ msgid "The key strokes to split inputed string." #~ msgstr "用于分隔输入字符串的按键." #~ msgid "Commit Keys:" #~ msgstr "æäº¤é”®:" #~ msgid "The key strokes to commit converted result to client." #~ msgstr "用于将转æ¢ç»“æžœæäº¤ç»™å®¢æˆ·ç¨‹åºçš„æŒ‰é”®." #~ msgid "Forward Keys:" #~ msgstr "转å‘é”®:" #~ msgid "The key strokes to forward inputed string to client." #~ msgstr "用于将已输入的字符串转å‘给客户程åºçš„æŒ‰é”®." #~ msgid "The key strokes to select candidate phrases in lookup table." #~ msgstr "在候选è¯è¡¨ä¸­é€‰æ‹©å€™é€‰è¯çš„æŒ‰é”®." #~ msgid "Page Up Keys:" #~ msgstr "å‘上翻页键:" #~ msgid "The lookup table page up keys" #~ msgstr "候选è¯è¡¨å‘上翻页键" #~ msgid "Page Down Keys:" #~ msgstr "å‘下翻页键:" #~ msgid "The lookup table page down keys" #~ msgstr "候选è¯è¡¨å‘下翻页键" #~ msgid "Table Properties" #~ msgstr "ç è¡¨å±žæ€§" #~ msgid "Name:" #~ msgstr "åç§°:" #~ msgid "The name of this table." #~ msgstr "这个ç è¡¨çš„åç§°." #~ msgid "Author:" #~ msgstr "作者:" #~ msgid "The author of this table." #~ msgstr "这个ç è¡¨çš„作者." #~ msgid "UUID:" #~ msgstr "唯一å·:" #~ msgid "The unique ID of this table." #~ msgstr "这个ç è¡¨çš„唯一å·." #~ msgid "Serial Number:" #~ msgstr "系列å·:" #~ msgid "The serial number of this table." #~ msgstr "这个ç è¡¨çš„系列å·." #~ msgid "Icon File:" #~ msgstr "图标文件:" #~ msgid "The icon file of this table." #~ msgstr "这个ç è¡¨çš„图标文件." #~ msgid "Supported Languages:" #~ msgstr "支æŒçš„语言:" #~ msgid "The languages supported by this table." #~ msgstr "这个ç è¡¨æ”¯æŒçš„语言." #~ msgid "Status Prompt:" #~ msgstr "çŠ¶æ€æç¤º:" #~ msgid "A prompt string to be shown in status area." #~ msgstr "è¦æ˜¾ç¤ºåœ¨çжæ€åŒºä¸­çš„æç¤ºå­—符串." #~ msgid "Valid Input Chars:" #~ msgstr "åˆæ³•的输入字符:" #~ msgid "The valid input chars of this table." #~ msgstr "这个ç è¡¨çš„åˆæ³•的输入字符." #~ msgid "Multi Wildcard Char:" #~ msgstr "å¤šé‡æ‰©å±•字符:" #~ msgid "" #~ "The multi wildcard chars of this table. These chars can be used to match " #~ "one or more arbitrary chars." #~ msgstr "这个ç è¡¨çš„å¤šé‡æ‰©å±•字符. 这些字符å¯ä»¥ç”¨æ¥åŒ¹é…一个或多个任æ„字符." #~ msgid "Single Wildcard Char:" #~ msgstr "å•一扩展字符:" #~ msgid "" #~ "The single wildcard chars of this table.These chars can be used to match " #~ "one arbitrary char." #~ msgstr "这个ç è¡¨çš„å•一扩展字符. 这些字符å¯ä»¥ç”¨äºŽåŒ¹é…一个任æ„字符." #~ msgid "Max Key Length:" #~ msgstr "最大键长度:" #~ msgid "The maxmium length of key strings." #~ msgstr "键串的最大长度." #~ msgid "Show Key Prompt:" #~ msgstr "显示键æç¤º:" #~ msgid "If true then the key prompts will be shown instead of the raw keys." #~ msgstr "如果选中这个选项, 则显å¼é”®çš„æç¤ºè€Œä¸æ˜¯åŽŸå§‹çš„é”®." #~ msgid "Auto Select:" #~ msgstr "自动选择:" #~ msgid "" #~ "If true then the first candidate phrase will be selected automatically " #~ "when inputing the next key." #~ msgstr "如果为真, 则在输入下一个键的时候, 第一个候选è¯å°†è¢«è‡ªåŠ¨é€‰æ‹©." #~ msgid "Auto Wildcard:" #~ msgstr "自动扩展:" #~ msgid "" #~ "If true then a multi wildcard char will be append to the end of inputed " #~ "key string when searching phrases." #~ msgstr "" #~ "如果为真, 则会在æœç´¢è¯è¯­çš„æ—¶å€™, 在已输入的键串åŽé™„åŠ ä¸€ä¸ªå¤šé‡æ‰©å±•字符." #~ msgid "Auto Commit:" #~ msgstr "自动æäº¤:" #~ msgid "" #~ "If true then the converted result string will be committed to client " #~ "automatically." #~ msgstr "如果为真, 则转æ¢ç»“果字符串将被自动æäº¤åˆ°å®¢æˆ·ç¨‹åº." #~ msgid "Auto Split:" #~ msgstr "自动分隔:" #~ msgid "" #~ "If true then the inputed key string will be splitted automatically when " #~ "necessary." #~ msgstr "如果为真, 则当有需è¦çš„æ—¶å€™, 自动分隔输入的键串." #~ msgid "Discard Invalid Key:" #~ msgstr "丢弃无效键:" #~ msgid "" #~ "If true then the invalid key will be discarded automatically.This option " #~ "is only valid when Auto Select and Auto Commit is true." #~ msgstr "" #~ "如果为真, 则无效键将被自动丢弃. 此选项仅在自动选择和自动æäº¤é€‰é¡¹å¼€å¯æ—¶æœ‰" #~ "效." #~ msgid "Dynamic Adjust:" #~ msgstr "动æ€è°ƒæ•´:" #~ msgid "If true then the phrases' frequencies will be adjusted dynamically." #~ msgstr "如果为真, 则会动æ€è°ƒæ•´è¯è¯­çš„频率信æ¯." #~ msgid "Auto Fill Preedit Area:" #~ msgstr "自动填充预编辑区:" #~ msgid "" #~ "If true then the preedit string will be filled up with the current " #~ "candiate phrase automatically.This option is only valid when Auto Select " #~ "is TRUE." #~ msgstr "" #~ "如果为真, 则预编辑字符串将自动被当å‰å€™é€‰è¯å¡«å……. 此选项仅在自动选择选项开å¯" #~ "时有效." #~ msgid "Always Show Lookup Table:" #~ msgstr "一直显示候选è¯è¡¨:" #~ msgid "" #~ "If true then the lookup table will always be shown when any candidate " #~ "phrase is available. Otherwise the lookup table will only be shown when " #~ "necessary.\n" #~ "If Auto Fill is false, then this option will be no effect, and always be " #~ "true." #~ msgstr "" #~ "如果为真,则当有候选è¯çš„æ—¶å€™æ€»æ˜¯æ˜¾ç¤ºå€™é€‰è¯è¡¨. å¦åˆ™å€™é€‰è¯è¡¨å°†åªåœ¨éœ€è¦çš„æ—¶å€™" #~ "æ‰è¢«æ˜¾ç¤º.\n" #~ "如果自动填充为å‡, 则该选项ä¸èµ·ä½œç”¨, 该值将永远为真." #~ msgid "Default Full Width Punct:" #~ msgstr "缺çœå…¨è§’标点:" #~ msgid "If true then full width punctuations will be inputed by default." #~ msgstr "如果为真, 则在缺çœçжæ€ä¸‹è¾“入全角标点." #~ msgid "Default Full Width Letter:" #~ msgstr "缺çœå…¨è§’å­—æ¯:" #~ msgid "If true then full width letters will be inputed by default." #~ msgstr "如果为真, 则在缺çœçжæ€ä¸‹è¾“入全角字符." #~ msgid "Invalid icon file." #~ msgstr "无效的图标文件." #~ msgid "Invalid languages." #~ msgstr "无效的语言." #~ msgid "Invalid status prompt." #~ msgstr "æ— æ•ˆçš„çŠ¶æ€æç¤º." #~ msgid "Invalid multi wildcard chars." #~ msgstr "æ— æ•ˆçš„å¤šé‡æ‰©å±•字符." #~ msgid "Invalid single wildcard chars." #~ msgstr "无效的å•一扩展字符." #~ msgid "Invalid commit keys." #~ msgstr "无效的æäº¤é”®." #~ msgid "Invalid select keys." #~ msgstr "无效的选择键." #~ msgid "Invalid page up keys." #~ msgstr "无效的å‘上翻页键." #~ msgid "Invalid page down keys." #~ msgstr "无效的å‘下翻页键." #~ msgid "Invalid max key length." #~ msgstr "无效的最大键长度." #~ msgid "Failed to save table %s!" #~ msgstr "ä¿å­˜ç è¡¨ %s 失败!" #~ msgid "Failed to load any Config Modules!" #~ msgstr "无法调入任何é…置模å—!" #~ msgid "_Current Config Module:" #~ msgstr "当å‰é…置模å—(_C):" #~ msgid "" #~ msgstr "<没有找到>" #~ msgid "Current Config Module has been changed to %s." #~ msgstr "当å‰é…置模å—å·²ç»å˜æˆ %s." #~ msgid "Start the SCIM Setup Utility." #~ msgstr "å¯åЍ SCIM 设置工具." #~ msgid "Setup ..." #~ msgstr "设置 ..." #~ msgid "Show status _box" #~ msgstr "æ˜¾ç¤ºçŠ¶æ€æ (_B)" #~ msgid "" #~ "If this option is checked, a float status box will be displayed to show " #~ "the status of current input module." #~ msgstr "如果选中这个选项, å°†æ˜¾ç¤ºä¸€ä¸ªæµ®åŠ¨çš„çŠ¶æ€æ ç”¨ä»¥æ˜¾ç¤ºå½“å‰è¾“入模å—的状æ€." #~ msgid "" #~ "If this option is checked, a status box will be displayed on the lower " #~ "left corner of the client window to show the status of the current input " #~ "method.This option needs the support of the client application." #~ msgstr "" #~ "如果选中这个选项, 将在客户程åºçª—å£çš„å·¦ä¸‹è§’æ˜¾ç¤ºä¸€ä¸ªæµ®åŠ¨çš„çŠ¶æ€æ , 用以显示当" #~ "å‰è¾“入法的状æ€. 这个选项需è¦å®¢æˆ·åº”用程åºçš„æ”¯æŒ." scim-1.4.14/po/zh_TW.po000066400000000000000000001054011177210725600145560ustar00rootroot00000000000000# translation of zh_TW.po to Traditional Chinese # Jim Huang , 2004, 2005. # msgid "" msgstr "" "Project-Id-Version: scim 0.1.4\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-06-22 11:40-0700\n" "PO-Revision-Date: 2005-07-06 22:41+0800\n" "Last-Translator: Jim Huang \n" "Language-Team: scim@freedesktop.org\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../src/scim_compose_key.cpp:126 msgid "English/European" msgstr "英文/æ­æ´²èªžæ–‡" #. Append an entry for forward mode. #: ../src/scim_imengine.cpp:638 ../src/scim_utility.cpp:693 #: ../modules/FrontEnd/scim_x11_frontend.cpp:1897 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1281 #: ../extras/panel/scim_panel_gtk.cpp:2814 msgid "English/Keyboard" msgstr "英文éµç›¤" #: ../src/scim_utility.cpp:694 msgid "Amharic" msgstr "阿姆哈拉語" #: ../src/scim_utility.cpp:695 msgid "Arabic" msgstr "阿拉伯文" #: ../src/scim_utility.cpp:696 msgid "Arabic (Egypt)" msgstr "阿拉伯文(埃åŠ)" #: ../src/scim_utility.cpp:697 msgid "Arabic (Lebanon)" msgstr "阿拉伯文(黎巴嫩)" #: ../src/scim_utility.cpp:698 msgid "Assamese" msgstr "阿薩姆語" #: ../src/scim_utility.cpp:699 msgid "Azerbaijani" msgstr "亞賽拜然語" #: ../src/scim_utility.cpp:700 msgid "Belarusian" msgstr "白俄羅斯語" #: ../src/scim_utility.cpp:701 msgid "Bulgarian" msgstr "ä¿åŠ åˆ©äºžèªž" #: ../src/scim_utility.cpp:702 ../src/scim_utility.cpp:703 msgid "Bengali" msgstr "孟加拉語" #: ../src/scim_utility.cpp:704 msgid "Bengali (India)" msgstr "孟加拉語(å°åº¦)" #: ../src/scim_utility.cpp:705 msgid "Tibetan" msgstr "è—語" #: ../src/scim_utility.cpp:706 msgid "Bosnian" msgstr "波斯尼亞語" #: ../src/scim_utility.cpp:707 msgid "Catalan" msgstr "加泰羅尼亞語" #: ../src/scim_utility.cpp:708 ../src/scim_keyboard_layout_data.h:4595 msgid "Czech" msgstr "æ·å…‹èªž" #: ../src/scim_utility.cpp:709 msgid "Welsh" msgstr "å¨çˆ¾æ–¯èªž" #: ../src/scim_utility.cpp:710 ../src/scim_keyboard_layout_data.h:4597 msgid "Danish" msgstr "丹麥語" #: ../src/scim_utility.cpp:711 ../src/scim_keyboard_layout_data.h:4605 msgid "German" msgstr "å¾·æ–‡" #: ../src/scim_utility.cpp:712 msgid "Divehi" msgstr "迪韋西語" #: ../src/scim_utility.cpp:713 ../src/scim_keyboard_layout_data.h:4608 msgid "Greek" msgstr "希臘文" #: ../src/scim_utility.cpp:714 msgid "English" msgstr "英文" #: ../src/scim_utility.cpp:715 msgid "English (Australian)" msgstr "英文(澳洲)" #: ../src/scim_utility.cpp:716 msgid "English (Canadian)" msgstr "英文(加拿大)" #: ../src/scim_utility.cpp:717 msgid "English (British)" msgstr "英文(英國)" #: ../src/scim_utility.cpp:718 msgid "English (Ireland)" msgstr "英文(愛爾蘭)" #: ../src/scim_utility.cpp:719 msgid "English (American)" msgstr "英文(美國)" #: ../src/scim_utility.cpp:720 ../src/scim_utility.cpp:721 #: ../src/scim_keyboard_layout_data.h:4621 msgid "Spanish" msgstr "西ç­ç‰™æ–‡" #: ../src/scim_utility.cpp:722 msgid "Spanish (Mexico)" msgstr "西ç­ç‰™æ–‡(墨西哥)" #: ../src/scim_utility.cpp:723 ../src/scim_keyboard_layout_data.h:4600 msgid "Estonian" msgstr "愛沙尼亞語" #: ../src/scim_utility.cpp:724 msgid "Basque" msgstr "巴斯克語" #: ../src/scim_utility.cpp:725 msgid "Persian" msgstr "波斯語" #: ../src/scim_utility.cpp:726 ../src/scim_keyboard_layout_data.h:4601 msgid "Finnish" msgstr "芬蘭文" #: ../src/scim_utility.cpp:727 ../src/scim_keyboard_layout_data.h:4602 msgid "French" msgstr "法文" #: ../src/scim_utility.cpp:728 msgid "Irish" msgstr "愛爾蘭語" #: ../src/scim_utility.cpp:729 msgid "Galician" msgstr "加利西亞語" #: ../src/scim_utility.cpp:730 msgid "Gujarati" msgstr "å¤å‰æ‹‰ç‰¹èªž" #: ../src/scim_utility.cpp:731 ../src/scim_utility.cpp:740 msgid "Hebrew" msgstr "希伯來文" #: ../src/scim_utility.cpp:732 msgid "Hindi" msgstr "北å°åº¦æ–‡" #: ../src/scim_utility.cpp:733 ../src/scim_keyboard_layout_data.h:4594 msgid "Croatian" msgstr "克羅埃西亞語" #: ../src/scim_utility.cpp:734 ../src/scim_keyboard_layout_data.h:4609 msgid "Hungarian" msgstr "匈牙利文" #: ../src/scim_utility.cpp:735 msgid "Armenian" msgstr "亞美尼亞語" #: ../src/scim_utility.cpp:736 msgid "Interlingua" msgstr "世界語" #: ../src/scim_utility.cpp:737 msgid "Indonesian" msgstr "å°å°¼èªž" #: ../src/scim_utility.cpp:738 ../src/scim_keyboard_layout_data.h:4627 msgid "Icelandic" msgstr "冰島語" #: ../src/scim_utility.cpp:739 ../src/scim_keyboard_layout_data.h:4610 msgid "Italian" msgstr "義大利文" #: ../src/scim_utility.cpp:741 ../src/scim_keyboard_layout_data.h:4611 msgid "Japanese" msgstr "日文" #: ../src/scim_utility.cpp:742 msgid "Georgian" msgstr "喬治亚語" #: ../src/scim_utility.cpp:743 msgid "Kazakh" msgstr "哈薩克語" #: ../src/scim_utility.cpp:744 msgid "Cambodian" msgstr "柬埔寨文" #: ../src/scim_utility.cpp:745 msgid "Kannada" msgstr "å¡ç´é”語" #: ../src/scim_utility.cpp:746 msgid "Korean" msgstr "韓文" #: ../src/scim_utility.cpp:747 msgid "Laothian" msgstr "è€æ’¾èªž" #: ../src/scim_utility.cpp:748 ../src/scim_keyboard_layout_data.h:4628 msgid "Lithuanian" msgstr "立陶宛文" #: ../src/scim_utility.cpp:749 msgid "Latvian" msgstr "拉脫維亞語" #: ../src/scim_utility.cpp:750 msgid "Macedonian" msgstr "馬其頓語" #: ../src/scim_utility.cpp:751 msgid "Malayalam" msgstr "馬拉雅拉姆語" #: ../src/scim_utility.cpp:752 msgid "Mongolian" msgstr "è’™å¤æ–‡" #: ../src/scim_utility.cpp:753 msgid "Marathi" msgstr "馬拉地語" #: ../src/scim_utility.cpp:754 msgid "Malay" msgstr "馬來語" #: ../src/scim_utility.cpp:755 msgid "Burmese" msgstr "緬甸語" #: ../src/scim_utility.cpp:756 msgid "Nepali" msgstr "尼泊爾語" #: ../src/scim_utility.cpp:757 ../src/scim_keyboard_layout_data.h:4598 msgid "Dutch" msgstr "è·è˜­æ–‡" #: ../src/scim_utility.cpp:758 msgid "Norwegian (nynorsk)" msgstr "挪å¨èªž(nynorsk)" #: ../src/scim_utility.cpp:759 msgid "Norwegian (bokmal)" msgstr "挪å¨èªž(bokmal)" #: ../src/scim_utility.cpp:760 msgid "Oriya" msgstr "奧里雅語" #: ../src/scim_utility.cpp:761 msgid "Punjabi" msgstr "æ—鮿™®èªž" #: ../src/scim_utility.cpp:762 ../src/scim_keyboard_layout_data.h:4613 msgid "Polish" msgstr "波蘭文" #: ../src/scim_utility.cpp:763 ../src/scim_utility.cpp:765 #: ../src/scim_keyboard_layout_data.h:4614 msgid "Portuguese" msgstr "è‘¡è„牙文" #: ../src/scim_utility.cpp:764 ../src/scim_keyboard_layout_data.h:4615 msgid "Portuguese (Brazil)" msgstr "è‘¡è„牙文(巴西)" #: ../src/scim_utility.cpp:766 msgid "Romanian" msgstr "羅馬尼亞語" #: ../src/scim_utility.cpp:767 ../src/scim_keyboard_layout_data.h:4617 msgid "Russian" msgstr "ä¿„æ–‡" #: ../src/scim_utility.cpp:768 msgid "Sinhala" msgstr "僧伽羅語" #: ../src/scim_utility.cpp:769 ../src/scim_keyboard_layout_data.h:4618 msgid "Slovak" msgstr "斯洛ä¼å…‹èªž" #: ../src/scim_utility.cpp:770 ../src/scim_keyboard_layout_data.h:4620 msgid "Slovenian" msgstr "斯洛文尼亞語" #: ../src/scim_utility.cpp:771 msgid "Albanian" msgstr "亞爾巴尼亞語" #: ../src/scim_utility.cpp:772 ../src/scim_utility.cpp:773 #: ../src/scim_utility.cpp:774 msgid "Serbian" msgstr "塞爾維亞語" #: ../src/scim_utility.cpp:775 ../src/scim_utility.cpp:777 #: ../src/scim_keyboard_layout_data.h:4624 msgid "Swedish" msgstr "瑞典語" #: ../src/scim_utility.cpp:776 msgid "Swedish (Finland)" msgstr "瑞典語(芬蘭)" #: ../src/scim_utility.cpp:778 msgid "Tamil" msgstr "塔米爾語" #: ../src/scim_utility.cpp:779 msgid "Telugu" msgstr "泰盧固語" #: ../src/scim_utility.cpp:780 msgid "Thai" msgstr "æ³°æ–‡" #: ../src/scim_utility.cpp:781 ../src/scim_keyboard_layout_data.h:4625 msgid "Turkish" msgstr "土耳其文" #: ../src/scim_utility.cpp:782 msgid "Uighur" msgstr "ç¶­å¾çˆ¾èªž" #: ../src/scim_utility.cpp:783 ../src/scim_keyboard_layout_data.h:4629 msgid "Ukrainian" msgstr "çƒå…‹è˜­èªž" #: ../src/scim_utility.cpp:784 msgid "Urdu" msgstr "çƒçˆ¾éƒ½èªž(巴基斯å¦)" #: ../src/scim_utility.cpp:785 msgid "Uzbek" msgstr "çƒçŽ†åˆ¥å…‹èªž" #: ../src/scim_utility.cpp:786 msgid "Vietnamese" msgstr "è¶Šå—æ–‡" #: ../src/scim_utility.cpp:787 msgid "Walloon" msgstr "è¯éš†èªž" #: ../src/scim_utility.cpp:788 ../src/scim_utility.cpp:789 msgid "Yiddish" msgstr "ä¾åœ°èªž" #: ../src/scim_utility.cpp:790 msgid "Chinese" msgstr "中文" #: ../src/scim_utility.cpp:791 ../src/scim_utility.cpp:793 msgid "Chinese (simplified)" msgstr "簡體中文" #: ../src/scim_utility.cpp:792 ../src/scim_utility.cpp:794 msgid "Chinese (traditional)" msgstr "ç¹é«”中文" #: ../src/scim_utility.cpp:876 msgid "Other" msgstr "其它語文" #: ../src/scim_keyboard_layout_data.h:4591 #: ../modules/IMEngine/scim_socket_imengine.cpp:386 #: ../modules/IMEngine/scim_socket_imengine.cpp:416 #: ../modules/IMEngine/scim_socket_imengine.cpp:501 #: ../modules/IMEngine/scim_socket_imengine.cpp:531 #: ../modules/IMEngine/scim_socket_imengine.cpp:561 msgid "Unknown" msgstr "未知" #: ../src/scim_keyboard_layout_data.h:4592 msgid "English (US)" msgstr "英文" #: ../src/scim_keyboard_layout_data.h:4593 msgid "Belgian" msgstr "比利時語" #: ../src/scim_keyboard_layout_data.h:4596 msgid "Czech (qwerty)" msgstr "æ·å…‹(標準éµç›¤)" #: ../src/scim_keyboard_layout_data.h:4599 msgid "Dvorak" msgstr "Dvorak" #: ../src/scim_keyboard_layout_data.h:4603 msgid "French (Canadian)" msgstr "法文(加拿大)" #: ../src/scim_keyboard_layout_data.h:4604 msgid "French (Switzerland)" msgstr "法文(瑞士)" #: ../src/scim_keyboard_layout_data.h:4606 msgid "German (with deadkeys)" msgstr "å¾·æ–‡(有deadkeys)" #: ../src/scim_keyboard_layout_data.h:4607 msgid "German (Swiss)" msgstr "å¾·æ–‡(瑞士)" #: ../src/scim_keyboard_layout_data.h:4612 msgid "Norwegian" msgstr "挪å¨èªž" #: ../src/scim_keyboard_layout_data.h:4616 msgid "Portuguese (Brazil US accents)" msgstr "è‘¡è„牙文(巴西ã€ç¾Žå¼ç™¼éŸ³)" #: ../src/scim_keyboard_layout_data.h:4619 msgid "Slovak (qwerty)" msgstr "斯洛ä¼å…‹èªž(標準éµç›¤)" #: ../src/scim_keyboard_layout_data.h:4622 msgid "Spanish (CP 850)" msgstr "西ç­ç‰™æ–‡(CP 850)" #: ../src/scim_keyboard_layout_data.h:4623 msgid "Spanish (Latin America)" msgstr "西ç­ç‰™æ–‡(拉ä¸ç¾Žæ´²)" #: ../src/scim_keyboard_layout_data.h:4626 msgid "English (UK)" msgstr "英å¼è‹±æ–‡" #: ../modules/Filter/scim_sctc_filter.cpp:57 msgid "Simplified-Traditional Chinese Conversion" msgstr "ç¹ç°¡é«”中文轉æ›" #: ../modules/Filter/scim_sctc_filter.cpp:60 msgid "Convert between Simplified Chinese and Traditional Chinese" msgstr "ç¹ç°¡é«”中文互轉" #: ../modules/Filter/scim_sctc_filter.cpp:71 msgid "SC-TC" msgstr "ç¹ç°¡é«”轉æ›" #: ../modules/Filter/scim_sctc_filter.cpp:73 #: ../modules/Filter/scim_sctc_filter.cpp:78 msgid "Simplified-Traditional Chinese conversion" msgstr "ç¹ç°¡é«”中文轉æ›" #: ../modules/Filter/scim_sctc_filter.cpp:76 msgid "No Conversion" msgstr "ä¸è½‰æ›" #: ../modules/Filter/scim_sctc_filter.cpp:81 msgid "Simplified to Traditional" msgstr "簡體轉ç¹é«”中文" #: ../modules/Filter/scim_sctc_filter.cpp:83 msgid "Convert Simplified Chinese to Traditional Chinese" msgstr "轉æ›ç°¡é«”中文為ç¹é«”中文" #: ../modules/Filter/scim_sctc_filter.cpp:86 msgid "Traditional to Simplified" msgstr "ç¹é«”轉簡體中文" #: ../modules/Filter/scim_sctc_filter.cpp:88 msgid "Convert Traditional Chinese to Simplified Chinese" msgstr "轉æ›ç¹é«”中文為簡體中文" #: ../modules/Filter/scim_sctc_filter.cpp:300 msgid "James Su " msgstr "蘇哲 " #: ../modules/Filter/scim_sctc_filter.cpp:425 #: ../modules/Filter/scim_sctc_filter.cpp:555 #: ../modules/Filter/scim_sctc_filter.cpp:571 msgid "SC->TC" msgstr "簡轉ç¹é«”" #: ../modules/Filter/scim_sctc_filter.cpp:431 #: ../modules/Filter/scim_sctc_filter.cpp:559 #: ../modules/Filter/scim_sctc_filter.cpp:575 msgid "TC->SC" msgstr "ç¹è½‰ç°¡é«”" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1845 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1231 #: ../extras/panel/scim_panel_gtk.cpp:2304 msgid "Smart Common Input Method platform " msgstr "泛用智慧型輸入法平å°" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1847 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1233 msgid "" "\n" "(C) 2002-2005 James Su \n" "\n" msgstr "" "\n" "(C) 2002-2005 蘇哲 \n" "\n" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1851 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1238 msgid "" ":\n" "\n" msgstr "" ":\n" "\n" #: ../modules/FrontEnd/scim_x11_frontend.cpp:1854 #: ../modules/FrontEnd/scim_x11_frontend.cpp:1857 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1241 #: ../extras/gtk2_immodule/gtkimcontextscim.cpp:1244 msgid "" "\n" "\n" msgstr "" "\n" "\n" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:120 msgid "RAW CODE" msgstr "內碼輸入" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:127 msgid "(C) 2002-2006 James Su " msgstr "(C) 2002-2006 蘇哲 " #: ../modules/IMEngine/scim_rawcode_imengine.cpp:140 msgid "" "Hot Keys:\n" "\n" " Control+u:\n" " switch between Multibyte encoding and Unicode.\n" "\n" " Esc:\n" " reset the input method.\n" msgstr "" "å¿«æ·éµï¼š\n" "\n" " Control+u:\n" " 切æ›åœ°å€ç·¨ç¢¼å’Œ Unicode 編碼。\n" "\n" " Esc:\n" " é‡è¨­è¼¸å…¥æ³•。\n" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:407 #: ../modules/IMEngine/scim_rawcode_imengine.cpp:423 msgid "The status of the current input method. Click to change it." msgstr "ç›®å‰è¼¸å…¥æ³•的模å¼ç‹€æ…‹ï¼Œæ»‘鼠點é¸å¯åˆ‡æ›æ¨¡å¼ã€‚" #: ../modules/IMEngine/scim_rawcode_imengine.cpp:409 msgid "Unicode" msgstr "Unicode" #: ../modules/SetupUI/scim_frontend_setup.cpp:82 #: ../modules/SetupUI/scim_imengine_setup.cpp:88 msgid "Global Setup" msgstr "全域設定" #: ../modules/SetupUI/scim_frontend_setup.cpp:87 msgid "" "Setup the global options used by All FrontEnd modules, including X11 " "FrontEnd, GTK IMModule, QT IMModule etc." msgstr "" "èª¿æ•´æ‰€æœ‰ä»‹é¢æ¨¡çµ„çš„å…±é€šè¨­å®šï¼ŒåŒ…å« X11 介é¢ã€GTK+ IMModuleã€Qt IMModule ç­‰" #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:143 msgid "_Trigger:" msgstr "作用éµ(_T):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:145 msgid "Select the trigger keys" msgstr "鏿“‡è¼¸å…¥æ³•的作用éµ" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:147 msgid "" "The key events to turn on/off SCIM input method. Click on the button on the " "right to edit it." msgstr "用來 開啟/關閉 SCIM 輸入法的作用éµï¼Œé»žå£“該按鈕後å¯ç·¨è¼¯ã€‚" #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:160 msgid "Turn _On:" msgstr "開啟(_O)" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:162 msgid "Select the Turn On keys" msgstr "鏿“‡é–‹å•Ÿ SCIM 按éµ" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:164 msgid "" "The key events to turn on SCIM input method. Click on the button on the " "right to edit it." msgstr "用來開啟 SCIM 輸入法,點壓該按鈕後å¯ç·¨è¼¯ã€‚" #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:177 msgid "Turn O_ff:" msgstr "關閉 (_F)" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:179 msgid "Select the Turn Off keys" msgstr "鏿“‡é—œé–‰ SCIM 按éµ" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:181 msgid "" "The key events to turn off SCIM input method. Click on the button on the " "right to edit it." msgstr "用來關閉 SCIM 輸入法,點壓該按鈕後å¯ç·¨è¼¯ã€‚" #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:194 msgid "_Next input method:" msgstr "下一種輸入法(_N):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:196 msgid "Select the next input method keys" msgstr "鏿“‡ä¸‹ä¸€ç¨®è¼¸å…¥æ³•按éµ" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:198 msgid "" "The key events to switch to the next input method. Click on the button on " "the right to edit it." msgstr "用來切æ›è‡³ä¸‹ä¸€ç¨®è¼¸å…¥æ³•的按éµï¼ŒæŒ‰éˆ•上滑鼠點é¸å¯ç·¨è¼¯ã€‚" #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:213 msgid "_Previous input method:" msgstr "上一種輸入法(_P):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:215 msgid "Select the previous input method keys" msgstr "鏿“‡ä¸Šä¸€ç¨®è¼¸å…¥æ³•按éµ" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:217 msgid "" "The key events to switch to the previous input method. Click on the button " "on the right to edit it." msgstr "用來切æ›è‡³ä¸Šä¸€ç¨®è¼¸å…¥æ³•的按éµï¼Œé»žå£“按鈕後å¯ç·¨è¼¯ã€‚" #. label #: ../modules/SetupUI/scim_frontend_setup.cpp:232 msgid "Show input method _menu:" msgstr "顯示輸入法é¸å–®(_M):" #. title #: ../modules/SetupUI/scim_frontend_setup.cpp:234 msgid "Select the show input method menu keys" msgstr "鏿“‡é¡¯ç¤ºè¼¸å…¥æ³•é¸å–®æŒ‰éµ" #. tooltip #: ../modules/SetupUI/scim_frontend_setup.cpp:236 msgid "" "The key events to show the input method menu. Click on the button on the " "right to edit it." msgstr "用來顯示輸入法é¸å–®çš„æŒ‰éµï¼Œé»žå£“按鈕後å¯ç·¨è¼¯ã€‚" #: ../modules/SetupUI/scim_frontend_setup.cpp:306 msgid "Options" msgstr "é¸é …設定" #: ../modules/SetupUI/scim_frontend_setup.cpp:321 msgid "_Keyboard Layout:" msgstr "éµç›¤æŽ’列(_K):" #: ../modules/SetupUI/scim_frontend_setup.cpp:342 msgid "" "You should choose your currently used keyboard layout here so that input " "methods, who care about keyboard layout, could work correctly." msgstr "您應é©ç•¶æŒ‘é¸éµç›¤æŽ’列方å¼ï¼Œé€™æ¨£è¼¸å…¥æ³•æ‰èƒ½æ­£ç¢ºé‹ä½œã€‚" #. On The Spot. #: ../modules/SetupUI/scim_frontend_setup.cpp:346 msgid "_Embed Preedit String into client window" msgstr "在輸入法客戶端視窗嵌入é å…ˆç·¨è¼¯å­—串(_E)" #: ../modules/SetupUI/scim_frontend_setup.cpp:351 msgid "" "If this option is checked, the preedit string will be displayed directly in " "the client input window, rather than in a independent float window." msgstr "" "如果勾å–這個é¸é …,é å…ˆç·¨è¼¯å­—串將會直接顯示於輸入法客戶端,而éžå‡ºç¾æ–¼ç¨ç«‹çš„æµ®" "動視窗" #. Shared input method. #: ../modules/SetupUI/scim_frontend_setup.cpp:360 msgid "_Share the same input method among all applications" msgstr "在所有的應用程å¼å…±äº«åŒæ¨£çš„輸入法(_S)" #: ../modules/SetupUI/scim_frontend_setup.cpp:365 msgid "" "If this option is checked, then only one input method could be used by all " "applications at the same time.Otherwise different input method could be used " "by each application." msgstr "" "如果啟用本é¸é …,所有應用程å¼åœ¨ä¸€æ™‚é–“å°‡åªæœƒæœ‰ä¸€å€‹è¼¸å…¥æ³•,å¦å‰‡å€‹åˆ¥çš„æ‡‰ç”¨ç¨‹å¼å¯" "以使用ä¸åŒçš„輸入法。" #: ../modules/SetupUI/scim_frontend_setup.cpp:373 #: ../modules/SetupUI/scim_imengine_setup.cpp:453 msgid "Hotkeys" msgstr "快速éµ" #: ../modules/SetupUI/scim_imengine_setup.cpp:93 msgid "" "You can enable/disable input methods and set hotkeys for input methods here." msgstr "ä½ å¯åœ¨æ­¤é–‹å•Ÿæˆ–關閉已安è£çš„輸入法,並設定快速éµ" #: ../modules/SetupUI/scim_imengine_setup.cpp:296 msgid "The installed input method services:" msgstr "已安è£çš„輸入法æœå‹™ï¼š" #. Create hotkey and filter button before factory list view, because #. factory_list_selection_changed_callback may access these two buttons. #: ../modules/SetupUI/scim_imengine_setup.cpp:311 msgid "Edit _Hotkeys" msgstr "編輯快速éµ(_H)" #: ../modules/SetupUI/scim_imengine_setup.cpp:320 msgid "Edit Hotkeys associated with the selected input method." msgstr "編輯所é¸å–輸入法關連的快速éµ" #: ../modules/SetupUI/scim_imengine_setup.cpp:322 msgid "Select _Filters" msgstr "é¸å®šçš„轉æ›éŽæ¿¾å™¨(_F)" #: ../modules/SetupUI/scim_imengine_setup.cpp:331 msgid "Select the Filters which will be attached to this input method." msgstr "鏿“‡æ–½åŠ åˆ°è¼¸å…¥æ³•çš„è½‰æ›éŽæ¿¾å™¨" #: ../modules/SetupUI/scim_imengine_setup.cpp:348 msgid "_Expand" msgstr "展開(_E)" #: ../modules/SetupUI/scim_imengine_setup.cpp:357 msgid "Expand all language categories." msgstr "展開所有語言目錄" #: ../modules/SetupUI/scim_imengine_setup.cpp:359 msgid "_Collapse" msgstr "折疊(_C)" #: ../modules/SetupUI/scim_imengine_setup.cpp:368 msgid "Collapse all language categories." msgstr "折疊所有語言目錄" #: ../modules/SetupUI/scim_imengine_setup.cpp:370 msgid "E_nable All" msgstr "使用所有的輸入法(_E)" #: ../modules/SetupUI/scim_imengine_setup.cpp:379 msgid "Enable all input methods." msgstr "使用所有輸入法" #: ../modules/SetupUI/scim_imengine_setup.cpp:381 msgid "_Disable All" msgstr "åœç”¨æ‰€æœ‰è¼¸å…¥æ³•(_D)" #: ../modules/SetupUI/scim_imengine_setup.cpp:390 msgid "Disable all input methods." msgstr "åœç”¨æ‰€æœ‰è¼¸å…¥æ³•" #: ../modules/SetupUI/scim_imengine_setup.cpp:414 #: ../modules/SetupUI/scim_imengine_setup.cpp:541 msgid "Name" msgstr "å稱" #: ../modules/SetupUI/scim_imengine_setup.cpp:432 #: ../modules/SetupUI/scim_imengine_setup.cpp:522 msgid "Enable" msgstr "開啟" #: ../modules/SetupUI/scim_imengine_setup.cpp:467 msgid "Filters" msgstr "轉æ›éŽæ¿¾å™¨" #: ../modules/SetupUI/scim_imengine_setup.cpp:560 msgid "Languages" msgstr "語文" #: ../modules/SetupUI/scim_imengine_setup.cpp:574 msgid "Description" msgstr "æè¿°" #: ../modules/SetupUI/scim_imengine_setup.cpp:1190 #, c-format msgid "Edit Hotkeys for %s" msgstr "編輯 %s 的快速éµ" #: ../modules/SetupUI/scim_imengine_setup.cpp:1417 #, c-format msgid "Select Filters for %s" msgstr "編輯 %s 的轉æ›éŽæ¿¾å™¨" #: ../modules/SetupUI/scim_imengine_setup.cpp:1450 msgid "Move _Up" msgstr "上移(_U)" #: ../modules/SetupUI/scim_imengine_setup.cpp:1457 msgid "Move _Down" msgstr "下移(_D)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:95 msgid "GTK" msgstr "GTK+" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:100 msgid "A panel daemon based on GTK+-2.x library." msgstr "一個使用 GTK+-2.x æ’°å¯«çš„æ“æŽ§é¢æ¿èƒŒæ™¯ç¨‹å¼ã€‚" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:163 msgid "Always" msgstr "æ°¸é " #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:164 msgid "On demand" msgstr "éœ€è¦æ™‚" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:165 msgid "Never" msgstr "從ä¸" #. Create the ToolBar setup block. #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:211 msgid "ToolBar" msgstr "工具列" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:229 msgid "_Show:" msgstr "顯示(_S):" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:245 msgid "Auto s_nap" msgstr "自動é é‚Š(_N)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:251 msgid "Show _input method icon" msgstr "顯示輸入法圖示(_I)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:257 msgid "Show inp_ut method name" msgstr "顯示輸入法å稱(_U)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:269 msgid "Hide time_out:" msgstr "逾時隱è—(_O):" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:282 msgid "Show s_tick icon" msgstr "顯示固定圖示(_T)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:288 msgid "Show m_enu icon" msgstr "顯示é¸å–®åœ–示(_E)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:294 msgid "Show _help icon" msgstr "顯示求助圖示(_H)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:300 msgid "Show _property label" msgstr "顯示屬性å稱(_P)" #. Create the Input Window setup block #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:311 msgid "Input window" msgstr "輸入視窗" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:320 msgid "E_mbedded lookup table" msgstr "嵌入å¼é¸è©žåˆ—表(_M)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:324 msgid "_Vertical lookup table" msgstr "垂直å¼é¸è©žåˆ—表(_V)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:328 msgid "Misc" msgstr "其它" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:337 msgid "Show tra_y icon" msgstr "顯示系統列圖示(_Y)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:341 msgid "Stick _windows" msgstr "固定視窗(_W)" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:349 msgid "_Font:" msgstr "å­—å½¢(_F):" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:419 msgid "" "If option \"Always\" is selected, the toolbar will always be shown on the " "screen. If option \"On demand\" is selected, it will only be shown when SCIM " "is activated. If option \"Never\" is selected, it will never be shown." msgstr "" "如果é¸å–「永é ã€é¸é …,工具列將永é é¡¯ç¤ºåœ¨èž¢å¹•上。如果é¸å–ã€Œéœ€è¦æ™‚ã€é¸é …,則åª" "有當 SCIM è¢«å•Ÿç”¨æ™‚æ‰æœƒé¡¯ç¤ºå·¥å…·åˆ—。如果é¸å–「從ä¸ã€é¸é …,則永é ä¸æœƒé¡¯ç¤ºå·¥å…·" "列。" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:426 msgid "" "If this option is checked, the toolbar will be snapped to the screen border." msgstr "如果勾å–這個é¸é …,工具列將緊é»åœ¨èž¢å¹•邊緣。" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:431 msgid "" "The toolbar will be hidden out after this timeout is elapsed. This option is " "only valid when \"Always show\" is selected. Set to zero to disable this " "behavior." msgstr "" "在經éŽä¸€å®šæ™‚間後,工具列將被隱è—起來,該é¸é …åªåœ¨é¸å–「永é é¡¯ç¤ºã€æ™‚æ‰æœƒä½œç”¨ã€‚" "當設定值為 0 時,將關閉此功能。" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:438 msgid "" "If this option is checked, the input method icon will be showed on the " "toolbar." msgstr "如果勾å–這個é¸é …,輸入法圖示將顯示在工具列上。" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:442 msgid "" "If this option is checked, the input method name will be showed on the " "toolbar." msgstr "如果勾å–這個é¸é …,輸入法å稱將顯示在工具列上。" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:446 msgid "" "If this option is checked, the stick icon will be showed on the toolbar." msgstr "如果勾å–這個é¸é …,固定圖示將顯示在工具列上。" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:450 msgid "If this option is checked, the menu icon will be showed on the toolbar." msgstr "如果勾å–這個é¸é …,é¸å–®åœ–示將顯示在工具列上。" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:454 msgid "If this option is checked, the help icon will be showed on the toolbar." msgstr "如果勾å–這個é¸é …,求助圖示將顯示在工具列上。" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:458 msgid "" "If this option is checked, the text label of input method properties will be " "showed on the toolbar." msgstr "如果勾å–這個é¸é …,輸入法屬性的å稱將顯示在工具列上。" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:462 msgid "" "If this option is checked, the lookup table will be embedded into the input " "window." msgstr "如果勾å–這個é¸é …,é¸è©žåˆ—表將出ç¾åœ¨è¼¸å…¥è¦–窗中。" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:467 msgid "" "If this option is checked, the lookup table will be displayed vertically." msgstr "如果勾å–這個é¸é …,é¸è©žåˆ—表將垂直顯示。" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:472 msgid "" "If this option is checked, the tray icon will be showed on the desktop's " "taskbar." msgstr "如果勾å–這個é¸é …,系統圖示將顯示在桌é¢çš„工作列上。" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:476 msgid "" "If this option is checked, the toolbar, input and lookup table windows will " "be sticked to its original position." msgstr "如果勾å–這個é¸é …,則輸入和é¸è©žåˆ—表視窗將åœç•™åœ¨å®ƒå€‘的原本ä½ç½®ã€‚" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:482 msgid "The font setting will be used in the input and lookup table windows." msgstr "該字形設定將套用於輸入和é¸è©žåˆ—表視窗。" #: ../modules/SetupUI/scim_panel_gtk_setup.cpp:801 msgid "Select Interface Font" msgstr "鏿“‡ä»‹é¢å­—å½¢" #: ../extras/setup/scim_setup_ui.cpp:47 msgid "SCIM" msgstr "SCIM" #: ../extras/setup/scim_setup_ui.cpp:48 msgid "FrontEnd" msgstr "介é¢(å‰ç«¯)" #: ../extras/setup/scim_setup_ui.cpp:49 msgid "IMEngine" msgstr "輸入法引擎" #: ../extras/setup/scim_setup_ui.cpp:50 msgid "Panel" msgstr "颿¿" #: ../extras/setup/scim_setup_ui.cpp:51 msgid "Extra" msgstr "附加項目" #. #. vi:ts=4:nowrap:ai:expandtab #. #: ../extras/setup/scim_setup_ui.cpp:230 #: ../extras/setup/scim-setup.desktop.in.h:1 msgid "SCIM Input Method Setup" msgstr "SCIM 輸入法設定" #: ../extras/setup/scim_setup_ui.cpp:369 msgid "" " Smart Common Input Method platform \n" "\n" "GUI Setup Utility\n" "\n" "\n" "\n" "Copyright 2002-2004, James Su <suzhe@tsinghua.org." "cn>" msgstr "" " æ³›ç”¨æ™ºæ…§åž‹è¼¸å…¥æ³•å¹³å° \n" "\n" "圖形介é¢è¨­å®šå·¥å…·\n" "\n" "\n" "\n" "版權所有 2002-2004, 蘇 哲 <suzhe@tsinghua.org.cn>" "" #: ../extras/setup/scim_setup_ui.cpp:394 #, c-format msgid "The Setup for %s modules." msgstr "%s 模組的設定。" #msgid "Are you sure you want to quit SCIM Setup?" #msgstr "是å¦é—œé–‰ SCIM 設定程å¼ï¼Ÿ" #: ../extras/setup/scim_setup_ui.cpp:661 msgid "" "Not all configuration can be reloaded on the fly. Don't forget to restart " "SCIM in order to let all of the new configuration take effect." msgstr "ä¸¦éžæ‰€æœ‰è¨­å®šéƒ½å¯ä»¥ç«‹å³ç”Ÿæ•ˆã€‚åˆ¥å¿˜äº†é‡æ–°å•Ÿå‹• SCIM 來讓新的設定生效。" #: ../extras/setup/scim_setup_helper.cpp:49 msgid "SCIM Setup" msgstr "SCIM 設定" #: ../extras/setup/scim_setup_helper.cpp:51 msgid "Integrated Setup Utility based on GTK Widget library." msgstr "以 GTK+ 撰寫的整åˆè¨­å®šå·¥å…·ã€‚" #: ../extras/setup/scim-setup.desktop.in.h:2 msgid "Setup utility for Smart Common Input Method platform" msgstr "泛用智慧型輸入法平å°çš„設定工具" #: ../extras/panel/scim_panel_gtk.cpp:982 msgid "SCIM Help" msgstr "求助 SCIM" #: ../extras/panel/scim_panel_gtk.cpp:999 msgid "Smart Common Input Method" msgstr "泛用智慧型輸入法平å°" #: ../extras/panel/scim_panel_gtk.cpp:1058 msgid "Stick/unstick the input window and the toolbar." msgstr "固定/釋開 輸入視窗和工具列。" #: ../extras/panel/scim_panel_gtk.cpp:1063 msgid "Show a brief help about SCIM and the current input method." msgstr "顯示關於 SCIM 和目å‰è¼¸å…¥æ³•的精簡說明。" #: ../extras/panel/scim_panel_gtk.cpp:1068 msgid "Show command menu." msgstr "顯示指令é¸å–®." #: ../extras/panel/scim_panel_gtk.cpp:2306 msgid "" "\n" "(C) 2002-2005 James Su " msgstr "" "\n" "(c) 2002-2005 蘇哲 " #. Reload Configuration. #: ../extras/panel/scim_panel_gtk.cpp:2385 msgid "Reload Configuration" msgstr "釿–°è¼‰å…¥è¨­å®šå€¼" #. Stick #: ../extras/panel/scim_panel_gtk.cpp:2395 msgid "Stick Windows" msgstr "固定視窗" #. Toolbar #: ../extras/panel/scim_panel_gtk.cpp:2404 msgid "Hide Toolbar" msgstr "éš±è—工具列" #. Help #: ../extras/panel/scim_panel_gtk.cpp:2413 msgid "Help ..." msgstr "求助 ..." #. Clients exit. #: ../extras/panel/scim_panel_gtk.cpp:2431 msgid "Exit" msgstr "離開" #: ../utils/scimstringview.c:196 msgid "Cursor Position" msgstr "游標ä½ç½®" #: ../utils/scimstringview.c:197 msgid "The current position of the insertion cursor in chars." msgstr "在字元中æ’入的游標的所在ä½ç½®ã€‚" #: ../utils/scimstringview.c:206 msgid "Maximum length" msgstr "最大長度" #: ../utils/scimstringview.c:207 msgid "Maximum number of characters for this string view. Zero if no maximum." msgstr "這個字串視窗最長å¯ä»¥å®¹è¡²å¤šå°‘字元。設定值為 0 則表示無é™åˆ¶ã€‚" #: ../utils/scimstringview.c:216 msgid "Maximum width" msgstr "最大寬度" #: ../utils/scimstringview.c:217 msgid "Maximum width of this string view." msgstr "這個字串視窗的最大寬度。" #: ../utils/scimstringview.c:226 msgid "Has Frame" msgstr "有外框" #: ../utils/scimstringview.c:227 msgid "FALSE removes outside bevel from string view." msgstr "無效時,移除字串視窗的外部斜邊。" #: ../utils/scimstringview.c:234 msgid "Draw cursor" msgstr "繪製游標" #: ../utils/scimstringview.c:235 msgid "TRUE draw blinking cursor." msgstr "å•Ÿç”¨æ™‚ï¼Œç¹ªè£½é–ƒçˆæ¸¸æ¨™" #: ../utils/scimstringview.c:242 msgid "Auto move cursor" msgstr "自動移動游標" #: ../utils/scimstringview.c:243 msgid "TRUE auto move cursor position when mouse clicking." msgstr "å•Ÿç”¨æ™‚ï¼Œç•¶æ»‘é¼ é»žé¸æ™‚會自動移動游標。" #: ../utils/scimstringview.c:250 msgid "Forward button press event" msgstr "è½‰é€æŒ‰éµäº‹ä»¶" #: ../utils/scimstringview.c:251 msgid "TRUE forward button press event to user program." msgstr "啟用時,轉é€éµæ“Šäº‹ä»¶çµ¦ä½¿ç”¨è€…程å¼ã€‚" #: ../utils/scimstringview.c:258 msgid "Auto resize the widget to fit the string" msgstr "根據字串自動調整邊框大å°" #: ../utils/scimstringview.c:259 msgid "TRUE Auto resize on." msgstr "啟用時,自動調整大å°ã€‚" #: ../utils/scimstringview.c:266 msgid "Width in chars" msgstr "字元寬度" #: ../utils/scimstringview.c:267 msgid "Number of characters to leave space for in the string view." msgstr "在字串視窗裡所ä¿ç•™çš„空白字元數。" #: ../utils/scimstringview.c:276 msgid "Scroll offset" msgstr "æ²è»¸ä½ç§»" #: ../utils/scimstringview.c:277 msgid "Number of pixels of the string view scrolled off the screen to the left" msgstr "字串視窗è·é›¢èž¢å¹•左邊的åƒç´ å€¼" #: ../utils/scimstringview.c:286 msgid "Text" msgstr "文字" #: ../utils/scimstringview.c:287 msgid "The contents of the string view" msgstr "字串視窗的說明" #: ../utils/scimkeyselection.cpp:155 msgid "Selected _Keys:" msgstr "é¸å®šçš„æŒ‰éµ(_K):" #: ../utils/scimkeyselection.cpp:200 msgid "Key Code:" msgstr "éµå€¼ï¼š" #: ../utils/scimkeyselection.cpp:218 msgid "..." msgstr "..." #: ../utils/scimkeyselection.cpp:223 msgid "Modifiers:" msgstr "作用éµï¼š" #: ../utils/scimkeyselection.cpp:236 msgid "_Ctrl" msgstr "_Ctrl" #: ../utils/scimkeyselection.cpp:240 msgid "A_lt" msgstr "A_lt" #: ../utils/scimkeyselection.cpp:244 msgid "_Shift" msgstr "_Shift" #: ../utils/scimkeyselection.cpp:248 msgid "_Release" msgstr "放開(_R)" #: ../utils/scimkeyselection.cpp:258 msgid "_Meta" msgstr "_Meta" #: ../utils/scimkeyselection.cpp:262 msgid "S_uper" msgstr "S_uper" #: ../utils/scimkeyselection.cpp:266 msgid "_Hyper" msgstr "_Hyper" #: ../utils/scimkeyselection.cpp:331 msgid "Please enter a Key Code first." msgstr "請先輸入一個éµå€¼ã€‚" #: ../utils/scimkeyselection.cpp:385 msgid "" "Press a key (or a key combination).\n" "This dialog will be closed when the key is released." msgstr "" "è«‹æŒ‰ä¸€å€‹æŒ‰éµæˆ–組åˆéµã€‚\n" "本å°è©±æ¡†æœƒåœ¨æŒ‰éµé‡‹æ”¾æ™‚關閉。" #: ../utils/scimkeyselection.cpp:388 msgid "Grabbing a key." msgstr "æ•æ‰æŒ‰éµ" #: ../utils/scimkeyselection.cpp:678 msgid "Key Selection" msgstr "鏿“‡æŒ‰éµ" #: ../utils/scimtrayicon.c:108 msgid "Orientation" msgstr "æ–¹ä½" #: ../utils/scimtrayicon.c:109 msgid "The orientation of the tray." msgstr "狀態列的方ä½ã€‚" #~ msgid "Are you sure you want to quit SCIM Setup?" #~ msgstr "是å¦é—œé–‰ SCIM 設定程å¼ï¼Ÿ" #~ msgid "zh_CN,zh_TW,zh_HK,zh_SG,ja_JP,ko_KR" #~ msgstr "zh_CN,zh_TW,zh_HK,zh_SG,ja_JP,ko_KR" #~ msgid "En" #~ msgstr "英" scim-1.4.14/scim-gtkutils.pc.in000066400000000000000000000006101177210725600162710ustar00rootroot00000000000000prefix=@prefix@ exec_prefix=@exec_prefix@ libdir=@libdir@ includedir=@includedir@ localedir=@datadir@/locale datadir=@datadir@ sysconfdir=@sysconfdir@ Name: scim-gtkutils Description: GTK Utilities for Smart Common Input Method platform Version: @SCIM_VERSION@ Requires: gtk+-@GTK_MAJOR_VERSION@.0 scim Libs: -L${libdir} -lscim-gtkutils@SCIM_EPOCH@ Cflags: -I${includedir}/scim@SCIM_EPOCH@ scim-1.4.14/scim-x11utils.pc.in000066400000000000000000000006011177210725600161150ustar00rootroot00000000000000prefix=@prefix@ exec_prefix=@exec_prefix@ libdir=@libdir@ includedir=@includedir@ localedir=@datadir@/locale datadir=@datadir@ sysconfdir=@sysconfdir@ Name: scim-x11utils Description: X11 Utilities for Smart Common Input Method platform Version: @SCIM_VERSION@ Requires: scim Libs: -L${libdir} -lscim-x11utils@SCIM_EPOCH@ @X_LIBS@ Cflags: -I${includedir}/scim@SCIM_EPOCH@ @X_CFLAGS@ scim-1.4.14/scim.pc.in000066400000000000000000000007421177210725600144330ustar00rootroot00000000000000prefix=@prefix@ exec_prefix=@exec_prefix@ libdir=@libdir@ includedir=@includedir@ localedir=@datadir@/locale datadir=@datadir@ sysconfdir=@sysconfdir@ scimdatadir=@datadir@/scim icondir=@datadir@/scim/icons moduledir=@libdir@/scim@SCIM_EPOCH@/@SCIM_BINARY_VERSION@ scim_binary_version=@SCIM_BINARY_VERSION@ Name: SCIM Description: Smart Common Input Method platform Version: @SCIM_VERSION@ Requires: Libs: -L${libdir} -lscim@SCIM_EPOCH@ Cflags: -I${includedir}/scim@SCIM_EPOCH@ scim-1.4.14/scim.spec000066400000000000000000000237571177210725600143710ustar00rootroot00000000000000%define nam scim %define ver 1.4.14 %define rel 1 %define build_config_socket 1 %define build_config_simple 1 %define build_frontend_x11 1 %define build_frontend_socket 1 %define build_imengine_rawcode 1 %define build_imengine_socket 1 %define build_gtk2_immodule 1 %define build_scim_setup 1 %define build_panel_gtk 1 %define build_gtk_utils 1 %define build_x11_utils 1 %define build_filter_sctc 1 # Something's not quite right with libtool.... %define __libtoolize echo Summary: Smart Chinese/Common Input Method platform Name: %{nam} Version: %{ver} Release: %{rel} License: LGPL Group: System Environment/Libraries URL: http://scim.freedesktop.org BuildRoot: %{_tmppath}/%{name}-%{version}-root Source0: %{name}-%{version}.tar.gz #NoSource: 0 PreReq: /sbin/ldconfig, /bin/sh %if %{build_gtk_utils} Requires: glib2 >= 2.0.0 BuildRequires: glib2-devel >= 2.0.0 Requires: gtk2 >= 3.0.0 BuildRequires: gtk2-devel >= 3.0.0 Requires: pango >= 1.0.0 BuildRequires: pango-devel >= 1.0.0 %endif %if %{build_x11_utils} Requires: XFree86-libs >= 4.1.0 BuildRequires: XFree86-devel >= 4.1.0 %endif BuildRequires: pkgconfig >= 0.12 %description SCIM is a developing platform to significant reduce the difficulty of input method development. %package devel Summary: Smart Chinese/Common Input Method platform Group: Development/Libraries Requires: %{name} = %{version} Requires: pkgconfig >= 0.12 %description devel The scim-devel package includes the static libraries and header files for the scim package. Install scim-devel if you want to develop programs which will use scim. #-------------------------------------------------- %prep %setup -n %{name}-%{version} %build CFLAGS="-O3" CXXFLAGS="-O3" \ %configure \ %if ! %{build_config_socket} --disable-config-socket \ %endif %if ! %{build_config_simple} --disable-config-simple \ %endif %if ! %{build_frontend_x11} --disable-frontend-x11 \ %endif %if ! %{build_frontend_socket} --disable-frontend-socket \ %endif %if ! %{build_imengine_rawcode} --disable-im-rawcode \ %endif %if ! %{build_imengine_socket} --disable-im-socket \ %endif %if ! %{build_filter_sctc} --disable-filter-sctc \ %endif %if ! %{build_gtk2_immodule} --disable-gtk2-immodule \ %endif %if ! %{build_scim_setup} -disable-setup-ui \ %endif make %install [ -n "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != / ] && rm -rf $RPM_BUILD_ROOT make DESTDIR=${RPM_BUILD_ROOT} install mkdir -p ${RPM_BUILD_ROOT}/%{_libdir}/scim-1.0/{Config,FrontEnd,IMEngine,SetupUI,Helper,Filter} rm -f ${RPM_BUILD_ROOT}/%{_libdir}/scim-1.0/*/*/*.{a,la} rm -f ${RPM_BUILD_ROOT}//usr/lib64/gtk-2.0/immodules/im-scim.{a,la} # install user manual mkdir -p docs/dist/manual/zh_CN/figures/ cp -a docs/manual/zh_CN/user-manual.{html,xml} docs/dist/manual/zh_CN/ cp -a docs/manual/zh_CN/figures/*.png docs/dist/manual/zh_CN/figures/ %clean [ -n "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != / ] && rm -rf $RPM_BUILD_ROOT %post /sbin/ldconfig %if %{build_gtk2_immodule} gtk-query-immodules-2.0 > %{_sysconfdir}/gtk-2.0/gtk.immodules %endif %postun /sbin/ldconfig %if %{build_gtk2_immodule} gtk-query-immodules-2.0 > %{_sysconfdir}/gtk-2.0/gtk.immodules %endif %files %defattr(-, root, root) %doc AUTHORS COPYING NEWS README ChangeLog TODO %doc docs/dist/manual/zh_CN %dir %{_sysconfdir}/scim %dir %{_libdir}/scim-1.0/*/FrontEnd %dir %{_libdir}/scim-1.0/*/IMEngine %dir %{_libdir}/scim-1.0/*/Config %dir %{_libdir}/scim-1.0/*/SetupUI %dir %{_libdir}/scim-1.0/*/Helper %dir %{_libdir}/scim-1.0/*/Filter %dir %{_libdir}/scim-1.0/Config %dir %{_libdir}/scim-1.0/FrontEnd %dir %{_libdir}/scim-1.0/IMEngine %dir %{_libdir}/scim-1.0/SetupUI %dir %{_libdir}/scim-1.0/Helper %dir %{_libdir}/scim-1.0/Filter %dir %{_datadir}/scim %dir %{_datadir}/scim/icons %config %{_sysconfdir}/scim/global %{_bindir}/scim %{_bindir}/scim-config-agent %{_libdir}/libscim*.so.* %{_libdir}/scim-1.0/scim-launcher %{_libdir}/scim-1.0/scim-helper-launcher %{_libdir}/scim-1.0/scim-helper-manager %{_datadir}/locale/*/LC_MESSAGES/scim.mo %{_datadir}/scim/icons/keyboard.png %{_datadir}/scim/icons/up.png %{_datadir}/scim/icons/down.png %{_datadir}/scim/icons/left.png %{_datadir}/scim/icons/right.png %{_datadir}/scim/icons/full-letter.png %{_datadir}/scim/icons/half-letter.png %{_datadir}/scim/icons/full-punct.png %{_datadir}/scim/icons/half-punct.png %{_datadir}/scim/icons/help.png %{_datadir}/scim/icons/pin-up.png %{_datadir}/scim/icons/pin-down.png %{_datadir}/scim/icons/setup.png %{_datadir}/scim/icons/trademark.png %{_datadir}/scim/icons/menu.png %if %{build_scim_setup} %{_bindir}/scim-setup %{_datadir}/applications/scim-setup.desktop %{_datadir}/control-center-2.0/capplets/scim-setup.desktop %{_datadir}/pixmaps/scim-setup.png %{_libdir}/scim-1.0/*/Helper/setup.so %{_libdir}/scim-1.0/*/SetupUI/aaa-frontend-setup.so %{_libdir}/scim-1.0/*/SetupUI/aaa-imengine-setup.so %endif %if %{build_panel_gtk} %{_libdir}/scim-1.0/scim-panel-gtk %if %{build_scim_setup} %{_libdir}/scim-1.0/*/SetupUI/panel-gtk-setup.so %endif %endif %if %{build_frontend_x11} %{_libdir}/scim-1.0/*/FrontEnd/x11.so %endif %if %{build_imengine_rawcode} %{_libdir}/scim-1.0/*/IMEngine/rawcode.so %{_datadir}/scim/icons/rawcode.png %endif %if %{build_filter_sctc} %{_libdir}/scim-1.0/*/Filter/sctc.so %{_datadir}/scim/icons/sctc.png %{_datadir}/scim/icons/sctc-sc-to-tc.png %{_datadir}/scim/icons/sctc-tc-to-sc.png %endif %if %{build_config_simple} %config %{_sysconfdir}/scim/config %{_libdir}/scim-1.0/*/Config/simple.so %endif %if %{build_imengine_socket} %{_libdir}/scim-1.0/*/IMEngine/socket.so %endif %if %{build_frontend_socket} %{_libdir}/scim-1.0/*/FrontEnd/socket.so %endif %if %{build_config_socket} %{_libdir}/scim-1.0/*/Config/socket.so %endif %if %{build_gtk2_immodule} /usr/lib64/gtk-2.0/immodules/im-scim.so %endif %files devel %defattr(-, root, root) %doc docs/html %doc docs/developers %{_libdir}/libscim*.so %{_libdir}/lib*.a %{_libdir}/lib*.la %{_libdir}/pkgconfig/*.pc %{_includedir}/scim-1.0 #-------------------------------------------------- %changelog * Sun Jan 9 2005 James Su - Remove GConf Config module. * Wed Jan 5 2005 James Su - Remove table IMEngine. * Fri Aug 6 2004 James Su - Move scim-launcher and scim-panel-gtk to /usr/lib/scim-1.0. * Sun Jun 20 2004 James Su - Merge all things into one package. * Sat Jun 19 2004 James Su - Added /usr/libexec/scim-launcher. - Remove setup module for SocketFrontEnd and SocketIMEngine. * Mon Mar 8 2004 James Su - Added scim-config-agent. * Thu Oct 30 2003 James Su - Added Simplified Chinese User Manual. * Wed Sep 03 2003 James Su - cleanup spec. * Tue Sep 02 2003 James Su - upto 0.8.0 * Tue Jul 29 2003 James Su - updated to include scim-panel-gtk. * Thu Jun 19 2003 James Su - updated to include scim-setup and its modules. * Thu Apr 3 2003 James Su - added suite package, which includes all necessary components of SCIM. * Tue Mar 25 2003 James Su - updated to v0.4.0 * Wed Feb 26 2003 James Su - implemented dynamic adjust feature for generic table module. - fixed key handling bug in generic table module. * Mon Feb 10 2003 James Su - Replaced highlight_start and highlight_end in scim_server and scim_frontend with AttributeList (scim_attributes.h) - Moved icons/* to data/icons and gtkstringview.* to utils/ * Thu Jan 2 2003 James Su - updated configure.ac and Makefile.am - ready to release 0.3.0 * Tue Nov 12 2002 James Su - merged signal system from libinti. - implemented namespace scim. - implemented referenced object. - version 0.3.0 * Tue Nov 05 2002 James Su - minor fixes for table IM module. * Mon Nov 04 2002 James Su - More IMdkit memory leak fixes. - Table input method bugfixes. - version 0.2.2 * Fri Nov 01 2002 James Su - improved table input method. - actually fixed the memleaks within IMdkit. - pumped the version to 0.2.1 * Thu Oct 31 2002 James Su - fixed some memory leaks in IMdkit - reduced memory usage. - upgraded to libtool-1.4.3 * Tue Oct 29 2002 James Su - finished Generic Table input server module. - fixed several bugs in scim-lib. * Thu Oct 10 2002 James Su - used gettext to support i18n message. - added release info to lib name. * Mon Sep 30 2002 James Su - version 0.1.4 - added Embedded Lookup Table style into X11 FrontEnd. - use wchar_t instead of unsigned long if __STDC_ISO_10646__ defined. * Sun Sep 22 2002 James Su - version 0.1.3 - config button of X11 FrontEnd was disabled. * Fri Sep 6 2002 James Su - simplified the utilities and lookup table interface. * Wed Aug 21 2002 James Su - version 0.1.2 - added configuration options to disable modules. - enhanced X11 FrontEnd. * Sun Aug 11 2002 James Su - version 0.1.1 - X11 FrontEnd was enhanced. * Sat Aug 10 2002 James Su - version 0.1.0 - many bugfixes. - Help window of X11 FrontEnd was implemented. - scim can exit cleanly. * Fri Aug 2 2002 James Su - SCIM 0.0.13. - Minor bugfixes. * Mon Jul 29 2002 James Su - SCIM 0.0.12. - Minor bugfixes. * Sun Jul 28 2002 James Su - SCIM 0.0.11. - Minor bugfixes. * Sun Jul 21 2002 James Su - SCIM 0.0.10. - Added Simple Config module. * Sat Jun 22 2002 James Su - first public release of SCIM. scim-1.4.14/scim.spec.in000066400000000000000000000250341177210725600147640ustar00rootroot00000000000000%define nam @PACKAGE@ %define ver @VERSION@ %define rel 1 %define build_config_socket @SCIM_BUILD_CONFIG_SOCKET@ %define build_config_simple @SCIM_BUILD_CONFIG_SIMPLE@ %define build_frontend_x11 @SCIM_BUILD_FRONTEND_X11@ %define build_frontend_socket @SCIM_BUILD_FRONTEND_SOCKET@ %define build_imengine_rawcode @SCIM_BUILD_IMENGINE_RAWCODE@ %define build_imengine_socket @SCIM_BUILD_IMENGINE_SOCKET@ %define build_gtk2_immodule @SCIM_BUILD_GTK2_IMMODULE@ %define build_scim_setup @SCIM_BUILD_SCIM_SETUP@ %define build_panel_gtk @SCIM_BUILD_PANEL_GTK@ %define build_gtk_utils @SCIM_BUILD_GTK_UTILS@ %define build_x11_utils @SCIM_BUILD_X11_UTILS@ %define build_filter_sctc @SCIM_BUILD_FILTER_SCTC@ # Something's not quite right with libtool.... %define __libtoolize echo Summary: Smart Chinese/Common Input Method platform Name: %{nam} Version: %{ver} Release: %{rel} License: LGPL Group: System Environment/Libraries URL: http://scim.freedesktop.org BuildRoot: %{_tmppath}/%{name}-%{version}-root Source0: %{name}-%{version}.tar.gz #NoSource: 0 PreReq: /sbin/ldconfig, /bin/sh %if %{build_gtk_utils} Requires: glib2 >= 2.0.0 BuildRequires: glib2-devel >= 2.0.0 Requires: gtk2 >= @GTK_VERSION@ BuildRequires: gtk2-devel >= @GTK_VERSION@ Requires: pango >= 1.0.0 BuildRequires: pango-devel >= 1.0.0 %endif %if %{build_x11_utils} Requires: XFree86-libs >= 4.1.0 BuildRequires: XFree86-devel >= 4.1.0 %endif BuildRequires: pkgconfig >= 0.12 %description SCIM is a developing platform to significant reduce the difficulty of input method development. %package devel Summary: Smart Chinese/Common Input Method platform Group: Development/Libraries Requires: %{name} = %{version} Requires: pkgconfig >= 0.12 %description devel The scim-devel package includes the static libraries and header files for the scim package. Install scim-devel if you want to develop programs which will use scim. #-------------------------------------------------- %prep %setup -n %{name}-%{version} %build CFLAGS="-O3" CXXFLAGS="-O3" \ %configure \ %if ! %{build_config_socket} --disable-config-socket \ %endif %if ! %{build_config_simple} --disable-config-simple \ %endif %if ! %{build_frontend_x11} --disable-frontend-x11 \ %endif %if ! %{build_frontend_socket} --disable-frontend-socket \ %endif %if ! %{build_imengine_rawcode} --disable-im-rawcode \ %endif %if ! %{build_imengine_socket} --disable-im-socket \ %endif %if ! %{build_filter_sctc} --disable-filter-sctc \ %endif %if ! %{build_gtk2_immodule} --disable-gtk2-immodule \ %endif %if ! %{build_scim_setup} -disable-setup-ui \ %endif make %install [ -n "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != / ] && rm -rf $RPM_BUILD_ROOT make DESTDIR=${RPM_BUILD_ROOT} install mkdir -p ${RPM_BUILD_ROOT}/%{_libdir}/scim@SCIM_EPOCH@/{Config,FrontEnd,IMEngine,SetupUI,Helper,Filter} rm -f ${RPM_BUILD_ROOT}/%{_libdir}/scim@SCIM_EPOCH@/*/*/*.{a,la} rm -f ${RPM_BUILD_ROOT}/@GTK_LIBDIR@/gtk-2.0/immodules/im-scim.{a,la} # install user manual mkdir -p docs/dist/manual/zh_CN/figures/ cp -a docs/manual/zh_CN/user-manual.{html,xml} docs/dist/manual/zh_CN/ cp -a docs/manual/zh_CN/figures/*.png docs/dist/manual/zh_CN/figures/ %clean [ -n "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != / ] && rm -rf $RPM_BUILD_ROOT %post /sbin/ldconfig %if %{build_gtk2_immodule} gtk-query-immodules-2.0 > %{_sysconfdir}/gtk-2.0/gtk.immodules %endif %postun /sbin/ldconfig %if %{build_gtk2_immodule} gtk-query-immodules-2.0 > %{_sysconfdir}/gtk-2.0/gtk.immodules %endif %files %defattr(-, root, root) %doc AUTHORS COPYING NEWS README ChangeLog TODO %doc docs/dist/manual/zh_CN %dir %{_sysconfdir}/scim %dir %{_libdir}/scim@SCIM_EPOCH@/*/FrontEnd %dir %{_libdir}/scim@SCIM_EPOCH@/*/IMEngine %dir %{_libdir}/scim@SCIM_EPOCH@/*/Config %dir %{_libdir}/scim@SCIM_EPOCH@/*/SetupUI %dir %{_libdir}/scim@SCIM_EPOCH@/*/Helper %dir %{_libdir}/scim@SCIM_EPOCH@/*/Filter %dir %{_libdir}/scim@SCIM_EPOCH@/Config %dir %{_libdir}/scim@SCIM_EPOCH@/FrontEnd %dir %{_libdir}/scim@SCIM_EPOCH@/IMEngine %dir %{_libdir}/scim@SCIM_EPOCH@/SetupUI %dir %{_libdir}/scim@SCIM_EPOCH@/Helper %dir %{_libdir}/scim@SCIM_EPOCH@/Filter %dir %{_datadir}/scim %dir %{_datadir}/scim/icons %config %{_sysconfdir}/scim/global %{_bindir}/scim %{_bindir}/scim-config-agent %{_libdir}/libscim*.so.* %{_libdir}/scim@SCIM_EPOCH@/scim-launcher %{_libdir}/scim@SCIM_EPOCH@/scim-helper-launcher %{_libdir}/scim@SCIM_EPOCH@/scim-helper-manager %{_datadir}/locale/*/LC_MESSAGES/scim.mo %{_datadir}/scim/icons/keyboard.png %{_datadir}/scim/icons/up.png %{_datadir}/scim/icons/down.png %{_datadir}/scim/icons/left.png %{_datadir}/scim/icons/right.png %{_datadir}/scim/icons/full-letter.png %{_datadir}/scim/icons/half-letter.png %{_datadir}/scim/icons/full-punct.png %{_datadir}/scim/icons/half-punct.png %{_datadir}/scim/icons/help.png %{_datadir}/scim/icons/pin-up.png %{_datadir}/scim/icons/pin-down.png %{_datadir}/scim/icons/setup.png %{_datadir}/scim/icons/trademark.png %{_datadir}/scim/icons/menu.png %if %{build_scim_setup} %{_bindir}/scim-setup %{_datadir}/applications/scim-setup.desktop %{_datadir}/control-center-2.0/capplets/scim-setup.desktop %{_datadir}/pixmaps/scim-setup.png %{_libdir}/scim@SCIM_EPOCH@/*/Helper/setup.so %{_libdir}/scim@SCIM_EPOCH@/*/SetupUI/aaa-frontend-setup.so %{_libdir}/scim@SCIM_EPOCH@/*/SetupUI/aaa-imengine-setup.so %endif %if %{build_panel_gtk} %{_libdir}/scim@SCIM_EPOCH@/scim-panel-gtk %if %{build_scim_setup} %{_libdir}/scim@SCIM_EPOCH@/*/SetupUI/panel-gtk-setup.so %endif %endif %if %{build_frontend_x11} %{_libdir}/scim@SCIM_EPOCH@/*/FrontEnd/x11.so %endif %if %{build_imengine_rawcode} %{_libdir}/scim@SCIM_EPOCH@/*/IMEngine/rawcode.so %{_datadir}/scim/icons/rawcode.png %endif %if %{build_filter_sctc} %{_libdir}/scim@SCIM_EPOCH@/*/Filter/sctc.so %{_datadir}/scim/icons/sctc.png %{_datadir}/scim/icons/sctc-sc-to-tc.png %{_datadir}/scim/icons/sctc-tc-to-sc.png %endif %if %{build_config_simple} %config %{_sysconfdir}/scim/config %{_libdir}/scim@SCIM_EPOCH@/*/Config/simple.so %endif %if %{build_imengine_socket} %{_libdir}/scim@SCIM_EPOCH@/*/IMEngine/socket.so %endif %if %{build_frontend_socket} %{_libdir}/scim@SCIM_EPOCH@/*/FrontEnd/socket.so %endif %if %{build_config_socket} %{_libdir}/scim@SCIM_EPOCH@/*/Config/socket.so %endif %if %{build_gtk2_immodule} @GTK_LIBDIR@/gtk-2.0/immodules/im-scim.so %endif %files devel %defattr(-, root, root) %doc docs/html %doc docs/developers %{_libdir}/libscim*.so %{_libdir}/lib*.a %{_libdir}/lib*.la %{_libdir}/pkgconfig/*.pc %{_includedir}/scim@SCIM_EPOCH@ #-------------------------------------------------- %changelog * Sun Jan 9 2005 James Su - Remove GConf Config module. * Wed Jan 5 2005 James Su - Remove table IMEngine. * Fri Aug 6 2004 James Su - Move scim-launcher and scim-panel-gtk to /usr/lib/scim-1.0. * Sun Jun 20 2004 James Su - Merge all things into one package. * Sat Jun 19 2004 James Su - Added /usr/libexec/scim-launcher. - Remove setup module for SocketFrontEnd and SocketIMEngine. * Mon Mar 8 2004 James Su - Added scim-config-agent. * Thu Oct 30 2003 James Su - Added Simplified Chinese User Manual. * Wed Sep 03 2003 James Su - cleanup spec. * Tue Sep 02 2003 James Su - upto 0.8.0 * Tue Jul 29 2003 James Su - updated to include scim-panel-gtk. * Thu Jun 19 2003 James Su - updated to include scim-setup and its modules. * Thu Apr 3 2003 James Su - added suite package, which includes all necessary components of SCIM. * Tue Mar 25 2003 James Su - updated to v0.4.0 * Wed Feb 26 2003 James Su - implemented dynamic adjust feature for generic table module. - fixed key handling bug in generic table module. * Mon Feb 10 2003 James Su - Replaced highlight_start and highlight_end in scim_server and scim_frontend with AttributeList (scim_attributes.h) - Moved icons/* to data/icons and gtkstringview.* to utils/ * Thu Jan 2 2003 James Su - updated configure.ac and Makefile.am - ready to release 0.3.0 * Tue Nov 12 2002 James Su - merged signal system from libinti. - implemented namespace scim. - implemented referenced object. - version 0.3.0 * Tue Nov 05 2002 James Su - minor fixes for table IM module. * Mon Nov 04 2002 James Su - More IMdkit memory leak fixes. - Table input method bugfixes. - version 0.2.2 * Fri Nov 01 2002 James Su - improved table input method. - actually fixed the memleaks within IMdkit. - pumped the version to 0.2.1 * Thu Oct 31 2002 James Su - fixed some memory leaks in IMdkit - reduced memory usage. - upgraded to libtool-1.4.3 * Tue Oct 29 2002 James Su - finished Generic Table input server module. - fixed several bugs in scim-lib. * Thu Oct 10 2002 James Su - used gettext to support i18n message. - added release info to lib name. * Mon Sep 30 2002 James Su - version 0.1.4 - added Embedded Lookup Table style into X11 FrontEnd. - use wchar_t instead of unsigned long if __STDC_ISO_10646__ defined. * Sun Sep 22 2002 James Su - version 0.1.3 - config button of X11 FrontEnd was disabled. * Fri Sep 6 2002 James Su - simplified the utilities and lookup table interface. * Wed Aug 21 2002 James Su - version 0.1.2 - added configuration options to disable modules. - enhanced X11 FrontEnd. * Sun Aug 11 2002 James Su - version 0.1.1 - X11 FrontEnd was enhanced. * Sat Aug 10 2002 James Su - version 0.1.0 - many bugfixes. - Help window of X11 FrontEnd was implemented. - scim can exit cleanly. * Fri Aug 2 2002 James Su - SCIM 0.0.13. - Minor bugfixes. * Mon Jul 29 2002 James Su - SCIM 0.0.12. - Minor bugfixes. * Sun Jul 28 2002 James Su - SCIM 0.0.11. - Minor bugfixes. * Sun Jul 21 2002 James Su - SCIM 0.0.10. - Added Simple Config module. * Sat Jun 22 2002 James Su - first public release of SCIM. scim-1.4.14/src/000077500000000000000000000000001177210725600133335ustar00rootroot00000000000000scim-1.4.14/src/Makefile.am000066400000000000000000000111651177210725600153730ustar00rootroot00000000000000## Makefile.am -- Process this file with automake to produce Makefile.in ## Copyright (C) 2002 James Su ## ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2, or (at your option) ## any later version. ## ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. MAINTAINERCLEANFILES = Makefile.in scim_types.h CLEANFILES = libscim.la *.bak DISTCLEANFILES = scim_types.h EXTRA_DIST = libscim.version-script INCLUDES = -I$(top_builddir) \ -I$(top_builddir)/src \ -I$(top_srcdir) \ -I$(top_srcdir)/src \ -I$(top_srcdir)/intl \ -DSCIM_DATADIR=\"@SCIM_DATADIR@\" \ -DSCIM_LOCALEDIR=\"@SCIM_LOCALEDIR@\" \ -DSCIM_SYSCONFDIR=\"@SCIM_SYSCONFDIR@\" \ -DSCIM_LIBEXECDIR=\"@SCIM_LIBEXECDIR@\" \ -DSCIM_ICONDIR=\"@SCIM_ICONDIR@\" \ -DSCIM_MODULE_PATH=\"@SCIM_MODULE_PATH@\" \ $(LTDLINCL) noinst_HEADERS = \ scim_private.h \ scim_compose_key_data.h \ scim_keyboard_layout_data.h \ scim_keyevent_data.h \ scim_stl_map.h libscimincludedir = $(includedir)/scim@SCIM_EPOCH@ libsciminclude_HEADERS = scim.h \ scim_attribute.h \ scim_backend.h \ scim_bind.h \ scim_compose_key.h \ scim_config_base.h \ scim_config_module.h \ scim_config_path.h \ scim_connection.h \ scim_debug.h \ scim_event.h \ scim_exception.h \ scim_filter.h \ scim_filter_module.h \ scim_filter_manager.h \ scim_frontend.h \ scim_frontend_module.h \ scim_global_config.h \ scim_helper.h \ scim_helper_manager.h \ scim_helper_module.h \ scim_hotkey.h \ scim_iconv.h \ scim_imengine.h \ scim_imengine_module.h \ scim_lookup_table.h \ scim_module.h \ scim_object.h \ scim_panel_agent.h \ scim_panel_client.h \ scim_panel_common.h \ scim_pointer.h \ scim_property.h \ scim_signals.h \ scim_slot.h \ scim_socket.h \ scim_trans_commands.h \ scim_transaction.h \ scim_types.h \ scim_utility.h if SCIM_LD_VERSION_SCRIPT LD_VERSION_SCRIPT_OPTION="-Wl,--version-script=$(srcdir)/libscim.version-script" endif lib_LTLIBRARIES = libscim@SCIM_EPOCH@.la libscim@SCIM_EPOCH@_la_SOURCES = scim_backend.cpp \ scim_chartraits.cpp \ scim_compose_key.cpp \ scim_config_base.cpp \ scim_config_module.cpp \ scim_connection.cpp \ scim_debug.cpp \ scim_event.cpp \ scim_filter.cpp \ scim_filter_module.cpp \ scim_filter_manager.cpp \ scim_frontend.cpp \ scim_frontend_module.cpp \ scim_global_config.cpp \ scim_helper.cpp \ scim_helper_manager.cpp \ scim_helper_module.cpp \ scim_hotkey.cpp \ scim_iconv.cpp \ scim_imengine.cpp \ scim_imengine_module.cpp \ scim_lookup_table.cpp \ scim_module.cpp \ scim_object.cpp \ scim_panel_agent.cpp \ scim_panel_client.cpp \ scim_private.cpp \ scim_signals.cpp \ scim_slot.cpp \ scim_socket.cpp \ scim_transaction.cpp \ scim_utility.cpp libscim@SCIM_EPOCH@_la_DEPENDENCIES = $(LTDLDEPS) libscim@SCIM_EPOCH@_la_LDFLAGS= -version-info $(SCIM_CURRENT):$(SCIM_REVISION):$(SCIM_AGE) \ -export-dynamic \ $(LD_VERSION_SCRIPT_OPTION) \ @LIBTOOL_EXPORT_OPTIONS@ \ @LIBICONV@ \ @LTLIBINTL@ \ $(LIBLTDL) bin_PROGRAMS = scim scim-config-agent scim_SOURCES = scim.cpp scim_LDADD = libscim@SCIM_EPOCH@.la scim_LDFLAGS = @LTLIBINTL@ scim_config_agent_SOURCES = scim_config_agent.cpp scim_config_agent_LDADD = libscim@SCIM_EPOCH@.la scim_config_agent_LDFLAGS = @LTLIBINTL@ libexecdir = $(libdir)/scim@SCIM_EPOCH@ libexec_PROGRAMS = scim-launcher scim-helper-launcher scim-helper-manager scim_launcher_SOURCES = scim_launcher.cpp scim_launcher_LDADD = libscim@SCIM_EPOCH@.la scim_launcher_LDFLAGS = @LTLIBINTL@ scim_helper_launcher_SOURCES = scim_helper_launcher.cpp scim_helper_launcher_LDADD = libscim@SCIM_EPOCH@.la scim_helper_launcher_LDFLAGS = @LTLIBINTL@ scim_helper_manager_SOURCES = scim_helper_manager_server.cpp scim_helper_manager_LDADD = libscim@SCIM_EPOCH@.la scim_helper_manager_LDFLAGS = @LTLIBINTL@ scim-1.4.14/src/Makefile.in000066400000000000000000001114531177210725600154050ustar00rootroot00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ bin_PROGRAMS = scim$(EXEEXT) scim-config-agent$(EXEEXT) libexec_PROGRAMS = scim-launcher$(EXEEXT) \ scim-helper-launcher$(EXEEXT) scim-helper-manager$(EXEEXT) subdir = src DIST_COMMON = $(libsciminclude_HEADERS) $(noinst_HEADERS) \ $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(srcdir)/scim_types.h.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/argz.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltdl.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = scim_types.h CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \ "$(DESTDIR)$(libexecdir)" "$(DESTDIR)$(libscimincludedir)" LTLIBRARIES = $(lib_LTLIBRARIES) libscim@SCIM_EPOCH@_la_LIBADD = am_libscim@SCIM_EPOCH@_la_OBJECTS = scim_backend.lo scim_chartraits.lo \ scim_compose_key.lo scim_config_base.lo scim_config_module.lo \ scim_connection.lo scim_debug.lo scim_event.lo scim_filter.lo \ scim_filter_module.lo scim_filter_manager.lo scim_frontend.lo \ scim_frontend_module.lo scim_global_config.lo scim_helper.lo \ scim_helper_manager.lo scim_helper_module.lo scim_hotkey.lo \ scim_iconv.lo scim_imengine.lo scim_imengine_module.lo \ scim_lookup_table.lo scim_module.lo scim_object.lo \ scim_panel_agent.lo scim_panel_client.lo scim_private.lo \ scim_signals.lo scim_slot.lo scim_socket.lo \ scim_transaction.lo scim_utility.lo libscim@SCIM_EPOCH@_la_OBJECTS = $(am_libscim@SCIM_EPOCH@_la_OBJECTS) libscim@SCIM_EPOCH@_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(libscim@SCIM_EPOCH@_la_LDFLAGS) $(LDFLAGS) -o $@ PROGRAMS = $(bin_PROGRAMS) $(libexec_PROGRAMS) am_scim_OBJECTS = scim.$(OBJEXT) scim_OBJECTS = $(am_scim_OBJECTS) scim_DEPENDENCIES = libscim@SCIM_EPOCH@.la scim_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(scim_LDFLAGS) $(LDFLAGS) -o $@ am_scim_config_agent_OBJECTS = scim_config_agent.$(OBJEXT) scim_config_agent_OBJECTS = $(am_scim_config_agent_OBJECTS) scim_config_agent_DEPENDENCIES = libscim@SCIM_EPOCH@.la scim_config_agent_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(scim_config_agent_LDFLAGS) $(LDFLAGS) -o $@ am_scim_helper_launcher_OBJECTS = scim_helper_launcher.$(OBJEXT) scim_helper_launcher_OBJECTS = $(am_scim_helper_launcher_OBJECTS) scim_helper_launcher_DEPENDENCIES = libscim@SCIM_EPOCH@.la scim_helper_launcher_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(scim_helper_launcher_LDFLAGS) $(LDFLAGS) -o $@ am_scim_helper_manager_OBJECTS = scim_helper_manager_server.$(OBJEXT) scim_helper_manager_OBJECTS = $(am_scim_helper_manager_OBJECTS) scim_helper_manager_DEPENDENCIES = libscim@SCIM_EPOCH@.la scim_helper_manager_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(scim_helper_manager_LDFLAGS) $(LDFLAGS) -o $@ am_scim_launcher_OBJECTS = scim_launcher.$(OBJEXT) scim_launcher_OBJECTS = $(am_scim_launcher_OBJECTS) scim_launcher_DEPENDENCIES = libscim@SCIM_EPOCH@.la scim_launcher_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(scim_launcher_LDFLAGS) $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libscim@SCIM_EPOCH@_la_SOURCES) $(scim_SOURCES) \ $(scim_config_agent_SOURCES) $(scim_helper_launcher_SOURCES) \ $(scim_helper_manager_SOURCES) $(scim_launcher_SOURCES) DIST_SOURCES = $(libscim@SCIM_EPOCH@_la_SOURCES) $(scim_SOURCES) \ $(scim_config_agent_SOURCES) $(scim_helper_launcher_SOURCES) \ $(scim_helper_manager_SOURCES) $(scim_launcher_SOURCES) HEADERS = $(libsciminclude_HEADERS) $(noinst_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALL_LINGUAS = @ALL_LINGUAS@ AMTAR = @AMTAR@ AR = @AR@ ARGZ_H = @ARGZ_H@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CLUTTER_BINARY_VERSION = @CLUTTER_BINARY_VERSION@ CLUTTER_CFLAGS = @CLUTTER_CFLAGS@ CLUTTER_IMCONTEXT_LIBDIR = @CLUTTER_IMCONTEXT_LIBDIR@ CLUTTER_IM_MODULEDIR = @CLUTTER_IM_MODULEDIR@ CLUTTER_LIBDIR = @CLUTTER_LIBDIR@ CLUTTER_LIBS = @CLUTTER_LIBS@ CLUTTER_VERSION = @CLUTTER_VERSION@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DOCBOOK_XSL = @DOCBOOK_XSL@ DOT = @DOT@ DOXYGEN = @DOXYGEN@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTHREAD2_CFLAGS = @GTHREAD2_CFLAGS@ GTHREAD2_LIBS = @GTHREAD2_LIBS@ GTK2_CFLAGS = @GTK2_CFLAGS@ GTK2_IM_MODULEDIR = @GTK2_IM_MODULEDIR@ GTK2_LIBS = @GTK2_LIBS@ GTK3_CFLAGS = @GTK3_CFLAGS@ GTK3_IM_MODULEDIR = @GTK3_IM_MODULEDIR@ GTK3_LIBS = @GTK3_LIBS@ GTK_BINARY_VERSION = @GTK_BINARY_VERSION@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBDIR = @GTK_LIBDIR@ GTK_LIBS = @GTK_LIBS@ GTK_MAJOR_VERSION = @GTK_MAJOR_VERSION@ GTK_VERSION = @GTK_VERSION@ HAVE_GRAPHVIZ = @HAVE_GRAPHVIZ@ INCLTDL = @INCLTDL@ INCLUDE_STDINT = @INCLUDE_STDINT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBLTDL = @LIBLTDL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_DEPS = @LIBTOOL_DEPS@ LIBTOOL_EXPORT_OPTIONS = @LIBTOOL_EXPORT_OPTIONS@ LIPO = @LIPO@ LN_S = @LN_S@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ POSUB = @POSUB@ QT3_CFLAGS = @QT3_CFLAGS@ QT3_IM_MODULEDIR = @QT3_IM_MODULEDIR@ QT3_LIBDIR = @QT3_LIBDIR@ QT3_LIBS = @QT3_LIBS@ QT3_MOC = @QT3_MOC@ QT3_PREFIX = @QT3_PREFIX@ QT4_CFLAGS = @QT4_CFLAGS@ QT4_IM_MODULEDIR = @QT4_IM_MODULEDIR@ QT4_LIBDIR = @QT4_LIBDIR@ QT4_LIBS = @QT4_LIBS@ QT4_MOC = @QT4_MOC@ QT4_PREFIX = @QT4_PREFIX@ RANLIB = @RANLIB@ SCIM_AGE = @SCIM_AGE@ SCIM_BINARY_VERSION = @SCIM_BINARY_VERSION@ SCIM_BRIDGE_MAJOR_VERSION = @SCIM_BRIDGE_MAJOR_VERSION@ SCIM_BRIDGE_MICRO_VERSION = @SCIM_BRIDGE_MICRO_VERSION@ SCIM_BRIDGE_MINOR_VERSION = @SCIM_BRIDGE_MINOR_VERSION@ SCIM_BRIDGE_VERSION = @SCIM_BRIDGE_VERSION@ SCIM_BUILD_CLUTTER_IMMODULE = @SCIM_BUILD_CLUTTER_IMMODULE@ SCIM_BUILD_CONFIG_SIMPLE = @SCIM_BUILD_CONFIG_SIMPLE@ SCIM_BUILD_CONFIG_SOCKET = @SCIM_BUILD_CONFIG_SOCKET@ SCIM_BUILD_DOCUMENTS = @SCIM_BUILD_DOCUMENTS@ SCIM_BUILD_FILTER_SCTC = @SCIM_BUILD_FILTER_SCTC@ SCIM_BUILD_FRONTEND_SOCKET = @SCIM_BUILD_FRONTEND_SOCKET@ SCIM_BUILD_FRONTEND_X11 = @SCIM_BUILD_FRONTEND_X11@ SCIM_BUILD_GTK2_IMMODULE = @SCIM_BUILD_GTK2_IMMODULE@ SCIM_BUILD_GTK3_IMMODULE = @SCIM_BUILD_GTK3_IMMODULE@ SCIM_BUILD_GTK_UTILS = @SCIM_BUILD_GTK_UTILS@ SCIM_BUILD_IMENGINE_RAWCODE = @SCIM_BUILD_IMENGINE_RAWCODE@ SCIM_BUILD_IMENGINE_SOCKET = @SCIM_BUILD_IMENGINE_SOCKET@ SCIM_BUILD_IMENGINE_TABLE = @SCIM_BUILD_IMENGINE_TABLE@ SCIM_BUILD_IMMODULE = @SCIM_BUILD_IMMODULE@ SCIM_BUILD_IM_AGENT = @SCIM_BUILD_IM_AGENT@ SCIM_BUILD_ORIG_GTK2_IMMODULE = @SCIM_BUILD_ORIG_GTK2_IMMODULE@ SCIM_BUILD_ORIG_GTK3_IMMODULE = @SCIM_BUILD_ORIG_GTK3_IMMODULE@ SCIM_BUILD_PANEL_GTK = @SCIM_BUILD_PANEL_GTK@ SCIM_BUILD_QT3_IMMODULE = @SCIM_BUILD_QT3_IMMODULE@ SCIM_BUILD_QT4_IMMODULE = @SCIM_BUILD_QT4_IMMODULE@ SCIM_BUILD_SCIM_SETUP = @SCIM_BUILD_SCIM_SETUP@ SCIM_BUILD_TESTS = @SCIM_BUILD_TESTS@ SCIM_BUILD_X11_UTILS = @SCIM_BUILD_X11_UTILS@ SCIM_CURRENT = @SCIM_CURRENT@ SCIM_DATADIR = @SCIM_DATADIR@ SCIM_EPOCH = @SCIM_EPOCH@ SCIM_ICONDIR = @SCIM_ICONDIR@ SCIM_LIBDIR = @SCIM_LIBDIR@ SCIM_LIBEXECDIR = @SCIM_LIBEXECDIR@ SCIM_LOCALEDIR = @SCIM_LOCALEDIR@ SCIM_LTDLADVISE = @SCIM_LTDLADVISE@ SCIM_MAJOR_VERSION = @SCIM_MAJOR_VERSION@ SCIM_MICRO_VERSION = @SCIM_MICRO_VERSION@ SCIM_MINOR_VERSION = @SCIM_MINOR_VERSION@ SCIM_MODULE_PATH = @SCIM_MODULE_PATH@ SCIM_PREFIX = @SCIM_PREFIX@ SCIM_REVISION = @SCIM_REVISION@ SCIM_SYSCONFDIR = @SCIM_SYSCONFDIR@ SCIM_TEMPDIR = @SCIM_TEMPDIR@ SCIM_VERSION = @SCIM_VERSION@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ UINT16 = @UINT16@ UINT32 = @UINT32@ UINT64 = @UINT64@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XMKMF = @XMKMF@ XSLTPROC = @XSLTPROC@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_aux_dir = @ac_aux_dir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = $(libdir)/scim@SCIM_EPOCH@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ MAINTAINERCLEANFILES = Makefile.in scim_types.h CLEANFILES = libscim.la *.bak DISTCLEANFILES = scim_types.h EXTRA_DIST = libscim.version-script INCLUDES = -I$(top_builddir) \ -I$(top_builddir)/src \ -I$(top_srcdir) \ -I$(top_srcdir)/src \ -I$(top_srcdir)/intl \ -DSCIM_DATADIR=\"@SCIM_DATADIR@\" \ -DSCIM_LOCALEDIR=\"@SCIM_LOCALEDIR@\" \ -DSCIM_SYSCONFDIR=\"@SCIM_SYSCONFDIR@\" \ -DSCIM_LIBEXECDIR=\"@SCIM_LIBEXECDIR@\" \ -DSCIM_ICONDIR=\"@SCIM_ICONDIR@\" \ -DSCIM_MODULE_PATH=\"@SCIM_MODULE_PATH@\" \ $(LTDLINCL) noinst_HEADERS = \ scim_private.h \ scim_compose_key_data.h \ scim_keyboard_layout_data.h \ scim_keyevent_data.h \ scim_stl_map.h libscimincludedir = $(includedir)/scim@SCIM_EPOCH@ libsciminclude_HEADERS = scim.h \ scim_attribute.h \ scim_backend.h \ scim_bind.h \ scim_compose_key.h \ scim_config_base.h \ scim_config_module.h \ scim_config_path.h \ scim_connection.h \ scim_debug.h \ scim_event.h \ scim_exception.h \ scim_filter.h \ scim_filter_module.h \ scim_filter_manager.h \ scim_frontend.h \ scim_frontend_module.h \ scim_global_config.h \ scim_helper.h \ scim_helper_manager.h \ scim_helper_module.h \ scim_hotkey.h \ scim_iconv.h \ scim_imengine.h \ scim_imengine_module.h \ scim_lookup_table.h \ scim_module.h \ scim_object.h \ scim_panel_agent.h \ scim_panel_client.h \ scim_panel_common.h \ scim_pointer.h \ scim_property.h \ scim_signals.h \ scim_slot.h \ scim_socket.h \ scim_trans_commands.h \ scim_transaction.h \ scim_types.h \ scim_utility.h @SCIM_LD_VERSION_SCRIPT_TRUE@LD_VERSION_SCRIPT_OPTION = "-Wl,--version-script=$(srcdir)/libscim.version-script" lib_LTLIBRARIES = libscim@SCIM_EPOCH@.la libscim@SCIM_EPOCH@_la_SOURCES = scim_backend.cpp \ scim_chartraits.cpp \ scim_compose_key.cpp \ scim_config_base.cpp \ scim_config_module.cpp \ scim_connection.cpp \ scim_debug.cpp \ scim_event.cpp \ scim_filter.cpp \ scim_filter_module.cpp \ scim_filter_manager.cpp \ scim_frontend.cpp \ scim_frontend_module.cpp \ scim_global_config.cpp \ scim_helper.cpp \ scim_helper_manager.cpp \ scim_helper_module.cpp \ scim_hotkey.cpp \ scim_iconv.cpp \ scim_imengine.cpp \ scim_imengine_module.cpp \ scim_lookup_table.cpp \ scim_module.cpp \ scim_object.cpp \ scim_panel_agent.cpp \ scim_panel_client.cpp \ scim_private.cpp \ scim_signals.cpp \ scim_slot.cpp \ scim_socket.cpp \ scim_transaction.cpp \ scim_utility.cpp libscim@SCIM_EPOCH@_la_DEPENDENCIES = $(LTDLDEPS) libscim@SCIM_EPOCH@_la_LDFLAGS = -version-info $(SCIM_CURRENT):$(SCIM_REVISION):$(SCIM_AGE) \ -export-dynamic \ $(LD_VERSION_SCRIPT_OPTION) \ @LIBTOOL_EXPORT_OPTIONS@ \ @LIBICONV@ \ @LTLIBINTL@ \ $(LIBLTDL) scim_SOURCES = scim.cpp scim_LDADD = libscim@SCIM_EPOCH@.la scim_LDFLAGS = @LTLIBINTL@ scim_config_agent_SOURCES = scim_config_agent.cpp scim_config_agent_LDADD = libscim@SCIM_EPOCH@.la scim_config_agent_LDFLAGS = @LTLIBINTL@ scim_launcher_SOURCES = scim_launcher.cpp scim_launcher_LDADD = libscim@SCIM_EPOCH@.la scim_launcher_LDFLAGS = @LTLIBINTL@ scim_helper_launcher_SOURCES = scim_helper_launcher.cpp scim_helper_launcher_LDADD = libscim@SCIM_EPOCH@.la scim_helper_launcher_LDFLAGS = @LTLIBINTL@ scim_helper_manager_SOURCES = scim_helper_manager_server.cpp scim_helper_manager_LDADD = libscim@SCIM_EPOCH@.la scim_helper_manager_LDFLAGS = @LTLIBINTL@ all: all-am .SUFFIXES: .SUFFIXES: .cpp .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): scim_types.h: $(top_builddir)/config.status $(srcdir)/scim_types.h.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libscim@SCIM_EPOCH@.la: $(libscim@SCIM_EPOCH@_la_OBJECTS) $(libscim@SCIM_EPOCH@_la_DEPENDENCIES) $(libscim@SCIM_EPOCH@_la_LINK) -rpath $(libdir) $(libscim@SCIM_EPOCH@_la_OBJECTS) $(libscim@SCIM_EPOCH@_la_LIBADD) $(LIBS) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p || test -f $$p1; \ then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list install-libexecPROGRAMS: $(libexec_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(libexecdir)" || $(MKDIR_P) "$(DESTDIR)$(libexecdir)" @list='$(libexec_PROGRAMS)'; test -n "$(libexecdir)" || list=; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p || test -f $$p1; \ then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(libexecdir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(libexecdir)$$dir" || exit $$?; \ } \ ; done uninstall-libexecPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(libexec_PROGRAMS)'; test -n "$(libexecdir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(libexecdir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(libexecdir)" && rm -f $$files clean-libexecPROGRAMS: @list='$(libexec_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list scim$(EXEEXT): $(scim_OBJECTS) $(scim_DEPENDENCIES) @rm -f scim$(EXEEXT) $(scim_LINK) $(scim_OBJECTS) $(scim_LDADD) $(LIBS) scim-config-agent$(EXEEXT): $(scim_config_agent_OBJECTS) $(scim_config_agent_DEPENDENCIES) @rm -f scim-config-agent$(EXEEXT) $(scim_config_agent_LINK) $(scim_config_agent_OBJECTS) $(scim_config_agent_LDADD) $(LIBS) scim-helper-launcher$(EXEEXT): $(scim_helper_launcher_OBJECTS) $(scim_helper_launcher_DEPENDENCIES) @rm -f scim-helper-launcher$(EXEEXT) $(scim_helper_launcher_LINK) $(scim_helper_launcher_OBJECTS) $(scim_helper_launcher_LDADD) $(LIBS) scim-helper-manager$(EXEEXT): $(scim_helper_manager_OBJECTS) $(scim_helper_manager_DEPENDENCIES) @rm -f scim-helper-manager$(EXEEXT) $(scim_helper_manager_LINK) $(scim_helper_manager_OBJECTS) $(scim_helper_manager_LDADD) $(LIBS) scim-launcher$(EXEEXT): $(scim_launcher_OBJECTS) $(scim_launcher_DEPENDENCIES) @rm -f scim-launcher$(EXEEXT) $(scim_launcher_LINK) $(scim_launcher_OBJECTS) $(scim_launcher_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim_backend.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim_chartraits.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim_compose_key.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim_config_agent.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim_config_base.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim_config_module.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim_connection.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim_debug.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim_event.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim_filter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim_filter_manager.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim_filter_module.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim_frontend.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim_frontend_module.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim_global_config.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim_helper.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim_helper_launcher.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim_helper_manager.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim_helper_manager_server.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim_helper_module.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim_hotkey.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim_iconv.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim_imengine.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim_imengine_module.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim_launcher.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim_lookup_table.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim_module.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim_object.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim_panel_agent.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim_panel_client.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim_private.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim_signals.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim_slot.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim_socket.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim_transaction.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scim_utility.Plo@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cpp.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cpp.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-libscimincludeHEADERS: $(libsciminclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(libscimincludedir)" || $(MKDIR_P) "$(DESTDIR)$(libscimincludedir)" @list='$(libsciminclude_HEADERS)'; test -n "$(libscimincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libscimincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(libscimincludedir)" || exit $$?; \ done uninstall-libscimincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(libsciminclude_HEADERS)'; test -n "$(libscimincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(libscimincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(libscimincludedir)" && rm -f $$files ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(HEADERS) install-binPROGRAMS: install-libLTLIBRARIES installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(libexecdir)" "$(DESTDIR)$(libscimincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \ clean-libexecPROGRAMS clean-libtool mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-libscimincludeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binPROGRAMS install-libLTLIBRARIES \ install-libexecPROGRAMS install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-libLTLIBRARIES \ uninstall-libexecPROGRAMS uninstall-libscimincludeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ clean-generic clean-libLTLIBRARIES clean-libexecPROGRAMS \ clean-libtool ctags distclean distclean-compile \ distclean-generic distclean-libtool distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-binPROGRAMS install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am \ install-libLTLIBRARIES install-libexecPROGRAMS \ install-libscimincludeHEADERS install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-binPROGRAMS \ uninstall-libLTLIBRARIES uninstall-libexecPROGRAMS \ uninstall-libscimincludeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: scim-1.4.14/src/libscim.version-script000066400000000000000000000001511177210725600176630ustar00rootroot00000000000000LIBSCIM_1.0 { global: extern "C++" { *scim::*; }; local: *; }; scim-1.4.14/src/scim.cpp000066400000000000000000000251341177210725600147770ustar00rootroot00000000000000/* * Smart Common Input Method * * Copyright (c) 2002-2005 James Su * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this program; if not, write to the * Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, MA 02111-1307 USA * * $Id: scim.cpp,v 1.51 2005/06/15 00:19:08 suzhe Exp $ * */ #define Uses_SCIM_FRONTEND_MODULE #define Uses_SCIM_IMENGINE_MODULE #define Uses_SCIM_BACKEND #define Uses_SCIM_CONFIG_PATH #define Uses_SCIM_TRANSACTION #define Uses_C_LOCALE #include "scim_private.h" #include #include #include #include using namespace scim; using std::cout; using std::cerr; using std::endl; bool check_socket_frontend () { SocketAddress address; SocketClient client; uint32 magic; address.set_address (scim_get_default_socket_frontend_address ()); if (!client.connect (address)) return false; if (!scim_socket_open_connection (magic, String ("ConnectionTester"), String ("SocketFrontEnd"), client, 1000)) { return false; } return true; } int main (int argc, char *argv []) { BackEndPointer backend; std::vector frontend_list; std::vector config_list; std::vector engine_list; std::vector exclude_engine_list; std::vector load_engine_list; String def_frontend; String def_config; size_t i; bool daemon = false; bool socket = true; bool manual = false; int new_argc = 0; char *new_argv [80]; //Display version info cout << "Smart Common Input Method " << SCIM_VERSION << "\n\n"; //get modules list scim_get_frontend_module_list (frontend_list); scim_get_imengine_module_list (engine_list); scim_get_config_module_list (config_list); //Use x11 FrontEnd as default if available. if (frontend_list.size ()) { def_frontend = String ("x11"); if (std::find (frontend_list.begin (), frontend_list.end (), def_frontend) == frontend_list.end ()) def_frontend = frontend_list [0]; } //Add a dummy config module, it's not really a module! config_list.push_back ("dummy"); //Use simple Config module as default if available. def_config = scim_global_config_read (SCIM_GLOBAL_CONFIG_DEFAULT_CONFIG_MODULE, String ("simple")); if (std::find (config_list.begin (), config_list.end (), def_config) == config_list.end ()) def_config = config_list [0]; // If no Socket Config/IMEngine/FrontEnd modules // then do not try to start a SocketFrontEnd. if (std::find (frontend_list.begin (), frontend_list.end (), "socket") == frontend_list.end () || std::find (config_list.begin (), config_list.end (), "socket") == config_list.end () || std::find (engine_list.begin (), engine_list.end (), "socket") == engine_list.end ()) socket = false; //parse command options i = 0; while (i= argc) break; if (String ("-l") == argv [i] || String ("--list") == argv [i]) { std::vector::iterator it; cout << endl; cout << "Available FrontEnd module:\n"; for (it = frontend_list.begin (); it != frontend_list.end (); it++) cout << " " << *it << endl; cout << endl; cout << "Available Config module:\n"; for (it = config_list.begin (); it != config_list.end (); it++) cout << " " << *it << endl; cout << endl; cout << "Available IMEngine module:\n"; for (it = engine_list.begin (); it != engine_list.end (); it++) cout << " " << *it << endl; return 0; } if (String ("-f") == argv [i] || String ("--frontend") == argv [i]) { if (++i >= argc) { cerr << "No argument for option " << argv [i-1] << endl; return -1; } def_frontend = argv [i]; continue; } if (String ("-c") == argv [i] || String ("--config") == argv [i]) { if (++i >= argc) { cerr << "No argument for option " << argv [i-1] << endl; return -1; } def_config = argv [i]; continue; } if (String ("-h") == argv [i] || String ("--help") == argv [i]) { cout << "Usage: " << argv [0] << " [option]...\n\n" << "The options are: \n" << " -l, --list List all of available modules.\n" << " -f, --frontend name Use specified FrontEnd module.\n" << " -c, --config name Use specified Config module.\n" << " -e, --engines name Load specified set of IMEngines.\n" << " -ne,--no-engines name Do not load those set of IMEngines.\n" << " -d, --daemon Run " << argv [0] << " as a daemon.\n" << " --no-socket Do not try to start a SCIM SocketFrontEnd daemon.\n" << " -h, --help Show this help message.\n"; return 0; } if (String ("-d") == argv [i] || String ("--daemon") == argv [i]) { daemon = true; continue; } if (String ("-e") == argv [i] || String ("-s") == argv [i] || String ("--engines") == argv [i] || String ("--servers") == argv [i]) { if (++i >= argc) { cerr << "No argument for option " << argv [i-1] << endl; return -1; } scim_split_string_list (load_engine_list, String (argv [i]), ','); manual = true; continue; } if (String ("-ne") == argv [i] || String ("-ns") == argv [i] || String ("--no-engines") == argv [i] || String ("-no-servers") == argv [i]) { if (++i >= argc) { cerr << "No argument for option " << argv [i-1] << endl; return -1; } scim_split_string_list (exclude_engine_list, String (argv [i]), ','); manual = true; continue; } if (String ("--no-socket") == argv [i]) { socket = false; continue; } if (String ("--") == argv [i]) break; cerr << "Invalid command line option: " << argv [i] << "\n"; return -1; } //End of command line parsing. // Store the rest argvs into new_argv. for (++i; i < argc; ++i) { new_argv [new_argc ++] = argv [i]; } new_argv [new_argc] = 0; // Get the imengine module list which should be loaded. if (exclude_engine_list.size ()) { load_engine_list.clear (); for (i = 0; i < engine_list.size (); ++i) { if (std::find (exclude_engine_list.begin (), exclude_engine_list.end (), engine_list [i]) == exclude_engine_list.end () && engine_list [i] != "socket") load_engine_list.push_back (engine_list [i]); } } if (!def_frontend.length ()) { cerr << "No FrontEnd module is available!\n"; return -1; } if (!def_config.length ()) { cerr << "No Config module is available!\n"; return -1; } // If you try to use the socket feature manually, // then let you do it by yourself. if (def_frontend == "socket" || def_config == "socket" || std::find (load_engine_list.begin (), load_engine_list.end (), "socket") != load_engine_list.end ()) socket = false; // If the socket address of SocketFrontEnd and SocketIMEngine/SocketConfig are different, // then do not try to start the SocketFrontEnd instance automatically. if (scim_get_default_socket_frontend_address () != scim_get_default_socket_imengine_address () || scim_get_default_socket_frontend_address () != scim_get_default_socket_config_address ()) socket = false; // Try to start a SCIM SocketFrontEnd daemon first. if (socket) { // If no Socket FrontEnd is running, then launch one. // And set manual to false. if (!check_socket_frontend ()) { cerr << "Launching a SCIM daemon with Socket FrontEnd...\n"; char *no_stay_argv [] = { const_cast ("--no-stay"), 0 }; scim_launch (true, def_config, (load_engine_list.size () ? scim_combine_string_list (load_engine_list, ',') : "all"), "socket", no_stay_argv); manual = false; } // If there is one Socket FrontEnd running and it's not manual mode, // then just use this Socket Frontend. if (!manual) { for (int i = 0; i < 100; ++i) { if (check_socket_frontend ()) { def_config = "socket"; load_engine_list.clear (); load_engine_list.push_back ("socket"); break; } scim_usleep (100000); } } } cerr << "Launching a SCIM process with " << def_frontend << "...\n"; // Launch the scim process. if (scim_launch (daemon, def_config, (load_engine_list.size () ? scim_combine_string_list (load_engine_list, ',') : "all"), def_frontend, new_argv) == 0) { if (daemon) cerr << "SCIM has been successfully launched.\n"; else cerr << "SCIM has exited successfully.\n"; return 0; } if (daemon) cerr << "Failed to launch SCIM.\n"; else cerr << "SCIM has exited abnormally.\n"; return 1; } /* vi:ts=4:ai:nowrap:expandtab */ scim-1.4.14/src/scim.h000066400000000000000000000177571177210725600144600ustar00rootroot00000000000000/** @file scim.h * all of the header files are included within this file. * source files may include this file instead of others headers. */ /* * Smart Common Input Method * * Copyright (c) 2002-2005 James Su * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this program; if not, write to the * Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, MA 02111-1307 USA * * $Id: scim.h,v 1.38 2005/05/17 06:45:14 suzhe Exp $ */ // Define the macros #define Uses_SCIM_TYPES #define Uses_SCIM_UTILITY #define Uses_SCIM_GLOBAL_CONFIG #define Uses_SCIM_EXCEPTION #define Uses_SCIM_DEBUG #define Uses_SCIM_OBJECT #define Uses_SCIM_SIGNALS #define Uses_SCIM_SLOT #define Uses_SCIM_CONNECTION #define Uses_SCIM_BIND #define Uses_SCIM_POINTER #define Uses_STL_STRING #define Uses_STL_VECTOR #define Uses_STL_ALGORITHM #define Uses_STL_NEW #ifdef Uses_SCIM_FILTER_MANAGER #define Uses_SCIM_FILTER #endif #ifdef Uses_SCIM_FILTER_MODULE #define Uses_SCIM_MODULE #define Uses_SCIM_CONFIG_BASE #define Uses_SCIM_BACKEND #define Uses_SCIM_FILTER #endif #ifdef Uses_SCIM_FILTER #define Uses_SCIM_IMENGINE #endif #ifdef Uses_SCIM_PANEL #define Uses_SCIM_PANEL_AGENT #define Uses_SCIM_PANEL_CLIENT #endif #ifdef Uses_SCIM_PANEL_AGENT #define Uses_SCIM_HELPER_MANAGER #define Uses_SCIM_TRANSACTION #endif #ifdef Uses_SCIM_PANEL_CLIENT #define Uses_SCIM_TRANSACTION #endif #ifdef Uses_SCIM_HELPER_MANAGER #define Uses_SCIM_HELPER #endif #ifdef Uses_SCIM_HELPER_MODULE #define Uses_SCIM_HELPER #define Uses_SCIM_MODULE #define Uses_SCIM_CONFIG_BASE #endif #ifdef Uses_SCIM_HELPER #define Uses_SCIM_TRANSACTION #define Uses_SCIM_EVENT #endif #ifdef Uses_SCIM_COMPOSE_KEY #define Uses_SCIM_IMENGINE #endif #ifdef Uses_SCIM_TRANSACTION #define Uses_SCIM_EVENT #define Uses_SCIM_LOOKUP_TABLE #define Uses_SCIM_SOCKET #define Uses_SCIM_ATTRIBUTE #define Uses_SCIM_PROPERTY #define Uses_SCIM_TRANS_COMMANDS #endif #ifdef Uses_SCIM_CONFIG_MODULE #define Uses_SCIM_MODULE #define Uses_SCIM_CONFIG_BASE #endif #ifdef Uses_SCIM_IMENGINE_MODULE #define Uses_SCIM_MODULE #define Uses_SCIM_CONFIG_BASE #define Uses_SCIM_IMENGINE #endif #ifdef Uses_SCIM_FRONTEND_MODULE #define Uses_SCIM_MODULE #define Uses_SCIM_CONFIG_BASE #define Uses_SCIM_FRONTEND #endif #ifdef Uses_SCIM_ICONV #define Uses_C_ICONV #endif #ifdef Uses_SCIM_FRONTEND #define Uses_SCIM_BACKEND #define Uses_SCIM_IMENGINE #define Uses_SCIM_EVENT #define Uses_SCIM_LOOKUP_TABLE #define Uses_STL_MAP #define Uses_C_STDIO #define Uses_SCIM_ATTRIBUTE #define Uses_SCIM_PROPERTY #define Uses_SCIM_TRANSACTION #define Uses_SCIM_SOCKET #endif #ifdef Uses_SCIM_BACKEND #define Uses_SCIM_IMENGINE #define Uses_SCIM_CONFIG_BASE #define Uses_SCIM_COMPOSE_KEY #endif #ifdef Uses_SCIM_IMENGINE #define Uses_SCIM_EVENT #define Uses_SCIM_LOOKUP_TABLE #define Uses_SCIM_ATTRIBUTE #define Uses_SCIM_PROPERTY #define Uses_SCIM_TRANSACTION #define Uses_SCIM_SOCKET #endif #ifdef Uses_SCIM_LOOKUP_TABLE #define Uses_SCIM_EVENT #define Uses_SCIM_ATTRIBUTE #endif #ifdef Uses_SCIM_CONFIG_BASE #define Uses_SCIM_MODULE #define Uses_SCIM_CONFIG_MODULE #define Uses_STL_LIST #endif #ifdef Uses_SCIM_EXCEPTION #define Uses_STL_EXCEPTION #endif #ifdef Uses_SCIM_DEBUG #define Uses_STL_IOSTREAM #define Uses_STL_FSTREAM #endif #ifdef Uses_SCIM_UTILITY #define Uses_STL_IOSTREAM #endif #ifdef Uses_SCIM_HOTKEY #define Uses_SCIM_EVENT #define Uses_SCIM_CONFIG_BASE #define Uses_SCIM_CONFIG_PATH #endif // Include Standard headers #ifdef Uses_STL_EXCEPTION #include #endif #ifdef Uses_STL_NEW #include #endif #ifdef Uses_STL_IOSTREAM #include #endif #ifdef Uses_STL_FSTREAM #include #endif #ifdef Uses_STL_FUNCTIONAL #include #endif #ifdef Uses_STL_IOMANIP #include #endif #ifdef Uses_STL_MEMORY #include #endif #ifdef Uses_STL_VECTOR #include #endif #ifdef Uses_STL_LIST #include #endif #ifdef Uses_STL_MAP #include #endif #ifdef Uses_STL_QUEUE #include #endif #ifdef Uses_STL_ALGORITHM #include #endif #ifdef Uses_STL_UTILITY #include #endif #ifdef Uses_STL_STRING #include #endif #ifdef Uses_STL_STRSTREAM #include #endif #ifdef Uses_C_STDIO #include #endif #ifdef Uses_C_STDLIB #include #endif #ifdef Uses_C_LOCALE #include #endif #ifdef Uses_C_CTYPE #include #endif #ifdef Uses_C_WCTYPE #include #endif #ifdef Uses_C_STRING #include #endif #ifdef Uses_C_LIMITS #include #endif #ifdef Uses_C_ICONV #include #endif //Include SCIM Headers #ifdef Uses_SCIM_TYPES #include #endif #ifdef Uses_SCIM_DEBUG #include #endif #ifdef Uses_SCIM_EXCEPTION #include #endif #ifdef Uses_SCIM_EVENT #include #endif #ifdef Uses_SCIM_UTILITY #include #endif #ifdef Uses_SCIM_GLOBAL_CONFIG #include #endif #ifdef Uses_SCIM_POINTER #include #endif #ifdef Uses_SCIM_OBJECT #include #endif #ifdef Uses_SCIM_SLOT #include #endif #ifdef Uses_SCIM_CONNECTION #include #endif #ifdef Uses_SCIM_SIGNALS #include #endif #ifdef Uses_SCIM_BIND #include #endif #ifdef Uses_SCIM_CONFIG_BASE #include #endif #ifdef Uses_SCIM_ATTRIBUTE #include #endif #ifdef Uses_SCIM_PROPERTY #include #endif #ifdef Uses_SCIM_LOOKUP_TABLE #include #endif #ifdef Uses_SCIM_ICONV #include #endif #ifdef Uses_SCIM_MODULE #include #endif #ifdef Uses_SCIM_SOCKET #include #endif #ifdef Uses_SCIM_TRANSACTION #include #endif #ifdef Uses_SCIM_IMENGINE #include #endif #ifdef Uses_SCIM_IMENGINE_MODULE #include #endif #ifdef Uses_SCIM_COMPOSE_KEY #include #endif #ifdef Uses_SCIM_BACKEND #include #endif #ifdef Uses_SCIM_FRONTEND #include #endif #ifdef Uses_SCIM_FRONTEND_MODULE #include #endif #ifdef Uses_SCIM_CONFIG_MODULE #include #endif #ifdef Uses_SCIM_CONFIG_PATH #include #endif #ifdef Uses_SCIM_TRANS_COMMANDS #include #endif #ifdef Uses_SCIM_HELPER #include #endif #ifdef Uses_SCIM_HELPER_MODULE #include #endif #ifdef Uses_SCIM_HELPER_MANAGER #include #endif #ifdef Uses_SCIM_PANEL_AGENT #include #endif #ifdef Uses_SCIM_PANEL_CLIENT #include #endif #ifdef Uses_SCIM_HOTKEY #include #endif #ifdef Uses_SCIM_FILTER #include #endif #ifdef Uses_SCIM_FILTER_MODULE #include #endif #ifdef Uses_SCIM_FILTER_MANAGER #include #endif /* vi:ts=4:nowrap:ai:expandtab */ scim-1.4.14/src/scim_attribute.h000066400000000000000000000145611177210725600165310ustar00rootroot00000000000000/** @file scim_attribute.h * @brief Definition of scim::Attribute and scim::AttributeList * * Provide class scim::Attribute to control the * drawing effect of strings. */ /* * Smart Common Input Method * * Copyright (c) 2002-2005 James Su * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this program; if not, write to the * Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, MA 02111-1307 USA * * $Id: scim_attribute.h,v 1.7 2005/08/05 16:12:31 suzhe Exp $ */ #ifndef __SCIM_ATTRIBUTE_H #define __SCIM_ATTRIBUTE_H namespace scim { /** * @addtogroup Accessories * * The accessorial classes and functions, including Attribute, IConvert, LookupTable etc. * * @{ */ /** * @brief Enum values of the valid attribute type. */ enum AttributeType { SCIM_ATTR_NONE, ///< No attribute. SCIM_ATTR_DECORATE, ///< A decorate attribute, eg. underline etc. SCIM_ATTR_FOREGROUND, ///< A foreground color attribute, in RGB format. SCIM_ATTR_BACKGROUND ///< A background color attribute, in RGB format. }; const unsigned int SCIM_ATTR_DECORATE_NONE = 0; ///< No decorate const unsigned int SCIM_ATTR_DECORATE_UNDERLINE = 1; ///< Draw a line under the text const unsigned int SCIM_ATTR_DECORATE_HIGHLIGHT = 2; ///< Draw the text in highlighted color const unsigned int SCIM_ATTR_DECORATE_REVERSE = 4; ///< Draw the text in reverse color mode #define SCIM_RGB_COLOR(RED,GREEN,BLUE) ((unsigned int)(((RED)<<16) + ((GREEN)<<8) + (BLUE))) #define SCIM_RGB_COLOR_RED(COLOR) ((unsigned int)((COLOR>>16) & 0x00ff)) #define SCIM_RGB_COLOR_GREEN(COLOR) ((unsigned int)((COLOR>>8) & 0x00ff)) #define SCIM_RGB_COLOR_BLUE(COLOR) ((unsigned int)((COLOR) & 0x00ff)) /** * @brief Class to store the string attributes. * * The string attributes control the effect of the string * drawn by FrontEnds. There are currently four valid types. * * A attribute could be one of the following types: * - SCIM_ATTR_NONE No attribute * - SCIM_ATTR_DECORATE Decorate attribute, eg. underline, highlight etc. * - SCIM_ATTR_FOREGROUND Foreground color attribute, in RGB format. * - SCIM_ATTR_BACKGROUND Background color attribute, in RGB format. * * For a DECORATE attribute, it can be one of the following values: * - SCIM_ATTR_DECORATE_NONE No decorate * - SCIM_ATTR_DECORATE_UNDERLINE Underline * - SCIM_ATTR_DECORATE_HIGHLIGHT Highlight * - SCIM_ATTR_DECORATE_REVERSE Reverse * * For a FOREGROUND or BACKGROUND attribute, it's a RGB color value generated with * SCIM_RGB_COLOR (red,green,blue) macro. * You may use SCIM_RGB_COLOR_RED, SCIM_RGB_COLOR_GREEN and SCIM_RGB_COLOR_BLUE to extract * the RGB color later. */ class Attribute { unsigned int m_start; unsigned int m_length; AttributeType m_type; unsigned int m_value; public: /** * @brief Constructor * * @param start - the start position in the string of this attribute. * @param length - the length of this attribute, the range is [start,start+length). * @param type - the type of this attribute. * @param value - the value of this attribute. */ Attribute (unsigned int start = 0, unsigned int length = 0, AttributeType type = SCIM_ATTR_NONE, unsigned int value = 0) : m_start (start), m_length (length), m_type (type), m_value (value) { } /** * @brief Get the type of this attribute. * * @return The type of this attribute. */ AttributeType get_type () const { return m_type; } /** * @brief Get the value of this attribute. * * @return The value of this attribute. */ unsigned int get_value () const { return m_value; } /** * @brief Get the start position of this attribute. * @return The start position of this attribute in the string. */ unsigned int get_start () const { return m_start; } /** * @brief Get the length of this attribute. * @return The length of this attribute in the string. */ unsigned int get_length () const { return m_length; } /** * @brief Get the end position of this attribute. * @return The end position of this attribute. */ unsigned int get_end () const { return m_start + m_length; } /** * @brief Set the type of this attribute. * @param type - the new attribute type to be set. */ void set_type (AttributeType type) { m_type = type; } /** * @brief Set the value of this attribute. * @param value - the new attribute value to be set. */ void set_value (unsigned int value) { m_value = value; } /** * @brief Set the start position of this attribute. * @param start - the new start position in the string. */ void set_start (unsigned int start) { m_start = start; } /** * @brief Set the length of this attribute. * @param length - the new length of this attribute. */ void set_length (unsigned int length) { m_length = length; } }; inline bool operator < (const Attribute &lhs, const Attribute &rhs) { return lhs.get_start () < rhs.get_start () || (lhs.get_start () == rhs.get_start () && (lhs.get_length () < rhs.get_length () || (lhs.get_length () == rhs.get_length () && (lhs.get_type () < rhs.get_type () || (lhs.get_type () == rhs.get_type () && (lhs.get_value () < rhs.get_value ())))))); } /** * @typedef typedef std::vector AttributeList * @brief The container to store a set of Attribute objects. * * You should use the STL container methods to manipulate its objects. */ typedef std::vector AttributeList; /** @} */ } // namespace scim #endif //__SCIM_ATTRIBUTE_H /* vi:ts=4:nowrap:ai:expandtab */ scim-1.4.14/src/scim_backend.cpp000066400000000000000000000415521177210725600164500ustar00rootroot00000000000000/* * Smart Common Input Method * * Copyright (c) 2002-2005 James Su * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this program; if not, write to the * Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, MA 02111-1307 USA * * $Id: scim_backend.cpp,v 1.38.2.1 2006/09/24 16:00:52 suzhe Exp $ * */ #define Uses_SCIM_FILTER_MANAGER #define Uses_SCIM_BACKEND #define Uses_SCIM_IMENGINE #define Uses_SCIM_IMENGINE_MODULE #define Uses_SCIM_CONFIG_PATH #define Uses_STL_ALGORITHM #include "scim_private.h" #include "scim.h" #include "scim_stl_map.h" namespace scim { #if SCIM_USE_STL_EXT_HASH_MAP typedef __gnu_cxx::hash_map IMEngineFactoryRepository; #elif SCIM_USE_STL_HASH_MAP typedef std::hash_map IMEngineFactoryRepository; #else typedef std::map IMEngineFactoryRepository; #endif typedef std::vector IMEngineFactoryPointerVector; class LocaleEqual { String m_lhs; public: LocaleEqual (const String &lhs) : m_lhs (lhs) { } bool operator () (const String &rhs) const { if (m_lhs == rhs) return true; if (scim_get_locale_language (m_lhs) == scim_get_locale_language (rhs) && scim_get_locale_encoding (m_lhs) == scim_get_locale_encoding (rhs) && m_lhs.find ('.') != String::npos && rhs.find ('.') != String::npos) return true; return false; } }; class IMEngineFactoryPointerLess { public: bool operator () (const IMEngineFactoryPointer &lhs, const IMEngineFactoryPointer &rhs) const { return (lhs->get_language () < rhs->get_language ()) || (lhs->get_language () == rhs->get_language () && lhs->get_name () < rhs->get_name ()); } }; class BackEndBase::BackEndBaseImpl { IMEngineFactoryRepository m_factory_repository; String m_supported_unicode_locales; ConfigPointer m_config; public: BackEndBaseImpl (const ConfigPointer &config) : m_config (config) { String locales; // Set the default supported locales. locales = scim_global_config_read (SCIM_GLOBAL_CONFIG_SUPPORTED_UNICODE_LOCALES, String ("en_US.UTF-8")); std::vector locale_list; std::vector real_list; scim_split_string_list (locale_list, locales); for (std::vector ::iterator i = locale_list.begin (); i!= locale_list.end (); ++i) { *i = scim_validate_locale (*i); if (i->length () && scim_get_locale_encoding (*i) == "UTF-8" && std::find_if (real_list.begin (), real_list.end (), LocaleEqual (*i)) == real_list.end ()) real_list.push_back (*i); } m_supported_unicode_locales = scim_combine_string_list (real_list); } void clear () { m_factory_repository.clear (); } String get_all_locales () const { String locale; std::vector locale_list; std::vector real_list; IMEngineFactoryRepository::const_iterator it; for (it = m_factory_repository.begin (); it != m_factory_repository.end (); ++it) { if (locale.length () == 0) locale += it->second->get_locales (); else locale += (String (",") + it->second->get_locales ()); } if (m_supported_unicode_locales.length ()) locale += (String (",") + m_supported_unicode_locales); scim_split_string_list (locale_list, locale); for (std::vector ::iterator i = locale_list.begin (); i!= locale_list.end (); i++) { locale = scim_validate_locale (*i); if (locale.length () && std::find_if (real_list.begin (), real_list.end (), LocaleEqual (locale)) == real_list.end ()) real_list.push_back (locale); } return scim_combine_string_list (real_list); } IMEngineFactoryPointer get_factory (const String &uuid) const { IMEngineFactoryRepository::const_iterator it = m_factory_repository.find (uuid); if (it != m_factory_repository.end ()) return it->second; return IMEngineFactoryPointer (0); } uint32 get_factories_for_encoding (std::vector &factories, const String &encoding) const { IMEngineFactoryRepository::const_iterator it; factories.clear (); for (it = m_factory_repository.begin (); it != m_factory_repository.end (); ++it) { if ((encoding.length () == 0 || it->second->validate_encoding (encoding))) factories.push_back (it->second); } sort_factories (factories); return factories.size (); } uint32 get_factories_for_language (std::vector &factories, const String &language) const { IMEngineFactoryRepository::const_iterator it; factories.clear (); for (it = m_factory_repository.begin (); it != m_factory_repository.end (); ++it) { if ((language.length () == 0 || it->second->get_language () == language)) factories.push_back (it->second); } sort_factories (factories); return factories.size (); } IMEngineFactoryPointer get_default_factory (const String &language, const String &encoding) const { if (!language.length ()) return IMEngineFactoryPointer (); IMEngineFactoryPointerVector factories; if (get_factories_for_encoding (factories, encoding) > 0) { IMEngineFactoryPointer lang_first; IMEngineFactoryPointerVector::iterator it; String def_uuid; def_uuid = m_config->read (String (SCIM_CONFIG_DEFAULT_IMENGINE_FACTORY) + String ("/") + language, String ("")); // Match by Normalized language exactly. for (it = factories.begin (); it != factories.end (); ++it) { if (scim_get_normalized_language ((*it)->get_language ()) == language && lang_first.null ()) lang_first = *it; if ((*it)->get_uuid () == def_uuid) return *it; } if (!lang_first.null ()) return lang_first; // Match by short language name. for (it = factories.begin (); it != factories.end (); ++it) if ((*it)->get_language () == language.substr (0,2)) return *it; return factories [0]; } return IMEngineFactoryPointer (); } void set_default_factory (const String &language, const String &uuid) { if (!language.length () || !uuid.length ()) return; IMEngineFactoryPointerVector factories; if (get_factories_for_encoding (factories, "") > 0) { IMEngineFactoryPointerVector::iterator it; for (it = factories.begin (); it != factories.end (); ++it) { if ((*it)->get_uuid () == uuid) { m_config->write (String (SCIM_CONFIG_DEFAULT_IMENGINE_FACTORY) + String ("/") + language, uuid); return; } } } } IMEngineFactoryPointer get_next_factory (const String &language, const String &encoding, const String &cur_uuid) const { IMEngineFactoryPointerVector factories; if (get_factories_for_encoding (factories, encoding) > 0) { IMEngineFactoryPointer lang_first; IMEngineFactoryPointerVector::iterator it, itl; for (it = factories.begin (); it != factories.end (); ++it) { if ((language.length () == 0 || (*it)->get_language () == language) && lang_first.null ()) lang_first = *it; if ((*it)->get_uuid () == cur_uuid) { for (itl = it + 1; itl != factories.end (); ++itl) { if (language.length () == 0 || (*itl)->get_language () == language) return *itl; } if (!lang_first.null ()) return lang_first; return factories [0]; } } } return IMEngineFactoryPointer (); } IMEngineFactoryPointer get_previous_factory (const String &language, const String &encoding, const String &cur_uuid) const { IMEngineFactoryPointerVector factories; if (get_factories_for_encoding (factories, encoding) > 0) { IMEngineFactoryPointer lang_last; IMEngineFactoryPointerVector::iterator it, itl; for (it = factories.begin (); it != factories.end (); ++it) { if ((language.length () == 0 || (*it)->get_language () == language)) lang_last = *it; } for (it = factories.begin (); it != factories.end (); ++it) { if ((*it)->get_uuid () == cur_uuid) { for (itl = it; itl != factories.begin (); --itl) { if (language.length () == 0 || (*(itl-1))->get_language () == language) return *(itl-1); } if (!lang_last.null ()) return lang_last; return factories [factories.size () - 1]; } } } return IMEngineFactoryPointer (); } bool add_factory (const IMEngineFactoryPointer &factory) { if (!factory.null ()) { String uuid = factory->get_uuid (); if (uuid.length () && m_factory_repository.find (uuid) == m_factory_repository.end ()) { m_factory_repository [uuid] = factory; return true; } } return false; } private: void sort_factories (std::vector &factories) const { std::sort (factories.begin (), factories.end (), IMEngineFactoryPointerLess ()); } }; BackEndBase::BackEndBase (const ConfigPointer &config) : m_impl (new BackEndBase::BackEndBaseImpl (config)) { } BackEndBase::~BackEndBase () { delete m_impl; } String BackEndBase::get_all_locales () const { return m_impl->get_all_locales (); } IMEngineFactoryPointer BackEndBase::get_factory (const String &uuid) const { return m_impl->get_factory (uuid); } uint32 BackEndBase::get_factories_for_encoding (std::vector &factories, const String &encoding) const { return m_impl->get_factories_for_encoding (factories, encoding); } uint32 BackEndBase::get_factories_for_language (std::vector &factories, const String &language) const { return m_impl->get_factories_for_language (factories, language); } IMEngineFactoryPointer BackEndBase::get_default_factory (const String &language, const String &encoding) const { return m_impl->get_default_factory (language, encoding); } void BackEndBase::set_default_factory (const String &language, const String &uuid) { m_impl->set_default_factory (language, uuid); } IMEngineFactoryPointer BackEndBase::get_next_factory (const String &language, const String &encoding, const String &cur_uuid) const { return m_impl->get_next_factory (language, encoding, cur_uuid); } IMEngineFactoryPointer BackEndBase::get_previous_factory (const String &language, const String &encoding, const String &cur_uuid) const { return m_impl->get_previous_factory (language, encoding, cur_uuid); } bool BackEndBase::add_factory (const IMEngineFactoryPointer &factory) { return m_impl->add_factory (factory); } void BackEndBase::clear () { m_impl->clear (); } // Implementation of CommonBackEnd. struct CommonBackEnd::CommonBackEndImpl { IMEngineModule *m_engine_modules; FilterManager *m_filter_manager; CommonBackEndImpl () : m_engine_modules (0), m_filter_manager (0) { } }; CommonBackEnd::CommonBackEnd (const ConfigPointer &config, const std::vector &modules) : BackEndBase (config), m_impl (new CommonBackEndImpl) { IMEngineFactoryPointer factory; std::vector disabled_factories; std::vector new_modules = modules; int all_factories_count = 0; int module_factories_count = 0; if (config.null ()) return; // Get disabled factories list. disabled_factories = scim_global_config_read (SCIM_GLOBAL_CONFIG_DISABLED_IMENGINE_FACTORIES, disabled_factories); // Put socket module to the end of list. for (std::vector::iterator it = new_modules.begin (); it != new_modules.end (); ++it) { if (*it == "socket") { new_modules.erase (it); new_modules.push_back ("socket"); break; } } // Try to load all IMEngine modules try { m_impl->m_engine_modules = new IMEngineModule [new_modules.size ()]; m_impl->m_filter_manager = new FilterManager (config); } catch (const std::exception & err) { std::cerr << err.what () << "\n"; return; } //load IMEngine modules for (size_t i = 0; i < new_modules.size (); ++i) { SCIM_DEBUG_BACKEND (1) << "Loading IMEngine module: " << new_modules [i] << " ...\n"; module_factories_count = 0; if (m_impl->m_engine_modules [i].load (new_modules [i], config) && m_impl->m_engine_modules [i].valid ()) { for (size_t j=0; j < m_impl->m_engine_modules [i].number_of_factories (); ++j) { // Try to load a IMEngine Factory. try { factory = m_impl->m_engine_modules [i].create_factory (j); } catch (const std::exception & err) { std::cerr << err.what () << "\n"; factory.reset (); } if (!factory.null ()) { // Check if it's disabled. if (std::find (disabled_factories.begin (), disabled_factories.end (), factory->get_uuid ()) == disabled_factories.end ()) { // Add it into disabled list to prevent from loading again. disabled_factories.push_back (factory->get_uuid ()); // Only load filter for none socket IMEngines. if (new_modules [i] != "socket") factory = m_impl->m_filter_manager->attach_filters_to_factory (factory); add_factory (factory); all_factories_count ++; module_factories_count ++; SCIM_DEBUG_BACKEND (1) << " Loading IMEngine Factory " << j << " : " << "OK\n"; } else { SCIM_DEBUG_BACKEND (1) << " Loading IMEngine Factory " << j << " : " << "Disabled\n"; factory.reset (); } } else { SCIM_DEBUG_BACKEND (1) << " Loading IMEngine Factory " << j << " : " << "Failed\n"; } } if (module_factories_count) { SCIM_DEBUG_BACKEND (1) << new_modules [i] << " IMEngine module is successfully loaded.\n"; } else { SCIM_DEBUG_BACKEND (1) << "No Factory loaded from " << new_modules [i] << " IMEngine module!\n"; m_impl->m_engine_modules [i].unload (); } } else { SCIM_DEBUG_BACKEND (1) << "Failed to load " << new_modules [i] << " IMEngine module.\n"; } } factory = new ComposeKeyFactory (); if (all_factories_count == 0 || std::find (disabled_factories.begin (), disabled_factories.end (), factory->get_uuid ()) == disabled_factories.end ()) { factory = m_impl->m_filter_manager->attach_filters_to_factory (factory); add_factory (factory); } } CommonBackEnd::~CommonBackEnd () { clear (); delete [] m_impl->m_engine_modules; delete m_impl->m_filter_manager; delete m_impl; } } // namespace scim /* vi:ts=4:nowrap:ai:expandtab */ scim-1.4.14/src/scim_backend.h000066400000000000000000000146371177210725600161210ustar00rootroot00000000000000/** @file scim_backend.h * @brief definition of scim::BackEnd class. * * Class scim::BackEnd is used to load and manage IMEngine * modules and IMEngineFactories. */ /* * Smart Common Input Method * * Copyright (c) 2002-2005 James Su * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this program; if not, write to the * Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, MA 02111-1307 USA * * $Id: scim_backend.h,v 1.26 2005/10/06 18:02:06 liuspider Exp $ */ #ifndef __SCIM_BACKEND_H #define __SCIM_BACKEND_H namespace scim { /** * @brief An exception class to hold BackEnd related errors. * * scim::BackEndBase and its derived classes must throw * scim::BackEndError object when error. */ class BackEndError: public Exception { public: BackEndError (const String& what_arg) : Exception (String("scim::BackEnd: ") + what_arg) { } }; /** * @brief The interface class to manage a set of IMEngineFactory * and IMEngineInstance objects. * * This is mainly an accessory interface class used by scim::FrontEndBase. * Its responsibility is to hold a set of IMEngineFactory instances * and manage the locales list supported by them. * * Most developer should just use the default implementation * scim::CommonBackEnd. */ class BackEndBase : public ReferencedObject { class BackEndBaseImpl; BackEndBaseImpl *m_impl; protected: /** * @brief Default constructor. * * @param config Config object to be used. */ BackEndBase (const ConfigPointer &config); virtual ~BackEndBase (); public: /** * @brief Get a list of all locales supported by all IMEngineFactories. * @return A comma separated locales list. */ String get_all_locales () const; /** * @return Return the pointer of a Factory. * * @param uuid The uuid of the IMEngineFactory. */ IMEngineFactoryPointer get_factory (const String &uuid) const; public: /** * @name Methods to manipulate IMEngine Factories. * * @{ */ /** * @brief Get the IMEngine factories list for specific encoding * * @param factories the vector to store the factories which * support the encoding. * @param encoding the encoding to be queried. If empty, * all IMEngine factories will be returned. * * @return the number of IMEngine factories found. */ uint32 get_factories_for_encoding (std::vector &factories, const String &encoding = String ("")) const; /** * @brief Get the IMEngine factories list for specific language * * @param factories the vector to store the factories which * support the encoding. * @param language the language to be queried. If empty, * all IMEngine factories will be returned. * * @return the number of IMEngine factories found. */ uint32 get_factories_for_language (std::vector &factories, const String &language = String ("")) const; /** * @brief Get the default IMEngineFactory for a specific language and encoding. * * @param language the language to be queried. * @param encoding the encoding to be queried, if empty then don't match encoding. * * @return the pointer of the default IMEngineFactory for this language. */ IMEngineFactoryPointer get_default_factory (const String &language, const String &encoding) const; /** * @brief Set the default IMEngineFactory for a specific language. * * @param language the language to be set. * @param uuid the uuid of the default IMEngineFactory for this language. */ void set_default_factory (const String &language, const String &uuid); /** * @brief Get the next IMEngineFactory for a specific language and encoding. * * @param language the language to be queried, if empty then don't match language. * @param encoding the encoding to be queried, if empty then don't match encoding. * @param cur_uuid the UUID of current IMEngineFactory. * * @return the pointer of the next IMEngineFactory for this language and encoding * corresponding to the current IMEngineFactory. */ IMEngineFactoryPointer get_next_factory (const String &language, const String &encoding, const String &cur_uuid) const; /** * @brief Get the previous IMEngineFactory for a specific language and encoding. * * @param language the language to be queried, if empty then don't match language. * @param encoding the encoding to be queried, if empty then don't match encoding. * @param cur_uuid the UUID of current IMEngineFactory. * * @return the pointer of the previous IMEngineFactory for this language and encoding * corresponding to the current IMEngineFactory. */ IMEngineFactoryPointer get_previous_factory (const String &language, const String &encoding, const String &cur_uuid) const; /** * @} */ protected: bool add_factory (const IMEngineFactoryPointer &factory); void clear (); }; /** * @typedef typedef Pointer BackEndPointer; * * A smart pointer for scim::BackEndBase and its derived classes. */ typedef Pointer BackEndPointer; /** * @brief The default implementation of scim::BackEndBase interface. */ class CommonBackEnd : public BackEndBase { class CommonBackEndImpl; CommonBackEndImpl *m_impl; public: /** * @brief Constructor * * @param config The pointer to the Config object. * @param modules The list of the IMEngine modules to be loaded. */ CommonBackEnd (const ConfigPointer &config, const std::vector &modules); virtual ~CommonBackEnd (); }; } // namespace scim #endif //__SCIM_BACKEND_H /* vi:ts=4:nowrap:ai:expandtab */ scim-1.4.14/src/scim_bind.h000066400000000000000000000250741177210725600154430ustar00rootroot00000000000000/** * @file scim_bind.h * @brief Binding adapters. * * A binding adaptor is an object that allows you to convert between slot types. * Usually you wont use a BoundSlot directly but instead call the bind() factory * function (similiar to the slot() factory function) which will create an * appropriate bound slot for you, depending on the parameters passed. * * Most code of this file are came from Inti project. */ /* * Smart Common Input Method * * Copyright (c) 2002-2005 James Su * Copyright (c) 2002 The Inti Development Team. * Copyright (c) 2000 Red Hat, Inc. * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this program; if not, write to the * Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, MA 02111-1307 USA * * $Id: scim_bind.h,v 1.10 2005/01/10 08:30:52 suzhe Exp $ */ #ifndef __SCIM_BOUND_SLOT_H #define __SCIM_BOUND_SLOT_H namespace scim { /** * @addtogroup SignalSlot * The classes for signal/slot mechanism. * @{ */ //! @name Bind functions returning a new BoundSlot. //! @{ //! @class BoundSlot0_1 //! @brief Converts a slot taking one argument into a slot taking no arguments. template class BoundSlot0_1 : public Slot0 { Pointer < Slot1 > original_slot; P1 p; public: BoundSlot0_1(Slot1 *slot, P1 p1) : original_slot(slot), p(p1) {} //!< Constructor. //!< @param slot - a pointer to a slot of type Slot1. //!< @param p1 - a bound argument of type P1 virtual R call() const { return original_slot->call(p); } //!< Calls the original slot passing it the bound argument p as the last parameter. }; //! Overloaded bind() factory function. //! @param s - a slot of type Slot1. //! @param p1 - a value of type P1. //! @return a new slot that stores the value p1. //! //!
    When then returned slot is called it calls the original slot s, passing //! it the arguments passed to it and the value p1, as the last parameter. If //! the returned slot is connected to a signal it doesn't have to be unreferenced. The //! signal it's connected to will unreference the slot when it is destroyed. Otherwise //! the slot must be unreferenced by calling unref(). template inline Slot0* bind(Slot1 *s, P1 p1) { return new BoundSlot0_1(s, p1); } //! @class BoundSlot1_2 //! @brief Converts a slot taking two arguments into a slot taking one argument. template class BoundSlot1_2 : public Slot1 { Pointer < Slot2 > original_slot; P2 p; public: BoundSlot1_2(Slot2 *slot, P2 p2) : original_slot(slot), p(p2) {} //!< Constructor. //!< @param slot - a pointer to a slot of type Slot1. //!< @param p2 - a bound argument of type P2 virtual R call(P1 p1) const { return original_slot->call(p1, p); } //!< Calls the original slot passing it argument p1 and the bound argument p as the last parameter. }; //! Overloaded bind() factory function. //! @param s - a slot of type Slot1. //! @param p2 - a value of type P2. //! @return a new slot that stores the value p2. //! //!
    When then returned slot is called it calls the original slot s, passing //! it the arguments passed to it and the value p2, as the last parameter. If //! the returned slot is connected to a signal it doesn't have to be unreferenced. The //! signal it's connected to will unreference the slot when it is destroyed. Otherwise //! the slot must be unreferenced by calling unref(). template inline Slot1* bind(Slot2 *s, P2 p2) { return new BoundSlot1_2(s, p2); } //! @class BoundSlot2_3 //! @brief Converts a slot taking three arguments into a slot taking two arguments. template class BoundSlot2_3 : public Slot2 { Pointer < Slot3 > original_slot; P3 p; public: BoundSlot2_3(Slot3 *slot, P3 p3) : original_slot(slot), p(p3) {} //!< Constructor. //!< @param slot - a pointer to a slot of type Slot1. //!< @param p3 - a bound argument of type P3 virtual R call(P1 p1, P2 p2) const { return original_slot->call(p1, p2, p); } //!< Calls the original slot passing it arguments p1 and p2, and the bound argument p as the last parameter. }; //! Overloaded bind() factory function. //! @param s - a slot of type Slot1. //! @param p3 - a value of type P3. //! @return a new slot that stores the value p3. //! //!
    When then returned slot is called it calls the original slot s, passing //! it the arguments passed to it and the value p3, as the last parameter. If //! the returned slot is connected to a signal it doesn't have to be unreferenced. The //! signal it's connected to will unreference the slot when it is destroyed. Otherwise //! the slot must be unreferenced by calling unref(). template inline Slot2* bind(Slot3 *s, P3 p3) { return new BoundSlot2_3(s, p3); } //! @class BoundSlot3_4 //! @brief Converts a slot taking four arguments into a slot taking three arguments. template class BoundSlot3_4 : public Slot3 { Pointer < Slot4 > original_slot; P4 p; public: BoundSlot3_4(Slot4 *slot, P4 p4) : original_slot(slot), p(p4) {} //!< Constructor. //!< @param slot - a pointer to a slot of type Slot1. //!< @param p4 - a bound argument of type P4 virtual R call(P1 p1, P2 p2, P3 p3) const { return original_slot->call(p1, p2, p3, p); } //!< Calls the original slot passing it arguments p1, p2 and p3, and the bound argument p as the last parameter. }; //! Overloaded bind() factory function. //! @param s - a slot of type Slot1. //! @param p4 - a value of type P4. //! @return a new slot that stores the value p4. //! //!
    When then returned slot is called it calls the original slot s, passing //! it the arguments passed to it and the value p4, as the last parameter. If //! the returned slot is connected to a signal it doesn't have to be unreferenced. The //! signal it's connected to will unreference the slot when it is destroyed. Otherwise //! the slot must be unreferenced by calling unref(). template inline Slot3* bind(Slot4 *s, P4 p4) { return new BoundSlot3_4(s, p4); } //! @class BoundSlot4_5 //! @brief Converts a slot taking five arguments into a slot taking four arguments. template class BoundSlot4_5 : public Slot4 { Pointer < Slot5 > original_slot; P5 p; public: BoundSlot4_5(Slot5 *slot, P5 p5) : original_slot(slot), p(p5) {} //!< Constructor. //!< @param slot - a pointer to a slot of type Slot1. //!< @param p5 - a bound argument of type P5 virtual R call(P1 p1, P2 p2, P3 p3, P4 p4) const { return original_slot->call(p1, p2, p3, p4, p); } //!< Calls the original slot passing it arguments p1, p2, p3 and p4, and the bound argument p as the last parameter. }; //! Overloaded bind() factory function. //! @param s - a slot of type Slot1. //! @param p5 - a value of type P5. //! @return a new slot that stores the value p5. //! //!
    When then returned slot is called it calls the original slot s, passing //! it the arguments passed to it and the value p5, as the last parameter. If //! the returned slot is connected to a signal it doesn't have to be unreferenced. The //! signal it's connected to will unreference the slot when it is destroyed. Otherwise //! the slot must be unreferenced by calling unref(). template inline Slot4* bind(Slot5 *s, P5 p5) { return new BoundSlot4_5(s, p5); } //! @class BoundSlot5_6 //! @brief Converts a slot taking six arguments into a slot taking five arguments. template class BoundSlot5_6 : public Slot5 { Pointer < Slot6 > original_slot; P6 p; public: BoundSlot5_6(Slot6 *slot, P6 p6) : original_slot(slot), p(p6) {} //!< Constructor. //!< @param slot - a pointer to a slot of type Slot1. //!< @param p6 - a bound argument of type P6 virtual R call(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5) const { return original_slot->call(p1, p2, p3, p4, p5, p); } //!< Calls the original slot passing it arguments p1, p2, p3, p4 and p5, and the bound argument p as the last parameter. }; //! Overloaded bind() factory function. //! @param s - a slot of type Slot1. //! @param p6 - a value of type P6. //! @return a new slot that stores the value p6. //! //!
    When then returned slot is called it calls the original slot s, passing //! it the arguments passed to it and the value p6, as the last parameter. If //! the returned slot is connected to a signal it doesn't have to be unreferenced. The //! signal it's connected to will unreference the slot when it is destroyed. Otherwise //! the slot must be unreferenced by calling unref(). template inline Slot5* bind(Slot6 *s, P6 p6) { return new BoundSlot5_6(s, p6); } //! @} /** @} */ } // namespace scim #endif //__SCIM_BOUND_SLOT_H /* vi:ts=4:nowrap:ai:expandtab */ scim-1.4.14/src/scim_chartraits.cpp000066400000000000000000000073051177210725600172230ustar00rootroot00000000000000/** @file scim_chartraits.cpp */ /* * Smart Common Input Method * * Copyright (c) 2002-2005 James Su * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this program; if not, write to the * Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, MA 02111-1307 USA * * $Id: scim_chartraits.cpp,v 1.12 2005/07/05 16:18:17 suzhe Exp $ */ #include #include "scim_types.h" using namespace scim; #define GCC_VERSION (__GNUC__ * 10000 \ + __GNUC_MINOR__ * 100 \ + __GNUC_PATCHLEVEL__) #if !defined(__STDC_ISO_10646__) && GCC_VERSION >= 30200 namespace std { template<> void char_traits::assign(char_type& __c1, const char_type& __c2) { __c1 = __c2; } template<> bool char_traits::eq(const char_type& __c1, const char_type& __c2) { return __c1 == __c2; } template<> bool char_traits::lt(const char_type& __c1, const char_type& __c2) { return __c1 < __c2; } template<> char_traits::char_type* char_traits::assign(char_type* __s, size_t __n, char_type __a) { char_type* dest = __s; while (__n-- > 0) *(dest++) = __a; return __s; } template<> char_traits::char_type* char_traits::copy(char_type* __s1, const char_type* __s2, size_t __n) { char_type* dest = __s1; const char_type* from = __s2; while (__n-- > 0) *(dest++) = *(from++); return __s1; } template<> char_traits::char_type* char_traits::move(char_type* __s1, const char_type* __s2, size_t __n) { if (__s1 + __n > __s2) { char_type* dest = __s1 + __n - 1; const char_type* from = __s2; while (__n-- > 0) *(dest--) = *(from++); return __s1; } else { return copy(__s1, __s2, __n); } } template<> size_t char_traits::length(const char_type* __s) { size_t __result = 0; while ( *(__s++) != 0 ) __result++; return __result; } template<> int char_traits::compare(const char_type* __s1, const char_type* __s2, size_t __n) { while ( (*__s1 == *__s2++) && __n-- > 0 ) if (*__s1++ == 0) return (0); if (__n <= 0) return (0); return ( *__s1 - *(__s2 - 1) ); } template<> const char_traits::char_type* char_traits::find(const char_type* __s, size_t __n, const char_type& __a) { while (__n-- > 0) { if (*__s == __a) return __s; ++__s; } return 0; } template<> char_traits::char_type char_traits::to_char_type (const int_type& __c) { return static_cast(__c); } template<> char_traits::int_type char_traits::to_int_type (const char_type& __c) { return static_cast(__c); } template<> bool char_traits::eq_int_type(const int_type& __c1, const int_type& __c2) { return __c1 == __c2; } template<> char_traits::int_type char_traits::eof () { return static_cast(EOF); } template<> char_traits::int_type char_traits::not_eof (const int_type& __c) { return (__c == eof()) ? 0 : __c; } } #endif /* vi:ts=4:nowrap:ai:expandtab */ scim-1.4.14/src/scim_compose_key.cpp000066400000000000000000000171501177210725600173730ustar00rootroot00000000000000/** @file scim_compose_key.cpp * @brief Implementation of class ComposeKeyFactory and ComposeKeyInstance. */ /* * Smart Common Input Method * * Copyright (c) 2002-2005 James Su * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this program; if not, write to the * Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, MA 02111-1307 USA * * $Id: scim_compose_key.cpp,v 1.7 2005/08/16 07:26:54 suzhe Exp $ * */ #define Uses_SCIM_COMPOSE_KEY #define Uses_C_CTYPE #include "scim_private.h" #include "scim.h" #define SCIM_KEYBOARD_ICON_FILE (SCIM_ICONDIR "/keyboard.png") namespace scim { #define SCIM_MAX_COMPOSE_LEN 5 struct ComposeSequence { uint32 keys [SCIM_MAX_COMPOSE_LEN]; ucs4_t unicode; }; class ComposeSequenceLessByKeys { public: bool operator () (const ComposeSequence &lhs, const ComposeSequence &rhs) const { for (size_t i = 0; i < SCIM_MAX_COMPOSE_LEN; ++i) { if (lhs.keys [i] < rhs.keys [i]) return true; else if (lhs.keys [i] > rhs.keys [i]) return false; } return false; } bool operator () (const ComposeSequence &lhs, const uint32 *rhs) const { for (size_t i = 0; i < SCIM_MAX_COMPOSE_LEN; ++i) { if (lhs.keys [i] < rhs [i]) return true; else if (lhs.keys [i] > rhs [i]) return false; } return false; } bool operator () (const uint32 *lhs, const ComposeSequence &rhs) const { for (size_t i = 0; i < SCIM_MAX_COMPOSE_LEN; ++i) { if (lhs [i] < rhs.keys [i]) return true; else if (lhs [i] > rhs.keys [i]) return false; } return false; } bool operator () (const uint32 *lhs, const uint32 *rhs) const { for (size_t i = 0; i < SCIM_MAX_COMPOSE_LEN; ++i) { if (lhs [i] < rhs [i]) return true; else if (lhs [i] > rhs [i]) return false; } return false; } }; // Generated from /usr/X11R6/lib/X11/locale/en_US.UTF-8/Compose // Get rid off all keys with unicode value. // Merged with the table in gtk+2.x static const ComposeSequence __scim_compose_seqs[] = { #include "scim_compose_key_data.h" }; #define SCIM_NUM_COMPOSE_SEQS (sizeof (__scim_compose_seqs) / sizeof (__scim_compose_seqs [0])) static uint16 __scim_compose_ignores [] = { SCIM_KEY_ISO_Level3_Shift, SCIM_KEY_ISO_Group_Shift, SCIM_KEY_Mode_switch, SCIM_KEY_Shift_L, SCIM_KEY_Shift_R, SCIM_KEY_Control_L, SCIM_KEY_Control_R, SCIM_KEY_Caps_Lock, SCIM_KEY_Shift_Lock, SCIM_KEY_Meta_L, SCIM_KEY_Meta_R, SCIM_KEY_Alt_L, SCIM_KEY_Alt_R, SCIM_KEY_Super_L, SCIM_KEY_Super_R, SCIM_KEY_Hyper_L, SCIM_KEY_Hyper_R }; #define SCIM_NUM_COMPOSE_IGNORES (sizeof (__scim_compose_ignores) / sizeof (__scim_compose_ignores [0])) ComposeKeyFactory::ComposeKeyFactory () { set_locales ("C"); } ComposeKeyFactory::~ComposeKeyFactory () { } WideString ComposeKeyFactory::get_name () const { return utf8_mbstowcs (_("English/European")); } WideString ComposeKeyFactory::get_authors () const { return utf8_mbstowcs ("James Su "); } WideString ComposeKeyFactory::get_credits () const { return WideString (); } WideString ComposeKeyFactory::get_help () const { return WideString (); } String ComposeKeyFactory::get_uuid () const { return String (SCIM_COMPOSE_KEY_FACTORY_UUID); } String ComposeKeyFactory::get_icon_file () const { return String (SCIM_KEYBOARD_ICON_FILE); } bool ComposeKeyFactory::validate_encoding (const String& encoding) const { return true; } bool ComposeKeyFactory::validate_locale (const String& locale) const { return true; } IMEngineInstancePointer ComposeKeyFactory::create_instance (const String& encoding, int id) { return new ComposeKeyInstance (this, encoding, id); } ComposeKeyInstance::ComposeKeyInstance (ComposeKeyFactory *factory, const String& encoding, int id) : IMEngineInstanceBase (factory, encoding, id) { m_compose_buffer [0] = m_compose_buffer [1] = m_compose_buffer [2] = m_compose_buffer [3] = 0; m_compose_buffer [4] = m_compose_buffer [5] = m_compose_buffer [6] = m_compose_buffer [7] = 0; } ComposeKeyInstance::~ComposeKeyInstance () { } bool ComposeKeyInstance::process_key_event (const KeyEvent& key) { if (key.is_key_release ()) return false; // Ignore modifier key presses. if (std::binary_search (__scim_compose_ignores, __scim_compose_ignores + SCIM_NUM_COMPOSE_IGNORES, (uint16) key.code)) return false; // Ignore the key if ctrl or alt is down. if (key.is_control_down () || key.is_alt_down ()) return false; int n_compose = 0; while (m_compose_buffer [n_compose] != 0 && n_compose < SCIM_MAX_COMPOSE_LEN) ++ n_compose; // The buffer is full, then reset the buffer first. if (n_compose == SCIM_MAX_COMPOSE_LEN) { reset (); n_compose = 0; } m_compose_buffer [n_compose] = (uint32) key.code; const ComposeSequence *it = std::lower_bound (__scim_compose_seqs, __scim_compose_seqs + SCIM_NUM_COMPOSE_SEQS, m_compose_buffer, ComposeSequenceLessByKeys ()); // Not result found, reset the buffer and return false. if (it == __scim_compose_seqs + SCIM_NUM_COMPOSE_SEQS) { reset (); return false; } // Check if the compose sequence is match. for (n_compose = 0; n_compose < SCIM_MAX_COMPOSE_LEN; ++ n_compose) { if (m_compose_buffer [n_compose] == 0) break; // Not match, reset the buffer and return. // If it's the first key press, then return false to forward it. // Otherwise return true to ignore it. if (m_compose_buffer [n_compose] != it->keys [n_compose]) { reset (); return n_compose != 0; } } // Match exactly, commit the result. if (n_compose == SCIM_MAX_COMPOSE_LEN || it->keys [n_compose] == 0) { WideString wstr; wstr.push_back (it->unicode); commit_string (wstr); reset (); } return true; } void ComposeKeyInstance::move_preedit_caret (unsigned int /*pos*/) { } void ComposeKeyInstance::select_candidate (unsigned int /*item*/) { } void ComposeKeyInstance::update_lookup_table_page_size (unsigned int /*page_size*/) { } void ComposeKeyInstance::lookup_table_page_up () { } void ComposeKeyInstance::lookup_table_page_down () { } void ComposeKeyInstance::reset () { m_compose_buffer [0] = m_compose_buffer [1] = m_compose_buffer [2] = m_compose_buffer [3] = 0; m_compose_buffer [4] = m_compose_buffer [5] = m_compose_buffer [6] = m_compose_buffer [7] = 0; } void ComposeKeyInstance::focus_in () { register_properties (PropertyList ()); reset (); } void ComposeKeyInstance::focus_out () { } void ComposeKeyInstance::trigger_property (const String & /*property*/) { } } // namespace scim /* vi:ts=4:nowrap:ai:expandtab */ scim-1.4.14/src/scim_compose_key.h000066400000000000000000000053401177210725600170360ustar00rootroot00000000000000/** * @file scim_compose_key.h * @brief Defines scim::ComposeKeyFactory and scim::ComposeKeyInstance. */ /* * Smart Common Input Method * * Copyright (c) 2002-2005 James Su * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this program; if not, write to the * Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, MA 02111-1307 USA * * $Id: scim_compose_key.h,v 1.5 2005/08/16 07:26:54 suzhe Exp $ */ #ifndef __SCIM_COMPOSE_KEY_H #define __SCIM_COMPOSE_KEY_H namespace scim { /** * @addtogroup IMEngine * @{ */ #define SCIM_COMPOSE_KEY_FACTORY_UUID "c6bebc27-6324-4b77-8ad4-6d41dcaf2e08" /** * @brief A simple IMEngine to deal with the Compose keys. */ class ComposeKeyFactory : public IMEngineFactoryBase { public: ComposeKeyFactory (); virtual ~ComposeKeyFactory (); virtual WideString get_name () const; virtual String get_uuid () const; virtual String get_icon_file () const; virtual WideString get_authors () const; virtual WideString get_credits () const; virtual WideString get_help () const; virtual bool validate_encoding (const String& encoding) const; virtual bool validate_locale (const String& locale) const; virtual IMEngineInstancePointer create_instance (const String& encoding, int id = -1); }; class ComposeKeyInstance : public IMEngineInstanceBase { uint32 m_compose_buffer [8]; public: ComposeKeyInstance (ComposeKeyFactory *factory, const String &encoding, int id = -1); virtual ~ComposeKeyInstance (); virtual bool process_key_event (const KeyEvent& key); virtual void move_preedit_caret (unsigned int pos); virtual void select_candidate (unsigned int index); virtual void update_lookup_table_page_size (unsigned int page_size); virtual void lookup_table_page_up (); virtual void lookup_table_page_down (); virtual void reset (); virtual void focus_in (); virtual void focus_out (); virtual void trigger_property (const String& property); }; /** @} */ } // namespace scim #endif //__SCIM_COMPOSE_KEY_H /* vi:ts=4:nowrap:ai:expandtab */ scim-1.4.14/src/scim_compose_key_data.h000066400000000000000000034265461177210725600200510ustar00rootroot00000000000000 {{SCIM_KEY_combining_tilde, SCIM_KEY_A, 0, 0, 0 }, 0x00C3}, {{SCIM_KEY_combining_tilde, SCIM_KEY_E, 0, 0, 0 }, 0x1EBC}, {{SCIM_KEY_combining_tilde, SCIM_KEY_I, 0, 0, 0 }, 0x0128}, {{SCIM_KEY_combining_tilde, SCIM_KEY_N, 0, 0, 0 }, 0x00D1}, {{SCIM_KEY_combining_tilde, SCIM_KEY_O, 0, 0, 0 }, 0x00D5}, {{SCIM_KEY_combining_tilde, SCIM_KEY_U, 0, 0, 0 }, 0x0168}, {{SCIM_KEY_combining_tilde, SCIM_KEY_V, 0, 0, 0 }, 0x1E7C}, {{SCIM_KEY_combining_tilde, SCIM_KEY_Y, 0, 0, 0 }, 0x1EF8}, {{SCIM_KEY_combining_tilde, SCIM_KEY_a, 0, 0, 0 }, 0x00E3}, {{SCIM_KEY_combining_tilde, SCIM_KEY_e, 0, 0, 0 }, 0x1EBD}, {{SCIM_KEY_combining_tilde, SCIM_KEY_i, 0, 0, 0 }, 0x0129}, {{SCIM_KEY_combining_tilde, SCIM_KEY_n, 0, 0, 0 }, 0x00F1}, {{SCIM_KEY_combining_tilde, SCIM_KEY_o, 0, 0, 0 }, 0x00F5}, {{SCIM_KEY_combining_tilde, SCIM_KEY_u, 0, 0, 0 }, 0x0169}, {{SCIM_KEY_combining_tilde, SCIM_KEY_v, 0, 0, 0 }, 0x1E7D}, {{SCIM_KEY_combining_tilde, SCIM_KEY_y, 0, 0, 0 }, 0x1EF9}, {{SCIM_KEY_combining_tilde, SCIM_KEY_Acircumflex, 0, 0, 0 }, 0x1EAA}, {{SCIM_KEY_combining_tilde, SCIM_KEY_Ecircumflex, 0, 0, 0 }, 0x1EC4}, {{SCIM_KEY_combining_tilde, SCIM_KEY_Ocircumflex, 0, 0, 0 }, 0x1ED6}, {{SCIM_KEY_combining_tilde, SCIM_KEY_acircumflex, 0, 0, 0 }, 0x1EAB}, {{SCIM_KEY_combining_tilde, SCIM_KEY_ecircumflex, 0, 0, 0 }, 0x1EC5}, {{SCIM_KEY_combining_tilde, SCIM_KEY_ocircumflex, 0, 0, 0 }, 0x1ED7}, {{SCIM_KEY_combining_tilde, SCIM_KEY_Abreve, 0, 0, 0 }, 0x1EB4}, {{SCIM_KEY_combining_tilde, SCIM_KEY_abreve, 0, 0, 0 }, 0x1EB5}, {{SCIM_KEY_combining_tilde, SCIM_KEY_Ohorn, 0, 0, 0 }, 0x1EE0}, {{SCIM_KEY_combining_tilde, SCIM_KEY_ohorn, 0, 0, 0 }, 0x1EE1}, {{SCIM_KEY_combining_tilde, SCIM_KEY_Uhorn, 0, 0, 0 }, 0x1EEE}, {{SCIM_KEY_combining_tilde, SCIM_KEY_uhorn, 0, 0, 0 }, 0x1EEF}, {{SCIM_KEY_combining_tilde, SCIM_KEY_dead_circumflex, SCIM_KEY_A, 0, 0 }, 0x1EAA}, {{SCIM_KEY_combining_tilde, SCIM_KEY_dead_circumflex, SCIM_KEY_E, 0, 0 }, 0x1EC4}, {{SCIM_KEY_combining_tilde, SCIM_KEY_dead_circumflex, SCIM_KEY_O, 0, 0 }, 0x1ED6}, {{SCIM_KEY_combining_tilde, SCIM_KEY_dead_circumflex, SCIM_KEY_a, 0, 0 }, 0x1EAB}, {{SCIM_KEY_combining_tilde, SCIM_KEY_dead_circumflex, SCIM_KEY_e, 0, 0 }, 0x1EC5}, {{SCIM_KEY_combining_tilde, SCIM_KEY_dead_circumflex, SCIM_KEY_o, 0, 0 }, 0x1ED7}, {{SCIM_KEY_combining_tilde, SCIM_KEY_dead_breve, SCIM_KEY_A, 0, 0 }, 0x1EB4}, {{SCIM_KEY_combining_tilde, SCIM_KEY_dead_breve, SCIM_KEY_a, 0, 0 }, 0x1EB5}, {{SCIM_KEY_combining_tilde, SCIM_KEY_dead_horn, SCIM_KEY_O, 0, 0 }, 0x1EE0}, {{SCIM_KEY_combining_tilde, SCIM_KEY_dead_horn, SCIM_KEY_U, 0, 0 }, 0x1EEE}, {{SCIM_KEY_combining_tilde, SCIM_KEY_dead_horn, SCIM_KEY_o, 0, 0 }, 0x1EE1}, {{SCIM_KEY_combining_tilde, SCIM_KEY_dead_horn, SCIM_KEY_u, 0, 0 }, 0x1EEF}, {{SCIM_KEY_combining_tilde, SCIM_KEY_Multi_key, SCIM_KEY_plus, SCIM_KEY_O, 0 }, 0x1EE0}, {{SCIM_KEY_combining_tilde, SCIM_KEY_Multi_key, SCIM_KEY_plus, SCIM_KEY_U, 0 }, 0x1EEE}, {{SCIM_KEY_combining_tilde, SCIM_KEY_Multi_key, SCIM_KEY_plus, SCIM_KEY_o, 0 }, 0x1EE1}, {{SCIM_KEY_combining_tilde, SCIM_KEY_Multi_key, SCIM_KEY_plus, SCIM_KEY_u, 0 }, 0x1EEF}, {{SCIM_KEY_combining_tilde, SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_A, 0 }, 0x1EB4}, {{SCIM_KEY_combining_tilde, SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_a, 0 }, 0x1EB5}, {{SCIM_KEY_combining_tilde, SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_A, 0 }, 0x1EAA}, {{SCIM_KEY_combining_tilde, SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_E, 0 }, 0x1EC4}, {{SCIM_KEY_combining_tilde, SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_O, 0 }, 0x1ED6}, {{SCIM_KEY_combining_tilde, SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_a, 0 }, 0x1EAB}, {{SCIM_KEY_combining_tilde, SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_e, 0 }, 0x1EC5}, {{SCIM_KEY_combining_tilde, SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_o, 0 }, 0x1ED7}, {{SCIM_KEY_combining_tilde, SCIM_KEY_Multi_key, SCIM_KEY_b, SCIM_KEY_A, 0 }, 0x1EB4}, {{SCIM_KEY_combining_tilde, SCIM_KEY_Multi_key, SCIM_KEY_b, SCIM_KEY_a, 0 }, 0x1EB5}, {{SCIM_KEY_combining_grave, SCIM_KEY_A, 0, 0, 0 }, 0x00C0}, {{SCIM_KEY_combining_grave, SCIM_KEY_E, 0, 0, 0 }, 0x00C8}, {{SCIM_KEY_combining_grave, SCIM_KEY_I, 0, 0, 0 }, 0x00CC}, {{SCIM_KEY_combining_grave, SCIM_KEY_N, 0, 0, 0 }, 0x01F8}, {{SCIM_KEY_combining_grave, SCIM_KEY_O, 0, 0, 0 }, 0x00D2}, {{SCIM_KEY_combining_grave, SCIM_KEY_U, 0, 0, 0 }, 0x00D9}, {{SCIM_KEY_combining_grave, SCIM_KEY_W, 0, 0, 0 }, 0x1E80}, {{SCIM_KEY_combining_grave, SCIM_KEY_Y, 0, 0, 0 }, 0x1EF2}, {{SCIM_KEY_combining_grave, SCIM_KEY_a, 0, 0, 0 }, 0x00E0}, {{SCIM_KEY_combining_grave, SCIM_KEY_e, 0, 0, 0 }, 0x00E8}, {{SCIM_KEY_combining_grave, SCIM_KEY_i, 0, 0, 0 }, 0x00EC}, {{SCIM_KEY_combining_grave, SCIM_KEY_n, 0, 0, 0 }, 0x01F9}, {{SCIM_KEY_combining_grave, SCIM_KEY_o, 0, 0, 0 }, 0x00F2}, {{SCIM_KEY_combining_grave, SCIM_KEY_u, 0, 0, 0 }, 0x00F9}, {{SCIM_KEY_combining_grave, SCIM_KEY_w, 0, 0, 0 }, 0x1E81}, {{SCIM_KEY_combining_grave, SCIM_KEY_y, 0, 0, 0 }, 0x1EF3}, {{SCIM_KEY_combining_grave, SCIM_KEY_Acircumflex, 0, 0, 0 }, 0x1EA6}, {{SCIM_KEY_combining_grave, SCIM_KEY_Ecircumflex, 0, 0, 0 }, 0x1EC0}, {{SCIM_KEY_combining_grave, SCIM_KEY_Ocircumflex, 0, 0, 0 }, 0x1ED2}, {{SCIM_KEY_combining_grave, SCIM_KEY_Udiaeresis, 0, 0, 0 }, 0x01DB}, {{SCIM_KEY_combining_grave, SCIM_KEY_acircumflex, 0, 0, 0 }, 0x1EA7}, {{SCIM_KEY_combining_grave, SCIM_KEY_ecircumflex, 0, 0, 0 }, 0x1EC1}, {{SCIM_KEY_combining_grave, SCIM_KEY_ocircumflex, 0, 0, 0 }, 0x1ED3}, {{SCIM_KEY_combining_grave, SCIM_KEY_udiaeresis, 0, 0, 0 }, 0x01DC}, {{SCIM_KEY_combining_grave, SCIM_KEY_Abreve, 0, 0, 0 }, 0x1EB0}, {{SCIM_KEY_combining_grave, SCIM_KEY_abreve, 0, 0, 0 }, 0x1EB1}, {{SCIM_KEY_combining_grave, SCIM_KEY_Emacron, 0, 0, 0 }, 0x1E14}, {{SCIM_KEY_combining_grave, SCIM_KEY_emacron, 0, 0, 0 }, 0x1E15}, {{SCIM_KEY_combining_grave, SCIM_KEY_Omacron, 0, 0, 0 }, 0x1E50}, {{SCIM_KEY_combining_grave, SCIM_KEY_omacron, 0, 0, 0 }, 0x1E51}, {{SCIM_KEY_combining_grave, SCIM_KEY_Cyrillic_ie, 0, 0, 0 }, 0x0450}, {{SCIM_KEY_combining_grave, SCIM_KEY_Cyrillic_i, 0, 0, 0 }, 0x045D}, {{SCIM_KEY_combining_grave, SCIM_KEY_Cyrillic_IE, 0, 0, 0 }, 0x0400}, {{SCIM_KEY_combining_grave, SCIM_KEY_Cyrillic_I, 0, 0, 0 }, 0x040D}, {{SCIM_KEY_combining_grave, SCIM_KEY_Greek_iotadieresis, 0, 0, 0 }, 0x1FD2}, {{SCIM_KEY_combining_grave, SCIM_KEY_Greek_upsilondieresis, 0, 0, 0 }, 0x1FE2}, {{SCIM_KEY_combining_grave, SCIM_KEY_Greek_ALPHA, 0, 0, 0 }, 0x1FBA}, {{SCIM_KEY_combining_grave, SCIM_KEY_Greek_EPSILON, 0, 0, 0 }, 0x1FC8}, {{SCIM_KEY_combining_grave, SCIM_KEY_Greek_ETA, 0, 0, 0 }, 0x1FCA}, {{SCIM_KEY_combining_grave, SCIM_KEY_Greek_IOTA, 0, 0, 0 }, 0x1FDA}, {{SCIM_KEY_combining_grave, SCIM_KEY_Greek_OMICRON, 0, 0, 0 }, 0x1FF8}, {{SCIM_KEY_combining_grave, SCIM_KEY_Greek_UPSILON, 0, 0, 0 }, 0x1FEA}, {{SCIM_KEY_combining_grave, SCIM_KEY_Greek_OMEGA, 0, 0, 0 }, 0x1FFA}, {{SCIM_KEY_combining_grave, SCIM_KEY_Greek_alpha, 0, 0, 0 }, 0x1F70}, {{SCIM_KEY_combining_grave, SCIM_KEY_Greek_epsilon, 0, 0, 0 }, 0x1F72}, {{SCIM_KEY_combining_grave, SCIM_KEY_Greek_eta, 0, 0, 0 }, 0x1F74}, {{SCIM_KEY_combining_grave, SCIM_KEY_Greek_iota, 0, 0, 0 }, 0x1F76}, {{SCIM_KEY_combining_grave, SCIM_KEY_Greek_omicron, 0, 0, 0 }, 0x1F78}, {{SCIM_KEY_combining_grave, SCIM_KEY_Greek_upsilon, 0, 0, 0 }, 0x1F7A}, {{SCIM_KEY_combining_grave, SCIM_KEY_Greek_omega, 0, 0, 0 }, 0x1F7C}, {{SCIM_KEY_combining_grave, SCIM_KEY_Ohorn, 0, 0, 0 }, 0x1EDC}, {{SCIM_KEY_combining_grave, SCIM_KEY_ohorn, 0, 0, 0 }, 0x1EDD}, {{SCIM_KEY_combining_grave, SCIM_KEY_Uhorn, 0, 0, 0 }, 0x1EEA}, {{SCIM_KEY_combining_grave, SCIM_KEY_uhorn, 0, 0, 0 }, 0x1EEB}, {{SCIM_KEY_combining_grave, SCIM_KEY_dead_circumflex, SCIM_KEY_A, 0, 0 }, 0x1EA6}, {{SCIM_KEY_combining_grave, SCIM_KEY_dead_circumflex, SCIM_KEY_E, 0, 0 }, 0x1EC0}, {{SCIM_KEY_combining_grave, SCIM_KEY_dead_circumflex, SCIM_KEY_O, 0, 0 }, 0x1ED2}, {{SCIM_KEY_combining_grave, SCIM_KEY_dead_circumflex, SCIM_KEY_a, 0, 0 }, 0x1EA7}, {{SCIM_KEY_combining_grave, SCIM_KEY_dead_circumflex, SCIM_KEY_e, 0, 0 }, 0x1EC1}, {{SCIM_KEY_combining_grave, SCIM_KEY_dead_circumflex, SCIM_KEY_o, 0, 0 }, 0x1ED3}, {{SCIM_KEY_combining_grave, SCIM_KEY_dead_macron, SCIM_KEY_E, 0, 0 }, 0x1E14}, {{SCIM_KEY_combining_grave, SCIM_KEY_dead_macron, SCIM_KEY_O, 0, 0 }, 0x1E50}, {{SCIM_KEY_combining_grave, SCIM_KEY_dead_macron, SCIM_KEY_e, 0, 0 }, 0x1E15}, {{SCIM_KEY_combining_grave, SCIM_KEY_dead_macron, SCIM_KEY_o, 0, 0 }, 0x1E51}, {{SCIM_KEY_combining_grave, SCIM_KEY_dead_breve, SCIM_KEY_A, 0, 0 }, 0x1EB0}, {{SCIM_KEY_combining_grave, SCIM_KEY_dead_breve, SCIM_KEY_a, 0, 0 }, 0x1EB1}, {{SCIM_KEY_combining_grave, SCIM_KEY_dead_diaeresis, SCIM_KEY_U, 0, 0 }, 0x01DB}, {{SCIM_KEY_combining_grave, SCIM_KEY_dead_diaeresis, SCIM_KEY_u, 0, 0 }, 0x01DC}, {{SCIM_KEY_combining_grave, SCIM_KEY_dead_diaeresis, SCIM_KEY_Greek_iota, 0, 0 }, 0x1FD2}, {{SCIM_KEY_combining_grave, SCIM_KEY_dead_diaeresis, SCIM_KEY_Greek_upsilon, 0, 0 }, 0x1FE2}, {{SCIM_KEY_combining_grave, SCIM_KEY_dead_horn, SCIM_KEY_O, 0, 0 }, 0x1EDC}, {{SCIM_KEY_combining_grave, SCIM_KEY_dead_horn, SCIM_KEY_U, 0, 0 }, 0x1EEA}, {{SCIM_KEY_combining_grave, SCIM_KEY_dead_horn, SCIM_KEY_o, 0, 0 }, 0x1EDD}, {{SCIM_KEY_combining_grave, SCIM_KEY_dead_horn, SCIM_KEY_u, 0, 0 }, 0x1EEB}, {{SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_U, 0 }, 0x01DB}, {{SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_u, 0 }, 0x01DC}, {{SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_Greek_iota, 0 }, 0x1FD2}, {{SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_Greek_upsilon, 0 }, 0x1FE2}, {{SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_ALPHA, 0 }, 0x1F0B}, {{SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_EPSILON, 0 }, 0x1F1B}, {{SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_ETA, 0 }, 0x1F2B}, {{SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_IOTA, 0 }, 0x1F3B}, {{SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_OMICRON, 0 }, 0x1F4B}, {{SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_UPSILON, 0 }, 0x1F5B}, {{SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_OMEGA, 0 }, 0x1F6B}, {{SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_alpha, 0 }, 0x1F03}, {{SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_epsilon, 0 }, 0x1F13}, {{SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_eta, 0 }, 0x1F23}, {{SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_iota, 0 }, 0x1F33}, {{SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_omicron, 0 }, 0x1F43}, {{SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_upsilon, 0 }, 0x1F53}, {{SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_omega, 0 }, 0x1F63}, {{SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_ALPHA, 0 }, 0x1F0A}, {{SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_EPSILON, 0 }, 0x1F1A}, {{SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_ETA, 0 }, 0x1F2A}, {{SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_IOTA, 0 }, 0x1F3A}, {{SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_OMICRON, 0 }, 0x1F4A}, {{SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_OMEGA, 0 }, 0x1F6A}, {{SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_alpha, 0 }, 0x1F02}, {{SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_epsilon, 0 }, 0x1F12}, {{SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_eta, 0 }, 0x1F22}, {{SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_iota, 0 }, 0x1F32}, {{SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_omicron, 0 }, 0x1F42}, {{SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_upsilon, 0 }, 0x1F52}, {{SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_omega, 0 }, 0x1F62}, {{SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_plus, SCIM_KEY_O, 0 }, 0x1EDC}, {{SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_plus, SCIM_KEY_U, 0 }, 0x1EEA}, {{SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_plus, SCIM_KEY_o, 0 }, 0x1EDD}, {{SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_plus, SCIM_KEY_u, 0 }, 0x1EEB}, {{SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_A, 0 }, 0x1EB0}, {{SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_a, 0 }, 0x1EB1}, {{SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_A, 0 }, 0x1EA6}, {{SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_E, 0 }, 0x1EC0}, {{SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_O, 0 }, 0x1ED2}, {{SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_a, 0 }, 0x1EA7}, {{SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_e, 0 }, 0x1EC1}, {{SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_o, 0 }, 0x1ED3}, {{SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_E, 0 }, 0x1E14}, {{SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_O, 0 }, 0x1E50}, {{SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_e, 0 }, 0x1E15}, {{SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_o, 0 }, 0x1E51}, {{SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_b, SCIM_KEY_A, 0 }, 0x1EB0}, {{SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_b, SCIM_KEY_a, 0 }, 0x1EB1}, {{SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_E, 0 }, 0x1E14}, {{SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_O, 0 }, 0x1E50}, {{SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_e, 0 }, 0x1E15}, {{SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_o, 0 }, 0x1E51}, {{SCIM_KEY_combining_grave, 0x1000313, SCIM_KEY_Greek_ALPHA, 0, 0 }, 0x1F0A}, {{SCIM_KEY_combining_grave, 0x1000313, SCIM_KEY_Greek_EPSILON, 0, 0 }, 0x1F1A}, {{SCIM_KEY_combining_grave, 0x1000313, SCIM_KEY_Greek_ETA, 0, 0 }, 0x1F2A}, {{SCIM_KEY_combining_grave, 0x1000313, SCIM_KEY_Greek_IOTA, 0, 0 }, 0x1F3A}, {{SCIM_KEY_combining_grave, 0x1000313, SCIM_KEY_Greek_OMICRON, 0, 0 }, 0x1F4A}, {{SCIM_KEY_combining_grave, 0x1000313, SCIM_KEY_Greek_OMEGA, 0, 0 }, 0x1F6A}, {{SCIM_KEY_combining_grave, 0x1000313, SCIM_KEY_Greek_alpha, 0, 0 }, 0x1F02}, {{SCIM_KEY_combining_grave, 0x1000313, SCIM_KEY_Greek_epsilon, 0, 0 }, 0x1F12}, {{SCIM_KEY_combining_grave, 0x1000313, SCIM_KEY_Greek_eta, 0, 0 }, 0x1F22}, {{SCIM_KEY_combining_grave, 0x1000313, SCIM_KEY_Greek_iota, 0, 0 }, 0x1F32}, {{SCIM_KEY_combining_grave, 0x1000313, SCIM_KEY_Greek_omicron, 0, 0 }, 0x1F42}, {{SCIM_KEY_combining_grave, 0x1000313, SCIM_KEY_Greek_upsilon, 0, 0 }, 0x1F52}, {{SCIM_KEY_combining_grave, 0x1000313, SCIM_KEY_Greek_omega, 0, 0 }, 0x1F62}, {{SCIM_KEY_combining_grave, 0x1000314, SCIM_KEY_Greek_ALPHA, 0, 0 }, 0x1F0B}, {{SCIM_KEY_combining_grave, 0x1000314, SCIM_KEY_Greek_EPSILON, 0, 0 }, 0x1F1B}, {{SCIM_KEY_combining_grave, 0x1000314, SCIM_KEY_Greek_ETA, 0, 0 }, 0x1F2B}, {{SCIM_KEY_combining_grave, 0x1000314, SCIM_KEY_Greek_IOTA, 0, 0 }, 0x1F3B}, {{SCIM_KEY_combining_grave, 0x1000314, SCIM_KEY_Greek_OMICRON, 0, 0 }, 0x1F4B}, {{SCIM_KEY_combining_grave, 0x1000314, SCIM_KEY_Greek_UPSILON, 0, 0 }, 0x1F5B}, {{SCIM_KEY_combining_grave, 0x1000314, SCIM_KEY_Greek_OMEGA, 0, 0 }, 0x1F6B}, {{SCIM_KEY_combining_grave, 0x1000314, SCIM_KEY_Greek_alpha, 0, 0 }, 0x1F03}, {{SCIM_KEY_combining_grave, 0x1000314, SCIM_KEY_Greek_epsilon, 0, 0 }, 0x1F13}, {{SCIM_KEY_combining_grave, 0x1000314, SCIM_KEY_Greek_eta, 0, 0 }, 0x1F23}, {{SCIM_KEY_combining_grave, 0x1000314, SCIM_KEY_Greek_iota, 0, 0 }, 0x1F33}, {{SCIM_KEY_combining_grave, 0x1000314, SCIM_KEY_Greek_omicron, 0, 0 }, 0x1F43}, {{SCIM_KEY_combining_grave, 0x1000314, SCIM_KEY_Greek_upsilon, 0, 0 }, 0x1F53}, {{SCIM_KEY_combining_grave, 0x1000314, SCIM_KEY_Greek_omega, 0, 0 }, 0x1F63}, {{SCIM_KEY_combining_grave, 0x1001f00, 0, 0, 0 }, 0x1F02}, {{SCIM_KEY_combining_grave, 0x1001f01, 0, 0, 0 }, 0x1F03}, {{SCIM_KEY_combining_grave, 0x1001f08, 0, 0, 0 }, 0x1F0A}, {{SCIM_KEY_combining_grave, 0x1001f09, 0, 0, 0 }, 0x1F0B}, {{SCIM_KEY_combining_grave, 0x1001f10, 0, 0, 0 }, 0x1F12}, {{SCIM_KEY_combining_grave, 0x1001f11, 0, 0, 0 }, 0x1F13}, {{SCIM_KEY_combining_grave, 0x1001f18, 0, 0, 0 }, 0x1F1A}, {{SCIM_KEY_combining_grave, 0x1001f19, 0, 0, 0 }, 0x1F1B}, {{SCIM_KEY_combining_grave, 0x1001f20, 0, 0, 0 }, 0x1F22}, {{SCIM_KEY_combining_grave, 0x1001f21, 0, 0, 0 }, 0x1F23}, {{SCIM_KEY_combining_grave, 0x1001f28, 0, 0, 0 }, 0x1F2A}, {{SCIM_KEY_combining_grave, 0x1001f29, 0, 0, 0 }, 0x1F2B}, {{SCIM_KEY_combining_grave, 0x1001f30, 0, 0, 0 }, 0x1F32}, {{SCIM_KEY_combining_grave, 0x1001f31, 0, 0, 0 }, 0x1F33}, {{SCIM_KEY_combining_grave, 0x1001f38, 0, 0, 0 }, 0x1F3A}, {{SCIM_KEY_combining_grave, 0x1001f39, 0, 0, 0 }, 0x1F3B}, {{SCIM_KEY_combining_grave, 0x1001f40, 0, 0, 0 }, 0x1F42}, {{SCIM_KEY_combining_grave, 0x1001f41, 0, 0, 0 }, 0x1F43}, {{SCIM_KEY_combining_grave, 0x1001f48, 0, 0, 0 }, 0x1F4A}, {{SCIM_KEY_combining_grave, 0x1001f49, 0, 0, 0 }, 0x1F4B}, {{SCIM_KEY_combining_grave, 0x1001f50, 0, 0, 0 }, 0x1F52}, {{SCIM_KEY_combining_grave, 0x1001f51, 0, 0, 0 }, 0x1F53}, {{SCIM_KEY_combining_grave, 0x1001f59, 0, 0, 0 }, 0x1F5B}, {{SCIM_KEY_combining_grave, 0x1001f60, 0, 0, 0 }, 0x1F62}, {{SCIM_KEY_combining_grave, 0x1001f61, 0, 0, 0 }, 0x1F63}, {{SCIM_KEY_combining_grave, 0x1001f68, 0, 0, 0 }, 0x1F6A}, {{SCIM_KEY_combining_grave, 0x1001f69, 0, 0, 0 }, 0x1F6B}, {{SCIM_KEY_combining_acute, SCIM_KEY_A, 0, 0, 0 }, 0x00C1}, {{SCIM_KEY_combining_acute, SCIM_KEY_C, 0, 0, 0 }, 0x0106}, {{SCIM_KEY_combining_acute, SCIM_KEY_E, 0, 0, 0 }, 0x00C9}, {{SCIM_KEY_combining_acute, SCIM_KEY_G, 0, 0, 0 }, 0x01F4}, {{SCIM_KEY_combining_acute, SCIM_KEY_I, 0, 0, 0 }, 0x00CD}, {{SCIM_KEY_combining_acute, SCIM_KEY_K, 0, 0, 0 }, 0x1E30}, {{SCIM_KEY_combining_acute, SCIM_KEY_L, 0, 0, 0 }, 0x0139}, {{SCIM_KEY_combining_acute, SCIM_KEY_M, 0, 0, 0 }, 0x1E3E}, {{SCIM_KEY_combining_acute, SCIM_KEY_N, 0, 0, 0 }, 0x0143}, {{SCIM_KEY_combining_acute, SCIM_KEY_O, 0, 0, 0 }, 0x00D3}, {{SCIM_KEY_combining_acute, SCIM_KEY_P, 0, 0, 0 }, 0x1E54}, {{SCIM_KEY_combining_acute, SCIM_KEY_R, 0, 0, 0 }, 0x0154}, {{SCIM_KEY_combining_acute, SCIM_KEY_S, 0, 0, 0 }, 0x015A}, {{SCIM_KEY_combining_acute, SCIM_KEY_U, 0, 0, 0 }, 0x00DA}, {{SCIM_KEY_combining_acute, SCIM_KEY_W, 0, 0, 0 }, 0x1E82}, {{SCIM_KEY_combining_acute, SCIM_KEY_Y, 0, 0, 0 }, 0x00DD}, {{SCIM_KEY_combining_acute, SCIM_KEY_Z, 0, 0, 0 }, 0x0179}, {{SCIM_KEY_combining_acute, SCIM_KEY_a, 0, 0, 0 }, 0x00E1}, {{SCIM_KEY_combining_acute, SCIM_KEY_c, 0, 0, 0 }, 0x0107}, {{SCIM_KEY_combining_acute, SCIM_KEY_e, 0, 0, 0 }, 0x00E9}, {{SCIM_KEY_combining_acute, SCIM_KEY_g, 0, 0, 0 }, 0x01F5}, {{SCIM_KEY_combining_acute, SCIM_KEY_i, 0, 0, 0 }, 0x00ED}, {{SCIM_KEY_combining_acute, SCIM_KEY_k, 0, 0, 0 }, 0x1E31}, {{SCIM_KEY_combining_acute, SCIM_KEY_l, 0, 0, 0 }, 0x013A}, {{SCIM_KEY_combining_acute, SCIM_KEY_m, 0, 0, 0 }, 0x1E3F}, {{SCIM_KEY_combining_acute, SCIM_KEY_n, 0, 0, 0 }, 0x0144}, {{SCIM_KEY_combining_acute, SCIM_KEY_o, 0, 0, 0 }, 0x00F3}, {{SCIM_KEY_combining_acute, SCIM_KEY_p, 0, 0, 0 }, 0x1E55}, {{SCIM_KEY_combining_acute, SCIM_KEY_r, 0, 0, 0 }, 0x0155}, {{SCIM_KEY_combining_acute, SCIM_KEY_s, 0, 0, 0 }, 0x015B}, {{SCIM_KEY_combining_acute, SCIM_KEY_u, 0, 0, 0 }, 0x00FA}, {{SCIM_KEY_combining_acute, SCIM_KEY_w, 0, 0, 0 }, 0x1E83}, {{SCIM_KEY_combining_acute, SCIM_KEY_y, 0, 0, 0 }, 0x00FD}, {{SCIM_KEY_combining_acute, SCIM_KEY_z, 0, 0, 0 }, 0x017A}, {{SCIM_KEY_combining_acute, SCIM_KEY_Acircumflex, 0, 0, 0 }, 0x1EA4}, {{SCIM_KEY_combining_acute, SCIM_KEY_Aring, 0, 0, 0 }, 0x01FA}, {{SCIM_KEY_combining_acute, SCIM_KEY_AE, 0, 0, 0 }, 0x01FC}, {{SCIM_KEY_combining_acute, SCIM_KEY_Ccedilla, 0, 0, 0 }, 0x1E08}, {{SCIM_KEY_combining_acute, SCIM_KEY_Ecircumflex, 0, 0, 0 }, 0x1EBE}, {{SCIM_KEY_combining_acute, SCIM_KEY_Idiaeresis, 0, 0, 0 }, 0x1E2E}, {{SCIM_KEY_combining_acute, SCIM_KEY_Ocircumflex, 0, 0, 0 }, 0x1ED0}, {{SCIM_KEY_combining_acute, SCIM_KEY_Otilde, 0, 0, 0 }, 0x1E4C}, {{SCIM_KEY_combining_acute, SCIM_KEY_Ooblique, 0, 0, 0 }, 0x01FE}, {{SCIM_KEY_combining_acute, SCIM_KEY_Udiaeresis, 0, 0, 0 }, 0x01D7}, {{SCIM_KEY_combining_acute, SCIM_KEY_acircumflex, 0, 0, 0 }, 0x1EA5}, {{SCIM_KEY_combining_acute, SCIM_KEY_aring, 0, 0, 0 }, 0x01FB}, {{SCIM_KEY_combining_acute, SCIM_KEY_ae, 0, 0, 0 }, 0x01FD}, {{SCIM_KEY_combining_acute, SCIM_KEY_ccedilla, 0, 0, 0 }, 0x1E09}, {{SCIM_KEY_combining_acute, SCIM_KEY_ecircumflex, 0, 0, 0 }, 0x1EBF}, {{SCIM_KEY_combining_acute, SCIM_KEY_idiaeresis, 0, 0, 0 }, 0x1E2F}, {{SCIM_KEY_combining_acute, SCIM_KEY_ocircumflex, 0, 0, 0 }, 0x1ED1}, {{SCIM_KEY_combining_acute, SCIM_KEY_otilde, 0, 0, 0 }, 0x1E4D}, {{SCIM_KEY_combining_acute, SCIM_KEY_oslash, 0, 0, 0 }, 0x01FF}, {{SCIM_KEY_combining_acute, SCIM_KEY_udiaeresis, 0, 0, 0 }, 0x01D8}, {{SCIM_KEY_combining_acute, SCIM_KEY_Abreve, 0, 0, 0 }, 0x1EAE}, {{SCIM_KEY_combining_acute, SCIM_KEY_abreve, 0, 0, 0 }, 0x1EAF}, {{SCIM_KEY_combining_acute, SCIM_KEY_Emacron, 0, 0, 0 }, 0x1E16}, {{SCIM_KEY_combining_acute, SCIM_KEY_emacron, 0, 0, 0 }, 0x1E17}, {{SCIM_KEY_combining_acute, SCIM_KEY_Omacron, 0, 0, 0 }, 0x1E52}, {{SCIM_KEY_combining_acute, SCIM_KEY_Utilde, 0, 0, 0 }, 0x1E78}, {{SCIM_KEY_combining_acute, SCIM_KEY_omacron, 0, 0, 0 }, 0x1E53}, {{SCIM_KEY_combining_acute, SCIM_KEY_utilde, 0, 0, 0 }, 0x1E79}, {{SCIM_KEY_combining_acute, SCIM_KEY_Cyrillic_ghe, 0, 0, 0 }, 0x0453}, {{SCIM_KEY_combining_acute, SCIM_KEY_Cyrillic_ka, 0, 0, 0 }, 0x045C}, {{SCIM_KEY_combining_acute, SCIM_KEY_Cyrillic_GHE, 0, 0, 0 }, 0x0403}, {{SCIM_KEY_combining_acute, SCIM_KEY_Cyrillic_KA, 0, 0, 0 }, 0x040C}, {{SCIM_KEY_combining_acute, SCIM_KEY_Greek_iotadieresis, 0, 0, 0 }, 0x0390}, {{SCIM_KEY_combining_acute, SCIM_KEY_Greek_upsilondieresis, 0, 0, 0 }, 0x03B0}, {{SCIM_KEY_combining_acute, SCIM_KEY_Greek_ALPHA, 0, 0, 0 }, 0x0386}, {{SCIM_KEY_combining_acute, SCIM_KEY_Greek_EPSILON, 0, 0, 0 }, 0x0388}, {{SCIM_KEY_combining_acute, SCIM_KEY_Greek_ETA, 0, 0, 0 }, 0x0389}, {{SCIM_KEY_combining_acute, SCIM_KEY_Greek_IOTA, 0, 0, 0 }, 0x038A}, {{SCIM_KEY_combining_acute, SCIM_KEY_Greek_OMICRON, 0, 0, 0 }, 0x038C}, {{SCIM_KEY_combining_acute, SCIM_KEY_Greek_UPSILON, 0, 0, 0 }, 0x038E}, {{SCIM_KEY_combining_acute, SCIM_KEY_Greek_OMEGA, 0, 0, 0 }, 0x038F}, {{SCIM_KEY_combining_acute, SCIM_KEY_Greek_alpha, 0, 0, 0 }, 0x03AC}, {{SCIM_KEY_combining_acute, SCIM_KEY_Greek_epsilon, 0, 0, 0 }, 0x03AD}, {{SCIM_KEY_combining_acute, SCIM_KEY_Greek_eta, 0, 0, 0 }, 0x03AE}, {{SCIM_KEY_combining_acute, SCIM_KEY_Greek_iota, 0, 0, 0 }, 0x03AF}, {{SCIM_KEY_combining_acute, SCIM_KEY_Greek_omicron, 0, 0, 0 }, 0x03CC}, {{SCIM_KEY_combining_acute, SCIM_KEY_Greek_upsilon, 0, 0, 0 }, 0x03CD}, {{SCIM_KEY_combining_acute, SCIM_KEY_Greek_omega, 0, 0, 0 }, 0x03CE}, {{SCIM_KEY_combining_acute, SCIM_KEY_combining_tilde, SCIM_KEY_O, 0, 0 }, 0x1E4C}, {{SCIM_KEY_combining_acute, SCIM_KEY_combining_tilde, SCIM_KEY_U, 0, 0 }, 0x1E78}, {{SCIM_KEY_combining_acute, SCIM_KEY_combining_tilde, SCIM_KEY_o, 0, 0 }, 0x1E4D}, {{SCIM_KEY_combining_acute, SCIM_KEY_combining_tilde, SCIM_KEY_u, 0, 0 }, 0x1E79}, {{SCIM_KEY_combining_acute, SCIM_KEY_Ohorn, 0, 0, 0 }, 0x1EDA}, {{SCIM_KEY_combining_acute, SCIM_KEY_ohorn, 0, 0, 0 }, 0x1EDB}, {{SCIM_KEY_combining_acute, SCIM_KEY_Uhorn, 0, 0, 0 }, 0x1EE8}, {{SCIM_KEY_combining_acute, SCIM_KEY_uhorn, 0, 0, 0 }, 0x1EE9}, {{SCIM_KEY_combining_acute, SCIM_KEY_dead_circumflex, SCIM_KEY_A, 0, 0 }, 0x1EA4}, {{SCIM_KEY_combining_acute, SCIM_KEY_dead_circumflex, SCIM_KEY_E, 0, 0 }, 0x1EBE}, {{SCIM_KEY_combining_acute, SCIM_KEY_dead_circumflex, SCIM_KEY_O, 0, 0 }, 0x1ED0}, {{SCIM_KEY_combining_acute, SCIM_KEY_dead_circumflex, SCIM_KEY_a, 0, 0 }, 0x1EA5}, {{SCIM_KEY_combining_acute, SCIM_KEY_dead_circumflex, SCIM_KEY_e, 0, 0 }, 0x1EBF}, {{SCIM_KEY_combining_acute, SCIM_KEY_dead_circumflex, SCIM_KEY_o, 0, 0 }, 0x1ED1}, {{SCIM_KEY_combining_acute, SCIM_KEY_dead_tilde, SCIM_KEY_O, 0, 0 }, 0x1E4C}, {{SCIM_KEY_combining_acute, SCIM_KEY_dead_tilde, SCIM_KEY_U, 0, 0 }, 0x1E78}, {{SCIM_KEY_combining_acute, SCIM_KEY_dead_tilde, SCIM_KEY_o, 0, 0 }, 0x1E4D}, {{SCIM_KEY_combining_acute, SCIM_KEY_dead_tilde, SCIM_KEY_u, 0, 0 }, 0x1E79}, {{SCIM_KEY_combining_acute, SCIM_KEY_dead_macron, SCIM_KEY_E, 0, 0 }, 0x1E16}, {{SCIM_KEY_combining_acute, SCIM_KEY_dead_macron, SCIM_KEY_O, 0, 0 }, 0x1E52}, {{SCIM_KEY_combining_acute, SCIM_KEY_dead_macron, SCIM_KEY_e, 0, 0 }, 0x1E17}, {{SCIM_KEY_combining_acute, SCIM_KEY_dead_macron, SCIM_KEY_o, 0, 0 }, 0x1E53}, {{SCIM_KEY_combining_acute, SCIM_KEY_dead_breve, SCIM_KEY_A, 0, 0 }, 0x1EAE}, {{SCIM_KEY_combining_acute, SCIM_KEY_dead_breve, SCIM_KEY_a, 0, 0 }, 0x1EAF}, {{SCIM_KEY_combining_acute, SCIM_KEY_dead_diaeresis, SCIM_KEY_I, 0, 0 }, 0x1E2E}, {{SCIM_KEY_combining_acute, SCIM_KEY_dead_diaeresis, SCIM_KEY_U, 0, 0 }, 0x01D7}, {{SCIM_KEY_combining_acute, SCIM_KEY_dead_diaeresis, SCIM_KEY_i, 0, 0 }, 0x1E2F}, {{SCIM_KEY_combining_acute, SCIM_KEY_dead_diaeresis, SCIM_KEY_u, 0, 0 }, 0x01D8}, {{SCIM_KEY_combining_acute, SCIM_KEY_dead_diaeresis, SCIM_KEY_Greek_iota, 0, 0 }, 0x0390}, {{SCIM_KEY_combining_acute, SCIM_KEY_dead_diaeresis, SCIM_KEY_Greek_upsilon, 0, 0 }, 0x03B0}, {{SCIM_KEY_combining_acute, SCIM_KEY_dead_abovering, SCIM_KEY_A, 0, 0 }, 0x01FA}, {{SCIM_KEY_combining_acute, SCIM_KEY_dead_abovering, SCIM_KEY_a, 0, 0 }, 0x01FB}, {{SCIM_KEY_combining_acute, SCIM_KEY_dead_cedilla, SCIM_KEY_C, 0, 0 }, 0x1E08}, {{SCIM_KEY_combining_acute, SCIM_KEY_dead_cedilla, SCIM_KEY_c, 0, 0 }, 0x1E09}, {{SCIM_KEY_combining_acute, SCIM_KEY_dead_horn, SCIM_KEY_O, 0, 0 }, 0x1EDA}, {{SCIM_KEY_combining_acute, SCIM_KEY_dead_horn, SCIM_KEY_U, 0, 0 }, 0x1EE8}, {{SCIM_KEY_combining_acute, SCIM_KEY_dead_horn, SCIM_KEY_o, 0, 0 }, 0x1EDB}, {{SCIM_KEY_combining_acute, SCIM_KEY_dead_horn, SCIM_KEY_u, 0, 0 }, 0x1EE9}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_I, 0 }, 0x1E2E}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_U, 0 }, 0x01D7}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_i, 0 }, 0x1E2F}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_u, 0 }, 0x01D8}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_Greek_iota, 0 }, 0x0390}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_Greek_upsilon, 0 }, 0x03B0}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_ALPHA, 0 }, 0x1F0D}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_EPSILON, 0 }, 0x1F1D}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_ETA, 0 }, 0x1F2D}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_IOTA, 0 }, 0x1F3D}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_OMICRON, 0 }, 0x1F4D}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_UPSILON, 0 }, 0x1F5D}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_OMEGA, 0 }, 0x1F6D}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_alpha, 0 }, 0x1F05}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_epsilon, 0 }, 0x1F15}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_eta, 0 }, 0x1F25}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_iota, 0 }, 0x1F35}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_omicron, 0 }, 0x1F45}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_upsilon, 0 }, 0x1F55}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_omega, 0 }, 0x1F65}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_ALPHA, 0 }, 0x1F0C}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_EPSILON, 0 }, 0x1F1C}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_ETA, 0 }, 0x1F2C}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_IOTA, 0 }, 0x1F3C}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_OMICRON, 0 }, 0x1F4C}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_OMEGA, 0 }, 0x1F6C}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_alpha, 0 }, 0x1F04}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_epsilon, 0 }, 0x1F14}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_eta, 0 }, 0x1F24}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_iota, 0 }, 0x1F34}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_omicron, 0 }, 0x1F44}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_upsilon, 0 }, 0x1F54}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_omega, 0 }, 0x1F64}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_plus, SCIM_KEY_O, 0 }, 0x1EDA}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_plus, SCIM_KEY_U, 0 }, 0x1EE8}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_plus, SCIM_KEY_o, 0 }, 0x1EDB}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_plus, SCIM_KEY_u, 0 }, 0x1EE9}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_comma, SCIM_KEY_C, 0 }, 0x1E08}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_comma, SCIM_KEY_c, 0 }, 0x1E09}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_slash, SCIM_KEY_O, 0 }, 0x01FE}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_slash, SCIM_KEY_o, 0 }, 0x01FF}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_A, 0 }, 0x1EAE}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_a, 0 }, 0x1EAF}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_A, 0 }, 0x1EA4}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_E, 0 }, 0x1EBE}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_O, 0 }, 0x1ED0}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_a, 0 }, 0x1EA5}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_e, 0 }, 0x1EBF}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_o, 0 }, 0x1ED1}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_E, 0 }, 0x1E16}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_O, 0 }, 0x1E52}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_e, 0 }, 0x1E17}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_o, 0 }, 0x1E53}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_b, SCIM_KEY_A, 0 }, 0x1EAE}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_b, SCIM_KEY_a, 0 }, 0x1EAF}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_o, SCIM_KEY_A, 0 }, 0x01FA}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_o, SCIM_KEY_a, 0 }, 0x01FB}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_O, 0 }, 0x1E4C}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_U, 0 }, 0x1E78}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_o, 0 }, 0x1E4D}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_u, 0 }, 0x1E79}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_E, 0 }, 0x1E16}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_O, 0 }, 0x1E52}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_e, 0 }, 0x1E17}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_o, 0 }, 0x1E53}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_KP_Divide, SCIM_KEY_O, 0 }, 0x01FE}, {{SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_KP_Divide, SCIM_KEY_o, 0 }, 0x01FF}, {{SCIM_KEY_combining_acute, 0x1000313, SCIM_KEY_Greek_ALPHA, 0, 0 }, 0x1F0C}, {{SCIM_KEY_combining_acute, 0x1000313, SCIM_KEY_Greek_EPSILON, 0, 0 }, 0x1F1C}, {{SCIM_KEY_combining_acute, 0x1000313, SCIM_KEY_Greek_ETA, 0, 0 }, 0x1F2C}, {{SCIM_KEY_combining_acute, 0x1000313, SCIM_KEY_Greek_IOTA, 0, 0 }, 0x1F3C}, {{SCIM_KEY_combining_acute, 0x1000313, SCIM_KEY_Greek_OMICRON, 0, 0 }, 0x1F4C}, {{SCIM_KEY_combining_acute, 0x1000313, SCIM_KEY_Greek_OMEGA, 0, 0 }, 0x1F6C}, {{SCIM_KEY_combining_acute, 0x1000313, SCIM_KEY_Greek_alpha, 0, 0 }, 0x1F04}, {{SCIM_KEY_combining_acute, 0x1000313, SCIM_KEY_Greek_epsilon, 0, 0 }, 0x1F14}, {{SCIM_KEY_combining_acute, 0x1000313, SCIM_KEY_Greek_eta, 0, 0 }, 0x1F24}, {{SCIM_KEY_combining_acute, 0x1000313, SCIM_KEY_Greek_iota, 0, 0 }, 0x1F34}, {{SCIM_KEY_combining_acute, 0x1000313, SCIM_KEY_Greek_omicron, 0, 0 }, 0x1F44}, {{SCIM_KEY_combining_acute, 0x1000313, SCIM_KEY_Greek_upsilon, 0, 0 }, 0x1F54}, {{SCIM_KEY_combining_acute, 0x1000313, SCIM_KEY_Greek_omega, 0, 0 }, 0x1F64}, {{SCIM_KEY_combining_acute, 0x1000314, SCIM_KEY_Greek_ALPHA, 0, 0 }, 0x1F0D}, {{SCIM_KEY_combining_acute, 0x1000314, SCIM_KEY_Greek_EPSILON, 0, 0 }, 0x1F1D}, {{SCIM_KEY_combining_acute, 0x1000314, SCIM_KEY_Greek_ETA, 0, 0 }, 0x1F2D}, {{SCIM_KEY_combining_acute, 0x1000314, SCIM_KEY_Greek_IOTA, 0, 0 }, 0x1F3D}, {{SCIM_KEY_combining_acute, 0x1000314, SCIM_KEY_Greek_OMICRON, 0, 0 }, 0x1F4D}, {{SCIM_KEY_combining_acute, 0x1000314, SCIM_KEY_Greek_UPSILON, 0, 0 }, 0x1F5D}, {{SCIM_KEY_combining_acute, 0x1000314, SCIM_KEY_Greek_OMEGA, 0, 0 }, 0x1F6D}, {{SCIM_KEY_combining_acute, 0x1000314, SCIM_KEY_Greek_alpha, 0, 0 }, 0x1F05}, {{SCIM_KEY_combining_acute, 0x1000314, SCIM_KEY_Greek_epsilon, 0, 0 }, 0x1F15}, {{SCIM_KEY_combining_acute, 0x1000314, SCIM_KEY_Greek_eta, 0, 0 }, 0x1F25}, {{SCIM_KEY_combining_acute, 0x1000314, SCIM_KEY_Greek_iota, 0, 0 }, 0x1F35}, {{SCIM_KEY_combining_acute, 0x1000314, SCIM_KEY_Greek_omicron, 0, 0 }, 0x1F45}, {{SCIM_KEY_combining_acute, 0x1000314, SCIM_KEY_Greek_upsilon, 0, 0 }, 0x1F55}, {{SCIM_KEY_combining_acute, 0x1000314, SCIM_KEY_Greek_omega, 0, 0 }, 0x1F65}, {{SCIM_KEY_combining_acute, 0x1001f00, 0, 0, 0 }, 0x1F04}, {{SCIM_KEY_combining_acute, 0x1001f01, 0, 0, 0 }, 0x1F05}, {{SCIM_KEY_combining_acute, 0x1001f08, 0, 0, 0 }, 0x1F0C}, {{SCIM_KEY_combining_acute, 0x1001f09, 0, 0, 0 }, 0x1F0D}, {{SCIM_KEY_combining_acute, 0x1001f10, 0, 0, 0 }, 0x1F14}, {{SCIM_KEY_combining_acute, 0x1001f11, 0, 0, 0 }, 0x1F15}, {{SCIM_KEY_combining_acute, 0x1001f18, 0, 0, 0 }, 0x1F1C}, {{SCIM_KEY_combining_acute, 0x1001f19, 0, 0, 0 }, 0x1F1D}, {{SCIM_KEY_combining_acute, 0x1001f20, 0, 0, 0 }, 0x1F24}, {{SCIM_KEY_combining_acute, 0x1001f21, 0, 0, 0 }, 0x1F25}, {{SCIM_KEY_combining_acute, 0x1001f28, 0, 0, 0 }, 0x1F2C}, {{SCIM_KEY_combining_acute, 0x1001f29, 0, 0, 0 }, 0x1F2D}, {{SCIM_KEY_combining_acute, 0x1001f30, 0, 0, 0 }, 0x1F34}, {{SCIM_KEY_combining_acute, 0x1001f31, 0, 0, 0 }, 0x1F35}, {{SCIM_KEY_combining_acute, 0x1001f38, 0, 0, 0 }, 0x1F3C}, {{SCIM_KEY_combining_acute, 0x1001f39, 0, 0, 0 }, 0x1F3D}, {{SCIM_KEY_combining_acute, 0x1001f40, 0, 0, 0 }, 0x1F44}, {{SCIM_KEY_combining_acute, 0x1001f41, 0, 0, 0 }, 0x1F45}, {{SCIM_KEY_combining_acute, 0x1001f48, 0, 0, 0 }, 0x1F4C}, {{SCIM_KEY_combining_acute, 0x1001f49, 0, 0, 0 }, 0x1F4D}, {{SCIM_KEY_combining_acute, 0x1001f50, 0, 0, 0 }, 0x1F54}, {{SCIM_KEY_combining_acute, 0x1001f51, 0, 0, 0 }, 0x1F55}, {{SCIM_KEY_combining_acute, 0x1001f59, 0, 0, 0 }, 0x1F5D}, {{SCIM_KEY_combining_acute, 0x1001f60, 0, 0, 0 }, 0x1F64}, {{SCIM_KEY_combining_acute, 0x1001f61, 0, 0, 0 }, 0x1F65}, {{SCIM_KEY_combining_acute, 0x1001f68, 0, 0, 0 }, 0x1F6C}, {{SCIM_KEY_combining_acute, 0x1001f69, 0, 0, 0 }, 0x1F6D}, {{SCIM_KEY_combining_hook, SCIM_KEY_A, 0, 0, 0 }, 0x1EA2}, {{SCIM_KEY_combining_hook, SCIM_KEY_E, 0, 0, 0 }, 0x1EBA}, {{SCIM_KEY_combining_hook, SCIM_KEY_I, 0, 0, 0 }, 0x1EC8}, {{SCIM_KEY_combining_hook, SCIM_KEY_O, 0, 0, 0 }, 0x1ECE}, {{SCIM_KEY_combining_hook, SCIM_KEY_U, 0, 0, 0 }, 0x1EE6}, {{SCIM_KEY_combining_hook, SCIM_KEY_Y, 0, 0, 0 }, 0x1EF6}, {{SCIM_KEY_combining_hook, SCIM_KEY_a, 0, 0, 0 }, 0x1EA3}, {{SCIM_KEY_combining_hook, SCIM_KEY_e, 0, 0, 0 }, 0x1EBB}, {{SCIM_KEY_combining_hook, SCIM_KEY_i, 0, 0, 0 }, 0x1EC9}, {{SCIM_KEY_combining_hook, SCIM_KEY_o, 0, 0, 0 }, 0x1ECF}, {{SCIM_KEY_combining_hook, SCIM_KEY_u, 0, 0, 0 }, 0x1EE7}, {{SCIM_KEY_combining_hook, SCIM_KEY_y, 0, 0, 0 }, 0x1EF7}, {{SCIM_KEY_combining_hook, SCIM_KEY_Acircumflex, 0, 0, 0 }, 0x1EA8}, {{SCIM_KEY_combining_hook, SCIM_KEY_Ecircumflex, 0, 0, 0 }, 0x1EC2}, {{SCIM_KEY_combining_hook, SCIM_KEY_Ocircumflex, 0, 0, 0 }, 0x1ED4}, {{SCIM_KEY_combining_hook, SCIM_KEY_acircumflex, 0, 0, 0 }, 0x1EA9}, {{SCIM_KEY_combining_hook, SCIM_KEY_ecircumflex, 0, 0, 0 }, 0x1EC3}, {{SCIM_KEY_combining_hook, SCIM_KEY_ocircumflex, 0, 0, 0 }, 0x1ED5}, {{SCIM_KEY_combining_hook, SCIM_KEY_Abreve, 0, 0, 0 }, 0x1EB2}, {{SCIM_KEY_combining_hook, SCIM_KEY_abreve, 0, 0, 0 }, 0x1EB3}, {{SCIM_KEY_combining_hook, SCIM_KEY_Ohorn, 0, 0, 0 }, 0x1EDE}, {{SCIM_KEY_combining_hook, SCIM_KEY_ohorn, 0, 0, 0 }, 0x1EDF}, {{SCIM_KEY_combining_hook, SCIM_KEY_Uhorn, 0, 0, 0 }, 0x1EEC}, {{SCIM_KEY_combining_hook, SCIM_KEY_uhorn, 0, 0, 0 }, 0x1EED}, {{SCIM_KEY_combining_hook, SCIM_KEY_dead_circumflex, SCIM_KEY_A, 0, 0 }, 0x1EA8}, {{SCIM_KEY_combining_hook, SCIM_KEY_dead_circumflex, SCIM_KEY_E, 0, 0 }, 0x1EC2}, {{SCIM_KEY_combining_hook, SCIM_KEY_dead_circumflex, SCIM_KEY_O, 0, 0 }, 0x1ED4}, {{SCIM_KEY_combining_hook, SCIM_KEY_dead_circumflex, SCIM_KEY_a, 0, 0 }, 0x1EA9}, {{SCIM_KEY_combining_hook, SCIM_KEY_dead_circumflex, SCIM_KEY_e, 0, 0 }, 0x1EC3}, {{SCIM_KEY_combining_hook, SCIM_KEY_dead_circumflex, SCIM_KEY_o, 0, 0 }, 0x1ED5}, {{SCIM_KEY_combining_hook, SCIM_KEY_dead_breve, SCIM_KEY_A, 0, 0 }, 0x1EB2}, {{SCIM_KEY_combining_hook, SCIM_KEY_dead_breve, SCIM_KEY_a, 0, 0 }, 0x1EB3}, {{SCIM_KEY_combining_hook, SCIM_KEY_dead_horn, SCIM_KEY_O, 0, 0 }, 0x1EDE}, {{SCIM_KEY_combining_hook, SCIM_KEY_dead_horn, SCIM_KEY_U, 0, 0 }, 0x1EEC}, {{SCIM_KEY_combining_hook, SCIM_KEY_dead_horn, SCIM_KEY_o, 0, 0 }, 0x1EDF}, {{SCIM_KEY_combining_hook, SCIM_KEY_dead_horn, SCIM_KEY_u, 0, 0 }, 0x1EED}, {{SCIM_KEY_combining_hook, SCIM_KEY_Multi_key, SCIM_KEY_plus, SCIM_KEY_O, 0 }, 0x1EDE}, {{SCIM_KEY_combining_hook, SCIM_KEY_Multi_key, SCIM_KEY_plus, SCIM_KEY_U, 0 }, 0x1EEC}, {{SCIM_KEY_combining_hook, SCIM_KEY_Multi_key, SCIM_KEY_plus, SCIM_KEY_o, 0 }, 0x1EDF}, {{SCIM_KEY_combining_hook, SCIM_KEY_Multi_key, SCIM_KEY_plus, SCIM_KEY_u, 0 }, 0x1EED}, {{SCIM_KEY_combining_hook, SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_A, 0 }, 0x1EB2}, {{SCIM_KEY_combining_hook, SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_a, 0 }, 0x1EB3}, {{SCIM_KEY_combining_hook, SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_A, 0 }, 0x1EA8}, {{SCIM_KEY_combining_hook, SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_E, 0 }, 0x1EC2}, {{SCIM_KEY_combining_hook, SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_O, 0 }, 0x1ED4}, {{SCIM_KEY_combining_hook, SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_a, 0 }, 0x1EA9}, {{SCIM_KEY_combining_hook, SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_e, 0 }, 0x1EC3}, {{SCIM_KEY_combining_hook, SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_o, 0 }, 0x1ED5}, {{SCIM_KEY_combining_hook, SCIM_KEY_Multi_key, SCIM_KEY_b, SCIM_KEY_A, 0 }, 0x1EB2}, {{SCIM_KEY_combining_hook, SCIM_KEY_Multi_key, SCIM_KEY_b, SCIM_KEY_a, 0 }, 0x1EB3}, {{SCIM_KEY_combining_belowdot, SCIM_KEY_A, 0, 0, 0 }, 0x1EA0}, {{SCIM_KEY_combining_belowdot, SCIM_KEY_B, 0, 0, 0 }, 0x1E04}, {{SCIM_KEY_combining_belowdot, SCIM_KEY_D, 0, 0, 0 }, 0x1E0C}, {{SCIM_KEY_combining_belowdot, SCIM_KEY_E, 0, 0, 0 }, 0x1EB8}, {{SCIM_KEY_combining_belowdot, SCIM_KEY_H, 0, 0, 0 }, 0x1E24}, {{SCIM_KEY_combining_belowdot, SCIM_KEY_I, 0, 0, 0 }, 0x1ECA}, {{SCIM_KEY_combining_belowdot, SCIM_KEY_K, 0, 0, 0 }, 0x1E32}, {{SCIM_KEY_combining_belowdot, SCIM_KEY_L, 0, 0, 0 }, 0x1E36}, {{SCIM_KEY_combining_belowdot, SCIM_KEY_M, 0, 0, 0 }, 0x1E42}, {{SCIM_KEY_combining_belowdot, SCIM_KEY_N, 0, 0, 0 }, 0x1E46}, {{SCIM_KEY_combining_belowdot, SCIM_KEY_O, 0, 0, 0 }, 0x1ECC}, {{SCIM_KEY_combining_belowdot, SCIM_KEY_R, 0, 0, 0 }, 0x1E5A}, {{SCIM_KEY_combining_belowdot, SCIM_KEY_S, 0, 0, 0 }, 0x1E62}, {{SCIM_KEY_combining_belowdot, SCIM_KEY_T, 0, 0, 0 }, 0x1E6C}, {{SCIM_KEY_combining_belowdot, SCIM_KEY_U, 0, 0, 0 }, 0x1EE4}, {{SCIM_KEY_combining_belowdot, SCIM_KEY_V, 0, 0, 0 }, 0x1E7E}, {{SCIM_KEY_combining_belowdot, SCIM_KEY_W, 0, 0, 0 }, 0x1E88}, {{SCIM_KEY_combining_belowdot, SCIM_KEY_Y, 0, 0, 0 }, 0x1EF4}, {{SCIM_KEY_combining_belowdot, SCIM_KEY_Z, 0, 0, 0 }, 0x1E92}, {{SCIM_KEY_combining_belowdot, SCIM_KEY_a, 0, 0, 0 }, 0x1EA1}, {{SCIM_KEY_combining_belowdot, SCIM_KEY_b, 0, 0, 0 }, 0x1E05}, {{SCIM_KEY_combining_belowdot, SCIM_KEY_d, 0, 0, 0 }, 0x1E0D}, {{SCIM_KEY_combining_belowdot, SCIM_KEY_e, 0, 0, 0 }, 0x1EB9}, {{SCIM_KEY_combining_belowdot, SCIM_KEY_h, 0, 0, 0 }, 0x1E25}, {{SCIM_KEY_combining_belowdot, SCIM_KEY_i, 0, 0, 0 }, 0x1ECB}, {{SCIM_KEY_combining_belowdot, SCIM_KEY_k, 0, 0, 0 }, 0x1E33}, {{SCIM_KEY_combining_belowdot, SCIM_KEY_l, 0, 0, 0 }, 0x1E37}, {{SCIM_KEY_combining_belowdot, SCIM_KEY_m, 0, 0, 0 }, 0x1E43}, {{SCIM_KEY_combining_belowdot, SCIM_KEY_n, 0, 0, 0 }, 0x1E47}, {{SCIM_KEY_combining_belowdot, SCIM_KEY_o, 0, 0, 0 }, 0x1ECD}, {{SCIM_KEY_combining_belowdot, SCIM_KEY_r, 0, 0, 0 }, 0x1E5B}, {{SCIM_KEY_combining_belowdot, SCIM_KEY_s, 0, 0, 0 }, 0x1E63}, {{SCIM_KEY_combining_belowdot, SCIM_KEY_t, 0, 0, 0 }, 0x1E6D}, {{SCIM_KEY_combining_belowdot, SCIM_KEY_u, 0, 0, 0 }, 0x1EE5}, {{SCIM_KEY_combining_belowdot, SCIM_KEY_v, 0, 0, 0 }, 0x1E7F}, {{SCIM_KEY_combining_belowdot, SCIM_KEY_w, 0, 0, 0 }, 0x1E89}, {{SCIM_KEY_combining_belowdot, SCIM_KEY_y, 0, 0, 0 }, 0x1EF5}, {{SCIM_KEY_combining_belowdot, SCIM_KEY_z, 0, 0, 0 }, 0x1E93}, {{SCIM_KEY_combining_belowdot, SCIM_KEY_Ohorn, 0, 0, 0 }, 0x1EE2}, {{SCIM_KEY_combining_belowdot, SCIM_KEY_ohorn, 0, 0, 0 }, 0x1EE3}, {{SCIM_KEY_combining_belowdot, SCIM_KEY_Uhorn, 0, 0, 0 }, 0x1EF0}, {{SCIM_KEY_combining_belowdot, SCIM_KEY_uhorn, 0, 0, 0 }, 0x1EF1}, {{SCIM_KEY_combining_belowdot, SCIM_KEY_dead_horn, SCIM_KEY_O, 0, 0 }, 0x1EE2}, {{SCIM_KEY_combining_belowdot, SCIM_KEY_dead_horn, SCIM_KEY_U, 0, 0 }, 0x1EF0}, {{SCIM_KEY_combining_belowdot, SCIM_KEY_dead_horn, SCIM_KEY_o, 0, 0 }, 0x1EE3}, {{SCIM_KEY_combining_belowdot, SCIM_KEY_dead_horn, SCIM_KEY_u, 0, 0 }, 0x1EF1}, {{SCIM_KEY_combining_belowdot, SCIM_KEY_Multi_key, SCIM_KEY_plus, SCIM_KEY_O, 0 }, 0x1EE2}, {{SCIM_KEY_combining_belowdot, SCIM_KEY_Multi_key, SCIM_KEY_plus, SCIM_KEY_U, 0 }, 0x1EF0}, {{SCIM_KEY_combining_belowdot, SCIM_KEY_Multi_key, SCIM_KEY_plus, SCIM_KEY_o, 0 }, 0x1EE3}, {{SCIM_KEY_combining_belowdot, SCIM_KEY_Multi_key, SCIM_KEY_plus, SCIM_KEY_u, 0 }, 0x1EF1}, {{SCIM_KEY_dead_grave, SCIM_KEY_space, 0, 0, 0 }, 0x0060}, {{SCIM_KEY_dead_grave, SCIM_KEY_A, 0, 0, 0 }, 0x00C0}, {{SCIM_KEY_dead_grave, SCIM_KEY_E, 0, 0, 0 }, 0x00C8}, {{SCIM_KEY_dead_grave, SCIM_KEY_I, 0, 0, 0 }, 0x00CC}, {{SCIM_KEY_dead_grave, SCIM_KEY_N, 0, 0, 0 }, 0x01F8}, {{SCIM_KEY_dead_grave, SCIM_KEY_O, 0, 0, 0 }, 0x00D2}, {{SCIM_KEY_dead_grave, SCIM_KEY_U, 0, 0, 0 }, 0x00D9}, {{SCIM_KEY_dead_grave, SCIM_KEY_W, 0, 0, 0 }, 0x1E80}, {{SCIM_KEY_dead_grave, SCIM_KEY_Y, 0, 0, 0 }, 0x1EF2}, {{SCIM_KEY_dead_grave, SCIM_KEY_grave, 0, 0, 0 }, 0x0060}, {{SCIM_KEY_dead_grave, SCIM_KEY_a, 0, 0, 0 }, 0x00E0}, {{SCIM_KEY_dead_grave, SCIM_KEY_e, 0, 0, 0 }, 0x00E8}, {{SCIM_KEY_dead_grave, SCIM_KEY_i, 0, 0, 0 }, 0x00EC}, {{SCIM_KEY_dead_grave, SCIM_KEY_n, 0, 0, 0 }, 0x01F9}, {{SCIM_KEY_dead_grave, SCIM_KEY_o, 0, 0, 0 }, 0x00F2}, {{SCIM_KEY_dead_grave, SCIM_KEY_u, 0, 0, 0 }, 0x00F9}, {{SCIM_KEY_dead_grave, SCIM_KEY_w, 0, 0, 0 }, 0x1E81}, {{SCIM_KEY_dead_grave, SCIM_KEY_y, 0, 0, 0 }, 0x1EF3}, {{SCIM_KEY_dead_grave, SCIM_KEY_Acircumflex, 0, 0, 0 }, 0x1EA6}, {{SCIM_KEY_dead_grave, SCIM_KEY_Ecircumflex, 0, 0, 0 }, 0x1EC0}, {{SCIM_KEY_dead_grave, SCIM_KEY_Ocircumflex, 0, 0, 0 }, 0x1ED2}, {{SCIM_KEY_dead_grave, SCIM_KEY_Udiaeresis, 0, 0, 0 }, 0x01DB}, {{SCIM_KEY_dead_grave, SCIM_KEY_acircumflex, 0, 0, 0 }, 0x1EA7}, {{SCIM_KEY_dead_grave, SCIM_KEY_ecircumflex, 0, 0, 0 }, 0x1EC1}, {{SCIM_KEY_dead_grave, SCIM_KEY_ocircumflex, 0, 0, 0 }, 0x1ED3}, {{SCIM_KEY_dead_grave, SCIM_KEY_udiaeresis, 0, 0, 0 }, 0x01DC}, {{SCIM_KEY_dead_grave, SCIM_KEY_Abreve, 0, 0, 0 }, 0x1EB0}, {{SCIM_KEY_dead_grave, SCIM_KEY_abreve, 0, 0, 0 }, 0x1EB1}, {{SCIM_KEY_dead_grave, SCIM_KEY_Emacron, 0, 0, 0 }, 0x1E14}, {{SCIM_KEY_dead_grave, SCIM_KEY_emacron, 0, 0, 0 }, 0x1E15}, {{SCIM_KEY_dead_grave, SCIM_KEY_Omacron, 0, 0, 0 }, 0x1E50}, {{SCIM_KEY_dead_grave, SCIM_KEY_omacron, 0, 0, 0 }, 0x1E51}, {{SCIM_KEY_dead_grave, SCIM_KEY_Cyrillic_ie, 0, 0, 0 }, 0x0450}, {{SCIM_KEY_dead_grave, SCIM_KEY_Cyrillic_i, 0, 0, 0 }, 0x045D}, {{SCIM_KEY_dead_grave, SCIM_KEY_Cyrillic_IE, 0, 0, 0 }, 0x0400}, {{SCIM_KEY_dead_grave, SCIM_KEY_Cyrillic_I, 0, 0, 0 }, 0x040D}, {{SCIM_KEY_dead_grave, SCIM_KEY_Greek_iotadieresis, 0, 0, 0 }, 0x1FD2}, {{SCIM_KEY_dead_grave, SCIM_KEY_Greek_upsilondieresis, 0, 0, 0 }, 0x1FE2}, {{SCIM_KEY_dead_grave, SCIM_KEY_Greek_ALPHA, 0, 0, 0 }, 0x1FBA}, {{SCIM_KEY_dead_grave, SCIM_KEY_Greek_EPSILON, 0, 0, 0 }, 0x1FC8}, {{SCIM_KEY_dead_grave, SCIM_KEY_Greek_ETA, 0, 0, 0 }, 0x1FCA}, {{SCIM_KEY_dead_grave, SCIM_KEY_Greek_IOTA, 0, 0, 0 }, 0x1FDA}, {{SCIM_KEY_dead_grave, SCIM_KEY_Greek_OMICRON, 0, 0, 0 }, 0x1FF8}, {{SCIM_KEY_dead_grave, SCIM_KEY_Greek_UPSILON, 0, 0, 0 }, 0x1FEA}, {{SCIM_KEY_dead_grave, SCIM_KEY_Greek_OMEGA, 0, 0, 0 }, 0x1FFA}, {{SCIM_KEY_dead_grave, SCIM_KEY_Greek_alpha, 0, 0, 0 }, 0x1F70}, {{SCIM_KEY_dead_grave, SCIM_KEY_Greek_epsilon, 0, 0, 0 }, 0x1F72}, {{SCIM_KEY_dead_grave, SCIM_KEY_Greek_eta, 0, 0, 0 }, 0x1F74}, {{SCIM_KEY_dead_grave, SCIM_KEY_Greek_iota, 0, 0, 0 }, 0x1F76}, {{SCIM_KEY_dead_grave, SCIM_KEY_Greek_omicron, 0, 0, 0 }, 0x1F78}, {{SCIM_KEY_dead_grave, SCIM_KEY_Greek_upsilon, 0, 0, 0 }, 0x1F7A}, {{SCIM_KEY_dead_grave, SCIM_KEY_Greek_omega, 0, 0, 0 }, 0x1F7C}, {{SCIM_KEY_dead_grave, SCIM_KEY_Ohorn, 0, 0, 0 }, 0x1EDC}, {{SCIM_KEY_dead_grave, SCIM_KEY_ohorn, 0, 0, 0 }, 0x1EDD}, {{SCIM_KEY_dead_grave, SCIM_KEY_Uhorn, 0, 0, 0 }, 0x1EEA}, {{SCIM_KEY_dead_grave, SCIM_KEY_uhorn, 0, 0, 0 }, 0x1EEB}, {{SCIM_KEY_dead_grave, SCIM_KEY_dead_grave, 0, 0, 0 }, 0x0060}, {{SCIM_KEY_dead_grave, SCIM_KEY_dead_circumflex, SCIM_KEY_A, 0, 0 }, 0x1EA6}, {{SCIM_KEY_dead_grave, SCIM_KEY_dead_circumflex, SCIM_KEY_E, 0, 0 }, 0x1EC0}, {{SCIM_KEY_dead_grave, SCIM_KEY_dead_circumflex, SCIM_KEY_O, 0, 0 }, 0x1ED2}, {{SCIM_KEY_dead_grave, SCIM_KEY_dead_circumflex, SCIM_KEY_a, 0, 0 }, 0x1EA7}, {{SCIM_KEY_dead_grave, SCIM_KEY_dead_circumflex, SCIM_KEY_e, 0, 0 }, 0x1EC1}, {{SCIM_KEY_dead_grave, SCIM_KEY_dead_circumflex, SCIM_KEY_o, 0, 0 }, 0x1ED3}, {{SCIM_KEY_dead_grave, SCIM_KEY_dead_macron, SCIM_KEY_E, 0, 0 }, 0x1E14}, {{SCIM_KEY_dead_grave, SCIM_KEY_dead_macron, SCIM_KEY_O, 0, 0 }, 0x1E50}, {{SCIM_KEY_dead_grave, SCIM_KEY_dead_macron, SCIM_KEY_e, 0, 0 }, 0x1E15}, {{SCIM_KEY_dead_grave, SCIM_KEY_dead_macron, SCIM_KEY_o, 0, 0 }, 0x1E51}, {{SCIM_KEY_dead_grave, SCIM_KEY_dead_breve, SCIM_KEY_A, 0, 0 }, 0x1EB0}, {{SCIM_KEY_dead_grave, SCIM_KEY_dead_breve, SCIM_KEY_a, 0, 0 }, 0x1EB1}, {{SCIM_KEY_dead_grave, SCIM_KEY_dead_diaeresis, SCIM_KEY_U, 0, 0 }, 0x01DB}, {{SCIM_KEY_dead_grave, SCIM_KEY_dead_diaeresis, SCIM_KEY_u, 0, 0 }, 0x01DC}, {{SCIM_KEY_dead_grave, SCIM_KEY_dead_diaeresis, SCIM_KEY_Greek_iota, 0, 0 }, 0x1FD2}, {{SCIM_KEY_dead_grave, SCIM_KEY_dead_diaeresis, SCIM_KEY_Greek_upsilon, 0, 0 }, 0x1FE2}, {{SCIM_KEY_dead_grave, SCIM_KEY_dead_horn, SCIM_KEY_O, 0, 0 }, 0x1EDC}, {{SCIM_KEY_dead_grave, SCIM_KEY_dead_horn, SCIM_KEY_U, 0, 0 }, 0x1EEA}, {{SCIM_KEY_dead_grave, SCIM_KEY_dead_horn, SCIM_KEY_o, 0, 0 }, 0x1EDD}, {{SCIM_KEY_dead_grave, SCIM_KEY_dead_horn, SCIM_KEY_u, 0, 0 }, 0x1EEB}, {{SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_U, 0 }, 0x01DB}, {{SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_u, 0 }, 0x01DC}, {{SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_Greek_iota, 0 }, 0x1FD2}, {{SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_Greek_upsilon, 0 }, 0x1FE2}, {{SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_ALPHA, 0 }, 0x1F0B}, {{SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_EPSILON, 0 }, 0x1F1B}, {{SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_ETA, 0 }, 0x1F2B}, {{SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_IOTA, 0 }, 0x1F3B}, {{SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_OMICRON, 0 }, 0x1F4B}, {{SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_UPSILON, 0 }, 0x1F5B}, {{SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_OMEGA, 0 }, 0x1F6B}, {{SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_alpha, 0 }, 0x1F03}, {{SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_epsilon, 0 }, 0x1F13}, {{SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_eta, 0 }, 0x1F23}, {{SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_iota, 0 }, 0x1F33}, {{SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_omicron, 0 }, 0x1F43}, {{SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_upsilon, 0 }, 0x1F53}, {{SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_omega, 0 }, 0x1F63}, {{SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_ALPHA, 0 }, 0x1F0A}, {{SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_EPSILON, 0 }, 0x1F1A}, {{SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_ETA, 0 }, 0x1F2A}, {{SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_IOTA, 0 }, 0x1F3A}, {{SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_OMICRON, 0 }, 0x1F4A}, {{SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_OMEGA, 0 }, 0x1F6A}, {{SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_alpha, 0 }, 0x1F02}, {{SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_epsilon, 0 }, 0x1F12}, {{SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_eta, 0 }, 0x1F22}, {{SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_iota, 0 }, 0x1F32}, {{SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_omicron, 0 }, 0x1F42}, {{SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_upsilon, 0 }, 0x1F52}, {{SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_omega, 0 }, 0x1F62}, {{SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_plus, SCIM_KEY_O, 0 }, 0x1EDC}, {{SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_plus, SCIM_KEY_U, 0 }, 0x1EEA}, {{SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_plus, SCIM_KEY_o, 0 }, 0x1EDD}, {{SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_plus, SCIM_KEY_u, 0 }, 0x1EEB}, {{SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_A, 0 }, 0x1EB0}, {{SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_a, 0 }, 0x1EB1}, {{SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_A, 0 }, 0x1EA6}, {{SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_E, 0 }, 0x1EC0}, {{SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_O, 0 }, 0x1ED2}, {{SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_a, 0 }, 0x1EA7}, {{SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_e, 0 }, 0x1EC1}, {{SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_o, 0 }, 0x1ED3}, {{SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_E, 0 }, 0x1E14}, {{SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_O, 0 }, 0x1E50}, {{SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_e, 0 }, 0x1E15}, {{SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_o, 0 }, 0x1E51}, {{SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_b, SCIM_KEY_A, 0 }, 0x1EB0}, {{SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_b, SCIM_KEY_a, 0 }, 0x1EB1}, {{SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_E, 0 }, 0x1E14}, {{SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_O, 0 }, 0x1E50}, {{SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_e, 0 }, 0x1E15}, {{SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_o, 0 }, 0x1E51}, {{SCIM_KEY_dead_grave, 0x10001a0, 0, 0, 0 }, 0x1EDC}, {{SCIM_KEY_dead_grave, 0x10001a1, 0, 0, 0 }, 0x1EDD}, {{SCIM_KEY_dead_grave, 0x10001af, 0, 0, 0 }, 0x1EEA}, {{SCIM_KEY_dead_grave, 0x10001b0, 0, 0, 0 }, 0x1EEB}, {{SCIM_KEY_dead_grave, 0x1000313, SCIM_KEY_Greek_ALPHA, 0, 0 }, 0x1F0A}, {{SCIM_KEY_dead_grave, 0x1000313, SCIM_KEY_Greek_EPSILON, 0, 0 }, 0x1F1A}, {{SCIM_KEY_dead_grave, 0x1000313, SCIM_KEY_Greek_ETA, 0, 0 }, 0x1F2A}, {{SCIM_KEY_dead_grave, 0x1000313, SCIM_KEY_Greek_IOTA, 0, 0 }, 0x1F3A}, {{SCIM_KEY_dead_grave, 0x1000313, SCIM_KEY_Greek_OMICRON, 0, 0 }, 0x1F4A}, {{SCIM_KEY_dead_grave, 0x1000313, SCIM_KEY_Greek_OMEGA, 0, 0 }, 0x1F6A}, {{SCIM_KEY_dead_grave, 0x1000313, SCIM_KEY_Greek_alpha, 0, 0 }, 0x1F02}, {{SCIM_KEY_dead_grave, 0x1000313, SCIM_KEY_Greek_epsilon, 0, 0 }, 0x1F12}, {{SCIM_KEY_dead_grave, 0x1000313, SCIM_KEY_Greek_eta, 0, 0 }, 0x1F22}, {{SCIM_KEY_dead_grave, 0x1000313, SCIM_KEY_Greek_iota, 0, 0 }, 0x1F32}, {{SCIM_KEY_dead_grave, 0x1000313, SCIM_KEY_Greek_omicron, 0, 0 }, 0x1F42}, {{SCIM_KEY_dead_grave, 0x1000313, SCIM_KEY_Greek_upsilon, 0, 0 }, 0x1F52}, {{SCIM_KEY_dead_grave, 0x1000313, SCIM_KEY_Greek_omega, 0, 0 }, 0x1F62}, {{SCIM_KEY_dead_grave, 0x1000314, SCIM_KEY_Greek_ALPHA, 0, 0 }, 0x1F0B}, {{SCIM_KEY_dead_grave, 0x1000314, SCIM_KEY_Greek_EPSILON, 0, 0 }, 0x1F1B}, {{SCIM_KEY_dead_grave, 0x1000314, SCIM_KEY_Greek_ETA, 0, 0 }, 0x1F2B}, {{SCIM_KEY_dead_grave, 0x1000314, SCIM_KEY_Greek_IOTA, 0, 0 }, 0x1F3B}, {{SCIM_KEY_dead_grave, 0x1000314, SCIM_KEY_Greek_OMICRON, 0, 0 }, 0x1F4B}, {{SCIM_KEY_dead_grave, 0x1000314, SCIM_KEY_Greek_UPSILON, 0, 0 }, 0x1F5B}, {{SCIM_KEY_dead_grave, 0x1000314, SCIM_KEY_Greek_OMEGA, 0, 0 }, 0x1F6B}, {{SCIM_KEY_dead_grave, 0x1000314, SCIM_KEY_Greek_alpha, 0, 0 }, 0x1F03}, {{SCIM_KEY_dead_grave, 0x1000314, SCIM_KEY_Greek_epsilon, 0, 0 }, 0x1F13}, {{SCIM_KEY_dead_grave, 0x1000314, SCIM_KEY_Greek_eta, 0, 0 }, 0x1F23}, {{SCIM_KEY_dead_grave, 0x1000314, SCIM_KEY_Greek_iota, 0, 0 }, 0x1F33}, {{SCIM_KEY_dead_grave, 0x1000314, SCIM_KEY_Greek_omicron, 0, 0 }, 0x1F43}, {{SCIM_KEY_dead_grave, 0x1000314, SCIM_KEY_Greek_upsilon, 0, 0 }, 0x1F53}, {{SCIM_KEY_dead_grave, 0x1000314, SCIM_KEY_Greek_omega, 0, 0 }, 0x1F63}, {{SCIM_KEY_dead_grave, 0x1001f00, 0, 0, 0 }, 0x1F02}, {{SCIM_KEY_dead_grave, 0x1001f01, 0, 0, 0 }, 0x1F03}, {{SCIM_KEY_dead_grave, 0x1001f08, 0, 0, 0 }, 0x1F0A}, {{SCIM_KEY_dead_grave, 0x1001f09, 0, 0, 0 }, 0x1F0B}, {{SCIM_KEY_dead_grave, 0x1001f10, 0, 0, 0 }, 0x1F12}, {{SCIM_KEY_dead_grave, 0x1001f11, 0, 0, 0 }, 0x1F13}, {{SCIM_KEY_dead_grave, 0x1001f18, 0, 0, 0 }, 0x1F1A}, {{SCIM_KEY_dead_grave, 0x1001f19, 0, 0, 0 }, 0x1F1B}, {{SCIM_KEY_dead_grave, 0x1001f20, 0, 0, 0 }, 0x1F22}, {{SCIM_KEY_dead_grave, 0x1001f21, 0, 0, 0 }, 0x1F23}, {{SCIM_KEY_dead_grave, 0x1001f28, 0, 0, 0 }, 0x1F2A}, {{SCIM_KEY_dead_grave, 0x1001f29, 0, 0, 0 }, 0x1F2B}, {{SCIM_KEY_dead_grave, 0x1001f30, 0, 0, 0 }, 0x1F32}, {{SCIM_KEY_dead_grave, 0x1001f31, 0, 0, 0 }, 0x1F33}, {{SCIM_KEY_dead_grave, 0x1001f38, 0, 0, 0 }, 0x1F3A}, {{SCIM_KEY_dead_grave, 0x1001f39, 0, 0, 0 }, 0x1F3B}, {{SCIM_KEY_dead_grave, 0x1001f40, 0, 0, 0 }, 0x1F42}, {{SCIM_KEY_dead_grave, 0x1001f41, 0, 0, 0 }, 0x1F43}, {{SCIM_KEY_dead_grave, 0x1001f48, 0, 0, 0 }, 0x1F4A}, {{SCIM_KEY_dead_grave, 0x1001f49, 0, 0, 0 }, 0x1F4B}, {{SCIM_KEY_dead_grave, 0x1001f50, 0, 0, 0 }, 0x1F52}, {{SCIM_KEY_dead_grave, 0x1001f51, 0, 0, 0 }, 0x1F53}, {{SCIM_KEY_dead_grave, 0x1001f59, 0, 0, 0 }, 0x1F5B}, {{SCIM_KEY_dead_grave, 0x1001f60, 0, 0, 0 }, 0x1F62}, {{SCIM_KEY_dead_grave, 0x1001f61, 0, 0, 0 }, 0x1F63}, {{SCIM_KEY_dead_grave, 0x1001f68, 0, 0, 0 }, 0x1F6A}, {{SCIM_KEY_dead_grave, 0x1001f69, 0, 0, 0 }, 0x1F6B}, {{SCIM_KEY_dead_acute, SCIM_KEY_space, 0, 0, 0 }, 0x0027}, {{SCIM_KEY_dead_acute, SCIM_KEY_apostrophe, 0, 0, 0 }, 0x00B4}, {{SCIM_KEY_dead_acute, SCIM_KEY_A, 0, 0, 0 }, 0x00C1}, {{SCIM_KEY_dead_acute, SCIM_KEY_C, 0, 0, 0 }, 0x0106}, {{SCIM_KEY_dead_acute, SCIM_KEY_E, 0, 0, 0 }, 0x00C9}, {{SCIM_KEY_dead_acute, SCIM_KEY_G, 0, 0, 0 }, 0x01F4}, {{SCIM_KEY_dead_acute, SCIM_KEY_I, 0, 0, 0 }, 0x00CD}, {{SCIM_KEY_dead_acute, SCIM_KEY_K, 0, 0, 0 }, 0x1E30}, {{SCIM_KEY_dead_acute, SCIM_KEY_L, 0, 0, 0 }, 0x0139}, {{SCIM_KEY_dead_acute, SCIM_KEY_M, 0, 0, 0 }, 0x1E3E}, {{SCIM_KEY_dead_acute, SCIM_KEY_N, 0, 0, 0 }, 0x0143}, {{SCIM_KEY_dead_acute, SCIM_KEY_O, 0, 0, 0 }, 0x00D3}, {{SCIM_KEY_dead_acute, SCIM_KEY_P, 0, 0, 0 }, 0x1E54}, {{SCIM_KEY_dead_acute, SCIM_KEY_R, 0, 0, 0 }, 0x0154}, {{SCIM_KEY_dead_acute, SCIM_KEY_S, 0, 0, 0 }, 0x015A}, {{SCIM_KEY_dead_acute, SCIM_KEY_U, 0, 0, 0 }, 0x00DA}, {{SCIM_KEY_dead_acute, SCIM_KEY_W, 0, 0, 0 }, 0x1E82}, {{SCIM_KEY_dead_acute, SCIM_KEY_Y, 0, 0, 0 }, 0x00DD}, {{SCIM_KEY_dead_acute, SCIM_KEY_Z, 0, 0, 0 }, 0x0179}, {{SCIM_KEY_dead_acute, SCIM_KEY_a, 0, 0, 0 }, 0x00E1}, {{SCIM_KEY_dead_acute, SCIM_KEY_c, 0, 0, 0 }, 0x0107}, {{SCIM_KEY_dead_acute, SCIM_KEY_e, 0, 0, 0 }, 0x00E9}, {{SCIM_KEY_dead_acute, SCIM_KEY_g, 0, 0, 0 }, 0x01F5}, {{SCIM_KEY_dead_acute, SCIM_KEY_i, 0, 0, 0 }, 0x00ED}, {{SCIM_KEY_dead_acute, SCIM_KEY_k, 0, 0, 0 }, 0x1E31}, {{SCIM_KEY_dead_acute, SCIM_KEY_l, 0, 0, 0 }, 0x013A}, {{SCIM_KEY_dead_acute, SCIM_KEY_m, 0, 0, 0 }, 0x1E3F}, {{SCIM_KEY_dead_acute, SCIM_KEY_n, 0, 0, 0 }, 0x0144}, {{SCIM_KEY_dead_acute, SCIM_KEY_o, 0, 0, 0 }, 0x00F3}, {{SCIM_KEY_dead_acute, SCIM_KEY_p, 0, 0, 0 }, 0x1E55}, {{SCIM_KEY_dead_acute, SCIM_KEY_r, 0, 0, 0 }, 0x0155}, {{SCIM_KEY_dead_acute, SCIM_KEY_s, 0, 0, 0 }, 0x015B}, {{SCIM_KEY_dead_acute, SCIM_KEY_u, 0, 0, 0 }, 0x00FA}, {{SCIM_KEY_dead_acute, SCIM_KEY_w, 0, 0, 0 }, 0x1E83}, {{SCIM_KEY_dead_acute, SCIM_KEY_y, 0, 0, 0 }, 0x00FD}, {{SCIM_KEY_dead_acute, SCIM_KEY_z, 0, 0, 0 }, 0x017A}, {{SCIM_KEY_dead_acute, SCIM_KEY_acute, 0, 0, 0 }, 0x00B4}, {{SCIM_KEY_dead_acute, SCIM_KEY_Acircumflex, 0, 0, 0 }, 0x1EA4}, {{SCIM_KEY_dead_acute, SCIM_KEY_Aring, 0, 0, 0 }, 0x01FA}, {{SCIM_KEY_dead_acute, SCIM_KEY_AE, 0, 0, 0 }, 0x01FC}, {{SCIM_KEY_dead_acute, SCIM_KEY_Ccedilla, 0, 0, 0 }, 0x1E08}, {{SCIM_KEY_dead_acute, SCIM_KEY_Ecircumflex, 0, 0, 0 }, 0x1EBE}, {{SCIM_KEY_dead_acute, SCIM_KEY_Idiaeresis, 0, 0, 0 }, 0x1E2E}, {{SCIM_KEY_dead_acute, SCIM_KEY_Ocircumflex, 0, 0, 0 }, 0x1ED0}, {{SCIM_KEY_dead_acute, SCIM_KEY_Otilde, 0, 0, 0 }, 0x1E4C}, {{SCIM_KEY_dead_acute, SCIM_KEY_Ooblique, 0, 0, 0 }, 0x01FE}, {{SCIM_KEY_dead_acute, SCIM_KEY_Udiaeresis, 0, 0, 0 }, 0x01D7}, {{SCIM_KEY_dead_acute, SCIM_KEY_acircumflex, 0, 0, 0 }, 0x1EA5}, {{SCIM_KEY_dead_acute, SCIM_KEY_aring, 0, 0, 0 }, 0x01FB}, {{SCIM_KEY_dead_acute, SCIM_KEY_ae, 0, 0, 0 }, 0x01FD}, {{SCIM_KEY_dead_acute, SCIM_KEY_ccedilla, 0, 0, 0 }, 0x1E09}, {{SCIM_KEY_dead_acute, SCIM_KEY_ecircumflex, 0, 0, 0 }, 0x1EBF}, {{SCIM_KEY_dead_acute, SCIM_KEY_idiaeresis, 0, 0, 0 }, 0x1E2F}, {{SCIM_KEY_dead_acute, SCIM_KEY_ocircumflex, 0, 0, 0 }, 0x1ED1}, {{SCIM_KEY_dead_acute, SCIM_KEY_otilde, 0, 0, 0 }, 0x1E4D}, {{SCIM_KEY_dead_acute, SCIM_KEY_oslash, 0, 0, 0 }, 0x01FF}, {{SCIM_KEY_dead_acute, SCIM_KEY_udiaeresis, 0, 0, 0 }, 0x01D8}, {{SCIM_KEY_dead_acute, SCIM_KEY_Abreve, 0, 0, 0 }, 0x1EAE}, {{SCIM_KEY_dead_acute, SCIM_KEY_abreve, 0, 0, 0 }, 0x1EAF}, {{SCIM_KEY_dead_acute, SCIM_KEY_Emacron, 0, 0, 0 }, 0x1E16}, {{SCIM_KEY_dead_acute, SCIM_KEY_emacron, 0, 0, 0 }, 0x1E17}, {{SCIM_KEY_dead_acute, SCIM_KEY_Omacron, 0, 0, 0 }, 0x1E52}, {{SCIM_KEY_dead_acute, SCIM_KEY_Utilde, 0, 0, 0 }, 0x1E78}, {{SCIM_KEY_dead_acute, SCIM_KEY_omacron, 0, 0, 0 }, 0x1E53}, {{SCIM_KEY_dead_acute, SCIM_KEY_utilde, 0, 0, 0 }, 0x1E79}, {{SCIM_KEY_dead_acute, SCIM_KEY_Cyrillic_ghe, 0, 0, 0 }, 0x0453}, {{SCIM_KEY_dead_acute, SCIM_KEY_Cyrillic_ka, 0, 0, 0 }, 0x045C}, {{SCIM_KEY_dead_acute, SCIM_KEY_Cyrillic_GHE, 0, 0, 0 }, 0x0403}, {{SCIM_KEY_dead_acute, SCIM_KEY_Cyrillic_KA, 0, 0, 0 }, 0x040C}, {{SCIM_KEY_dead_acute, SCIM_KEY_Greek_iotadieresis, 0, 0, 0 }, 0x0390}, {{SCIM_KEY_dead_acute, SCIM_KEY_Greek_upsilondieresis, 0, 0, 0 }, 0x03B0}, {{SCIM_KEY_dead_acute, SCIM_KEY_Greek_ALPHA, 0, 0, 0 }, 0x0386}, {{SCIM_KEY_dead_acute, SCIM_KEY_Greek_EPSILON, 0, 0, 0 }, 0x0388}, {{SCIM_KEY_dead_acute, SCIM_KEY_Greek_ETA, 0, 0, 0 }, 0x0389}, {{SCIM_KEY_dead_acute, SCIM_KEY_Greek_IOTA, 0, 0, 0 }, 0x038A}, {{SCIM_KEY_dead_acute, SCIM_KEY_Greek_OMICRON, 0, 0, 0 }, 0x038C}, {{SCIM_KEY_dead_acute, SCIM_KEY_Greek_UPSILON, 0, 0, 0 }, 0x038E}, {{SCIM_KEY_dead_acute, SCIM_KEY_Greek_OMEGA, 0, 0, 0 }, 0x038F}, {{SCIM_KEY_dead_acute, SCIM_KEY_Greek_alpha, 0, 0, 0 }, 0x03AC}, {{SCIM_KEY_dead_acute, SCIM_KEY_Greek_epsilon, 0, 0, 0 }, 0x03AD}, {{SCIM_KEY_dead_acute, SCIM_KEY_Greek_eta, 0, 0, 0 }, 0x03AE}, {{SCIM_KEY_dead_acute, SCIM_KEY_Greek_iota, 0, 0, 0 }, 0x03AF}, {{SCIM_KEY_dead_acute, SCIM_KEY_Greek_omicron, 0, 0, 0 }, 0x03CC}, {{SCIM_KEY_dead_acute, SCIM_KEY_Greek_upsilon, 0, 0, 0 }, 0x03CD}, {{SCIM_KEY_dead_acute, SCIM_KEY_Greek_omega, 0, 0, 0 }, 0x03CE}, {{SCIM_KEY_dead_acute, SCIM_KEY_combining_tilde, SCIM_KEY_O, 0, 0 }, 0x1E4C}, {{SCIM_KEY_dead_acute, SCIM_KEY_combining_tilde, SCIM_KEY_U, 0, 0 }, 0x1E78}, {{SCIM_KEY_dead_acute, SCIM_KEY_combining_tilde, SCIM_KEY_o, 0, 0 }, 0x1E4D}, {{SCIM_KEY_dead_acute, SCIM_KEY_combining_tilde, SCIM_KEY_u, 0, 0 }, 0x1E79}, {{SCIM_KEY_dead_acute, SCIM_KEY_Ohorn, 0, 0, 0 }, 0x1EDA}, {{SCIM_KEY_dead_acute, SCIM_KEY_ohorn, 0, 0, 0 }, 0x1EDB}, {{SCIM_KEY_dead_acute, SCIM_KEY_Uhorn, 0, 0, 0 }, 0x1EE8}, {{SCIM_KEY_dead_acute, SCIM_KEY_uhorn, 0, 0, 0 }, 0x1EE9}, {{SCIM_KEY_dead_acute, SCIM_KEY_dead_acute, 0, 0, 0 }, 0x00B4}, {{SCIM_KEY_dead_acute, SCIM_KEY_dead_circumflex, SCIM_KEY_A, 0, 0 }, 0x1EA4}, {{SCIM_KEY_dead_acute, SCIM_KEY_dead_circumflex, SCIM_KEY_E, 0, 0 }, 0x1EBE}, {{SCIM_KEY_dead_acute, SCIM_KEY_dead_circumflex, SCIM_KEY_O, 0, 0 }, 0x1ED0}, {{SCIM_KEY_dead_acute, SCIM_KEY_dead_circumflex, SCIM_KEY_a, 0, 0 }, 0x1EA5}, {{SCIM_KEY_dead_acute, SCIM_KEY_dead_circumflex, SCIM_KEY_e, 0, 0 }, 0x1EBF}, {{SCIM_KEY_dead_acute, SCIM_KEY_dead_circumflex, SCIM_KEY_o, 0, 0 }, 0x1ED1}, {{SCIM_KEY_dead_acute, SCIM_KEY_dead_tilde, SCIM_KEY_O, 0, 0 }, 0x1E4C}, {{SCIM_KEY_dead_acute, SCIM_KEY_dead_tilde, SCIM_KEY_U, 0, 0 }, 0x1E78}, {{SCIM_KEY_dead_acute, SCIM_KEY_dead_tilde, SCIM_KEY_o, 0, 0 }, 0x1E4D}, {{SCIM_KEY_dead_acute, SCIM_KEY_dead_tilde, SCIM_KEY_u, 0, 0 }, 0x1E79}, {{SCIM_KEY_dead_acute, SCIM_KEY_dead_macron, SCIM_KEY_E, 0, 0 }, 0x1E16}, {{SCIM_KEY_dead_acute, SCIM_KEY_dead_macron, SCIM_KEY_O, 0, 0 }, 0x1E52}, {{SCIM_KEY_dead_acute, SCIM_KEY_dead_macron, SCIM_KEY_e, 0, 0 }, 0x1E17}, {{SCIM_KEY_dead_acute, SCIM_KEY_dead_macron, SCIM_KEY_o, 0, 0 }, 0x1E53}, {{SCIM_KEY_dead_acute, SCIM_KEY_dead_breve, SCIM_KEY_A, 0, 0 }, 0x1EAE}, {{SCIM_KEY_dead_acute, SCIM_KEY_dead_breve, SCIM_KEY_a, 0, 0 }, 0x1EAF}, {{SCIM_KEY_dead_acute, SCIM_KEY_dead_diaeresis, SCIM_KEY_space, 0, 0 }, 0x0385}, {{SCIM_KEY_dead_acute, SCIM_KEY_dead_diaeresis, SCIM_KEY_I, 0, 0 }, 0x1E2E}, {{SCIM_KEY_dead_acute, SCIM_KEY_dead_diaeresis, SCIM_KEY_U, 0, 0 }, 0x01D7}, {{SCIM_KEY_dead_acute, SCIM_KEY_dead_diaeresis, SCIM_KEY_i, 0, 0 }, 0x1E2F}, {{SCIM_KEY_dead_acute, SCIM_KEY_dead_diaeresis, SCIM_KEY_u, 0, 0 }, 0x01D8}, {{SCIM_KEY_dead_acute, SCIM_KEY_dead_diaeresis, SCIM_KEY_Greek_iota, 0, 0 }, 0x0390}, {{SCIM_KEY_dead_acute, SCIM_KEY_dead_diaeresis, SCIM_KEY_Greek_upsilon, 0, 0 }, 0x03B0}, {{SCIM_KEY_dead_acute, SCIM_KEY_dead_abovering, SCIM_KEY_A, 0, 0 }, 0x01FA}, {{SCIM_KEY_dead_acute, SCIM_KEY_dead_abovering, SCIM_KEY_a, 0, 0 }, 0x01FB}, {{SCIM_KEY_dead_acute, SCIM_KEY_dead_cedilla, SCIM_KEY_C, 0, 0 }, 0x1E08}, {{SCIM_KEY_dead_acute, SCIM_KEY_dead_cedilla, SCIM_KEY_c, 0, 0 }, 0x1E09}, {{SCIM_KEY_dead_acute, SCIM_KEY_dead_horn, SCIM_KEY_O, 0, 0 }, 0x1EDA}, {{SCIM_KEY_dead_acute, SCIM_KEY_dead_horn, SCIM_KEY_U, 0, 0 }, 0x1EE8}, {{SCIM_KEY_dead_acute, SCIM_KEY_dead_horn, SCIM_KEY_o, 0, 0 }, 0x1EDB}, {{SCIM_KEY_dead_acute, SCIM_KEY_dead_horn, SCIM_KEY_u, 0, 0 }, 0x1EE9}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_I, 0 }, 0x1E2E}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_U, 0 }, 0x01D7}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_i, 0 }, 0x1E2F}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_u, 0 }, 0x01D8}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_Greek_iota, 0 }, 0x0390}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_Greek_upsilon, 0 }, 0x03B0}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_ALPHA, 0 }, 0x1F0D}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_EPSILON, 0 }, 0x1F1D}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_ETA, 0 }, 0x1F2D}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_IOTA, 0 }, 0x1F3D}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_OMICRON, 0 }, 0x1F4D}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_UPSILON, 0 }, 0x1F5D}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_OMEGA, 0 }, 0x1F6D}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_alpha, 0 }, 0x1F05}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_epsilon, 0 }, 0x1F15}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_eta, 0 }, 0x1F25}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_iota, 0 }, 0x1F35}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_omicron, 0 }, 0x1F45}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_upsilon, 0 }, 0x1F55}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_omega, 0 }, 0x1F65}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_ALPHA, 0 }, 0x1F0C}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_EPSILON, 0 }, 0x1F1C}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_ETA, 0 }, 0x1F2C}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_IOTA, 0 }, 0x1F3C}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_OMICRON, 0 }, 0x1F4C}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_OMEGA, 0 }, 0x1F6C}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_alpha, 0 }, 0x1F04}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_epsilon, 0 }, 0x1F14}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_eta, 0 }, 0x1F24}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_iota, 0 }, 0x1F34}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_omicron, 0 }, 0x1F44}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_upsilon, 0 }, 0x1F54}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_omega, 0 }, 0x1F64}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_plus, SCIM_KEY_O, 0 }, 0x1EDA}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_plus, SCIM_KEY_U, 0 }, 0x1EE8}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_plus, SCIM_KEY_o, 0 }, 0x1EDB}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_plus, SCIM_KEY_u, 0 }, 0x1EE9}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_comma, SCIM_KEY_C, 0 }, 0x1E08}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_comma, SCIM_KEY_c, 0 }, 0x1E09}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_slash, SCIM_KEY_O, 0 }, 0x01FE}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_slash, SCIM_KEY_o, 0 }, 0x01FF}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_A, 0 }, 0x1EAE}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_a, 0 }, 0x1EAF}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_A, 0 }, 0x1EA4}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_E, 0 }, 0x1EBE}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_O, 0 }, 0x1ED0}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_a, 0 }, 0x1EA5}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_e, 0 }, 0x1EBF}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_o, 0 }, 0x1ED1}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_E, 0 }, 0x1E16}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_O, 0 }, 0x1E52}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_e, 0 }, 0x1E17}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_o, 0 }, 0x1E53}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_b, SCIM_KEY_A, 0 }, 0x1EAE}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_b, SCIM_KEY_a, 0 }, 0x1EAF}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_o, SCIM_KEY_A, 0 }, 0x01FA}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_o, SCIM_KEY_a, 0 }, 0x01FB}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_O, 0 }, 0x1E4C}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_U, 0 }, 0x1E78}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_o, 0 }, 0x1E4D}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_u, 0 }, 0x1E79}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_E, 0 }, 0x1E16}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_O, 0 }, 0x1E52}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_e, 0 }, 0x1E17}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_o, 0 }, 0x1E53}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_KP_Divide, SCIM_KEY_O, 0 }, 0x01FE}, {{SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_KP_Divide, SCIM_KEY_o, 0 }, 0x01FF}, {{SCIM_KEY_dead_acute, 0x10001a0, 0, 0, 0 }, 0x1EDA}, {{SCIM_KEY_dead_acute, 0x10001a1, 0, 0, 0 }, 0x1EDB}, {{SCIM_KEY_dead_acute, 0x10001af, 0, 0, 0 }, 0x1EE8}, {{SCIM_KEY_dead_acute, 0x10001b0, 0, 0, 0 }, 0x1EE9}, {{SCIM_KEY_dead_acute, 0x1000313, SCIM_KEY_Greek_ALPHA, 0, 0 }, 0x1F0C}, {{SCIM_KEY_dead_acute, 0x1000313, SCIM_KEY_Greek_EPSILON, 0, 0 }, 0x1F1C}, {{SCIM_KEY_dead_acute, 0x1000313, SCIM_KEY_Greek_ETA, 0, 0 }, 0x1F2C}, {{SCIM_KEY_dead_acute, 0x1000313, SCIM_KEY_Greek_IOTA, 0, 0 }, 0x1F3C}, {{SCIM_KEY_dead_acute, 0x1000313, SCIM_KEY_Greek_OMICRON, 0, 0 }, 0x1F4C}, {{SCIM_KEY_dead_acute, 0x1000313, SCIM_KEY_Greek_OMEGA, 0, 0 }, 0x1F6C}, {{SCIM_KEY_dead_acute, 0x1000313, SCIM_KEY_Greek_alpha, 0, 0 }, 0x1F04}, {{SCIM_KEY_dead_acute, 0x1000313, SCIM_KEY_Greek_epsilon, 0, 0 }, 0x1F14}, {{SCIM_KEY_dead_acute, 0x1000313, SCIM_KEY_Greek_eta, 0, 0 }, 0x1F24}, {{SCIM_KEY_dead_acute, 0x1000313, SCIM_KEY_Greek_iota, 0, 0 }, 0x1F34}, {{SCIM_KEY_dead_acute, 0x1000313, SCIM_KEY_Greek_omicron, 0, 0 }, 0x1F44}, {{SCIM_KEY_dead_acute, 0x1000313, SCIM_KEY_Greek_upsilon, 0, 0 }, 0x1F54}, {{SCIM_KEY_dead_acute, 0x1000313, SCIM_KEY_Greek_omega, 0, 0 }, 0x1F64}, {{SCIM_KEY_dead_acute, 0x1000314, SCIM_KEY_Greek_ALPHA, 0, 0 }, 0x1F0D}, {{SCIM_KEY_dead_acute, 0x1000314, SCIM_KEY_Greek_EPSILON, 0, 0 }, 0x1F1D}, {{SCIM_KEY_dead_acute, 0x1000314, SCIM_KEY_Greek_ETA, 0, 0 }, 0x1F2D}, {{SCIM_KEY_dead_acute, 0x1000314, SCIM_KEY_Greek_IOTA, 0, 0 }, 0x1F3D}, {{SCIM_KEY_dead_acute, 0x1000314, SCIM_KEY_Greek_OMICRON, 0, 0 }, 0x1F4D}, {{SCIM_KEY_dead_acute, 0x1000314, SCIM_KEY_Greek_UPSILON, 0, 0 }, 0x1F5D}, {{SCIM_KEY_dead_acute, 0x1000314, SCIM_KEY_Greek_OMEGA, 0, 0 }, 0x1F6D}, {{SCIM_KEY_dead_acute, 0x1000314, SCIM_KEY_Greek_alpha, 0, 0 }, 0x1F05}, {{SCIM_KEY_dead_acute, 0x1000314, SCIM_KEY_Greek_epsilon, 0, 0 }, 0x1F15}, {{SCIM_KEY_dead_acute, 0x1000314, SCIM_KEY_Greek_eta, 0, 0 }, 0x1F25}, {{SCIM_KEY_dead_acute, 0x1000314, SCIM_KEY_Greek_iota, 0, 0 }, 0x1F35}, {{SCIM_KEY_dead_acute, 0x1000314, SCIM_KEY_Greek_omicron, 0, 0 }, 0x1F45}, {{SCIM_KEY_dead_acute, 0x1000314, SCIM_KEY_Greek_upsilon, 0, 0 }, 0x1F55}, {{SCIM_KEY_dead_acute, 0x1000314, SCIM_KEY_Greek_omega, 0, 0 }, 0x1F65}, {{SCIM_KEY_dead_acute, 0x1001f00, 0, 0, 0 }, 0x1F04}, {{SCIM_KEY_dead_acute, 0x1001f01, 0, 0, 0 }, 0x1F05}, {{SCIM_KEY_dead_acute, 0x1001f08, 0, 0, 0 }, 0x1F0C}, {{SCIM_KEY_dead_acute, 0x1001f09, 0, 0, 0 }, 0x1F0D}, {{SCIM_KEY_dead_acute, 0x1001f10, 0, 0, 0 }, 0x1F14}, {{SCIM_KEY_dead_acute, 0x1001f11, 0, 0, 0 }, 0x1F15}, {{SCIM_KEY_dead_acute, 0x1001f18, 0, 0, 0 }, 0x1F1C}, {{SCIM_KEY_dead_acute, 0x1001f19, 0, 0, 0 }, 0x1F1D}, {{SCIM_KEY_dead_acute, 0x1001f20, 0, 0, 0 }, 0x1F24}, {{SCIM_KEY_dead_acute, 0x1001f21, 0, 0, 0 }, 0x1F25}, {{SCIM_KEY_dead_acute, 0x1001f28, 0, 0, 0 }, 0x1F2C}, {{SCIM_KEY_dead_acute, 0x1001f29, 0, 0, 0 }, 0x1F2D}, {{SCIM_KEY_dead_acute, 0x1001f30, 0, 0, 0 }, 0x1F34}, {{SCIM_KEY_dead_acute, 0x1001f31, 0, 0, 0 }, 0x1F35}, {{SCIM_KEY_dead_acute, 0x1001f38, 0, 0, 0 }, 0x1F3C}, {{SCIM_KEY_dead_acute, 0x1001f39, 0, 0, 0 }, 0x1F3D}, {{SCIM_KEY_dead_acute, 0x1001f40, 0, 0, 0 }, 0x1F44}, {{SCIM_KEY_dead_acute, 0x1001f41, 0, 0, 0 }, 0x1F45}, {{SCIM_KEY_dead_acute, 0x1001f48, 0, 0, 0 }, 0x1F4C}, {{SCIM_KEY_dead_acute, 0x1001f49, 0, 0, 0 }, 0x1F4D}, {{SCIM_KEY_dead_acute, 0x1001f50, 0, 0, 0 }, 0x1F54}, {{SCIM_KEY_dead_acute, 0x1001f51, 0, 0, 0 }, 0x1F55}, {{SCIM_KEY_dead_acute, 0x1001f59, 0, 0, 0 }, 0x1F5D}, {{SCIM_KEY_dead_acute, 0x1001f60, 0, 0, 0 }, 0x1F64}, {{SCIM_KEY_dead_acute, 0x1001f61, 0, 0, 0 }, 0x1F65}, {{SCIM_KEY_dead_acute, 0x1001f68, 0, 0, 0 }, 0x1F6C}, {{SCIM_KEY_dead_acute, 0x1001f69, 0, 0, 0 }, 0x1F6D}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_space, 0, 0, 0 }, 0x005E}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_parenleft, 0, 0, 0 }, 0x207D}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_parenright, 0, 0, 0 }, 0x207E}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_plus, 0, 0, 0 }, 0x207A}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_minus, 0, 0, 0 }, 0x00AF}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_period, 0, 0, 0 }, 0x00B7}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_slash, 0, 0, 0 }, 0x007C}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_0, 0, 0, 0 }, 0x2070}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_1, 0, 0, 0 }, 0x00B9}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_2, 0, 0, 0 }, 0x00B2}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_3, 0, 0, 0 }, 0x00B3}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_4, 0, 0, 0 }, 0x2074}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_5, 0, 0, 0 }, 0x2075}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_6, 0, 0, 0 }, 0x2076}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_7, 0, 0, 0 }, 0x2077}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_8, 0, 0, 0 }, 0x2078}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_9, 0, 0, 0 }, 0x2079}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_equal, 0, 0, 0 }, 0x207C}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_A, 0, 0, 0 }, 0x00C2}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_C, 0, 0, 0 }, 0x0108}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_E, 0, 0, 0 }, 0x00CA}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_G, 0, 0, 0 }, 0x011C}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_H, 0, 0, 0 }, 0x0124}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_I, 0, 0, 0 }, 0x00CE}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_J, 0, 0, 0 }, 0x0134}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_O, 0, 0, 0 }, 0x00D4}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_S, 0, 0, 0 }, 0x015C}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_U, 0, 0, 0 }, 0x00DB}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_W, 0, 0, 0 }, 0x0174}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_Y, 0, 0, 0 }, 0x0176}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_Z, 0, 0, 0 }, 0x1E90}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_asciicircum, 0, 0, 0 }, 0x005E}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_underscore, 0, 0, 0 }, 0x00AF}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_a, 0, 0, 0 }, 0x00E2}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_c, 0, 0, 0 }, 0x0109}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_e, 0, 0, 0 }, 0x00EA}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_g, 0, 0, 0 }, 0x011D}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_h, 0, 0, 0 }, 0x0125}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_i, 0, 0, 0 }, 0x00EE}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_j, 0, 0, 0 }, 0x0135}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_o, 0, 0, 0 }, 0x00F4}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_s, 0, 0, 0 }, 0x015D}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_u, 0, 0, 0 }, 0x00FB}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_w, 0, 0, 0 }, 0x0175}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_y, 0, 0, 0 }, 0x0177}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_z, 0, 0, 0 }, 0x1E91}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_combining_belowdot, SCIM_KEY_A, 0, 0 }, 0x1EAC}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_combining_belowdot, SCIM_KEY_E, 0, 0 }, 0x1EC6}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_combining_belowdot, SCIM_KEY_O, 0, 0 }, 0x1ED8}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_combining_belowdot, SCIM_KEY_a, 0, 0 }, 0x1EAD}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_combining_belowdot, SCIM_KEY_e, 0, 0 }, 0x1EC7}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_combining_belowdot, SCIM_KEY_o, 0, 0 }, 0x1ED9}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_dead_circumflex, 0, 0, 0 }, 0x005E}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_dead_belowdot, SCIM_KEY_A, 0, 0 }, 0x1EAC}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_dead_belowdot, SCIM_KEY_E, 0, 0 }, 0x1EC6}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_dead_belowdot, SCIM_KEY_O, 0, 0 }, 0x1ED8}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_dead_belowdot, SCIM_KEY_a, 0, 0 }, 0x1EAD}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_dead_belowdot, SCIM_KEY_e, 0, 0 }, 0x1EC7}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_dead_belowdot, SCIM_KEY_o, 0, 0 }, 0x1ED9}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_A, 0 }, 0x1EAC}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_E, 0 }, 0x1EC6}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_O, 0 }, 0x1ED8}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_a, 0 }, 0x1EAD}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_e, 0 }, 0x1EC7}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_o, 0 }, 0x1ED9}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_Multi_key, SCIM_KEY_S, SCIM_KEY_M, 0 }, 0x2120}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_Multi_key, SCIM_KEY_T, SCIM_KEY_M, 0 }, 0x2122}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_a, 0 }, 0x00AA}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_h, 0 }, 0x02B0}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_i, 0 }, 0x2071}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_j, 0 }, 0x02B2}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_l, 0 }, 0x02E1}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_n, 0 }, 0x207F}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_o, 0 }, 0x00BA}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_r, 0 }, 0x02B3}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_s, 0 }, 0x02E2}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_w, 0 }, 0x02B7}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_x, 0 }, 0x02E3}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_y, 0 }, 0x02B8}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_Multi_key, SCIM_KEY_underscore, 0x1000263, 0 }, 0x02E0}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_Multi_key, SCIM_KEY_underscore, 0x1000266, 0 }, 0x02B1}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_Multi_key, SCIM_KEY_underscore, 0x1000279, 0 }, 0x02B4}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_Multi_key, SCIM_KEY_underscore, 0x100027b, 0 }, 0x02B5}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_Multi_key, SCIM_KEY_underscore, 0x1000281, 0 }, 0x02B6}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_Multi_key, SCIM_KEY_underscore, 0x1000295, 0 }, 0x02E4}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_Multi_key, SCIM_KEY_underbar, SCIM_KEY_a, 0 }, 0x00AA}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_Multi_key, SCIM_KEY_underbar, SCIM_KEY_h, 0 }, 0x02B0}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_Multi_key, SCIM_KEY_underbar, SCIM_KEY_i, 0 }, 0x2071}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_Multi_key, SCIM_KEY_underbar, SCIM_KEY_j, 0 }, 0x02B2}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_Multi_key, SCIM_KEY_underbar, SCIM_KEY_l, 0 }, 0x02E1}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_Multi_key, SCIM_KEY_underbar, SCIM_KEY_n, 0 }, 0x207F}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_Multi_key, SCIM_KEY_underbar, SCIM_KEY_o, 0 }, 0x00BA}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_Multi_key, SCIM_KEY_underbar, SCIM_KEY_r, 0 }, 0x02B3}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_Multi_key, SCIM_KEY_underbar, SCIM_KEY_s, 0 }, 0x02E2}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_Multi_key, SCIM_KEY_underbar, SCIM_KEY_w, 0 }, 0x02B7}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_Multi_key, SCIM_KEY_underbar, SCIM_KEY_x, 0 }, 0x02E3}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_Multi_key, SCIM_KEY_underbar, SCIM_KEY_y, 0 }, 0x02B8}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_Multi_key, SCIM_KEY_underbar, 0x1000263, 0 }, 0x02E0}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_Multi_key, SCIM_KEY_underbar, 0x1000266, 0 }, 0x02B1}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_Multi_key, SCIM_KEY_underbar, 0x1000279, 0 }, 0x02B4}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_Multi_key, SCIM_KEY_underbar, 0x100027b, 0 }, 0x02B5}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_Multi_key, SCIM_KEY_underbar, 0x1000281, 0 }, 0x02B6}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_Multi_key, SCIM_KEY_underbar, 0x1000295, 0 }, 0x02E4}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_KP_Space, 0, 0, 0 }, 0x00B2}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_KP_Add, 0, 0, 0 }, 0x207A}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_KP_0, 0, 0, 0 }, 0x2070}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_KP_1, 0, 0, 0 }, 0x00B9}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_KP_2, 0, 0, 0 }, 0x00B2}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_KP_3, 0, 0, 0 }, 0x00B3}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_KP_4, 0, 0, 0 }, 0x2074}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_KP_5, 0, 0, 0 }, 0x2075}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_KP_6, 0, 0, 0 }, 0x2076}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_KP_7, 0, 0, 0 }, 0x2077}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_KP_8, 0, 0, 0 }, 0x2078}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_KP_9, 0, 0, 0 }, 0x2079}, {{SCIM_KEY_dead_circumflex, SCIM_KEY_KP_Equal, 0, 0, 0 }, 0x207C}, {{SCIM_KEY_dead_circumflex, 0x1001ea0, 0, 0, 0 }, 0x1EAC}, {{SCIM_KEY_dead_circumflex, 0x1001ea1, 0, 0, 0 }, 0x1EAD}, {{SCIM_KEY_dead_circumflex, 0x1001eb8, 0, 0, 0 }, 0x1EC6}, {{SCIM_KEY_dead_circumflex, 0x1001eb9, 0, 0, 0 }, 0x1EC7}, {{SCIM_KEY_dead_circumflex, 0x1001ecc, 0, 0, 0 }, 0x1ED8}, {{SCIM_KEY_dead_circumflex, 0x1001ecd, 0, 0, 0 }, 0x1ED9}, {{SCIM_KEY_dead_circumflex, 0x1002212, 0, 0, 0 }, 0x207B}, {{SCIM_KEY_dead_circumflex, 0x1004e00, 0, 0, 0 }, 0x3192}, {{SCIM_KEY_dead_circumflex, 0x1004e01, 0, 0, 0 }, 0x319C}, {{SCIM_KEY_dead_circumflex, 0x1004e09, 0, 0, 0 }, 0x3194}, {{SCIM_KEY_dead_circumflex, 0x1004e0a, 0, 0, 0 }, 0x3196}, {{SCIM_KEY_dead_circumflex, 0x1004e0b, 0, 0, 0 }, 0x3198}, {{SCIM_KEY_dead_circumflex, 0x1004e19, 0, 0, 0 }, 0x319B}, {{SCIM_KEY_dead_circumflex, 0x1004e2d, 0, 0, 0 }, 0x3197}, {{SCIM_KEY_dead_circumflex, 0x1004e59, 0, 0, 0 }, 0x319A}, {{SCIM_KEY_dead_circumflex, 0x1004e8c, 0, 0, 0 }, 0x3193}, {{SCIM_KEY_dead_circumflex, 0x1004eba, 0, 0, 0 }, 0x319F}, {{SCIM_KEY_dead_circumflex, 0x10056db, 0, 0, 0 }, 0x3195}, {{SCIM_KEY_dead_circumflex, 0x1005730, 0, 0, 0 }, 0x319E}, {{SCIM_KEY_dead_circumflex, 0x1005929, 0, 0, 0 }, 0x319D}, {{SCIM_KEY_dead_circumflex, 0x1007532, 0, 0, 0 }, 0x3199}, {{SCIM_KEY_dead_tilde, SCIM_KEY_space, 0, 0, 0 }, 0x007E}, {{SCIM_KEY_dead_tilde, SCIM_KEY_A, 0, 0, 0 }, 0x00C3}, {{SCIM_KEY_dead_tilde, SCIM_KEY_E, 0, 0, 0 }, 0x1EBC}, {{SCIM_KEY_dead_tilde, SCIM_KEY_I, 0, 0, 0 }, 0x0128}, {{SCIM_KEY_dead_tilde, SCIM_KEY_N, 0, 0, 0 }, 0x00D1}, {{SCIM_KEY_dead_tilde, SCIM_KEY_O, 0, 0, 0 }, 0x00D5}, {{SCIM_KEY_dead_tilde, SCIM_KEY_U, 0, 0, 0 }, 0x0168}, {{SCIM_KEY_dead_tilde, SCIM_KEY_V, 0, 0, 0 }, 0x1E7C}, {{SCIM_KEY_dead_tilde, SCIM_KEY_Y, 0, 0, 0 }, 0x1EF8}, {{SCIM_KEY_dead_tilde, SCIM_KEY_a, 0, 0, 0 }, 0x00E3}, {{SCIM_KEY_dead_tilde, SCIM_KEY_e, 0, 0, 0 }, 0x1EBD}, {{SCIM_KEY_dead_tilde, SCIM_KEY_i, 0, 0, 0 }, 0x0129}, {{SCIM_KEY_dead_tilde, SCIM_KEY_n, 0, 0, 0 }, 0x00F1}, {{SCIM_KEY_dead_tilde, SCIM_KEY_o, 0, 0, 0 }, 0x00F5}, {{SCIM_KEY_dead_tilde, SCIM_KEY_u, 0, 0, 0 }, 0x0169}, {{SCIM_KEY_dead_tilde, SCIM_KEY_v, 0, 0, 0 }, 0x1E7D}, {{SCIM_KEY_dead_tilde, SCIM_KEY_y, 0, 0, 0 }, 0x1EF9}, {{SCIM_KEY_dead_tilde, SCIM_KEY_asciitilde, 0, 0, 0 }, 0x007E}, {{SCIM_KEY_dead_tilde, SCIM_KEY_Acircumflex, 0, 0, 0 }, 0x1EAA}, {{SCIM_KEY_dead_tilde, SCIM_KEY_Ecircumflex, 0, 0, 0 }, 0x1EC4}, {{SCIM_KEY_dead_tilde, SCIM_KEY_Ocircumflex, 0, 0, 0 }, 0x1ED6}, {{SCIM_KEY_dead_tilde, SCIM_KEY_acircumflex, 0, 0, 0 }, 0x1EAB}, {{SCIM_KEY_dead_tilde, SCIM_KEY_ecircumflex, 0, 0, 0 }, 0x1EC5}, {{SCIM_KEY_dead_tilde, SCIM_KEY_ocircumflex, 0, 0, 0 }, 0x1ED7}, {{SCIM_KEY_dead_tilde, SCIM_KEY_Abreve, 0, 0, 0 }, 0x1EB4}, {{SCIM_KEY_dead_tilde, SCIM_KEY_abreve, 0, 0, 0 }, 0x1EB5}, {{SCIM_KEY_dead_tilde, SCIM_KEY_Greek_iotadieresis, 0, 0, 0 }, 0x1FD7}, {{SCIM_KEY_dead_tilde, SCIM_KEY_Greek_upsilondieresis, 0, 0, 0 }, 0x1FE7}, {{SCIM_KEY_dead_tilde, SCIM_KEY_Greek_alpha, 0, 0, 0 }, 0x1FB6}, {{SCIM_KEY_dead_tilde, SCIM_KEY_Greek_eta, 0, 0, 0 }, 0x1FC6}, {{SCIM_KEY_dead_tilde, SCIM_KEY_Greek_iota, 0, 0, 0 }, 0x1FD6}, {{SCIM_KEY_dead_tilde, SCIM_KEY_Greek_upsilon, 0, 0, 0 }, 0x1FE6}, {{SCIM_KEY_dead_tilde, SCIM_KEY_Greek_omega, 0, 0, 0 }, 0x1FF6}, {{SCIM_KEY_dead_tilde, SCIM_KEY_Ohorn, 0, 0, 0 }, 0x1EE0}, {{SCIM_KEY_dead_tilde, SCIM_KEY_ohorn, 0, 0, 0 }, 0x1EE1}, {{SCIM_KEY_dead_tilde, SCIM_KEY_Uhorn, 0, 0, 0 }, 0x1EEE}, {{SCIM_KEY_dead_tilde, SCIM_KEY_uhorn, 0, 0, 0 }, 0x1EEF}, {{SCIM_KEY_dead_tilde, SCIM_KEY_dead_circumflex, SCIM_KEY_A, 0, 0 }, 0x1EAA}, {{SCIM_KEY_dead_tilde, SCIM_KEY_dead_circumflex, SCIM_KEY_E, 0, 0 }, 0x1EC4}, {{SCIM_KEY_dead_tilde, SCIM_KEY_dead_circumflex, SCIM_KEY_O, 0, 0 }, 0x1ED6}, {{SCIM_KEY_dead_tilde, SCIM_KEY_dead_circumflex, SCIM_KEY_a, 0, 0 }, 0x1EAB}, {{SCIM_KEY_dead_tilde, SCIM_KEY_dead_circumflex, SCIM_KEY_e, 0, 0 }, 0x1EC5}, {{SCIM_KEY_dead_tilde, SCIM_KEY_dead_circumflex, SCIM_KEY_o, 0, 0 }, 0x1ED7}, {{SCIM_KEY_dead_tilde, SCIM_KEY_dead_tilde, 0, 0, 0 }, 0x007E}, {{SCIM_KEY_dead_tilde, SCIM_KEY_dead_breve, SCIM_KEY_A, 0, 0 }, 0x1EB4}, {{SCIM_KEY_dead_tilde, SCIM_KEY_dead_breve, SCIM_KEY_a, 0, 0 }, 0x1EB5}, {{SCIM_KEY_dead_tilde, SCIM_KEY_dead_diaeresis, SCIM_KEY_Greek_iota, 0, 0 }, 0x1FD7}, {{SCIM_KEY_dead_tilde, SCIM_KEY_dead_diaeresis, SCIM_KEY_Greek_upsilon, 0, 0 }, 0x1FE7}, {{SCIM_KEY_dead_tilde, SCIM_KEY_dead_horn, SCIM_KEY_O, 0, 0 }, 0x1EE0}, {{SCIM_KEY_dead_tilde, SCIM_KEY_dead_horn, SCIM_KEY_U, 0, 0 }, 0x1EEE}, {{SCIM_KEY_dead_tilde, SCIM_KEY_dead_horn, SCIM_KEY_o, 0, 0 }, 0x1EE1}, {{SCIM_KEY_dead_tilde, SCIM_KEY_dead_horn, SCIM_KEY_u, 0, 0 }, 0x1EEF}, {{SCIM_KEY_dead_tilde, SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_Greek_iota, 0 }, 0x1FD7}, {{SCIM_KEY_dead_tilde, SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_Greek_upsilon, 0 }, 0x1FE7}, {{SCIM_KEY_dead_tilde, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_ALPHA, 0 }, 0x1F0F}, {{SCIM_KEY_dead_tilde, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_ETA, 0 }, 0x1F2F}, {{SCIM_KEY_dead_tilde, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_IOTA, 0 }, 0x1F3F}, {{SCIM_KEY_dead_tilde, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_UPSILON, 0 }, 0x1F5F}, {{SCIM_KEY_dead_tilde, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_OMEGA, 0 }, 0x1F6F}, {{SCIM_KEY_dead_tilde, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_alpha, 0 }, 0x1F07}, {{SCIM_KEY_dead_tilde, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_eta, 0 }, 0x1F27}, {{SCIM_KEY_dead_tilde, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_iota, 0 }, 0x1F37}, {{SCIM_KEY_dead_tilde, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_upsilon, 0 }, 0x1F57}, {{SCIM_KEY_dead_tilde, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_omega, 0 }, 0x1F67}, {{SCIM_KEY_dead_tilde, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_ALPHA, 0 }, 0x1F0E}, {{SCIM_KEY_dead_tilde, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_ETA, 0 }, 0x1F2E}, {{SCIM_KEY_dead_tilde, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_IOTA, 0 }, 0x1F3E}, {{SCIM_KEY_dead_tilde, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_OMEGA, 0 }, 0x1F6E}, {{SCIM_KEY_dead_tilde, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_alpha, 0 }, 0x1F06}, {{SCIM_KEY_dead_tilde, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_eta, 0 }, 0x1F26}, {{SCIM_KEY_dead_tilde, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_iota, 0 }, 0x1F36}, {{SCIM_KEY_dead_tilde, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_upsilon, 0 }, 0x1F56}, {{SCIM_KEY_dead_tilde, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_omega, 0 }, 0x1F66}, {{SCIM_KEY_dead_tilde, SCIM_KEY_Multi_key, SCIM_KEY_plus, SCIM_KEY_O, 0 }, 0x1EE0}, {{SCIM_KEY_dead_tilde, SCIM_KEY_Multi_key, SCIM_KEY_plus, SCIM_KEY_U, 0 }, 0x1EEE}, {{SCIM_KEY_dead_tilde, SCIM_KEY_Multi_key, SCIM_KEY_plus, SCIM_KEY_o, 0 }, 0x1EE1}, {{SCIM_KEY_dead_tilde, SCIM_KEY_Multi_key, SCIM_KEY_plus, SCIM_KEY_u, 0 }, 0x1EEF}, {{SCIM_KEY_dead_tilde, SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_A, 0 }, 0x1EB4}, {{SCIM_KEY_dead_tilde, SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_a, 0 }, 0x1EB5}, {{SCIM_KEY_dead_tilde, SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_A, 0 }, 0x1EAA}, {{SCIM_KEY_dead_tilde, SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_E, 0 }, 0x1EC4}, {{SCIM_KEY_dead_tilde, SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_O, 0 }, 0x1ED6}, {{SCIM_KEY_dead_tilde, SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_a, 0 }, 0x1EAB}, {{SCIM_KEY_dead_tilde, SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_e, 0 }, 0x1EC5}, {{SCIM_KEY_dead_tilde, SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_o, 0 }, 0x1ED7}, {{SCIM_KEY_dead_tilde, SCIM_KEY_Multi_key, SCIM_KEY_b, SCIM_KEY_A, 0 }, 0x1EB4}, {{SCIM_KEY_dead_tilde, SCIM_KEY_Multi_key, SCIM_KEY_b, SCIM_KEY_a, 0 }, 0x1EB5}, {{SCIM_KEY_dead_tilde, 0x10001a0, 0, 0, 0 }, 0x1EE0}, {{SCIM_KEY_dead_tilde, 0x10001a1, 0, 0, 0 }, 0x1EE1}, {{SCIM_KEY_dead_tilde, 0x10001af, 0, 0, 0 }, 0x1EEE}, {{SCIM_KEY_dead_tilde, 0x10001b0, 0, 0, 0 }, 0x1EEF}, {{SCIM_KEY_dead_tilde, 0x1000313, SCIM_KEY_Greek_ALPHA, 0, 0 }, 0x1F0E}, {{SCIM_KEY_dead_tilde, 0x1000313, SCIM_KEY_Greek_ETA, 0, 0 }, 0x1F2E}, {{SCIM_KEY_dead_tilde, 0x1000313, SCIM_KEY_Greek_IOTA, 0, 0 }, 0x1F3E}, {{SCIM_KEY_dead_tilde, 0x1000313, SCIM_KEY_Greek_OMEGA, 0, 0 }, 0x1F6E}, {{SCIM_KEY_dead_tilde, 0x1000313, SCIM_KEY_Greek_alpha, 0, 0 }, 0x1F06}, {{SCIM_KEY_dead_tilde, 0x1000313, SCIM_KEY_Greek_eta, 0, 0 }, 0x1F26}, {{SCIM_KEY_dead_tilde, 0x1000313, SCIM_KEY_Greek_iota, 0, 0 }, 0x1F36}, {{SCIM_KEY_dead_tilde, 0x1000313, SCIM_KEY_Greek_upsilon, 0, 0 }, 0x1F56}, {{SCIM_KEY_dead_tilde, 0x1000313, SCIM_KEY_Greek_omega, 0, 0 }, 0x1F66}, {{SCIM_KEY_dead_tilde, 0x1000314, SCIM_KEY_Greek_ALPHA, 0, 0 }, 0x1F0F}, {{SCIM_KEY_dead_tilde, 0x1000314, SCIM_KEY_Greek_ETA, 0, 0 }, 0x1F2F}, {{SCIM_KEY_dead_tilde, 0x1000314, SCIM_KEY_Greek_IOTA, 0, 0 }, 0x1F3F}, {{SCIM_KEY_dead_tilde, 0x1000314, SCIM_KEY_Greek_UPSILON, 0, 0 }, 0x1F5F}, {{SCIM_KEY_dead_tilde, 0x1000314, SCIM_KEY_Greek_OMEGA, 0, 0 }, 0x1F6F}, {{SCIM_KEY_dead_tilde, 0x1000314, SCIM_KEY_Greek_alpha, 0, 0 }, 0x1F07}, {{SCIM_KEY_dead_tilde, 0x1000314, SCIM_KEY_Greek_eta, 0, 0 }, 0x1F27}, {{SCIM_KEY_dead_tilde, 0x1000314, SCIM_KEY_Greek_iota, 0, 0 }, 0x1F37}, {{SCIM_KEY_dead_tilde, 0x1000314, SCIM_KEY_Greek_upsilon, 0, 0 }, 0x1F57}, {{SCIM_KEY_dead_tilde, 0x1000314, SCIM_KEY_Greek_omega, 0, 0 }, 0x1F67}, {{SCIM_KEY_dead_tilde, 0x1001f00, 0, 0, 0 }, 0x1F06}, {{SCIM_KEY_dead_tilde, 0x1001f01, 0, 0, 0 }, 0x1F07}, {{SCIM_KEY_dead_tilde, 0x1001f08, 0, 0, 0 }, 0x1F0E}, {{SCIM_KEY_dead_tilde, 0x1001f09, 0, 0, 0 }, 0x1F0F}, {{SCIM_KEY_dead_tilde, 0x1001f20, 0, 0, 0 }, 0x1F26}, {{SCIM_KEY_dead_tilde, 0x1001f21, 0, 0, 0 }, 0x1F27}, {{SCIM_KEY_dead_tilde, 0x1001f28, 0, 0, 0 }, 0x1F2E}, {{SCIM_KEY_dead_tilde, 0x1001f29, 0, 0, 0 }, 0x1F2F}, {{SCIM_KEY_dead_tilde, 0x1001f30, 0, 0, 0 }, 0x1F36}, {{SCIM_KEY_dead_tilde, 0x1001f31, 0, 0, 0 }, 0x1F37}, {{SCIM_KEY_dead_tilde, 0x1001f38, 0, 0, 0 }, 0x1F3E}, {{SCIM_KEY_dead_tilde, 0x1001f39, 0, 0, 0 }, 0x1F3F}, {{SCIM_KEY_dead_tilde, 0x1001f50, 0, 0, 0 }, 0x1F56}, {{SCIM_KEY_dead_tilde, 0x1001f51, 0, 0, 0 }, 0x1F57}, {{SCIM_KEY_dead_tilde, 0x1001f59, 0, 0, 0 }, 0x1F5F}, {{SCIM_KEY_dead_tilde, 0x1001f60, 0, 0, 0 }, 0x1F66}, {{SCIM_KEY_dead_tilde, 0x1001f61, 0, 0, 0 }, 0x1F67}, {{SCIM_KEY_dead_tilde, 0x1001f68, 0, 0, 0 }, 0x1F6E}, {{SCIM_KEY_dead_tilde, 0x1001f69, 0, 0, 0 }, 0x1F6F}, {{SCIM_KEY_dead_macron, SCIM_KEY_space, 0, 0, 0 }, 0x00AF}, {{SCIM_KEY_dead_macron, SCIM_KEY_A, 0, 0, 0 }, 0x0100}, {{SCIM_KEY_dead_macron, SCIM_KEY_E, 0, 0, 0 }, 0x0112}, {{SCIM_KEY_dead_macron, SCIM_KEY_G, 0, 0, 0 }, 0x1E20}, {{SCIM_KEY_dead_macron, SCIM_KEY_I, 0, 0, 0 }, 0x012A}, {{SCIM_KEY_dead_macron, SCIM_KEY_O, 0, 0, 0 }, 0x014C}, {{SCIM_KEY_dead_macron, SCIM_KEY_U, 0, 0, 0 }, 0x016A}, {{SCIM_KEY_dead_macron, SCIM_KEY_Y, 0, 0, 0 }, 0x0232}, {{SCIM_KEY_dead_macron, SCIM_KEY_a, 0, 0, 0 }, 0x0101}, {{SCIM_KEY_dead_macron, SCIM_KEY_e, 0, 0, 0 }, 0x0113}, {{SCIM_KEY_dead_macron, SCIM_KEY_g, 0, 0, 0 }, 0x1E21}, {{SCIM_KEY_dead_macron, SCIM_KEY_i, 0, 0, 0 }, 0x012B}, {{SCIM_KEY_dead_macron, SCIM_KEY_o, 0, 0, 0 }, 0x014D}, {{SCIM_KEY_dead_macron, SCIM_KEY_u, 0, 0, 0 }, 0x016B}, {{SCIM_KEY_dead_macron, SCIM_KEY_y, 0, 0, 0 }, 0x0233}, {{SCIM_KEY_dead_macron, SCIM_KEY_macron, 0, 0, 0 }, 0x00AF}, {{SCIM_KEY_dead_macron, SCIM_KEY_Adiaeresis, 0, 0, 0 }, 0x01DE}, {{SCIM_KEY_dead_macron, SCIM_KEY_AE, 0, 0, 0 }, 0x01E2}, {{SCIM_KEY_dead_macron, SCIM_KEY_Otilde, 0, 0, 0 }, 0x022C}, {{SCIM_KEY_dead_macron, SCIM_KEY_Odiaeresis, 0, 0, 0 }, 0x022A}, {{SCIM_KEY_dead_macron, SCIM_KEY_Udiaeresis, 0, 0, 0 }, 0x01D5}, {{SCIM_KEY_dead_macron, SCIM_KEY_adiaeresis, 0, 0, 0 }, 0x01DF}, {{SCIM_KEY_dead_macron, SCIM_KEY_ae, 0, 0, 0 }, 0x01E3}, {{SCIM_KEY_dead_macron, SCIM_KEY_otilde, 0, 0, 0 }, 0x022D}, {{SCIM_KEY_dead_macron, SCIM_KEY_odiaeresis, 0, 0, 0 }, 0x022B}, {{SCIM_KEY_dead_macron, SCIM_KEY_udiaeresis, 0, 0, 0 }, 0x01D6}, {{SCIM_KEY_dead_macron, SCIM_KEY_Cyrillic_i, 0, 0, 0 }, 0x04E3}, {{SCIM_KEY_dead_macron, SCIM_KEY_Cyrillic_u, 0, 0, 0 }, 0x04EF}, {{SCIM_KEY_dead_macron, SCIM_KEY_Cyrillic_I, 0, 0, 0 }, 0x04E2}, {{SCIM_KEY_dead_macron, SCIM_KEY_Cyrillic_U, 0, 0, 0 }, 0x04EE}, {{SCIM_KEY_dead_macron, SCIM_KEY_Greek_ALPHA, 0, 0, 0 }, 0x1FB9}, {{SCIM_KEY_dead_macron, SCIM_KEY_Greek_IOTA, 0, 0, 0 }, 0x1FD9}, {{SCIM_KEY_dead_macron, SCIM_KEY_Greek_UPSILON, 0, 0, 0 }, 0x1FE9}, {{SCIM_KEY_dead_macron, SCIM_KEY_Greek_alpha, 0, 0, 0 }, 0x1FB1}, {{SCIM_KEY_dead_macron, SCIM_KEY_Greek_iota, 0, 0, 0 }, 0x1FD1}, {{SCIM_KEY_dead_macron, SCIM_KEY_Greek_upsilon, 0, 0, 0 }, 0x1FE1}, {{SCIM_KEY_dead_macron, SCIM_KEY_combining_tilde, SCIM_KEY_O, 0, 0 }, 0x022C}, {{SCIM_KEY_dead_macron, SCIM_KEY_combining_tilde, SCIM_KEY_o, 0, 0 }, 0x022D}, {{SCIM_KEY_dead_macron, SCIM_KEY_combining_belowdot, SCIM_KEY_L, 0, 0 }, 0x1E38}, {{SCIM_KEY_dead_macron, SCIM_KEY_combining_belowdot, SCIM_KEY_R, 0, 0 }, 0x1E5C}, {{SCIM_KEY_dead_macron, SCIM_KEY_combining_belowdot, SCIM_KEY_l, 0, 0 }, 0x1E39}, {{SCIM_KEY_dead_macron, SCIM_KEY_combining_belowdot, SCIM_KEY_r, 0, 0 }, 0x1E5D}, {{SCIM_KEY_dead_macron, SCIM_KEY_dead_tilde, SCIM_KEY_O, 0, 0 }, 0x022C}, {{SCIM_KEY_dead_macron, SCIM_KEY_dead_tilde, SCIM_KEY_o, 0, 0 }, 0x022D}, {{SCIM_KEY_dead_macron, SCIM_KEY_dead_macron, 0, 0, 0 }, 0x00AF}, {{SCIM_KEY_dead_macron, SCIM_KEY_dead_abovedot, SCIM_KEY_A, 0, 0 }, 0x01E0}, {{SCIM_KEY_dead_macron, SCIM_KEY_dead_abovedot, SCIM_KEY_O, 0, 0 }, 0x0230}, {{SCIM_KEY_dead_macron, SCIM_KEY_dead_abovedot, SCIM_KEY_a, 0, 0 }, 0x01E1}, {{SCIM_KEY_dead_macron, SCIM_KEY_dead_abovedot, SCIM_KEY_o, 0, 0 }, 0x0231}, {{SCIM_KEY_dead_macron, SCIM_KEY_dead_diaeresis, SCIM_KEY_A, 0, 0 }, 0x01DE}, {{SCIM_KEY_dead_macron, SCIM_KEY_dead_diaeresis, SCIM_KEY_O, 0, 0 }, 0x022A}, {{SCIM_KEY_dead_macron, SCIM_KEY_dead_diaeresis, SCIM_KEY_U, 0, 0 }, 0x01D5}, {{SCIM_KEY_dead_macron, SCIM_KEY_dead_diaeresis, SCIM_KEY_a, 0, 0 }, 0x01DF}, {{SCIM_KEY_dead_macron, SCIM_KEY_dead_diaeresis, SCIM_KEY_o, 0, 0 }, 0x022B}, {{SCIM_KEY_dead_macron, SCIM_KEY_dead_diaeresis, SCIM_KEY_u, 0, 0 }, 0x01D6}, {{SCIM_KEY_dead_macron, SCIM_KEY_dead_ogonek, SCIM_KEY_O, 0, 0 }, 0x01EC}, {{SCIM_KEY_dead_macron, SCIM_KEY_dead_ogonek, SCIM_KEY_o, 0, 0 }, 0x01ED}, {{SCIM_KEY_dead_macron, SCIM_KEY_dead_belowdot, SCIM_KEY_L, 0, 0 }, 0x1E38}, {{SCIM_KEY_dead_macron, SCIM_KEY_dead_belowdot, SCIM_KEY_R, 0, 0 }, 0x1E5C}, {{SCIM_KEY_dead_macron, SCIM_KEY_dead_belowdot, SCIM_KEY_l, 0, 0 }, 0x1E39}, {{SCIM_KEY_dead_macron, SCIM_KEY_dead_belowdot, SCIM_KEY_r, 0, 0 }, 0x1E5D}, {{SCIM_KEY_dead_macron, SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_L, 0 }, 0x1E38}, {{SCIM_KEY_dead_macron, SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_R, 0 }, 0x1E5C}, {{SCIM_KEY_dead_macron, SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_l, 0 }, 0x1E39}, {{SCIM_KEY_dead_macron, SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_r, 0 }, 0x1E5D}, {{SCIM_KEY_dead_macron, SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_A, 0 }, 0x01DE}, {{SCIM_KEY_dead_macron, SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_O, 0 }, 0x022A}, {{SCIM_KEY_dead_macron, SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_U, 0 }, 0x01D5}, {{SCIM_KEY_dead_macron, SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_a, 0 }, 0x01DF}, {{SCIM_KEY_dead_macron, SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_o, 0 }, 0x022B}, {{SCIM_KEY_dead_macron, SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_u, 0 }, 0x01D6}, {{SCIM_KEY_dead_macron, SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_A, 0 }, 0x01E0}, {{SCIM_KEY_dead_macron, SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_O, 0 }, 0x0230}, {{SCIM_KEY_dead_macron, SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_a, 0 }, 0x01E1}, {{SCIM_KEY_dead_macron, SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_o, 0 }, 0x0231}, {{SCIM_KEY_dead_macron, SCIM_KEY_Multi_key, SCIM_KEY_semicolon, SCIM_KEY_O, 0 }, 0x01EC}, {{SCIM_KEY_dead_macron, SCIM_KEY_Multi_key, SCIM_KEY_semicolon, SCIM_KEY_o, 0 }, 0x01ED}, {{SCIM_KEY_dead_macron, SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_O, 0 }, 0x022C}, {{SCIM_KEY_dead_macron, SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_o, 0 }, 0x022D}, {{SCIM_KEY_dead_macron, 0x10001ea, 0, 0, 0 }, 0x01EC}, {{SCIM_KEY_dead_macron, 0x10001eb, 0, 0, 0 }, 0x01ED}, {{SCIM_KEY_dead_macron, 0x1000226, 0, 0, 0 }, 0x01E0}, {{SCIM_KEY_dead_macron, 0x1000227, 0, 0, 0 }, 0x01E1}, {{SCIM_KEY_dead_macron, 0x100022e, 0, 0, 0 }, 0x0230}, {{SCIM_KEY_dead_macron, 0x100022f, 0, 0, 0 }, 0x0231}, {{SCIM_KEY_dead_macron, 0x1001e36, 0, 0, 0 }, 0x1E38}, {{SCIM_KEY_dead_macron, 0x1001e37, 0, 0, 0 }, 0x1E39}, {{SCIM_KEY_dead_macron, 0x1001e5a, 0, 0, 0 }, 0x1E5C}, {{SCIM_KEY_dead_macron, 0x1001e5b, 0, 0, 0 }, 0x1E5D}, {{SCIM_KEY_dead_breve, SCIM_KEY_space, 0, 0, 0 }, 0x02D8}, {{SCIM_KEY_dead_breve, SCIM_KEY_A, 0, 0, 0 }, 0x0102}, {{SCIM_KEY_dead_breve, SCIM_KEY_E, 0, 0, 0 }, 0x0114}, {{SCIM_KEY_dead_breve, SCIM_KEY_G, 0, 0, 0 }, 0x011E}, {{SCIM_KEY_dead_breve, SCIM_KEY_I, 0, 0, 0 }, 0x012C}, {{SCIM_KEY_dead_breve, SCIM_KEY_O, 0, 0, 0 }, 0x014E}, {{SCIM_KEY_dead_breve, SCIM_KEY_U, 0, 0, 0 }, 0x016C}, {{SCIM_KEY_dead_breve, SCIM_KEY_a, 0, 0, 0 }, 0x0103}, {{SCIM_KEY_dead_breve, SCIM_KEY_e, 0, 0, 0 }, 0x0115}, {{SCIM_KEY_dead_breve, SCIM_KEY_g, 0, 0, 0 }, 0x011F}, {{SCIM_KEY_dead_breve, SCIM_KEY_i, 0, 0, 0 }, 0x012D}, {{SCIM_KEY_dead_breve, SCIM_KEY_o, 0, 0, 0 }, 0x014F}, {{SCIM_KEY_dead_breve, SCIM_KEY_u, 0, 0, 0 }, 0x016D}, {{SCIM_KEY_dead_breve, SCIM_KEY_Cyrillic_a, 0, 0, 0 }, 0x04D1}, {{SCIM_KEY_dead_breve, SCIM_KEY_Cyrillic_ie, 0, 0, 0 }, 0x04D7}, {{SCIM_KEY_dead_breve, SCIM_KEY_Cyrillic_i, 0, 0, 0 }, 0x0439}, {{SCIM_KEY_dead_breve, SCIM_KEY_Cyrillic_u, 0, 0, 0 }, 0x045E}, {{SCIM_KEY_dead_breve, SCIM_KEY_Cyrillic_zhe, 0, 0, 0 }, 0x04C2}, {{SCIM_KEY_dead_breve, SCIM_KEY_Cyrillic_A, 0, 0, 0 }, 0x04D0}, {{SCIM_KEY_dead_breve, SCIM_KEY_Cyrillic_IE, 0, 0, 0 }, 0x04D6}, {{SCIM_KEY_dead_breve, SCIM_KEY_Cyrillic_I, 0, 0, 0 }, 0x0419}, {{SCIM_KEY_dead_breve, SCIM_KEY_Cyrillic_U, 0, 0, 0 }, 0x040E}, {{SCIM_KEY_dead_breve, SCIM_KEY_Cyrillic_ZHE, 0, 0, 0 }, 0x04C1}, {{SCIM_KEY_dead_breve, SCIM_KEY_Greek_ALPHA, 0, 0, 0 }, 0x1FB8}, {{SCIM_KEY_dead_breve, SCIM_KEY_Greek_IOTA, 0, 0, 0 }, 0x1FD8}, {{SCIM_KEY_dead_breve, SCIM_KEY_Greek_UPSILON, 0, 0, 0 }, 0x1FE8}, {{SCIM_KEY_dead_breve, SCIM_KEY_Greek_alpha, 0, 0, 0 }, 0x1FB0}, {{SCIM_KEY_dead_breve, SCIM_KEY_Greek_iota, 0, 0, 0 }, 0x1FD0}, {{SCIM_KEY_dead_breve, SCIM_KEY_Greek_upsilon, 0, 0, 0 }, 0x1FE0}, {{SCIM_KEY_dead_breve, SCIM_KEY_combining_belowdot, SCIM_KEY_A, 0, 0 }, 0x1EB6}, {{SCIM_KEY_dead_breve, SCIM_KEY_combining_belowdot, SCIM_KEY_a, 0, 0 }, 0x1EB7}, {{SCIM_KEY_dead_breve, SCIM_KEY_dead_breve, 0, 0, 0 }, 0x02D8}, {{SCIM_KEY_dead_breve, SCIM_KEY_dead_cedilla, SCIM_KEY_E, 0, 0 }, 0x1E1C}, {{SCIM_KEY_dead_breve, SCIM_KEY_dead_cedilla, SCIM_KEY_e, 0, 0 }, 0x1E1D}, {{SCIM_KEY_dead_breve, SCIM_KEY_dead_belowdot, SCIM_KEY_A, 0, 0 }, 0x1EB6}, {{SCIM_KEY_dead_breve, SCIM_KEY_dead_belowdot, SCIM_KEY_a, 0, 0 }, 0x1EB7}, {{SCIM_KEY_dead_breve, SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_A, 0 }, 0x1EB6}, {{SCIM_KEY_dead_breve, SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_a, 0 }, 0x1EB7}, {{SCIM_KEY_dead_breve, SCIM_KEY_Multi_key, SCIM_KEY_comma, SCIM_KEY_E, 0 }, 0x1E1C}, {{SCIM_KEY_dead_breve, SCIM_KEY_Multi_key, SCIM_KEY_comma, SCIM_KEY_e, 0 }, 0x1E1D}, {{SCIM_KEY_dead_breve, 0x1000228, 0, 0, 0 }, 0x1E1C}, {{SCIM_KEY_dead_breve, 0x1000229, 0, 0, 0 }, 0x1E1D}, {{SCIM_KEY_dead_breve, 0x1001ea0, 0, 0, 0 }, 0x1EB6}, {{SCIM_KEY_dead_breve, 0x1001ea1, 0, 0, 0 }, 0x1EB7}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_space, 0, 0, 0 }, 0x02D9}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_A, 0, 0, 0 }, 0x0226}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_B, 0, 0, 0 }, 0x1E02}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_C, 0, 0, 0 }, 0x010A}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_D, 0, 0, 0 }, 0x1E0A}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_E, 0, 0, 0 }, 0x0116}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_F, 0, 0, 0 }, 0x1E1E}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_G, 0, 0, 0 }, 0x0120}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_H, 0, 0, 0 }, 0x1E22}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_I, 0, 0, 0 }, 0x0130}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_M, 0, 0, 0 }, 0x1E40}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_N, 0, 0, 0 }, 0x1E44}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_O, 0, 0, 0 }, 0x022E}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_P, 0, 0, 0 }, 0x1E56}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_R, 0, 0, 0 }, 0x1E58}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_S, 0, 0, 0 }, 0x1E60}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_T, 0, 0, 0 }, 0x1E6A}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_W, 0, 0, 0 }, 0x1E86}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_X, 0, 0, 0 }, 0x1E8A}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_Y, 0, 0, 0 }, 0x1E8E}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_Z, 0, 0, 0 }, 0x017B}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_a, 0, 0, 0 }, 0x0227}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_b, 0, 0, 0 }, 0x1E03}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_c, 0, 0, 0 }, 0x010B}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_d, 0, 0, 0 }, 0x1E0B}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_e, 0, 0, 0 }, 0x0117}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_f, 0, 0, 0 }, 0x1E1F}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_g, 0, 0, 0 }, 0x0121}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_h, 0, 0, 0 }, 0x1E23}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_i, 0, 0, 0 }, 0x0131}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_m, 0, 0, 0 }, 0x1E41}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_n, 0, 0, 0 }, 0x1E45}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_o, 0, 0, 0 }, 0x022F}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_p, 0, 0, 0 }, 0x1E57}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_r, 0, 0, 0 }, 0x1E59}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_s, 0, 0, 0 }, 0x1E61}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_t, 0, 0, 0 }, 0x1E6B}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_w, 0, 0, 0 }, 0x1E87}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_x, 0, 0, 0 }, 0x1E8B}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_y, 0, 0, 0 }, 0x1E8F}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_z, 0, 0, 0 }, 0x017C}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_Sacute, 0, 0, 0 }, 0x1E64}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_Scaron, 0, 0, 0 }, 0x1E66}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_sacute, 0, 0, 0 }, 0x1E65}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_scaron, 0, 0, 0 }, 0x1E67}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_abovedot, 0, 0, 0 }, 0x02D9}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_combining_acute, SCIM_KEY_S, 0, 0 }, 0x1E64}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_combining_acute, SCIM_KEY_s, 0, 0 }, 0x1E65}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_combining_belowdot, SCIM_KEY_S, 0, 0 }, 0x1E68}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_combining_belowdot, SCIM_KEY_s, 0, 0 }, 0x1E69}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_dead_acute, SCIM_KEY_S, 0, 0 }, 0x1E64}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_dead_acute, SCIM_KEY_s, 0, 0 }, 0x1E65}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_dead_abovedot, 0, 0, 0 }, 0x02D9}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_dead_caron, SCIM_KEY_S, 0, 0 }, 0x1E66}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_dead_caron, SCIM_KEY_s, 0, 0 }, 0x1E67}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_dead_belowdot, SCIM_KEY_S, 0, 0 }, 0x1E68}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_dead_belowdot, SCIM_KEY_s, 0, 0 }, 0x1E69}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_S, 0 }, 0x1E68}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_s, 0 }, 0x1E69}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_S, 0 }, 0x1E64}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_s, 0 }, 0x1E65}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_Multi_key, SCIM_KEY_c, SCIM_KEY_S, 0 }, 0x1E66}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_Multi_key, SCIM_KEY_c, SCIM_KEY_s, 0 }, 0x1E67}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_S, 0 }, 0x1E64}, {{SCIM_KEY_dead_abovedot, SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_s, 0 }, 0x1E65}, {{SCIM_KEY_dead_abovedot, 0x100017f, 0, 0, 0 }, 0x1E9B}, {{SCIM_KEY_dead_abovedot, 0x1001e62, 0, 0, 0 }, 0x1E68}, {{SCIM_KEY_dead_abovedot, 0x1001e63, 0, 0, 0 }, 0x1E69}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_space, 0, 0, 0 }, 0x0022}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_quotedbl, 0, 0, 0 }, 0x00A8}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_apostrophe, 0, 0, 0 }, 0x0344}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_A, 0, 0, 0 }, 0x00C4}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_E, 0, 0, 0 }, 0x00CB}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_H, 0, 0, 0 }, 0x1E26}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_I, 0, 0, 0 }, 0x00CF}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_O, 0, 0, 0 }, 0x00D6}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_U, 0, 0, 0 }, 0x00DC}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_W, 0, 0, 0 }, 0x1E84}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_X, 0, 0, 0 }, 0x1E8C}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_Y, 0, 0, 0 }, 0x0178}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_a, 0, 0, 0 }, 0x00E4}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_e, 0, 0, 0 }, 0x00EB}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_h, 0, 0, 0 }, 0x1E27}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_i, 0, 0, 0 }, 0x00EF}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_o, 0, 0, 0 }, 0x00F6}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_t, 0, 0, 0 }, 0x1E97}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_u, 0, 0, 0 }, 0x00FC}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_w, 0, 0, 0 }, 0x1E85}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_x, 0, 0, 0 }, 0x1E8D}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_y, 0, 0, 0 }, 0x00FF}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_diaeresis, 0, 0, 0 }, 0x00A8}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_acute, 0, 0, 0 }, 0x0344}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_Otilde, 0, 0, 0 }, 0x1E4E}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_otilde, 0, 0, 0 }, 0x1E4F}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_Umacron, 0, 0, 0 }, 0x1E7A}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_umacron, 0, 0, 0 }, 0x1E7B}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_Ukrainian_i, 0, 0, 0 }, 0x0457}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_Ukrainian_I, 0, 0, 0 }, 0x0407}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_Cyrillic_a, 0, 0, 0 }, 0x04D3}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_Cyrillic_ie, 0, 0, 0 }, 0x0451}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_Cyrillic_i, 0, 0, 0 }, 0x04E5}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_Cyrillic_o, 0, 0, 0 }, 0x04E7}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_Cyrillic_u, 0, 0, 0 }, 0x04F1}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_Cyrillic_zhe, 0, 0, 0 }, 0x04DD}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_Cyrillic_yeru, 0, 0, 0 }, 0x04F9}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_Cyrillic_ze, 0, 0, 0 }, 0x04DF}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_Cyrillic_e, 0, 0, 0 }, 0x04ED}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_Cyrillic_che, 0, 0, 0 }, 0x04F5}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_Cyrillic_A, 0, 0, 0 }, 0x04D2}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_Cyrillic_IE, 0, 0, 0 }, 0x0401}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_Cyrillic_I, 0, 0, 0 }, 0x04E4}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_Cyrillic_O, 0, 0, 0 }, 0x04E6}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_Cyrillic_U, 0, 0, 0 }, 0x04F0}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_Cyrillic_ZHE, 0, 0, 0 }, 0x04DC}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_Cyrillic_YERU, 0, 0, 0 }, 0x04F8}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_Cyrillic_ZE, 0, 0, 0 }, 0x04DE}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_Cyrillic_E, 0, 0, 0 }, 0x04EC}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_Cyrillic_CHE, 0, 0, 0 }, 0x04F4}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_Greek_IOTA, 0, 0, 0 }, 0x03AA}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_Greek_UPSILON, 0, 0, 0 }, 0x03AB}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_Greek_iota, 0, 0, 0 }, 0x03CA}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_Greek_upsilon, 0, 0, 0 }, 0x03CB}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_combining_tilde, SCIM_KEY_O, 0, 0 }, 0x1E4E}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_combining_tilde, SCIM_KEY_o, 0, 0 }, 0x1E4F}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_dead_acute, SCIM_KEY_space, 0, 0 }, 0x0385}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_dead_acute, SCIM_KEY_Greek_iota, 0, 0 }, 0x0390}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_dead_acute, SCIM_KEY_Greek_upsilon, 0, 0 }, 0x03B0}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_dead_tilde, SCIM_KEY_O, 0, 0 }, 0x1E4E}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_dead_tilde, SCIM_KEY_o, 0, 0 }, 0x1E4F}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_dead_macron, SCIM_KEY_U, 0, 0 }, 0x1E7A}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_dead_macron, SCIM_KEY_u, 0, 0 }, 0x1E7B}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_dead_diaeresis, 0, 0, 0 }, 0x00A8}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_U, 0 }, 0x1E7A}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_u, 0 }, 0x1E7B}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_O, 0 }, 0x1E4E}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_o, 0 }, 0x1E4F}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_U, 0 }, 0x1E7A}, {{SCIM_KEY_dead_diaeresis, SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_u, 0 }, 0x1E7B}, {{SCIM_KEY_dead_diaeresis, 0x10004d8, 0, 0, 0 }, 0x04DA}, {{SCIM_KEY_dead_diaeresis, 0x10004d9, 0, 0, 0 }, 0x04DB}, {{SCIM_KEY_dead_diaeresis, 0x10004e8, 0, 0, 0 }, 0x04EA}, {{SCIM_KEY_dead_diaeresis, 0x10004e9, 0, 0, 0 }, 0x04EB}, {{SCIM_KEY_dead_abovering, SCIM_KEY_space, 0, 0, 0 }, 0x02DA}, {{SCIM_KEY_dead_abovering, SCIM_KEY_A, 0, 0, 0 }, 0x00C5}, {{SCIM_KEY_dead_abovering, SCIM_KEY_U, 0, 0, 0 }, 0x016E}, {{SCIM_KEY_dead_abovering, SCIM_KEY_a, 0, 0, 0 }, 0x00E5}, {{SCIM_KEY_dead_abovering, SCIM_KEY_u, 0, 0, 0 }, 0x016F}, {{SCIM_KEY_dead_abovering, SCIM_KEY_w, 0, 0, 0 }, 0x1E98}, {{SCIM_KEY_dead_abovering, SCIM_KEY_y, 0, 0, 0 }, 0x1E99}, {{SCIM_KEY_dead_abovering, SCIM_KEY_dead_abovering, 0, 0, 0 }, 0x00B0}, {{SCIM_KEY_dead_doubleacute, SCIM_KEY_space, 0, 0, 0 }, 0x02DD}, {{SCIM_KEY_dead_doubleacute, SCIM_KEY_O, 0, 0, 0 }, 0x0150}, {{SCIM_KEY_dead_doubleacute, SCIM_KEY_U, 0, 0, 0 }, 0x0170}, {{SCIM_KEY_dead_doubleacute, SCIM_KEY_o, 0, 0, 0 }, 0x0151}, {{SCIM_KEY_dead_doubleacute, SCIM_KEY_u, 0, 0, 0 }, 0x0171}, {{SCIM_KEY_dead_doubleacute, SCIM_KEY_Cyrillic_u, 0, 0, 0 }, 0x04F3}, {{SCIM_KEY_dead_doubleacute, SCIM_KEY_Cyrillic_U, 0, 0, 0 }, 0x04F2}, {{SCIM_KEY_dead_doubleacute, SCIM_KEY_dead_doubleacute, 0, 0, 0 }, 0x02DD}, {{SCIM_KEY_dead_caron, SCIM_KEY_space, 0, 0, 0 }, 0x02C7}, {{SCIM_KEY_dead_caron, SCIM_KEY_A, 0, 0, 0 }, 0x01CD}, {{SCIM_KEY_dead_caron, SCIM_KEY_C, 0, 0, 0 }, 0x010C}, {{SCIM_KEY_dead_caron, SCIM_KEY_D, 0, 0, 0 }, 0x010E}, {{SCIM_KEY_dead_caron, SCIM_KEY_E, 0, 0, 0 }, 0x011A}, {{SCIM_KEY_dead_caron, SCIM_KEY_G, 0, 0, 0 }, 0x01E6}, {{SCIM_KEY_dead_caron, SCIM_KEY_H, 0, 0, 0 }, 0x021E}, {{SCIM_KEY_dead_caron, SCIM_KEY_I, 0, 0, 0 }, 0x01CF}, {{SCIM_KEY_dead_caron, SCIM_KEY_K, 0, 0, 0 }, 0x01E8}, {{SCIM_KEY_dead_caron, SCIM_KEY_L, 0, 0, 0 }, 0x013D}, {{SCIM_KEY_dead_caron, SCIM_KEY_N, 0, 0, 0 }, 0x0147}, {{SCIM_KEY_dead_caron, SCIM_KEY_O, 0, 0, 0 }, 0x01D1}, {{SCIM_KEY_dead_caron, SCIM_KEY_R, 0, 0, 0 }, 0x0158}, {{SCIM_KEY_dead_caron, SCIM_KEY_S, 0, 0, 0 }, 0x0160}, {{SCIM_KEY_dead_caron, SCIM_KEY_T, 0, 0, 0 }, 0x0164}, {{SCIM_KEY_dead_caron, SCIM_KEY_U, 0, 0, 0 }, 0x01D3}, {{SCIM_KEY_dead_caron, SCIM_KEY_Z, 0, 0, 0 }, 0x017D}, {{SCIM_KEY_dead_caron, SCIM_KEY_a, 0, 0, 0 }, 0x01CE}, {{SCIM_KEY_dead_caron, SCIM_KEY_c, 0, 0, 0 }, 0x010D}, {{SCIM_KEY_dead_caron, SCIM_KEY_d, 0, 0, 0 }, 0x010F}, {{SCIM_KEY_dead_caron, SCIM_KEY_e, 0, 0, 0 }, 0x011B}, {{SCIM_KEY_dead_caron, SCIM_KEY_g, 0, 0, 0 }, 0x01E7}, {{SCIM_KEY_dead_caron, SCIM_KEY_h, 0, 0, 0 }, 0x021F}, {{SCIM_KEY_dead_caron, SCIM_KEY_i, 0, 0, 0 }, 0x01D0}, {{SCIM_KEY_dead_caron, SCIM_KEY_j, 0, 0, 0 }, 0x01F0}, {{SCIM_KEY_dead_caron, SCIM_KEY_k, 0, 0, 0 }, 0x01E9}, {{SCIM_KEY_dead_caron, SCIM_KEY_l, 0, 0, 0 }, 0x013E}, {{SCIM_KEY_dead_caron, SCIM_KEY_n, 0, 0, 0 }, 0x0148}, {{SCIM_KEY_dead_caron, SCIM_KEY_o, 0, 0, 0 }, 0x01D2}, {{SCIM_KEY_dead_caron, SCIM_KEY_r, 0, 0, 0 }, 0x0159}, {{SCIM_KEY_dead_caron, SCIM_KEY_s, 0, 0, 0 }, 0x0161}, {{SCIM_KEY_dead_caron, SCIM_KEY_t, 0, 0, 0 }, 0x0165}, {{SCIM_KEY_dead_caron, SCIM_KEY_u, 0, 0, 0 }, 0x01D4}, {{SCIM_KEY_dead_caron, SCIM_KEY_z, 0, 0, 0 }, 0x017E}, {{SCIM_KEY_dead_caron, SCIM_KEY_Udiaeresis, 0, 0, 0 }, 0x01D9}, {{SCIM_KEY_dead_caron, SCIM_KEY_udiaeresis, 0, 0, 0 }, 0x01DA}, {{SCIM_KEY_dead_caron, SCIM_KEY_caron, 0, 0, 0 }, 0x02C7}, {{SCIM_KEY_dead_caron, SCIM_KEY_dead_diaeresis, SCIM_KEY_U, 0, 0 }, 0x01D9}, {{SCIM_KEY_dead_caron, SCIM_KEY_dead_diaeresis, SCIM_KEY_u, 0, 0 }, 0x01DA}, {{SCIM_KEY_dead_caron, SCIM_KEY_dead_caron, 0, 0, 0 }, 0x02C7}, {{SCIM_KEY_dead_caron, SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_U, 0 }, 0x01D9}, {{SCIM_KEY_dead_caron, SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_u, 0 }, 0x01DA}, {{SCIM_KEY_dead_caron, 0x10001b7, 0, 0, 0 }, 0x01EE}, {{SCIM_KEY_dead_caron, 0x1000292, 0, 0, 0 }, 0x01EF}, {{SCIM_KEY_dead_cedilla, SCIM_KEY_space, 0, 0, 0 }, 0x00B8}, {{SCIM_KEY_dead_cedilla, SCIM_KEY_comma, 0, 0, 0 }, 0x00B8}, {{SCIM_KEY_dead_cedilla, SCIM_KEY_minus, 0, 0, 0 }, 0x00AC}, {{SCIM_KEY_dead_cedilla, SCIM_KEY_C, 0, 0, 0 }, 0x00C7}, {{SCIM_KEY_dead_cedilla, SCIM_KEY_D, 0, 0, 0 }, 0x1E10}, {{SCIM_KEY_dead_cedilla, SCIM_KEY_E, 0, 0, 0 }, 0x0228}, {{SCIM_KEY_dead_cedilla, SCIM_KEY_G, 0, 0, 0 }, 0x0122}, {{SCIM_KEY_dead_cedilla, SCIM_KEY_H, 0, 0, 0 }, 0x1E28}, {{SCIM_KEY_dead_cedilla, SCIM_KEY_K, 0, 0, 0 }, 0x0136}, {{SCIM_KEY_dead_cedilla, SCIM_KEY_L, 0, 0, 0 }, 0x013B}, {{SCIM_KEY_dead_cedilla, SCIM_KEY_N, 0, 0, 0 }, 0x0145}, {{SCIM_KEY_dead_cedilla, SCIM_KEY_R, 0, 0, 0 }, 0x0156}, {{SCIM_KEY_dead_cedilla, SCIM_KEY_S, 0, 0, 0 }, 0x015E}, {{SCIM_KEY_dead_cedilla, SCIM_KEY_T, 0, 0, 0 }, 0x0162}, {{SCIM_KEY_dead_cedilla, SCIM_KEY_c, 0, 0, 0 }, 0x00E7}, {{SCIM_KEY_dead_cedilla, SCIM_KEY_d, 0, 0, 0 }, 0x1E11}, {{SCIM_KEY_dead_cedilla, SCIM_KEY_e, 0, 0, 0 }, 0x0229}, {{SCIM_KEY_dead_cedilla, SCIM_KEY_g, 0, 0, 0 }, 0x0123}, {{SCIM_KEY_dead_cedilla, SCIM_KEY_h, 0, 0, 0 }, 0x1E29}, {{SCIM_KEY_dead_cedilla, SCIM_KEY_k, 0, 0, 0 }, 0x0137}, {{SCIM_KEY_dead_cedilla, SCIM_KEY_l, 0, 0, 0 }, 0x013C}, {{SCIM_KEY_dead_cedilla, SCIM_KEY_n, 0, 0, 0 }, 0x0146}, {{SCIM_KEY_dead_cedilla, SCIM_KEY_r, 0, 0, 0 }, 0x0157}, {{SCIM_KEY_dead_cedilla, SCIM_KEY_s, 0, 0, 0 }, 0x015F}, {{SCIM_KEY_dead_cedilla, SCIM_KEY_t, 0, 0, 0 }, 0x0163}, {{SCIM_KEY_dead_cedilla, SCIM_KEY_cedilla, 0, 0, 0 }, 0x00B8}, {{SCIM_KEY_dead_cedilla, SCIM_KEY_dead_cedilla, 0, 0, 0 }, 0x00B8}, {{SCIM_KEY_dead_ogonek, SCIM_KEY_space, 0, 0, 0 }, 0x02DB}, {{SCIM_KEY_dead_ogonek, SCIM_KEY_A, 0, 0, 0 }, 0x0104}, {{SCIM_KEY_dead_ogonek, SCIM_KEY_E, 0, 0, 0 }, 0x0118}, {{SCIM_KEY_dead_ogonek, SCIM_KEY_I, 0, 0, 0 }, 0x012E}, {{SCIM_KEY_dead_ogonek, SCIM_KEY_O, 0, 0, 0 }, 0x01EA}, {{SCIM_KEY_dead_ogonek, SCIM_KEY_U, 0, 0, 0 }, 0x0172}, {{SCIM_KEY_dead_ogonek, SCIM_KEY_a, 0, 0, 0 }, 0x0105}, {{SCIM_KEY_dead_ogonek, SCIM_KEY_e, 0, 0, 0 }, 0x0119}, {{SCIM_KEY_dead_ogonek, SCIM_KEY_i, 0, 0, 0 }, 0x012F}, {{SCIM_KEY_dead_ogonek, SCIM_KEY_o, 0, 0, 0 }, 0x01EB}, {{SCIM_KEY_dead_ogonek, SCIM_KEY_u, 0, 0, 0 }, 0x0173}, {{SCIM_KEY_dead_ogonek, SCIM_KEY_ogonek, 0, 0, 0 }, 0x02DB}, {{SCIM_KEY_dead_ogonek, SCIM_KEY_dead_ogonek, 0, 0, 0 }, 0x02DB}, {{SCIM_KEY_dead_iota, SCIM_KEY_Greek_alphaaccent, 0, 0, 0 }, 0x1FB4}, {{SCIM_KEY_dead_iota, SCIM_KEY_Greek_etaaccent, 0, 0, 0 }, 0x1FC4}, {{SCIM_KEY_dead_iota, SCIM_KEY_Greek_omegaaccent, 0, 0, 0 }, 0x1FF4}, {{SCIM_KEY_dead_iota, SCIM_KEY_Greek_ALPHA, 0, 0, 0 }, 0x1FBC}, {{SCIM_KEY_dead_iota, SCIM_KEY_Greek_ETA, 0, 0, 0 }, 0x1FCC}, {{SCIM_KEY_dead_iota, SCIM_KEY_Greek_OMEGA, 0, 0, 0 }, 0x1FFC}, {{SCIM_KEY_dead_iota, SCIM_KEY_Greek_alpha, 0, 0, 0 }, 0x1FB3}, {{SCIM_KEY_dead_iota, SCIM_KEY_Greek_eta, 0, 0, 0 }, 0x1FC3}, {{SCIM_KEY_dead_iota, SCIM_KEY_Greek_omega, 0, 0, 0 }, 0x1FF3}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_grave, SCIM_KEY_Greek_alpha, 0, 0 }, 0x1FB2}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_grave, SCIM_KEY_Greek_eta, 0, 0 }, 0x1FC2}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_grave, SCIM_KEY_Greek_omega, 0, 0 }, 0x1FF2}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_ALPHA }, 0x1F8B}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_ETA }, 0x1F9B}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_OMEGA }, 0x1FAB}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_alpha }, 0x1F83}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_eta }, 0x1F93}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_omega }, 0x1FA3}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_ALPHA }, 0x1F8A}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_ETA }, 0x1F9A}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_OMEGA }, 0x1FAA}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_alpha }, 0x1F82}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_eta }, 0x1F92}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_omega }, 0x1FA2}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_grave, 0x1000313, SCIM_KEY_Greek_ALPHA, 0 }, 0x1F8A}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_grave, 0x1000313, SCIM_KEY_Greek_ETA, 0 }, 0x1F9A}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_grave, 0x1000313, SCIM_KEY_Greek_OMEGA, 0 }, 0x1FAA}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_grave, 0x1000313, SCIM_KEY_Greek_alpha, 0 }, 0x1F82}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_grave, 0x1000313, SCIM_KEY_Greek_eta, 0 }, 0x1F92}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_grave, 0x1000313, SCIM_KEY_Greek_omega, 0 }, 0x1FA2}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_grave, 0x1000314, SCIM_KEY_Greek_ALPHA, 0 }, 0x1F8B}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_grave, 0x1000314, SCIM_KEY_Greek_ETA, 0 }, 0x1F9B}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_grave, 0x1000314, SCIM_KEY_Greek_OMEGA, 0 }, 0x1FAB}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_grave, 0x1000314, SCIM_KEY_Greek_alpha, 0 }, 0x1F83}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_grave, 0x1000314, SCIM_KEY_Greek_eta, 0 }, 0x1F93}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_grave, 0x1000314, SCIM_KEY_Greek_omega, 0 }, 0x1FA3}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_grave, 0x1001f00, 0, 0 }, 0x1F82}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_grave, 0x1001f01, 0, 0 }, 0x1F83}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_grave, 0x1001f08, 0, 0 }, 0x1F8A}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_grave, 0x1001f09, 0, 0 }, 0x1F8B}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_grave, 0x1001f20, 0, 0 }, 0x1F92}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_grave, 0x1001f21, 0, 0 }, 0x1F93}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_grave, 0x1001f28, 0, 0 }, 0x1F9A}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_grave, 0x1001f29, 0, 0 }, 0x1F9B}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_grave, 0x1001f60, 0, 0 }, 0x1FA2}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_grave, 0x1001f61, 0, 0 }, 0x1FA3}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_grave, 0x1001f68, 0, 0 }, 0x1FAA}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_grave, 0x1001f69, 0, 0 }, 0x1FAB}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_acute, SCIM_KEY_Greek_alpha, 0, 0 }, 0x1FB4}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_acute, SCIM_KEY_Greek_eta, 0, 0 }, 0x1FC4}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_acute, SCIM_KEY_Greek_omega, 0, 0 }, 0x1FF4}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_ALPHA }, 0x1F8D}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_ETA }, 0x1F9D}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_OMEGA }, 0x1FAD}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_alpha }, 0x1F85}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_eta }, 0x1F95}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_omega }, 0x1FA5}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_ALPHA }, 0x1F8C}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_ETA }, 0x1F9C}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_OMEGA }, 0x1FAC}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_alpha }, 0x1F84}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_eta }, 0x1F94}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_omega }, 0x1FA4}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_acute, 0x1000313, SCIM_KEY_Greek_ALPHA, 0 }, 0x1F8C}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_acute, 0x1000313, SCIM_KEY_Greek_ETA, 0 }, 0x1F9C}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_acute, 0x1000313, SCIM_KEY_Greek_OMEGA, 0 }, 0x1FAC}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_acute, 0x1000313, SCIM_KEY_Greek_alpha, 0 }, 0x1F84}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_acute, 0x1000313, SCIM_KEY_Greek_eta, 0 }, 0x1F94}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_acute, 0x1000313, SCIM_KEY_Greek_omega, 0 }, 0x1FA4}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_acute, 0x1000314, SCIM_KEY_Greek_ALPHA, 0 }, 0x1F8D}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_acute, 0x1000314, SCIM_KEY_Greek_ETA, 0 }, 0x1F9D}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_acute, 0x1000314, SCIM_KEY_Greek_OMEGA, 0 }, 0x1FAD}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_acute, 0x1000314, SCIM_KEY_Greek_alpha, 0 }, 0x1F85}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_acute, 0x1000314, SCIM_KEY_Greek_eta, 0 }, 0x1F95}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_acute, 0x1000314, SCIM_KEY_Greek_omega, 0 }, 0x1FA5}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_acute, 0x1001f00, 0, 0 }, 0x1F84}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_acute, 0x1001f01, 0, 0 }, 0x1F85}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_acute, 0x1001f08, 0, 0 }, 0x1F8C}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_acute, 0x1001f09, 0, 0 }, 0x1F8D}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_acute, 0x1001f20, 0, 0 }, 0x1F94}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_acute, 0x1001f21, 0, 0 }, 0x1F95}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_acute, 0x1001f28, 0, 0 }, 0x1F9C}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_acute, 0x1001f29, 0, 0 }, 0x1F9D}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_acute, 0x1001f60, 0, 0 }, 0x1FA4}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_acute, 0x1001f61, 0, 0 }, 0x1FA5}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_acute, 0x1001f68, 0, 0 }, 0x1FAC}, {{SCIM_KEY_dead_iota, SCIM_KEY_combining_acute, 0x1001f69, 0, 0 }, 0x1FAD}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_grave, SCIM_KEY_Greek_alpha, 0, 0 }, 0x1FB2}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_grave, SCIM_KEY_Greek_eta, 0, 0 }, 0x1FC2}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_grave, SCIM_KEY_Greek_omega, 0, 0 }, 0x1FF2}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_ALPHA }, 0x1F8B}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_ETA }, 0x1F9B}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_OMEGA }, 0x1FAB}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_alpha }, 0x1F83}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_eta }, 0x1F93}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_omega }, 0x1FA3}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_ALPHA }, 0x1F8A}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_ETA }, 0x1F9A}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_OMEGA }, 0x1FAA}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_alpha }, 0x1F82}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_eta }, 0x1F92}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_grave, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_omega }, 0x1FA2}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_grave, 0x1000313, SCIM_KEY_Greek_ALPHA, 0 }, 0x1F8A}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_grave, 0x1000313, SCIM_KEY_Greek_ETA, 0 }, 0x1F9A}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_grave, 0x1000313, SCIM_KEY_Greek_OMEGA, 0 }, 0x1FAA}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_grave, 0x1000313, SCIM_KEY_Greek_alpha, 0 }, 0x1F82}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_grave, 0x1000313, SCIM_KEY_Greek_eta, 0 }, 0x1F92}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_grave, 0x1000313, SCIM_KEY_Greek_omega, 0 }, 0x1FA2}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_grave, 0x1000314, SCIM_KEY_Greek_ALPHA, 0 }, 0x1F8B}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_grave, 0x1000314, SCIM_KEY_Greek_ETA, 0 }, 0x1F9B}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_grave, 0x1000314, SCIM_KEY_Greek_OMEGA, 0 }, 0x1FAB}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_grave, 0x1000314, SCIM_KEY_Greek_alpha, 0 }, 0x1F83}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_grave, 0x1000314, SCIM_KEY_Greek_eta, 0 }, 0x1F93}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_grave, 0x1000314, SCIM_KEY_Greek_omega, 0 }, 0x1FA3}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_grave, 0x1001f00, 0, 0 }, 0x1F82}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_grave, 0x1001f01, 0, 0 }, 0x1F83}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_grave, 0x1001f08, 0, 0 }, 0x1F8A}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_grave, 0x1001f09, 0, 0 }, 0x1F8B}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_grave, 0x1001f20, 0, 0 }, 0x1F92}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_grave, 0x1001f21, 0, 0 }, 0x1F93}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_grave, 0x1001f28, 0, 0 }, 0x1F9A}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_grave, 0x1001f29, 0, 0 }, 0x1F9B}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_grave, 0x1001f60, 0, 0 }, 0x1FA2}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_grave, 0x1001f61, 0, 0 }, 0x1FA3}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_grave, 0x1001f68, 0, 0 }, 0x1FAA}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_grave, 0x1001f69, 0, 0 }, 0x1FAB}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_acute, SCIM_KEY_Greek_alpha, 0, 0 }, 0x1FB4}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_acute, SCIM_KEY_Greek_eta, 0, 0 }, 0x1FC4}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_acute, SCIM_KEY_Greek_omega, 0, 0 }, 0x1FF4}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_ALPHA }, 0x1F8D}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_ETA }, 0x1F9D}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_OMEGA }, 0x1FAD}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_alpha }, 0x1F85}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_eta }, 0x1F95}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_omega }, 0x1FA5}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_ALPHA }, 0x1F8C}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_ETA }, 0x1F9C}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_OMEGA }, 0x1FAC}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_alpha }, 0x1F84}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_eta }, 0x1F94}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_acute, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_omega }, 0x1FA4}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_acute, 0x1000313, SCIM_KEY_Greek_ALPHA, 0 }, 0x1F8C}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_acute, 0x1000313, SCIM_KEY_Greek_ETA, 0 }, 0x1F9C}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_acute, 0x1000313, SCIM_KEY_Greek_OMEGA, 0 }, 0x1FAC}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_acute, 0x1000313, SCIM_KEY_Greek_alpha, 0 }, 0x1F84}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_acute, 0x1000313, SCIM_KEY_Greek_eta, 0 }, 0x1F94}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_acute, 0x1000313, SCIM_KEY_Greek_omega, 0 }, 0x1FA4}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_acute, 0x1000314, SCIM_KEY_Greek_ALPHA, 0 }, 0x1F8D}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_acute, 0x1000314, SCIM_KEY_Greek_ETA, 0 }, 0x1F9D}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_acute, 0x1000314, SCIM_KEY_Greek_OMEGA, 0 }, 0x1FAD}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_acute, 0x1000314, SCIM_KEY_Greek_alpha, 0 }, 0x1F85}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_acute, 0x1000314, SCIM_KEY_Greek_eta, 0 }, 0x1F95}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_acute, 0x1000314, SCIM_KEY_Greek_omega, 0 }, 0x1FA5}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_acute, 0x1001f00, 0, 0 }, 0x1F84}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_acute, 0x1001f01, 0, 0 }, 0x1F85}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_acute, 0x1001f08, 0, 0 }, 0x1F8C}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_acute, 0x1001f09, 0, 0 }, 0x1F8D}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_acute, 0x1001f20, 0, 0 }, 0x1F94}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_acute, 0x1001f21, 0, 0 }, 0x1F95}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_acute, 0x1001f28, 0, 0 }, 0x1F9C}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_acute, 0x1001f29, 0, 0 }, 0x1F9D}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_acute, 0x1001f60, 0, 0 }, 0x1FA4}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_acute, 0x1001f61, 0, 0 }, 0x1FA5}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_acute, 0x1001f68, 0, 0 }, 0x1FAC}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_acute, 0x1001f69, 0, 0 }, 0x1FAD}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_tilde, SCIM_KEY_Greek_alpha, 0, 0 }, 0x1FB7}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_tilde, SCIM_KEY_Greek_eta, 0, 0 }, 0x1FC7}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_tilde, SCIM_KEY_Greek_omega, 0, 0 }, 0x1FF7}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_tilde, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_ALPHA }, 0x1F8F}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_tilde, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_ETA }, 0x1F9F}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_tilde, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_OMEGA }, 0x1FAF}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_tilde, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_alpha }, 0x1F87}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_tilde, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_eta }, 0x1F97}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_tilde, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_omega }, 0x1FA7}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_tilde, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_ALPHA }, 0x1F8E}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_tilde, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_ETA }, 0x1F9E}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_tilde, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_OMEGA }, 0x1FAE}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_tilde, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_alpha }, 0x1F86}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_tilde, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_eta }, 0x1F96}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_tilde, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_omega }, 0x1FA6}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_tilde, 0x1000313, SCIM_KEY_Greek_ALPHA, 0 }, 0x1F8E}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_tilde, 0x1000313, SCIM_KEY_Greek_ETA, 0 }, 0x1F9E}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_tilde, 0x1000313, SCIM_KEY_Greek_OMEGA, 0 }, 0x1FAE}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_tilde, 0x1000313, SCIM_KEY_Greek_alpha, 0 }, 0x1F86}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_tilde, 0x1000313, SCIM_KEY_Greek_eta, 0 }, 0x1F96}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_tilde, 0x1000313, SCIM_KEY_Greek_omega, 0 }, 0x1FA6}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_tilde, 0x1000314, SCIM_KEY_Greek_ALPHA, 0 }, 0x1F8F}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_tilde, 0x1000314, SCIM_KEY_Greek_ETA, 0 }, 0x1F9F}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_tilde, 0x1000314, SCIM_KEY_Greek_OMEGA, 0 }, 0x1FAF}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_tilde, 0x1000314, SCIM_KEY_Greek_alpha, 0 }, 0x1F87}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_tilde, 0x1000314, SCIM_KEY_Greek_eta, 0 }, 0x1F97}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_tilde, 0x1000314, SCIM_KEY_Greek_omega, 0 }, 0x1FA7}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_tilde, 0x1001f00, 0, 0 }, 0x1F86}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_tilde, 0x1001f01, 0, 0 }, 0x1F87}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_tilde, 0x1001f08, 0, 0 }, 0x1F8E}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_tilde, 0x1001f09, 0, 0 }, 0x1F8F}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_tilde, 0x1001f20, 0, 0 }, 0x1F96}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_tilde, 0x1001f21, 0, 0 }, 0x1F97}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_tilde, 0x1001f28, 0, 0 }, 0x1F9E}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_tilde, 0x1001f29, 0, 0 }, 0x1F9F}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_tilde, 0x1001f60, 0, 0 }, 0x1FA6}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_tilde, 0x1001f61, 0, 0 }, 0x1FA7}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_tilde, 0x1001f68, 0, 0 }, 0x1FAE}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_tilde, 0x1001f69, 0, 0 }, 0x1FAF}, {{SCIM_KEY_dead_iota, SCIM_KEY_dead_iota, 0, 0, 0 }, 0x037A}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_parenleft, SCIM_KEY_Greek_ALPHA }, 0x1F8D}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_parenleft, SCIM_KEY_Greek_ETA }, 0x1F9D}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_parenleft, SCIM_KEY_Greek_OMEGA }, 0x1FAD}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_parenleft, SCIM_KEY_Greek_alpha }, 0x1F85}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_parenleft, SCIM_KEY_Greek_eta }, 0x1F95}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_parenleft, SCIM_KEY_Greek_omega }, 0x1FA5}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_parenright, SCIM_KEY_Greek_ALPHA }, 0x1F8C}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_parenright, SCIM_KEY_Greek_ETA }, 0x1F9C}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_parenright, SCIM_KEY_Greek_OMEGA }, 0x1FAC}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_parenright, SCIM_KEY_Greek_alpha }, 0x1F84}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_parenright, SCIM_KEY_Greek_eta }, 0x1F94}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_parenright, SCIM_KEY_Greek_omega }, 0x1FA4}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_Greek_alpha, 0 }, 0x1FB4}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_Greek_eta, 0 }, 0x1FC4}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_Greek_omega, 0 }, 0x1FF4}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1000313, SCIM_KEY_Greek_ALPHA }, 0x1F8C}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1000313, SCIM_KEY_Greek_ETA }, 0x1F9C}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1000313, SCIM_KEY_Greek_OMEGA }, 0x1FAC}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1000313, SCIM_KEY_Greek_alpha }, 0x1F84}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1000313, SCIM_KEY_Greek_eta }, 0x1F94}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1000313, SCIM_KEY_Greek_omega }, 0x1FA4}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1000314, SCIM_KEY_Greek_ALPHA }, 0x1F8D}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1000314, SCIM_KEY_Greek_ETA }, 0x1F9D}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1000314, SCIM_KEY_Greek_OMEGA }, 0x1FAD}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1000314, SCIM_KEY_Greek_alpha }, 0x1F85}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1000314, SCIM_KEY_Greek_eta }, 0x1F95}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1000314, SCIM_KEY_Greek_omega }, 0x1FA5}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1001f00, 0 }, 0x1F84}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1001f01, 0 }, 0x1F85}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1001f08, 0 }, 0x1F8C}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1001f09, 0 }, 0x1F8D}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1001f20, 0 }, 0x1F94}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1001f21, 0 }, 0x1F95}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1001f28, 0 }, 0x1F9C}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1001f29, 0 }, 0x1F9D}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1001f60, 0 }, 0x1FA4}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1001f61, 0 }, 0x1FA5}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1001f68, 0 }, 0x1FAC}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1001f69, 0 }, 0x1FAD}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_ALPHA, 0 }, 0x1F89}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_ETA, 0 }, 0x1F99}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_OMEGA, 0 }, 0x1FA9}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_alpha, 0 }, 0x1F81}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_eta, 0 }, 0x1F91}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_omega, 0 }, 0x1FA1}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_ALPHA, 0 }, 0x1F88}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_ETA, 0 }, 0x1F98}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_OMEGA, 0 }, 0x1FA8}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_alpha, 0 }, 0x1F80}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_eta, 0 }, 0x1F90}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_omega, 0 }, 0x1FA0}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_parenleft, SCIM_KEY_Greek_ALPHA }, 0x1F8B}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_parenleft, SCIM_KEY_Greek_ETA }, 0x1F9B}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_parenleft, SCIM_KEY_Greek_OMEGA }, 0x1FAB}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_parenleft, SCIM_KEY_Greek_alpha }, 0x1F83}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_parenleft, SCIM_KEY_Greek_eta }, 0x1F93}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_parenleft, SCIM_KEY_Greek_omega }, 0x1FA3}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_parenright, SCIM_KEY_Greek_ALPHA }, 0x1F8A}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_parenright, SCIM_KEY_Greek_ETA }, 0x1F9A}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_parenright, SCIM_KEY_Greek_OMEGA }, 0x1FAA}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_parenright, SCIM_KEY_Greek_alpha }, 0x1F82}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_parenright, SCIM_KEY_Greek_eta }, 0x1F92}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_parenright, SCIM_KEY_Greek_omega }, 0x1FA2}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_Greek_alpha, 0 }, 0x1FB2}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_Greek_eta, 0 }, 0x1FC2}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_Greek_omega, 0 }, 0x1FF2}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1000313, SCIM_KEY_Greek_ALPHA }, 0x1F8A}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1000313, SCIM_KEY_Greek_ETA }, 0x1F9A}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1000313, SCIM_KEY_Greek_OMEGA }, 0x1FAA}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1000313, SCIM_KEY_Greek_alpha }, 0x1F82}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1000313, SCIM_KEY_Greek_eta }, 0x1F92}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1000313, SCIM_KEY_Greek_omega }, 0x1FA2}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1000314, SCIM_KEY_Greek_ALPHA }, 0x1F8B}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1000314, SCIM_KEY_Greek_ETA }, 0x1F9B}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1000314, SCIM_KEY_Greek_OMEGA }, 0x1FAB}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1000314, SCIM_KEY_Greek_alpha }, 0x1F83}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1000314, SCIM_KEY_Greek_eta }, 0x1F93}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1000314, SCIM_KEY_Greek_omega }, 0x1FA3}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1001f00, 0 }, 0x1F82}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1001f01, 0 }, 0x1F83}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1001f08, 0 }, 0x1F8A}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1001f09, 0 }, 0x1F8B}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1001f20, 0 }, 0x1F92}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1001f21, 0 }, 0x1F93}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1001f28, 0 }, 0x1F9A}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1001f29, 0 }, 0x1F9B}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1001f60, 0 }, 0x1FA2}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1001f61, 0 }, 0x1FA3}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1001f68, 0 }, 0x1FAA}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1001f69, 0 }, 0x1FAB}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_parenleft, SCIM_KEY_Greek_ALPHA }, 0x1F8F}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_parenleft, SCIM_KEY_Greek_ETA }, 0x1F9F}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_parenleft, SCIM_KEY_Greek_OMEGA }, 0x1FAF}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_parenleft, SCIM_KEY_Greek_alpha }, 0x1F87}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_parenleft, SCIM_KEY_Greek_eta }, 0x1F97}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_parenleft, SCIM_KEY_Greek_omega }, 0x1FA7}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_parenright, SCIM_KEY_Greek_ALPHA }, 0x1F8E}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_parenright, SCIM_KEY_Greek_ETA }, 0x1F9E}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_parenright, SCIM_KEY_Greek_OMEGA }, 0x1FAE}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_parenright, SCIM_KEY_Greek_alpha }, 0x1F86}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_parenright, SCIM_KEY_Greek_eta }, 0x1F96}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_parenright, SCIM_KEY_Greek_omega }, 0x1FA6}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_Greek_alpha, 0 }, 0x1FB7}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_Greek_eta, 0 }, 0x1FC7}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_Greek_omega, 0 }, 0x1FF7}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1000313, SCIM_KEY_Greek_ALPHA }, 0x1F8E}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1000313, SCIM_KEY_Greek_ETA }, 0x1F9E}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1000313, SCIM_KEY_Greek_OMEGA }, 0x1FAE}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1000313, SCIM_KEY_Greek_alpha }, 0x1F86}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1000313, SCIM_KEY_Greek_eta }, 0x1F96}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1000313, SCIM_KEY_Greek_omega }, 0x1FA6}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1000314, SCIM_KEY_Greek_ALPHA }, 0x1F8F}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1000314, SCIM_KEY_Greek_ETA }, 0x1F9F}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1000314, SCIM_KEY_Greek_OMEGA }, 0x1FAF}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1000314, SCIM_KEY_Greek_alpha }, 0x1F87}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1000314, SCIM_KEY_Greek_eta }, 0x1F97}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1000314, SCIM_KEY_Greek_omega }, 0x1FA7}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1001f00, 0 }, 0x1F86}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1001f01, 0 }, 0x1F87}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1001f08, 0 }, 0x1F8E}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1001f09, 0 }, 0x1F8F}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1001f20, 0 }, 0x1F96}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1001f21, 0 }, 0x1F97}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1001f28, 0 }, 0x1F9E}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1001f29, 0 }, 0x1F9F}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1001f60, 0 }, 0x1FA6}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1001f61, 0 }, 0x1FA7}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1001f68, 0 }, 0x1FAE}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1001f69, 0 }, 0x1FAF}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_parenleft, SCIM_KEY_Greek_ALPHA }, 0x1F8D}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_parenleft, SCIM_KEY_Greek_ETA }, 0x1F9D}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_parenleft, SCIM_KEY_Greek_OMEGA }, 0x1FAD}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_parenleft, SCIM_KEY_Greek_alpha }, 0x1F85}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_parenleft, SCIM_KEY_Greek_eta }, 0x1F95}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_parenleft, SCIM_KEY_Greek_omega }, 0x1FA5}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_parenright, SCIM_KEY_Greek_ALPHA }, 0x1F8C}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_parenright, SCIM_KEY_Greek_ETA }, 0x1F9C}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_parenright, SCIM_KEY_Greek_OMEGA }, 0x1FAC}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_parenright, SCIM_KEY_Greek_alpha }, 0x1F84}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_parenright, SCIM_KEY_Greek_eta }, 0x1F94}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_parenright, SCIM_KEY_Greek_omega }, 0x1FA4}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_Greek_alpha, 0 }, 0x1FB4}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_Greek_eta, 0 }, 0x1FC4}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_Greek_omega, 0 }, 0x1FF4}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1000313, SCIM_KEY_Greek_ALPHA }, 0x1F8C}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1000313, SCIM_KEY_Greek_ETA }, 0x1F9C}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1000313, SCIM_KEY_Greek_OMEGA }, 0x1FAC}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1000313, SCIM_KEY_Greek_alpha }, 0x1F84}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1000313, SCIM_KEY_Greek_eta }, 0x1F94}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1000313, SCIM_KEY_Greek_omega }, 0x1FA4}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1000314, SCIM_KEY_Greek_ALPHA }, 0x1F8D}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1000314, SCIM_KEY_Greek_ETA }, 0x1F9D}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1000314, SCIM_KEY_Greek_OMEGA }, 0x1FAD}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1000314, SCIM_KEY_Greek_alpha }, 0x1F85}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1000314, SCIM_KEY_Greek_eta }, 0x1F95}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1000314, SCIM_KEY_Greek_omega }, 0x1FA5}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1001f00, 0 }, 0x1F84}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1001f01, 0 }, 0x1F85}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1001f08, 0 }, 0x1F8C}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1001f09, 0 }, 0x1F8D}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1001f20, 0 }, 0x1F94}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1001f21, 0 }, 0x1F95}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1001f28, 0 }, 0x1F9C}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1001f29, 0 }, 0x1F9D}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1001f60, 0 }, 0x1FA4}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1001f61, 0 }, 0x1FA5}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1001f68, 0 }, 0x1FAC}, {{SCIM_KEY_dead_iota, SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1001f69, 0 }, 0x1FAD}, {{SCIM_KEY_dead_iota, 0x1000313, SCIM_KEY_Greek_ALPHA, 0, 0 }, 0x1F88}, {{SCIM_KEY_dead_iota, 0x1000313, SCIM_KEY_Greek_ETA, 0, 0 }, 0x1F98}, {{SCIM_KEY_dead_iota, 0x1000313, SCIM_KEY_Greek_OMEGA, 0, 0 }, 0x1FA8}, {{SCIM_KEY_dead_iota, 0x1000313, SCIM_KEY_Greek_alpha, 0, 0 }, 0x1F80}, {{SCIM_KEY_dead_iota, 0x1000313, SCIM_KEY_Greek_eta, 0, 0 }, 0x1F90}, {{SCIM_KEY_dead_iota, 0x1000313, SCIM_KEY_Greek_omega, 0, 0 }, 0x1FA0}, {{SCIM_KEY_dead_iota, 0x1000314, SCIM_KEY_Greek_ALPHA, 0, 0 }, 0x1F89}, {{SCIM_KEY_dead_iota, 0x1000314, SCIM_KEY_Greek_ETA, 0, 0 }, 0x1F99}, {{SCIM_KEY_dead_iota, 0x1000314, SCIM_KEY_Greek_OMEGA, 0, 0 }, 0x1FA9}, {{SCIM_KEY_dead_iota, 0x1000314, SCIM_KEY_Greek_alpha, 0, 0 }, 0x1F81}, {{SCIM_KEY_dead_iota, 0x1000314, SCIM_KEY_Greek_eta, 0, 0 }, 0x1F91}, {{SCIM_KEY_dead_iota, 0x1000314, SCIM_KEY_Greek_omega, 0, 0 }, 0x1FA1}, {{SCIM_KEY_dead_iota, 0x1000342, SCIM_KEY_Greek_alpha, 0, 0 }, 0x1FB7}, {{SCIM_KEY_dead_iota, 0x1000342, SCIM_KEY_Greek_eta, 0, 0 }, 0x1FC7}, {{SCIM_KEY_dead_iota, 0x1000342, SCIM_KEY_Greek_omega, 0, 0 }, 0x1FF7}, {{SCIM_KEY_dead_iota, 0x1000342, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_ALPHA }, 0x1F8F}, {{SCIM_KEY_dead_iota, 0x1000342, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_ETA }, 0x1F9F}, {{SCIM_KEY_dead_iota, 0x1000342, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_OMEGA }, 0x1FAF}, {{SCIM_KEY_dead_iota, 0x1000342, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_alpha }, 0x1F87}, {{SCIM_KEY_dead_iota, 0x1000342, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_eta }, 0x1F97}, {{SCIM_KEY_dead_iota, 0x1000342, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_omega }, 0x1FA7}, {{SCIM_KEY_dead_iota, 0x1000342, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_ALPHA }, 0x1F8E}, {{SCIM_KEY_dead_iota, 0x1000342, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_ETA }, 0x1F9E}, {{SCIM_KEY_dead_iota, 0x1000342, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_OMEGA }, 0x1FAE}, {{SCIM_KEY_dead_iota, 0x1000342, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_alpha }, 0x1F86}, {{SCIM_KEY_dead_iota, 0x1000342, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_eta }, 0x1F96}, {{SCIM_KEY_dead_iota, 0x1000342, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_omega }, 0x1FA6}, {{SCIM_KEY_dead_iota, 0x1000342, 0x1000313, SCIM_KEY_Greek_ALPHA, 0 }, 0x1F8E}, {{SCIM_KEY_dead_iota, 0x1000342, 0x1000313, SCIM_KEY_Greek_ETA, 0 }, 0x1F9E}, {{SCIM_KEY_dead_iota, 0x1000342, 0x1000313, SCIM_KEY_Greek_OMEGA, 0 }, 0x1FAE}, {{SCIM_KEY_dead_iota, 0x1000342, 0x1000313, SCIM_KEY_Greek_alpha, 0 }, 0x1F86}, {{SCIM_KEY_dead_iota, 0x1000342, 0x1000313, SCIM_KEY_Greek_eta, 0 }, 0x1F96}, {{SCIM_KEY_dead_iota, 0x1000342, 0x1000313, SCIM_KEY_Greek_omega, 0 }, 0x1FA6}, {{SCIM_KEY_dead_iota, 0x1000342, 0x1000314, SCIM_KEY_Greek_ALPHA, 0 }, 0x1F8F}, {{SCIM_KEY_dead_iota, 0x1000342, 0x1000314, SCIM_KEY_Greek_ETA, 0 }, 0x1F9F}, {{SCIM_KEY_dead_iota, 0x1000342, 0x1000314, SCIM_KEY_Greek_OMEGA, 0 }, 0x1FAF}, {{SCIM_KEY_dead_iota, 0x1000342, 0x1000314, SCIM_KEY_Greek_alpha, 0 }, 0x1F87}, {{SCIM_KEY_dead_iota, 0x1000342, 0x1000314, SCIM_KEY_Greek_eta, 0 }, 0x1F97}, {{SCIM_KEY_dead_iota, 0x1000342, 0x1000314, SCIM_KEY_Greek_omega, 0 }, 0x1FA7}, {{SCIM_KEY_dead_iota, 0x1000342, 0x1001f00, 0, 0 }, 0x1F86}, {{SCIM_KEY_dead_iota, 0x1000342, 0x1001f01, 0, 0 }, 0x1F87}, {{SCIM_KEY_dead_iota, 0x1000342, 0x1001f08, 0, 0 }, 0x1F8E}, {{SCIM_KEY_dead_iota, 0x1000342, 0x1001f09, 0, 0 }, 0x1F8F}, {{SCIM_KEY_dead_iota, 0x1000342, 0x1001f20, 0, 0 }, 0x1F96}, {{SCIM_KEY_dead_iota, 0x1000342, 0x1001f21, 0, 0 }, 0x1F97}, {{SCIM_KEY_dead_iota, 0x1000342, 0x1001f28, 0, 0 }, 0x1F9E}, {{SCIM_KEY_dead_iota, 0x1000342, 0x1001f29, 0, 0 }, 0x1F9F}, {{SCIM_KEY_dead_iota, 0x1000342, 0x1001f60, 0, 0 }, 0x1FA6}, {{SCIM_KEY_dead_iota, 0x1000342, 0x1001f61, 0, 0 }, 0x1FA7}, {{SCIM_KEY_dead_iota, 0x1000342, 0x1001f68, 0, 0 }, 0x1FAE}, {{SCIM_KEY_dead_iota, 0x1000342, 0x1001f69, 0, 0 }, 0x1FAF}, {{SCIM_KEY_dead_iota, 0x1001f00, 0, 0, 0 }, 0x1F80}, {{SCIM_KEY_dead_iota, 0x1001f01, 0, 0, 0 }, 0x1F81}, {{SCIM_KEY_dead_iota, 0x1001f02, 0, 0, 0 }, 0x1F82}, {{SCIM_KEY_dead_iota, 0x1001f03, 0, 0, 0 }, 0x1F83}, {{SCIM_KEY_dead_iota, 0x1001f04, 0, 0, 0 }, 0x1F84}, {{SCIM_KEY_dead_iota, 0x1001f05, 0, 0, 0 }, 0x1F85}, {{SCIM_KEY_dead_iota, 0x1001f06, 0, 0, 0 }, 0x1F86}, {{SCIM_KEY_dead_iota, 0x1001f07, 0, 0, 0 }, 0x1F87}, {{SCIM_KEY_dead_iota, 0x1001f08, 0, 0, 0 }, 0x1F88}, {{SCIM_KEY_dead_iota, 0x1001f09, 0, 0, 0 }, 0x1F89}, {{SCIM_KEY_dead_iota, 0x1001f0a, 0, 0, 0 }, 0x1F8A}, {{SCIM_KEY_dead_iota, 0x1001f0b, 0, 0, 0 }, 0x1F8B}, {{SCIM_KEY_dead_iota, 0x1001f0c, 0, 0, 0 }, 0x1F8C}, {{SCIM_KEY_dead_iota, 0x1001f0d, 0, 0, 0 }, 0x1F8D}, {{SCIM_KEY_dead_iota, 0x1001f0e, 0, 0, 0 }, 0x1F8E}, {{SCIM_KEY_dead_iota, 0x1001f0f, 0, 0, 0 }, 0x1F8F}, {{SCIM_KEY_dead_iota, 0x1001f20, 0, 0, 0 }, 0x1F90}, {{SCIM_KEY_dead_iota, 0x1001f21, 0, 0, 0 }, 0x1F91}, {{SCIM_KEY_dead_iota, 0x1001f22, 0, 0, 0 }, 0x1F92}, {{SCIM_KEY_dead_iota, 0x1001f23, 0, 0, 0 }, 0x1F93}, {{SCIM_KEY_dead_iota, 0x1001f24, 0, 0, 0 }, 0x1F94}, {{SCIM_KEY_dead_iota, 0x1001f25, 0, 0, 0 }, 0x1F95}, {{SCIM_KEY_dead_iota, 0x1001f26, 0, 0, 0 }, 0x1F96}, {{SCIM_KEY_dead_iota, 0x1001f27, 0, 0, 0 }, 0x1F97}, {{SCIM_KEY_dead_iota, 0x1001f28, 0, 0, 0 }, 0x1F98}, {{SCIM_KEY_dead_iota, 0x1001f29, 0, 0, 0 }, 0x1F99}, {{SCIM_KEY_dead_iota, 0x1001f2a, 0, 0, 0 }, 0x1F9A}, {{SCIM_KEY_dead_iota, 0x1001f2b, 0, 0, 0 }, 0x1F9B}, {{SCIM_KEY_dead_iota, 0x1001f2c, 0, 0, 0 }, 0x1F9C}, {{SCIM_KEY_dead_iota, 0x1001f2d, 0, 0, 0 }, 0x1F9D}, {{SCIM_KEY_dead_iota, 0x1001f2e, 0, 0, 0 }, 0x1F9E}, {{SCIM_KEY_dead_iota, 0x1001f2f, 0, 0, 0 }, 0x1F9F}, {{SCIM_KEY_dead_iota, 0x1001f60, 0, 0, 0 }, 0x1FA0}, {{SCIM_KEY_dead_iota, 0x1001f61, 0, 0, 0 }, 0x1FA1}, {{SCIM_KEY_dead_iota, 0x1001f62, 0, 0, 0 }, 0x1FA2}, {{SCIM_KEY_dead_iota, 0x1001f63, 0, 0, 0 }, 0x1FA3}, {{SCIM_KEY_dead_iota, 0x1001f64, 0, 0, 0 }, 0x1FA4}, {{SCIM_KEY_dead_iota, 0x1001f65, 0, 0, 0 }, 0x1FA5}, {{SCIM_KEY_dead_iota, 0x1001f66, 0, 0, 0 }, 0x1FA6}, {{SCIM_KEY_dead_iota, 0x1001f67, 0, 0, 0 }, 0x1FA7}, {{SCIM_KEY_dead_iota, 0x1001f68, 0, 0, 0 }, 0x1FA8}, {{SCIM_KEY_dead_iota, 0x1001f69, 0, 0, 0 }, 0x1FA9}, {{SCIM_KEY_dead_iota, 0x1001f6a, 0, 0, 0 }, 0x1FAA}, {{SCIM_KEY_dead_iota, 0x1001f6b, 0, 0, 0 }, 0x1FAB}, {{SCIM_KEY_dead_iota, 0x1001f6c, 0, 0, 0 }, 0x1FAC}, {{SCIM_KEY_dead_iota, 0x1001f6d, 0, 0, 0 }, 0x1FAD}, {{SCIM_KEY_dead_iota, 0x1001f6e, 0, 0, 0 }, 0x1FAE}, {{SCIM_KEY_dead_iota, 0x1001f6f, 0, 0, 0 }, 0x1FAF}, {{SCIM_KEY_dead_iota, 0x1001f70, 0, 0, 0 }, 0x1FB2}, {{SCIM_KEY_dead_iota, 0x1001f74, 0, 0, 0 }, 0x1FC2}, {{SCIM_KEY_dead_iota, 0x1001f7c, 0, 0, 0 }, 0x1FF2}, {{SCIM_KEY_dead_iota, 0x1001fb6, 0, 0, 0 }, 0x1FB7}, {{SCIM_KEY_dead_iota, 0x1001fc6, 0, 0, 0 }, 0x1FC7}, {{SCIM_KEY_dead_iota, 0x1001ff6, 0, 0, 0 }, 0x1FF7}, {{SCIM_KEY_dead_voiced_sound, SCIM_KEY_kana_WO, 0, 0, 0 }, 0x30FA}, {{SCIM_KEY_dead_voiced_sound, SCIM_KEY_kana_U, 0, 0, 0 }, 0x30F4}, {{SCIM_KEY_dead_voiced_sound, SCIM_KEY_kana_KA, 0, 0, 0 }, 0x30AC}, {{SCIM_KEY_dead_voiced_sound, SCIM_KEY_kana_KI, 0, 0, 0 }, 0x30AE}, {{SCIM_KEY_dead_voiced_sound, SCIM_KEY_kana_KU, 0, 0, 0 }, 0x30B0}, {{SCIM_KEY_dead_voiced_sound, SCIM_KEY_kana_KE, 0, 0, 0 }, 0x30B2}, {{SCIM_KEY_dead_voiced_sound, SCIM_KEY_kana_KO, 0, 0, 0 }, 0x30B4}, {{SCIM_KEY_dead_voiced_sound, SCIM_KEY_kana_SA, 0, 0, 0 }, 0x30B6}, {{SCIM_KEY_dead_voiced_sound, SCIM_KEY_kana_SHI, 0, 0, 0 }, 0x30B8}, {{SCIM_KEY_dead_voiced_sound, SCIM_KEY_kana_SU, 0, 0, 0 }, 0x30BA}, {{SCIM_KEY_dead_voiced_sound, SCIM_KEY_kana_SE, 0, 0, 0 }, 0x30BC}, {{SCIM_KEY_dead_voiced_sound, SCIM_KEY_kana_SO, 0, 0, 0 }, 0x30BE}, {{SCIM_KEY_dead_voiced_sound, SCIM_KEY_kana_TA, 0, 0, 0 }, 0x30C0}, {{SCIM_KEY_dead_voiced_sound, SCIM_KEY_kana_CHI, 0, 0, 0 }, 0x30C2}, {{SCIM_KEY_dead_voiced_sound, SCIM_KEY_kana_TSU, 0, 0, 0 }, 0x30C5}, {{SCIM_KEY_dead_voiced_sound, SCIM_KEY_kana_TE, 0, 0, 0 }, 0x30C7}, {{SCIM_KEY_dead_voiced_sound, SCIM_KEY_kana_TO, 0, 0, 0 }, 0x30C9}, {{SCIM_KEY_dead_voiced_sound, SCIM_KEY_kana_HA, 0, 0, 0 }, 0x30D0}, {{SCIM_KEY_dead_voiced_sound, SCIM_KEY_kana_HI, 0, 0, 0 }, 0x30D3}, {{SCIM_KEY_dead_voiced_sound, SCIM_KEY_kana_FU, 0, 0, 0 }, 0x30D6}, {{SCIM_KEY_dead_voiced_sound, SCIM_KEY_kana_HE, 0, 0, 0 }, 0x30D9}, {{SCIM_KEY_dead_voiced_sound, SCIM_KEY_kana_HO, 0, 0, 0 }, 0x30DC}, {{SCIM_KEY_dead_voiced_sound, SCIM_KEY_kana_WA, 0, 0, 0 }, 0x30F7}, {{SCIM_KEY_dead_voiced_sound, 0x1003046, 0, 0, 0 }, 0x3094}, {{SCIM_KEY_dead_voiced_sound, 0x100304b, 0, 0, 0 }, 0x304C}, {{SCIM_KEY_dead_voiced_sound, 0x100304d, 0, 0, 0 }, 0x304E}, {{SCIM_KEY_dead_voiced_sound, 0x100304f, 0, 0, 0 }, 0x3050}, {{SCIM_KEY_dead_voiced_sound, 0x1003051, 0, 0, 0 }, 0x3052}, {{SCIM_KEY_dead_voiced_sound, 0x1003053, 0, 0, 0 }, 0x3054}, {{SCIM_KEY_dead_voiced_sound, 0x1003055, 0, 0, 0 }, 0x3056}, {{SCIM_KEY_dead_voiced_sound, 0x1003057, 0, 0, 0 }, 0x3058}, {{SCIM_KEY_dead_voiced_sound, 0x1003059, 0, 0, 0 }, 0x305A}, {{SCIM_KEY_dead_voiced_sound, 0x100305b, 0, 0, 0 }, 0x305C}, {{SCIM_KEY_dead_voiced_sound, 0x100305d, 0, 0, 0 }, 0x305E}, {{SCIM_KEY_dead_voiced_sound, 0x100305f, 0, 0, 0 }, 0x3060}, {{SCIM_KEY_dead_voiced_sound, 0x1003061, 0, 0, 0 }, 0x3062}, {{SCIM_KEY_dead_voiced_sound, 0x1003064, 0, 0, 0 }, 0x3065}, {{SCIM_KEY_dead_voiced_sound, 0x1003066, 0, 0, 0 }, 0x3067}, {{SCIM_KEY_dead_voiced_sound, 0x1003068, 0, 0, 0 }, 0x3069}, {{SCIM_KEY_dead_voiced_sound, 0x100306f, 0, 0, 0 }, 0x3070}, {{SCIM_KEY_dead_voiced_sound, 0x1003072, 0, 0, 0 }, 0x3073}, {{SCIM_KEY_dead_voiced_sound, 0x1003075, 0, 0, 0 }, 0x3076}, {{SCIM_KEY_dead_voiced_sound, 0x1003078, 0, 0, 0 }, 0x3079}, {{SCIM_KEY_dead_voiced_sound, 0x100307b, 0, 0, 0 }, 0x307C}, {{SCIM_KEY_dead_voiced_sound, 0x100309d, 0, 0, 0 }, 0x309E}, {{SCIM_KEY_dead_voiced_sound, 0x10030f0, 0, 0, 0 }, 0x30F8}, {{SCIM_KEY_dead_voiced_sound, 0x10030f1, 0, 0, 0 }, 0x30F9}, {{SCIM_KEY_dead_voiced_sound, 0x10030fd, 0, 0, 0 }, 0x30FE}, {{SCIM_KEY_dead_semivoiced_sound, SCIM_KEY_kana_HA, 0, 0, 0 }, 0x30D1}, {{SCIM_KEY_dead_semivoiced_sound, SCIM_KEY_kana_HI, 0, 0, 0 }, 0x30D4}, {{SCIM_KEY_dead_semivoiced_sound, SCIM_KEY_kana_FU, 0, 0, 0 }, 0x30D7}, {{SCIM_KEY_dead_semivoiced_sound, SCIM_KEY_kana_HE, 0, 0, 0 }, 0x30DA}, {{SCIM_KEY_dead_semivoiced_sound, SCIM_KEY_kana_HO, 0, 0, 0 }, 0x30DD}, {{SCIM_KEY_dead_semivoiced_sound, 0x100306f, 0, 0, 0 }, 0x3071}, {{SCIM_KEY_dead_semivoiced_sound, 0x1003072, 0, 0, 0 }, 0x3074}, {{SCIM_KEY_dead_semivoiced_sound, 0x1003075, 0, 0, 0 }, 0x3077}, {{SCIM_KEY_dead_semivoiced_sound, 0x1003078, 0, 0, 0 }, 0x307A}, {{SCIM_KEY_dead_semivoiced_sound, 0x100307b, 0, 0, 0 }, 0x307D}, {{SCIM_KEY_dead_belowdot, SCIM_KEY_A, 0, 0, 0 }, 0x1EA0}, {{SCIM_KEY_dead_belowdot, SCIM_KEY_B, 0, 0, 0 }, 0x1E04}, {{SCIM_KEY_dead_belowdot, SCIM_KEY_D, 0, 0, 0 }, 0x1E0C}, {{SCIM_KEY_dead_belowdot, SCIM_KEY_E, 0, 0, 0 }, 0x1EB8}, {{SCIM_KEY_dead_belowdot, SCIM_KEY_H, 0, 0, 0 }, 0x1E24}, {{SCIM_KEY_dead_belowdot, SCIM_KEY_I, 0, 0, 0 }, 0x1ECA}, {{SCIM_KEY_dead_belowdot, SCIM_KEY_K, 0, 0, 0 }, 0x1E32}, {{SCIM_KEY_dead_belowdot, SCIM_KEY_L, 0, 0, 0 }, 0x1E36}, {{SCIM_KEY_dead_belowdot, SCIM_KEY_M, 0, 0, 0 }, 0x1E42}, {{SCIM_KEY_dead_belowdot, SCIM_KEY_N, 0, 0, 0 }, 0x1E46}, {{SCIM_KEY_dead_belowdot, SCIM_KEY_O, 0, 0, 0 }, 0x1ECC}, {{SCIM_KEY_dead_belowdot, SCIM_KEY_R, 0, 0, 0 }, 0x1E5A}, {{SCIM_KEY_dead_belowdot, SCIM_KEY_S, 0, 0, 0 }, 0x1E62}, {{SCIM_KEY_dead_belowdot, SCIM_KEY_T, 0, 0, 0 }, 0x1E6C}, {{SCIM_KEY_dead_belowdot, SCIM_KEY_U, 0, 0, 0 }, 0x1EE4}, {{SCIM_KEY_dead_belowdot, SCIM_KEY_V, 0, 0, 0 }, 0x1E7E}, {{SCIM_KEY_dead_belowdot, SCIM_KEY_W, 0, 0, 0 }, 0x1E88}, {{SCIM_KEY_dead_belowdot, SCIM_KEY_Y, 0, 0, 0 }, 0x1EF4}, {{SCIM_KEY_dead_belowdot, SCIM_KEY_Z, 0, 0, 0 }, 0x1E92}, {{SCIM_KEY_dead_belowdot, SCIM_KEY_a, 0, 0, 0 }, 0x1EA1}, {{SCIM_KEY_dead_belowdot, SCIM_KEY_b, 0, 0, 0 }, 0x1E05}, {{SCIM_KEY_dead_belowdot, SCIM_KEY_d, 0, 0, 0 }, 0x1E0D}, {{SCIM_KEY_dead_belowdot, SCIM_KEY_e, 0, 0, 0 }, 0x1EB9}, {{SCIM_KEY_dead_belowdot, SCIM_KEY_h, 0, 0, 0 }, 0x1E25}, {{SCIM_KEY_dead_belowdot, SCIM_KEY_i, 0, 0, 0 }, 0x1ECB}, {{SCIM_KEY_dead_belowdot, SCIM_KEY_k, 0, 0, 0 }, 0x1E33}, {{SCIM_KEY_dead_belowdot, SCIM_KEY_l, 0, 0, 0 }, 0x1E37}, {{SCIM_KEY_dead_belowdot, SCIM_KEY_m, 0, 0, 0 }, 0x1E43}, {{SCIM_KEY_dead_belowdot, SCIM_KEY_n, 0, 0, 0 }, 0x1E47}, {{SCIM_KEY_dead_belowdot, SCIM_KEY_o, 0, 0, 0 }, 0x1ECD}, {{SCIM_KEY_dead_belowdot, SCIM_KEY_r, 0, 0, 0 }, 0x1E5B}, {{SCIM_KEY_dead_belowdot, SCIM_KEY_s, 0, 0, 0 }, 0x1E63}, {{SCIM_KEY_dead_belowdot, SCIM_KEY_t, 0, 0, 0 }, 0x1E6D}, {{SCIM_KEY_dead_belowdot, SCIM_KEY_u, 0, 0, 0 }, 0x1EE5}, {{SCIM_KEY_dead_belowdot, SCIM_KEY_v, 0, 0, 0 }, 0x1E7F}, {{SCIM_KEY_dead_belowdot, SCIM_KEY_w, 0, 0, 0 }, 0x1E89}, {{SCIM_KEY_dead_belowdot, SCIM_KEY_y, 0, 0, 0 }, 0x1EF5}, {{SCIM_KEY_dead_belowdot, SCIM_KEY_z, 0, 0, 0 }, 0x1E93}, {{SCIM_KEY_dead_belowdot, SCIM_KEY_Acircumflex, 0, 0, 0 }, 0x1EAC}, {{SCIM_KEY_dead_belowdot, SCIM_KEY_Ecircumflex, 0, 0, 0 }, 0x1EC6}, {{SCIM_KEY_dead_belowdot, SCIM_KEY_Ocircumflex, 0, 0, 0 }, 0x1ED8}, {{SCIM_KEY_dead_belowdot, SCIM_KEY_acircumflex, 0, 0, 0 }, 0x1EAD}, {{SCIM_KEY_dead_belowdot, SCIM_KEY_ecircumflex, 0, 0, 0 }, 0x1EC7}, {{SCIM_KEY_dead_belowdot, SCIM_KEY_ocircumflex, 0, 0, 0 }, 0x1ED9}, {{SCIM_KEY_dead_belowdot, SCIM_KEY_Abreve, 0, 0, 0 }, 0x1EB6}, {{SCIM_KEY_dead_belowdot, SCIM_KEY_abreve, 0, 0, 0 }, 0x1EB7}, {{SCIM_KEY_dead_belowdot, SCIM_KEY_Ohorn, 0, 0, 0 }, 0x1EE2}, {{SCIM_KEY_dead_belowdot, SCIM_KEY_ohorn, 0, 0, 0 }, 0x1EE3}, {{SCIM_KEY_dead_belowdot, SCIM_KEY_Uhorn, 0, 0, 0 }, 0x1EF0}, {{SCIM_KEY_dead_belowdot, SCIM_KEY_uhorn, 0, 0, 0 }, 0x1EF1}, {{SCIM_KEY_dead_belowdot, SCIM_KEY_dead_horn, SCIM_KEY_O, 0, 0 }, 0x1EE2}, {{SCIM_KEY_dead_belowdot, SCIM_KEY_dead_horn, SCIM_KEY_U, 0, 0 }, 0x1EF0}, {{SCIM_KEY_dead_belowdot, SCIM_KEY_dead_horn, SCIM_KEY_o, 0, 0 }, 0x1EE3}, {{SCIM_KEY_dead_belowdot, SCIM_KEY_dead_horn, SCIM_KEY_u, 0, 0 }, 0x1EF1}, {{SCIM_KEY_dead_belowdot, SCIM_KEY_Multi_key, SCIM_KEY_plus, SCIM_KEY_O, 0 }, 0x1EE2}, {{SCIM_KEY_dead_belowdot, SCIM_KEY_Multi_key, SCIM_KEY_plus, SCIM_KEY_U, 0 }, 0x1EF0}, {{SCIM_KEY_dead_belowdot, SCIM_KEY_Multi_key, SCIM_KEY_plus, SCIM_KEY_o, 0 }, 0x1EE3}, {{SCIM_KEY_dead_belowdot, SCIM_KEY_Multi_key, SCIM_KEY_plus, SCIM_KEY_u, 0 }, 0x1EF1}, {{SCIM_KEY_dead_belowdot, 0x10001a0, 0, 0, 0 }, 0x1EE2}, {{SCIM_KEY_dead_belowdot, 0x10001a1, 0, 0, 0 }, 0x1EE3}, {{SCIM_KEY_dead_belowdot, 0x10001af, 0, 0, 0 }, 0x1EF0}, {{SCIM_KEY_dead_belowdot, 0x10001b0, 0, 0, 0 }, 0x1EF1}, {{SCIM_KEY_dead_hook, SCIM_KEY_A, 0, 0, 0 }, 0x1EA2}, {{SCIM_KEY_dead_hook, SCIM_KEY_E, 0, 0, 0 }, 0x1EBA}, {{SCIM_KEY_dead_hook, SCIM_KEY_I, 0, 0, 0 }, 0x1EC8}, {{SCIM_KEY_dead_hook, SCIM_KEY_O, 0, 0, 0 }, 0x1ECE}, {{SCIM_KEY_dead_hook, SCIM_KEY_U, 0, 0, 0 }, 0x1EE6}, {{SCIM_KEY_dead_hook, SCIM_KEY_Y, 0, 0, 0 }, 0x1EF6}, {{SCIM_KEY_dead_hook, SCIM_KEY_a, 0, 0, 0 }, 0x1EA3}, {{SCIM_KEY_dead_hook, SCIM_KEY_e, 0, 0, 0 }, 0x1EBB}, {{SCIM_KEY_dead_hook, SCIM_KEY_i, 0, 0, 0 }, 0x1EC9}, {{SCIM_KEY_dead_hook, SCIM_KEY_o, 0, 0, 0 }, 0x1ECF}, {{SCIM_KEY_dead_hook, SCIM_KEY_u, 0, 0, 0 }, 0x1EE7}, {{SCIM_KEY_dead_hook, SCIM_KEY_y, 0, 0, 0 }, 0x1EF7}, {{SCIM_KEY_dead_hook, SCIM_KEY_Acircumflex, 0, 0, 0 }, 0x1EA8}, {{SCIM_KEY_dead_hook, SCIM_KEY_Ecircumflex, 0, 0, 0 }, 0x1EC2}, {{SCIM_KEY_dead_hook, SCIM_KEY_Ocircumflex, 0, 0, 0 }, 0x1ED4}, {{SCIM_KEY_dead_hook, SCIM_KEY_acircumflex, 0, 0, 0 }, 0x1EA9}, {{SCIM_KEY_dead_hook, SCIM_KEY_ecircumflex, 0, 0, 0 }, 0x1EC3}, {{SCIM_KEY_dead_hook, SCIM_KEY_ocircumflex, 0, 0, 0 }, 0x1ED5}, {{SCIM_KEY_dead_hook, SCIM_KEY_Abreve, 0, 0, 0 }, 0x1EB2}, {{SCIM_KEY_dead_hook, SCIM_KEY_abreve, 0, 0, 0 }, 0x1EB3}, {{SCIM_KEY_dead_hook, SCIM_KEY_Ohorn, 0, 0, 0 }, 0x1EDE}, {{SCIM_KEY_dead_hook, SCIM_KEY_ohorn, 0, 0, 0 }, 0x1EDF}, {{SCIM_KEY_dead_hook, SCIM_KEY_Uhorn, 0, 0, 0 }, 0x1EEC}, {{SCIM_KEY_dead_hook, SCIM_KEY_uhorn, 0, 0, 0 }, 0x1EED}, {{SCIM_KEY_dead_hook, SCIM_KEY_dead_circumflex, SCIM_KEY_A, 0, 0 }, 0x1EA8}, {{SCIM_KEY_dead_hook, SCIM_KEY_dead_circumflex, SCIM_KEY_E, 0, 0 }, 0x1EC2}, {{SCIM_KEY_dead_hook, SCIM_KEY_dead_circumflex, SCIM_KEY_O, 0, 0 }, 0x1ED4}, {{SCIM_KEY_dead_hook, SCIM_KEY_dead_circumflex, SCIM_KEY_a, 0, 0 }, 0x1EA9}, {{SCIM_KEY_dead_hook, SCIM_KEY_dead_circumflex, SCIM_KEY_e, 0, 0 }, 0x1EC3}, {{SCIM_KEY_dead_hook, SCIM_KEY_dead_circumflex, SCIM_KEY_o, 0, 0 }, 0x1ED5}, {{SCIM_KEY_dead_hook, SCIM_KEY_dead_breve, SCIM_KEY_A, 0, 0 }, 0x1EB2}, {{SCIM_KEY_dead_hook, SCIM_KEY_dead_breve, SCIM_KEY_a, 0, 0 }, 0x1EB3}, {{SCIM_KEY_dead_hook, SCIM_KEY_dead_horn, SCIM_KEY_O, 0, 0 }, 0x1EDE}, {{SCIM_KEY_dead_hook, SCIM_KEY_dead_horn, SCIM_KEY_U, 0, 0 }, 0x1EEC}, {{SCIM_KEY_dead_hook, SCIM_KEY_dead_horn, SCIM_KEY_o, 0, 0 }, 0x1EDF}, {{SCIM_KEY_dead_hook, SCIM_KEY_dead_horn, SCIM_KEY_u, 0, 0 }, 0x1EED}, {{SCIM_KEY_dead_hook, SCIM_KEY_Multi_key, SCIM_KEY_plus, SCIM_KEY_O, 0 }, 0x1EDE}, {{SCIM_KEY_dead_hook, SCIM_KEY_Multi_key, SCIM_KEY_plus, SCIM_KEY_U, 0 }, 0x1EEC}, {{SCIM_KEY_dead_hook, SCIM_KEY_Multi_key, SCIM_KEY_plus, SCIM_KEY_o, 0 }, 0x1EDF}, {{SCIM_KEY_dead_hook, SCIM_KEY_Multi_key, SCIM_KEY_plus, SCIM_KEY_u, 0 }, 0x1EED}, {{SCIM_KEY_dead_hook, SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_A, 0 }, 0x1EB2}, {{SCIM_KEY_dead_hook, SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_a, 0 }, 0x1EB3}, {{SCIM_KEY_dead_hook, SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_A, 0 }, 0x1EA8}, {{SCIM_KEY_dead_hook, SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_E, 0 }, 0x1EC2}, {{SCIM_KEY_dead_hook, SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_O, 0 }, 0x1ED4}, {{SCIM_KEY_dead_hook, SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_a, 0 }, 0x1EA9}, {{SCIM_KEY_dead_hook, SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_e, 0 }, 0x1EC3}, {{SCIM_KEY_dead_hook, SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_o, 0 }, 0x1ED5}, {{SCIM_KEY_dead_hook, SCIM_KEY_Multi_key, SCIM_KEY_b, SCIM_KEY_A, 0 }, 0x1EB2}, {{SCIM_KEY_dead_hook, SCIM_KEY_Multi_key, SCIM_KEY_b, SCIM_KEY_a, 0 }, 0x1EB3}, {{SCIM_KEY_dead_hook, 0x10001a0, 0, 0, 0 }, 0x1EDE}, {{SCIM_KEY_dead_hook, 0x10001a1, 0, 0, 0 }, 0x1EDF}, {{SCIM_KEY_dead_hook, 0x10001af, 0, 0, 0 }, 0x1EEC}, {{SCIM_KEY_dead_hook, 0x10001b0, 0, 0, 0 }, 0x1EED}, {{SCIM_KEY_dead_horn, SCIM_KEY_O, 0, 0, 0 }, 0x01A0}, {{SCIM_KEY_dead_horn, SCIM_KEY_U, 0, 0, 0 }, 0x01AF}, {{SCIM_KEY_dead_horn, SCIM_KEY_o, 0, 0, 0 }, 0x01A1}, {{SCIM_KEY_dead_horn, SCIM_KEY_u, 0, 0, 0 }, 0x01B0}, {{SCIM_KEY_Multi_key, SCIM_KEY_space, SCIM_KEY_space, 0, 0 }, 0x00A0}, {{SCIM_KEY_Multi_key, SCIM_KEY_space, SCIM_KEY_apostrophe, 0, 0 }, 0x0027}, {{SCIM_KEY_Multi_key, SCIM_KEY_space, SCIM_KEY_parenleft, 0, 0 }, 0x02D8}, {{SCIM_KEY_Multi_key, SCIM_KEY_space, SCIM_KEY_comma, 0, 0 }, 0x00B8}, {{SCIM_KEY_Multi_key, SCIM_KEY_space, SCIM_KEY_minus, 0, 0 }, 0x007E}, {{SCIM_KEY_Multi_key, SCIM_KEY_space, SCIM_KEY_period, 0, 0 }, 0x2008}, {{SCIM_KEY_Multi_key, SCIM_KEY_space, SCIM_KEY_less, 0, 0 }, 0x02C7}, {{SCIM_KEY_Multi_key, SCIM_KEY_space, SCIM_KEY_greater, 0, 0 }, 0x005E}, {{SCIM_KEY_Multi_key, SCIM_KEY_space, SCIM_KEY_asciicircum, 0, 0 }, 0x005E}, {{SCIM_KEY_Multi_key, SCIM_KEY_space, SCIM_KEY_grave, 0, 0 }, 0x0060}, {{SCIM_KEY_Multi_key, SCIM_KEY_space, SCIM_KEY_asciitilde, 0, 0 }, 0x007E}, {{SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_exclam, 0, 0 }, 0x00A1}, {{SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_plus, SCIM_KEY_O, 0 }, 0x1EE2}, {{SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_plus, SCIM_KEY_U, 0 }, 0x1EF0}, {{SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_plus, SCIM_KEY_o, 0 }, 0x1EE3}, {{SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_plus, SCIM_KEY_u, 0 }, 0x1EF1}, {{SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_A, 0, 0 }, 0x1EA0}, {{SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_B, 0, 0 }, 0x1E04}, {{SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_D, 0, 0 }, 0x1E0C}, {{SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_E, 0, 0 }, 0x1EB8}, {{SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_H, 0, 0 }, 0x1E24}, {{SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_I, 0, 0 }, 0x1ECA}, {{SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_K, 0, 0 }, 0x1E32}, {{SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_L, 0, 0 }, 0x1E36}, {{SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_M, 0, 0 }, 0x1E42}, {{SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_N, 0, 0 }, 0x1E46}, {{SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_O, 0, 0 }, 0x1ECC}, {{SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_P, 0, 0 }, 0x00B6}, {{SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_R, 0, 0 }, 0x1E5A}, {{SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_S, 0, 0 }, 0x1E62}, {{SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_T, 0, 0 }, 0x1E6C}, {{SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_U, 0, 0 }, 0x1EE4}, {{SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_V, 0, 0 }, 0x1E7E}, {{SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_W, 0, 0 }, 0x1E88}, {{SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_Y, 0, 0 }, 0x1EF4}, {{SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_Z, 0, 0 }, 0x1E92}, {{SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_asciicircum, 0, 0 }, 0x00A6}, {{SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_a, 0, 0 }, 0x1EA1}, {{SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_b, 0, 0 }, 0x1E05}, {{SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_d, 0, 0 }, 0x1E0D}, {{SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_e, 0, 0 }, 0x1EB9}, {{SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_h, 0, 0 }, 0x1E25}, {{SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_i, 0, 0 }, 0x1ECB}, {{SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_k, 0, 0 }, 0x1E33}, {{SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_l, 0, 0 }, 0x1E37}, {{SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_m, 0, 0 }, 0x1E43}, {{SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_n, 0, 0 }, 0x1E47}, {{SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_o, 0, 0 }, 0x1ECD}, {{SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_p, 0, 0 }, 0x00B6}, {{SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_r, 0, 0 }, 0x1E5B}, {{SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_s, 0, 0 }, 0x1E63}, {{SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_t, 0, 0 }, 0x1E6D}, {{SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_u, 0, 0 }, 0x1EE5}, {{SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_v, 0, 0 }, 0x1E7F}, {{SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_w, 0, 0 }, 0x1E89}, {{SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_y, 0, 0 }, 0x1EF5}, {{SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_z, 0, 0 }, 0x1E93}, {{SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_Ohorn, 0, 0 }, 0x1EE2}, {{SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_ohorn, 0, 0 }, 0x1EE3}, {{SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_Uhorn, 0, 0 }, 0x1EF0}, {{SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_uhorn, 0, 0 }, 0x1EF1}, {{SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_dead_horn, SCIM_KEY_O, 0 }, 0x1EE2}, {{SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_dead_horn, SCIM_KEY_U, 0 }, 0x1EF0}, {{SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_dead_horn, SCIM_KEY_o, 0 }, 0x1EE3}, {{SCIM_KEY_Multi_key, SCIM_KEY_exclam, SCIM_KEY_dead_horn, SCIM_KEY_u, 0 }, 0x1EF1}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_quotedbl, 0, 0 }, 0x00A8}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_apostrophe, 0, 0 }, 0x0344}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_apostrophe, SCIM_KEY_space, 0 }, 0x0385}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_apostrophe, SCIM_KEY_Greek_iota, 0 }, 0x0390}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_apostrophe, SCIM_KEY_Greek_upsilon, 0 }, 0x03B0}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_comma, 0, 0 }, 0x201E}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_slash, 0, 0 }, 0x301E}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_less, 0, 0 }, 0x201C}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_greater, 0, 0 }, 0x201D}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_A, 0, 0 }, 0x00C4}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_E, 0, 0 }, 0x00CB}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_H, 0, 0 }, 0x1E26}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_I, 0, 0 }, 0x00CF}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_O, 0, 0 }, 0x00D6}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_U, 0, 0 }, 0x00DC}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_W, 0, 0 }, 0x1E84}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_X, 0, 0 }, 0x1E8C}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_Y, 0, 0 }, 0x0178}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_backslash, 0, 0 }, 0x301D}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_underscore, SCIM_KEY_U, 0 }, 0x1E7A}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_underscore, SCIM_KEY_u, 0 }, 0x1E7B}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_a, 0, 0 }, 0x00E4}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_e, 0, 0 }, 0x00EB}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_h, 0, 0 }, 0x1E27}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_i, 0, 0 }, 0x00EF}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_o, 0, 0 }, 0x00F6}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_t, 0, 0 }, 0x1E97}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_u, 0, 0 }, 0x00FC}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_w, 0, 0 }, 0x1E85}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_x, 0, 0 }, 0x1E8D}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_y, 0, 0 }, 0x00FF}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_asciitilde, SCIM_KEY_O, 0 }, 0x1E4E}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_asciitilde, SCIM_KEY_o, 0 }, 0x1E4F}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_macron, SCIM_KEY_U, 0 }, 0x1E7A}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_macron, SCIM_KEY_u, 0 }, 0x1E7B}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_acute, 0, 0 }, 0x0344}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_Otilde, 0, 0 }, 0x1E4E}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_otilde, 0, 0 }, 0x1E4F}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_Umacron, 0, 0 }, 0x1E7A}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_umacron, 0, 0 }, 0x1E7B}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_Ukrainian_i, 0, 0 }, 0x0457}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_Ukrainian_I, 0, 0 }, 0x0407}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_Cyrillic_a, 0, 0 }, 0x04D3}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_Cyrillic_ie, 0, 0 }, 0x0451}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_Cyrillic_i, 0, 0 }, 0x04E5}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_Cyrillic_o, 0, 0 }, 0x04E7}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_Cyrillic_u, 0, 0 }, 0x04F1}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_Cyrillic_zhe, 0, 0 }, 0x04DD}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_Cyrillic_yeru, 0, 0 }, 0x04F9}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_Cyrillic_ze, 0, 0 }, 0x04DF}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_Cyrillic_e, 0, 0 }, 0x04ED}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_Cyrillic_che, 0, 0 }, 0x04F5}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_Cyrillic_A, 0, 0 }, 0x04D2}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_Cyrillic_IE, 0, 0 }, 0x0401}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_Cyrillic_I, 0, 0 }, 0x04E4}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_Cyrillic_O, 0, 0 }, 0x04E6}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_Cyrillic_U, 0, 0 }, 0x04F0}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_Cyrillic_ZHE, 0, 0 }, 0x04DC}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_Cyrillic_YERU, 0, 0 }, 0x04F8}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_Cyrillic_ZE, 0, 0 }, 0x04DE}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_Cyrillic_E, 0, 0 }, 0x04EC}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_Cyrillic_CHE, 0, 0 }, 0x04F4}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_Greek_IOTA, 0, 0 }, 0x03AA}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_Greek_UPSILON, 0, 0 }, 0x03AB}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_Greek_iota, 0, 0 }, 0x03CA}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_Greek_upsilon, 0, 0 }, 0x03CB}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_combining_tilde, SCIM_KEY_O, 0 }, 0x1E4E}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_combining_tilde, SCIM_KEY_o, 0 }, 0x1E4F}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_combining_acute, 0, 0 }, 0x0344}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_dead_acute, 0, 0 }, 0x0344}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_dead_tilde, SCIM_KEY_O, 0 }, 0x1E4E}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_dead_tilde, SCIM_KEY_o, 0 }, 0x1E4F}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_dead_macron, SCIM_KEY_U, 0 }, 0x1E7A}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_dead_macron, SCIM_KEY_u, 0 }, 0x1E7B}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, 0x10003d2, 0, 0 }, 0x03D4}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, 0x10004d8, 0, 0 }, 0x04DA}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, 0x10004d9, 0, 0 }, 0x04DB}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, 0x10004e8, 0, 0 }, 0x04EA}, {{SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, 0x10004e9, 0, 0 }, 0x04EB}, {{SCIM_KEY_Multi_key, SCIM_KEY_numbersign, SCIM_KEY_numbersign, 0, 0 }, 0x266F}, {{SCIM_KEY_Multi_key, SCIM_KEY_numbersign, SCIM_KEY_b, 0, 0 }, 0x266D}, {{SCIM_KEY_Multi_key, SCIM_KEY_numbersign, SCIM_KEY_f, 0, 0 }, 0x266E}, {{SCIM_KEY_Multi_key, SCIM_KEY_percent, SCIM_KEY_o, 0, 0 }, 0x2030}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_space, 0, 0 }, 0x0027}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_quotedbl, SCIM_KEY_space, 0 }, 0x0385}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_quotedbl, SCIM_KEY_I, 0 }, 0x1E2E}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_quotedbl, SCIM_KEY_U, 0 }, 0x01D7}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_quotedbl, SCIM_KEY_i, 0 }, 0x1E2F}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_quotedbl, SCIM_KEY_u, 0 }, 0x01D8}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_quotedbl, SCIM_KEY_Greek_iota, 0 }, 0x0390}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_quotedbl, SCIM_KEY_Greek_upsilon, 0 }, 0x03B0}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_apostrophe, 0, 0 }, 0x00B4}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_parenleft, SCIM_KEY_Greek_ALPHA, 0 }, 0x1F0D}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_parenleft, SCIM_KEY_Greek_EPSILON, 0 }, 0x1F1D}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_parenleft, SCIM_KEY_Greek_ETA, 0 }, 0x1F2D}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_parenleft, SCIM_KEY_Greek_IOTA, 0 }, 0x1F3D}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_parenleft, SCIM_KEY_Greek_OMICRON, 0 }, 0x1F4D}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_parenleft, SCIM_KEY_Greek_UPSILON, 0 }, 0x1F5D}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_parenleft, SCIM_KEY_Greek_OMEGA, 0 }, 0x1F6D}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_parenleft, SCIM_KEY_Greek_alpha, 0 }, 0x1F05}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_parenleft, SCIM_KEY_Greek_epsilon, 0 }, 0x1F15}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_parenleft, SCIM_KEY_Greek_eta, 0 }, 0x1F25}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_parenleft, SCIM_KEY_Greek_iota, 0 }, 0x1F35}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_parenleft, SCIM_KEY_Greek_omicron, 0 }, 0x1F45}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_parenleft, SCIM_KEY_Greek_upsilon, 0 }, 0x1F55}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_parenleft, SCIM_KEY_Greek_omega, 0 }, 0x1F65}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_parenright, SCIM_KEY_Greek_ALPHA, 0 }, 0x1F0C}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_parenright, SCIM_KEY_Greek_EPSILON, 0 }, 0x1F1C}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_parenright, SCIM_KEY_Greek_ETA, 0 }, 0x1F2C}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_parenright, SCIM_KEY_Greek_IOTA, 0 }, 0x1F3C}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_parenright, SCIM_KEY_Greek_OMICRON, 0 }, 0x1F4C}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_parenright, SCIM_KEY_Greek_OMEGA, 0 }, 0x1F6C}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_parenright, SCIM_KEY_Greek_alpha, 0 }, 0x1F04}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_parenright, SCIM_KEY_Greek_epsilon, 0 }, 0x1F14}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_parenright, SCIM_KEY_Greek_eta, 0 }, 0x1F24}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_parenright, SCIM_KEY_Greek_iota, 0 }, 0x1F34}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_parenright, SCIM_KEY_Greek_omicron, 0 }, 0x1F44}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_parenright, SCIM_KEY_Greek_upsilon, 0 }, 0x1F54}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_parenright, SCIM_KEY_Greek_omega, 0 }, 0x1F64}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_plus, SCIM_KEY_O, 0 }, 0x1EDA}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_plus, SCIM_KEY_U, 0 }, 0x1EE8}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_plus, SCIM_KEY_o, 0 }, 0x1EDB}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_plus, SCIM_KEY_u, 0 }, 0x1EE9}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_comma, 0, 0 }, 0x201A}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_comma, SCIM_KEY_C, 0 }, 0x1E08}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_comma, SCIM_KEY_c, 0 }, 0x1E09}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_slash, SCIM_KEY_O, 0 }, 0x01FE}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_slash, SCIM_KEY_o, 0 }, 0x01FF}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_less, 0, 0 }, 0x2018}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_greater, 0, 0 }, 0x2019}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_A, 0, 0 }, 0x00C1}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_C, 0, 0 }, 0x0106}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_E, 0, 0 }, 0x00C9}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_G, 0, 0 }, 0x01F4}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_I, 0, 0 }, 0x00CD}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_K, 0, 0 }, 0x1E30}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_L, 0, 0 }, 0x0139}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_M, 0, 0 }, 0x1E3E}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_N, 0, 0 }, 0x0143}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_O, 0, 0 }, 0x00D3}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_P, 0, 0 }, 0x1E54}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_R, 0, 0 }, 0x0154}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_S, 0, 0 }, 0x015A}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_U, 0, 0 }, 0x00DA}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_U, SCIM_KEY_A, 0 }, 0x1EAE}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_U, SCIM_KEY_a, 0 }, 0x1EAF}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_W, 0, 0 }, 0x1E82}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_Y, 0, 0 }, 0x00DD}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_Z, 0, 0 }, 0x0179}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_asciicircum, SCIM_KEY_A, 0 }, 0x1EA4}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_asciicircum, SCIM_KEY_E, 0 }, 0x1EBE}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_asciicircum, SCIM_KEY_O, 0 }, 0x1ED0}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_asciicircum, SCIM_KEY_a, 0 }, 0x1EA5}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_asciicircum, SCIM_KEY_e, 0 }, 0x1EBF}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_asciicircum, SCIM_KEY_o, 0 }, 0x1ED1}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_underscore, SCIM_KEY_E, 0 }, 0x1E16}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_underscore, SCIM_KEY_O, 0 }, 0x1E52}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_underscore, SCIM_KEY_e, 0 }, 0x1E17}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_underscore, SCIM_KEY_o, 0 }, 0x1E53}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_a, 0, 0 }, 0x00E1}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_b, SCIM_KEY_A, 0 }, 0x1EAE}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_b, SCIM_KEY_a, 0 }, 0x1EAF}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_c, 0, 0 }, 0x0107}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_e, 0, 0 }, 0x00E9}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_g, 0, 0 }, 0x01F5}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_i, 0, 0 }, 0x00ED}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_k, 0, 0 }, 0x1E31}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_l, 0, 0 }, 0x013A}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_m, 0, 0 }, 0x1E3F}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_n, 0, 0 }, 0x0144}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_o, 0, 0 }, 0x00F3}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_p, 0, 0 }, 0x1E55}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_r, 0, 0 }, 0x0155}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_s, 0, 0 }, 0x015B}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_u, 0, 0 }, 0x00FA}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_w, 0, 0 }, 0x1E83}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_y, 0, 0 }, 0x00FD}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_z, 0, 0 }, 0x017A}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_asciitilde, SCIM_KEY_O, 0 }, 0x1E4C}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_asciitilde, SCIM_KEY_U, 0 }, 0x1E78}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_asciitilde, SCIM_KEY_o, 0 }, 0x1E4D}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_asciitilde, SCIM_KEY_u, 0 }, 0x1E79}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_macron, SCIM_KEY_E, 0 }, 0x1E16}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_macron, SCIM_KEY_O, 0 }, 0x1E52}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_macron, SCIM_KEY_e, 0 }, 0x1E17}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_macron, SCIM_KEY_o, 0 }, 0x1E53}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_Acircumflex, 0, 0 }, 0x1EA4}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_Aring, 0, 0 }, 0x01FA}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_AE, 0, 0 }, 0x01FC}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_Ccedilla, 0, 0 }, 0x1E08}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_Ecircumflex, 0, 0 }, 0x1EBE}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_Idiaeresis, 0, 0 }, 0x1E2E}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_Ocircumflex, 0, 0 }, 0x1ED0}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_Otilde, 0, 0 }, 0x1E4C}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_Ooblique, 0, 0 }, 0x01FE}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_Udiaeresis, 0, 0 }, 0x01D7}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_acircumflex, 0, 0 }, 0x1EA5}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_aring, 0, 0 }, 0x01FB}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_ae, 0, 0 }, 0x01FD}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_ccedilla, 0, 0 }, 0x1E09}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_ecircumflex, 0, 0 }, 0x1EBF}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_idiaeresis, 0, 0 }, 0x1E2F}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_ocircumflex, 0, 0 }, 0x1ED1}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_otilde, 0, 0 }, 0x1E4D}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_oslash, 0, 0 }, 0x01FF}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_udiaeresis, 0, 0 }, 0x01D8}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_Abreve, 0, 0 }, 0x1EAE}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_abreve, 0, 0 }, 0x1EAF}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_Emacron, 0, 0 }, 0x1E16}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_emacron, 0, 0 }, 0x1E17}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_Omacron, 0, 0 }, 0x1E52}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_Utilde, 0, 0 }, 0x1E78}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_omacron, 0, 0 }, 0x1E53}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_utilde, 0, 0 }, 0x1E79}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_Cyrillic_ghe, 0, 0 }, 0x0453}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_Cyrillic_ka, 0, 0 }, 0x045C}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_Cyrillic_GHE, 0, 0 }, 0x0403}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_Cyrillic_KA, 0, 0 }, 0x040C}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_Greek_iotadieresis, 0, 0 }, 0x0390}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_Greek_upsilondieresis, 0, 0 }, 0x03B0}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_Greek_ALPHA, 0, 0 }, 0x0386}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_Greek_EPSILON, 0, 0 }, 0x0388}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_Greek_ETA, 0, 0 }, 0x0389}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_Greek_IOTA, 0, 0 }, 0x038A}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_Greek_OMICRON, 0, 0 }, 0x038C}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_Greek_UPSILON, 0, 0 }, 0x038E}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_Greek_OMEGA, 0, 0 }, 0x038F}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_Greek_alpha, 0, 0 }, 0x03AC}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_Greek_epsilon, 0, 0 }, 0x03AD}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_Greek_eta, 0, 0 }, 0x03AE}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_Greek_iota, 0, 0 }, 0x03AF}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_Greek_omicron, 0, 0 }, 0x03CC}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_Greek_upsilon, 0, 0 }, 0x03CD}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_Greek_omega, 0, 0 }, 0x03CE}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_combining_tilde, SCIM_KEY_O, 0 }, 0x1E4C}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_combining_tilde, SCIM_KEY_U, 0 }, 0x1E78}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_combining_tilde, SCIM_KEY_o, 0 }, 0x1E4D}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_combining_tilde, SCIM_KEY_u, 0 }, 0x1E79}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_Ohorn, 0, 0 }, 0x1EDA}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_ohorn, 0, 0 }, 0x1EDB}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_Uhorn, 0, 0 }, 0x1EE8}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_uhorn, 0, 0 }, 0x1EE9}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_dead_circumflex, SCIM_KEY_A, 0 }, 0x1EA4}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_dead_circumflex, SCIM_KEY_E, 0 }, 0x1EBE}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_dead_circumflex, SCIM_KEY_O, 0 }, 0x1ED0}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_dead_circumflex, SCIM_KEY_a, 0 }, 0x1EA5}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_dead_circumflex, SCIM_KEY_e, 0 }, 0x1EBF}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_dead_circumflex, SCIM_KEY_o, 0 }, 0x1ED1}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_dead_tilde, SCIM_KEY_O, 0 }, 0x1E4C}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_dead_tilde, SCIM_KEY_U, 0 }, 0x1E78}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_dead_tilde, SCIM_KEY_o, 0 }, 0x1E4D}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_dead_tilde, SCIM_KEY_u, 0 }, 0x1E79}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_dead_macron, SCIM_KEY_E, 0 }, 0x1E16}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_dead_macron, SCIM_KEY_O, 0 }, 0x1E52}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_dead_macron, SCIM_KEY_e, 0 }, 0x1E17}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_dead_macron, SCIM_KEY_o, 0 }, 0x1E53}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_dead_breve, SCIM_KEY_A, 0 }, 0x1EAE}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_dead_breve, SCIM_KEY_a, 0 }, 0x1EAF}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_dead_diaeresis, SCIM_KEY_I, 0 }, 0x1E2E}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_dead_diaeresis, SCIM_KEY_U, 0 }, 0x01D7}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_dead_diaeresis, SCIM_KEY_i, 0 }, 0x1E2F}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_dead_diaeresis, SCIM_KEY_u, 0 }, 0x01D8}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_dead_diaeresis, SCIM_KEY_Greek_iota, 0 }, 0x0390}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_dead_diaeresis, SCIM_KEY_Greek_upsilon, 0 }, 0x03B0}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_dead_abovering, SCIM_KEY_A, 0 }, 0x01FA}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_dead_abovering, SCIM_KEY_a, 0 }, 0x01FB}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_dead_cedilla, SCIM_KEY_C, 0 }, 0x1E08}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_dead_cedilla, SCIM_KEY_c, 0 }, 0x1E09}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_dead_horn, SCIM_KEY_O, 0 }, 0x1EDA}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_dead_horn, SCIM_KEY_U, 0 }, 0x1EE8}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_dead_horn, SCIM_KEY_o, 0 }, 0x1EDB}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_dead_horn, SCIM_KEY_u, 0 }, 0x1EE9}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_KP_Divide, SCIM_KEY_O, 0 }, 0x01FE}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, SCIM_KEY_KP_Divide, SCIM_KEY_o, 0 }, 0x01FF}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1000313, SCIM_KEY_Greek_ALPHA, 0 }, 0x1F0C}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1000313, SCIM_KEY_Greek_EPSILON, 0 }, 0x1F1C}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1000313, SCIM_KEY_Greek_ETA, 0 }, 0x1F2C}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1000313, SCIM_KEY_Greek_IOTA, 0 }, 0x1F3C}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1000313, SCIM_KEY_Greek_OMICRON, 0 }, 0x1F4C}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1000313, SCIM_KEY_Greek_OMEGA, 0 }, 0x1F6C}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1000313, SCIM_KEY_Greek_alpha, 0 }, 0x1F04}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1000313, SCIM_KEY_Greek_epsilon, 0 }, 0x1F14}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1000313, SCIM_KEY_Greek_eta, 0 }, 0x1F24}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1000313, SCIM_KEY_Greek_iota, 0 }, 0x1F34}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1000313, SCIM_KEY_Greek_omicron, 0 }, 0x1F44}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1000313, SCIM_KEY_Greek_upsilon, 0 }, 0x1F54}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1000313, SCIM_KEY_Greek_omega, 0 }, 0x1F64}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1000314, SCIM_KEY_Greek_ALPHA, 0 }, 0x1F0D}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1000314, SCIM_KEY_Greek_EPSILON, 0 }, 0x1F1D}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1000314, SCIM_KEY_Greek_ETA, 0 }, 0x1F2D}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1000314, SCIM_KEY_Greek_IOTA, 0 }, 0x1F3D}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1000314, SCIM_KEY_Greek_OMICRON, 0 }, 0x1F4D}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1000314, SCIM_KEY_Greek_UPSILON, 0 }, 0x1F5D}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1000314, SCIM_KEY_Greek_OMEGA, 0 }, 0x1F6D}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1000314, SCIM_KEY_Greek_alpha, 0 }, 0x1F05}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1000314, SCIM_KEY_Greek_epsilon, 0 }, 0x1F15}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1000314, SCIM_KEY_Greek_eta, 0 }, 0x1F25}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1000314, SCIM_KEY_Greek_iota, 0 }, 0x1F35}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1000314, SCIM_KEY_Greek_omicron, 0 }, 0x1F45}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1000314, SCIM_KEY_Greek_upsilon, 0 }, 0x1F55}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1000314, SCIM_KEY_Greek_omega, 0 }, 0x1F65}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x10003d2, 0, 0 }, 0x03D3}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1001f00, 0, 0 }, 0x1F04}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1001f01, 0, 0 }, 0x1F05}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1001f08, 0, 0 }, 0x1F0C}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1001f09, 0, 0 }, 0x1F0D}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1001f10, 0, 0 }, 0x1F14}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1001f11, 0, 0 }, 0x1F15}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1001f18, 0, 0 }, 0x1F1C}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1001f19, 0, 0 }, 0x1F1D}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1001f20, 0, 0 }, 0x1F24}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1001f21, 0, 0 }, 0x1F25}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1001f28, 0, 0 }, 0x1F2C}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1001f29, 0, 0 }, 0x1F2D}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1001f30, 0, 0 }, 0x1F34}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1001f31, 0, 0 }, 0x1F35}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1001f38, 0, 0 }, 0x1F3C}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1001f39, 0, 0 }, 0x1F3D}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1001f40, 0, 0 }, 0x1F44}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1001f41, 0, 0 }, 0x1F45}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1001f48, 0, 0 }, 0x1F4C}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1001f49, 0, 0 }, 0x1F4D}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1001f50, 0, 0 }, 0x1F54}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1001f51, 0, 0 }, 0x1F55}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1001f59, 0, 0 }, 0x1F5D}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1001f60, 0, 0 }, 0x1F64}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1001f61, 0, 0 }, 0x1F65}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1001f68, 0, 0 }, 0x1F6C}, {{SCIM_KEY_Multi_key, SCIM_KEY_apostrophe, 0x1001f69, 0, 0 }, 0x1F6D}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_space, 0, 0 }, 0x02D8}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_parenleft, 0, 0 }, 0x005B}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_minus, 0, 0 }, 0x007B}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_0, SCIM_KEY_parenright, 0 }, 0x24EA}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_1, SCIM_KEY_parenright, 0 }, 0x2460}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_1, SCIM_KEY_0, SCIM_KEY_parenright }, 0x2469}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_1, SCIM_KEY_1, SCIM_KEY_parenright }, 0x246A}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_1, SCIM_KEY_2, SCIM_KEY_parenright }, 0x246B}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_1, SCIM_KEY_3, SCIM_KEY_parenright }, 0x246C}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_1, SCIM_KEY_4, SCIM_KEY_parenright }, 0x246D}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_1, SCIM_KEY_5, SCIM_KEY_parenright }, 0x246E}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_1, SCIM_KEY_6, SCIM_KEY_parenright }, 0x246F}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_1, SCIM_KEY_7, SCIM_KEY_parenright }, 0x2470}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_1, SCIM_KEY_8, SCIM_KEY_parenright }, 0x2471}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_1, SCIM_KEY_9, SCIM_KEY_parenright }, 0x2472}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_1, SCIM_KEY_KP_Space, SCIM_KEY_parenright }, 0x246B}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_1, SCIM_KEY_KP_0, SCIM_KEY_parenright }, 0x2469}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_1, SCIM_KEY_KP_1, SCIM_KEY_parenright }, 0x246A}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_1, SCIM_KEY_KP_2, SCIM_KEY_parenright }, 0x246B}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_1, SCIM_KEY_KP_3, SCIM_KEY_parenright }, 0x246C}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_1, SCIM_KEY_KP_4, SCIM_KEY_parenright }, 0x246D}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_1, SCIM_KEY_KP_5, SCIM_KEY_parenright }, 0x246E}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_1, SCIM_KEY_KP_6, SCIM_KEY_parenright }, 0x246F}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_1, SCIM_KEY_KP_7, SCIM_KEY_parenright }, 0x2470}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_1, SCIM_KEY_KP_8, SCIM_KEY_parenright }, 0x2471}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_1, SCIM_KEY_KP_9, SCIM_KEY_parenright }, 0x2472}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_2, SCIM_KEY_parenright, 0 }, 0x2461}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_2, SCIM_KEY_0, SCIM_KEY_parenright }, 0x2473}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_2, SCIM_KEY_1, SCIM_KEY_parenright }, 0x3251}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_2, SCIM_KEY_2, SCIM_KEY_parenright }, 0x3252}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_2, SCIM_KEY_3, SCIM_KEY_parenright }, 0x3253}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_2, SCIM_KEY_4, SCIM_KEY_parenright }, 0x3254}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_2, SCIM_KEY_5, SCIM_KEY_parenright }, 0x3255}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_2, SCIM_KEY_6, SCIM_KEY_parenright }, 0x3256}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_2, SCIM_KEY_7, SCIM_KEY_parenright }, 0x3257}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_2, SCIM_KEY_8, SCIM_KEY_parenright }, 0x3258}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_2, SCIM_KEY_9, SCIM_KEY_parenright }, 0x3259}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_2, SCIM_KEY_KP_Space, SCIM_KEY_parenright }, 0x3252}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_2, SCIM_KEY_KP_0, SCIM_KEY_parenright }, 0x2473}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_2, SCIM_KEY_KP_1, SCIM_KEY_parenright }, 0x3251}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_2, SCIM_KEY_KP_2, SCIM_KEY_parenright }, 0x3252}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_2, SCIM_KEY_KP_3, SCIM_KEY_parenright }, 0x3253}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_2, SCIM_KEY_KP_4, SCIM_KEY_parenright }, 0x3254}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_2, SCIM_KEY_KP_5, SCIM_KEY_parenright }, 0x3255}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_2, SCIM_KEY_KP_6, SCIM_KEY_parenright }, 0x3256}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_2, SCIM_KEY_KP_7, SCIM_KEY_parenright }, 0x3257}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_2, SCIM_KEY_KP_8, SCIM_KEY_parenright }, 0x3258}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_2, SCIM_KEY_KP_9, SCIM_KEY_parenright }, 0x3259}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_3, SCIM_KEY_parenright, 0 }, 0x2462}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_3, SCIM_KEY_0, SCIM_KEY_parenright }, 0x325A}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_3, SCIM_KEY_1, SCIM_KEY_parenright }, 0x325B}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_3, SCIM_KEY_2, SCIM_KEY_parenright }, 0x325C}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_3, SCIM_KEY_3, SCIM_KEY_parenright }, 0x325D}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_3, SCIM_KEY_4, SCIM_KEY_parenright }, 0x325E}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_3, SCIM_KEY_5, SCIM_KEY_parenright }, 0x325F}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_3, SCIM_KEY_6, SCIM_KEY_parenright }, 0x32B1}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_3, SCIM_KEY_7, SCIM_KEY_parenright }, 0x32B2}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_3, SCIM_KEY_8, SCIM_KEY_parenright }, 0x32B3}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_3, SCIM_KEY_9, SCIM_KEY_parenright }, 0x32B4}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_3, SCIM_KEY_KP_Space, SCIM_KEY_parenright }, 0x325C}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_3, SCIM_KEY_KP_0, SCIM_KEY_parenright }, 0x325A}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_3, SCIM_KEY_KP_1, SCIM_KEY_parenright }, 0x325B}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_3, SCIM_KEY_KP_2, SCIM_KEY_parenright }, 0x325C}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_3, SCIM_KEY_KP_3, SCIM_KEY_parenright }, 0x325D}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_3, SCIM_KEY_KP_4, SCIM_KEY_parenright }, 0x325E}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_3, SCIM_KEY_KP_5, SCIM_KEY_parenright }, 0x325F}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_3, SCIM_KEY_KP_6, SCIM_KEY_parenright }, 0x32B1}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_3, SCIM_KEY_KP_7, SCIM_KEY_parenright }, 0x32B2}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_3, SCIM_KEY_KP_8, SCIM_KEY_parenright }, 0x32B3}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_3, SCIM_KEY_KP_9, SCIM_KEY_parenright }, 0x32B4}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_4, SCIM_KEY_parenright, 0 }, 0x2463}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_4, SCIM_KEY_0, SCIM_KEY_parenright }, 0x32B5}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_4, SCIM_KEY_1, SCIM_KEY_parenright }, 0x32B6}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_4, SCIM_KEY_2, SCIM_KEY_parenright }, 0x32B7}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_4, SCIM_KEY_3, SCIM_KEY_parenright }, 0x32B8}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_4, SCIM_KEY_4, SCIM_KEY_parenright }, 0x32B9}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_4, SCIM_KEY_5, SCIM_KEY_parenright }, 0x32BA}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_4, SCIM_KEY_6, SCIM_KEY_parenright }, 0x32BB}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_4, SCIM_KEY_7, SCIM_KEY_parenright }, 0x32BC}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_4, SCIM_KEY_8, SCIM_KEY_parenright }, 0x32BD}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_4, SCIM_KEY_9, SCIM_KEY_parenright }, 0x32BE}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_4, SCIM_KEY_KP_Space, SCIM_KEY_parenright }, 0x32B7}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_4, SCIM_KEY_KP_0, SCIM_KEY_parenright }, 0x32B5}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_4, SCIM_KEY_KP_1, SCIM_KEY_parenright }, 0x32B6}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_4, SCIM_KEY_KP_2, SCIM_KEY_parenright }, 0x32B7}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_4, SCIM_KEY_KP_3, SCIM_KEY_parenright }, 0x32B8}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_4, SCIM_KEY_KP_4, SCIM_KEY_parenright }, 0x32B9}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_4, SCIM_KEY_KP_5, SCIM_KEY_parenright }, 0x32BA}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_4, SCIM_KEY_KP_6, SCIM_KEY_parenright }, 0x32BB}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_4, SCIM_KEY_KP_7, SCIM_KEY_parenright }, 0x32BC}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_4, SCIM_KEY_KP_8, SCIM_KEY_parenright }, 0x32BD}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_4, SCIM_KEY_KP_9, SCIM_KEY_parenright }, 0x32BE}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_5, SCIM_KEY_parenright, 0 }, 0x2464}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_5, SCIM_KEY_0, SCIM_KEY_parenright }, 0x32BF}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_5, SCIM_KEY_KP_0, SCIM_KEY_parenright }, 0x32BF}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_6, SCIM_KEY_parenright, 0 }, 0x2465}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_7, SCIM_KEY_parenright, 0 }, 0x2466}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_8, SCIM_KEY_parenright, 0 }, 0x2467}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_9, SCIM_KEY_parenright, 0 }, 0x2468}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_A, 0, 0 }, 0x0102}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_A, SCIM_KEY_parenright, 0 }, 0x24B6}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_B, SCIM_KEY_parenright, 0 }, 0x24B7}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_C, SCIM_KEY_parenright, 0 }, 0x24B8}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_D, SCIM_KEY_parenright, 0 }, 0x24B9}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_E, SCIM_KEY_parenright, 0 }, 0x24BA}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_F, SCIM_KEY_parenright, 0 }, 0x24BB}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_G, 0, 0 }, 0x011E}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_G, SCIM_KEY_parenright, 0 }, 0x24BC}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_H, SCIM_KEY_parenright, 0 }, 0x24BD}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_I, SCIM_KEY_parenright, 0 }, 0x24BE}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_J, SCIM_KEY_parenright, 0 }, 0x24BF}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_K, SCIM_KEY_parenright, 0 }, 0x24C0}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_L, SCIM_KEY_parenright, 0 }, 0x24C1}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_M, SCIM_KEY_parenright, 0 }, 0x24C2}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_N, SCIM_KEY_parenright, 0 }, 0x24C3}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_O, SCIM_KEY_parenright, 0 }, 0x24C4}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_P, SCIM_KEY_parenright, 0 }, 0x24C5}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Q, SCIM_KEY_parenright, 0 }, 0x24C6}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_R, SCIM_KEY_parenright, 0 }, 0x24C7}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_S, SCIM_KEY_parenright, 0 }, 0x24C8}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_T, SCIM_KEY_parenright, 0 }, 0x24C9}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_U, SCIM_KEY_parenright, 0 }, 0x24CA}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_V, SCIM_KEY_parenright, 0 }, 0x24CB}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_W, SCIM_KEY_parenright, 0 }, 0x24CC}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_X, SCIM_KEY_parenright, 0 }, 0x24CD}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Y, SCIM_KEY_parenright, 0 }, 0x24CE}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Z, SCIM_KEY_parenright, 0 }, 0x24CF}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_a, 0, 0 }, 0x0103}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_a, SCIM_KEY_parenright, 0 }, 0x24D0}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_b, SCIM_KEY_parenright, 0 }, 0x24D1}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_c, 0, 0 }, 0x00A9}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_c, SCIM_KEY_parenright, 0 }, 0x24D2}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_d, SCIM_KEY_parenright, 0 }, 0x24D3}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_e, SCIM_KEY_parenright, 0 }, 0x24D4}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_f, SCIM_KEY_parenright, 0 }, 0x24D5}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_g, 0, 0 }, 0x011F}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_g, SCIM_KEY_parenright, 0 }, 0x24D6}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_h, SCIM_KEY_parenright, 0 }, 0x24D7}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_i, SCIM_KEY_parenright, 0 }, 0x24D8}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_j, SCIM_KEY_parenright, 0 }, 0x24D9}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_k, SCIM_KEY_parenright, 0 }, 0x24DA}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_l, SCIM_KEY_parenright, 0 }, 0x24DB}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_m, SCIM_KEY_parenright, 0 }, 0x24DC}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_n, SCIM_KEY_parenright, 0 }, 0x24DD}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_o, SCIM_KEY_parenright, 0 }, 0x24DE}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_p, SCIM_KEY_parenright, 0 }, 0x24DF}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_q, SCIM_KEY_parenright, 0 }, 0x24E0}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_r, 0, 0 }, 0x00AE}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_r, SCIM_KEY_parenright, 0 }, 0x24E1}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_s, SCIM_KEY_parenright, 0 }, 0x24E2}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_t, SCIM_KEY_parenright, 0 }, 0x24E3}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_u, SCIM_KEY_parenright, 0 }, 0x24E4}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_v, SCIM_KEY_parenright, 0 }, 0x24E5}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_w, SCIM_KEY_parenright, 0 }, 0x24E6}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_x, SCIM_KEY_parenright, 0 }, 0x24E7}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_y, SCIM_KEY_parenright, 0 }, 0x24E8}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_z, SCIM_KEY_parenright, 0 }, 0x24E9}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_kana_WO, SCIM_KEY_parenright, 0 }, 0x32FE}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_kana_A, SCIM_KEY_parenright, 0 }, 0x32D0}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_kana_I, SCIM_KEY_parenright, 0 }, 0x32D1}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_kana_U, SCIM_KEY_parenright, 0 }, 0x32D2}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_kana_E, SCIM_KEY_parenright, 0 }, 0x32D3}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_kana_O, SCIM_KEY_parenright, 0 }, 0x32D4}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_kana_KA, SCIM_KEY_parenright, 0 }, 0x32D5}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_kana_KI, SCIM_KEY_parenright, 0 }, 0x32D6}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_kana_KU, SCIM_KEY_parenright, 0 }, 0x32D7}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_kana_KE, SCIM_KEY_parenright, 0 }, 0x32D8}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_kana_KO, SCIM_KEY_parenright, 0 }, 0x32D9}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_kana_SA, SCIM_KEY_parenright, 0 }, 0x32DA}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_kana_SHI, SCIM_KEY_parenright, 0 }, 0x32DB}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_kana_SU, SCIM_KEY_parenright, 0 }, 0x32DC}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_kana_SE, SCIM_KEY_parenright, 0 }, 0x32DD}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_kana_SO, SCIM_KEY_parenright, 0 }, 0x32DE}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_kana_TA, SCIM_KEY_parenright, 0 }, 0x32DF}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_kana_CHI, SCIM_KEY_parenright, 0 }, 0x32E0}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_kana_TSU, SCIM_KEY_parenright, 0 }, 0x32E1}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_kana_TE, SCIM_KEY_parenright, 0 }, 0x32E2}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_kana_TO, SCIM_KEY_parenright, 0 }, 0x32E3}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_kana_NA, SCIM_KEY_parenright, 0 }, 0x32E4}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_kana_NI, SCIM_KEY_parenright, 0 }, 0x32E5}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_kana_NU, SCIM_KEY_parenright, 0 }, 0x32E6}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_kana_NE, SCIM_KEY_parenright, 0 }, 0x32E7}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_kana_NO, SCIM_KEY_parenright, 0 }, 0x32E8}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_kana_HA, SCIM_KEY_parenright, 0 }, 0x32E9}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_kana_HI, SCIM_KEY_parenright, 0 }, 0x32EA}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_kana_FU, SCIM_KEY_parenright, 0 }, 0x32EB}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_kana_HE, SCIM_KEY_parenright, 0 }, 0x32EC}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_kana_HO, SCIM_KEY_parenright, 0 }, 0x32ED}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_kana_MA, SCIM_KEY_parenright, 0 }, 0x32EE}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_kana_MI, SCIM_KEY_parenright, 0 }, 0x32EF}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_kana_MU, SCIM_KEY_parenright, 0 }, 0x32F0}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_kana_ME, SCIM_KEY_parenright, 0 }, 0x32F1}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_kana_MO, SCIM_KEY_parenright, 0 }, 0x32F2}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_kana_YA, SCIM_KEY_parenright, 0 }, 0x32F3}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_kana_YU, SCIM_KEY_parenright, 0 }, 0x32F4}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_kana_YO, SCIM_KEY_parenright, 0 }, 0x32F5}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_kana_RA, SCIM_KEY_parenright, 0 }, 0x32F6}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_kana_RI, SCIM_KEY_parenright, 0 }, 0x32F7}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_kana_RU, SCIM_KEY_parenright, 0 }, 0x32F8}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_kana_RE, SCIM_KEY_parenright, 0 }, 0x32F9}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_kana_RO, SCIM_KEY_parenright, 0 }, 0x32FA}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_kana_WA, SCIM_KEY_parenright, 0 }, 0x32FB}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_ALPHA, 0, 0 }, 0x1F09}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_EPSILON, 0, 0 }, 0x1F19}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_ETA, 0, 0 }, 0x1F29}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_IOTA, 0, 0 }, 0x1F39}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_OMICRON, 0, 0 }, 0x1F49}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_RHO, 0, 0 }, 0x1FEC}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_UPSILON, 0, 0 }, 0x1F59}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_OMEGA, 0, 0 }, 0x1F69}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_alpha, 0, 0 }, 0x1F01}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_epsilon, 0, 0 }, 0x1F11}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_eta, 0, 0 }, 0x1F21}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_iota, 0, 0 }, 0x1F31}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_omicron, 0, 0 }, 0x1F41}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_rho, 0, 0 }, 0x1FE5}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_upsilon, 0, 0 }, 0x1F51}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_omega, 0, 0 }, 0x1F61}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_Space, SCIM_KEY_parenright, 0 }, 0x2461}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_Space, SCIM_KEY_0, SCIM_KEY_parenright }, 0x2473}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_Space, SCIM_KEY_1, SCIM_KEY_parenright }, 0x3251}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_Space, SCIM_KEY_2, SCIM_KEY_parenright }, 0x3252}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_Space, SCIM_KEY_3, SCIM_KEY_parenright }, 0x3253}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_Space, SCIM_KEY_4, SCIM_KEY_parenright }, 0x3254}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_Space, SCIM_KEY_5, SCIM_KEY_parenright }, 0x3255}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_Space, SCIM_KEY_6, SCIM_KEY_parenright }, 0x3256}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_Space, SCIM_KEY_7, SCIM_KEY_parenright }, 0x3257}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_Space, SCIM_KEY_8, SCIM_KEY_parenright }, 0x3258}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_Space, SCIM_KEY_9, SCIM_KEY_parenright }, 0x3259}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_Space, SCIM_KEY_KP_Space, SCIM_KEY_parenright }, 0x3252}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_Space, SCIM_KEY_KP_0, SCIM_KEY_parenright }, 0x2473}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_Space, SCIM_KEY_KP_1, SCIM_KEY_parenright }, 0x3251}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_Space, SCIM_KEY_KP_2, SCIM_KEY_parenright }, 0x3252}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_Space, SCIM_KEY_KP_3, SCIM_KEY_parenright }, 0x3253}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_Space, SCIM_KEY_KP_4, SCIM_KEY_parenright }, 0x3254}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_Space, SCIM_KEY_KP_5, SCIM_KEY_parenright }, 0x3255}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_Space, SCIM_KEY_KP_6, SCIM_KEY_parenright }, 0x3256}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_Space, SCIM_KEY_KP_7, SCIM_KEY_parenright }, 0x3257}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_Space, SCIM_KEY_KP_8, SCIM_KEY_parenright }, 0x3258}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_Space, SCIM_KEY_KP_9, SCIM_KEY_parenright }, 0x3259}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_0, SCIM_KEY_parenright, 0 }, 0x24EA}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_1, SCIM_KEY_parenright, 0 }, 0x2460}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_1, SCIM_KEY_0, SCIM_KEY_parenright }, 0x2469}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_1, SCIM_KEY_1, SCIM_KEY_parenright }, 0x246A}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_1, SCIM_KEY_2, SCIM_KEY_parenright }, 0x246B}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_1, SCIM_KEY_3, SCIM_KEY_parenright }, 0x246C}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_1, SCIM_KEY_4, SCIM_KEY_parenright }, 0x246D}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_1, SCIM_KEY_5, SCIM_KEY_parenright }, 0x246E}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_1, SCIM_KEY_6, SCIM_KEY_parenright }, 0x246F}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_1, SCIM_KEY_7, SCIM_KEY_parenright }, 0x2470}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_1, SCIM_KEY_8, SCIM_KEY_parenright }, 0x2471}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_1, SCIM_KEY_9, SCIM_KEY_parenright }, 0x2472}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_1, SCIM_KEY_KP_Space, SCIM_KEY_parenright }, 0x246B}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_1, SCIM_KEY_KP_0, SCIM_KEY_parenright }, 0x2469}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_1, SCIM_KEY_KP_1, SCIM_KEY_parenright }, 0x246A}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_1, SCIM_KEY_KP_2, SCIM_KEY_parenright }, 0x246B}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_1, SCIM_KEY_KP_3, SCIM_KEY_parenright }, 0x246C}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_1, SCIM_KEY_KP_4, SCIM_KEY_parenright }, 0x246D}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_1, SCIM_KEY_KP_5, SCIM_KEY_parenright }, 0x246E}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_1, SCIM_KEY_KP_6, SCIM_KEY_parenright }, 0x246F}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_1, SCIM_KEY_KP_7, SCIM_KEY_parenright }, 0x2470}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_1, SCIM_KEY_KP_8, SCIM_KEY_parenright }, 0x2471}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_1, SCIM_KEY_KP_9, SCIM_KEY_parenright }, 0x2472}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_2, SCIM_KEY_parenright, 0 }, 0x2461}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_2, SCIM_KEY_0, SCIM_KEY_parenright }, 0x2473}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_2, SCIM_KEY_1, SCIM_KEY_parenright }, 0x3251}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_2, SCIM_KEY_2, SCIM_KEY_parenright }, 0x3252}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_2, SCIM_KEY_3, SCIM_KEY_parenright }, 0x3253}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_2, SCIM_KEY_4, SCIM_KEY_parenright }, 0x3254}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_2, SCIM_KEY_5, SCIM_KEY_parenright }, 0x3255}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_2, SCIM_KEY_6, SCIM_KEY_parenright }, 0x3256}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_2, SCIM_KEY_7, SCIM_KEY_parenright }, 0x3257}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_2, SCIM_KEY_8, SCIM_KEY_parenright }, 0x3258}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_2, SCIM_KEY_9, SCIM_KEY_parenright }, 0x3259}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_2, SCIM_KEY_KP_Space, SCIM_KEY_parenright }, 0x3252}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_2, SCIM_KEY_KP_0, SCIM_KEY_parenright }, 0x2473}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_2, SCIM_KEY_KP_1, SCIM_KEY_parenright }, 0x3251}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_2, SCIM_KEY_KP_2, SCIM_KEY_parenright }, 0x3252}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_2, SCIM_KEY_KP_3, SCIM_KEY_parenright }, 0x3253}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_2, SCIM_KEY_KP_4, SCIM_KEY_parenright }, 0x3254}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_2, SCIM_KEY_KP_5, SCIM_KEY_parenright }, 0x3255}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_2, SCIM_KEY_KP_6, SCIM_KEY_parenright }, 0x3256}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_2, SCIM_KEY_KP_7, SCIM_KEY_parenright }, 0x3257}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_2, SCIM_KEY_KP_8, SCIM_KEY_parenright }, 0x3258}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_2, SCIM_KEY_KP_9, SCIM_KEY_parenright }, 0x3259}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_3, SCIM_KEY_parenright, 0 }, 0x2462}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_3, SCIM_KEY_0, SCIM_KEY_parenright }, 0x325A}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_3, SCIM_KEY_1, SCIM_KEY_parenright }, 0x325B}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_3, SCIM_KEY_2, SCIM_KEY_parenright }, 0x325C}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_3, SCIM_KEY_3, SCIM_KEY_parenright }, 0x325D}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_3, SCIM_KEY_4, SCIM_KEY_parenright }, 0x325E}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_3, SCIM_KEY_5, SCIM_KEY_parenright }, 0x325F}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_3, SCIM_KEY_6, SCIM_KEY_parenright }, 0x32B1}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_3, SCIM_KEY_7, SCIM_KEY_parenright }, 0x32B2}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_3, SCIM_KEY_8, SCIM_KEY_parenright }, 0x32B3}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_3, SCIM_KEY_9, SCIM_KEY_parenright }, 0x32B4}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_3, SCIM_KEY_KP_Space, SCIM_KEY_parenright }, 0x325C}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_3, SCIM_KEY_KP_0, SCIM_KEY_parenright }, 0x325A}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_3, SCIM_KEY_KP_1, SCIM_KEY_parenright }, 0x325B}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_3, SCIM_KEY_KP_2, SCIM_KEY_parenright }, 0x325C}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_3, SCIM_KEY_KP_3, SCIM_KEY_parenright }, 0x325D}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_3, SCIM_KEY_KP_4, SCIM_KEY_parenright }, 0x325E}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_3, SCIM_KEY_KP_5, SCIM_KEY_parenright }, 0x325F}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_3, SCIM_KEY_KP_6, SCIM_KEY_parenright }, 0x32B1}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_3, SCIM_KEY_KP_7, SCIM_KEY_parenright }, 0x32B2}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_3, SCIM_KEY_KP_8, SCIM_KEY_parenright }, 0x32B3}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_3, SCIM_KEY_KP_9, SCIM_KEY_parenright }, 0x32B4}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_4, SCIM_KEY_parenright, 0 }, 0x2463}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_4, SCIM_KEY_0, SCIM_KEY_parenright }, 0x32B5}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_4, SCIM_KEY_1, SCIM_KEY_parenright }, 0x32B6}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_4, SCIM_KEY_2, SCIM_KEY_parenright }, 0x32B7}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_4, SCIM_KEY_3, SCIM_KEY_parenright }, 0x32B8}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_4, SCIM_KEY_4, SCIM_KEY_parenright }, 0x32B9}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_4, SCIM_KEY_5, SCIM_KEY_parenright }, 0x32BA}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_4, SCIM_KEY_6, SCIM_KEY_parenright }, 0x32BB}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_4, SCIM_KEY_7, SCIM_KEY_parenright }, 0x32BC}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_4, SCIM_KEY_8, SCIM_KEY_parenright }, 0x32BD}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_4, SCIM_KEY_9, SCIM_KEY_parenright }, 0x32BE}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_4, SCIM_KEY_KP_Space, SCIM_KEY_parenright }, 0x32B7}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_4, SCIM_KEY_KP_0, SCIM_KEY_parenright }, 0x32B5}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_4, SCIM_KEY_KP_1, SCIM_KEY_parenright }, 0x32B6}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_4, SCIM_KEY_KP_2, SCIM_KEY_parenright }, 0x32B7}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_4, SCIM_KEY_KP_3, SCIM_KEY_parenright }, 0x32B8}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_4, SCIM_KEY_KP_4, SCIM_KEY_parenright }, 0x32B9}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_4, SCIM_KEY_KP_5, SCIM_KEY_parenright }, 0x32BA}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_4, SCIM_KEY_KP_6, SCIM_KEY_parenright }, 0x32BB}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_4, SCIM_KEY_KP_7, SCIM_KEY_parenright }, 0x32BC}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_4, SCIM_KEY_KP_8, SCIM_KEY_parenright }, 0x32BD}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_4, SCIM_KEY_KP_9, SCIM_KEY_parenright }, 0x32BE}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_5, SCIM_KEY_parenright, 0 }, 0x2464}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_5, SCIM_KEY_0, SCIM_KEY_parenright }, 0x32BF}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_5, SCIM_KEY_KP_0, SCIM_KEY_parenright }, 0x32BF}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_6, SCIM_KEY_parenright, 0 }, 0x2465}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_7, SCIM_KEY_parenright, 0 }, 0x2466}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_8, SCIM_KEY_parenright, 0 }, 0x2467}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_KP_9, SCIM_KEY_parenright, 0 }, 0x2468}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x1001100, SCIM_KEY_parenright, 0 }, 0x3260}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x1001100, 0x1001161, SCIM_KEY_parenright }, 0x326E}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x1001102, SCIM_KEY_parenright, 0 }, 0x3261}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x1001102, 0x1001161, SCIM_KEY_parenright }, 0x326F}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x1001103, SCIM_KEY_parenright, 0 }, 0x3262}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x1001103, 0x1001161, SCIM_KEY_parenright }, 0x3270}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x1001105, SCIM_KEY_parenright, 0 }, 0x3263}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x1001105, 0x1001161, SCIM_KEY_parenright }, 0x3271}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x1001106, SCIM_KEY_parenright, 0 }, 0x3264}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x1001106, 0x1001161, SCIM_KEY_parenright }, 0x3272}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x1001107, SCIM_KEY_parenright, 0 }, 0x3265}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x1001107, 0x1001161, SCIM_KEY_parenright }, 0x3273}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x1001109, SCIM_KEY_parenright, 0 }, 0x3266}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x1001109, 0x1001161, SCIM_KEY_parenright }, 0x3274}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x100110b, SCIM_KEY_parenright, 0 }, 0x3267}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x100110b, 0x1001161, SCIM_KEY_parenright }, 0x3275}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x100110c, SCIM_KEY_parenright, 0 }, 0x3268}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x100110c, 0x1001161, SCIM_KEY_parenright }, 0x3276}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x100110e, SCIM_KEY_parenright, 0 }, 0x3269}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x100110e, 0x1001161, SCIM_KEY_parenright }, 0x3277}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x100110f, SCIM_KEY_parenright, 0 }, 0x326A}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x100110f, 0x1001161, SCIM_KEY_parenright }, 0x3278}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x1001110, SCIM_KEY_parenright, 0 }, 0x326B}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x1001110, 0x1001161, SCIM_KEY_parenright }, 0x3279}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x1001111, SCIM_KEY_parenright, 0 }, 0x326C}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x1001111, 0x1001161, SCIM_KEY_parenright }, 0x327A}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x1001112, SCIM_KEY_parenright, 0 }, 0x326D}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x1001112, 0x1001161, SCIM_KEY_parenright }, 0x327B}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x10030f0, SCIM_KEY_parenright, 0 }, 0x32FC}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x10030f1, SCIM_KEY_parenright, 0 }, 0x32FD}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x1004e00, SCIM_KEY_parenright, 0 }, 0x3280}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x1004e03, SCIM_KEY_parenright, 0 }, 0x3286}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x1004e09, SCIM_KEY_parenright, 0 }, 0x3282}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x1004e0a, SCIM_KEY_parenright, 0 }, 0x32A4}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x1004e0b, SCIM_KEY_parenright, 0 }, 0x32A6}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x1004e2d, SCIM_KEY_parenright, 0 }, 0x32A5}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x1004e5d, SCIM_KEY_parenright, 0 }, 0x3288}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x1004e8c, SCIM_KEY_parenright, 0 }, 0x3281}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x1004e94, SCIM_KEY_parenright, 0 }, 0x3284}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x1004f01, SCIM_KEY_parenright, 0 }, 0x32AD}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x1004f11, SCIM_KEY_parenright, 0 }, 0x32A1}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x100512a, SCIM_KEY_parenright, 0 }, 0x329D}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x100516b, SCIM_KEY_parenright, 0 }, 0x3287}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x100516d, SCIM_KEY_parenright, 0 }, 0x3285}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x1005199, SCIM_KEY_parenright, 0 }, 0x32A2}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x10052b4, SCIM_KEY_parenright, 0 }, 0x3298}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x100533b, SCIM_KEY_parenright, 0 }, 0x32A9}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x1005341, SCIM_KEY_parenright, 0 }, 0x3289}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x1005354, SCIM_KEY_parenright, 0 }, 0x32AF}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x1005370, SCIM_KEY_parenright, 0 }, 0x329E}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x10053f3, SCIM_KEY_parenright, 0 }, 0x32A8}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x100540d, SCIM_KEY_parenright, 0 }, 0x3294}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x10056db, SCIM_KEY_parenright, 0 }, 0x3283}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x100571f, SCIM_KEY_parenright, 0 }, 0x328F}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x100591c, SCIM_KEY_parenright, 0 }, 0x32B0}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x1005973, SCIM_KEY_parenright, 0 }, 0x329B}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x1005b66, SCIM_KEY_parenright, 0 }, 0x32AB}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x1005b97, SCIM_KEY_parenright, 0 }, 0x32AA}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x1005de6, SCIM_KEY_parenright, 0 }, 0x32A7}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x10065e5, SCIM_KEY_parenright, 0 }, 0x3290}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x1006708, SCIM_KEY_parenright, 0 }, 0x328A}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x1006709, SCIM_KEY_parenright, 0 }, 0x3292}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x1006728, SCIM_KEY_parenright, 0 }, 0x328D}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x100682a, SCIM_KEY_parenright, 0 }, 0x3291}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x1006b63, SCIM_KEY_parenright, 0 }, 0x32A3}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x1006c34, SCIM_KEY_parenright, 0 }, 0x328C}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x1006ce8, SCIM_KEY_parenright, 0 }, 0x329F}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x100706b, SCIM_KEY_parenright, 0 }, 0x328B}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x1007279, SCIM_KEY_parenright, 0 }, 0x3295}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x1007537, SCIM_KEY_parenright, 0 }, 0x329A}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x10076e3, SCIM_KEY_parenright, 0 }, 0x32AC}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x100793e, SCIM_KEY_parenright, 0 }, 0x3293}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x100795d, SCIM_KEY_parenright, 0 }, 0x3297}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x10079d8, SCIM_KEY_parenright, 0 }, 0x3299}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x1008ca1, SCIM_KEY_parenright, 0 }, 0x3296}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x1008cc7, SCIM_KEY_parenright, 0 }, 0x32AE}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x1009069, SCIM_KEY_parenright, 0 }, 0x329C}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x10091d1, SCIM_KEY_parenright, 0 }, 0x328E}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenleft, 0x1009805, SCIM_KEY_parenright, 0 }, 0x32A0}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_parenright, 0, 0 }, 0x005D}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_minus, 0, 0 }, 0x007D}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_ALPHA, 0, 0 }, 0x1F08}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_EPSILON, 0, 0 }, 0x1F18}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_ETA, 0, 0 }, 0x1F28}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_IOTA, 0, 0 }, 0x1F38}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_OMICRON, 0, 0 }, 0x1F48}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_OMEGA, 0, 0 }, 0x1F68}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_alpha, 0, 0 }, 0x1F00}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_epsilon, 0, 0 }, 0x1F10}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_eta, 0, 0 }, 0x1F20}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_iota, 0, 0 }, 0x1F30}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_omicron, 0, 0 }, 0x1F40}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_rho, 0, 0 }, 0x1FE4}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_upsilon, 0, 0 }, 0x1F50}, {{SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_omega, 0, 0 }, 0x1F60}, {{SCIM_KEY_Multi_key, SCIM_KEY_asterisk, SCIM_KEY_0, 0, 0 }, 0x00B0}, {{SCIM_KEY_Multi_key, SCIM_KEY_asterisk, SCIM_KEY_A, 0, 0 }, 0x00C5}, {{SCIM_KEY_Multi_key, SCIM_KEY_asterisk, SCIM_KEY_U, 0, 0 }, 0x016E}, {{SCIM_KEY_Multi_key, SCIM_KEY_asterisk, SCIM_KEY_a, 0, 0 }, 0x00E5}, {{SCIM_KEY_Multi_key, SCIM_KEY_asterisk, SCIM_KEY_u, 0, 0 }, 0x016F}, {{SCIM_KEY_Multi_key, SCIM_KEY_plus, SCIM_KEY_plus, 0, 0 }, 0x0023}, {{SCIM_KEY_Multi_key, SCIM_KEY_plus, SCIM_KEY_minus, 0, 0 }, 0x00B1}, {{SCIM_KEY_Multi_key, SCIM_KEY_plus, SCIM_KEY_O, 0, 0 }, 0x01A0}, {{SCIM_KEY_Multi_key, SCIM_KEY_plus, SCIM_KEY_U, 0, 0 }, 0x01AF}, {{SCIM_KEY_Multi_key, SCIM_KEY_plus, SCIM_KEY_o, 0, 0 }, 0x01A1}, {{SCIM_KEY_Multi_key, SCIM_KEY_plus, SCIM_KEY_u, 0, 0 }, 0x01B0}, {{SCIM_KEY_Multi_key, SCIM_KEY_comma, SCIM_KEY_space, 0, 0 }, 0x00B8}, {{SCIM_KEY_Multi_key, SCIM_KEY_comma, SCIM_KEY_quotedbl, 0, 0 }, 0x201E}, {{SCIM_KEY_Multi_key, SCIM_KEY_comma, SCIM_KEY_apostrophe, 0, 0 }, 0x201A}, {{SCIM_KEY_Multi_key, SCIM_KEY_comma, SCIM_KEY_comma, 0, 0 }, 0x00B8}, {{SCIM_KEY_Multi_key, SCIM_KEY_comma, SCIM_KEY_minus, 0, 0 }, 0x00AC}, {{SCIM_KEY_Multi_key, SCIM_KEY_comma, SCIM_KEY_A, 0, 0 }, 0x0104}, {{SCIM_KEY_Multi_key, SCIM_KEY_comma, SCIM_KEY_C, 0, 0 }, 0x00C7}, {{SCIM_KEY_Multi_key, SCIM_KEY_comma, SCIM_KEY_D, 0, 0 }, 0x1E10}, {{SCIM_KEY_Multi_key, SCIM_KEY_comma, SCIM_KEY_E, 0, 0 }, 0x0228}, {{SCIM_KEY_Multi_key, SCIM_KEY_comma, SCIM_KEY_G, 0, 0 }, 0x0122}, {{SCIM_KEY_Multi_key, SCIM_KEY_comma, SCIM_KEY_H, 0, 0 }, 0x1E28}, {{SCIM_KEY_Multi_key, SCIM_KEY_comma, SCIM_KEY_I, 0, 0 }, 0x012E}, {{SCIM_KEY_Multi_key, SCIM_KEY_comma, SCIM_KEY_K, 0, 0 }, 0x0136}, {{SCIM_KEY_Multi_key, SCIM_KEY_comma, SCIM_KEY_L, 0, 0 }, 0x013B}, {{SCIM_KEY_Multi_key, SCIM_KEY_comma, SCIM_KEY_N, 0, 0 }, 0x0145}, {{SCIM_KEY_Multi_key, SCIM_KEY_comma, SCIM_KEY_R, 0, 0 }, 0x0156}, {{SCIM_KEY_Multi_key, SCIM_KEY_comma, SCIM_KEY_S, 0, 0 }, 0x015E}, {{SCIM_KEY_Multi_key, SCIM_KEY_comma, SCIM_KEY_T, 0, 0 }, 0x0162}, {{SCIM_KEY_Multi_key, SCIM_KEY_comma, SCIM_KEY_U, 0, 0 }, 0x0172}, {{SCIM_KEY_Multi_key, SCIM_KEY_comma, SCIM_KEY_a, 0, 0 }, 0x0105}, {{SCIM_KEY_Multi_key, SCIM_KEY_comma, SCIM_KEY_c, 0, 0 }, 0x00E7}, {{SCIM_KEY_Multi_key, SCIM_KEY_comma, SCIM_KEY_d, 0, 0 }, 0x1E11}, {{SCIM_KEY_Multi_key, SCIM_KEY_comma, SCIM_KEY_e, 0, 0 }, 0x0229}, {{SCIM_KEY_Multi_key, SCIM_KEY_comma, SCIM_KEY_g, 0, 0 }, 0x0123}, {{SCIM_KEY_Multi_key, SCIM_KEY_comma, SCIM_KEY_h, 0, 0 }, 0x1E29}, {{SCIM_KEY_Multi_key, SCIM_KEY_comma, SCIM_KEY_i, 0, 0 }, 0x012F}, {{SCIM_KEY_Multi_key, SCIM_KEY_comma, SCIM_KEY_k, 0, 0 }, 0x0137}, {{SCIM_KEY_Multi_key, SCIM_KEY_comma, SCIM_KEY_l, 0, 0 }, 0x013C}, {{SCIM_KEY_Multi_key, SCIM_KEY_comma, SCIM_KEY_n, 0, 0 }, 0x0146}, {{SCIM_KEY_Multi_key, SCIM_KEY_comma, SCIM_KEY_r, 0, 0 }, 0x0157}, {{SCIM_KEY_Multi_key, SCIM_KEY_comma, SCIM_KEY_s, 0, 0 }, 0x015F}, {{SCIM_KEY_Multi_key, SCIM_KEY_comma, SCIM_KEY_t, 0, 0 }, 0x0163}, {{SCIM_KEY_Multi_key, SCIM_KEY_comma, SCIM_KEY_u, 0, 0 }, 0x0173}, {{SCIM_KEY_Multi_key, SCIM_KEY_minus, SCIM_KEY_space, 0, 0 }, 0x007E}, {{SCIM_KEY_Multi_key, SCIM_KEY_minus, SCIM_KEY_parenleft, 0, 0 }, 0x007B}, {{SCIM_KEY_Multi_key, SCIM_KEY_minus, SCIM_KEY_parenright, 0, 0 }, 0x007D}, {{SCIM_KEY_Multi_key, SCIM_KEY_minus, SCIM_KEY_plus, 0, 0 }, 0x00B1}, {{SCIM_KEY_Multi_key, SCIM_KEY_minus, SCIM_KEY_comma, 0, 0 }, 0x00AC}, {{SCIM_KEY_Multi_key, SCIM_KEY_minus, SCIM_KEY_minus, SCIM_KEY_space, 0 }, 0x00AD}, {{SCIM_KEY_Multi_key, SCIM_KEY_minus, SCIM_KEY_minus, SCIM_KEY_minus, 0 }, 0x2014}, {{SCIM_KEY_Multi_key, SCIM_KEY_minus, SCIM_KEY_minus, SCIM_KEY_period, 0 }, 0x2013}, {{SCIM_KEY_Multi_key, SCIM_KEY_minus, SCIM_KEY_colon, 0, 0 }, 0x00F7}, {{SCIM_KEY_Multi_key, SCIM_KEY_minus, SCIM_KEY_A, 0, 0 }, 0x0100}, {{SCIM_KEY_Multi_key, SCIM_KEY_minus, SCIM_KEY_D, 0, 0 }, 0x0110}, {{SCIM_KEY_Multi_key, SCIM_KEY_minus, SCIM_KEY_E, 0, 0 }, 0x0112}, {{SCIM_KEY_Multi_key, SCIM_KEY_minus, SCIM_KEY_I, 0, 0 }, 0x012A}, {{SCIM_KEY_Multi_key, SCIM_KEY_minus, SCIM_KEY_L, 0, 0 }, 0x00A3}, {{SCIM_KEY_Multi_key, SCIM_KEY_minus, SCIM_KEY_N, 0, 0 }, 0x00D1}, {{SCIM_KEY_Multi_key, SCIM_KEY_minus, SCIM_KEY_O, 0, 0 }, 0x014C}, {{SCIM_KEY_Multi_key, SCIM_KEY_minus, SCIM_KEY_U, 0, 0 }, 0x016A}, {{SCIM_KEY_Multi_key, SCIM_KEY_minus, SCIM_KEY_Y, 0, 0 }, 0x00A5}, {{SCIM_KEY_Multi_key, SCIM_KEY_minus, SCIM_KEY_asciicircum, 0, 0 }, 0x00AF}, {{SCIM_KEY_Multi_key, SCIM_KEY_minus, SCIM_KEY_a, 0, 0 }, 0x0101}, {{SCIM_KEY_Multi_key, SCIM_KEY_minus, SCIM_KEY_d, 0, 0 }, 0x0111}, {{SCIM_KEY_Multi_key, SCIM_KEY_minus, SCIM_KEY_e, 0, 0 }, 0x0113}, {{SCIM_KEY_Multi_key, SCIM_KEY_minus, SCIM_KEY_i, 0, 0 }, 0x012B}, {{SCIM_KEY_Multi_key, SCIM_KEY_minus, SCIM_KEY_l, 0, 0 }, 0x00A3}, {{SCIM_KEY_Multi_key, SCIM_KEY_minus, SCIM_KEY_n, 0, 0 }, 0x00F1}, {{SCIM_KEY_Multi_key, SCIM_KEY_minus, SCIM_KEY_o, 0, 0 }, 0x014D}, {{SCIM_KEY_Multi_key, SCIM_KEY_minus, SCIM_KEY_u, 0, 0 }, 0x016B}, {{SCIM_KEY_Multi_key, SCIM_KEY_minus, SCIM_KEY_y, 0, 0 }, 0x00A5}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_exclam, SCIM_KEY_S, 0 }, 0x1E68}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_exclam, SCIM_KEY_s, 0 }, 0x1E69}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_apostrophe, SCIM_KEY_S, 0 }, 0x1E64}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_apostrophe, SCIM_KEY_s, 0 }, 0x1E65}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_period, 0, 0 }, 0x00B7}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_less, 0, 0 }, 0x2039}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_greater, 0, 0 }, 0x203A}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_A, 0, 0 }, 0x0226}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_B, 0, 0 }, 0x1E02}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_C, 0, 0 }, 0x010A}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_D, 0, 0 }, 0x1E0A}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_E, 0, 0 }, 0x0116}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_F, 0, 0 }, 0x1E1E}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_G, 0, 0 }, 0x0120}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_H, 0, 0 }, 0x1E22}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_I, 0, 0 }, 0x0130}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_M, 0, 0 }, 0x1E40}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_N, 0, 0 }, 0x1E44}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_O, 0, 0 }, 0x022E}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_P, 0, 0 }, 0x1E56}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_R, 0, 0 }, 0x1E58}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_S, 0, 0 }, 0x1E60}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_T, 0, 0 }, 0x1E6A}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_W, 0, 0 }, 0x1E86}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_X, 0, 0 }, 0x1E8A}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_Y, 0, 0 }, 0x1E8E}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_Z, 0, 0 }, 0x017B}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_asciicircum, 0, 0 }, 0x00B7}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_a, 0, 0 }, 0x0227}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_b, 0, 0 }, 0x1E03}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_c, 0, 0 }, 0x010B}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_c, SCIM_KEY_S, 0 }, 0x1E66}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_c, SCIM_KEY_s, 0 }, 0x1E67}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_d, 0, 0 }, 0x1E0B}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_e, 0, 0 }, 0x0117}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_f, 0, 0 }, 0x1E1F}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_g, 0, 0 }, 0x0121}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_h, 0, 0 }, 0x1E23}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_i, 0, 0 }, 0x0131}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_m, 0, 0 }, 0x1E41}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_n, 0, 0 }, 0x1E45}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_o, 0, 0 }, 0x022F}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_p, 0, 0 }, 0x1E57}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_r, 0, 0 }, 0x1E59}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_s, 0, 0 }, 0x1E61}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_t, 0, 0 }, 0x1E6B}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_w, 0, 0 }, 0x1E87}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_x, 0, 0 }, 0x1E8B}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_y, 0, 0 }, 0x1E8F}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_z, 0, 0 }, 0x017C}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_acute, SCIM_KEY_S, 0 }, 0x1E64}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_acute, SCIM_KEY_s, 0 }, 0x1E65}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_Sacute, 0, 0 }, 0x1E64}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_Scaron, 0, 0 }, 0x1E66}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_sacute, 0, 0 }, 0x1E65}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_scaron, 0, 0 }, 0x1E67}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_combining_acute, SCIM_KEY_S, 0 }, 0x1E64}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_combining_acute, SCIM_KEY_s, 0 }, 0x1E65}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_combining_belowdot, SCIM_KEY_S, 0 }, 0x1E68}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_combining_belowdot, SCIM_KEY_s, 0 }, 0x1E69}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_dead_acute, SCIM_KEY_S, 0 }, 0x1E64}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_dead_acute, SCIM_KEY_s, 0 }, 0x1E65}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_dead_caron, SCIM_KEY_S, 0 }, 0x1E66}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_dead_caron, SCIM_KEY_s, 0 }, 0x1E67}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_dead_belowdot, SCIM_KEY_S, 0 }, 0x1E68}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, SCIM_KEY_dead_belowdot, SCIM_KEY_s, 0 }, 0x1E69}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, 0x100017f, 0, 0 }, 0x1E9B}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, 0x1001e62, 0, 0 }, 0x1E68}, {{SCIM_KEY_Multi_key, SCIM_KEY_period, 0x1001e63, 0, 0 }, 0x1E69}, {{SCIM_KEY_Multi_key, SCIM_KEY_slash, SCIM_KEY_slash, 0, 0 }, 0x005C}, {{SCIM_KEY_Multi_key, SCIM_KEY_slash, SCIM_KEY_less, 0, 0 }, 0x005C}, {{SCIM_KEY_Multi_key, SCIM_KEY_slash, SCIM_KEY_C, 0, 0 }, 0x20A1}, {{SCIM_KEY_Multi_key, SCIM_KEY_slash, SCIM_KEY_D, 0, 0 }, 0x0110}, {{SCIM_KEY_Multi_key, SCIM_KEY_slash, SCIM_KEY_G, 0, 0 }, 0x01E4}, {{SCIM_KEY_Multi_key, SCIM_KEY_slash, SCIM_KEY_H, 0, 0 }, 0x0126}, {{SCIM_KEY_Multi_key, SCIM_KEY_slash, SCIM_KEY_I, 0, 0 }, 0x0197}, {{SCIM_KEY_Multi_key, SCIM_KEY_slash, SCIM_KEY_L, 0, 0 }, 0x0141}, {{SCIM_KEY_Multi_key, SCIM_KEY_slash, SCIM_KEY_O, 0, 0 }, 0x00D8}, {{SCIM_KEY_Multi_key, SCIM_KEY_slash, SCIM_KEY_T, 0, 0 }, 0x0166}, {{SCIM_KEY_Multi_key, SCIM_KEY_slash, SCIM_KEY_U, 0, 0 }, 0x00B5}, {{SCIM_KEY_Multi_key, SCIM_KEY_slash, SCIM_KEY_Z, 0, 0 }, 0x01B5}, {{SCIM_KEY_Multi_key, SCIM_KEY_slash, SCIM_KEY_asciicircum, 0, 0 }, 0x007C}, {{SCIM_KEY_Multi_key, SCIM_KEY_slash, SCIM_KEY_b, 0, 0 }, 0x0180}, {{SCIM_KEY_Multi_key, SCIM_KEY_slash, SCIM_KEY_c, 0, 0 }, 0x00A2}, {{SCIM_KEY_Multi_key, SCIM_KEY_slash, SCIM_KEY_d, 0, 0 }, 0x0111}, {{SCIM_KEY_Multi_key, SCIM_KEY_slash, SCIM_KEY_g, 0, 0 }, 0x01E5}, {{SCIM_KEY_Multi_key, SCIM_KEY_slash, SCIM_KEY_h, 0, 0 }, 0x0127}, {{SCIM_KEY_Multi_key, SCIM_KEY_slash, SCIM_KEY_i, 0, 0 }, 0x0268}, {{SCIM_KEY_Multi_key, SCIM_KEY_slash, SCIM_KEY_l, 0, 0 }, 0x0142}, {{SCIM_KEY_Multi_key, SCIM_KEY_slash, SCIM_KEY_m, 0, 0 }, 0x20A5}, {{SCIM_KEY_Multi_key, SCIM_KEY_slash, SCIM_KEY_o, 0, 0 }, 0x00F8}, {{SCIM_KEY_Multi_key, SCIM_KEY_slash, SCIM_KEY_t, 0, 0 }, 0x0167}, {{SCIM_KEY_Multi_key, SCIM_KEY_slash, SCIM_KEY_u, 0, 0 }, 0x00B5}, {{SCIM_KEY_Multi_key, SCIM_KEY_slash, SCIM_KEY_z, 0, 0 }, 0x01B6}, {{SCIM_KEY_Multi_key, SCIM_KEY_slash, SCIM_KEY_Cyrillic_ghe, 0, 0 }, 0x0493}, {{SCIM_KEY_Multi_key, SCIM_KEY_slash, SCIM_KEY_Cyrillic_ka, 0, 0 }, 0x049F}, {{SCIM_KEY_Multi_key, SCIM_KEY_slash, SCIM_KEY_Cyrillic_GHE, 0, 0 }, 0x0492}, {{SCIM_KEY_Multi_key, SCIM_KEY_slash, SCIM_KEY_Cyrillic_KA, 0, 0 }, 0x049E}, {{SCIM_KEY_Multi_key, SCIM_KEY_slash, SCIM_KEY_leftarrow, 0, 0 }, 0x219A}, {{SCIM_KEY_Multi_key, SCIM_KEY_slash, SCIM_KEY_rightarrow, 0, 0 }, 0x219B}, {{SCIM_KEY_Multi_key, SCIM_KEY_slash, 0x1000294, 0, 0 }, 0x02A1}, {{SCIM_KEY_Multi_key, SCIM_KEY_slash, 0x10004ae, 0, 0 }, 0x04B0}, {{SCIM_KEY_Multi_key, SCIM_KEY_slash, 0x10004af, 0, 0 }, 0x04B1}, {{SCIM_KEY_Multi_key, SCIM_KEY_slash, 0x1002194, 0, 0 }, 0x21AE}, {{SCIM_KEY_Multi_key, SCIM_KEY_0, SCIM_KEY_asterisk, 0, 0 }, 0x00B0}, {{SCIM_KEY_Multi_key, SCIM_KEY_0, SCIM_KEY_C, 0, 0 }, 0x00A9}, {{SCIM_KEY_Multi_key, SCIM_KEY_0, SCIM_KEY_S, 0, 0 }, 0x00A7}, {{SCIM_KEY_Multi_key, SCIM_KEY_0, SCIM_KEY_X, 0, 0 }, 0x00A4}, {{SCIM_KEY_Multi_key, SCIM_KEY_0, SCIM_KEY_asciicircum, 0, 0 }, 0x00B0}, {{SCIM_KEY_Multi_key, SCIM_KEY_0, SCIM_KEY_c, 0, 0 }, 0x00A9}, {{SCIM_KEY_Multi_key, SCIM_KEY_0, SCIM_KEY_s, 0, 0 }, 0x00A7}, {{SCIM_KEY_Multi_key, SCIM_KEY_0, SCIM_KEY_x, 0, 0 }, 0x00A4}, {{SCIM_KEY_Multi_key, SCIM_KEY_1, SCIM_KEY_2, 0, 0 }, 0x00BD}, {{SCIM_KEY_Multi_key, SCIM_KEY_1, SCIM_KEY_4, 0, 0 }, 0x00BC}, {{SCIM_KEY_Multi_key, SCIM_KEY_1, SCIM_KEY_S, 0, 0 }, 0x00B9}, {{SCIM_KEY_Multi_key, SCIM_KEY_1, SCIM_KEY_asciicircum, 0, 0 }, 0x00B9}, {{SCIM_KEY_Multi_key, SCIM_KEY_1, SCIM_KEY_s, 0, 0 }, 0x00B9}, {{SCIM_KEY_Multi_key, SCIM_KEY_2, SCIM_KEY_S, 0, 0 }, 0x00B2}, {{SCIM_KEY_Multi_key, SCIM_KEY_2, SCIM_KEY_asciicircum, 0, 0 }, 0x00B2}, {{SCIM_KEY_Multi_key, SCIM_KEY_2, SCIM_KEY_s, 0, 0 }, 0x00B2}, {{SCIM_KEY_Multi_key, SCIM_KEY_3, SCIM_KEY_4, 0, 0 }, 0x00BE}, {{SCIM_KEY_Multi_key, SCIM_KEY_3, SCIM_KEY_S, 0, 0 }, 0x00B3}, {{SCIM_KEY_Multi_key, SCIM_KEY_3, SCIM_KEY_asciicircum, 0, 0 }, 0x00B3}, {{SCIM_KEY_Multi_key, SCIM_KEY_3, SCIM_KEY_s, 0, 0 }, 0x00B3}, {{SCIM_KEY_Multi_key, SCIM_KEY_colon, SCIM_KEY_minus, 0, 0 }, 0x00F7}, {{SCIM_KEY_Multi_key, SCIM_KEY_semicolon, SCIM_KEY_A, 0, 0 }, 0x0104}, {{SCIM_KEY_Multi_key, SCIM_KEY_semicolon, SCIM_KEY_E, 0, 0 }, 0x0118}, {{SCIM_KEY_Multi_key, SCIM_KEY_semicolon, SCIM_KEY_I, 0, 0 }, 0x012E}, {{SCIM_KEY_Multi_key, SCIM_KEY_semicolon, SCIM_KEY_O, 0, 0 }, 0x01EA}, {{SCIM_KEY_Multi_key, SCIM_KEY_semicolon, SCIM_KEY_U, 0, 0 }, 0x0172}, {{SCIM_KEY_Multi_key, SCIM_KEY_semicolon, SCIM_KEY_a, 0, 0 }, 0x0105}, {{SCIM_KEY_Multi_key, SCIM_KEY_semicolon, SCIM_KEY_e, 0, 0 }, 0x0119}, {{SCIM_KEY_Multi_key, SCIM_KEY_semicolon, SCIM_KEY_i, 0, 0 }, 0x012F}, {{SCIM_KEY_Multi_key, SCIM_KEY_semicolon, SCIM_KEY_o, 0, 0 }, 0x01EB}, {{SCIM_KEY_Multi_key, SCIM_KEY_semicolon, SCIM_KEY_u, 0, 0 }, 0x0173}, {{SCIM_KEY_Multi_key, SCIM_KEY_less, SCIM_KEY_space, 0, 0 }, 0x02C7}, {{SCIM_KEY_Multi_key, SCIM_KEY_less, SCIM_KEY_quotedbl, 0, 0 }, 0x201C}, {{SCIM_KEY_Multi_key, SCIM_KEY_less, SCIM_KEY_apostrophe, 0, 0 }, 0x2018}, {{SCIM_KEY_Multi_key, SCIM_KEY_less, SCIM_KEY_slash, 0, 0 }, 0x005C}, {{SCIM_KEY_Multi_key, SCIM_KEY_less, SCIM_KEY_less, 0, 0 }, 0x00AB}, {{SCIM_KEY_Multi_key, SCIM_KEY_less, SCIM_KEY_C, 0, 0 }, 0x010C}, {{SCIM_KEY_Multi_key, SCIM_KEY_less, SCIM_KEY_D, 0, 0 }, 0x010E}, {{SCIM_KEY_Multi_key, SCIM_KEY_less, SCIM_KEY_E, 0, 0 }, 0x011A}, {{SCIM_KEY_Multi_key, SCIM_KEY_less, SCIM_KEY_L, 0, 0 }, 0x013D}, {{SCIM_KEY_Multi_key, SCIM_KEY_less, SCIM_KEY_N, 0, 0 }, 0x0147}, {{SCIM_KEY_Multi_key, SCIM_KEY_less, SCIM_KEY_R, 0, 0 }, 0x0158}, {{SCIM_KEY_Multi_key, SCIM_KEY_less, SCIM_KEY_S, 0, 0 }, 0x0160}, {{SCIM_KEY_Multi_key, SCIM_KEY_less, SCIM_KEY_T, 0, 0 }, 0x0164}, {{SCIM_KEY_Multi_key, SCIM_KEY_less, SCIM_KEY_Z, 0, 0 }, 0x017D}, {{SCIM_KEY_Multi_key, SCIM_KEY_less, SCIM_KEY_c, 0, 0 }, 0x010D}, {{SCIM_KEY_Multi_key, SCIM_KEY_less, SCIM_KEY_d, 0, 0 }, 0x010F}, {{SCIM_KEY_Multi_key, SCIM_KEY_less, SCIM_KEY_e, 0, 0 }, 0x011B}, {{SCIM_KEY_Multi_key, SCIM_KEY_less, SCIM_KEY_l, 0, 0 }, 0x013E}, {{SCIM_KEY_Multi_key, SCIM_KEY_less, SCIM_KEY_n, 0, 0 }, 0x0148}, {{SCIM_KEY_Multi_key, SCIM_KEY_less, SCIM_KEY_r, 0, 0 }, 0x0159}, {{SCIM_KEY_Multi_key, SCIM_KEY_less, SCIM_KEY_s, 0, 0 }, 0x0161}, {{SCIM_KEY_Multi_key, SCIM_KEY_less, SCIM_KEY_t, 0, 0 }, 0x0165}, {{SCIM_KEY_Multi_key, SCIM_KEY_less, SCIM_KEY_z, 0, 0 }, 0x017E}, {{SCIM_KEY_Multi_key, SCIM_KEY_less, 0x1000338, 0, 0 }, 0x226E}, {{SCIM_KEY_Multi_key, SCIM_KEY_equal, SCIM_KEY_C, 0, 0 }, 0x20AC}, {{SCIM_KEY_Multi_key, SCIM_KEY_equal, SCIM_KEY_E, 0, 0 }, 0x20AC}, {{SCIM_KEY_Multi_key, SCIM_KEY_equal, SCIM_KEY_L, 0, 0 }, 0x20A4}, {{SCIM_KEY_Multi_key, SCIM_KEY_equal, SCIM_KEY_N, 0, 0 }, 0x20A6}, {{SCIM_KEY_Multi_key, SCIM_KEY_equal, SCIM_KEY_O, 0, 0 }, 0x0150}, {{SCIM_KEY_Multi_key, SCIM_KEY_equal, SCIM_KEY_U, 0, 0 }, 0x0170}, {{SCIM_KEY_Multi_key, SCIM_KEY_equal, SCIM_KEY_W, 0, 0 }, 0x20A9}, {{SCIM_KEY_Multi_key, SCIM_KEY_equal, SCIM_KEY_Y, 0, 0 }, 0x00A5}, {{SCIM_KEY_Multi_key, SCIM_KEY_equal, SCIM_KEY_c, 0, 0 }, 0x20AC}, {{SCIM_KEY_Multi_key, SCIM_KEY_equal, SCIM_KEY_e, 0, 0 }, 0x20AC}, {{SCIM_KEY_Multi_key, SCIM_KEY_equal, SCIM_KEY_l, 0, 0 }, 0x00A3}, {{SCIM_KEY_Multi_key, SCIM_KEY_equal, SCIM_KEY_o, 0, 0 }, 0x0151}, {{SCIM_KEY_Multi_key, SCIM_KEY_equal, SCIM_KEY_u, 0, 0 }, 0x0171}, {{SCIM_KEY_Multi_key, SCIM_KEY_equal, SCIM_KEY_y, 0, 0 }, 0x00A5}, {{SCIM_KEY_Multi_key, SCIM_KEY_equal, SCIM_KEY_Cyrillic_u, 0, 0 }, 0x04F3}, {{SCIM_KEY_Multi_key, SCIM_KEY_equal, SCIM_KEY_Cyrillic_U, 0, 0 }, 0x04F2}, {{SCIM_KEY_Multi_key, SCIM_KEY_equal, 0x1000338, 0, 0 }, 0x2260}, {{SCIM_KEY_Multi_key, SCIM_KEY_greater, SCIM_KEY_space, 0, 0 }, 0x005E}, {{SCIM_KEY_Multi_key, SCIM_KEY_greater, SCIM_KEY_quotedbl, 0, 0 }, 0x201D}, {{SCIM_KEY_Multi_key, SCIM_KEY_greater, SCIM_KEY_apostrophe, 0, 0 }, 0x2019}, {{SCIM_KEY_Multi_key, SCIM_KEY_greater, SCIM_KEY_greater, 0, 0 }, 0x00BB}, {{SCIM_KEY_Multi_key, SCIM_KEY_greater, SCIM_KEY_A, 0, 0 }, 0x00C2}, {{SCIM_KEY_Multi_key, SCIM_KEY_greater, SCIM_KEY_E, 0, 0 }, 0x00CA}, {{SCIM_KEY_Multi_key, SCIM_KEY_greater, SCIM_KEY_I, 0, 0 }, 0x00CE}, {{SCIM_KEY_Multi_key, SCIM_KEY_greater, SCIM_KEY_O, 0, 0 }, 0x00D4}, {{SCIM_KEY_Multi_key, SCIM_KEY_greater, SCIM_KEY_U, 0, 0 }, 0x00DB}, {{SCIM_KEY_Multi_key, SCIM_KEY_greater, SCIM_KEY_a, 0, 0 }, 0x00E2}, {{SCIM_KEY_Multi_key, SCIM_KEY_greater, SCIM_KEY_e, 0, 0 }, 0x00EA}, {{SCIM_KEY_Multi_key, SCIM_KEY_greater, SCIM_KEY_i, 0, 0 }, 0x00EE}, {{SCIM_KEY_Multi_key, SCIM_KEY_greater, SCIM_KEY_o, 0, 0 }, 0x00F4}, {{SCIM_KEY_Multi_key, SCIM_KEY_greater, SCIM_KEY_u, 0, 0 }, 0x00FB}, {{SCIM_KEY_Multi_key, SCIM_KEY_greater, 0x1000338, 0, 0 }, 0x226F}, {{SCIM_KEY_Multi_key, SCIM_KEY_question, SCIM_KEY_plus, SCIM_KEY_O, 0 }, 0x1EDE}, {{SCIM_KEY_Multi_key, SCIM_KEY_question, SCIM_KEY_plus, SCIM_KEY_U, 0 }, 0x1EEC}, {{SCIM_KEY_Multi_key, SCIM_KEY_question, SCIM_KEY_plus, SCIM_KEY_o, 0 }, 0x1EDF}, {{SCIM_KEY_Multi_key, SCIM_KEY_question, SCIM_KEY_plus, SCIM_KEY_u, 0 }, 0x1EED}, {{SCIM_KEY_Multi_key, SCIM_KEY_question, SCIM_KEY_question, 0, 0 }, 0x00BF}, {{SCIM_KEY_Multi_key, SCIM_KEY_question, SCIM_KEY_A, 0, 0 }, 0x1EA2}, {{SCIM_KEY_Multi_key, SCIM_KEY_question, SCIM_KEY_E, 0, 0 }, 0x1EBA}, {{SCIM_KEY_Multi_key, SCIM_KEY_question, SCIM_KEY_I, 0, 0 }, 0x1EC8}, {{SCIM_KEY_Multi_key, SCIM_KEY_question, SCIM_KEY_O, 0, 0 }, 0x1ECE}, {{SCIM_KEY_Multi_key, SCIM_KEY_question, SCIM_KEY_U, 0, 0 }, 0x1EE6}, {{SCIM_KEY_Multi_key, SCIM_KEY_question, SCIM_KEY_U, SCIM_KEY_A, 0 }, 0x1EB2}, {{SCIM_KEY_Multi_key, SCIM_KEY_question, SCIM_KEY_U, SCIM_KEY_a, 0 }, 0x1EB3}, {{SCIM_KEY_Multi_key, SCIM_KEY_question, SCIM_KEY_Y, 0, 0 }, 0x1EF6}, {{SCIM_KEY_Multi_key, SCIM_KEY_question, SCIM_KEY_asciicircum, SCIM_KEY_A, 0 }, 0x1EA8}, {{SCIM_KEY_Multi_key, SCIM_KEY_question, SCIM_KEY_asciicircum, SCIM_KEY_E, 0 }, 0x1EC2}, {{SCIM_KEY_Multi_key, SCIM_KEY_question, SCIM_KEY_asciicircum, SCIM_KEY_O, 0 }, 0x1ED4}, {{SCIM_KEY_Multi_key, SCIM_KEY_question, SCIM_KEY_asciicircum, SCIM_KEY_a, 0 }, 0x1EA9}, {{SCIM_KEY_Multi_key, SCIM_KEY_question, SCIM_KEY_asciicircum, SCIM_KEY_e, 0 }, 0x1EC3}, {{SCIM_KEY_Multi_key, SCIM_KEY_question, SCIM_KEY_asciicircum, SCIM_KEY_o, 0 }, 0x1ED5}, {{SCIM_KEY_Multi_key, SCIM_KEY_question, SCIM_KEY_a, 0, 0 }, 0x1EA3}, {{SCIM_KEY_Multi_key, SCIM_KEY_question, SCIM_KEY_b, SCIM_KEY_A, 0 }, 0x1EB2}, {{SCIM_KEY_Multi_key, SCIM_KEY_question, SCIM_KEY_b, SCIM_KEY_a, 0 }, 0x1EB3}, {{SCIM_KEY_Multi_key, SCIM_KEY_question, SCIM_KEY_e, 0, 0 }, 0x1EBB}, {{SCIM_KEY_Multi_key, SCIM_KEY_question, SCIM_KEY_i, 0, 0 }, 0x1EC9}, {{SCIM_KEY_Multi_key, SCIM_KEY_question, SCIM_KEY_o, 0, 0 }, 0x1ECF}, {{SCIM_KEY_Multi_key, SCIM_KEY_question, SCIM_KEY_u, 0, 0 }, 0x1EE7}, {{SCIM_KEY_Multi_key, SCIM_KEY_question, SCIM_KEY_y, 0, 0 }, 0x1EF7}, {{SCIM_KEY_Multi_key, SCIM_KEY_question, SCIM_KEY_Acircumflex, 0, 0 }, 0x1EA8}, {{SCIM_KEY_Multi_key, SCIM_KEY_question, SCIM_KEY_Ecircumflex, 0, 0 }, 0x1EC2}, {{SCIM_KEY_Multi_key, SCIM_KEY_question, SCIM_KEY_Ocircumflex, 0, 0 }, 0x1ED4}, {{SCIM_KEY_Multi_key, SCIM_KEY_question, SCIM_KEY_acircumflex, 0, 0 }, 0x1EA9}, {{SCIM_KEY_Multi_key, SCIM_KEY_question, SCIM_KEY_ecircumflex, 0, 0 }, 0x1EC3}, {{SCIM_KEY_Multi_key, SCIM_KEY_question, SCIM_KEY_ocircumflex, 0, 0 }, 0x1ED5}, {{SCIM_KEY_Multi_key, SCIM_KEY_question, SCIM_KEY_Abreve, 0, 0 }, 0x1EB2}, {{SCIM_KEY_Multi_key, SCIM_KEY_question, SCIM_KEY_abreve, 0, 0 }, 0x1EB3}, {{SCIM_KEY_Multi_key, SCIM_KEY_question, SCIM_KEY_Ohorn, 0, 0 }, 0x1EDE}, {{SCIM_KEY_Multi_key, SCIM_KEY_question, SCIM_KEY_ohorn, 0, 0 }, 0x1EDF}, {{SCIM_KEY_Multi_key, SCIM_KEY_question, SCIM_KEY_Uhorn, 0, 0 }, 0x1EEC}, {{SCIM_KEY_Multi_key, SCIM_KEY_question, SCIM_KEY_uhorn, 0, 0 }, 0x1EED}, {{SCIM_KEY_Multi_key, SCIM_KEY_question, SCIM_KEY_dead_circumflex, SCIM_KEY_A, 0 }, 0x1EA8}, {{SCIM_KEY_Multi_key, SCIM_KEY_question, SCIM_KEY_dead_circumflex, SCIM_KEY_E, 0 }, 0x1EC2}, {{SCIM_KEY_Multi_key, SCIM_KEY_question, SCIM_KEY_dead_circumflex, SCIM_KEY_O, 0 }, 0x1ED4}, {{SCIM_KEY_Multi_key, SCIM_KEY_question, SCIM_KEY_dead_circumflex, SCIM_KEY_a, 0 }, 0x1EA9}, {{SCIM_KEY_Multi_key, SCIM_KEY_question, SCIM_KEY_dead_circumflex, SCIM_KEY_e, 0 }, 0x1EC3}, {{SCIM_KEY_Multi_key, SCIM_KEY_question, SCIM_KEY_dead_circumflex, SCIM_KEY_o, 0 }, 0x1ED5}, {{SCIM_KEY_Multi_key, SCIM_KEY_question, SCIM_KEY_dead_breve, SCIM_KEY_A, 0 }, 0x1EB2}, {{SCIM_KEY_Multi_key, SCIM_KEY_question, SCIM_KEY_dead_breve, SCIM_KEY_a, 0 }, 0x1EB3}, {{SCIM_KEY_Multi_key, SCIM_KEY_question, SCIM_KEY_dead_horn, SCIM_KEY_O, 0 }, 0x1EDE}, {{SCIM_KEY_Multi_key, SCIM_KEY_question, SCIM_KEY_dead_horn, SCIM_KEY_U, 0 }, 0x1EEC}, {{SCIM_KEY_Multi_key, SCIM_KEY_question, SCIM_KEY_dead_horn, SCIM_KEY_o, 0 }, 0x1EDF}, {{SCIM_KEY_Multi_key, SCIM_KEY_question, SCIM_KEY_dead_horn, SCIM_KEY_u, 0 }, 0x1EED}, {{SCIM_KEY_Multi_key, SCIM_KEY_A, SCIM_KEY_quotedbl, 0, 0 }, 0x00C4}, {{SCIM_KEY_Multi_key, SCIM_KEY_A, SCIM_KEY_apostrophe, 0, 0 }, 0x00C1}, {{SCIM_KEY_Multi_key, SCIM_KEY_A, SCIM_KEY_parenleft, 0, 0 }, 0x0102}, {{SCIM_KEY_Multi_key, SCIM_KEY_A, SCIM_KEY_asterisk, 0, 0 }, 0x00C5}, {{SCIM_KEY_Multi_key, SCIM_KEY_A, SCIM_KEY_comma, 0, 0 }, 0x0104}, {{SCIM_KEY_Multi_key, SCIM_KEY_A, SCIM_KEY_minus, 0, 0 }, 0x0100}, {{SCIM_KEY_Multi_key, SCIM_KEY_A, SCIM_KEY_greater, 0, 0 }, 0x00C2}, {{SCIM_KEY_Multi_key, SCIM_KEY_A, SCIM_KEY_A, 0, 0 }, 0x00C5}, {{SCIM_KEY_Multi_key, SCIM_KEY_A, SCIM_KEY_E, 0, 0 }, 0x00C6}, {{SCIM_KEY_Multi_key, SCIM_KEY_A, SCIM_KEY_T, 0, 0 }, 0x0040}, {{SCIM_KEY_Multi_key, SCIM_KEY_A, SCIM_KEY_asciicircum, 0, 0 }, 0x00C2}, {{SCIM_KEY_Multi_key, SCIM_KEY_A, SCIM_KEY_underscore, 0, 0 }, 0x00AA}, {{SCIM_KEY_Multi_key, SCIM_KEY_A, SCIM_KEY_grave, 0, 0 }, 0x00C0}, {{SCIM_KEY_Multi_key, SCIM_KEY_A, SCIM_KEY_asciitilde, 0, 0 }, 0x00C3}, {{SCIM_KEY_Multi_key, SCIM_KEY_A, SCIM_KEY_diaeresis, 0, 0 }, 0x00C4}, {{SCIM_KEY_Multi_key, SCIM_KEY_A, SCIM_KEY_acute, 0, 0 }, 0x00C1}, {{SCIM_KEY_Multi_key, SCIM_KEY_B, SCIM_KEY_period, 0, 0 }, 0x1E02}, {{SCIM_KEY_Multi_key, SCIM_KEY_C, SCIM_KEY_apostrophe, 0, 0 }, 0x0106}, {{SCIM_KEY_Multi_key, SCIM_KEY_C, SCIM_KEY_comma, 0, 0 }, 0x00C7}, {{SCIM_KEY_Multi_key, SCIM_KEY_C, SCIM_KEY_period, 0, 0 }, 0x010A}, {{SCIM_KEY_Multi_key, SCIM_KEY_C, SCIM_KEY_slash, 0, 0 }, 0x00A2}, {{SCIM_KEY_Multi_key, SCIM_KEY_C, SCIM_KEY_0, 0, 0 }, 0x00A9}, {{SCIM_KEY_Multi_key, SCIM_KEY_C, SCIM_KEY_less, 0, 0 }, 0x010C}, {{SCIM_KEY_Multi_key, SCIM_KEY_C, SCIM_KEY_equal, 0, 0 }, 0x20AC}, {{SCIM_KEY_Multi_key, SCIM_KEY_C, SCIM_KEY_E, 0, 0 }, 0x20A0}, {{SCIM_KEY_Multi_key, SCIM_KEY_C, SCIM_KEY_O, 0, 0 }, 0x00A9}, {{SCIM_KEY_Multi_key, SCIM_KEY_C, SCIM_KEY_o, 0, 0 }, 0x00A9}, {{SCIM_KEY_Multi_key, SCIM_KEY_C, SCIM_KEY_r, 0, 0 }, 0x20A2}, {{SCIM_KEY_Multi_key, SCIM_KEY_C, SCIM_KEY_bar, 0, 0 }, 0x00A2}, {{SCIM_KEY_Multi_key, SCIM_KEY_D, SCIM_KEY_minus, 0, 0 }, 0x0110}, {{SCIM_KEY_Multi_key, SCIM_KEY_D, SCIM_KEY_period, 0, 0 }, 0x1E0A}, {{SCIM_KEY_Multi_key, SCIM_KEY_D, SCIM_KEY_less, 0, 0 }, 0x010E}, {{SCIM_KEY_Multi_key, SCIM_KEY_D, SCIM_KEY_H, 0, 0 }, 0x00D0}, {{SCIM_KEY_Multi_key, SCIM_KEY_E, SCIM_KEY_quotedbl, 0, 0 }, 0x00CB}, {{SCIM_KEY_Multi_key, SCIM_KEY_E, SCIM_KEY_apostrophe, 0, 0 }, 0x00C9}, {{SCIM_KEY_Multi_key, SCIM_KEY_E, SCIM_KEY_comma, 0, 0 }, 0x0118}, {{SCIM_KEY_Multi_key, SCIM_KEY_E, SCIM_KEY_minus, 0, 0 }, 0x0112}, {{SCIM_KEY_Multi_key, SCIM_KEY_E, SCIM_KEY_period, 0, 0 }, 0x0116}, {{SCIM_KEY_Multi_key, SCIM_KEY_E, SCIM_KEY_less, 0, 0 }, 0x011A}, {{SCIM_KEY_Multi_key, SCIM_KEY_E, SCIM_KEY_equal, 0, 0 }, 0x20AC}, {{SCIM_KEY_Multi_key, SCIM_KEY_E, SCIM_KEY_greater, 0, 0 }, 0x00CA}, {{SCIM_KEY_Multi_key, SCIM_KEY_E, SCIM_KEY_asciicircum, 0, 0 }, 0x00CA}, {{SCIM_KEY_Multi_key, SCIM_KEY_E, SCIM_KEY_underscore, 0, 0 }, 0x0112}, {{SCIM_KEY_Multi_key, SCIM_KEY_E, SCIM_KEY_grave, 0, 0 }, 0x00C8}, {{SCIM_KEY_Multi_key, SCIM_KEY_E, SCIM_KEY_diaeresis, 0, 0 }, 0x00CB}, {{SCIM_KEY_Multi_key, SCIM_KEY_E, SCIM_KEY_acute, 0, 0 }, 0x00C9}, {{SCIM_KEY_Multi_key, SCIM_KEY_F, SCIM_KEY_period, 0, 0 }, 0x1E1E}, {{SCIM_KEY_Multi_key, SCIM_KEY_F, SCIM_KEY_r, 0, 0 }, 0x20A3}, {{SCIM_KEY_Multi_key, SCIM_KEY_G, SCIM_KEY_parenleft, 0, 0 }, 0x011E}, {{SCIM_KEY_Multi_key, SCIM_KEY_G, SCIM_KEY_comma, 0, 0 }, 0x0122}, {{SCIM_KEY_Multi_key, SCIM_KEY_G, SCIM_KEY_period, 0, 0 }, 0x0120}, {{SCIM_KEY_Multi_key, SCIM_KEY_G, SCIM_KEY_U, 0, 0 }, 0x011E}, {{SCIM_KEY_Multi_key, SCIM_KEY_G, SCIM_KEY_breve, 0, 0 }, 0x011E}, {{SCIM_KEY_Multi_key, SCIM_KEY_I, SCIM_KEY_quotedbl, 0, 0 }, 0x00CF}, {{SCIM_KEY_Multi_key, SCIM_KEY_I, SCIM_KEY_apostrophe, 0, 0 }, 0x00CD}, {{SCIM_KEY_Multi_key, SCIM_KEY_I, SCIM_KEY_comma, 0, 0 }, 0x012E}, {{SCIM_KEY_Multi_key, SCIM_KEY_I, SCIM_KEY_minus, 0, 0 }, 0x012A}, {{SCIM_KEY_Multi_key, SCIM_KEY_I, SCIM_KEY_period, 0, 0 }, 0x0130}, {{SCIM_KEY_Multi_key, SCIM_KEY_I, SCIM_KEY_greater, 0, 0 }, 0x00CE}, {{SCIM_KEY_Multi_key, SCIM_KEY_I, SCIM_KEY_asciicircum, 0, 0 }, 0x00CE}, {{SCIM_KEY_Multi_key, SCIM_KEY_I, SCIM_KEY_underscore, 0, 0 }, 0x012A}, {{SCIM_KEY_Multi_key, SCIM_KEY_I, SCIM_KEY_grave, 0, 0 }, 0x00CC}, {{SCIM_KEY_Multi_key, SCIM_KEY_I, SCIM_KEY_asciitilde, 0, 0 }, 0x0128}, {{SCIM_KEY_Multi_key, SCIM_KEY_I, SCIM_KEY_diaeresis, 0, 0 }, 0x00CF}, {{SCIM_KEY_Multi_key, SCIM_KEY_I, SCIM_KEY_acute, 0, 0 }, 0x00CD}, {{SCIM_KEY_Multi_key, SCIM_KEY_K, SCIM_KEY_comma, 0, 0 }, 0x0136}, {{SCIM_KEY_Multi_key, SCIM_KEY_L, SCIM_KEY_apostrophe, 0, 0 }, 0x0139}, {{SCIM_KEY_Multi_key, SCIM_KEY_L, SCIM_KEY_comma, 0, 0 }, 0x013B}, {{SCIM_KEY_Multi_key, SCIM_KEY_L, SCIM_KEY_minus, 0, 0 }, 0x00A3}, {{SCIM_KEY_Multi_key, SCIM_KEY_L, SCIM_KEY_less, 0, 0 }, 0x013D}, {{SCIM_KEY_Multi_key, SCIM_KEY_L, SCIM_KEY_equal, 0, 0 }, 0x20A4}, {{SCIM_KEY_Multi_key, SCIM_KEY_L, SCIM_KEY_V, 0, 0 }, 0x007C}, {{SCIM_KEY_Multi_key, SCIM_KEY_M, SCIM_KEY_period, 0, 0 }, 0x1E40}, {{SCIM_KEY_Multi_key, SCIM_KEY_N, SCIM_KEY_apostrophe, 0, 0 }, 0x0143}, {{SCIM_KEY_Multi_key, SCIM_KEY_N, SCIM_KEY_comma, 0, 0 }, 0x0145}, {{SCIM_KEY_Multi_key, SCIM_KEY_N, SCIM_KEY_minus, 0, 0 }, 0x00D1}, {{SCIM_KEY_Multi_key, SCIM_KEY_N, SCIM_KEY_less, 0, 0 }, 0x0147}, {{SCIM_KEY_Multi_key, SCIM_KEY_N, SCIM_KEY_equal, 0, 0 }, 0x20A6}, {{SCIM_KEY_Multi_key, SCIM_KEY_N, SCIM_KEY_G, 0, 0 }, 0x014A}, {{SCIM_KEY_Multi_key, SCIM_KEY_N, SCIM_KEY_asciitilde, 0, 0 }, 0x00D1}, {{SCIM_KEY_Multi_key, SCIM_KEY_O, SCIM_KEY_quotedbl, 0, 0 }, 0x00D6}, {{SCIM_KEY_Multi_key, SCIM_KEY_O, SCIM_KEY_apostrophe, 0, 0 }, 0x00D3}, {{SCIM_KEY_Multi_key, SCIM_KEY_O, SCIM_KEY_minus, 0, 0 }, 0x014C}, {{SCIM_KEY_Multi_key, SCIM_KEY_O, SCIM_KEY_slash, 0, 0 }, 0x00D8}, {{SCIM_KEY_Multi_key, SCIM_KEY_O, SCIM_KEY_greater, 0, 0 }, 0x00D4}, {{SCIM_KEY_Multi_key, SCIM_KEY_O, SCIM_KEY_C, 0, 0 }, 0x00A9}, {{SCIM_KEY_Multi_key, SCIM_KEY_O, SCIM_KEY_E, 0, 0 }, 0x0152}, {{SCIM_KEY_Multi_key, SCIM_KEY_O, SCIM_KEY_R, 0, 0 }, 0x00AE}, {{SCIM_KEY_Multi_key, SCIM_KEY_O, SCIM_KEY_S, 0, 0 }, 0x00A7}, {{SCIM_KEY_Multi_key, SCIM_KEY_O, SCIM_KEY_X, 0, 0 }, 0x00A4}, {{SCIM_KEY_Multi_key, SCIM_KEY_O, SCIM_KEY_asciicircum, 0, 0 }, 0x00D4}, {{SCIM_KEY_Multi_key, SCIM_KEY_O, SCIM_KEY_underscore, 0, 0 }, 0x00BA}, {{SCIM_KEY_Multi_key, SCIM_KEY_O, SCIM_KEY_grave, 0, 0 }, 0x00D2}, {{SCIM_KEY_Multi_key, SCIM_KEY_O, SCIM_KEY_c, 0, 0 }, 0x00A9}, {{SCIM_KEY_Multi_key, SCIM_KEY_O, SCIM_KEY_r, 0, 0 }, 0x00AE}, {{SCIM_KEY_Multi_key, SCIM_KEY_O, SCIM_KEY_x, 0, 0 }, 0x00A4}, {{SCIM_KEY_Multi_key, SCIM_KEY_O, SCIM_KEY_asciitilde, 0, 0 }, 0x00D5}, {{SCIM_KEY_Multi_key, SCIM_KEY_O, SCIM_KEY_diaeresis, 0, 0 }, 0x00D6}, {{SCIM_KEY_Multi_key, SCIM_KEY_O, SCIM_KEY_acute, 0, 0 }, 0x00D3}, {{SCIM_KEY_Multi_key, SCIM_KEY_P, SCIM_KEY_exclam, 0, 0 }, 0x00B6}, {{SCIM_KEY_Multi_key, SCIM_KEY_P, SCIM_KEY_period, 0, 0 }, 0x1E56}, {{SCIM_KEY_Multi_key, SCIM_KEY_P, SCIM_KEY_P, 0, 0 }, 0x00B6}, {{SCIM_KEY_Multi_key, SCIM_KEY_P, SCIM_KEY_t, 0, 0 }, 0x20A7}, {{SCIM_KEY_Multi_key, SCIM_KEY_R, SCIM_KEY_apostrophe, 0, 0 }, 0x0154}, {{SCIM_KEY_Multi_key, SCIM_KEY_R, SCIM_KEY_comma, 0, 0 }, 0x0156}, {{SCIM_KEY_Multi_key, SCIM_KEY_R, SCIM_KEY_less, 0, 0 }, 0x0158}, {{SCIM_KEY_Multi_key, SCIM_KEY_R, SCIM_KEY_O, 0, 0 }, 0x00AE}, {{SCIM_KEY_Multi_key, SCIM_KEY_R, SCIM_KEY_s, 0, 0 }, 0x20A8}, {{SCIM_KEY_Multi_key, SCIM_KEY_S, SCIM_KEY_exclam, 0, 0 }, 0x00A7}, {{SCIM_KEY_Multi_key, SCIM_KEY_S, SCIM_KEY_apostrophe, 0, 0 }, 0x015A}, {{SCIM_KEY_Multi_key, SCIM_KEY_S, SCIM_KEY_comma, 0, 0 }, 0x015E}, {{SCIM_KEY_Multi_key, SCIM_KEY_S, SCIM_KEY_period, 0, 0 }, 0x1E60}, {{SCIM_KEY_Multi_key, SCIM_KEY_S, SCIM_KEY_0, 0, 0 }, 0x00A7}, {{SCIM_KEY_Multi_key, SCIM_KEY_S, SCIM_KEY_1, 0, 0 }, 0x00B9}, {{SCIM_KEY_Multi_key, SCIM_KEY_S, SCIM_KEY_2, 0, 0 }, 0x00B2}, {{SCIM_KEY_Multi_key, SCIM_KEY_S, SCIM_KEY_3, 0, 0 }, 0x00B3}, {{SCIM_KEY_Multi_key, SCIM_KEY_S, SCIM_KEY_less, 0, 0 }, 0x0160}, {{SCIM_KEY_Multi_key, SCIM_KEY_S, SCIM_KEY_O, 0, 0 }, 0x00A7}, {{SCIM_KEY_Multi_key, SCIM_KEY_S, SCIM_KEY_cedilla, 0, 0 }, 0x015E}, {{SCIM_KEY_Multi_key, SCIM_KEY_T, SCIM_KEY_minus, 0, 0 }, 0x0166}, {{SCIM_KEY_Multi_key, SCIM_KEY_T, SCIM_KEY_period, 0, 0 }, 0x1E6A}, {{SCIM_KEY_Multi_key, SCIM_KEY_T, SCIM_KEY_slash, 0, 0 }, 0x0166}, {{SCIM_KEY_Multi_key, SCIM_KEY_T, SCIM_KEY_less, 0, 0 }, 0x0164}, {{SCIM_KEY_Multi_key, SCIM_KEY_T, SCIM_KEY_H, 0, 0 }, 0x00DE}, {{SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_exclam, SCIM_KEY_A, 0 }, 0x1EB6}, {{SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_exclam, SCIM_KEY_a, 0 }, 0x1EB7}, {{SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_quotedbl, 0, 0 }, 0x00DC}, {{SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_apostrophe, 0, 0 }, 0x00DA}, {{SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_asterisk, 0, 0 }, 0x016E}, {{SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_comma, 0, 0 }, 0x0172}, {{SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_comma, SCIM_KEY_E, 0 }, 0x1E1C}, {{SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_comma, SCIM_KEY_e, 0 }, 0x1E1D}, {{SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_minus, 0, 0 }, 0x016B}, {{SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_slash, 0, 0 }, 0x00B5}, {{SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_greater, 0, 0 }, 0x00DB}, {{SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_A, 0, 0 }, 0x0102}, {{SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_E, 0, 0 }, 0x0114}, {{SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_G, 0, 0 }, 0x011E}, {{SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_I, 0, 0 }, 0x012C}, {{SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_O, 0, 0 }, 0x014E}, {{SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_U, 0, 0 }, 0x016C}, {{SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_asciicircum, 0, 0 }, 0x00DB}, {{SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_underscore, 0, 0 }, 0x016B}, {{SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_grave, 0, 0 }, 0x00D9}, {{SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_a, 0, 0 }, 0x0103}, {{SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_e, 0, 0 }, 0x0115}, {{SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_g, 0, 0 }, 0x011F}, {{SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_i, 0, 0 }, 0x012D}, {{SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_o, 0, 0 }, 0x014F}, {{SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_u, 0, 0 }, 0x016D}, {{SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_asciitilde, 0, 0 }, 0x0168}, {{SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_diaeresis, 0, 0 }, 0x00DC}, {{SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_acute, 0, 0 }, 0x00DA}, {{SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_Cyrillic_a, 0, 0 }, 0x04D1}, {{SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_Cyrillic_ie, 0, 0 }, 0x04D7}, {{SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_Cyrillic_i, 0, 0 }, 0x0439}, {{SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_Cyrillic_u, 0, 0 }, 0x045E}, {{SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_Cyrillic_zhe, 0, 0 }, 0x04C2}, {{SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_Cyrillic_A, 0, 0 }, 0x04D0}, {{SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_Cyrillic_IE, 0, 0 }, 0x04D6}, {{SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_Cyrillic_I, 0, 0 }, 0x0419}, {{SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_Cyrillic_U, 0, 0 }, 0x040E}, {{SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_Cyrillic_ZHE, 0, 0 }, 0x04C1}, {{SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_Greek_ALPHA, 0, 0 }, 0x1FB8}, {{SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_Greek_IOTA, 0, 0 }, 0x1FD8}, {{SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_Greek_UPSILON, 0, 0 }, 0x1FE8}, {{SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_Greek_alpha, 0, 0 }, 0x1FB0}, {{SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_Greek_iota, 0, 0 }, 0x1FD0}, {{SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_Greek_upsilon, 0, 0 }, 0x1FE0}, {{SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_combining_belowdot, SCIM_KEY_A, 0 }, 0x1EB6}, {{SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_combining_belowdot, SCIM_KEY_a, 0 }, 0x1EB7}, {{SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_dead_cedilla, SCIM_KEY_E, 0 }, 0x1E1C}, {{SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_dead_cedilla, SCIM_KEY_e, 0 }, 0x1E1D}, {{SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_dead_belowdot, SCIM_KEY_A, 0 }, 0x1EB6}, {{SCIM_KEY_Multi_key, SCIM_KEY_U, SCIM_KEY_dead_belowdot, SCIM_KEY_a, 0 }, 0x1EB7}, {{SCIM_KEY_Multi_key, SCIM_KEY_U, 0x1000228, 0, 0 }, 0x1E1C}, {{SCIM_KEY_Multi_key, SCIM_KEY_U, 0x1000229, 0, 0 }, 0x1E1D}, {{SCIM_KEY_Multi_key, SCIM_KEY_U, 0x1001ea0, 0, 0 }, 0x1EB6}, {{SCIM_KEY_Multi_key, SCIM_KEY_U, 0x1001ea1, 0, 0 }, 0x1EB7}, {{SCIM_KEY_Multi_key, SCIM_KEY_V, SCIM_KEY_L, 0, 0 }, 0x007C}, {{SCIM_KEY_Multi_key, SCIM_KEY_W, SCIM_KEY_equal, 0, 0 }, 0x20A9}, {{SCIM_KEY_Multi_key, SCIM_KEY_W, SCIM_KEY_asciicircum, 0, 0 }, 0x0174}, {{SCIM_KEY_Multi_key, SCIM_KEY_X, SCIM_KEY_0, 0, 0 }, 0x00A4}, {{SCIM_KEY_Multi_key, SCIM_KEY_X, SCIM_KEY_O, 0, 0 }, 0x00A4}, {{SCIM_KEY_Multi_key, SCIM_KEY_X, SCIM_KEY_o, 0, 0 }, 0x00A4}, {{SCIM_KEY_Multi_key, SCIM_KEY_Y, SCIM_KEY_quotedbl, 0, 0 }, 0x0178}, {{SCIM_KEY_Multi_key, SCIM_KEY_Y, SCIM_KEY_apostrophe, 0, 0 }, 0x00DD}, {{SCIM_KEY_Multi_key, SCIM_KEY_Y, SCIM_KEY_minus, 0, 0 }, 0x00A5}, {{SCIM_KEY_Multi_key, SCIM_KEY_Y, SCIM_KEY_equal, 0, 0 }, 0x00A5}, {{SCIM_KEY_Multi_key, SCIM_KEY_Y, SCIM_KEY_asciicircum, 0, 0 }, 0x0176}, {{SCIM_KEY_Multi_key, SCIM_KEY_Y, SCIM_KEY_diaeresis, 0, 0 }, 0x0178}, {{SCIM_KEY_Multi_key, SCIM_KEY_Y, SCIM_KEY_acute, 0, 0 }, 0x00DD}, {{SCIM_KEY_Multi_key, SCIM_KEY_Z, SCIM_KEY_apostrophe, 0, 0 }, 0x0179}, {{SCIM_KEY_Multi_key, SCIM_KEY_Z, SCIM_KEY_period, 0, 0 }, 0x017B}, {{SCIM_KEY_Multi_key, SCIM_KEY_Z, SCIM_KEY_less, 0, 0 }, 0x017D}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_space, 0, 0 }, 0x005E}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_exclam, SCIM_KEY_A, 0 }, 0x1EAC}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_exclam, SCIM_KEY_E, 0 }, 0x1EC6}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_exclam, SCIM_KEY_O, 0 }, 0x1ED8}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_exclam, SCIM_KEY_a, 0 }, 0x1EAD}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_exclam, SCIM_KEY_e, 0 }, 0x1EC7}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_exclam, SCIM_KEY_o, 0 }, 0x1ED9}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_parenleft, 0, 0 }, 0x207D}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_parenright, 0, 0 }, 0x207E}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_plus, 0, 0 }, 0x207A}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_minus, 0, 0 }, 0x00AF}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_period, 0, 0 }, 0x00B7}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_slash, 0, 0 }, 0x007C}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_0, 0, 0 }, 0x2070}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_1, 0, 0 }, 0x00B9}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_2, 0, 0 }, 0x00B2}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_3, 0, 0 }, 0x00B3}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_4, 0, 0 }, 0x2074}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_5, 0, 0 }, 0x2075}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_6, 0, 0 }, 0x2076}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_7, 0, 0 }, 0x2077}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_8, 0, 0 }, 0x2078}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_9, 0, 0 }, 0x2079}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_equal, 0, 0 }, 0x207C}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_A, 0, 0 }, 0x00C2}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_C, 0, 0 }, 0x0108}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_E, 0, 0 }, 0x00CA}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_G, 0, 0 }, 0x011C}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_H, 0, 0 }, 0x0124}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_I, 0, 0 }, 0x00CE}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_J, 0, 0 }, 0x0134}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_O, 0, 0 }, 0x00D4}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_S, 0, 0 }, 0x015C}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_S, SCIM_KEY_M, 0 }, 0x2120}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_T, SCIM_KEY_M, 0 }, 0x2122}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_U, 0, 0 }, 0x00DB}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_W, 0, 0 }, 0x0174}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_Y, 0, 0 }, 0x0176}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_Z, 0, 0 }, 0x1E90}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_underscore, 0, 0 }, 0x00AF}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_underscore, SCIM_KEY_a, 0 }, 0x00AA}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_underscore, SCIM_KEY_h, 0 }, 0x02B0}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_underscore, SCIM_KEY_i, 0 }, 0x2071}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_underscore, SCIM_KEY_j, 0 }, 0x02B2}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_underscore, SCIM_KEY_l, 0 }, 0x02E1}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_underscore, SCIM_KEY_n, 0 }, 0x207F}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_underscore, SCIM_KEY_o, 0 }, 0x00BA}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_underscore, SCIM_KEY_r, 0 }, 0x02B3}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_underscore, SCIM_KEY_s, 0 }, 0x02E2}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_underscore, SCIM_KEY_w, 0 }, 0x02B7}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_underscore, SCIM_KEY_x, 0 }, 0x02E3}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_underscore, SCIM_KEY_y, 0 }, 0x02B8}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_underscore, 0x1000263, 0 }, 0x02E0}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_underscore, 0x1000266, 0 }, 0x02B1}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_underscore, 0x1000279, 0 }, 0x02B4}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_underscore, 0x100027b, 0 }, 0x02B5}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_underscore, 0x1000281, 0 }, 0x02B6}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_underscore, 0x1000295, 0 }, 0x02E4}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_a, 0, 0 }, 0x00E2}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_c, 0, 0 }, 0x0109}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_e, 0, 0 }, 0x00EA}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_g, 0, 0 }, 0x011D}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_h, 0, 0 }, 0x0125}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_i, 0, 0 }, 0x00EE}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_j, 0, 0 }, 0x0135}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_o, 0, 0 }, 0x00F4}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_s, 0, 0 }, 0x015D}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_u, 0, 0 }, 0x00FB}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_w, 0, 0 }, 0x0175}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_y, 0, 0 }, 0x0177}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_z, 0, 0 }, 0x1E91}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_underbar, SCIM_KEY_a, 0 }, 0x00AA}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_underbar, SCIM_KEY_h, 0 }, 0x02B0}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_underbar, SCIM_KEY_i, 0 }, 0x2071}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_underbar, SCIM_KEY_j, 0 }, 0x02B2}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_underbar, SCIM_KEY_l, 0 }, 0x02E1}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_underbar, SCIM_KEY_n, 0 }, 0x207F}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_underbar, SCIM_KEY_o, 0 }, 0x00BA}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_underbar, SCIM_KEY_r, 0 }, 0x02B3}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_underbar, SCIM_KEY_s, 0 }, 0x02E2}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_underbar, SCIM_KEY_w, 0 }, 0x02B7}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_underbar, SCIM_KEY_x, 0 }, 0x02E3}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_underbar, SCIM_KEY_y, 0 }, 0x02B8}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_underbar, 0x1000263, 0 }, 0x02E0}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_underbar, 0x1000266, 0 }, 0x02B1}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_underbar, 0x1000279, 0 }, 0x02B4}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_underbar, 0x100027b, 0 }, 0x02B5}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_underbar, 0x1000281, 0 }, 0x02B6}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_underbar, 0x1000295, 0 }, 0x02E4}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_combining_belowdot, SCIM_KEY_A, 0 }, 0x1EAC}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_combining_belowdot, SCIM_KEY_E, 0 }, 0x1EC6}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_combining_belowdot, SCIM_KEY_O, 0 }, 0x1ED8}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_combining_belowdot, SCIM_KEY_a, 0 }, 0x1EAD}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_combining_belowdot, SCIM_KEY_e, 0 }, 0x1EC7}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_combining_belowdot, SCIM_KEY_o, 0 }, 0x1ED9}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_dead_belowdot, SCIM_KEY_A, 0 }, 0x1EAC}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_dead_belowdot, SCIM_KEY_E, 0 }, 0x1EC6}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_dead_belowdot, SCIM_KEY_O, 0 }, 0x1ED8}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_dead_belowdot, SCIM_KEY_a, 0 }, 0x1EAD}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_dead_belowdot, SCIM_KEY_e, 0 }, 0x1EC7}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_dead_belowdot, SCIM_KEY_o, 0 }, 0x1ED9}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_KP_Space, 0, 0 }, 0x00B2}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_KP_Add, 0, 0 }, 0x207A}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_KP_0, 0, 0 }, 0x2070}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_KP_1, 0, 0 }, 0x00B9}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_KP_2, 0, 0 }, 0x00B2}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_KP_3, 0, 0 }, 0x00B3}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_KP_4, 0, 0 }, 0x2074}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_KP_5, 0, 0 }, 0x2075}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_KP_6, 0, 0 }, 0x2076}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_KP_7, 0, 0 }, 0x2077}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_KP_8, 0, 0 }, 0x2078}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_KP_9, 0, 0 }, 0x2079}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, SCIM_KEY_KP_Equal, 0, 0 }, 0x207C}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, 0x1001ea0, 0, 0 }, 0x1EAC}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, 0x1001ea1, 0, 0 }, 0x1EAD}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, 0x1001eb8, 0, 0 }, 0x1EC6}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, 0x1001eb9, 0, 0 }, 0x1EC7}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, 0x1001ecc, 0, 0 }, 0x1ED8}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, 0x1001ecd, 0, 0 }, 0x1ED9}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, 0x1002212, 0, 0 }, 0x207B}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, 0x1004e00, 0, 0 }, 0x3192}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, 0x1004e01, 0, 0 }, 0x319C}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, 0x1004e09, 0, 0 }, 0x3194}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, 0x1004e0a, 0, 0 }, 0x3196}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, 0x1004e0b, 0, 0 }, 0x3198}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, 0x1004e19, 0, 0 }, 0x319B}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, 0x1004e2d, 0, 0 }, 0x3197}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, 0x1004e59, 0, 0 }, 0x319A}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, 0x1004e8c, 0, 0 }, 0x3193}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, 0x1004eba, 0, 0 }, 0x319F}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, 0x10056db, 0, 0 }, 0x3195}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, 0x1005730, 0, 0 }, 0x319E}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, 0x1005929, 0, 0 }, 0x319D}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciicircum, 0x1007532, 0, 0 }, 0x3199}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_exclam, SCIM_KEY_L, 0 }, 0x1E38}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_exclam, SCIM_KEY_R, 0 }, 0x1E5C}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_exclam, SCIM_KEY_l, 0 }, 0x1E39}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_exclam, SCIM_KEY_r, 0 }, 0x1E5D}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_quotedbl, SCIM_KEY_A, 0 }, 0x01DE}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_quotedbl, SCIM_KEY_O, 0 }, 0x022A}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_quotedbl, SCIM_KEY_U, 0 }, 0x01D5}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_quotedbl, SCIM_KEY_a, 0 }, 0x01DF}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_quotedbl, SCIM_KEY_o, 0 }, 0x022B}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_quotedbl, SCIM_KEY_u, 0 }, 0x01D6}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_parenleft, 0, 0 }, 0x208D}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_parenright, 0, 0 }, 0x208E}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_plus, 0, 0 }, 0x208A}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_period, SCIM_KEY_A, 0 }, 0x01E0}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_period, SCIM_KEY_O, 0 }, 0x0230}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_period, SCIM_KEY_a, 0 }, 0x01E1}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_period, SCIM_KEY_o, 0 }, 0x0231}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_0, 0, 0 }, 0x2080}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_1, 0, 0 }, 0x2081}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_2, 0, 0 }, 0x2082}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_3, 0, 0 }, 0x2083}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_4, 0, 0 }, 0x2084}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_5, 0, 0 }, 0x2085}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_6, 0, 0 }, 0x2086}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_7, 0, 0 }, 0x2087}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_8, 0, 0 }, 0x2088}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_9, 0, 0 }, 0x2089}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_semicolon, SCIM_KEY_O, 0 }, 0x01EC}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_semicolon, SCIM_KEY_o, 0 }, 0x01ED}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_equal, 0, 0 }, 0x208C}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_A, 0, 0 }, 0x00AA}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_E, 0, 0 }, 0x0112}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_G, 0, 0 }, 0x1E20}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_I, 0, 0 }, 0x012A}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_O, 0, 0 }, 0x00BA}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_U, 0, 0 }, 0x016A}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_Y, 0, 0 }, 0x0232}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_asciicircum, 0, 0 }, 0x00AF}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_underscore, 0, 0 }, 0x00AF}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_a, 0, 0 }, 0x0101}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_e, 0, 0 }, 0x0113}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_g, 0, 0 }, 0x1E21}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_i, 0, 0 }, 0x012B}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_o, 0, 0 }, 0x014D}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_u, 0, 0 }, 0x016B}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_y, 0, 0 }, 0x0233}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_asciitilde, SCIM_KEY_O, 0 }, 0x022C}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_asciitilde, SCIM_KEY_o, 0 }, 0x022D}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_Adiaeresis, 0, 0 }, 0x01DE}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_AE, 0, 0 }, 0x01E2}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_Otilde, 0, 0 }, 0x022C}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_Odiaeresis, 0, 0 }, 0x022A}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_Udiaeresis, 0, 0 }, 0x01D5}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_adiaeresis, 0, 0 }, 0x01DF}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_ae, 0, 0 }, 0x01E3}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_otilde, 0, 0 }, 0x022D}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_odiaeresis, 0, 0 }, 0x022B}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_udiaeresis, 0, 0 }, 0x01D6}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_Cyrillic_i, 0, 0 }, 0x04E3}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_Cyrillic_u, 0, 0 }, 0x04EF}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_Cyrillic_I, 0, 0 }, 0x04E2}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_Cyrillic_U, 0, 0 }, 0x04EE}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_Greek_ALPHA, 0, 0 }, 0x1FB9}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_Greek_IOTA, 0, 0 }, 0x1FD9}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_Greek_UPSILON, 0, 0 }, 0x1FE9}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_Greek_alpha, 0, 0 }, 0x1FB1}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_Greek_iota, 0, 0 }, 0x1FD1}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_Greek_upsilon, 0, 0 }, 0x1FE1}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_combining_tilde, SCIM_KEY_O, 0 }, 0x022C}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_combining_tilde, SCIM_KEY_o, 0 }, 0x022D}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_combining_belowdot, SCIM_KEY_L, 0 }, 0x1E38}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_combining_belowdot, SCIM_KEY_R, 0 }, 0x1E5C}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_combining_belowdot, SCIM_KEY_l, 0 }, 0x1E39}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_combining_belowdot, SCIM_KEY_r, 0 }, 0x1E5D}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_dead_tilde, SCIM_KEY_O, 0 }, 0x022C}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_dead_tilde, SCIM_KEY_o, 0 }, 0x022D}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_dead_abovedot, SCIM_KEY_A, 0 }, 0x01E0}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_dead_abovedot, SCIM_KEY_O, 0 }, 0x0230}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_dead_abovedot, SCIM_KEY_a, 0 }, 0x01E1}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_dead_abovedot, SCIM_KEY_o, 0 }, 0x0231}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_dead_diaeresis, SCIM_KEY_A, 0 }, 0x01DE}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_dead_diaeresis, SCIM_KEY_O, 0 }, 0x022A}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_dead_diaeresis, SCIM_KEY_U, 0 }, 0x01D5}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_dead_diaeresis, SCIM_KEY_a, 0 }, 0x01DF}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_dead_diaeresis, SCIM_KEY_o, 0 }, 0x022B}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_dead_diaeresis, SCIM_KEY_u, 0 }, 0x01D6}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_dead_ogonek, SCIM_KEY_O, 0 }, 0x01EC}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_dead_ogonek, SCIM_KEY_o, 0 }, 0x01ED}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_dead_belowdot, SCIM_KEY_L, 0 }, 0x1E38}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_dead_belowdot, SCIM_KEY_R, 0 }, 0x1E5C}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_dead_belowdot, SCIM_KEY_l, 0 }, 0x1E39}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_dead_belowdot, SCIM_KEY_r, 0 }, 0x1E5D}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_KP_Space, 0, 0 }, 0x2082}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_KP_Add, 0, 0 }, 0x208A}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_KP_0, 0, 0 }, 0x2080}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_KP_1, 0, 0 }, 0x2081}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_KP_2, 0, 0 }, 0x2082}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_KP_3, 0, 0 }, 0x2083}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_KP_4, 0, 0 }, 0x2084}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_KP_5, 0, 0 }, 0x2085}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_KP_6, 0, 0 }, 0x2086}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_KP_7, 0, 0 }, 0x2087}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_KP_8, 0, 0 }, 0x2088}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_KP_9, 0, 0 }, 0x2089}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, SCIM_KEY_KP_Equal, 0, 0 }, 0x208C}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, 0x10001ea, 0, 0 }, 0x01EC}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, 0x10001eb, 0, 0 }, 0x01ED}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, 0x1000226, 0, 0 }, 0x01E0}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, 0x1000227, 0, 0 }, 0x01E1}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, 0x100022e, 0, 0 }, 0x0230}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, 0x100022f, 0, 0 }, 0x0231}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, 0x1001e36, 0, 0 }, 0x1E38}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, 0x1001e37, 0, 0 }, 0x1E39}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, 0x1001e5a, 0, 0 }, 0x1E5C}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, 0x1001e5b, 0, 0 }, 0x1E5D}, {{SCIM_KEY_Multi_key, SCIM_KEY_underscore, 0x1002212, 0, 0 }, 0x208B}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_space, 0, 0 }, 0x0060}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_quotedbl, SCIM_KEY_U, 0 }, 0x01DB}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_quotedbl, SCIM_KEY_u, 0 }, 0x01DC}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_quotedbl, SCIM_KEY_Greek_iota, 0 }, 0x1FD2}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_quotedbl, SCIM_KEY_Greek_upsilon, 0 }, 0x1FE2}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_parenleft, SCIM_KEY_Greek_ALPHA, 0 }, 0x1F0B}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_parenleft, SCIM_KEY_Greek_EPSILON, 0 }, 0x1F1B}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_parenleft, SCIM_KEY_Greek_ETA, 0 }, 0x1F2B}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_parenleft, SCIM_KEY_Greek_IOTA, 0 }, 0x1F3B}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_parenleft, SCIM_KEY_Greek_OMICRON, 0 }, 0x1F4B}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_parenleft, SCIM_KEY_Greek_UPSILON, 0 }, 0x1F5B}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_parenleft, SCIM_KEY_Greek_OMEGA, 0 }, 0x1F6B}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_parenleft, SCIM_KEY_Greek_alpha, 0 }, 0x1F03}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_parenleft, SCIM_KEY_Greek_epsilon, 0 }, 0x1F13}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_parenleft, SCIM_KEY_Greek_eta, 0 }, 0x1F23}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_parenleft, SCIM_KEY_Greek_iota, 0 }, 0x1F33}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_parenleft, SCIM_KEY_Greek_omicron, 0 }, 0x1F43}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_parenleft, SCIM_KEY_Greek_upsilon, 0 }, 0x1F53}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_parenleft, SCIM_KEY_Greek_omega, 0 }, 0x1F63}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_parenright, SCIM_KEY_Greek_ALPHA, 0 }, 0x1F0A}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_parenright, SCIM_KEY_Greek_EPSILON, 0 }, 0x1F1A}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_parenright, SCIM_KEY_Greek_ETA, 0 }, 0x1F2A}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_parenright, SCIM_KEY_Greek_IOTA, 0 }, 0x1F3A}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_parenright, SCIM_KEY_Greek_OMICRON, 0 }, 0x1F4A}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_parenright, SCIM_KEY_Greek_OMEGA, 0 }, 0x1F6A}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_parenright, SCIM_KEY_Greek_alpha, 0 }, 0x1F02}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_parenright, SCIM_KEY_Greek_epsilon, 0 }, 0x1F12}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_parenright, SCIM_KEY_Greek_eta, 0 }, 0x1F22}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_parenright, SCIM_KEY_Greek_iota, 0 }, 0x1F32}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_parenright, SCIM_KEY_Greek_omicron, 0 }, 0x1F42}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_parenright, SCIM_KEY_Greek_upsilon, 0 }, 0x1F52}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_parenright, SCIM_KEY_Greek_omega, 0 }, 0x1F62}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_plus, SCIM_KEY_O, 0 }, 0x1EDC}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_plus, SCIM_KEY_U, 0 }, 0x1EEA}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_plus, SCIM_KEY_o, 0 }, 0x1EDD}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_plus, SCIM_KEY_u, 0 }, 0x1EEB}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_A, 0, 0 }, 0x00C0}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_E, 0, 0 }, 0x00C8}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_I, 0, 0 }, 0x00CC}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_N, 0, 0 }, 0x01F8}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_O, 0, 0 }, 0x00D2}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_U, 0, 0 }, 0x00D9}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_U, SCIM_KEY_A, 0 }, 0x1EB0}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_U, SCIM_KEY_a, 0 }, 0x1EB1}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_W, 0, 0 }, 0x1E80}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_Y, 0, 0 }, 0x1EF2}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_asciicircum, SCIM_KEY_A, 0 }, 0x1EA6}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_asciicircum, SCIM_KEY_E, 0 }, 0x1EC0}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_asciicircum, SCIM_KEY_O, 0 }, 0x1ED2}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_asciicircum, SCIM_KEY_a, 0 }, 0x1EA7}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_asciicircum, SCIM_KEY_e, 0 }, 0x1EC1}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_asciicircum, SCIM_KEY_o, 0 }, 0x1ED3}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_underscore, SCIM_KEY_E, 0 }, 0x1E14}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_underscore, SCIM_KEY_O, 0 }, 0x1E50}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_underscore, SCIM_KEY_e, 0 }, 0x1E15}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_underscore, SCIM_KEY_o, 0 }, 0x1E51}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_a, 0, 0 }, 0x00E0}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_b, SCIM_KEY_A, 0 }, 0x1EB0}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_b, SCIM_KEY_a, 0 }, 0x1EB1}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_e, 0, 0 }, 0x00E8}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_i, 0, 0 }, 0x00EC}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_n, 0, 0 }, 0x01F9}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_o, 0, 0 }, 0x00F2}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_u, 0, 0 }, 0x00F9}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_w, 0, 0 }, 0x1E81}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_y, 0, 0 }, 0x1EF3}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_macron, SCIM_KEY_E, 0 }, 0x1E14}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_macron, SCIM_KEY_O, 0 }, 0x1E50}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_macron, SCIM_KEY_e, 0 }, 0x1E15}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_macron, SCIM_KEY_o, 0 }, 0x1E51}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_Acircumflex, 0, 0 }, 0x1EA6}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_Ecircumflex, 0, 0 }, 0x1EC0}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_Ocircumflex, 0, 0 }, 0x1ED2}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_Udiaeresis, 0, 0 }, 0x01DB}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_acircumflex, 0, 0 }, 0x1EA7}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_ecircumflex, 0, 0 }, 0x1EC1}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_ocircumflex, 0, 0 }, 0x1ED3}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_udiaeresis, 0, 0 }, 0x01DC}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_Abreve, 0, 0 }, 0x1EB0}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_abreve, 0, 0 }, 0x1EB1}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_Emacron, 0, 0 }, 0x1E14}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_emacron, 0, 0 }, 0x1E15}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_Omacron, 0, 0 }, 0x1E50}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_omacron, 0, 0 }, 0x1E51}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_Cyrillic_ie, 0, 0 }, 0x0450}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_Cyrillic_i, 0, 0 }, 0x045D}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_Cyrillic_IE, 0, 0 }, 0x0400}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_Cyrillic_I, 0, 0 }, 0x040D}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_Greek_iotadieresis, 0, 0 }, 0x1FD2}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_Greek_upsilondieresis, 0, 0 }, 0x1FE2}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_Greek_ALPHA, 0, 0 }, 0x1FBA}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_Greek_EPSILON, 0, 0 }, 0x1FC8}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_Greek_ETA, 0, 0 }, 0x1FCA}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_Greek_IOTA, 0, 0 }, 0x1FDA}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_Greek_OMICRON, 0, 0 }, 0x1FF8}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_Greek_UPSILON, 0, 0 }, 0x1FEA}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_Greek_OMEGA, 0, 0 }, 0x1FFA}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_Greek_alpha, 0, 0 }, 0x1F70}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_Greek_epsilon, 0, 0 }, 0x1F72}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_Greek_eta, 0, 0 }, 0x1F74}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_Greek_iota, 0, 0 }, 0x1F76}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_Greek_omicron, 0, 0 }, 0x1F78}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_Greek_upsilon, 0, 0 }, 0x1F7A}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_Greek_omega, 0, 0 }, 0x1F7C}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_Ohorn, 0, 0 }, 0x1EDC}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_ohorn, 0, 0 }, 0x1EDD}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_Uhorn, 0, 0 }, 0x1EEA}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_uhorn, 0, 0 }, 0x1EEB}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_dead_circumflex, SCIM_KEY_A, 0 }, 0x1EA6}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_dead_circumflex, SCIM_KEY_E, 0 }, 0x1EC0}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_dead_circumflex, SCIM_KEY_O, 0 }, 0x1ED2}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_dead_circumflex, SCIM_KEY_a, 0 }, 0x1EA7}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_dead_circumflex, SCIM_KEY_e, 0 }, 0x1EC1}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_dead_circumflex, SCIM_KEY_o, 0 }, 0x1ED3}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_dead_macron, SCIM_KEY_E, 0 }, 0x1E14}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_dead_macron, SCIM_KEY_O, 0 }, 0x1E50}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_dead_macron, SCIM_KEY_e, 0 }, 0x1E15}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_dead_macron, SCIM_KEY_o, 0 }, 0x1E51}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_dead_breve, SCIM_KEY_A, 0 }, 0x1EB0}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_dead_breve, SCIM_KEY_a, 0 }, 0x1EB1}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_dead_diaeresis, SCIM_KEY_U, 0 }, 0x01DB}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_dead_diaeresis, SCIM_KEY_u, 0 }, 0x01DC}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_dead_diaeresis, SCIM_KEY_Greek_iota, 0 }, 0x1FD2}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_dead_diaeresis, SCIM_KEY_Greek_upsilon, 0 }, 0x1FE2}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_dead_horn, SCIM_KEY_O, 0 }, 0x1EDC}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_dead_horn, SCIM_KEY_U, 0 }, 0x1EEA}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_dead_horn, SCIM_KEY_o, 0 }, 0x1EDD}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, SCIM_KEY_dead_horn, SCIM_KEY_u, 0 }, 0x1EEB}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1000313, SCIM_KEY_Greek_ALPHA, 0 }, 0x1F0A}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1000313, SCIM_KEY_Greek_EPSILON, 0 }, 0x1F1A}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1000313, SCIM_KEY_Greek_ETA, 0 }, 0x1F2A}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1000313, SCIM_KEY_Greek_IOTA, 0 }, 0x1F3A}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1000313, SCIM_KEY_Greek_OMICRON, 0 }, 0x1F4A}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1000313, SCIM_KEY_Greek_OMEGA, 0 }, 0x1F6A}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1000313, SCIM_KEY_Greek_alpha, 0 }, 0x1F02}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1000313, SCIM_KEY_Greek_epsilon, 0 }, 0x1F12}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1000313, SCIM_KEY_Greek_eta, 0 }, 0x1F22}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1000313, SCIM_KEY_Greek_iota, 0 }, 0x1F32}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1000313, SCIM_KEY_Greek_omicron, 0 }, 0x1F42}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1000313, SCIM_KEY_Greek_upsilon, 0 }, 0x1F52}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1000313, SCIM_KEY_Greek_omega, 0 }, 0x1F62}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1000314, SCIM_KEY_Greek_ALPHA, 0 }, 0x1F0B}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1000314, SCIM_KEY_Greek_EPSILON, 0 }, 0x1F1B}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1000314, SCIM_KEY_Greek_ETA, 0 }, 0x1F2B}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1000314, SCIM_KEY_Greek_IOTA, 0 }, 0x1F3B}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1000314, SCIM_KEY_Greek_OMICRON, 0 }, 0x1F4B}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1000314, SCIM_KEY_Greek_UPSILON, 0 }, 0x1F5B}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1000314, SCIM_KEY_Greek_OMEGA, 0 }, 0x1F6B}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1000314, SCIM_KEY_Greek_alpha, 0 }, 0x1F03}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1000314, SCIM_KEY_Greek_epsilon, 0 }, 0x1F13}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1000314, SCIM_KEY_Greek_eta, 0 }, 0x1F23}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1000314, SCIM_KEY_Greek_iota, 0 }, 0x1F33}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1000314, SCIM_KEY_Greek_omicron, 0 }, 0x1F43}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1000314, SCIM_KEY_Greek_upsilon, 0 }, 0x1F53}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1000314, SCIM_KEY_Greek_omega, 0 }, 0x1F63}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1001f00, 0, 0 }, 0x1F02}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1001f01, 0, 0 }, 0x1F03}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1001f08, 0, 0 }, 0x1F0A}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1001f09, 0, 0 }, 0x1F0B}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1001f10, 0, 0 }, 0x1F12}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1001f11, 0, 0 }, 0x1F13}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1001f18, 0, 0 }, 0x1F1A}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1001f19, 0, 0 }, 0x1F1B}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1001f20, 0, 0 }, 0x1F22}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1001f21, 0, 0 }, 0x1F23}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1001f28, 0, 0 }, 0x1F2A}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1001f29, 0, 0 }, 0x1F2B}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1001f30, 0, 0 }, 0x1F32}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1001f31, 0, 0 }, 0x1F33}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1001f38, 0, 0 }, 0x1F3A}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1001f39, 0, 0 }, 0x1F3B}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1001f40, 0, 0 }, 0x1F42}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1001f41, 0, 0 }, 0x1F43}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1001f48, 0, 0 }, 0x1F4A}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1001f49, 0, 0 }, 0x1F4B}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1001f50, 0, 0 }, 0x1F52}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1001f51, 0, 0 }, 0x1F53}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1001f59, 0, 0 }, 0x1F5B}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1001f60, 0, 0 }, 0x1F62}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1001f61, 0, 0 }, 0x1F63}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1001f68, 0, 0 }, 0x1F6A}, {{SCIM_KEY_Multi_key, SCIM_KEY_grave, 0x1001f69, 0, 0 }, 0x1F6B}, {{SCIM_KEY_Multi_key, SCIM_KEY_a, SCIM_KEY_quotedbl, 0, 0 }, 0x00E4}, {{SCIM_KEY_Multi_key, SCIM_KEY_a, SCIM_KEY_apostrophe, 0, 0 }, 0x00E1}, {{SCIM_KEY_Multi_key, SCIM_KEY_a, SCIM_KEY_parenleft, 0, 0 }, 0x0103}, {{SCIM_KEY_Multi_key, SCIM_KEY_a, SCIM_KEY_asterisk, 0, 0 }, 0x00E5}, {{SCIM_KEY_Multi_key, SCIM_KEY_a, SCIM_KEY_comma, 0, 0 }, 0x0105}, {{SCIM_KEY_Multi_key, SCIM_KEY_a, SCIM_KEY_minus, 0, 0 }, 0x0101}, {{SCIM_KEY_Multi_key, SCIM_KEY_a, SCIM_KEY_greater, 0, 0 }, 0x00E2}, {{SCIM_KEY_Multi_key, SCIM_KEY_a, SCIM_KEY_asciicircum, 0, 0 }, 0x00E2}, {{SCIM_KEY_Multi_key, SCIM_KEY_a, SCIM_KEY_underscore, 0, 0 }, 0x00AA}, {{SCIM_KEY_Multi_key, SCIM_KEY_a, SCIM_KEY_grave, 0, 0 }, 0x00E0}, {{SCIM_KEY_Multi_key, SCIM_KEY_a, SCIM_KEY_a, 0, 0 }, 0x00E5}, {{SCIM_KEY_Multi_key, SCIM_KEY_a, SCIM_KEY_e, 0, 0 }, 0x00E6}, {{SCIM_KEY_Multi_key, SCIM_KEY_a, SCIM_KEY_asciitilde, 0, 0 }, 0x00E3}, {{SCIM_KEY_Multi_key, SCIM_KEY_a, SCIM_KEY_diaeresis, 0, 0 }, 0x00E4}, {{SCIM_KEY_Multi_key, SCIM_KEY_a, SCIM_KEY_acute, 0, 0 }, 0x00E1}, {{SCIM_KEY_Multi_key, SCIM_KEY_b, SCIM_KEY_exclam, SCIM_KEY_A, 0 }, 0x1EB6}, {{SCIM_KEY_Multi_key, SCIM_KEY_b, SCIM_KEY_exclam, SCIM_KEY_a, 0 }, 0x1EB7}, {{SCIM_KEY_Multi_key, SCIM_KEY_b, SCIM_KEY_comma, SCIM_KEY_E, 0 }, 0x1E1C}, {{SCIM_KEY_Multi_key, SCIM_KEY_b, SCIM_KEY_comma, SCIM_KEY_e, 0 }, 0x1E1D}, {{SCIM_KEY_Multi_key, SCIM_KEY_b, SCIM_KEY_period, 0, 0 }, 0x1E03}, {{SCIM_KEY_Multi_key, SCIM_KEY_b, SCIM_KEY_A, 0, 0 }, 0x0102}, {{SCIM_KEY_Multi_key, SCIM_KEY_b, SCIM_KEY_E, 0, 0 }, 0x0114}, {{SCIM_KEY_Multi_key, SCIM_KEY_b, SCIM_KEY_G, 0, 0 }, 0x011E}, {{SCIM_KEY_Multi_key, SCIM_KEY_b, SCIM_KEY_I, 0, 0 }, 0x012C}, {{SCIM_KEY_Multi_key, SCIM_KEY_b, SCIM_KEY_O, 0, 0 }, 0x014E}, {{SCIM_KEY_Multi_key, SCIM_KEY_b, SCIM_KEY_U, 0, 0 }, 0x016C}, {{SCIM_KEY_Multi_key, SCIM_KEY_b, SCIM_KEY_a, 0, 0 }, 0x0103}, {{SCIM_KEY_Multi_key, SCIM_KEY_b, SCIM_KEY_e, 0, 0 }, 0x0115}, {{SCIM_KEY_Multi_key, SCIM_KEY_b, SCIM_KEY_g, 0, 0 }, 0x011F}, {{SCIM_KEY_Multi_key, SCIM_KEY_b, SCIM_KEY_i, 0, 0 }, 0x012D}, {{SCIM_KEY_Multi_key, SCIM_KEY_b, SCIM_KEY_o, 0, 0 }, 0x014F}, {{SCIM_KEY_Multi_key, SCIM_KEY_b, SCIM_KEY_u, 0, 0 }, 0x016D}, {{SCIM_KEY_Multi_key, SCIM_KEY_b, SCIM_KEY_Cyrillic_a, 0, 0 }, 0x04D1}, {{SCIM_KEY_Multi_key, SCIM_KEY_b, SCIM_KEY_Cyrillic_ie, 0, 0 }, 0x04D7}, {{SCIM_KEY_Multi_key, SCIM_KEY_b, SCIM_KEY_Cyrillic_i, 0, 0 }, 0x0439}, {{SCIM_KEY_Multi_key, SCIM_KEY_b, SCIM_KEY_Cyrillic_u, 0, 0 }, 0x045E}, {{SCIM_KEY_Multi_key, SCIM_KEY_b, SCIM_KEY_Cyrillic_zhe, 0, 0 }, 0x04C2}, {{SCIM_KEY_Multi_key, SCIM_KEY_b, SCIM_KEY_Cyrillic_A, 0, 0 }, 0x04D0}, {{SCIM_KEY_Multi_key, SCIM_KEY_b, SCIM_KEY_Cyrillic_IE, 0, 0 }, 0x04D6}, {{SCIM_KEY_Multi_key, SCIM_KEY_b, SCIM_KEY_Cyrillic_I, 0, 0 }, 0x0419}, {{SCIM_KEY_Multi_key, SCIM_KEY_b, SCIM_KEY_Cyrillic_U, 0, 0 }, 0x040E}, {{SCIM_KEY_Multi_key, SCIM_KEY_b, SCIM_KEY_Cyrillic_ZHE, 0, 0 }, 0x04C1}, {{SCIM_KEY_Multi_key, SCIM_KEY_b, SCIM_KEY_Greek_ALPHA, 0, 0 }, 0x1FB8}, {{SCIM_KEY_Multi_key, SCIM_KEY_b, SCIM_KEY_Greek_IOTA, 0, 0 }, 0x1FD8}, {{SCIM_KEY_Multi_key, SCIM_KEY_b, SCIM_KEY_Greek_UPSILON, 0, 0 }, 0x1FE8}, {{SCIM_KEY_Multi_key, SCIM_KEY_b, SCIM_KEY_Greek_alpha, 0, 0 }, 0x1FB0}, {{SCIM_KEY_Multi_key, SCIM_KEY_b, SCIM_KEY_Greek_iota, 0, 0 }, 0x1FD0}, {{SCIM_KEY_Multi_key, SCIM_KEY_b, SCIM_KEY_Greek_upsilon, 0, 0 }, 0x1FE0}, {{SCIM_KEY_Multi_key, SCIM_KEY_b, SCIM_KEY_combining_belowdot, SCIM_KEY_A, 0 }, 0x1EB6}, {{SCIM_KEY_Multi_key, SCIM_KEY_b, SCIM_KEY_combining_belowdot, SCIM_KEY_a, 0 }, 0x1EB7}, {{SCIM_KEY_Multi_key, SCIM_KEY_b, SCIM_KEY_dead_cedilla, SCIM_KEY_E, 0 }, 0x1E1C}, {{SCIM_KEY_Multi_key, SCIM_KEY_b, SCIM_KEY_dead_cedilla, SCIM_KEY_e, 0 }, 0x1E1D}, {{SCIM_KEY_Multi_key, SCIM_KEY_b, SCIM_KEY_dead_belowdot, SCIM_KEY_A, 0 }, 0x1EB6}, {{SCIM_KEY_Multi_key, SCIM_KEY_b, SCIM_KEY_dead_belowdot, SCIM_KEY_a, 0 }, 0x1EB7}, {{SCIM_KEY_Multi_key, SCIM_KEY_b, 0x1000228, 0, 0 }, 0x1E1C}, {{SCIM_KEY_Multi_key, SCIM_KEY_b, 0x1000229, 0, 0 }, 0x1E1D}, {{SCIM_KEY_Multi_key, SCIM_KEY_b, 0x1001ea0, 0, 0 }, 0x1EB6}, {{SCIM_KEY_Multi_key, SCIM_KEY_b, 0x1001ea1, 0, 0 }, 0x1EB7}, {{SCIM_KEY_Multi_key, SCIM_KEY_c, SCIM_KEY_quotedbl, SCIM_KEY_U, 0 }, 0x01D9}, {{SCIM_KEY_Multi_key, SCIM_KEY_c, SCIM_KEY_quotedbl, SCIM_KEY_u, 0 }, 0x01DA}, {{SCIM_KEY_Multi_key, SCIM_KEY_c, SCIM_KEY_apostrophe, 0, 0 }, 0x0107}, {{SCIM_KEY_Multi_key, SCIM_KEY_c, SCIM_KEY_comma, 0, 0 }, 0x00E7}, {{SCIM_KEY_Multi_key, SCIM_KEY_c, SCIM_KEY_period, 0, 0 }, 0x010B}, {{SCIM_KEY_Multi_key, SCIM_KEY_c, SCIM_KEY_slash, 0, 0 }, 0x00A2}, {{SCIM_KEY_Multi_key, SCIM_KEY_c, SCIM_KEY_0, 0, 0 }, 0x00A9}, {{SCIM_KEY_Multi_key, SCIM_KEY_c, SCIM_KEY_less, 0, 0 }, 0x010D}, {{SCIM_KEY_Multi_key, SCIM_KEY_c, SCIM_KEY_equal, 0, 0 }, 0x20AC}, {{SCIM_KEY_Multi_key, SCIM_KEY_c, SCIM_KEY_A, 0, 0 }, 0x01CD}, {{SCIM_KEY_Multi_key, SCIM_KEY_c, SCIM_KEY_C, 0, 0 }, 0x010C}, {{SCIM_KEY_Multi_key, SCIM_KEY_c, SCIM_KEY_D, 0, 0 }, 0x010E}, {{SCIM_KEY_Multi_key, SCIM_KEY_c, SCIM_KEY_E, 0, 0 }, 0x011A}, {{SCIM_KEY_Multi_key, SCIM_KEY_c, SCIM_KEY_G, 0, 0 }, 0x01E6}, {{SCIM_KEY_Multi_key, SCIM_KEY_c, SCIM_KEY_H, 0, 0 }, 0x021E}, {{SCIM_KEY_Multi_key, SCIM_KEY_c, SCIM_KEY_I, 0, 0 }, 0x01CF}, {{SCIM_KEY_Multi_key, SCIM_KEY_c, SCIM_KEY_K, 0, 0 }, 0x01E8}, {{SCIM_KEY_Multi_key, SCIM_KEY_c, SCIM_KEY_L, 0, 0 }, 0x013D}, {{SCIM_KEY_Multi_key, SCIM_KEY_c, SCIM_KEY_N, 0, 0 }, 0x0147}, {{SCIM_KEY_Multi_key, SCIM_KEY_c, SCIM_KEY_O, 0, 0 }, 0x01D1}, {{SCIM_KEY_Multi_key, SCIM_KEY_c, SCIM_KEY_R, 0, 0 }, 0x0158}, {{SCIM_KEY_Multi_key, SCIM_KEY_c, SCIM_KEY_S, 0, 0 }, 0x0160}, {{SCIM_KEY_Multi_key, SCIM_KEY_c, SCIM_KEY_T, 0, 0 }, 0x0164}, {{SCIM_KEY_Multi_key, SCIM_KEY_c, SCIM_KEY_U, 0, 0 }, 0x01D3}, {{SCIM_KEY_Multi_key, SCIM_KEY_c, SCIM_KEY_Z, 0, 0 }, 0x017D}, {{SCIM_KEY_Multi_key, SCIM_KEY_c, SCIM_KEY_a, 0, 0 }, 0x01CE}, {{SCIM_KEY_Multi_key, SCIM_KEY_c, SCIM_KEY_c, 0, 0 }, 0x010D}, {{SCIM_KEY_Multi_key, SCIM_KEY_c, SCIM_KEY_d, 0, 0 }, 0x010F}, {{SCIM_KEY_Multi_key, SCIM_KEY_c, SCIM_KEY_e, 0, 0 }, 0x011B}, {{SCIM_KEY_Multi_key, SCIM_KEY_c, SCIM_KEY_g, 0, 0 }, 0x01E7}, {{SCIM_KEY_Multi_key, SCIM_KEY_c, SCIM_KEY_h, 0, 0 }, 0x021F}, {{SCIM_KEY_Multi_key, SCIM_KEY_c, SCIM_KEY_i, 0, 0 }, 0x01D0}, {{SCIM_KEY_Multi_key, SCIM_KEY_c, SCIM_KEY_j, 0, 0 }, 0x01F0}, {{SCIM_KEY_Multi_key, SCIM_KEY_c, SCIM_KEY_k, 0, 0 }, 0x01E9}, {{SCIM_KEY_Multi_key, SCIM_KEY_c, SCIM_KEY_l, 0, 0 }, 0x013E}, {{SCIM_KEY_Multi_key, SCIM_KEY_c, SCIM_KEY_n, 0, 0 }, 0x0148}, {{SCIM_KEY_Multi_key, SCIM_KEY_c, SCIM_KEY_o, 0, 0 }, 0x01D2}, {{SCIM_KEY_Multi_key, SCIM_KEY_c, SCIM_KEY_r, 0, 0 }, 0x0159}, {{SCIM_KEY_Multi_key, SCIM_KEY_c, SCIM_KEY_s, 0, 0 }, 0x0161}, {{SCIM_KEY_Multi_key, SCIM_KEY_c, SCIM_KEY_t, 0, 0 }, 0x0165}, {{SCIM_KEY_Multi_key, SCIM_KEY_c, SCIM_KEY_u, 0, 0 }, 0x01D4}, {{SCIM_KEY_Multi_key, SCIM_KEY_c, SCIM_KEY_z, 0, 0 }, 0x017E}, {{SCIM_KEY_Multi_key, SCIM_KEY_c, SCIM_KEY_bar, 0, 0 }, 0x00A2}, {{SCIM_KEY_Multi_key, SCIM_KEY_c, SCIM_KEY_Udiaeresis, 0, 0 }, 0x01D9}, {{SCIM_KEY_Multi_key, SCIM_KEY_c, SCIM_KEY_udiaeresis, 0, 0 }, 0x01DA}, {{SCIM_KEY_Multi_key, SCIM_KEY_c, SCIM_KEY_dead_diaeresis, SCIM_KEY_U, 0 }, 0x01D9}, {{SCIM_KEY_Multi_key, SCIM_KEY_c, SCIM_KEY_dead_diaeresis, SCIM_KEY_u, 0 }, 0x01DA}, {{SCIM_KEY_Multi_key, SCIM_KEY_c, 0x10001b7, 0, 0 }, 0x01EE}, {{SCIM_KEY_Multi_key, SCIM_KEY_c, 0x1000292, 0, 0 }, 0x01EF}, {{SCIM_KEY_Multi_key, SCIM_KEY_d, SCIM_KEY_minus, 0, 0 }, 0x20AB}, {{SCIM_KEY_Multi_key, SCIM_KEY_d, SCIM_KEY_period, 0, 0 }, 0x1E0B}, {{SCIM_KEY_Multi_key, SCIM_KEY_d, SCIM_KEY_less, 0, 0 }, 0x010F}, {{SCIM_KEY_Multi_key, SCIM_KEY_d, SCIM_KEY_h, 0, 0 }, 0x00F0}, {{SCIM_KEY_Multi_key, SCIM_KEY_e, SCIM_KEY_quotedbl, 0, 0 }, 0x00EB}, {{SCIM_KEY_Multi_key, SCIM_KEY_e, SCIM_KEY_apostrophe, 0, 0 }, 0x00E9}, {{SCIM_KEY_Multi_key, SCIM_KEY_e, SCIM_KEY_comma, 0, 0 }, 0x0119}, {{SCIM_KEY_Multi_key, SCIM_KEY_e, SCIM_KEY_minus, 0, 0 }, 0x0113}, {{SCIM_KEY_Multi_key, SCIM_KEY_e, SCIM_KEY_period, 0, 0 }, 0x0117}, {{SCIM_KEY_Multi_key, SCIM_KEY_e, SCIM_KEY_less, 0, 0 }, 0x011B}, {{SCIM_KEY_Multi_key, SCIM_KEY_e, SCIM_KEY_equal, 0, 0 }, 0x20AC}, {{SCIM_KEY_Multi_key, SCIM_KEY_e, SCIM_KEY_greater, 0, 0 }, 0x00EA}, {{SCIM_KEY_Multi_key, SCIM_KEY_e, SCIM_KEY_asciicircum, 0, 0 }, 0x00EA}, {{SCIM_KEY_Multi_key, SCIM_KEY_e, SCIM_KEY_underscore, 0, 0 }, 0x0113}, {{SCIM_KEY_Multi_key, SCIM_KEY_e, SCIM_KEY_grave, 0, 0 }, 0x00E8}, {{SCIM_KEY_Multi_key, SCIM_KEY_e, SCIM_KEY_e, 0, 0 }, 0x0259}, {{SCIM_KEY_Multi_key, SCIM_KEY_e, SCIM_KEY_diaeresis, 0, 0 }, 0x00EB}, {{SCIM_KEY_Multi_key, SCIM_KEY_e, SCIM_KEY_acute, 0, 0 }, 0x00E9}, {{SCIM_KEY_Multi_key, SCIM_KEY_f, SCIM_KEY_period, 0, 0 }, 0x1E1F}, {{SCIM_KEY_Multi_key, SCIM_KEY_f, SCIM_KEY_S, 0, 0 }, 0x017F}, {{SCIM_KEY_Multi_key, SCIM_KEY_f, SCIM_KEY_s, 0, 0 }, 0x017F}, {{SCIM_KEY_Multi_key, SCIM_KEY_g, SCIM_KEY_parenleft, 0, 0 }, 0x011F}, {{SCIM_KEY_Multi_key, SCIM_KEY_g, SCIM_KEY_comma, 0, 0 }, 0x0123}, {{SCIM_KEY_Multi_key, SCIM_KEY_g, SCIM_KEY_period, 0, 0 }, 0x0121}, {{SCIM_KEY_Multi_key, SCIM_KEY_g, SCIM_KEY_U, 0, 0 }, 0x011F}, {{SCIM_KEY_Multi_key, SCIM_KEY_g, SCIM_KEY_breve, 0, 0 }, 0x011F}, {{SCIM_KEY_Multi_key, SCIM_KEY_i, SCIM_KEY_quotedbl, 0, 0 }, 0x00EF}, {{SCIM_KEY_Multi_key, SCIM_KEY_i, SCIM_KEY_apostrophe, 0, 0 }, 0x00ED}, {{SCIM_KEY_Multi_key, SCIM_KEY_i, SCIM_KEY_comma, 0, 0 }, 0x012F}, {{SCIM_KEY_Multi_key, SCIM_KEY_i, SCIM_KEY_minus, 0, 0 }, 0x012B}, {{SCIM_KEY_Multi_key, SCIM_KEY_i, SCIM_KEY_period, 0, 0 }, 0x0131}, {{SCIM_KEY_Multi_key, SCIM_KEY_i, SCIM_KEY_greater, 0, 0 }, 0x00EE}, {{SCIM_KEY_Multi_key, SCIM_KEY_i, SCIM_KEY_asciicircum, 0, 0 }, 0x00EE}, {{SCIM_KEY_Multi_key, SCIM_KEY_i, SCIM_KEY_underscore, 0, 0 }, 0x012B}, {{SCIM_KEY_Multi_key, SCIM_KEY_i, SCIM_KEY_grave, 0, 0 }, 0x00EC}, {{SCIM_KEY_Multi_key, SCIM_KEY_i, SCIM_KEY_asciitilde, 0, 0 }, 0x0129}, {{SCIM_KEY_Multi_key, SCIM_KEY_i, SCIM_KEY_diaeresis, 0, 0 }, 0x00EF}, {{SCIM_KEY_Multi_key, SCIM_KEY_i, SCIM_KEY_acute, 0, 0 }, 0x00ED}, {{SCIM_KEY_Multi_key, SCIM_KEY_k, SCIM_KEY_comma, 0, 0 }, 0x0137}, {{SCIM_KEY_Multi_key, SCIM_KEY_k, SCIM_KEY_k, 0, 0 }, 0x0138}, {{SCIM_KEY_Multi_key, SCIM_KEY_l, SCIM_KEY_apostrophe, 0, 0 }, 0x013A}, {{SCIM_KEY_Multi_key, SCIM_KEY_l, SCIM_KEY_comma, 0, 0 }, 0x013C}, {{SCIM_KEY_Multi_key, SCIM_KEY_l, SCIM_KEY_minus, 0, 0 }, 0x00A3}, {{SCIM_KEY_Multi_key, SCIM_KEY_l, SCIM_KEY_less, 0, 0 }, 0x013E}, {{SCIM_KEY_Multi_key, SCIM_KEY_l, SCIM_KEY_equal, 0, 0 }, 0x00A3}, {{SCIM_KEY_Multi_key, SCIM_KEY_l, SCIM_KEY_v, 0, 0 }, 0x007C}, {{SCIM_KEY_Multi_key, SCIM_KEY_m, SCIM_KEY_period, 0, 0 }, 0x1E41}, {{SCIM_KEY_Multi_key, SCIM_KEY_m, SCIM_KEY_slash, 0, 0 }, 0x20A5}, {{SCIM_KEY_Multi_key, SCIM_KEY_m, SCIM_KEY_u, 0, 0 }, 0x00B5}, {{SCIM_KEY_Multi_key, SCIM_KEY_n, SCIM_KEY_apostrophe, 0, 0 }, 0x0144}, {{SCIM_KEY_Multi_key, SCIM_KEY_n, SCIM_KEY_comma, 0, 0 }, 0x0146}, {{SCIM_KEY_Multi_key, SCIM_KEY_n, SCIM_KEY_minus, 0, 0 }, 0x00F1}, {{SCIM_KEY_Multi_key, SCIM_KEY_n, SCIM_KEY_less, 0, 0 }, 0x0148}, {{SCIM_KEY_Multi_key, SCIM_KEY_n, SCIM_KEY_g, 0, 0 }, 0x014B}, {{SCIM_KEY_Multi_key, SCIM_KEY_n, SCIM_KEY_asciitilde, 0, 0 }, 0x00F1}, {{SCIM_KEY_Multi_key, SCIM_KEY_o, SCIM_KEY_quotedbl, 0, 0 }, 0x00F6}, {{SCIM_KEY_Multi_key, SCIM_KEY_o, SCIM_KEY_apostrophe, 0, 0 }, 0x00F3}, {{SCIM_KEY_Multi_key, SCIM_KEY_o, SCIM_KEY_apostrophe, SCIM_KEY_A, 0 }, 0x01FA}, {{SCIM_KEY_Multi_key, SCIM_KEY_o, SCIM_KEY_apostrophe, SCIM_KEY_a, 0 }, 0x01FB}, {{SCIM_KEY_Multi_key, SCIM_KEY_o, SCIM_KEY_minus, 0, 0 }, 0x014D}, {{SCIM_KEY_Multi_key, SCIM_KEY_o, SCIM_KEY_slash, 0, 0 }, 0x00F8}, {{SCIM_KEY_Multi_key, SCIM_KEY_o, SCIM_KEY_greater, 0, 0 }, 0x00F4}, {{SCIM_KEY_Multi_key, SCIM_KEY_o, SCIM_KEY_A, 0, 0 }, 0x00C5}, {{SCIM_KEY_Multi_key, SCIM_KEY_o, SCIM_KEY_C, 0, 0 }, 0x00A9}, {{SCIM_KEY_Multi_key, SCIM_KEY_o, SCIM_KEY_R, 0, 0 }, 0x00AE}, {{SCIM_KEY_Multi_key, SCIM_KEY_o, SCIM_KEY_U, 0, 0 }, 0x016E}, {{SCIM_KEY_Multi_key, SCIM_KEY_o, SCIM_KEY_X, 0, 0 }, 0x00A4}, {{SCIM_KEY_Multi_key, SCIM_KEY_o, SCIM_KEY_asciicircum, 0, 0 }, 0x00F4}, {{SCIM_KEY_Multi_key, SCIM_KEY_o, SCIM_KEY_underscore, 0, 0 }, 0x00BA}, {{SCIM_KEY_Multi_key, SCIM_KEY_o, SCIM_KEY_grave, 0, 0 }, 0x00F2}, {{SCIM_KEY_Multi_key, SCIM_KEY_o, SCIM_KEY_a, 0, 0 }, 0x00E5}, {{SCIM_KEY_Multi_key, SCIM_KEY_o, SCIM_KEY_c, 0, 0 }, 0x00A9}, {{SCIM_KEY_Multi_key, SCIM_KEY_o, SCIM_KEY_e, 0, 0 }, 0x0153}, {{SCIM_KEY_Multi_key, SCIM_KEY_o, SCIM_KEY_o, 0, 0 }, 0x00B0}, {{SCIM_KEY_Multi_key, SCIM_KEY_o, SCIM_KEY_r, 0, 0 }, 0x00AE}, {{SCIM_KEY_Multi_key, SCIM_KEY_o, SCIM_KEY_s, 0, 0 }, 0x00A7}, {{SCIM_KEY_Multi_key, SCIM_KEY_o, SCIM_KEY_u, 0, 0 }, 0x016F}, {{SCIM_KEY_Multi_key, SCIM_KEY_o, SCIM_KEY_w, 0, 0 }, 0x1E98}, {{SCIM_KEY_Multi_key, SCIM_KEY_o, SCIM_KEY_x, 0, 0 }, 0x00A4}, {{SCIM_KEY_Multi_key, SCIM_KEY_o, SCIM_KEY_y, 0, 0 }, 0x1E99}, {{SCIM_KEY_Multi_key, SCIM_KEY_o, SCIM_KEY_asciitilde, 0, 0 }, 0x00F5}, {{SCIM_KEY_Multi_key, SCIM_KEY_o, SCIM_KEY_diaeresis, 0, 0 }, 0x00F6}, {{SCIM_KEY_Multi_key, SCIM_KEY_o, SCIM_KEY_acute, 0, 0 }, 0x00F3}, {{SCIM_KEY_Multi_key, SCIM_KEY_p, SCIM_KEY_exclam, 0, 0 }, 0x00B6}, {{SCIM_KEY_Multi_key, SCIM_KEY_p, SCIM_KEY_period, 0, 0 }, 0x1E57}, {{SCIM_KEY_Multi_key, SCIM_KEY_r, SCIM_KEY_apostrophe, 0, 0 }, 0x0155}, {{SCIM_KEY_Multi_key, SCIM_KEY_r, SCIM_KEY_comma, 0, 0 }, 0x0157}, {{SCIM_KEY_Multi_key, SCIM_KEY_r, SCIM_KEY_less, 0, 0 }, 0x0159}, {{SCIM_KEY_Multi_key, SCIM_KEY_s, SCIM_KEY_exclam, 0, 0 }, 0x00A7}, {{SCIM_KEY_Multi_key, SCIM_KEY_s, SCIM_KEY_apostrophe, 0, 0 }, 0x015B}, {{SCIM_KEY_Multi_key, SCIM_KEY_s, SCIM_KEY_comma, 0, 0 }, 0x015F}, {{SCIM_KEY_Multi_key, SCIM_KEY_s, SCIM_KEY_period, 0, 0 }, 0x1E61}, {{SCIM_KEY_Multi_key, SCIM_KEY_s, SCIM_KEY_0, 0, 0 }, 0x00A7}, {{SCIM_KEY_Multi_key, SCIM_KEY_s, SCIM_KEY_1, 0, 0 }, 0x00B9}, {{SCIM_KEY_Multi_key, SCIM_KEY_s, SCIM_KEY_2, 0, 0 }, 0x00B2}, {{SCIM_KEY_Multi_key, SCIM_KEY_s, SCIM_KEY_3, 0, 0 }, 0x00B3}, {{SCIM_KEY_Multi_key, SCIM_KEY_s, SCIM_KEY_less, 0, 0 }, 0x0161}, {{SCIM_KEY_Multi_key, SCIM_KEY_s, SCIM_KEY_o, 0, 0 }, 0x00A7}, {{SCIM_KEY_Multi_key, SCIM_KEY_s, SCIM_KEY_s, 0, 0 }, 0x00DF}, {{SCIM_KEY_Multi_key, SCIM_KEY_s, SCIM_KEY_cedilla, 0, 0 }, 0x015F}, {{SCIM_KEY_Multi_key, SCIM_KEY_t, SCIM_KEY_minus, 0, 0 }, 0x0167}, {{SCIM_KEY_Multi_key, SCIM_KEY_t, SCIM_KEY_period, 0, 0 }, 0x1E6B}, {{SCIM_KEY_Multi_key, SCIM_KEY_t, SCIM_KEY_slash, 0, 0 }, 0x0167}, {{SCIM_KEY_Multi_key, SCIM_KEY_t, SCIM_KEY_less, 0, 0 }, 0x0165}, {{SCIM_KEY_Multi_key, SCIM_KEY_t, SCIM_KEY_h, 0, 0 }, 0x00FE}, {{SCIM_KEY_Multi_key, SCIM_KEY_u, SCIM_KEY_quotedbl, 0, 0 }, 0x00FC}, {{SCIM_KEY_Multi_key, SCIM_KEY_u, SCIM_KEY_apostrophe, 0, 0 }, 0x00FA}, {{SCIM_KEY_Multi_key, SCIM_KEY_u, SCIM_KEY_asterisk, 0, 0 }, 0x016F}, {{SCIM_KEY_Multi_key, SCIM_KEY_u, SCIM_KEY_comma, 0, 0 }, 0x0173}, {{SCIM_KEY_Multi_key, SCIM_KEY_u, SCIM_KEY_minus, 0, 0 }, 0x016B}, {{SCIM_KEY_Multi_key, SCIM_KEY_u, SCIM_KEY_slash, 0, 0 }, 0x00B5}, {{SCIM_KEY_Multi_key, SCIM_KEY_u, SCIM_KEY_greater, 0, 0 }, 0x00FB}, {{SCIM_KEY_Multi_key, SCIM_KEY_u, SCIM_KEY_asciicircum, 0, 0 }, 0x00FB}, {{SCIM_KEY_Multi_key, SCIM_KEY_u, SCIM_KEY_underscore, 0, 0 }, 0x016B}, {{SCIM_KEY_Multi_key, SCIM_KEY_u, SCIM_KEY_grave, 0, 0 }, 0x00F9}, {{SCIM_KEY_Multi_key, SCIM_KEY_u, SCIM_KEY_asciitilde, 0, 0 }, 0x0169}, {{SCIM_KEY_Multi_key, SCIM_KEY_u, SCIM_KEY_diaeresis, 0, 0 }, 0x00FC}, {{SCIM_KEY_Multi_key, SCIM_KEY_u, SCIM_KEY_acute, 0, 0 }, 0x00FA}, {{SCIM_KEY_Multi_key, SCIM_KEY_v, SCIM_KEY_Z, 0, 0 }, 0x017D}, {{SCIM_KEY_Multi_key, SCIM_KEY_v, SCIM_KEY_l, 0, 0 }, 0x007C}, {{SCIM_KEY_Multi_key, SCIM_KEY_v, SCIM_KEY_z, 0, 0 }, 0x017E}, {{SCIM_KEY_Multi_key, SCIM_KEY_w, SCIM_KEY_asciicircum, 0, 0 }, 0x0175}, {{SCIM_KEY_Multi_key, SCIM_KEY_x, SCIM_KEY_0, 0, 0 }, 0x00A4}, {{SCIM_KEY_Multi_key, SCIM_KEY_x, SCIM_KEY_O, 0, 0 }, 0x00A4}, {{SCIM_KEY_Multi_key, SCIM_KEY_x, SCIM_KEY_o, 0, 0 }, 0x00A4}, {{SCIM_KEY_Multi_key, SCIM_KEY_x, SCIM_KEY_x, 0, 0 }, 0x00D7}, {{SCIM_KEY_Multi_key, SCIM_KEY_y, SCIM_KEY_quotedbl, 0, 0 }, 0x00FF}, {{SCIM_KEY_Multi_key, SCIM_KEY_y, SCIM_KEY_apostrophe, 0, 0 }, 0x00FD}, {{SCIM_KEY_Multi_key, SCIM_KEY_y, SCIM_KEY_minus, 0, 0 }, 0x00A5}, {{SCIM_KEY_Multi_key, SCIM_KEY_y, SCIM_KEY_equal, 0, 0 }, 0x00A5}, {{SCIM_KEY_Multi_key, SCIM_KEY_y, SCIM_KEY_asciicircum, 0, 0 }, 0x0177}, {{SCIM_KEY_Multi_key, SCIM_KEY_y, SCIM_KEY_diaeresis, 0, 0 }, 0x00FF}, {{SCIM_KEY_Multi_key, SCIM_KEY_y, SCIM_KEY_acute, 0, 0 }, 0x00FD}, {{SCIM_KEY_Multi_key, SCIM_KEY_z, SCIM_KEY_apostrophe, 0, 0 }, 0x017A}, {{SCIM_KEY_Multi_key, SCIM_KEY_z, SCIM_KEY_period, 0, 0 }, 0x017C}, {{SCIM_KEY_Multi_key, SCIM_KEY_z, SCIM_KEY_less, 0, 0 }, 0x017E}, {{SCIM_KEY_Multi_key, SCIM_KEY_bar, SCIM_KEY_C, 0, 0 }, 0x00A2}, {{SCIM_KEY_Multi_key, SCIM_KEY_bar, SCIM_KEY_c, 0, 0 }, 0x00A2}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_space, 0, 0 }, 0x007E}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_quotedbl, SCIM_KEY_Greek_iota, 0 }, 0x1FD7}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_quotedbl, SCIM_KEY_Greek_upsilon, 0 }, 0x1FE7}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_parenleft, SCIM_KEY_Greek_ALPHA, 0 }, 0x1F0F}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_parenleft, SCIM_KEY_Greek_ETA, 0 }, 0x1F2F}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_parenleft, SCIM_KEY_Greek_IOTA, 0 }, 0x1F3F}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_parenleft, SCIM_KEY_Greek_UPSILON, 0 }, 0x1F5F}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_parenleft, SCIM_KEY_Greek_OMEGA, 0 }, 0x1F6F}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_parenleft, SCIM_KEY_Greek_alpha, 0 }, 0x1F07}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_parenleft, SCIM_KEY_Greek_eta, 0 }, 0x1F27}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_parenleft, SCIM_KEY_Greek_iota, 0 }, 0x1F37}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_parenleft, SCIM_KEY_Greek_upsilon, 0 }, 0x1F57}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_parenleft, SCIM_KEY_Greek_omega, 0 }, 0x1F67}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_parenright, SCIM_KEY_Greek_ALPHA, 0 }, 0x1F0E}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_parenright, SCIM_KEY_Greek_ETA, 0 }, 0x1F2E}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_parenright, SCIM_KEY_Greek_IOTA, 0 }, 0x1F3E}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_parenright, SCIM_KEY_Greek_OMEGA, 0 }, 0x1F6E}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_parenright, SCIM_KEY_Greek_alpha, 0 }, 0x1F06}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_parenright, SCIM_KEY_Greek_eta, 0 }, 0x1F26}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_parenright, SCIM_KEY_Greek_iota, 0 }, 0x1F36}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_parenright, SCIM_KEY_Greek_upsilon, 0 }, 0x1F56}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_parenright, SCIM_KEY_Greek_omega, 0 }, 0x1F66}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_plus, SCIM_KEY_O, 0 }, 0x1EE0}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_plus, SCIM_KEY_U, 0 }, 0x1EEE}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_plus, SCIM_KEY_o, 0 }, 0x1EE1}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_plus, SCIM_KEY_u, 0 }, 0x1EEF}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_A, 0, 0 }, 0x00C3}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_E, 0, 0 }, 0x1EBC}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_I, 0, 0 }, 0x0128}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_N, 0, 0 }, 0x00D1}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_O, 0, 0 }, 0x00D5}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_U, 0, 0 }, 0x0168}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_U, SCIM_KEY_A, 0 }, 0x1EB4}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_U, SCIM_KEY_a, 0 }, 0x1EB5}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_V, 0, 0 }, 0x1E7C}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_Y, 0, 0 }, 0x1EF8}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_asciicircum, SCIM_KEY_A, 0 }, 0x1EAA}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_asciicircum, SCIM_KEY_E, 0 }, 0x1EC4}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_asciicircum, SCIM_KEY_O, 0 }, 0x1ED6}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_asciicircum, SCIM_KEY_a, 0 }, 0x1EAB}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_asciicircum, SCIM_KEY_e, 0 }, 0x1EC5}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_asciicircum, SCIM_KEY_o, 0 }, 0x1ED7}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_a, 0, 0 }, 0x00E3}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_b, SCIM_KEY_A, 0 }, 0x1EB4}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_b, SCIM_KEY_a, 0 }, 0x1EB5}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_e, 0, 0 }, 0x1EBD}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_i, 0, 0 }, 0x0129}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_n, 0, 0 }, 0x00F1}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_o, 0, 0 }, 0x00F5}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_u, 0, 0 }, 0x0169}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_v, 0, 0 }, 0x1E7D}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_y, 0, 0 }, 0x1EF9}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_Acircumflex, 0, 0 }, 0x1EAA}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_Ecircumflex, 0, 0 }, 0x1EC4}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_Ocircumflex, 0, 0 }, 0x1ED6}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_acircumflex, 0, 0 }, 0x1EAB}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_ecircumflex, 0, 0 }, 0x1EC5}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_ocircumflex, 0, 0 }, 0x1ED7}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_Abreve, 0, 0 }, 0x1EB4}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_abreve, 0, 0 }, 0x1EB5}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_Greek_iotadieresis, 0, 0 }, 0x1FD7}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_Greek_upsilondieresis, 0, 0 }, 0x1FE7}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_Greek_alpha, 0, 0 }, 0x1FB6}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_Greek_eta, 0, 0 }, 0x1FC6}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_Greek_iota, 0, 0 }, 0x1FD6}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_Greek_upsilon, 0, 0 }, 0x1FE6}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_Greek_omega, 0, 0 }, 0x1FF6}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_Ohorn, 0, 0 }, 0x1EE0}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_ohorn, 0, 0 }, 0x1EE1}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_Uhorn, 0, 0 }, 0x1EEE}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_uhorn, 0, 0 }, 0x1EEF}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_dead_circumflex, SCIM_KEY_A, 0 }, 0x1EAA}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_dead_circumflex, SCIM_KEY_E, 0 }, 0x1EC4}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_dead_circumflex, SCIM_KEY_O, 0 }, 0x1ED6}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_dead_circumflex, SCIM_KEY_a, 0 }, 0x1EAB}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_dead_circumflex, SCIM_KEY_e, 0 }, 0x1EC5}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_dead_circumflex, SCIM_KEY_o, 0 }, 0x1ED7}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_dead_breve, SCIM_KEY_A, 0 }, 0x1EB4}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_dead_breve, SCIM_KEY_a, 0 }, 0x1EB5}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_dead_diaeresis, SCIM_KEY_Greek_iota, 0 }, 0x1FD7}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_dead_diaeresis, SCIM_KEY_Greek_upsilon, 0 }, 0x1FE7}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_dead_horn, SCIM_KEY_O, 0 }, 0x1EE0}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_dead_horn, SCIM_KEY_U, 0 }, 0x1EEE}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_dead_horn, SCIM_KEY_o, 0 }, 0x1EE1}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, SCIM_KEY_dead_horn, SCIM_KEY_u, 0 }, 0x1EEF}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1000313, SCIM_KEY_Greek_ALPHA, 0 }, 0x1F0E}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1000313, SCIM_KEY_Greek_ETA, 0 }, 0x1F2E}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1000313, SCIM_KEY_Greek_IOTA, 0 }, 0x1F3E}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1000313, SCIM_KEY_Greek_OMEGA, 0 }, 0x1F6E}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1000313, SCIM_KEY_Greek_alpha, 0 }, 0x1F06}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1000313, SCIM_KEY_Greek_eta, 0 }, 0x1F26}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1000313, SCIM_KEY_Greek_iota, 0 }, 0x1F36}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1000313, SCIM_KEY_Greek_upsilon, 0 }, 0x1F56}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1000313, SCIM_KEY_Greek_omega, 0 }, 0x1F66}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1000314, SCIM_KEY_Greek_ALPHA, 0 }, 0x1F0F}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1000314, SCIM_KEY_Greek_ETA, 0 }, 0x1F2F}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1000314, SCIM_KEY_Greek_IOTA, 0 }, 0x1F3F}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1000314, SCIM_KEY_Greek_UPSILON, 0 }, 0x1F5F}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1000314, SCIM_KEY_Greek_OMEGA, 0 }, 0x1F6F}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1000314, SCIM_KEY_Greek_alpha, 0 }, 0x1F07}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1000314, SCIM_KEY_Greek_eta, 0 }, 0x1F27}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1000314, SCIM_KEY_Greek_iota, 0 }, 0x1F37}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1000314, SCIM_KEY_Greek_upsilon, 0 }, 0x1F57}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1000314, SCIM_KEY_Greek_omega, 0 }, 0x1F67}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1001f00, 0, 0 }, 0x1F06}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1001f01, 0, 0 }, 0x1F07}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1001f08, 0, 0 }, 0x1F0E}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1001f09, 0, 0 }, 0x1F0F}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1001f20, 0, 0 }, 0x1F26}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1001f21, 0, 0 }, 0x1F27}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1001f28, 0, 0 }, 0x1F2E}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1001f29, 0, 0 }, 0x1F2F}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1001f30, 0, 0 }, 0x1F36}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1001f31, 0, 0 }, 0x1F37}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1001f38, 0, 0 }, 0x1F3E}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1001f39, 0, 0 }, 0x1F3F}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1001f50, 0, 0 }, 0x1F56}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1001f51, 0, 0 }, 0x1F57}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1001f59, 0, 0 }, 0x1F5F}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1001f60, 0, 0 }, 0x1F66}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1001f61, 0, 0 }, 0x1F67}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1001f68, 0, 0 }, 0x1F6E}, {{SCIM_KEY_Multi_key, SCIM_KEY_asciitilde, 0x1001f69, 0, 0 }, 0x1F6F}, {{SCIM_KEY_Multi_key, SCIM_KEY_diaeresis, SCIM_KEY_apostrophe, 0, 0 }, 0x0385}, {{SCIM_KEY_Multi_key, SCIM_KEY_diaeresis, SCIM_KEY_A, 0, 0 }, 0x00C4}, {{SCIM_KEY_Multi_key, SCIM_KEY_diaeresis, SCIM_KEY_E, 0, 0 }, 0x00CB}, {{SCIM_KEY_Multi_key, SCIM_KEY_diaeresis, SCIM_KEY_I, 0, 0 }, 0x00CF}, {{SCIM_KEY_Multi_key, SCIM_KEY_diaeresis, SCIM_KEY_O, 0, 0 }, 0x00D6}, {{SCIM_KEY_Multi_key, SCIM_KEY_diaeresis, SCIM_KEY_U, 0, 0 }, 0x00DC}, {{SCIM_KEY_Multi_key, SCIM_KEY_diaeresis, SCIM_KEY_Y, 0, 0 }, 0x0178}, {{SCIM_KEY_Multi_key, SCIM_KEY_diaeresis, SCIM_KEY_grave, 0, 0 }, 0x1FED}, {{SCIM_KEY_Multi_key, SCIM_KEY_diaeresis, SCIM_KEY_a, 0, 0 }, 0x00E4}, {{SCIM_KEY_Multi_key, SCIM_KEY_diaeresis, SCIM_KEY_e, 0, 0 }, 0x00EB}, {{SCIM_KEY_Multi_key, SCIM_KEY_diaeresis, SCIM_KEY_i, 0, 0 }, 0x00EF}, {{SCIM_KEY_Multi_key, SCIM_KEY_diaeresis, SCIM_KEY_o, 0, 0 }, 0x00F6}, {{SCIM_KEY_Multi_key, SCIM_KEY_diaeresis, SCIM_KEY_u, 0, 0 }, 0x00FC}, {{SCIM_KEY_Multi_key, SCIM_KEY_diaeresis, SCIM_KEY_y, 0, 0 }, 0x00FF}, {{SCIM_KEY_Multi_key, SCIM_KEY_diaeresis, SCIM_KEY_asciitilde, 0, 0 }, 0x1FC1}, {{SCIM_KEY_Multi_key, SCIM_KEY_diaeresis, SCIM_KEY_acute, 0, 0 }, 0x0385}, {{SCIM_KEY_Multi_key, SCIM_KEY_diaeresis, SCIM_KEY_combining_grave, 0, 0 }, 0x1FED}, {{SCIM_KEY_Multi_key, SCIM_KEY_diaeresis, SCIM_KEY_combining_acute, 0, 0 }, 0x0385}, {{SCIM_KEY_Multi_key, SCIM_KEY_diaeresis, SCIM_KEY_dead_grave, 0, 0 }, 0x1FED}, {{SCIM_KEY_Multi_key, SCIM_KEY_diaeresis, SCIM_KEY_dead_acute, 0, 0 }, 0x0385}, {{SCIM_KEY_Multi_key, SCIM_KEY_diaeresis, SCIM_KEY_dead_tilde, 0, 0 }, 0x1FC1}, {{SCIM_KEY_Multi_key, SCIM_KEY_diaeresis, 0x1000342, 0, 0 }, 0x1FC1}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_exclam, SCIM_KEY_L, 0 }, 0x1E38}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_exclam, SCIM_KEY_R, 0 }, 0x1E5C}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_exclam, SCIM_KEY_l, 0 }, 0x1E39}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_exclam, SCIM_KEY_r, 0 }, 0x1E5D}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_quotedbl, SCIM_KEY_A, 0 }, 0x01DE}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_quotedbl, SCIM_KEY_O, 0 }, 0x022A}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_quotedbl, SCIM_KEY_U, 0 }, 0x01D5}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_quotedbl, SCIM_KEY_a, 0 }, 0x01DF}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_quotedbl, SCIM_KEY_o, 0 }, 0x022B}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_quotedbl, SCIM_KEY_u, 0 }, 0x01D6}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_period, SCIM_KEY_A, 0 }, 0x01E0}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_period, SCIM_KEY_O, 0 }, 0x0230}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_period, SCIM_KEY_a, 0 }, 0x01E1}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_period, SCIM_KEY_o, 0 }, 0x0231}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_semicolon, SCIM_KEY_O, 0 }, 0x01EC}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_semicolon, SCIM_KEY_o, 0 }, 0x01ED}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_A, 0, 0 }, 0x0100}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_E, 0, 0 }, 0x0112}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_G, 0, 0 }, 0x1E20}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_I, 0, 0 }, 0x012A}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_O, 0, 0 }, 0x014C}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_U, 0, 0 }, 0x016A}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_Y, 0, 0 }, 0x0232}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_a, 0, 0 }, 0x0101}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_e, 0, 0 }, 0x0113}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_g, 0, 0 }, 0x1E21}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_i, 0, 0 }, 0x012B}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_o, 0, 0 }, 0x014D}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_u, 0, 0 }, 0x016B}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_y, 0, 0 }, 0x0233}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_asciitilde, SCIM_KEY_O, 0 }, 0x022C}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_asciitilde, SCIM_KEY_o, 0 }, 0x022D}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_Adiaeresis, 0, 0 }, 0x01DE}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_AE, 0, 0 }, 0x01E2}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_Otilde, 0, 0 }, 0x022C}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_Odiaeresis, 0, 0 }, 0x022A}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_Udiaeresis, 0, 0 }, 0x01D5}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_adiaeresis, 0, 0 }, 0x01DF}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_ae, 0, 0 }, 0x01E3}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_otilde, 0, 0 }, 0x022D}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_odiaeresis, 0, 0 }, 0x022B}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_udiaeresis, 0, 0 }, 0x01D6}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_Cyrillic_i, 0, 0 }, 0x04E3}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_Cyrillic_u, 0, 0 }, 0x04EF}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_Cyrillic_I, 0, 0 }, 0x04E2}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_Cyrillic_U, 0, 0 }, 0x04EE}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_Greek_ALPHA, 0, 0 }, 0x1FB9}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_Greek_IOTA, 0, 0 }, 0x1FD9}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_Greek_UPSILON, 0, 0 }, 0x1FE9}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_Greek_alpha, 0, 0 }, 0x1FB1}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_Greek_iota, 0, 0 }, 0x1FD1}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_Greek_upsilon, 0, 0 }, 0x1FE1}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_combining_tilde, SCIM_KEY_O, 0 }, 0x022C}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_combining_tilde, SCIM_KEY_o, 0 }, 0x022D}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_combining_belowdot, SCIM_KEY_L, 0 }, 0x1E38}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_combining_belowdot, SCIM_KEY_R, 0 }, 0x1E5C}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_combining_belowdot, SCIM_KEY_l, 0 }, 0x1E39}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_combining_belowdot, SCIM_KEY_r, 0 }, 0x1E5D}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_dead_tilde, SCIM_KEY_O, 0 }, 0x022C}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_dead_tilde, SCIM_KEY_o, 0 }, 0x022D}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_dead_abovedot, SCIM_KEY_A, 0 }, 0x01E0}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_dead_abovedot, SCIM_KEY_O, 0 }, 0x0230}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_dead_abovedot, SCIM_KEY_a, 0 }, 0x01E1}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_dead_abovedot, SCIM_KEY_o, 0 }, 0x0231}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_dead_diaeresis, SCIM_KEY_A, 0 }, 0x01DE}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_dead_diaeresis, SCIM_KEY_O, 0 }, 0x022A}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_dead_diaeresis, SCIM_KEY_U, 0 }, 0x01D5}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_dead_diaeresis, SCIM_KEY_a, 0 }, 0x01DF}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_dead_diaeresis, SCIM_KEY_o, 0 }, 0x022B}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_dead_diaeresis, SCIM_KEY_u, 0 }, 0x01D6}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_dead_ogonek, SCIM_KEY_O, 0 }, 0x01EC}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_dead_ogonek, SCIM_KEY_o, 0 }, 0x01ED}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_dead_belowdot, SCIM_KEY_L, 0 }, 0x1E38}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_dead_belowdot, SCIM_KEY_R, 0 }, 0x1E5C}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_dead_belowdot, SCIM_KEY_l, 0 }, 0x1E39}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, SCIM_KEY_dead_belowdot, SCIM_KEY_r, 0 }, 0x1E5D}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, 0x10001ea, 0, 0 }, 0x01EC}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, 0x10001eb, 0, 0 }, 0x01ED}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, 0x1000226, 0, 0 }, 0x01E0}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, 0x1000227, 0, 0 }, 0x01E1}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, 0x100022e, 0, 0 }, 0x0230}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, 0x100022f, 0, 0 }, 0x0231}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, 0x1001e36, 0, 0 }, 0x1E38}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, 0x1001e37, 0, 0 }, 0x1E39}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, 0x1001e5a, 0, 0 }, 0x1E5C}, {{SCIM_KEY_Multi_key, SCIM_KEY_macron, 0x1001e5b, 0, 0 }, 0x1E5D}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_quotedbl, SCIM_KEY_I, 0 }, 0x1E2E}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_quotedbl, SCIM_KEY_U, 0 }, 0x01D7}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_quotedbl, SCIM_KEY_i, 0 }, 0x1E2F}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_quotedbl, SCIM_KEY_u, 0 }, 0x01D8}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_quotedbl, SCIM_KEY_Greek_iota, 0 }, 0x0390}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_quotedbl, SCIM_KEY_Greek_upsilon, 0 }, 0x03B0}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_parenleft, SCIM_KEY_Greek_ALPHA, 0 }, 0x1F0D}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_parenleft, SCIM_KEY_Greek_EPSILON, 0 }, 0x1F1D}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_parenleft, SCIM_KEY_Greek_ETA, 0 }, 0x1F2D}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_parenleft, SCIM_KEY_Greek_IOTA, 0 }, 0x1F3D}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_parenleft, SCIM_KEY_Greek_OMICRON, 0 }, 0x1F4D}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_parenleft, SCIM_KEY_Greek_UPSILON, 0 }, 0x1F5D}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_parenleft, SCIM_KEY_Greek_OMEGA, 0 }, 0x1F6D}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_parenleft, SCIM_KEY_Greek_alpha, 0 }, 0x1F05}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_parenleft, SCIM_KEY_Greek_epsilon, 0 }, 0x1F15}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_parenleft, SCIM_KEY_Greek_eta, 0 }, 0x1F25}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_parenleft, SCIM_KEY_Greek_iota, 0 }, 0x1F35}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_parenleft, SCIM_KEY_Greek_omicron, 0 }, 0x1F45}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_parenleft, SCIM_KEY_Greek_upsilon, 0 }, 0x1F55}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_parenleft, SCIM_KEY_Greek_omega, 0 }, 0x1F65}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_parenright, SCIM_KEY_Greek_ALPHA, 0 }, 0x1F0C}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_parenright, SCIM_KEY_Greek_EPSILON, 0 }, 0x1F1C}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_parenright, SCIM_KEY_Greek_ETA, 0 }, 0x1F2C}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_parenright, SCIM_KEY_Greek_IOTA, 0 }, 0x1F3C}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_parenright, SCIM_KEY_Greek_OMICRON, 0 }, 0x1F4C}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_parenright, SCIM_KEY_Greek_OMEGA, 0 }, 0x1F6C}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_parenright, SCIM_KEY_Greek_alpha, 0 }, 0x1F04}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_parenright, SCIM_KEY_Greek_epsilon, 0 }, 0x1F14}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_parenright, SCIM_KEY_Greek_eta, 0 }, 0x1F24}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_parenright, SCIM_KEY_Greek_iota, 0 }, 0x1F34}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_parenright, SCIM_KEY_Greek_omicron, 0 }, 0x1F44}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_parenright, SCIM_KEY_Greek_upsilon, 0 }, 0x1F54}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_parenright, SCIM_KEY_Greek_omega, 0 }, 0x1F64}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_plus, SCIM_KEY_O, 0 }, 0x1EDA}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_plus, SCIM_KEY_U, 0 }, 0x1EE8}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_plus, SCIM_KEY_o, 0 }, 0x1EDB}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_plus, SCIM_KEY_u, 0 }, 0x1EE9}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_comma, SCIM_KEY_C, 0 }, 0x1E08}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_comma, SCIM_KEY_c, 0 }, 0x1E09}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_slash, SCIM_KEY_O, 0 }, 0x01FE}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_slash, SCIM_KEY_o, 0 }, 0x01FF}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_A, 0, 0 }, 0x00C1}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_C, 0, 0 }, 0x0106}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_E, 0, 0 }, 0x00C9}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_G, 0, 0 }, 0x01F4}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_I, 0, 0 }, 0x00CD}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_K, 0, 0 }, 0x1E30}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_L, 0, 0 }, 0x0139}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_M, 0, 0 }, 0x1E3E}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_N, 0, 0 }, 0x0143}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_O, 0, 0 }, 0x00D3}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_P, 0, 0 }, 0x1E54}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_R, 0, 0 }, 0x0154}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_S, 0, 0 }, 0x015A}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_U, 0, 0 }, 0x00DA}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_U, SCIM_KEY_A, 0 }, 0x1EAE}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_U, SCIM_KEY_a, 0 }, 0x1EAF}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_W, 0, 0 }, 0x1E82}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_Y, 0, 0 }, 0x00DD}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_Z, 0, 0 }, 0x0179}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_asciicircum, SCIM_KEY_A, 0 }, 0x1EA4}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_asciicircum, SCIM_KEY_E, 0 }, 0x1EBE}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_asciicircum, SCIM_KEY_O, 0 }, 0x1ED0}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_asciicircum, SCIM_KEY_a, 0 }, 0x1EA5}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_asciicircum, SCIM_KEY_e, 0 }, 0x1EBF}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_asciicircum, SCIM_KEY_o, 0 }, 0x1ED1}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_underscore, SCIM_KEY_E, 0 }, 0x1E16}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_underscore, SCIM_KEY_O, 0 }, 0x1E52}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_underscore, SCIM_KEY_e, 0 }, 0x1E17}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_underscore, SCIM_KEY_o, 0 }, 0x1E53}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_a, 0, 0 }, 0x00E1}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_b, SCIM_KEY_A, 0 }, 0x1EAE}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_b, SCIM_KEY_a, 0 }, 0x1EAF}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_c, 0, 0 }, 0x0107}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_e, 0, 0 }, 0x00E9}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_g, 0, 0 }, 0x01F5}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_i, 0, 0 }, 0x00ED}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_k, 0, 0 }, 0x1E31}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_l, 0, 0 }, 0x013A}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_m, 0, 0 }, 0x1E3F}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_n, 0, 0 }, 0x0144}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_o, 0, 0 }, 0x00F3}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_o, SCIM_KEY_A, 0 }, 0x01FA}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_o, SCIM_KEY_a, 0 }, 0x01FB}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_p, 0, 0 }, 0x1E55}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_r, 0, 0 }, 0x0155}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_s, 0, 0 }, 0x015B}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_u, 0, 0 }, 0x00FA}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_w, 0, 0 }, 0x1E83}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_y, 0, 0 }, 0x00FD}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_z, 0, 0 }, 0x017A}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_asciitilde, SCIM_KEY_O, 0 }, 0x1E4C}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_asciitilde, SCIM_KEY_U, 0 }, 0x1E78}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_asciitilde, SCIM_KEY_o, 0 }, 0x1E4D}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_asciitilde, SCIM_KEY_u, 0 }, 0x1E79}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_macron, SCIM_KEY_E, 0 }, 0x1E16}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_macron, SCIM_KEY_O, 0 }, 0x1E52}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_macron, SCIM_KEY_e, 0 }, 0x1E17}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_macron, SCIM_KEY_o, 0 }, 0x1E53}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_Acircumflex, 0, 0 }, 0x1EA4}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_Aring, 0, 0 }, 0x01FA}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_AE, 0, 0 }, 0x01FC}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_Ccedilla, 0, 0 }, 0x1E08}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_Ecircumflex, 0, 0 }, 0x1EBE}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_Idiaeresis, 0, 0 }, 0x1E2E}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_Ocircumflex, 0, 0 }, 0x1ED0}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_Otilde, 0, 0 }, 0x1E4C}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_Ooblique, 0, 0 }, 0x01FE}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_Udiaeresis, 0, 0 }, 0x01D7}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_acircumflex, 0, 0 }, 0x1EA5}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_aring, 0, 0 }, 0x01FB}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_ae, 0, 0 }, 0x01FD}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_ccedilla, 0, 0 }, 0x1E09}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_ecircumflex, 0, 0 }, 0x1EBF}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_idiaeresis, 0, 0 }, 0x1E2F}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_ocircumflex, 0, 0 }, 0x1ED1}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_otilde, 0, 0 }, 0x1E4D}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_oslash, 0, 0 }, 0x01FF}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_udiaeresis, 0, 0 }, 0x01D8}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_Abreve, 0, 0 }, 0x1EAE}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_abreve, 0, 0 }, 0x1EAF}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_Emacron, 0, 0 }, 0x1E16}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_emacron, 0, 0 }, 0x1E17}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_Omacron, 0, 0 }, 0x1E52}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_Utilde, 0, 0 }, 0x1E78}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_omacron, 0, 0 }, 0x1E53}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_utilde, 0, 0 }, 0x1E79}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_Cyrillic_ghe, 0, 0 }, 0x0453}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_Cyrillic_ka, 0, 0 }, 0x045C}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_Cyrillic_GHE, 0, 0 }, 0x0403}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_Cyrillic_KA, 0, 0 }, 0x040C}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_Greek_iotadieresis, 0, 0 }, 0x0390}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_Greek_upsilondieresis, 0, 0 }, 0x03B0}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_Greek_ALPHA, 0, 0 }, 0x0386}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_Greek_EPSILON, 0, 0 }, 0x0388}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_Greek_ETA, 0, 0 }, 0x0389}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_Greek_IOTA, 0, 0 }, 0x038A}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_Greek_OMICRON, 0, 0 }, 0x038C}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_Greek_UPSILON, 0, 0 }, 0x038E}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_Greek_OMEGA, 0, 0 }, 0x038F}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_Greek_alpha, 0, 0 }, 0x03AC}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_Greek_epsilon, 0, 0 }, 0x03AD}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_Greek_eta, 0, 0 }, 0x03AE}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_Greek_iota, 0, 0 }, 0x03AF}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_Greek_omicron, 0, 0 }, 0x03CC}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_Greek_upsilon, 0, 0 }, 0x03CD}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_Greek_omega, 0, 0 }, 0x03CE}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_combining_tilde, SCIM_KEY_O, 0 }, 0x1E4C}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_combining_tilde, SCIM_KEY_U, 0 }, 0x1E78}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_combining_tilde, SCIM_KEY_o, 0 }, 0x1E4D}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_combining_tilde, SCIM_KEY_u, 0 }, 0x1E79}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_Ohorn, 0, 0 }, 0x1EDA}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_ohorn, 0, 0 }, 0x1EDB}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_Uhorn, 0, 0 }, 0x1EE8}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_uhorn, 0, 0 }, 0x1EE9}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_dead_circumflex, SCIM_KEY_A, 0 }, 0x1EA4}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_dead_circumflex, SCIM_KEY_E, 0 }, 0x1EBE}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_dead_circumflex, SCIM_KEY_O, 0 }, 0x1ED0}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_dead_circumflex, SCIM_KEY_a, 0 }, 0x1EA5}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_dead_circumflex, SCIM_KEY_e, 0 }, 0x1EBF}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_dead_circumflex, SCIM_KEY_o, 0 }, 0x1ED1}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_dead_tilde, SCIM_KEY_O, 0 }, 0x1E4C}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_dead_tilde, SCIM_KEY_U, 0 }, 0x1E78}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_dead_tilde, SCIM_KEY_o, 0 }, 0x1E4D}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_dead_tilde, SCIM_KEY_u, 0 }, 0x1E79}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_dead_macron, SCIM_KEY_E, 0 }, 0x1E16}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_dead_macron, SCIM_KEY_O, 0 }, 0x1E52}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_dead_macron, SCIM_KEY_e, 0 }, 0x1E17}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_dead_macron, SCIM_KEY_o, 0 }, 0x1E53}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_dead_breve, SCIM_KEY_A, 0 }, 0x1EAE}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_dead_breve, SCIM_KEY_a, 0 }, 0x1EAF}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_dead_diaeresis, SCIM_KEY_I, 0 }, 0x1E2E}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_dead_diaeresis, SCIM_KEY_U, 0 }, 0x01D7}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_dead_diaeresis, SCIM_KEY_i, 0 }, 0x1E2F}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_dead_diaeresis, SCIM_KEY_u, 0 }, 0x01D8}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_dead_diaeresis, SCIM_KEY_Greek_iota, 0 }, 0x0390}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_dead_diaeresis, SCIM_KEY_Greek_upsilon, 0 }, 0x03B0}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_dead_abovering, SCIM_KEY_A, 0 }, 0x01FA}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_dead_abovering, SCIM_KEY_a, 0 }, 0x01FB}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_dead_cedilla, SCIM_KEY_C, 0 }, 0x1E08}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_dead_cedilla, SCIM_KEY_c, 0 }, 0x1E09}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_dead_horn, SCIM_KEY_O, 0 }, 0x1EDA}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_dead_horn, SCIM_KEY_U, 0 }, 0x1EE8}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_dead_horn, SCIM_KEY_o, 0 }, 0x1EDB}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_dead_horn, SCIM_KEY_u, 0 }, 0x1EE9}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_KP_Divide, SCIM_KEY_O, 0 }, 0x01FE}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, SCIM_KEY_KP_Divide, SCIM_KEY_o, 0 }, 0x01FF}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1000313, SCIM_KEY_Greek_ALPHA, 0 }, 0x1F0C}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1000313, SCIM_KEY_Greek_EPSILON, 0 }, 0x1F1C}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1000313, SCIM_KEY_Greek_ETA, 0 }, 0x1F2C}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1000313, SCIM_KEY_Greek_IOTA, 0 }, 0x1F3C}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1000313, SCIM_KEY_Greek_OMICRON, 0 }, 0x1F4C}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1000313, SCIM_KEY_Greek_OMEGA, 0 }, 0x1F6C}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1000313, SCIM_KEY_Greek_alpha, 0 }, 0x1F04}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1000313, SCIM_KEY_Greek_epsilon, 0 }, 0x1F14}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1000313, SCIM_KEY_Greek_eta, 0 }, 0x1F24}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1000313, SCIM_KEY_Greek_iota, 0 }, 0x1F34}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1000313, SCIM_KEY_Greek_omicron, 0 }, 0x1F44}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1000313, SCIM_KEY_Greek_upsilon, 0 }, 0x1F54}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1000313, SCIM_KEY_Greek_omega, 0 }, 0x1F64}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1000314, SCIM_KEY_Greek_ALPHA, 0 }, 0x1F0D}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1000314, SCIM_KEY_Greek_EPSILON, 0 }, 0x1F1D}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1000314, SCIM_KEY_Greek_ETA, 0 }, 0x1F2D}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1000314, SCIM_KEY_Greek_IOTA, 0 }, 0x1F3D}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1000314, SCIM_KEY_Greek_OMICRON, 0 }, 0x1F4D}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1000314, SCIM_KEY_Greek_UPSILON, 0 }, 0x1F5D}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1000314, SCIM_KEY_Greek_OMEGA, 0 }, 0x1F6D}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1000314, SCIM_KEY_Greek_alpha, 0 }, 0x1F05}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1000314, SCIM_KEY_Greek_epsilon, 0 }, 0x1F15}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1000314, SCIM_KEY_Greek_eta, 0 }, 0x1F25}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1000314, SCIM_KEY_Greek_iota, 0 }, 0x1F35}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1000314, SCIM_KEY_Greek_omicron, 0 }, 0x1F45}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1000314, SCIM_KEY_Greek_upsilon, 0 }, 0x1F55}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1000314, SCIM_KEY_Greek_omega, 0 }, 0x1F65}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x10003d2, 0, 0 }, 0x03D3}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1001f00, 0, 0 }, 0x1F04}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1001f01, 0, 0 }, 0x1F05}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1001f08, 0, 0 }, 0x1F0C}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1001f09, 0, 0 }, 0x1F0D}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1001f10, 0, 0 }, 0x1F14}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1001f11, 0, 0 }, 0x1F15}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1001f18, 0, 0 }, 0x1F1C}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1001f19, 0, 0 }, 0x1F1D}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1001f20, 0, 0 }, 0x1F24}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1001f21, 0, 0 }, 0x1F25}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1001f28, 0, 0 }, 0x1F2C}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1001f29, 0, 0 }, 0x1F2D}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1001f30, 0, 0 }, 0x1F34}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1001f31, 0, 0 }, 0x1F35}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1001f38, 0, 0 }, 0x1F3C}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1001f39, 0, 0 }, 0x1F3D}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1001f40, 0, 0 }, 0x1F44}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1001f41, 0, 0 }, 0x1F45}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1001f48, 0, 0 }, 0x1F4C}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1001f49, 0, 0 }, 0x1F4D}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1001f50, 0, 0 }, 0x1F54}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1001f51, 0, 0 }, 0x1F55}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1001f59, 0, 0 }, 0x1F5D}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1001f60, 0, 0 }, 0x1F64}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1001f61, 0, 0 }, 0x1F65}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1001f68, 0, 0 }, 0x1F6C}, {{SCIM_KEY_Multi_key, SCIM_KEY_acute, 0x1001f69, 0, 0 }, 0x1F6D}, {{SCIM_KEY_Multi_key, SCIM_KEY_cedilla, SCIM_KEY_S, 0, 0 }, 0x015E}, {{SCIM_KEY_Multi_key, SCIM_KEY_cedilla, SCIM_KEY_s, 0, 0 }, 0x015F}, {{SCIM_KEY_Multi_key, SCIM_KEY_breve, SCIM_KEY_G, 0, 0 }, 0x011E}, {{SCIM_KEY_Multi_key, SCIM_KEY_breve, SCIM_KEY_g, 0, 0 }, 0x011F}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_ALPHA, SCIM_KEY_apostrophe, 0, 0 }, 0x0386}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_EPSILON, SCIM_KEY_apostrophe, 0, 0 }, 0x0388}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_ETA, SCIM_KEY_apostrophe, 0, 0 }, 0x0389}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_IOTA, SCIM_KEY_quotedbl, 0, 0 }, 0x03AA}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_IOTA, SCIM_KEY_apostrophe, 0, 0 }, 0x038A}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_OMICRON, SCIM_KEY_apostrophe, 0, 0 }, 0x038C}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_UPSILON, SCIM_KEY_quotedbl, 0, 0 }, 0x03AB}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_UPSILON, SCIM_KEY_apostrophe, 0, 0 }, 0x038E}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_OMEGA, SCIM_KEY_apostrophe, 0, 0 }, 0x038F}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_alpha, SCIM_KEY_apostrophe, 0, 0 }, 0x03AC}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_epsilon, SCIM_KEY_apostrophe, 0, 0 }, 0x03AD}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_eta, SCIM_KEY_apostrophe, 0, 0 }, 0x03AE}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_quotedbl, 0, 0 }, 0x03CA}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_apostrophe, 0, 0 }, 0x03AF}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_apostrophe, SCIM_KEY_parenleft, SCIM_KEY_Greek_ALPHA }, 0x1F8D}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_apostrophe, SCIM_KEY_parenleft, SCIM_KEY_Greek_ETA }, 0x1F9D}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_apostrophe, SCIM_KEY_parenleft, SCIM_KEY_Greek_OMEGA }, 0x1FAD}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_apostrophe, SCIM_KEY_parenleft, SCIM_KEY_Greek_alpha }, 0x1F85}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_apostrophe, SCIM_KEY_parenleft, SCIM_KEY_Greek_eta }, 0x1F95}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_apostrophe, SCIM_KEY_parenleft, SCIM_KEY_Greek_omega }, 0x1FA5}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_apostrophe, SCIM_KEY_parenright, SCIM_KEY_Greek_ALPHA }, 0x1F8C}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_apostrophe, SCIM_KEY_parenright, SCIM_KEY_Greek_ETA }, 0x1F9C}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_apostrophe, SCIM_KEY_parenright, SCIM_KEY_Greek_OMEGA }, 0x1FAC}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_apostrophe, SCIM_KEY_parenright, SCIM_KEY_Greek_alpha }, 0x1F84}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_apostrophe, SCIM_KEY_parenright, SCIM_KEY_Greek_eta }, 0x1F94}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_apostrophe, SCIM_KEY_parenright, SCIM_KEY_Greek_omega }, 0x1FA4}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_apostrophe, SCIM_KEY_Greek_alpha, 0 }, 0x1FB4}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_apostrophe, SCIM_KEY_Greek_eta, 0 }, 0x1FC4}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_apostrophe, SCIM_KEY_Greek_omega, 0 }, 0x1FF4}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_apostrophe, 0x1000313, SCIM_KEY_Greek_ALPHA }, 0x1F8C}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_apostrophe, 0x1000313, SCIM_KEY_Greek_ETA }, 0x1F9C}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_apostrophe, 0x1000313, SCIM_KEY_Greek_OMEGA }, 0x1FAC}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_apostrophe, 0x1000313, SCIM_KEY_Greek_alpha }, 0x1F84}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_apostrophe, 0x1000313, SCIM_KEY_Greek_eta }, 0x1F94}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_apostrophe, 0x1000313, SCIM_KEY_Greek_omega }, 0x1FA4}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_apostrophe, 0x1000314, SCIM_KEY_Greek_ALPHA }, 0x1F8D}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_apostrophe, 0x1000314, SCIM_KEY_Greek_ETA }, 0x1F9D}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_apostrophe, 0x1000314, SCIM_KEY_Greek_OMEGA }, 0x1FAD}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_apostrophe, 0x1000314, SCIM_KEY_Greek_alpha }, 0x1F85}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_apostrophe, 0x1000314, SCIM_KEY_Greek_eta }, 0x1F95}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_apostrophe, 0x1000314, SCIM_KEY_Greek_omega }, 0x1FA5}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_apostrophe, 0x1001f00, 0 }, 0x1F84}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_apostrophe, 0x1001f01, 0 }, 0x1F85}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_apostrophe, 0x1001f08, 0 }, 0x1F8C}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_apostrophe, 0x1001f09, 0 }, 0x1F8D}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_apostrophe, 0x1001f20, 0 }, 0x1F94}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_apostrophe, 0x1001f21, 0 }, 0x1F95}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_apostrophe, 0x1001f28, 0 }, 0x1F9C}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_apostrophe, 0x1001f29, 0 }, 0x1F9D}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_apostrophe, 0x1001f60, 0 }, 0x1FA4}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_apostrophe, 0x1001f61, 0 }, 0x1FA5}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_apostrophe, 0x1001f68, 0 }, 0x1FAC}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_apostrophe, 0x1001f69, 0 }, 0x1FAD}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_parenleft, SCIM_KEY_Greek_ALPHA, 0 }, 0x1F89}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_parenleft, SCIM_KEY_Greek_ETA, 0 }, 0x1F99}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_parenleft, SCIM_KEY_Greek_OMEGA, 0 }, 0x1FA9}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_parenleft, SCIM_KEY_Greek_alpha, 0 }, 0x1F81}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_parenleft, SCIM_KEY_Greek_eta, 0 }, 0x1F91}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_parenleft, SCIM_KEY_Greek_omega, 0 }, 0x1FA1}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_parenright, SCIM_KEY_Greek_ALPHA, 0 }, 0x1F88}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_parenright, SCIM_KEY_Greek_ETA, 0 }, 0x1F98}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_parenright, SCIM_KEY_Greek_OMEGA, 0 }, 0x1FA8}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_parenright, SCIM_KEY_Greek_alpha, 0 }, 0x1F80}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_parenright, SCIM_KEY_Greek_eta, 0 }, 0x1F90}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_parenright, SCIM_KEY_Greek_omega, 0 }, 0x1FA0}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_grave, SCIM_KEY_parenleft, SCIM_KEY_Greek_ALPHA }, 0x1F8B}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_grave, SCIM_KEY_parenleft, SCIM_KEY_Greek_ETA }, 0x1F9B}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_grave, SCIM_KEY_parenleft, SCIM_KEY_Greek_OMEGA }, 0x1FAB}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_grave, SCIM_KEY_parenleft, SCIM_KEY_Greek_alpha }, 0x1F83}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_grave, SCIM_KEY_parenleft, SCIM_KEY_Greek_eta }, 0x1F93}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_grave, SCIM_KEY_parenleft, SCIM_KEY_Greek_omega }, 0x1FA3}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_grave, SCIM_KEY_parenright, SCIM_KEY_Greek_ALPHA }, 0x1F8A}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_grave, SCIM_KEY_parenright, SCIM_KEY_Greek_ETA }, 0x1F9A}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_grave, SCIM_KEY_parenright, SCIM_KEY_Greek_OMEGA }, 0x1FAA}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_grave, SCIM_KEY_parenright, SCIM_KEY_Greek_alpha }, 0x1F82}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_grave, SCIM_KEY_parenright, SCIM_KEY_Greek_eta }, 0x1F92}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_grave, SCIM_KEY_parenright, SCIM_KEY_Greek_omega }, 0x1FA2}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_grave, SCIM_KEY_Greek_alpha, 0 }, 0x1FB2}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_grave, SCIM_KEY_Greek_eta, 0 }, 0x1FC2}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_grave, SCIM_KEY_Greek_omega, 0 }, 0x1FF2}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_grave, 0x1000313, SCIM_KEY_Greek_ALPHA }, 0x1F8A}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_grave, 0x1000313, SCIM_KEY_Greek_ETA }, 0x1F9A}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_grave, 0x1000313, SCIM_KEY_Greek_OMEGA }, 0x1FAA}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_grave, 0x1000313, SCIM_KEY_Greek_alpha }, 0x1F82}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_grave, 0x1000313, SCIM_KEY_Greek_eta }, 0x1F92}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_grave, 0x1000313, SCIM_KEY_Greek_omega }, 0x1FA2}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_grave, 0x1000314, SCIM_KEY_Greek_ALPHA }, 0x1F8B}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_grave, 0x1000314, SCIM_KEY_Greek_ETA }, 0x1F9B}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_grave, 0x1000314, SCIM_KEY_Greek_OMEGA }, 0x1FAB}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_grave, 0x1000314, SCIM_KEY_Greek_alpha }, 0x1F83}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_grave, 0x1000314, SCIM_KEY_Greek_eta }, 0x1F93}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_grave, 0x1000314, SCIM_KEY_Greek_omega }, 0x1FA3}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_grave, 0x1001f00, 0 }, 0x1F82}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_grave, 0x1001f01, 0 }, 0x1F83}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_grave, 0x1001f08, 0 }, 0x1F8A}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_grave, 0x1001f09, 0 }, 0x1F8B}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_grave, 0x1001f20, 0 }, 0x1F92}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_grave, 0x1001f21, 0 }, 0x1F93}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_grave, 0x1001f28, 0 }, 0x1F9A}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_grave, 0x1001f29, 0 }, 0x1F9B}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_grave, 0x1001f60, 0 }, 0x1FA2}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_grave, 0x1001f61, 0 }, 0x1FA3}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_grave, 0x1001f68, 0 }, 0x1FAA}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_grave, 0x1001f69, 0 }, 0x1FAB}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_asciitilde, SCIM_KEY_parenleft, SCIM_KEY_Greek_ALPHA }, 0x1F8F}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_asciitilde, SCIM_KEY_parenleft, SCIM_KEY_Greek_ETA }, 0x1F9F}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_asciitilde, SCIM_KEY_parenleft, SCIM_KEY_Greek_OMEGA }, 0x1FAF}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_asciitilde, SCIM_KEY_parenleft, SCIM_KEY_Greek_alpha }, 0x1F87}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_asciitilde, SCIM_KEY_parenleft, SCIM_KEY_Greek_eta }, 0x1F97}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_asciitilde, SCIM_KEY_parenleft, SCIM_KEY_Greek_omega }, 0x1FA7}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_asciitilde, SCIM_KEY_parenright, SCIM_KEY_Greek_ALPHA }, 0x1F8E}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_asciitilde, SCIM_KEY_parenright, SCIM_KEY_Greek_ETA }, 0x1F9E}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_asciitilde, SCIM_KEY_parenright, SCIM_KEY_Greek_OMEGA }, 0x1FAE}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_asciitilde, SCIM_KEY_parenright, SCIM_KEY_Greek_alpha }, 0x1F86}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_asciitilde, SCIM_KEY_parenright, SCIM_KEY_Greek_eta }, 0x1F96}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_asciitilde, SCIM_KEY_parenright, SCIM_KEY_Greek_omega }, 0x1FA6}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_asciitilde, SCIM_KEY_Greek_alpha, 0 }, 0x1FB7}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_asciitilde, SCIM_KEY_Greek_eta, 0 }, 0x1FC7}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_asciitilde, SCIM_KEY_Greek_omega, 0 }, 0x1FF7}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_asciitilde, 0x1000313, SCIM_KEY_Greek_ALPHA }, 0x1F8E}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_asciitilde, 0x1000313, SCIM_KEY_Greek_ETA }, 0x1F9E}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_asciitilde, 0x1000313, SCIM_KEY_Greek_OMEGA }, 0x1FAE}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_asciitilde, 0x1000313, SCIM_KEY_Greek_alpha }, 0x1F86}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_asciitilde, 0x1000313, SCIM_KEY_Greek_eta }, 0x1F96}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_asciitilde, 0x1000313, SCIM_KEY_Greek_omega }, 0x1FA6}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_asciitilde, 0x1000314, SCIM_KEY_Greek_ALPHA }, 0x1F8F}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_asciitilde, 0x1000314, SCIM_KEY_Greek_ETA }, 0x1F9F}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_asciitilde, 0x1000314, SCIM_KEY_Greek_OMEGA }, 0x1FAF}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_asciitilde, 0x1000314, SCIM_KEY_Greek_alpha }, 0x1F87}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_asciitilde, 0x1000314, SCIM_KEY_Greek_eta }, 0x1F97}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_asciitilde, 0x1000314, SCIM_KEY_Greek_omega }, 0x1FA7}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_asciitilde, 0x1001f00, 0 }, 0x1F86}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_asciitilde, 0x1001f01, 0 }, 0x1F87}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_asciitilde, 0x1001f08, 0 }, 0x1F8E}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_asciitilde, 0x1001f09, 0 }, 0x1F8F}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_asciitilde, 0x1001f20, 0 }, 0x1F96}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_asciitilde, 0x1001f21, 0 }, 0x1F97}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_asciitilde, 0x1001f28, 0 }, 0x1F9E}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_asciitilde, 0x1001f29, 0 }, 0x1F9F}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_asciitilde, 0x1001f60, 0 }, 0x1FA6}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_asciitilde, 0x1001f61, 0 }, 0x1FA7}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_asciitilde, 0x1001f68, 0 }, 0x1FAE}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_asciitilde, 0x1001f69, 0 }, 0x1FAF}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_acute, SCIM_KEY_parenleft, SCIM_KEY_Greek_ALPHA }, 0x1F8D}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_acute, SCIM_KEY_parenleft, SCIM_KEY_Greek_ETA }, 0x1F9D}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_acute, SCIM_KEY_parenleft, SCIM_KEY_Greek_OMEGA }, 0x1FAD}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_acute, SCIM_KEY_parenleft, SCIM_KEY_Greek_alpha }, 0x1F85}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_acute, SCIM_KEY_parenleft, SCIM_KEY_Greek_eta }, 0x1F95}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_acute, SCIM_KEY_parenleft, SCIM_KEY_Greek_omega }, 0x1FA5}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_acute, SCIM_KEY_parenright, SCIM_KEY_Greek_ALPHA }, 0x1F8C}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_acute, SCIM_KEY_parenright, SCIM_KEY_Greek_ETA }, 0x1F9C}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_acute, SCIM_KEY_parenright, SCIM_KEY_Greek_OMEGA }, 0x1FAC}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_acute, SCIM_KEY_parenright, SCIM_KEY_Greek_alpha }, 0x1F84}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_acute, SCIM_KEY_parenright, SCIM_KEY_Greek_eta }, 0x1F94}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_acute, SCIM_KEY_parenright, SCIM_KEY_Greek_omega }, 0x1FA4}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_acute, SCIM_KEY_Greek_alpha, 0 }, 0x1FB4}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_acute, SCIM_KEY_Greek_eta, 0 }, 0x1FC4}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_acute, SCIM_KEY_Greek_omega, 0 }, 0x1FF4}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_acute, 0x1000313, SCIM_KEY_Greek_ALPHA }, 0x1F8C}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_acute, 0x1000313, SCIM_KEY_Greek_ETA }, 0x1F9C}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_acute, 0x1000313, SCIM_KEY_Greek_OMEGA }, 0x1FAC}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_acute, 0x1000313, SCIM_KEY_Greek_alpha }, 0x1F84}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_acute, 0x1000313, SCIM_KEY_Greek_eta }, 0x1F94}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_acute, 0x1000313, SCIM_KEY_Greek_omega }, 0x1FA4}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_acute, 0x1000314, SCIM_KEY_Greek_ALPHA }, 0x1F8D}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_acute, 0x1000314, SCIM_KEY_Greek_ETA }, 0x1F9D}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_acute, 0x1000314, SCIM_KEY_Greek_OMEGA }, 0x1FAD}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_acute, 0x1000314, SCIM_KEY_Greek_alpha }, 0x1F85}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_acute, 0x1000314, SCIM_KEY_Greek_eta }, 0x1F95}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_acute, 0x1000314, SCIM_KEY_Greek_omega }, 0x1FA5}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_acute, 0x1001f00, 0 }, 0x1F84}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_acute, 0x1001f01, 0 }, 0x1F85}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_acute, 0x1001f08, 0 }, 0x1F8C}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_acute, 0x1001f09, 0 }, 0x1F8D}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_acute, 0x1001f20, 0 }, 0x1F94}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_acute, 0x1001f21, 0 }, 0x1F95}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_acute, 0x1001f28, 0 }, 0x1F9C}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_acute, 0x1001f29, 0 }, 0x1F9D}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_acute, 0x1001f60, 0 }, 0x1FA4}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_acute, 0x1001f61, 0 }, 0x1FA5}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_acute, 0x1001f68, 0 }, 0x1FAC}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_acute, 0x1001f69, 0 }, 0x1FAD}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_Greek_alphaaccent, 0, 0 }, 0x1FB4}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_Greek_etaaccent, 0, 0 }, 0x1FC4}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_Greek_omegaaccent, 0, 0 }, 0x1FF4}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_Greek_ALPHA, 0, 0 }, 0x1FBC}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_Greek_ETA, 0, 0 }, 0x1FCC}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_Greek_OMEGA, 0, 0 }, 0x1FFC}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_Greek_alpha, 0, 0 }, 0x1FB3}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_Greek_eta, 0, 0 }, 0x1FC3}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_Greek_omega, 0, 0 }, 0x1FF3}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_grave, SCIM_KEY_parenleft, SCIM_KEY_Greek_ALPHA }, 0x1F8B}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_grave, SCIM_KEY_parenleft, SCIM_KEY_Greek_ETA }, 0x1F9B}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_grave, SCIM_KEY_parenleft, SCIM_KEY_Greek_OMEGA }, 0x1FAB}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_grave, SCIM_KEY_parenleft, SCIM_KEY_Greek_alpha }, 0x1F83}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_grave, SCIM_KEY_parenleft, SCIM_KEY_Greek_eta }, 0x1F93}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_grave, SCIM_KEY_parenleft, SCIM_KEY_Greek_omega }, 0x1FA3}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_grave, SCIM_KEY_parenright, SCIM_KEY_Greek_ALPHA }, 0x1F8A}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_grave, SCIM_KEY_parenright, SCIM_KEY_Greek_ETA }, 0x1F9A}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_grave, SCIM_KEY_parenright, SCIM_KEY_Greek_OMEGA }, 0x1FAA}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_grave, SCIM_KEY_parenright, SCIM_KEY_Greek_alpha }, 0x1F82}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_grave, SCIM_KEY_parenright, SCIM_KEY_Greek_eta }, 0x1F92}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_grave, SCIM_KEY_parenright, SCIM_KEY_Greek_omega }, 0x1FA2}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_grave, SCIM_KEY_Greek_alpha, 0 }, 0x1FB2}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_grave, SCIM_KEY_Greek_eta, 0 }, 0x1FC2}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_grave, SCIM_KEY_Greek_omega, 0 }, 0x1FF2}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_grave, 0x1000313, SCIM_KEY_Greek_ALPHA }, 0x1F8A}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_grave, 0x1000313, SCIM_KEY_Greek_ETA }, 0x1F9A}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_grave, 0x1000313, SCIM_KEY_Greek_OMEGA }, 0x1FAA}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_grave, 0x1000313, SCIM_KEY_Greek_alpha }, 0x1F82}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_grave, 0x1000313, SCIM_KEY_Greek_eta }, 0x1F92}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_grave, 0x1000313, SCIM_KEY_Greek_omega }, 0x1FA2}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_grave, 0x1000314, SCIM_KEY_Greek_ALPHA }, 0x1F8B}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_grave, 0x1000314, SCIM_KEY_Greek_ETA }, 0x1F9B}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_grave, 0x1000314, SCIM_KEY_Greek_OMEGA }, 0x1FAB}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_grave, 0x1000314, SCIM_KEY_Greek_alpha }, 0x1F83}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_grave, 0x1000314, SCIM_KEY_Greek_eta }, 0x1F93}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_grave, 0x1000314, SCIM_KEY_Greek_omega }, 0x1FA3}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_grave, 0x1001f00, 0 }, 0x1F82}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_grave, 0x1001f01, 0 }, 0x1F83}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_grave, 0x1001f08, 0 }, 0x1F8A}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_grave, 0x1001f09, 0 }, 0x1F8B}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_grave, 0x1001f20, 0 }, 0x1F92}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_grave, 0x1001f21, 0 }, 0x1F93}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_grave, 0x1001f28, 0 }, 0x1F9A}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_grave, 0x1001f29, 0 }, 0x1F9B}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_grave, 0x1001f60, 0 }, 0x1FA2}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_grave, 0x1001f61, 0 }, 0x1FA3}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_grave, 0x1001f68, 0 }, 0x1FAA}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_grave, 0x1001f69, 0 }, 0x1FAB}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_acute, SCIM_KEY_parenleft, SCIM_KEY_Greek_ALPHA }, 0x1F8D}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_acute, SCIM_KEY_parenleft, SCIM_KEY_Greek_ETA }, 0x1F9D}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_acute, SCIM_KEY_parenleft, SCIM_KEY_Greek_OMEGA }, 0x1FAD}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_acute, SCIM_KEY_parenleft, SCIM_KEY_Greek_alpha }, 0x1F85}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_acute, SCIM_KEY_parenleft, SCIM_KEY_Greek_eta }, 0x1F95}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_acute, SCIM_KEY_parenleft, SCIM_KEY_Greek_omega }, 0x1FA5}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_acute, SCIM_KEY_parenright, SCIM_KEY_Greek_ALPHA }, 0x1F8C}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_acute, SCIM_KEY_parenright, SCIM_KEY_Greek_ETA }, 0x1F9C}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_acute, SCIM_KEY_parenright, SCIM_KEY_Greek_OMEGA }, 0x1FAC}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_acute, SCIM_KEY_parenright, SCIM_KEY_Greek_alpha }, 0x1F84}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_acute, SCIM_KEY_parenright, SCIM_KEY_Greek_eta }, 0x1F94}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_acute, SCIM_KEY_parenright, SCIM_KEY_Greek_omega }, 0x1FA4}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_acute, SCIM_KEY_Greek_alpha, 0 }, 0x1FB4}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_acute, SCIM_KEY_Greek_eta, 0 }, 0x1FC4}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_acute, SCIM_KEY_Greek_omega, 0 }, 0x1FF4}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_acute, 0x1000313, SCIM_KEY_Greek_ALPHA }, 0x1F8C}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_acute, 0x1000313, SCIM_KEY_Greek_ETA }, 0x1F9C}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_acute, 0x1000313, SCIM_KEY_Greek_OMEGA }, 0x1FAC}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_acute, 0x1000313, SCIM_KEY_Greek_alpha }, 0x1F84}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_acute, 0x1000313, SCIM_KEY_Greek_eta }, 0x1F94}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_acute, 0x1000313, SCIM_KEY_Greek_omega }, 0x1FA4}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_acute, 0x1000314, SCIM_KEY_Greek_ALPHA }, 0x1F8D}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_acute, 0x1000314, SCIM_KEY_Greek_ETA }, 0x1F9D}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_acute, 0x1000314, SCIM_KEY_Greek_OMEGA }, 0x1FAD}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_acute, 0x1000314, SCIM_KEY_Greek_alpha }, 0x1F85}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_acute, 0x1000314, SCIM_KEY_Greek_eta }, 0x1F95}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_acute, 0x1000314, SCIM_KEY_Greek_omega }, 0x1FA5}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_acute, 0x1001f00, 0 }, 0x1F84}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_acute, 0x1001f01, 0 }, 0x1F85}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_acute, 0x1001f08, 0 }, 0x1F8C}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_acute, 0x1001f09, 0 }, 0x1F8D}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_acute, 0x1001f20, 0 }, 0x1F94}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_acute, 0x1001f21, 0 }, 0x1F95}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_acute, 0x1001f28, 0 }, 0x1F9C}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_acute, 0x1001f29, 0 }, 0x1F9D}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_acute, 0x1001f60, 0 }, 0x1FA4}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_acute, 0x1001f61, 0 }, 0x1FA5}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_acute, 0x1001f68, 0 }, 0x1FAC}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_combining_acute, 0x1001f69, 0 }, 0x1FAD}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_grave, SCIM_KEY_parenleft, SCIM_KEY_Greek_ALPHA }, 0x1F8B}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_grave, SCIM_KEY_parenleft, SCIM_KEY_Greek_ETA }, 0x1F9B}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_grave, SCIM_KEY_parenleft, SCIM_KEY_Greek_OMEGA }, 0x1FAB}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_grave, SCIM_KEY_parenleft, SCIM_KEY_Greek_alpha }, 0x1F83}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_grave, SCIM_KEY_parenleft, SCIM_KEY_Greek_eta }, 0x1F93}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_grave, SCIM_KEY_parenleft, SCIM_KEY_Greek_omega }, 0x1FA3}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_grave, SCIM_KEY_parenright, SCIM_KEY_Greek_ALPHA }, 0x1F8A}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_grave, SCIM_KEY_parenright, SCIM_KEY_Greek_ETA }, 0x1F9A}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_grave, SCIM_KEY_parenright, SCIM_KEY_Greek_OMEGA }, 0x1FAA}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_grave, SCIM_KEY_parenright, SCIM_KEY_Greek_alpha }, 0x1F82}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_grave, SCIM_KEY_parenright, SCIM_KEY_Greek_eta }, 0x1F92}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_grave, SCIM_KEY_parenright, SCIM_KEY_Greek_omega }, 0x1FA2}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_grave, SCIM_KEY_Greek_alpha, 0 }, 0x1FB2}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_grave, SCIM_KEY_Greek_eta, 0 }, 0x1FC2}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_grave, SCIM_KEY_Greek_omega, 0 }, 0x1FF2}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_grave, 0x1000313, SCIM_KEY_Greek_ALPHA }, 0x1F8A}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_grave, 0x1000313, SCIM_KEY_Greek_ETA }, 0x1F9A}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_grave, 0x1000313, SCIM_KEY_Greek_OMEGA }, 0x1FAA}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_grave, 0x1000313, SCIM_KEY_Greek_alpha }, 0x1F82}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_grave, 0x1000313, SCIM_KEY_Greek_eta }, 0x1F92}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_grave, 0x1000313, SCIM_KEY_Greek_omega }, 0x1FA2}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_grave, 0x1000314, SCIM_KEY_Greek_ALPHA }, 0x1F8B}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_grave, 0x1000314, SCIM_KEY_Greek_ETA }, 0x1F9B}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_grave, 0x1000314, SCIM_KEY_Greek_OMEGA }, 0x1FAB}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_grave, 0x1000314, SCIM_KEY_Greek_alpha }, 0x1F83}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_grave, 0x1000314, SCIM_KEY_Greek_eta }, 0x1F93}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_grave, 0x1000314, SCIM_KEY_Greek_omega }, 0x1FA3}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_grave, 0x1001f00, 0 }, 0x1F82}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_grave, 0x1001f01, 0 }, 0x1F83}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_grave, 0x1001f08, 0 }, 0x1F8A}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_grave, 0x1001f09, 0 }, 0x1F8B}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_grave, 0x1001f20, 0 }, 0x1F92}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_grave, 0x1001f21, 0 }, 0x1F93}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_grave, 0x1001f28, 0 }, 0x1F9A}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_grave, 0x1001f29, 0 }, 0x1F9B}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_grave, 0x1001f60, 0 }, 0x1FA2}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_grave, 0x1001f61, 0 }, 0x1FA3}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_grave, 0x1001f68, 0 }, 0x1FAA}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_grave, 0x1001f69, 0 }, 0x1FAB}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_acute, SCIM_KEY_parenleft, SCIM_KEY_Greek_ALPHA }, 0x1F8D}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_acute, SCIM_KEY_parenleft, SCIM_KEY_Greek_ETA }, 0x1F9D}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_acute, SCIM_KEY_parenleft, SCIM_KEY_Greek_OMEGA }, 0x1FAD}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_acute, SCIM_KEY_parenleft, SCIM_KEY_Greek_alpha }, 0x1F85}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_acute, SCIM_KEY_parenleft, SCIM_KEY_Greek_eta }, 0x1F95}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_acute, SCIM_KEY_parenleft, SCIM_KEY_Greek_omega }, 0x1FA5}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_acute, SCIM_KEY_parenright, SCIM_KEY_Greek_ALPHA }, 0x1F8C}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_acute, SCIM_KEY_parenright, SCIM_KEY_Greek_ETA }, 0x1F9C}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_acute, SCIM_KEY_parenright, SCIM_KEY_Greek_OMEGA }, 0x1FAC}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_acute, SCIM_KEY_parenright, SCIM_KEY_Greek_alpha }, 0x1F84}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_acute, SCIM_KEY_parenright, SCIM_KEY_Greek_eta }, 0x1F94}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_acute, SCIM_KEY_parenright, SCIM_KEY_Greek_omega }, 0x1FA4}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_acute, SCIM_KEY_Greek_alpha, 0 }, 0x1FB4}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_acute, SCIM_KEY_Greek_eta, 0 }, 0x1FC4}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_acute, SCIM_KEY_Greek_omega, 0 }, 0x1FF4}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_acute, 0x1000313, SCIM_KEY_Greek_ALPHA }, 0x1F8C}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_acute, 0x1000313, SCIM_KEY_Greek_ETA }, 0x1F9C}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_acute, 0x1000313, SCIM_KEY_Greek_OMEGA }, 0x1FAC}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_acute, 0x1000313, SCIM_KEY_Greek_alpha }, 0x1F84}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_acute, 0x1000313, SCIM_KEY_Greek_eta }, 0x1F94}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_acute, 0x1000313, SCIM_KEY_Greek_omega }, 0x1FA4}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_acute, 0x1000314, SCIM_KEY_Greek_ALPHA }, 0x1F8D}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_acute, 0x1000314, SCIM_KEY_Greek_ETA }, 0x1F9D}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_acute, 0x1000314, SCIM_KEY_Greek_OMEGA }, 0x1FAD}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_acute, 0x1000314, SCIM_KEY_Greek_alpha }, 0x1F85}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_acute, 0x1000314, SCIM_KEY_Greek_eta }, 0x1F95}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_acute, 0x1000314, SCIM_KEY_Greek_omega }, 0x1FA5}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_acute, 0x1001f00, 0 }, 0x1F84}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_acute, 0x1001f01, 0 }, 0x1F85}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_acute, 0x1001f08, 0 }, 0x1F8C}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_acute, 0x1001f09, 0 }, 0x1F8D}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_acute, 0x1001f20, 0 }, 0x1F94}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_acute, 0x1001f21, 0 }, 0x1F95}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_acute, 0x1001f28, 0 }, 0x1F9C}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_acute, 0x1001f29, 0 }, 0x1F9D}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_acute, 0x1001f60, 0 }, 0x1FA4}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_acute, 0x1001f61, 0 }, 0x1FA5}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_acute, 0x1001f68, 0 }, 0x1FAC}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_acute, 0x1001f69, 0 }, 0x1FAD}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_tilde, SCIM_KEY_parenleft, SCIM_KEY_Greek_ALPHA }, 0x1F8F}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_tilde, SCIM_KEY_parenleft, SCIM_KEY_Greek_ETA }, 0x1F9F}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_tilde, SCIM_KEY_parenleft, SCIM_KEY_Greek_OMEGA }, 0x1FAF}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_tilde, SCIM_KEY_parenleft, SCIM_KEY_Greek_alpha }, 0x1F87}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_tilde, SCIM_KEY_parenleft, SCIM_KEY_Greek_eta }, 0x1F97}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_tilde, SCIM_KEY_parenleft, SCIM_KEY_Greek_omega }, 0x1FA7}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_tilde, SCIM_KEY_parenright, SCIM_KEY_Greek_ALPHA }, 0x1F8E}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_tilde, SCIM_KEY_parenright, SCIM_KEY_Greek_ETA }, 0x1F9E}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_tilde, SCIM_KEY_parenright, SCIM_KEY_Greek_OMEGA }, 0x1FAE}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_tilde, SCIM_KEY_parenright, SCIM_KEY_Greek_alpha }, 0x1F86}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_tilde, SCIM_KEY_parenright, SCIM_KEY_Greek_eta }, 0x1F96}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_tilde, SCIM_KEY_parenright, SCIM_KEY_Greek_omega }, 0x1FA6}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_tilde, SCIM_KEY_Greek_alpha, 0 }, 0x1FB7}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_tilde, SCIM_KEY_Greek_eta, 0 }, 0x1FC7}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_tilde, SCIM_KEY_Greek_omega, 0 }, 0x1FF7}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_tilde, 0x1000313, SCIM_KEY_Greek_ALPHA }, 0x1F8E}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_tilde, 0x1000313, SCIM_KEY_Greek_ETA }, 0x1F9E}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_tilde, 0x1000313, SCIM_KEY_Greek_OMEGA }, 0x1FAE}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_tilde, 0x1000313, SCIM_KEY_Greek_alpha }, 0x1F86}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_tilde, 0x1000313, SCIM_KEY_Greek_eta }, 0x1F96}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_tilde, 0x1000313, SCIM_KEY_Greek_omega }, 0x1FA6}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_tilde, 0x1000314, SCIM_KEY_Greek_ALPHA }, 0x1F8F}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_tilde, 0x1000314, SCIM_KEY_Greek_ETA }, 0x1F9F}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_tilde, 0x1000314, SCIM_KEY_Greek_OMEGA }, 0x1FAF}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_tilde, 0x1000314, SCIM_KEY_Greek_alpha }, 0x1F87}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_tilde, 0x1000314, SCIM_KEY_Greek_eta }, 0x1F97}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_tilde, 0x1000314, SCIM_KEY_Greek_omega }, 0x1FA7}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_tilde, 0x1001f00, 0 }, 0x1F86}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_tilde, 0x1001f01, 0 }, 0x1F87}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_tilde, 0x1001f08, 0 }, 0x1F8E}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_tilde, 0x1001f09, 0 }, 0x1F8F}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_tilde, 0x1001f20, 0 }, 0x1F96}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_tilde, 0x1001f21, 0 }, 0x1F97}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_tilde, 0x1001f28, 0 }, 0x1F9E}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_tilde, 0x1001f29, 0 }, 0x1F9F}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_tilde, 0x1001f60, 0 }, 0x1FA6}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_tilde, 0x1001f61, 0 }, 0x1FA7}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_tilde, 0x1001f68, 0 }, 0x1FAE}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, SCIM_KEY_dead_tilde, 0x1001f69, 0 }, 0x1FAF}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1000313, SCIM_KEY_Greek_ALPHA, 0 }, 0x1F88}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1000313, SCIM_KEY_Greek_ETA, 0 }, 0x1F98}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1000313, SCIM_KEY_Greek_OMEGA, 0 }, 0x1FA8}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1000313, SCIM_KEY_Greek_alpha, 0 }, 0x1F80}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1000313, SCIM_KEY_Greek_eta, 0 }, 0x1F90}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1000313, SCIM_KEY_Greek_omega, 0 }, 0x1FA0}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1000314, SCIM_KEY_Greek_ALPHA, 0 }, 0x1F89}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1000314, SCIM_KEY_Greek_ETA, 0 }, 0x1F99}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1000314, SCIM_KEY_Greek_OMEGA, 0 }, 0x1FA9}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1000314, SCIM_KEY_Greek_alpha, 0 }, 0x1F81}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1000314, SCIM_KEY_Greek_eta, 0 }, 0x1F91}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1000314, SCIM_KEY_Greek_omega, 0 }, 0x1FA1}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1000342, SCIM_KEY_parenleft, SCIM_KEY_Greek_ALPHA }, 0x1F8F}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1000342, SCIM_KEY_parenleft, SCIM_KEY_Greek_ETA }, 0x1F9F}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1000342, SCIM_KEY_parenleft, SCIM_KEY_Greek_OMEGA }, 0x1FAF}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1000342, SCIM_KEY_parenleft, SCIM_KEY_Greek_alpha }, 0x1F87}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1000342, SCIM_KEY_parenleft, SCIM_KEY_Greek_eta }, 0x1F97}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1000342, SCIM_KEY_parenleft, SCIM_KEY_Greek_omega }, 0x1FA7}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1000342, SCIM_KEY_parenright, SCIM_KEY_Greek_ALPHA }, 0x1F8E}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1000342, SCIM_KEY_parenright, SCIM_KEY_Greek_ETA }, 0x1F9E}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1000342, SCIM_KEY_parenright, SCIM_KEY_Greek_OMEGA }, 0x1FAE}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1000342, SCIM_KEY_parenright, SCIM_KEY_Greek_alpha }, 0x1F86}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1000342, SCIM_KEY_parenright, SCIM_KEY_Greek_eta }, 0x1F96}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1000342, SCIM_KEY_parenright, SCIM_KEY_Greek_omega }, 0x1FA6}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1000342, SCIM_KEY_Greek_alpha, 0 }, 0x1FB7}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1000342, SCIM_KEY_Greek_eta, 0 }, 0x1FC7}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1000342, SCIM_KEY_Greek_omega, 0 }, 0x1FF7}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1000342, 0x1000313, SCIM_KEY_Greek_ALPHA }, 0x1F8E}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1000342, 0x1000313, SCIM_KEY_Greek_ETA }, 0x1F9E}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1000342, 0x1000313, SCIM_KEY_Greek_OMEGA }, 0x1FAE}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1000342, 0x1000313, SCIM_KEY_Greek_alpha }, 0x1F86}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1000342, 0x1000313, SCIM_KEY_Greek_eta }, 0x1F96}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1000342, 0x1000313, SCIM_KEY_Greek_omega }, 0x1FA6}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1000342, 0x1000314, SCIM_KEY_Greek_ALPHA }, 0x1F8F}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1000342, 0x1000314, SCIM_KEY_Greek_ETA }, 0x1F9F}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1000342, 0x1000314, SCIM_KEY_Greek_OMEGA }, 0x1FAF}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1000342, 0x1000314, SCIM_KEY_Greek_alpha }, 0x1F87}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1000342, 0x1000314, SCIM_KEY_Greek_eta }, 0x1F97}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1000342, 0x1000314, SCIM_KEY_Greek_omega }, 0x1FA7}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1000342, 0x1001f00, 0 }, 0x1F86}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1000342, 0x1001f01, 0 }, 0x1F87}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1000342, 0x1001f08, 0 }, 0x1F8E}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1000342, 0x1001f09, 0 }, 0x1F8F}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1000342, 0x1001f20, 0 }, 0x1F96}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1000342, 0x1001f21, 0 }, 0x1F97}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1000342, 0x1001f28, 0 }, 0x1F9E}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1000342, 0x1001f29, 0 }, 0x1F9F}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1000342, 0x1001f60, 0 }, 0x1FA6}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1000342, 0x1001f61, 0 }, 0x1FA7}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1000342, 0x1001f68, 0 }, 0x1FAE}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1000342, 0x1001f69, 0 }, 0x1FAF}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1001f00, 0, 0 }, 0x1F80}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1001f01, 0, 0 }, 0x1F81}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1001f02, 0, 0 }, 0x1F82}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1001f03, 0, 0 }, 0x1F83}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1001f04, 0, 0 }, 0x1F84}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1001f05, 0, 0 }, 0x1F85}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1001f06, 0, 0 }, 0x1F86}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1001f07, 0, 0 }, 0x1F87}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1001f08, 0, 0 }, 0x1F88}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1001f09, 0, 0 }, 0x1F89}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1001f0a, 0, 0 }, 0x1F8A}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1001f0b, 0, 0 }, 0x1F8B}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1001f0c, 0, 0 }, 0x1F8C}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1001f0d, 0, 0 }, 0x1F8D}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1001f0e, 0, 0 }, 0x1F8E}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1001f0f, 0, 0 }, 0x1F8F}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1001f20, 0, 0 }, 0x1F90}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1001f21, 0, 0 }, 0x1F91}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1001f22, 0, 0 }, 0x1F92}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1001f23, 0, 0 }, 0x1F93}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1001f24, 0, 0 }, 0x1F94}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1001f25, 0, 0 }, 0x1F95}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1001f26, 0, 0 }, 0x1F96}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1001f27, 0, 0 }, 0x1F97}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1001f28, 0, 0 }, 0x1F98}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1001f29, 0, 0 }, 0x1F99}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1001f2a, 0, 0 }, 0x1F9A}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1001f2b, 0, 0 }, 0x1F9B}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1001f2c, 0, 0 }, 0x1F9C}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1001f2d, 0, 0 }, 0x1F9D}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1001f2e, 0, 0 }, 0x1F9E}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1001f2f, 0, 0 }, 0x1F9F}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1001f60, 0, 0 }, 0x1FA0}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1001f61, 0, 0 }, 0x1FA1}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1001f62, 0, 0 }, 0x1FA2}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1001f63, 0, 0 }, 0x1FA3}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1001f64, 0, 0 }, 0x1FA4}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1001f65, 0, 0 }, 0x1FA5}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1001f66, 0, 0 }, 0x1FA6}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1001f67, 0, 0 }, 0x1FA7}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1001f68, 0, 0 }, 0x1FA8}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1001f69, 0, 0 }, 0x1FA9}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1001f6a, 0, 0 }, 0x1FAA}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1001f6b, 0, 0 }, 0x1FAB}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1001f6c, 0, 0 }, 0x1FAC}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1001f6d, 0, 0 }, 0x1FAD}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1001f6e, 0, 0 }, 0x1FAE}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1001f6f, 0, 0 }, 0x1FAF}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1001f70, 0, 0 }, 0x1FB2}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1001f74, 0, 0 }, 0x1FC2}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1001f7c, 0, 0 }, 0x1FF2}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1001fb6, 0, 0 }, 0x1FB7}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1001fc6, 0, 0 }, 0x1FC7}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_iota, 0x1001ff6, 0, 0 }, 0x1FF7}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_omicron, SCIM_KEY_apostrophe, 0, 0 }, 0x03CC}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_upsilon, SCIM_KEY_quotedbl, 0, 0 }, 0x03CB}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_upsilon, SCIM_KEY_apostrophe, 0, 0 }, 0x03CD}, {{SCIM_KEY_Multi_key, SCIM_KEY_Greek_omega, SCIM_KEY_apostrophe, 0, 0 }, 0x03CE}, {{SCIM_KEY_Multi_key, SCIM_KEY_lessthanequal, 0x1000338, 0, 0 }, 0x2270}, {{SCIM_KEY_Multi_key, SCIM_KEY_greaterthanequal, 0x1000338, 0, 0 }, 0x2271}, {{SCIM_KEY_Multi_key, SCIM_KEY_approximate, 0x1000338, 0, 0 }, 0x2247}, {{SCIM_KEY_Multi_key, SCIM_KEY_identical, 0x1000338, 0, 0 }, 0x2262}, {{SCIM_KEY_Multi_key, SCIM_KEY_includedin, 0x1000338, 0, 0 }, 0x2284}, {{SCIM_KEY_Multi_key, SCIM_KEY_includes, 0x1000338, 0, 0 }, 0x2285}, {{SCIM_KEY_Multi_key, SCIM_KEY_leftcaret, 0x1000338, 0, 0 }, 0x226E}, {{SCIM_KEY_Multi_key, SCIM_KEY_rightcaret, 0x1000338, 0, 0 }, 0x226F}, {{SCIM_KEY_Multi_key, SCIM_KEY_underbar, SCIM_KEY_parenleft, 0, 0 }, 0x208D}, {{SCIM_KEY_Multi_key, SCIM_KEY_underbar, SCIM_KEY_parenright, 0, 0 }, 0x208E}, {{SCIM_KEY_Multi_key, SCIM_KEY_underbar, SCIM_KEY_plus, 0, 0 }, 0x208A}, {{SCIM_KEY_Multi_key, SCIM_KEY_underbar, SCIM_KEY_0, 0, 0 }, 0x2080}, {{SCIM_KEY_Multi_key, SCIM_KEY_underbar, SCIM_KEY_1, 0, 0 }, 0x2081}, {{SCIM_KEY_Multi_key, SCIM_KEY_underbar, SCIM_KEY_2, 0, 0 }, 0x2082}, {{SCIM_KEY_Multi_key, SCIM_KEY_underbar, SCIM_KEY_3, 0, 0 }, 0x2083}, {{SCIM_KEY_Multi_key, SCIM_KEY_underbar, SCIM_KEY_4, 0, 0 }, 0x2084}, {{SCIM_KEY_Multi_key, SCIM_KEY_underbar, SCIM_KEY_5, 0, 0 }, 0x2085}, {{SCIM_KEY_Multi_key, SCIM_KEY_underbar, SCIM_KEY_6, 0, 0 }, 0x2086}, {{SCIM_KEY_Multi_key, SCIM_KEY_underbar, SCIM_KEY_7, 0, 0 }, 0x2087}, {{SCIM_KEY_Multi_key, SCIM_KEY_underbar, SCIM_KEY_8, 0, 0 }, 0x2088}, {{SCIM_KEY_Multi_key, SCIM_KEY_underbar, SCIM_KEY_9, 0, 0 }, 0x2089}, {{SCIM_KEY_Multi_key, SCIM_KEY_underbar, SCIM_KEY_equal, 0, 0 }, 0x208C}, {{SCIM_KEY_Multi_key, SCIM_KEY_underbar, SCIM_KEY_KP_Space, 0, 0 }, 0x2082}, {{SCIM_KEY_Multi_key, SCIM_KEY_underbar, SCIM_KEY_KP_Add, 0, 0 }, 0x208A}, {{SCIM_KEY_Multi_key, SCIM_KEY_underbar, SCIM_KEY_KP_0, 0, 0 }, 0x2080}, {{SCIM_KEY_Multi_key, SCIM_KEY_underbar, SCIM_KEY_KP_1, 0, 0 }, 0x2081}, {{SCIM_KEY_Multi_key, SCIM_KEY_underbar, SCIM_KEY_KP_2, 0, 0 }, 0x2082}, {{SCIM_KEY_Multi_key, SCIM_KEY_underbar, SCIM_KEY_KP_3, 0, 0 }, 0x2083}, {{SCIM_KEY_Multi_key, SCIM_KEY_underbar, SCIM_KEY_KP_4, 0, 0 }, 0x2084}, {{SCIM_KEY_Multi_key, SCIM_KEY_underbar, SCIM_KEY_KP_5, 0, 0 }, 0x2085}, {{SCIM_KEY_Multi_key, SCIM_KEY_underbar, SCIM_KEY_KP_6, 0, 0 }, 0x2086}, {{SCIM_KEY_Multi_key, SCIM_KEY_underbar, SCIM_KEY_KP_7, 0, 0 }, 0x2087}, {{SCIM_KEY_Multi_key, SCIM_KEY_underbar, SCIM_KEY_KP_8, 0, 0 }, 0x2088}, {{SCIM_KEY_Multi_key, SCIM_KEY_underbar, SCIM_KEY_KP_9, 0, 0 }, 0x2089}, {{SCIM_KEY_Multi_key, SCIM_KEY_underbar, SCIM_KEY_KP_Equal, 0, 0 }, 0x208C}, {{SCIM_KEY_Multi_key, SCIM_KEY_underbar, 0x1002212, 0, 0 }, 0x208B}, {{SCIM_KEY_Multi_key, SCIM_KEY_rightshoe, 0x1000338, 0, 0 }, 0x2285}, {{SCIM_KEY_Multi_key, SCIM_KEY_leftshoe, 0x1000338, 0, 0 }, 0x2284}, {{SCIM_KEY_Multi_key, SCIM_KEY_righttack, 0x1000338, 0, 0 }, 0x22AC}, {{SCIM_KEY_Multi_key, SCIM_KEY_KP_Divide, SCIM_KEY_D, 0, 0 }, 0x0110}, {{SCIM_KEY_Multi_key, SCIM_KEY_KP_Divide, SCIM_KEY_G, 0, 0 }, 0x01E4}, {{SCIM_KEY_Multi_key, SCIM_KEY_KP_Divide, SCIM_KEY_H, 0, 0 }, 0x0126}, {{SCIM_KEY_Multi_key, SCIM_KEY_KP_Divide, SCIM_KEY_I, 0, 0 }, 0x0197}, {{SCIM_KEY_Multi_key, SCIM_KEY_KP_Divide, SCIM_KEY_L, 0, 0 }, 0x0141}, {{SCIM_KEY_Multi_key, SCIM_KEY_KP_Divide, SCIM_KEY_O, 0, 0 }, 0x00D8}, {{SCIM_KEY_Multi_key, SCIM_KEY_KP_Divide, SCIM_KEY_T, 0, 0 }, 0x0166}, {{SCIM_KEY_Multi_key, SCIM_KEY_KP_Divide, SCIM_KEY_Z, 0, 0 }, 0x01B5}, {{SCIM_KEY_Multi_key, SCIM_KEY_KP_Divide, SCIM_KEY_b, 0, 0 }, 0x0180}, {{SCIM_KEY_Multi_key, SCIM_KEY_KP_Divide, SCIM_KEY_d, 0, 0 }, 0x0111}, {{SCIM_KEY_Multi_key, SCIM_KEY_KP_Divide, SCIM_KEY_g, 0, 0 }, 0x01E5}, {{SCIM_KEY_Multi_key, SCIM_KEY_KP_Divide, SCIM_KEY_h, 0, 0 }, 0x0127}, {{SCIM_KEY_Multi_key, SCIM_KEY_KP_Divide, SCIM_KEY_i, 0, 0 }, 0x0268}, {{SCIM_KEY_Multi_key, SCIM_KEY_KP_Divide, SCIM_KEY_l, 0, 0 }, 0x0142}, {{SCIM_KEY_Multi_key, SCIM_KEY_KP_Divide, SCIM_KEY_o, 0, 0 }, 0x00F8}, {{SCIM_KEY_Multi_key, SCIM_KEY_KP_Divide, SCIM_KEY_t, 0, 0 }, 0x0167}, {{SCIM_KEY_Multi_key, SCIM_KEY_KP_Divide, SCIM_KEY_z, 0, 0 }, 0x01B6}, {{SCIM_KEY_Multi_key, SCIM_KEY_KP_Divide, SCIM_KEY_Cyrillic_ghe, 0, 0 }, 0x0493}, {{SCIM_KEY_Multi_key, SCIM_KEY_KP_Divide, SCIM_KEY_Cyrillic_ka, 0, 0 }, 0x049F}, {{SCIM_KEY_Multi_key, SCIM_KEY_KP_Divide, SCIM_KEY_Cyrillic_GHE, 0, 0 }, 0x0492}, {{SCIM_KEY_Multi_key, SCIM_KEY_KP_Divide, SCIM_KEY_Cyrillic_KA, 0, 0 }, 0x049E}, {{SCIM_KEY_Multi_key, SCIM_KEY_KP_Divide, SCIM_KEY_leftarrow, 0, 0 }, 0x219A}, {{SCIM_KEY_Multi_key, SCIM_KEY_KP_Divide, SCIM_KEY_rightarrow, 0, 0 }, 0x219B}, {{SCIM_KEY_Multi_key, SCIM_KEY_KP_Divide, 0x1000294, 0, 0 }, 0x02A1}, {{SCIM_KEY_Multi_key, SCIM_KEY_KP_Divide, 0x10004ae, 0, 0 }, 0x04B0}, {{SCIM_KEY_Multi_key, SCIM_KEY_KP_Divide, 0x10004af, 0, 0 }, 0x04B1}, {{SCIM_KEY_Multi_key, SCIM_KEY_KP_Divide, 0x1002194, 0, 0 }, 0x21AE}, {{SCIM_KEY_Multi_key, SCIM_KEY_KP_Equal, 0x1000338, 0, 0 }, 0x2260}, {{SCIM_KEY_Multi_key, 0x10005b4, SCIM_KEY_hebrew_yod, 0, 0 }, 0xFB1D}, {{SCIM_KEY_Multi_key, 0x10005b7, SCIM_KEY_hebrew_aleph, 0, 0 }, 0xFB2E}, {{SCIM_KEY_Multi_key, 0x10005b7, 0x10005f2, 0, 0 }, 0xFB1F}, {{SCIM_KEY_Multi_key, 0x10005b8, SCIM_KEY_hebrew_aleph, 0, 0 }, 0xFB2F}, {{SCIM_KEY_Multi_key, 0x10005b9, SCIM_KEY_hebrew_waw, 0, 0 }, 0xFB4B}, {{SCIM_KEY_Multi_key, 0x10005bc, SCIM_KEY_hebrew_aleph, 0, 0 }, 0xFB30}, {{SCIM_KEY_Multi_key, 0x10005bc, SCIM_KEY_hebrew_bet, 0, 0 }, 0xFB31}, {{SCIM_KEY_Multi_key, 0x10005bc, SCIM_KEY_hebrew_gimel, 0, 0 }, 0xFB32}, {{SCIM_KEY_Multi_key, 0x10005bc, SCIM_KEY_hebrew_dalet, 0, 0 }, 0xFB33}, {{SCIM_KEY_Multi_key, 0x10005bc, SCIM_KEY_hebrew_he, 0, 0 }, 0xFB34}, {{SCIM_KEY_Multi_key, 0x10005bc, SCIM_KEY_hebrew_waw, 0, 0 }, 0xFB35}, {{SCIM_KEY_Multi_key, 0x10005bc, SCIM_KEY_hebrew_zain, 0, 0 }, 0xFB36}, {{SCIM_KEY_Multi_key, 0x10005bc, SCIM_KEY_hebrew_tet, 0, 0 }, 0xFB38}, {{SCIM_KEY_Multi_key, 0x10005bc, SCIM_KEY_hebrew_yod, 0, 0 }, 0xFB39}, {{SCIM_KEY_Multi_key, 0x10005bc, SCIM_KEY_hebrew_finalkaph, 0, 0 }, 0xFB3A}, {{SCIM_KEY_Multi_key, 0x10005bc, SCIM_KEY_hebrew_kaph, 0, 0 }, 0xFB3B}, {{SCIM_KEY_Multi_key, 0x10005bc, SCIM_KEY_hebrew_lamed, 0, 0 }, 0xFB3C}, {{SCIM_KEY_Multi_key, 0x10005bc, SCIM_KEY_hebrew_mem, 0, 0 }, 0xFB3E}, {{SCIM_KEY_Multi_key, 0x10005bc, SCIM_KEY_hebrew_nun, 0, 0 }, 0xFB40}, {{SCIM_KEY_Multi_key, 0x10005bc, SCIM_KEY_hebrew_samech, 0, 0 }, 0xFB41}, {{SCIM_KEY_Multi_key, 0x10005bc, SCIM_KEY_hebrew_finalpe, 0, 0 }, 0xFB43}, {{SCIM_KEY_Multi_key, 0x10005bc, SCIM_KEY_hebrew_pe, 0, 0 }, 0xFB44}, {{SCIM_KEY_Multi_key, 0x10005bc, SCIM_KEY_hebrew_zade, 0, 0 }, 0xFB46}, {{SCIM_KEY_Multi_key, 0x10005bc, SCIM_KEY_hebrew_kuf, 0, 0 }, 0xFB47}, {{SCIM_KEY_Multi_key, 0x10005bc, SCIM_KEY_hebrew_resh, 0, 0 }, 0xFB48}, {{SCIM_KEY_Multi_key, 0x10005bc, SCIM_KEY_hebrew_shin, 0, 0 }, 0xFB49}, {{SCIM_KEY_Multi_key, 0x10005bc, SCIM_KEY_hebrew_taf, 0, 0 }, 0xFB4A}, {{SCIM_KEY_Multi_key, 0x10005bf, SCIM_KEY_hebrew_bet, 0, 0 }, 0xFB4C}, {{SCIM_KEY_Multi_key, 0x10005bf, SCIM_KEY_hebrew_kaph, 0, 0 }, 0xFB4D}, {{SCIM_KEY_Multi_key, 0x10005bf, SCIM_KEY_hebrew_pe, 0, 0 }, 0xFB4E}, {{SCIM_KEY_Multi_key, 0x10005c1, SCIM_KEY_hebrew_shin, 0, 0 }, 0xFB2A}, {{SCIM_KEY_Multi_key, 0x10005c1, 0x10005bc, SCIM_KEY_hebrew_shin, 0 }, 0xFB2C}, {{SCIM_KEY_Multi_key, 0x10005c1, 0x100fb49, 0, 0 }, 0xFB2C}, {{SCIM_KEY_Multi_key, 0x10005c2, SCIM_KEY_hebrew_shin, 0, 0 }, 0xFB2B}, {{SCIM_KEY_Multi_key, 0x10005c2, 0x10005bc, SCIM_KEY_hebrew_shin, 0 }, 0xFB2D}, {{SCIM_KEY_Multi_key, 0x10005c2, 0x100fb49, 0, 0 }, 0xFB2D}, {{SCIM_KEY_Multi_key, 0x1000653, SCIM_KEY_Arabic_alef, 0, 0 }, 0x0622}, {{SCIM_KEY_Multi_key, 0x1000654, SCIM_KEY_Arabic_alef, 0, 0 }, 0x0623}, {{SCIM_KEY_Multi_key, 0x1000654, SCIM_KEY_Arabic_waw, 0, 0 }, 0x0624}, {{SCIM_KEY_Multi_key, 0x1000654, SCIM_KEY_Arabic_yeh, 0, 0 }, 0x0626}, {{SCIM_KEY_Multi_key, 0x1000654, 0x10006c1, 0, 0 }, 0x06C2}, {{SCIM_KEY_Multi_key, 0x1000654, 0x10006d2, 0, 0 }, 0x06D3}, {{SCIM_KEY_Multi_key, 0x1000654, 0x10006d5, 0, 0 }, 0x06C0}, {{SCIM_KEY_Multi_key, 0x1000655, SCIM_KEY_Arabic_alef, 0, 0 }, 0x0625}, {{SCIM_KEY_Multi_key, 0x100093c, 0x1000915, 0, 0 }, 0x0958}, {{SCIM_KEY_Multi_key, 0x100093c, 0x1000916, 0, 0 }, 0x0959}, {{SCIM_KEY_Multi_key, 0x100093c, 0x1000917, 0, 0 }, 0x095A}, {{SCIM_KEY_Multi_key, 0x100093c, 0x100091c, 0, 0 }, 0x095B}, {{SCIM_KEY_Multi_key, 0x100093c, 0x1000921, 0, 0 }, 0x095C}, {{SCIM_KEY_Multi_key, 0x100093c, 0x1000922, 0, 0 }, 0x095D}, {{SCIM_KEY_Multi_key, 0x100093c, 0x1000928, 0, 0 }, 0x0929}, {{SCIM_KEY_Multi_key, 0x100093c, 0x100092b, 0, 0 }, 0x095E}, {{SCIM_KEY_Multi_key, 0x100093c, 0x100092f, 0, 0 }, 0x095F}, {{SCIM_KEY_Multi_key, 0x100093c, 0x1000930, 0, 0 }, 0x0931}, {{SCIM_KEY_Multi_key, 0x100093c, 0x1000933, 0, 0 }, 0x0934}, {{SCIM_KEY_Multi_key, 0x10009bc, 0x10009a1, 0, 0 }, 0x09DC}, {{SCIM_KEY_Multi_key, 0x10009bc, 0x10009a2, 0, 0 }, 0x09DD}, {{SCIM_KEY_Multi_key, 0x10009bc, 0x10009af, 0, 0 }, 0x09DF}, {{SCIM_KEY_Multi_key, 0x10009c7, 0x10009be, 0, 0 }, 0x09CB}, {{SCIM_KEY_Multi_key, 0x10009c7, 0x10009d7, 0, 0 }, 0x09CC}, {{SCIM_KEY_Multi_key, 0x1000a3c, 0x1000a16, 0, 0 }, 0x0A59}, {{SCIM_KEY_Multi_key, 0x1000a3c, 0x1000a17, 0, 0 }, 0x0A5A}, {{SCIM_KEY_Multi_key, 0x1000a3c, 0x1000a1c, 0, 0 }, 0x0A5B}, {{SCIM_KEY_Multi_key, 0x1000a3c, 0x1000a2b, 0, 0 }, 0x0A5E}, {{SCIM_KEY_Multi_key, 0x1000a3c, 0x1000a32, 0, 0 }, 0x0A33}, {{SCIM_KEY_Multi_key, 0x1000a3c, 0x1000a38, 0, 0 }, 0x0A36}, {{SCIM_KEY_Multi_key, 0x1000b3c, 0x1000b21, 0, 0 }, 0x0B5C}, {{SCIM_KEY_Multi_key, 0x1000b3c, 0x1000b22, 0, 0 }, 0x0B5D}, {{SCIM_KEY_Multi_key, 0x1000b47, 0x1000b3e, 0, 0 }, 0x0B4B}, {{SCIM_KEY_Multi_key, 0x1000b47, 0x1000b56, 0, 0 }, 0x0B48}, {{SCIM_KEY_Multi_key, 0x1000b47, 0x1000b57, 0, 0 }, 0x0B4C}, {{SCIM_KEY_Multi_key, 0x1000bc6, 0x1000bbe, 0, 0 }, 0x0BCA}, {{SCIM_KEY_Multi_key, 0x1000bc6, 0x1000bd7, 0, 0 }, 0x0BCC}, {{SCIM_KEY_Multi_key, 0x1000bc7, 0x1000bbe, 0, 0 }, 0x0BCB}, {{SCIM_KEY_Multi_key, 0x1000bd7, 0x1000b92, 0, 0 }, 0x0B94}, {{SCIM_KEY_Multi_key, 0x1000c46, 0x1000c56, 0, 0 }, 0x0C48}, {{SCIM_KEY_Multi_key, 0x1000cbf, 0x1000cd5, 0, 0 }, 0x0CC0}, {{SCIM_KEY_Multi_key, 0x1000cc6, 0x1000cc2, 0, 0 }, 0x0CCA}, {{SCIM_KEY_Multi_key, 0x1000cc6, 0x1000cc2, 0x1000cd5, 0 }, 0x0CCB}, {{SCIM_KEY_Multi_key, 0x1000cc6, 0x1000cd5, 0, 0 }, 0x0CC7}, {{SCIM_KEY_Multi_key, 0x1000cc6, 0x1000cd6, 0, 0 }, 0x0CC8}, {{SCIM_KEY_Multi_key, 0x1000cca, 0x1000cd5, 0, 0 }, 0x0CCB}, {{SCIM_KEY_Multi_key, 0x1000d46, 0x1000d3e, 0, 0 }, 0x0D4A}, {{SCIM_KEY_Multi_key, 0x1000d46, 0x1000d57, 0, 0 }, 0x0D4C}, {{SCIM_KEY_Multi_key, 0x1000d47, 0x1000d3e, 0, 0 }, 0x0D4B}, {{SCIM_KEY_Multi_key, 0x1000dd9, 0x1000dca, 0, 0 }, 0x0DDA}, {{SCIM_KEY_Multi_key, 0x1000dd9, 0x1000dcf, 0, 0 }, 0x0DDC}, {{SCIM_KEY_Multi_key, 0x1000dd9, 0x1000dcf, 0x1000dca, 0 }, 0x0DDD}, {{SCIM_KEY_Multi_key, 0x1000dd9, 0x1000ddf, 0, 0 }, 0x0DDE}, {{SCIM_KEY_Multi_key, 0x1000ddc, 0x1000dca, 0, 0 }, 0x0DDD}, {{SCIM_KEY_Multi_key, 0x1000f71, 0x1000f72, 0, 0 }, 0x0F73}, {{SCIM_KEY_Multi_key, 0x1000f71, 0x1000f74, 0, 0 }, 0x0F75}, {{SCIM_KEY_Multi_key, 0x1000f71, 0x1000f80, 0, 0 }, 0x0F81}, {{SCIM_KEY_Multi_key, 0x1000f90, 0x1000fb5, 0, 0 }, 0x0FB9}, {{SCIM_KEY_Multi_key, 0x1000f92, 0x1000fb7, 0, 0 }, 0x0F93}, {{SCIM_KEY_Multi_key, 0x1000f9c, 0x1000fb7, 0, 0 }, 0x0F9D}, {{SCIM_KEY_Multi_key, 0x1000fa1, 0x1000fb7, 0, 0 }, 0x0FA2}, {{SCIM_KEY_Multi_key, 0x1000fa6, 0x1000fb7, 0, 0 }, 0x0FA7}, {{SCIM_KEY_Multi_key, 0x1000fab, 0x1000fb7, 0, 0 }, 0x0FAC}, {{SCIM_KEY_Multi_key, 0x1000fb2, 0x1000f80, 0, 0 }, 0x0F76}, {{SCIM_KEY_Multi_key, 0x1000fb3, 0x1000f80, 0, 0 }, 0x0F78}, {{SCIM_KEY_Multi_key, 0x1000fb5, 0x1000f40, 0, 0 }, 0x0F69}, {{SCIM_KEY_Multi_key, 0x1000fb7, 0x1000f42, 0, 0 }, 0x0F43}, {{SCIM_KEY_Multi_key, 0x1000fb7, 0x1000f4c, 0, 0 }, 0x0F4D}, {{SCIM_KEY_Multi_key, 0x1000fb7, 0x1000f51, 0, 0 }, 0x0F52}, {{SCIM_KEY_Multi_key, 0x1000fb7, 0x1000f56, 0, 0 }, 0x0F57}, {{SCIM_KEY_Multi_key, 0x1000fb7, 0x1000f5b, 0, 0 }, 0x0F5C}, {{SCIM_KEY_Multi_key, 0x100102e, 0x1001025, 0, 0 }, 0x1026}, {{SCIM_KEY_Multi_key, 0x1001100, 0x1001100, 0, 0 }, 0x1101}, {{SCIM_KEY_Multi_key, 0x1001102, 0x1001100, 0, 0 }, 0x1113}, {{SCIM_KEY_Multi_key, 0x1001102, 0x1001102, 0, 0 }, 0x1114}, {{SCIM_KEY_Multi_key, 0x1001102, 0x1001103, 0, 0 }, 0x1115}, {{SCIM_KEY_Multi_key, 0x1001102, 0x1001107, 0, 0 }, 0x1116}, {{SCIM_KEY_Multi_key, 0x1001103, 0x1001100, 0, 0 }, 0x1117}, {{SCIM_KEY_Multi_key, 0x1001103, 0x1001103, 0, 0 }, 0x1104}, {{SCIM_KEY_Multi_key, 0x1001105, 0x1001102, 0, 0 }, 0x1118}, {{SCIM_KEY_Multi_key, 0x1001105, 0x1001105, 0, 0 }, 0x1119}, {{SCIM_KEY_Multi_key, 0x1001105, 0x100110b, 0, 0 }, 0x111B}, {{SCIM_KEY_Multi_key, 0x1001105, 0x1001112, 0, 0 }, 0x111A}, {{SCIM_KEY_Multi_key, 0x1001106, 0x1001107, 0, 0 }, 0x111C}, {{SCIM_KEY_Multi_key, 0x1001106, 0x100110b, 0, 0 }, 0x111D}, {{SCIM_KEY_Multi_key, 0x1001107, 0x1001100, 0, 0 }, 0x111E}, {{SCIM_KEY_Multi_key, 0x1001107, 0x1001102, 0, 0 }, 0x111F}, {{SCIM_KEY_Multi_key, 0x1001107, 0x1001103, 0, 0 }, 0x1120}, {{SCIM_KEY_Multi_key, 0x1001107, 0x1001107, 0, 0 }, 0x1108}, {{SCIM_KEY_Multi_key, 0x1001107, 0x1001107, 0x100110b, 0 }, 0x112C}, {{SCIM_KEY_Multi_key, 0x1001107, 0x1001109, 0, 0 }, 0x1121}, {{SCIM_KEY_Multi_key, 0x1001107, 0x1001109, 0x1001100, 0 }, 0x1122}, {{SCIM_KEY_Multi_key, 0x1001107, 0x1001109, 0x1001103, 0 }, 0x1123}, {{SCIM_KEY_Multi_key, 0x1001107, 0x1001109, 0x1001107, 0 }, 0x1124}, {{SCIM_KEY_Multi_key, 0x1001107, 0x1001109, 0x1001109, 0 }, 0x1125}, {{SCIM_KEY_Multi_key, 0x1001107, 0x1001109, 0x100110c, 0 }, 0x1126}, {{SCIM_KEY_Multi_key, 0x1001107, 0x100110a, 0, 0 }, 0x1125}, {{SCIM_KEY_Multi_key, 0x1001107, 0x100110b, 0, 0 }, 0x112B}, {{SCIM_KEY_Multi_key, 0x1001107, 0x100110c, 0, 0 }, 0x1127}, {{SCIM_KEY_Multi_key, 0x1001107, 0x100110e, 0, 0 }, 0x1128}, {{SCIM_KEY_Multi_key, 0x1001107, 0x1001110, 0, 0 }, 0x1129}, {{SCIM_KEY_Multi_key, 0x1001107, 0x1001111, 0, 0 }, 0x112A}, {{SCIM_KEY_Multi_key, 0x1001107, 0x100112b, 0, 0 }, 0x112C}, {{SCIM_KEY_Multi_key, 0x1001107, 0x100112d, 0, 0 }, 0x1122}, {{SCIM_KEY_Multi_key, 0x1001107, 0x100112f, 0, 0 }, 0x1123}, {{SCIM_KEY_Multi_key, 0x1001107, 0x1001132, 0, 0 }, 0x1124}, {{SCIM_KEY_Multi_key, 0x1001107, 0x1001136, 0, 0 }, 0x1126}, {{SCIM_KEY_Multi_key, 0x1001108, 0x100110b, 0, 0 }, 0x112C}, {{SCIM_KEY_Multi_key, 0x1001109, 0x1001100, 0, 0 }, 0x112D}, {{SCIM_KEY_Multi_key, 0x1001109, 0x1001102, 0, 0 }, 0x112E}, {{SCIM_KEY_Multi_key, 0x1001109, 0x1001103, 0, 0 }, 0x112F}, {{SCIM_KEY_Multi_key, 0x1001109, 0x1001105, 0, 0 }, 0x1130}, {{SCIM_KEY_Multi_key, 0x1001109, 0x1001106, 0, 0 }, 0x1131}, {{SCIM_KEY_Multi_key, 0x1001109, 0x1001107, 0, 0 }, 0x1132}, {{SCIM_KEY_Multi_key, 0x1001109, 0x1001107, 0x1001100, 0 }, 0x1133}, {{SCIM_KEY_Multi_key, 0x1001109, 0x1001109, 0, 0 }, 0x110A}, {{SCIM_KEY_Multi_key, 0x1001109, 0x1001109, 0x1001109, 0 }, 0x1134}, {{SCIM_KEY_Multi_key, 0x1001109, 0x100110a, 0, 0 }, 0x1134}, {{SCIM_KEY_Multi_key, 0x1001109, 0x100110b, 0, 0 }, 0x1135}, {{SCIM_KEY_Multi_key, 0x1001109, 0x100110c, 0, 0 }, 0x1136}, {{SCIM_KEY_Multi_key, 0x1001109, 0x100110e, 0, 0 }, 0x1137}, {{SCIM_KEY_Multi_key, 0x1001109, 0x100110f, 0, 0 }, 0x1138}, {{SCIM_KEY_Multi_key, 0x1001109, 0x1001110, 0, 0 }, 0x1139}, {{SCIM_KEY_Multi_key, 0x1001109, 0x1001111, 0, 0 }, 0x113A}, {{SCIM_KEY_Multi_key, 0x1001109, 0x1001112, 0, 0 }, 0x113B}, {{SCIM_KEY_Multi_key, 0x1001109, 0x100111e, 0, 0 }, 0x1133}, {{SCIM_KEY_Multi_key, 0x100110a, 0x1001109, 0, 0 }, 0x1134}, {{SCIM_KEY_Multi_key, 0x100110b, 0x1001100, 0, 0 }, 0x1141}, {{SCIM_KEY_Multi_key, 0x100110b, 0x1001103, 0, 0 }, 0x1142}, {{SCIM_KEY_Multi_key, 0x100110b, 0x1001106, 0, 0 }, 0x1143}, {{SCIM_KEY_Multi_key, 0x100110b, 0x1001107, 0, 0 }, 0x1144}, {{SCIM_KEY_Multi_key, 0x100110b, 0x1001109, 0, 0 }, 0x1145}, {{SCIM_KEY_Multi_key, 0x100110b, 0x100110b, 0, 0 }, 0x1147}, {{SCIM_KEY_Multi_key, 0x100110b, 0x100110c, 0, 0 }, 0x1148}, {{SCIM_KEY_Multi_key, 0x100110b, 0x100110e, 0, 0 }, 0x1149}, {{SCIM_KEY_Multi_key, 0x100110b, 0x1001110, 0, 0 }, 0x114A}, {{SCIM_KEY_Multi_key, 0x100110b, 0x1001111, 0, 0 }, 0x114B}, {{SCIM_KEY_Multi_key, 0x100110b, 0x1001140, 0, 0 }, 0x1146}, {{SCIM_KEY_Multi_key, 0x100110c, 0x100110b, 0, 0 }, 0x114D}, {{SCIM_KEY_Multi_key, 0x100110c, 0x100110c, 0, 0 }, 0x110D}, {{SCIM_KEY_Multi_key, 0x100110e, 0x100110f, 0, 0 }, 0x1152}, {{SCIM_KEY_Multi_key, 0x100110e, 0x1001112, 0, 0 }, 0x1153}, {{SCIM_KEY_Multi_key, 0x1001111, 0x1001107, 0, 0 }, 0x1156}, {{SCIM_KEY_Multi_key, 0x1001111, 0x100110b, 0, 0 }, 0x1157}, {{SCIM_KEY_Multi_key, 0x1001112, 0x1001112, 0, 0 }, 0x1158}, {{SCIM_KEY_Multi_key, 0x1001121, 0x1001100, 0, 0 }, 0x1122}, {{SCIM_KEY_Multi_key, 0x1001121, 0x1001103, 0, 0 }, 0x1123}, {{SCIM_KEY_Multi_key, 0x1001121, 0x1001107, 0, 0 }, 0x1124}, {{SCIM_KEY_Multi_key, 0x1001121, 0x1001109, 0, 0 }, 0x1125}, {{SCIM_KEY_Multi_key, 0x1001121, 0x100110c, 0, 0 }, 0x1126}, {{SCIM_KEY_Multi_key, 0x1001132, 0x1001100, 0, 0 }, 0x1133}, {{SCIM_KEY_Multi_key, 0x100113c, 0x100113c, 0, 0 }, 0x113D}, {{SCIM_KEY_Multi_key, 0x100113e, 0x100113e, 0, 0 }, 0x113F}, {{SCIM_KEY_Multi_key, 0x100114e, 0x100114e, 0, 0 }, 0x114F}, {{SCIM_KEY_Multi_key, 0x1001150, 0x1001150, 0, 0 }, 0x1151}, {{SCIM_KEY_Multi_key, 0x1001161, 0x1001169, 0, 0 }, 0x1176}, {{SCIM_KEY_Multi_key, 0x1001161, 0x100116e, 0, 0 }, 0x1177}, {{SCIM_KEY_Multi_key, 0x1001161, 0x1001175, 0, 0 }, 0x1162}, {{SCIM_KEY_Multi_key, 0x1001163, 0x1001169, 0, 0 }, 0x1178}, {{SCIM_KEY_Multi_key, 0x1001163, 0x100116d, 0, 0 }, 0x1179}, {{SCIM_KEY_Multi_key, 0x1001163, 0x1001175, 0, 0 }, 0x1164}, {{SCIM_KEY_Multi_key, 0x1001165, 0x1001169, 0, 0 }, 0x117A}, {{SCIM_KEY_Multi_key, 0x1001165, 0x100116e, 0, 0 }, 0x117B}, {{SCIM_KEY_Multi_key, 0x1001165, 0x1001173, 0, 0 }, 0x117C}, {{SCIM_KEY_Multi_key, 0x1001165, 0x1001175, 0, 0 }, 0x1166}, {{SCIM_KEY_Multi_key, 0x1001167, 0x1001169, 0, 0 }, 0x117D}, {{SCIM_KEY_Multi_key, 0x1001167, 0x100116e, 0, 0 }, 0x117E}, {{SCIM_KEY_Multi_key, 0x1001167, 0x1001175, 0, 0 }, 0x1168}, {{SCIM_KEY_Multi_key, 0x1001169, 0x1001161, 0, 0 }, 0x116A}, {{SCIM_KEY_Multi_key, 0x1001169, 0x1001161, 0x1001175, 0 }, 0x116B}, {{SCIM_KEY_Multi_key, 0x1001169, 0x1001162, 0, 0 }, 0x116B}, {{SCIM_KEY_Multi_key, 0x1001169, 0x1001165, 0, 0 }, 0x117F}, {{SCIM_KEY_Multi_key, 0x1001169, 0x1001166, 0, 0 }, 0x1180}, {{SCIM_KEY_Multi_key, 0x1001169, 0x1001168, 0, 0 }, 0x1181}, {{SCIM_KEY_Multi_key, 0x1001169, 0x1001169, 0, 0 }, 0x1182}, {{SCIM_KEY_Multi_key, 0x1001169, 0x100116e, 0, 0 }, 0x1183}, {{SCIM_KEY_Multi_key, 0x1001169, 0x1001175, 0, 0 }, 0x116C}, {{SCIM_KEY_Multi_key, 0x100116a, 0x1001175, 0, 0 }, 0x116B}, {{SCIM_KEY_Multi_key, 0x100116d, 0x1001163, 0, 0 }, 0x1184}, {{SCIM_KEY_Multi_key, 0x100116d, 0x1001164, 0, 0 }, 0x1185}, {{SCIM_KEY_Multi_key, 0x100116d, 0x1001167, 0, 0 }, 0x1186}, {{SCIM_KEY_Multi_key, 0x100116d, 0x1001169, 0, 0 }, 0x1187}, {{SCIM_KEY_Multi_key, 0x100116d, 0x1001175, 0, 0 }, 0x1188}, {{SCIM_KEY_Multi_key, 0x100116e, 0x1001161, 0, 0 }, 0x1189}, {{SCIM_KEY_Multi_key, 0x100116e, 0x1001162, 0, 0 }, 0x118A}, {{SCIM_KEY_Multi_key, 0x100116e, 0x1001165, 0, 0 }, 0x116F}, {{SCIM_KEY_Multi_key, 0x100116e, 0x1001165, 0x1001173, 0 }, 0x118B}, {{SCIM_KEY_Multi_key, 0x100116e, 0x1001165, 0x1001175, 0 }, 0x1170}, {{SCIM_KEY_Multi_key, 0x100116e, 0x1001166, 0, 0 }, 0x1170}, {{SCIM_KEY_Multi_key, 0x100116e, 0x1001168, 0, 0 }, 0x118C}, {{SCIM_KEY_Multi_key, 0x100116e, 0x100116e, 0, 0 }, 0x118D}, {{SCIM_KEY_Multi_key, 0x100116e, 0x1001175, 0, 0 }, 0x1171}, {{SCIM_KEY_Multi_key, 0x100116e, 0x100117c, 0, 0 }, 0x118B}, {{SCIM_KEY_Multi_key, 0x100116f, 0x1001173, 0, 0 }, 0x118B}, {{SCIM_KEY_Multi_key, 0x100116f, 0x1001175, 0, 0 }, 0x1170}, {{SCIM_KEY_Multi_key, 0x1001172, 0x1001161, 0, 0 }, 0x118E}, {{SCIM_KEY_Multi_key, 0x1001172, 0x1001165, 0, 0 }, 0x118F}, {{SCIM_KEY_Multi_key, 0x1001172, 0x1001166, 0, 0 }, 0x1190}, {{SCIM_KEY_Multi_key, 0x1001172, 0x1001167, 0, 0 }, 0x1191}, {{SCIM_KEY_Multi_key, 0x1001172, 0x1001168, 0, 0 }, 0x1192}, {{SCIM_KEY_Multi_key, 0x1001172, 0x100116e, 0, 0 }, 0x1193}, {{SCIM_KEY_Multi_key, 0x1001172, 0x1001175, 0, 0 }, 0x1194}, {{SCIM_KEY_Multi_key, 0x1001173, 0x100116e, 0, 0 }, 0x1195}, {{SCIM_KEY_Multi_key, 0x1001173, 0x1001173, 0, 0 }, 0x1196}, {{SCIM_KEY_Multi_key, 0x1001173, 0x1001175, 0, 0 }, 0x1174}, {{SCIM_KEY_Multi_key, 0x1001174, 0x100116e, 0, 0 }, 0x1197}, {{SCIM_KEY_Multi_key, 0x1001175, 0x1001161, 0, 0 }, 0x1198}, {{SCIM_KEY_Multi_key, 0x1001175, 0x1001163, 0, 0 }, 0x1199}, {{SCIM_KEY_Multi_key, 0x1001175, 0x1001169, 0, 0 }, 0x119A}, {{SCIM_KEY_Multi_key, 0x1001175, 0x100116e, 0, 0 }, 0x119B}, {{SCIM_KEY_Multi_key, 0x1001175, 0x1001173, 0, 0 }, 0x119C}, {{SCIM_KEY_Multi_key, 0x1001175, 0x100119e, 0, 0 }, 0x119D}, {{SCIM_KEY_Multi_key, 0x100119e, 0x1001165, 0, 0 }, 0x119F}, {{SCIM_KEY_Multi_key, 0x100119e, 0x100116e, 0, 0 }, 0x11A0}, {{SCIM_KEY_Multi_key, 0x100119e, 0x1001175, 0, 0 }, 0x11A1}, {{SCIM_KEY_Multi_key, 0x100119e, 0x100119e, 0, 0 }, 0x11A2}, {{SCIM_KEY_Multi_key, 0x10011a8, 0x10011a8, 0, 0 }, 0x11A9}, {{SCIM_KEY_Multi_key, 0x10011a8, 0x10011af, 0, 0 }, 0x11C3}, {{SCIM_KEY_Multi_key, 0x10011a8, 0x10011ba, 0, 0 }, 0x11AA}, {{SCIM_KEY_Multi_key, 0x10011a8, 0x10011ba, 0x10011a8, 0 }, 0x11C4}, {{SCIM_KEY_Multi_key, 0x10011a8, 0x10011e7, 0, 0 }, 0x11C4}, {{SCIM_KEY_Multi_key, 0x10011aa, 0x10011a8, 0, 0 }, 0x11C4}, {{SCIM_KEY_Multi_key, 0x10011ab, 0x10011a8, 0, 0 }, 0x11C5}, {{SCIM_KEY_Multi_key, 0x10011ab, 0x10011ae, 0, 0 }, 0x11C6}, {{SCIM_KEY_Multi_key, 0x10011ab, 0x10011ba, 0, 0 }, 0x11C7}, {{SCIM_KEY_Multi_key, 0x10011ab, 0x10011bd, 0, 0 }, 0x11AC}, {{SCIM_KEY_Multi_key, 0x10011ab, 0x10011c0, 0, 0 }, 0x11C9}, {{SCIM_KEY_Multi_key, 0x10011ab, 0x10011c2, 0, 0 }, 0x11AD}, {{SCIM_KEY_Multi_key, 0x10011ab, 0x10011eb, 0, 0 }, 0x11C8}, {{SCIM_KEY_Multi_key, 0x10011ae, 0x10011a8, 0, 0 }, 0x11CA}, {{SCIM_KEY_Multi_key, 0x10011ae, 0x10011af, 0, 0 }, 0x11CB}, {{SCIM_KEY_Multi_key, 0x10011af, 0x10011a8, 0, 0 }, 0x11B0}, {{SCIM_KEY_Multi_key, 0x10011af, 0x10011a8, 0x10011ba, 0 }, 0x11CC}, {{SCIM_KEY_Multi_key, 0x10011af, 0x10011aa, 0, 0 }, 0x11CC}, {{SCIM_KEY_Multi_key, 0x10011af, 0x10011ab, 0, 0 }, 0x11CD}, {{SCIM_KEY_Multi_key, 0x10011af, 0x10011ae, 0, 0 }, 0x11CE}, {{SCIM_KEY_Multi_key, 0x10011af, 0x10011ae, 0x10011c2, 0 }, 0x11CF}, {{SCIM_KEY_Multi_key, 0x10011af, 0x10011af, 0, 0 }, 0x11D0}, {{SCIM_KEY_Multi_key, 0x10011af, 0x10011b7, 0, 0 }, 0x11B1}, {{SCIM_KEY_Multi_key, 0x10011af, 0x10011b7, 0x10011a8, 0 }, 0x11D1}, {{SCIM_KEY_Multi_key, 0x10011af, 0x10011b7, 0x10011ba, 0 }, 0x11D2}, {{SCIM_KEY_Multi_key, 0x10011af, 0x10011b8, 0, 0 }, 0x11B2}, {{SCIM_KEY_Multi_key, 0x10011af, 0x10011b8, 0x10011ba, 0 }, 0x11D3}, {{SCIM_KEY_Multi_key, 0x10011af, 0x10011b8, 0x10011bc, 0 }, 0x11D5}, {{SCIM_KEY_Multi_key, 0x10011af, 0x10011b8, 0x10011c2, 0 }, 0x11D4}, {{SCIM_KEY_Multi_key, 0x10011af, 0x10011b9, 0, 0 }, 0x11D3}, {{SCIM_KEY_Multi_key, 0x10011af, 0x10011ba, 0, 0 }, 0x11B3}, {{SCIM_KEY_Multi_key, 0x10011af, 0x10011ba, 0x10011ba, 0 }, 0x11D6}, {{SCIM_KEY_Multi_key, 0x10011af, 0x10011bb, 0, 0 }, 0x11D6}, {{SCIM_KEY_Multi_key, 0x10011af, 0x10011bf, 0, 0 }, 0x11D8}, {{SCIM_KEY_Multi_key, 0x10011af, 0x10011c0, 0, 0 }, 0x11B4}, {{SCIM_KEY_Multi_key, 0x10011af, 0x10011c1, 0, 0 }, 0x11B5}, {{SCIM_KEY_Multi_key, 0x10011af, 0x10011c2, 0, 0 }, 0x11B6}, {{SCIM_KEY_Multi_key, 0x10011af, 0x10011da, 0, 0 }, 0x11D1}, {{SCIM_KEY_Multi_key, 0x10011af, 0x10011dd, 0, 0 }, 0x11D2}, {{SCIM_KEY_Multi_key, 0x10011af, 0x10011e5, 0, 0 }, 0x11D4}, {{SCIM_KEY_Multi_key, 0x10011af, 0x10011e6, 0, 0 }, 0x11D5}, {{SCIM_KEY_Multi_key, 0x10011af, 0x10011eb, 0, 0 }, 0x11D7}, {{SCIM_KEY_Multi_key, 0x10011af, 0x10011f9, 0, 0 }, 0x11D9}, {{SCIM_KEY_Multi_key, 0x10011b0, 0x10011ba, 0, 0 }, 0x11CC}, {{SCIM_KEY_Multi_key, 0x10011b1, 0x10011a8, 0, 0 }, 0x11D1}, {{SCIM_KEY_Multi_key, 0x10011b1, 0x10011ba, 0, 0 }, 0x11D2}, {{SCIM_KEY_Multi_key, 0x10011b2, 0x10011ba, 0, 0 }, 0x11D3}, {{SCIM_KEY_Multi_key, 0x10011b2, 0x10011bc, 0, 0 }, 0x11D5}, {{SCIM_KEY_Multi_key, 0x10011b2, 0x10011c2, 0, 0 }, 0x11D4}, {{SCIM_KEY_Multi_key, 0x10011b3, 0x10011ba, 0, 0 }, 0x11D6}, {{SCIM_KEY_Multi_key, 0x10011b7, 0x10011a8, 0, 0 }, 0x11DA}, {{SCIM_KEY_Multi_key, 0x10011b7, 0x10011af, 0, 0 }, 0x11DB}, {{SCIM_KEY_Multi_key, 0x10011b7, 0x10011b8, 0, 0 }, 0x11DC}, {{SCIM_KEY_Multi_key, 0x10011b7, 0x10011ba, 0, 0 }, 0x11DD}, {{SCIM_KEY_Multi_key, 0x10011b7, 0x10011ba, 0x10011ba, 0 }, 0x11DE}, {{SCIM_KEY_Multi_key, 0x10011b7, 0x10011bb, 0, 0 }, 0x11DE}, {{SCIM_KEY_Multi_key, 0x10011b7, 0x10011bc, 0, 0 }, 0x11E2}, {{SCIM_KEY_Multi_key, 0x10011b7, 0x10011be, 0, 0 }, 0x11E0}, {{SCIM_KEY_Multi_key, 0x10011b7, 0x10011c2, 0, 0 }, 0x11E1}, {{SCIM_KEY_Multi_key, 0x10011b7, 0x10011eb, 0, 0 }, 0x11DF}, {{SCIM_KEY_Multi_key, 0x10011b8, 0x10011af, 0, 0 }, 0x11E3}, {{SCIM_KEY_Multi_key, 0x10011b8, 0x10011ba, 0, 0 }, 0x11B9}, {{SCIM_KEY_Multi_key, 0x10011b8, 0x10011bc, 0, 0 }, 0x11E6}, {{SCIM_KEY_Multi_key, 0x10011b8, 0x10011c1, 0, 0 }, 0x11E4}, {{SCIM_KEY_Multi_key, 0x10011b8, 0x10011c2, 0, 0 }, 0x11E5}, {{SCIM_KEY_Multi_key, 0x10011ba, 0x10011a8, 0, 0 }, 0x11E7}, {{SCIM_KEY_Multi_key, 0x10011ba, 0x10011ae, 0, 0 }, 0x11E8}, {{SCIM_KEY_Multi_key, 0x10011ba, 0x10011af, 0, 0 }, 0x11E9}, {{SCIM_KEY_Multi_key, 0x10011ba, 0x10011b8, 0, 0 }, 0x11EA}, {{SCIM_KEY_Multi_key, 0x10011ba, 0x10011ba, 0, 0 }, 0x11BB}, {{SCIM_KEY_Multi_key, 0x10011bc, 0x10011a8, 0, 0 }, 0x11EC}, {{SCIM_KEY_Multi_key, 0x10011bc, 0x10011a8, 0x10011a8, 0 }, 0x11ED}, {{SCIM_KEY_Multi_key, 0x10011bc, 0x10011a9, 0, 0 }, 0x11ED}, {{SCIM_KEY_Multi_key, 0x10011bc, 0x10011bc, 0, 0 }, 0x11EE}, {{SCIM_KEY_Multi_key, 0x10011bc, 0x10011bf, 0, 0 }, 0x11EF}, {{SCIM_KEY_Multi_key, 0x10011c1, 0x10011b8, 0, 0 }, 0x11F3}, {{SCIM_KEY_Multi_key, 0x10011c1, 0x10011bc, 0, 0 }, 0x11F4}, {{SCIM_KEY_Multi_key, 0x10011c2, 0x10011ab, 0, 0 }, 0x11F5}, {{SCIM_KEY_Multi_key, 0x10011c2, 0x10011af, 0, 0 }, 0x11F6}, {{SCIM_KEY_Multi_key, 0x10011c2, 0x10011b7, 0, 0 }, 0x11F7}, {{SCIM_KEY_Multi_key, 0x10011c2, 0x10011b8, 0, 0 }, 0x11F8}, {{SCIM_KEY_Multi_key, 0x10011ce, 0x10011c2, 0, 0 }, 0x11CF}, {{SCIM_KEY_Multi_key, 0x10011dd, 0x10011ba, 0, 0 }, 0x11DE}, {{SCIM_KEY_Multi_key, 0x10011ec, 0x10011a8, 0, 0 }, 0x11ED}, {{SCIM_KEY_Multi_key, 0x10011f0, 0x10011ba, 0, 0 }, 0x11F1}, {{SCIM_KEY_Multi_key, 0x10011f0, 0x10011eb, 0, 0 }, 0x11F2}, {{SCIM_KEY_Multi_key, 0x1001fbf, SCIM_KEY_apostrophe, 0, 0 }, 0x1FCE}, {{SCIM_KEY_Multi_key, 0x1001fbf, SCIM_KEY_grave, 0, 0 }, 0x1FCD}, {{SCIM_KEY_Multi_key, 0x1001fbf, SCIM_KEY_asciitilde, 0, 0 }, 0x1FCF}, {{SCIM_KEY_Multi_key, 0x1001fbf, SCIM_KEY_acute, 0, 0 }, 0x1FCE}, {{SCIM_KEY_Multi_key, 0x1001fbf, SCIM_KEY_combining_grave, 0, 0 }, 0x1FCD}, {{SCIM_KEY_Multi_key, 0x1001fbf, SCIM_KEY_combining_acute, 0, 0 }, 0x1FCE}, {{SCIM_KEY_Multi_key, 0x1001fbf, SCIM_KEY_dead_grave, 0, 0 }, 0x1FCD}, {{SCIM_KEY_Multi_key, 0x1001fbf, SCIM_KEY_dead_acute, 0, 0 }, 0x1FCE}, {{SCIM_KEY_Multi_key, 0x1001fbf, SCIM_KEY_dead_tilde, 0, 0 }, 0x1FCF}, {{SCIM_KEY_Multi_key, 0x1001fbf, 0x1000342, 0, 0 }, 0x1FCF}, {{SCIM_KEY_Multi_key, 0x1001ffe, SCIM_KEY_apostrophe, 0, 0 }, 0x1FDE}, {{SCIM_KEY_Multi_key, 0x1001ffe, SCIM_KEY_grave, 0, 0 }, 0x1FDD}, {{SCIM_KEY_Multi_key, 0x1001ffe, SCIM_KEY_asciitilde, 0, 0 }, 0x1FDF}, {{SCIM_KEY_Multi_key, 0x1001ffe, SCIM_KEY_acute, 0, 0 }, 0x1FDE}, {{SCIM_KEY_Multi_key, 0x1001ffe, SCIM_KEY_combining_grave, 0, 0 }, 0x1FDD}, {{SCIM_KEY_Multi_key, 0x1001ffe, SCIM_KEY_combining_acute, 0, 0 }, 0x1FDE}, {{SCIM_KEY_Multi_key, 0x1001ffe, SCIM_KEY_dead_grave, 0, 0 }, 0x1FDD}, {{SCIM_KEY_Multi_key, 0x1001ffe, SCIM_KEY_dead_acute, 0, 0 }, 0x1FDE}, {{SCIM_KEY_Multi_key, 0x1001ffe, SCIM_KEY_dead_tilde, 0, 0 }, 0x1FDF}, {{SCIM_KEY_Multi_key, 0x1001ffe, 0x1000342, 0, 0 }, 0x1FDF}, {{SCIM_KEY_Multi_key, 0x1002203, 0x1000338, 0, 0 }, 0x2204}, {{SCIM_KEY_Multi_key, 0x1002208, 0x1000338, 0, 0 }, 0x2209}, {{SCIM_KEY_Multi_key, 0x100220b, 0x1000338, 0, 0 }, 0x220C}, {{SCIM_KEY_Multi_key, 0x1002223, 0x1000338, 0, 0 }, 0x2224}, {{SCIM_KEY_Multi_key, 0x1002225, 0x1000338, 0, 0 }, 0x2226}, {{SCIM_KEY_Multi_key, 0x100223c, 0x1000338, 0, 0 }, 0x2241}, {{SCIM_KEY_Multi_key, 0x1002243, 0x1000338, 0, 0 }, 0x2244}, {{SCIM_KEY_Multi_key, 0x1002248, 0x1000338, 0, 0 }, 0x2249}, {{SCIM_KEY_Multi_key, 0x100224d, 0x1000338, 0, 0 }, 0x226D}, {{SCIM_KEY_Multi_key, 0x1002272, 0x1000338, 0, 0 }, 0x2274}, {{SCIM_KEY_Multi_key, 0x1002273, 0x1000338, 0, 0 }, 0x2275}, {{SCIM_KEY_Multi_key, 0x1002276, 0x1000338, 0, 0 }, 0x2278}, {{SCIM_KEY_Multi_key, 0x1002277, 0x1000338, 0, 0 }, 0x2279}, {{SCIM_KEY_Multi_key, 0x100227a, 0x1000338, 0, 0 }, 0x2280}, {{SCIM_KEY_Multi_key, 0x100227b, 0x1000338, 0, 0 }, 0x2281}, {{SCIM_KEY_Multi_key, 0x100227c, 0x1000338, 0, 0 }, 0x22E0}, {{SCIM_KEY_Multi_key, 0x100227d, 0x1000338, 0, 0 }, 0x22E1}, {{SCIM_KEY_Multi_key, 0x1002286, 0x1000338, 0, 0 }, 0x2288}, {{SCIM_KEY_Multi_key, 0x1002287, 0x1000338, 0, 0 }, 0x2289}, {{SCIM_KEY_Multi_key, 0x1002291, 0x1000338, 0, 0 }, 0x22E2}, {{SCIM_KEY_Multi_key, 0x1002292, 0x1000338, 0, 0 }, 0x22E3}, {{SCIM_KEY_Multi_key, 0x10022a8, 0x1000338, 0, 0 }, 0x22AD}, {{SCIM_KEY_Multi_key, 0x10022a9, 0x1000338, 0, 0 }, 0x22AE}, {{SCIM_KEY_Multi_key, 0x10022ab, 0x1000338, 0, 0 }, 0x22AF}, {{SCIM_KEY_Multi_key, 0x10022b2, 0x1000338, 0, 0 }, 0x22EA}, {{SCIM_KEY_Multi_key, 0x10022b3, 0x1000338, 0, 0 }, 0x22EB}, {{SCIM_KEY_Multi_key, 0x10022b4, 0x1000338, 0, 0 }, 0x22EC}, {{SCIM_KEY_Multi_key, 0x10022b5, 0x1000338, 0, 0 }, 0x22ED}, {{SCIM_KEY_Multi_key, 0x1002add, 0x1000338, 0, 0 }, 0x2ADC}, {{0x100030f, SCIM_KEY_A, 0, 0, 0 }, 0x0200}, {{0x100030f, SCIM_KEY_E, 0, 0, 0 }, 0x0204}, {{0x100030f, SCIM_KEY_I, 0, 0, 0 }, 0x0208}, {{0x100030f, SCIM_KEY_O, 0, 0, 0 }, 0x020C}, {{0x100030f, SCIM_KEY_R, 0, 0, 0 }, 0x0210}, {{0x100030f, SCIM_KEY_U, 0, 0, 0 }, 0x0214}, {{0x100030f, SCIM_KEY_a, 0, 0, 0 }, 0x0201}, {{0x100030f, SCIM_KEY_e, 0, 0, 0 }, 0x0205}, {{0x100030f, SCIM_KEY_i, 0, 0, 0 }, 0x0209}, {{0x100030f, SCIM_KEY_o, 0, 0, 0 }, 0x020D}, {{0x100030f, SCIM_KEY_r, 0, 0, 0 }, 0x0211}, {{0x100030f, SCIM_KEY_u, 0, 0, 0 }, 0x0215}, {{0x100030f, 0x1000474, 0, 0, 0 }, 0x0476}, {{0x100030f, 0x1000475, 0, 0, 0 }, 0x0477}, {{0x1000311, SCIM_KEY_A, 0, 0, 0 }, 0x0202}, {{0x1000311, SCIM_KEY_E, 0, 0, 0 }, 0x0206}, {{0x1000311, SCIM_KEY_I, 0, 0, 0 }, 0x020A}, {{0x1000311, SCIM_KEY_O, 0, 0, 0 }, 0x020E}, {{0x1000311, SCIM_KEY_R, 0, 0, 0 }, 0x0212}, {{0x1000311, SCIM_KEY_U, 0, 0, 0 }, 0x0216}, {{0x1000311, SCIM_KEY_a, 0, 0, 0 }, 0x0203}, {{0x1000311, SCIM_KEY_e, 0, 0, 0 }, 0x0207}, {{0x1000311, SCIM_KEY_i, 0, 0, 0 }, 0x020B}, {{0x1000311, SCIM_KEY_o, 0, 0, 0 }, 0x020F}, {{0x1000311, SCIM_KEY_r, 0, 0, 0 }, 0x0213}, {{0x1000311, SCIM_KEY_u, 0, 0, 0 }, 0x0217}, {{0x1000313, SCIM_KEY_Greek_ALPHA, 0, 0, 0 }, 0x1F08}, {{0x1000313, SCIM_KEY_Greek_EPSILON, 0, 0, 0 }, 0x1F18}, {{0x1000313, SCIM_KEY_Greek_ETA, 0, 0, 0 }, 0x1F28}, {{0x1000313, SCIM_KEY_Greek_IOTA, 0, 0, 0 }, 0x1F38}, {{0x1000313, SCIM_KEY_Greek_OMICRON, 0, 0, 0 }, 0x1F48}, {{0x1000313, SCIM_KEY_Greek_OMEGA, 0, 0, 0 }, 0x1F68}, {{0x1000313, SCIM_KEY_Greek_alpha, 0, 0, 0 }, 0x1F00}, {{0x1000313, SCIM_KEY_Greek_epsilon, 0, 0, 0 }, 0x1F10}, {{0x1000313, SCIM_KEY_Greek_eta, 0, 0, 0 }, 0x1F20}, {{0x1000313, SCIM_KEY_Greek_iota, 0, 0, 0 }, 0x1F30}, {{0x1000313, SCIM_KEY_Greek_omicron, 0, 0, 0 }, 0x1F40}, {{0x1000313, SCIM_KEY_Greek_rho, 0, 0, 0 }, 0x1FE4}, {{0x1000313, SCIM_KEY_Greek_upsilon, 0, 0, 0 }, 0x1F50}, {{0x1000313, SCIM_KEY_Greek_omega, 0, 0, 0 }, 0x1F60}, {{0x1000314, SCIM_KEY_Greek_ALPHA, 0, 0, 0 }, 0x1F09}, {{0x1000314, SCIM_KEY_Greek_EPSILON, 0, 0, 0 }, 0x1F19}, {{0x1000314, SCIM_KEY_Greek_ETA, 0, 0, 0 }, 0x1F29}, {{0x1000314, SCIM_KEY_Greek_IOTA, 0, 0, 0 }, 0x1F39}, {{0x1000314, SCIM_KEY_Greek_OMICRON, 0, 0, 0 }, 0x1F49}, {{0x1000314, SCIM_KEY_Greek_RHO, 0, 0, 0 }, 0x1FEC}, {{0x1000314, SCIM_KEY_Greek_UPSILON, 0, 0, 0 }, 0x1F59}, {{0x1000314, SCIM_KEY_Greek_OMEGA, 0, 0, 0 }, 0x1F69}, {{0x1000314, SCIM_KEY_Greek_alpha, 0, 0, 0 }, 0x1F01}, {{0x1000314, SCIM_KEY_Greek_epsilon, 0, 0, 0 }, 0x1F11}, {{0x1000314, SCIM_KEY_Greek_eta, 0, 0, 0 }, 0x1F21}, {{0x1000314, SCIM_KEY_Greek_iota, 0, 0, 0 }, 0x1F31}, {{0x1000314, SCIM_KEY_Greek_omicron, 0, 0, 0 }, 0x1F41}, {{0x1000314, SCIM_KEY_Greek_rho, 0, 0, 0 }, 0x1FE5}, {{0x1000314, SCIM_KEY_Greek_upsilon, 0, 0, 0 }, 0x1F51}, {{0x1000314, SCIM_KEY_Greek_omega, 0, 0, 0 }, 0x1F61}, {{0x1000324, SCIM_KEY_U, 0, 0, 0 }, 0x1E72}, {{0x1000324, SCIM_KEY_u, 0, 0, 0 }, 0x1E73}, {{0x1000325, SCIM_KEY_A, 0, 0, 0 }, 0x1E00}, {{0x1000325, SCIM_KEY_a, 0, 0, 0 }, 0x1E01}, {{0x1000326, SCIM_KEY_S, 0, 0, 0 }, 0x0218}, {{0x1000326, SCIM_KEY_T, 0, 0, 0 }, 0x021A}, {{0x1000326, SCIM_KEY_s, 0, 0, 0 }, 0x0219}, {{0x1000326, SCIM_KEY_t, 0, 0, 0 }, 0x021B}, {{0x100032d, SCIM_KEY_D, 0, 0, 0 }, 0x1E12}, {{0x100032d, SCIM_KEY_E, 0, 0, 0 }, 0x1E18}, {{0x100032d, SCIM_KEY_L, 0, 0, 0 }, 0x1E3C}, {{0x100032d, SCIM_KEY_N, 0, 0, 0 }, 0x1E4A}, {{0x100032d, SCIM_KEY_T, 0, 0, 0 }, 0x1E70}, {{0x100032d, SCIM_KEY_U, 0, 0, 0 }, 0x1E76}, {{0x100032d, SCIM_KEY_d, 0, 0, 0 }, 0x1E13}, {{0x100032d, SCIM_KEY_e, 0, 0, 0 }, 0x1E19}, {{0x100032d, SCIM_KEY_l, 0, 0, 0 }, 0x1E3D}, {{0x100032d, SCIM_KEY_n, 0, 0, 0 }, 0x1E4B}, {{0x100032d, SCIM_KEY_t, 0, 0, 0 }, 0x1E71}, {{0x100032d, SCIM_KEY_u, 0, 0, 0 }, 0x1E77}, {{0x100032e, SCIM_KEY_H, 0, 0, 0 }, 0x1E2A}, {{0x100032e, SCIM_KEY_h, 0, 0, 0 }, 0x1E2B}, {{0x1000330, SCIM_KEY_E, 0, 0, 0 }, 0x1E1A}, {{0x1000330, SCIM_KEY_I, 0, 0, 0 }, 0x1E2C}, {{0x1000330, SCIM_KEY_U, 0, 0, 0 }, 0x1E74}, {{0x1000330, SCIM_KEY_e, 0, 0, 0 }, 0x1E1B}, {{0x1000330, SCIM_KEY_i, 0, 0, 0 }, 0x1E2D}, {{0x1000330, SCIM_KEY_u, 0, 0, 0 }, 0x1E75}, {{0x1000331, SCIM_KEY_B, 0, 0, 0 }, 0x1E06}, {{0x1000331, SCIM_KEY_D, 0, 0, 0 }, 0x1E0E}, {{0x1000331, SCIM_KEY_K, 0, 0, 0 }, 0x1E34}, {{0x1000331, SCIM_KEY_L, 0, 0, 0 }, 0x1E3A}, {{0x1000331, SCIM_KEY_N, 0, 0, 0 }, 0x1E48}, {{0x1000331, SCIM_KEY_R, 0, 0, 0 }, 0x1E5E}, {{0x1000331, SCIM_KEY_T, 0, 0, 0 }, 0x1E6E}, {{0x1000331, SCIM_KEY_Z, 0, 0, 0 }, 0x1E94}, {{0x1000331, SCIM_KEY_b, 0, 0, 0 }, 0x1E07}, {{0x1000331, SCIM_KEY_d, 0, 0, 0 }, 0x1E0F}, {{0x1000331, SCIM_KEY_h, 0, 0, 0 }, 0x1E96}, {{0x1000331, SCIM_KEY_k, 0, 0, 0 }, 0x1E35}, {{0x1000331, SCIM_KEY_l, 0, 0, 0 }, 0x1E3B}, {{0x1000331, SCIM_KEY_n, 0, 0, 0 }, 0x1E49}, {{0x1000331, SCIM_KEY_r, 0, 0, 0 }, 0x1E5F}, {{0x1000331, SCIM_KEY_t, 0, 0, 0 }, 0x1E6F}, {{0x1000331, SCIM_KEY_z, 0, 0, 0 }, 0x1E95}, {{0x1000342, SCIM_KEY_Greek_iotadieresis, 0, 0, 0 }, 0x1FD7}, {{0x1000342, SCIM_KEY_Greek_upsilondieresis, 0, 0, 0 }, 0x1FE7}, {{0x1000342, SCIM_KEY_Greek_alpha, 0, 0, 0 }, 0x1FB6}, {{0x1000342, SCIM_KEY_Greek_eta, 0, 0, 0 }, 0x1FC6}, {{0x1000342, SCIM_KEY_Greek_iota, 0, 0, 0 }, 0x1FD6}, {{0x1000342, SCIM_KEY_Greek_upsilon, 0, 0, 0 }, 0x1FE6}, {{0x1000342, SCIM_KEY_Greek_omega, 0, 0, 0 }, 0x1FF6}, {{0x1000342, SCIM_KEY_dead_diaeresis, SCIM_KEY_Greek_iota, 0, 0 }, 0x1FD7}, {{0x1000342, SCIM_KEY_dead_diaeresis, SCIM_KEY_Greek_upsilon, 0, 0 }, 0x1FE7}, {{0x1000342, SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_Greek_iota, 0 }, 0x1FD7}, {{0x1000342, SCIM_KEY_Multi_key, SCIM_KEY_quotedbl, SCIM_KEY_Greek_upsilon, 0 }, 0x1FE7}, {{0x1000342, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_ALPHA, 0 }, 0x1F0F}, {{0x1000342, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_ETA, 0 }, 0x1F2F}, {{0x1000342, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_IOTA, 0 }, 0x1F3F}, {{0x1000342, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_UPSILON, 0 }, 0x1F5F}, {{0x1000342, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_OMEGA, 0 }, 0x1F6F}, {{0x1000342, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_alpha, 0 }, 0x1F07}, {{0x1000342, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_eta, 0 }, 0x1F27}, {{0x1000342, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_iota, 0 }, 0x1F37}, {{0x1000342, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_upsilon, 0 }, 0x1F57}, {{0x1000342, SCIM_KEY_Multi_key, SCIM_KEY_parenleft, SCIM_KEY_Greek_omega, 0 }, 0x1F67}, {{0x1000342, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_ALPHA, 0 }, 0x1F0E}, {{0x1000342, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_ETA, 0 }, 0x1F2E}, {{0x1000342, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_IOTA, 0 }, 0x1F3E}, {{0x1000342, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_OMEGA, 0 }, 0x1F6E}, {{0x1000342, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_alpha, 0 }, 0x1F06}, {{0x1000342, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_eta, 0 }, 0x1F26}, {{0x1000342, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_iota, 0 }, 0x1F36}, {{0x1000342, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_upsilon, 0 }, 0x1F56}, {{0x1000342, SCIM_KEY_Multi_key, SCIM_KEY_parenright, SCIM_KEY_Greek_omega, 0 }, 0x1F66}, {{0x1000342, 0x1000313, SCIM_KEY_Greek_ALPHA, 0, 0 }, 0x1F0E}, {{0x1000342, 0x1000313, SCIM_KEY_Greek_ETA, 0, 0 }, 0x1F2E}, {{0x1000342, 0x1000313, SCIM_KEY_Greek_IOTA, 0, 0 }, 0x1F3E}, {{0x1000342, 0x1000313, SCIM_KEY_Greek_OMEGA, 0, 0 }, 0x1F6E}, {{0x1000342, 0x1000313, SCIM_KEY_Greek_alpha, 0, 0 }, 0x1F06}, {{0x1000342, 0x1000313, SCIM_KEY_Greek_eta, 0, 0 }, 0x1F26}, {{0x1000342, 0x1000313, SCIM_KEY_Greek_iota, 0, 0 }, 0x1F36}, {{0x1000342, 0x1000313, SCIM_KEY_Greek_upsilon, 0, 0 }, 0x1F56}, {{0x1000342, 0x1000313, SCIM_KEY_Greek_omega, 0, 0 }, 0x1F66}, {{0x1000342, 0x1000314, SCIM_KEY_Greek_ALPHA, 0, 0 }, 0x1F0F}, {{0x1000342, 0x1000314, SCIM_KEY_Greek_ETA, 0, 0 }, 0x1F2F}, {{0x1000342, 0x1000314, SCIM_KEY_Greek_IOTA, 0, 0 }, 0x1F3F}, {{0x1000342, 0x1000314, SCIM_KEY_Greek_UPSILON, 0, 0 }, 0x1F5F}, {{0x1000342, 0x1000314, SCIM_KEY_Greek_OMEGA, 0, 0 }, 0x1F6F}, {{0x1000342, 0x1000314, SCIM_KEY_Greek_alpha, 0, 0 }, 0x1F07}, {{0x1000342, 0x1000314, SCIM_KEY_Greek_eta, 0, 0 }, 0x1F27}, {{0x1000342, 0x1000314, SCIM_KEY_Greek_iota, 0, 0 }, 0x1F37}, {{0x1000342, 0x1000314, SCIM_KEY_Greek_upsilon, 0, 0 }, 0x1F57}, {{0x1000342, 0x1000314, SCIM_KEY_Greek_omega, 0, 0 }, 0x1F67}, {{0x1000342, 0x1001f00, 0, 0, 0 }, 0x1F06}, {{0x1000342, 0x1001f01, 0, 0, 0 }, 0x1F07}, {{0x1000342, 0x1001f08, 0, 0, 0 }, 0x1F0E}, {{0x1000342, 0x1001f09, 0, 0, 0 }, 0x1F0F}, {{0x1000342, 0x1001f20, 0, 0, 0 }, 0x1F26}, {{0x1000342, 0x1001f21, 0, 0, 0 }, 0x1F27}, {{0x1000342, 0x1001f28, 0, 0, 0 }, 0x1F2E}, {{0x1000342, 0x1001f29, 0, 0, 0 }, 0x1F2F}, {{0x1000342, 0x1001f30, 0, 0, 0 }, 0x1F36}, {{0x1000342, 0x1001f31, 0, 0, 0 }, 0x1F37}, {{0x1000342, 0x1001f38, 0, 0, 0 }, 0x1F3E}, {{0x1000342, 0x1001f39, 0, 0, 0 }, 0x1F3F}, {{0x1000342, 0x1001f50, 0, 0, 0 }, 0x1F56}, {{0x1000342, 0x1001f51, 0, 0, 0 }, 0x1F57}, {{0x1000342, 0x1001f59, 0, 0, 0 }, 0x1F5F}, {{0x1000342, 0x1001f60, 0, 0, 0 }, 0x1F66}, {{0x1000342, 0x1001f61, 0, 0, 0 }, 0x1F67}, {{0x1000342, 0x1001f68, 0, 0, 0 }, 0x1F6E}, {{0x1000342, 0x1001f69, 0, 0, 0 }, 0x1F6F}, scim-1.4.14/src/scim_config_agent.cpp000066400000000000000000000355231177210725600175050ustar00rootroot00000000000000/* * Smart Common Input Method * * Copyright (c) 2002-2005 James Su * * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this program; if not, write to the * Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, MA 02111-1307 USA * * $Id: scim_config_agent.cpp,v 1.10 2005/07/03 08:36:42 suzhe Exp $ * */ #define Uses_STL_IOSTREAM #define Uses_C_LOCALE #define Uses_SCIM_CONFIG_MODULE #define Uses_SCIM_HELPER #define Uses_SCIM_CONFIG_PATH #include "scim_private.h" #include #include using namespace scim; using std::cout; using std::cerr; using std::endl; enum DataType { DATA_TYPE_STRING, DATA_TYPE_INT, DATA_TYPE_DOUBLE, DATA_TYPE_BOOL, DATA_TYPE_STRING_LIST, DATA_TYPE_INT_LIST }; enum Command { DO_NOTHING, GET_DATA, SET_DATA, DEL_KEY }; static String trim_blank (const String &str) { String::size_type begin, len; begin = str.find_first_not_of (" \t\n\v"); if (begin == String::npos) return String (); len = str.find_last_not_of (" \t\n\v") - begin + 1; return str.substr (begin, len); } static String get_param_portion (const String &str) { String::size_type begin = str.find_first_of (" \t\n\v="); if (begin == String::npos) return str; return str.substr (0, begin); } static String get_value_portion (const String &str) { String::size_type begin = str.find_first_of ("="); if (begin == String::npos || (begin + 1) == str.length ()) return String (""); return trim_blank (str.substr (begin + 1, String::npos)); } int main (int argc, char *argv []) { static ConfigModule config_module; ConfigPointer config; std::vector config_list; String def_config; String key; String value; String display; DataType type = DATA_TYPE_STRING; Command cmd = DO_NOTHING; bool reload = false; bool global = false; int i; char *p = getenv ("DISPLAY"); if (p) display = String (p); //get modules list scim_get_config_module_list (config_list); //Use simple Config module as default if available. if (config_list.size ()) { def_config = scim_global_config_read (SCIM_GLOBAL_CONFIG_DEFAULT_CONFIG_MODULE, String ("simple")); if (std::find (config_list.begin (), config_list.end (), def_config) == config_list.end ()) def_config = config_list [0]; } else { cerr << "No config module found.\n"; return -1; } // parse command options i = 0; while (i= argc) break; if (String ("-h") == argv [i] || String ("--help") == argv [i]) { cout << "Usage: " << argv [0] << "